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.

[参考译文] TPS65218D0:启用严格后重启问题

Guru**** 1831610 points
Other Parts Discussed in Thread: TPS65218D0, TPS65910, TPS65217, TPS650250, TPS6521825, TPS6521815, BOOSTXL-TPS65218, MSP-EXP430F5529LP, IPG-UI, TPS65218
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/907493/tps65218d0-reboot-issue-when-strict-is-enabled

器件型号:TPS65218D0
主题中讨论的其他器件: TPS65910TPS65217TPS650250TPS6521825TPS6521815BOOSTXL-TPS65218MSP-EXP430F5529LPIPG-UITPS65218

我们有一个完全基于 AM437X-SK-EVM 的定制板。  除了第二个以太网端口未插入外、该板能够正常启动。  插入电缆会立即重启、但前提是 USB 控制器尚未初始化。  在插入第二个以太网端口的情况下、随时取消初始化 USB 控制器会触发重启。  请在此处查看原始文章 :https://e2e.ti.com/support/processors/f/791/t/902314

经过大量的试错后、我们可以通过禁用 PMIC 上的严格模式来解决该问题。  但是、经过几天的探测、我们仍然无法在任何电压轨(DCDC1-4、LDO1)上找到任何事件。  还有什么其他严格的更改可能是根本问题吗?  

