新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式應用中的能耗調試

        嵌入式應用中的能耗調試

        作者: 時間:2011-02-04 來源:網絡 收藏

        圖3 能耗函數

        為了避免對RX緩沖區進行輪詢,一種常見的變通方法是啟用RX中斷并將MCU置于睡眠模式。完成之后,很容易看到能耗節省是巨大的。當我們關閉處理器,電流降至1.40mA(見圖2b)。現在,當LEUART接收到數據,它就會被喚醒并通過TX緩沖區將其傳送回去。


        當中斷被觸發時,電流尖峰將達到2.5mA,而剖析程序會精確定位到中斷例程(見圖4a)。不過,電流將在這個尖峰值保留較長的一段時間,而通過點擊圖表,就可能會發現在使用UART通信時的另一種常見錯誤。

        圖4 帶有LEUART TX輪詢的LEUART RX中斷(a),在接收字節之間處于睡眠模式下的EFM32(b),以及深睡眠模式下的EFM32(c)


        void pollLEUARTTX(void)
        {while ( !( LEUART0 -> STATUS LEUART_STATUS_TXC) );}


        在發送數據之后,用戶會設置一個while循環以等待傳輸完成。無疑,這會使處理器過長時間保持在運行模式之下。這段循環可以被中斷所取代,一旦傳輸完成,中斷就會喚醒處理器。通過這樣做,就將再次降低電流消耗量(見圖4b)。


        現在,在每個接收到的字節之間,處理器都進入睡眠模式,降低了電流。字節傳輸的完成無須處理器的干預,所以就不需要輪詢緩沖區以獲知傳輸何時完成。將循環替換為中斷例程是一種更優雅、更節能的解決方案,正如這兩種方法的不同剖析圖所示。

        深睡眠
        EFM32 MCU的LEUART模塊可以在深睡眠模式下工作。在這種模式下,高頻振蕩器被關閉,但低頻振蕩器(RC或晶振)仍在運行并給LEUART提供時鐘。如果將EFM32置于深睡眠模式并重復上述例子,能耗將降至微安量級。


        為了能夠直觀地顯示這些電流數值,剖析程序從線性坐標切換到對數坐標。在深睡眠模式下,電流現在是1μA,而接收到幀時的尖峰值是80μA(見圖4c)。從第一種方法到最后一種配置,節能倍數超過了1000。


        上一頁 1 2 3 下一頁

        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 昌平区| 中牟县| 雷州市| 东乌珠穆沁旗| 通海县| 巨鹿县| 班戈县| 沛县| 囊谦县| 马鞍山市| 通海县| 焉耆| 高雄县| 阜新市| 南雄市| 文登市| 内江市| 成武县| 钟祥市| 漳浦县| 崇明县| 乌鲁木齐县| 台湾省| 镇远县| 奉新县| 栖霞市| 泽普县| 荔浦县| 扬中市| 彩票| 九龙县| 永清县| 雷州市| 皮山县| 邳州市| 叙永县| 板桥市| 克东县| 乐清市| 瑞昌市| 贵阳市|