Other Parts Discussed in Thread: TPS6594-Q1
工具/软件:
您好:
我使用 的是 TPS6594-Q1。 我想读取引脚 EN_DRV。
初始化 PMIC WD 后尝试读取该寄存器的电流(WD 被激活、配置的窗口 1、窗口 2 和长窗口时间)。
如何读取此引脚? 如果我要读取该引脚、从器件地址应该是什么? 必须读取哪个寄存器才能读取该引脚的状态?
注意:我使用 I2C 总线读取 PMIC 寄存器
此致
谢谢
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Other Parts Discussed in Thread: TPS6594-Q1
工具/软件:
您好:
我使用 的是 TPS6594-Q1。 我想读取引脚 EN_DRV。
初始化 PMIC WD 后尝试读取该寄存器的电流(WD 被激活、配置的窗口 1、窗口 2 和长窗口时间)。
如何读取此引脚? 如果我要读取该引脚、从器件地址应该是什么? 必须读取哪个寄存器才能读取该引脚的状态?
注意:我使用 I2C 总线读取 PMIC 寄存器
此致
谢谢
嗨、Manisha、
您使用的是 TPS6594-Q1 的长器件型号/OPN、因为这会影响从器件地址、因此可能会更改答案。 例如 TPS6594133A。
EN_DRV 引脚电平可以从 ENABLE_DRV_STAT 寄存器(偏移量 82h)读取、特别是位 0 用于 EN_DRV_IN — 您可以在器件数据表 https://www.ti.com/lit/gpn/tps6594-q1 第 8.7.1.123 节 ENABLE_DRV_STAT 寄存器中看到这一点:

对于地址、这是寄存器 82h。 有关 I2C 地址、请参阅数据表第 8.6.1 节“寄存器页面分区“。 这说明了寄存器的各个页面以及它如何与 I2C 地址进行交互。 重要的是、对于您的用例、看门狗寄存器位于第 4 页、用户寄存器(包括 ENABLE_DRV_STAT)位于第 0 页。 根据所用器件的配置(这就是我询问长器件型号的原因)、这些器件通常甚至在不同的 I2C 接口上、无论是在用户寄存器中的 I2C1、还是在看门狗中的 I2C2。 如果您尚未将其考虑在内、这可能会导致问题。 您可以在所使用的特定 PMIC 型号的用户指南中找到 I2C1_ID 和 I2C2_ID。

最后、您需要考虑是否在 I2C 上启用了 CRC、以及您是否正确发送了 CRC(如果已启用)。
我希望这对我们有所帮助 — 请了解完整的器件型号,如果仍有混淆,我们可以更具体地回答。
此致、
Katie
嗨、Manisha、
对于 TPS65941213 和 TPS65941111、您可以参考用户指南 优化的 TPS65941213-Q1 和 TPS65941111-Q1 PMIC
Jacinto 7 J721E 用户指南、PDN-0C https://www.ti.com/lit/pdf/slvuc99、 了解有关特定配置的更多详细信息。 在第 5.11 节“接口设置“中、您将找到 I2C1_ID_REG 和 I2C2_ID_REG、它们是这些器件上 I2C1 和 I2C2 的基址、并且 CRC 在启动时禁用:

此器件使用单独的 I2C 接口 I2C2(在 PMIC 上)、仅用于看门狗。 因此、利用这些信息和上一篇文章中的数据表信息、您可以使用以下内容作为 I2C 接口和地址:
TPS65941213-Q1:
TPS65941211-Q1:
有关 PMIC I2C1 和 PMIC I2C2 之间以及处理器上不同 I2C 接口之间的连接、请参阅同一用户指南、图 3-2 TPS6594-Q1 数字连接。 请注意、在此示例 PDN 中、未使用 EN_DRV 引脚、但可以使用(因此您可以在自己的设计中需要时使用该引脚)。
因此回到 EN_DRV 状态读取、您将在 I2C1 接口线路上读取 ENABLE_DRV_STAT 寄存器 (I2C1 地址 0x48)、然后使用寄存器地址 0x82。
此致、
Katie
您好、Katie、
感谢您提供的信息。 我尝试从寄存器 ENABLE_DRV_REG 读取 EN_DRV 引脚的状态。 在窗口 1 中将 EN_DRV 引脚设置为高电平的先决条件是什么? 。
在禁用 WD 并清除所有中断后、EN_DRV 引脚可以设置为高电平。 但是、当我在 Windows1 中检查 EN_DRV 引脚的状态时、该引脚始终读为 0。
当 WD 超出长窗口时、如何将 EN_DRV 引脚设置为高电平?
WD_FAIL_CNT_REG 寄存器 为 0。
谢谢
Manisha N G
嗨、Manisha、
此常见问题解答可能会有所帮助、它分步介绍了以下步骤: https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1321904/faq-tps6594-q1-how-do-i-enable-en_drv?tisearch=e2e-sitesearch&keymatch=tps6594%2525252525252520watchdog%2525252525252520en_drv#
此致、
Katie
大家好:
我正在研究 EN_DRV 引脚的行为。 当禁用 WD 时、该引脚可配置。 但启用 WD 后、EN_DRV 引脚会由硬件设置为低电平。 在启用 WD 之前、我确保 INT_TOP 寄存器和 INT_MISC 寄存器中存在中断。 此外、寄存器 FSM_NSLEEP_TRIGGERS (0x86) 中的 NSLEEPB[0]和 NSLEEPB[1]位设置为 1。
为什么我将 EN_DRV 位值观察为 0。
预期为:
一旦 WD 超出长窗口、MCU 必须能够更改窗口 1 中的引脚值。
这也是不可能的。 写入该引脚无效。 您可以专家对此主题进行澄清
谢谢
您好、Katie、
由于保密协议、我无法披露代码、但我可以共享代码的顺序。
-禁用 WD
-读取 第 0 页上的 0x5A 和 0x6C
- 0x5A 中有中断、即 MISC_INT 和 STARTUP_INT(分别为位 4 和位 3)
- INT_STARTUP (0x65) 的 INT_MISC (0x66) 寄存器被清零、ENABLE_INT(位 1)被设置为 1
- 按照其中一个 E2E 线程中的建议、将寄存器 FSM_NSLEEP_TRIGGERS (0x86) 中的 NSLEEPB[0]和 NSLEEPB[1]位设置为 1 以启用 EN_DRV 引脚
- WD_PWRHOLD 位 WD_MODE_REG 寄存器清零
-启用 WD
-尝试启用 EN_DRV 引脚(设置 ENABLE_DRV_REG 寄存器的 ENABLE_DRV(位 0))
如果完全可以由 MCU 设置该位、何时可以设置该位(在窗口 1 或窗口 2 中)?
谢谢
嗨、Manisha、
您还需要 WD_FIRST_OK=1、因此您需要首先完全遍历 Window-1 和 Window-2 一次、以便对其进行设置。 我要参考 TPS6594-Q1 数据表中的“ Q&A 模式下的看门狗流程图“。 此流程图还显示、只有在 Window 2 完成并且没有 WD_BAD_EVENT 之后、ENABLE_DRV 才能够设置为 1(请参阅图表右下角的框)。
此致、
Katie