天天看点

AVR单片机学习--mega48_88_168熔丝位含义简述

熔丝位简要说明

熔丝位 功能 配置说明
熔丝低位 CKDIV8 时钟8分频 0:时钟8分频
1:时钟不分频
CKOUT 时钟输出 0:系统时钟输出(PB0)
1:不输出
SUT1  选择启动时间 根据时钟源选择的不同会有不同的设置,详见下文。
SUT0
CKSEL3 选择时钟源 1111-1000:低功率晶振
0111-0110:满振幅晶振
CKSEL2 0101-0100:低频晶振
CKSEL1 0011:内部128K RC振荡器
CKSEL0 0010:校准的内部RC振荡器
0000:外部时钟
熔丝高位 RSTDISBL 外部复用禁止 0:PC6为普通引脚
1:PC6为复位引脚
DWEN 调试线使能 0:使能片上调试系统
1:部使能片上调试系统
SPIEN 使能串行程序和数据下载 0:SPI编程使能
1:SPI编程未使能
WDTON 看门狗时间一直启用 0:看门狗时间一直启用
1:看门狗时间通过软件设置
EESAVE 执行芯片擦除时EEPROM内容保留 0:芯片擦除时EEPROM不受影响
1:芯片擦除时EEPROM清除
BODLEVEL2 BOD触发电平 111:BOD禁用
110:Min=1.7,Typ=1.8,Max=2.0  (V)
BODLEVEL1 101:Min=2.5,Typ=2.7,Max=2.9  (V)
BODLEVEL0 100:Min=4.1,Typ=4.3,Max=4.5  (V)
mega88/168熔丝扩展位 BOOTSZ1 选择boot区大小 00::1024字
01:512字
BOOTSZ0 10:256字
00:128字
BOOTRST 选择复位向量 0:Boot区复位地址
1:0x000
加密位 BLB12 Boot锁定位 11:SPM和LPM访问没有限制
BLB11 10:禁止SPM指令
BLB02 01:禁止LPM指令
BLB01 11:SPM和LPM全禁止
LB2 锁定位 11:内存锁定不使能
LB1 10、00:Flash和EEPROM编程禁止

一、熔丝低位

低熔丝位 位号 描述 默认值
CKDIV8 7 时钟8分频
CKOUT 6 时钟输出 1
SUT1 5 选择启动时间 1
SUT0 4
CKSEL3 3 选择时钟源
CKSEL2 2
CKSEL1 1 1
CKSEL0
AVR单片机学习--mega48_88_168熔丝位含义简述

1、第七位CKDIV8:决定CLKPS的初始值,CKDIV8为1,CLKPS将设置为0000(分频因子1);CKDIV8为0,CLKPS将设置为0011(分频因子8)。所选的时钟源超出所允许的最大频率,一定要编程这个熔丝位。CKDIV8设置了也可以更改CLKPS,若所选时钟源超出所允许的最大频率,通过程序配置必须选择合适的分频因子。

AVR单片机学习--mega48_88_168熔丝位含义简述

2、第六位CKOUT:CKOUT为0,系统时钟可以从CLKO引脚输出。这个模式用于芯片时钟驱动其他系统。芯片复位状态下时钟也会输出,CKOUT为0,I/O口(PB0)的正常操作被切换为时钟输出。当CLKO作为时钟输出时,系统时钟可以为包括RC振荡器在内的所有时钟源。如果系统时钟预分频,输出的是被分频后的系统时钟频率。

AVR单片机学习--mega48_88_168熔丝位含义简述
AVR单片机学习--mega48_88_168熔丝位含义简述
AVR单片机学习--mega48_88_168熔丝位含义简述

3、低六位一块写,SUT1..0:选择启动时间,CKSEL3..0:选择时钟源

时钟源选择

