一、低功耗模式介紹
低功耗是現在便攜式、消費類設備都要考慮的功能,特別是使用電池供電的設備,對功耗的把握非常重要,功耗直接影響待機時長。 比如:我們現在的手機、平板、商務筆記本電腦、無線耳機等消費類設備,還有智能井蓋、智慧路燈、這些不插市電的物聯網設備等。
CC2530支持配置低功耗模式,可以通過電源寄存器章節的介紹進行配置,下面就介紹CC2530的低功耗幾個模式的配置,截圖來至CC2530中文數據手冊。
二、配置低功耗模式
低功耗運行是通過不同的運行模式(供電模式)使能的。各種運行模式指的是主動模式、空閑模式和供電。
模式1、 2和 3(PM1-PM3)。超低功耗運行的實現通過關閉電源模塊以避免靜態(泄露)功耗,還通過使用門控時鐘和關閉振蕩器來降低動態功耗。
三、示例代碼
3.1 示例代碼1
/******************************************************************************
利用睡眠定時器,實現低功耗
******************************************************************************/
#include
#define uint unsigned int
#define uchar unsigned char
#define CC2530_Delay 15000
#define RLED P1_0
#define YLED P1_1 //LED燈控制IO口定義
void CC2530_Delay(void);
void CC2530_Init_IO_AND_LED(void);
void CC2530_SysPowerMode(uchar sel);
/****************************************************************
延時函數
****************************************************************/
void CC2530_Delay(void)
{
uint i;
for(i = 0;i= 20)
{
count = 0;
RLED = 0;
CC2530_SysPowerMode(3);
//10次閃爍后進入睡眠狀態PM3
}
//CC2530_Delay();
CC2530_Delay();
//延時函數無形參,只能通過改變系統時鐘頻率或DEALY的宏定義
//來改變小燈的閃爍頻率
};
}
/*****************************************
中斷處理函數-系統喚醒
*****************************************/
#pragma vector = P0INT_VECTOR
__interrupt void P0_ISR(void)
{
if(P0IFG>0)
{
P0IFG = 0;
}
P0IF = 0;
CC2530_SysPowerMode(4);
}
復制代碼;i++);>
3.2 示例代碼2
/******************************************************************************
利用睡眠定時器實現低功耗
******************************************************************************/
#include
/*****************************************
//定義類型
*****************************************/
#define uchar unsigned char
#define uint unsigned int
#define RLED P1_0
#define GLED P1_1
#define CRYSTAL 0
#define RC 1
typedef unsigned char UINT8;
typedef unsigned char INT8U;
typedef unsigned short UINT16;
typedef unsigned short INT16U;
typedef unsigned long UINT32;
typedef unsigned long INT32U;
void CC2530_Set_ST_Period(uint sec);
void CC2530_Init_SLEEP_TIMER(void);
void CC2530_Delay(uint n);
void CC2530_LedGlint(void);
char LEDBLINK;
void CC2530_InitLEDIO(void)
{
P1DIR |= 0x03; //P10、P11定義為輸出
RLED = 0;
GLED = 0;//LED燈初始化為關
}
/*****************************************
設定系統主時鐘函數
*****************************************/
void SET_MAIN_CLOCK(source)
{
if(source)
{
CLKCONCMD |= 0x40; /*RC*/
while(!(CLKCONSTA &0X40)); /*待穩*/
}
else
{
CLKCONCMD &= ~0x47; /*晶振*/
while((CLKCONSTA &0X40)); /*待穩*/
}
}
/*****************************************
設定系統低速時鐘函數
*****************************************/
void SET_LOW_CLOCK(source)
{
(source==RC)?(CLKCONCMD |= 0X80):(CLKCONCMD &= ~0X80);
}
/*********************************************************************
//主函數
*********************************************************************/
void main(void)
{
SET_MAIN_CLOCK(CRYSTAL);
SET_LOW_CLOCK(CRYSTAL);
CC2530_InitLEDIO();
LEDBLINK = 0;
RLED = 1;
GLED = 0;
CC2530_Init_SLEEP_TIMER();
CC2530_LedGlint();
CC2530_Set_ST_Period(8);
while(1)
{
if(LEDBLINK)
{
CC2530_LedGlint();
CC2530_Set_ST_Period(8);
GLED = !GLED;
LEDBLINK = 0;
}
CC2530_Delay(100);
}
}
/*****************************************
//初始化Sleep Timer
*****************************************/
void CC2530_Init_SLEEP_TIMER(void)
{
ST2 = 0X00;
ST1 = 0X0F;
ST0 = 0X0F;
EA = 1; //開中斷
STIE = 1;
STIF = 0;
}
/*****************************************
//延時函數
*****************************************/
void CC2530_Delay(uint n)
{
uint jj;
for(jj=0;jj> 16);
ST1 = (UINT8)(sleepTimer >> 8);
ST0 = (UINT8) sleepTimer;
}
#pragma vector = ST_VECTOR
__interrupt void ST_ISR(void)
{
STIF = 0;
LEDBLINK = 1;
};jj++);>
作者:DS小龍哥
鏈接:https://juejin.cn/post/7021694551660167175
來源:稀土掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
ZigBee
+關注
關注
158文章
2270瀏覽量
242806 -
低功耗
+關注
關注
10文章
2404瀏覽量
103709 -
CC2530
+關注
關注
19文章
221瀏覽量
58041
發布評論請先 登錄
相關推薦
STR-CC2530-DK ZIGBEE專業開發系統
-97dBm。 RX:24mA。 TX:29mA。 低功耗:0.4uA 功能特點: 1、具有USB 高速下載、支持IAR集成開發環境;2、具有在線下載、調試、仿真功能;3、提供ZigBee
發表于 07-26 15:03
C51RF-CC2530專業開發系統
成都無線龍通信科技有限公司陳先生QQ :1091202304產品簡介: 無線龍ZigBee無線網絡專業開發系統C51RF-CC2530-PK是CC2530/CC2531的專業
發表于 10-16 11:07
CC2530開發平臺——使用說明
能,業界標準的增強型8051 CPU、 8KB RAM 、256K閃存。模具有不同的低功耗運行模式,使得它尤其適應超低功耗要求的系統,且模式切換時間極短。.
發表于 03-08 11:10
低功耗藍牙芯片
適應超低功耗要求的系統。運行模式之間的轉換時間短進一步確保了低能源消耗。CC2530F256 結合了德州儀器的業界領先的黃金單元ZigBee 協議棧(Z-Stack?),提供了一個強大
發表于 04-19 09:55
ZigBee組網方案
F32/64/128/256,分別具有32/64/128/256KB 的閃存。CC2530 具有不同的運行模式,使得它尤其適應超低功耗要求的系統。運行模式之間的轉換時間短進一步確保了低
發表于 09-15 15:59
Zigbee2.4G無線射頻RFID芯片CC2530芯片低功耗資料分享
具有32/64/128/256KB 的閃存。CC2530 具有不同的運行模式,使得它尤其適應超低功耗要求的系統。運行模式之間的轉換時間短進一步確保了低能源消耗。CC
發表于 07-09 15:02
CC2530軟件運行示例的詳細使用數據手冊免費下載
文描述了用于IEEE的C2530系統片上解決方案的軟件例子。802.15.4/ZigBee。它還描述了必要的硬件和軟件運行的例子,以及如何開始。軟件實例設計運行在C2530EM上SMARTF05EB。
發表于 07-25 11:39
?2次下載
ZigBee-CC2530單片機 - 低功耗運行
ZigBee-CC2530單片機 - 低功耗運行程序源碼#include "ioCC2530.h"#define LED1 P1_0 // P1_0定義為
發表于 11-29 14:21
?11次下載
評論