那曲檬骨新材料有限公司

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

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

3天內不再提示

如何設計在stm32中的復位電路?

2oON_changxuemc ? 來源:未知 ? 作者:胡薇 ? 2018-08-10 11:33 ? 次閱讀

說到復位,我們都不會陌生,系統基本都有一個復位按鍵。復位的種類有很多:上電復位、掉電復位、復位引腳復位、看門狗復位、軟件復位等。本文探討的就是在stm32中復位電路如何設計。

STM32介紹

STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應用專門設計的ARMCortex?-M0,M0+,M3, M4和M7內核在STM32F105和STM32F107互連型系列微控制器之前,意法半導體已經推出STM32基本型系列、增強型系列、USB基本型系列、互補型系列;新系列產品沿用增強型系列的72MHz處理頻率。內存包括64KB到256KB閃存和 20KB到64KB嵌入式SRAM

新系列采用LQFP64、LQFP100和LFBGA100三種封裝,不同的封裝保持引腳排列一致性,結合STM32平臺的設計理念,開發人員通過選擇產品可重新優化功能、存儲器、性能和引腳數量,以最小的硬件變化來滿足個性化的應用需求。

stm32復位電路設計

復位電路的作用是為了是系統恢復到初始狀態的,單片機的復位方式也是存在好幾種的:上電復位,系統復位,備份區域復位

上電復位:其產生的條件是,當系統上電、掉電,以及系統從待機模式返回時,發生電源復位電源復位能夠復位除了備份區域寄存器之外的所有寄存器的狀態。

系統復位:以下任一事件發生時,均能產生一個系統復位:

1. NRST引腳上的低電平(外部復位)

2. 窗口看門狗計數終止(WWDG復位)

3. 獨立看門狗計數終止(IWDG復位)

4. 軟件復位(SW復位)

5. 低功耗管理復位

系統復位能夠復位除時鐘控制寄存器CRS中的復位標志和備份區域中的寄存器之外的所有寄存器。

備份區域復位:對于備份區域的復位,一種是在軟件復位的時候設定備份區域控制寄存器中的對應位產生的;另一種是當電源和電池都掉電又重新上電時產生的。

平常我們常用的復位方式有兩種,一種是NRST引腳的低電平復位,通過按鍵復位電路給這個引腳一個低電平,讓系統完成復位,另一種大家都知道,那就是上電復位了,有時候是復位電路莫名失效了,有時是剛啟動的時候,雖然用的沒有按鍵復位電路多,不過也算是很常用的一種復位方式了。按鍵復位電路直接給圖了,網上的講解可能把這電路圖都講爛了,我就不費口舌了。

電容充電時間計算:T = 1.1RC = 1.1 * 10000 * 0.0000001 = 0.0011s = 1.1ms

STM32 內核復位 與 系統復位

內核復位與系統復位的區別

本文說的內核是指處理器內核,也就是MPU(Microprocessor Unit)。比如STM32F103,其內核就是Cortex-M3內核。

而這里的系統就是包含內核和外設,也就是MCU(Microcontroller Unit),對于STM32F103來說,就是Cortex-M3內核+各種外設接口

內核復位:只復位Cortex-M3處理器,而不復位外設如GPIO、TIM、USART、SPI等的寄存器。

系統復位:即復位Cortex-M3處理器,又復位外設寄存器。

因此,我們常說的復位一般指的是系統復位。

內核復位與系統復位的函數源代碼

本文以Cortex-M3(STM32F103)為例來說明,其他芯片類似。

編寫了4個復位函數,內核復位(C語言)、內核復位(匯編)和系統復位(C語言)、系統復位(匯編):

void NVIC_CoreReset(void); //內核復位(C語言)

void NVIC_CoreReset_a(void); //內核復位(匯編)

void NVIC_SystemReset(void); //系統復位(C語言)

void NVIC_SystemReset_a(void); //系統復位(匯編)

在ST官方庫中的core_cm3.h文件中已經提供了NVIC_SystemReset的C語言源代碼。

Cortex-M3允許由軟件觸發復位序列,用于特殊的調試或維護。在Cortex-M3中,有兩種方法可以實現自我復位。

第一種方法:置位 NVIC 中應用程序中斷與復位控制寄存器(AIRCR)的 VECTRESET 位(位偏移:0)。

NVIC_CoreReset內核復位

這種復位的作用范圍覆蓋了整個Cortex-M3處理器,除了調試邏輯之外的所有角落,但是它不會影響到Cortex-M3處理器外部的任何電路,所以STM32上的各片上外設和其它電路都不受影響。

編寫的NVIC_CoreReset函數C語言源碼:

