• 正文
    • 1、事情的起因
    • 2、轉(zhuǎn)機
    • 3、解決方案
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

MPU6050芯片設(shè)備ID不匹配~是假貨還是另有乾坤?

01/22 08:34
6298
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

1、事情的起因

這段時間一直在忙活自己的畢設(shè),由于畢設(shè)里面要用到MPU6050當(dāng)作姿態(tài)傳感器,因此在淘寶上買了一批MPU6050自己來焊接。

但是當(dāng)我寫代碼的時候,使用的時候出現(xiàn)了一個很大的問題。

設(shè)備的ID讀取并沒有問題,由于使用的是硬件I2C,這里發(fā)現(xiàn)讀到的設(shè)備ID是0x98,然后因此并沒有進入初始化階段。

說實話這就遇到了非常頭疼的問題就是能通訊,但是讀出來的東西不對。如果通訊出了問題,那么功夫就要可以花在檢查電路等硬件問題上。但是如果是讀出來的內(nèi)容有問題,那么就很頭疼了。

后來查詢資料過程中發(fā)現(xiàn),這個問題在國內(nèi)外技術(shù)論壇中出現(xiàn)過很多次,并且MPU6050的模塊層次不齊,甚至有20個模塊中將近一般出現(xiàn)設(shè)備ID是0x98的情況。

而大部分人認(rèn)為,這是假的MPU6050(Fake chip)幾乎所有的解決方法都是:換一個模塊。

但是由于博主回家沒帶熱風(fēng)槍,并且說實話QFN的封裝確實惡心,還是想著能不能找到解決辦法。

2、轉(zhuǎn)機

把這件事情定義為黑心商家用其他芯片來替代MPU6050的話,那么解決辦法就是搞清楚這塊芯片到底是哪塊芯片。

要確定具體是哪塊芯片的話,其實范圍還比較小,首先是和MPU6050 是 pin to pin兼容的,并且連設(shè)備地址就是一樣的,且設(shè)備ID是0x98的芯片。

然后看到了一塊這個芯片,ICM-20689,它的器件地址和寄存器地址幾乎和MPU6050一模一樣,封裝也完全相同,而且居然是MPU6050原廠設(shè)計的芯片。

并且原本MPU6050的設(shè)備識別碼寄存器的地址是0x75,存放的值是0x68。

而ICM-20689的0x75寄存器也是設(shè)備識別碼,但是存放的值是0x98.

這段話的描述和MPU6050幾乎是一樣的,甚至仔細(xì)查看芯片手冊,ICM-20689的性能不輸MPU6050甚至超過MPU6050,并且支持SPI傳輸,而不像MPU6050僅支持I2C, 像是MPU6000+MPU6050的融合版。

3、解決方案

由于寄存器地址和內(nèi)容完全相同,因此實際上ICM-20689和MPU6050的用法完全相同。

這件事情可能就是一個較大的烏龍,甚至芯片商家可能都沒有搞清楚ICM-20689和MPU6050的區(qū)別,將MPU6050和ICM-20689混為一談(其實我認(rèn)為也可以)。

而在我們使用的過程中也是因為代碼中有檢查設(shè)備識別碼這個步驟,而如果去掉這個步驟,那么也不會發(fā)生這個問題。

互聯(lián)網(wǎng)中搜到的關(guān)于這個問題,很多的解決辦法都是換一個模塊。

在ID檢查中添加ICM20689的設(shè)備ID即可正常使用。因此,這是塊假的MPU6050嘛?或許是,但是我認(rèn)為更像是一場烏龍~

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