×
单片机 > 单片机程序设计 > 详情

AVR 启动时间 设置方法

发布时间:2020-08-26 发布时间:
|

1。系统电源中有大的电容,上电速度比较慢(到达标准值时间长) 2。系统中其它的器件自己需要上电初始化,然后才能接收AVR的指令。 3。上电后马上要对片内EEPROM操作,但此时电源不稳定会出现问题 比如使用LCD2*16模块。此模块4V以上才能自己做初始化,然后接收AVR的指令。但AVR3V就工作了,马上发指令给LCD模块,LCD是不会响应的,通常形成显示不正常。此时可以考虑加长AVR的启动时间

 

初学者对熔丝经常不解,AVR芯片使用熔丝来设定时钟、启动时间、一些功能的使能、BOOT区设定、当然还有最让初学者头疼的保密位,设不好锁了芯片很麻烦。要想使MCU功耗最小也要了解一些位的设定。
1:未编程  
0:编程 
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 延时周后重新开始工作。             
因为M16L可以工作在2.7v~5.5v,所以触发电平可选2.7v(BODLEVEL=1)或4.0v(BODLEVEL=0);而M16工作在4.5~5.5V,所以只能选BODLEVEL=0,BODLEVEL=1不适用于ATmega16。 
2、复位启动时间选择 
SUT 1/0:  当选择不同晶振时,SUT有所不同。 
    如果没有特殊要求推荐SUT 1/0设置复位启动时间稍长,使电源缓慢上升。

3、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="1111" SUT="01" 
高频石英/陶瓷振荡器(3.0-8.0MHZ)        16K CK + 4.1ms         CKSEL="111"1 SUT="10" 
高频石英/陶瓷振荡器(3.0-8.0MHZ)        16K CK + 65ms          CKSEL="1111" 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下载使能 
注:在ISP的软件里,SPIEN是不能编辑的,默认为0。 
3、 CKOPT(选择放大器模式):
CKOPT=0:高幅度振荡输出;
CKOPT=1:低幅度振荡输出    
    当CKOPT 被编程时振荡器在输出引脚产生满幅度的振荡。这种模式适合于噪声环境,以及需要通过XTAL2 驱动第二个时钟缓冲器的情况,而且这种模式的频率范围比较宽。当保持CKOPT 为未编程状态时,振荡器的输出信号幅度比较小。其优点是大大降低了功耗,但是频率范围比较窄,而且不能驱动其他时钟缓冲器。
对于谐振器,当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




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
MSP430F5529 上手小例程2