如何在AVR中将系统时钟设置为32 MHz内部RC振荡器?

时间:2015-12-30 06:06:50

标签: avr

我正在开展一些项目,我需要为 ATXMEGA128A1 控制器启用32Mhz内部振荡器。有人帮帮我。

1 个答案:

答案 0 :(得分:2)

通过将SCLKSEL位(XMEGA控制寄存器CTRL中的位2:0)设置为001,系统时钟可以更改为32MHz内部振荡器,详见XMEGA A Manual部分7.9.1。

在运行时更改时钟源是XMEGA设备上的受保护操作,必须通过将签名值0xD8写入配置更改保护寄存器{{},按照手册第3.12节中所述的配置更改保护过程启用该操作。 1}}允许在接下来的4个指令周期内更改时钟源。签名值和CCP寄存器布局的定义可以在手册第3.14.1节中找到。

  

3.12配置更改保护

     

系统关键I / O寄存器设置可防止意外   修改。 SPM指令受到保护,以防意外   执行时,LPM指令在读取保险丝时受到保护   和签名行。这由配置全局处理   变更保护(CCP)寄存器。对受保护I / O的更改   寄存器或位,或受保护指令的执行仅是   CPU将签名写入CCP寄存器后可能发生。该   寄存器描述中描述了不同的签名。

     

3.12.1对受保护I / O寄存器的写操作序列

     
      
  1. 应用程序代码写入签名,用于将受保护的I / O寄存器更改为CCP寄存器。

  2.   
  3. 在四个指令周期内,应用程序代码必须将适当的数据写入受保护的寄存器。保护寄存器最多   还包含写使能/改变使能位。这个位必须是   在写入数据的同一操作中写入一个。该   如果CPU执行写操作,则立即禁用受保护的更改   操作I / O寄存器或数据存储器或SPM,LPM或   执行SLEEP指令。

  4.