在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

STM32內部重要功能全記錄

冬至子 ? 來源:洋桃電子 ? 作者:杜洋 ? 2023-07-08 17:22 ? 次閱讀

我們講了內核、存儲器和時鐘,它們都是單片機核心功能的一部分,沒有它們中的任何一個,單片機都不能正常工作。而核心功能還包括復位和電源管理兩個部分,因為篇幅關系沒有寫完,這一期把它們補上。同時我還要繼續介紹單片機的多個重要功能。之所以說“重要”,是因為單片機如果沒有這些功能,雖然可以正常工作,但其性能和所發揮的作用會大大減弱。重要功能包括:低功耗模式、ADCDMA、I/O端口、調試模式、定時器看門狗定時器和嘀嗒定時器。因為我們現在是做入門的介紹,一開始不能講得太深、太復雜,對于每個功能,我只介紹其表面上的功能與原理。大家只要看過,有一個基本的印象即可。待日后講到編程設計時再深入講解,你便會有溫故知新的感覺。

【復位】

復位功能是核心功能的一部分,大到PC,小到單片機,每一臺計算機系統都有。在我小時候,臺式機的機箱上會有一個獨立的復位按鈕。隨著PC 越來越高級和穩定,復位按鈕漸漸被取消了,但在主板上還是有復位電路的。單片機上的復位功能也有著類似的變化,在我學習單片機時,需要在單片機的一個復位專用引腳上接一個由電阻電容組成的復位電路。如果沒有這個電路,單片機就沒法工作。近些年來的新款單片機都把復位功能內置到單片機中,用戶甚至可以忽略復位這件事了。如果有必要,你可以在復位引腳上接一個按鍵用來手動復位,除此之外不需其他操作。

復位功能的作用是讓RAM 中的數據清空,讓所有連接到復位的相關功能都回到剛開始工作的(初始)狀態。在接通電源之前,單片機里的存儲器及其他功能的狀態是混亂、不穩定的。如果上電后不復位,所有功能都處在無序狀態,就好像軍隊集合時沒有立正、稍息、向右看齊,直接齊步走的結果就是亂成一片。復位的作用就是讓單片機內部秩序化,都回到設計者規定好的狀態。這個狀態為用戶程序的運行做了充分的準備,就像計算機每次重啟一樣。

STM32 單片機中,有一個供電監控器,這個監控器是一直工作的,它能監測外部電源的電壓,當電壓低于2V 時,監控器會讓單片機復位。當電壓高于2V 時,監控器讓單片機進入工作狀態。這個監控器本質上達到了上電復位的效果,也就是說你每次給單片機接通電源時,電壓都是一次從0 升到3.3V(STM32 的工作電壓)的過程,這個過程使單片機復位,不需要再外接復位電路。還有一種復位的方法是在單片機的復位引腳上接一個微動開關,開關另一端接地。按下開關可手動復位,如圖1 所示。

圖片

**圖1 **外接復位按鍵電路原理

【電源管理】

電源管理是指對單片機外接電源處理、分配的功能。電源管理主要分成4 個部分,分別是備用電源輸入、端口輸入/ 輸出、邏輯電源輸入和模擬電源輸入。其結構如圖2 所示,藍色方框里是單片機內部電路,方框之外是單片機的外部電路。

先說邏輯電源輸入,這是單片機最基本的供電輸入端口。給這些接口輸入2 ~3.6V 的直流電壓,就能讓ARM 內核、存儲器、I/O 端口和其他純數字電路工作了。邏輯輸入電壓還能讓I/O 端口輸入或輸出數字信號的電壓。在未來,我們使用I/O端口點亮LED 或者讓一個按鍵輸入,都會用到邏輯電源輸入的電壓。而模擬電源輸入的電壓是用在模數轉換器ADC)、RC振蕩器和PLL 倍頻等模擬電路上的。這兩部分電源輸入在引腳較多(64 腳以上)的單片機上是分開的。而在引腳較少的單片機上,邏輯電源和模擬電源并聯在一起使用。分開輸入的電源在使用上有很多好處,而合并輸入可以減少引腳的占用。合并輸入方式會對模擬電源的穩定性造成影響,但如果設計中不要求高精度,一般會合并使用。

備用電源輸入是一個獨立的存在,它是專門給實時時鐘(RTC)供電的,以保證在邏輯電源斷開后依然讓RTC 保持走時。同時它也給喚醒電路和后備寄存器供電,讓它們一直處在工作狀態。備用電源輸入可以外接獨立電源或者一塊1.8 ~3.6V 的電池。如果你不想使用單片機內部的RTC 等功能,備用電源可以不接。

