历史上的今天
返回首页

历史上的今天

今天是:2025年01月30日(星期四)

2020年01月30日 | 示波器和I2C时序波形图的关系分析

2020-01-30 来源:elecfans

I2C简介

I2C总线只需要两条线,一条SDA数据线,一条SCL时钟线;根据这两条线的高低电平、上升沿、下降沿就可以实现主机与I2C设备的通讯


I2C与示波器

对于I2C总线的数据,我们要用到示波器,这样我们才能抓取到信号,而且必须同时采集SDA和SCL的数据;该如何抓取呢?我这边的方式是将示波器调成边下降沿触发模式(因为开始信号是SDA下降沿),并且设置成单次模式(这样抓取完一次就会stop,便于我们数据分析)


I2C时序波形图

12C要求要有一个主设备,负责发起清求和控制时钟:其它为从设备,通过设备ID地址来识别并响应主设备请求。主从设备要轮流控制SDA。一开始我没搞明白这一 ~点,直接加了写12C数据代码,然后用尔波器在SDA和SCL脚测量,却只能找到些凌乱的波形,没有预期的效果。后来把从设备按上,两边写好代码,互相有了响应,这才在示波器1:看到波形。

实例

这里我找了一个主设备往从设备写数据的例子,代码如下:

char buf[128];

int len;

strcpy(buf,“。.huz_hello_i2c/n”);

len=strlen(buf);

//deviceid: 0x3c

write_i2c(0x3c, buf , len);

接收端的代码比较简单,就不贴了

将示波器的X和Y分别接到SDA和SCL,得到波形并分析如图:

示波器和I2C时序波形图的关系分析

从图中可知时序如下:

由主机发起,在SCL为高电平时,SDA由高到低切变,形成开始信号;

接着是7位地址和一位读写标志,这里7位地址为0111100,即0x3c,正是我们代码中设置的地址ID;最后一位为0表示写操作;

接着在下一个时钟,主机以高电平状态释放SDA,这时从机响应,将SDA拉低了;

接着是两个8位数据00101110与响应,即0x2E,正是“。”号的ASCII码,符合预期输出;

还有其它数据和最后的停止位,图中被截掉了。


从图中可知,纵向一格是200mV,则SDA和SCL的电平大概就是350mV;由于信号笔上设置了信号x10,因此实际电平应该大概是3.5V(理论上应该是3.3V)。横向一格是25us,10个时钟周期大概用了4格,即4x25us=100us,平均每个时钟周期是10us,可算出传输频率为1/10us=100,000/s,即100k bps。

推荐阅读

史海拾趣

Crystal Semiconductor Corp公司的发展小趣事

近年来,随着人工智能、物联网等新兴技术的快速发展,半导体行业正面临着前所未有的变革。Crystal Semiconductor Corp积极应对这一挑战,加大了对新兴技术的研发投入,推出了一系列适应市场需求的新产品。同时,公司还加强了与上下游企业的合作,共同推动产业链的发展。

Exar [Exar Corporation]公司的发展小趣事

Exar始终注重通过收购和合并来增强自身的技术实力和市场竞争力。例如,2012年Exar收购了Integrated Memory Logic Limited(iML),这一举措加强了其在存储和数据管理领域的地位。通过收购iML,Exar获得了更多的技术资源和市场份额,为其后续的发展提供了有力支持。

Defender Security公司的发展小趣事

物联网技术的快速发展为网络安全带来了新的挑战和机遇。Defender Security公司积极应对这一变化,加大了对物联网安全领域的投入。他们与多家物联网企业合作,共同研发了适用于物联网设备的安全防护方案。通过不断优化和升级产品,Defender Security成功帮助物联网企业解决了安全问题,同时也为自己带来了新的增长点。

Equinox公司的发展小趣事

随着科技的发展,Equinox意识到数字化对于提升客户体验的重要性。因此,公司开始投入大量资源建设数字平台,提供在线预约、课程购买、健康管理等服务。这些数字化功能不仅方便了客户,还提高了公司的运营效率。

Deutsch公司的发展小趣事