staTIc __INLINE void NVIC_CoreReset(void)

{

__DSB();

//置位VECTRESET

SCB-》AIRCR = ((0x5FA 《《 SCB_AIRCR_VECTKEY_Pos) |

(SCB-》AIRCR & SCB_AIRCR_PRIGROUP_Msk) |

SCB_AIRCR_VECTRESET_Msk);

__DSB();

while(1);

}匯編版函數源碼:

__asm void NVIC_CoreReset_a(void)

{

LDR R0, =0xE000ED0C

LDR R1, =0x05FA0001 //置位VECTRESET

STR R1, [R0]

deadloop_Core

B deadloop_Core

}

內核復位主要注意:SCB_AIRCR_VECTRESET_Msk和LDR R1, =0x05FA0001,這是和系統復位唯一的區別。

第二種方法:置位 NVIC 中應用程序中斷與復位控制寄存器(AIRCR)的 SYSRESETREQ位(位偏移:2)。

NVIC_SysReset系統復位

系統復位是置位同一個寄存器中的SYSRESETREQ位。這種復位則會波及整個芯片上的電路:它會使Cortex-M3處理器把送往系統復位發生器的請求線置為有效。但是系統復位發生器不是Cortex-M3的一部分,而是由芯片廠商實現,因此不同的芯片對此復位的響應也不同。因此,讀者需要認真參閱芯片規格書,明白當發生片內復位時,各外設和功能模塊都會回到什么樣的初始狀態,或者有哪些功能模塊不受影響(比如,STM32系列的芯片有后備存儲區,該區就被特殊對待)。

大多數情況下,復位發生器在響應 SYSRESETREQ 時,它也會同時把Cortex-M3處理器的系統復位信號(SYSRESETn)置為有效。通常,SYSRESETREQ不應復位調試邏輯。

這里有一個要注意的問題:從SYSRESETREQ被置為有效到復位發生器執行復位命令,往往會有一個延時。在此延時期間,處理器仍然可以響應中斷請求。但我們的本意往往是要讓此次執行到此為止,不要再做任何其它事情了。所以,最好在發出復位請求前,先把FAULTMASK置位。可以采用下列匯編語句:__disable_fault_irq();。

core_cm3.h中提供的NVIC_SystemReset函數C語言源碼:

staTIc __INLINE void NVIC_SystemReset(void)

{

SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) |

(SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |

SCB_AIRCR_SYSRESETREQ_Msk);

__DSB(); /* Ensure compleTIon of memory access /

while(1); /* wait unTIl reset */

}

匯編版函數:

__asm void NVIC_SysReset_a(void)

{

LDR R0, =0xE000ED0C

LDR R1, =0x05FA0004

STR R1, [R0]

deadloop_Sys

B deadloop_Sys

}

結語

某些系統允許復位,但對外設又有特殊要求:某一個IO狀態不能因為復位而改變,某一個定時器計數器不能改變等。例子:A系統通過一個IO控制B系統的電源,而這個IO置高時才開啟B系統的電源。

正常工作過程中,B系統只有收到A系統關機命令任務才會進行關機(也就是說不能掉電關機),而A系統在工作過程中有復位的需求。

這個時候如果使用常規的復位方式,就會復位IO,不符合要求。如果有一種方式只復位內核而不復位外設就好了。

關于stm32復位電路相關介紹就到這了,希望通過本文能讓你對stm32復位電路有更深的認識,如有不足之處還望海涵。

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

    關注

    2272

    文章

    10923

    瀏覽量

    357570
  • 復位電路
    +關注

    關注

    13

    文章

    322

    瀏覽量

    44706

原文標題:淺析stm32復位電路方法

