历史上的今天
今天是:2025年02月03日(星期一)
2020年02月03日 | 单片机USB-ISP下载线制作详细教程
2020-02-03 来源:elecfans
现在的笔记本包括台式机都渐渐地舍弃了并口、串口;很多网友也跟我说,台式没有并口了,下载线没法用了,让我帮他想想办法。看来做个USB-ISP下载线是势在必行了。
在网上搜了下,主要有两种方案,一种是用FT245串口芯片加ATMEGA8的方案,另一种是只用ATMEGA8进行USB串口协议的软件模拟和ISP下载全部完成。据说第一种稳定,但成本高,电路复杂,不便自制。我们还是本着低成本,简单易做的原则进行。就用单个M8来做。
好!废话少说,干活。在网上搜了一下找了个BUG少,易于自制的图。

在制做前首先要搞清楚几点,第一,这个USB下载线本身就是一AVR单片机,在制做完成后首先也得通过其它并或串口ISP下载线给它下载程序,这样它才能工作。第二先得大概了解一下这个AVR单机机M8的基本资料。这样才能对电路有个了解,从而便于调试。因此,你原先用的并口ISP下载线在这里还得起着关键的作用,可别扔掉啊!我图示一下这个过程先:

接下来按上述图的要求准备元件。

元件准备好后,先得检测下质量,电阻的阻值、发光管的极性、电容是否有短路。要测试下两个稳压管的稳压值是否正确。最最重要的是先把USB接口用延长线接到PC上,然后用万用表测一下正极在哪,做个标记,这样就能搞清楚了D+、D-的位置,也不会接反电源了。免得焊好后发现错了极性反复焊,焊盘很容易脱落,也避免接反烧了元件。(我开始用的是USB公头接口,后来发现在板子上吃不上劲,稍一用力很可能会松脱。所以换成母口了)
电路图我整理了一下,因为有的元件不需要,有的为了方便检查,避免漏连了线。

焊接过程就没什么好说的了,不是PCB板,是洞洞板的,在事先大概做个布局(布局原则就是减短引长度,跳线尽量少。好像我做的跳线并不少哦!)然后就按照上面的电路图焊接,完成后如下图,感觉是不是还不错?:


再来张反面吧,有点惨不忍睹吧!

在调试前也还得先弄清几个问题:
第一、电源题:原先的并口下载线是靠S51板上来供电的,也就是说当你焊好你的USB-ISP板后给它装固件时,USB-ISP板得向原并口下载线供电,而固件装好后USB-ISP板就是靠PC的USB口向我们的USB-IS板供电了,而你以后的51实验板就不能向这个USB-ISP板供电了,否则PC和51实验板都向USB-ISP供电,那么电压不同就有可能烧坏PC口或元件的。因此J2跳线就是为了区别装固件和正常下载而使用的。装固件时另附电源加在USB-ISP上,J2短接,可以过J2口向原来的并口下载线供电。当正常使用时,USB-ISP板上的附加电源撤掉,由PC的USB口供电,将J2断开,隔离开USB-ISP板和51板电源。

J1是降速跳线,短接时慢速,在装固件时要求在慢速下。J3是M8复位跳线,装固件时要求M8在复位状态。正常使用时就断开这三个跳线了。
第二、ISP接口问题:得弄清下载接口的对应接线,MOSI、MISO、RST、SCK要一一对应不能弄错。也就是说你原先并口下载线的并口各功能线接到十针的ISP接口和USB-ISP下载线的接口要对得上。例如我的51板是自己做的,上面的十针下载接口是我自己随意接的没有按照什么标准。因此我做并口下载线时,就将并口下载线上的各功能线与51板上的一一对应,这样就能调试通。现在做USB-ISP下载线还是一样,得按照我自己的十针接口方式,只要各功能线准确无误地对上就好。
J1是降速跳线,短接时慢速,在装固件时要求在慢速下。J3是M8复位跳线,装固件时要求M8在复位状态。正常使用时就断开这三个跳线了。
不同的PC端下载软件对并口脚的定义是不同的,这一点一定要弄清楚,否则是不可能正常下载的。有的软件有配置文件,可以跟据你的要求设置并口的某个脚为什么功能。如ISPLAY 1.5。它的配置文件如图:

你可以通过修改这些MOSI、MISO、SCK、RST、OE、LE等功能输出的并口脚号以适应你的下载线。
我的原先并口下载线用的是官方的一张图:

它的配套PC端下载软件ISP-30A是不能自己设定并口引脚号的。界面如下图。

好!下面开始调试,检查USB-ISP下载板没有连错线或短路现象。将USB-ISP下载板的三个跳线短接,接上外加电源,测量电流为6mA,应该没问题。将原先的并口下载线的并口端接至PC,将十脚ISP接口端与USB下载板对接,测量并口板上的电压已正常。如下图:(我这是示意图,因为在房子里插上PC光线不好,照得不清楚)

此时USB下载板上的发光管是不会亮的,因为它里面没有程序还无法运行。开始进行下载。在PC上运行ISPLAY1.5如图:

事先我将配置文件Pin_config.ini内的各功能线已修改为和我的并口下载线相同的脚号。在左下角的“程序设置”里选好那个配置文件。点击“检测器件”钮,但始终检测不到器件,如上图。我想我的并口下载线肯定是好的,一直在用啊!难道配置文件不起作用?或那个LE控制时序和我那个板上的要求不同?干脆用那个我一直使用的ISP-30A试试吧!于是将它运行。因为是要给ATMEGA8下载程序,所以在器件选项里选MEGA8。

