搜索
bottom↓
回复: 25

I2C遇到SDA电平不稳定,是否板子布线有问题?

[复制链接]

出0入0汤圆

发表于 2017-7-6 11:06:24 | 显示全部楼层 |阅读模式
本人最近项目画了一个板子,主控mcu为cc2640位于主板上面,与几个外围器件(气压计,加速度,陀螺仪传感器等,位于子板上,子板大小为12x32mm)通过I2C总线相连,主板布局布线如下图所示,
该图上方为2640,下方几个圆孔用于连接子板外围器件,SDA线直接高亮表示,显示长度为1770mil,SCL紧挨在旁边,SDA SCL 线宽线距都是5mil,现在遇到的问题是,I2C工作时SDA的电平不稳定,
表现形式为SDA高高低低的,特别是工作一段时间以后,SDA会降落到2V甚至更低,导致通信失败,不知道有没有人遇到过类似问题啊?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2017-7-6 11:10:40 | 显示全部楼层
加上拉电阻试试

出0入442汤圆

发表于 2017-7-6 11:19:47 来自手机 | 显示全部楼层
rwdxty 发表于 2017-7-6 11:10
加上拉电阻试试

是极。貌似lz用的片内上拉。

出0入0汤圆

 楼主| 发表于 2017-7-6 11:26:05 | 显示全部楼层
rwdxty 发表于 2017-7-6 11:10
加上拉电阻试试

已经有上拉电阻,不过是安置在子板上面,靠近外围器件,上拉电阻默认值为4.7k,也尝试用过更小的2.7K,效果都不太明显呢

出0入4汤圆

发表于 2017-7-6 11:44:41 | 显示全部楼层
用的是软件模拟?还是硬件I2C?

出0入0汤圆

 楼主| 发表于 2017-7-6 11:51:47 | 显示全部楼层
D.lovers 发表于 2017-7-6 11:44
用的是软件模拟?还是硬件I2C?

是2640自带的硬件I2C模块驱动的

出0入0汤圆

发表于 2017-7-6 11:52:45 | 显示全部楼层
把时钟频率降低一些看看

出0入0汤圆

发表于 2017-7-6 13:13:30 | 显示全部楼层
建议这种情况外围器件,分别测试一下,可能是外围设备的问题。

出0入0汤圆

 楼主| 发表于 2017-7-6 13:19:57 | 显示全部楼层
lgg88 发表于 2017-7-6 11:52
把时钟频率降低一些看看

现在i2c时钟是100K,不能再调低了

出0入0汤圆

发表于 2017-7-6 16:13:29 | 显示全部楼层
遇到过通信异常的,I2C DEVCIE会有一定的拉电流能力,增加100R左右电阻后,通信正常。仅供参考!!
另外,各个外设的电源顺序也要注意。
大多数都是带中断控制信号的,还要区分中断模式和非中断模式下的区别,以免各个外设之间相互影响。

出0入0汤圆

发表于 2017-7-6 16:28:30 来自手机 | 显示全部楼层
liujinhan 发表于 2017-7-6 16:13
遇到过通信异常的,I2C DEVCIE会有一定的拉电流能力,增加100R左右电阻后,通信正常。仅供参考!!
另外, ...

你这100欧电阻是串总线上还是上拉的?

出100入18汤圆

发表于 2017-7-6 18:19:40 | 显示全部楼层
这样的布线对于I2C总线来说足够好了,试着中间串个51欧姆左右的电阻,电压降低时分别测试两边信号,看看是哪边的问题。
有些外设对上拉电阻要求比较高,可能需要更小的上拉电阻。

出0入0汤圆

发表于 2017-7-7 05:56:28 来自手机 | 显示全部楼层
连接到总线的外设都串一个22-100的电阻,上拉4.7K有点大,速度越快,上拉电阻越小,一般都在2.2K左右。

出100入101汤圆

发表于 2017-7-7 07:16:27 | 显示全部楼层
用模拟方式试一下

出70入145汤圆

发表于 2017-7-7 07:25:18 来自手机 | 显示全部楼层
scl的波形是怎么样的?同时测下vcc波形,会不会通讯时vcc电压被拉低了?

出20入0汤圆

发表于 2017-7-7 09:06:57 | 显示全部楼层
cn.pheral 发表于 2017-7-7 05:56
连接到总线的外设都串一个22-100的电阻,上拉4.7K有点大,速度越快,上拉电阻越小,一般都在2.2K左右。 ...

是的  正常都是2.2k的上拉,建议楼主改小电阻试试

出0入0汤圆

 楼主| 发表于 2017-7-8 14:02:16 | 显示全部楼层
lovepig200 发表于 2017-7-6 13:13
建议这种情况外围器件,分别测试一下,可能是外围设备的问题。

外围设备直接换成了商家提供的参考板,问题依旧。

出0入0汤圆

 楼主| 发表于 2017-7-8 14:05:00 | 显示全部楼层
hailing 发表于 2017-7-7 07:25
scl的波形是怎么样的?同时测下vcc波形,会不会通讯时vcc电压被拉低了?

SCL波形正常,2640为i2c中master模式,提供clk,VCC也正常。

出0入0汤圆

 楼主| 发表于 2017-7-8 14:08:30 | 显示全部楼层
hcambridge 发表于 2017-7-6 18:19
这样的布线对于I2C总线来说足够好了,试着中间串个51欧姆左右的电阻,电压降低时分别测试两边信号,看看是 ...

在总线上尝试串了电阻,30欧/100欧都有试过,问题依旧,电阻两端的电压没有明显差异,都被拉低了。

出0入0汤圆

 楼主| 发表于 2017-7-8 14:12:54 | 显示全部楼层
zhiyuan1106 发表于 2017-7-7 09:06
是的  正常都是2.2k的上拉,建议楼主改小电阻试试

已经改成了1.2k,改善效果不明显!

出0入0汤圆

发表于 2017-7-8 18:21:21 | 显示全部楼层
测量并确认电源没问题;测一组SCL + SDA的波形,看在什么条件下,SDA会异常变低。
极限情况就是一个一个拆外设,看谁出问题。

看看手册,是不是有芯片用到了Clock Stretch之类的功能?主机要是不支持,或许能闹乱子。

出20入0汤圆

发表于 2017-7-8 21:30:46 | 显示全部楼层
centpark 发表于 2017-7-8 14:12
已经改成了1.2k,改善效果不明显!

上个示波器的图吧   SCL一般是单向的,波形应该都OK,关键是SDA

出0入8汤圆

发表于 2017-7-8 22:00:58 来自手机 | 显示全部楼层
楼主确定你PCB没有断线?直接去MCU输出引脚测量波形

出0入0汤圆

 楼主| 发表于 2017-7-9 00:30:28 | 显示全部楼层
mkliop 发表于 2017-7-8 22:00
楼主确定你PCB没有断线?直接去MCU输出引脚测量波形

好的, 明天试一下哦

出0入0汤圆

 楼主| 发表于 2017-7-9 00:30:54 | 显示全部楼层
zhiyuan1106 发表于 2017-7-8 21:30
上个示波器的图吧   SCL一般是单向的,波形应该都OK,关键是SDA

好的, 我明天给出一个更好的波形图

出0入0汤圆

 楼主| 发表于 2017-7-13 11:47:54 | 显示全部楼层
zhiyuan1106 发表于 2017-7-8 21:30
上个示波器的图吧   SCL一般是单向的,波形应该都OK,关键是SDA

经过更多的测试,发现应该是子板i2c器件焊接哪个地方出了问题,因为换了子板i2c信号就okay了,谢谢回复!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 05:13

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表