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

zhoujianfeng   2008-11-27 09:03 楼主
挂4个i2c器件,1个24cxx,3个是同一个公司的器件,差别只在地址不同.
只有两个通信正常.
我用avr不管用硬的还是软的都可以.

准备用软的了.

回复评论 (17)

我用的24C64偶尔也有问题

                                 while等待死在那了,难道真的是STM32的硬件问题?
点赞  2008-11-27 09:05

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

                                  
点赞  2008-11-27 09:08

无论

哪款单片机,IIC能死等在那儿?IIC就没出错的时候?
点赞  2008-11-27 09:40

楼主用了哪四个I2C器件?

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

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


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

鉴于此,如果有人在做产品时遇到问题,又愿意寄样片给我,我这里可以帮你调好。
点赞  2008-11-27 09:48

碰到I2C问题的人太多了

                                 ST应该多做些例程或者说明什么的以飨广大STM32的消费者
点赞  2008-11-27 11:57

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

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

上拉电阻为4.7K到5v

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

不排除布板人员把线布的太长了.
点赞  2008-11-27 12:51

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

                                  
点赞  2008-11-27 12:53

能不能把软件公布一下

                                  
点赞  2008-11-27 13:26

I2C的速率设置为多少?

                                  
点赞  2008-11-27 13:29

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

                                  
点赞  2008-11-27 15:34

什么软件?

                                  
点赞  2008-11-27 15:37

我也到现在还没调通I2C

                                 我感觉那种用WHILE等待的方式,如果芯片出了问题或不对,必死无疑,应该加个超时吧?
点赞  2008-11-27 18:16

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

                                  
点赞  2008-11-27 18:31

授人以鱼?

                                  
点赞  2008-11-27 20:47

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

                                  
点赞  2008-11-27 21:38

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

                                  
点赞  2008-11-28 22:06

请17楼看站内短信

                                  
点赞  2008-11-30 10:58
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复