无线通信技术综合训练实验指导书I(CC2530基础)实验三
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5:3
TICKSPD[2:0]
001
R/W
101:1MHz 110:500kHz 111:250kHz 注意 CLKCONCMD.TICKSPD 可以设置为任何值,但是其 结 果 受 CLKCONCMD.OSC 设 置 的 限 制 , 即 如 果 CLKCONCMD.OSC=1,而 CLKCONCMD.TICKSPD=000, 但是 CLKCONCMD.TICKSPD 读出为 001,实际 TICKSPD 是 16MHz。 时钟速度。不能高于由 OSC 设置位设置的系统时钟设置。 指示当前系统时钟频率。 000:32MHz 001:16MHz 010:8MHz 011:4MHz 100:2MHz 101:1MHz 110:500kHz 111:250kHz 注意 CLKCONCMD.CLKSPD 可以设置为任何值, 但是其结 果 受 CLKCONCMD.OSC 设 置 的 限 制 , 即 如 果 CLKCONCMD.OSC=1,而 CLKCONCMD.CLKSPD=000, 但是 CLKCONCMD.CLKSPD 读出为 001, 实际 CKKSPD 是 16MHz。 还要注意调试器不能和一个划分过的系统时钟一起工作。 当 运 行 调 试 器 时 , 如 果 CLKCONCMD.OSC=0 , 那 么 CLKCONCMD.CLKSPD 的 值 必 须 设 为 000 ; 如 果 CLKCONCMD.OSC=1 ,那么 CLKCONCMD.CLKSPD 的 值必须设为 001 。
第 46 页
无线通信技术综合训练实验指导书 I
CC2530 基础
32kHz
图 3-3-1 系统时钟概况
2. 系统时钟 系 统 时 钟 由 选 定 的 系 统 时 钟 源 32MHz 晶 体 振 荡 器 或 者 16MHz RC 振 荡 器 而 来 。 CLKCONCMD.OSC 位选择系统时钟源。请注意,使用 RF 收发器,必须选择 32MHz 晶体振荡器且 它必须稳定。 请 注 意 , CLKCONCMD.OSC 位 的 改 变 不 会 引 起 系 统 时 钟 瞬 间 发 生 改 变 。 当 CLKCONSTA.OSC=CLKCONCMD.OSC 时,时钟源首先发生改变。因为对一个稳定时钟的要求优 先于对时钟源的实际改变。另外请注意 CLKCONCMD.CLKSPD 位反映系统时钟的频率,因此它是 CLKCONCMD.OSC 位的镜像。 选择 32MHz 晶体振荡器为振荡源,且它稳定之后,即当 CLKCONSTA.OSC 位从 1 变为 0 时, 就校准 16MHz RC 振荡器。 注意:从 16MHz 时钟源切换到 32MHz 时钟源(反之亦然) ,与 CLKCONCMD.TICKSPD 设置 一致。当 CLKCONCMD.OSC 改变时,CLKCONCMD.TICKSPD 设置得较慢会导致实际源发生改变 的时间较长。当 CLKCONCMD.TICKSPD 等于 000 时,转换时间最短。 3. 32kHz 晶振 第 47 页
第 49 页
实验三
系统时钟源的选择
000:32MHz 001:16MHz 010:8MHz 011:4MHz 100:2MHz 101:1MHz 110:500kHz 111:250kHz 当前时钟速度: 000:32MHz 001:16MHz 010:8MHz 2:0 CLKSPD 001 R 011:4MHz 100:2MHz 101:1MHz 110:500kHz 111:250kHz
实验三
系统时钟源的选择
实验三
系统主时钟源的选择
CC2530 有一个内部系统时钟或主时钟。该时钟的振荡源既可以用 16MHz RC 振荡器,也可以 采用 32MHz 晶体振荡器。时钟的控制可以由特殊功能寄存器 CLKCONCMD 来实现。此外,还有一 个 32kHz 时钟源也可以用 RC 振荡器或者晶体振荡器,也由 CLKCONCMD 寄存器控制。寄存器 CLKCONSTA 是一个只读寄存器,用来获得当前时钟状态。振荡器可以选择高精度的晶体振荡器, 也可以选择低功耗的 RC 振荡器。注意,运行 RF 收发器,必须使用 32MHz 晶体振荡器。
表 3-3-1 SLEEPCMD(0xBE)——功耗模式控制器制器 位号 位名 复位值 操作性 功能描述 禁止 32kHz RC 振荡器校准 0:32kHz RC 振荡器校准使能 7 OSC32K_CALDIS 0 R/W 1:32kHz RC 振荡器校准禁止 可以随时对该位进行设置,但是直到 16MHz 高频 RC 振荡 器被选作为系统时钟的时钟源,该位才能生效。 6:3 2 — — 000 0 1 R0 R/W 保留 保留。总是写为 1 功耗模式设置 00 :主动/空闲模式 1:0 MODE[1:0] 00 R/W 01 :功耗模式 1 10 :功耗模式 2 11 :功耗模式 3 表 3-3-2 CLKCONCMD(0xC6)——时钟控制命令寄存器 位号 位名 复位值 操作性 功能描述 32kHz 时钟源选择。设置该位只是启动一个时钟源的更改。 CLKCONSTA.OSC32K 反应了当前的设置。 当该位被改变了 7 OSC32K 1 R/W 16MHz 高频 RC 振荡器必须被选为系统时钟源。 0:32kHz 晶体振荡器 1:32kHz RC 振荡器
一、实验目的
通过本实验的学习,熟悉 CC2530 芯片内部系统时钟或主时钟的配置和使用方法。 1. 2. 熟悉 CC2530 芯片系统时钟源(主时钟源)的选择; 掌握高速晶体振荡器或 RC 振荡器的配置和使用。
二、实验内容
通过配置开发板上 CC2530 芯片的主时钟频率,从而改变指示灯 LED 闪烁的频率。
三、实验条件
1. 2. 3. 4. 用户 PC 机 (装有 Microsoft Windows XP 系统) 正确安装 IAR Embedded Workbench for 8051 集成开发环境; 开发板(插有 CC2530 模块)1 块; CC Debugger 多功能调试器 1 个; USB-RS232 转接线。
五、基本实验
按照实验一的实验步骤,连接实验设备,启动 IAR 开发环境,创建一个新工程,将下列程序添 加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译、软硬件仿 真、下载,观察实验现象。 /*********************************** * * * * Author: TAO Weige Modtime: 2012-8-3 (c) Copyright 2012 TAO Weige 功能:系列片上系统基础实验---统时钟源(主时钟源)的选择 指示灯自动更新闪烁频率 描述:分别选择32MHz晶体振荡器和16MHz RC振荡器作为CC253x系列 片上系统的系统时钟源(主时钟源),看相同的LED闪烁代码在 这两种时钟源下的闪烁速度的区别。 ***********************************/ #include <ioCC2530.h> #define uint unsigned int #define uchar unsigned char enum SYSCLK_SRC{XOSC_32MHz,RC_16MHz}; #define master_node //#define slave_node #ifdef master_node #define LED1 P1_0 第 50 页
2:0
CLKSPD
001
R/W
表 3-3-3 CLKCONSTA(0x9E)——时钟控制状态寄存器 位号 7 位名 OSC32K 复位值 1 操作性 R 功能描述 当前所选择的 32kHz 时钟源: 0:32kHz 晶体振荡器 1:32kHz RC 振荡器 当前所选择的系统时钟: 6 OSC 1 R 0:32MHz 晶体振荡器 1:16MHz 高频 RC 振荡器 5:3 TICKSPD[2:0] 001 R 当前定时器 tick 输出设置。
实验三
系统时钟源的选择
设备里有 2 个 32kHz 振荡器作为 32kHz 时钟的时钟源: 32kHz 晶体振荡器; 32kHz RC 振荡器。 默认情况下,复位后,32kHz RC 振荡器启用且被选为 32kHz 时钟源。RC 振荡器的功耗更低, 但是不如 32kHz 晶体振荡器精确。32kHz 时钟源运行睡眠定时器,为看门狗定时器产生 tick,且当 计算睡眠定时器的睡眠时间时它被作为定时器 2 的选通脉冲。通过 CLKCONCMD.OSC32K 寄存器 位来选择哪一个振荡源作为 32kHz 振荡源。 可以随时设置寄存器位 CLKCONCMD.OSC32K,但是在 16MHz RC 振荡器作为系统时钟源之 前都不起作用。 当系统时钟从原来的 16MHz RC 振荡器变为 32MHz 晶体振荡器 (CLKCONCMD.OSC 从 1 变为 0) ,如果选择了 32kHz RC 振荡器,就开始校准 32kHz RC 振荡器。校准期间,使用分频 的 32MHz 晶体振荡器。 校准的结果是 32kHz RC 振荡器运行在 32.753kHz。 32kHz RC 振荡器校准最 多可能需要 2ms 完成。通过设置寄存器位 SLEEPCMD.OSC32K_CALDIS 为 1 可以禁止校准。校准 结束时,在 32kHz 时钟源上可能会产生一个多余的脉冲,而导致睡眠定时器增加 1。 注意:转换到 32kHz 晶体振荡器之后,当从 PM3 醒来且 32kHz 晶体振荡器使能时,振荡器需 要长达 500ms 来稳定在正确的频率。在 32kHz 晶体振荡器稳定之前,睡眠定时器、看门狗定时器和 时钟丢失探测器都不能使用。 4. 振荡器和时钟寄存器 在 PM0 功耗模式下, 可配置 32MHz 晶体振荡器或者 16MHz RC 振荡器作为系统时钟 (关于 PM0 功耗模式,将在后面的实验中阐述) ,设置系统时钟需要操作两个寄存器:SLEEPCMD(睡眠模式 控制寄存器)如表 3-3-1 和 CLKCONCMD(时钟控制寄存器)如表 3-3-2 所示,高速时钟系统如图 3-3-1 所示,CLKCONCMD.OSC 用于选择系统时钟为 XTAL 或 RC,SLEEPCMD.MODE[1:0]设置为 系统功耗模式为 0。CLKCONSTA(时钟控制状态寄存器)如表 3-3-3 所示. 下面阐述振荡器和时钟寄存器。除非另有说明,在进入PM2或者PM3时所有寄存器位保持其之 前的值。
四、实验原理
1. 振荡器 图 3-3-1 给出了具有可用时钟源的时钟系统的概况。 设备中有 2 个高频振荡器: 32MHz 晶体振荡器; 16MHz RC 振荡器。 对于一些应用程序来说,32MHz 晶体振荡器的启动时间可能太长了,因此设备可以运行在 16MHz RC 振荡器,直到晶体振荡器处于稳定状态。16MHz RC 振荡器的功率比晶体振荡器要低, 但因为它的精度不如晶体振荡器,所以它不能用于 RF 收发器运行。 设备中有 2 个低频振荡器: 32kHz 晶体振荡器; 32kHz RC 振荡器。 32kHz 晶体振荡器被设计为工作在 32.768kHz,并为要求精确时间的系统提供一个稳定的时钟 信号。32kHz RC 振荡器工作在校准的 32.753kHz,只有当 32MHz 晶体振荡器启用时才能进行校准, 校准可以通过使能 SLEEPCMD.OSC32K_CALDIS 位来禁止。 对于 32kHz 晶体振荡器、 32kHz RC 振 荡器可以用于降低成本和功耗的解决方案。这两个 32kHz 振荡器不能同时运行。
第 48 页
无线通信技术综合训练实验指导书 I
CC2530 基础 系统时钟源选择。设置该位只是启动一个时钟源的更改。
6
Baidu Nhomakorabea
OSC
1
R/W
CLKCONSTA.OSC 反应了当前的设置。 0:32MHz 晶体振荡器 1:16MHz 高频 RC 振荡器 定时器 tick 输出设置。不能高于由 OSC 设置位设置的系统 时钟设置。 000:32MHz 001:16MHz 010:8MHz 011:4MHz 100:2MHz