多设备共用总线时,这个问题需要格外注意!

文摘   科技   2024-08-19 07:30   上海  

点击上方蓝字“工程师说硬件”一起玩耍

在I2C、SPI等总线的设计中,由于平台SOC总线接口数量的限制,一组总线接口通常会连接多个外设器件。

但有些时候,由于某些场景下,总线上挂载的器件会处于不同的状态,此时可能会因为某些器件内部架构问题,导致总线异常。

以之前碰到的一个问题为例,同一组I2C总线接口上挂载SmartPA、背光IC、显示驱动IC三颗器件。

由于早期BSP bringup的时候,分开对音频和显示模块进行调试,此时两个模块均能正常打通,功能正常。

但是硬件整合模块测试的时候发现,系统无法正常开机,log上报一直卡在Audio初始化。只要拔掉显示屏,Audio就能初始化成功,系统就能正常跑下去。

通过测量I2C信号波形发现,此时总线被一直被拉低到0.3V。因为Audio的初始化是在显示屏之前的,且显示屏的VDDIO电源是独立的,因此猜测是显示屏内部与上拉电阻一起产生了回路,导致总线被拉死。

最终和供应商确认到,显示驱动IC的所有IO接口都留有单向TVS管,如下图所示。

当VDDIO还未上电时,红色箭头的回路得以产生,最终总线被TVS的正向导通电压所钳位。

初步解决对策,就是先对显示模块做初始化,即让VDDIO先上电,此时总线恢复正常。但由于存在灭屏播放音乐的场景,所以Audio和显示模块的I2C必须加以隔离。

隔离的方案一种是选择集成的level-shift,这种方案设计简单、布局面积小,只需要注意VCCA和VCCB的电压关系就行。(截图未展示上拉电阻)

如果成本是关键,布局面积乐观的话,可以采用分立器件去搭建,具体分析步骤这里不再赘述,需要注意的点是肖特基二极管的选择。由于MOS管内部的体二极管正向导通压降通常较大,因此需要外部并联一颗导通压降更低的二极管,保证I2C总线上的低电平尽可能逼近0V。

以上是对于总线并联设计过程中碰到的一点小问题,希望对大家后续的设计和调试起到一点帮助。

以上就是本期分享的所有内容啦,欢迎大家持续关注,更多干货正在快马加鞭地赶来。

工程师说硬件
多年一线大厂手机硬件资深开发工程师、新晋AR领域高级硬件工程师。 定期分享硬件干货知识、调试案例、电路设计等知识!
 最新文章