圖片圖2 供電方案

【低功耗】

單片機在正常工作時,內部大部分功能都處于開啟狀態,最耗電的ARM 內核處在100% 全速運行狀態。試想一下你的PC,在玩大型游戲時,CPU 的風扇強力旋轉,這就是CPU 處在100% 運行的時候。而平時CPU 只有5% 左右的工作量。可是單片機的內核卻一直處在全速的狀態,只是單片機的性能遠低于PC,發熱量低,你感覺不到而已。當單片機要用在電池供電的產品上時,降低功耗、讓電量使用更持久便成了重要的項目需求。STM32 單片機為應對這樣的用戶需要,做出了低功耗功能。通過關掉一些耗電大的內部功能來達到省電的目的,根據關掉的功能數量,可分為3 種低功耗模式,分別是睡眠模式、停機模式、待機模式,如附表所示。其實這些低功耗模式在不同的單片機手冊中會有不同的名字,如有的叫待機模式,有的叫斷電模式,但叫什么模式不重要,只要關心這個模式關掉了什么功能、怎么喚醒這些功能就行了,名字只是幫助你記憶的。

睡眠模式,只關掉ARM 內核,其他所有功能正常工作。這種方式不怎么省電,但不會影響整個系統的工作。因為內核在關掉之后,可以通過所有內部和外部功能來喚醒(重新開啟)內核。相當于我們的PC 不用時,CPU 只有2% 左右的工作量,幾乎關閉。當我們動動鼠標時,CPU 又被這個行為喚醒,處理鼠標移動的事件,完成后又回到幾乎關閉的狀態。單片機的睡眠模式與之大體相同。睡眠模式的好處是系統的正常工作不受任何影響,只是內核在沒有工作時才關閉;缺點是只關內核不夠省電。

停機模式是睡眠模式的升級版,它將ARM 內核與幾乎所有內部功能,包括外部高速晶體振蕩器和PLL 都關掉了,只有RTC、看門狗定時器、中斷控制器在工作,只是還能接收中斷,SRAM 中的數據還保存。喚醒的方式是外部中斷、RTC 的鬧鐘還有USB 接口喚醒,除此之外再沒有能恢復的方式,因為所有的內部功能都被關掉了,時鐘電路都不工作了。這有點像PC 的睡眠模式,進入后只有按電源按鍵才可以喚醒,喚醒后系統數據、你打開的文件都還在,因為內存沒有關掉。停機模式的優點是非常省電;缺點是程序不能正常運行了,只有被喚醒后,內部的功能才能工作。停機模式適用于平時工作任務很少的情況,單片機完成工作后有很長一段時間可以休息。這時開啟停機模式,可以最大程度省電。

最后也是最省電的模式是待機模式。它和停機模式的區別是把SRAM 和外部中斷控制器也關掉了,用戶運行的數據消失,也就表示喚醒后必須重頭開始,相當于復位。喚醒的方式是按復位按鍵、看門狗定時器復位、專用喚醒引腳和RTC 鬧鐘喚醒。復位按鍵和專用喚醒引腳完全不耗電,看門狗定時器算是唯一需要耗電的。RTC 鬧鐘由備用電源供電,不耗邏輯電源的電。待機模式相當于PC 的關機,只有按電源按鈕才能復位啟動。待機模式在實際的項目開發中很少用到,因為停機模式已經很省電了,只有一些特殊需求才會用到。

附表:低功耗模式表

1.jpg

【ADC】

在電源管理的部分提到了ADC(模數轉換器),它需要模擬電源供電。ADC 的功能是讀取模擬量的電壓,類似于電壓表。如圖3 所示,在單片機中,I/O 端口是輸入或輸出邏輯電平的,也就是高電平(1)和低電平(0)。也就是說,I/O 端口只能讀取有電壓和沒電壓兩種狀態,至于有電壓時的電壓是多少伏,這就需要ADC 功能來判斷。ADC 可以讀出從0V 到電源電壓之間的具體電壓值,并把這個值變成一組數據。單片機的ADC 性能各有不同,有8位、10 位、12 位甚至更高的,位數越多,表示測得的電壓值更精密。STM32F103 中的ADC 是12 位的,對于一般的精度需要已經足夠。

圖片