果然,我点了下Read,居然能正常读取了,于是我点Open file然后选择网上下的那个11K大小的main.hex,点击Write接下来就是写程序和校验一切OK。然后点击Fuse Bytes(熔丝字节),在下图的SUT0和CKSEL0前点上勾,

然后回到主界面点Write LBs。当写完之后我把三个跳线一拔,绿色发光管已经亮起,说明M8的程序运行了。这样我的USB下载板的固件就算装好了。
将USB下载板从并口下载器上拔下,我去掉附加电源后将它插到PC的USB口上,立即就发现了新USB设备,一切没有悬念,安装驱动程序一路正常(这部分软件的使用网上已写的很详细,我就不重复了),PC告诉我设备可以使用了。我将我的51板和USB下载线连上

运行PROGISP1.6.6

一阵狂喜过后我在“编程器及接口”下的选择框中选USBASP,在“选择芯片”里选AT89S51。
点击“芯片识别字”右边的RD钮,哦!可就是检测不到器件如下图:

弹出这个窗,说明USB下载线是正常的了,就是检测不到51目标板。莫非是ISP连线太长?我又做了根只有10CM的ISP连线,但状况依旧。
突然想起网上说起过用修改过的固件可以针对51板出现的Chip Enable Program Error。立即上网找来那个18K大小的USBISP.hex,重做刚才的下载工作,一切顺利,再运行PROGISP1.6.6
哈哈!检测到51器件了,

特征字不匹配,不管它了,先点击“是”。于是便试着点击“读出Flash”钮。成功!
我接着点“调入Flash”选择一个我以前的HEX文件,点击下面的自动,红色的发光管在不停地闪烁着,我开心啊!
然而在写完后校验时却总通不过,汗!

是下载线太长不稳定?就剩10CM长了,难道真的天都不可怜我吗?在一阵无助的胡乱操作中,突发奇想选AT89S52试试。
这一试不要紧呀!居然成功啦! 反复下载不同的程序,一切都OK。
再换上我那长40CM的ISP连线,反复下载程序试验,你猜怎么着?不要太稳定哦!
至此大功告成!
总结:
下载固件时,如果你原先的并口下载软件支持ATMEGA8。最好就用你一直使用的并口下载软件。这样可以先排除并口下载线上的问题。
遇到问题多试试几种操作,不要轻易放弃。
还有就是这个PROGISP1.66是不是有BUG?明明是S51,偏偏要选S52才能正常读写。还有那个ISPLAY1.5,估计不是配置文件不起作用就是那个LE的时序和我并口下载线上的要求不一样。后面抽空再找找原因。
我在对驱动的安装和后面的下载写的较略是因为网上已把软件部分写的很细了,上网一搜“USB-ISP”就能搜到。
下一篇:AVR单片机及其特点
史海拾趣
|
对于DAC和ADC这两者来说,最重要的是记住输入或输出都是数字信号,所以,信号是被量化的。也就是说,N比特字代表2的N次方个可能状态之一,因此,N比特DAC(具有一个固定参考)只能有2的N次方可能的模拟输出,而N比特ADC只能有2的N次方个数字输出。模 ...… 查看全部问答> |
|
我想做个示波器 里面要保存大概500个波形,显示采用液晶显示器 时间采样单位是微秒级别的。 采用什么芯片啊? 板子我们公司没人做? 能找到外协么? 我对嵌入式不是太熟悉 高手们指点下, 怎么开始做啊? 要自己买个开发板么?… 查看全部问答> |
|
我用的是au1200 cpu ,我的硬件没有网络,是通过把bootloaser烧写到nor flash,内核放到sd卡里来启动的。我在调试触摸屏,触摸屏驱动没有问题了,现在每次重新启动启动都需要手动校准触摸屏,这样用户肯定是不同意的,所以我想把注册表的内容永久 ...… 查看全部问答> |
|
请教一个windml初始化的问题,和一个网络传输速度与CPU时钟的问题 首先我想求一个WINDML支持SPI设备的DEMO,多简单都行,关键是初始化的部分.手上的DEMO全都是PCI设备的,PCI设备我没有作过,初始化有一小块看不懂 以EPSON目录下的一个direct 16bit设备,好象是什么806什么的那套DEMO 在xxxDevCreate程序中会调用uglGr ...… 查看全部问答> |
|
1. 用组合逻辑搭的话,有什么综合和布线策略可以保证延时的精度呢?2. 另外,刚刚看到说明文档,说pll输出时钟的最小相移是VCO周期除以8,这个时间是可以满足的。不过我自己做了个实验如下:10M输入,输出三个100M,相移分别为c0:0.31ns,c1:0.62ns ...… 查看全部问答> |
|
数据类型 字节 数据范围 说明 sfrb 1 字节类型的特殊功能寄存器或外围模块 sfrw 1 字类型的特殊功能寄存器或外围模块 unsigned char 1 0~255 ...… 查看全部问答> |
|
我的IO口置高以后,用示波器一测量,才1.4V~1.5V,不知道是怎么回事? 我的IO是接在一个10K电阻上,再经过一个10K电阻的分压,给一个SC1815做开关信号控制,SC1815又控制着一个小继电器,上电后,继电器老是来回熄合,“啪啪”来回开关,真是郁闷 ...… 查看全部问答> |




