某STM32客户反馈,当STM32F407V芯片频繁的正常通断电的时候,FLASH 会被非法改写,出现各种各样的异常(整片被擦除、中断向量表被改写、写保护被清除等等)。
经过与跟客户沟通了解到:
1、他们是延续之前的项目,进行的一些软硬件简单修改。之前的项目没有出现过类似的问题。
2、确认通断电的时间是足够,即断电后所有的VDD都回到0;上电的时序也正常。
3、原理图参考了ST相关开发板的参考设计。
4、测量工作电压,除了发觉上电时会有些许抖动外,其它一切正常。尝试让他们改善上电电路,去掉这一抖动。再次实验,仍然出现类似的问题。
根据现象初步判断,异常似乎跟硬件没关联了, 接着对客户代码进行删减又做了如下实验:
1,去掉APP 部分代码,仅仅留下IAP代码。做相同的实验,问题再现。
2,进一步删减程序,去掉程序中所有跟flash以及OPTION BYTE 相关的部分,做相同的实验,问题依旧。
3,没招,再删代码,或者屏蔽代码。做基于不同STM32库的代码替换。问题始终依旧。
到此问题毫无进展,只好求助ST芯片设计人员做进一步确认,看看芯片是否真的坏了。同时,又请客户的硬件工程师再次确认他们的硬件线路和原理图的一致性,我们怀疑他们的硬件是否有装错的元器件,特别是MCU周边。
后来客户工程师反馈,STM32F407的PDR_ON脚,板子上装的元件跟原理图不一致。他们把R47和R48都装了【如下图】,那么相当于在PDR_ON上是一个0.6v的电压,也就是关断了MCU内部复位。

