附录A:对EnergyMicro EFM32 LFXO进行编程
EFM32时钟管理单元
所有片上振荡器由时钟管理单元(CMU)控制。 CMU提供了对所有外设模块进行单独配置和打开/关闭时钟的功能。 可以将外部时钟源连接到LFXO的LFXTAL_N引脚。通过在MU_CTRL [12:11]中配置LFXOMODE字段,可以绕过LFXO。
表9:CMU_CTRL - CMU控制寄存器
表10:LFXOMODE字段
要绕过片内振荡器,将“0x2”写入LFXOMODE [12:11]字段。
当在CMU_OSCENCMD中将1写入LFXOEN时,振荡器设置生效。
当在CMU_OSCENCMD中向LFXODIS写入1时,振荡器设置将复位为默认值。
表11:CMU_OSCENCMD - 振荡器使能/禁止命令寄存器
表12:OSCENCMD - [31:3]字段说明
表13:CMU_STATUS - 状态寄存器
表14:CMU_STATUS - [14:8]字段说明
配置LFXO
以下是IAR Embedded Workbench IDE中LFXO配置的代码片段:
1.通过设置CMU_OSCENCMD [8]中的LFXOEN位使能LFXO振荡器。
2.等待CMU_STATUS [9]中的LFXORDY位置1。 仅适用于XTAL模式,否则跳过此步骤。
LFXO能够以小信号幅度(100mV)的外部时钟源进行工作以上)。 可以通过配置LFXMODE字段来设置此模式(AC模式 - BUFEXTCLK)在CMU_CTRL [12:11]寄存器中(见表9)。
附录B:对STMicroelectronics STM32进行编程LSE振荡器
低速外部时钟振荡器
低速外部(LSE)晶体振荡器可以通过设置/清除来打开/关闭RCC_CSR [8]寄存器中的LSEON位。
表15:控制/状态寄存器(RCC_CSR)
RCC_CSR [9]寄存器中的LSERDY标志表示LSE晶体是稳定的还是不。 在启动时,LSE晶体输出时钟信号不会被释放,直到该位由硬件置1。如果在RCC_CIR [8](表16)中启用,则可以产生中断。
表16:时钟中断寄存器(RCC_CIR)
外部时钟源(LSE旁路)
可以将外部时钟源连接到LSE振荡器的OSC32_IN引脚。 这个通过设置RCC_CSR中的LSEBYP和LSEON位来选择功能(表15)。该具有〜50%占空比的外部时钟信号(正方形,正弦或三角形)必须驱动OSC32_IN引脚,而OSC32_OUT引脚应保持未连接(Hi-Z)。
LSE上的时钟安全系统
LSE振荡器上的时钟安全系统可以通过软件编写激活REC_CSR寄存器中的LSECSSON(表15)。 该位只能由硬件禁用复位或RTC软件复位,或LSE振荡器故障检测后。 LSECSSON必须在LSE和LSI启用(LSEON和LSION启用)并准备就绪(LSERDY和由硬件设置的LSIRDY),并且在RTCSEL选择了RTC时钟之后。该LSE上的CSS工作在所有模式:运行,睡眠,停止和待机。
如果在外部32 kHz振荡器上检测到故障,则不再提供LSE时钟RTC,但没有对寄存器进行硬件操作。 在待机模式下,唤醒是产生。 在其他模式下,可以发送中断唤醒。 软件必须然后禁用LSECSSON位,停止有缺陷的32 kHz振荡器(禁用LSEON),并且可以更改RTC时钟源(无时钟或LSI或HSE,使用RTCSEL),或采取任何所需确保应用程序的动作。
时钟能力
微控制器时钟输出(MCO)功能允许时钟输出到外部MCO引脚(PA8)使用可配置的预分频器(1,2,4,8或16)。 的配置寄存器相应的GPIO端口必须以备用功能模式进行编程。
可以选择七个时钟信号之一作为MCO时钟:
系统时钟(SYSCLK)
内部RC 16MHz(HSI)振荡器
内部65 kHz至4.2 MHz(MSI)振荡器
外部1至24 MHz(HSE)振荡器
PLL
内部低功耗振荡器(LSI)
低功耗32.768 kHz外部振荡器(LSE)
该选择由RCC_CFGR寄存器的MCOSEL [2:0]位控制(表17)。
表17:配置寄存器(RCC_CFGR)
注意:如果将LSE或LSI用作RTC时钟源,则RTC将继续工作在停止和待机低功耗模式,可用作唤醒源。 但是,当HSE时钟用作RTC时钟源,RTC不能用于停止和待机低功耗模式。
配置LSE
在配置LSE之前,重置RCC_CSR中的LSEON [8]和LSEBYP [10]位。
设置新的LSE配置。 如果需要旁路模式并设置,请设置LSEBYP [10]位LSEON位。 它可以同时执行。
IAR嵌入式工作台 IDE示例:
等待RCC_CSR中的LSERDY [9]位准备就绪。 这在使用外部时是适用的水晶。
附录C:瑞萨电子的编程RL78G13 XT1振荡器
XT1振荡器
XT1振荡器是具有低增益的电路,以实现低功耗。 那里是可以选择的CMC寄存器(表20)中的AMPHS1 [2],AMPHS0 [1]字段晶体的最佳增益
表18:振荡模式字段
配置XT1
1)将CSC [6]中的XTSTOP位置1以禁止XT1振荡器。
2)如果需要,更改振荡模式(AMPHS1,AMPHS0)。
3)通过设置/清除CMC中的EXCLKS,OSCSELS字段来设置振荡器模式寄存器(表20)。
4)清除CSC [6](表19错误!参考源未找到)中的XTSTOP位以使能XT1振荡器。
表19:CSC注册
表20:CMC注册表