串口下载连接

单片机IO口的电平都是TTL电平,电脑通过USB连接出来的信号是USB信号,需要USB转串口的CH340芯片去转换。

1、ISP ( In-System Programming )在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。

2、ISP通过芯片内部的自举程序(即Bootloader,由芯片厂家烧写好,不得更改)来选定一-种串行的外设,对芯片内部的FLASH进行编程。

 

 

 

一、ISP 一键下载

USB 转串口估计大家都很熟悉,一般都是用到 RXD 和 TXD 这两个口,一键 ISP 电路中我们需要用 USB 转串口的芯片的 DTR 口和 RTS 口来控制单片机的 BOOT0 和 NRST,
原理如下:
1. 通过上位机控制 U6(CH340G)的 RTS 脚为低电平,Q1 导通,BOOT0 的电平上拉为高电平。
2. 通过上位机控制 U6(CH340G)的 DTR 脚为高电平,由于 RTS 为低电平,Q2 导通,U8 的 2 脚为低电平,U18 为一个模拟开关,使能端由 4 脚控制,默认高电平,U18的 1 脚和 2 脚导通,所以 NRST 为低电平系统复位。
3. 单片机进入 ISP 模式,此时可以将 DTR 脚设置为低电平,RTS 设置为高电平。Q1和 Q2 为截至状态,BOOT0 和 NRST 还原默认电平。
4. 上位机将程序下载到单片机,下载完毕之后,程序自动运行。
5. 至此,很多人还会认为 U18、Q1、Q2 是多余的,用 U6 的 RTS 和 DTR 直接控制也可以。正常情况下,这样理解没有问题,但是我们忽略了一点,就是单片机上电瞬间如果 USB 转串口连接了电脑,
  DTR 和 RTS 的电平是变化的,如果不处理好,单片机会一直进入 ISP 模式,或者系统会复位多次,这种情况是不允许的。
6. 于是,就有了我们全新的一键 ISP 电路。我们主要是分析上电瞬间的逻辑关系,单片机上电时我们通过示波器观察波形得知 DTR 和 RTS 的电平是变化的,但是也有一个规律就是:只要 RTS 为低电平的
时候,DTR 的电平也是低,因此一般情况 Q2不会导通,但由于这两个 IO 口的电平存在“竞争冒险”,会出现 RTS 的下降沿的时候刚好遇到 DTR 的上升沿,这个时候 Q2 导通,导致系统复位,而 BOOT0 此
时有可能也为高电平,就会进入 ISP 模式。这个是不受我们控制的,我们不想系统出现这样的情况。因此加入了模拟开关来切断这种干扰。
7. 加入模拟开关 U18,通过控制 U18 的 4 脚的开关来达到隔离干扰电平的目的。下面我们分析一下延时开关电路,上电瞬间,电容 C65 通过电阻 R18 来充电,由于电阻 100k 很大,电容的充电电流很小,等电容充电达到 U18 的 4 脚的有效电平 2V时,大概耗时 1S,在这个 1S 时间内 U18 的模拟开关是断开的,因此 RTS 和 DTR的干扰电平不会影响到系统复位。系统正常运行。

 

 

posted @ 2020-04-14 17:19  轻轻的吻  阅读(788)  评论(0编辑  收藏  举报