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.

[参考译文] TPS25750:在加电时不加载 EEPROM 配置

Guru**** 2589300 points
Other Parts Discussed in Thread: TPS25750

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1311843/tps25750-not-loading-eeprom-configuration-on-power-up

器件型号:TPS25750

您好!

我在设计中实施了 TPS25750D。 器件将仅作为供电方模式工作、配置将保存在 I2Cm 总线上的 EEPROM 中。 所以、我选择了 ADCIN1=0和 ADCIN2=0的配置。  

EEPROM 地址为0x50、我将来自寄存器0x0000的"tps25750x_fullFlash_i2c_array"放在 EEPROM 中。

当我为 TPS25750D 上电时、I2Cm 总线上没有任何通信尝试、我不明白为什么芯片应该从 EEPROM 加载配置。

当我读取 I2Cs 总线上的可用寄存器时,我得到:  

在寄存器0x3处读取4个字节
bytecount = 4
50 54 43 48

在寄存器0x4处读取4个字节
bytecount = 4
49 32 43 20

在寄存器0xF 处读取4个字节
bytecount = 4
0 5 9 F5

在寄存器0x8上读取4个字节
bytecount = 4
0 0 0 0 0

在寄存器0x14处读取11个字节
bytecount = B
0 0 0 0 0 0 0 0 0 0 0 0 2

在寄存器0x16上读取11个字节
bytecount = B
0 0 0 0 0 0 0 0 0 0 0 0 2

在寄存器0x18上读取11个字节
bytecount = B
0 0 0 0 0 0 0 0 0 0 0 0 2

在寄存器0x2D 处读取5个字节
bytecount = 5
30 3 60 2 A1

因此、th 器件处于补丁模式。  

这里是我的设计:(已连接)

