浅析I²C总线设计的关键事项
elecfans 2023-02-08

对于硬件工程师,I²C再熟悉不过了,两根线,一根数据SDA一根SCL。当时在使用a 设计数据采集器产品的CPU主板,外挂了Silicon lab的温Si7013,,主要实现温湿度、时钟及电压等信号通过I²C总线到达CPU进行处理,并且由 WG290F64控制在液晶上和上位机界面上的CPU自带的I²C总线外挂的六个I²C从设备,如下图1所示。

最初时候,此CPU主板的I²C接口仅挂了实时时钟和温度芯片,采用CPU自带的I²C接口。在调试时,波形都比较正常,上升沿和下降沿都能符合要求,通常跑的速率为100KHz。然而后期改版,需要在I²C接口上增加四个I²C设备,线路也相应地变长,在调试的时候,就发现CPU主板上电后,I²C工作异常,偶尔会读不到任何信息。

经过了长时间的查问题阶段,发现通过I²C接口的SDA和SCL上拉的大小与放置位置都是有讲究的。通常I²C上拉电阻放在CPU引出的位置,若没有外挂的I²C芯片就不需要加上拉电阻,这点在我们的CPU主板是没有问题的。然后就是上拉电阻,这个通常讲的就是与速率有关,我们将上拉电阻从4.7K,2.2K,1K甚至几百欧姆都测试过,在1K和2.2K的情况下,上升沿和下降沿会比较陡一点。速率100KHZ下采用2.2K的上拉电阻测试出的波形,如图2所示。

最终测出的情况,在上拉电阻为4.7K的时候,速率在100KHZ,波形是正常的;在2.2K的时候,速率在100Khz的时候,波形也是正常;在1K的时候,速率为400Khz,波形也正常;在470欧姆的时候,速率为400KHZ,波形就会畸变。我们采用的上拉2.2K,速率为100KHZ的接口,仍出现CPU板电后I²C工作异常,读不到任何异常信息。后发现是SDA被一直拉低了,SCL一直为高,I²C被死了。

为了解决这种问题,在网络上找到一种采用IO模拟I²C的方式,调试了一周后,发现这个问题得到了解决。将I²C接口当做普通IO来操作可能是改动最小的一种方式。其实针对这个问题,还有一些办法可以使用:

1)尽量选用带复位输人的I²C从器件。

2)将所有的从I²C设备的电源连接在一起,通过MOS管连接到主电源,而MOS管的导通关断由I²C主设备来实现。

3)在I²C从设备设计的功能。

4)在I²C总线上增加一个额外的总线恢复设备,用来监视I²C总线。当设备检测到SDA信号被拉低超过指定时间时,就在SCL总线上产生9个时钟脉冲,使I²C从设备完成读操作,从死锁状态上恢复出来。总线恢复设备需要有具有编程功能,一般可以用或实现这一功能。

由于avr CPU带多个I²C从设备出现死锁的问题,虽然能够通过IO模拟解决问题,但是对于编程来说比较麻烦,IO模拟在高速上面效果并不好。后来更换了的MCU,型号为EFM32WG290F64,做了一个最小系统板,外围不变,I²C死锁问题不再存在,有效地解决了我的I²C问题。采用EFM32WG290F64读到的I²C波形如下:

另外,设计中通过采用了多片温湿度Si7013,精度也非常高,特别在高温条件下,测试的湿度准确率也非常高。其实I²C接口在我们的设计中再常见不过,但在设计中还是要特别注意以下几点,能够充分考虑以下的要点,I²C设计就可以游刃有余。

1)I²C线路的负载不能超过400pF;

2)需要满足上升沿和下降沿的时序关系;

3)I²C上拉电阻和速率有着密切的联系,需要选择合理;

4)如何判断死锁的情况,如上面所示,并提供了一系列的解决方案。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 【7.24 深圳】2025国际AI+IoT生态发展大会/2025全球 MCU及嵌入式技术论坛


  • 相关技术文库
  • 工业
  • 安防
  • 航空
  • CAN
  • 单片机的I2C和SPI通信的含义

    I2C和SPI是两种不同的通信协议。 当我们听到这个协议时,它似乎是不可实现的。事实上,协议只是人们定义的一个标准。我们只需要按照这个标准去做。例如,如果公司说我们早上9点上班,我们9点上班,或者我们扣...

    昨天
  • 浅析基于MB86R01的汽车数字化虚拟仪表设计

    随着汽车、通信、信息电器、医疗、军事等行业的巨大的智能化需要,嵌入式软件及系统发展迅速。微处理器从8位到16位、32位甚至64位,从支持单一品种的CPU芯片到支持多品种的,从单一内核到除了内核外还提供其它功能...

    07-08
  • 基于蓝牙技术的汽车驾驶盘控制系统

    摘 要:介绍了一种基于蓝牙技术的方向盘控制系统设计方案。利用蓝牙传输技术实现汽车方向盘面板开关电子化优化设计,克服传统驾驶过程中需要低头找开关的弊端,使得大部分操作在方向盘上实现,汽车驾驶更便捷。控制...

    07-08
  • 逆变器有何注意事项?安装逆变器风扇有何要点?

    逆变器是一种转换器,在工业应用中,逆变器具有重要意义。对于逆变器,小编曾对逆变器的安装、离网逆变器等知识有所介绍。为增进大家对逆变器的认识,本文将对逆变器使用注意事项以及逆变器风扇安装注意事项予以解...

    07-07
  • 电气火灾监控系统

    电气火灾监控系统,特点在于漏电监控方面属于先期预报警系统。与传统火灾自动报警系统不同的是,电气火灾监控系统早期报警是为了避免损失,而传统火灾自动报警系统是为了减少损失。所以,这就是说为什么不管是新建...

    07-04
  • 基于C8051F500的数控恒流源设计

    本文给出了一种基于C8051F021和RA8835实现的低成本液晶显示方案。随着电子产品设计技术的不断发展,电子产品的设计,尤其是人机交互界面的设计日益趋向人性化。这其中的液晶显示屏以其具有能显示复杂文字及图形、显...

    07-02
  • 大佬带你谈谈步进电机,啥又是直流电机

    电机是诸多电子设备中都存在,由此可见电机的重要性。在往期文章中,小编对伺服电机、变频电机都有所介绍。为增进大家对电机的了解,本文将对步进电机和直流电机加以阐述。如果你对电机相关内容具有兴趣,不妨继续...

    06-27
  • 同步、异步电机有何区别?高、低速电机是什么?

    电机是工业设备中的重要存在之一,对于电机,大家应当有所了解。为增进大家对电机的了解,本文将对同步电机、异步电机、同步电机和异步电机的区别、高速电机和低速电机予以介绍。如果你对电机具有兴趣,不妨继续往...

    06-27
  • 步进电机知识详解,再不怕看不懂步进电机了!

    点击技成培训置顶,每日7:30准时为您推送

    06-26
下载排行榜
更多
评测报告
更多
广告