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.

[参考译文] LP8764-Q1:通过 I2C 对 NVM 进行编程

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1355801/lp8764-q1-programming-nvm-over-i2c

器件型号:LP8764-Q1
主题中讨论的其他器件:LP87644Q1EVM

尊敬的:

我们在定制 PCB 上有一个 LP876411B4RQKRQ1。 为了正常运行、我们要按照前面的要求(链接)通过 I2C 更改 NVM。 通常、这应该适用于答案中提到的任何 I2C 主机。 当在具有通用 I2C 主机并可访问 VCCA、VIO、SCL、SDA 和 GND 的评估模块(LP87644Q1EVM)上尝试此操作时、 这会按预期工作。 但是、当在我们的通用 PCB 上运行相同的 I2C 命令时、我们可以在正确的 I2C 地址找到 LP876411B4RQKRQ1、但我们无法更新 NVM。

我在论坛上读到、多个人有相同的问题。 在(链接)中、用户寄存器被锁定、但正如"可扩展 PMIC NVM 更新指南"(链接)中所述、通过写入第0页的寄存器0xA2、这在我们的 I2C 命令列表中得到了处理。

我还在论坛上看到了与我的问题相关的两个主题(链接链接)、但没有任何解决的答案。

您可以帮我解决这个问题、或者为我提供正确的文档来解决这个问题吗?

此致