器件时钟选择 CKSEL3..0
低功率晶振 1111 - 1000
满振幅晶振 0111 - 0110
低频晶振 0101 - 0100
内部128K RC振荡器 0011
校准的内部RC振荡器 0010
外部时钟 0000
保留 0001
AVR单片机学习--mega48_88_168熔丝位含义简述
  1. 低功率晶振工作模式                     (后边好多表格,直接抄过来,没有带截图)
频率范围(MHz) 电容C1、C2推荐范围(pF) CKSEL3..1
0.4 - 0.9 -- 100
0.9 - 3.0 12 - 22 101
3.0 - 8.0 12 - 22 110
8.0 - 16.0 12 - 22 111

低频率晶振时钟选项对应的启动时间

振荡源/电源状态 掉电和节电模式下的启动时间 复位时的额外延时(VCC=5.0V) CKSEL0 SUT1..0
陶瓷谐振器,电源快速上升 258CK 14CK + 4.1ms 00
陶瓷谐振器,电源缓慢上升 258CK 14CK + 65ms 01
陶瓷谐振器,BOD使能 1KCK 14CK 10
陶瓷谐振器,电源快速上升 1KCK 14CK + 4.1ms 11
陶瓷谐振器,电源缓慢上升 1KCK 14CK + 65ms 1 00
石英振荡器,BOD使能 16KCK 14CK 1 01
石英振荡器,电源快速上升 16KCK 14CK + 4.1ms 1 10
石英振荡器,电源缓慢上升 16KCK 14Ck + 65ms 1 11
  1. 满振幅晶振工作模式
频率范围(MHz) 电容C1、C2推荐范围(pF) CKSEL3..1
0.4 - 20 12 - 22 011

满振幅晶振时钟选项对应的启动时间

振荡源/电源状态 掉电和节电模式下的启动时间 复位时的额外延时(VCC=5.0V) CKSEL0 SUT1..0
陶瓷谐振器,电源快速上升 258CK 14CK + 4.1ms 00
陶瓷谐振器,电源缓慢上升 258CK 14CK + 65ms 01
陶瓷谐振器,BOD使能 1KCK 14CK 10
陶瓷谐振器,电源快速上升 1KCK 14CK + 4.1ms 11
陶瓷谐振器,电源缓慢上升 1KCK 14CK + 65ms 1 00
石英振荡器,BOD使能 16KCK 14CK 1 01
石英振荡器,电源快速上升 16KCK 14CK + 4.1ms 1 10
石英振荡器,电源缓慢上升 16KCK 14Ck + 65ms 1 11
  1. 低频晶振:可以使用外部32.768kHz表用振荡器作为低频时钟源。

低频晶振时钟选项对应的启动时间

电源状态 掉电和节电模式下的启动时间 复位时的额外延时(VCC=5.0V) CKSEL0 SUT1..0
BOD使能 1KCK 14CK 00
电源快速上升 1KCK 14CK + 4.1ms 01
电源缓慢上升 1KCK 14CK + 65ms 10
保留 11
BOD使能 32KCK 14CK 1 00
电源快速上升 32KCK 14CK + 4.1ms 1 01
电源缓慢上升 32KCK 14CK + 65ms 1 10
保留 1 11
  1. 校准的内部RC振荡器工作模式
频率范围(MHz) CKSEL3..0
7.3 - 8.1 0010

校准的内部RC振荡器对应的启动时间

电源状态 掉电和节电模式下的启动时间 复位时的额外延时(VCC=5.0V) SUT1..0
BOD使能 6CK 14CK 00
电源快速上升 6CK 14CK + 4.1ms 01
电源缓慢上升 6CK 14CK + 65ms 10
保留 11

5)128kHz内部振荡器工作模式

频率范围 CKSEL3..0
128kHz 0011

128kHz内部振荡器对应的启动时间

电源状态 掉电和节电模式下的启动时间 复位时的额外延时(VCC=5.0V) SUT1..0
BOD使能 6CK 14CK 00
电源快速上升 6CK 14CK + 4.1ms 01
电源缓慢上升 6CK 14CK + 65ms 10
保留 11

