96SEO 2026-02-20 07:26 10
USB转串口芯片CH340C手动isp下载自动isp下载RTS、DTR电平变化分析注意事项

在嵌入式开发中使用STM32下载程序可以通过仿真器下载也可以通过串口下载。
在stm32串口下载时我们需要手动配置启动模式为了方便进行程序的更新和下载于是有了自动ISP下载电路。
本文将分享关于STM32自动下载电路的实现过程和原理。
Programming在线编程。
具有ISP功能的单片机芯片可以通过简单的下载线直接在电路板上给芯片写入或者擦除程序并且支持在线调试。
一般而言ISP都需要一些上位机来配合操作比如stm32常用的软件是FlyMCUmcu
isp软件。
对于stm32ISP下载又分为手动ISP下载和自动ISP下载。
对于stm32有几种启动模式需要配置。
系统存储器启动就是通过ISP下载。
我们可以查看stm32参考手册里面有关于启动模式的配置。
这里的启动模式怎么理解呢简单来说STM32的启动模式决定了芯片上电或复位后执行的操作启动模式前两种我们用的比较多这里主要讲解这两种启动模式我们可以简单理解为有两种模式。
第一种模式BOOT1X,
BOOT10BOOT01系统存储器被选为启动区域即系统引导模式。
系统引导模式允许从特定接口如UART、USB等加载新固件用于程序下载和更新。
这里我们可以看到对于前两种模式BOOT1的状态只要保持为0即可所以一般我们都是通过配置BOOT0引脚状态来控制单片机是下载还是运行。
STM32在启动时会检查BOOT引脚的状态以决定从哪个存储位置加载程序。
正常入口当你从主入口程序运行模式进入时你直接进入大楼开始进行你原本的活动运行用户程序。
特别通道如果你选择了侧门系统引导模式就好比你在大楼外进行一些特殊操作比如接收新的指令或进行维修程序下载。
通过选择不同的入口用户可以灵活地进入大楼并执行不同的操作就像通过设置BOOT引脚状态来控制STM32的启动模式。
本质上是单片机可以选择从不同的位置运行程序我们可以看下下面这张表。
系统引导模式有一段程序专门用来下载代码这段程序叫bootlaoder也叫自举程序存储在stm32的内部系统存储器中它的作用是接收串口外设发送的程序数据并放置到flash中运行的起始地址是0x1FFF
对于stm32f103c8t6属于中容量产品这也是为什么我们通常通过串口1的PA9、PA10这两个串口引脚下载程序。
现在我们对启动模式有了一定了解了我们再回过头看手册。
BOOT引脚的值将被锁存。
用户可以通过设置BOOT1和BOOT0引脚的状态来选择在复位后的启动模式。
也就是说BOOT引脚的状态在复位后第4个上升沿就固定下来不再变化。
对BOOT0和BOOT1的配置决定了系统将进入的启动模式。
所以我们可以说stm32
一是需要对BOOT进行配置二是需要进行RESET复位确保它从设定的启动模式重新开始。
STM32通常使用串口进行通信而大多数计算机只有USB接口。
USB转串口芯片能够将计算机的USB信号转换为STM32可识别的串口信号。
此外USB和串口之间的电平标准也不同因此isp下载需要USB转串口芯片来进行通信下载这里我们使用usb转ttl芯片ch340c来进行下载电路的设计我们先了解一下ch340c。
这里只对我们用到的几个引脚进行介绍VCC,V3,GND接电源正极和地根据实际情况外接0.1uf的退耦电容RTS#DTR#,DCD#,
这几个引脚为modem联络信号由计算机软件程序控制可以理解为通过上位机软件来完成联络信号的控制目的是控制单片机自动下载程序时所需满足的电压条件。
在STM32自动下载电路中我们只用到RTS#Request
Ready数据终端就绪两个引脚。
TXD、RXD是串行数据的输出发送、输入端接收
需要连接通信MCU的输入接收、输出发送端口UD、UD-连接typeC接口中对应的DD-。
普通isp下载不具有自动下载功能需要手动进行启动模式的配置因此也叫手动isp下载。
手动isp下载不需要用到CH340C的联络信号RTS#,
所以在下载电路中我们只需给CH340C供电连接typec对应的D,
RX连接到MCU的串口通信引脚就行了对于stm32f103c8t6前面我们讲过可以通过USART1接口启用自举程序所以这里串口芯片的TX
0进入bootloader按下复位按钮准备接收数据存储到Flash上位机开始发送程序单片机通过串口接收代码数据重新配置启动模式下载完成后BOOT0
可以看到每次下载程序然后运行程序的时候我们都需要手动配置BOOT启动模式对应在硬件上
就是每次都要切换跳线帽而且每次都要按复位这样子多少有点麻烦于是就有了自动isp下载电路。
自动isp下载电路可以实现自动下载就不需要去手动配置BOOT启动模式和每次都要按复位了那肯定是有其它电路控制实现这个功能了这个自动下载电路肯定要能在下载程序的时候自动配置启动模式和自动复位这就是我们说的实现自动下载电路需要满足的电压条件所以简单来说STM32自动下载电路的原理是基于单片机的启动模式和外部电路控制。
具体来说
启动模式选择STM32具有多种启动模式其中通过BOOT0引脚的高低电平控制单片机进入内置引导程序从而实现固件下载。
如果BOOT0为高电平单片机会进入下载模式允许通过串口接收新程序。
复位控制在下载过程中通过NRST引脚将单片机复位确保其处于可编程状态。
通常使用NPN晶体管控制NRST引脚的高低电平以实现自动复位。
通信接口USB转串口模块连接至STM32的TX和RX引脚负责与PC端进行数据传输。
通过串口发送的下载命令和数据将新的固件烧录到单片机中。
自动下载电路使用ch340c串口芯片时使用到了RTS#和DTR#两个联络信号引脚。
BOOT1固定为0BOOT10CH340_RTS输出低电平Q2导通BOOT0被拉高BOOT0
1进入bootloaderCH340_DTR1Q1导通NRST被拉低延时100ms延时后CH340_DTR拉低CH340_RTS维持拉低完成一次复位准备接收数据。
存储到Flash上位机开始发送程序单片机通过串口接收代码数据重新配置启动模式接收完成后CH340_RTS为高电平Q2截止BOOT0
0运行Flash中的代码接收完成后此时CH340_DTR为高电平Q1截止NRST恢复为高电平因此无法实现自动运行程序需手动按下复位按钮运行代码。
但实际上我们可以让它自动运行在软件上可配置“编程后运行”从主闪存0x800
基本上就可以实现一键自动下载代码并运行代码的效果了对比一下手动isp下载可以发现自动isp下载的过程实际上就是上位机软件通过控制DTR和RTS来实现对BOOT0和NRST(复位引脚)的控制。
值得注意的是FlyMcu软件底部有关于RTS和DTR高低电平的选择用的是RS232电平使用的是负逻辑和我们常见的ttl电平正好相反即0是高电平1是低电平所以在实际电路中是DTR#的高电平复位RTS#低电平进Bootloader在软件上应设置成“DTR的低电平复位RTS高电平进Bootloader”。
一开始采样的时候遇到一个奇怪的现象RTS#在下载过程中会有几微妙不稳定的抖动在产生抖动的同时DTR#也由原来的拉低变成拉高了根据我们前面的分析这个是有点问题的会多产生了一次复位这个复位好像是没有必要的。
后面分析既然是RTS#、DTR#的变化那就分析一下它为什么会变化而RTS#、DTR#是由上位机软件控制的所以猜想可能跟软件有关。
这个波形就很完美和我们前面分析的波形一致。
我们再来分析一下这个时序图。
STM32自动下载电路过程可以分为3个阶段下载前下载中下载后。
下载中上位机软件控制DTR为低电平RTS输出高电平此时DTR#输出高电平(3.3V)RTS#输出低电平(0V)NRST变为0V复位BOOT0为3.3V。
之后需要延时
100ms后上位机软件控制DTR为高电平此时DTR#输出低电平(0V)RTS#维持输出低电平(0V)NRST信号被拉高变为3.3VBOOT0为3.3V表示复位结束从系统存储器中运行。
下载后上位机软件控制RTS#、DTR#输出都为高电平恢复到刚开始的电平状态此时BOOT00V,
NRST维持为高电平3.3V单片机进入Flash等待复位启动程序。
如若在软件勾选“编程后运行”单片机将跳到主闪存存储器的地址0x0800
0000处开始自动执行代码此时的RTS,DTR等各电平变化和不勾选其实是一致的。
DTR#这里的“#”实际上就是取反的意思因为采用的是负逻辑所以实际上右侧的信息应为
下载程序时确保BOOT引脚配置正确。
如果下载后可以运行复位或重新上电后就不能运行可能和BOOT0的设置有关。
此外原理图中的BOOT0需要通过100K的电阻接到地。
使用usb转串口芯片时应采用适当的退耦电容如0.1μF以滤除电源噪声确保稳定工作。
软件配置RTS和DTR电平时使用的是负逻辑
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback