原创 USBasp制作资料及全过程(菜鸟版)

2008-4-19 01:49 28264 9 31 分类: MCU/ 嵌入式

     正如圈圈所说,“在这个USB流行的时代,下载线也得要赶上时髦才行。并且现在很多电脑已经没有并口和串口了,以前使用并口和串口的ISP下载线已经无法再继续使用了,所以自己制作一个USB下载线已经刻不容缓”。本人这学期刚刚接触单片机,就因电脑没有并口而不得不自做一个,USB的下载线——USBasp。这是我平生第一次搞电子制作,前后碰到很多的问题,经过N次的“放弃”,得到众多网友的帮助,历经长达十天的时间才制作成功。谨以此文作为纪念,并以此感谢帮助过我的广大网友!倘若能帮到一两个像我这样刚刚接触单片机的菜鸟朋友,小弟将深感欣慰!


(以下部分内容摘自:boardID=117&ID=1022&page=1


一、usbasp 的一般性介绍:





    1、下载线是“ISP”(In System Programmability:“在系统编程”)或“IAP”(In Application Programing:“在应用编程”) ,都是“在线编程”的一种方式。



这里的 usbasp 下载线,则是指 利用ATMega8芯片,模拟USB接口、并控制下载过程的一种电路单元;主要适合于AVR系列芯片的程序下载(读写),现在使有网友改正的固件可以用于S51,S52系列芯片的程序下载(本人就是用于给AT89S52下载 )。



fischl_de usbasp usbasp下载线的鼻祖”,已经连续推出了多种版本。其网页链接是http://www.fischl.de/usbasp 如果您有兴趣深入,该网页上有源程序可以参考……



2、usbasp 由于不需要电脑串口或并口,仅使用电脑USB接口,所以具有一定的实用价值;国内亦已进行了不少的仿制和改进。比较集中的讨论,可以去 ouravr 网站了解:



http://www.ouravr.com/bbs/bbs_list.jsp?bbs_id=1000



3、usbasp 下载线可以适用的MCU芯片,和usbasp本身的固件(控制程序)以及配套使用的电脑软件相关。譬如,下面具体介绍的 usbasp的固件,就增加了对于89s51/89s52芯片的支持。


 


二、usbasp 的电路图:


以下是网上常见的电路图 :



1fischl_de usbasp 提供的“公版”电路图(2007-07-23/2007-10-23)


点击看大图


这个公版电路和以前的公版电路的区别,是在其USB接口的数据线上,增加了两个3V6的稳压二极管D1/D2;以便于更好地和电脑的USB接口的信号线电平匹配,提高 usbasp 下载线的适应性

2。改进版usbasp


点击看大图  pdf


以上改进版usbasp由zhifeng在www.zhifengsoft.com中提供。


3. wxf 实际制作用的电路图:


点击看大图pdf


在上面的电路里,包含了最新“公版”电路图的基本因素。



特别注意:上面两个电路图的ISP输出端子定义,是不同的——实际制作的电路图,和BBMV并口下载线(原则上)兼容。


 


4。本人自做的电路图跟以上“改进版usbasp”基本相同,也是来自网上,因网上有相应的PCB图,懒于自己动手,于是稍做改动而用之(将原来的母口USB改为公口USB)。(本人自己也画过PCB图,但不理想!)


 


点击看大图rar


以上压缩包中包含本人制作时用的原理图和PCB文件(已改)。


 


三、制作过程


1.跟椐上面的资料制作电路板并焊上元件。


 


2。给ATmega8芯片下载固件及修改熔丝位!


  说明:1).如果你跟我一样,第一次接触单片机,还不知道固件为何物,那我告诉你固件就是一个单片机程序,也就是你在下面的地址中下载 的压缩包里面的.hex文件,如:3951918b-de8f-4151-b1dc-ab92ec9cf3d4.jpg。因为你用来做USB下载线的芯片ATmega8本身就是一个单片机,需要下载程序(固件)才能工作。可使用编程器下载,也可以用并口的下载线对它在线编程。本人就是用并口的下载线配合ISPlay在线编程的!


