CKS32F4xx系列產(chǎn)品提供了可編程電壓檢測器PVD,用于對MCU供電電壓VDD進(jìn)行監(jiān)控,當(dāng)檢測到電壓低于或者高于PVD設(shè)置的閾值時(shí),會向內(nèi)核產(chǎn)生一個(gè)PVD中斷(EXTI線中斷)以使內(nèi)核在復(fù)位前進(jìn)行緊急處理。該電壓閾值可通過PWR_CSR進(jìn)行設(shè)置。只要電壓超過芯片最低運(yùn)行電壓,芯片就能正常工作,而不是低于閥值就不能工作。在實(shí)際運(yùn)用中,如果是用電池給芯片供電,當(dāng)電池電量不足時(shí),電池的供電電壓就會下降,下降到低于閥值時(shí)就會觸發(fā)PVD中斷,此功能可以通知用戶,使系統(tǒng)進(jìn)入特別保護(hù)狀態(tài),執(zhí)行緊急關(guān)閉任務(wù)程序進(jìn)行相關(guān)處理,比如進(jìn)行數(shù)據(jù)備份處理或者進(jìn)行低電量提醒等操作。
PVD可配置8個(gè)等級,通過電源控制寄存器中的PLS[2:0]位可以用來設(shè)定檢測電壓的閥值,詳見下表。
PVD模塊操作流程
一、系統(tǒng)啟動后啟動PVD,并開啟相應(yīng)的中斷:
首先通過固件庫函數(shù)RCC_APB1PeriphClockCmd配置PWR模塊時(shí)鐘,然后配置檢測電壓的閥值,根據(jù)表1設(shè)置參數(shù)。PVD中斷連接EXTI_Line16中斷線,配置中斷順序依次為:中斷線、中斷模式、觸發(fā)方式及中斷線使能。
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //開啟PWR時(shí)鐘 /* 設(shè)定檢測閥值 */ PWR_PVDLevelConfig(PWR_PVDLevel_5); EXTI_StructInit(&EXTI_InitStructure); /* PVD連接到中斷線16上 */ EXTI_InitStructure.EXTI_Line = EXTI_Line16; /* 使用中斷模式 */ EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; /* 電壓低于閥值時(shí)產(chǎn)生中斷 */ EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Raising; /* 使能中斷線 */ EXTI_InitStructure.EXTI_LineCmd = ENABLE; /* 初始化中斷 */
EXTI_InitStructure.EXTI_Trigger配置定義:
EXTI_Trigger_Rising---表示電壓從高下降到低于設(shè)定閥值時(shí)產(chǎn)生中斷。
EXTI_Trigger_Falling---表示電壓從低上升到高于設(shè)定閥值時(shí)產(chǎn)生中斷。
EXTI_Trigger_Rising_Falling---表示電壓上升或下降越過設(shè)定閥值時(shí)都產(chǎn)生中斷。
二、配置PVD中斷優(yōu)先級:
void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; /* 嵌套向量中斷控制器組選擇 */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_3); /* 配置USART為中斷源 */ NVIC_InitStructure.NVIC_IRQChannel = PVD_IRQn; /* 搶斷優(yōu)先級為1 */ NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; /* 子優(yōu)先級為1 */ NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; /* 使能中斷 */ NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; /* 初始化配置NVIC */ NVIC_Init(&NVIC_InitStructure); }
三、使能PVD模塊:
PWR_PVDCmd(ENABLE); // 使能PVD
四、產(chǎn)生PVD中斷,在中斷程序中進(jìn)行相應(yīng)的處理:
void PVD_IRQHandler(void) { EXTI_ClearITPendingBit(EXTI_Line16); …… // 用戶添加緊急處理代碼處 }
-
mcu
+關(guān)注
關(guān)注
146文章
17148瀏覽量
351212 -
寄存器
+關(guān)注
關(guān)注
31文章
5343瀏覽量
120376 -
電壓
+關(guān)注
關(guān)注
45文章
5607瀏覽量
115786 -
中斷
+關(guān)注
關(guān)注
5文章
898瀏覽量
41502 -
PVD
+關(guān)注
關(guān)注
4文章
49瀏覽量
16981
原文標(biāo)題:MCU微課堂 | CKS32F4xx系列產(chǎn)品PVD應(yīng)用
文章出處:【微信號:中科芯MCU,微信公眾號:中科芯MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論