程序如何下载到单片机中?单片机常用的四种烧写程序方式介绍
单片机是一种可编程控制器,搭好硬件电路后,可以利用程序实现很多非常复杂的逻辑功能,与纯硬件电路相比,简化了硬件外围的设计、方便了逻辑的设计、丰富了逻辑的输出。不同厂家的单片机需要不同编程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
以上为几种常见的烧写方式以及所使用的工具,欢迎大家留言评论,如果转载请注明作者信息和头条出处,感谢支持。
「STC8A8K64D4开发板」——下载程序
开发板程序下载
内容
本文档描述使用宏晶官方下载软件STC-ISP给艾克姆科技STC8A8K64D4开发板下载程序的方式。
使用STC-ISP软件只可以下载HEX文件,不可以在线仿真。如需硬件仿真需选用STC带仿真功能的MCU在Keil软件上实现,仿真部分是在其他文档中介绍。
开发板程序下载
关于HEX文件和BIN文件
单片机可被下载执行的文件常见有HEX文件和BIN文件,一般HEX文件是我们更常使用的文件,HEX文件可通过Keil软件编译生成。
下面介绍下HEX文件和BIN文件的区别。
HEX文件是包括地址信息的,而BIN文件只包括了数据本身。烧写或下载HEX文件时,一般不需要用户指定地址(因为HEX文件内部已经包含了地址信息),而烧写BIN文件时需要用户指定烧录的地址信息。HEX文件和BIN文件大小不同,HEX文件是用ASCII码来表示二进制的数值,BIN文件是最纯粹的二进制机器代码。例如8-BIT的二进制数值0x4E,用ASCII来表示就需要分别表示字符‘4’和字符‘E’,每个字符均需要一个字节,因此HEX文件至少需要2倍BIN文件的空间。注:HEX文件都是由记录(RECORD)组成的。在HEX文件里面,每一行代表一个记录。记录的基本格式在此不做介绍。艾克姆科技提供的开发板配套例程中,都会单独通过文件夹“HEX文件”的形式把对应实验的HEX文件提供出来,方便用户直接下载(不需要再使用Keil软件打开例程源码编译生成HEX文件了),并观察实验现象。
举例,按照路径“...\第3部分:配套例程源码\1 - 基础实验程序\实验2-1-3:流水灯(多个c文件)”打开后,可以看到下图所示文件,找到HEX文件。
图1:查找提供的HEX文件
使用Keil C51生成HEX文件
本节以“...\第3部分:配套例程源码\1 - 基础实验程序\实验2-1-3:流水灯(多个c文件)”为例,介绍下使用Keil C51生成HEX文件的方法和步骤。
双击打开Keil C51图标,如下图所示。图2:Keil C51图标
点击Project,然后点击Open Project File,按照路径提示找到,“...\第3部分:配套例程源码\1 - 基础实验程序\实验2-1-3:流水灯(多个c文件)\led_blinky\Project”文件夹中的led_blinky. uvproj文件,操作步骤如下图所示。图3:Keil C51打开工程文件步骤
打开工程led_blinky后的界面如下图所示。图4:Keil C51打开工程文件
根据下面操作进入HEX文件的生成配置界面,如下图所示步骤操作。图5:配置Keil C51选项生成HEX文件
注:HEX文件生成路径设置为:“...\第3部分:配套例程源码\1 - 基础实验程序\实验2-1-3:流水灯(多个c文件)\led_blinky\Project\Output”。完成上述操作之后,回到主界面,按下图所示点击编译按钮生成HEX文件。图6:编译Keil C51
注:编译后,注意观察信息窗口输出的信息,若输出信息提示无错误表示编译成功。如果编译报错,则不会生成HEX文件,此时必须先解决报错问题。Build按钮:增量编译,编译工程中上次修改的文件及其它依赖于这些修改过的文件的模块,同时重新链接生成可执行文件。如果工程之前没编译链接过,它会直接调用Rebuild All。Rebuild按钮:全部重新编译。按HEX文件生成路径打开文件夹Output,可看到HEX文件已生成,如下图所示。图7:找到生成的HEX文件
使用stc-isp-15xx-v6.86u软件下载程序
STC官方针对STC单片机提供了专用的ISP下载软件,该软件版本会在官网上不断更新,STC官网:http://www.stcmcu.com/
开发板配套资料包里面已经下载好了stc-isp-15xx-v6.90D安装文件,安装文件的位置在开发板资料包的位于“...\第2部分:开发软件工具\ 2 - STC-ISP下载软件”目录下。
程序烧写的步骤包括配置STC-ISP软件参数、打开HEX文件和烧写,详细流程如下。
配置STC-ISP软件参数打开STC-ISP软件,主要设置项目如下图所示。
图8:配置STC-ISP软件参数
选择单片机型号开发板使用的单片机型号为STC8A8K64D4或者STC8A8K48D4,所有这里应该选择STC8A8K64D4或者STC8A8K48D4。
选择串口号选择开发板USB转串口枚举的COM口,可以在电脑的设备管理器中查看。
设置晶振频率这里是选择单片机内部时钟使用的,开发板例程是基于24MHz晶振频率来的,所以选择24MHz。若选择使用外部时钟时,除需软件配置相关寄存器外,还需焊接合适的外部晶振及负载电容(开发板预留有外部晶振焊盘和2个晶振负载电容焊盘)。
勾选“复位脚用做I/O口”勾选后,单片机P5.4口会作为普通的IO口使用。单片机默认使用片内的复位电路,无需搭建外部复位电路的。而如果去掉该勾选项,单片机P5.4口则被使能为外部复位引脚,此时P5.4口不再是普通IO口,而对开发板再次下载程序就需要使用外部复位电路给P5.4复位引脚复位信号以实现下载。本开发板有外部复位电路,需断开开发板J26端子的P54与TOUCH短路帽,同时,短接开发板J26端子的P54与RESET短路帽,实现外部复位下载,外部复位按键是红色按键S1。
勾选“每次下载前都重新装载目标文件”勾选后,每次点击“下载/编程”按钮,STC-ISP软件会重新读取选定的HEX文件。这一条在开发的过程中一定要勾选,否则,当我们重新编译程序后,生产的HEX文件内容已经改变,但是下载时仍然下载的是STC-ISP软件缓存的HEX文件,而不是重新编译生产的HEX文件。
打开待下载的HEX文件。如下图所示,点击“打开程序文件”按钮,在弹出的窗口中导航到HEX文件目录,选中HEX文件后打开即可。
图9:打开待下载的HEX文件
烧写点击STC-ISP软件上的“下载/编程”按钮,点击后,STC-ISP软件开始检测单片机并自动下载程序。下载完成后,信息窗口会提示下载成功与否,如下图所示。(如果开发板J4端子选择为了手动下载,我们需要按一下开发板上的下载按键S2来启动下载)
图10:自动冷启动下载
图11:手动冷启动下载
下载成功后,观察开发板,会看到指示灯D1、D2、D3、D4循环闪烁。以上下载程序是USB下载方式,如果使用串口RS232下载程序则只需连接开发板J12端子即可。图12:开发板下载口选择
常见问题及解决办法
串口打开失败报错
故障现象: 点击下载/编译后,弹出下图界面报错信息。图13:下载报错界面,串口打开失败
注:从下面三个方面解决问题。解决方法1:检查下USB线有没有连接上,有没有连接好。解决办法2:检查下CH340的驱动有没有安装好。解决办法3:检查下串口号选择是否正确,是否是连接到的开发板对应的串口号。忘记打开目标文件报错
故障现象: 点击下载/编译后,弹出以下报错信息。图14:下载报错界面,缺少目标文件
解决方法:打开程序文件,按照HEX文件存放的路径添加要下载到MCU的HEX文件。单片机型号不对报错
故障现象: 点击下载/编译后,单片机冷启动下载没有完成,弹出以下报错信息。图15:下载报错界面,单片机型号选错
解决方法:重新添加选择单片机型号,务必注意添加新的单片机型号后,要点击“打开程序文件”按钮,将HEX文件重新选中。相关问答
怎么用 usb 转TTL线给 单片机下载程序 ?找你的单片机的TXDRXD引脚,下载器的RXD接单片机的TXD,TXD接单片机的RXD,GND接单片机的GND,5V接单片机的5V的插针单片机(Microcontrollers)是一种集...
在keil中怎么设置通过串口向 单片机下载程序 -ZOL问答不能用keil作下载,它应该只是一个程序编辑和调试用的吧,用keil生成hex文件。下载时用专门的下载软件找到生成的那个hex文件就可以下载了。,有专门的单片机烧...
stc 下载 器如何接线到 单片机 ?STC下载器与单片机使用3线连接,其中:下载器的TXD接单片机P3.0(串口1的RXD端),下载器的RXD接单片机P3.1(串口1的TXD端),下载器与单片机共地,即短接二者GN...ST...
单片机 是 USB 接口的,只要是 USB 数据线都能当做 下载 线吗,还是需要专门的 下载 线啊, 单片机 入门不懂啊?问题描述的不是很清楚,有些单片机是需要专门的下载线的,USB口是给实验板供电的。当然绝大多数的下载器也都是USB接口的,也可以通过该下载器给开发板供电,只...
usbstc 下载 器如何连接到 单片机 ?stc是采用串口下载,一般是之需要电源、地、RXd、TXd。你说的5根线,可能还有复位吧,具体的连接当时要看你的下载线的接口的制作了。stc是采用串口下载,一般是...
我用充电宝给51 单片机 供电, usb 转串口给 单片机下载程序 ,这样行不行?为什么?可以的,只要共地就可以。把充电宝的地跟USB转串口的线的地相连,两边都是5V电压。我常这样分开供电,有时候比较方便。可以的,只要共地就可以。把充电宝的地...
At89s51系列 单片机 ,肿么从电脑上 下载程序 -ZOL问答这个单片机有ISP功能,所以可以用串口下载程序到单片机。你需要从Atmel的供应商那里索求下载软件。我觉得自己电脑通过isp下载线与单片机的isp下载引脚连接使...
单片机 与 usb 怎么连接?单片机与电脑连接一般有以下几种:1、RS232串口连接,这是最普遍的连接方式。2、RS232-usb,这种方式越来越受欢迎。3、JTAG--JLINK--USB(RS232),主要用于...
stm32 usb下载 是什么类型的?当然是留着给计算机通信的了!假如你要STM32海量传送数据到电脑上,但是串口太慢了,就需要使用USB了。当然这要在计算机上装对应的驱动。如果是F107、F207或者...
USB 接口怎么接51 单片机 最小系统的引脚的?求大神赐教?是STC单片机吧?买一个USB转TTL下载线或下载板,一端是USB接口,另一端是4个杜邦线插头,分别是串口接收、串口发送、地、5V或3.3V电源线,如果单片机开发板已有...