1. 使用JTAG接口实现
JTAG接口是标准的测试协议,可以实现编程时的在线调试。 单步跟踪可用于轻松查找代码中的错误。 大多数微控制器都支持该接口。 该接口除了电源线和复位引脚外,还使用了单片机的四个引脚,分别是:TDI、TMS、TCK、TDO。 它们的含义如下:
TDI——数据输入,所有写入寄存器的数据都是通过TDI接口串行输入的;
TMS——模式选择,Jlink输出时钟信号给目标CPU;
TCK——时钟信号,所有数据输入输出均基于该时钟信号;
TDO——数据输出,所有从寄存器读取的数据都通过TDO接口串行输出;
以上四个引脚在协议中是强制的,协议建议在设计电路时使用上拉电阻。 JTAG接口有多种类型,常用的有20针、14针和10针。 以20脚JTAG为例,设计的JTAG编程电路如下图:
JTAG接口
上图中,JTAG接口通过电阻上拉。 一些微控制器引脚已经在内部上拉,因此可以省略这些上拉电阻,从而降低成本和 PCB 空间占用。
JTAG接口编程常用的工具是J-Link,实际图片如下图所示。
Jlink实物图
相信大家都见过或者听说过这个编程工具。 这个工具的用途非常广泛,但是大家在使用的时候一定要注意版权信息,因为这个工具是有版权的。 近两年,由于版权争议,网购平台也集中整顿。 一次。
2.SWD接口烧录方法
SWD是串行调试接口。 与JTAG相比,SWD只需要两根线:SWCLK和SWDIO。 它们的含义如下:
SWDIO——串行数据线,用于读写数据;
SWDCLK——串行时钟线,提供所需的时钟信号;
一般来说,大多数单片机的JTAG接口和SWDIO接口是复用的,SWD也是使用J-Link工具实现的。 因此,使用时只需在软件接口中做出选择,是使用SWD模式还是JTAG模式,无需更改硬件。 除了J-Link之外,意法半导体的ST-Link还支持SWD模式。
SWD接口
SWD的界面如上图所示。 可以看出SWD和JTAG是相互复用的。 由于SWD只需要两根线,大大减少了单片机GPIO端口的占用。 SWD方法还可以在线调试。
3.ISP编程方式,用UART实现
使用过国产51单片机的朋友都知道这种编程方法。 这种编程方式是通过单片机的UART串口实现的,所需的工具也比较简单——USB/TTL。 该USB/TTL芯片可以通过MAX232、CH340G等芯片来实现。 通过MAX232实现的UART编程电路如下:
UART串口编程电路
连接单片机时一定要注意交叉连接。 所谓交叉连接是指单片机的TXD与串口RXD相连,单片机的RXD与串口TXD相连,否则数据通信会失败。 使用这种方法下载时,51单片机需要断电一段时间才能下载。
STM32单片机可以使用UART下载程序,但需要选择BOOT模式。 现在通过CH340G芯片可以实现自动ISP下载方式,即无需手动设置BOOT模式。
4.SWIM单总线下载方法
此下载方法适用于STM8系列单片机。 这种方法只需要一行就可以下载程序。 使用的工具是ST-Link,如下图:
意法半导体
以上是几种常见的编程方法和使用的工具。 欢迎大家留言评论。 若转载请注明作者信息及标题来源。 感谢您的支持。