• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

IIC应答机制

445465396@qq.com 2018-03-13 浏览量:1143
前两天给客户支持时发现由于IIC读取数值时主机没有发送应答信号,导致读取数值没有成功。而在IIC通讯中,确实有读数据可以NACK的存在,请问在哪些类型的芯片通讯可以读取数据NACK,哪些芯片通讯时必须ACK?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 基本上多数芯片的I2C通讯都是需要应答信号的。至于你说的ACK和NOACK信号,应该是在通讯时主设备读取从设备数据时主设备给从设备发送的应答信号。这两个信号不是按芯片分的,而是根据芯片数据手册,该回什么应答就用哪个应答。

    说一下我自己遇到的几款芯片中的应答方式,一般I2C通讯流程是先发送一个起始信号,主设备给从设备发送从设备地址(包含写标志),从设备应答主设备,主设备再发送要读取的寄存器地址,从设备应答主设备,主设备再次发送起始信号,主设备发送设备地址(包含读标志),从设备应答主设备,并将该寄存器的值发送给主设备;

    这时候,主设备如果只需要这一个数值,就要结束应答,要先发送一个NOACK应答信号,再发送结束信号;如果主设备要读取的数据大于一个字节,就需要发送ACK,而不是NOACK,应答信号,然后主设备再次接收从设备发送的数据,依次类推,直到主设备读取的数值是最后一个字节数据后,就需要主设备给从设备发送NOACK应答信号,再发送结束信号,结束I2C通讯,并释放I2C总线。

    还有什么地方不懂的,再沟通,推荐一个博客:http://www.cnblogs.com/microxiami/p/8527464.html

    • 发布于 2018-03-13
    • 举报
    • 评论 2
    • 0
    • 0
电子老工程师 回复了 :经过查找,该型号合适的替代均无或,没有其他的替代推荐 回复
电子老工程师 回复了 :没有有现货替代型号。 回复

其他答案 数量:8
  • 读数据一般不会有忽略应答位的吧……一般是写数据的时候才会忽略……标准一点的iic协议主机读取从机的时候主机都被严格要求应答位,因为这是决定数据是否正确的很重要,否则从机会重发或者其他操作,我感觉更像是主机的协议出了问题。
    • 发布于2018-03-13
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :1.BCX56-16和BCX56两个参数和封装均一致,可以相互替换,但两个型号均不是完整的可订购型号,需要加上尾缀,加上不同的尾缀表示包装方式不同,2.BCX56-16和BCX56-10TF两者功率最大值不同,跃迁频率也不同,客户需要根据实际设计进行替换,我将规格书发你扣扣,你可以发给客户在进行确认 回复

  • 我玩了I2C器件这么久的经验,像EEPROM这种外设就必须ACK才可以正常通信,而像DS3231、MPU6050这种传感器就不需要。

    • 发布于2018-03-14
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :TCTPL1A226M8R Rohm Semiconductor 请参考。 回复

  • 需不需要ack是需要查看IIC从设备的手册,看看有没有这方的要求就知道了
    • 发布于2018-03-15
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :没有现货库存的替代型号。 回复

  • 在实际应用中,并没有强制规定数据接收方必须对于发送的8位数据做出回应,尤其是在Master和Slave端都是用GPIO软件模拟的方法来实现的情况下,编程者可以事先约定数据传送的长度,slave不检查NACK,有时可以起到减少系统开销的效果。但是如果slave方是硬件i2c要求一定要标准的NACK,master方是GPIO软件模拟i2c并没有正确的发送NACK,就会出现“slave收不到stop”导致i2c挂死。

    具体设备是否需要发送ACK,要看下使用手册是否有强制要求。一般对数据准确性要求高的会有ACK的要求,确保数据准确传送。

    • 发布于2018-03-16
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :有尾缀的是原厂完整订购型号,代表包装,Reel 11" Q3/T4, LargePack, 回复

  • 设备手册中应该有明确的的定义,查看手册中的时序图就可以判定是否发ACK。
    • 发布于2018-03-16
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :1.停产,2.ALM2403-Q1这个系列是原厂推荐的替代 回复

  • 查看数据手册,上面有时序图可以看到是否需要ACK
    • 发布于2018-03-17
    • 举报
    • 评论 0
    • 0
    • 0

  • I2C通信一般需要应答的,尤其是双机通信的时候。当然,有些设备只支持读取不支持写入的,可以不用应答,具体还是要看datasheet
    • 发布于2018-03-17
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :定制线缆组件,国产没有替代型号。 回复

  • 看芯片手册怎么定义的,理论必须有nack,但是很多厂家也用ack
    • 发布于2018-03-31
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :PPPC202LFBN-RC Sullins Connector Solutions 请参考。 回复

相关问题

问题达人换一批

IIC应答机制