0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32F407V芯片断电的时候FLASH被异常改写的解决方案

h1654155971.7688 来源:未知 作者:李倩 2018-05-09 09:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

问题描述:

STM32客户反馈, 当STM32F407V芯片频繁的正常通断电的时候,FLASH 会被非法改写,出现各种各样的异常(整片被擦除、中断向量表被改写、写保护被清除等等)。

经过与跟客户沟通了解到 :

•他们是延续之前的项目,进行的一些软硬件简单修改。之前的项目没有出现过类似的问题。

•确认通断电的时间是足够,即断电后所有的VDD都回到0;上电的时序也正常。

•原理图参考了ST相关开发板的参考设计。

•测量工作时的电压,除了发觉上电时会有一些抖动外,其它一切正常。尝试让他们改善上电电路,去掉这一抖动,再次实验,仍然出现类似的问题。

到这里似乎跟硬件没关联了, 接着对客户代码进行删减又做了如下实验:

1,去掉APP 部分代码,仅仅留下IAP代码。做相同的实验,问题再现。

2,进一步删减程序,去掉程序中所有跟flash以及OPTION BYTE 相关的部分,做相同的

实验,问题依旧。

3,没招,再删,最后仅仅留下下面程序:

客户反应只要调用了delay_init函数就会出问题,不调用就不会出问题(仅仅做了一天的实验)。到这里似乎跟软件有关系了,我们进一步分析发现他们改写了我们的systick的config函数,那么我就做下一个实验。

1,改为标准库中的systick例程,去掉写保护,加一个GPIO定时翻转程序。同时在烧录之后,加上写保护,做相同的实验,问题再现。

2,改为标准库中的systick例程,去掉写保护,加一个GPIO定时翻转。同时在烧录之后,加上写保护,做相同的实验,问题还是再现。

3,到这里我们有点怀疑是芯片真的有损伤了。我们又用cubemx生成了一个GPIO翻转和systick的延时,做相同的实验,问题照旧。

4,到此,我们一方面请芯片设计人员做进一步确认,看看芯片是否真的坏了。同时,我们抱着怀疑一切的态度,请客户的硬件工程师再次确认他们的硬件和原理图的一致性,我们怀疑他们的硬件是否有装错的元器件。主要集中在MCU周边。最后他们的工程师反馈,STM32的PDR_ON脚,板子上装的元器件跟原理图不一致。他们把R47和R48都装了,那么相当于在PDR_ON上是一个0.6v的电压,也就是关断了MCU内部复位。

真是山穷水尽疑无路,柳暗花明又一村,看来问题应该跟内部复位有关。

查看STM32F407数据手册,可以看到相关信息。

从上面规格书来看,STM32F407V的内部复位电路可以选择性开启或关闭,如果选择关闭mcu内部的复位电路,需要在外部接一个复位监测电路保证VDD达到正常工作电压之前一直使MCU处于复位状态。而这里,客户本意并不想关闭内部复位,外部也没有相应的电源监测复位电路。既然这样,根据手册描述,PDR_ON脚接到VDD即可。具体到这里,去掉R48这个1k欧姆的电阻。重做实验验证,异常消失。

结论

其实之前也碰到过另外西安客户发生过频繁上电不工作的情况。因他们是使用了旧的数据手册,没有把PDR_ON脚拉到VDD 所致。

对于ST MCU来说,这个PDR_ON引脚有的封装是被引出来了,有的封装没有引出,如果没有引出的是默认使能内部复位功能,如果引出的话,大家也要当心有的型号是拉低使能内部复位;有的是拉高使能内部复位,设计和使用时注意这点。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1715

    浏览量

    154686
  • STM32
    +关注

    关注

    2305

    文章

    11120

    浏览量

    371098
  • 复位电路
    +关注

    关注

    13

    文章

    331

    浏览量

    45737

原文标题:FLASH被异常改写的问题分享

