如何利用示波器解析I2C数据

前言

(1)如果有嵌入式企业需要招聘校园大使,湖南区域的日常实习,任何区域的暑假Linux驱动实习岗位,可C站直接私聊,或者邮件:[email protected],此消息至2025年1月1日前均有效
(2)最近做I2C设备移植过程中,出现了一些小问题。为了方便定位到底是硬件问题还是程序有问题,根据师傅的提醒下,打算使用示波器对I2C数据进行解析。

数据解析

示波器配置

(1)关于示波器如何使用,以及如何接线我就不赘述了。因为不同的示波器使用不太一样,具体看示波器的操作手册。不过下面这两个配置基本都是一样的。
<1>设置捕获SDA下降沿(也就是黄色的线)。因为I2C规定,SCL处于高电平时,SDA由高到低变化,这种信号是起始信号。
<2>没记错的话,我设置的捕获宽度为100us,如果宽度太低,最后的结束信号抓不到。这个建议你上机实测,也不一定要100us,看你实测结果。I2C协议规定,SCL处于高电平,SDA由低到高变化,这种信号是停止信号。

如何利用示波器解析I2C数据_第1张图片

数据解析

(1)根据I2C协议规定,当主机发送完起始信号之后,就可以马上发送8bit的数据,然后从机发送1bit的回应信号。这种主从机交互都是8bit数据+1bit回应信号。因此,你们可以看到,我每个数据之间都间隔了1个SCL的高电平。
(2)之后就可以解析数据了,根据I2C协议规定,SCL为高电平时,SDA必须保持稳定,此时的SDA电平即为有效数据。
(3)至于回应信号,I2C规定,0为ACK,1为NACK

(4)之后就是体力活了,根据I2C从机设备手册上的协议规范,我们即可成功解析数据。

如何利用示波器解析I2C数据_第2张图片

如何利用示波器解析I2C数据_第3张图片

建议

(1)当时我使用示波器解析I2C数据,是因为不知道逻辑分析仪可以自动帮我们解析。。。。
(2)此事还被大佬们狠狠的嘲笑,如果有逻辑分析仪,建议逻辑分析仪,会方便很多。

参考

(1)一文看懂I2C协议;
(2)AHT20 技术手册;

感谢人员

(1)带我的师傅 — 李工。
(2)肯哥交流群若干大佬们。

你可能感兴趣的:(硬件知识,嵌入式硬件)