可谓山穷水尽疑无路,柳暗花明又一村,看来问题应该跟内部复位有关。
查看STM32F407数据手册,可以看到相关信息。
从上面规格书来看,STM32F407V的内部复位电路可以选择性地开启或关闭,如果选择关闭mcu内部的复位电路,需要在外部接一个复位监测电路保证VDD达到正常工作电压之前一直使MCU处于复位状态。而这里,客户本意并不想关闭内部复位,而且外部也没有相应的电源监测复位电路。既然这样,根据手册描述,PDR_ON脚接到VDD即可。具体到这里,去掉R48这个1k欧姆的电阻。重做实验反复验证,异常消失。
对于STM32来说,这个PDR_ON引脚有的封装是被引出来了,有的封装没有被引出。如果没有引出的就默认使能内部复位功能,如果引出的话,大家也要注意有的型号是拉低使能内部复位,有的是拉高使能内部复位,设计和使用时请注意这点。
类似小细节,容易被忽视,原因在被忽视情况下去查找原因往往是件非常折腾、曲折而痛苦的事。这种情况对于工程师来说,也没法完全避免,毕竟我们是人。所以平时多留意、多积累,遇到问题时保持冷静分析、理性判断尤为重要,不要动不动就怀疑芯片质量问题而使开发调试停滞不前。
相关推荐
本应用笔记介绍了使用STM32F30x/STM32F31x/STM32F37x/STM32F38x器件的片内FLASH模拟EEPROM的软件解决方案。
发表于 12-01 07:33
本应用笔记介绍了使用STM32F0xx器件的片内FLASH模拟EEPROM的软件解决方案。
发表于 12-01 06:33
本文档适用于STM32F1系列微控制器。介绍了外部EEPROM和嵌入式Flash存储器之间的不同,描述了使用STM32F10x片内的Flash存储器实现软件模拟EEPROM的方法。
发表于 12-01 06:16
STstm32
Mr_haohao
发布于 :2022年11月21日 11:45:48
使用fal操作操作片内flash 提示Do NOT found the flash device(stm32_onchip)使用的是drv_flash_f1.c 里面的驱动代码里面配置也没有问题,现在不知道是哪里出了错
发表于 11-16 10:56
OAD即Over the Air Download,是通过无线的方式远程更新固件的一种方法。On chip,就是片上, 升级的对象不需要外挂Flash, 通过芯片片内Flash完成新固件存储及老固件
发表于 11-11 07:56
通常MCU片内的闪存(FLASH)挂接在内存总线上,CPU可以无限制的访问FLASH内的任何区域。要实现对单颗MCU内片FLASH进行多个用户区域划分并保护,避免在片内不同用户通过CPU指令直接读取
发表于 11-02 06:45
请教下: 手机SOC内的ARM TrustZone技术, 可以对FLASH划分安全区和普通区吗?其中FLASH安全区只能TEE读写, REE不能访问改写。谢谢
发表于 09-08 11:27
0x08000000,修改大小为2048k.我们知道 STM32 的上电之后是从 0x0800000 开始运行,因为 STM32h750 的片内 FLASH 只有 128K, 刚好是一个最小擦除粒度,这块
发表于 06-16 10:19
使用fal软件包向片内flash写入数据时显示写入错误!(fal_partition_write:437) Partition write error! Flash device
发表于 03-24 09:51
问题描述:
某客户反馈, 当 MCU 频繁的正常通断电的时候。FLASH 被异常改写,出现各种各样的异常(整片别擦除、中断向量表被改写为 0、写保护被清掉、被加上读保护 ……..)
问题调研:
首先
发表于 02-11 15:37
•5次下载
为了防止对Flash的非法访问,所有STM32的芯片都提供对Flash的保护,具体分为写保护和读保护。
发表于 02-08 16:39
•6次下载
STM32片内FLASH烧写错误导致ST-LINK烧录不进程序怎么解决?
发表于 01-27 06:44
大部分MCU都可以通过IAP对片内flash进行读写来实现固件升级。这里主要是STM32如何实现IAP升级。不同内核的stm32方式可能略有不同.这里先说F1内核的IAP过程,这里以
发表于 12-14 18:50
•5次下载
如何在MCU片内进行Flash读写呢?其过程是怎样的?
发表于 12-13 06:51
关注+星标公众号,不错过精彩内容FLASH,指Flash Memory,是一种非易失性存储器(闪存),掉电能正常保存数据。STM32的存储器通常包含内部SRAM、内部FLASH,部分系列还...
发表于 12-10 06:13
STM32F1 使用easyflash操作片内flash
发表于 12-09 10:06
•13次下载
STM32片内FLASH烧写错误导致ST-li
发表于 12-02 18:06
•6次下载
在这里以STM32L4R5为例(官方出的DEMO板),将变量存储在指定的片内FLASH地址(0x081F8000)。一、MDK Keil软件操作uint8_t version[12
发表于 12-02 11:06
•5次下载
说到STM32的FLSAH,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用来装程序,还用来装芯片配置、芯片ID、自举程序等等。当然, FLASH还可以用来装数据。自己收集
发表于 12-01 21:06
•13次下载
在此声明——本文摘自这里:【码神岛】STM32F0x HAL库学习笔记(5)片内FLASH的读写操作本文开发环境MCU型号:STM32F103C8T6IDE环境: MDK 5.25代码生成工具
发表于 12-01 20:51
•13次下载
一、Flash基本知识1. Flash容量Flash根据容量大小可以分为以下三种:1、小容量产品:Flash大小为1-32KB(STM32F10X_LD)2、中容量产品:Flash大小为
发表于 12-01 20:51
•12次下载
STM32 FLASH写入失败问题定位STM32F407 仿真过程进行FLASH写入的时候报错:FLASH_ERROR_PROGRAM (0x00000006)STM32F407 仿真过程进行
发表于 12-01 20:36
•15次下载
本系列文章汇总:STM32CubeMX系列教程本篇文章主要介绍如何使用STM32中的片内FLash。1. 准备工作硬件准备开发板首先需要准备一个开发板,这里我准备的是STM32L4的开发板
发表于 12-01 20:36
•5次下载
STM32Flash读写之Flash调试技巧文章目录先熟悉所用MCU的Flash存储大小以及扇区地址Flsah写之前为什么要先擦除Flash擦除长时间占用CPU实测Flash擦写占用的时间Flash
发表于 12-01 20:21
•18次下载
如何去完成MCU片内Flash(闪存)的擦除与读写任务呢?怎样在调试助手上查看其结果?
发表于 11-25 08:30
STM32的片内FLASH可分为哪几类?STM32的片内FLASH有何功能?
发表于 11-03 07:57
怎样去操作STM32的片内FLASH呢?有哪些注意事项?
发表于 11-02 08:53
怎样去操作STM32的片内FLASH呢?STM32片内FLASH的主存储块有哪些功能?
发表于 11-02 08:14
STM32的片内FLASH有何功能?怎样进行FLASH的擦除编程工作呢?
发表于 11-02 08:04
STM32片内的FLASH可分成哪几部分?有关STM32片内的FLASH主存储块擦除编程操作的疑问有哪些?
发表于 11-02 07:44
STM32的片内FLASH可分成哪几部分?STM32的FLASH共有几个键值呢?
发表于 11-02 07:08
STM32的片内FLASH分成哪几部分呢?怎样去操作STM32的片内FLASH呢?
发表于 11-01 07:39
STM32的片内FLASH共有几个键值呢?怎样进行STM32 FLASH的擦除编程工作呢?
发表于 11-01 06:45
STM32的片内FLASH可分为哪几类?如何去使用STM32的片内FLASH呢?
发表于 11-01 06:36
怎么去操作STM32的FLSAH呢?STM32的片内FLASH有何功能?
发表于 11-01 06:35
STM32片内FLASH的主存储块分为哪几种?STM32是怎样通过FPEC来擦除和编程FLASH的?
发表于 11-01 06:10
自己的执行。对于CC3220S和CC2330变体来说,这部分RAM的数量是16KB,也就是说用户的应用程序镜像的大小对于256-KB MUC RAM来说,被限制为240KB。是否可以理解为当用户的应用程序镜像的大小小于240KB时是可以不加片外Flash?谢谢
发表于 09-17 09:45
最近有人问起程序在STM32G4片内不同存储空间运行的速度差异。说实在的,这个很难说死或说出个绝对的数据,毕竟结果除了跟执行代码的存放空间有关外,还跟代码本身的内容、程序逻辑、编译工具及优化等级等都
发表于 09-09 09:57
•1374次阅读
**STM32H750_QSPI_W25QXX_XIP_仿真**最近在调试STM32H750片子,担心片内flash不够用,在QSPIbank2外挂了 W25Q40CL做XIP,当然也可以copy到
发表于 08-18 07:06
本系列文章汇总:STM32CubeMX系列教程本篇文章主要介绍如何使用STM32中的片内FLash。1. 准备工作硬件准备开发板首先需要准备一个开发板,这里我准备的是STM32L4的开发板
发表于 08-10 08:00
关于STM32的FLASH程序(超实用)(嵌入式开发应用培训)-关于STM32的FLASH程序(超实用),适合感兴趣的学习者学习,可以提高自己的能力,大家可以多交流哈
发表于 08-04 12:03
•12次下载
使用STM32L5的OTFDEC和ICACHE功能实时高效运行片外Flash中的加密代码(嵌入式开发应用)-目标 :• 保护外置Flash中的代码和数据的机密性 • 同时提高外部Flash中代码的运行效率
发表于 07-30 11:11
•5次下载
FLASH被异常改写(嵌入式开发笔试题目)-某客户反馈, 当MCU 频繁的正常通断电的时候。FLASH 被异常改写,出现各种各样的异常(整片别擦除、中断向量表被改写为0、写保护被清掉、被
发表于 07-30 11:04
•24次下载
STM32F407由一个Cortex-M4内核,片上flash,片上sram,以及片上外设(uart,I2C,SPI等)组成。 内核通过I,S,D三条数据总线,与总线矩阵相连,对片上flash,片上
发表于 07-23 14:38
•1459次阅读
在这里以STM32L4R5为例(官方出的DEMO板),将变量存储在指定的片内FLASH地址(0x081F8000)。一、MDK Keil软件操作uint8_t version[12
发表于 07-16 08:26
01前言 STM32片上自带FLASH和SRAM,简单讲FLASH用来存储程序的,SRAM是用来存储运行程序中的中间变量。本文详细分析下如何查看程序中FLASH和SRAM的使用情况。 本文开发工具
发表于 04-09 17:53
•6160次阅读
使用STM32L5的OTFDEC和ICACHE功能实时高效运行片外Flash中的加密代码 简介 目标 保护外置Flash中的代码和数据的机密性 同时提高外部Flash中代码的运行效率 利用
发表于 09-09 13:54
•1709次阅读
swd方式可以把文件烧写到stm32的片内flash的特定地址中吗?怎么烧写?
发表于 04-23 00:08
STM32F1_片内FLASH编程
发表于 04-08 10:28
•2749次阅读
STM32_SPI读写Flash
发表于 04-08 10:26
•3671次阅读
STM32F0xx_FLASH编程(片内)配置详细过程
发表于 04-07 14:21
•2095次阅读
请问如何将程序烧写入片外的Flash中或者片内的ROM中,我使用的是5509A,外扩Flash是AM29LV800~~
发表于 04-03 10:22
),运行4MHz 的CPUCLK,运行程序读数易出错,易造成程序跑飞,程序中一旦有TBLP操作指令,易改写MTP芯片数据,针对MTP被改写的问题,可以在代码选项/软件上作防护,详见芯海科技网站的《MTP读写操作指导》。
发表于 03-24 14:26
STM8S_007_片内FLASH和EEPROM编程
发表于 03-20 10:00
•3413次阅读
STM32片上Flash读写的一些重要知识
发表于 03-06 14:54
•8853次阅读
擦写过程中,中断程序是无法执行的,擦写过程触发喂狗中断失败,导致系统复位。如果flash擦写操作时间小于喂狗超时时间,可以在擦写前先手动喂狗,确保擦写flash过程无需触发喂狗中断。
发表于 02-22 19:33
大家好,我最近在使用STM32F103在调uCGUI,如何用片内FLASH存储全字库?自己生成的全字库.fon格式不知道怎么加到程序里,打开全是乱码
发表于 09-10 04:36
的函数,初步判断是因为浮点运算导致,比如没有对齐导致的Hardfault,但实际检查发现,并不是浮点运算的问题!6、问题一时陷入了僵局。但有一点是确定的,是因为栈的区域被异常覆盖或者改写导致产生hard
发表于 04-07 08:00
大家好:使用stm32f407,希望使用flash的剩余空间来存放数据。希望片上flash可以像片外flash一样任意读写。看了参考手册,上面如是描述:“在对 STM32F4xx 的 Flash
发表于 12-07 09:03
说到STM32的flash,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用来装程序,还用来装芯片配置、芯片ID、自举程序等等。当然, FLASH还可以用来装数据。 FLASH
发表于 11-27 15:20
今天逛赛格买芯片的时候,看见一个芯片解密的牌子于是好奇上去问问ST能否解密,果然听说STM32的芯片ID可以被改写!朕立马就被震撼了,因为朕的产品几乎都是靠这个96bit的支撑着不被解密的。。。 卿等说说,到底怎么回事?朕是不是被无良奸商给坑了?朕好歹也干了好几年电子了,这事真糊涂乐
发表于 10-26 17:12
OUT文件不能load到片内flash中单步可以运行
发表于 10-15 13:43
问题描述: 某STM32客户反馈, 当STM32F407V芯片频繁的正常通断电的时候,FLASH 会被非法改写,出现各种各样的异常(整片被擦除、中断向量表被改写、写保护被清除等等)。
发表于 09-29 11:51
•4919次阅读
DSP28377D/S 的片内FLASH可以当EEPROM用吗?如果可以,该怎么用呢?
发表于 09-25 11:03
最近在使用C6455,bootloader完成了一个由片外FLASH向片外DDR2搬运的汇编程序,现在想尝试由片外FLASH向片内L2搬运的实现,一直除了问题,请问有没有参考代码可以下载借鉴,在片外
发表于 08-07 06:06
请问5535有片内flash吗,程序只能烧写到片外的flash?我想把程序烧写到片内
发表于 07-31 06:27
改写了,导致FLASH里面的配置直接频道/ID等被改掉,进而无法使CC1101继续接收原来频道的数据。请问是何原因导致接收的FLASH内容被改掉,是否可以通过修改接收数据包处理函数来处理掉无用的数据,比如通过判断用户自有数据的帧头来判断数据是否有效??
发表于 06-06 13:22
中的flash and otp memory章节中:"片内flash被统一地映射到程序和数据存储空间。"请问一下,这话究竟是个什么意思?在物理结构上究竟是个什么样的?
发表于 06-06 08:31
引起程序丢失或被错误改写 说好的数据,哪里去了? 例如,在有对Flash写入或擦除操作的代码中,如果用户误调用了写入或擦除函数或者由于程序跑飞而恰好执行了Flash擦除或写入函数,这自然会导致数据丢失或改变。针对以上情况,可以在程序中设
发表于 10-13 20:31
•9次下载
STM32/FLASH保存数据,适合初学者
发表于 09-27 14:46
•16次下载
Ⅰ、概述 关于数据的储存,我觉得编程的人基本上都会使用到,只是看你储存在哪里。STM32的芯片内部FLASH都是可以进行编程的,也就是说可以拿来储存数据。但是,很多做一些小应用程序开发的人都没有
发表于 06-07 16:20
STM32 FLASH程序,很好的学习资料,快来下载吧
发表于 02-15 15:30
•41次下载
STM32F2技术培训_片上闪存Flash
发表于 12-03 17:35
•25次下载
STM32片内FLASH操作说明
发表于 07-08 09:51
Motorola 新推出的MC68HC908 系列8 位单片机采用片内FLASH 闪速存储器取代过去的片内ROM
发表于 06-21 16:21
•36次下载
本帖最后由 luna 于 2011-3-3 12:07 编辑
68HC08系列单片机在运行程序时往往需要保存某些参数使其掉电不丢失,为节约成本提高可靠性,可以将这些参数保存在片内FLASH中
发表于 03-02 14:07
摘要:68HC08系列单片机在运行程序时往往需要保存某些参数使其掉电不丢失,为节约成本提高可靠性,可以将这些参数保存在片内FLASH中。片内FLASH主要是用来保存用户程序的,为避
发表于 09-11 09:54
•40次下载
摘要:MOTOROLA新推出的MC68HC908系列8位单片机,采用片内FLASH取代过去常的片内ROM或EPROM,使单片机具有了在线编程写入或擦除的功能,其应用范围和方便性也因此而大大增加了。
发表于 07-09 18:30
•55次下载
在DSP构成的装置或仪器中,经常需要保存或修改一些重要的参数。本文介绍如何利用TMS320F206片内Flash 进行“在线” 擦、写, 用于保存和修改数据, 具有较强的实用性。
发表于 04-15 10:59
•23次下载
如何编写C2000片内Flash?DSP中的Flash的编写方法有三中: 1.通过仿真器编写:在我们的网页上有相关的软件,在销售仿真器时我们也提供相关软件。其中LF240x的编写可以在CCS中加入一
发表于 04-07 08:49
评论