CC2530 系统时钟初始化
系统时钟
系统时钟是从所选的主系统时钟源获得的,主系统时钟源可以是 32 MHz XOSC 或 16 MHz RCOSC。CLKCONCMD.OSC 位选择主系统时钟的源。注意要使用 RF 收发器,必须选择高速且稳定的 32 MHz 晶振。
注意改变 CLKCONCMD.OSC 位不会立即改变系统时钟。时钟源的改变首先在 CLKCONSTA.OSC =CLKCONCMD.OSC 的时候生效。这是因为在实际改变时钟源之前需要有稳定的时钟。还要注意CLKCONCMD.CLKSPD 位反映系统时钟的频率,因此是 CLKCONCMD.OSC 位的映像。
选择了 32 MHz XOSC 且稳定之后,即当 CLKCONSTA.OSC位从 1 变为 0,16 MHz RC 振荡器就被校准。
时钟分为:高速时钟和低速时钟
高速时钟:CPU、串口等
低速时钟:看门狗定时器、睡眠定时器等
示例:系统时钟 设置为32MHz晶振,不分频
void InitClock(void)
{
CLKCONCMD &= ~(1<<6); /*选择32MHz晶振*/
while(!(SLEEPSTA & (1<<6))); /*等待晶振稳定*/
CLKCONCMD &= ~0x07; /* 不分频*/
SLEEPCMD |= (1<<2);/*关闭不用的RC振荡器,可省*/
}
查看CC2530 的数据手册,参考一下寄存器:
如果想深入了解,请亲自查看数据手册,会受益匪浅的。
CC2530的很多IO接口部件运行都与时钟有密切关系,如串口控制器的波特率、 定时器的定时周期、RF电路,我们要能够正确地通过程序来操纵这些接口,必须让CC2530工作在一定的时钟频率下。