点击上方蓝字“工程师说硬件”一起玩耍
在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。
以上是对于总线并联设计过程中碰到的一点小问题,希望对大家后续的设计和调试起到一点帮助。
以上就是本期分享的所有内容啦,欢迎大家持续关注,更多干货正在快马加鞭地赶来。
为了方便更多硬件行业的同学交流、学习。
免费扫描右侧二维码进群,交流更多行业技术、资讯、经验!
● 电源
● 运算放大器
● 往期干货全集
点赞、分享、在看,就是对我最大的支持!