产品选型

单片机isp接口 STC51单片机自动ISP下载电路设计

小编 2025-07-04 产品选型 23 0

STC51单片机自动ISP下载电路设计

51单片机可以通过ISP下载方式烧写程序,常用的工具为USB/TTL,常用的芯片有MAX232、CH340G等。下面介绍以CH340G芯片设计的ISP下载电路。

1. 51单片机程序下载原理

51单片机程序烧写接口为RXD和TXD,即UART口,这两个接口是通信口,配合不同的芯片可以实现不同的通讯方式。如果连接MAX232即可实现232通信,如果连接MAX3082即可实现RS485通讯。下载程序正是通过这两个接口来实现的。下载方式如下图所示。单片机的RXD和TXD要与USB/TTL设备的TXD和RXD交叉连接才能实现下载。

2. CH340G芯片介绍

CH340是一个USB总线的转接芯片,实现USB转串口、USB转IrDA红外或者USB转打印口。是一款比较成熟的国产芯片,价格在1.5元左右。

具有如下特点:

全速USB设备接口,兼容USB V2.0,外围元器件只需要晶体和电容。

仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串口。

计算机端Windows操作系统下的串口应用程序完全兼容,无需修改。

硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps~2Mbps。

支持常用的MODEM联络信号RTS、DTR、DCD、RI、DSR、CTS。

通过外加电平转换器件,提供RS232、RS485、RS422等接口。

支持IrDA规范SIR红外线通讯,支持波特率2400bps到115200bps。

软件兼容CH341,可以直接使用CH341的驱动程序。

支持5V电源电压和3.3V电源电压。

提供SSOP-20和SOP-16无铅封装,兼容RoHS

3. 电路设计

CH340G的下载电路如下图所示。

P2为USB接口,CH340G的TXD与单片机的RXD连接,CH340G的RXD和单片机的TXD连接。图中的CH340G用的是5V供电,如果用3.3V供电的话第4脚要连接到3.3V。由于STC51单片机在下载程序的时候要断电再重新上电,所以单片机部分的电源设计如下图所示:

为了实现单片机电源的断电再上电(注意:这里是指单片机的电源而不是整个电路的电源),在单片机的电源脚上加了一个X1跳线。

4. 使用效果

使用STC的软件STC-ISP来下载。

下载步骤如下:

执行到第4步,点击下载之后要将电路板上的X1断开再接上即可实现单片机程的下载。

本订阅号致力于单片机、ARM等嵌入式软硬件的设计经验分享,秉承“人人都是电子设计经验的分享者”的理念,成功路上不孤单,我们一起努力。公众号:micropoint8

AVR单片机应用经验

AVR与传统类型的单片机相比,除了必须能实现原来的一些基本的功能,其在结构体系、功能部件、性能和可靠性等多方面有很大的提高和改善。

但使用更好的器件只是为设计实现一个好的系统创造了一个好的基础和可能性,如果还采用和沿袭以前传统的硬件和软件设计思想和方法的话,是不能用好AVR的,甚至也不能真正的了解AVR的特点和长处。

功能越好的器件,需要具备更高技术和能力的人来使用和驾驭它。就象一部好的F1赛车,只有具备高超技术的驾驶员才能充分体会到车的特点,并能最大限度的发挥出车的性能。

AVR具有上手入门快,开发方便简单的特点,但要充分体会和发挥AVR的优点,还需要应用工程师本身的硬软件设计开发能力的不断学习、实践提高。

“外行看热闹,内行看门道”,对于有一定基础的嵌入式和单片机系统设计开发的工程师,不妨先简单尝试一下AVR。

开发环境与工具:PC+下载线+实际的系统板

PC上的开发软件:

AVR Studio(Free)汇编+汇编调试+高级语言调试+软件仿真

ICC、CVAVR、BASCOM-AVR 高级语言程序开发+程序下载。其中一个购买正版全功能,作为主要的开发环境,其它使用DEMO版,作为辅助及参考。

AVR ISP下载线:

STK200 and STK200+ and STK300 ISP programmer。通过PC的打印机口,采用ISP技术将系统运行代码(HEX、BIN)和数据写入AVR芯片的Flash和EEProm中,编程AVR的配置熔丝位和加密位。支持决大多数的AVR芯片、以及ATMEL的51兼容芯片89S8252、89S52等。在ICC、CVAVR、BASCOM-AVR、BASCOM-8051中都内含对该下载线的支持程序。免费专用的下载程序:SLISP、PonyProg2000等。

