使用串口芯片CH340中的DTR引脚和RTS引脚来控制单片机复位引脚和BOOT0引脚的电平状态,从而实现一键下载。对于这个一键下载电路,重点是这2个地方没问题就足够理解了:1.得有看懂三极管电路开关状态的能力 2.得明白CH340的DTR RTS引脚电平状态是可以由软件来控制的
1.使用串口下载前,先这样连接:单片机串口1的tx1 rx1分别和ch340的rx tx连接,同时把boot0 boot1引脚都10k****下拉到地(若直接连地则电平状态无法改变了,也就无法切换boot启动配置了)
2.如图2,10k在这里:boot引脚拉一个10k电阻到排针
图2
3.图3为正点原子精英板usb转串口的ch340电路,使用flymcu软件来进行烧录。烧录软件的工作流程为:
(1)初始:DTR和RTS的初始电平都是高电平,如图3,此时Q2和Q3都不导通
(2)如图5的阶段1,DTR维持高电平,RTS拉低,此时Q2和Q3都导通,boot0拉高,同时单片机进入复位状态
(3) 如图5的阶段2,DTR也拉低,此时单片机从复位状态释放进行启动,由于boot0已经拉高,参考图4启动模式,单片机将进入系统存储器 。从图6可以看到,这个阶段,主要执行单片机信息查询和程序擦除动作
**(4)如图5的阶段3,DTR拉高,RTS维持低电平,此时单片机再次进入复位状态,同时boot0维持拉高状态
**
(5)如图5的阶段4,DTR再次拉低,单片机从复位状态释放,启动进入系统存储器。从图6来看,这个阶段再次读取单片机信息,然后进行烧录, 烧录完成后发送协议命令(系统存储器里面的bootloader程序,从flymcu打印的log来推断,至少包含了芯片信息查询、程序烧录、跳转到flash执行这三大功能)让单片机跳转到闪存地址执行,注意这里是从系统存储器程序里面直接跳转的(这一步需要在软件勾选 编程后执行 复选框才有的)
(6)收尾:以上烧录完成并执行以后,拉高DTR和RTS,恢复到平时的电平状态,断开Q2和Q3
图3
4.BOOT0 BOOT1引脚电平对应的启动模式
图4
5.除了初始和收尾,有四个阶段,用2张图来表示。图5是DTR和RTS的实际波形,图6是flymcu烧录软件打印的log信息。其中图6里面关于DTR和RTS电平的描述和实际波形相反,这是flymcu软件的问题。
图5
图6
关键字:正点原子 stm32
引用地址:
正点原子stm32精英开发板串口一键下载电路原理分析
推荐阅读最新更新时间:2024-10-11 23:44
stm32作为spi的从机使用例程
STM32的SPI可以作为master,也可以作为slave,作为slave的例程比较少,今天经过几个小时的折腾,终于把数据获取出来了,经验证和元数据是一致的。现将源代码贴在这里,供有需要的人参考。 硬件连接: STM32(作为从设备) 外部设备 PB12-SPI2-NSS------------ CS PB13-SPI2-SCK------------- CLK PB14-SPI2-MISO----NC PB15_SPI2-MOSI----------- data STM32作为从设备的时候,获取数据的接口为MOSI(PB15),STM32只需要从SPI接口获取数据,不需要发送数据,因此MISO(PB14)悬空。
[单片机]
STM32 内部时钟输出PA.8(MCO)
STM32的PA.8引脚具有复用功能——时钟输出(MCO), 该功能能将STM32内部的时钟通过PA.8输出. 操作流程: 1)、设置PA.8为复用Push-Pull模式。 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); 2)、选择输出时钟源。 时钟的选择由时钟配置寄存器(RCC_CFGR)中的MC
[单片机]
STM32最小系统组成详解
经常使用STM32开发的工程师对于它的开发环境的最小系统是必须要有所了解的,特别是硬件工程师在设计硬件的时候对这个最小系统就要更加的深入了解了,如果最小系统的搭建都有问题,那以后的使用很难避免不出现问题。 话不多说,进入正题说说STM32的最小系统的基本组成! 1、STM32最小系统硬件组成包括哪些? STM32的最小系统的硬件组成主要有:电源电路、复位电路、时钟电路、调试接口电路、启动电路。 电源 : 一般是3.3V输入作为STM32芯片的工作电压,实际中很多采用LDO将5V转换为3.3V进行供电,另外电路上还要加多个0.01uf去耦电容对输入电压进行滤波,稳定输入电压。 复位:STM32中有三种复位方式,分别
[单片机]
STM32学习之CAN控制器简介
1、STM32自带了基本扩展CAN外设,又称bxCAN,bxCAN的特点如下: 支持CAN协议2.0A和2.0B主动模式 波特率最高达1Mbps 支持时间触发通信 具有3个发送邮箱 具有3级深度的2个接收FIFO 可变的筛选器组(也称过滤器组,最多28个) 2、STM32 CAN控制器简介-模式 ①初始化模式(INRQ=1,SLEEP=0) ②正常模式(INRQ=0,SLEEP=0) ③睡眠模式(SLEEP=1) 测试模式 ①静默模式( LBKM=0,SILM=1 ) ②环回模式( LBKM=1,SILM=0 ) ③环回静默模式(LBKM=1,SILM=1
[单片机]
stm32如何在官网下载标准函数库
PS:st官网要求的是要登陆才能下载,所以大家需要先注册好一个st官网的一个账号 1、进入st官网 官网地址:https://www.st.com/content/st_com/en.html 2、找到stm32 3、选择标准函数库 https://www.st.com/en/embedded-software/stm32-embedded-software.html 4、选择你要下载的系列 5、说在后面的话 st官网的响应十分的慢,大家耐心等待
[单片机]
基于MSP430、STM32的2.4G无线游戏遥控器实现
历时7天,跨度两个多星期,才将微型四轴的遥控器调试好,中间除了备考两科考试,其余时间全在宿舍蹭网消磨青春,不得不说状态不好,实际上内心也极度的空虚。 之前将微型四轴的机体做好,迫不及待的进行了一下测试,天真的以为,飞机不用遥控器也可以,实际上我设想的是直接用手头的开发板对其进行简单的增减速,为此我还 特意为它写了一个触摸控制界面,只有三个触控点,一个加速,一个减速,一个停止,非常无聊。 后来发现,没有一个遥控器真的非常不方便,周六便去二手市场仅用5元便淘得一飞机遥控器,里面电池都还没用完,质量算上乘。这遥控器是红外遥控的,用手机看了下红外管,能够正常发光实际上,我当然最希望直接对现有电路进行一下线路修改就实现最方便了,事情
[单片机]
STM32快速入门教程
开发 编译的 软件 : IAR EWARM 4.42A JTAG工具: ST-LINK2(开发板自带) 开发板: 万利 STM32EK(199元) 建议 看的 资料 : 《STM32F10X-128K-EVAL MCU》 ST公司 STM32开发板的电路图 《STM32技术参考 手册 RM0008.pdf 或 STM32F103-CN.pdf 》 《Cortex-M3权威指南Cn.pdf》 《如何在IAR下使用STM库.pdf》 《STM32F10xxx_Library_Manual_ChineseV2.pdf》 《汉化STM32F的固件.rar》----网友: SUNKE9 《 netjob的BLO
[单片机]
STM32 TIMx 配置
固件库 V3.5 IAR void NVIC_Configuration(void) { /***********************定时器2中断**********************************/ NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;//使能或者失能指定的 IRQ通道 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;//设置了成员 NVIC_IRQChannel中的先占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority =
[单片机]