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.

[参考译文] TMS470MF03107:关于闪存 EEPROM 被擦除以及已编程扇区位 0 或 1 的状态

Guru**** 2524550 points
Other Parts Discussed in Thread: UNIFLASH, TMS470MFEE

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1560977/tms470mf03107-about-flash-eeprom-erased-and-programmed-sector-bit-0-or-1-states

器件型号:TMS470MF03107
Thread 中讨论的其他器件:UNIFLASH

工具/软件:

1 μ s、全部擦除并对某些扇区编程后、理论上、闪存 EEPROM 中被擦除而未编程扇 区的位状态应为“1",“,但、但现在存在被擦除的扇区位状态全部为“0"而“而不是“1"的“的情况、哪些因素或根本原因会导致这种现象?  

2、如果目标 扇区“位“状态为“0",“,遵循、遵循的编程过程是否可能失败?  如果会发生失败、哪些因素或根本原因会导致出现这种现象?   

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

    您好、

    [报价 userid=“584244" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1560977/tms470mf03107-about-flash-eeprom-erased-and-programd-sector-bit-0-or-1-states

    1 μ s、全部擦除并对某些扇区编程后、理论上、闪存 EEPROM 中被擦除而未编程扇 区的位状态应为“1",“,但、但现在存在被擦除的扇区位状态全部为“0"而“而不是“1"的“的情况、哪些因素或根本原因会导致这种现象?  

    [/报价]

    正确。 擦除后、所有位都应为 1。 您有时会说什么? 是否使用闪存 API 进行擦除、或者是否使用 CCS 或 Uniflash 闪存擦除通过 JTAG 擦除所有闪存存储体? 您是否说它有时会成功擦除、但并非总是擦除?

    2、如果目标 扇区的位状态为“0",“,是否、是否遵循的编程过程可能会失败?  如果失败会发生、哪些因素或根本原因会导致此现象?

    如果闪存位为 0、则如果不进行擦除、则无法将其更改为“1"。“。 您无法将“1"编“编程为“0"位“位。 您只能执行擦除以将位从“0"更“更改为“1"。“。  

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

    您好,感谢您的答复!

    您提到:

    正确。 擦除后、所有位都应为 1。 您有时会说什么? 是否使用闪存 API 进行擦除、或者是否使用 CCS 或 Uniflash 闪存擦除通过 JTAG 擦除所有闪存存储体? 您是否说它有时会成功擦除、但并非总是擦除?

    在擦除全部后,我们使用 CCS 或 Uniflash 将.hex 文件编程到芯片闪存中。 然后、在客户使用期间、程序 使用闪存 API 来擦除和 写入 BANK1 的 EEPROM 区域的目标扇区、 如上图所示。 当我们将一些非零数据写入目标扇区时,在点火开关关闭和接通操作后,读回的数据显示为全 0 ,这是不预期的。

         我们想知道这种意外现象的潜在根源。  谢谢!

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

    您好、

     您能告诉我您使用哪个 API 来对目标扇区进行编程吗?

     您是将扇区编程为常规闪存还是仿真 EEPROM?  

     在您调用 API 之前、目标扇区的内容是什么? 是否从全部为 1 开始?

     您是在一个设备上还是在所有设备上看到问题?

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

    您好、

       您提到:

        “您能告诉我您使用哪个 API 来对目标扇区进行编程吗?“

       在应用程序中、我们使用 Flash_Erase_ () 来擦除,使用 Flash_Prog_ () 来编程。

       “您是将扇区编程为常规闪存还是仿真 EEPROM?  “

       作为仿真 EEPROM;

       “在您调用 API 之前、目标部门的内容是什么? 是否从全部 1 开始?“

       你知道为什么吗?“侯龙涛点了点头,转身走了。

        “ 您在一台设备上还是在所有设备上看到问题?“

        这个问题是由 40%左右的概率在设备中提出的。

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

    您好、

    [报价 userid=“584244" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1560977/tms470mf03107-about-flash-eeprom-erased-and-programd-sector-bit-0-or-1-states/6011409

     “您是将扇区编程为常规闪存还是仿真 EEPROM?  “

       作为仿真 EEPROM;

    [/报价]

    我认为您不使用闪存组 1 作为仿真的 EEPROM 存储器。 您需要使用付费驱动程序将常规闪存模拟为 EEPROM。   有关详细信息、请参阅 TMS470M Fee 驱动程序 www.ti.com/.../TMS470MFEE。  

    [报价 userid=“584244" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1560977/tms470mf03107-about-flash-eeprom-erased-and-programd-sector-bit-0-or-1-states/6011409

       “您能告诉我您使用哪个 API 来对目标扇区进行编程吗?“

       在应用程序中、我们使用 Flash_Erase_ () 来擦除,使用 Flash_Prog_ () 来编程。

    [/报价]

    调用 Flash_Erase_ B 后的返回值是多少? 是成功还是失败?  

    删除后 stat1、stat2、stat3 和 stat4 的状态是什么?

    您是否在调用 Flash_Erase_ B 之前禁用了预调节? 通常、闪存擦除将涉及称为预处理的步骤。 预调节类似于将全 0 编程为一个扇区。 扇区预处理后、可以进行擦除。 可以禁用前提条件步骤。 这就是我想知道您是否禁用前提条件的原因。 请参阅用户指南。  

    扇区是否已确定为
    在擦除之前使用 Flash_Blank_消隐、请参阅
    可以将状态→stat1 元素初始化为
    0x12345678、在调用 Flash_Erase_ B 到之前
    禁用预调节和加速擦除。 非空
    默认情况下、扇区的值应为
    状态→stat1 已初始化为 0x00000000(或某些地址
    0x12345678 以外的值)
    预调节在擦除期间启用。 了解更多信息
    有关信息、请参阅中的推荐擦除流程
    第 5 款.

    5.2 使用 Flash_Erase_()
    图 1 描述了使用 Flash_Erase_ B 函数时擦除器件上单个扇区的流程
    才能完成擦除。
    用户应熟悉第 3.10 节中的 Flash_Erase_ B 功能说明。
    为了节省擦除时间、Flash_Erase_ B 支持禁用预调节(在应用之前编程为 0
    擦除脉冲)、基于从 Flash_Blank_函数返回 TRUE 的扇区。 此预调节禁用
    通过通过通过 FLASH_STATUS_ST STATUS.stat1 元素传递的特殊密钥 (0x12345678) 来完成
    (有关更多信息,请参阅第 3.10 节中的 Flash_Erase_设计)至 Flash_Erase_ B 函数。
    虽然此特性能够在空白扇区上实现更快的擦除吞吐量、但它确实需要
    用户在调用之前应格外小心、确保目标扇区中不存在耗尽的位
    禁用预调节的 Flash_Erase_ B。 这是在之前进行 Flash_Compact_ B 呼叫的原因
    图 1 中的 Flash_Blank_调用。 TI 发货的器件应该没有耗尽的列、而是一个器件
    在上一个擦除操作期间可能已重置或下电上电、该操作可能包含已耗尽
    或略微擦除的位。 图 1 所示的流程旨在修复任何此类位(如果有)
    允许在给定扇区上运行至完成。
    不建议在读取为空白的扇区上完全跳过擦除、因为这些扇区可能是空的
    需要修复在执行期间执行的边缘擦除位或已耗尽的列
    Flash_Erase_ B.
    如果用户感兴趣、Flash_Erase_ B 还可以收集扇区的擦除脉冲统计信息。