ZIGBEE协议栈如何低功耗(CC2530+ZIGBEE2.5)
1》按照以下進行配置Z_STACK怎樣進入PM2模式步驟?
1. 首先需要在編譯選項中加入POWER_SAVING,使能低功耗模式;其他沒有用到的可以去掉,比如串口,LCD等功能。(此類似于宏定義)
2. 修改f8wConfig.cfg文件:
-DRFD_RCVC_ALWAYS_ON=FALSE
-DPOLL_RATE=0
-DQUEUED_POLL_RATE=0
-DRESPONSE_POLL_RATE=0
-DREJOIN_POLL_RATE=440(此非常重要,如果寫成0則會造成協調器斷電后終端無法加入網絡)
3. void osal_pwrmgr_init( void )函數中,
修改pwrmgr_attribute.pwrmgr_device = PWRMGR_BATTERY; // Default to no power conservation.
pwrmgr_attribute.pwrmgr_task_state = 0; // Cleared. All set to conserve
4.按鍵設置為中斷方式(這個為使用按鍵庫中斷喚醒,我已近寫成寄存器版本的,不用也行)
HalKeyConfig(HAL_KEY_INTERRUPT_ENABLE, OnBoard_KeyCallback);//中斷方式
5. 只在必要的地方啟用定時函數,系統進入PM2模式,休眠電流為1.1UA,如果定時函數全部不開啟,則會進入PM3模式,休眠電流更低0.3UA
6. 在終端中的SampleApp_ProcessEvent( )函數中,啟用定時傳輸數據。
以上的456項是說只要有中斷或者任務執行就可以喚醒,任務執行完后又進行了睡眠。關閉端口按照軟件標注的就可以實現,在Z_Main里面。
2》關閉端口(即把沒有用到的端口關閉,因為TI的協議棧例程是適用于他自己的開發板,把端口是打開的)
1.?? osal_int_enable( 0 );//INTS_ALL??? 更改1? 關閉中斷
2.? InitBoard( OB_COLD );//OB_READY?? 更改2 關閉板載初始化
3. ? // Display information about this device?? 更改3 顯示設備的信息注釋
???? //? zmain_dev_info();
4.? #ifdef 0?????????????????????? //更改4 LCD屏上顯示設備信息不使能
? ?? zmain_lcd_init();
?
3》實現低功耗的最小例程在資源里可以下載到(實現低功耗和終端數據單播發送給協調器)
總結
以上是生活随笔為你收集整理的ZIGBEE协议栈如何低功耗(CC2530+ZIGBEE2.5)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何写课程设计报告
- 下一篇: 《算法导论》2.2练习答案