打印
[信息]

【实战经验】Boot Loader 与上位机通信不稳定

[复制链接]
1735|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 香水城 于 2017-8-17 14:29 编辑

Boot Loader 与上位机通信不稳定

问题:
某客户工程师在某型号新产品的设计中,使用了 STM32L151VCT6。据其工程师讲述:他使用 ST 的 Flash Loader demo 通过 STM32 的 USART1 向其加载用户程序,发现 Boot Loader demo 与 STM32 通信不稳定,时而成功时而不成功,有时甚至连接不上。

调研:
用万用表测量其所使用的通信电缆,确认其完好。使用该通信电缆,将其所使用的电脑通信口与另外 一个通信口连接,互发数据,验证该通信口完好。将电缆接回到其用户板上,选择用户板的启动模式, 设为 System Memory 启动,然后开启用户板电源。通过串口调试助手向用户板以 57600BPS 的波特率 发送数据 0x7f,并使用示波器观测 STM32 的 USART1 的 Tx 与 Rx 管脚。通过示波器观测,确认数据 0x7f 正确传送到 USART1 的 Rx 管脚,而 Tx 管脚上有返馈代码 0x79。多次测试,发现并非每次测试 USART1 的 Tx 管脚上都有返馈代码送出。将 STM32 的 USART1 的 Tx、Rx 管脚用 10K 电阻上拉 到 VDD,测试,现象依旧。将 STM32 的 USART2 的 Tx、Rx 管脚用 10K 电阻上拉到 VDD,测试,通信稳定。

结论:
干扰信号通过 USART2 干扰了 Boot Loader 的运行,使其误认为 USART2 被选择用来与 Boot Loader Demo 通信,而忽略了 USART1 上的信号,造成 Flash Loader Demo 不能通过 USART1 与其对话。

处理:
将 USART1 的 Tx、Rx 用 10K 电阻上拉到 VDD,将 USART2 的 Tx、Rx 用 10K 电阻上拉到 VDD。

建议:
STM32 的 Boot Loader 有多个版本。早期的版本只支持通过 USART1 进行通信,后来的版本增加了 USART2、USART3、CAN、DFU 等通信方式。见下表:

其中,对于使用 USART 进行通信的模式来说,需要在通信之前进行波特率检测与通信口选择。这一过 程是通过在 USART 的 Rx 脚上加载两个低脉冲(0x7f)实现的。由于复位状态的 STM32 的各个 I/O 匀处于高阻状态,若此时片外电路对地电阻也为高阻,则容易受到干扰。STM32 会误将 Rx 管脚上的 某些干扰脉冲当成波特率设定及通信口选择信号,造成波特率设定及通信口选择出错,进而导致正常 的通信不能进行。同时,由于此时 Tx 对外没有驱动能力,作用在该管脚上的干扰信号也会被上位机的 Flash Loader Demo 接收,而产生误动作。通常,使用 10K 电阻将每一路待选的 USART 通信口的 Tx 及 Rx 管脚上拉到 VDD 可以解决这一问题。
上位机运行的 Flash Loader Demo 的相关设置,对于能否成功加载用户程序,起着至关重要的作用, 根据多数使用者的经验,对于 Parity 的设置,要选择 Even 或 Odd,选 None 会导致较低的成功概 率。Timeout 要选择足够长的时间,通常要选择最大值,如下图:


对应的PDF:Boot Loader与上位机通信不稳定
更多实战经验请看: 【ST MCU实战经验汇总贴】
沙发
南海渔歌| | 2015-7-27 11:33 | 只看该作者
香版,DFU与USB什么区别?  我已经成功进行了USB_IAP,参考的是AN3354例程。它里面压根没提到什么DFU呀?

使用特权

评论回复
板凳
mmuuss586| | 2015-7-27 12:39 | 只看该作者

看来画板子还是比较关键的;

使用特权

评论回复
地板
yklstudent| | 2015-7-27 12:46 | 只看该作者
请问哪里有CAN_IAP的范例?

使用特权

评论回复
5
香水城|  楼主 | 2015-7-27 14:23 | 只看该作者
南海渔歌 发表于 2015-7-27 11:33
香版,DFU与USB什么区别?  我已经成功进行了USB_IAP,参考的是AN3354例程。它里面压根没提到什么DFU呀? ...

DFU是通过STM32的booloader提供的USB DFU协议进行程序更新。升级程序存在于system memory区域。可以参考AN2606,AN3156
你参考AN3354完成的是IAP,是升级程序与用户程序同样位于Flash memory区域。

使用特权

评论回复
6
南海渔歌| | 2015-7-27 20:10 | 只看该作者
谢谢香版!   诲人不倦   结贴!

使用特权

评论回复
7
南海渔歌| | 2015-7-27 20:11 | 只看该作者
哦  是香版的帖子啊  我只是过路的  :L

使用特权

评论回复
8
香水城|  楼主 | 2015-7-29 16:41 | 只看该作者
南海渔歌 发表于 2015-7-27 20:10
谢谢香版!   诲人不倦   结贴!

:L 这个贴,你没办法结。
:lol

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:意法半导体(中国)投资有限公司
简介:STM32技术专家

596

主题

17106

帖子

287

粉丝