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.

[参考译文] UCD90160:清除日志,峰值,所有闪存

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1068263/ucd90160-clear-logs-peaks-all-flash-memory

部件号:UCD90160
“线程: 测试”中讨论的其它部件

我想清除 UCD90160设备的所有闪存。 我之前看到过一篇帖子,该帖子建议使用以下内容来清除已记录的故障:
"地址+ 0xEA + 0x12 (长度)+ 18个零"

这对我很有用,但我有两个问题:

1)在尝试清除记录的页面峰时,我尝试了“地址+ 0xED + 0x02(长度)+ 0x00 0x00”,但记录的页面峰的值似乎没有变化

2) UCD90160的全闪存是否由记录的故障和记录的峰值表示? 如果没有,如何 将零写入所有闪存,而不是写入闪存的这些部分?

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

    你(们)好

    1.要清除峰值日志,您必须先在页面命令后面写入5个零,而不是2个零

    2.不可以,您必须删除分隔的。  

    此致

    宜和

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

    为了清除峰值日志,我尝试了运行

    地址0x00 (第页)

    地址0xED 0x05 0x00 0x00 0x00 0x00 0x00 0x00 (清除峰值)

    但是,不会看到0xED 时的值发生变化。 有趣的是,我还尝试用“地址+ 0xEA + 0x12(长度)+18个零”写入0xEA,但0xEA 的值也没有变化(以前,写入0xEA 成功)。 我是否需要先启用某种类型的写入功能? 我看到写 成功断断续续,我正在尝试了解如何一致 地写入故障和峰值日志。

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

    你(们)好

     要清除导轨1峰值故障:

    地址0x00 (页面命令),0x00 (用于选择轨道1的页面索引)

    地址0xED 0x05 0x00 0x00 0x00 0x00 0x00

    请注意,在之前和之后,您可能有相同的峰值,这与您的电压一致。 测试是  

    1.让电压升高以记录峰值

    2.让电压恢复正常

    3.清除峰

    4.读取峰值,如果擦除良好,则峰值应具有不同的值。  

    您必须等待至少300毫秒才能发出另一个擦除,因为这需要时间才能完成。

    此致

    宜和

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

    我能够观察到您描述的行为。 擦除后是否有办法避免立即设置峰值? 清除0xED 后,我想读取一个0x00,以遵循非易失性内存净化协议。  

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

    你(们)好

    否,峰值会持续更新。

    此致

    宜和

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

    除了峰值和故障日志之外,闪存中是否还存储了其他数据? 如果是,可以通过 PMBus 清除吗?

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

    你(们)好

    用户配置数据也存储在同一闪存中。 您不想将其清除。

    此致

    宜和

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

    如果有人清除了配置数据,会发生什么情况? PMBus 是否可以这样做?

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

    你(们)好

    如果您担心这一点,可以启用安全模式以防止任何未经授权的写入来保护。  

    请参阅10.33和10.34

    https://www.ti.com/lit/pdf/slvu352 

    此致

    宜和

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

    啊,很抱歉,我不清楚。 我有兴趣有意清除配置数据。 我是否可以通过 PMBus 清除配置数据? 清除配置数据会产生什么后果?

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

    你(们)好

    是的,请参阅下面的顺序以清除闪存。  

    我们不建议在正常操作期间执行此操作。 这仅用于调试目的。

    示例序列:
    //清除数据闪存写保护位;  
    BlockWrite,0x7E,0xE2,0x050400000104
    BlockWrite
    ,0x7E,0xE3,0x0400008820
    //擦除数据闪存...
    BlockWrite,0x7E,0xE2,0x050414000104
    BlockWrite
    ,0x7E,0xE3,0x0400000100
    暂停,25
    ,暂停25毫秒
    只有地址(0x7E)将按此顺序更改。 要写入的命令代码和块是固定的。 块计数为
    如以下示例所示。 PEC 代码不是。 PEC 在这些设备上是可选的。

    此致

    宜和

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

    非常好,谢谢 Yihe,这就是我想要的。

    我能跑得更好了

    BlockRead,<i2c_addr>,0xE2

    BlockRead,<i2c_addr>,0xE3

    运行您描述的命令后,BlockReads 是否返回所有零? 我希望总共有2 KB 的零,因为 ucd90160闪存是2 KB;这是正确的吗?

    此外,这些命令是否会使 ucd90160处于不可用状态? 我知道您提到不 在正常操作中执行这些步骤,因此我想了解其后果。

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

    你(们)好

    对于 E2,您必须使用“写入”来设置地址,而不是“读取”。

    由于峰值日志,您不会得到所有零。  

    擦除整个闪存后,UCD90160不执行任何功能,因为没有有效的配置。

    由于电源滑轨未启动,您的系统可能无法正常工作。

    我不知道为什么你坚持这样做。  

    此致

    宜和

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

    感谢你的帮助。 我能够清除数据闪存以对设备的非易失性内存进行消毒。  

    除了峰值日志之外,其余数据闪存的地址是什么? 我想阅读它们并确认我已清除数据闪存。 我知道我可以在0xEA 读取故障日志,但数据闪存 的地址还在哪里?

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

    你(们)好

    请查阅 https://www.ti.com/lit/pdf/slua815第3.2节 ,了解要阅读的有效地址。

    此致

    宜和

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

    我在第3.3节中看到,数据闪存存储在 0x18800到0x19000之间。 但是,如果我想跑步的话

    ReadByte,<addr>,0x18800,0x00

    命令失败,因为0x18800不是 ReadByte 命令的有效地址。 如何通过 ReadByte 访问0x18800?

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

    你(们)好  

    请阅读 https://www.ti.com/lit/ug/slvu352g/slvu352g.pdf 第10.19节 

    您必须使用 E2和 E3命令才能读取。您不应使用绝对地址,而应将偏移与0xE2命令一起使用。

    要读取0x18800,请使用偏移0。

    此致

    宜和

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

    我在地址0x18800处成功读取,偏移为0,但有以下几项:

    BlockWrite,0x4e,0xE2,0x0200000104
    BlockRead,0x4e,0xE3,0xFFFFFFFF

    但是,我尝试通过将偏移量设置为4访问0x18804来访问下一个地址。 写失败 -我是否遗漏了什么?

    BlockWrite,0x4e,0xE2,0x0204000104
    BlockRead,0x4e,0xE3,0xFFFFFFFF

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

    你(们)好

    请观看以下视频以导出数据闪存脚本文件,您可以获得有关如何读取闪存的详细示例。

    https://training.ti.com/fusion-power-designer-how-import-and-export-data-flash-script-files?context=1136655-1139495-1136587 

    此致

    宜和