【沁恒蓝牙开发】电压监控

文章目录

电压监控 可以独立的监控电压的功能,常用于

①电压过低导致内核等运行不正常

③电压过低导致Flash 擦写异常

等等

电压监控功能介绍

下图节选与CH59x的规格,除了基本的配置外,需要注意的是开启电压监控会增加功耗。

功耗是根据精度决定的,低精度的功耗低,高精度功耗高。

如果特别在意功耗可以分段配置,比如2.5v时使用低精度的,触发后,配置1.8V高精度的。

注:每个系列的功耗不一样,具体参考对应系列的规格书

代码配置

高精度

初始化:

c 复制代码
PowerMonitor(ENABLE,HALevel_2V5); //设置高精度触发
PFIC_EnableIRQ(NMI_IRQn);         //使能NMI中断
PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE|RB_SLP_BAT_WAKE, Long_Delay);

中断:

c 复制代码
__INTERRUPT
__HIGH_CODE
void NMI_Handler(void)
{
  DelayMs(5);
  PRINT("R8_BAT_STATUS=%x. \n",R8_BAT_STATUS);
  while(R8_BAT_STATUS&RB_BAT_STAT_LOWER) //等电压恢复
  {
    PRINT("wait...\n");
  }
  PRINT("recover...\n");
}

中断的效果是不断的在中断内等待电压恢复,因为电压不正常出中断也是没有意义的。

低精度

初始化:

c 复制代码
PowerMonitor(ENABLE,LPLevel_2V5); //使能低精度电压监控
PFIC_EnableIRQ(WDOG_BAT_IRQn);    //低精度使用此中断
PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE|RB_SLP_BAT_WAKE, Long_Delay);

中断:

c 复制代码
__INTERRUPT
__HIGH_CODE
void WDOG_BAT_IRQHandler(void)
{
  DelayMs(5);
  
  PRINT("R8_BAT_STATUS=%x. \n",R8_BAT_STATUS);
  while(R8_BAT_STATUS&RB_BAT_STAT_LOWER) //等电压恢复
  {
    PRINT("wait...\n");
  }
  PRINT("recover...\n");
}

常见问题

打印问题:

如果开启低功耗的时候无法打印,大概率是因为降低功耗配置为IO了,所以要再次初始化串口才可以,代码如下:

c 复制代码
__INTERRUPT
__HIGH_CODE
void NMI_Handler(void)  //或 void WDOG_BAT_IRQHandler(void)
{
  DelayMs(5);
  DebugInit();
  
  PRINT("R8_BAT_STATUS=%x. \n",R8_BAT_STATUS);
  while(R8_BAT_STATUS&RB_BAT_STAT_LOWER) //等电压恢复
  {
    PRINT("wait...\n");
  }
  PRINT("recover...\n");
}

蓝牙工程中配置后未生效

为了低功耗,使用的低功耗函数会默认关闭 电压监控,需要手动注释后才能正常开启电压监控功能,下图是注释后的。

相关推荐
广药门徒11 分钟前
虚拟机联网20260725
嵌入式硬件
国产化创客1 小时前
Kindle 嵌入式交叉开发环境
嵌入式硬件·智能硬件
szxinmai主板定制专家3 小时前
RK3568+FPGA高速并行采集|半导体探针测试设备多通道同步数据采集系统设计
人工智能·嵌入式硬件·计算机视觉·fpga开发
Dlrb12116 小时前
ARM---I2C协议时序详解以及IMX6ULL使用I2C协议与AT24C02,LM75A芯片通信详解与示例代码
嵌入式硬件·arm·lm75a·i2c协议·at24c02·i2c时序
周洲08308 小时前
STM32独立/窗口看门狗完整配置|防止程序跑飞死机、异常复位
stm32·单片机·嵌入式硬件
论迹复利8 小时前
多平台移植 BTBLE Stack 的思路与踩坑实战——从 Ceva IP 到厂商适配层的迁移指南
嵌入式硬件·物联网·架构
SUNNYSPY0019 小时前
30N03DF-ASEMI扫地机器人主驱动30N03DF
单片机
CPETW9 小时前
企业版配套软件介绍 ---- USB TO SPI_ (Excel)-Microwire
网络·科技·单片机·嵌入式硬件·电子
一个嵌入式学徒10 小时前
LVGL图形库移植STM32
stm32·单片机·嵌入式硬件
Hello_Damon_Nikola10 小时前
伺服电机堵转检测算法详解
单片机·嵌入式硬件·算法