CC電源及系統(tǒng)時鐘的管理大課_第1頁
CC電源及系統(tǒng)時鐘的管理大課_第2頁
CC電源及系統(tǒng)時鐘的管理大課_第3頁
CC電源及系統(tǒng)時鐘的管理大課_第4頁
CC電源及系統(tǒng)時鐘的管理大課_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

會計學(xué)1CC電源及系統(tǒng)時鐘的管理大課教學(xué)回顧大課(1)CC2530和8051的關(guān)系;(2)CC2530結(jié)構(gòu);(3)物理存儲器的映射(難點)(4)CC2530GPIO口編程(重點)小課(1)點亮一盞發(fā)光二極管并閃爍;(2)8051上的C語言——位運算第1頁/共34頁教學(xué)回顧1.當變量X的第n位需清0,其它位不變,可使用:X&=~(1<<n);2.當變量X的第n位需置1,其它位不變,可使用:X|=(1<<n);3.當需要檢測Px的第n位是否為0時,可以使用:if((Px&(1<<n))==0),else輸出4.當需要檢測Px的第n位是否為1時,可以使用:if((Px|(~(1<<n)))==1),else輸出第2頁/共34頁本周教學(xué)主要內(nèi)容CC2530電源的管理CC2530系統(tǒng)時鐘的編程(難點)第3頁/共34頁教學(xué)目標掌握CC2530電源的管理;掌握CC2530系統(tǒng)時鐘編程方法;第4頁/共34頁一、

振蕩器CC2530共有四個振蕩器,它們?yōu)橄到y(tǒng)時鐘提供時鐘源。16MHz內(nèi)部RC振蕩器32MHz外部晶振32KHz外部晶振32KHz內(nèi)部RC振蕩器兩個低頻振蕩器兩個高頻振蕩器RC振蕩器:成本較低,但由于電阻電容的精度導(dǎo)致振蕩頻率會有誤差,同時受到溫度、濕度的影響;晶體振蕩器:振蕩頻率一般都比較穩(wěn)定,但價格要稍高點,使用時一般還需要接兩個15-33pF起振電容。第5頁/共34頁1.

振蕩器的作用16MHz內(nèi)部RC振蕩器(簡稱16MHzRC振蕩器):32MHz外部晶振(簡稱32MHz晶振):32KHz外部晶振(簡稱32KHz晶振)32KHz內(nèi)部RC振蕩器(簡稱32KHZRC振蕩器)除了為內(nèi)部時鐘提供時鐘源之外,主要用于RF收發(fā)器。運行在32.753KHz上,當系統(tǒng)時鐘需要校準時使用此振蕩器,校準只能發(fā)生在系統(tǒng)時鐘工作由16MHzRC震蕩器轉(zhuǎn)到32MHz晶振的時候。也可以為內(nèi)部時鐘提供時鐘源,但是16MHzRC振蕩器不能用于RF收發(fā)器操作。對于一些應(yīng)用程序來說32MHz晶振的啟動時間較長,設(shè)備可以采用先運行16MHzRC振蕩器,直到32MHz晶振穩(wěn)定。

運行在32.768KHz上,為系統(tǒng)需要的時間精度提供一個穩(wěn)定的時鐘信號。不能同時使用第6頁/共34頁2.系統(tǒng)時鐘及寄存器CC2530內(nèi)部有一個內(nèi)部系統(tǒng)時鐘或主時鐘。在CC2530中系統(tǒng)時鐘源是從所選的主系統(tǒng)時鐘源獲得的,主時鐘一般由32MHz晶振或16MHzRC振蕩器提供。由于32MHz晶振啟動時間比較長,因此當選用32MHz晶振作為主時鐘源時,內(nèi)部首先選擇16MHzRC振蕩器使系統(tǒng)運轉(zhuǎn)起來,當32MHz晶振穩(wěn)定之后才使用32MHz晶振作為主時鐘源可以通過操作時鐘寄存器選擇使用哪個時鐘源。時鐘寄存器主要有兩個寄存器:時鐘控制命令寄存器CLKCONCMD時鐘控制狀態(tài)寄存器CLKCONSTA第7頁/共34頁2.系統(tǒng)時鐘及寄存器CLKONCMD時鐘控制命令寄存器位名稱復(fù)位R/W描述7OSC32K1R/W32KHz時鐘振蕩器選擇。設(shè)置該位只能發(fā)起一個時鐘源改變。要改變該位,必須選擇16MHzRCOSC作為系統(tǒng)時鐘。0:32KHzXOSC1:32KHzRCOSC6OSC1R/W系統(tǒng)時鐘源選擇。設(shè)置該位只能發(fā)起一個時鐘源改變。0:32MHzXOSC1:16MHzRCOSC5:3TICKSPD001R/W定時器標記輸出設(shè)置。不能高于通過OSC位設(shè)置的系統(tǒng)時鐘設(shè)置。

