STM32L051 PVD的調試


我的PVD的驅動以及例程位於STM32L0xx_Drivers這個庫當中,在使用前最好先閱讀readme.md文件

PVD 是一種檢測MCU供電情況的技術。當供電電壓高於或者低於一定閾值的時候,可以在寄存器上體現出來,或者直接產生硬件中斷。
在實際使用MCU時,特別是電池供電的方案中,往往會遇到供電不夠導致MCU或者外設工作不正常的情況。PVD在這個時候就可以派上用場了。
PVD的使用按照數據手冊上的說明,就是首先設置PVD閾值(PVD thresholds),當MCU的VDD引腳的電壓高於閾值時,則PVD output=1,當VDD電壓低於閾值時,PVD output=0,如下圖所示:

其中PVD output的結果可以再在存器中查看到


關於PVD的閾值的設定共有兩種方式:

  • 固定閾值(1.9V 2.1V 2.3V 2.5V 2.7V 2.9V 3.1V)
  • 與引腳比較(PB7)

在實際使用的過程中,PVD可以用查詢揮着中斷的方式來工作。

在測試的例程中,我配置PVD工作方式為中斷上升下降沿觸發,當VDD高於預設PVD閾值或者低於閾值而產生邊沿觸發時,都會形成一次PVD中斷,然后讀取PWR_CSR的PVDO標志位檢查是低電壓提醒還是高電壓提醒,以此來達到監控MCU供電情況的目的。

注意:當使用PVD功能檢測低電壓時,VDD電壓剛剛小於閾值時並不會直接產生PVD中斷,只有當VDD電壓小於(閾值-50MV)時,才會產生中斷。

如果有什么疑問或者錯誤歡迎大家指正,email:454626653@qq.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM