0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

I2C子系統(tǒng)ACK error

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-22 14:39 ? 次閱讀

在應(yīng)該收到 ACK 信號(hào)的時(shí)候沒有收到 ACK 信號(hào),i2c controller 就會(huì)產(chǎn)生一個(gè) 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 也會(huì)造成 ACKError。降低速度,如果仍然可以工作的話就說明是 clk 相關(guān)問題。

4、檢查 i2c device 信號(hào)電平是否與 AP 匹配。

5、GPIO check 以下幾個(gè)部分

GPIO 電流驅(qū)動(dòng)能力

GPIO 工作模式是否是 I2C 模式

GPIO 是否有內(nèi)部上拉電阻

GPIO 默認(rèn)電平狀態(tài)

從 i2c spec 看,如下情況 NACK

I2C 寫

圖片

主機(jī)向從機(jī)發(fā)送數(shù)據(jù)時(shí),最后一個(gè) Byte數(shù)據(jù)時(shí),從機(jī)可能應(yīng)答也可能非應(yīng)答,但不怎樣主機(jī)都可以產(chǎn)生停止條件,如果主機(jī)在向從機(jī)發(fā)送數(shù)據(jù)(甚至包括從機(jī)地址在內(nèi))時(shí)檢測(cè)到從機(jī)非應(yīng)答,則會(huì)及時(shí)停止傳輸。

I2C 讀

圖片

