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

文章目录

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

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

③电压过低导致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");
}

蓝牙工程中配置后未生效

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

相关推荐
Industio_触觉智能16 小时前
RK3506 Buildroot系统目录地图-上|7个关键符号链接与构建产物全解析
嵌入式硬件·sdk·智能硬件·固件·瑞芯微·系统编译·rk3506
lzj_pxxw19 小时前
STM32移植FreeRTOS(Cmake+CubeMX)
vscode·stm32·嵌入式硬件
Zwawa20 小时前
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系
c语言·单片机·嵌入式
물の韜21 小时前
ZYNQ/FMQL系列Linux之I2C开发实战
linux·arm开发·嵌入式硬件·设备树·iic·zynq
无敌贵点大王1 天前
从寄存器层面重学STM32(7)——定时器
stm32·单片机·嵌入式硬件
碧海银沙音频科技研究院1 天前
粉色笔记本电脑每次要等把电池电耗尽才能开机问题解决方法
嵌入式硬件
wuyk5552 天前
Keil工具链-第05讲-启动文件与__main到底做了什么
c语言·stm32·单片机·嵌入式硬件·物联网
shijuejianceliu2 天前
传统规则视觉与嵌入式AI智能相机的技术差异
人工智能·嵌入式硬件·视觉检测·相机
不脱发的程序猿2 天前
GD32串口数据收进内存之后DMA如何处理?
单片机·嵌入式硬件·dma·嵌入式·串口通信·gd32
FPGA小迷弟2 天前
FPGA 与千兆以太网校验和:从原理到 Verilog 实现
嵌入式硬件·fpga开发·无人机·ai编程·fpga