2).网上的USBasp固件版本很多,一般来说用新版本的固件较好,老版本不支持S52、S51的下载。新版本一般可自动调节速度(电路图中的调速跳线可不用)并支持s51、s52的下载。特别推荐用billowtust改写的固件,不但可自动调节速度,支持s51、s52的下载,还解决了因复位电容太大而在在线编程时出现“chip enable program error!”的问题。


下载地址:http://blog.ednchina.com/billowtust/102317/message.aspx


 


3)、因芯片ATmega8是AVR单片机,与51单片机不同,除了要给它下载程序外还要修改它的熔丝位才能正常工作。关于熔丝位改法网上有多种不同的改法,本人也不刚接触单片机,还不知道其中的原理(如果你知道的话还请你教教我),只知道按圈圈介绍的改法是可以正常使用的:”首先将两个跳线J1和J3连上,然后用其它的ISP编程器给它下载固件。下载固件后,还要配置熔丝,配置为外部高速晶体模式,即对CKSEL0编程(CKSEL0=0,CKSEL1~3=1)。SUT0也编程(即SUT0=0)。然后将J1和J3跳线断开,就可以使用了“。(引自圈圈的BLOG:http://blog.21ic.com/user1/2198/archives/2008/45205.html ”J1“.”J3“是改进版usbasp中的”J1“、“J3”,不同版本电路图可能标号不同,注意区别)


熔丝位也可以用ISPlay修改,但注意在ISPlay中熔丝位选项中打勾表示的是”0“,空表示”1“一定不要搞错!要不有可能会将芯片锁住,锁住就不能再用了!本人就锁坏了一片。


正确熔丝配置:


       094b8801-1e74-42c9-a3c1-e41677f18de0.jpg


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


 


把你那下载固件及修改熔丝后的USBasp插到电脑USB口上,如果电脑提示发现新硬件USBasp,恭喜你,你成功了!!若你的电脑无法识别!则说明你的USBasp还问题!请仔细检查电路、固件及熔丝位!


特别提醒:需要确保您的电脑的USB接口是完好的;确保您的USB延长线的质量是可靠的——最好是直接插入电脑后面的USB插座里


 


3.驱动


usbasp 下载线在使用之前,必须先安装(usbasp)驱动程序:




    usbasp的驱动程序,包含三个文件:libusb0.dll、libusb0.sys、usbasp.inf,需要先行拷贝到电脑里某个合适的子目录里的一个文件夹里;

     驱动下载:

               rar


 


 


    正确安装:正常安装了usbasp驱动程序的电脑系统的结果是:

图片点击可在新窗口打开查看
        


 


    4。配套下载软件PROGISP1.6.6:


      下载地址:www.zhifengsoft.com


     


         给S52下载时的配置:


           点击看大图


 


                 14b4bbb3-fd89-474b-8866-69a14cd3119d.JPG 


 


至此:你就可以跟我一样用 自己做的USB下载线给自己的单片机下载程序了!!


 


 


 


附:本人制作USBasp的全部资料:rar(含 原理图、PCB、固件、驱  动、熔丝设置、说明……)


 


 


 


    最容易出的问题!


 


    1)。电脑无法识别!


 


      若你的电脑无法识别!则说明你的USBasp还问题!应该仔细检查电路、固件、熔丝位、电脑的USB接口是完好的、确保您的USB延长线的质量是可靠!如果你用的是改正版电路,可以在USB的D-、D+与GND之间加上2个3.6V的稳压管试试。


 


    2)。“chip enable program error!”。


    若电脑已以识别,并正常安装了驱动。但用它下载程序时提示“chip enable program error!”。可以肯定你的USB下载线已经没有问题了!这时应该检查你的目标板是否有问题!连接USBasp与目标板的连线是否有问题,连线是否太长(最好不要超过30CM)。还可以用我推荐的billowtust改写的固件试试看!


 


说明:


 


从网上看到好多人在说usbasp的稳定性问题,下面讲讲我的经验,不妥的地方请各位指正。 


1.


  需要确保您的电脑的USB接口是完好的;确保您的USB延长线的质量是可靠的——最好是直接插入电脑后面的USB插座里。


 


2.


有可能会有极少数的电脑(你的电脑应该不是,如果真那么巧你就可以去买彩票了^_^)不能使用 usbasp 下载线——无法正常安装 usbasp 驱动程序和进行正常的下载进程。


