<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32的PVD、POR、PDR簡介

          STM32的PVD、POR、PDR簡介

          作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
          先看一下這2張截自STM32參考手冊的圖片:





          下面這張表截自STM32F103x8/B的數(shù)據(jù)手冊,對上圖的參數(shù)給出了具體數(shù)值:



          下面對上面2張圖和表格中的數(shù)據(jù)做一個簡要的解釋:

          1)PVD = Programmable Votage Detector 可編程電壓監(jiān)測器
          它的作用是監(jiān)視供電電壓,在供電電壓下降到給定的閥值以下時,產(chǎn)生一個中斷,通知軟件做緊急處理。在給出表格的上半部分就是可編程的監(jiān)視閥值數(shù)據(jù)。當(dāng)供電電壓又恢復(fù)到給定的閥值以上時,也會產(chǎn)生一個中斷,通知軟件供電恢復(fù)。供電下降的閥值與供電上升的PVD閥值有一個固定的差值,這就是表中的VPVDhyst(PVD遲滯)這個參數(shù),通過列出的PVD閥值數(shù)據(jù)可以看到這個差別。引入這個差值的目的是為了防止電壓在閥值上下小幅抖動,而頻繁地產(chǎn)生中斷。

          2)POR = Power On Reset 上電復(fù)位;PDR = Power Down Reset 掉電復(fù)位。
          POR 的功能是在VDD電壓由低向高上升越過規(guī)定的閥值之前,保持芯片復(fù)位,當(dāng)越過這個閥值后的一小段時間后(圖中的"滯后時間"或表中的"復(fù)位遲滯"),結(jié)束復(fù)位并取復(fù)位向量,開始執(zhí)行指令。這個閥值就是表中倒數(shù)第4行(min=1.8,typ=1.88,max=1.96)。
          POR的功能是在VDD電壓由高向低下降越過規(guī)定的閥值后,將在芯片內(nèi)部產(chǎn)生復(fù)位,這個閥值就是表中倒數(shù)第3行(min=1.84,typ=1.92,max=2.0)。

          3)可以看到POR比PDR大了0.04V,這就是表中倒數(shù)第2行,VPDRhyst(PDR遲滯)=40mV。

          4)從上面的第2張圖可以看到,當(dāng)VDD上升越過POR閥值時,內(nèi)部并不馬上結(jié)束復(fù)位,而是等待一小段時間(Reset temporization),這就是表中的最后一行TRSTTEMPO,它的典型數(shù)值是2.5ms。

          這個滯后時間是為了等待供電電壓能夠升高到最低可靠工作電壓以上,我們看到POR閥值最小只有1.8V,最大也只有1.96V,都低于數(shù)據(jù)手冊中給出的最低可靠工作電壓2.0V,所以這個滯后時間是十分必要的,如果供電電壓上升緩慢,尤其是從1.8V升到2.0V以上超過1~2.5ms,則很可能造成上電復(fù)位后MCU不能正常工作的情況。


          關(guān)鍵詞: STM32PVDPORPD

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();