感觉stm32的I2C确实不咋地...

[复制链接]
4921|17
 楼主| lixun00 发表于 2008-11-27 09:03 | 显示全部楼层 |阅读模式
挂4个i2c器件,1个24cxx,3个是同一个公司的器件,差别只在地址不同.
只有两个通信正常.
我用avr不管用硬的还是软的都可以.

准备用软的了.
winloop 发表于 2008-11-27 09:05 | 显示全部楼层

我用的24C64偶尔也有问题

while等待死在那了,难道真的是STM32的硬件问题?
 楼主| lixun00 发表于 2008-11-27 09:08 | 显示全部楼层

24c的没有出现问题...

wlq_9 发表于 2008-11-27 09:40 | 显示全部楼层

无论

哪款单片机,IIC能死等在那儿?IIC就没出错的时候?
香水城 发表于 2008-11-27 09:48 | 显示全部楼层

楼主用了哪四个I2C器件?

请告诉我型号,如果能各寄2个样片给我,包括该器件的手册,我这里帮你调通,如果有费用方面的顾虑,我可以用STM32的芯片给你补偿。

请通过mcu.china@st.com与我联系。


我承认I2C的例子写的很不好,造成不少人的麻烦,但每次当我们直接调试用户的程序后,I2C都能够正常工作,说明I2C的硬件没有问题,问题往往出在各人对I2C协议的理解不同。

鉴于此,如果有人在做产品时遇到问题,又愿意寄样片给我,我这里可以帮你调好。
winloop 发表于 2008-11-27 11:57 | 显示全部楼层

碰到I2C问题的人太多了

ST应该多做些例程或者说明什么的以飨广大STM32的消费者
 楼主| lixun00 发表于 2008-11-27 12:51 | 显示全部楼层

谢谢香版主,现在用模拟的已经通了...

我觉得不是程序的问题,因为挂了同一个厂家的3个器件.
一个为A,两个为B

上拉电阻为4.7K到5v

通过外部管脚设为不同的地址.
现在A是可以通信的,B不可以.
A和B通信格式是一样的:START+地址+ACK+寄存器地址+ACK+数据+ACK+STOP
所以我确认I2C兼容性不好,要不然为什么A可以通信,B不可以呢?
而AVR的硬I2C可以,目前没试其它的硬i2c.

不排除布板人员把线布的太长了.
 楼主| lixun00 发表于 2008-11-27 12:53 | 显示全部楼层

型号为NJW1110和NJW1184,可以在21IC search上找到的.

winloop 发表于 2008-11-27 13:26 | 显示全部楼层

能不能把软件公布一下

香水城 发表于 2008-11-27 13:29 | 显示全部楼层

I2C的速率设置为多少?

 楼主| lixun00 发表于 2008-11-27 15:34 | 显示全部楼层

100k,可以通信的100k和400k都可以的

 楼主| lixun00 发表于 2008-11-27 15:37 | 显示全部楼层

什么软件?

kbgyzp 发表于 2008-11-27 18:16 | 显示全部楼层

我也到现在还没调通I2C

我感觉那种用WHILE等待的方式,如果芯片出了问题或不对,必死无疑,应该加个超时吧?
香水城 发表于 2008-11-27 18:31 | 显示全部楼层

请在I2C方面遇到困难的朋友把你的样片寄给我,我帮你解决

ddb_21ic 发表于 2008-11-27 20:47 | 显示全部楼层

授人以鱼?

老巴夺 发表于 2008-11-27 21:38 | 显示全部楼层

不错,技术支持做到网上了很好

kbgyzp 发表于 2008-11-28 22:06 | 显示全部楼层

能给个地址吗?好给你寄过去?

香水城 发表于 2008-11-30 10:58 | 显示全部楼层

请17楼看站内短信

您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

683

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部