自制arduino——avr熔丝位配置-Arduino中文社区 - Powered by Discuz! Archiver

奈何col 发表于 2012-4-19 09:22

自制arduino——avr熔丝位配置

所有avr芯片要使用bootloader实现IAP下载功能都必须得先配置熔丝位。不仅对新手,甚至是avr使用者,熔丝位配置出错的情况也时有发生。后果往往是悲剧的~~~所以写了此篇~
废话不多说,直接正题:
本篇主要针对mega8系列的arduino。其他系列熔丝位配置有所不同。
大多数人烧bootloader都是用的usbasp(淘宝售价应该是20元左右),个人推荐用progisp这款软件(下载地址自己百度)。
进入软件,插好usbasp下载器。

左上角选择芯片型号,不管你是mega8a、48、88、168、328都选mega8A(理论上选mega8也行,都是一个系列)。
点击右下角的“...”,这个就是熔丝位配置。

然后如图设置,点击“写入”即可。(千万不要手贱,急急忙忙、没看清楚就点了“写入”)
其中bootsz两项为熔丝位大小配置,根据你的bootloader大小配置。
11 128B
10 256B
01 512B
00 1K
据说UNO的bootloader只有512字节不到,那把BOOTSZ置01即可。

如果出现无法编程的情况,也许是两种可能:芯片已经被锁(新的不会);硬件焊接有问题(DIY经常出现的问题)。

PS:没打算学avr单片机的人,就别去深究每个熔丝位的作用了,arduino本来就是为了省去这些麻烦的过程,跑去深究就本末倒置了。


想弄得更清楚的孩子,那注意了,在此我重点说几个熔丝位:
CKSEL这几个熔丝位为晶振配置,很多人遇到芯片被锁的情况都是因为这个熔丝位配置出错;一般arduino都使用16M晶振,所以全部置1即可。(如何解锁?下次有时间我再写~~~)
CKOPT置0为开启全幅震荡,当你晶振大于8M时,就要开启。
SPIEN,spi使能,这是唯一一个千万不能置1的熔丝位,如果关了,那USBASP就无法使用了,这时只能通过并行编程或者JTAG来修改熔丝位了(mega8没JTAG...)
BOOTSZ,是对BOOT区大小进行配置的熔丝,根据相应bootloader大小配置。
BOOTRST,是对复位向量的配置,置0时复位向量指向BOOT起始位置,置1时指向APP区起始位置。很多人烧了bootloader后,不能下载或者只能下载一次,大多是因为BOOTRST没有置0。(想搞懂什么是BOOT区?APP区?这些个XX区怎么分配?那去图书管找本AVR的书认真学习吧,数据手册上面也有,但非专业人士还是很难看懂)
RSTDISBL,为硬复位功能使能端,如果置0,可以将reset端做数字IO使用,但在arduino上可能经常用到复位按键,所以这里置1。
WTDON为看门狗设置,置0后将打开看门狗,如不进行喂狗操作,将无限复位。一般我们的非工业制作都不使用看门狗功能,所以这里置1即可。




还有什么问题留言吧~~~

风吹玉谊 发表于 2012-4-19 09:59

好贴 顶一个....:)

老王同学 发表于 2012-5-6 23:57

很清楚,顶一个。
问一下:bootsz0、bootsz1高低位是如何排列的?

槑小子 发表于 2012-7-4 12:31

奈何。。。。。。好奇的问一句。。。你用的烧写器是什么的呀。。。。。。OJ不打算出一款自己的么。。。。。。期待呀。。。。。。奈何顺便详细说一下烧写器的知识吧~~~

奈何col 发表于 2012-7-4 12:38

槑小子 发表于 2012-7-4 12:31 static/image/common/back.gif
奈何。。。。。。好奇的问一句。。。你用的烧写器是什么的呀。。。。。。OJ不打算出一款自己的么。。。。。 ...

我用的USBASP额~~~用arduino没必要用这个烧写器~

CY57 发表于 2012-7-4 22:30

學習了:)

wwwrt891 发表于 2012-8-15 17:02

求硬件电路图一份。谢谢

woiled 发表于 2013-1-21 16:46

刘明备用啦,楼主很热心的哦

奈何col 发表于 2013-1-21 16:50

wwwrt891 发表于 2012-8-15 17:02 static/image/common/back.gif
求硬件电路图一份。谢谢

百度AVR原理图 就有了

huaxiake1988 发表于 2013-5-7 09:56

楼主,芯片被锁,如何解锁的攻略能告诉我吗?
页: [1] 2
查看完整版本: 自制arduino——avr熔丝位配置