<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

電流監控和調試工具在MCU設計中應用

工程師兵營 ? 來源:互聯網 ? 作者:佚名 ? 2018-07-13 10:00 ? 次閱讀

構成物聯網 (IoT) 的眾多器件關聯在一起的其中一個原因是對低能耗的要求。為了滿足這一要求,需要在一個整體策略內,從多個層面進行優化。一個成功的設計不僅需要選擇低功耗的元器件,還要使用軟件以最有效的方式使這些元器件協同工作,從而節省可用的電池容量。即使是硬件和軟件實現的稍微變動,也會對整體能耗造成很大的影響。

大多數 IoT 器件的核心是為高能效設計的微控制器 (MCU)。典型的低能耗 MCU 包括一系列智能外設,其代表核心處理器來控制 I/O 和基本的系統功能。串行端口 (UART) 通常能夠自主地發送和接收數據,而在處理器內核上運行的軟件只需在數據接收完成后從相應的緩沖器中傳輸字節。通過在諸如 Silicon Labs 的 Gecko EFM32 系列的 MCU 等器件上提供鏈接的 DMA 傳輸,甚至是這種交互都可以減至最少。這種情況下,處理器內核只需在收到完整消息后喚醒以檢查存儲器的內容。

通過允許外設管理 I/O,MCU 可以在大部分時間里都處于休眠模式,這樣 MCU 的許多部分將關閉,而不會耗電。占空比是處于活動模式的時間與處于休眠模式的時間之比。低占空比對于電池供電的 IoT 應用非常重要,因為休眠模式僅僅消耗微安量級的電流,而活動模式通常會高出幾個數量級。

低占空比允許處理器內核大部分時間處于休眠模式,僅在需要時喚醒以收集數據或進行通信。實施低占空比策略的關鍵是了解軟件如何與硬件進行交互。需要確定哪些功能導致 MCU 喚醒時間過長,然后盡可能更換或重寫。一直以來,在開發階段的早期很難實現這一點,因為需要對硬件成品進行測試才能確定。

Silicon Labs 的 Pearl Gecko 入門套件及類似評估板包括高級能量監視器 (AEM) 功能。當與公司Simplicity Studio 中的高級工具結合使用時,可以在軟件開發期間,提供極有價值的洞察信息,讓開發人員了解應用需要多少能量。這些信息不僅顯示了休眠模式的有效性,還揭示功能層級的優化。

圖 1: Pearl Gecko 入門套件板上 AEM 模塊的實施。

AEM 功能可監控從通過 USB 總線獲取電力的板載 LDO 流出的電流。通常,USB 將用于支持調試及將軟件下載到目標 MCU。如圖 1 所示,當板載開關設置為電池供電模式時,將無法測量電流。

電源開關設置為 AEM 模式時,板控制器收集的數據將傳送至 Simplicity Studio 工具,并可使用能量分析器進行顯示。AEM 可以測量 0.1 μA 至 50 mA 大范圍(動態范圍達 114 dB)的電流。這樣便可精確分析不同休眠模式狀態的影響以及活動模式的功耗。

為了精確測量跨如此大范圍的電流消耗,可以將電流檢測放大器與雙增益級一起使用。放大器用于測量小型串聯電阻器上的壓降,而增益級使用兩種不同的增益設置進一步放大該電壓,從而獲得兩個電流范圍。這兩個范圍之間的過渡發生在 250 μA 左右。在樣本導出之前,會在評估板控制器內對數字進行濾波和平均化處理。

每經過一個計時器刻度,AEM 便會對電流進行一次采樣和轉換,并通過 USB 將電壓和計時信息一起發送至開發工具,其每秒生成的電流樣本高達 6250 個。

由于能量分析依賴于跟蹤數據進行關聯,因此需要將 MCU 上運行的代碼編譯為包含發送使用任意記錄格式調試 (DWARF) 數據的語句。發送至調試器的程序計數器 (PC) 樣本通過調試數據與目標文件相關聯,以找到在 MCU 上運行的相關源文件、函數和 C 代碼行。這樣便可以將功率測量與各個功能和任務關聯起來。

