1.ZigBee内部有两个RC晶振,分别是低速的32k和高速的16MB。外部也有两个晶振,低速的32.768k和高速的32MB晶振。无线通信的时候要选择高速的32MB晶振,那样会比较精确。两个高频时钟源可以同时起震,产生时钟信号,而低频时钟源只能有一个起震。
2.涉及到时钟控制的主要是两个寄存器
(1)命令寄存器:主要控制时钟源的选择。
-----》第七位:选择低频时钟(内部VS外部)
-----》第六位:选择高频时钟(内部VS外部)
-----》低三位:主要设置高速时钟的分频系数,从而决定CPU直接使用的频率。
(2)状态寄存器:
由于切换时钟源,需要一定的等待时间,所以要通过状态寄存器的高两位来判断此时此刻使用的是外部时钟还是内部时钟。
3.注意2530要一个高频时钟配合一个低频时钟同时使用才可以正常工作。如果选用16MB的内部RC,最快也只有16MB,而且系统上电以后是默认选择内部时钟的。
4.操作步骤
(1)设置命令寄存器,选择内部或者外部时钟源
(2)用while语句等待时钟工作稳定,主要是读取状态急寄存器
(3)再次设置命令寄存器,得到分频系数。
通用操作步骤:
具体步骤:
1、让SLEEPCMD的第2位为0;
2、SLEEPSTA寄存器的第6位为1表示32M 时钟源稳定
3、超过63微秒延时
4、把寄存器CLKCONCMD的低3位 设置为000,表示不分频输出
5、把寄存器CLKCONCMD的第6位 清0,设置32M作为系统主时钟
6、如果读CLKCONSTA这个寄存器的第6位为0,表示32M的时钟源已经作为了当前的系统主时钟,程序可以往下运行了。