000:32MHz001:16MHz010:8MHz011:4MHz100:2MHz101:1MHz110:500KHz111:250KHz注:CLKCONCMD.TICKSPD可以設(shè)置為任意值,但是結(jié)果受CLKCONCMD.OSC設(shè)置的限制。//設(shè)置時鐘晶振為32MHZCLKCONCMD&=~0x40;第8頁/共34頁2.系統(tǒng)時鐘及寄存器CLKONCMD時鐘控制命令寄存器位名稱復(fù)位R/W描述2:0CLKSPD001R/W時鐘速度。不能高于通過OSC位設(shè)置的系統(tǒng)時鐘設(shè)置。標識當前系統(tǒng)時鐘頻率。000:32MHz001:16MHz010:8MHz011:4MHz100:2MHz101:1MHz110:500KHz111:250KHz注:CLKCONCMD.TICKSPD可以設(shè)置為任意值,但是結(jié)果受CLKCONCMD.OSC設(shè)置的限制。第9頁/共34頁2.系統(tǒng)時鐘及寄存器CLKCONSTA時鐘控制狀態(tài)寄存器位名稱復(fù)位R/W描述7OSC32K1R當前選擇的32KHz時鐘源0:32KHz晶振1:32KHzRCOSC6OSC1R當前選擇系統(tǒng)時鐘。0:32MHzXOSC1:16MHzRCOSC//設(shè)置當前時鐘為32MHz晶振CLKCONSTA&=~0x40;第10頁/共34頁2.系統(tǒng)時鐘及寄存器CLKCONSTA時鐘控制狀態(tài)寄存器位名稱復(fù)位R/W描述5:3TICKSPD001R當前設(shè)定定時器標記輸出000:32MHz001:16MHz010:8MHz011:4MHz100:2MHz101:1MHz110:500KHz111:250KHz2:0CLKSPD001R當前時鐘速度000:32MHz001:16MHz010:8MHz011:4MHz100:2MHz101:1MHz110:500KHz111:250KHz第11頁/共34頁二、

電源管理和復(fù)位CC2530提供多種供電模式,不同的工作方式需要在相應(yīng)的供電模式下進行,因此CC2530在工作時首先要選擇供電模式。第12頁/共34頁1.

供電模式CC2530的供電模式有五種:主動模式空閑模式PM1、PM2和PM3其中主動模式又稱一般模式或完全功能模式。不同的供電模式對系統(tǒng)運行的影響不同第13頁/共34頁1.

供電模式供電模式高頻振蕩器低頻振蕩器穩(wěn)壓器主動模式32MHz晶振或16MHzRC振蕩器32KHz晶振或

32KHzRC振蕩器ON空閑模式32MHz晶振或16MHzRC振蕩器32KHz晶振或

32KHzRC振蕩器ONPM1無32KHz晶振或

32KHzRC振蕩器ONPM2無32KHz晶振或

32KHzRC振蕩器OFFPM3無無OFF第14頁/共34頁1.

供電模式

主動模式:完全功能模式。穩(wěn)壓器的數(shù)字內(nèi)核開啟;高頻振蕩器運行行為:高頻振蕩器32MHz晶振或16MHzRC振蕩器運行,或者兩者都運行;低頻振蕩器運行行為:低頻振蕩器的32KHz晶振或32KHzRC振蕩器運行。