6)石英振荡器时钟频率

频率范围 CKSEL3..0
0 - 20MHz 0000

外部时钟对应的启动时间

电源状态 掉电和节电模式下的启动时间 复位时的额外延时(VCC=5.0V) SUT1..0
BOD使能 6CK 14CK 00
电源快速上升 6CK 14CK + 4.1ms 01
电源缓慢上升 6CK 14CK + 65ms 10
保留 11

二、熔丝高位

高熔丝位 位号 描述 默认值
RSTDISBL 7 外部复位禁用 1
DWEN 6 调试线使能 1
SPIEN 5 使能串行程序和数据下载 0(SPI编程使能)
WDTON 4 看门狗时间一直启用 1)
EESAVE 3 执行芯片擦除时EEPROM内容保留 1,EEPROM内容不保留
BODLEVEL2 2 BOD触发电平 1
BODLEVEL1 1 1
BODLEVEL0 1
  1. 第七位RSTDISBL:设置PC6引脚的功能,RSTDISBL为0时,该引脚作为普通的I/O引脚,芯片内部的上电复位和欠压复位作为系统的复位源。RSTDISBL为1时,复位电路将连接到该引脚,该引脚不能作为I/O使用。
AVR单片机学习--mega48_88_168熔丝位含义简述
  1. 第六位DWEN:如果通过熔丝位DWEN使能了片上调试系统,芯片进入休眠状态时,主时钟保持运行,因此总是消耗功率。在深度休眠模式,这个功耗将会在整个功耗中占很大比重。
AVR单片机学习--mega48_88_168熔丝位含义简述

当debugWIRE使能DWEN熔丝位为0并且锁定位为1,目标设备中的debugWIRE系统被激活。RESET端口引脚配置为上拉使能的线与(开漏)双向I/O,成为目标与仿真器间的联系通路。

AVR单片机学习--mega48_88_168熔丝位含义简述

一个程序DWEN使能使一些时钟系统在所有休眠模式下都运行。这将增加器件在休眠时的功耗。所以在不使用debugWIRE时,DWEN熔丝位应该禁用(为1)。

AVR单片机学习--mega48_88_168熔丝位含义简述

3、第五位SPIEN:设置为0时,SPI使能。

在串行编程模式下SPIEN熔丝位不可访问。

AVR单片机学习--mega48_88_168熔丝位含义简述

4、第四位WDTON:如果WDTON为0,看门狗一直开启,将迫使看门狗定时器进入系统复位模式。该熔丝位为0使系统复位模式位(WDE)和中断模式位(WDIE)分别锁定为1和0。为了进一步确保程序安全性,对看门狗设置的更改必须遵循定时顺序。清除WDE和更改超时配置的顺序如下:

  1. 在同一个指令内对WDCE和WDE写"1“。虽然WDE总是为置位状态,也必须写"1“以启动时序。
  2. 在接下来的4个时钟周期中必须在同一指令内对WDCE位写”0”和为WDE和WDP写合适的数据。
AVR单片机学习--mega48_88_168熔丝位含义简述

看门狗定时器配置

WDTON WDE WDIE 状态 超时动作
1 停止
1 1 中断模式 中断
1 1 系统复位模式 复位
1 1 1 中断和系统复位模式 中断,然后进入系统复位模式
x x 系统复位模式 复位
  1. 第三位EESAVE:如果EESAVE 熔丝位为0,那么在芯片擦除时EEPRPOM 不受影响。
AVR单片机学习--mega48_88_168熔丝位含义简述

当向EEPROM写数据0xFF时可以跳过(高效编程),EESAVE熔丝位为0状态下不能跳过。

AVR单片机学习--mega48_88_168熔丝位含义简述
  1. 低三位BODLEVEL2..0:BOD触发电平
AVR单片机学习--mega48_88_168熔丝位含义简述

