8.2 熔丝位简介
特别注意:熔丝位是跟目标板硬件、芯片内的程序、最终产品应用环境密切相关的一种"设置",这个"设置"需要用户(工程师)自己来决定,外人是无法帮助的,下面以ATmega16为例,对其熔丝位进行简单描述,其它型号可以参考本描述
一、熔丝位的作用
熔丝位的最终目的,是把目标板硬件与软件联系起来的一种方式,同时也具备配置使用环境的功能。比如说用户的程序是基于7.3728MHz设计的,那么就需要对熔丝位里面的"时钟位"进行设置,将其设置为"外部高速晶体振荡源",并且在目标板上为芯片设计一个7.3728MHz的晶振。又比如说用户的程序使用到了"看门狗",那么用户必须在熔丝位里面设置"看门狗复位",这样看门狗才能发生作用。
二、熔丝位剖析
三、锁定位剖析
四、设置时钟源
通过设置熔丝位可以将AVR的时钟源分为:内部时钟及外部时钟
内部时钟与外部时钟又分多种,下面是时钟源与熔丝位的关系:
时钟源 |
熔丝位 CKSEL3..0 |
备注 |
外部晶体 / 陶瓷振荡电路 |
1111 ~ 1010 |
|
外部低频晶体振荡器 |
1001 |
|
外部 RC 振荡器 |
1000 ~ 0101 |
|
内部 RC 振荡器 |
0100 ~ 0001 |
|
外部时钟 |
0000 |
|
初次使用AVR的开发人员最常碰到的问题是"如何正确设置AVR时钟源",下面列举几个常见案例让大家了解时钟源
案例1 将Atmega16的时钟源设置为内部 8M RC振荡电路
分析:Atmega16的内部时钟对应的熔丝位及其对应的频率如下
相应的,在AVRStudio里,8M RC振荡电路,可选择下面的其中一项,若无特殊要求,一般推荐选择最后一项
案例2 将Atmega16的时钟源设置为外部7.3728M晶体振荡电路
分析: Atmega16的外部晶体振荡电路对应的熔丝位及其对应的频率如下
相应的,在AVR Studio里外部7.3728M晶体振荡电路可选择下面的其中一项,若无特殊要求一般推荐选择最后一项
特别注意:设置为外部晶体振荡电路,AVR必须在外部连接外部晶体振荡电路,否则日后将导致芯片"假锁死"
如下图,在AVR的外部接有外部晶体振荡电路
案例3)将Atmega16的时钟源设置为外部4M时钟
分析:Atmega16的外部时钟对应的熔丝位及其对应的频率如下
相应的,在AVR Studio里外部4M时钟,根据实际情况可选择下面的其中一项,若无特殊要求一般推荐选择最后一项
特别注意:设置为外部时钟,AVR必须有外部时钟输入,否则日后将导致芯片"假锁死"
如下图:在AVR的外部接有外部时钟电路
|