在此模式下CPU、外設(shè)和RF收發(fā)器都是活動的,可通過操作寄存器使CPU內(nèi)核停止運行,進入空閑模式;也可通過復(fù)位、外部中斷或睡眠定時器到期喚醒空閑模式。第15頁/共34頁空閑模式:除了CPU內(nèi)核停止運行,其他的運行方式和主動模式的運行方式相同。可以通過復(fù)位、外部中斷或睡眠定時器到期喚醒進入主動模式。PM1:在PM1模式下,穩(wěn)壓器的數(shù)字部分開啟;高頻振蕩器(32MHz晶振或16MHzRC振蕩器)都不運行;低頻振蕩器的32KHz晶振或32KHzRC振蕩器運行。當發(fā)生復(fù)位、外部中斷或睡眠定時器到期時系統(tǒng)將轉(zhuǎn)到主動模式。當系統(tǒng)運行在此模式下時,將運行一個掉電序列。由于PM1模式使用的上電和掉電序列較快,此模式適合用于等待喚醒事件的時間小于3ms的情況下。1.

供電模式第16頁/共34頁1.

供電模式PM2:具有較低功耗,穩(wěn)壓器的數(shù)字部分關(guān)閉,高頻振蕩器(32MHz晶振或16MHzRC振蕩器)都不運行;低頻振蕩器的32KHz晶振或32KHzRC振蕩器運行。當發(fā)生復(fù)位、外部中斷或睡眠定時器到期時系統(tǒng)將轉(zhuǎn)到主動模式。當睡眠時間超過3ms時使用此模式。PM3:最低功耗模式,穩(wěn)壓器數(shù)字關(guān)閉,所有的振蕩器都不運行。當發(fā)生復(fù)位和外部中斷時系統(tǒng)將轉(zhuǎn)到主動模式運行。第17頁/共34頁2.

電源管理寄存器電源管理即管理和選擇供電模式,供電模式的管理是通過電源管理寄存器來實現(xiàn)的。CC2530的電源管理寄存器有3個:PCON為供電模式控制寄存器;SLEEPCND為睡眠模式控制器;SLEEPSTA為睡眠模式控制狀態(tài)寄存器。第18頁/共34頁2.

電源管理寄存器PCON為供電模式控制寄存器位名稱復(fù)位R/W描述7:1--000000R0保留0IDLE0R/WH0供電模式控制。1:強制設(shè)備進入SLEEP.MODE設(shè)置供電模式。如果SLEEP.MODE=0x00且IDLE=1將停止CPU內(nèi)核活動。中斷可以清除此位。第19頁/共34頁2.

電源管理寄存器SLEEPCND為睡眠模式控制器位名稱復(fù)位R/W描述7OSC32K_CALDIS0R/W禁用32KHzRC振蕩器校準0:使能32KHzRC振蕩器校準1:禁用32KHzRC振蕩器校準此設(shè)置可以在任何時間寫入,但是在芯片沒有運行在16MHz高頻RC振蕩器時不起作用6:3--0000R0保留2--1R/W總為1,關(guān)閉不用的RC振蕩器1:0MODE[1:0]00R/W供電模式設(shè)置。00:主動/空閑模式01:PM110:PM211:PM3

//關(guān)閉不用的RC振蕩器SLEEPCMD|=0x04;在選定主時鐘之后,需要關(guān)閉不用的RC振蕩器,此時需要設(shè)置SLEEPCND的哪位?第20頁/共34頁2.電源管理寄存器SLEEPSTA為睡眠模式控制狀態(tài)寄存器位名稱復(fù)位R/W描述7OSC32K_CALDIS0R/W禁用32KHzRC振蕩器校準0:使能32KHzRC振蕩器校準1:禁用32KHzRC振蕩器校準此設(shè)置可以在任何時間寫入,但是在芯片沒有運行在16MHz高頻RC振蕩器時不起作用6XOSC_STB0R32MHz晶振穩(wěn)定狀態(tài)0:32MHz晶振上電不穩(wěn)定1:32MHz晶振上電穩(wěn)定5--0R保留CC2530數(shù)據(jù)手冊上這部分有錯誤第21頁/共34頁2.電源管理寄存器SLEEPSTA為睡眠模式控制狀態(tài)寄存器位名稱復(fù)位R/W描述4:3RST[1:0]XXR狀態(tài)位,表示上一次復(fù)位的原因,00:上電復(fù)位和掉電探測01:外部復(fù)位10:看門狗定時器復(fù)位11:時鐘丟失復(fù)位2:1--00R保留0CLK32K0R32KHz時鐘信號(與系統(tǒng)時鐘同步)

