用户在使用I2C通讯的Maxim器件时,有时会遇到通讯不正常问题。而且,用户反映说程序在控制其它的I2C器件时都能正常工作,因此,总是查不出解决问题的办法。Maxim工程师总结了几条客户经常遇到的问题列举如下:
1)电源电压,要检查器件的工作电源是否符合数据资料的说明。
2)微控制器的输出逻辑电平是否符合器件逻辑电平的要求(特别是控制器和Maxim器件采用不同的电源电压供电时)。
3)通讯时序,通讯时序一定要符合器件的要求,包括起始条件,从地址等。
4)SDA与SCL是否需要用上拉电阻。有时器件需要上拉电阻,有时控制器需要上拉电阻。
5)通讯速率,器件数据资料中一般都规定了最大的通讯速率。
6)对于实时时钟器件,有时VBAT在不使用外部电池的情况下要连接到低。可在数据资料中关于VBAT引脚说明中给出。
目前发现的问题多出现上述情况中的一种或几种。如果还有其它情况,请楼下继续补充。
共8条
1/1 1 跳转至页
有关I2C上拉电阻的补充
通常情况下,SDA和SCL上的上拉电阻有一个取值范围,不能过大也不能过小。
1. 上拉电阻RP不宜过小,一般不低于1KΩ
原因:一般IO 端口的驱动能力在2mA~4mA量级。如果RP阻值过小,VDD灌入端口的电流将较大,这导致端口输出的低电平值增大(I2C协议规定,端口输出低电平的最高允许值为0.4V);如果灌入端口的电流过大,还可能损坏端口。故通常上拉电阻应选取不低于1KΩ的电阻(当VDD=3V时,灌入电流不超过3mA)。
2. 上拉电阻RP不宜过大,一般不高于10KΩ
原因:由于端口输出高电平是通过RP实现的,线上电平从低到高变化时,电源通过RP对线上负载电容CL充电,这需要一定的时间,即上升时间。端口信号的上升时间可近似用充电时间常数RP*CL乘积表示。如果RC充电时间常数过大,将使得信号上升沿变化缓慢,达不到数据传输的要求。因此一般应用中选取的都是几KΩ量级的上拉电阻。
小阻值的RP电阻增大了端口Sink电流,故在可能的情况下,RP取值应稍大一点,以减少耗电。
如果您需要在总线上带多个具有相同地址的I2C器件,就要用到I2C扩展器,Maxim提供这样的器件,您可以参考MAX7356/57/58.该器件可将I2C接口扩展到8个,但是需要控制信号来选择。具体应用以及数据资料请参考下面连接:
http://china.maxim-ic.com/datasheet/index.mvp/id/5893
共8条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |