自制基于USB接口的ISP下载线

更新时间:2024-06-11 23:55:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

自制基于USB接口的ISP下载线

单片机爱好者在调试与制作单片机系统时,经常涉及到对单片机进行程序烧录,而专用的编程器价格不菲 ,使单片机爱好者望而却步。另外,在开发的过程中,程序每改动一次就要拔下目标电路板上的芯片,编程后再插上,这样做不仅会对目标电路板和芯片造成损伤,而且当程序需要升级改进时也是极其不便的。而ISP技术的出现使单片机DIY爱好者可以自制简易“编程器”(俗称下载线)。自己动手制作工具不仅可以增强自己的动手能力,而且还为以后制作、调试单片机系统带来了很大的方便,还能为今后进行设计与制作节约宝贵的时间。 早期的ISP下载线多采用串口或并口与PC机相连,这两种方式多存在以下问题。

(1) 用户PC机的主频 硬件和操作系统不同 可能会造成控制信号错误; (2) 不同厂商提供不同的ISP下载器,互不兼容,给嵌入式开发带来不便; (3) 限于串并口的通信协议,数据传输速率较低,影响嵌入式产品的开发。 除此之外,随着科技的发展,现在很多台式电脑已经没有并口和串口了,而且如今使用笔记本电脑的人越来越多了,由于大多数笔记本电脑都不带串并口,使得学习单片机比如说51或者avr很不方便。因为以前使用并口和串口的ISP下载线已经无法再继续使用了。然而现在无论台式电脑还是笔记本电脑提供的USB接口是足足够用的。

基于以上原因,本文提出了一种将单片机和USB总线相结合,进行ISP下载的方法,经过实际应用取得了较好的效果。本系统分为硬件和软件两部分,硬件平台主要由USB接口和单片机控制模块组成,完成对PC机通信和对目标芯片ISP编程。软件面向用户设计,由用户选择要下载的、已经编译成Hex文件格式的代码文件,然后向目标芯片下载程序代码,同时可以检测目标芯片型号、擦除目标芯片、从目标芯片读出程序代码等。

下面以ATMEL公司的AT89S51/52单片机为例 ,先介绍ISP技术的原理 ,再介绍 ISP在线编程器的实现方法。

AT89S51/52单片机的ISP引脚共有4个 :RST、MOSI、MISO和SCK。 各引脚的功能如下:RST为在线编程输入控制端,在ISP下载过程中保持高电平,在系统正常工作时该引脚为系统复位端,保持低电平状态。MOSI为主机输出/从机输入的数据端,系统正常工作时,该引脚为通用I/O P1.5口线。MISO为主机输入/从机输出的数据端。系统正常工作时,该引脚为通用I/O P 1.6口线。SCK为串行编程的时钟端,可实现主、从机时序的同步,该时钟频率不得超过系统时钟的1/16。系统正常工作时,该引脚为通用I/O P1.7口线。AT89S51/52单片机的ISP引脚功能如图1所示。

现在市场上出售的编程器大多数使用JTAG接口协议,并使用专用的IC,如74IVT8980、74LVT8990等与MCU配合实现高速的JTAG串行访问,成本较高。ISP技术则是实现JTAG接口协议的廉价方案。它仅使用74HC244做线路驱动,由计算机的并行端口引出I/O作为SCK、MISO、MOSI、RST信号线,通过编程软件控制信号的输入和输出,这样就可以实现单片机的串行编程。由于并口在SPP模式下共有3个端口——数据输出端口、控制输出端口、状态输入端口,各种下载电路究竟从哪个端口引出JTAG信号几乎都不相同。为了弄清楚ISP原理,下面先了解一下计算机的并行口。

(1)并口简介

计算机的并行端口工作在SPP模式,对它的控制是通过数据输出端口、控制输出端口、状态输入端口来实现的。并行口有25个引脚,其中包括8位数据线、5位状态线和 4位控制线。(端口地址是缺省的 LPT1设置;*表示此引脚有反向器)

数据端口(378H):D0~D7用于数据输出,可读可写。

状态端口 (379H):*S7(Busy)、S6(nAck)、S5(PE)、S4(Select)、S3(nError),只读。

控制端口(37AH):*C3(nSelin)、C2(nInit)、C1(Auto Feed)、C0(nStrobe),可读可写。

由此可知,用软件来控制计算机并行口的输入和输出即可实现对单片机串行编程。表1为并行端口定义。

由于计算机并行口的数据端口和控制端口可读可写 ,而状态端口是只读型 的,因此 RST、SCK、MOSI信号应该由数据端口或控制端口控制 ,MISO则由状态端口来控制 。本文中 RST、SCK、MIS0、MOS1分别 由计算机并行口的*C3(17引脚)、*CO(1引脚)、S6(10引脚)、*C1(2引脚)来控制。ISP电路原理图如图 2所示

现今比较流行的支持51和AVR系列的下载线是采用ATMEL公司的MAGE8单片机做的,其原理也就是通过软件编程的方式将USB接口信号转换为并口信号以实现ISP的。配套下载软件PROGISP1.6.6,可在智峰软件http://www.zhifengsoft.com/上下载。其硬件原理图如下图:

另外还有一种方案就是利用我们国产的南京沁恒公司的CH341A芯片将USB转为并口直接实现ISP编程。电路图如下图:

南京沁恒公司主页http://www.wch.cn/上提供有配套软件和驱动。

首先我们先介绍第一种方案的制作过程。

(1) 按电路图寻找对应元器件和万能实验板一块,准备元件大致如图

检查元器件是否完好,检查无误就可以根据原理图焊接硬件。

(2)在这一步制作前首先要搞清楚几点,第一,这个USB下载线本身就是一AVR单片机,在制作完成后首先也得通过其它并或串口ISP下载线给它下载程序,这样它才能工作。第二先得大概了解一下这个AVR单机机M8的基本资料。这样才能对电路有个了解,从而便于调试。

这一步主要是对下载线下载固件程序。固件程序可以在http://blog.ednchina.com上搜到。首先将两个跳线J1和J3连上,然后用其它的ISP编程器给它下载固件。下载好固件后还有一件事要做,就是对mega8配置熔丝位。因芯片ATmega8是AVR单片机,与51单片机不同,除了要给它下载程序外还要修改它的熔丝位才能正常工作。熔丝配置为外部高速晶体模式,即对CKSEL0编程(CKSEL0=0,CKSEL1~3=1)。SUT0也编程(即SUT0=0)。然后将J1和J3跳线断开,就可以使用了。熔丝位也可以用ISPlay修改,但注意在ISPlay中熔丝位选项中打勾表示的是“0”,空表示“1”。一定不要搞错!要不有可能会将芯片锁住,锁住就不能再用了!正确熔丝配置:

点击图中的“写入”即可!

(3)把你那下载固件及修改熔丝后的USBasp插到电脑USB口上,如果电

脑提示发现新硬件USBasp,恭喜你,你成功了!若你的电脑无法识别,则说明你的USBasp还有问题!请仔细检查电路、固件及熔丝位!

这个USB下载线烧写速度是很快的

烧写52情形:

烧写成功:

这个下载软件需要注意的是:

由于这个软件同万能烧写软件一样对于所有列出的融丝位都是开放操作的,因而要倍加小心。尤其不要将SPIEN位不编程即将钩号去掉。否则若没有JTAG使能芯片将不能再串行烧写而锁死。融丝配置时AVR器件要求:配置融丝位为未编程为“1”,已编程为“0”。

本文来源:https://www.bwwdw.com/article/a0p6.html

Top