剛拿到這個片子的時候,就感覺又是個一個坑,果不其然的事情也隨之發生了(哈哈哈,預測準確。。。)
這款芯片的話存在一些問題,就是參考資料比較少,最大的關鍵點是廠家沒有技術支持,也沒有給出任何完整的底層驅動例程,有的只是兩個PDF,不算很全面的介紹,也只能湊合著看了(上傳不了附件。。。嗚嗚嗚。。。)。
接下來就是萬能的度娘,開始看看有沒有道友之前用過并把例程分享出來,一搜網上還真是有,但是大體看了看,能直接拿來用的基本沒有,我的基本構架是應用自己的模擬IIC進行使用的,自己用比較放心,結合眾多前輩們的經驗,我只總結兩點。
1.一定要注意這個芯片的設備地址:廠家PDF給出的是0x50,如果你真按這個地址去查詢她,你會發現她根本不屌你,實際地址應該是0xA0,你發這個這貨認識到是她了,原因是0x50是bit7~bit1這七位的定義,并不是八位,bit0:為讀寫位,也就是你真正組合起來 發送的地址是0xA0或者0xA1,看你的操作是讀還是寫了,這真是個神坑的槽點,幸虧有大神用過,不然我估計在這個點上要耗不知道多少青春。。。
2.這個大哥在讀寫時序圖上的ACK信號,一定要注意,首先廠家的PDF中給出的描述是:一筆數據 (8bit +ACK) 完成后, 從機開始處理數據 (從機忙碌 ), 無法接收下一筆數據,此時從機將 SCL 拉低, 主機需等待 SCL 變為高電平時才可以繼續進行數據傳送。首先這段文字我就看不懂了,從機設備能夠控制SCL總線的我是第一次見過,后來又詳細查了查IIC協議,發現只有主機能控制SCL總線,從機的ACK只能是拉低SDA數據線,不知道是廠家的PDF文字敘述有錯誤,還是真就是這樣,這個就BUG了。我查了相關道友做的例程分享,發現大家跟我一樣,等待這個哥們兒的ACK一直都不給,建議大家如果項目不緊急,還是查一下時序,看看這個ACK到底是個什么鬼,如果比較著急可以采取那個道友的方式,主機主動給從機發個ACK意思意思就完了,先能用,別跟時間和項目過不去,不然領導又要懷疑我的能力了。哎。
說了這么多,總共用了一天的時間算是調通了通訊,換了換CT電容也能有5個按鍵好用(總共六個按鍵,又一個死活沒輸出,就一天的時間還想怎么樣,我忍了),其實說這么多的槽點,不是說國產芯片有多差,其實國產芯片做的一點都不差,只是希望后續能有技術支持跟上,掃遍官網沒發現,更別指望代理商了,再就是技術文檔不夠詳細,上面的槽點也希望以后能夠改進和解決。
最后祝道友們用片愉快~!!!(反正項目總是急急急,一款芯片說換就換降成本嘛,耗費精力研究也沒有任何意義,出問題再講,工程師的悲哀)