STM32串口一键下载电路
来源:互联网 发布:编程语言c 怎么用 编辑:程序博客网 时间:2024/05/20 10:10
参考引用:https://www.cnblogs.com/einstein-2014731/p/4885300.html
在做基于STM32的多功能MP3播放器的课题时,在程序下载这部分时借鉴了正点原子开发板上的一键下载电路,采用CH340G这款芯片设计。
在画PCB初期原理图部分,对采用CH340G设计的一键下载电路不甚了解,于是花了一些时间来研究一下这个电路。
引用正点原子的一键下载电路:
CH340芯片版本:
PL2303芯片版本:
boot跳线帽:
我们通过RTS#和DTR#两个输出信号来控制STM32 IC的BOOT0和BOOT1两引脚来选择启动模式,如下表:
当烧写程序时,我们希望BOOT0=1,BOOT1=0。当烧写完成后我们希望BOOT0=0,BOOT1=0(这个模式BOOT1可以是0可以是1,这里我们让BOOT1拉低,即整个过程BOOT1都为L接地,简化电路设计)。
这里我们只需考虑BOOT0的高低。
查看STM32的参考手册,如下图:
注意表6下方第一句话:“在系统复位后,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。”
OK,综上所诉,我们可以得到: 1、系统上电,BOOT0需为L,进入模式一。上电复位后,在SYSCLK的第4个上升沿,BOOT引脚的值将被锁存,进入主闪存存储器,执行我们烧写的代码。
2、当我们编译好程序,生成HEX文件。在烧写HEX文件时,BOOT0需为H,进入模式二。然后,系统必须复位一次(因为由1知道,系统上电后默认执行代码,即模式一),让系统重新锁存BOOT引脚。系统进入模式二,开始烧写HEX文件。
3、烧写完成后,我们希望系统再次进入模式一,执行代码。但正点原子的一键下载电路并没有让系统完成烧写程序后再次复位重新锁存BOOT引脚进入模式一。这个原因应该是MCUISP软件帮我们配置好了,在烧写完成后会有报告:“成功从08000000开始运行”。
在参考手册中有这样一段话:
从另一个方向来理解它,可以这么说:主闪存存储器从地址(0x0800 0000)访问,不管是系统自动的还是软件配置的,只要系统指针跳到主闪存存储器的地址(0x0800 0000)处开始执行代码,就可以了,结果是我们想要的。
以上就是一键下载电路需要实现的功能,原子兄帮我们设计出来了。如果看不懂的话,可以参考我下面的解释。
我们需要注意一点:CH340G上电后DTR#和RTS#都为高电平,在用MCUISP烧写软件时,我们在软件下方选择“DTR的低电平复位,RTS高电平进BootLoader”,CH340G IC在实际操作时引脚的变化为“DTR#拉高,RTS#拉低”,即软件设置和实际情况是取非的,相反的。
画个时序图,直观一些:原文:http://www.360doc.com/content/14/0921/11/14951572_411210231.shtml
阅读全文
0 0
- STM32串口一键下载电路
- STM32、串口、一键下载
- STM32学习笔记:串口一键下载电路(CH340)的理解
- CH340在STM32实现一键下载电路的理解
- 串口一键下载电路(CH340)的理解
- STM32,一键下载。
- STM32串口下载
- STM32串口下载
- 第一章:STM32串口ISP下载
- STM32 串口DMA(一)
- stm32串口学习(一)
- STM32单片机的ISP一键下载
- 串口取电电路(一)
- miniSTM32开发板的一键下载电路
- stm32下载方式之串口ISP\swd
- FlyMcu串口ISP下载STM32程序教程
- STM32串口下载方法-USART BootLoader
- FlyMcu串口ISP下载STM32程序教程
- ros环境下华硕xtion深度图和彩色图的配准问题
- PAT1013 并查集
- 设置文件(夹)用Sublime 右键打开
- 【操作系统学习】(一)进程调度
- BZOJ 2243: [SDOI2011]染色
- STM32串口一键下载电路
- ubuntu 16.04+Caffe:build_release/lib/libcaffe.so:对‘google::protobuf:
- 剑指offer第34题(丑数)
- Servlet的实现类-GenericServlet
- 统计一个数字在排序数组中出现的次数
- 剑指offer---对称的二叉树
- Effective JavaScript.pdf 英文原版 免费下载
- swift stat执行报错HTTPConnectionPool(host='controller', port=8080)
- 封装等待方法WebDriverWait