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.

[参考译文] 无法通过 I2C 将二进制文件加载到 TPS25750芯片

Guru**** 2618835 points

Other Parts Discussed in Thread: TPS25750

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1183249/not-able-to-load-binary-over-i2c-to-tps25750-chip

器件型号:TPS25750

您好!

我尝试通过 I2C 总线为 TPS25750芯片加载二进制文件。 我可以在总线上看到芯片(通过 ADCIN 引脚设置的地址)。

 

#1由于下表(slvuc05a.pdf)、我编写了 Python3脚本(使用 SMBus 库)并在 I2C 从地址设置为0x23 (I2C 总线上没有)的情况下执行 PMM 命令

 

#2发送命令后、我得到的回复是 I2C 总线上没有此类地址(0x23)。

然后我尝试了芯片 I2C 的原始(由 ADCIN 引脚设置)从地址(0x22)、但作为对命令 PBM 的应答、PBMC I 获取 BMS 和 BMC。

 

#3通过 I2C 加载二进制文件时、我是否需要在一次 I2C 写入时使用完整的64Bytes 注册表捆绑包、或者我是否可以使用较小的大小(例如每个 Data1写入8 Bytes)? 作为 Python3上的 SMBus 库、我要求写入操作的有效负载不能同时超过32字节。

 

 

 

期待得到响应和支持、

此致、

Krzysztof Kuźma

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

    您好 、Krzysztof、

    您目前是如何设置 ADCIN1/2的? 您能否提供馈入 TPS25750每个 ADCINx 引脚的电阻分压器原理图?  

    让我在内部检查有效载荷大小要求。  

    谢谢、此致、
    林德华

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

    您好、抱歉、没有回复。

    我在加载二进制文件时稍微移动了一点。

    我执行以下步骤:

    1.-启用 CMDComplete 中断_TX 掩码(字节3上为0x40 (从0开始计数)、ReadyForPatch (字节10上为0x2、从0开始计数)和 PatchLoaded (字节10上为0x1、从0开始计数)

    等待中断 ReadyForPatch (0x2、字节10、从0开始计数)

    3.检查模式注册表是否设置为 PTCH

    4.发送 PBM 命令(等待 CMDComplete 事件,然后读取 Data1注册表,查看 CMD 是否失败)

    5.在32字节包的注册表 Data1上开始包写入(每个数据写入仅由 I2C 协议 ACK 确认)

    6.发送 PBMC 命令(等待 CMDComplete 事件,然后读取 Data1注册表,查看 CMD 是否失败)

    遗憾的是、在 PBMC 命令上、我在 Data1读取"不是补丁"(0x40)时收到错误

    我的脚本中的日志如下所示:
    读取掩码为: [11、0、0、0、64、 0、0、0、0、0、 0、3]
    读取事件为: [11、0、0、0、0、0、 0、0、0、0、0、 0、2]
    已准备好修补
    binary_size 为:0 57 0
    读取事件为: [11、0、0、0、0、0、 0、0、0、0、0、 0、0]
    读取事件为: [11、0、0、0、64、 0、0、0、0、0、 0、0]
    已接收到 PBMS 命令完成
    PBM 后的 Data1应答: [64、0、0、0、0、 35、50、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0]
    START_FW_DOWNLOAD_ARRAY 已完成
    已发送 PBMC 命令
    读取事件为: [11、0、0、0、0、0、 0、0、0、0、0、 0、0]
    读取事件为: [11、0、0、0、64、 0、0、0、0、0、 0、2]
    已接收 PBMC 命令完成
    PBMC 之后的 Data1回复: [64、0、0、64、128、 0、5、134、230、111、 153、178、177、126、5、 22、132、215、119、244、 98、244、253、252、88、 0、3、1、184、24、 123、0]
    正在等待修补程序加载事件

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

    您好!

    感谢您的更新! Raymond 和其他人在假期外出。 响应可能会延迟到1月3日。

    谢谢、

    Chris

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

    您好 、Krzysztof、

    我已过渡到另一个单元、但 Christodulos 将继续提供支持、您能为他提供 有关此论坛的快速更新吗?  

    谢谢、此致、
    林德华

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

    Krzysztof、

    您有原始 I2C 日志吗?

    您似乎正在加载看起来正确的低区域二进制文件。

    此外、如果已有补丁正在运行(PD 未处于 PTCH 模式)、则"不是补丁"更像是警告

    我认为您的流程是合理的、应该加载补丁。 发出 PBMC 命令后、读取版本寄存器并确认是否正确回读? 我怀疑在您发送补丁后 PD 不再处于 PTCH 模式...