BLE ch573 唤醒 功耗问题

如下图  

我在这里 配置GPIO [PB-22 作为按键]唤醒,  功耗就会增加 2.5mA , 猜测应该是使能了 GPIO的时钟  ,
如果用扫描的方式  100us 也会增加很多(约100-200uA)   时钟再长,功耗能 降下去,但响应不及时


这个如何解决?


image.png



你好,ch57x系列mcu是不支持pb22作为唤醒引脚功能的,目前支持唤醒的引脚有pa0~pa15以及pb0~pb15。睡眠唤醒的demo可以参考ch573evt中pm例程。ch573evt可以去官网下载。


噢 好的 ,谢谢。
这个有没有具体资料支持   比如刚刚这种,设计时候的注意事项之类的



最新的ch573的datasheet中(v1.7,p38),CH571/CH573已经支持 所有IO的睡眠唤醒功能,



PB22 作为睡眠唤醒 可按照下面方式:

//初始化
void gpio_init(){
  //初始化位输入上拉 
  GPIOB_ModeCfg(GPIO_Pin_22, GPIO_ModeIN_PU);
  //开启下降沿中断,这个需要保证
  //for ch571/ch573  R16_PB_INT_EN bit8 bit9 mapping to PB22,PB23
  GPIOB_ITModeCfg(GPIO_Pin_8,GPIO_ITMode_FallEdge);
  //开启GPIO睡眠唤醒,这里必须使用 Edge_LongDelay
  PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_GPIO_WAKE,Edge_LongDelay );
  //开启GPIO中断
  PFIC_EnableIRQ(GPIO_B_IRQn);
}

//中断服务程序
__attribute__((interrupt("WCH-Interrupt-fast")))
__attribute__((section(".highcode")))
void GPIOB_IRQHandler(void){
    GPIOB_ClearITFlagBit(GPIO_Pin_22);
    //这个打印可能会乱码,在开启休眠后
    PRINT("gpio interrupt\r\n");
}


另外注意事项:

对于下降沿或者低电平唤醒,在进入休眠时候必须保证 对应的IO是高电平,否则电流会比较大,mA级

对于上升沿或者高电平唤醒,在进入休眠时候必须保证 对应的IO是低电平,否则电流会比较大,mA级


感谢 我知道原因了。 就是 
我是 上拉 高电平,   我给的中断是 上升沿【按键抬起中断】, 所以导致的。 


我按下按键的时候发现功耗降下去了, 才看到你的回复 。

谢谢!


只有登录才能回复,可以选择微信账号登录