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.

[参考译文] TMS570LS0714:调用 F021 API 时出现擦除和编程错误

Guru**** 2535150 points
Other Parts Discussed in Thread: TMS570LS0714, TMS570LS1224

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1056055/tms570ls0714-erase-and-program-error-when-call-the-f021-api

器件型号:TMS570LS0714
主题中讨论的其他器件: TMS570LS1224

尊敬的,TI 570团队:

我们需要支持对器件 TMS570LS0714进行编程、我们已经开发了一个在 RAM 中运行的引导加载程序。  引导加载程序会从 TI 的 F021闪存 API 调用 API。

此引导加载程序适用于 TMS570LS0812和 TMS570LS1224。

但擦除或编程时、该器件 TMS570LS0714似乎无法正常工作。 尽管我们认为这3个器件在对闪存进行编程时几乎是相同的。

 

在如下图片所示的擦除函数中,我们发现在调用 API“Fapi_issueCommandWithAddress”之后,FSM 状态始终为 BUSY (Fapi_Status_FsmBusy)。 调用“fapi_issueProgrammingCommand”后,编程功能总是很忙。 但在调用 API“fapi_doMarginiad”之后,它似乎可以在读取函数中读取。

 

  1. 您能不能帮助提供一些说明、说明哪些原因可能会导致"擦除和编程"中出现此错误。
  2. 如果需要、我可以向您发送有关此引导加载程序的 CCS 项目。

 

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

    您好、Luke、

    TMS570LS0714像 TMS570LS12x 那样使用示例闪存 IP。 但 TMS570LS0714具有更小的闪存和更少的闪存扇区。 如果您使用 PZ 封装、则 CPU 速度(100MHz)或系统频率远低于 PGE 封装(160MHz)中的 TMS570LS12x。

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

    您好、QJ Wang、

    感谢您的回复。 器件为 TMS570LS0714APGEQQ1、具有144引脚、因此 CPU 速度可能不是问题所在。 即使我将速度更改为100Mhz、  

    仍然存在一些问题。 是否有任何其他可能导致这种情况。

    非常感谢

    Luke

    此致

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

    闪存等待状态是否正确编程? 当 CPU=160MHz 时、RWAIT 应为3。

    等待状态位于 FRDCNTL 寄存器中。

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

    您好、QJ Wang、

    等待统计数据应该可以。 我只是调试引导加载程序、这些值在图片中看到。 FRdtl Cnval 为0x00000311、

    但代码始终位于 while (fapi_get_FSM_status!= fapi_Status_Success)循环中。

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

    您好、QJ Wang、

    一些新的发现、如果我在擦除函数中将 SYS_CLK_FREQ 更改为80MHz、它将用于擦除。 但仍不能用于方案。

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

    HiLuke,

    请参阅适用于 LS0714的 CAN 引导加载程序:

    https://git.ti.com/cgit/hercules_examples/hercules_examples/tree/Bootloaders?h=master

    仔细检查您的时钟配置:HCLK (系统时钟)在闪存 API 中使用

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

    您好、QJ Wang、

    你的建议很好。 系统时钟配置仍然是160MHz 的设置。 我将 system.c 中的设置更改为与 LS0714的 CAN 引导加载程序相同。 擦除和写入现在工作。

    顺便说一下、我的器件封装是 PGE PQFP144引脚、系统时钟可能高达160MHz。 为什么不在这里。 总之、当前状态可以用于我的项目、非常感谢。

    Luke

    此致