此外、它看起来像是在 EVM 的 B1器件和我们的 D0器件之间严格更改的阈值。   AM437X-SK-EVM 是否曾使用 TPS65218D0进行过测试?

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

    除非系统中有安全要求、例如 EPOS 系统、否则无需设置 strict=1b。 strict=1b 是该位的默认编程、但在大多数系统中、strict=0b 没有问题。

    当 strict=1b 时、所有 DCDC1-4和 LDO1稳压器都具有满足严格要求的启用 VPG (电源正常阈值)、并且还启用了 VOV (过压阈值)。 由于 TPS65218D0将在50us 内检测到 VPG 或 VOV 故障、因此可能发生了此类事件、但您无法在示波器上触发以捕获事件。

    当 strict=1b 时、B1芯片不符合原始目标值、因此它不符合使用芯片卡检测 EPOS 系统篡改事件的安全要求。 修改了-B1数据表以准确反映器件的性能。

    TPS65218D0数据表中的值是器件的原始目标值、并且在规格范围内。

    我不能说 AM437x-SK-EVM 是否使用 TPS65218D0器件进行了测试、只是它最初是使用-B0器件构建的。 AM437x 团队需要评论是否使用-D0器件对 EVM 进行了重新测试。 但是 、AM437x-SK-EVM 与定制电路板之间可能仍存在微小差异、从而使 PCB 更容易受到 VPG 或 VOV 故障的影响。

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

    这对我们有很大的解释——谢谢 Brian!

    出于好奇、如果大多数设计不需要严格、为什么默认设置?

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

    这是一个公平的问题。 这是因为 TPS65218D0最初是针对 AM438x 发布的。 由于 AM438x 需要安全的 RTC 和防篡改保护、因此 TPS65218D0的默认配置为 strict=1b。

    我们没有发布专门用于 AM335x 和 AM437x 的 TPS65218xx 变体、严格= 0b、因为当时使用 TPS65217、TPS65910或 TPS650250为这些处理器供电的情况更常见。

    TPS65218xx 器件(TPS6521815和 TPS6521825)的较新编程版本确实具有 strict=0b 作为默认选项。

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

    是否可以订购使用 strict=0b 进行预编程的 D0? 或者、是否可以为 D0购买某种蛤壳式编程器、以便在焊接前严格设置为0b?

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

    Michael、

    我们为对 TPS65218xx PMIC 定制 EEPROM 编程感兴趣的任何人创建了 TPS6521815和 BOOSTXL-TPS65218。

    TPS65218D0和 TPS6521815使用相同的器件、但 TPS65218D0经过预编程、可与 AM438x 完美搭配使用、而 TPS6521815则使用"空白 EEPROM"进行编程。

    换言之、TPS6521815已将所有稳压器、负载开关和 GPIO 与电源序列发生器断开。 当 TPS6521815样片被放置在 BOOSTXL-TPS65218插座中时、USB 电源被施加到 MSP430 Launchpad (MSP-EXP430F5529LP)上、并且 LaunchPad 为 TPS6521815器件提供5V/3.3V 电源以进行编程。 最初加电时、所有 PMIC 输出电压将为0V。 然后、您可以使用 IPG-UI 软件对 EEPROM 存储器进行重新编程、在 BOOSTXL-TPS65218上电后 、PMIC 将使用您的自定义设置加电。

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

    Brian、

    很明显、TI 没有对 TPS6521815进行预编程的服务? 因此、我们必须在首次启动之前确定一种对它们进行编程的方法?  

    谢谢、

    Mike Jones

    P.S. 我刚刚听说我们能够使用 BOOSTXL 设置对 D0器件进行重新编程、但当它们尝试对 TPS6521815进行编程时、EEPROM 不会保存任何内容... 我们可以将值写入 RAM 并读回、但在下电上电后、EEPROM 会保持空白。   

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

    Mike、

    是的、我们已与 ARROW 合作、根据您的要求对 TPS6521815器件进行预编程。 如果您参阅 我们的 DIY PMIC 登录页面 、您  可以单击该链接来填写表单并开始使用 Arrow 编程服务。

    [引用用户="Michael Jones3]P.S. 我刚刚听说我们能够使用 BOOSTXL 设置对 D0器件进行重新编程、但当它们尝试对 TPS6521815进行编程时、EEPROM 不会保存任何内容... 我们可以将值写入 RAM 并读回、但在下电上电后、EEPROM 会保持空白。   您需要详细介绍您的编程序列、以便我了解为什么您能够对 TPS65218D0器件进行重新编程、但无法对 TPS6521815器件进行重新编程。 请记住、EEPROM 绝不是真正的"空白"、它只是将 DCDCx 和 LDO1电源轨与序列发生器断开。 您需要在 SEQ3-SEQ7中设置非零值、以便序列发生器启用输出轨。

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

    我能够使用下面显示的 D0器件的值对空白 PMIC 进行编程。

     

    寄存器地址     值

    00             15. ​

    01             01 ​

    02             00 ​

    03             00 ​

    04             00 ​

    05             68 ​

    06             00 ​

    07             00 ​

    10.             CE ​

    11.             三 ​

    12.             13. ​

    13.             48 ​

    14.             C0 ​

    15.             00 ​

    16.             99 ​

    17.             99 ​

    18             8C ​

    19.             B2. ​

    1A             06 ​

    1b             1f ​

    20.             00 ​

    21.             00 ​

    22.             98 ​

    23             75 ​

    24             12. ​

    25             63. ​

    26             03 ​

     

    但是、当我打开 IPGUI 并读取这些值时、CHIPID 就不在那里。 (请参阅下面的)

    (屏幕截图似乎未复制)

    我不确定这是否是问题、但只想确保。 因为当我读取 D0 PMIC 的寄存器时、我看到 CHIPID 是 TPS65218。 (请参阅下面的)

    (屏幕截图似乎未复制)

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

    Michael、

    这对我来说是完美的:-)

    • TPS65218器件将始终具有 CHIPID = 0x03 ("3"表示器件版本 B1、NRND)
    • TPS65218D0器件将始终具有 CHIPID = 0x05 ('5'表示器件修订版 D0、数据表中对此进行了说明)
    • TPS6521815器件将始终具有 CHIPID = 0x15
    • TPS6521825器件将始终具有 CHIPID = 0x25

    未来预编程的变体将具有 CHIPID = 0x35、0x45等

    如果不进入测试模式、就无法对 CHIPID 寄存器进行重新编程、测试模式会打开其他要修改的内部寄存器。 这并不理想、会给编程流程带来不必要的风险。

    根据检查 RegDump 中的一些寄存器、您好像已经对您的单元进行了编程、与 TPS65218D0类似、但使用了 STRICT = 0b (CONFIG1、寄存器0x13 = 0x48、而 TPS65218D0默认值为0x4C、使用 STRICT、位2 =1b)

    DCDC1、稳压器 0x16             0x99 -> 1.1V ​

    DCDC2、稳压器 0x17             0x99​-> 1.1V

    DCDC3、稳压器 0x18             0x8C​-> 1.2V

    DCDC4、稳压器 0x19             0xB2​--> 3.3V

    LDO1、稳压器 0x1b              0x1f -> 1.8V