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.

[参考译文] TPS6594-Q1:尽管收到 ACK–OTP 未加载、但寄存器访问始终返回 0x00?

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1533632/tps6594-q1-register-access-always-returns-0x00-despite-ack-otp-not-loading

器件型号:TPS6594-Q1
主题中讨论的其他器件:TPS6594EVM

工具/软件:

您好 TI 支持团队:

我正在使用 使用 TPS65940400 的定制电路板 、我无法通过 I²C 访问任何有效的寄存器数据。 不过该器件正常 地址 0x28 处的 ACK 、所有寄存器读数一致返回0x00。 I²C μ T 序列与 TPS6594EVM 正常配合使用、因此我怀疑定制电路板上存在与 OTP 相关的问题或初始化问题。

 设置摘要:

  • PMIC 器件 :TPS65940400(通过器件标识确认)

  • 电源轨

    • VCCA = 5.0V(稳定)

    • VIO = 3.3V(稳定,定制电路板上本地生成)

    • 通过跳线将所有 PMIC 输出与负载断开。
    • 已安装引脚 2 上的电容器 (LDOVINT)、并且未连接任何负载。 测量时稳定 1.8V。
  • I²C 地址 :设备以 ACK 响应 0x28

  • I²C 总线连接

    • Δ V_SCL I²C1 Δ V_SDA I²C1 从 EVM 引出的线路直接连接到定制电路板的匹配 I²C1 Ω 引脚。

    • 该总线上不存在其他 I²C Ω 器件。

    • 上存在 I²C Ω 上拉电阻 (4.7kΩ 至 VIO) 仅限 EVM 侧

  • 引脚 20 (NPWRON/ENABLE) :尝试了低和高—对 I²C 行为没有影响。

 发现的问题:

  • 供电 ACK 每个 I²C μ s 事务。

  • 全部 寄存器读取 (包括 Device ID 和 STAT_STARTUP)0x230x73Return(返回)0x00

  • 在尝试配置器件时、GUI 显示“EEPROM Unlock Failed“。

  • 更改引脚 20 (NPWRON/ENABLE) 可执行此操作 不影响 寄存器读取(与 EVM 上看到的行为不同)。

  • EVM 电路板上的 I²C 脚本和软件也相同、成功 、返回预期数据。

 已执行的调试操作:

  • 已验证 I²C 波形:启动→_ID(写入)→ACK→寄存器 addr→ACK→I²C START→_ID(读取)→ACK→I²C DATA = 0x00

  • 已验证示波器上的所有电源轨—无欠压或不稳定

  • 验证了 VIO 和 VCCA 电平和电流源

  • I²C 了 I ² C 总线上正确的引脚映射和信号完整性

  • I²C GUI 和低级 I ² C 脚本测试了行为

  • 删除了定制电路板上的冗余上拉电阻以避免争用

 问题:

  1. TPS65940400 是否会以 ACK 响应 I²C μ s 保持在初始化状态 、阻止所有寄存器访问(即 OTP 从不加载)?

  2. 都有 无文档记载的 OTP 加载必要条件 例如内部信号或状态位上的预期拉电平?

  3. 这部分可能是什么 出厂时装有锁定的 OTP 或需要特殊序列才能允许读取访问?

  4. IF OTP 缺失或损坏 、对于所有寄存器读取、器件是否仍会确认但返回 0x00?

  5. EEPROM 编程 GUI 序列取决于特定的寄存器状态 如何在空白设备中复制?

任何见解都将非常有帮助。

下面是读取 DEV_REV 寄存器的 I2C 线路的捕获、该寄存器返回零。 读取所有寄存器具有相同的输出。

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

    尊敬的 Amir:

    TPS65940400 是 Leo 的空白器件 OPN、因此它没有像 EVM 那样的预加载配置。 必须使用 GUI 对其进行编程/配置。 您提到了在使用可扩展 PMIC GUI 尝试与器件通信时遇到了一些问题 — 您能否提供以下帮助:  

    1.显示如何 从 EVM 板连接 I2C 的设置图片。 您能否确认 I2C 仅连接到受测 PMIC、而不是使用此配置的 EVM 吗?  

    2.当您使用 GUI 连接到设备并尝试对其进行配置时,您能分享看到的错误/顺序的屏幕截图吗? 同时请确保您使用最新的 GUI 版本: https://dev.ti.com/gallery/search/scalable 我相信最新的版本是 5.0.0、但至少 4.0.0 会更好。  

    这将帮助我们缩小您提到的 EEPROM 解锁失败的范围。  

    此致、

    Katie

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

    尊敬的 Katie:

    感谢您的答复。

    我认为原理图(随附 e2e.ti.com/.../8780.PMIC.pdf) 比照片更有用。 我们已将 I2C1_SDA 和 I2C1_SCL 线从 EVM 连接到定制电路板。 在我们的电路板上、SDA 线路与所有其他组件断开连接、仅连接到受测的 TPS65940400 PMIC。 由于 PMIC 未配置、因此我们电路板上的其他元件均未通电。

    也就是说、我们确信物理连接是有效的、因为:

    1. 我们从器件接收到有效的 I2C ACK。

    2. 我们开发了一个在另一个开发板上运行的自定义 I2C 脚本来复制 GUI 事务。 我们针对 EVM 已组装的 PMIC 对此进行了测试、并确认通信成功(请参阅随附的照片/resized-image/__size/320x240/__key/communityserver-discussions-components-files/196/photo_5F00_2025_2D00_07_2D00_02_5F00_15_2D00_33_2D00_08.jpg) 

    现在来回答我们的问题:

    1. 从 PMIC 读取寄存器是否需要任何序列、或者我们是否可以在无需之前配置的情况下通过 I2C 直接读取寄存器?

    2. 我们预计第 1 页上的寄存器偏移 0x22 会反映 I2C1_ID。 在 EVM 上、这会返回 0x48。 在访问空白 TPS65940400 时、我们是否仍需要非零 I2C1_ID 值、或者如果未对 OTP/NVM 进行编程、是否会返回 0x00?

    3. 另一个奇怪的事情:空白器件响应 I2C 地址 0x28(收到 ACK)、但不响应 0x48。 空白 TPS65940400 是否存在这种预期行为?

    我们首先需要能够通过 I2C 与 PMIC 通信、至少读取一些寄存器、然后进行 GUI 编程。 要么我们在硬件上缺少某些内容、要么存在未记录的序列。

    再次感谢您的帮助。

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

    我已经确定了定制电路板上无响应行为的根本原因。

    该问题是由于绕过了由 OVPGDRV 引脚控制的外部 FET、同时仍保持 VSYS_SENSE 的连接。 根据数据表、TPS6594x PMIC 在启动时对外部 FET 执行短路故障检查。 如果 VCCA 在允许 OVPGDRV 启用 FET 之前上升、PMIC 会将其检测为故障并拒绝启动。

    我通过绕过 EVM 板上的 FET 确认了这一点、这导致了相同的故障。

    解决方案:我将 VSYS_SENSE 接地。 OVPGDRV 已悬空、并直接为 VCCA 供电。 在这种配置下、PMIC 现在会启动并正确响应。

    希望这有助于其他面临类似启动问题的人。