CC2541 CC2540 實現超低功耗是很重要的:
我們來總結一下實現方法:
1
,有定時器在跑時會一直跑在
PM2
電流在
300uA
左右。
沒有定時器跑后會到
PM3
, 電流會少於
10uA
。
這個定時器是指
osal
的定時器。
比如:
啟動 了
osal_start_timerEx( keyfobapp_TaskID, KFD_TOGGLE_BUZZER_EVT, 2000 );
但沒到時間:
須要說明的是
keyfob
中的 低功耗一直都是進不去
PM3
的, 這是因為有一個查詢電量的定時器一直在跑:
osal_start_timerEx( keyfobapp_TaskID, KFD_BATTERY_CHECK_EVT, BATTERY_CHECK_PERIOD );
把它凝視掉 就會進
PM3
了。
電流 小於
10uA 。
因此, 假設你想低功耗到可是又想啟用定時器是不現實的。
2,
假設有外部中斷,比方開關量如按鍵, 一定,一定。一定須要用下降沿中斷, 眼下我上升沿中斷調不出來。 而且,常態時假設是低電平輸入, 會比較耗電。實測。低電平輸入會比高電平輸入多200uA
左右。
總結一下:
常態下是
PM1
要進入
PM2
, 首先,確認你的
option
的編譯宏設置了
POWER_SAVING
然后代碼中, 須要運行
osal_pwrmgr_device( PWRMGR_BATTERY );
就可以, 電流還有
200uA
呀。 怎么辦?
要進入
Pm3
, 須要你沒有
osal
的定時器在跑。
詳見我們提供的例程。
附件例程上電就廣播
30s
。 電流
500uA
,使用
AmoBleTool.apk
連接后, 電流在小於
10uA
此時,已經開通了
3
個電平中斷。 各自是
P0.0
,
p0.1
與
p0.4
隨意一個中斷產生,
AmoBleTool.apk
都鍵收到 數據。 請注意觀察。
電流測試方法為在供電電路上串一個電流表就可以。
獲取資料地址:
鏈接:http://pan.baidu.com/s/1pJ7IpQj password:cy6z
獲取源代碼與簡明教程:
阿莫單片機藍牙開發板網店