打印
[APM32F1]

【小白篇】如何使用芯片的PVD功能

[复制链接]
252|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
多云转晴|  楼主 | 2023-5-22 15:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
            PVD----Programmable Voltage Detecter,即可编程电压检测器。在我们日常的应用中,有时候需要去检测我们的系统是不是掉电了?或者说,我们提前做好一些意外掉电前的保护措施,这个时候就需要用到芯片的PVD功能。
        通过PVD,我们可以去设置一个基准/参考电压,当芯片的供电电压高于或低于这个数值时,均可以产生PVD中断,此时,我们可以在中断里做一些必要的条件处理。
本文以APM32F103XB为例,来说明PVD的使用:
        1)用户通过电源控制寄存器PMU_CTRL的PLSEL位可以设置PVD的触发阈值,设置PVDEN位可以开启或关闭PVD功能;
        2)通过读取电源控制/状态寄存器PMU_CSTS的PVDO**位状态可以得出此时VDD/VDDA电压是否高于设定的PVD阈值;
        3)PVD中断事件在内部连接到了外部中断线16。如果在操作过程中,使能该外部中断线,就可以让该事件产生对应的中断。也就是将中断触发配置为上升沿和下降沿触发时,VDD/VDDA上升至PVD阈值之上或下降至PVD阈值之下时,均可以产生PVD中断。
下面是APM32F103手册对于PVD的描述(图):由于编辑器无法添加图片,如需查看可到附件PDF中查找。
下面是对应的PVD配置代码:
主函数:
int main(void)
{
    APM_MINI_LEDInit(LED2);
    APM_MINI_LEDInit(LED3);
    PVD_Init_l();
    while (1)
    {
        Delay();
    }
}
PVD配置:
void PVD_Init_l(void)
{
    RCM_EnableAPB1PeriphClock(RCM_APB1_PERIPH_PMU);//开启PMU时钟
    PMU_ConfigPVDLevel(PMU_PVD_LEVEL_2V9);//选择PVD的触发电压
    //PVD中断配置
    NVIC_ConfigPriorityGroup(NVIC_PRIORITY_GROUP_0);//设置中断分组
    NVIC_EnableIRQRequest(PVD_IRQn,0,0);//设置PVD_IRQn中断等级,使能
    //EINT中断线配置
    EINT_Config_T EINT_PVD;
    EINT_PVD.line = EINT_LINE_16;
    EINT_PVD.mode = EINT_MODE_INTERRUPT;//配置为中断
    EINT_PVD.trigger = EINT_TRIGGER_RISING_FALLING;//上升沿/下降沿触发
    EINT_PVD.lineCmd = ENABLE;
    EINT_Config(&EINT_PVD);
    //使能PVD
    PMU_EnablePVD();
}
中断服务函数:
void PVD_IRQHandler(void)
{
    for(uint32_t i = 0;i < 6;i++)
    {
    if(i%2)
    {
        APM_MINI_LEDToggle(LED3);
    }
    else
    {
  APM_MINI_LEDToggle(LED2);
}
  Delay();
        NVIC_ClearPendingIRQ(PVD_IRQn);
        EINT_ClearIntFlag(EINT_LINE_16);
    }
}


【小白篇】如何使用芯片的PVD功能.pdf

299.65 KB

使用特权

评论回复
沙发
tpgf| | 2023-6-7 09:14 | 只看该作者
PVD的中断等级是不是相对来说比较高的呢

使用特权

评论回复
板凳
nawu| | 2023-6-7 09:23 | 只看该作者
pvd是只能配置为边沿触发吗?可以使用电平触发模式吗

使用特权

评论回复
地板
aoyi| | 2023-6-7 10:48 | 只看该作者
可以同时配置pvd的有两个动作阈值吗

使用特权

评论回复
5
zljiu| | 2023-6-7 11:00 | 只看该作者
一般来说PVd的电压需要外部的引脚进行采集吗

使用特权

评论回复
6
gwsan| | 2023-6-7 11:49 | 只看该作者
我们如何通过PVD来监控别的芯片的电压呢

使用特权

评论回复
7
tfqi| | 2023-6-7 12:11 | 只看该作者
大部分情况下,我们使用PVD的主要用途是什么呢 ?

使用特权

评论回复
评论
专注于嵌入式 2023-6-12 15:28 回复TA
掉电数据保存 
8
Q3233273203| | 2023-6-30 12:04 | 只看该作者
赞, 欧S 15813376719 微信同号  极海代理

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

11

帖子

0

粉丝