第五周 CC2530电源及系统时钟的管理(大课)

上传人:少*** 文档编号:243120447 上传时间:2024-09-16 格式:PPT 页数:34 大小:1.06MB
返回 下载 相关 举报
第五周 CC2530电源及系统时钟的管理(大课)_第1页
第1页 / 共34页
第五周 CC2530电源及系统时钟的管理(大课)_第2页
第2页 / 共34页
第五周 CC2530电源及系统时钟的管理(大课)_第3页
第3页 / 共34页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,34,单片机原理与应用,教学回顾,大课,(,1,),CC2530和8051的关系,;,(,2,),CC2530结构,;,(,3,),物理存储器的映射,(难点),(,4,),CC2530 GPIO,口编程(,重点),小课,(,1,)点亮一盏发光二极管并闪烁;,(,2,),8051,上的,C,语言,位运算,教学回顾,1.,当变量,X,的第,n,位需清,0,,其它位不变,可使用,:,X,&=(1,n,);,2.,当变量,X,的第,n,位需置,1,,其它位不变,可使用,:,X,|,=(1,n,);,3.,当需要检测,Px,的第,n,位是否为,0,时,可以使用,:,if,(,(,Px &,(,1n,),),=0,),else,输出,4.,当需要检测,Px,的第,n,位是否为,1,时,可以使用,:,if,(,(,Px|,(,(,1n,),),),=1,),else,输出,本周教学主要内容,CC2530,电源的管理,CC2530,系统时钟的编程(难点),教学目标,掌握,CC2530,电源的,管理;,掌握,CC2530,系统时钟编程方法,;,一、,振荡器,CC2530,共有四个振荡器,它们为系统时钟提供时钟源。,16,MHz,内部,RC,振荡器,32,MHz,外部晶振,32,KHz,外部晶振,32,KHz,内部,RC,振荡器,两个,低频,振荡器,两个,高频,振荡器,RC振荡器:成本较低,但由于电阻电容的精度导致振荡频率会有误差,同时,受到温度、湿度的影响;,晶体振荡器:振荡频率一般都比较稳定,但价格要稍高点,使用时一般还需,要接两个15-33pF起振电容。,1.,振荡器的作用,16MHz,内部,RC,振荡器,(简称,16MHz RC,振荡器,):,32MHz,外部晶振,(简称,32MHz,晶振,):,32KHz,外部晶振,(简称,32KHz,晶振,),32KHz,内部,RC,振荡器,(简称,32KHZ RC,振荡器,),除了为内部时钟提供时钟源之外,,主要用于,RF,收发器,。,运行在,32.753,KHz上,当系统时钟需要,校准,时使用此振荡器,校准只能发生在系统时钟工作由16MHz RC震荡器转到32MHz晶振的时候。,也可以为内部时钟提供时钟源,但是,16MHz RC,振荡器不能用于,RF,收发器操作。对于一些应用程序来说,32MHz,晶振的启动时间较长,设备可以采用先运行,16MHz RC,振荡器,直到,32MHz,晶振稳定。,运行在,32.768,KHz上,为系统需要的时间精度提供一个稳定的时钟信号。,不能同时使用,2.,系统时钟及寄存器,CC2530,内部有一个内部系统,时钟或主时钟,。,在,CC2530,中系统时钟源是从所选的主系统时钟源获得的,主时钟一般由,32MHz,晶振或,16MHz RC,振荡器提供。由于,32MHz,晶振启动时间比较长,因此当选用,32MHz,晶振作为主时钟源时,内部首先选择,16MHz RC,振荡器使系统运转起来,当,32MHz,晶振稳定之后才使用,32MHz,晶振作为主时钟源 可以通过操作时钟寄存器选择使用哪个时钟源。,时钟寄存器主要有两个寄存器:,时钟控制命令寄存器,CLKCONCMD,时钟控制状态寄存器,CLKCONSTA,2.,系统时钟及寄存器,CLKONCMD,时钟控制命令寄存器,位,名称,复位,R/W,描述,7,OSC32K,1,R/W,32KHz,时钟振荡器选择。设置该位只能发起一个时钟源改变。要改变该位,必须选择,16MHz RCOSC,作为系统时钟。,0,:,32KHz XOSC 1,:,32KHz RCOSC,6,OSC,1,R/W,系统时钟源选择。设置该位只能发起一个时钟源改变。,0,:,32MHz XOSC,1,:,16MHz RCOSC,5,:,3,TICKSPD,001,R/W,定时器,标记输出,设置。不能高于通过,OSC,位设置的系统时钟设置。,000,:,32MHz 001,:,16MHz,010,:,8MHz 011,:,4MHz,100,:,2MHz 101,:,1MHz,110,:,500KHz 111,:,250KHz,注:,CLKCONCMD.TICKSPD,可以设置为任意值,但是结果受,CLKCONCMD.OSC,设置的限制。,/,设置时钟晶振为,32MHZ,CLKCONCMD ,2.,系统时钟及寄存器,CLKONCMD,时钟控制命令寄存器,位,名称,复位,R/W,描述,2,:,0,CLKSPD,001,R/W,时钟速度,。不能高于通过,OSC,位设置的系统时钟设置。标识当前系统时钟频率。,000,:,32MHz,001,:,16MHz,010,:,8MHz,011,:,4MHz,100,:,2MHz,101,:,1MHz,110,:,500KHz,111,:,250KHz,注:,CLKCONCMD.TICKSPD,可以设置为任意值,但是结果受,CLKCONCMD.OSC,设置的,限制。,2.,系统时钟及寄存器,CLKCONSTA,时钟控制状态寄存器,位,名称,复位,R/W,描述,7,OSC32K,1,R,当前选择的,32KHz,时钟源,0,:,32KHz,晶振,1,:,32KHz RCOSC,6,OSC,1,R,当前选择系统时钟。,0,:,32MHz XOSC,1,:,16MHz RCOSC,/,设置当前时钟为,32MHz,晶振,CLKCONSTA ,2.,系统时钟及寄存器,CLKCONSTA,时钟控制状态寄存器,位,名称,复位,R/W,描述,5,:,3,TICKSPD,001,R,当前设定定时器标记输出,000,:,32MHz,001,:,16MHz,010,:,8MHz,011,:,4MHz,100,:,2MHz,101,:,1MHz,110,:,500KHz,111,:,250KHz,2,:,0,CLKSPD,001,R,当前时钟速度,000,:,32MHz,001,:,16MHz,010,:,8MHz,011,:,4MHz,100,:,2MHz,101,:,1MHz,110,:,500KHz,111,:,250KHz,二、,电源管理和复位,CC2530,提供多种供电模式,不同的工作方式需要在相应的供电模式下进行,因此,CC2530,在工作时首先要选择供电模式 。,1,.,供电模式,CC2530,的供电模式有五种:,主动模式,空闲模式,PM1,、,PM2,和,PM3,其中主动模式又称一般模式或完全功能模式。不同的供电模式对系统运行的影响不同,1,.,供电模式,供电模式,高频振荡器,低频振荡器,稳压器,主动模式,32MHz,晶振或,16MHzRC,振荡器,32KHz,晶振或,32KHzRC,振荡器,ON,空闲模式,32MHz,晶振或,16MHzRC,振荡器,32KHz,晶振或,32KHzRC,振荡器,ON,PM1,无,32KHz,晶振或,32KHzRC,振荡器,ON,PM2,无,32KHz,晶振或,32KHzRC,振荡器,OFF,PM3,无,无,OFF,1,.,供电模式,主动模式:,完全功能模式。稳压器的数字内核开启;,高频振荡器运行行为,:高频振荡器,32MHz,晶振或,16MHz RC,振荡器运行,或者两者都运行;,低频振荡器运行行为:,低频振荡器的,32KHz,晶振或,32KHzRC,振荡器运行。,在此模式下,CPU,、外设和,RF,收发器都是活动的,可通过操作寄存器使,CPU,内核停止运行,,进入空闲模式,;也可通过复位、外部中断或睡眠定时器到期,唤醒空闲模式,。,空闲模式,:除了,CPU,内核停止运行,其他的运行方式和主动模式的运行方式相同。可以通过复位、外部中断或睡眠定时器到期唤醒进入主动模式。,PM1,:在,PM1,模式下,稳压器的数字部分开启;高频振荡器(,32MHz,晶振或,16MHz RC,振荡器)都不运行;低频振荡器的,32KHz,晶振或,32KHz RC,振荡器运行。,当发生复位、外部中断或睡眠定时器到期时系统将转到主动模式。当系统运行在此模式下时,将运行一个掉电序列。由于,PM1,模式使用的上电和掉电序列较快,此模式适合用于等待唤醒事件的时间小于,3ms,的情况下。,1,.,供电模式,1,.,供电模式,PM2,:,具有较低功耗,稳压器的数字部分关闭,,高频振荡器(,32MHz,晶振或,16MHz RC,振荡器)都不运行;,低频振荡器的,32KHz,晶振或,32KHzRC,振荡器运行。当发生复位、外部中断或睡眠定时器到期时系统将转到主动模式。当睡眠时间超过,3ms,时使用此模式。,PM3,:,最低功耗模式,稳压器数字关闭,所有的振荡器都不运行。当发生复位和外部中断时系统将转到主动模式运行。,2,.,电源管理寄存器,电源管理即管理和选择供电模式,供电模式的管理是通过电源管理寄存器来实现的。,CC2530,的电源管理寄存器有,3,个:,PCON,为供电模式控制寄存器;,SLEEPCND,为睡眠模式控制器;,SLEEPSTA,为睡眠模式控制状态寄存器。,2,.,电源管理寄存器,PCON,为供电模式控制寄存器,位,名称,复位,R/W,描述,7,:,1,-,000000,R0,保留,0,IDLE,0,R/W,H0,供电模式控制。,1,:强制设备进入,SLEEP.MODE,设置供电模式。如果,SLEEP.MODE=0x00,且,IDLE=1,将停止,CPU,内核活动。中断可以清除此位。,2,.,电源管理寄存器,SLEEPCND,为睡眠模式控制器,位,名称,复位,R/W,描述,7,OSC32K_CALDIS,0,R/W,禁用,32KHz RC,振荡器校准,0,:使能,32KHz RC,振荡器校准,1,:禁用,32KHz RC,振荡器校准,此设置可以在任何时间写入,但是在芯片没有运行在,16MHz,高频,RC,振荡器时不起作用,6,:,3,-,0000,R0,保留,2,-,1,R/W,总为,1,,关闭不用的,RC,振荡器,1,:,0,MODE1,:,0,00,R/W,供电模式设置。,00,:主动,/,空闲模式,01,:,PM1,10,:,PM2,11,:,PM3,/,关闭不用的,RC,振荡器,SLEEPCMD |= 0x04;,在选定主时钟之后,需要关闭不用的,RC,振荡器,此时需要设置,SLEEPCND,的哪位?,2.,电源管理寄存器,SLEEPSTA,为睡眠模式控制状态寄存器,位,名称,复位,R/W,描述,7,OSC32K_CALDIS,0,R/W,禁用,32KHz RC,振荡器校准,0,:使能,32KHz RC,振荡器校准,1,:禁用,32KHz RC,振荡器校准,此设置可以在任何时间写入,但是在芯片没有运行在,16MHz,高频,RC,振荡器时不起作用,6,XOSC_STB,0,R,32MHz,晶振稳定状态,0,:,32MHz,晶振上电不稳定,1,:,32MHz,晶振上电稳定,5,-,0,R,保留,CC2530,数据手册上这部分有错误,2.,电源管理寄存器,SLEEPSTA,为睡眠模式控制状态寄存器,位,名称,复位,R/W,描述,4,:,3,RST1:0,XX,R,状态位,表示上一次复位的原因,,00,:上电复位和掉电探测,01,:外部复位,10,:看门狗定时器复位,11,:时钟丢失复位,2,:,1,-,00,R,保留,0,CLK32K,0,R,32KHz,时钟信号(与系统时钟同步),/,等待晶振稳定,while(!(SLEEPSTA ,由于,32MHz,晶振启动时间比较长,因此当选用,32MHz,晶振作为主时钟源时,内部首先选择,16MHz RC,振荡器使系统运转起来,当,32MHz,晶振稳定之后才使用,32MHz,晶振作为主时钟源。如何判断,32MHz,晶振是否稳定?,3.,系统时钟初始化,在使用串口、,DMA,、,RF,等功能时需要对系统时钟进行初始化,以系统时钟选择,32MHz,晶振为例来设置系统时钟。,控制要求:,1.,选择外部,32MHz,晶振作为主时钟源;,2.,等待,32MHz,晶振稳定:上电后,由于外部,32MHz,晶振不稳定,因此,CC2530,芯片内部先启用内部,16MHz RC,振荡器。等待外部稳定之后,才开始使用外部,32MHz,晶振,3.,设置定时器时钟输出,128,分频,当前系统时钟不分频,4.,关闭不用的,RC,振荡器,void InitClock(void),CLKCONCMD /,*选择,32MHz,晶振*,/,while(!(SLEEPSTA /*,等待晶振稳定,*/,CLKCONCMD ,/* TICHSPD128,分频,,CLKSPD,不分频,*/,SLEEPCMD |= 0x04;/*,关闭不用的,RC,振荡器,*/,3.,系统时钟初始化,4.,复位,CC2530,的复位源有,5,个,这,5,个复位源分别是:,(,1,)强制,RESET_N,输入引脚为低电平复位,这一复位经常用于复位按键。,(,2,)上电复位,在设备上电期间提供正确的初始化值。,(,3,)布朗输出复位,只能运行在,1.8V,数字电压,此复位是通过布朗输出探测器来进行的。布朗输出探测器在电压变化期间检测到的电压低于布朗输出探测器所规定的最低电压电压时,导致复位。,4.,复位,CC2530,的复位源有,5,个,这,5,个复位源分别是:,(,4,)看门狗定时复位,当使能看门狗定时器,且定时器溢出时产生复位。,(5,)时钟丢失复位,此复位条件是通过时钟丢失探测器来进行的。时钟丢失探测器用于检测时钟源,当时钟源损坏时,系统自动使能时钟丢失探测器,导致复位。,4.,复位,CC2530,在复位之后初始状态如下 :,I/O,引脚配置为带上拉的输入。,CPU,程序计数器在,0x0000,,并且程序从这个地址开始。,所有外设寄存器初始化为各自复位值。,看门狗定时器禁用。,时钟丢失探测器禁用。,CC2530,电源管理和时钟的设置,系统时钟除了提供给,CPU,外,还供给大量的,IO,接口,CC2530,电源管理和时钟的设置,系统时钟设置例子:,CLKCONCMD/,设置系统时钟源为,32MHZ,晶振,while(CLKCONSTA/,等待晶振稳定为,32M,CLKCONCMD/,设置当前系统时钟频率为,32M,官方,zstack,上的时钟初始化代码,#define OSC_PD (12),SLEEPCMD /* wait for 32MHz XOSC stable */,asm(NOP); /* chip bug workaround */ ,for (i=0; i504; i+) asm(NOP); /* Require 63us delay for all revs */,CLKCONCMD = (CLKCONCMD_32MHZ | OSC_32KHZ); /* Select 32MHz XOSC and the source for 32K clock */ ,while (CLKCONSTA != (CLKCONCMD_32MHZ | OSC_32KHZ); /* Wait for the change to be effective */,SLEEPCMD |= OSC_PD; /* turn off 16MHz RC */,小结,本次课重讲述了,CC2530,的时钟控制器的原理与编程、电源模式及设置,重点理解相关,SFR,在控制器运行过程中所起的作用,之后才可以正确的编程。,课后,作业,结合数据手册(在本人课件区的资料目录下中英文版都有)、课件整理,CC2530,时钟控制、串口控制编程的步骤。,预习内容,CC2530,数据手册,+,网上资料理解,cc2530,的串口控制器的原理与编程。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!