查看: 26253|回复: 24

使用USBasp给arduino烧写bootloader之终极玩法

[复制链接]
本帖最后由 Youyou 于 2014-12-4 01:41 编辑

注:本文由YouYou原创,转载需注明出处!


在帖子“使用USBasp给arduino烧写bootloader”中,讲解的烧写bootloader方法,可能对于新手来说,稍微有点复杂。而且,可能会导致设错熔丝位把芯片锁死。于是,难道就不能像USBtinyISP那样方便吗?我可以肯定的告诉你,完全OK的。下面就向大家介绍这终极玩法!本教程相对于“使用USBasp给arduino烧写bootloader”会有所简略,因此有不太明白的地方,可以先看看那个帖子,熟悉下整个流程。
首先说明下Arduino IDE里面其实是支持USBasp的,只不过我们买到的USBasp的固件不支持,因此,我们需要更新USBasp的固件,过程稍微有点复杂。但复杂过后,你会发现,实在太好用了,便宜又方便。
废话不多说,开工!我们首先把教程所用到的附件,全部下载,并预先解压好,方便以后的操作。
如果你的USBasp有壳子,那么需要先拆开它,如果没有壳子,直接上!我们需要找到跳线的地方(短路后,给USBasp升级固件)。我手上有两个USBasp,正如那个帖子所述的,一个是带有彩壳的,一个是没有壳子的。
彩壳的拆开后的样子,如下图:
QQ截图20141204002125.jpg
在背面,我们需要短接图中两个红色箭头所指的过孔,我用的是尖头镊子,当然,用导线也是可以的,但要保证可靠短路。
没有彩壳的,我们可以看到有两个焊盘,如下图中红色圈圈所示,我们需要短接的就是那两个。我用的还是尖头镊子,你呢?
QQ截图20141204002821.jpg

接下来,我们需要两个USBasp,一个是作为编程器,一个是作为目标(更新芯片上的程序,进行固件升级)。将两个USBasp进行对连,也就是他们ISP的接口:一个的1号脚接另一个的1号脚,一个的2号脚接另一个的2号脚,一一对应,以此类推。当然,你购买编程器的时候,应该会附送一个10p的排线,用那个直接连接即可,如果没有,那就只能用十根杜邦线了。连接完毕后,然后再短路刚才图示的地方(我用的是镊子),接着插到电脑的USB口上。
我们用的还是原先的progisp软件,打开软件界面,在器件一栏,选择ATmega8(绝大多数情况,编程器所用的芯片是ATmega8,除非你人品爆发了)。接下来,请保持可靠短路,直到固件更新完毕。我们可以读一下器件序号,如果提示读出ID成功,如下图所示,那你的接线是妥的,我们可以继续了。
QQ截图20141204004345.jpg

在更新固件之前,我建议你备份下当前的固件,以防万一。也就是读出芯片中的内容,然后保存。做法是:点击progisp软件菜单栏中的“命令”选择,选中下拉菜单中的“读出flash”,如下图所示,稍等片刻,就能读完。然后点击菜单栏中的“文件”,出现下拉菜单后,点击“保存flash”即可,默认是以bin文件形式保存的。这样备份好固件后,即使升级失败,我们也有“后悔药”。
无标题1.jpg

此次操作,是不用修改熔丝位的,因为原先的固件出厂前就修改好熔丝位了。当然,为了以防万一,我把熔丝位读了出来,留图做个备份,熔丝位如下图:
QQ截图20141204005447.jpg

好了,完成了前期工作,真正关键的时刻来了。我们调入附件中的firmware,路径是:usbasp.2011-05-28\usbasp.2011-05-28\bin\firmware\usbasp.atmega8.2011-05-28.hex,然后和以前一样,设置好编程参数:校验flash,芯片擦除和编程flash,其他不要勾选。如下图所示:
QQ截图20141204005833.jpg        QQ截图20141204005922.jpg

然后点击“自动”按钮,稍等片刻,USBasp的固件就更新完毕了!怎么样,其实也不难吧。这时,你需要把编程器从USB口拔出,接着你需要解除刚才短路的地方,从此,USBasp固件更新完成了。
当然,用更新完固件的USBasp可以对另一个USBasp更新固件!也就是说PROGISP软件还可以正常使用,你仍可以用这个软件来对其他芯片烧写程序。
如果你只有一个USBasp,别急,可以用Arduino UNO作为ISP编程器,给USBasp更新固件。教程在这里:http://www.rogerclark.net/updati ... p-bought-from-ebay/
固件更新完毕后,把更新完固件的USBasp插入电脑的USB口,然后把电脑上对应的驱动更新到最新版(附件usbasp-windriver.2011-05-28),最新版本是1.2.4.0。
然后,一劳永逸的时刻到来了!
我们以Arduino UNO为例讲述烧写bootloader的方法。
打开Arduino IDE,选好板子类型为Arduino UNO。
无标题2.jpg

接着,选择编程器为USBasp。
无标题3.jpg

最后点击“Burn Bootloader”即可,稍等片刻就会提示烧写完毕!如下图所示。怎么样,超简单吧,小伙伴们再也不用担心设错熔丝位了。{:2_27:}
QQ截图20141204011635.jpg