//等待晶振穩(wěn)定

while(!(SLEEPSTA&0x40));由于32MHz晶振啟動時間比較長,因此當選用32MHz晶振作為主時鐘源時,內(nèi)部首先選擇16MHzRC振蕩器使系統(tǒng)運轉(zhuǎn)起來,當32MHz晶振穩(wěn)定之后才使用32MHz晶振作為主時鐘源。如何判斷32MHz晶振是否穩(wěn)定?第22頁/共34頁3.系統(tǒng)時鐘初始化在使用串口、DMA、RF等功能時需要對系統(tǒng)時鐘進行初始化,以系統(tǒng)時鐘選擇32MHz晶振為例來設(shè)置系統(tǒng)時鐘。控制要求:1.選擇外部32MHz晶振作為主時鐘源; 2.等待32MHz晶振穩(wěn)定:上電后,由于外部32MHz晶振不穩(wěn)定,因此CC2530芯片內(nèi)部先啟用內(nèi)部16MHzRC振蕩器。等待外部穩(wěn)定之后,才開始使用外部32MHz晶振

3.設(shè)置定時器時鐘輸出128分頻,當前系統(tǒng)時鐘不分頻4.關(guān)閉不用的RC振蕩器第23頁/共34頁voidInitClock(void){CLKCONCMD&=~0x40;/*選擇32MHz晶振*/while(!(SLEEPSTA&0x40));/*等待晶振穩(wěn)定*/CLKCONCMD&=~0x47; /*TICHSPD128分頻,CLKSPD不分頻*/SLEEPCMD|=0x04;/*關(guān)閉不用的RC振蕩器*/}3.系統(tǒng)時鐘初始化第24頁/共34頁4.復(fù)位CC2530的復(fù)位源有5個,這5個復(fù)位源分別是:(1)強制RESET_N輸入引腳為低電平復(fù)位,這一復(fù)位經(jīng)常用于復(fù)位按鍵。(2)上電復(fù)位,在設(shè)備上電期間提供正確的初始化值。(3)布朗輸出復(fù)位,只能運行在1.8V數(shù)字電壓,此復(fù)位是通過布朗輸出探測器來進行的。布朗輸出探測器在電壓變化期間檢測到的電壓低于布朗輸出探測器所規(guī)定的最低電壓電壓時,導(dǎo)致復(fù)位。第25頁/共34頁4.復(fù)位CC2530的復(fù)位源有5個,這5個復(fù)位源分別是:(4)看門狗定時復(fù)位,當使能看門狗定時器,且定時器溢出時產(chǎn)生復(fù)位。(5)時鐘丟失復(fù)位,此復(fù)位條件是通過時鐘丟失探測器來進行的。時鐘丟失探測器用于檢測時鐘源,當時鐘源損壞時,系統(tǒng)自動使能時鐘丟失探測器,導(dǎo)致復(fù)位。第26頁/共34頁4.復(fù)位CC2530在復(fù)位之后初始狀態(tài)如下:I/O引腳配置為帶上拉的輸入。CPU程序計數(shù)器在0x0000,并且程序從這個地址開始。所有外設(shè)寄存器初始化為各自復(fù)位值。看門狗定時器禁用。時鐘丟失探測器禁用。第27頁/共34頁CC2530電源管理和時鐘的設(shè)置系統(tǒng)時鐘除了提供給CPU外,還供給大量的IO接口第28頁/共34頁CC2530電源管理和時鐘的設(shè)置系統(tǒng)時鐘設(shè)置例子:CLKCONCMD&=~(1<<6);//設(shè)置系統(tǒng)時鐘源為32MHZ晶振while(CLKCONSTA&(1<<6));//等待晶振穩(wěn)定為32MCLKCONCMD&=~0X7;//設(shè)置當前系統(tǒng)時鐘頻率為32M第29頁/共34頁官方zstack上的時鐘初始化代碼#defineOSC_PD(1<<2)SLEEPCMD&=~OSC_PD;/*turnon16MHzRCand32MHzXOSC*/while(!(SLEEPSTA&XOSC_STB));/*wait

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論