3. 由于avr模拟usb对时序的要求很高,对于晶振包括谐振电容,走线就应有一定的要求,如果选择搞得不合理,就会造成工作起来不稳定,比如装不上驱动,装上驱动后,在通讯时少量数据不会出错,大量数据时就会出错。如果是连接正常后,在下载数据时出错就可能是这个原因。 
 4. 由于usb电源标准是3.3v这样选择D+,D-上的三个电阻一定要合适否则可能也会出错。从原理上说只要遵循usb1.1协议的主机接口都可正常的与usbasp通讯,否则的情况其他的硬件实现的usb设备也不能通讯。


 
 5.熔丝的配置一定要正确。


 


6.有问题可以回帖讨论


 


 


l        参考资料:


电脑圈圈:


http://blog.21ic.com/user1/2198/archives/2008/45205.html 

billowtust's Blog




http://blog.ednchina.com/billowtust/102317/message.aspx




 

快活单片机论坛:

http://www.luckymcu.com/dispbbs.asp?boardID=117&ID=1022&page=1





 AVR (原ourAVR.com) 技术论坛】:ISP专栏 





http://www.ouravr.com/bbs/bbs_list.jsp?bbs_id=1000&sub_kind_id=1210





 长汀无线电厂交流论坛GandF: http://ctwxdc.512j.com/viewthread.php?tid=21662





   zhifeng


 www.zhifengsoft.com





鸣谢:


  

  特别感谢下列网友在我制作USBasp过程中对我的帮助

 

  1.电脑圈圈

 

  2.billowtust

 

  3.快活烝

 

  4.wxf

 

  5。zhifeng

 

  6。ouravr上的广大网友







 

 


 






 


 


 


PARTNER CONTENT

文章评论22条评论)

登录后参与讨论

用户377235 2013-9-13 09:51

我想问那个DP10那里为什么要连接到串口呢,那个是起什么作用的呢?

用户377235 2012-11-5 17:06

熔丝位还是写得不清楚要怎么配置,熔丝位有低位、高位、扩展位、加密位,那些都默认吗?楼主写的只是配置了低位,我试过都不行,楼主能否把熔丝位的配置配好的截图上来方便探讨,我试过了几个都不行,全都锁死了,用不了了,手头上又没高压编程器,那几个只能废了,真可怜。

用户377235 2012-7-15 23:23

没看出J2跳线起什么作用,烧写程序时难道还会读PC2管脚的状态?

用户1686563 2010-8-2 16:44

ATEMG48都可以看我做的 http://item.taobao.com/item.htm?id=5080460574

用户4239 2010-2-7 20:53

请问用mega88可以吗?

用户1295907 2010-1-23 23:02

可否把熔丝位设置,写的详细些?图上所示只是说的部分.我按楼主给的PCB所做,就是无法识别,加了那2个稳压管,测量下D-电压1.9V,想不通怎么会是1.9V.shilin105@126.com

用户562482 2010-1-20 18:50

我想问个固件烧写问题,就是能不能用手头上另一个USB-ISP下载线完成烧写呢??我试了好久都没反应

用户228857 2010-1-3 01:07

我在网找了一夜如何把源文件烧入ATMEGA8中 看到你这编 我高兴之下从头看了几篇 没有发现如何把程序烧入ATMEGA8中心中有些失落了 请问一下你是如何用下载线和ATMEGA8联接的是什么下载线。能不能帮助一个失落的人完成这份好奇心。能不能发一份下载线和ATMEGA8联接图 在这里等待你的消息。。。。。。

用户209403 2009-8-24 08:36

好像有的附件下不了,不知道会不会有影响

用户204041 2009-6-10 08:55

谢谢大哥 小弟也照你说的做了一个 现在有个问题::我用的是改进版电路 然后我加了俩个稳压管 现在我的USBASP能发现硬件了 但装不上驱动 不知道为什么 帮帮小弟解答一下
相关推荐阅读
用户138208 2008-05-16 01:02
整理:Protel常用元件库
湖北师院物理系电信专业实验室田开坤(整理)的Protel常用元件库。         包含74系列,CMOS系列,存储器,单片机,杂元件,ADC,数码管,定时器等等,中文名称,特别实用。 ...
EE直播间
更多
我要评论
22
9
关闭 站长推荐上一条 /3 下一条