[学习笔记] AC781x可编程电压检测功能防止电压过低

[复制链接]
715|0
 楼主| JasonLee27 发表于 2020-4-13 14:27 | 显示全部楼层 |阅读模式
硬件环境: AC781X demo板
软件环境: keil 5.23

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

代码实现也不复杂,这里设置的是2.65V低压检测,以及2.7V可编程电压检测,当采用电池供电,芯片供电电压低于2.7V时,就会产生PVD_Handler。例程通过LED观察现象。
  1. int main(void)  
  2. {  
  3.     InitDelay();  
  4.     InitDebug();  
  5.       
  6.     SPM_SetLVDTriggerLevel(0);  ///<2.65V  
  7.     SPM_SetPVDTriggerLevel(0);  ///<2.7V  
  8.     SPM_EnablePVD(1);  
  9.     SPM_EnableLVD(1);  
  10.     WriteBitsValue(0x40008000, 0, 1, 0x01); /* enable spm power */  
  11.     SPM_EnableModuleWakeup(SPM_MODULE_PVD, ENABLE);   
  12.   
  13.     GPIO_SetDir(GPIO_PB9, 1);  
  14.     GPIO_SetDir(GPIO_PB10, 1);  
  15.     LED2 = 0;  
  16.     LED3 = 1;  
  17.     NVIC_ClearPendingIRQ(PVD_IRQn);  
  18.     NVIC_EnableIRQ(PVD_IRQn);  
  19.       
  20.     while(1)  
  21.     {  
  22.          
  23.     }  
  24. }  
  25.   
  26. void PVD_Handler(void)  
  27. {  
  28.    // printf("a PVD interrupt happened\r\n");  
  29.     LED2 = 1;  
  30.     LED3 = 0;  
  31. }  




参考例程:
LVD_sample.rar (557.32 KB, 下载次数: 8)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

66

主题

415

帖子

12

粉丝
快速回复 在线客服 返回列表 返回顶部
0