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

前言

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

数据解析

示波器配置

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

在这里插入图片描述

数据解析

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

建议

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

参考

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

感谢人员

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/144877.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

API网关与社保模块

API网关与社保模块 理解zuul网关的作用完成zuul网关的搭建 实现社保模块的代码开发 zuul网关 在学习完前面的知识后&#xff0c;微服务架构已经初具雏形。但还有一些问题&#xff1a;不同的微服务一般会有不同的网 络地址&#xff0c;客户端在访问这些微服务时必须记住几十甚至…

冲刺学习-MySQL-基础

基础 数据类型 常见数据类型的属性 整型 TINYINT、SMALLINT、MEDIUMINT、INT&#xff08;INTEGER&#xff09;和 BIGINT 可选属性 M&#xff1a;表示显示宽度&#xff08;从MySQL 8.0.17开始&#xff0c;整数数据类型不推荐使用显示宽度属性&#xff09;UNSIGNED&#xff1…

【c++】简单了解运算符重载

引例 class Integer{ public:Integer(int num):_num(num){}int& getValue(){return _num;} private:int _num; };现在有两个Integer对象a,b。想让a和b相加得到的结果给对象c&#xff0c;现在可以肯定的是cab编译后肯定会报错 请注意这条信息no match for operator (oper…

家庭燃气表微信抄表识别系统

1.背景需求 目前家里燃气度数的读数上报&#xff0c;每个月在社区微信群里面将手机拍摄的燃气表读数截图&#xff08;加住址信息水印&#xff09;&#xff0c;发到群里给抄表员。 2.总体设计 设计目标 功能一&#xff1a;手机上随时可以远程采集读数图片&#xff08;自动加住…

Uniapp 酷炫钱包页面模板 直接引用

使用教程 直接引用Vue页面 即可 <template><view><TCqianbao></TCqianbao></view> </template> <script>import TCqianbao from /uni_modules/TC-qianbao/pages/index.vueexport default {components:{TCqianbao},} </script&…

云服务器搭建Hadoop分布式

文章目录 1.服务器配置2.Java环境3. 安装Hadoop4. 集群配置5. 编写集群的启动脚本 1.服务器配置 服务器主机名配置115.157.197.82s110核115.157.197.84s210核115.157.197.109s310核115.157.197.31s410核115.157.197.60gracal10核 所有的软件安装在/opt/module下&#xff0c;软…

GIL全局解释器锁

文章目录 GIL全局解释器锁一、引入&#xff1a;二、常用的Python解释器种类有哪些&#xff1f;1、CPython2、IPython3、PyPy4、Jython5、IronPython 三、GIL介绍四、GIL与Lock五、GIL与多线程总结 GIL全局解释器锁 一、引入&#xff1a; 首先要明白&#xff0c;GIL并不是Pyth…

工作中几个问题的思考

对于需要并行多公司并行处理的任务&#xff0c;方案是什么&#xff1f; 多线程、并行流、并发库&#xff08;ExecutorService、Futrue、Callable&#xff09;&#xff0c;分布式计算&#xff08;1&#xff09;按照公司ID分片 &#xff08;2&#xff09;按照业务类型分片 处理…

【驱动开发】创建设备节点、ioctl函数的使用

一、控制三盏灯的亮灭 头文件&#xff1a; #ifndef __HEAD_H__ #define __HEAD_H__ typedef struct{unsigned int MODER;unsigned int OTYPER;unsigned int OSPEEDR;unsigned int PUPDR;unsigned int IDR;unsigned int ODR; }gpio_t; #define PHY_LED1_ADDR 0X50006000 #def…

Apache Jmeter测压工具快速入门

Jmeter测压工具快速入门 一、Jmeter介绍二、Jmeter On Mac2.1 下载2.2 安装2.2.1 环境配置2.2.2 初始化设置 2.3 测试2.3.1 创建JDBC Connection Configuration2.3.2 创建线程组2.3.3 创建JDBC Request2.3.4 创建结果监控2.3.5 运行结果 2.4 问题记录2.4.1 VM option UseG1GC异…

Power BI 傻瓜入门 5. 准备数据源

本章内容将介绍&#xff1a; 定义Power BI支持的数据源类型探索如何在Power BI中连接和配置数据源了解选择数据源的最佳做法 现代组织有很多数据。因此&#xff0c;不用说&#xff0c;微软等企业软件供应商已经构建了数据源连接器&#xff0c;以帮助组织将数据导入Power BI等…

PAM从入门到精通(二十)

接前一篇文章&#xff1a;PAM从入门到精通&#xff08;十九&#xff09; 本文参考&#xff1a; 《The Linux-PAM Application Developers Guide》 先再来重温一下PAM系统架构&#xff1a; 更加形象的形式&#xff1a; 七、PAM-API各函数源码详解 前边的文章讲解了各PAM-API函…