圖3 模擬量電壓關系

【DMA】

DMA 功能是一種比較新的功能,它是代替CPU 完成內部功能間的數據傳遞的。這個概念很好理解,比如上面講到的ADC功能,在沒有DMA 功能的單片機里,想讀取ADC 的值,首先要在內核向ADC 功能發出指令,然后等待ADC 讀取完成,內核再從ADC 讀出數據,再存放到SRAM 當中,如圖4 所示。這個過程需要內核的過程參與,這占用了內核的時間,內核就不能做其他工作了。而DMA 功能可以在這種數據讀取、存放的任務上完全解放內核。它能按預先設定好的設置從ADC 讀出數據,然后自動存放到SRAM 中指定的位置,不需要內核的參與。當內核需要ADC 的數據時,只要讀SRAM 指定的位置這一步操作就行了。DMA 不只能讀ADC,它還能在Flash、SRAM、SPI、USART、定時器、I2C 等功能之間相互傳遞數據,如圖5 所示。STM32F103 的DMA 有7 個通道,可以設置7 組數據傳遞任務。DMA 大大提高了內核的工作效率,真的是很重要的功能。

圖片

圖4 DMA工作原理舉例

圖片

圖5 DMA可在多個功能之間相互傳遞數據

【I/O端口】

終于講到了I/O 端口,學習單片機最先接觸的往往就是I/O 端口,它是內部功能當中最重要的一塊。因為I/O 端口也可以代替除ADC 之外所有的邏輯電平的通信接口,包括我們后面要講的I2C、USART、SPI、CAN 等。早年的單片機沒有那么多通信接口,也都是靠I/O 端口來模擬的,由此可見I/O 端口的全能。I/O 端口最原本的功能就是電平的輸入(IN)和輸出(OUT),所以才用I 和O 兩個首字母作為它的名字。在寫法上,正確的是I/O,但也有省去斜線直接寫成IO 的,在STM32 單片機上也被寫成GPIO,都是可以的。

STM32F103 最多有80 個I/O 端口,這些端口每16 個被分成一組,一共有5 組。組的名字分別是PA、PB、PC、PD 和PE,每組中16 個端口的名字可以是PA0 到PA15,其他組也一樣。但由于封裝引腳數量不同,端口的數量也不同。STM32F103C8T6 這款單片機的48 個引腳當中有37 個可作I/O 端口,其接口定義如圖6 所示。其中PA 和PB 的16 個端口都引出了,PC組只引出3個,PD組只引出2個。

每一個I/O 端口都有8 種工作模式,也就是I/O 端口的狀態是輸出還是輸入?是輸入的話,是模擬量輸入還是邏輯電平輸入?我們需要在啟動I/O 端口之前先把它設置成正確的狀態。圖7 所示是GPIO的8 個工作模式,模擬輸入是在作ADC 輸入接口時使用的,浮空輸入是內部不接電阻,下拉和上拉輸入是在I/O 內部接一個約10kΩ的下拉或上拉電阻,根據外部連接的電路可以設置它們。輸出的模式有推挽輸出、開漏輸出,還有復用推挽和復用開漏。推挽是指I/O 端口有很強的電流推動能力,可以輸出一定量的電流,用于推動一些元器件(如LED)工作。開漏則是弱電流的輸出,用于邏輯電平的數據信號通信。復用的推挽和開漏是用在復用狀態下的,這在后面講到復用功能時再說吧。

圖片

圖6 I/O端口的引腳定義

圖片

圖7 I/O端口的工作模式

【調試模式】

在ARM 的內核中,有一組用于仿真調試的接口。不僅是STM32,所有用ARM 內核的單片機都支持這個接口,它叫JTAG。JTAG 接口的功能主要是做程序仿真。所謂仿真,就是不把程序下載到Flash 里,而是在計算機端直接控制單片機內核,使單片機能達到和運行下載到Flash 里的程序一樣的工作效果。因為不是真的運行程序,而是在計算機上模擬的,所以叫仿真。

仿真的好處是可以在計算機上實時改動參數,還可以慢速一步一步地執行程序,看每一步的效果。用仿真功能要比把程序下載到Flash 里再看效果要高效很多。JTAG 還有一個功能是控制I/O 端口的輸出電平狀態,以測試端口是否正常。但測試端口功能很少有人使用,甚至大家都不太知道有這個功能。所有STM32 單片機都帶有JTAG 接口,還有JATG 的簡化接口SWD。圖8 所示是調試接口與單片機的關系,可以看出JTAG 是內核的一部分,并不是一個獨立的功能。連接上,可以用5 條線的標準JATG,也可以用簡化版的2條線的SWD,它們的功能是一樣的,只是連接的方式不同。未來講到程序開發時,我會再專門細講仿真調試的操作方法。

