avr 单片机 CKSEL[3:0]是什么意思啊?
发布网友
发布时间:2022-05-30 17:29
我来回答
共1个回答
热心网友
时间:2023-10-22 12:22
刚开始用AVR吧?
AVR的功能很多,其体现在可以选择片内、片外多种时钟源、自带看门狗电路、自带程序加密等功能上。
而这些功能的选择和设定是通过片内叫做“熔丝位”的状态标志来设置的。
如果把AVR单片机里你编写的程序比作电脑运行的操作系统和应用软件的话,熔丝位就相当于电脑主板的BIOS设置了。
在一些AVR用的ISP编程软件里,你可以访问到熔丝位。
avr 单片机 CKSEL[3:0]正是熔丝位设置中的一部分,从字面上就能看出,大致是clock select(时钟源选择)的意思,共有(Bit3~Bit0)四位,通过设置这四位的状态,可以决定单片机将使用何种振荡源作为时钟。
以Mega8单片机为例,CKSEL位的设置通常会伴随CKOPT位一起进行。
下面是在网上搜索到的注释,供你参考:
CKSEL3/0=0000:外部时钟,
CKOPT=0:允许芯片内部XTAL1管脚对GND接一个36PF电容;
CKOPT=1:禁止该电容
----------------
CKSEL3/0=0001-0100:采用内部RC振荡作为时钟源,其具体震荡频率是:
0001:1.0M
0010:2.0M
0011:4.0M
0100:8.0M
这里CKOPT只能设置为1
----------------
CKSEL3/0=0101-1000:采用外部RC振荡作为时钟源,
CKOPT=0:允许芯片内部XTAL1管脚对GND接一个36PF电容;
CKOPT=1:禁止该电容
根据震荡频率范围,设置相应的熔丝位
0101:<0.9M
0110:0.9-3.0M
0111:3.0-8.0M
1000:8.0-12.0M
----------------
CKSEL3/0=1001:采用外部时钟信号作为时钟源,
CKOPT=0:允许芯片内部XTAL1/XTAL2管脚对GND各接一个36PF电容;
CKOPT=1:禁止该电容
----------------
CKSEL3/0=1010-1111:采用外部晶振,陶瓷振荡子作为时钟源,
CKOPT=0:高幅度振荡输出(XTAL1引脚将输出一个大幅度的震荡信号,用于某些情况下供给其他处理器当做时钟源,以达到时钟同步);
CKOPT=1:低幅度振荡输出(XTAL1引脚输出低幅度的震荡信号,用以省电、减少干扰);
并依据晶体的震荡频率范围,设置相应的熔丝位
101X:0.4-0.9M
110X:0.9-3.0M
111X:3.0-8.0M
估计你是在看书或者资料的过程中碰到这个“CKSEL[3:0]”的设置被卡住了,其实你细心一点查看一下mega8的datasheet、或者参考书籍(书籍多为datasheet的译文),你就会明白是怎么回事。