首页 > 其他分享 >CH58x/CH592x低电压监控

CH58x/CH592x低电压监控

时间:2024-11-06 19:09:23浏览次数:1  
标签:STATUS BAT R8 HALevel LPLevel CH58x 低电压 CH592x PRINT

前言:有时在电池供电场景或者电表的场景下可能会出现电池电压低需要更换电池突然停电需要保存数据。此时低电压监测就起到了作用。

提供了两种精度模式:高精度监控和低精度监控模式

高精度模式:210ua的额外功耗

低精度模式:1ua的额外功耗

/**
 * @brief  wakeup mode define
 */
typedef enum
{
    /* 下面等级将使用高精度监控,210uA消耗 */
    HALevel_1V9 = 0, // 1.7-1.9
    HALevel_2V1,     // 1.9-2.1
    HALevel_2V3,     // 2.1-2.3
    HALevel_2V5,     // 2.3-2.5

    /* 下面等级将使用低功耗监控,1uA消耗 */
    LPLevel_1V8 = 0x80,
    LPLevel_1V9,
    LPLevel_2V0,
    LPLevel_2V1,
    LPLevel_2V2,
    LPLevel_2V3,
    LPLevel_2V4,
    LPLevel_2V5,

} VolM_LevelypeDef;

实际使用:

//低精度   
PowerMonitor(ENABLE,LPLevel_2V5); PFIC_EnableIRQ(WDOG_BAT_IRQn );

__INTERRUPT
__HIGH_CODE
void WDOG_BAT_IRQHandler(void)
{
// PRINT("R8_BAT_STATUS=%x. \n",R8_BAT_STATUS);
// while(R8_BAT_STATUS&RB_BAT_STAT_LOWER) //等电压恢复
// {
// PRINT("BAT low.. \n");
// }
// PRINT("BAT normal.. \n");
}

 

  //高精度

  PowerMonitor(ENABLE,HALevel_2V5);

__INTERRUPT
__HIGH_CODE
void NMI_IRQHandler(void)
{
// PRINT("R8_BAT_STATUS=%x. \n",R8_BAT_STATUS);
// while(R8_BAT_STATUS&RB_BAT_STAT_LOWER) //等电压恢复
// {
// PRINT("BAT low.. \n");
// }
// PRINT("BAT normal.. \n");
}

如果使用低功耗:

添加这个配置PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE|RB_SLP_BAT_WAKE, Long_Delay);

且需要在睡眠函数将关闭电压监控屏蔽:

 
 仅是个人学习分享;如有任何错漏敬请留言指正。

标签:STATUS,BAT,R8,HALevel,LPLevel,CH58x,低电压,CH592x,PRINT
From: https://www.cnblogs.com/frontier/p/18529772

相关文章

  • CH57X/CH58X/CH59X 加PA应用
    一、前言在有些时候产品需要做到更远的距离在原来的基础上加上PA放大芯片来实现广播或者连接距离上的提升。PA是PowerAmplifier的简称,中文名称为功率放大器,简称“功放”,指在给定失真率条件下,能产生最大功率输出以驱动某一负载的放大器。对于射频通信系统,PA负责发射通道......
  • 低电压穿越装置保证新型材料生产企业连续生产
    1、项目需求XX集团是以聚酯新材料,民用丝、工业丝、聚酯薄膜、瓶片全产业链发展的龙头企业,作为一家连续型生产企业,工艺连续性强、设备之间关联度高,连续安全生产决定企业的关键效益,晃电现象正是破坏供电连续性和可靠性的“隐形杀手”,晃电发生时,伴随电网电压暂降,超过一定的暂降时间和......
  • CH58x/CH59x/CH57x RF_PHY(2.4g)切换Channel发送接收
    前言:在做某些应用的时候可能需要我们发送或者接收时切换对应的channel。此次完成测试的平台在WCH的CH592F上完成的。在工作发送过程中切换37、38、39三个信道进行轮询发送。具体需要使用最关键的函数是:RF_SetChannel实现代码如下:if(events&channl_37_tx_evt){......
  • CH58x/59x SPI0代码参考
    前言:代码参考为首字节模式和数据流模式,均使用DMA,建议使用数据流DMA。一、数据流/首字节收发代码参考数据流流程:主机定时器1ms间隔发送;从机接收数据;从机填入发送数据到DMA并通知主机接收;主机DMA接收数据;首字节流程:主机定时器1ms间隔发送;从机首字节接收并DMA接收完整数......
  • ch58x/ch59xADC差分采样NTC电阻获取当前温度
    前言:之前的文章中也有关于使用I2C器件进行温度的采集的文章采集温度的方式不止使用传感器,也可以使用NTC温敏电阻进行采集,此方法的外围电路较为简单切成本较低,代码也较为容易实现。实现原理:先通过差分采样电路进行采集,采集之后可以获取NTC或者定值电阻的电压;已知这些信息可以通过......
  • CH57x/CH58x/CH59x获取从机广播信息
    有时需要通过主机设备(MCU非手机)获取从设备的广播信息例如广播包,MAC地址,扫描应答包等以下的程序片段及功能实现是在WCH的CH59X的observer例程上实现的;1、获取广播包所有的函数在库函数中都可以找到,具体实现函数如下:caseGAP_DEVICE_INFO_EVENT:{Observ......
  • CH57x/CH58X/CH59X/CH32F/V208OTA使用说明
    目前提供了两种OTA升级方式,方式一:带库升级;每次升级可以带着库一起进行升级(带库升级适用于flash较大的芯片)方式二:固定库升级;升级时库不会随着升级而升级(适用于flash不够用时)方式一:升级时需要同时烧录这三个固件:(可以使用isp工具同时烧录也可以使用合并工具将三个工程合并后再烧......
  • CH58x芯片Hardfault问题排查
    前言:针对RISC-V芯片进入HardFault_Handler函数的问题排查提供讲解。一、HardFault函数添加PC指针打印在公共文件的sys.c函数中找到函数并修改如下:__INTERRUPT__HIGH_CODE__attribute__((weak))voidHardFault_Handler(void){uint32_tv_mepc,v_mcause,v_mtval;p......
  • 低功耗蓝牙系列芯片CH57x,CH58x,CH59x实现蓝牙多通道配对/回连同一台电脑或多台电脑实
    依旧以老朋友CH583为例,我们随便打开一个HID例程,还是以HID_Keyboard例程做讲解:1、直奔主题到我们的库函数初始化函数中去,红圈圈中的SNVAddr配置信息为我们此次配对连接后所获取到的信息存储的地址区,配对信息中包含:对方MAC地址,设备信息,协商所得IRK密钥等关键信息,都会保存到SNVAddr......
  • CH57x,CH58x,CH59x芯片_SPI借助GPIO中断完成中断传输
    受其他项目的启发,如果IO充裕,且在SPI主机与SPI从机均可以自行编程的情况下,可以尝试在4线SPI的基础上增加两根GPIO线,通过IO中断的形式通知对方进行收数据;非SPI中断形式,以两颗CH582通讯为例,1、主机程序:voidmain(){SetSysClock(CLK_SOURCE_PLL_60MHz);GPIOA_ModeCfg......