精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

STM32F103C8T6 MCU功耗測評指南

sunwen0011 ? 來源:隨便看看 ? 作者:隨便看看 ? 2023-03-05 13:54 ? 次閱讀

STM32F103C8T6 MCU越來越廣泛的應用在生產生活的各個領域,外接豐富的傳感器、功能模塊、通信模塊、顯示存儲等可以形成各種各樣的產品項目應用。對于功耗要求比較高的產品,一般會選擇STM32L系列的MCU,但是從功耗的評測角度,邏輯上是基本相似的。

在很多應用場合中都對電子設備的功耗要求非??量?,如某些傳感器信息采集設備,僅靠小型的電池提供電源,要求工作長達數年之久,且期間不需要任何維護。由于智能穿戴設備的小型化要求,電池體積不能太大導致容量也比較小,所以也很有必要從控制功耗入手,提高設備的續航時間。其實,只要是涉及到便攜式的產品,都免不了要使用電池作為電源,否則,如果還是需要接一個插頭使用市電來供電的話,那就無法稱之為便攜式了,比如手機、運動手環、藍牙耳機、智能手表等都是類似的。所以控制功耗和提高產品的續航時間就顯得尤為重要。

目前針對STM32F103C8T6等系列單片機而言,比較常用的低功耗模式是停止模式和待機模式。

當使用待機模式時,在實際應用中,通常會有一個開關機的按鍵(PA0),如果用戶按下按鍵的話,就會開機或者關機,開機對應的就是喚醒,而關機對應的就是待機(類似于手機的開關機按鍵)。在此過程中,電池會一直給單片機的3.3V電源供電,也就是說,單片機一直都是有電的,但是它的所有外設以及時鐘都處于關閉狀態,之所以還要給單片機供電,只是為了在用戶按下按鍵時檢測PA0的上升沿而已,如果不給單片機供電的話,那么還怎么檢測呢?檢測不了。

當使用停止模式時,我們先看一個問題:理論上待機模式的功耗遠比停止模式要低,為什么還要選擇停止模式呢?通常是這樣的,一個便攜式的系統,除了考慮按鍵開關機外,還需要考慮給電池充電的時候往往需要顯示一些充電的信息(現在的手機充電就是這樣的),如果是在開機狀態下充電的話完全沒有問題。但是,如果是在關機狀態下充電呢?肯定就需要單片機能夠自己喚醒自己(不需要用戶按下PA0),然后才有可能顯示充電的信息(比如手機關機狀態下接通電源后,可以自動顯示充電的動畫)。

是否可以實現不按下PA0就實現喚醒功能嗎?當然可以,只需要在硬件上做一些改動即可。

比如,將充電口的電壓降壓后跟PA0相連,這樣只要充電口在充電,PA0必定會出現一個從低到高的脈沖,這樣就可以喚醒了。但這種情況下,軟件層面上又不好區分PA0的上升沿是由于充電造成的,還是由于用戶按下按鍵造成的。所以,這個時候就需要考慮選擇停止模式了,開關機按鍵接到一個引腳,充電口接到另外一個引腳,兩個引腳都配置為外部中斷,兩個引腳也都可以喚醒單片機,分開了不同的信號電平,這樣子,在軟件上就可以很容易地判斷。

實際上也有另一種改進方式,就是在硬件上實現一個脈沖電路,可以用一個簡單的RC延時電路,就是說充電口的電平再經過一個RC電路以后,出來的就不會一直是高電平,而只是一個脈沖了,再把這個脈沖信號接到PA0引腳,這個時候插入充電口和按下PA0就都會在PA0上出現一個脈沖了。軟件上,可以利用長按開機,再長按關機的機制來進行判別,如果PA0僅僅只是出現一個上升沿并且檢測到充電芯片正在充電,此時就是充電口插入了,喚醒單片機且顯示充電效果即可。

工作模式

我們先了解一下STM32F103C8T6單片機的幾種工作模式。按功耗從高到低排列,STM32F103C8T6具有運行(Run)、睡眠(Sleep)、停止(Stop)和待機(Standby)四種工作模式。在這四種模式下,后面三種是當STM32F103C8T6的內核不在需要運行時,可以選擇的幾種模式,當單片機在工作時,則是運行模式。

運行模式

這里我們不多說運行模式,因為當STM32F103C8T6在上電復位后,即處于了運行模式,這種情況下,單片機自動運行程序。只由當我們不需要內核也就是所謂的Cortex-M3繼續運行時,我們就可以選擇讓芯片進入睡眠、停止和待機這三種模式,來讓芯片降低功耗。功耗的降低會減少芯片的發熱以及能夠保證可靠性增加。