文章出处:【微信号:weixin21ic,微信公众号:21ic电子网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    无线充项目求助:PD 协议芯片握手后反复重启断电,求解决方案

    现有无线充项目遇到棘手问题,特来求助有相关经验的大佬! 项目方案如下:12V 适配器给无线充 TX 板供电,通过线圈无线传输给 RX 线圈,RX 板输出后经智融 SW3522 PD 协议芯片,通过
    发表于 11-13 14:48

    STM32F407的晶振选型分析

    STM32F407的最佳晶振选项
    的头像 发表于 11-07 12:03 265次阅读

    STM32F407VGT6的完美国产替代——中科芯CKS32F407VGT6在智能电力网关的应用

    风险。如今,这一局面正被打破,STM32F407VGT6的完美国产替代——中科芯CKS32F407VGT6在智能电力网关的应用,为这一领域带来了新的曙光,开启了国产芯片
    的头像 发表于 08-25 16:16 689次阅读
    <b class='flag-5'>STM32F407</b>VGT6的完美国产替代——中科芯CKS32<b class='flag-5'>F407</b>VGT6在智能电力网关的应用

    微控制器 STM32F407VG(ST品牌),的pin to pin国产替代解决方案XHTM32F407VG

    在科技飞速发展的当下,芯片作为智能设备的“心脏”,其性能直接决定了设备的优劣。XTM32F407VG,这款是32位芯片,以卓越性能、丰富功能和超高稳定性,成为众多开发者与工程师的理想之选,引领着智能
    的头像 发表于 08-11 17:59 640次阅读
    微控制器 <b class='flag-5'>STM32F407</b>VG(ST品牌),的pin to pin国产替代<b class='flag-5'>解决方案</b>XHTM32<b class='flag-5'>F407</b>VG

    STM32F407VGT6使用PLL倍频后芯片会反复重启怎么解决?

    STM32F407VGT6使用内部16M晶振,没有使用PLL倍频,直接用HSI做时钟源程序可以正常跑通,但是使用PLL倍频后芯片就会反复重启,就算倍频到16M也会反复重启,,每33ms重启一起。
    发表于 03-12 06:04

    使用STM32F407ZGT6芯片做小车主控时,总是在运行时芯片突然锁,无法下载程序怎么解决?

    在使用STM32F407ZGT6芯片做小车主控时,总是在运行时芯片突然锁,无法下载程序。 使用STM32 ST-LINK Utility也
    发表于 03-11 06:20

    STM32F407 Flash写入数据失败的原因?怎么解决?

    STM32F407VGT6 标准库 往Flash中写入数据,写入完成后再次读取,发现没有写入成功。printf 打印擦除和写入的步骤发现,返回的 FLASH_Status 都是 7。关于错误码
    发表于 03-11 06:08

    stm32F407平台上使用freertos,使用pvPortMalloc申请内存,发现内存中的数据总修改,怎么解决?

    如题,我现在在stm32F407平台上打开FREERTOS,然后使用pvPortMalloc动态申请内存的时候,发现这块内存中的数据总是变化,后面改为malloc申请,内存中的数据就符合预期了,我已经按照网上的流程配置了freertos,不知道是什么原因导致这种现象?
    发表于 03-07 09:03

    stm32f407这个STM32_RCC_PERIPHCLK_SDMMC是哪里定义的?

    stm32f407这个STM32_RCC_PERIPHCLK_SDMMC 是哪里定义的 函数调用这个会报错 Error[Pe020]: identifier \"
    发表于 03-07 07:34

    STM32F407输出的2片ADC的转换值与输入ADC的电压值相同了,不知道是何原因?

    VREF电压稳定(2.498V断电后重新上电,STM32F407 输出的2片ADC的转换值与输入ADC的电压值就相同了,不知道是何原因?请提供参考建议
    发表于 01-22 08:15

    STM32F405xx和STM32F407xx微控制器数据手册

    电子发烧友网站提供《STM32F405xx和STM32F407xx微控制器数据手册.pdf》资料免费下载
    发表于 01-03 14:49 4次下载

    基于主控芯片AiP8F3216的除湿器解决方案

    基于主控芯片AiP8F3216的除湿器解决方案
    的头像 发表于 12-31 09:40 814次阅读
    基于主控<b class='flag-5'>芯片</b>AiP8<b class='flag-5'>F</b>3216的除湿器<b class='flag-5'>解决方案</b>

    ADS7813芯片断线输出不是0,请问如此设计的依据是什么?

    ADS7813芯片断线输出不是0,请问如此设计的依据是什么?采用±10V输入范围的设计方案,如何保证断线状态仍然输出0?
    发表于 12-30 06:01

    STM32 F407无传感器控制PLL

    电子发烧友网站提供《STM32 F407无传感器控制PLL.zip》资料免费下载
    发表于 12-19 14:10 1次下载

    STM32F407 MCU使用SD NAND 不断电初始化失效解决方案

    STM32F407微控制器单元(MCU)与SD NAND的结合提供了强大的存储解决方案。然而,不断电初始化失效问题可能会导致系统稳定性和数据完整性受损。我们将STM32F407与SD
    的头像 发表于 12-11 10:51 1472次阅读
    <b class='flag-5'>STM32F407</b> MCU使用SD NAND 不<b class='flag-5'>断电</b>初始化失效<b class='flag-5'>解决方案</b>