请,我的设计或配置有什么问题?  

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

    通常、我们建议让 EEPROM 由 LDO_3V3供电。 为3V3_P 供电的部件是什么? 如果没有及时启动、PD 可能无法读取 EEPROM。

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

    3V3_P 由 LDO 提供。 此电源与为 TPS25750D 提供的电源相同。  

    我想、使用这种电源、而不是 TPS25750提供的电源、EEPROM 的运行速度会更快。  

    总之、我使用绕线对 PCB 进行了返工、从而通过  TPS25750D 的引脚 LDO_3V3为 EEPROM 供电。

    结果和以前一样,我仍然看不到任何通信或通信尝试在 I2Cm 总线上,我得到这个:  

    在寄存器0x3处读取4个字节
    bytecount = 4
    50 54 43 48

    在寄存器0x4处读取4个字节
    bytecount = 4
    49 32 43 20

    在寄存器0x2D 处读取5个字节
    bytecount = 5
    30 3 60 2 A1

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

    Charles

    0x3寄存器正在读回 PTCH、因此从 EEPROM 加载或获取固件时存在问题。 感谢您排除了3V3_P 这一潜在问题。

    如果您能够获得 I2Cm 流量的日志、这将非常有用。 好像 PD 正在尝试从 EEPROM 读取数据、这是导致问题的原因。 我认为典型的 EEPROM 偏移是0x0800。 您能做2件事吗:

    1) 1)从 EEPROM 地址0x800开始擦除闪存并重新写入闪存映像

    2) 2)在 PD 启动之前开始获取 I2Cm 总线流量日志、以便我们可以看到开始 I2Cm 写入

    谢谢。

    克里斯

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

    非常感谢您的帮助。

    我擦除了闪存(写入0xFF)并从 EEPROM 地址0x800开始重新写入完整的闪存二进制文件。

    我读取 EEPROM 并与我写入的内容进行比较、一切都相等。  

    EEPROM 仍由 TPS25750D 的引脚 LDO_3V3供电。

    我记录了两次启动、第一次在100ms 内、第二次在2s 内。  

    /resized-image/__size/3300x2475/__key/communityserver-discussions-components-files/196/PowerUP_5F00_TPS25750D_5F00_100ms.png

    /resized-image/__size/3300x2475/__key/communityserver-discussions-components-files/196/PowerUP_5F00_TPS25750D_5F00_2s.png

    很遗憾、我没有看到任何变化。  

    在 I2Cm 总线上没有通信或尝试通信、并且 TPS25750仍处于补丁模式。  

    如果您有任何其他想法、请告诉我。

    查尔斯

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

    Charles

    我没有看到您的测试设置有任何问题、根据数据表、这应该会从 EEPROM 加载固件。 没有看到 PD 器件尝试读取 EEPROM。 我将使用 EVM 进行调查、但我认为此时无法完全复制您的硬件。 请提供与您系统上的 TPS2570设置相关的任何其他信息(ADCIN 配置、使用的充电器类型、如何提供输入电源电压以及您可能认为与您的设置相关的任何其他信息)。 我还向您发送了朋友申请。 请接受、以便我们可以在公共论坛之外分享更多详细信息。 对于冗长的调试、我再次表示歉意、但这是我们没有遇到的新问题、一切都显示它可以正常工作。

    此时还需要尝试一些操作、以帮助您在调试时使系统正常运行。

    1) 1)使用示波器以及 LDO_3V3验证 ADCIN1和 ADCIN2电压、以便查看 PD 启动时的值

    2)我知道你的系统正在选择"运行模式"进行启动。 但很可能会发生解码错误、您可以更改为不同的 I2C 地址索引还是不同的电池电量耗尽配置吗?

    3)如果您有一个 TPS25750 EVM、则可以尝试让 EVM 充当电路板的 EEROM 闪存写入器、步骤如下(需要占用一些时间):

    • 从 EVM 移除 EEPROM
    • 将板设置为 I2C 地址 Index =#1 (0x20)
    • 将跳线/调试线从 EVM 上的 I2Cs_SCL/SDA 和 I2Cm_SCL/SDA 连接到系统上的 I2Cs 和 I2Cm
    • 为 EVM 加电、然后打开在线 GUI。 确认您可以连接到 EVM

    • 使用 Import Settings (导入设置)选项加载配置并浏览至导出的配置
    • 单击"Flash to Device From Current Configuration"
    • 可选:前两个步骤也可以使用生成的.bin 文件和"Flash to Device From Binary File"选项来完成。 任一流程都可以工作、但上述2个步骤可排除保存的二进制文件可能存在的问题。

    完成此操作后、通过读回寄存器0x3并重新启动电路板、查看 PD 是否至少可以在应用模式下启动。

    谢谢。

    克里斯

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

    您好!

    所有经验的结果如下:

    /cfs-file/__key/communityserver-discussions-components-files/196/Support-TI-TPS25750D.pdf

    很遗憾、这无法解决我的问题。  

    我是否应该尝试使用 CMD1和 DATA1 (主命令接口)使 TPS25750D 与 EEPROM 进行通信?  

    如果您有任何其他想法、请告诉我。

    查尔斯

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

    Charles

    这看起来像是尝试在 I2Cm 上写入 EEPROM、但似乎没有为 I2C 线路提供足够的电源来进行上拉。 我假设 I2Cs 也连接到 LDO_3V3、当发生 I2Cm 事务时、I2Cs 开始变为低电平。

    我怀疑除了探测 I2Cm_SDA/SCL 和 LDO_3V3之外、您是否再次执行了该实验、您可能也会看到 LDO_3V3骤降。 这会是一个问题。

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

    你是对的。  对于此任务、LDO_3V3有点弱。 我通过外部电源来帮助他。 擦除+写入+检查操作运行良好。 现在已使用在线 GUI 正确刷写了电路板的 EEPROM。  

    遗憾的是、当我的电路板启动时、我仍然没有在 I2Cm 总线上看到任何通信尝试。 TPS25750D 再次处于补丁模式。

    由于 I2Cm_IRQ 引脚、TPS25750D 是否未在 I2Cm 总线上进行通信?  

    我仍在调查。  

    查尔斯  

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

    Charles

    I2Cm_IRQ 在我们的设计中未使用。 如果它是连接的或不连接的、我认为这不会导致我们看到的问题、但值得尝试、因为这是一个新问题。

    我还有一个建议是修改您使用的配置文件。 请不要使用您的配置、而是尝试使用默认配置、看看这是否可能是配置问题。 不过、这是一个低概率。

    从离线注释中、我建议进行以下实验、以查看 VIN_3V3电源时序是否是问题所在。 我看到3V3_P 由5V 线路提供。 是否可以将 VIN_3V3连接到外部电源以绕过直流/直流转换器、然后开启您的系统? 我怀疑在这种情况下 VIN_3V3首先存在。

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

    您好!

    Arduino Mega 上拉已启用、无法禁用。 这条秘密的反攻 I2Cm 巴士。

    这就是我没有看到 TPS25750D 在启动期间进行任何通信尝试的原因。

    在另一个原型上、我让 I2Cm 总线尝试加载 EEPROM。  

    !!! 另外一点、在我的方案 TPS25750上的引脚16是 I2Cm_SCL、但在数据表中它是 I2Cm_SDA!!!

    很抱歉、在

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

    很高兴问题得到解决! 感谢发布解决方案!