睡眠模式

當STM32F103C8T6在運行過程中,內核也就是所謂的Cortex-M3遇到WFE(等待中斷)或者WFI(等待事件)指令時會停止內部時鐘,停止程序執行。盡管Cortex-M3停止工作,但是其外設仍在繼續工作,直到某個外設產生事件或者中斷時,內核將會被喚醒,退出睡眠模式。在睡眠模式中,僅關閉了內核時鐘,內核停止運行,但其片上外設,Cortex-M3核心的外設全都還照常運行,在軟件上表現為不再執行新的代碼。這個狀態會保留睡眠前的內核寄存器、內存的數據。喚醒后 ,若由中斷喚醒,先進入中斷,退出中斷服務程序后,接著執行 WFI指令后的程序;若由事件喚醒,直接接著執行 WFE后的程序?;旧蠠o喚醒延遲。

pYYBAGQC_HqAVQg3AAC46n9VERc218.png

poYBAGQC_ICAdrfWAADGTvrDXUQ342.png

這里補充說明一件事:Cortex-M3是一個32位的內核,在傳統的單片機領域中,有一些不同于通用32位CPU應用的要求。在工控領域,用戶要求具有更快的中斷速度,Cortex-M3采用了Tail-Chaining中斷技術,完全基于硬件進行中斷處理,最多可減少12個時鐘周期數,在實際應用中可減少70%中斷。

停機模式

若用戶將Cortex-M3處理器的電源控制寄存器(Cortex Power Control Register,Cortex_PCR)中的SLEEPDEEP位置位,然后將STM32F103C8T6電源控制寄存器(STM32 Power Control Register.STM32 PCR)中的PDDS(Power Down Deep Sleep)位清除,就完成了STM32F103C8T6停機模式的設置。

當停機模式設置完畢后,CPU一旦遇到WFI或WFE指令就會停止工作,HSI和HSE也進人關閉狀態。但Flash和SRAM將會繼續保持電源供應,所以此時STM32F103C8T6的所有工作狀態仍然是保留著的。和睡眠模式一樣,停機模式也可以通過外設中斷喚醒,然面在停機模式下,除了外部中斷控制單元,所有設備的時鐘都被禁止了,只能通過在GPIO引腳上產生電平邊沿觸發外部中斷的方式來將STM32從停機狀態下喚醒。

需要注意的是,外部中斷通道除了與GPIO連接,還和RTC時鐘的報警事件連接,加之RTC的計數時鐘并非來源于STM32F103C8T6的設備總線(而是直接來自于LSI或LSE),因此還可以使用RTC模塊實現定時將STM32F103C8T6從停機狀態中喚醒。

在停止模式中,相對于休眠模式進一步關閉了其它所有的時鐘,于是所有的外設都停止了工作,但由于其 1.2V區域的部分電源沒有關閉,還保留了內核的寄存器、內存的信息,所以從停止模式喚醒,并重新開啟時鐘后,還可以從上次停止處繼續執行代碼。喚醒后,若由中斷喚醒,先進入中斷,退出中斷服務程序后,接著執行 WFI指令后的程序;若由事件喚醒,直接接著執行 WFE后的程序。停止模式喚醒后,STM32F103C8T6會使用 HSI(HSI為8M)作為系統時鐘。所以,有必要在喚醒以后,在程序上重新配置系統時鐘,將時鐘切換回HSE。喚醒延遲基本上是 HSI振蕩器的啟動時間,若調壓器工作在低功耗模式,還需要加上調壓器從低功耗切換至正常模式下的時間,若FLASH工作在掉電模式,還需要加上 FLASH從掉電模式喚醒的時間。

pYYBAGQC_J-AXfd4AAJCAtm7oq8815.png

順便提一下,HSI振蕩器與HSE的區別就在于一個是內部的時鐘源,一個是外部的時鐘源。HSI時鐘信號由內部16 MHz RC振蕩器生成,可直接用作系統時鐘,或者用作PLL輸入。HSI RC振蕩器的優點是成本較低(無需使用外部組件)。此外,其啟動速度也要比HSE晶振塊,但即使校準后,其精度也不及外部晶振或陶瓷諧振器。

待機模式

若將STM32F103C8T6電源控制寄存器中的SLEEP位進行置位,再將STM32_PCR中的PDDS位進行置位,這樣,單片機則進入待機模式。

