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分频

0

CKOUT

6

时钟输出

1

SUT1

5

选择启动时间

1

SUT0

4

0

CKSEL3

3

选择时钟源

0

CKSEL2

2

0

CKSEL1

1

1

CKSEL0

0

0

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

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

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

时钟源选择

器件时钟选择

CKSEL3..0

低功率晶振

1111 - 1000

满振幅晶振

0111 - 0110

低频晶振

0101 - 0100

内部128K RC振荡器

0011

校准的内部RC振荡器

0010

外部时钟

0000

保留

0001

  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

0

00

陶瓷谐振器,电源缓慢上升

258CK

14CK + 65ms

0

01

陶瓷谐振器,BOD使能

1KCK

14CK

0

10

陶瓷谐振器,电源快速上升

1KCK

14CK + 4.1ms

0

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

0

00

陶瓷谐振器,电源缓慢上升

258CK

14CK + 65ms

0

01

陶瓷谐振器,BOD使能

1KCK

14CK

0

10

陶瓷谐振器,电源快速上升

1KCK

14CK + 4.1ms

0

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

0

00

电源快速上升

1KCK

14CK + 4.1ms

0

01

电源缓慢上升

1KCK

14CK + 65ms

0

10

保留

0

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

0

1

  1. 第七位RSTDISBL:设置PC6引脚的功能,RSTDISBL为0时,该引脚作为普通的I/O引脚,芯片内部的上电复位和欠压复位作为系统的复位源。RSTDISBL为1时,复位电路将连接到该引脚,该引脚不能作为I/O使用。

  1. 第六位DWEN:如果通过熔丝位DWEN使能了片上调试系统,芯片进入休眠状态时,主时钟保持运行,因此总是消耗功率。在深度休眠模式,这个功耗将会在整个功耗中占很大比重。

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

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

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

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

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

  1. 在同一个指令内对WDCE和WDE写"1“。虽然WDE总是为置位状态,也必须写"1“以启动时序。
  2. 在接下来的4个时钟周期中必须在同一指令内对WDCE位写”0”和为WDE和WDP写合适的数据。

看门狗定时器配置

WDTON

WDE

WDIE

状态

超时动作

1

0

0

停止

1

0

1

中断模式

中断

1

1

0

系统复位模式

复位

1

1

1

中断和系统复位模式

中断,然后进入系统复位模式

0

x

x

系统复位模式

复位

  1. 第三位EESAVE:如果EESAVE 熔丝位为0,那么在芯片擦除时EEPRPOM 不受影响。

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

  1. 低三位BODLEVEL2..0:BOD触发电平

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区大小

0

BOOTSZ0

1

选择boot区大小

0

BOOTRST

0

选择复位向量

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

0

256字

8

0x000 - 0xEFF

0xF00 - 0xFFF

0xEFF

0xF00

0

1

512字

16

0x000 - 0xDFF

0xE00 - 0xFFF

0xDFF

0xE00

0

0

1024字

32

0x000 - 0xBFF

0xC00 - 0xFFF

0xBFF

0xC00

  1. 第零位BOOTRST:决定复位向量

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

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

BOOTRST

IVSEL

复位地址

中断起始地址

1

0

0x000

0x001

1

1

0x000

Boot区复位地址 + 0x001

0

0

Boot区复位地址

0x001

0

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

0

锁定位

1

锁定位保护模式

内存锁定位

保护类型

LB模式

LB2

LB1

 

1

1

1

没有内存锁定特征使能

2

1

0

在并行和串行编程模式中Flash和EEPROM的进一步编程被禁止,熔丝位被锁定。

3

0

0

在并行和串行编程模式中Flash和EEPROM的进一步编程及验证被禁止,锁定位和熔丝位被锁定。

ATmega88/168的锁定位保护模式

BLB0模式

BLB02

BLB01

 

1

1

1

SPM和LPM对应用区的访问没有限制

2

1

0

不允许SPM对应用区进行写操作

3

0

0

不允许SPM对应用区进行写操作,也不允许运行于boot loader区的LPM从应用区读取数据。若中断向量位于boot loader区,那么执行应用区代码时中断是禁止的。

4

0

1

不允许运行于boot loader区的LPM指令从应用区读取数据。若中断向量位于boot loader区,那么执行应用区代码时中断是禁止的。

BLB1模式

BLB12

BLB11

 

1

1

1

SPM和LPM对boot loader区的访问没有限制

2

1

0

不允许SPM对boot loader区进行写操作

3

0

0

不允许SPM对boot loader区进行写操作,也不允许运行于应用区的LPM指令从boot loader区读取数据。若中断向量位于应用区,那么执行boot loader区代码时中断是禁止的。

4

0

1

不允许运行于应用区的LPM 指令从boot loader区读取数据。若中断向量位于应用区,那么执行boot loader区代码时中断是禁止的。

 

  • 1
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AVR单片机是一种由Atmel公司推出的低功耗、高性能的微控制器,广泛应用于各种电子设备中。其中,ATmega48/88/168AVR系列中较为常见的型号。 ATmega48/88/168具有相似的架构和功能,只是在存储器容量和引脚数方面有所不同。它们都配备了8位的RISC架构核心,运行频率可高达20MHz。通过内置的闪存存储器,可以存储和执行程序代码。通过SRAM和EEPROM存储器,可以实现数据的读写和保存。 这些单片机具有丰富的外设资源,如GPIO(通用输入输出)引脚,可以用于连接外部传感器和执行器。它们还提供了用于通信的串行接口,如UART(通用异步收发器)和SPI(串行外设接口),可以实现与其他设备的数据交换和通信。此外,它们还具备PWM(脉冲宽度调制)输出和定时器/计数器等功能,可用于精确控制电机速度和计时等应用。 为了方便开发者编程和调试,在市场上有许多成熟的集成开发环境(IDE)和编程语言可以使用。例如,使用Atmel Studio软件和C语言,可以轻松编写和调试程序,通过编程器将程序下载到单片机中。 无论是初学者还是经验丰富的工程师,AVR单片机都是理想的选择。它们具有简单易用的特点,支持多种编程语言和开发工具。对于初学者来说,可以通过学习基本的电路原理和编程概念,逐步掌握单片机的使用方法。对于经验丰富的工程师来说,AVR单片机具有强大的性能和灵活的外设资源,可以满足各种复杂应用的需求。 总之,深入浅出AVR单片机从ATmega48/88/168开始,可以让我们了解到其基本架构和功能,为后续学习和应用打下坚实基础。同时,通过掌握其编程和调试技巧,可以实现更多有趣的电子项目和应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值