熔丝位详解MEGA16

合集下载

AVRmega单片机熔丝位的设置详解及应用举例

AVRmega单片机熔丝位的设置详解及应用举例
应用举例:
比如我们想使用片内的RC振荡(Fra bibliotek不需要接晶振),可以选择下面三者之一:
[CKSEL=0100 SUT=10] Int. RC Osc. 1 MHz; Start-up time: 6 CK + 0 ms;
[CKSEL=0100 SUT=00] Int. RC Osc. 1 MHz; Start-up time: 6 CK + 4 ms;
引导(Boot)区大小为xxx个词
Boot start address=$yyyy;
引导(Boot)区开始地址为$yyyy
Boot Reset vector Enabled
引导(Boot)、复位向量使能
Brown-out detection level at VCC=xxxx V;
掉电检测的电平为VCC=xxxx伏
五、AVR Studio熔丝位配置应用举例
通过下图的方法打开连接:
使用操作界面如下:((注意:下图中,打勾的表示选中,代表0。没有打勾的表示1)
上图的资料有很多相关项,你需要认识以下的代码,以理解意思。英文翻译说明如下
英文
中文
On-Chip Debug Enabled
片内调试使能
JTAG Interface Enabled
二、AVRmega16单片机中重要熔丝位的配置
(1)CLKSEL[3:0]:用于选择系统的时钟源。
(2)SPIEN:SPI下载使能位。默认状态为允许“0”。
(3)WDTON:WDT定时器始终开启设置位。默认为“1”,表示禁止WDT始终开启。
(4)EESAVE:执行擦除命令时是否保留EEPROM中的内容,默认状态为“1”,表示执行片内擦除命令时,EERPOM中的内容和Flash中的内容一同被擦除。

BASCOM-AVR初级入门实例教程—第二讲认识AVR单片机

BASCOM-AVR初级入门实例教程—第二讲认识AVR单片机

BASCOM-AVR初级入门实例教程—第二讲认识AVR单片机第二讲认识AVR单片机关于AVR单片机的资料,网上一搜一大堆,这里就不细讲了。

这里主要介绍一下AVR单片机的基本电路和熔丝位设置,熔丝对于初学者来说可能比较头疼。

芯片的说明书(DATASHEET)是最好的老师,尤其初学者,一定要多看,反复看,初级问题一般会在上面找到答案。

AVR的说明书编得非常详细,多数常用芯片还提供中文版,这也降低了初学者的入门门槛。

MEGA8和MEGA16是比较常用的AVR芯片,本教程主要以这两款芯片为例。

2.1外部复位电路外部复位由外加于RESET 引脚的低电平产生,按下SW,触发复位动作,MCU重新启动。

C1的作用是为了稳定可靠,按键按下后电容被迅速放电,按键松开后,通过电阻向电容充电,以保证足够长的复位时间确保稳定复位。

D1的作用有两个:一是将复位输入的最高电压钳在Vcc+0.5V 左右;二是当断电时,将R1电阻短路,让C1快速放电,下一次来电时,能产生有效的复位。

实际应用电路中,可以省掉D1、C1。

若不需要外部复位,SW也可省掉,RESET 引脚只接10K电阻到VCC。

MCU上电后,RESET引脚内部上拉为高电平,悬空不接任何电路,MCU也能正常工作。

2.2振荡电路AVR系统时钟源可由外部晶体、内部RC振荡器、外部RC振荡器、外部时钟提供,通过配置熔丝位进行选择。

通常使用外部晶体和内部RC两种方式之一。

如果熔丝配置成外部RC或外部时钟,会造成芯片不能通过ISP(串行编程)进行正常编程,这就是所谓的芯片被锁,后面有较详细介绍。

MEGA16晶振连接电路MEGA16外部RC电路MEGA系列AVR单片机使用外部晶振时,C1、C2这两只电容不接也能正常工作,规范的电路一般还是接上。

如果不需要太高精度的时钟,可以使用内部RC 振荡,即不需要接任何外围零件。

当进行串口通讯时,一般需要接适合串口数据传输的特殊频率晶振,比如常用的3.6864MHz、7.3728MHz、11.0592MHz等。

ATmega16中文数据手册

ATmega16中文数据手册

4
ATmega16(L)
2466G–AVR–10/03
Hale Waihona Puke ATmega16(L)端口 D(PD7..PD0) 端口 D 为 8 位双向 I/O 口, 具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特 性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路 拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口 D 处于高阻状态。 端口 D 也可以用做其他不同的特殊功能,请参见 P61。 RESET XTAL1 XTAL2 AVCC AREF 复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。门限时间见 P36Table 15。持续时间小于门限间的脉冲不能保证可靠复位。 反向振荡放大器与片内时钟操作电路的输入端。 反向振荡放大器的输出端。 AVCC 是端口 A 与 A/D 转换器的电源。 不使用 ADC 时, 该引脚应直接与 VCC 连接。 使用 ADC 时应通过一个低通滤波器与 VCC 连接。 A/D 的模拟基准输入引脚。 本数据手册包含了一些简单的代码例子以说明如何使用芯片各个不同的功能模块。这些 例子都假定在编译之前已经包含了正确的头文件。有些 C 编译器在头文件里并没有包含 位定义,而且各个 C 编译器对中断处理有自己不同的处理方式。请注意查阅相关文档以 获取具体的信息。
SPI
USART
+ -
COMP. INTERFACE
PORTB DIGITAL INTERFACE
PORTD DIGITAL INTERFACE
PORTB DRIVERS/BUFFERS
PORTD DRIVERS/BUFFERS
PB0 - PB7
PD0 - PD7
3

新良电子 mega16 A 学习开发板 DIY 说明书

新良电子 mega16 A 学习开发板 DIY 说明书

新良电子mega16 A学习开发板DIY说明书 一.免责声明为了安全有效地使用本产品,请您仔细阅读本说明书以及电路原理图。

首先请您注意一下事项:◆本产品有三种供电方式外接6~12V开关电源,USB供电,USBASP编程下载器供电,供电电流<500mA。

自行外接电源请注意电源接线的极性和电压范围。

请选用原装开关电源。

在使用USB供电时,保证电路板上的电源正负极不要短接,否则会有把电子元器件和计算机USB口烧坏的危险。

◆请不要在带电时插拔芯片及相关器件。

◆由于自行扩展或者非常规焊接带来的不良故障,新良电子不负任何责任。

◆产品的硬件和软件部定时升级,所有更改不另行通知客户,新良电子具有最终解释权。

◆新良电子愿与广大朋友交流一切技术上的问题。

新良电子有权不回答本产品之外的一切问题。

在时间充足的情况下,新良电子绝对会诚挚地和广大客户或者非客户交流一切技术上的问题。

◆特别声明:本mega16A学习板DIY套件(或者PCB单件)仅限于肇庆学院校内师生学习交流使用。

未经新良电子同意,本实验板(包含PCB,原理图和代码)不得用于任何商业用途。

二.整体资源◆8个高亮共阳数码显示管◆4*4矩阵键盘◆4位独立键盘◆8个高亮发光二极管◆标准RS232通信接口,提供与计算机通信、与MCU通信的双重选择◆蜂鸣器(警报或者音乐播放)◆2003功率驱动芯片◆步进电机接口◆直流电机接口◆EEPROM数据存储(24CX)◆精密温度检测——DS18B20温度传感器◆USB供电和外部开关电源接口+电源开关◆DS1302实时时钟芯片◆复位开关◆ISP编程接口◆JTAG编程仿真接口◆标准LCD1602/1620液晶显示器的插座◆标准LCD12864液晶显示器的插座◆具有独立的对比度电位调节◆74HC595串进并出芯片◆74HC138译码芯片◆ADC电位器◆外部电源稳压芯片,可提供高达1A的电流◆带SI-PROG串口下载器三.开发板跳线说明图1.mega16A实验板面板图跳线和接口说明:◆J1,为LCD12864的通信方式,中间插针与左边短接(即VCC)是串行方式,中间插针与右边短接(即GND)是并行方式。

最全面的AVRmega16定时计数器的学习笔记

最全面的AVRmega16定时计数器的学习笔记

定时计数器学习笔记ATmega16-共配置了2个8位和1个16位,共3个定时计数器,它们是8位的定时计数器T/C0 T/C2和16位的定时计数器T/C1。

一、学习和使用定时计数器时,必须注意以下的基本要素:1、脉冲信号源。

脉冲信号源是指输入到定时计数器的计数脉冲信号。

通常用于定时计数器计数的脉冲信号可以由外部输入引脚提供,也可以由单片机内部提供。

2、计数器类型。

计数器类型是指计数器的计数运行方式,可分为加一(减一)计数器,单程计数或双向计数等。

3、计数器的上下限。

计数器的上下限指计数单元的最小值和最大值。

一般情况下,计数器的下限值为零,上限值为计数单元的最大计数值,即255(8位)或65535(16位)。

需要注意的是,当计数器工作在不同模式下时,计数器的上限值并不都是计数单元的最大计数值255或65535,它将取决于用户的配置和设定。

4、计数器的事件。

计数器的事件指计数器处于某种状态时的输出信号,该信号通常可以向MC申请中断。

如当计数器计数到达计数上限值255时,产生溢出”信号,向MC申请中断。

二、8 位定时计数器T/C0、T/C2(一)T/CO、T/C2的特点:(1)单通道计数器。

(2)比较匹配时清零计数器(自动重装特性,Auto Reload )。

(3)可产生无输出抖动(glitch-free )的,相位可调的脉宽调制(PWM信号输出。

(4)频率发生器。

(5)外部事件计数器(仅T/CO)。

(6)带10位的时钟预分频器。

(7)溢出和比较匹配中断源(TOV0 OCF和TOV2 OCF2。

(8)允许使用外部引脚的32kHz手表晶振作为独立的计数时钟源(仅T/C2)。

(二)寄存器1、TCNT0--TC(计数寄存器TCNT是T/C0的计数值寄存器。

写TCNT(寄存器将在下一个定时器时钟周期中阻塞比较匹配。

因此,在计数器运行期间修改TCNT0勺内容,有可能将丢失一次TCNT与OCR0勺匹配比较操作2、OCR0输出比较寄存器8位寄存器OCR(中的数据用于同TCNT(寄存器中的计数值进行匹配比较。

关于avr_atmega16

关于avr_atmega16

else HC164_send_byte(temp); PORTC = position[i]; delay_ms(2); PORTC = 0xff; } } 。。。。。。。。。
三、AVR通用I/O口 (3)、数码管显示(并行)
三、AVR通用I/O口 (3)、数码管显示(并行)
void display(void) // 扫描显示函数,执行时间12ms { char i; for(i=0;i<=5;i++) { PORTA = led_7[dis_buff[i]]; if (point_on && ( i==2 || i==4 )) PORTA |= 0x80; // (1) PORTC = position[i]; delay_ms(2); // (2) PORTC = 0xff; // (3) } }
三、AVR通用I/O口 (3)、数码管显示(并行)
三、AVR通用I/O口 (3)、数码管显示(并行)
假设PA.0-a…PA.7-h 要显示数字‘1’ 共阴极:PA输出? 共阳级:PA输出? 与此同时,公共端接法? 欲连续显示数字0-9该如 何?
三、AVR通用I/O口 (3)、数码管显示(并行)
三、AVR通用I/O口 (4)、字符LCD
/*显示屏初始化函数*/ void LCD_init(void) { DDRB = 0xFF; /*I/O口方向设置*/ DDRD |= (1 << PD3) | (1 << PD4) | (1 << PD6); LCD_write_com(0x38); /*显示模式设置*/ delay_ms(5); LCD_write_com(0x38); delay_ms(5); LCD_write_com(0x38); delay_ms(5); LCD_write_com(0x38); LCD_write_com(0x08); /*显示关闭*/ LCD_write_com(0x01); /*显示清屏*/ LCD_write_com(0x06); /*显示光标移动设置*/ delay_ms(5); LCD_write_com(0x0C); /*显示开及光标设置*/ }

熔丝位(Fuse)快速入门

熔丝位(Fuse)快速入门

熔丝位(Fuse)快速入门AVR Studio 中 STK500 处理熔丝位有巨大的优势:它是以功能组合让用户配置。

这种方式与小马 (PnoyProg2000,SL-ISP)相比,具有以下的优势(优势是如此明显,可以用“巨大优势”来形容):1. 有效避免因不熟悉熔丝位让芯片锁死 (这是初学者的恶梦)2. 不需要靠记忆与查文档,就能配置熔丝位(这也是初学者的恶梦)这是我们网站为何推荐使用STK500下载器的又一原因。

操作界面如下: (注意:下图中,打勾的表示选中,代表0。

没有打勾的表示1)。

上图的资料整理如下(该表下面有中文翻译与说明):On-Chip Debug Enabled; [OCDEN=0]JTAG Interface Enabled; [JTAGEN=0]Serial program downloading (SPI) enabled; [SPIEN=0]Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]Boot Flash section size=128 words Boot start address=$1F80; [BOOTSZ=11]Boot Flash section size=256 words Boot start address=$1F00; [BOOTSZ=10]Boot Flash section size=512 words Boot start address=$1E00; [BOOTSZ=01]Boot Flash section size=1024 words Boot start address=$1C00; [BOOTSZ=00] ; default value Boot Reset vector Enabled (default address=$0000); [BOOTRST=0]CKOPT fuse (operation dependent of CKSEL fuses); [CKOPT=0]Brown-out detection level at VCC=4.0 V; [BODLEVEL=0]Brown-out detection level at VCC=2.7 V; [BODLEVEL=1]Brown-out detection enabled; [BODEN=0]Ext. Clock; Start-up time: 6 CK + 0 ms; [CKSEL=0000 SUT=00]Ext. Clock; Start-up time: 6 CK + 4 ms; [CKSEL=0000 SUT=01]Ext. Clock; Start-up time: 6 CK + 64 ms; [CKSEL=0000 SUT=10]Int. RC Osc. 1 MHz; Start-up time: 6 CK + 0 ms; [CKSEL=0001 SUT=00]Int. RC Osc. 1 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0001 SUT=01]Int. RC Osc. 1 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0001 SUT=10]; default valueInt. RC Osc. 2 MHz; Start-up time: 6 CK + 0 ms; [CKSEL=0010 SUT=00]Int. RC Osc. 2 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0010 SUT=01]Int. RC Osc. 2 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0010 SUT=10]Int. RC Osc. 4 MHz; Start-up time: 6 CK + 0 ms; [CKSEL=0011 SUT=00]Int. RC Osc. 4 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0011 SUT=01]Int. RC Osc. 4 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0011 SUT=10]Int. RC Osc. 8 MHz; Start-up time: 6 CK + 0 ms; [CKSEL=0100 SUT=00]Int. RC Osc. 8 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0100 SUT=01]Int. RC Osc. 8 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0100 SUT=10]Ext. RC Osc. - 0.9 MHz; Start-up time: 18 CK + 0 ms; [CKSEL=0101 SUT=00]Ext. RC Osc. - 0.9 MHz; Start-up time: 18 CK + 4 ms; [CKSEL=0101 SUT=01]Ext. RC Osc. - 0.9 MHz; Start-up time: 18 CK + 64 ms; [CKSEL=0101 SUT=10]Ext. RC Osc. - 0.9 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0101 SUT=11]Ext. RC Osc. 0.9 MHz - 3.0 MHz; Start-up time: 18 CK + 0 ms; [CKSEL=0110 SUT=00]Ext. RC Osc. 0.9 MHz - 3.0 MHz; Start-up time: 18 CK + 4 ms; [CKSEL=0110 SUT=01]Ext. RC Osc. 0.9 MHz - 3.0 MHz; Start-up time: 18 CK + 64 ms; [CKSEL=0110 SUT=10]Ext. RC Osc. 0.9 MHz - 3.0 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0110 SUT=11]Ext. RC Osc. 3.0 MHz - 8.0 MHz; Start-up time: 18 CK + 0 ms; [CKSEL=0111 SUT=00]Ext. RC Osc. 3.0 MHz - 8.0 MHz; Start-up time: 18 CK + 4 ms; [CKSEL=0111 SUT=01]Ext. RC Osc. 3.0 MHz - 8.0 MHz; Start-up time: 18 CK + 64 ms; [CKSEL=0111 SUT=10]Ext. RC Osc. 3.0 MHz - 8.0 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0111 SUT=11]Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 18 CK + 0 ms; [CKSEL=1000 SUT=00]Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 18 CK + 4 ms; [CKSEL=1000 SUT=01]Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 18 CK + 64 ms; [CKSEL=1000 SUT=10] Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=1000 SUT=11]Ext. Low-Freq. Crystal; Start-up time: 1K CK + 4 ms; [CKSEL=1001 SUT=00]Ext. Low-Freq. Crystal; Start-up time: 1K CK + 64 ms; [CKSEL=1001 SUT=01]Ext. Low-Freq. Crystal; Start-up time: 32K CK + 64 ms; [CKSEL=1001 SUT=10]Ext. Crystal/Resonator Low Freq.; Start-up time: 258 CK + 4 ms; [CKSEL=1010 SUT=00] Ext. Crystal/Resonator Low Freq.; Start-up time: 258 CK + 64 ms; [CKSEL=1010 SUT=01] Ext. Crystal/Resonator Low Freq.; Start-up time: 1K CK + 0 ms; [CKSEL=1010 SUT=10] Ext. Crystal/Resonator Low Freq.; Start-up time: 1K CK + 4 ms; [CKSEL=1010 SUT=11] Ext. Crystal/Resonator Low Freq.; Start-up time: 1K CK + 64 ms; [CKSEL=1011 SUT=00] Ext. Crystal/Resonator Low Freq.; Start-up time: 16K CK + 0 ms; [CKSEL=1011 SUT=01] Ext. Crystal/Resonator Low Freq.; Start-up time: 16K CK + 4 ms; [CKSEL=1011 SUT=10] Ext. Crystal/Resonator Low Freq.; Start-up time: 16K CK + 64 ms; [CKSEL=1011 SUT=11] Ext. Crystal/Resonator Medium Freq.; Start-up time: 258 CK + 4 ms; [CKSEL=1100 SUT=00] Ext. Crystal/Resonator Medium Freq.; Start-up time: 258 CK + 64 ms; [CKSEL=1100 SUT=01] Ext. Crystal/Resonator Medium Freq.; Start-up time: 1K CK + 0 ms; [CKSEL=1100 SUT=10] Ext. Crystal/Resonator Medium Freq.; Start-up time: 1K CK + 4 ms; [CKSEL=1100 SUT=11] Ext. Crystal/Resonator Medium Freq.; Start-up time: 1K CK + 64 ms; [CKSEL=1101 SUT=00] Ext. Crystal/Resonator Medium Freq.; Start-up time: 16K CK + 0 ms; [CKSEL=1101 SUT=01]Ext. Crystal/Resonator Medium Freq.; Start-up time: 16K CK + 4 ms; [CKSEL=1101 SUT=10] Ext. Crystal/Resonator Medium Freq.; Start-up time: 16K CK + 64 ms; [CKSEL=1101 SUT=11] Ext. Crystal/Resonator High Freq.; Start-up time: 258 CK + 4 ms; [CKSEL=1110 SUT=00] Ext. Crystal/Resonator High Freq.; Start-up time: 258 CK + 64 ms; [CKSEL=1110 SUT=01] Ext. Crystal/Resonator High Freq.; Start-up time: 1K CK + 0 ms; [CKSEL=1110 SUT=10] Ext. Crystal/Resonator High Freq.; Start-up time: 1K CK + 4 ms; [CKSEL=1110 SUT=11] Ext. Crystal/Resonator High Freq.; Start-up time: 1K CK + 64 ms; [CKSEL=1111 SUT=00] Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 0 ms; [CKSEL=1111 SUT=01] Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 4 ms; [CKSEL=1111 SUT=10] Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 64 ms; [CKSEL=1111 SUT=11] 上表的英文翻译说明如下:英文中文On-Chip Debug Enabled 片内调试使能JTAG Interface Enabled JTAG 接口使能Serial program downloading (SPI) enabled 串行编程下载(SPI) 使能 (ISP下载时该位不能修改)Preserve EEPROM memory through the ChipErase cycle;芯片擦除时EEPROM的内容保留Boot Flash section size=xxxx words 引导(Boot)区大小为xxx个词Boot start address=$yyyy; 引导(Boot)区开始地址为 $yyyy Boot Reset vector Enabled 引导(Boot)、复位向量使能Brown-out detection level at VCC=xxxx V; 掉电检测的电平为 VCC=xxxx 伏Brown-out detection enabled; 掉电检测使能Start-up time: xxx CK + yy ms 启动时间 xxx 个时钟周期 + yy 毫秒Ext. Clock; 外部时钟Int. RC Osc. 内部 RC(阻容) 振荡器Ext. RC Osc. 外部 RC(阻容) 振荡器Ext. Low-Freq. Crystal; 外部低频晶体Ext. Crystal/Resonator Low Freq 外部晶体/陶瓷振荡器低频Ext. Crystal/Resonator Medium Freq 外部晶体/陶瓷振荡器中频Ext. Crystal/Resonator High Freq 外部晶体/陶瓷振荡器高频注:以上中文是对照 ATmega16的中、英文版本数据手册而翻译。