圖片

圖8 調試接口的原理示意

【定時器、看門狗、嘀嗒定時器】

定時器在單片機內部有很多種,之前說過的RTC 就屬于定時器。定時器的本質是計時,當達到設置的時間后去做某個事件。那定時器是怎么知道時間的呢?主要是通過系統時鐘,時鐘產生機械周期,內核以機械周期為單位工作,定時器也以此計數。所以定時器也被說成計數器,因為它就是以機械周期為間隔時間進行計數。當定時器到達了設置的數值時,就會產生一個中斷或事件。普通定時器產生中斷信號給內核,看門狗定時器則產生復位,如圖9 所示。

STM32F103 單片機有1 個高級定時器和3 個普通定時器,它們不僅能定時和計數,還能做很多復雜的工作。其功能非常強大,但限于篇幅關系就不展開介紹了。另外還有2 個看門狗定時器定時器,看門狗定時器的作用是在定時時間到了之后讓單片機復位。比如設看門狗定時器定時5秒,那么5 秒后,看門狗定時器會讓單片機復位。但如果我們在復位之前,用程序不斷把看門狗定時器的計數值清0,那么看門狗定時器就不能讓單片機復位。于是它的真正價值就在這里:如果我們的程序不正常工作了,比如程序中有錯或者外部干擾導致死機,當程序不能把看門狗定時器的計數值清0 時,5 秒后單片機就會被復位,看門狗定時器就把單片機從死機狀態中解救出來了。所以它被取了一個很形象的名字,是保護內核正常工作的忠實伙伴。STM32 單片機中還有一個功能很小的定時器叫嘀嗒定時器,它是專用于實時操作系統中的任務切換的。如果你的單片機沒有安裝操作系統,那么嘀嗒定時器可以作為普通定時器來使用。

圖片

圖9 定時器和看門狗的關系

好了,這一講我們簡單介紹了單片機內部的重要功能,每一個功能都沒有深入展開。主要的目的是讓大家先對這些功能產生基本印象,為今后深入介紹其使用方法打下基礎。

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

    關注

    6043

    文章

    44623

    瀏覽量

    638795
  • 存儲器
    +關注

    關注

    38

    文章

    7529

    瀏覽量

    164373
  • 電源管理
    +關注

    關注

    115

    文章

    6193

    瀏覽量

    144972
  • STM32
    +關注

    關注

    2272

    文章

    10925

    瀏覽量

    357710
  • 硬件設計
    +關注

    關注

    18

    文章

    399

    瀏覽量

    44678
  • 看門狗定時器

    關注

    0

    文章

    40

    瀏覽量

    16285
  • STM32芯片
    +關注

    關注

    0

    文章

    38

    瀏覽量

    4424
