你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

FLASH 被异常改写

[复制链接]
aimejia 发布时间:2018-5-17 13:18
本帖最后由 aimejia 于 2018-5-17 13:28 编辑 ) e2 D/ z2 U7 @& r. B, g
- z: B6 m" {% L' b7 y
问 题 描 述 & ]. y3 Y0 B$ h* W
某客户反馈, 当 MCU 频繁的正常通断电的时候。FLASH 被异常改写,出现各种各样的异常(整片4 i5 [, H0 e& Z0 q! k7 X. X
别擦除、中断向量表被改写为 0、写保护被清掉、被加上读保护 ……..)6 `2 h. F$ Q( E* f3 k: X5 ]3 R/ p

5 W- I+ x. j, ?4 R* ]3 U2 E% N( J问 题 调 研 :
) r. {& p$ B0 b3 s9 V首先跟客户沟通:
, S9 U% k! _. w+ Y•  他们是延续之前的项目,进行的一些软硬件简单修改。之前的项目没有出现过类似的问题。
5 e4 q4 U9 {, ]& Y9 A$ `- ?. |8 B- U) i: ^•  确认通断电的时间是足够,就是说他们断电后所有的 VDD 都回到 0.上电的时序也是正常。
( N/ o$ R3 {  a( V% G: Y•  原理图确认这是 follow 了我们的参考设计。
6 h) g* e( d& v+ h' D$ y; o•  测量工作时的电压,只是发觉他们上电时会有一些抖动,其它一切正常。尝试让他们改善上电电路,去掉这一抖
+ Y! @( }% e* s( y动,再次实验,仍然出现类似的问题。: ^, L/ h' g1 ^8 F
到这里似乎跟硬件没有任何的问题了, 接着让客户代码进行删减又做了如下实验:9 T. l& w1 U- n0 j, G  E  J, [
1, 去掉能 APP 部分代码,仅仅留下 IAP 代码。做相同的实验,问题再现。# z( ^1 }. P0 b
2, 进一步删减程序,客户去掉程序中所有跟 flash 以及 OPTION BYTE 相关的部分,做相同的实验,问题再现。" _( Z) F9 h! U4 P2 s" S
3, 没招,再删,最后仅仅留下下面程序:
$ J0 \! S: r  b  U+ X/ c7 o9 a 8.png 0 Y* B; u4 H- b# ?3 |; I+ `: G
$ P) N: x9 Q# `+ n
9.png
7 T1 T& E7 y1 B( [" F8 j" m/ Y/ e# e1 z! P' |
10.png
  r2 D1 d6 V7 v客户反应只要掉用了 delay_init 函数就会出问题,不调用就不会出问题(仅仅做了一天的实验)。到这里似乎跟我们的软; z+ `9 V: s4 F* G: B% }# s( W' Q9 [# a
件有关系了,我们进一步分析发现他们改写了我们的 systick 的 config 函数,那么我就做下一个实验。$ q9 v0 b4 \" v' a+ D) A' b
4, 改为标准库中的 systick 例程,去掉写保护,加一个 GPIO 定时翻转程序。同时在烧录之后,加上写保护,做相) j9 i: @. p4 j1 F! V+ U8 s7 a
同的实验,问题再现。, D/ z. S& E  U$ ~6 c, O
5, 到这里我们都怀疑是芯片真的有损伤了,我们再做了一个实验用 cubemx 生成了一个 GPIO 翻转和 systick 的延+ ^9 L( _0 \$ ^. \
时,做相同的实验,问题再现。
$ U& b6 R( \. T2 m3 N5 l原因:
( V/ t2 D; ~/ R6 h8 A% k到这里我们似乎是江郎才尽,只能坐等 FA 的报告,看看芯片是否真的坏了与否。我们抱着怀疑一切的态度,请他们的硬件
  K' q5 X8 T9 r/ Z4 g- B' c) j2 D工程师再次确认他们的硬件和原理图的一致性,我们怀疑他们的硬件是否有装错的元器件。主要集中在 MCU 周边。最后他们1 l0 P! o% r. v5 Z! h4 m6 U5 j
的工程反馈,他们的 PDR_ON 脚,板子上装的元器件跟原理图不一致。他们把 R47 和 R48 都装了,那么相当于在 PDR_ON
2 w* ?3 e5 w3 F$ P6 U/ B8 V( @上是一个 0.6v 的电压,也就是关断了 MCU 内部复位。
+ ]1 {& M- [- H2 p. ~8 C! P3 G真是山穷水尽疑无路,柳暗花明又一村,问题应该跟内部复位有关。# K6 d! I) j  ^4 r* P1 p
11.png
: E5 u$ r& D. i' ~( z( c# [; c
/ |* K; p) f& a0 y- k4 @ 12.png & n+ d) k* m+ K# [) V
从上面规格书来看,如果我们关断 mcu 内部的复位电路,需要在外部接一个复位信号保证 VDD 达到正常工作电压之% y2 B6 \* s' P  }" U5 D
前一直使 MCU 处于复位状态。
6 j6 C& @: I- e9 u- o$ k' j* S/ M8 T, q
...
9 l2 @0 K3 H! D) @  B
& _% W" O# E& J5 g: K了解更多,请下载后阅读; J. X) r& w) ^; j/ t& m, A# i5 B

  c! o$ X& Z; B1 Q% T下载地址1>>      下载地址2>>       更多实战经验>>
# y+ ?4 p0 w6 E/ V: F( A; D9 P

4 p. p, x! W; Y4 R9 `4 w
收藏 1 评论8 发布时间:2018-5-17 13:18

举报

8个回答
七哥 回答时间:2018-5-17 17:56:40
过程描述详细,分析到位。) U; }+ G1 [% {2 Z

) g$ H3 s6 d: Z4 K' {总之,问题出在,不按套路出牌。
xmstudio 回答时间:2018-5-18 08:48:13
画原理图的人应该背锅,预留但是不安装的电阻应该标注一下,整理BOM表以及整理坐标文件的时候都应该去除
zhongfg 回答时间:2018-5-21 07:49:52
學習了,謝謝分享.
aimejia 回答时间:2018-5-21 09:33:11
zhongfg 发表于 2018-5-21 07:49
  P) e  V' s" [. z6 B) m5 g學習了,謝謝分享.
2 e1 w3 ]3 j9 m6 l9 P5 b0 O
不客气哦
aimejia 回答时间:2018-5-21 09:50:18
toofree 发表于 2018-5-17 17:56
. D, p6 F8 [7 N  c2 h9 r, h过程描述详细,分析到位。
$ Y* L- |8 y3 J* N; @
' p7 j4 Y/ W* \  T0 |总之,问题出在,不按套路出牌。

/ L9 t/ [  a8 T. w. N, p) b看来问题都要一个个排查啊
lyzd 回答时间:2018-6-29 09:52:17
学习到了,,,,
robter 回答时间:2018-7-17 21:25:57
都是很好的经验,值得借鉴
365天 回答时间:2019-1-24 13:15:02
长知识。学习如何排查问题。

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版