STMCU小助手
发布时间:2022-2-20 17:59
|
前言( I& S1 A8 q+ s3 V 客户反馈通过 PC软件 flashloader 不能够跟 STM32 MCU自带 bootloader 连接。并且系统运行一段时间后异常复位。% D0 A6 y3 m) `$ u: [1 m, y6 t- k & U( }0 r. S4 Y3 j 系统分析: G7 E7 y; ~; B! v& j 检测原理图 : 延续之前的项目,进行的一些软硬件简单修改。 上电、放电的时序也是正常。 Boot0 拉高,boot1 拉低, 测量工作时的电压正常(2.5v)。 检测所有相关的硬件软件都是没有问题,他们的 boot 脚,以及之前的 PDR_ON 是通过外围的 FPGA 单元控制,我们一开始怀疑这些上电时序,以及 PDR 逻辑出错。尝试让他们全部断开逻辑,测试整个上电,掉电过程都是没有什么问题。0 o8 B/ o8 d: J, \ 9 ~! ?( c6 e% S% f% j 5 `& Z5 g: t4 R, U$ ~; j+ a7 R! G 测量波形: 检测他们的串口工具 能正常在 PC上发现他们的串口工具,数据的发送正常。9 u& J- L' j6 c5 E 但是串口的到 PCB板上没有任何的输出,所以并不能跟板子通讯。1 A+ U V! x0 N* r
0 k$ }) ?* J; O! |. F1 a9 m 使用一个新的串口工具,当产品连接到 PC 后,重新上电,能够正常升级软件,到这里似乎问题得到解决,但是当他们恢复到之前的系统,通过控制 reset 和 BOOT引脚进入的时候,仍然时灵时不灵,当不能进入 BOOT 的时候,他们测量我们的复位管脚电压时发现在复位脚上以一个 3.6MHz 的频率不停的复位 MCU.+ T) r) c# d8 {8 K) H J+ X2 T2 @! F
! K: d) s6 U$ l' o6 A 功能测试:/ i5 ]$ a9 Y ?) U* B6 P 客户又发现如果给 MCU 上电,PC 快速打开 flashloader,并且连接串口,工作正常。但是,如果慢速这样操作,就连不上了,真是神奇的事情再次发生,他们再次确认发现,在复位脚上,在上电一段时间后,会有不停的有一个复位信号产生,百思不得解。 确认手册:2 L) i0 v6 g9 Y+ o' e, k 我们打开 AN2606,发现在 bootloader 的流程图中有一个系统 reset 的过程,难道是这里产生的吗?/ x) f: p" o4 k8 r; K# n! ]
我们让客户断开所有的外设再次确认问题,他们发现在断开外围的时候,这个连续的复位信号不再产生。从这个流程来看,只有在用到 DFU或者 CA N升级的会在检测不到 HSE的时候会系统 reset,但据他们说,他们并不使用这两个功能,那就奇怪了,然后就让他们试做去恢复外设功能,最后发现在恢复到一个 SPI 的时候,重现这个问题。 1 Q( P* b# Z5 z1 n- S' K8 y$ w9 y) B 系统确认: 我再次跟他们沟通他们的系统框图如下:3 V! d" b# m6 r2 j
( F. w. h `' ^ 他们进一步调查发现,当 FPGA,在上电初始化后,会不停的发送一些命令给到 MCU,数据线正好跟 CA N 的 RX引脚共用,所以只有第一次上电后,也就是在 FPGA 给 MCU 发送数据之前,FLASHLOADER 能够正常连接 MCU,过了这段时间就不能连接了。从这些实验和最后的结果我们可以看出,如果我们在芯片上电,且在 FPGA 给 MCU 发送数据之前,连接串口,这个时候 MCU就能顺利地通过 UA RT 启用 bootloader,而不受 FPGA 发送的数据影响,而过了这段时间之后,FPGA 会不停的发送数据给 MCU,而 MCU 错误的检测到 CAN FRAME(跟 ST欧洲的应用部门确认,我们的 CA N 检测只是简单的确认一个下降沿,一个上升沿,再检测到一个下降沿),而进入 CA N bootloader 但是又不能正确检测到 HSE或者不能在 3ms 内检测到正常的 CAN FRAME ,从而导致 MCU复位。屏蔽掉 SPI 的时候,一切正常。 % |: p# w, {% v1 { 结论 : 人们常说“事出反常必有妖”,如果不是芯片本身被损坏,我们始终坚信通过对硬件、系统、软件、以及手册的全面查: |0 C4 n# f+ A. @, r2 Q7 e 找,一定能找出问题。: f" Z5 w, |3 y* c$ g, P6 @2 } |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版