I2C协议关于ack和nack的思考

  • clock时钟是由master端产生的,而不管master还是slave都可以发送ack/ack。ack/nack由receiver产生。
  • 当master是发送器,slave是接收器时,ack/nack由slave接收器产生。如,在地址传输周期内,和master进行写操作的周期内,ack/nack是由slave接收器产生。
  • 当master是接收器,slave是发送器时,ack/nack由maste接收器产生。如master进行读操作的周期内,ack/nack是由master接收器产生。
  • 产生接收器nack的几种情况
    • 当master是接收器的最后一个传输周期,master接收器会发送Nack,通知 slave发送器传输结束,接着产生stop条件。
    • 在传输过程中,接收器无法再接收任何数据字节。如当master发送器发送写操作,而TX fifo已经满了,则slaver接收器会发送nack。
    • 在传输过程中,接收器接收到它无法理解的数据或命令。
    • 接收器无法接收或发送,因为它正在执行其他,尚未准备好开始与主机通信
    • 总线上没有和主机发送的地址相互匹配的接收器,以至于主机没有寻找到设备。

I2C协议关于ack和nack的思考相关推荐

  1. I2C中关于ACK和NACK的几点东西

    I2C的数据格式 无数据(空闲):SCL=1,SDA=1: 开始位(Start):当SCL=1时,SDA由1向0跳变: 停止位(Stop):当SCL=1时,SDA由0向1跳变: 数据位:当SCL由0向 ...

  2. i2c信号的ACK与NACK

    我们平时在调试I2C的时候可能很少去关注NACK信号,只知道如果Master发送数据,MSB先发,LSB后发,连续发送一个字节(8个bit),之后Slave会回复一个ACK信号,但是有时I2C sla ...

  3. I2C总线时序以及ACK和NACK(NAK),SCL被从机拉低?

    1.I2C协议详解及裸机程序分析 - 简书(通俗易懂) 根据上图,我们首先设置IICCON(来设置时钟),时钟源是PCLK(是50MHZ)太快了我们需要设置这个分频系数,把时钟降低,降低到我们想要的S ...

  4. I2C的ACK和NACK

    1.I2C 的SCL 始终是由Master产生. 2.I2C 的 ACK和 NACK 始终是由数据的接收方产生,数据的接收方可以是 Master 也可以是 Slave. 3.如果是 Master 单纯 ...

  5. 【数字IC】深入浅出理解I2C协议

    深入浅出理解I2C协议 一.什么是I2C协议 二.I2C,SPI,UART协议的区别 三.I2C的信号线 四.I2C的连接方式 4.1 单主设备,单从设备 4.2 单主设备,多从设备 4.3 多主设备 ...

  6. I2C协议+实现源码

    文章目录 摘要 I2C通信协议 简介 补充 空闲状态 start和stop信号 应答信号 数据有效性规定 数据传输 延时 I2C协议的实现源码 硬件说明 头文件 sys.h 主函数 初始化I2C 产生 ...

  7. I2C协议---I2C时序图解析

    一.I2C协议简介   I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART.CAN 等通讯 ...

  8. STM32CubeIDE开发(十六),I2C协议采集传感器数据(SHTC1、LTR-553ALS、BMP280、LSM6DSL、MMC3680KJ)

    目录 一.I2C总线协议 二.I2C协议的两种从机应对方式 三.传感器信息 四.工程创建及引脚配置 五.STCH1传感器实现 六.LTR_553ALS传感器(light sensor [ALS] an ...

  9. 12 .IIC协议(51单片机和C语言模拟I2C协议)

    文章目录 一:什么是i2c 1.1 协议概述 1.2 特点 简单性和有效性. 多主控(multimastering) 1.3 构成 二 如何实现I2C 2.1 起始信号 2.2 终止信号 2.3 应答 ...

  10. I2C协议——物理层和协议层

    I2C协议简介 I2C 通讯协议(Inter-Integrated Circuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART.CAN等通讯协议的外部收发设 ...

最新文章

  1. 改动Androidproject的名称(非Eclipse重命名)
  2. 【OpenGL】五、Visual Studio 2019 配置 GitHub ( 提交代码 )
  3. hibernate EJBQL QBC QBE
  4. C# TreeView 连续点击 不触发AfterCheck事件
  5. Mac安装RocketMQ和可视化控制台教程
  6. OSPF单域实验报告
  7. 特斯拉在以色列开售Model 3 比国内贵出30%!
  8. 基于实验数据的轮胎模型
  9. 数据库连接软件SQLyog 13.1.7 免费下载安装
  10. 微PE工具箱四合一下载并安装
  11. USB 格式化,提示The volume is too big for FAT32(卷对FAT32来说太大)
  12. OPPOA83_OPPOA83T_官方线刷包_救砖包_解账户锁
  13. Error: No EPCS layout data - looking for section [EPCS-C84018]
  14. error: metrics not available yet
  15. 借助百度api通过经纬度查询位置信息
  16. b51显微镜_1112-揭开微观世界的奥秘--显微镜发明的科学历程
  17. RHCE7 -- systemctl命令
  18. 2021-10-12 SpringMVC实现JSON数据转换,AJAX失效(解决)
  19. javac: 无效的标记
  20. 题解 乃爱与城市拥挤程度

热门文章

  1. 让Acrobat5支持Office XP(转)
  2. Unity:发布WebGL遇到的坑
  3. 设置公众号字体大小不跟随微信浏览器字体大小变化
  4. unity 编辑器模式下修改屏幕分辨率
  5. NPN与PNP的区别
  6. vue项目报错:Uncaught SyntaxError: Unexpected token
  7. miktex配置cjk中文
  8. 事关美亚柏科未来发展!智慧城市建设注入新动力
  9. Linux中rpm详解
  10. SharePoint 模拟审批Nintex工作流