中颖很多8位MCU产品支持外部32.768kHz晶振,用作系统低频时钟和RTC时钟。有几个常用的控制寄存和代码选项与32.768kHz晶振电路相关,下文以SH86F7088举例逐一说明。
1、32K_SPDUP
32K_SPDUP是32.768kHz晶振加速模式控制位,位于时钟控制寄存器(CLKCON)的最高位,上电默认是使能状态。只有代码选项OP_OSC选择了32.768kHz晶体振荡器,此控制位才有效。
此寄存器位在系统发生任何形式的复位,如上电复位、看门狗复位等时,自动由硬件置1(使能),用以加速32.768kHz振荡器起振,缩短起振时间。
如果有需要,本位也可以由软件置1(使能)或者清0(关闭)。比如进入掉电模式前,可以将此位置1,掉电模式唤醒后再由软件清0。
使能此位后,会增加一点系统功耗。在低功耗应用中,可以关闭32.768kHz加速模式(此位清0)以节省系统耗电。
2、OP_32KDRIVE
OP_32KDRIVE是用户代码选项,用于使能晶振电路的强驱模式。在此模式下,晶振电路的抗湿度能力会显著增强,但功耗也会相应增加。此代码选项的初始默认设置是普通模式。
为了方便程序控制强驱模式,IC还设计了一个寄存器控制位(32K_DRIVE),功能同此代码选项相同。
备注:
(1) 使能强驱模式时,晶振匹配电容不能小于15pF;
(2)一旦使能强驱模式,即使没有使用外部32K晶振,增加的功耗也会持续存在。
3、32K_DRIVE
32K_DRIVE是32.768kHz晶振强驱模式的寄存器控制位,位于时钟控制寄存器(CLKCON)的bit 1,复位初始值由代码选项OP_32KDRIVE给出。只有代码选项OP_OSC选择了32.768kHz晶体振荡器,此控制位才有效。
寄存器控制位32K_DRIVE和代码选项OP_32KDRIVE的功能相同,都是强驱模式控制位,但是它们的有效范围有一些区别:
(1) IC复位后,OP_32KDRIVE有效,强驱模式受代码选项控制,此时32K_DRIVE的初始值同OP_32KDRIVE的值。
(2) 用户用程序修改32K_DRIVE的值后,32K_DRIVE生效,强驱模式受寄存器位控制。此时OP_32KDRIVE无效,直到发生系统复位后才再次生效。
4、OP_32KLCAP
OP_32KLCAP是用户代码选项,用于配置芯片内建的32.768kHz晶振匹配电容,初始默认设置是选择12pF内建电容。
内建匹配电容用于替代片外匹配电容,可以精简BOM。如果要使用片外匹配电容,需要用此代码选项关闭内建匹配电容。内建匹配电容有7档可选,容值范围8~25pF,容值最大偏差±15%。
为了方便程序选择内建电容值,IC还设计了寄存器控制位(LCAP[2:0]),功能同此代码选项相同。
5、LCAP[2:0]
LCAP[2:0]是寄存器控制位,也是用来配置芯片内建的32.768kHz晶振匹配电容。位于内建电容选择寄存器(OSCLCAPS)的bit[2:0],复位初始值由代码选项OP_32KLCAP给出。只有代码选项OP_OSC选择了32.768kHz晶体振荡器,此控制位才有效。
寄存器控制位LCAP[2:0]和代码选项OP_32KLCAP的功能相同,都是配置内建匹配电容,但是它们的有效范围有一些区别:
(1) IC复位后,OP_32KLCAP有效,内建匹配电容受代码选项控制,此时LCAP[2:0]的初始值同OP_32KLCAP的值。
(2) 用户用程序修改LCAP[2:0]的值后,LCAP[2:0]生效,内建匹配电容受寄存器位控制。此时OP_32KLCAP无效,直到发生系统复位后才再次生效。
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !