0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

I2C总线信号与测试案例(二)

冬至子 来源:羊驼犀牛的测试随笔 作者:羊驼犀牛 2023-11-20 15:49 次阅读

前面一章讲解了I2C总线的基本原理,那么在电路设计完成打板回来,肯定要做信号测试来验证设计;

1、梳理测试内容,根据电路图上梳理出I2C总线,包括每一路I2C一共有几个主机,几个从机,以及从机的地址信息

2、使用示波器的I2C协议分析功能或者其他I2C解析工具,将总线上的实时数据抓取解析,看一下是否包括电路设计上的所有器件地址,或者是有多余的地址信息;

因为小编在测试中遇到太多实测地址比设计少的,这个好理解,一个是冗余设计,当前没有使用,一个原因是软件上漏掉了;此外,实测到设计上没有的地址信息,这个大概率发生在后期改版过程中,硬件设计更换了总线上的器件,地址也给到软件做更改,但是软件代码上没有将之前的不再使用的地址信息删掉,导致总线还是存在访问此地址信息的请求数据;

图片

图片

无论是多了还是少了地址,对于测试来讲都是有问题的,必须搞清楚,是问题的话,就分析解决,不是的话,就做个澄清说明;

3、整理各个器件对于I2C总线的电平与时序要求;详细如下:

频率:指的是SCL的时钟频率,测量这个参数的意义在于判定总线是单一的速率还是多种速率模式混合,其次确定了时钟频率,有助于后面时序参数的确认,因为不同速率数据时序的要求是不一样的。

正/负脉宽:SCL的高低电平宽度,因为I2C是高电平进行数据采样,低电平时SDA电平变化,所以,无论高电平还是低电压都一定有个最小值来满足采样和电平变化;

逻辑高/低电平:SCL和SDA均要测量,只有测量值满足高低电平的要求,才真正意义上能被识别为逻辑1或0;此处要注意的是,即使总线电平是同一个VCC,不同器件对于逻辑电平门限也是不太一样;

上升/下降时间:指的是SCL和SDA的边沿在高低电平门限之间的持续时间,一般取30%~70%,这也只是一个相对的经验值,因为大多数的I2C器件逻辑高低电平门限是30%Vcc和70%Vcc;追求准确度来说,要根据实际器件的高低电平门限值来卡这个时间;前文讲到总线电容和上拉电阻的值会影响上升时间的值,若测试有问题,可以通过调节上拉电阻的值来改善。

Vmax/Vmin:总线数据的最大电平和最小电平值;主要看是否有上下过冲,若过冲超过芯片要求,很可能会损坏芯片。

Tbuf:帧间隔时间,即SDA线的上一帧传输结束到下一帧开始之间的间隔时间。

开始标志位的保持时间(tHD:STA):在SCL为高电平时SDA由高变低的边沿到SCL第一个下降沿的时间。

结束标志位的建立时间(tSU:STO):在SCL为高电平时SDA由低变高的边沿到SCL前一个上升沿的时间。

重复起始标志位的建立时间(tSU:STA):在第9个时钟之后。在SCL为高的上升沿到SDA的下降沿之间的时间间隔。

数据建立时间(tSU:DAT):一个比特周期内,SDA变化沿到SCL上升沿的时间间隔。

数据保持时间(tHD:DAT):一个比特周期内,SDA变化沿到SCL下降沿的时间间隔。

图片

4、搭建测试环境,实操测试

  • 测试所需设备:示波器(最好有协议分析软件)、示波器探头(有源探头优选)、待测DUT(加载I2C总线通讯的软件)
  • 选择信号测试点:测量写信号,在从器件端靠近芯片pin脚;测量读信号,在主器件端靠近芯片pin脚;
  • 注意事项:探头的接地线尽可能短,避免引额外电感量影响测试准确性。

下面以实际的例子来演示:

  • 待测I2C总线只有一主一从,从机地址为 0x39,用示波器抓取总线数据并解析,确认是只有0x39地址的数据;

图片

  • 主从器件的I2C时序要求

图片

图片

常见问题:

1、上升下降时间不满足

更改上拉电阻的阻值

2、建立保持时间不满足

①是否速率太低,调高至fast mode或者更高速率看一下

②数据SDA变化沿调整,前移或者后移

3、SDA边沿有台阶

图片

①一般发生在主从对总线控制的切换时

②若芯片内部有上拉,外部还上拉至Vcc,那么在主机释放总线后会被内部上拉电阻分压至台阶电平,然后再被从机拉低

4、我最开始学习I2C总线,对于总线协议了解的不清楚,造成了一个误解如图所示红的框出来的波形,起初以为像第一张图里脉宽很小,电压也不高的是毛刺信号,第二张的是数据信号;其实都不对,两张图片里的是同一个东西,即应答信号前释放总线造成的;为什么电平与脉宽大小不一,是跟上拉电阻和从器件响应时间决定的。上升时间长的话,主机释放总线,电平从低开始缓慢升高,在还未升至Vcc之前,从机开始应答,拉低总线,那么就很像毛刺;若上升时间很快,从机还没响应之前就会有一段时间的高电平;

图片

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 上拉电阻
    +关注

    关注

    5

    文章

    345

    浏览量

    30258
  • 示波器
    +关注

    关注

    111

    文章

    5650

    浏览量

    181775
  • I2C总线
    +关注

    关注

    8

    文章

    357

    浏览量

    60408
  • SDA
    SDA
    +关注

    关注

    0

    文章

    122

    浏览量

    27554
  • SCL
    SCL
    +关注

    关注

    1

    文章

    238

    浏览量

    16875
收藏 人收藏

    评论

    相关推荐

    I2C总线信号测试案例(一)

    I2C bus是Inter-IC bus的缩写,意思是IC器件之间的通讯总线I2C 总线的特点如下
    的头像 发表于 11-20 15:45 739次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>总线</b><b class='flag-5'>信号</b>与<b class='flag-5'>测试</b>案例(一)

    i2c总线规范

    1992 I2C 总线规范的这个版本有以下的修正? 删除了用软件编程从机地址的内容因为实现这个功能相当复杂而且不被使用? 删除了低速模式实际上这个模式是整个I2C 总线规范的子集不需要
    发表于 08-13 17:18

    I2C规范,I2C总线原理

    I2C规范,I2C总线原理1 序言
    发表于 04-09 18:34

    I2C总线彩电的检修

    中各智能芯片的总线控制,它是一种高效的串行数据传输控制系统。I2C总线是双向线制,它包含数据线SDA和时钟线SCL。彩电正常工作时各种信号
    发表于 09-05 10:56

    I2C总线协议详解

    总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。I2C总线工作原理总线的构成及
    发表于 02-01 09:56

    I2C总线信号时序总结

    来源 网络总线空闲状态 I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空
    发表于 06-14 15:00

    浅谈I2C总线

    I2C 接口和 SPI 接口的作用相同,但者的使用方法有些不同。 I2C 总线用两根线来连接多支路总线中的多个设备。这种
    发表于 11-30 11:50

    I2C总线是什么

    先简单的说明以下I2C总线I2C 总线是一种串行数据总线,只有
    发表于 07-16 06:20

    I2C总线是什么

    I2C总线I2C总线(读做“IC”或“I2C
    发表于 07-21 09:03

    总线协议I2C

    总线协议I2C (又称I2C、IIC等)I2C(Integrated Circuit)是两线式半双工串行总线由数据线SDA和时钟SCL构成一
    发表于 08-19 08:18

    I2C总线简介

    1、I2C总线简介I2C是两线式串行总线,用于连接微控制器及其外围设备。I2C总线最主要的优点是
    发表于 08-20 08:25

    I2C总线的相关资料推荐

    及外围设备。I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。物理层1)它只使用两条总线线路 :一条双向串行数据线(SDA) ,一条串行时钟线 (SCL)。见图
    发表于 11-29 06:41

    I2C总线的原理是什么

    采用串行总线技术可以大大简化硬件的设计,体积减少,可靠性高。常见的总线I2C(inter IC bus),单总线,SPI总线
    发表于 01-18 07:36

    I2C总线的学习资料分享

    数据线,为OD门,与其它任意数量的OD与OC门成\线与\关系。I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平(SDL=1;SCL=1)。连到总线上的任一器件输出的低电平
    发表于 01-19 08:05

    I2C总线简介

    I2C 简介I2C 是双线双向的串行总线,它为设备之间数据交换提供了一种简单高效的方法。I2C 标准是一个具有冲突检测机制和仲裁机制的真正意义上的多主机
    发表于 02-22 06:55