带示波器的单片机I2C时序图形波形分析的实验总结

电脑杂谈  发布时间:2020-04-16 00:09:11  来源:网络整理

i2c读写时序_sarscape 时序分析_i2c时序分析

带示波器的单片机的I2C时序的图形波形分析的概述. 分类: 嵌入式开发2011-02-15 23:58 5454人们阅读了评论(2)收集和报告图形通信编程工作I2C的概念和原理不在网上提供话虽如此,我只会分享我在调试两个开发方面的经验通过I2C通信的主板. I2C需要一个主设备,该主设备负责发起请求和控制时钟. 另一个是从设备,它们通过设备ID地址识别并响应主设备请求. 主设备和从设备轮流控制SDA. 起初,我不明白这一点,我直接添加了I2C数据代码,然后用示波器在SDA和SCL引脚上对其进行了测量,但我只能发现一些杂乱的波形,而没有预期的效果. 后来,连接了从属设备,在两侧都编写了代码,并且彼此响应,然后在示波器上看到了波形. 在这里,我找到了一个示例,其中主设备将数据写入从设备. 代码如下: char buf [128];英伦strcpy(buf,“ .. huz_hello_i2c / n”); len = strlen(buf); // deviceid: 0x3c write_i2c(0x3ci2c时序分析,buf len);接收端的代码相对简单,因此不会发布. 分别接收SDA和SCL的波形并进行分析,如图所示: 从图中开始,时序如下: 由主机启动,当SCL为高电平时,SDA由高电平变为低电平,形成启动信号. 然后是7位地址和一个读写标志,这里的7位地址是0111100,即0x3c,这是我们代码中设置的地址ID;最后一位为0表示写操作;然后在下一个时钟,主机以高状态释放SDA,这在从机响应时,SDA被拉低. 那么就有两个8位数据00101110和响应i2c时序分析,即0x2E,它是“”的ASCII码. 数字,与预期的输出一致;还有其他数据和最后一个停止位(已被切断).

i2c时序分析_sarscape 时序分析_i2c读写时序

从图片中可以看到,垂直方向为200mV,那么SDA和SCL的电平约为350mV;因为信号x10设置在信号笔上,所以实际电平应约为3.5V(理论上应为3.3V). 一个水平网格为25us,在10个时钟周期内使用大约4个网格,即4x25us = 100us,平均为每个时钟周期10us,传输频率可计算为1 / 10us = 100,000 / s,即100k bps. 另外,为了读取从设备的内容,基本过程是主设备首先向从设备写入命令,然后输出读取的命令,然后从设备发送数据. 该过程类似,因此将不进行详细分析. 在下面的示例中,主机首先向从机写入一个地址命令,然后重新启动并进入读取周期. 波形分析可以检测出I2C通信是否正常工作,是否符合预期,这对我们的编程,调试和诊断很有帮助


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/dianqi/article-177064-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 吴一尘
        吴一尘

        连内容都必看就一喷到底

      • 邓文旗
        邓文旗

        我们的飞机相互之间确定位置的技术手段还主要依靠罗盘和地面指示

      热点图片
      拼命载入中...