- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
bug分析总结精选
bug分析总结
1、I2C 协议: 2
2、I2C时序 3
3、I2C协议中文版本 7
二、I2C协议中遇到的BUG分析 8
1、项目A72A中时序问题 8
2、T03 Light sensor 无ACK问题 8
3、S26I 电池以及F01电池问题 9
4、现象ACK后面的半高的小毛刺分析 10
5、T05C G-sensor无数据问题 11
三、I2C协议使用注意事项 12
1、I2C level shift 普通MOS以及level shift IC 12
2、I2C使用注意事项以及bug总结 15
文档整理人:袁刚 2011年12月2日
一、I2C通信协议
1、I2C 协议:
I2C 总线支持任何 IC 生产过程。两线的串行数据 SDA 和串行时钟SCL 线在连接到总线的器件间传递信息,每个器件都有一个唯一的地址识别, 而且都可以作为一个发送器或接收器,由器件的功能决定,很明显LCD驱动器只是一个接收器,而存储器则既可以接收又可以发送数据。除了发送器和接收器外器件,在执行数据传输时也可以被看作是主机或从机,如下表 1。主机是初始化总线的数据传输并产生允许传输的时钟信号的器件,此时任何被寻址的器件都被认为是从机。
表格1
① I2C总线的一些特征:
? 只要求两条总线线路:一条串行数据线 SDA 一条串行时钟线 SCL
? 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机从机关系软件
设定地址 主机可以作为主机发送器或主机接收器
? 它是一个真正的多主机总线 如果两个或更多主机同时初始化数据传输可以通过冲突检
测和仲裁防止数据被破坏
? 串行的 8位双向数据传输位速率在标准模式下可达 100kbit/s,快速模式下可达
400kbit/s 高速模式下可达 /s
? 片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整
? 连接到相同总线的 IC 数量只受到总线的最大电容 400pF 限制
②I2C总线的传输:
I2C 总线是一个多主机的总线,这就是说可以连接多于一个能控制总线的器件到总线,由于主机通常是微控制器,让我们考虑以下数据在两个连接到 I2C 总线的微控制器之间传输的情况。
这突出了 I2C 总线的主机-从机和接收器-发送器的关系,应当注意的是,这些关系不是持久的,只由当时数据传输的方向决定传输数据的过程如下 :
A、假设微控制器 A 要发送信息到微控制器 B
? 微控制器 A寻址微控制器 B
? 微控制器 A发送器 发送数据到微控制器 B接收器
? 微控制器 A 终止传输
B、 如果微控制器 A 想从微控制器 B 接收信息
? 微控制器 A寻址微控制器 B 从机
? 微控制器 A接收器从微控制器 B发送器 接收数据
? 微控制器 A 终止传输
在 I2C 总线上产生时钟信号通常是主机器件的责任。当在总线上传输数据时,每个主机产生自己的时钟信号,主机发出的总线时钟信号只有在以下的情况才能被改变:慢速的从机器件控制时钟线并延长时钟信号,或者在发生仲裁时被另一个主机改变 。
③I2C数据传输中得信号:
I2C总线在传送数据过程中共有三种类型信号
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号: 接收数据的从机在接收到8bit数据后,向发送数据的主机发出特定的低电平脉冲,表示已收到数据。主机向受控单元发出一个信号后,等待受控单元发出一个应答信号,主机接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
④I2C数据的有效性:
只有在SDA数据必须在时钟的高电平周期保持稳定,数据线的高或低电平状态只有在 SCL 线的时钟信号是低电平时才能改变。
图1
⑤I2C总线的优点:
? 极低的电流消耗
? 抗高噪声干扰
? 电源电压范围宽
? 工作的温度范围广
? 故障诊断和调试都很简单 故障可被立即寻迹
? 在系统中增加或删除 IC 不会影响总线的其他电路
2、I2C时序
I2C
的时序主要可以分为:总线空闲状态、启动信号、停止信号、数据传输位、应答信号、
插入等待时间、重启动信号、时钟
文档评论(0)