尽量不使用仿真器的建议:

在开发和调试系统程序时,有许多人完全依赖于仿真器,一旦离开了仿真器时就感觉无从下手。其实,由于AVR的Flash存贮器可方便的使用ISP技术在线的多次擦写,因此建议尽量不使用(依赖)仿真器来开发和调试程序。

在实际开发过程中,程序的调试可以从下几方面入手:

现在的高级语言编译器(如C编译器)可以产生效率很高的机器代码,因此建议大家尽量使用高级语言编写系统程序。

使用Atmel公司提供AVR Studio软件模拟仿真环境,以及其他的软件模拟仿真环境(BASCOM-AVR)。

尽可能使用高级语言编写系统程序。

利用目标板上的LED、LCD或异步串口。见附件“没有仿真器的情况下如何开发AVR”的介绍。

提高硬件设计的合理性:

尽量合理和充分使用AVR片内的资源,如EEPROM、A/D、内部的RC振荡源。

尽量采用串口通信连接的外围器件,大容量的存储器、LCD控制器、打印机、不用8279(LED数码管+键盘)而使用7279等。除了必须外扩RAM(如语音和图象),一般不提倡使用并行扩展(573+译码电路),减小硬件和连线以及PCB板上错误的出现概率,同时也提高了系统的可靠性。并行扩展向串行扩展是发展趋势。现在有大量的新的外围器件采用高速的串行接口,如A/D、D/A、RTC、存储器等。

尽量使用以及在目标板上预留ISP程序下载接口,或使用IAP技术。

优点:ISP接口与I/O的兼容性比JETAG好。

缺点:不能在线调试

注意和掌握AVR配置熔丝位的使用:

.系统晶振的选择

.BOD的使用

.启动延时

.Mega8的PC6引脚,RESET与通用I/O的转换

.JETAG接口和通用I/O的转换

.启动向量的转换,BOOT-LOAT区大小的设置

提高硬件可靠性的考虑:

.尽量采用片内晶体、采用低频率的系统时钟、振荡电路的输出小幅度。

.选择合适的启动延时参数

.使用BOD、片内的看门狗

.合理休眠方式的使用

.不用I/O口设定输出低电平

.利用内部的EEProm和寄存器MCUCSR判断复位标志,进行不同的处理

提高软件设计的能力和水平:

尽量合理采用高级语言设计编写系统程序。有许多人认为使用汇编写程序比较精简,而用高级语言开发会浪费很多程序空间,其实这是一种误解。对一个有经验的,而且非常熟悉某种单片机的汇编高手而言,他是能写出比高级语言更精简的代码。而对汇编不是很熟的开发者、或突然更换了一种新的单片机,您能保证一定可以写出比高级语言更简练的代码吗?

高级语言的优越性是汇编语言不能比的:

.程序移植方便

.程序的坚固性

.数学运算的支持

.条理清晰的结构化编程,程序的可维护性。

.可协同开发软件,开发周期短。

现在的高级语言编译器(如C编译器)已可以产生代码效率很高的机器代码,因此建议大家能用高级语言实现的程序尽可能使用高级语言写,在对速度和时序要求特严的场合可以采用混合编程的方法来解决。

更深入和全面的掌握各种串行通信协议的规程:

嵌入式系统目前以大量的使用串行接口外围芯片和各种通信接口,如RS232、两线(I2C)、三线(SPI)、单总线、USB、CAN、TCP/IP等。开发人员和程序员应了解低层协议,熟悉硬件怎样和如何实现低层协议,如何定义可靠的上层应用协议,以及低层协议驱动同上层应用协议之间的接口设计(中间层软件的实现)等。

硬件工程师的软件编写能力要提高,采用标准程序编写方式、完善的软件整体框架的设计、良好的数据结构和程序结构系统。(计算机软件专业的程序设计员对硬件不熟悉、大部分是在操作系统支持下编写软件,对低层接口和协议的驱动层以及接口也不了解,往往也编写不出好的单片机系统程序。)

通信接口的编写应尽量

.采用中断+缓冲区,

.分层+结构化设计,

