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

FLASH 被异常改写

[复制链接]
aimejia 发布时间:2018-5-17 13:18
本帖最后由 aimejia 于 2018-5-17 13:28 编辑
$ `+ A; C& P$ _! J5 ]% V* Q  S3 L3 H  b! s* d" e
问 题 描 述
5 Q- U  G/ `2 a3 m* s* f某客户反馈, 当 MCU 频繁的正常通断电的时候。FLASH 被异常改写,出现各种各样的异常(整片
7 V3 X! m4 `9 f7 o8 V! @3 i! h别擦除、中断向量表被改写为 0、写保护被清掉、被加上读保护 ……..)) i; [/ ^6 ^6 s, K! J+ S* o, t

! e" g$ S+ K0 _2 t5 o! L+ }问 题 调 研 :
/ |5 W% l, c  N! R: w首先跟客户沟通:4 T: U) w9 O9 _) z- U
•  他们是延续之前的项目,进行的一些软硬件简单修改。之前的项目没有出现过类似的问题。. Q. Z& ^( g1 p6 S" W& g' w9 D* R7 ]
•  确认通断电的时间是足够,就是说他们断电后所有的 VDD 都回到 0.上电的时序也是正常。
, m6 F( N* l6 S7 Z•  原理图确认这是 follow 了我们的参考设计。- [1 X0 w# X) I& T% }  [
•  测量工作时的电压,只是发觉他们上电时会有一些抖动,其它一切正常。尝试让他们改善上电电路,去掉这一抖7 e: @( n! o( l2 a4 @  |8 y
动,再次实验,仍然出现类似的问题。
- U9 ]  c! t  O# R' l& Q" Y7 `& d* m0 k到这里似乎跟硬件没有任何的问题了, 接着让客户代码进行删减又做了如下实验:4 D: o" J6 T5 |7 H7 f$ l" {
1, 去掉能 APP 部分代码,仅仅留下 IAP 代码。做相同的实验,问题再现。$ S- v# M* h4 x! ]
2, 进一步删减程序,客户去掉程序中所有跟 flash 以及 OPTION BYTE 相关的部分,做相同的实验,问题再现。1 M. L% J4 H8 c- F& u* v. f
3, 没招,再删,最后仅仅留下下面程序:+ o( z; \1 L5 \/ ]: X# i5 A
8.png
: z: k/ q$ C8 A9 N
( m) o1 o1 E0 V# [" q3 ] 9.png
  w/ I1 F9 S9 R
/ J9 \% \# ^" h8 N) v) B1 ^7 Q9 _ 10.png 4 r- e4 s- Y3 v! x% z
客户反应只要掉用了 delay_init 函数就会出问题,不调用就不会出问题(仅仅做了一天的实验)。到这里似乎跟我们的软& C3 f9 u; d& @9 v
件有关系了,我们进一步分析发现他们改写了我们的 systick 的 config 函数,那么我就做下一个实验。
' w' ]8 B, n2 ~  ]1 Z5 Y4, 改为标准库中的 systick 例程,去掉写保护,加一个 GPIO 定时翻转程序。同时在烧录之后,加上写保护,做相
* Z, T6 {1 S+ {$ t5 P3 Y% u同的实验,问题再现。
3 k" [, A  ~: X5, 到这里我们都怀疑是芯片真的有损伤了,我们再做了一个实验用 cubemx 生成了一个 GPIO 翻转和 systick 的延; ~8 r5 Z7 j4 ]
时,做相同的实验,问题再现。
. _* Q7 a, O( R9 l+ I: \原因:. Q/ f7 }( K9 E2 O" r7 B
到这里我们似乎是江郎才尽,只能坐等 FA 的报告,看看芯片是否真的坏了与否。我们抱着怀疑一切的态度,请他们的硬件# C/ @* {( W% a
工程师再次确认他们的硬件和原理图的一致性,我们怀疑他们的硬件是否有装错的元器件。主要集中在 MCU 周边。最后他们
. P- L$ F* h0 C8 a( V1 J的工程反馈,他们的 PDR_ON 脚,板子上装的元器件跟原理图不一致。他们把 R47 和 R48 都装了,那么相当于在 PDR_ON
* W5 A0 w5 t' C, v( a4 x上是一个 0.6v 的电压,也就是关断了 MCU 内部复位。
" M$ e; W0 U& U( @' k* o真是山穷水尽疑无路,柳暗花明又一村,问题应该跟内部复位有关。
# H; B: Q4 |3 G( n  c 11.png
  p4 ?3 ~( s' \8 o0 x/ N3 ?
( O# m& M, E4 ^4 ~  o+ y$ ^ 12.png
* l8 w6 M6 V1 E. r+ {从上面规格书来看,如果我们关断 mcu 内部的复位电路,需要在外部接一个复位信号保证 VDD 达到正常工作电压之
/ i. y$ c6 P3 ~1 }# ~6 E! u前一直使 MCU 处于复位状态。
! e: D+ Q- W) n% V% }  `) k/ P' Y% W) C; ]; ?
...
, |! B: R3 ]7 x. F8 k3 v5 h' k
, l* Q" l9 M6 V) U/ t) V了解更多,请下载后阅读* V# a* f* P7 Y5 f! o* ]( H

0 \3 R1 M2 X0 k$ |  ^+ p. W$ r) y7 ?下载地址1>>      下载地址2>>       更多实战经验>>' Q3 [2 \( n. B& ^  R
  W4 v: y& k6 g% P7 v
收藏 1 评论8 发布时间:2018-5-17 13:18

举报

8个回答
七哥 回答时间:2018-5-17 17:56:40
过程描述详细,分析到位。. P5 r+ M8 ]7 w# m6 }, N; S# P
/ |; X7 E) A2 n
总之,问题出在,不按套路出牌。
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
" ^" I. v: H8 N3 K# I7 T7 K學習了,謝謝分享.

  {# F% ]4 P5 z/ n% Q不客气哦
aimejia 回答时间:2018-5-21 09:50:18
toofree 发表于 2018-5-17 17:563 S" u7 T  I3 l" k& h
过程描述详细,分析到位。
; E2 d/ A+ I! i, _. @! k' I. z
2 ^) \6 h8 F8 Z. Z! z. I% t总之,问题出在,不按套路出牌。
' ?& a+ \1 c5 g, a' }# A
看来问题都要一个个排查啊
lyzd 回答时间:2018-6-29 09:52:17
学习到了,,,,
robter 回答时间:2018-7-17 21:25:57
都是很好的经验,值得借鉴
365天 回答时间:2019-1-24 13:15:02
长知识。学习如何排查问题。

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版