文章出處:【微信號:changxuemcu,微信公眾號:暢學單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    stm32復位電路電阻和電容怎么搭配

    搭配STM32復位電路的電阻和電容需要考慮多個因素,包括復位脈沖的寬度、電源穩定時間、電源噪聲抑制等。本文中,我將詳細介紹如何搭配電阻和電
    的頭像 發表于 12-07 16:24 ?3393次閱讀

    stm32復位電路工作原理

    stm32復位電路工作原理 相信大家對復位電路已經很熟悉了,復位
    的頭像 發表于 08-07 11:59 ?3.8w次閱讀

    stm32復位電路問題

    引腳內部是有上拉電阻的。只有認為上拉電流不足情況下才有必要外接上拉電阻。因此,rst電路僅保留一個104電容是可行的。我設計的電路刪掉10k上拉電阻后,芯片也可以正常啟動、燒寫、
    發表于 12-24 19:24 ?11次下載
    <b class='flag-5'>stm32</b>的<b class='flag-5'>復位</b><b class='flag-5'>電路</b>問題

    STM32復位電路

    **STM32復位電路**
    發表于 12-24 19:28 ?24次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>復位</b><b class='flag-5'>電路</b>

    STM32復位源判斷

    項目中有時候會遇到單片機莫名奇妙復位的情況,為了判斷是那種原因引起復位,就需要對單片機的復位源進行判斷。現用STM32F103C8T6單片
    發表于 01-17 12:29 ?12次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>復位</b>源判斷

    STM32復位來源、以及系統和內核復位區別

    每一塊STM32都有這么一個RCC復位和時鐘控制模塊。STM32復位為三類:系統復位、電源
    發表于 02-10 10:30 ?6次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>復位</b>來源、以及系統和內核<b class='flag-5'>復位</b>區別

    淺析stm32復位電路方法

    說到復位,我們都不會陌生,系統基本都有一個復位按鍵。復位的種類有很多:上電復位、掉電復位復位
    發表于 02-11 15:10 ?45次下載
    淺析<b class='flag-5'>stm32</b><b class='flag-5'>復位</b><b class='flag-5'>電路</b>方法

    stm32復位電路設計

    stm32復位電路設計
    發表于 06-26 09:26 ?8次下載

    stm32復位電路如何設計

    1,描述 ? 說到復位,我們都不會陌生,系統基本都有一個復位按鍵。復位的種類有很多:上電復位、掉電復位
    的頭像 發表于 06-22 09:06 ?2686次閱讀

    stm32復位 內核復位和系統復位

    內核復位:它會使STM32內核(Cortex-M)進行復位,而不會影響其外設,如GPIO、TIM、USART、SPI等這些寄存器的復位
    的頭像 發表于 08-01 17:21 ?5127次閱讀

    stm32手動復位按鍵出的電容有什么作用?

    stm32手動復位按鍵出的電容有什么作用? 外部復位電路是嵌入式系統的一項核心功能。這種電路
    的頭像 發表于 09-14 14:22 ?4110次閱讀

    RC復位電路R如何影響芯片復位

    RC復位電路R如何影響芯片復位? RC復位電路是常見的一種
    的頭像 發表于 10-25 11:07 ?1372次閱讀

    stm32復位電容容值

    STM32是意法半導體(STMicroelectronics)推出的一系列32位微控制器,具有低功耗、高性能和豐富的外設功能。STM32微控制器
    的頭像 發表于 01-05 17:39 ?1911次閱讀

    電容復位電路的作用(復位電路具體要怎么設計)

    數字電路寄存器和 RAM 在上電之后默認的狀態和數據是不確定的,如果有復位,我們可以把寄存器復位到初始狀態,RAM 的數據可以通過復位來觸
    發表于 03-13 12:16 ?1691次閱讀
    電容<b class='flag-5'>在</b><b class='flag-5'>復位</b><b class='flag-5'>電路</b><b class='flag-5'>中</b>的作用(<b class='flag-5'>復位</b><b class='flag-5'>電路</b>具體要怎么設計)

    STM32復位電路復位芯片和阻容復位電路區別

    STM32是一款廣泛使用的微控制器,其復位電路設計對于系統的穩定性和可靠性至關重要。本文將詳細介紹STM32復位
    的頭像 發表于 08-06 10:26 ?1823次閱讀
    大发888官方网站| 百家乐官网赌博程序| 雅安市| 六合彩网址| 青神县| 赌博百家乐官网作弊法| 德州扑克比赛视频| 百家乐棋牌交友中心| 永利百家乐官网娱乐场| 百家乐官网过两关| 永利百家乐官网娱乐场| 博E百百家乐官网的玩法技巧和规则 | 大发888体育场下载| 大发888 34| 星空棋牌官方下载| 六合彩官方网站| 元游棋牌官网| 拜城县| 百家乐官网投注平台信誉排名 | 棋牌百家乐官网赢钱经验技巧评测网| 鑫鼎百家乐官网娱乐城| 24山向名| 百家乐官网种类| 百家乐赌博网址| 威尼斯人娱乐城老品牌lm0| bet365赞助球队| 博网百家乐官网现金网| 百家乐官网投注方式| 百家乐官网出千工具价格| 百家乐官网详情| 卢克索百家乐官网的玩法技巧和规则 | 百家乐官网打印机分析| 百家乐官网棋牌正式版| 国际娱百家乐官网的玩法技巧和规则| 明升百家乐QQ群| 大发888赌博网站大全| 百家乐官网靠什么赢| 百家乐官网龙虎台布作弊技巧| 百家乐有没有绝| 金冠百家乐的玩法技巧和规则| 优博最新网址|