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.

[参考译文] MSP430FR5964:擦除 MSP430FR5964IPNR 器件中的故障

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1441683/msp430fr5964-erase-failure-in-msp430fr5964ipnr-device

器件型号:MSP430FR5964

工具与软件:

团队成员、您好!

我将 MSP430FR5964IPNR 器件与 DPL 语言配合使用。 在尝试擦除数据时、我遇到了一个信息存储器没有擦除的问题。 它会抛出一个错误、指出"can't erase"、并且我观察到算法中的 ERASE 宏会持续失败。 但是、它适用于主存储器。

我们使用80引脚 QFP 封装、我能够成功读取器件、但擦除功能不起作用。 我进行了一些更改以与规格保持一致、但需要帮助解决该擦除问题。

根据数据表进行存储器映射  

BSL 存储器[800-8FF]

INFORMATIE 存储器[C00-CFF]

主存储器[2000-21FFF]

简要说明擦除的工作原理  

步骤1:器件复位、然后是 RESET_cmd、它将 CPU、存储器和外设状态复位  

步骤2:JTAG 通信后、getdevice_430xv2函数通过 JTAG 接口链接器件  

第3步:加电复位、然后执行 POR_430xv2命令、并确保加电处于稳定状态、同时 CPU 为进一步运行做好准备  

第4步:高位和低位地址的存储器地址计算、我们通过 JTAG 接口分为多个部分、高位保持>> 15、低位保持<< 1

第5步:EraseFlash_430vx2 、它使用发送到器件的地址并启动擦除过程、从而监控擦除状态  

步骤6:在存储器范围上循环、以通过块进行迭代、从而擦除每个页/块

第7步:检查 JTAG 邮箱标志以确认擦除操作完成  

第8步:验证以检查存储器是否被擦除(通常在已擦除存储器中设置为0xFF)

步骤9:在擦除过程中设置哪个器件在指定的电压范围内工作的电压  

第10步:上电序列以确保在擦除操作开始之前器件已正确上电和初始化。

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

    我不知道您正在为该内存映射寻找什么、但它不同意我在 https://www.ti.com/lit/ds/symlink/msp430fr5964.pdf?ts = 1732193967117&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FMSP430FR5964、9.15中看到的内容

    称为信息内存的外设。

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

    您好、David Schultz、

    信息存储器从1800开始到19FFh 结束、在此区域中我无法擦除数据

    谢谢。

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

    现在您有了正确的地址。 但为什么要"擦除"FRAM? 闪存在编程之前必须进行擦除、但 FRAM 是 RAM、可以像 SRAM 一样写入。 当然除非启用了 MPU 写保护。

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

    您好 David Schutz

    我们可以对器件进行编程、但信息存储器处的擦除失败、请告诉我如何继续。

    谢谢。

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

    也许您能详细了解擦除存储器的确切方式以及结果是什么。 否则、这是不可能的。

    根据第一条消息、我想您使用的是定制的编写程序来使用 JTAG 接口。 很多方式去错那里,没有太多的经验来帮助。

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

    我们使用的是擦除宏

    步骤1:在擦除宏中包含目标地址 ex(add_rex)被处理成两个组件  

    第2步:高位和低位、高位用于地址高位、低位用于地址、低位用于地址  

    步骤3:下一个 EraseFlash_430VX2该函数使用准备好的地址组件、一个故障状态宏(_fa_il)和虚拟配置值调用。

    步骤4:虚拟擦除功能使用输入参数来模拟清除一个存储器的部分

    步骤5:如果操作失败(indiactes _fa_il)、则在例程之外进行进一步处理  

    我们  根据技术规格表编写了这个 EraseFlash_430VX2  

    我们还使用 JTAG 接口和写保护  

    谢谢。

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

    我仍然不知道你在做什么。 你描述你认为你正在做的事情、但不显示正在发生的事情。 对于任何调试代码的人、他们都必须看到您的代码。

    但我最大的问题是、当有很多程序可用于对 MSP430进行编程时、为什么会遇到这个问题。 我使用 mspdebug、从未考虑过自己的编程。

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

    您好、David Schultz、

    我们正在尝试对许多器件进行编程、在1800-19FF 区域中可以使用写保护进行擦除、是否对擦除信息性存储器存在任何限制  

    谢谢你。