STM32系列单片机USB下载程序(ISP编程)

一. 准备

    1. FlyMcu 软件,选择DTR高电平复位,RTS低电平进入BootLoader

STM32系列单片机USB下载程序(ISP编程)_第1张图片

    2. 原理图增加USB转串口芯片(CH340G)

STM32系列单片机USB下载程序(ISP编程)_第2张图片

 二.说明

   

STM32系列单片机USB下载程序(ISP编程)_第3张图片

 

STM32三种启动模式对应的存储介质均是芯片内置的,它们是:
1)主闪存存储器 = 芯片内置的Flash。
2)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。
3)内置SRAM = 芯片内置的RAM区,就是内存啦。

一般情况,BOOT0为0,MCU从flash启动。
ISP模式下,先使BOOT0为1,BOOT1为0,再给MCU一个复位信号,四个clk周期后,MCU锁存BOOT0引脚的状态,此时MCU将从系统存储器启动,通过执行MCU内部固化的ISP下载引导程序,实现串口在线编程(必须通过USART1接收数据)。

三. CH340G时序

   1.  DTR #和 RTS#电平,使用万用表测量,在默认状态,DTR#和RTS#引脚均输出高电平,由上面的电路图可知,此时Q1截止,Q2截止,因此BOOT0为0,RST#为高电平,MCU可正常从系统存储器(主flash)启动。

   2. 启动下载时,DTR#维持高,RST#拉低,此时Q1导通,Q2导通,此时BOOT0为1,MCU复位脚拉低(有效),使MCU复位;
   3. 100毫秒后,DTR拉低,释放复位,MCU将从系统存储器启动,自动进入ISP模式,执行MCU内部ISP引导程序,MCU和MCUISP上位机下载软件进行通信(代码下载);
   4. 等到代码下载结束时,RST#先变成高电平,DTR再变成高电平,Q1截止、Q2截止,下载结束。
   5. 如果在MCUISP软件上选择“编程后执行”,DTR先变成高电平,使MCU的RST脚变低(复位),RST#再变成高电平,使MCU的RST脚拉高(释放复位),BOOT0为0,此时MCU复位后执行主flash程序,实现“编程后执行”步骤。

附CH340G引脚说明

STM32系列单片机USB下载程序(ISP编程)_第4张图片

    

 

 

    

 

你可能感兴趣的:(单片机)