查看: 2541|回复: 0

关于ATMEGA 48 88 168 328熔丝位的配置

[复制链接]

该用户从未签到

发表于 2018-4-25 12:24 | 显示全部楼层 |阅读模式
之前因为把atmega644pa芯片的熔丝位配错了boot区大小导致bootloader损坏而无法上传程序,后来才知道把boot大小只配了128byte。


现汇总一下AVR单片机(atmega 48 88 168 328)的熔丝位配置:(注:熔丝位 “0” = 已编程; “1” = 未编程  正好相反)

熔丝低位(low fuse):

1.CKDIV8

CKDIV8位是配置mcu时钟的8分频,出厂默认是0,如果你是用16MHz(arduino uno 和 nano默认时钟)的话需要将这位改成1。

2.CKOUT

CKOUT位允许系统时钟从PORTB0输出,一般默认1就行,不用去配。



3.SUT1/0复位启动时间选择

SUT 1/0:  当选择不同晶振时,SUT有所不同。如果没有特殊要求推荐SUT 1/0设置复位启动时间稍长,使电源缓慢上升。默认“01”

3.CKSEL3/0: 时钟源选择(默认“0100”)

Low Power Crystal Oscillator                     1111 – 1000

Full Swing Crystal Oscillator                       0111 – 0110

Low Frequency Crystal Oscillator              0101 – 0100

Internal 128kHz RC Oscillator                    0011

Calibrated Internal RC Oscillator               0010

External Clock 0000 Reserved                    0001

atmega328p (UNO和NANO都是这个芯片) 出厂默认是8MHz再8分频,最终为1MHz的时钟。

而UNO和NANO默认是用16MHz外部晶振所以 CKSEL3/0 = “1111”   SUT 1/0 = “11”

熔丝高位(high fuse):

1.RSTDISBL: 复位或I/O功能选择

为硬复位功能使能端,如果置0,可以将reset端做数字IO使用,但在arduino上可能经常用到复位按键,所以这里置1。(此位如果配成0,芯片变板砖……)

2.DWEN: 调试线使能

DWEN用来激活DW调试,默认未编程。

3.SPIEN: 使能串行程序和数据下载

SPIEN位用来使能SPI下载,如果配成”1″那就无法用编程器上传程序和修改熔丝,默认”0″。

4.WDTON: 是否一直启用看门狗

置0后将打开看门狗,如不进行喂狗操作,将无限复位。一般我们的非工业制作都不使用看门狗功能,所以这里置1即可。

5.EESAVE: 执行芯片擦除时EEPROM 的内容保留

此位默认为”未编程”,即芯片重新烧录时EEPROM内容不保留。

6.BOOTSZ 1/0: boot区大小

00:1024Word
01:512Word
10:256Word
11:128Word

7.BOOTRST: 复位向量选择

1:程序从0x0000地址开始执行;0:程序从引导区确定的入口地址开始执行

如果你的芯片里面烧写了bootloader并想要复位后从引导区开始,就需要配置此位0。

熔丝扩展位(extended fuse):

6.BODLEVEL 2/0:BOD触发电平

使用方法:如果启动掉电检测,则检测电平由BODLEVEL决定。一旦VCC下降到触发电平以下,MCU复位;当VCC电平大于触发电平后,经过tTOUT 延时周后重新开始工作。            

BODLEVEL 2/0 熔丝位            BOD VOLT

111                                            禁用BOD

110                                            1.8V

101                                            2.7V

100                                            4.3V

另:扩展熔丝位只有BODLEVEL这3位。

最后你可以到boards.txt里看一下各开发板的熔丝配置。

[size=0.83em]boards.JPG (115.01 KB, 下载次数: 0)
下载附件
[color=rgb(153, 153, 153) !important]5 天前 上传





下面是UNO和NANO的默认熔丝:

UNO = FFDEFD(LOW-HIGH-EXT)

NANO = FFDAFD(LOW-HIGH-EXT)

这些都是我参照DATASHEET进行的归类,如有错误的地方还请指正。
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

热门推荐

为拍月亮而生的便携望远镜系统。
为拍月亮而生的便携望远镜
参赛项目: 便携望远镜系统 参赛组员: 1人 布丁:嵌入式软件、上位机软件、电路、结
基于机器视觉的智能分拣机械臂
基于机器视觉的智能分拣机
本作品是一个基于机器视觉的智能机械臂操作平台,其采用atmega32单片机作为主控制系统
小白求助
小白求助
也许我这个问题也许看起来有些幼稚。。。 还在入门的路上打滚,在看《爱上Arduino》这
SpiderRobot 蜘蛛
SpiderRobot 蜘蛛
关于SpiderRobot 项目实行方案 之前有人推荐我做这个项目,于是乎就有了这个 h
没有合适的模块,想到自己焊接芯片
没有合适的模块,想到自己
有些模块没有加工过的模块销售,想着自己要是能把芯片焊在一起也是一样的。只是这个尺
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表