在 Simplicity Studio 中使用分析工具時,用戶可以訪問三個窗口。它們顯示了相關代碼、電流消耗圖和功能級別視圖。通過單擊電流圖上的任意點,可高亮顯示代碼列表窗口中的部分代碼。這對應于在給定時刻運行且具有給定級別的電流消耗的實際代碼段。功能列表提供了每個功能的總能耗及其占整個應用測量總量的百分比。如果用戶想要稍后分析信息,則可以將數據導出到文件,然后再將其導入以供進一步分析。

為了說明如何使用 Simplicity Studio 中提供的功耗監控工具,我們來看一個通過 UART 端口進行通信的 MCU 示例。將數據從 Gecko 的 LEUART 緩沖器移至主存儲器以供稍后處理的一種簡單直接的方法是定期輪詢外設。如果數據可用,狀態標記 (LEUART_STATUS_RXDATAV) 將指示可以檢索數據。

長期高功耗圖

圖 2: 采用串口輪詢的長期高功耗。

在活動處理器內核上運行代碼會導致產生幾毫安的恒定電流消耗。通過單擊圖表,可以高亮顯示產生此功耗的功能。為了節省能耗,MCU 需要避免使用輪詢來檢查數據可用性。為實現此目的,可以在數據獲取之間將處理器置于休眠狀態,并在接收緩沖器數據變得可用時使用中斷來喚醒處理器。電流消耗在休眠期間明顯下降,而在中斷服務例程 (ISR) 運行時則會達到峰值。在能量分析器窗口中準確找到 ISR 后便可以看出這一點。

中斷服務響應的實施圖

圖 3: 實施中斷服務響應可以將具有較高電流消耗的時間段縮至更短。

但是,處理數據接收中斷后,代碼的其他部分可能顯示為因保持處理器處于活動狀態而消耗了比預期更多的功率。單擊相關功能可顯示傳輸功能現在負責額外的功耗。雖然對傳輸功能進行編程的一個簡單方法是設置 while{} 循環以等待每個字節的傳輸完成,但這將使處理器的運行時間超過必要的運行時間。與接收端口的情況類似,可以將該循環替換為中斷(在每個字節傳輸完成后喚醒處理器)?,F在處理器會在每幀字節之間進入休眠模式,從而降低平均電流消耗。

字節級傳輸之間的休眠圖

圖 4: 在字節級傳輸之間進入休眠可進一步降低功耗。

Gecko MCU 上的 LEUART 模塊可以在深度休眠模式下工作。在此模式下,高頻振蕩器處于關閉狀態,而低頻振蕩器(RC 或晶體)仍在運行并為 LEUART 提供時鐘。利用這種模式可以使 ISR 處理之間的電流消耗降至微安量級。

提高能效的深度休眠模式圖

圖 5: 使用深度休眠模式可提高低占空比應用的能效。

通過將更多的緩沖器處理移至鏈接的 DMA 引擎,使其負責在發送或接收全部幀后觸發中斷,可以實現進一步的改進。這種策略可以使處理器內核休眠更長時間,且主要通過功能級別的數據分析任務來優化功耗。

結論:

上述示例展示了電流監控和調試工具在優化 MCU 應用能效方面的重要性。不是等到開發結束才能執行能量優化,而在整個開發階段都可以執行分析,開發人員可以清晰地看到迭代改進。再加上高級休眠模式和無需長時間的處理器干預即可運作的智能硬件,工程團隊可以輕松地實現能效方面的重大改進。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    16100

    瀏覽量

    344549
  • Silicon Labs
    +關注

    關注

    11

    文章

    307

    瀏覽量

    62307
  • 電流監控
    +關注

    關注

    0

    文章

    37

    瀏覽量

    11045