主機(jī)從從機(jī)接收數(shù)據(jù)時(shí),最后一個(gè) Byte 數(shù)據(jù)時(shí),主機(jī)不回應(yīng)該從機(jī),即 NACK.

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1469

    瀏覽量

    122855
  • 系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    1006

    瀏覽量

    21278
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux內(nèi)核中I2C系統(tǒng)的設(shè)計(jì)思路

    [ 導(dǎo)讀] 本文通過閱讀內(nèi)核代碼,來梳理一下I2C子系統(tǒng)的整體視圖。在開發(fā)I2C設(shè)備驅(qū)動(dòng)程序時(shí),往往缺乏對(duì)于系統(tǒng)整體的認(rèn)識(shí),沒有一個(gè)清晰的思路。所以從高層級(jí)來分析一下
    發(fā)表于 09-06 09:40 ?428次閱讀
    Linux內(nèi)核中<b class='flag-5'>I2C</b><b class='flag-5'>系統(tǒng)</b>的設(shè)計(jì)思路

    linux I2C子系統(tǒng)的相關(guān)資料分享

    文章目錄linux I2C子系統(tǒng)框架在設(shè)備樹中添加從設(shè)備信息,mpu5060I2C driver 程序的編寫mpu6050 I2C程序具體實(shí)現(xiàn)linux
    發(fā)表于 02-10 06:06

    i2c總線ppt(I2C總線器件應(yīng)用)

    I2C總線器件應(yīng)用第一節(jié) I2C總線器件應(yīng)用概述I2C總線工作原理I2C總線系統(tǒng)結(jié)構(gòu)I2C總線
    發(fā)表于 08-13 17:34 ?0次下載

    I2C Guid I2C指南

    I2C Guid  I2C指南 The I2C bus is used in a wide rangeof applications because it is simpleand
    發(fā)表于 04-23 13:55 ?36次下載

    i2c

    單片機(jī)i2c總線操作;單片機(jī)i2c總線操作;單片機(jī)i2c總線操作;
    發(fā)表于 05-17 11:09 ?35次下載

    I2C總線應(yīng)用系統(tǒng)設(shè)計(jì)運(yùn)用

    I2C總線應(yīng)用系統(tǒng)設(shè)計(jì)運(yùn)用
    發(fā)表于 09-22 11:44 ?10次下載
    <b class='flag-5'>I2C</b>總線應(yīng)用<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)運(yùn)用

    Linux內(nèi)核中I2C子系統(tǒng)的整體視圖

    本文通過閱讀內(nèi)核代碼,來梳理一下I2C子系統(tǒng)的整體視圖。在開發(fā)I2C設(shè)備驅(qū)動(dòng)程序時(shí),往往缺乏對(duì)于系統(tǒng)整體的認(rèn)識(shí),沒有一個(gè)清晰的思路。所以從高層級(jí)來分析一下
    的頭像 發(fā)表于 12-31 10:40 ?2126次閱讀
    Linux內(nèi)核中<b class='flag-5'>I2C</b><b class='flag-5'>子系統(tǒng)</b>的整體視圖

    linux I2C子系統(tǒng)(及相關(guān)程序設(shè)計(jì)MPU6050)

    文章目錄linux I2C子系統(tǒng)框架在設(shè)備樹中添加從設(shè)備信息,mpu5060I2C driver 程序的編寫mpu6050 I2C程序具體實(shí)現(xiàn)linux
    發(fā)表于 12-06 13:36 ?9次下載
    linux <b class='flag-5'>I2C</b><b class='flag-5'>子系統(tǒng)</b>(及相關(guān)程序設(shè)計(jì)MPU6050)

    嵌入式內(nèi)核及驅(qū)動(dòng)開發(fā)-09IIC子系統(tǒng)框架使用(I2C協(xié)議和時(shí)序,I2C驅(qū)動(dòng)框架,I2C從設(shè)備驅(qū)動(dòng)開發(fā),MPU6050硬件連接

    文章目錄I2c協(xié)議和時(shí)序I2c介紹I2c硬件連接I2c總線的信號(hào)I2c總線寫時(shí)序I2c總線讀時(shí)序
    發(fā)表于 12-06 14:06 ?17次下載
    嵌入式內(nèi)核及驅(qū)動(dòng)開發(fā)-09IIC<b class='flag-5'>子系統(tǒng)</b>框架使用(<b class='flag-5'>I2C</b>協(xié)議和時(shí)序,<b class='flag-5'>I2C</b>驅(qū)動(dòng)框架,<b class='flag-5'>I2C</b>從設(shè)備驅(qū)動(dòng)開發(fā),MPU6050硬件連接

    I2C接口配置ES7243錄音芯片,MCU(STM32)收不到I2C ACK的問題

    I2C接口配置ES7243錄音芯片,MCU(STM32)收不到I2C ACK的問題
    發(fā)表于 12-08 16:36 ?10次下載
    <b class='flag-5'>I2C</b>接口配置ES7243錄音芯片,MCU(STM32)收不到<b class='flag-5'>I2C</b> <b class='flag-5'>ACK</b>的問題

    硬件I2C與模擬I2C

    硬件I2C對(duì)應(yīng)芯片上的I2C外設(shè),有相應(yīng)I2C驅(qū)動(dòng)電路,其所使用的I2C管腳也是專用的,因而效率要遠(yuǎn)高于軟件模擬的I2C;一般也較為穩(wěn)定,但
    發(fā)表于 12-28 19:14 ?81次下載
    硬件<b class='flag-5'>I2C</b>與模擬<b class='flag-5'>I2C</b>

    I2C子系統(tǒng)debug的常見問題

    常見問題 1、同一條 i2c bus 上所有的外設(shè)的 i2c addr 要不同 1)相同 address 注冊(cè)時(shí)沖突 [ 2.059184 ][xxx]i2c i2c- 1 :Fail
    的頭像 發(fā)表于 07-22 14:52 ?867次閱讀

    I2C子系統(tǒng)SW Architecture

    I2C SW Architecture 【driver 驅(qū)動(dòng)層】由普通驅(qū)動(dòng)工程師負(fù)責(zé),【i2c 核心層】由 Linux 提供,【i2c 核心層】以下由芯片原廠負(fù)責(zé)。 I2C
    的頭像 發(fā)表于 07-22 16:01 ?874次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>子系統(tǒng)</b>SW Architecture

    I2C子系統(tǒng)幾個(gè)主要的結(jié)構(gòu)體

    I2C Data Structure 我們要搞懂一個(gè) Linux 子系統(tǒng),必須研究它的數(shù)據(jù)結(jié)構(gòu),搞懂每個(gè)結(jié)構(gòu)體存儲(chǔ)了什么東西,才能梳理清楚該子系統(tǒng)的架構(gòu)。 I2C
    的頭像 發(fā)表于 07-22 16:04 ?742次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>子系統(tǒng)</b>幾個(gè)主要的結(jié)構(gòu)體

    I2C轉(zhuǎn)UART子系統(tǒng)設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《I2C轉(zhuǎn)UART子系統(tǒng)設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 08-28 10:27 ?0次下載
    <b class='flag-5'>I2C</b>轉(zhuǎn)UART<b class='flag-5'>子系統(tǒng)</b>設(shè)計(jì)