Other Parts Discussed in Thread: TPS40400, TMS320DM8168
主题中讨论的其他器件: TMS320DM8168
工具/软件:Linux
您好!
背景:
在我们的电路板上、我们使用 TPS40400降压控制器作为 TMS320DM8168的1.1V 源。
TMS320DM8168处理器通过 I2C 总线(PMBus 接口)控制 TPS40400。
使用专用脚本、我已在 TMS320DM8168配置 TPS40400期间安排器件复位。
这意味着、器件复位在 TMS320DM8168 (主器件)与 TPS40400 (从器件)之间的 I2C 事务期间进行。
有时(并非总是)在这个复位后、TMS320DM8168会报告描述与 TPS40400通信错误的以下错误消息:
"SCSI 子系统已初始化
omap_i2c omap_i2c.1:总线1版本4.0、100kHz
omap_i2c omap_i2c.1:等待总线就绪超时
Set_machine_constraints:无法启用 PMBus_VR
PMBus 1-0012:注册 PMBus 失败
PMBus:1-0012的探测失败,出现错误-110"
进一步研究表明、由于上述复位、TMS320DM8168至 TPS40400之间的 I2C SDA 卡在低电平上、因此会发生这种情况。
这意味着、当 SDA='0'时、当复位发生时、SDA 一直处于这个状态、TMS320DM8168将 I2C 总线识别为"未就绪"并报告错误消息。
TPS40400 I2C 发送器状态必须返回到 IDLE 状态、等待新的主器件(TMS320DM8168)命令。
(复位后 I2C SCL 按预期为高电平)。
换言之、观察到、如果在 TMS320DM8168和 TPS40400之间的 I2C 事务期间电路板被复位、SDA 线路在下电上电前保持低电平。
与 TMS320DM8168不同、TPS40400没有复位输入。
我们如何在不循环通电的情况下使 TPS40400将 SDA 线路释放为高电平?
我还在实验中做了一个简单的实验:
答:我再现了失败。
b.我(暂时)将 SCL 短接至 GND (为了生成虚拟 I2C 时钟、希望它将释放 SDA 信号)。
c.很感谢、作为一个即时响应、SDA 将极性更改为逻辑高电平(I2C 通道回到"启动条件"状态- SCL、SDA =高电平逻辑)。
d.我已再次安排器件复位。
e.不再失败了
我的问题是:
如何从 TMS320DM8168/TPS40400 (TMS320DM8168至 TPS40400之间的 PMBus 接口)上的 I2C SDA 卡在低电平中恢复、作为一种稳健且正式的解决方案、无需重启电源?
2.是否有办法将 TMS320DM8168与 TPS40400 (PMBus 接口)之间的 I2C 总线复位? 意味着、使其进入"启动条件"状态- SCL、SDA =高电平逻辑。
3.在上面提到的复位情况中,是否有办法将 TPS40400 I2C 发送器状态恢复为空闲状态,等待新的主命令?
此致、
Daniel