单片机是一种可编程控制器,搭好硬件电路后,可以利用程序实现很多非常复杂的逻辑功能,与纯硬件电路相比,简化了硬件外围的设计、方便了逻辑的设计、丰富了逻辑的输出。不同厂家的单片机需要不同编程 IDE 来实现编程。在学习单片机之前,要先清楚单片机程序是如何烧写到单片机内部的,在烧写的过程中需要用到什么工具?因为不通用的烧写工具可能价格较贵,比如说 Micorchip 单片机使用的 ICD 系列编程器,单台价格在 600-1000 元人民币之间。今天和大学来认识一下单片机最常用的四种烧写方式和所使用到的工具。

 

1. 使用 JTAG 接口实现

JTAG 接口是一种标准的测试协议,可以实现编程时在线调试,利用单步追踪可以很方便的查找代码的 Bug,大多数的单片机都支持这种接口。这种接口除了电源线和复位引脚之外,还要用到单片机的四个引脚,分别是:TDI、TMS、TCK、TDO,他们所代表的含义如下所示:

 

TDI-- 数据输入,所有写入寄存器的数据都是通过 TDI 接口串行输入的;TMS-- 模式选择,Jlink 输出给目标 CPU 的时钟信号;TCK-- 时钟信号,所有数据的输入输出都是以该时钟信号为基准的;TDO-- 数据输出,所有从寄存器读出的数据都是通过 TDO 接口串行输出的;以上这四个引脚都是协议里强制要求的,而且协议建议在设计电路时要选用上拉电阻。JTAG 接口有多种形式,常用的 20 引脚、14 引脚和 10 引脚。以 20 引脚 JTAG 为例,所设计的 JTAG 烧写电路如下图所示:

 

 

上图中 JTAG 接口都通过电阻上拉了,有的单片机的这几个引脚在内部已经上拉,所以这几个上拉电阻可以省略,减少了成本和 PCB 空间的占用。

 

JTAG 接口烧录方式常用的工具为 J-Link,实物图如下图所示。

 

 

相信大家都见过或者听过这个烧写工具,这个工具很通用,但是大家在使用的时候一定要注意版权信息,因为这个工具是有版权的,前两年因为版权风波,网购平台还集中整治过一次。

 

2.SWD 接口烧录方式

SWD 是一种串行调试接口,与 JTAG 相比,SWD 只需要两根线,分别为:SWCLK 和 SWDIO。他们的含义如下:

 

SWDIO-- 串行数据线,用于数据的读出和写入;SWDCLK-- 串行时钟线,提供所需要的时钟信号;一般来说,大多数单片机的 JTAG 接口和 SWDIO 接口是复用的,SWD 也是用 J-Link 工具来实现的。所以在使用的时候,只需要在软件界面做一下选择,使用 SWD 方式还是 JTAG 方式,硬件上无需改动。除了 J-Link 外,意法半导体的 ST-Link 也是支持 SWD 模式的。

 

 

SWD 的接口如上图所示,可以看出,SWD 和 JTAG 是相互复用的,由于 SWD 只需要两根线所以大大减少了对单片机 GPIO 口的占用,SWD 方式也是可以在线调试的。

 

3.ISP 烧写方式,用 UART 实现

使用过国产 51 单片机的朋友都清楚这种烧写方式,这种烧写方式是通过单片机的 UART 串口来实现的,所需要的工具也比较简单 -USB/TTL。这个 USB/TTL 的芯片可以通过 MAX232、CH340G 等芯片来实现,通过 MAX232 实现的 UART 烧写电路如下所示:

 

 

在与单片机连接的时候,一定要注意交叉连接,所谓交叉连接即,单片机的 TXD 接串口 RXD,单片机的 RXD 接串口 TXD,否则数据通信失败。51 单片机在使用该方式下载时需要断一下点再上电才能下载。

 

STM32 单片机可以使用 UART 来实现程序下载,但是需要选择 BOOT 的模式,现在通过 CH340G 芯片可以实现自动 ISP 的下载方式,即不需要手动设置 BOOT 模式。

 

4.SWIM 单总线下载方式

这种下载方式是针对 STM8 系列的单片机,这种方式只需要一根线即可实现程序的下载,所使用的工具为 ST-Link,如下图所示:

 

 

以上为几种常见的烧写方式以及所使用的工具,欢迎大家留言评论,如果转载请注明作者信息和头条出处,感谢支持。