想锻炼下动手能力吗?想亲自试下更新固件的乐趣吗?想体验成功后的喜悦吗?亲,别犹豫了,马上动手实践吧!


USBasp开源设计参考:http://www.fischl.de/usbasp/




usbasp.2011-05-28.tar.gz

518.86 KB, 下载次数: 135, 下载积分: 创造力 -1

firmware

usbasp-windriver.2011-05-28.zip

344.82 KB, 下载次数: 116, 下载积分: 创造力 -1

driver

progisp1.72.rar

2.1 MB, 下载次数: 102, 下载积分: 创造力 -1

progisp

Phoebe  管理员

发表于 2014-12-4 10:02:24

收了,you大神要多分享这种精华帖啊
回复

使用道具 举报

Jane  管理员

发表于 2014-12-4 10:03:51

you大神又出新篇啦~
回复

使用道具 举报

冰渕  中级技师

发表于 2014-12-4 10:57:54

神人的神贴,超级给力必须赞!!!
回复

使用道具 举报

lauren  高级技师

发表于 2014-12-4 11:36:11

这是传说中 手把手教你用15块的编程器给Arduino更新固件bootloader吗
回复

使用道具 举报

Eric  版主

发表于 2014-12-4 23:43:11

lauren 发表于 2014-12-4 11:36
这是传说中 手把手教你用15块的编程器给Arduino更新固件bootloader吗

我用中国话明确的告诉你"YES"
回复

使用道具 举报

Youyou  初级技匠
 楼主|

发表于 2014-12-5 00:23:59

本帖最后由 Youyou 于 2014-12-5 00:25 编辑
lauren 发表于 2014-12-4 11:36
这是传说中 手把手教你用15块的编程器给Arduino更新固件bootloader吗

必须的,不但能给Arduino烧bootloader,还能直接烧Arduino编译的hex,而且还能更新USBasp的固件,更能给其他mega芯片烧程序,可谓四合一啊。
回复

使用道具 举报

Youyou  初级技匠
 楼主|

发表于 2014-12-5 00:27:11

本帖最后由 Youyou 于 2014-12-5 00:33 编辑
Phoebe 发表于 2014-12-4 10:02
收了,you大神要多分享这种精华帖啊

这必须的,DIY编程器系列教程会不断放出{:2_27:}
回复

使用道具 举报

fangrong  中级技师

发表于 2014-12-5 09:55:46

好像玩一玩啊~~
回复

使用道具 举报

Angelo  初级技匠

发表于 2014-12-5 11:30:48

专业技术贴,支持~~
还是深圳的大公版威武
回复

使用道具 举报

lauren  高级技师

发表于 2014-12-6 01:37:15

Eric 发表于 2014-12-4 23:43
我用中国话明确的告诉你"YES"

感觉好屌。。。以前我玩过tinyisp。。。玩的想吐。。。驱动就装的好麻烦,当初瞎折腾,想要用isp模拟stk500通过avr studio烧录。。。搞了一整天好像。。。
回复

使用道具 举报

Joyce  高级技师 来自手机

发表于 2014-12-7 23:13:03

哇哦,神贴,收啦
回复

使用道具 举报

touchfree  高级技师

发表于 2014-12-17 13:32:10

给力U!
回复

使用道具 举报

xinxinzhihuo  学徒

发表于 2015-1-15 11:26:26

很有用的,谢谢,厉害的了
回复

使用道具 举报

lijn  初级技匠

发表于 2015-2-22 14:51:49

问下楼主;
操作顺序是不是把USBASP写入新固件;装入新驱动后;
把usbasp与arduino再连好6条线vcc,地,mosi,miso,sck,rest.
再打开arduino软件操作,就行。
回复

使用道具 举报

Youyou  初级技匠
 楼主|

发表于 2015-2-23 14:29:32

lijn 发表于 2015-2-22 14:51
问下楼主;
操作顺序是不是把USBASP写入新固件;装入新驱动后;
把usbasp与arduino再连好6条线vcc,地,mosi ...

是的,就是这么玩{:2_27:}
回复

使用道具 举报

Cosine  学徒

发表于 2015-7-8 17:13:56

。。。。。。。。。。。。。。。。。。。。。。。。支持
回复

使用道具 举报

hlln20100410  学徒

发表于 2016-1-16 21:48:13

终于找到正版的了 谢谢
回复

使用道具 举报

zonafrist  学徒

发表于 2016-10-13 13:24:00

谢谢大神分享,我正在愁着怎么简化烧入步骤呢
回复

使用道具 举报

suoma  中级技匠

发表于 2017-5-2 09:21:31

如果熔丝位锁死了,怎么办?用这个方法行吗?
回复

使用道具 举报

Youyou  初级技匠
 楼主|

发表于 2017-6-13 18:46:50

suoma 发表于 2017-5-2 09:21
如果熔丝位锁死了,怎么办?用这个方法行吗?

熔丝位一旦锁死,用这个方法不行。可尝试给一个时钟信号给单片机,
参考:https://wenku.baidu.com/view/a914221d10a6f524cdbf8501.html
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2016 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail