在應該收到 ACK 信號的時候沒有收到 ACK 信號,i2c controller 就會產(chǎn)生一個 ACK error 的中斷,告訴 i2cdriver 發(fā)生了 ACK error。通常情況是 slave 本身的問題。
1、檢查 device 是否存在,i2c bus number 和 device address 是否正確。示例如下:i2c number 為6,addr 為 0x28:
[31.092951][xxx]i2c i2c-6:addr:0x28,ACK error
2、檢查 device 是否已經(jīng)上電使能,以及正確的 init
3、檢查 i2c speed 是否適配,speed 大于 device 支持的 max speed 也會造成 ACKError。降低速度,如果仍然可以工作的話就說明是 clk 相關問題。
4、檢查 i2c device 信號電平是否與 AP 匹配。
5、GPIO check 以下幾個部分
GPIO 電流驅動能力
GPIO 工作模式是否是 I2C 模式
GPIO 是否有內(nèi)部上拉電阻
GPIO 默認電平狀態(tài)
從 i2c spec 看,如下情況 NACK
I2C 寫
主機向從機發(fā)送數(shù)據(jù)時,最后一個 Byte數(shù)據(jù)時,從機可能應答也可能非應答,但不怎樣主機都可以產(chǎn)生停止條件,如果主機在向從機發(fā)送數(shù)據(jù)(甚至包括從機地址在內(nèi))時檢測到從機非應答,則會及時停止傳輸。
I2C 讀
主機從從機接收數(shù)據(jù)時,最后一個 Byte 數(shù)據(jù)時,主機不回應該從機,即 NACK.
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
相關推薦
[ 導讀] 本文通過閱讀內(nèi)核代碼,來梳理一下I2C子系統(tǒng)的整體視圖。在開發(fā)I2C設備驅動程序時,往往缺乏對于系統(tǒng)整體的認識,沒有一個清晰的思路。所以從高層級來分析一下
發(fā)表于 09-06 09:40
?453次閱讀
文章目錄linux I2C子系統(tǒng)框架在設備樹中添加從設備信息,mpu5060I2C driver 程序的編寫mpu6050 I2C程序具體實現(xiàn)linux
發(fā)表于 02-10 06:06
I2C總線器件應用第一節(jié) I2C總線器件應用概述I2C總線工作原理I2C總線系統(tǒng)結構I2C總線
發(fā)表于 08-13 17:34
?0次下載
I2C Guid I2C指南
The I2C bus is used in a wide rangeof applications because it is simpleand
發(fā)表于 04-23 13:55
?36次下載
單片機i2c總線操作;單片機i2c總線操作;單片機i2c總線操作;
發(fā)表于 05-17 11:09
?35次下載
I2C總線應用系統(tǒng)設計運用
發(fā)表于 09-22 11:44
?10次下載
本文通過閱讀內(nèi)核代碼,來梳理一下I2C子系統(tǒng)的整體視圖。在開發(fā)I2C設備驅動程序時,往往缺乏對于系統(tǒng)整體的認識,沒有一個清晰的思路。所以從高層級來分析一下
發(fā)表于 12-31 10:40
?2138次閱讀
文章目錄linux I2C子系統(tǒng)框架在設備樹中添加從設備信息,mpu5060I2C driver 程序的編寫mpu6050 I2C程序具體實現(xiàn)linux
發(fā)表于 12-06 13:36
?9次下載
文章目錄I2c協(xié)議和時序I2c介紹I2c硬件連接I2c總線的信號I2c總線寫時序I2c總線讀時序
發(fā)表于 12-06 14:06
?17次下載
I2C接口配置ES7243錄音芯片,MCU(STM32)收不到I2C ACK的問題
發(fā)表于 12-08 16:36
?10次下載
硬件I2C對應芯片上的I2C外設,有相應I2C驅動電路,其所使用的I2C管腳也是專用的,因而效率要遠高于軟件模擬的I2C;一般也較為穩(wěn)定,但
發(fā)表于 12-28 19:14
?81次下載
常見問題 1、同一條 i2c bus 上所有的外設的 i2c addr 要不同 1)相同 address 注冊時沖突 [ 2.059184 ][xxx]i2c i2c- 1 :Fail
發(fā)表于 07-22 14:52
?890次閱讀
I2C SW Architecture 【driver 驅動層】由普通驅動工程師負責,【i2c 核心層】由 Linux 提供,【i2c 核心層】以下由芯片原廠負責。 I2C
發(fā)表于 07-22 16:01
?898次閱讀
I2C Data Structure 我們要搞懂一個 Linux 子系統(tǒng),必須研究它的數(shù)據(jù)結構,搞懂每個結構體存儲了什么東西,才能梳理清楚該子系統(tǒng)的架構。 I2C
發(fā)表于 07-22 16:04
?770次閱讀
電子發(fā)燒友網(wǎng)站提供《I2C轉UART子系統(tǒng)設計.pdf》資料免費下載
發(fā)表于 08-28 10:27
?1次下載
評論