[STM32U3] STM32U3 Flash 擦写故障分析

[复制链接]
18|0
STM新闻官 发表于 2026-6-20 22:03 | 显示全部楼层 |阅读模式
1. 问题背景客户使用 NUCLEO-U385RG-Q 开发板调试例程 NUCLEO-U385RGQ\Examples\FLASH\FLASH_EraseProgram,FLASH 可以正常擦除,此时主频为 96MHz。客户为了控制功耗,将 MSIS Source 时钟频率改为 24MHZ,SYSCLK 为 12MHz 时,做Flash 擦写操作,擦除 Flash 的时候报错,error code=128,解析为 Programmingsequence error 错误。需要寻找问题的原因。

2. 复现问题找到 STM32U3 CUBE 包中的例程,修改时钟树配置重新生成代码,烧录到 MCU 中。通过调试,可以看到擦除 Flash 报错 error code 为 128,查看 Flash_SR 寄存器,可以看到PGSERR 置 1。复现了客户的问题。

480626a369cd2bb888.png
3. 分析问题
找到了错误代码和错误标志,分析产生 PGSERR 的原因。在 RM0487 Rev 17.3.8 Flash memory errors flags 中错误产生条件的描述中。产生PGSERR 的条件如下图所示:
274016a369cea37e12.png
错误状态寄存器如下图所示:
709686a369d0956ba0.png
依次对比各个条件。只有 An erase, program, or option-byte programming (OPTSTRT)operation is launched while voltage range is set to range 2.这一条比较符合。对于 Flash 的擦写时序,第一步都是需要检查 voltage range 是否是 range 1,也就是说Flash 的擦写需要在 range 1 下进行。以 Mass erase 为例,其时序如下图所示:
359246a369d1ec6b47.png
将有问题的代码和例程对比,可以看到例程中的 voltage range 设置为 range1,而修改过后有问题的代码的配置为 range2。如下所示:
  1. if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE2) != HAL_OK)
  2. {
  3. Error_Handler();
  4. }
  1. /** Configure the main internal regulator output voltage
  2. */
  3. if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK
  4. {
  5. Error_Handler();
  6. }
  1. /** Enable Epod Booster
  2. */
  3. if (HAL_RCCEx_EpodBoosterClkConfig(RCC_EPODBOOSTER_SOURCE_MSIS,
  4. RCC_EPODBOOSTER_DIV1) != HAL_OK)
  5. {
  6. Error_Handler();
  7. }
  8. if (HAL_PWREx_EnableEpodBooster() != HAL_OK)
  9. {
  10. Error_Handler();
  11. }
  12. /** Configure the main internal regulator output voltage
  13. */
  14. if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK)
  15. {
  16. Error_Handler();
  17. }
  1. if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE2) != HAL_OK)
  2. {
  3. Error_Handler();
  4. }
366466a369d52918dc.png
814366a369d9bd80b3.png
697266a369dbbcaae9.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:意法半导体(中国)投资有限公司
简介:您的嵌入式应用将得益于意法半导体领先的产品架构、技术、多源产地和全方位支持。意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器。

1625

主题

2134

帖子

25

粉丝
快速回复 在线客服 返回列表 返回顶部
0