打印
[学习笔记]

AC781x可编程电压检测功能防止电压过低

[复制链接]
405|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
JasonLee27|  楼主 | 2020-4-13 14:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
硬件环境: AC781X demo板
软件环境: keil 5.23

当我们采用电池供电的时候,会遇到电池电量逐渐衰减而导致电压降低,这个时候可以使用AC7811的可编程电压检测功能,当检测到电压低于一定值的时候中断提示,以便客户可以在芯片断电前做一些措施。

代码实现也不复杂,这里设置的是2.65V低压检测,以及2.7V可编程电压检测,当采用电池供电,芯片供电电压低于2.7V时,就会产生PVD_Handler。例程通过LED观察现象。
int main(void)  
{  
    InitDelay();  
    InitDebug();  
      
    SPM_SetLVDTriggerLevel(0);  ///<2.65V  
    SPM_SetPVDTriggerLevel(0);  ///<2.7V  
    SPM_EnablePVD(1);  
    SPM_EnableLVD(1);  
    WriteBitsValue(0x40008000, 0, 1, 0x01); /* enable spm power */  
    SPM_EnableModuleWakeup(SPM_MODULE_PVD, ENABLE);   
  
    GPIO_SetDir(GPIO_PB9, 1);  
    GPIO_SetDir(GPIO_PB10, 1);  
    LED2 = 0;  
    LED3 = 1;  
    NVIC_ClearPendingIRQ(PVD_IRQn);  
    NVIC_EnableIRQ(PVD_IRQn);  
      
    while(1)  
    {  
         
    }  
}  
  
void PVD_Handler(void)  
{  
   // printf("a PVD interrupt happened\r\n");  
    LED2 = 1;  
    LED3 = 0;  
}  




参考例程:
LVD_sample.rar (557.32 KB)

使用特权

评论回复

相关帖子

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

本版积分规则

66

主题

415

帖子

10

粉丝