依據資料手冊列出的電流消耗規格來比較和選擇低功耗微控制器(MCU)是一項困難的任務。在大多數情況下,開發人員選擇MCU的第一步是查看資料手冊的第一頁,以作為快速獲取元件資訊的參考,包括周邊、運行速度、封裝資訊、GPIO接腳數量和供電特性等。這種方法對於獲取元件的整體效能很有用,但在評估低功耗特性時卻不一定奏效。
為了對低功耗操作有全面瞭解,開發人員還需考量電流消耗、狀態維持、喚醒時間、喚醒源,以及低功耗模式下可運行的周邊等。開發人員也必須於相同操作模式下比對同類型低功耗MCU,以獲得客觀的逐項比較結果。另外,易用的評估工具也非常重要,因為能評估整體系統功耗的額外功能和周邊,使工程師的工作更加簡易。
MCU供應商通常會在資料手冊第一頁列出最低功耗值。雖然元件也許能夠實現資料手冊中列出的規格,但實際上的操作模式可能並不實用。有些不佳的低功耗特性並未列出,包括非常慢的喚醒時間、無狀態維持或RAM維持功能,或者縮小操作電壓範圍。為了深入瞭解各種低功耗特性,開發人員必須定義相同的操作模式,其中包括兩部分:電流規格和低功耗功能。
電氣特性比較
電氣特性羅列在資料手冊中,透過仔細研究才能判斷哪種特性最為重要。通常電氣特性依據供應商定義的電源模式分類,這將使評估更加困難,因為需要熟悉每種電源模式的功能。一般情況下,定義一系列操作條件並對應到一種電源模式更有意義。例如,開發人員可能會定義下面一組操作條件:
1. 狀態維持和RAM維持條件下的休眠模式電流消耗
- 所有其他周邊禁用
2. RTC運行且狀態維持和RAM維持條件下的休眠模式電流消耗
- RTC啟用,所有其他周邊禁用
3. 喚醒時間
4. 供電電壓範圍
一旦操作條件有明確的定義,那麼就很容易判定屬於何種電源模式。
額外的低功耗特性
第二部分是低功耗特性,這在供應商文件中不容易找到,因資料橫跨於不同的資料手冊和參考手冊中。低功耗功能的範例包括:
1. 可用的喚醒源。
2. 如何恢復代碼執行。
3. 在休眠模式下可操作的周邊。
一旦相同的操作模式明確定義,開發人員即可開始研究文件中的更多細節。
經過收集資料的過程之後,還可以透過MCU相關的特性針對應用進一步降低功耗。這些特性優化可以減少BOM成本、提供更長的產品生命週期或者提供更好的設計靈活性。例如,晶片整合的DC-DC轉換器能夠有效為系統提供電能而減少功耗,並且允許使用更小的電池、降低整體BOM成本,或者提高功率預算的靈活性。多種喚醒源可以提升設計靈活性,允許MCU儘量停留在最低功耗模式,進一步降低應用的平均電流消耗。
開發人員的另一種優化方式是允許韌體改變內部電源電壓範圍。當MCU在低頻率下運行時,可以減少供電電壓,進而節省功耗。可選的時脈閘控使硬體模組與活動電路斷開連接,並避免不工作的周邊消耗電能。以上特性沒有列舉在衡量低功耗MCU的供電電流規格中,但這卻是實現最低整體系統功耗的關鍵。
使用工具降低設計複雜度
為實現最低功耗,MCU具有越來越高的配置度,但卻也導致設計越來越複雜。為了因應增加的複雜性,開發人員應當關注MCU的評估平台和易於實現的解決方案。例如,用於程式設計MCU的開發板和軟體工具應更為直觀和方便使用。使用不便的硬體將增加韌體開發難度。由韌體的角度來看,MCU供應商應提供可以實現資料手冊上規格的韌體範例。如果列舉的電流消耗規格無法在評估板上實現,那麼在客製化的硬體上配置MCU來達到這些數值就更加困難。為客戶提供可用於代碼開發初期的各種代碼範例能夠幫助工程師更方便的學習元件的使用,並加快產品上市時間。
圖形化配置工具能夠輔助開發,協助開發人員更深入的了解MCU。在開發低功耗應用時,需瞭解整體功耗的分佈。只有熟悉這些資訊,才能明確瞭解哪些設計可以進一步優化,也能掌握整體架構。理想情況下,低功耗配置工具能夠提示如何進一步降低功耗,也包括配置過程中檢測到的任何配置錯誤。例如,Silicon Labs AppBuilder圖形化配置工具中的功耗評估器能夠提供配置引導及功耗提示,並提供功耗預算的圓餅圖,顯示有多少電源消耗,以及哪些周邊正在消耗電源;而當配置改變時,圖型將自動更新。
總結
為低功耗應用評估和選擇MCU,僅了解資料手冊的第一頁是遠遠不夠的。為了落實最低整體系統功耗,開發人員需深入了解元件的供電電流規格,以及任何系統層級的優化以減少總體電源電流。
通常每個MCU供應商指定的操作條件不同,在某些情況下,列出的低功耗資料僅出現在理想的模式中。在相同操作模式下進行MCU比對將避免開發人員被供應商宣稱的超低功耗資料所誤解。
一旦瞭解和量化元件的電氣特性,開發人員還需選用合適的評估平台和軟體工具。MCU的選擇過程中需要考慮上述因素,因為這對於工程團隊的快速運作至關重要。
作者簡介
Evan Schulz是Silicon Labs公司微控制器產品經理,主要負責32位元微控制器系列產品,先前曾任職公司MCU團隊應用工程師。Evan於2008加入Silicon Labs公司,當時任職助理應用工程師一職。Evan Schulz擁有德州大學奧斯丁分校的電機工程學士學位。