初学者对熔丝常常不解,AVR芯片运用熔丝来设定时钟、发动时刻、一些功用的使能、BOOT区设定、当然还有最让初学者头疼的保密位,设欠好锁了芯片很费事。要想使MCU功耗最小也要了解一些位的设定 在此写下自己对熔丝的了解,参照了一些MEGA16的PDF文档,双龙的文档,以及我们的帖子。力求易懂、全面。 下面以双龙的在体系编程软件SLISP为例详细阐明我对熔丝的了解。
a intro
b 低位(时钟及发动时刻设置):
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)以下,MCU复位;当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.9MHZ 18 CK + 0 ms
CKSEL=”0101″ SUT=”00″ 外部RC振动≤0.9MHZ 18 CK + 4.1 ms
CKSEL=”0101″ SUT=”01″ 外部RC振动≤0.9MHZ 18 CK + 65 ms
CKSEL=”0101″ SUT=”10″ 外部RC振动≤0.9MHZ 6 CK + 4.1 ms
CKSEL=”0101″ SUT=”11″ 外部RC振动0.9-3.0MHZ 18 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.0MHZ 18 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.0MHZ 18 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″ SUT=”00″ 低频晶振(32.768KHZ) 1K CK + 65 ms
CKSEL=”1001″ SUT=”01″ 低频晶振(32.768KHZ) 32K CK + 65 ms
CKSEL=”1001″ SUT=”10″ 低频石英/陶瓷振动器(0.4-0.9MHZ) 258 CK + 4.1 ms
CKSEL=”1010″ SUT=”00″ 低频石英/陶瓷振动器(0.4-0.9MHZ) 258 CK + 65 ms
CKSEL=”1010″ SUT=”01″ 低频石英/陶瓷振动器(0.4-0.9MHZ) 1K CK + 0 ms
CKSEL=1010 SUT=”10″ 低频石英/陶瓷振动器(0.4-0.9MHZ) 1K CK + 4.1 ms
CKSEL=”1010″ SUT=”11″ 低频石英/陶瓷振动器(0.4-0.9MHZ) 1K CK + 65 ms
CKSEL=”1011″ SUT=”00″ 低频石英/陶瓷振动器(0.4-0.9MHZ) 16K CK + 0 ms
CKSEL=1011 SUT=”01″ 低频石英/陶瓷振动器(0.4-0.9MHZ) 16K CK + 4.1ms
CKSEL=”1011″ SUT=”10″ 低频石英/陶瓷振动器(0.4-0.9MHZ) 16K CK + 65ms
CKSEL=”1011″ SUT=”11″ 中频石英/陶瓷振动器(0.9-3.0MHZ) 258 CK + 4.1 ms
CKSEL=”1100″ SUT=”00″ 中频石英/陶瓷振动器(0.9-3.0MHZ) 258 CK + 65 ms
CKSEL=”1100″ SUT=”01″ 中频石英/陶瓷振动器(0.9-3.0MHZ) 1K CK + 0 ms
CKSEL=1100 SUT=”10″ 中频石英/陶瓷振动器(0.9-3.0MHZ) 1K CK + 4.1 ms
CKSEL=”1100″ SUT=”11″ 中频石英/陶瓷振动器(0.9-3.0MHZ) 1K CK + 65 ms
CKSEL=”1101″ SUT=”00″ 中频石英/陶瓷振动器(0.9-3.0MHZ) 16K CK + 0 ms
CKSEL=”1101″ SUT=”01″ 中频石英/陶瓷振动器(0.9-3.0MHZ) 16K CK + 4.1ms
CKSEL=”1101″ SUT=”10″ 中频石英/陶瓷振动器(0.9-3.0MHZ) 16K CK + 65ms
CKSEL=”1101″ SUT=”11″ 高频石英/陶瓷振动器(3.0-8.0MHZ) 258 CK + 4.1 ms
CKSEL=”111″0 SUT=”00″ 高频石英/陶瓷振动器(3.0-8.0MHZ) 258 CK + 65 ms
CKSEL=”111″0 SUT=”01″ 高频石英/陶瓷振动器(3.0-8.0MHZ) 1K CK + 0 ms
CKSEL=”111″0 SUT=”10″ 高频石英/陶瓷振动器(3.0-8.0MHZ) 1K CK + 4.1 ms
CKSEL=”111″0 SUT=”11″ 高频石英/陶瓷振动器(3.0-8.0MHZ) 1K CK + 65 ms
CKSEL=1111 SUT=”00″ 高频石英/陶瓷振动器(3.0-8.0MHZ) 16K CK + 0 ms
CKSEL=”111″1 SUT=”01″ 高频石英/陶瓷振动器(3.0-8.0MHZ) 16K CK + 4.1ms
CKSEL=”111″1 SUT=”10″ 高频石英/陶瓷振动器(3.0-8.0MHZ) 16K CK + 65ms
CKSEL=”111″1 SUT=”11″
高位(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:保存
5.BOOTRST(复位进口挑选):
1:程序从0x0000地址开端
0:复位后从BOOT区履行(参阅BOOTSZ0/1)
6.BOOTSZ 1/0(引导区程序巨细及进口):
00: 1024Word/0xc00;
01: 512Word/0xe00;
10: 256Word/0xf00;
11: 128Word/0xf80