2014-11-30 22:22:42 [显示全部楼层]
53805浏览
查看: 53805|回复: 24

[入门] 使用USBasp给arduino烧写bootloader

[复制链接]
注:本文由YouYou原创,转载需注明出处!


今天给大家介绍一个给Arduino烧写bootloader的方法——使用USBasp。可能大家对USBtinyISP比较熟悉,但说不定你手上正好有一款USBasp。在学校里玩过51和AVR的童鞋们,你们手上很可能就有这个东东。其实,这玩意也能给arduino烧写bootloader,但方法稍微复杂那么一点。据不完全统计,USBtinyISP和USBasp由于价格低廉(USBasp价格在15元以内),普及度较高。关于USBtinyISP,我们有详细的教程,童鞋们可以很快的玩转起来。但基于USBasp的教程不是很多,而且比较分散,因此在这里我写一个使用USBasp图文并茂的教程,供各位童鞋参考。废话不多说,我们开始。
首先,找出你的USBasp编程器。参考下面的图,类似于这种的就是USBasp,不要被外壳所迷惑。
使用USBasp给arduino烧写bootloader图1使用USBasp给arduino烧写bootloader图2

然后,给编程器安装驱动。附件中有一个通用驱动,但不一定符合你的编程器,可以向相应人员索要对应的驱动。安装驱动很简单,将USBasp插入电脑的USB口,然后打开设备管理器,找到USBasp设备,右键,更新驱动程序软件,选择浏览计算机以查找驱动程序软件,然后找到驱动程序软件路径,最后安装成功,如下图所示。当然,有些是免驱的,这样就省去安装驱动的麻烦了。
使用USBasp给arduino烧写bootloader图3使用USBasp给arduino烧写bootloader图5
使用USBasp给arduino烧写bootloader图4使用USBasp给arduino烧写bootloader图6

然后,我们需要将USBasp与arduino进行连线。童鞋们已经发现了,编程器接口是10pin的,但arduino编程接口是6pin的。作为开源玩家,我们用杜邦线解决该问题。:lol
我们先看下编程接口的定义:
使用USBasp给arduino烧写bootloader图7使用USBasp给arduino烧写bootloader图8

左边一张图是10pin的ISP接口,右边一张图是6pin的ISP接口。USBasp编程器用的是左边图上的接口,其接口处有个缺口,对于图中的缺口,因此管脚顺序很好理清。arduino上用的是右边图上的接口,要理清该接口顺序,我们首先需要确定哪个管脚是1号管脚。方法是找到丝印层印的数字1或者是小圆点,对应的就是1号管脚,如下图所示。如果实在找不到,别急,你可用万用来确定2号和6号管脚,细心的童鞋注意到了,2号和6号对应的是VCC和GND,简单吧。
使用USBasp给arduino烧写bootloader图9使用USBasp给arduino烧写bootloader图17

当然了,作为屌丝的本人,肯定已经提前买好了10pin到6pin的转接口了,方便连线。:lol:victory: 不过熟悉下ISP的管脚功能,还是有点用滴。
连线方式很简单,MOSI连MOSI,SCK连SCK,MISO连MISO,RESET连RSET,最后把VCC和GND连好,USBasp能对arduino提供5V供电,因此无需再给arduino供电。
连好线以后,把USBasp插入电脑的USB口,可以看到电源指示灯亮了。然后,我们打开智峰progisp软件(附件中有提供)。我们以arduino uno为例,由于arduino uno使用的是ATmega328P芯片,因此在Select Chip一栏选择ATmega328P,然后点击RD按钮。如果提示"读出ID成功",说明你的芯片和连线都是OK的。
使用USBasp给arduino烧写bootloader图10

接着,我们需要找到bootloader的hex文件。此文件需要看boards.txt说明,地址在arduino-1.0.5-r2\hardware\arduino文件夹中。如下图所示:(我的arduino IDE装在了E盘program files文件夹中)
使用USBasp给arduino烧写bootloader图11

打开它,你可以看到配置文件,根据配置文件,你可以找到hex文件所在路径,以及熔丝位的配置。详见下图:(以arduino uno为例)
使用USBasp给arduino烧写bootloader图12

主要关心的参数,是图中红字标出的。首先我们设置熔丝位,点击progisp软件的“自动”按钮右边的“...”按钮(注意:是三个点,不是自动按钮),调出熔丝位设置界面,按照boards.txt所述修改好熔丝位。如下图所示,然后点击写入即可。这样我们就设置好了熔丝位。当然,如果该芯片以前烧写过同一个arduino bootloader,可以不用烧写熔丝位,直接烧写hex文件。
使用USBasp给arduino烧写bootloader图13

烧写完熔丝位后,我们迎来了最后一步:烧写hex文件。按照boards.txt所述,我们调入bootloader的hex文件,方法是:
在软件右边的文件栏下,点击调入flash按钮,然后打开hex文件,根据boards.txt文件,在arduino-1.0.5-r2\hardware\arduino\bootloaders\optiboot文件夹中的optiboot_atmega328.hex文件。
使用USBasp给arduino烧写bootloader图14使用USBasp给arduino烧写bootloader图15
点击“打开”按钮后,再进行关键一步,设置编程参数!千万不能省,
严禁勾选“加密芯片”选项!否则你的芯片可能跪了。我们只勾选三个选项:校验falsh,芯片擦除,编程flash,如下图所示。设置完毕后,点击“自动按钮”,这样我们就完成了bootloader的烧写。此时,用arduino IDE传个BLINK程序看看,完全OK,吼吼{:2_27:}
使用USBasp给arduino烧写bootloader图16