若要喚醒待機模式,有多種方式進行喚醒,分別位:RTC的鬧鐘事件、NRST的外部引腳復位、獨立看門狗(IWDG)所產生的復位信號,以及PA0引腳上所產生的一個上升沿,但是若要是要該引腳所產生的上升沿來喚醒單片機,則必須事先設置為喚醒引腳功能。待機模式是STM32F103C8T6的最低功耗模式。當進入待機模式后,所有的SRAM數據、Cortex-M3處理器的寄存器和STM32F103C8T6的寄存器內容都將會被清零,效果等同于硬件復位。

pYYBAGQC_K6AMVh9AAE5eHAiZjk746.png

poYBAGQC_PqAPu8XAAPAQI_MQXk274.png

功耗測評

首先,為了保持評測的準確性,我們先用一個電阻負載來驗證一下設備測試精度,電阻是0.1%精度的100K電阻,所以電阻的阻值誤差我們先可以忽略。

打開功耗分析儀電源mPower1203測試設備,設置3.3V輸出。可以看到,在配套的E-sight工具上顯示了流過電阻的電流值。理論上是33uA,我們實測的值和理論值相差幾十個nA,所以基本上設備的電流精度可以達到千分之一以內的精度。

pYYBAGQC_Q-AIipHAAQQGyTVLJ8962.png

現在開始評測STM32F103C8T6單片機的幾種模式下的休眠功耗。

睡眠模式

我們從STM32F103C8T6單片機的規格書中,可以看到使用外部時鐘,在主頻為72MHz和48MHz,所有外設都關閉的情況下,功耗典型值約為5.5mA和3.9mA,我們圍繞這兩個值進行測試評估。

pYYBAGQC_RuADjWIAAE_TX-RnSg334.png

經測試和波形分析:

上圖:主頻為72MHz@關閉所有外設,睡眠功耗為5.889mA;

下圖:主頻為48MHz@關閉所有外設,睡眠功耗為4.175mA;

pYYBAGQC_SaAQHW6AAEJ4T43sIQ281.png

上圖

poYBAGQC_SuANZ-dAAEVjWyV-MI443.png

下圖

測試數據基本符合規格書中的典型值數據。從這個數據中我們可以了解到,當一個產品需要進行優化功耗時,在某些場合下,可以通過降低主頻的方式來得到目標功耗。

停機模式

從STM32F103C8T6單片機的規格書中,可以看到,供電輸出3.3V,停機模式下有兩種情況。一種是調壓器處于運行模式,對應的功耗典型值為24uA;另一種是調壓器處于低功耗模式,對應的功耗典型值為14uA。我們圍繞這兩個值進行測試評估。

pYYBAGQC_TiAVcQaAAIFH93YmT0350.png

經測試和波形分析:

上圖:調壓器處于運行模式,停機功耗為23.042uA;

下圖:調壓器處于低功耗模式,停機功耗為12.857uA;

poYBAGQC_UKAIg_MAAEYH9MhQcY903.png

上圖

pYYBAGQC_UeAJCDbAAEIwP3fxVk995.png

下圖

測試數據基本符合規格書中的典型值數據。在配置STM32F103C8T6單片機進入停機模式時,特別需要注意一點,就是外部接8M晶振的管腳需要配置成普通GPIO,且也需要配置成模擬輸入的方式。

待機模式

從STM32F103C8T6單片機的規格書中,可以看到,供電輸出3.3V,待機模式下有三種情況。這三種情況分別對應的功耗的典型值約為3.4uA、3.2uA以及2uA。我們圍繞這三個值進行測試評估。

poYBAGQC_VGAM_7-AAJA-BDp-RY694.png

經測試和波形分析:

圖1:內部RC和獨立看門狗均開啟狀態,待機功耗為2.912uA;

圖2:內部RC開啟,獨立看門狗關閉狀態,待機功耗為2.702uA;

圖3:內部RC和獨立看門狗均關閉狀態,且低速振蕩器和RTC均關閉,待機功耗為1.62uA;

poYBAGQC_ZCADnMyAAFD5VrmGGk304.png

圖1

poYBAGQC_ZeASdVHAAEAzupBdAA945.png

圖2

pYYBAGQC_aqAQDesAAEJ_vyoQtQ733.png

圖3

測試數據基本符合規格書中的典型值數據。

