《第五周CC2530电源及系统时钟的管理(大课)介绍课件》由会员分享,可在线阅读,更多相关《第五周CC2530电源及系统时钟的管理(大课)介绍课件(36页珍藏版)》请在金锄头文库上搜索。
1、单片机原理与应用,教学回顾,大课 (1)CC2530和8051的关系; (2)CC2530结构; (3)物理存储器的映射(难点) (4)CC2530 GPIO口编程(重点) 小课 (1)点亮一盏发光二极管并闪烁; (2)8051上的C语言位运算,教学回顾,1.当变量X的第n位需清0,其它位不变,可使用: X 3.当需要检测Px的第n位是否为0时,可以使用 : if(Px ,一、 振荡器,CC2530共有四个振荡器,它们为系统时钟提供时钟源。,16MHz内部RC振荡器,32MHz外部晶振,32KHz外部晶振,32KHz内部RC振荡器,两个低频振荡器,两个高频振荡器,RC振荡器:成本较低,但由于电
2、阻电容的精度导致振荡频率会有误差,同时 受到温度、湿度的影响; 晶体振荡器:振荡频率一般都比较稳定,但价格要稍高点,使用时一般还需 要接两个15-33pF起振电容。,1. 振荡器的作用,16MHz内部RC振荡器(简称16MHz RC振荡器):,32MHz外部晶振(简称32MHz晶振):,32KHz外部晶振(简称32KHz晶振),32KHz内部RC振荡器(简称32KHZ RC振荡器),除了为内部时钟提供时钟源之外,主要用于RF收发器。,运行在32.753KHz上,当系统时钟需要校准时使用此振荡器,校准只能发生在系统时钟工作由16MHz RC震荡器转到32MHz晶振的时候。,也可以为内部时钟提供时
3、钟源,但是16MHz RC振荡器不能用于RF收发器操作。对于一些应用程序来说32MHz晶振的启动时间较长,设备可以采用先运行16MHz RC振荡器,直到32MHz晶振稳定。,运行在32.768KHz上,为系统需要的时间精度提供一个稳定的时钟信号。,不能同时使用,2. 系统时钟及寄存器,CC2530内部有一个内部系统时钟或主时钟。 在CC2530中系统时钟源是从所选的主系统时钟源获得的,主时钟一般由32MHz晶振或16MHz RC振荡器提供。由于32MHz晶振启动时间比较长,因此当选用32MHz晶振作为主时钟源时,内部首先选择16MHz RC振荡器使系统运转起来,当32MHz晶振稳定之后才使用3
4、2MHz晶振作为主时钟源 可以通过操作时钟寄存器选择使用哪个时钟源。,时钟寄存器主要有两个寄存器:,时钟控制命令寄存器CLKCONCMD,时钟控制状态寄存器CLKCONSTA,2. 系统时钟及寄存器,CLKONCMD时钟控制命令寄存器,/设置时钟晶振为32MHZ CLKCONCMD ,2. 系统时钟及寄存器,CLKONCMD时钟控制命令寄存器,2. 系统时钟及寄存器,CLKCONSTA时钟控制状态寄存器,/设置当前时钟为32MHz晶振 CLKCONSTA ,2. 系统时钟及寄存器,CLKCONSTA时钟控制状态寄存器,二、 电源管理和复位,CC2530提供多种供电模式,不同的工作方式需要在相应
5、的供电模式下进行,因此CC2530在工作时首先要选择供电模式 。,1. 供电模式,CC2530的供电模式有五种:,主动模式 空闲模式 PM1、PM2和PM3,其中主动模式又称一般模式或完全功能模式。不同的供电模式对系统运行的影响不同,1. 供电模式,1. 供电模式,主动模式:完全功能模式。稳压器的数字内核开启;高频振荡器运行行为:高频振荡器32MHz晶振或16MHz RC振荡器运行,或者两者都运行; 低频振荡器运行行为:低频振荡器的32KHz晶振或32KHzRC振荡器运行。 在此模式下CPU、外设和RF收发器都是活动的,可通过操作寄存器使CPU内核停止运行,进入空闲模式;也可通过复位、外部中断
6、或睡眠定时器到期唤醒空闲模式。,空闲模式:除了CPU内核停止运行,其他的运行方式和主动模式的运行方式相同。可以通过复位、外部中断或睡眠定时器到期唤醒进入主动模式。 PM1:在PM1模式下,稳压器的数字部分开启;高频振荡器(32MHz晶振或16MHz RC振荡器)都不运行;低频振荡器的32KHz晶振或32KHz RC振荡器运行。,当发生复位、外部中断或睡眠定时器到期时系统将转到主动模式。当系统运行在此模式下时,将运行一个掉电序列。由于PM1模式使用的上电和掉电序列较快,此模式适合用于等待唤醒事件的时间小于3ms的情况下。,1. 供电模式,1. 供电模式,PM2:具有较低功耗,稳压器的数字部分关闭
7、,高频振荡器(32MHz晶振或16MHz RC振荡器)都不运行;低频振荡器的32KHz晶振或32KHzRC振荡器运行。当发生复位、外部中断或睡眠定时器到期时系统将转到主动模式。当睡眠时间超过3ms时使用此模式。 PM3:最低功耗模式,稳压器数字关闭,所有的振荡器都不运行。当发生复位和外部中断时系统将转到主动模式运行。,2. 电源管理寄存器,电源管理即管理和选择供电模式,供电模式的管理是通过电源管理寄存器来实现的。 CC2530的电源管理寄存器有3个:,PCON为供电模式控制寄存器; SLEEPCND为睡眠模式控制器; SLEEPSTA为睡眠模式控制状态寄存器。,2. 电源管理寄存器,PCON为
8、供电模式控制寄存器,2. 电源管理寄存器,SLEEPCND为睡眠模式控制器,/关闭不用的RC振荡器 SLEEPCMD |= 0 x04;,在选定主时钟之后,需要关闭不用的RC振荡器,此时需要设置SLEEPCND的哪位?,2. 电源管理寄存器,SLEEPSTA为睡眠模式控制状态寄存器,CC2530数据手册上这部分有错误,2. 电源管理寄存器,SLEEPSTA为睡眠模式控制状态寄存器,/等待晶振稳定 while(!(SLEEPSTA ,由于32MHz晶振启动时间比较长,因此当选用32MHz晶振作为主时钟源时,内部首先选择16MHz RC振荡器使系统运转起来,当32MHz晶振稳定之后才使用32MHz
9、晶振作为主时钟源。如何判断32MHz晶振是否稳定?,3.系统时钟初始化,在使用串口、DMA、RF等功能时需要对系统时钟进行初始化,以系统时钟选择32MHz晶振为例来设置系统时钟。 控制要求:1.选择外部32MHz晶振作为主时钟源; 2.等待32MHz晶振稳定:上电后,由于外部32MHz晶振不稳定,因此CC2530芯片内部先启用内部16MHz RC振荡器。等待外部稳定之后,才开始使用外部32MHz晶振 3.设置定时器时钟输出128分频,当前系统时钟不分频 4.关闭不用的RC振荡器,void InitClock(void) CLKCONCMD /*关闭不用的RC振荡器*/ ,3.系统时钟初始化,4
10、.复位,CC2530的复位源有5个,这5个复位源分别是:,(1)强制RESET_N输入引脚为低电平复位,这一复位经常用于复位按键。,(2)上电复位,在设备上电期间提供正确的初始化值。,(3)布朗输出复位,只能运行在1.8V数字电压,此复位是通过布朗输出探测器来进行的。布朗输出探测器在电压变化期间检测到的电压低于布朗输出探测器所规定的最低电压电压时,导致复位。,4.复位,CC2530的复位源有5个,这5个复位源分别是:,(4)看门狗定时复位,当使能看门狗定时器,且定时器溢出时产生复位。,(5)时钟丢失复位,此复位条件是通过时钟丢失探测器来进行的。时钟丢失探测器用于检测时钟源,当时钟源损坏时,系统
11、自动使能时钟丢失探测器,导致复位。,4. 复位,CC2530在复位之后初始状态如下 :,I/O引脚配置为带上拉的输入。 CPU程序计数器在0 x0000,并且程序从这个地址开始。 所有外设寄存器初始化为各自复位值。 看门狗定时器禁用。 时钟丢失探测器禁用。,CC2530电源管理和时钟的设置,系统时钟除了提供给CPU外,还供给大量的IO接口,CC2530电源管理和时钟的设置,系统时钟设置例子: CLKCONCMD/设置当前系统时钟频率为32M,官方zstack上的时钟初始化代码,#define OSC_PD (12) SLEEPCMD /* turn off 16MHz RC */,小结,本次课
12、重讲述了CC2530的时钟控制器的原理与编程、电源模式及设置,重点理解相关SFR在控制器运行过程中所起的作用,之后才可以正确的编程。,课后作业,结合数据手册(在本人课件区的资料目录下中英文版都有)、课件整理CC2530 时钟控制、串口控制编程的步骤。,预习内容,CC2530数据手册+网上资料理解cc2530的串口控制器的原理与编程。,人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。,