11回答

1收藏

I2C 调了两天,最后竟然是数据线过长的影响。

 

STMCU STMCU 12780 人阅读 | 11 人回复 | 2013-08-07

STM32,硬件I2C操作ADS1110.在野火的板子上顺利调通。但新买了块ZET6最小系统板,把程序移植到最小系统板上,除了ADS1110不应答,其它一切正常。看到网上说STM32的I2C有bug,就开始把问题推到芯片问题上了。没调通心里还是不舒服,上电突然发现有反应,但不稳定,一下行一下不行。这时候意识到应该是硬件有问题了。只好把I2C协议下了下来。看协议的时候突然发现协议里说到总线长度的问题。这时候才意识到,我犯了个很大而且很低智商的错误。而且我有使用逻辑分析仪的习惯。由于要拓展端口只能先把端口引出再接线,问题这就来了。。这几根线太长了。。远超过了10cm。
这就是找了两天的原因啊。虽然野火的板子这样用没问题,但最小系统板可能布线的原因吧。导致了传输不稳定。。。
今天终于知道了PCB布线对电路性能的影响了。。
仅以此贴提醒下像我这样的小菜鸟。。。注意布线。不要怀疑芯片的问题(因为还是菜鸟)。还有很重要的一点要阅读Datasheet和协议。
感觉各个教程教I2C的不少,但拿出真正I2C协议认真分析的太少了。。如果不是看到协议书上的那一点,说不定还要调几个通宵。。。
菜鸟贴。。欢迎各位大大拍砖。。。。顺手发下协议,我知道以前有人发。但还是发下吧。。

1.jpg (31.39 KB, 下载次数: 118)

1.jpg

I2C协议V2.1_中文版.pdf

1.46 MB, 下载次数: 163

I2C总线协议V2.1.pdf

279.86 KB, 下载次数: 69

分享到:
回复

使用道具 举报

回答|共 11 个

倒序浏览

沙发

斑斑

发表于 2013-8-7 03:08:15 | 只看该作者

这都是珍贵的经验啊。
板凳

斑斑

发表于 2013-8-7 03:27:25 | 只看该作者

以前也遇到过因为上拉电阻造成的小错误
地板

梦在远方-403512

发表于 2013-8-7 07:13:56 | 只看该作者

学习了,这个宝贵的经验
5#

好剑者

发表于 2013-8-7 08:00:17 | 只看该作者

这样也可以,只知道串口通信的波特率,对线的长度有影响!

点评

线的长度的问题,学习了  发表于 2013-8-7 08:27
如欲平治天下,当今之世,舍我其谁也?
6#

蒲公英哭泣三毛

发表于 2013-8-7 09:33:05 | 只看该作者

最近正在看I2C协议 很受用
7#

Myauto123

发表于 2013-8-7 11:39:59 | 只看该作者

因为原来这个模块是用在5v系统上的,上拉电阻是10k。刚刚测试了换成4.7k上拉,恢复原来的接法,通信成功。说明主要原因还是在于上拉电阻。但线的长度更加剧了问题的存在
8#

xiaopaohu123

发表于 2013-8-8 15:36:05 | 只看该作者

估计是线材不好,线材影响也很大的,10-20cm的距离肯定没问题的,即使是1米的距离照样可以通讯,HDMI接口里是有I2C总线的,照样可以长距离通讯!
9#

哇哈哈0608

发表于 2013-8-9 21:56:55 | 只看该作者

恭喜楼主,取得抗战胜利啊
10#

gzwsc2007

发表于 2013-8-15 21:07:13 | 只看该作者

感谢楼主提供的宝贵经验!!也许为我省下了不只几个通宵的时间呢!
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条