CH643-RGB键盘的睡眠、唤醒以及远程唤醒主机


    根据USB规范,要求没有总线活动而挂起的设备必须将其电流消耗降低到 2.5mA或更低;因此在主机睡眠后,键盘设备也需要进入低功耗的模式。

一、CH643-RGB键盘设备的睡眠

    在主机睡眠之后,USB总线上超过3ms的空闲状态,键盘设备挂起,此时CH643-RGB键盘进入USB的SUSPEND中断,并且程序设计中如下图在KB_Sleep_Wakeup_Operate( )函数中调用命令进入低功耗模式;

image

image

    在调用PWR_EnterSTOPMode(PWR_STOPEntry_WFE)函数正式进入低功耗模式之前,需要将除键盘与USB使用的引脚外,其他引脚全部设置成上拉输入模式以降低整体功耗,最终RGB键盘最低的睡眠功耗约在70uA-80uA,具体说明参考以下文章:
CH643-如何降低键盘整体睡眠功耗 - WCH_CH32 - 博客园 (cnblogs.com)

二、CH643-RGB键盘设备的按键唤醒

    键盘进入睡眠后,支持自身按键唤醒和主机通过USB总线活动唤醒,在程序中需要配置按键相关引脚的外部事件,以及USB唤醒事件;

image

    键盘设备被唤醒后,从进入睡眠处继续运行程序;

三、主机的远程唤醒

    CH643-RGB键盘要能够远程唤醒主机,首先需要在配置描述符的bnAttributes字段设置支持远程唤醒的特性,即bnAttributes这一字节的bit5设置为1;

image

    主机端也需要允许设备远程唤醒,在设备管理器中可设置;

image

    按上述设置后,主机在进入睡眠前会向支持远程唤醒的设备发送Set Feature序列激活设备的远程唤醒特性;唤醒后主机又会发送Clear Feature来清除此特性;如下图为CH643RGB键盘在主机睡眠后按键远程唤醒主机的USB抓包数据;

image

posted @ 2024-02-01 10:17  WCH_CH32  阅读(99)  评论(0编辑  收藏  举报