用TPS65987做了一个测试板来和BQ25703通信 datasheet中建议使用I2C3连接TPS65987到充电器等 测试板可以跳线选择哪个I2C端口可以被用于master
蓝色的端口连接I2C引脚 使用I2C3作为主配置: 没有PD_SDA或时钟PD_SCL上的数据 使用I2C1: 数据和时钟正常
检查了GPIO 5和6的GPIO设置,已被配置为I2C引脚。
为何无法使用I2C3与BQ25703通信,为什么没有数据?
2. I2C调试注意事项(1)是否是在电池耗尽模式下测试 根据需要对电池充电器进行什么控制,必须输入I2C主事件表并确认设备的从地址是正确的。
配置了事件表来改变不同功率协商的充电器的充电电流。 然而把USB-C电源连接到我的板上时,在I2C总线上没有通讯告诉充电器使用什么电流。 Vbus上的电压根据我配置的契约变化,PD控制器在附加和分离事件上发送数据给充电器,但它不发送数据来配置充电电流。
是否因为协商失败,所以没有发送当前数据?
(2)所有I2C端口的示意图配置有时会相互冲突 要确认,您有跳线,当测试I2C3端口时, 只连接了那些引脚的跳线,其他的都断开了。
都捆绑在一起,只有跳线将它们分开,看起来如果I2C1连接,它有两个标签,I2C1_SCL/SDA和PD_SCL/SDA。
建议分离所有的I2C端口,并拥有自己的专用电阻,并将它们拉到LDO_3V3。
删除了R45、R43、C63、C61,并从Q8的gate到GND增加了100k。 如果能够捕获I2C线路的一些范围快照 那么与PD日志一起也会有帮助
(3)使用Total Phase PD Analyzer或类似的工具来捕获
这是我使用的USB-C电源连接时的PD数据
得到的唯一I2C数据是当只有I2C1跳线短路时。 以下是关于POR的数据(你应该能够看到数据值):
这里是一些I2C数据,sink被连接(sink是一个ZY12PDN连接到一个10欧姆电阻) 所以它可以发送数据在一个成功的协商。
下面是这个接收器设备上的CC数据:
3. 尝试刷EEPROM下面是USB-C电源分离时的数据,告诉Bq25703返回OTG模式:
我想指出的是,SLVAE18中的说明需要更新,以包括一个分离事件来重置BQ25703到OTG模式,因为我分离源和连接接收器,接收器没有收到任何电源。
我将事件添加到列表中,它工作了,我能够在接收器和源设备之间交换。
我从全局系统配置(0x27)中启用I2C3作为主配置,并配置I2C主配置(0x64),使从站主选择为I2C3。
然后我重新刷了EEPROM,开始调试并查看I2C主配置寄存器:
免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:TPS65987D模块I2C3作为master不工作问题调试 https://www.yhzz.com.cn/a/12376.html