简要总结一下单片机下载程序电路
目前为止,接触单片机已有一些,从选择元器件、原理图、PCB、电路硬件调试、软件开发也算小有心得。
单片机软件开发里面第一步当属下载程序了,如果这一步都有问题,那么后面的一切便无从谈起,记得当初刚接触单片机时,对于下载电路方法及原理也是一头雾水。好在随着经验的积累以及自己的努力探求,现在对此问题算是有了点点自己的经验理解。故今天在此针对常用51单片机下载程序问题做下详解,以求新手们少走弯路。
原理:单片机的TXD、RXD是TTL电平,所以你得万变不离其宗的将其它信号转成TTL电平,只有这样给单片机下载程序才有可能成功!其中CH340、PL2303等芯片是直接将USB信号转换为TTL电平,而MAX232等芯片是将TTL转换为RS232信号或者将RS232信号转换为TTL.下面请看利用这种原理的两种常用方法:
方法一:
请看图一,这是我们最常见的单片机下载电路了,其中从②到⑥属于大家常用的USB转串口线,用这种方案的好处是,如果自己的PC带有串口(可能很老的机器没有USB接口),那么就可以直接给单片机开发板下载程序,因为采用这种方法的开发板必定带有串口接口嘛。当然,如果PC仅有USB接口而不带串口,那么只能找根USB转串口线了(其电路原理就是图中②到⑥),这里我推荐大家使用采用CH340芯片的USB转串口线,而不要采用PL2303的USB转串口线,因为PL2303价钱便宜所以山寨的水货较多,这会导致下载电路不稳定,甚至无法正常下载。同时此方案的坏处是电路板上必定要做一个9针串口接口(太巨大了),这必将增加了电路PCB的面积,当然也就增加了成本啦!(顺便发表下个人见解:那个9针接口实在太丑,又大又重,无形中便降低了自己的设计档次,哈哈。所以不推荐这种方法!)
方法二:
请看图二,这是我经常采用的单片机下载电路。实践证明效果非常好,几乎没出过任何问题!它的好处是只需要找根普通的USB2.0线(如图二中②)就可以下载了,比找根USB转串口线要轻松的多,同时由于将串口9针接口换成了USB接口,所以电路板的体积、重量也减少了不少,也显得更美观时尚,呵呵。在此强调一点:推荐使用CH340芯片(可以用CH340G,它引脚间距大很容易焊接)而不是PL2303,上文已说PL2303水货多,况且PL2303的外围电路比较复杂,这也给硬件电路的调试增加了难度。当然如果项目对成本特敏感,那么采用价钱相对较低的PL2303也无可厚非。大家看到没,图二的电路结构比图一要简化很多,那么是不是可以说明图二的性能比图一要更好呢?应该是吧!简单的结构出问题的概率当然更小了!
值得一提的是在使用CH340时,有些问题得注意下,因为很多同学反映用CH340下程序失败,但其实一般都很容易解决的。经本人总结常见原因有三:
1、某些CH340的引脚给单片机供了电导致单片机断电不彻底(下载程序要断电重启),从而导致程序没法下载。解决方案:在CH340的TXD引脚反向串联一个二极管(推荐肖特基二极管)、在CH340的RXD引脚串联一个约300欧姆的电阻。如此单片机可以彻底断电,问题解决!!(特别注意:此种情况不适用于STM32等芯片)
2、有些同学在给单片机供电时,为了防反接保护电路,在电源处串联了个二极管,由于二极管的正向压降导致单片机供电不足,从而导致程序无法下载。解决方案:将二极管用0欧电阻代替或者采用正向压降很小的二极管,以确保单片机的正常供电。
3、有些同学由于粗心将CH340的TXD引脚连接了单片机的TXD引脚,RXD引脚连接了单片机的RXD引脚,这自然不能下载程序了,一收一发不用多说吧,呵呵。解决方案:将CH340的TXD引脚连接单片机的RXD引脚,RXD引脚连接单片机的TXD引脚。
程序如何下载到单片机中?单片机常用的四种烧写程序方式介绍
单片机是一种可编程控制器,搭好硬件电路后,可以利用程序实现很多非常复杂的逻辑功能,与纯硬件电路相比,简化了硬件外围的设计、方便了逻辑的设计、丰富了逻辑的输出。不同厂家的单片机需要不同编程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
以上为几种常见的烧写方式以及所使用的工具,欢迎大家留言评论,如果转载请注明作者信息和头条出处,感谢支持。
相关问答
怎么样往芯片里写 程序 ? 单片机 是干什么的?-ZOL问答单片机是干什么的?讨论回答(5)给芯片写程序是根据芯片的烧写时序(学过数点就明白)来决定了的,至于烧录软件,网上也很多,常用的51单片机烧写软件是STC_ISP_V48...
想学习 单片机 ,有什么好的书籍推荐?五年之前那是在大学期间,距离现在大约有4年了吧,教我们单片机的老师要离我们而去了,因为她要去她的城市教书去了。怎么形容她呢?那是一个风度翩翩,很有才华...2...
求 单片机电路 采集380V交流电路电流信息的办法?采集端用电流互感器,然后互感器末端的输出信号通过一些限流措施加到ADC0809(模拟到数字)转换芯片的某个通道上,最后芯片的数据输出端接到单片机的I/O上就可以...
单片机 作用?1、单片机是是一种集成电路芯片,其专用于执行一个任务并执行一个特定应用,它包含存储器,可编程输入/输出外设以及处理器。单片机主要用于嵌入式应用,大量用于...
如何真正的“从零开始” 单片机 /电子设计?对于单片机与电子设计我认为要具备以下两个方面的素质,第一个就是要具备一定的模拟电路与数字电路的基础理论;第二个要具备一定的实践动手操作能力。看到这个题...
单片机 上怎么连线?单片机上连线方法一般单片机的外接按键有三种接法:1、每个I/O端口接一个按键:按键接另一端通常是接地,I/O口通常还应该接一个上拉电阻,有些单片机的I/O口可...
51 单片机电路 原理?51单片机的原理:1、51单片机由运算器、控制器、存储器、输入输出设备构成。2、51单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执...
单片机 蜂鸣器 电路 连接方式?单片机驱动蜂鸣器的电路形式很多,最常用的方式是用一只三极管扩流后驱动蜂鸣器,具体连接方式如下:单片机引脚通过一只5k左右的限流电阻接npn型三极管的基极,...
学 单片机 前,需要首先学好模拟 电路 、数字 电路 、C语言这些知识吗?严格来说,学习单片机前需要学好模拟电路、数字电路、C语言这些知识。不过这样的说法会吓住很多人,因为有相当一部分人对模拟电路、数字电路、C语言都不是很熟...
单片机 控制大电流器件,如何实现 电路 隔离?单片机控制大电流器件,如何实现电路隔离?单片机用在工业现场,出现异常状况多数是源自于干扰,造成程序跑飞、控制失灵,有时出现严重事故。根据题目说的,单...单...