欢迎来到天天文库
浏览记录
ID:56000681
大小:896.43 KB
页数:13页
时间:2020-06-19
《如何通过STM32的串口实现简易脱机编程器.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、如何实现一款简易脱机编程器前言本篇应用笔记为实现一个简易脱机编程器。在实际产品的生产与升级过程中,很多的客户都需要有一个简易脱机编程器,该脱机编程器很简单,在没有电脑环境中能够实现修改MCU内部Flash即可。不需要复杂的其他功能。接口方面也不需要很复杂,只需要支持串口编程即可,最好是不用电池(这样够省电),成本要很低,还有就是携带方便(出差的朋友可以随身携带)等等简单功能……其实,ST提供了一个内部Bootloader(这里有UART、SPI、I2C等等接口,根据不同芯片有其不同接口形式)并发布了一篇介绍内部Bootloa
2、der的说明文档(AN2606),客户根据这个文档就能自己写一个这样的程序,无论是在PC端的还是在MCU端。但很多时候,为了加快实现速度,一般都会先咨询ST是否可以提供这样一个范例(开源的代码)来给客户做参考。因这个部分是客户的定制化需求,每一个客户对于接口设计、硬件设计、软件设计都有自己的不同需求,所以没有一个范例来参考。本文为了满足广大研发工程师需求,并为给使用STMCU产品的客户一套快速实现该功能的参考范例,我们就以使用STM32的芯片来实现一款脱机编程器。通过本文档,您可以了解如何通过UART来实现一款简易的脱机编程
3、器,并提供一个范例工程以供大家参考。注意:其实协议内容都是相通的,只是使用的接口不同而已,所以该工程也可以作为使用其他接口的客户来参考。整体框架如下图所示:硬件接口连接要通过串口来进行编程,此款脱机编程器的串口一定需要引出,简单的三线串口即可(RXD、RXD、GND),因脱机编程器上不带有电池等电源,就需要在目标板上引出工作电源(也就是说,此脱机编程器的电源是在目标板上引出的,在设计目标板的时候就需要考虑引出所需要的电源),加上进入BOOT模式所需要的GPIO和控制NREST的GPIO,一共是6根线:RXD、TXD、GND、
4、Control_NRST、VDD(目标板上的工作电压)和Control_BOOT0。具体描述参见下表:表1硬件连线说明名称数据/控制方向描述RXD从脱机编程器到目标MCU目标MCU的串口数据接收管脚TXD从目标MCU到脱机编程器目标MCU的串口数据发送管脚GND---共地VDD从目标板到脱机编程器从目标板提供电源给脱机编程器工作,典型值为3.3V1Control_BOOT0从脱机编程器到目标MCU脱机编程器控制目标MCU的BOOT0管脚Control_NRST从脱机编程器到目标MCU脱机编程器控制目标MCU的复位管脚1、电源
5、方面只要满足工作电压即可。具体值请参考所选MCU的数据手册提醒:在设计接口的时候,可以再增加一个根线,设计为7根线的防止反接接口,这部分请自行设计。如果想使用STMFlashLoaderDemo软件下载固件到脱机编程器中,建议设计MCU的时候,参考下边的原理图来设计最小系统,在此基础之上增加PA9和PA10的串口接口即可.图一脱机编程器最小系统原理图本文所涉到的范例程序是基于Nucleo-F030这块板子上实现的,其有以下便利条件:1、板载ST-Link,可使用上位机软件STM32ST-LINKUtility软件直接下载目标
6、代码和更新脱机编程器中的固件;2、已经设计了一个用户按键和一个LED灯,分别用来实现开始编程命令和显示编程状态;3、Nucleo的板子上的ST-Link已经实现了虚拟串口的功能,所以也通过这个串口可以打印一些调试信息。下表为在Nucleo-F030板子上所需要的管脚分配示意图。选择MCU建议因为本着低成本、简单实用的设计原则,所以该脱机编程器中没有增加外扩Flash,而是采用了MCU片内的Flash来存储所需要下载的代码。电源直接从目标板上引出,节省了LDO等电源芯片的成本。推荐使用和目标板上同系列的MCU来做这款脱机编程器
7、,这样采购的成本也可以降下来。整个编程器固件的代码大小为7K左右,所以只要您的代码目标代码大小是小于所选MCU片内Flash空间-7KB即可。比如APP代码大小为18K左右,那么您的脱机编程器最小需求的代码空间就是25KB左右(18+7=25),您在选型手册上找个Flash大于25KB的MCU即可.如果您产品使用了不止一款ST的MCU,那么你只需要选择一款包含所有代码中最大的那款即可。软件设计实现软件工程的设计是依照AN3155这篇文档来做的,更加细节的内容请参考该文档。通过本部分的介绍,希望能达到让您快速上手,实现一个LE
8、D点灯程序的下载与执行的流程,让大家知道如何实现软件部分的功能,并且重点介绍一下如何将这个工程实现到ST的其他MCU上,这样才使得这款脱机编程器具有通用性。备注:编程器固件和目标文件的Bin文件都已经提供在demo中,也可以直接下载到编程器中进行验证.软件库本软件设计中使用了STM32Cu
此文档下载收益归作者所有