收藏 人收藏

    評論

    相關推薦

    使用STM32L4系列芯片時,調試工具JLink必須是V9或以上版本嗎?

    大家好,我使用JLink V8下載并調試STM32L4R9ZI芯片的時候發現會有警告框。參考正點原子“潘多拉STM32L475開發板教程”,教程建議使用調試工具JLink時候,必須
    發表于 04-08 06:17

    什么是CAN總線調試工具?調試的內容主要包括哪幾個方面?

    CAN總線調試工具是用于對CAN總線進行調試和故障排除的設備或軟件工具,它們具有高速數據捕獲能力、數據過濾和觸發功能,以及用于解析和顯示CAN幀的軟件界面。
    的頭像 發表于 04-03 11:23 ?524次閱讀

    腳本調試工具有哪些?腳本調試工具怎么用?

    腳本調試是軟件開發過程中非常重要的一環,它能幫助開發者快速定位并解決代碼中的錯誤。大多數編程語言都提供了各種各樣的腳本調試工具,本文將介紹一些常見的腳本調試工具以及它們的基本使用方法。 GDB
    的頭像 發表于 12-01 14:40 ?356次閱讀

    GDB調試工具的原理

    一、GDB調試工具的原理 1.1 未執行進程調試 啟用gdb調試運行gdb ./test的時候,在操作系統里發生了很多復雜的事情,系統首先會啟動gdb進程,這個進程會調用系統函數fork()來創建
    的頭像 發表于 11-09 17:04 ?380次閱讀
    GDB<b class='flag-5'>調試工具</b>的原理

    多核應用調試工具CodeViser介紹

    隨著各種智能設備的使用,嵌入式微處理器和微控制器被廣泛應用于各個領域,復雜應用需要合適的調試工具支持。J&DTech是總部位于韓國專業嵌入式系統軟件調試工具供應商?;?b class='flag-5'>調試專業知識
    的頭像 發表于 10-20 16:51 ?484次閱讀
    多核應用<b class='flag-5'>調試工具</b>CodeViser介紹

    windows上使用的ble調試工具

    分享一個windows上使用的ble調試工具
    發表于 10-09 07:23

    多串口調試工具ycjCom1

    多串口調試工具_ycjCom1
    發表于 09-25 08:08

    ARM跟蹤調試工具1.2版安裝指南

    ADS提供。ARM跟蹤試工具1.2版用戶指南也可作為ADS手冊套件的一部分在DynaText查看。(DynaText查看器是ADS安裝過程安裝的。)
    發表于 08-02 11:02

    單片機開發調試工具有哪些?

    單片機的調試是一個有條不紊的過程,用于查找和減少單片機程序中的錯誤數量,使其按預期工作。有時候,單片機程序調試很困難,因為某一個系統模塊中的微小變化可能會在另一個子系統中產生錯誤。單片機開發過程中使用的調試工具在開發時間和
    的頭像 發表于 07-07 12:29 ?1122次閱讀

    CS+ V8.01.00集成開發環境用戶手冊:RH850調試工具

    CS+ V8.01.00集成開發環境用戶手冊:RH850調試工具
    發表于 07-06 20:06 ?0次下載
    CS+ V8.01.00集成開發環境用戶手冊:RH850<b class='flag-5'>調試工具</b>

    CS+ V8.01.00集成開發環境用戶手冊:RX調試工具

    CS+ V8.01.00集成開發環境用戶手冊:RX調試工具
    發表于 07-06 20:05 ?0次下載
    CS+ V8.01.00集成開發環境用戶手冊:RX<b class='flag-5'>調試工具</b>

    CS+ V8.02.00集成開發環境用戶手冊:RL78調試工具

    CS+ V8.02.00集成開發環境用戶手冊:RL78調試工具
    發表于 07-05 20:51 ?0次下載
    CS+ V8.02.00集成開發環境用戶手冊:RL78<b class='flag-5'>調試工具</b>

    IzoT 調試工具數據表

    IzoT 調試工具數據表
    發表于 07-04 20:05 ?0次下載
    IzoT <b class='flag-5'>調試工具</b>數據表

    IzoT 調試工具(CT) 用戶指南

    IzoT 調試工具 (CT) 用戶指南
    發表于 07-04 19:50 ?0次下載
    IzoT <b class='flag-5'>調試工具</b>(CT) 用戶指南

    CS+ V8.06.00集成開發環境用戶手冊:RH850調試工具

    CS+ V8.06.00集成開發環境用戶手冊:RH850調試工具
    發表于 07-03 20:48 ?1次下載
    CS+ V8.06.00集成開發環境用戶手冊:RH850<b class='flag-5'>調試工具</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>