为了进一步扩大市场份额,Deutsch公司开始积极寻求国际合作和市场扩张的机会。公司首先通过市场调研,确定了目标市场,并制定了详细的市场拓展计划。随后,通过与当地合作伙伴建立合作关系,Deutsch公司成功进入了新兴市场。在国际市场上,公司凭借其高品质的产品和优质的客户服务,赢得了客户的信任和认可。这些努力使得Deutsch公司的市场份额逐年上升,成为电子行业的领军企业之一。

安美通(APPCON)公司的发展小趣事

安美通非常重视企业文化建设和团队建设。公司倡导创新、务实、合作的企业文化,为员工提供了一个宽松、自由、充满激情的工作环境。同时,公司还积极开展各类培训活动,提升员工的专业素养和综合能力。这些措施使得安美通的团队更加团结、高效,为公司的持续发展提供了有力的保障。

这五个故事虽然只是安美通发展过程中的一部分,但它们充分展示了安美通在电子行业中不断努力、创新、拓展的精神和成果。未来,安美通将继续秉承这种精神,不断推动公司的发展和进步。

问答坊 | AI 解惑

电视监控系统组成

闭路监控系统主要组成部分是:前端部分(产生图像的摄像机或成像装置),传输部分(图像的传输),控制部分,显示记录部分。如图所示。 1、 前端部分 CCTV的前端设备是直接完成现场图像捕捉功能的设备及其辅助设备,主要有一体化智能快球、固定 ...…

查看全部问答>

基于STM32的μC/OS Ⅱ移植例程

例程大小:1583K 例程说明: 1.改移植和模板工程不包括操作系统核ucosⅡ的源代码,如需使用请向操作系统的供应商联系或者网上下载免费的源代码。 2.本移植使用的是 ucosⅡ 2.83版本,需要在OS文件夹下添加的操作系统源代码包括如下文件: os_fla ...…

查看全部问答>

单片机外围电路设计

在用单片机设计的过程中,难免要进行一些外围电路设计。这里我收集了一本不错的单片机外围电路设计的电子书,特的拿出来和大家一起分享!!!!!!!!!…

查看全部问答>

请教我读一读这个密码锁程序

在网上找了个密码锁程序来学习,用KEIL编译,开始不能生成HEX文件,后来找到原因了,有些是数字0打成了字母O,有些是漏了冒号! 现在想问一下,这个程序应该怎样读?密码是如何设置的?刚学,搞不懂. org 0000h AJMP START ORG 0030H START:ACALL BP ...…

查看全部问答>

S3C2440+ADS+H-JTAG+AXD无法调试

在AXD中Load Image后无法正常加载,加载后的程序如下                __main        [0x00000000]   andeq    r0,r0,r0        ...…

查看全部问答>

片内flash和片外flash?

刚接触开发板, 不清楚什么是片内RAM和片外RAM,以及片内Flash和片外Flash. 请大家解释一下, 我用的是philips的板子. 难道LPC2214处理器内部也有ARM和Flash吗? …

查看全部问答>

【编程】请教磁盘数据如何擦除

最近需要开发一个擦除硬盘的工具,实现的功能就是将一整块硬盘挂到一台机器上,比如说是Windows系统的机器上,然后利用该工具将整块硬盘的数据清除,而且清除后不可以再恢复。并且这块硬盘不管它是在什么系统下用的硬盘(比如AIX、HP、SCO等等), ...…

查看全部问答>

大侠,能给个Finsh shell移植到stm32的例子吗

或者给个移植的文档也行啊,radio里的东西感觉有点乱啊,谢谢了…

查看全部问答>

为什么UC3843驱动MOS管的波形,只有几个周期有波形,其它时间没有?

我现在用UC3843控制MOS管来做boost升压电路,测量UC3843的6脚输出波形发现,只有几个周期有波形,其它时间输出波形一直为低。24VDC升压到120VDC,0.25A,开关频率为220K。请问这是为什么? …

查看全部问答>

TFT怎样“随机”显示字库中的“汉字

我知道怎样得到随机数,但是不知道怎样将这个数和字库中的汉字对应起来并显示出来? 我的汉字显示函数为: LCD_PutString(200,210,\"确\",Red,Blue2);//显示“确”字 上面的语句中“确”字是用引号括起来的。例如“确”字在字库中排在第一个,而 ...…

查看全部问答>