最后,需要提一下,在我們進行功耗評測的時候,在和規格書進行對比時,需要了解典型值的含義。一般情況下,規格書上的值都是相對比較保守的,而且典型值是表示正態分布中一個1σ的值,也就是說68.27%的概率是落在典型值左右。換句話說,一共100個測試樣本,68.27個樣本的測試數據是滿足典型值的。

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

    關注

    2548

    文章

    50740

    瀏覽量

    752142
  • 單片機
    +關注

    關注

    6032

    文章

    44525

    瀏覽量

    633258
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17019

    瀏覽量

    350373
  • 功耗
    +關注

    關注

    1

    文章

    810

    瀏覽量

    31920
  • STM32F103C8T6
    +關注

    關注

    107

    文章

    160

    瀏覽量

    83281
收藏 人收藏

    評論

    相關推薦

    STM32F103C8T6STM32F103C6T6

    開發板STM32F103STM32F103C8T6學習開發板
    btsostudio
    發布于 :2022年06月16日 17:58:17

    STM32F103C8T6引腳圖

    本文介紹STM32F103C8T6引腳圖、STM32F103C8T6開發板電路圖及各部分引腳功能圖介紹,STM32F103C8T6資料下載。
    發表于 08-03 15:53 ?43.8w次閱讀
    <b class='flag-5'>STM32F103C8T6</b>引腳圖

    stm32f103c8t6封裝及最小系統原理圖

    STM32F103C8T6是一款集成電路,芯體尺寸為32位,程序存儲器容量是64KB,需要電壓2V~3.6V,工作溫度為-40C ~ 85C。 下面介紹一下STM32F103C8T6
    發表于 11-23 15:50 ?35.1w次閱讀

    stm32f103c8t6原理圖及最小系統

    stm32f103c8t6原理圖
    發表于 06-10 08:00 ?785次下載

    STM32F103C8T6核心板的資料合集免費下載

    本文檔的主要內容詳細介紹的是STM32F103C8T6核心板的資料合集免費下載包括了:STM32F103C8T6核心板測試程序(PC13閃爍),STM32F103C8T6核心板測試程序(RTC
    發表于 06-04 08:00 ?720次下載
    <b class='flag-5'>STM32F103C8T6</b>核心板的資料合集免費下載

    STM32F103C8T6參考手冊(中文)

    STM32F103C8T6參考手冊(中文)說明。
    發表于 04-15 09:22 ?1002次下載

    STM32F103C8T6原理圖

    STM32F103C8T6原理圖免費下載。
    發表于 06-02 10:01 ?177次下載

    利用STM32F103C8T6最小系統板點亮流水燈

    ;STM8產品型號命名規則(參考:STM32單片機最小系統詳解)可知: STM32F103C8T6這個命名中:STM32代表STM32家族,
    發表于 11-17 17:06 ?59次下載
    利用<b class='flag-5'>STM32F103C8T6</b>最小系統板點亮流水燈

    利用STM32F103C8T6最小系統板點亮流水燈

    ;STM8產品型號命名規則(參考:STM32單片機最小系統詳解)可知: STM32F103C8T6這個命名中:STM32代表STM32家族,
    發表于 11-17 18:06 ?97次下載
    利用<b class='flag-5'>STM32F103C8T6</b>最小系統板點亮流水燈

    STM32F103C8t6程序下載

    STM32F103C8t6程序下載
    發表于 11-24 18:21 ?231次下載
    <b class='flag-5'>STM32F103C8t6</b>程序下載

    STM32F103C8T6中斷特征介紹 用按鈕為STM32 MCU觸發一個中斷

    中斷是MCU的特征之一,STM32F103C8T6也不例外。以下通過STM32F103C8T6 Blue Pill外接一個按鈕,向MCU觸發外部中斷。
    的頭像 發表于 05-17 08:57 ?1.1w次閱讀
    <b class='flag-5'>STM32F103C8T6</b>中斷特征介紹 用按鈕為<b class='flag-5'>STM32</b> <b class='flag-5'>MCU</b>觸發一個中斷

    STM32F103C8T6原理圖下載

    STM32F103C8T6原理圖下載
    發表于 08-16 15:44 ?51次下載

    使用stm32f103c8t6設計的藍牙小車

    使用stm32f103c8t6設計的藍牙小車,具有前進后退,左轉右轉等功能
    發表于 08-07 16:08 ?28次下載

    ch32f103c8t6stm32f103c8t6的區別

    ch32f103c8t6stm32f103c8t6的區別 STM32F103C8T6是一款32位微處理器,屬于STM32F1系列中的一員。它是一款廉價而且高性能的微處理器,被廣泛應用
    的頭像 發表于 08-22 16:05 ?9371次閱讀

    分享STM32F103C8T6原理圖

    STM32F103C8T6最小系統原理圖
    發表于 08-29 15:52 ?101次下載