在应该收到 ACK 信号的时候没有收到 ACK 信号,i2c controller 就会产生一个 ACK error 的中断,告诉 i2cdriver 发生了 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 是否已经上电使能,以及正确的 init
3、检查 i2c speed 是否适配,speed 大于 device 支持的 max speed 也会造成 ACKError。降低速度,如果仍然可以工作的话就说明是 clk 相关问题。
4、检查 i2c device 信号电平是否与 AP 匹配。
5、GPIO check 以下几个部分
GPIO 电流驱动能力
GPIO 工作模式是否是 I2C 模式
GPIO 是否有内部上拉电阻
GPIO 默认电平状态
从 i2c spec 看,如下情况 NACK
I2C 写
主机向从机发送数据时,最后一个 Byte数据时,从机可能应答也可能非应答,但不怎样主机都可以产生停止条件,如果主机在向从机发送数据(甚至包括从机地址在内)时检测到从机非应答,则会及时停止传输。
I2C 读
主机从从机接收数据时,最后一个 Byte 数据时,主机不回应该从机,即 NACK.
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
相关推荐
................................................... 3518 F/S 模式I2C 总线系统的双向电平转换器
发表于 04-09 18:34
I2C 随机读 操作过程 开始--发送器件地址(写)--ack--发送字节地址--ack--开始--发送器件地址(读)--ack--接受数据--no
发表于 12-05 08:59
本帖最后由 小飞侠123141 于 2017-7-10 17:01 编辑
求助,用GPIO模拟I2C收不到ACK测量的波形如下(第一次发帖不知道放上去没)因为是测试,所以只有 起始位 从机地址
发表于 07-10 11:03
你好。我是新的图片,我希望你们可以给我和一个有用的建议。我用PIC24FV32 KA301 I2C外设编辑寄存器POE PSE TPS23 84.i某处(?)下载了由Microchip制作的这个
发表于 09-07 15:08
嗨,我已经产生了I2C驱动程序和谐。我需要在EEPROM中连续地在5个不同的位置写入数据。但是我的代码挂在DRVIII2CYBuffRyEngEngError事件中。如果
发表于 10-22 14:58
嗨,我正在用一个PIC32 MZ2048 EFM100进行I2C从机处理,我注意到在主读操作期间的一些错误。我发现,当问题发生时,从中断发生在第八个SCL时钟(TBF为空)之后,而不是第九个时钟
发表于 11-19 10:17
以MCC生成的I2C从配置为起点,也是ISR(随着修改次数的增加)!读取和写入奴隶产生相同的结果:地址被复制到ADB0,ADRIF被设置。但是从来没有ACK:SDA在地址字节之后仍然很高。查看
发表于 11-28 16:45
的情况下工作在I2C链接上,但是当我使用STM8作为从属时它失败了。时钟和数据线在示波器上看起来不错,漂亮和正方形。我比较了32-32和32-8的信号,在32-8中'ACK'脉冲保持高电平而不是拉低
发表于 12-18 16:29
这是adpd142驱动,采用了模拟I2C进行通讯,I2C的传输速率为80K,ADPD142供电为1.8V和5V电压正常,并且I2C接口通过UM3212,将I2C的1.8V变为3.3V与
发表于 12-28 09:56
)。TI的用于构建I2C树状图的产品组合可以分为三个功能,如图1所示:缓冲转换器、I / O扩展器和I2C开关。 图1:具有各种I2C功能设备的电子
发表于 07-23 04:45
我的项目用到了I2C总线,开始用F28069自带的模块工作在中断方式和轮询方式,结果2者都不能出数据,无奈我用GPIO仿真I2C,在示波器里发现,传感器ACK响应了,但是
发表于 05-13 08:59
文章目录linux I2C子系统框架在设备树中添加从设备信息,mpu5060I2C driver 程序的编写mpu6050 I2C程序具体实现linux
发表于 02-10 06:06
文章目录I2c协议和时序I2c介绍I2c硬件连接I2c总线的信号I2c总线写时序I2c总线读时序
发表于 02-10 06:51
在 HAL_I2C_Mem_Read 中观察到 STM32 I2C Hal 驱动程序中存在问题,但其他读取命令中可能存在相同问题。我观察到有时 I2C 主机无法确认并发送停止条件的问题,之后 SDA
发表于 12-30 06:06
the ack is successfully receive.I have change the pin of i2c, but it does not work!the board
发表于 03-07 08:45
评论