.尽量不使用轮循方式(降低AVR的效率)。参见URAT(RS232)驱动+中间层软件示例。

采用好的系统设计模式:

尽量不使用传统的前后台(中断)系统设计模式,任务之间相互影响和干扰,无法定时操作。如设计一个采用动态扫描方式驱动的8位LED数码管显示+动态扫描的4*4矩阵键盘。

采用TimeTip+状态机设计+CASE结构,实现多任务并行运行系统设计方法。或时间触发式的系统设计。(见:《时间触发嵌入式系统设计模式》中国电力出版社 2004.6)

移植小型嵌入式操作系统,如UCOS-II。在网上有些免费的基于AVR的简洁的操作系统。

提高C语言的编程能力和软件应用水平:

熟悉和用好C中的数据结构体、指针应用、内存管理等较高级的应用。

熟悉和了解你所使用的高级语言开发平台的特点。这些平台是针对某一类处理器的,包含许多特殊的不兼容的语句和扩展的结构、语句、函数等。尽管使用方便,但由于其不透明性和时间的不确定性,因此要合理使用。如C中的getchar()、putchar()等。

AVR有多个开发平台,每个都有其特点和不足。能够综合使用这些平台,相互互补,能够提高开发效率。如通过ICC、CVAVR的程序生成器CodeWizard学习和了解AVR的硬件设置,简化计算,快速的生成程序基本模块,如“一个URAT(RS232)低层驱动+中间层软件示例”。

相关问答

单片机 里的 ISP 是什么意思?

ISP是一种单片机或其他可编程设备的编程方式。在ISP模式下,单片机可以通过通用串行总线(USB)或其他标准接口来与编程设备通信,进行固件更新、软件升级或其他...

usb转 isp 和ttl有什么区别?

USB转TTL模块的作用就是把电平转换到双方都能识别进行通信。单片机通信接口的电平逻辑和PC机通信接口的电平逻辑不同,PC机上的通信接口有USB接口,相应电平逻...

请问 单片机 开发板上的串口 接口 、USB电源接口以及外部电源接口的各个功能是什么?

串口接口的功能:1、与其他串口通讯2、下载程序(如果单片机有ISP功能的话)USB电源接口的功能:1、提供开发板5V电源(内部电源)2、下载程序(如果单片机...1...

isp 和jtag的区别是什么啊?怎么用啊?谢谢您?

ISP是(In-SystemProgramming)是在系统编程这里的系统指的是电路系统也就是说给芯片编程的时候不必将芯片移出其运行的电路系统JTAG是(JointTestActionGroup).....

单片机 ,什么是串行口,什么是并行口? - 珂珂珂的 的回答 - 懂得

两种接口都是用来传送二进制数据的接口形式。串行接口,一般有一根时钟线,一根数据线,一个时钟周期传送二进制1位,要传送一个字节至少需要8个时钟周...

单片机 主要技术指标?

(1)位数:是单片机能够一次处理的数据的宽度,有1位机(如PD7502)、4位机(如MSM64155A)、8位机(如MCS-51)、16位机(如MCS-96)、32位机(如IMST414).....

usb转 isp 不能用?

如果您的USB转ISP线不能正常工作,可能是由以下一些原因导致的:硬件问题:首先,请确保您的USB转ISP线的两端连接良好,并且USB接口和ISP接口都没有损坏。如果...

IAP单片机跟 ISP单片机 在使用上到底有什么区别?

ISP是在系统升级,一般来说只能做到重新上电后在一个单独的ISP运行过程中完成升级。IAP是在应用升级,要求更高一点,能够做到在应用程序运行的过程中完成升级。...

STC- ISP 版本6.85显示“正在检测目标 单片机 ...” 这-ZOL问答

STC-ISP版本6.85显示“正在检测目标单片机...”这考勤机科密科密C52讨论回答(4)你好,这个单片机烧写程序需要冷启动的。也就是说,在电脑上点下载,然后给...

现在 单片机 有了 ISP 功能,还买烧写器是不是落伍了呢?-ZOL问答

我用ISP写过单片机,效果远不如烧写器ISP是烧录器的简化的开发方式。在工程开发中,一些廉价芯片(芯片不具备ISP功能,有些也没有FALSH,只有EProm)和大量芯片编程...

猜你喜欢