
目录一、什么是一键ISP下载二、怎么使用FlyMcu下载程序对F407可能会下载不了二、怎么使用STM32CubeProgrammer官方工具下载程序还未尝试成功三、一键ISP是怎么实现的一、什么是一键ISP下载目前我们使用的野火霸天虎的板子自带串口下载电路所以配合上位机下载程序时可以不修改开发板的BOOT设置。ISP下载的方式与仿真器相比只能下载程序不能在线调试且下载速度慢。目前USB转串口芯片已经集成到板子上所以我们想要使用串口要先安装USB转串口驱动。硬件平台STM32F407ZGT6开发板如下其中1代表的就是USB转串口接口2代表的是RXD/TXD 通过跳冒接PA9和PA10连接图3表示的是BOOT引脚其中BOOT0和BOOT1默认接地。二、怎么使用FlyMcu下载程序对F407可能会下载不了FlyMcu上位机软件是基于232逻辑电平标准232电平标准与TTL电平的不同232 标准与 TTL 标准在逻辑电平上是相反的所以导致实际硬件上是 DTR 高电平复位 RTS 低电平进入 bootloader而上位机软件设置为 DTR 低电平复位 RTS 高电平进入 bootloader。二、怎么使用STM32CubeProgrammer官方工具下载程序还未尝试成功1、BOOT0接1BOOT1接02、USB转串口USB线接电脑开发板上电3、打开STM32CubeProgrammer连接方式选UART并选择端口号点击连接。此时我的因为之前用FlyMcu时芯片已经锁了提示这时STM32CubeProgrammer就能解锁它在连接之前勾选读出解除保护(目前还没有尝试成功)① 选择串口连接、 ② 用跳帽将 BOOT0 跳 3V3、 ③DTR 选为 1、 ④ 勾选 Read Unprotect(MCU) 解除读保护即可连接串口下载程序。连接过程也可能会失败确保 BOOT0 接 3.3V需要多重启板子或者重启这个软件试。三、一键ISP是怎么实现的还回到起初的问题这样跳来跳去的太麻烦而最优解--一键 ISP 需要做的事情就是用上位机去控制 BOOT0 脚和单片机的复位脚。由图可知一键ISP会使用到CH340芯片的DTR和RTS引脚来控制单片机的NRST和BOOT0。分析1、通过上位机控制U5CH340C的RTS引脚为低电平Q5导通BOOT0的电平上拉为高电平。上位机-U5 RTS低-ISP电路 Q5通-BOOT0高即RTS低BOOT0高2、通过上位机控制U5CH340C的DTR引脚为高电平由于RTS为低电平Q3导通U18的2脚为低电平U18是一个模拟开关使能端由 4 脚控制默认高电平 U18 的 1 脚和 2 脚导通所以 NRST 为低电平系统复位。上位机-U5 DTR高-由于RTS低所以U18 2脚低-U18已使能即1和2通1通NRST即NRST低 即DTR高NRST低3、单片机进入ISP模式此时可以将DTR 脚设置为低电平 RTS 设置为高电平。 Q3 和 Q5 为截至状态 BOOT0 和 NRST 还原默认电平。4、上位机将程序下载到单片机下载完毕之后程序自动运行。至此很多人还会认为 U18、 Q3、 Q5 是多余的用 U5 的 RTS 和 DTR 直接控制也可以。正常情况下这样理解没有问题但是我们忽略了一点就是单片机上电瞬间如果 USB 转串口连接了电脑 DTR 和 RTS 的电平是变化的如果不处理好单片机会一直进入 ISP 模式或者系统会复位多次这种情况是不允许的。于是就有了我们全新的一键 ISP 电路。我们主要是分析上电瞬间的逻辑关系单片机上电时我们通过示波器观察波形得知 DTR 和 RTS 的电平是变化的但是也有一个规律就是只要 RTS为低电平的时候 DTR 的电平也是低因此一般情况 Q3 不会导通但由于这两个 IO 口的电平存在“竞争冒险”会出现 RTS 的下降沿的时候刚好遇到 DTR 的上升沿这个时候 Q3 导通导致系统复位而 BOOT0 此时有可能也为高电平就会进入 ISP 模式。这个是不受我们控制的我们不想系统出现这样的情况。因此加入了模拟开关来切断这种干扰。加入模拟开关 U18通过控制 U18 的 4 脚的开关来达到隔离干扰电平的目的。下面我们分析一下延时开关电路上电瞬间电容 C1 通过电阻 R43 来充电由于电阻 100k 很大电容的充电电流很小等电容充电达到 U18 的 4 脚的有效电平 2V 时大概耗时 1S在这个 1S 时间内 U18的模拟开关是断开的因此 RTS 和 DTR 的干扰电平不会影响到系统复位。系统正常运行。