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.

[参考译文] TM4C123BE6PM:EESUPP.PRETRY 位= 1、无法在自由运行时将其清除。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/933875/tm4c123be6pm-eesupp-pretry-bit-1-and-unable-to-clear-it-in-free-run

器件型号:TM4C123BE6PM

您好!

我能问您关于客户退回电路板的故障原因的建议吗?

问题1. 我能问您关于故障原因的建议吗?
问题2. 您是否知道您是否对 EEPROMInit()有顾虑? -(*2)


现象:

在 uC 上电时、EESUPP 寄存器读取一中的 PRETRY 位。

为了清除该位、他们调用了
SysCtlPeripheralReset (SYSCTL_Periph_EEPROM0)  --(* 1)
在 Stellaris 外设驱动程序库中(修订版8555)
八次、但失败了。 该位再次读取一个。


备注:

EEPROM 读取值中未发现损坏。

作为试用版、执行的固件与 CCS 调试运行相同。
它被审判了20多次。 如果发现两个结果:

  • (只找到一次 N=1):读取的 PRETRY 位为1。 这一现象再次出现。
  • (其他试验):读取的 PRETRY 位为零。 这一现象没有重现

这种现象是第一次出现。 他们已交付超过20万套优质套装。

(* 1)
实际上,该例程是 EEPROMInit()的排列版本。

它们为无限循环增加了超时。

EESUPP 寄存器中的 START 位未用于排列的 EEPROMInit()。
他们知道 MEM#02勘误表。


芯片版本= B2。 (DID0 reg 读取=0x18050102、DID1 reg 读取=0x1070602E)

对于故障原因、我认为:

  • EEPROMInit()在更多情况下不起作用。 很抱歉,我能问你的建议吗? -(*2)
  • EEPROMInit()安排不好。
  • VDD 压降(如 DS p.527中所述)。  我要求用示波器观察 VDD。
  • EEPROM 已淘汰(如 DS p.527中所述) --低可能性。 器件在发货后很快返回。

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

    Hideaki-San、

    [引用 user="Hideaki Nambu"]Q1。 我能问您关于故障原因的建议吗?

     很难说。 勘误表中有多个关于 EEPROM 的勘误表。 EEPROM 编程期间可能发生了其中的任何一种情况(例如、编程期间复位或电源不稳定)。存储器也可能已超过其指定的寿命写入/擦除周期。 这种类型的问题很难调试、尤其是通过论坛进行调试。  

    重要提示:复位后未能执行这些初始化步骤可能导致操作不正确
    或永久数据丢失。

    如果 EESUPP 寄存器中的 PRETRY 或 ERETRY 位被置位、则 EEPROM 无法工作
    恢复其状态。 如果发生这种情况时电源稳定、则表示出现致命错误、然后
    可能表示 EEPROM 存储器已超过其指定的使用寿命
    写入/擦除规范。 如果电源电压不稳定、则返回代码为
    观察到、一旦电压稳定、重新尝试运行可能会清除该误差。

    [引用 USER="Hideaki Nambu"] EEPROM 读取值中未发现任何损坏。[/quot]

    我想您对此不能肯定。 请参阅下面的勘误说明。

    如果 EEPROM 写入中断、MEM#03 EEPROM 数据可能会损坏
    受影响的版本:仅6。
    说明:如果 EEPROM 写入中断、则可能会发生 EEPROM 数据损坏
    以下电源事件:
    •电源故障
    •外部复位(RST)
    •掉电(BOR)事件
    当 EEDONE 寄存器的 WORKING 位被置位时、将执行 EEPROM 编程或擦除操作
    操作发生。 此序列可能导致的损坏 EEPROM 数据是
    不限于正在写入的当前字。 如果这些事件不适用于您的系统、
    那么 EEPROM 将正常运行。 如果发生故障、将不会出现任何故障
    指示擦除失败或数据损坏(例如、在 PRTRY 和中
    EEPROM 支持控制和状态(EESUPP)寄存器中的 ERETRY 位。

    [引用 user="Hideaki Nambu"]

    作为试用版、执行的固件与 CCS 调试运行相同。
    它被审判了20多次。 如果发现两个结果:

    • (只找到一次 N=1):读取的 PRETRY 位为1。 这一现象再次出现。
    • (其他试验):读取的 PRETRY 位为零。 这一现象没有重现

    这种现象是第一次出现。 他们已交付超过20万套优质套装。

    [/报价]

    您的 CCS 调试运行是否涉及对器件进行软复位? 请参见下面的。

    软复位处理

    在 EEPROM 编程或擦除操作期间、不应将以下软复位置为有效:
    μ¡软件复位(SYSRESREQ)
    μ¡软件外设复位
    μ¡看门狗复位
    ¡MOSC 故障复位
    在复位生效前、可以检查 EEDONE 寄存器的工作位、以查看是否存在
    正在进行 EEPROM 编程或擦除操作。 使用调试器时可能会发生软复位
    并且应在 EEPROM 操作期间避免。

    [引用 user="Hideaki Nambu"]

    • EEPROMInit()在更多情况下不起作用。 很抱歉,我能问你的建议吗? -(*2)
    • EEPROMInit()安排不好。
    • VDD 压降(如 DS p.527中所述)。  我要求用示波器观察 VDD。
    • EEPROM 已淘汰(如 DS p.527中所述) --低可能性。 器件在发货后很快返回。

    [/报价]

    EEPROMInit()中有哪些更改? 同样、这将很难通过论坛进行调试、我不知道从哪里开始、尤其是当您仅在200k 时失败时。  我所能提供的所有信息、并且您已经知道、是为了避免勘误文档中描述的所有错误。  

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

    您好!

     我的同事 Bob 还建议客户检查添加到 EEPROMInit()的超时是否过短。 执行 EEPROMInit()的时间会有很大差异。 最终、它们将需要留出时间进行两个扇区擦除。  TivaWare 代码已经过验证。 请注意哪些更改会导致 EEPROM 出现不可预测或不稳定的行为。

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

    Charles 和 Bob、
    感谢您的回复。
    我正在与客户讨论它。 让我将此主题保持打开几天。


    今天的新闻是:
    -它们禁用了 EEPROMInit()中的超时,并再次尝试了测试,但这种现象并未清除。
    - Vdd 电压端子引线由示波器监控,但它是稳定的,没有突降。 很好。