mega16最小系统

mega16最小系统
RST连接倒RESET(9),为了减小图片大小这里没有画出,你可以从本页顶上的那个图片看出来。
重要说明:实际应用时,如果你想简化零件,可以不焊接2*5座。但在PCB设计时最好保留这个空位,以便以后升级AVR内的软件。
电源设计
AVR单片机最常用的是5V与3.3V两种电压。本线路以开关切换两种电压,并且以双色二极管指示(5V时为绿灯,3.3V时为红灯)。JP3输入电压为7.5v—9v。
当SW开关打向右边时,R6上的电流为1.25/0.62 = 2.02ma。R1上的电流为BM1117脚电流加上R6上的电流,即0.05+2.02=2.07ma.可以计算得R1上的电压为2.07V。于是得出VCC=1.25+2.07=3.32V。误差在1%以内。
使用1%精度的电阻,可以控制整个输出电压误差在3%以内。
复位线路的设计(下图上面一部分)
Mega16已经内置了上电复位设计。并且在熔丝位里,可以控制复位时的额外时间,故AVR外部的复位线路在上电时,可以设计得很简单:直接拉一只10K的电阻到VCC即可(R6)。
为了可靠,再加上一只0.1uF的电容(C13)以消除干扰、杂波。
D3(1N4148)的作用有两个:作用一是将复位输入的最高电压钳在Vcc+0.5V左右,另一作用是系统断电时,将R0(10K)电阻短路,让C0快速放电,让下一次来电时,能产生有效的复位。
重要说明:实际应用时,使用BM1117,输入电压可以低至7伏甚至更低。(也可以同时使用低压降的二极管代替1N4007)。
串口电路设计
串口使用一个max232芯片。
使用跳线JMP2—1,不使用串口时,请将其断开,防止串口电路对IO口的干扰。
VCC与R2out之间接串上一个电阻R2和一个发光二极管LED1,特别说明,只有当此二极管闪的时候才说明串口在工作,直接接上的时候,此发光二极管也可能会亮。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

