打印

I2C信号毛刺与大伙儿讨论讨论

[复制链接]
10227|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yezi12|  楼主 | 2015-5-20 11:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
vilan| | 2015-5-20 11:42 | 只看该作者
毛刺不影响吧,是不是频率太快

使用特权

评论回复
板凳
ff8zgs| | 2015-5-20 12:18 | 只看该作者
我又一次偷懒没给IIC芯片去耦电容,毛刺比你这还要严重一些,同IIC总线也不稳定。然后加上去耦电容毛刺问题就好多了,并且总线也正常了,希望能给你点启示。

使用特权

评论回复
地板
caoenq| | 2015-5-21 08:18 | 只看该作者
是不是示波器探头没补偿好呢

使用特权

评论回复
5
gx_huang| | 2015-5-21 08:26 | 只看该作者
LZ和LS呀,你们都错了。
I2C总线是怎么要求的?任意器件不可以置高总线,只能拉低总线,只能靠外接上拉电阻拉高。
既然只能上拉电阻拉高,波形的上升沿绝对不会有毛刺的,是RC充电的波形。
你们的上升沿有毛刺,显然你们的GPIO不是OC/OD输出,是推挽输出,所以问题就来了。
有毛刺,很容易导致错误的。
你们需要改进软件呀。

使用特权

评论回复
评论
anna-li 2024-6-20 17:24 回复TA
请问,如果I2C clk信号的下降沿有glitch怎么办呢 
datouyuan 2015-6-26 14:54 回复TA
你说的不完全对,1主N从时,SCL是允许推挽输出的,并且效果比OC加上拉电阻要好。 
huayuliang 2015-6-25 15:56 回复TA
赞,一针见血啊。。 
评分
参与人数 1威望 +5 收起 理由
huayuliang + 5
6
yezi12|  楼主 | 2015-5-21 17:31 | 只看该作者
gx_huang 发表于 2015-5-21 08:26
LZ和LS呀,你们都错了。
I2C总线是怎么要求的?任意器件不可以置高总线,只能拉低总线,只能靠外接上拉电阻 ...

多谢提示,请问一下,低电平中间忽起的那个小台阶是怎么回事?

使用特权

评论回复
7
yezi12|  楼主 | 2015-5-21 17:32 | 只看该作者
ff8zgs 发表于 2015-5-20 12:18
我又一次偷懒没给IIC芯片去耦电容,毛刺比你这还要严重一些,同IIC总线也不稳定。然后加上去耦电容毛刺问题 ...

I2C总线上还需要加去耦吗?多大的电容?是加在主那一端吗?

使用特权

评论回复
8
yezi12|  楼主 | 2015-5-21 17:33 | 只看该作者
vilan 发表于 2015-5-20 11:42
毛刺不影响吧,是不是频率太快

频率不快,设定的100Khz,低电平中间忽起的那个小台阶是怎么回事?

使用特权

评论回复
9
gx_huang| | 2015-5-21 19:43 | 只看该作者
yezi12 发表于 2015-5-21 17:31
多谢提示,请问一下,低电平中间忽起的那个小台阶是怎么回事?

那肯定是你的程序有问题,要么高要么低,如果有半拉子电平,肯定是一个输出高,一个输出低,打架了。
所以,I2C要求只能拉低,不可以置高,只能上拉电阻拉高。

使用特权

评论回复
10
LeCreateStudio| | 2015-5-22 08:18 | 只看该作者
1、探笔问题 有没有补偿好
2、电容加一个,这个根据你的频率来加,你可以先加一个102试试,看一下对上升沿的影响

使用特权

评论回复
11
奔牛滚滚| | 2015-5-22 09:14 | 只看该作者
同意5楼,另外楼主确定不是示波器问题?你换个模拟示波器看看?还有我每个芯片的都加去耦电容,输出方波,角一样有毛刺。

使用特权

评论回复
12
永不停止| | 2015-5-22 09:22 | 只看该作者
学习了

使用特权

评论回复
13
woshixinshou| | 2015-5-22 09:45 | 只看该作者
增大上拉电阻的阻值如47K或100K甚至更大,或者加一个电容对地,上拉电阻47K时电容20--47p

使用特权

评论回复
14
yangwenguan| | 2015-5-23 11:49 | 只看该作者
不会吧,i2c也有毛刺,两边加上拉,中间接22-33欧姆的电阻,就算有,应该会小很多。

使用特权

评论回复
15
yangwenguan| | 2015-5-23 11:51 | 只看该作者
是的,最好先校正一下示波器探头,

使用特权

评论回复
16
gx_huang| | 2015-5-23 13:07 | 只看该作者
上面很多人的想法都是错误的。
1、可能是示波器的问题,这个概率很小,不过,确实有很多新人,根本不知道校准示波器的10X探头的频响。
2、毛刺,是由于驱动源的驱动能力很强,输出内阻很小,边沿很陡峭。和I2C时钟的频率无关,只和边沿有关。对于RF信号高速信号,得考虑阻抗匹配。
3、对于I2C,很多想法都是多余的,只要OD输出就可以了,不要推挽输出,实在不行,加RC网络。

使用特权

评论回复
17
yezi12|  楼主 | 2015-5-23 18:30 | 只看该作者
gx_huang 发表于 2015-5-23 13:07
上面很多人的想法都是错误的。
1、可能是示波器的问题,这个概率很小,不过,确实有很多新人,根本不知道校 ...

是在I2C的信号信号线上面加RC网络吗?加在master还是slaver这一侧呢?一般加多大的R与C?

使用特权

评论回复
18
gx_huang| | 2015-5-24 13:32 | 只看该作者
I2C电路真的没有见过有人加RC的。
I2C数据是上升沿触发锁定,只要上升沿没有毛刺振铃,不影响数据可靠性的。
所以,只要程序修改就可以了,要OD输出,也就是开漏输出。
如果GPIO有OD输出模式,程序最简单。
如果GPIO只有输入和输出模式,则GPIO端口数据寄存器永远为0:
1、想输出高电平:只要把GPIO设置成输入就可以了。
2、想输出低电平:只要设置成输入就可以了。
3、如果要读取端口电平,记得设置成输入。

使用特权

评论回复
19
573838882| | 2015-5-26 20:54 | 只看该作者
ff8zgs 发表于 2015-5-20 12:18
我又一次偷懒没给IIC芯片去耦电容,毛刺比你这还要严重一些,同IIC总线也不稳定。然后加上去耦电容毛刺问题 ...

是的,我也遇到过

使用特权

评论回复
20
vilan| | 2015-6-25 09:29 | 只看该作者
女工程师脾气不好。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

12

帖子

0

粉丝