收藏 人收藏

    評論

    相關推薦

    行車記錄儀系統與功能

    車載系統主要指多媒體娛樂收音機導航移動電視藍牙電話…行車記錄儀尚未成為主流標配。行車記錄儀,又名黑匣子、車載攝像機主要功能行車過程中全程攝像交通事故的證據保存沿途路況風景記錄…在商業營
    發表于 11-07 11:16

    有什么方法優化重要功能

    PIC16F145X,XC8:我有一個重要功能:UIT88T函數(UTI8YT,UIT88T,UIT88T,UIT88T**);這個函數可以在PIC運行期間一直優化重要功能調用;不知道是否有一些
    發表于 01-14 09:52

    STM32內部通信功能有哪些?

    STM32內部通信功能
    發表于 12-29 07:12

    STM32時鐘樹學習記錄

    STM32 時鐘樹學習記錄時鐘樹介紹在STM32 時鐘系統中,有5 個重要的時鐘源:分別是LSI、LSE、HSI、HSE、PLL。按照時鐘頻率分可分為高速時鐘源和低速時鐘源,在這5 個
    發表于 08-13 07:38

    請問stm32內部功能是什么?

    請問stm32內部功能是什么?
    發表于 10-11 06:20

    STM32定時器的主要功能有哪些差異呢

    Stm32定時器一共分為幾種?STM32定時器的主要功能有哪些差異呢?
    發表于 11-17 06:56

    MSP430單片機內部模塊的主要功能是什么

    1. 網上查找一下資料,看看MSP430系列單片機內部有那些功能模塊(除去CPU和RAM),這些模塊的主要功能是什么?2. MSP430的地址空間是多少KB的,以二進制和十六進制表示最低
    發表于 11-29 06:35

    STM32CubeL4的主要功能是什么?如何使用STM32CubeL4?

    STM32CubeL4的主要功能是什么?如何使用STM32CubeL4?
    發表于 02-14 07:42

    DSO中的內插技術 (數字示波器重要功能的使用)

    DSO中的內插技術 內插是當前數字示波器中的一項重要功能。DSO的主要用途是分析和查看模擬波形。為此,DSO以某種有限采樣率對波形采樣,相對于
    發表于 10-08 08:06 ?5303次閱讀

    K8S-V1.8.13集群安裝配置全記錄的詳細資料免費下載

    本文檔的主要內容詳細介紹的是K8S-V1.8.13集群安裝配置全記錄的詳細資料免費下載
    發表于 07-11 08:00 ?12次下載
    K8S-V1.8.13集群安裝配置<b class='flag-5'>全記錄</b>的詳細資料免費下載

    BBBlackEMMC燒寫全記錄

    BBBlackEMMC燒寫全記錄(開關電源技術指標)-BeagleBone Black eMMC 燒寫全記錄( 基于AM335x SDK06)eMMC 存儲介質目前越來越廣泛的應用在嵌入式系統中
    發表于 09-17 09:15 ?9次下載
    BBBlackEMMC燒寫<b class='flag-5'>全記錄</b>

    UM2688_基于STM32Cube高速數據記錄功能套件

    UM2688_基于STM32Cube高速數據記錄功能套件
    發表于 11-22 19:18 ?1次下載
    UM2688_基于<b class='flag-5'>STM32</b>Cube高速數據<b class='flag-5'>記錄</b><b class='flag-5'>功能</b>套件

    玩轉單片機的重要功能-DMA,你的MCU編程設計有可能成為卷王!

    玩轉單片機的重要功能-DMA,你的MCU編程設計有可能成為卷王!
    的頭像 發表于 09-18 10:56 ?2555次閱讀
    玩轉單片機的<b class='flag-5'>重要功能</b>-DMA,你的MCU編程設計有可能成為卷王!

    SINC濾波器模塊的重要功能

    電子發燒友網站提供《SINC濾波器模塊的重要功能.pdf》資料免費下載
    發表于 11-30 09:14 ?3次下載
    SINC濾波器模塊的<b class='flag-5'>重要功能</b>

    從匿名瀏覽到數據安全:代理IP用戶心聲全記錄

    從匿名瀏覽到數據安全,代理IP技術在現代網絡環境中扮演著重要角色。以下是代理IP用戶心聲的全記錄,涵蓋了其應用、優勢、挑戰及用戶心聲。
    的頭像 發表于 09-30 08:59 ?256次閱讀
    主站蜘蛛池模板: 2018天天夜夜| 日日噜噜夜夜狠狠久久丁香 | 国产成人影院 | 99精品国产高清自在线看超 | 女人张开腿给人桶免费视频 | 国产三及| www.福利| 四虎海外在线永久免费看 | 亚洲人成a在线网站 | 4438x成人全国最大 | 色婷婷激婷婷深爱五月小说 | 99国产成人精品2021 | 色天使色婷婷在线影院亚洲 | 美女视频黄视大全视频免费网址 | 国产一区在线mmai | 国产网站免费看 | 天堂中文在线免费观看 | 天堂资源在线官网资源 | 成人综合激情 | 天天操免费视频 | 性色成人网 | 国产成人精品日本亚洲直接 | 国产色秀视频 | 色婷婷色99国产综合精品 | 综合色99 | 国产福利小视频在线观看 | 波多野结衣中文字幕教师 | 国产嫩草影院精品免费网址 | 天天干天天爽天天射 | 日韩三级一区 | 好紧好爽的午夜寂寞视频 | 中国一级毛片aaa片 中国一级特黄aa毛片大片 | 办公室桌震娇喘视频大全在线 | 亚洲色图国产精品 | 狠狠色视频 | 天天插天天色 | 午夜美女视频在线观看高清 | 日韩午夜免费 | avhd101天天看新片 | 亚洲成人免费在线 | 免费观看欧美一级高清 |