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.

[参考译文] UCD90320:通过数据闪存脚本进行编程失败

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1420258/ucd90320-programming-via-data-flash-script-fails

器件型号:UCD90320

工具与软件:

我正在使用数据闪存脚本文件从主机对 UCD 芯片进行编程。 我使用一个函数、将数据闪存脚本文件中的每个步骤转换并执行到相应的 i2c 读取/写入。 我观察到编程失败、并显示以下错误  

JAN 01 00:05:03系统更新:正在执行0x11、0xE3、0x0400000000
JAN 01 00:05:03系统 P1:回溯(最近一次呼叫):
JAN 01 00:05:03系统 P1:文件"/usr/local/bin/obmc-nto-ucd-update.py、第187行、在中
JAN 01 00:05:03系统 P1:execute_commands_from_csv (config_file)
JAN 01 00:05:03系统 P1:文件"EMPTY"/usr/local/bin/obmc-nto-ucd-update.py、第105行、位于 execute_commands_from.csv 中
JAN 01 00:05:03系统 P1:EXECTE_BLOCKWRITE (ROW)
JAN 01 00:05:03系统 P1:/usr/local/bin/obmc-nto-ucd-update.py EXECUTE_BLOCKWRITE 中的"http://focus.ti.com"第53行
JAN 01 00:05:03系统 P1:bus.writ_block_data (dev_addr、PMBus_cmd、data_arg)
JAN 01 00:05:03系统 P1:文件"/usr/lib/python3.8/site-packages/smbus2/smbus2.py、第543行、位于 write_block_data 中
JAN 01 00:05:03系统 P1:ioctl (self.fd、I2C_smbus、msg)
JAN 01 00:05:03系统 P1:操作系统错误:[errno 5]输入/输出错误

注意:
1.这不是它从非常第一步失败,但它失败,并在从 DataFlash 脚本文件执行某些步骤后出现上述错误。  

2.同一程序在其它系统上运行时没有任何问题。  

有人指出了可能会发生这种情况的原因吗?  

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

    我还尝试在命令之间将延迟从0.2ms 更改为0.5ms、但这也没有帮助。  

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

    您好!

    我们关于此设备的专家目前不在办公室。 我会与团队其他成员核实、但在他们返回之前我们可能无法提供答案。

    此致、

    Troy

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

    您好!  

    程序是否在随机步骤或特定步骤上失败? 您能否提供失败步骤的详细信息:什么是命令代码、什么是写入数据?  是否启用 PEC 字节?

    安妮

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

    我有一个脚本会接收数据闪存脚本(.csv 文件)并将文件中的每一行转换为相应的 PMBus 命令。 例如、  

    BlockWrite、0x11、0xE2、0x06020100000104将转换为 bus.write_block_data
    BlockRead、0x11、0xE3、0x1000001027000000080000000000000000将转换为 BUS.READ_BLOCK_DATA

    当我的系统启动时、UCD 已通电、然后执行脚本、该脚本应该用于对 UCD 芯片的配置进行编程。 脚本可以看到总线上的 UCD 芯片、因为它可以读取器件 ID、检查其他寄存器。 然后、它开始对芯片编程、但失败、并显示以下错误、

    JAN 01 00:05:03系统更新:正在执行0x11、0xE3、0x0400000000
    JAN 01 00:05:03系统 P1:回溯(最近一次呼叫):
    JAN 01 00:05:03系统 P1:文件"/usr/local/bin/obmc-nto-ucd-update.py、第187行、在中
    JAN 01 00:05:03系统 P1:execute_commands_from_csv (config_file)
    JAN 01 00:05:03系统 P1:文件"EMPTY"/usr/local/bin/obmc-nto-ucd-update.py、第105行、位于 execute_commands_from.csv 中
    JAN 01 00:05:03系统 P1:EXECTE_BLOCKWRITE (ROW)
    JAN 01 00:05:03系统 P1:/usr/local/bin/obmc-nto-ucd-update.py EXECUTE_BLOCKWRITE 中的"http://focus.ti.com"第53行
    JAN 01 00:05:03系统 P1:bus.writ_block_data (dev_addr、PMBus_cmd、data_arg)
    JAN 01 00:05:03系统 P1:文件"/usr/lib/python3.8/site-packages/smbus2/smbus2.py、第543行、位于 write_block_data 中
    JAN 01 00:05:03系统 P1:ioctl (self.fd、I2C_smbus、msg)
    JAN 01 00:05:03系统 P1:操作系统错误:[errno 5]输入/输出错误

    它会在与数据闪存脚本文件不同的步骤失败时触发一次脉冲。 此外、还禁用 PEC。  

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

    大家好、Dhruv、

    您可以尝试启用 PEC 字节吗? 如果仍然出现故障、您能否提供详细信息、例如:什么是命令代码、什么是数据字节?

    此致

    安妮