特别注意,要使用外部晶体,必须设置熔丝,否则芯片会使用默认的内部晶体。
1、M16的出厂设置
内部RC 振荡1MHz 6 CK + 65 ms CKSEL=0001 SUT=10 JTAGEN=1
默认状况下JTAG已编程(即PC2-PC5为高电平不可以被拉低),如果PC2->PC5要用作普通IO口,需要取消JTAG编程,或者在程序开始时执行以下命令:
MCUCSR |= 1 << JTD;
MCUCSR |= 1 << JTD;//注意要连续操作两次。恢复JTAG功能也要连续两次操作。
2、熔丝位配置说明
2.1低位(时钟及启动时间设置)
2.1.1、 BOD(Brown-out Detection)掉电检测电路
BODLEVEL(BOD 电平选择): 1(2.7V电平)0(4.0V电平)
BODEN(BOD功能控制):1 (BOD功能禁止)0(BOD功能允许)
一旦VCC 下降到触发电平(2.7v 或4.0v)以下,MUC复位;当VCC电平大于触发电平后,经过tTOUT延时周后重新开始工作。
2.1.2、复位启动时间选择
SUT 1/0:当选择不同晶振时,SUT有所不同。
如果没有特殊要求推荐SUT 1/0设置复位启动时间稍长,使电源缓慢上升。
2.1.3、CKSEL3/0: 时钟源选择
时钟源启动延时熔丝
外部时钟6 CK + 0msCKSEL=0000 SUT=00
外部时钟6 CK + 4.1msCKSEL=0000 SUT=01
外部时钟6 CK + 65msCKSEL=0000 SUT=10
内部RC振荡1MHZ6 CK + 0msCKSEL=0001 SUT=00
内部RC振荡1MHZ6 CK + 4.1msCKSEL=0001 SUT=01
内部RC振荡1MHZ16 CK + 65msCKSEL=0001 SUT=10
内部RC振荡2MHZ6 CK + 0msCKSEL=0010 SUT=00
内部RC振荡2MHZ6 CK + 4.1msCKSEL=0010 SUT=01
内部RC振荡2MHZ6 CK + 65msCKSEL=0010 SUT=10
内部RC振荡4MHZ6 CK + 0msCKSEL=0011 SUT=00
内部RC振荡4MHZ6 CK + 4.1msCKSEL=0011 SUT=01
内部RC振荡4MHZ6 CK + 65msCKSEL=0011 SUT=10
内部RC振荡8MHZ6 CK + 0msCKSEL=0100 SUT=00
内部RC振荡8MHZ6 CK + 4.1msCKSEL=0100 SUT=01
内部RC振荡8MHZ6 CK + 65msCKSEL=0100 SUT=10
外部RC振荡≤0.9MHZ18CK + 0msCKSEL=0101 SUT=00
外部RC振荡≤0.9MHZ18CK + 4.1 msCKSEL=0101 SUT=01
外部RC振荡≤0.9MHZ18CK + 65msCKSEL=0101 SUT=10
外部RC振荡≤0.9MHZ6CK + 4.1msCKSEL=0101 SUT=11
外部RC振荡0.9-3.0MHZ18 CK + 0msCKSEL=0110 SUT=00
外部RC振荡0.9-3.0MHZ18 CK + 4.1ms CKSEL=0110SUT=01
外部RC振荡0.9-3.0MHZ18 CK + 65msCKSEL=0110 SUT=10
外部RC振荡0.9-3.0MHZ6 CK + 4.1msCKSEL=0110 SUT=11
外部RC振荡3.0-8.0MHZ18 CK + 0msCKSEL=0111 SUT=00
外部RC振荡3.0-8.0MHZ18 CK + 4.1ms CKSEL=0111SUT=01
外部RC振荡3.0-8.0MHZ18 CK + 65msCKSEL=0111 SUT=10
外部RC振荡3.0-8.0MHZ6 CK + 4.1msCKSEL=0111SUT=11
外部RC振荡8.0-12.0MHZ18 CK + 0msCKSEL=1000 SUT=00
外部RC振荡8.0-12.0MHZ18 CK + 4.1ms CKSEL=1000SUT=01
外部RC振荡8.0-12.0MHZ18 CK + 65msCKSEL=1000 SUT=10
外部RC振荡8.0-12.0MHZ6 CK + 4.1msCKSEL=1000SUT=11
低频晶振(32.768KHZ)1K CK + 4.1msCKSEL=1001SUT=00
低频晶振(32.768KHZ)1K CK + 65msCKSEL=1001SUT=01
低频晶振(32.768KHZ)32K CK + 65msCKSEL=1001SUT=10
低频石英/陶瓷振荡器(0.4-0.9MHZ)258 CK + 4.1 msCKSEL=1010SUT=00
低频石英/陶瓷振荡器(0.4-0.9MHZ)258 CK + 65msCKSEL=1010SUT=01
低频石英/陶瓷振荡器(0.4-0.9MHZ)1K CK + 0msCKSEL=1010SUT=10
低频石英/陶瓷振荡器(0.4-0.9MHZ)1K CK + 4.1msCKSEL=1010SUT=11
低频石英/陶瓷振荡器(0.4-0.9MHZ)1K CK + 65msCKSEL=1011SUT=00
低频石英/陶瓷振荡器(0.4-0.9MHZ)16K CK + 0msCKSEL=1011SUT=01
低频石英/陶瓷振荡器(0.4-0.9MHZ)16K CK +4.1msCKSEL=1011SUT=10
低频石英/陶瓷振荡器(0.4-0.9MHZ)16K CK +65msCKSEL=1011SUT=11
中频石英/陶瓷振荡器(0.9-3.0MHZ)258 CK + 4.1 msCKSEL=1100SUT=00
中频石英/陶瓷振荡器(0.9-3.0MHZ)258 CK + 65msCKSEL=1100SUT=01
中频石英/陶瓷振荡器(0.9-3.0MHZ)1K CK + 0msCKSEL=1100SUT=10
中频石英/陶瓷振荡器(0.9-3.0MHZ)1K CK + 4.1msCKSEL=1100SUT=11
中频石英/陶瓷振荡器(0.9-3.0MHZ)1K CK + 65msCKSEL=1101SUT=00
中频石英/陶瓷振荡器(0.9-3.0MHZ)16K CK + 0 msCKSEL=1101 SUT=01
中频石英/陶瓷振荡器(0.9-3.0MHZ)16K CK + 4.1ms CKSEL=1101SUT=10
中频石英/陶瓷振荡器(0.9-3.0MHZ)16K CK + 65msCKSEL=1101 SUT=11
高频石英/陶瓷振荡器(3.0-8.0MHZ)258 CK + 4.1 ms CKSEL=1110 SUT=00
高频石英/陶瓷振荡器(3.0-8.0MHZ)258 CK + 65 ms CKSEL=1110SUT=01
高频石英/陶瓷振荡器(3.0-8.0MHZ)1K CK + 0msCKSEL=1110 SUT=10
高频石英/陶瓷振荡器(3.0-8.0MHZ)1K CK + 4.1 ms CKSEL=1110SUT=11
高频石英/陶瓷振荡器(3.0-8.0MHZ)1K CK + 65 msCKSEL=1111 SUT=00
高频石英/陶瓷振荡器(3.0-MHZ) 16K CK +0 msCKSEL=1111 SUT=01
高频石英/陶瓷振荡器(3.0-MHZ) 16K CK +4.1ms CKSEL=1111 SUT=10
高频石英/陶瓷振荡器(3.0-MHZ) 16K CK +65msCKSEL=1111 SUT=11
高于8M选8M的。
2.2、高位(BOOT区设置)
2.2.1、调试相关位
JTAGEN(JTAG使能):1:JTAG禁止0:JTAG允许
OCDEN(片上调试使能):1:OCD功能禁止0:OCD功能允许
OCDEN:(使能 OCD片上调试系统;默认为1)必须对JTAGEN 熔丝位进行编程才能使能JTAG测试访问端口。此外还必须保持所有的锁定位处于非锁定状态,才能真正使片上调试系统工作。
作为片上调试系统的安全特性,在设置了LB1 或 LB2任一个锁定位时片上调试系统被禁止。否则,片上调试系统就会给安全器件留下后门。
JTAGEN:(使能 JTAG;默认为0)使用方法:在JTAG调试时,使能OCDEN JTAGEN两位并保持所有的锁定位处于非锁定状态;在实际使用时为降低功耗,不使能 OCDEN JTAGEN,大约减少2-3mA的电流。
2.2.2、在线下载
SPIEN(SPI下载允许):1:SPI下载禁止;0:SPI下载使能
注:在双龙的软件里,SPIEN是不能编辑的,默认为0。但是PROGISP中可以,默认为0。
2.2.3、选择放大器
CKOPT(选择放大器模式):CKOPT=0:高幅度振荡输出;CKOPT=1:低幅度振荡输出
当CKOPT被编程时振荡器在输出引脚产生满幅度的振荡。这种模式适合于噪声环境,以及需要通过 XTAL2驱动第二个时钟缓冲器的情况,而且这种模式的频率范围比较宽。当保持CKOPT 为未编程状态时,振荡器的输出信号幅度比较小。
其优点是大大降低了功耗,但是频率范围比较窄,而且不能驱动其他时钟缓冲器。
对于谐振器,当CKOPT未编程时的最大频率为8 MHz,CKOPT编程时为16 MHz。内部RC振荡器工作时不对CKOPT编程。
2.2.4、烧录时EEPROM已有数据如何处理
EEAVE(烧录时EEPROM数据保留):1:不保留;0:保留
2.2.5、复位后程序的入口选择
BOOTRST(复位入口选择):1:程序从0x0000地址开始 0:复位后从BOOT区执行(参考BOOTSZ0/1)
2.2.6、引导区程序大小及入口地址设置
BOOTSZ引导区程序大小入口
00:1024Word0xc00
01:512Word0xe00
10:256Word0xf00
11:128Word0xf80
3、熔丝位设定示例
使用外部16MHz晶体,禁止JTAG功能,其它默认。