VBOT 可能低于某些器件的最小标称工作电压。对于有这种情形的器件,在产品测试时将做VCC = VBOT 的实验。这保证了在芯片工作电压VCC 降至微处理器已经无法正常工作之前,发生掉电复位。ATmega48V/88V/168V用BODLEVEL = 110与BODLEVEL = 101做检测, ATmega48/88/168用BODLEVEL = 101与BODLEVEL = 100做检测。

三、mega88/168的熔丝位扩展位

熔丝位扩展位 位号 描述 默认值
-- 7 -- 1
-- 6 -- 1
-- 5 -- 1
-- 4 -- 1
-- 3 -- 1
BOOTSZ1 2 选择boot区大小
BOOTSZ0 1 选择boot区大小
BOOTRST 选择复位向量 1
  1. 第二位、第一位:BOOTSZ1  BOOTSZ0 选择boot区大小
BOOTSZ1 BOOTSZ0 Boot区大小 页数 应用Flash区 Boot Loader Flash区 应用区结束地址 Boot复位地址(Boot Loader起始地址)
1 1 128字 4 0x000 - 0xF7F 0xF80 - 0xFFF 0xF7F 0xF80
1 256字 8 0x000 - 0xEFF 0xF00 - 0xFFF 0xEFF 0xF00
1 512字 16 0x000 - 0xDFF 0xE00 - 0xFFF 0xDFF 0xE00
1024字 32 0x000 - 0xBFF 0xC00 - 0xFFF 0xBFF 0xC00
  1. 第零位BOOTRST:决定复位向量

在ATmega88 与ATmega168 中,复位向量由BOOTRST 熔丝位决定,中断向量的起始地址由MCUCR 寄存器的IVSEL决定。

AVR单片机学习--mega48_88_168熔丝位含义简述

ATmega88复位和中断向量位置的确定

BOOTRST IVSEL 复位地址 中断起始地址
1 0x000 0x001
1 1 0x000 Boot区复位地址 + 0x001
Boot区复位地址 0x001
1 Boot区复位地址 Boot区复位地址 + 0x001

四、加密位

加密位 位号 描述 默认值
-- 7 -- 1
-- 6 -- 1
BLB12 5 Boot锁定位 1
BLB11 4 Boot锁定位 1
BLB02 3 Boot锁定位 1
BLB01 2 Boot锁定位 1
LB2 1 锁定位 1
LB1 锁定位 1

锁定位保护模式

内存锁定位 保护类型
LB模式 LB2 LB1
1 1 1 没有内存锁定特征使能
2 1 在并行和串行编程模式中Flash和EEPROM的进一步编程被禁止,熔丝位被锁定。
3 在并行和串行编程模式中Flash和EEPROM的进一步编程及验证被禁止,锁定位和熔丝位被锁定。

ATmega88/168的锁定位保护模式

BLB0模式 BLB02 BLB01
1 1 1 SPM和LPM对应用区的访问没有限制
2 1 不允许SPM对应用区进行写操作
3 不允许SPM对应用区进行写操作,也不允许运行于boot loader区的LPM从应用区读取数据。若中断向量位于boot loader区,那么执行应用区代码时中断是禁止的。
4 1 不允许运行于boot loader区的LPM指令从应用区读取数据。若中断向量位于boot loader区,那么执行应用区代码时中断是禁止的。
BLB1模式 BLB12 BLB11
1 1 1 SPM和LPM对boot loader区的访问没有限制
2 1 不允许SPM对boot loader区进行写操作
3 不允许SPM对boot loader区进行写操作,也不允许运行于应用区的LPM指令从boot loader区读取数据。若中断向量位于应用区,那么执行boot loader区代码时中断是禁止的。
4 1 不允许运行于应用区的LPM 指令从boot loader区读取数据。若中断向量位于应用区,那么执行boot loader区代码时中断是禁止的。

继续阅读