<熔丝详解(M16)><<返回written by harrylee harrylee@初学者对熔丝经常不解,AVR芯片使用熔丝来设定时钟、启动时间、一些功能的使能、BOOT区设定、当然还有最让初学者头疼的保密位,设不好锁了芯片很麻烦。

要想使MCU功耗最小也要了解一些位的设定在此写下自己对熔丝的理解,参照了一些MEGA16的PDF文档,双龙的文档,以及大家的帖子。

力求易懂、全面。

下面以双龙的在系统编程软件SLISP为例具体说明我对熔丝的理解。

a introb 低位(时钟及启动时间设置):c 时钟总表d 高位(BOOT区设置):e 常用熔丝设置打开运行SLISP.exe,首先记住:1:未编程(配置熔丝检查框未打钩)0:编程(配置熔丝检查框打钩)建议在配置熔丝之前先“读取配置”读出原来的设定,再自己编辑。

先了解一下M16的出厂设置。

默认设置为:内部RC振荡8MHz 6 CK + 65 ms CKSEL=0100 SUT=10低位(时钟及启动时间设置):1.BOD(Brown-out Detection) 掉电检测电路BODLEVEL(BOD电平选择): 1: 2.7V电平; 0:4.0V电平BODEN(BOD功能控制): 1:BOD功能禁止;0:BOD功能允许使用方法:如果BODEN使能(复选框选中)启动掉电检测,则检测电平由BODLEVEL决定。

