我正在开展一些项目,我需要为 ATXMEGA128A1 控制器启用32Mhz内部振荡器。有人帮帮我。
答案 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寄存器的写操作序列
应用程序代码写入签名,用于将受保护的I / O寄存器更改为CCP寄存器。
- 醇>
在四个指令周期内,应用程序代码必须将适当的数据写入受保护的寄存器。保护寄存器最多 还包含写使能/改变使能位。这个位必须是 在写入数据的同一操作中写入一个。该 如果CPU执行写操作,则立即禁用受保护的更改 操作I / O寄存器或数据存储器或SPM,LPM或 执行SLEEP指令。