格尔特詹

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

    大家好、Gertjan、

    [报价 userid="586951" url="~/support/power-management-group/power-management/f/power-management-forum/1355801/lp8764-q1-programming-nvm-over-i2c ]我们有一款定制 PCB 上的 LP876411B4RQKRQ1。 为了正常运行、我们希望按照之前的请求(链接)通过 I2C 更改 NVM。

    正如前面发布的线程中提到的那样。 我们正在努力发布该器件的用户可编程版本以及相关文档。 该软件尚未发布。 但是,您应该能够通过参考 Scalable PMIC NVM 更新指南来更新 NVM 。   

    我看到这里的问题是您要在特定应用中将器件与另一个器件一起使用、因此 该器件的 NVM 是根据该特定用例配置的。 现在、您已经将该器件用于自己的 DIY 应用、对于该应用、您需要修改现有器件的 NVM。 我的其他同事在您指出的其中一个线程中也指出了类似的事情。 因此、我们假设在您执行此类更新时、您会熟悉 NVM 更新概念、并且知道要根据您的使用情况更新什么。  

    Unknown 说:
    我还在论坛上看到了与我的问题相关的两个主题(链接链接)、但没有解决任何问题。

    我想说的是、问题对于不同的客户来说具有延缓性、但大多数情况下、我们无法全面了解问题、这就是为什么我们要获取更多信息、了解问题的原因和运作方式。  

    器件 LP876411B4RQKRQ1默认具有与 TPS65941213-Q1一起用于用例的 NVM。 您还可以查看用户指南和该设备的 NVM 配置设置(https://www.ti.com/lit/pdf/slvucf3 ),并查看在进行更新时是否缺少某些内容。

    现在谈谈问题。 因此、您所说的更新与您在 EVM 上能够执行的更新相同、而不是在您的定制板上执行的更新。 您是否已检查硬件原理图上的所有内容是否都正常? I2C 需要 PUs 并且校正了总线上的 VIO 电压。 您是否使用示波器进行了探测、以查看 I2C 通信是否存在任何差异? 之后、更新 NVM 时会出现什么错误? 此外、您是否确定它不能解决相关问题?

    Br、

    伊什蒂亚克   

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

    你好、Ishtiaque、

    主要问题是 PMIC 通过 I2C 连接、但所有应答的数据都等于0x0。  

    当按照指南 通过参阅 可扩展 PMIC NVM 更新指南来更新 NVM 时、解锁 NVM 的第一步是将0x98写入寄存器0xA2。 看一下在示波器上捕获的 I2C 通信、可以发现我能够将值写入寄存器(左侧)。 但是、我无法读回右侧所示的值:

    我是否在解锁 NVM 之前错过了第一步? 这种方法适用于评估模块、因此我假设它也适用于 IC 本身。

    在专用 PCB 上、分别为 SDA 和 SCL 线路添加了一个5k1电阻作为上拉电阻。 PMIC 引脚24上的 VIO 电压等于3.31V、引脚18上的 VCCA 电压为5.13V。 如所有文档文件中所示、将 PMIC 的 I2C 地址选择为0x4C、并通过简单的 I2C 总线扫描进行确认。  

    我希望这能够澄清我们所面临的问题。 请随时询问更多详细信息、以便更好地了解情况。

    此致

    格尔特詹

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

    大家好、Gertjan、

    请严格遵照说明进行操作。 解锁需要对寄存器0xA2进行4次写入、并且在4次写入期间或之后无法读取。

    BR、Jari

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

    Jari、您好!

    我确实按照  附录 D 中可扩展的 PMIC NVM 更新指南中的说明进行了操作。  

    但是、当在解锁 NVM 后读取寄存器0xA3时、不会设置位6、返回的字节为0x00。  如果我使用 EVM 按照相同的过程操作、则 第6位被设置、返回的字节为0xC0。  

    这是否有助于澄清/找到问题?

    Br

    格尔特詹

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

    大家好、Gertjan、

    不是这样、NVM 永久锁定。 您能否读取第1页中的寄存器地址0x41、看看默认值是什么。  

    如果寄存器读取0xA5以外的任何值、则它被锁定 EEPROM。 这也在 Scalable PMIC NVM Update Guide 的第5.4节中进行了介绍 。  

    如果它被永久锁定、则不幸的是、无法执行任何操作。 您需要更改器件、并尝试重新配置或更新您尝试执行的 NVM。   

    Br、

    伊什蒂亚克  

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

    你好、Ishtiaque

    如果我从我们拥有的 EVM 中读取此寄存器、我们确实会得到0xA5值。 从 专用 PCB 上的 LP876411B4RQKRQ1 IC 中、我们仅得到0x00、这与我们在请求寄存器值时始终执行的操作相同。 不过、没有给出锁定 NVM 的命令、我假设它们未随附标准锁定 NVM、因为 PMIC 尚未启用任何输出。 此外、您能否澄清即使在 NVM 锁定时也是否可以从 NVM 读取?

    我觉得缺少一些东西无法从 PMIC 自身获得正确的回复。 假设我们只需要向 VIO、VCCA、GND、I2C_SCL 和 I2C_SDA 发送通用 I2C 主机和电源信号来设置与器件的通信、让其做出回复并对其 NVM 进行编程、我是正确的吗? PMIC 是否处于我们需要擦除的睡眠状态? 或者我们是否需要处理其他状态?

    Br、

    格尔特詹

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

    大家好、Gertjan、

    感谢您的反馈。  

    此外,您还能说明是否可以从 NVM 读取,即使 NVM 已锁定?

    是的、即使 NVM 被锁定、也可以读取 NVM。 唯一的问题是、当 NVM 锁定时、您无法更新它。

    我觉得缺少一些东西,无法从 PMIC 自身获得正确的回复

    根据您的反馈、您的 I2C 通信可能无法正常工作。 您是否能够在不更新 NVM 的情况下从器件正确读取和写入? 您是否曾尝试读取0x1 (DEV_REV)、0x2 (NVM_CODE_1)、0x3 (NVM_CODE_2)、得到了什么? 读取这些寄存器时是否也会得到0x00?  

    Br、

    伊什蒂亚克   

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

    你好、 Ishtiaque、

    感谢您的回答、抱歉我迟到了回复、我在其他一些项目中遇到了难题。

    我再次研究过这个问题、但仍然出现相同的错误:我无法从 PMIC 上的任何寄存器读取。 不过、PMIC 能够 在 SDA 线路上发送 ACK、之后 SDA 线路再次变为3.3V 而不会出现任何问题。

    在下面、您可以在探测寄存器0x01中的 EVM (地址0x48)数据时找到示波器图像:

    但是、如果我重复相同的过程来向 PMIC (地址0x4c)请求专用 PCB、以获取寄存器0x01处的数据、我们将得到0x00回复:

    由于我们确实从 PMIC 获得了 ACK、因此 PMIC 可以将 SDA 线路拉低。 此外、上拉电阻器看起来足够小、指数上升时间也足够短。  您是否知道如何解释和解决此问题?  

    此致、

    格尔特詹

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

    大家好、Gertjan、

    1.您在 NVM 中设置和在系统中使用的 VCCA/输入电压是多少。 如果您在 NVM 中设置5V 输入并提供3.3V。 您是否可以尝试先将电压增加到4V、然后尝试读取、如果器件读数为0x00、则增加到5V、然后再次尝试读取。  

    2.或者您是否已设置为 NVM 3.3V 并正在提供5V?  

    因为当我确实将 VCCA 更改为5V 并启用 VCCA 监控并应用了3.3V 时、它的读数与原来的0x00相同。  

    请参阅下面的寄存器映射。 它全部读取为零。 我怀疑您有上述任何一种情况。 请尝试朝这个方向看。

    Br、

    伊什蒂亚克  

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

    尊敬的 Ishtiaque:

    感谢您的建议。 到目前为止、我向 Vcca 施加了5V 电压、向 Vio 施加了3.3V 电压。 我无法检查 PMIC 预期的 Vcca 电压、因为我无法检查 NVM。 不过、寄存器0x2C (VCCA_PG_WINDOW)的默认值似乎指示 Vcca 应设置为3.3V。 因此、我也将 Vcca 的值更改为3.3V、但仍然遇到同样的问题、我无法读取 NVM 的任何数据(示波器捕获的通信与上述通信相同)。

    PMIC 可能确认通信并发送 ACK、但不回复请求的数据还有其他原因吗?

    此致、
    格尔特詹

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

    大家好、Gertjan、

    好吧,不知道为什么。  

    是否已尝试更换另一个设备进行检查。 您测试的驱动器是否损坏或其 EEPROM 是否损坏?  

    器件是否在 PCB 中首次通电?  

    您能否共享您正在尝试更新的 NVM json 文件? 或者您 是否已在您的定制 PCB 上更新到 LP876411B4RQKRQ1器件?  

    此外、您是否已检查 I2C 主机是否在使用定制 PCB 时正常工作? 因为我在 I2C 通信的共享数字中看到了一些差异。  

    您可以查看 I2C 的重复启动通信。 是根据数据表的建议进行的。 我注意到(用下图中的垂直红线突出显示) 、在重复启动之后、当 SDA 上升发生在 SCL 下降的前沿时、与正常通信相比、在 SCL 为低电平时应该发生 SDA 转换。 这可能不是确切的原因、因为如果您在 EVM 上使用同一个 I2C 主机并且该主机可以正常工作、那么这也应该起作用、但由于是定制 PCB、硬件连接可能采用不同的布线方式并受到一些噪声的影响、这可能会造成我刚才提到的差异。  

    Br、

    伊什蒂亚克

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

    你好、Ishtiaque、

    感谢您的支持。 然而,目前我仍然面临同样的问题。 我确实对您提出的主题有一些问题、或许这些问题可以帮助您找到解决方案。

    您是否尝试更换另一台设备进行检查。 测试设备是否损坏或其 EEPROM 是否损坏?  [/报价]

    我更改了 定制的 PCB、但确实遇到了同样的问题。 因此、我认为它是系统性的、而不是与 PCB 相关的。

    设备是否能在 PCB 中首次通电?  [/报价]

    它确实确认 I2C 命令、因此应该给它上电。  或者 、您是指通过加电我可以测量或检查的其他内容吗?  

    您能共享您正尝试更新的 NVM json 文件吗?
    [/quote]

    我想先测试基本通信、然后再继续演示。

    [报价 userid="518392" url="~/support/power-management-group/power-management/f/power-management-forum/1355801/lp8764-q1-programming-nvm-over-i2c/5221910 #5221910"]或者您是否已 在定制 PCB 上更新为 LP876411B4RQKRQ1器件?  [/报价]

    是的、定制 PCB 上的 PMIC 为: LP876411B4RQKRQ1。 与 EVM 上使用的 PMIC 相比、这是问题吗?

    还检查了您的 I2C 主机是否能在使用定制 PCB 时正常工作? 因为我在 I2C 通信的共享数字中看到了一些差异。  [/报价]

    我已经重新研究了这一点、并更改了一些参数。 您可以在下面找到通信的示波器图、如果操作正确、应该会有一个有效的重复启动。 此外、我再次通过 PCB 上的温度传感器再次检查了 I2C 通信、该传感器的行为正常。 因此、我认为 I2C 主机没有引起任何问题。

    是否还有其他我可能会错过并可以检查以解决此问题或指向问题所在的位置?

    此致、

    格尔特詹

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

    大家好、Gertjan、

    我更改了 自定义 PCB,但我确实遇到了同样的问题。 因此,我认为它是系统性的,而不是与 PCB 相关。

    更换器件的意思是、您曾尝试在同一定制 PCB 上使用样片 B PMIC 更改样片 A PMIC。 是否仍会看到相同的行为? 您是否也尝试过同样的操作、例如在 EVM 上对 PMIC 进行采样以检查其是否正常工作?

    确认 I2C 命令,因此应将其打开。  或者 、您是指通过加电我可以测量或检查的其他内容吗?  [/报价]

    是的、我是说 PMIC 是否已通电。 您是否检查了 PMIC 的输出?  

    是的、定制 PCB 上的 PMIC 为: LP876411B4RQKRQ1。 与 EVM 上使用的 PMIC 相比、这是问题吗?
    [/quote]

    是的、EVM 随附具有不同 NVM 的器件。  EVM 用户指南中提供了此信息 。  

    直到您 也在 EVM 上填充了 LP876411B4RQKRQ1。  

    我现在看到重复启动看起来是正确的。  

    直到现在为止,我向 Vca 申请了5V 电压,向 Vio 申请了3.3V 电压

    根据我在上面看到的、您一直提供5V 输入的内容 、 LP876411B4RQKRQ1针对3.3V VCCA 输入进行了编程  、如用户指南下图所示。  

    因此,在我看来,这个问题似乎仍然是我在上面强调过的问题。  

    1.您在 NVM 中设置和在系统中使用的 VCCA/输入电压是多少。 如果您在 NVM 中设置5V 输入并提供3.3V。 您是否可以尝试先将电压增加到4V、然后尝试读取、如果器件读数为0x00、则增加到5V、然后再次尝试读取。  

    2.或者您是否已设置为 NVM 3.3V 并正在提供5V?  

    因为当我确实将 VCCA 更改为5V 并启用 VCCA 监控并应用了3.3V 时、它的读数与原来的0x00相同。  

    [/报价]

     

    因此、在使用 LP876411B4RQKRQ1时、可为器件提供3.3V 输入、而不是5V。  

    Br、

    伊什蒂亚克

    [/quote][/quote]