一旦VCC下降到触发电平(2.7v或4.0v) 以下,MUC复位;当VCC电平大于触发电平后,经过tTOUT 延时周后重新开始工作。

注:1.复选框选中代表0,0电平有效。

2.因为M16L可以工作在2.7v~5.5v,所以触发电平可选2.7v(BODLEVEL=0)或4.0v(BODLEVEL=1);而M16工作在4.5~5.5V,所以只能选BODLEVEL=0,BODLEVEL=1不适用于ATmega16。

2.复位启动时间选择SUT 1/0: 当选择不同晶振时,SUT有所不同。

如果没有特殊要求推荐SUT 1/0设置复位启动时间稍长,使电源缓慢上升。

CKSEL3/0: 时钟源选择(时钟总表)时钟总表时钟源启动延时熔丝外部时钟 6 CK + 0 ms CKSEL=0000 SUT=00外部时钟 6 CK + 4.1 ms CKSEL=0000 SUT=01外部时钟 6 CK + 65 ms CKSEL=0000 SUT=10内部RC振荡1MHZ 6 CK + 0 ms CKSEL=0001 SUT=00内部RC振荡1MHZ 6 CK + 4.1 ms CKSEL=0001 SUT=01内部RC振荡1MHZ1 6 CK + 65 ms CKSEL=0001 SUT=10内部RC振荡2MHZ 6 CK + 0 ms CKSEL=0010 SUT=00内部RC振荡2MHZ 6 CK + 4.1 ms CKSEL=0010 SUT=01内部RC振荡2MHZ 6 CK + 65 ms CKSEL=0010 SUT=10内部RC振荡4MHZ 6 CK + 0 ms CKSEL=0011 SUT=00内部RC振荡4MHZ 6 CK + 4.1 ms CKSEL=0011 SUT=01内部RC振荡4MHZ 6 CK + 65 ms CKSEL=0011 SUT=10内部RC振荡8MHZ 6 CK + 0 ms CKSEL=0100 SUT=00内部RC振荡8MHZ 6 CK + 4.1 ms CKSEL=0100 SUT=01内部RC振荡8MHZ 6 CK + 65 ms CKSEL=0100 SUT= 10外部RC振荡≤0.9MHZ18 CK + 0 ms CKSEL=0101 SUT= 00外部RC振荡≤0.9MHZ18 CK + 4.1 ms CKSEL=0101 SUT= 01外部RC振荡≤0.9MHZ18 CK + 65 ms CKSEL=0101 SUT= 10外部RC振荡≤0.9MHZ 6 CK + 4.1 ms CKSEL=0101 SUT= 11外部RC振荡0.9-3.0MHZ18 CK + 0 ms CKSEL=0110 SUT= 00外部RC振荡0.9-3.0MHZ 18 CK + 4.1 ms CKSEL=0110 SUT= 01外部RC振荡0.9-3.0MHZ 18 CK + 65 ms CKSEL=0110 SUT= 10外部RC振荡0.9-3.0MHZ 6 CK + 4.1 ms CKSEL=0110 SUT= 11外部RC振荡3.0-8.0MHZ 18 CK + 0 ms CKSEL=0111 SUT= 00外部RC振荡3.0-8.0MHZ18 CK + 4.1 ms CKSEL=0111 SUT= 01外部RC振荡3.0-8.0MHZ 18 CK + 65 ms CKSEL=0111 SUT= 10外部RC振荡3.0-8.0MHZ 6 CK + 4.1 ms CKSEL=0111 SUT= 11外部RC振荡8.0-12.0MHZ 18 CK + 0 ms CKSEL=1000 SUT= 00外部RC振荡8.0-12.0MHZ 18 CK + 4.1 ms CKSEL=1000 SUT= 01外部RC振荡8.0-12.0MHZ18 CK + 65 ms CKSEL=1000 SUT= 10外部RC振荡8.0-12.0MHZ 6 CK + 4.1 ms CKSEL=1000 SUT= 11低频晶振(32.768KHZ) 1K CK + 4.1 ms CKSEL=1001 SU T=00低频晶振(32.768KHZ)1K CK + 65 ms CKSEL=1001 SU T=01低频晶振(32.768KHZ) 32K CK + 65 ms CKSEL=1001 SU T=10低频石英/陶瓷振荡器(0.4-0.9MHZ)258 CK + 4.1 ms CKSEL=1010 SUT=0 0低频石英/陶瓷振荡器(0.4-0.9MHZ)258 CK + 65 ms CKSEL=1010 SUT=0 1低频石英/陶瓷振荡器(0.4-0.9MHZ)1K CK + 0 ms CKSEL=1010 SUT=1 0低频石英/陶瓷振荡器(0.4-0.9MHZ)1K CK + 4.1 ms CKSEL=1010 SUT=1 1低频石英/陶瓷振荡器(0.4-0.9MHZ)1K CK + 65 ms CKSEL=1011 SUT=0 0低频石英/陶瓷振荡器(0.4-0.9MHZ) 16K CK + 0 ms CKSEL=1011 SUT=0 1低频石英/陶瓷振荡器(0.4-0.9MHZ) 16K CK + 4.1ms CKSEL=1011 SUT=1 0低频石英/陶瓷振荡器(0.4-0.9MHZ)16K CK + 65ms CKSEL=1011 SUT=1 1中频石英/陶瓷振荡器(0.9-3.0MHZ)258 CK + 4.1 ms CKSEL=1100 SUT=0 0中频石英/陶瓷振荡器(0.9-3.0MHZ) 258 CK + 65 ms CKSEL=1100 SUT=0 1中频石英/陶瓷振荡器(0.9-3.0MHZ) 1K CK + 0 ms CKSEL=1100 SUT=1 0中频石英/陶瓷振荡器(0.9-3.0MHZ) 1K CK + 4.1 ms CKSEL=1100 SUT=1 1中频石英/陶瓷振荡器(0.9-3.0MHZ) 1K CK + 65 ms CKSEL=1101 SUT=0 0中频石英/陶瓷振荡器(0.9-3.0MHZ) 16K CK + 0 ms CKSEL=1101 SUT=0 1中频石英/陶瓷振荡器(0.9-3.0MHZ) 16K CK + 4.1ms CKSEL=1101 SUT=1 0中频石英/陶瓷振荡器(0.9-3.0MHZ)16K CK + 65ms CKSEL=1101 SUT=1 1高频石英/陶瓷振荡器(3.0-8.0MHZ) 258 CK + 4.1 ms CKSEL=1110 SUT=0 0高频石英/陶瓷振荡器(3.0-8.0MHZ) 258 CK + 65 ms CKSEL=1110 SUT=0 1高频石英/陶瓷振荡器(3.0-8.0MHZ)1K CK + 0 ms CKSEL=1110 SUT=1 0高频石英/陶瓷振荡器(3.0-8.0MHZ) 1K CK + 4.1 ms CKSEL=1110 SUT=1 1高频石英/陶瓷振荡器(3.0-8.0MHZ)1K CK + 65 ms CKSEL=1111 SUT=0 0高频石英/陶瓷振荡器(3.0-8.0MHZ)16K CK + 0 ms CKSEL=1111 SUT=0 1高频石英/陶瓷振荡器(3.0-8.0MHZ)16K CK + 4.1ms CKSEL=1111 SUT=1 0高频石英/陶瓷振荡器(3.0-8.0MHZ) 16K CK + 65ms CKSEL=1111 SUT=1 1高位(BOOT区设置):1. JTAGEN(JTAG允许): 1:JTAG禁止; 0:JTAG允许OCDEN(OCD功能允许): 1:OCD功能禁止;0:OCD功能允许OCDEN(On-chip Debug):片上调试使能位JTAGEN(JTAG使能): JTAG测试访问端口使用方法:在JTAG调试时,使能OCDEN JTAGEN两位(复选框打勾),并保持所有的锁定位处于非锁定状态;在实际使用时为降低功耗,不使能OCDEN JTAGEN,大约减少2-3mA的电流。

2. SPIEN(SPI下载允许): 1:SPI下载禁止;0:SPI下载使能注:在双龙的软件里,SPIEN是不能编辑的,默认为0。

3. CKOPT(选择放大器模式): CKOPT=0:高幅度振荡输出;CKOPT=1:低幅度振荡输出当CKOPT 被编程时振荡器在输出引脚产生满幅度的振荡。

这种模式适合于噪声环境,以及需要通过XTAL2 驱动第二个时钟缓冲器的情况,而且这种模式的频率范围比较宽。

当保持CKOPT 为未编程状态时,振荡器的输出信号幅度比较小。

其优点是大大降低了功耗,但是频率范围比较窄,而且不能驱动其他时钟缓冲器。

(据我测量功耗差别在1mA左右)。

对于谐振器,当CKOPT未编程时的最大频率为8 MHz,CKOPT编程时为16 MHz。

内部RC振荡器工作时不对CKOPT编程。

4.EEAVE(烧录时EEPROM数据保留): 1:不保留;0:保留在一次使用EEProm时没注意EEAVE位的编程,调试程序每次烧flash 时,EEProm都没了,后来才知道,EEAVE打了勾。

相关文档
最新文档