《ZigBee开发笔记》第二部分 基础篇-第8章 CC2530系统睡眠唤醒--定时器唤醒

1 理论分析

当定时器的值等于 24 位比较器的值,就发生一次定时器比较。通过写入寄存器 ST2:ST1:ST0 来设置比较值。当 STLOAD.LDRDY 是 1 写入 ST0 发起加载新的比较值,即写入 ST2、ST1 和 ST0 寄存器的最新的值。

加载期间 STLOAD.LDRDY 是 0,软件不能开始一个新的加载,直到 STLOAD.LDRDY 回到 1。读 ST0 将捕获 24 位计数器的当前值。因此,ST0 寄存器必须在 ST1和 ST2 之前读,以捕获一个正确的睡眠定时器计数值。当发生一个定时器比较,中断标志 STIF 被设置。每次系统时钟,当前定时器值就被更新。因此,当从 PM1/2/3(这期间系统时钟关闭)返回,如果尚未在 32kHz 时钟上检测到一个正时钟边沿,ST2:ST1:ST0 中的睡眠定时器值不更新, 要保证读出一个最新的值, 必须在读睡眠定时器值之前,在 32kHz 时钟上通过轮询 SLEEPSTA.CLK32K 位,等待一个正的变换。

ST 中断的中断使能位是 IEN0.STIE,中断标志是 IRCON.STIF。

当运行在所有供电模式,除了 PM3 时,睡眠定时器将开始运行。因此,睡眠定时器的值在 PM3 下不保存。在 P1 和 PM2 下睡眠定时器比较事件用于唤醒设备,返回主动模式的主动操作。复位之后的比较值的默认值是 0xFFFFFF。
睡眠定时器比较还可以用作一个 DMA 触发。

注意:如果电压降到 2V 以下同时处于 PM2,睡眠间隔将会受到影响

2 实验详解

2.1实验目的

  1. 掌握几种系统电源模式的基本设置及切换。
  2. 将睡眠模式下的CC2530 通过定时器唤醒,观察LED 闪烁现象

2.2实验设备

硬件:PC 机一台ZB2530(底板、核心板、仿真器、USB 线) 一套
软件:win7 系统,IAR 8.20 集成开发环境

你可能感兴趣的:(《嵌入式》ZigBee开发笔记)