關於CC2541 耗電問題
您好,我自己有寫一個系統架構,原則上是一peripher端進行連續的廣播,再利用一central端scan 收此廣播的data。
可目前遇到central端過於耗電的問題,有study過關於power down mode的相關資料並做了以下觀察。
我發現其利用以下程序進行scan時,最為耗電,約有接近20mA,而此程序因為是要接收來自peripheral的data,其執行的interval我設成500ms
if ( !simpleBLEScanning )
{
simpleBLEScanning = TRUE;
simpleBLEScanRes = 0;
GAPCentralRole_StartDiscovery( DEFAULT_DISCOVERY_MODE,
DEFAULT_DISCOVERY_ACTIVE_SCAN,
DEFAULT_DISCOVERY_WHITE_LIST );
}
else
{
GAPCentralRole_CancelDiscovery();
}
而關於我進入省電mode的方式,如下,關閉與Stop所有定時event
1.osal_clear_event
2.osal_stop_timerEx
3.(void)osal_pwrmgr_task_state(0x01, PWRMGR_CONSERVE);
如此耗電量雖然可以掉到我想要的0.02mA,但由於關閉了scan就收不到來自廣播的data了。
我想依此耗電量的狀態,目前應該是進入到PM2,可我上網查詢,發現有人提到CC2541 進入PM2之後,仍然可以進行scan動作,即耗電量可以達到uA等級,又可以避免掉無法接收廣播資訊的問題,不知道這是否可以做到? 懇請不吝指教,謝謝。
进入PM2后,RF相关的功能会被停止,包括scan.
如果数据不频繁的话,可以延长connection interval来降低耗电
cc2541性能价格很不错,就是功耗大了些!
低功耗蓝牙可以考虑cc26系列
您好,首先謝謝您的回覆。
基本上我設計的架構上這兩者並不會進行connect,除了一些特定狀況。
不清楚您這邊指的connection interval,是否為central端的scan event interval?
再來因為peripheral端發送廣播的時間點,並沒有一定,故我在central端的scan interval設到500ms掃描一次。
按照您提到的,進入PM2之後無法進行RF相關動作,再加上我上述的應用需求,是否有其他方案可以進行省電?