怎么样,其实也不难吧。操作两三回,你就会很熟练了~~

对其他的arduino,比如Leonardo、mega2560都是同样的方法。


tutorials

USBasp下载器资料(软件及驱动程序).rar

3.87 MB, 下载次数: 10178

20060606  高级技匠

发表于 2020-8-7 05:17:04

arduino也可以作为usbasp,这样就又省了一笔钱
回复

使用道具 举报

1004289188  学徒

发表于 2019-9-12 10:50:10

新手来学习一下
回复

使用道具 举报

aShg_4-9  学徒

发表于 2019-9-8 20:38:09

xiexie
回复

使用道具 举报

Ricky  NPC

发表于 2014-11-30 22:30:19

这个要收藏。。。。。技术精华贴。。。
回复

使用道具 举报

Youyou  初级技匠
 楼主|

发表于 2014-11-30 23:06:22

Ricky 发表于 2014-11-30 22:30
这个要收藏。。。。。技术精华贴。。。

分享技术,大家一起乐:lol
回复

使用道具 举报

babykeke  中级技师

发表于 2014-11-30 23:07:36

学习了 赞
回复

使用道具 举报

Youyou  初级技匠
 楼主|

发表于 2014-11-30 23:13:08

下周为大家带来CMSIS DAP教程(CMSIS DAP是mbed采用的编程器),到时我们一起揭开它的神秘面纱。
回复

使用道具 举报

Jane  高级技匠

发表于 2014-12-1 10:05:51

you大神终于出教程了!收藏收藏~
回复

使用道具 举报

Joyce  高级技师

发表于 2014-12-1 10:15:35

USBasp我们公司没得卖吧,疑问?
回复

使用道具 举报

Phoebe  高级技匠

发表于 2014-12-1 10:40:08

这个烧录器屌,比AVRISP好用啊
回复

使用道具 举报

mickey  NPC

发表于 2014-12-1 10:48:41

USBasp是一个常用的ISP下载器,如果手上有,那就可以按这个帖子操作即可,如果是新手正好又没有USBasp,那还是建议购买一个USBtinyISP,操作更简便一些,不会因为熔丝位设置错误而导致芯片被锁死。具体用法可以参考wiki:https://wiki.dfrobot.com.cn/index.php/(SKU:DFR0116)USBtinyISP%E4%B8%8B%E8%BD%BD%E5%99%A8
回复

使用道具 举报

drink  中级技师

发表于 2014-12-1 11:39:22

这个好复杂,还是ISP方便。
回复

使用道具 举报

Youyou  初级技匠
 楼主|

发表于 2014-12-1 13:10:56

Joyce 发表于 2014-12-1 10:15
USBasp我们公司没得卖吧,疑问?

淘宝上随便搜啊,一大把,有些还包邮~~
回复

使用道具 举报

Youyou  初级技匠
 楼主|

发表于 2014-12-1 13:13:40

mickey 发表于 2014-12-1 10:48
USBasp是一个常用的ISP下载器,如果手上有,那就可以按这个帖子操作即可,如果是新手正好又没有USBasp,那 ...

嗯,新手建议用USBtinyISP,烧录方便。用USBasp烧录熔丝位需要特别小心,不然就麻烦了:lol
回复

使用道具 举报

Eric  初级技神

发表于 2014-12-1 23:34:19

卧艹~你这是逼我收藏咋地~!!哈哈哈,写的相当惬意啊~图文并茂~喜欢
回复

使用道具 举报

touchfree  高级技师

发表于 2014-12-2 09:30:06

期待已久,终于出贴了!怒赞~
回复

使用道具 举报

xinxinzhihuo  学徒

发表于 2015-1-15 11:24:32

很有用的,谢谢
回复

使用道具 举报

lijn  初级技匠

发表于 2015-2-21 20:57:14

最近在做usbasp,下载资料看看。
回复

使用道具 举报

zfcjxlz  学徒

发表于 2015-5-20 20:58:06

楼主你好,在没看到你的帖子的时候。。。
我先把加密芯片勾选然后烧写了次FF,还有挽救的余地嘛?
回复

使用道具 举报

songxiongkang  学徒

发表于 2015-8-22 22:49:41

烧写玩bootloader之后,为什么校验的时候会报错呢,还有就是报错之后可以正常运行,但是再利用isp接口烧写其他程序时无法运行,求指教。
回复

使用道具 举报

songxiongkang  学徒

发表于 2015-8-22 22:49:52

烧写玩bootloader之后,为什么校验的时候会报错呢,:(还有就是报错之后可以正常运行,但是再利用isp接口烧写其他程序时无法运行,求指教。
回复

使用道具 举报

Youyou  初级技匠
 楼主|

发表于 2015-8-25 11:20:20

songxiongkang 发表于 2015-8-22 22:49
烧写玩bootloader之后,为什么校验的时候会报错呢,还有就是报错之后可以正常运行,但是再利用isp接口烧 ...

请问是对mega2560进行烧写bootloader吗?如果是的话,校验错误会发生,但实际上是成功烧录了,可以正常使用的。
回复

使用道具 举报

cjxu  学徒

发表于 2017-6-24 07:53:49

谢谢分享  学习了
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

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

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

mail