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.

[参考译文] DRA829V:PMIC 看门狗

Guru**** 2609285 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1581244/dra829v-pmic-watchdog

器件型号:DRA829V


IAM 使用 i2c 写入看门狗寄存器,但我的串行终端在写入 window1 和 windows 后失去了控制,长窗口  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Charan:

    您能否共享您执行的 I2C 写入的逻辑分析仪捕获结果? 您是否遵循了 https://www.ti.com/lit/pdf/slvuc99 中 同时使用 TPS65941213 和 TPS65941111 的设计? 您尝试写入哪个设备?  

    此致、

    Katie

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charan、

    如果在进行这些更改时要维护看门狗、则由于寄存器被锁定、它们不会发生。

    如果您当时处于长窗口、并且您正在写入长窗口位字段以将窗口缩短到比当前所经历时间短的时间间隔、您将收到超时中断、从而导致 nRSTOUT 和 nRSTOUT_SoC 引脚切换、这可能是在写入这些寄存器后进行丢失控制的来源。

    BR、

    Nicholas McNamara

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在电路板中使用两个 PMIC (TPS65941213 和 TPS65941111)

    我正在写入 TPS65941213

    我的写法是这样的

    I2C 开发 0
    I2C MW 0x48 0x31 0x00 1 -- i2c2 作为 GPIO、用于甚至是看门狗的理由 2c1
    I2C MW 0x48 0x32 0x00 1 -- i2c2 作为 GPIO、用于偶数看门狗的理由 2c1

    I2C MD 0x48 0xA5 1.
    #下电上电后、您应该会看到 RECOV_CNT = 0

    #正确配置看门狗以进行测试
    I2C MW 0x12 0x06 0x00 1 #触发模式、WD_PWRHOLD = 0
    I2C MW 0x12 0x03 0x10 1 # Window-1 = 2 秒
    I2C MW 0x12 0x04 0x10 1 #窗口 2 = 2 秒
    I2C MW 0x12 0x05 0x10 1 #长窗口= 2 秒

    如果无法重新启动电路板、请建议使用正确的写入序列   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    H-SOC-PORz、H-MCU_PORz、信号

    当发出命令且串行终端丢失、但电路板未重新启动时、处于 PMIC 中的数字引脚最终处于低电平、然后在低电平和高电平几个周期后变为低电平。

    此时、PORz 也为低电平。(已在上面附加命令)

    但当没有发出命令时、H-SOC-PORz、H-MCU_PORz 最初为高电平

    我认为处理器已进入复位状态、但未重新启动

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charan、

    这里有很多东西、现在可能是我对 Linux 命令的误解、但前两个命令让您执行这样的写入:

    将数据 0x00 写入 I2C 地址 0x48 上的寄存器 0x31 (GPIO1_CONF)

    将数据 0x00 写入 I2C 地址 0x48 上的寄存器 0x32 (GPIO2_CONF)

    读取 I2C 地址 0x48 上的寄存器 0xA5(保留)

    好的、这不是恢复寄存器、即寄存器 0x83

    好的、Charan、老实说、这似乎只是看门狗的错误配置。

    因为在写入这些寄存器之前一切都正常。

    基本上、您执行的写入操作消除了地址 0x12 处 WD 寄存器的 I2C2 物理总线、并将 GPIO 1 和 2 设置为通用 GPIO 功能。 目前没有 TRIG_WD 引脚。 因此、在配置完毕后响应 WD 的方式与此类似。

    我假设随后会发生这种情况、PMIC 会对 SoC 执行热复位、由于 WD_TRIG 引脚不可用、SoC 无法实际响应。 然后、WD 超时会一直持续、直到恢复计数达到饱和 (15 次尝试)、nRSTOUT 会由于来自恢复计数器的锁定而保持低电平。

    #正确配置看门狗以进行测试
    I2C MW 0x12 0x06 0x00 1 #触发模式、WD_PWRHOLD = 0
    I2C MW 0x12 0x03 0x10 1 # Window-1 = 2 秒
    I2C MW 0x12 0x04 0x10 1 #窗口 2 = 2 秒
    I2C MW 0x12 0x05 0x10 1 #长窗口= 2 秒

    窗口 1 和窗口 2 永远不能设置为秒、这是不可能的、请仔细检查数据表、因为分配的最长时间为毫秒级。

    因此、我建议将 GPIO2 设置为 TRIG_WDOG、不需要更改 GPIO1、因为从 I2C2 模式到 GPIO1 或 GPIO2 之间的任何更改都将移除 PMIC 上的物理 I2C2 总线。 然后、您将拥有一个用于 TRIG_WDOG 的有效引脚

    更改 WDOG 寄存器时、请注意长窗口中的启动时间(适合 2 秒?)

    一旦成为 I2C 线路、GPIO2 到 MCU 引脚的状态是多少(PORz 引脚是高电平还是低电平?)

    这一点至关重要、因为引脚的上升下降可能会触发 PMIC 在 nRSTOUT 变为高电平时保留长窗口、这将阻止您对 WD 做出正确响应(如果不考虑这一点)、因为我不知道软件将监控什么内容作为对 nINT 引脚的响应。

    在尝试将 MCU 域中的引脚用作驱动 PIN 时、请验证该引脚、因为您仍然可能会因为这种情况而卡在从不引导循环中。

    BR、

    Nicholas McNamara

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是什么、iam 除了执行上述命令之外什么都不做

    您要监控的软件将作为对 nINT 引脚的响应进行监控。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Nicholas 您好:

    感谢您的答复。

    如果您有、请与我分享一个工作示例、

    这样我就可以进行测试、以便测试我的环境、然后根据我的要求对其进行分析  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charan、

    TDA EVM 具有用于 WD Q&A 的连接、请验证该连接与您要用于 WD TRIG 的引脚之间的连接、我们没有示例。

    触发模式不在用例范围内、请阅读 PMIC 和看门狗 I2C 相关部分的数据表、如果您有问题、请提问、然后我可以提供答案。

    BR、

    Nicholas McNamara