设计与开发

把程序下载到单片机 程序如何下载到单片机中?单片机常用的四种烧写程序方式介绍

小编 2024-10-13 设计与开发 23 0

程序如何下载到单片机中?单片机常用的四种烧写程序方式介绍

单片机是一种可编程控制器,搭好硬件电路后,可以利用程序实现很多非常复杂的逻辑功能,与纯硬件电路相比,简化了硬件外围的设计、方便了逻辑的设计、丰富了逻辑的输出。不同厂家的单片机需要不同编程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接口

上图中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,如下图所示:

ST-Link

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

单片机下载程序你了解多少?怎样自创Bootloader通信协议

单片机下载程序

很多人都知道单片机需要通过烧录器烧录程序,但并不知道单片机是怎样下载程序的,有下载程序朋友都知道,下载程序需要单片机重新上电,或者有个复位按钮,或者烧录线有一个RESET管脚。其实这些操作的就是要让单片机复位,单片机复位重启时先会进入固化好的BOOT程序,一般会停留一段时间,如果这段时间没有收到任何下载指令,就会从0000H开始执行跑应用程序。

DB9口下载程序

下载通信协议分析

采用Bus Hound工具来抓包分析。一般单片机下载支持至少一种的通信方式,SPI通信、I2C通信、USB、uart通信。 我遇到比较多的是选择SPI通信或者uart通信方式。我们选择STC单片机为例子,用串口下载。

下载程序上位机

上位机下载时首先每次都发送7F等单品机回应,若用回应,则接着设置波特率,若无回应,则超时退出下载,而单片机只有在复位重启的进入BOOT层时才会响应该命令。

抓数据包分析

我们以上抓取的数据进行分析,我们依然可以一样方法来能自创一套协议,来做Bootloader的开发,怎样做大家动动脑筋。后续会发表相关的文章!

相关问答

怎么 把程序下载到单片机 里?

不同厂商、不同系列的单片机,下载程序的方法也不一样。STC的单片机下载程序最简单,把单片机的串口两根线和地线连接到电脑的串口上,运行STCISP软件可以下...

学习 单片机 第一步:如何将 程序 (控制思想) 下载到单片机 中?

先在KILEC的optionsfortarget工具栏中的output选项下,nameofExecutable后面的空框里输入你要输出的文件名,然后在Create.Hex项的前面的小方格中打上“勾”,...

怎样把keil软件写的 程序 代码 下载到单片机 ?

1,keil中,需要把写好的代码程序生成HEX文件,在keil软件的菜单栏中的点击Project--Optionsfortarget选项。2,在Optionsfortarget对话框中,切...

怎样用keil软件 把程序下载到单片机 ?

keil是可以下载的,楼下的不知道别乱说啊。。。在compile,rebuild按钮的右边就有一个load按钮,那个就是下载的,需要jlink下载器,可能别的下载器也可以,但是...

用keil51处理好C 程序 后,如何将其 下载到单片机 上?

使用串口线接到电脑的9针串口,然后使用STC软件可以将HEX文件下载到单片机中去。如果你的程序只是源代码,那么必须用keil编译成HEX文件,才能使用STC软件。使用...

keil5.中的 程序 如何导入 单片机 ?

在KeilμVision5中,将程序导入单片机需要有以下几个步骤:1.打开KeilμVision5软件。2.创建一个新的工程:在“Project”菜单中,选择“NewuVisio...

l我用Keil uVision2编好的 程序 怎么 下载到单片机 里面去,我有t...

我用Kei摄像头环宇飞扬环宇飞扬2005讨论回答(2)用keil生成hex文件,在烧录器软件里选择对应的芯片,使用自动设置,点击开始。烧就行了!2条回答:烧就行了!

单片机 中运行的 程序 有哪些 下载 方法-ZOL问答

一种是通过用户自己编写程序与上位机通信(取决于你使用的通信接口了),更新程序,IAP可以的,单片机使用串口通信。keil在8.1上能用。能否发几张图片来使用IS...

通过无线方式如何给 单片机下载程序 ?

如果不是准备将来用单片机吃饭,请直接看第5条吧.1.请学好C语言,很重要!最好能在学单片机之前把C学到能比较流畅的写一个程序而不需要查看书如果不是准备将来...

单片机下载 器怎么连接单片机?

单片机下载器可以通过以下步骤连接单片机:1.首先,确认单片机下载器和单片机之间的连接接口类型,常见的接口类型有串口、JTAG、SWD等。根据单片机型号和下载器...

猜你喜欢