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:全闪存与放大器;低区域二进制文件

Guru**** 2595805 points
Other Parts Discussed in Thread: TPS65982, TPS25750

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1228128/tps25750-full-flash-low-region-binary

器件型号:TPS25750
主题中讨论的其他器件:TPS65982
  1. 低区域二进制文件和全闪存二进制文件有何不同? 是否有任何文档对其进行说明?
  2. 在 基于 MCU 的非集成 USB PD 电池充电器实施中、要使用哪个补丁捆绑二进制/c 阵列文件? 配置为低区或全闪存模式?
  3. 如何使用 PBMs 命令区分完整闪存或 低区二进制文件?
  4. 发出 PBM 后、传输补丁捆绑包数据的命令是什么?
  5. 是否有使用 TI MCU 将补丁捆绑包下载到 PD 的示例项目?

谢谢。

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

    下午好!

    我将回顾您的问题、并在 EOB 的5月23日之前为您提供答案。

    此致、

    C·吉莱特

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

    1.没有区别,低区和高区是相同的。

    TPS65982中的文档有关闪存二进制文件的一般概述(图1很有用): https://www.ti.com/lit/an/slva783a/slva783a.pdf

    TPS25750技术参考手册、显示 TPS25750特定的补丁加载过程(图4-1): https://www.ti.com/lit/ug/slvuc05a/slvuc05a.pdf

    2.如果从 MCU 加载补丁捆绑包,则只需要低区。 有关更多详细信息、请参阅该主题: https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1194546/tps25750-mcu-memory-requirement

    3.仅在使用 PBM 时才应发送低区。

    4.通过 I2C 发送补丁数据、然后在所有数据都完成通过 I2C 传输后使用 PBMc。 之前参考的 TPS25750 TRM 中的图4-1详细显示了这一点: https://www.ti.com/lit/ug/slvuc05a/slvuc05a.pdf

    5.下面是介绍如何通过 I2C 使用补丁突发模式的文档: e2e.ti.com/.../PBMs_5F00_4CC.pdf

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

    对于第5项、我看到为补丁捆绑包更新提供了几个代码片段、您是否能够提供完整的示例代码?

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

    我想看看能否找到完整的示例、并在明天的 EOB 前给您回复。

    此致、

    C·吉莱特

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

    您好、是否有关于完整示例的任何更新?

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

    我需要清理代码、但我应该能够在 EOB 于31日向您提供代码。

    此致、

    C·吉莱特

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

    您好、是否有完整示例的更新?

    尽管我尝试编写自己的代码来执行补丁捆绑包更新流程。 但我遇到了以下几个问题:

    1. 发送4CC 字节的顺序是什么? 使用 PBMS 示例、i2c 数据包含"i2c_addr、reg_cmd_0x8、length_4、P、B、 M、S"?  是否首先发送"P"或"S"?
    2. 0x9寄存器的第一个字节返回数据始终向我提供0x40、这是正确的值吗? 我阅读了一些文档、在 PBMs 命令之后的某个位置、第一个字节返回数据是0x1、表示一个可用的数据字节长度?
    3. 我使用0x10作为 PBMs 命令的输入 DATA1从器件地址、但随后当我向此0x10地址发送 i2c 写入命令时、我将获得 i2c NACK。 (通过检查 CMD & DATA 寄存器成功发送 PBMs,没有!CMD 和没有错误)。

    谢谢。

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

    e2e.ti.com/.../Using-4CC-Commands-_2800_3_2900_.pdf

    以下是有关通过 I2C 使用4CC 命令的文档以及示例。 这将修复您的 ACK 问题。

    0x9寄存器的名称是什么? 我在技术参考手册中没有看到它。

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

    此文档对 ACK 问题没有帮助。 0x9是参考手册中描述的 DATA1寄存器。

    您是否能够提供完整的代码示例?

    对于 NACK 问题、我的步骤如下(从器件地址为0x42):

    1. 读取模式寄存器数据(0x3)的数据返回值为0x4、"P"、"T"、"C"、"H"。 (第一个字节为 len,后面是 PTCH):
      1. I2C 地址 0x42
        DATA[0]:MODE 寄存器(0x03)
        数据读取:
        ReadData[0]:字节 CNT (0x04)
        ReadData[1]:'P'
        ReadData[2]:"T"
        ReadData[3]:'c'
        ReadData[4]:'h'
    2. 发送 DATA1寄存器数据(0x9):  
      1. I2C 地址 0x42
        DATA[0]:DATA1寄存器(0x09)
        Data[1]:字节 CNT (0x06)
        数据[2]:BundleSize[7:0]
        数据[3]:BundleSize[15:8]
        数据[4]:BundleSize[23:16]
        数据[5]:BundleSize[31:24]
        数据[6]:SlaveAddress (0x10)
        Data[7]:TimeOutValue (0x32)
    3.  发送 CMD 寄存器数据(0x8):
      1. I2C 地址 0x42
        DATA[0]:cmd 寄存器(0x08)

        Data[1]:字节 CNT (0x04)
        Data[2]:命令字符串('P')
        数据[3]:命令字符串('B')
        数据[4]:命令字符串('M')
        Data[5]:命令字符串('s)
    4. 读取 CMD 寄存器数据(0x8),数据返回值为0x4,0,0,0 (第一个字节的长度为4,随后的0命令可以?)
      1. I2C 地址 0x42
        DATA[0]:cmd 寄存器(0x08)
        数据读取:
        ReadData[0]:字节 CNT (0x04)
        ReadData[ 1~4]:0
    5. 读取 DATA1寄存器数据(0x9):数据返回为0x40、0 (第一个字节的长度为64、后续0数据正常?)
      1. I2C 地址 0x42
        DATA[0]:DATA1 寄存器(0x9)
        数据读取:
        ReadData[0]:字节 CNT (0x40)  // 是否正确?
        ReadData[1]:0                 //仅读取一个字节作为任务响应?
    6. 已成功发送 PMBs。 开始突发写入数据
    7. 发送突发写入数据到另一个从器件地址0x10 (如上面的步骤2中所使用):
      1. I2C 地址 0x10
        data[0]: 修补数据

        数据[...]:修补数据

    8. I2C 函数返回 NACK 错误。 从示波器中、从器件地址0x10是 NACK、后续补丁数据未发出。

    Question:

    1. 上述任何步骤数据或解释都不正确?
    2. 在 PBMs 命令的 DATA1输入中指定了从地址0x10、步骤7是否正确?
    3. 在步骤5中从寄存器 DATA1 (0x9)中读取的数据的第一个字节代表数据的长度、还是它是实际的任务响应?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将回顾您的步骤、并在明天提供最新情况、EOB。

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

    您的 ADCIN 配置是什么? 我需要检查并确保您的 I2C 地址正确。

    此致、

    C·吉莱特