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:SMBus 数据闪存脚本和驱动程序

Guru**** 2540720 points
Other Parts Discussed in Thread: UCD9090, UCD90320, UCD90160A, UCD9090A

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/972749/ucd90320-smbus-data-flash-script-and-driver

器件型号:UCD90320
主题中讨论的其他器件:UCD9090UCD90160AUCD9090A

大家好、我有2个关于 UCD90320器件提出的新问题的问题、我们看不到 UCD9090/A 或 UCD90160A 的问题

我们有一个脚本、用于对 ucd 器件配置进行编程。 它 使用 SMBus 数据闪存脚本(DFS)对数据闪存进行编程。 此脚本适用于 UCD9090/A 和 UCD90160A 器件。 我们的脚本首先验证 DFS 文件和设备中的设备 ID、然后擦除数据闪存、根据 DFS 文件通过命令 E2/E3写入数据、然后根据 DFS 文件验证闪存数据。  该脚本通过禁用写保护然后擦除闪存来擦除闪存。 DFS 文件的开头也有这些相同的命令。 这些命令以04开头、表示它们是数据闪存控制寄存器命令。

ucd90320 dfs 文件没有以04开头的 E2命令、表示没有数据闪存控制寄存器命令。 擦除数据闪存的命令是什么? 我尝试仅发出 DFS 文件中的所有命令、但所有验证都失败。 我是否需要了解 DFS 文件中的其他差异? 是否有关于使用 DFS 文件对数据闪存进行编程的文档?  

2. UCD90320引入超过32字节的命令。 我们的 ucd900.c 驱动程序使用 smbus 函数:I2C_smbus_read_block_data ()和 i2c_smbus_write_data_block 来处理块命令。 这些函数限制为32字节传输、不适用于超过32字节的命令。 TI 建议在 ucd900.c 驱动程序中使用什么来处理这些32+命令?

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

    是的

    第一。 对于 UCD90320、擦除是在内部传递的、因此 DFS 文件不必包含这些擦除命令。

    2。  由于 UCD90320具有比旧版 UCD90器件更多功能、因此我们必须扩展命令有效载荷。 UCD90器件符合 PMBus 标准、最多支持256字节的块命令。 如果 i2c 驱动程序基于 SMBus (限制为32字节)、则需要一个支持 PMBus 的新驱动程序

    此致

    Yihe

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

    关于项目1的答案。 我们有一个专有脚本、当找到新的数据闪存脚本(DFS)文件时、该脚本用于升级 UCD9090A 或 UCD90161A 上的数据闪存。

    步骤如下:

    1.验证设备 ID (reg FDH)是否与 DFS 文件中的设备 ID 字符串相匹配。

    2.清除数据闪存写保护 和擦除数据闪存

    3.在 DFS 文件中执行 BlockWrites

    4.在 DFS 文件中执行验证。

    如果所有步骤均成功执行、则将对设备进行下电上电。  

    在上一个答案中、它表示擦除是在内部完成的。 擦除是如何触发的? 写保护也是在内部完成的吗? 它是如何触发的?

    是否有可写入寄存器 E2h 和 E3h 的命令? 在 UCD9090和90160上、命令为:

    清除数据闪存写保护:

    E2 - 0x0400000104

    E3 - 0x00008820

    擦除数据闪存:

    E2 - 0x0414000104

    E3 - 0x00000100

    这些在 UCD90320上不起作用。 一个原因是在 UCD9090A 和 UCD90160A 中 E2为6字节、而 E2为5字节。

    为了以编程方式升级数据闪存、我们需要确定性地擦除闪存。

    我们的脚本如何触发数据闪存擦除并清除写保护。

    谢谢你

    Tom

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

    你好

    UCD9090A/90160将不同的器件作为 UCD90320。 DFS 文件也不同。 客户应分别遵循 DFS 文件。 UCD9090A/160中定义的过程不适用于 UCD90320。

    如 UCD90320数据表的第8.5节所述、UCD90320使用双组机制来提供失效防护状态。 因此、只要编程完成、就会擦除一个组。 以便新编程始终有一个空白库。 客户无需担心擦除。

    希望这对您有所帮助。

    此致

    Yihe