You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Cypress PSoC的CapSense唤醒睡眠模式实现求助

PSoC睡眠模式下通过CapSense唤醒的实现方案

核心配置步骤

  • CapSense模块基础配置

    • 在PSoC Creator中打开工程,进入CapSense组件配置界面:
      1. 启用唤醒功能(Wake-up Enable),将传感器设置为低功耗扫描模式(Low Power Scan Mode),确保睡眠期间能维持触摸检测。
      2. 根据实际场景调整基线跟踪和灵敏度参数,设置合适的检测阈值,避免误触发或触发不灵敏。
      3. 开启CapSense中断,将触发条件设为"触摸检测",保证触摸事件能触发中断信号。
  • 睡眠模式与唤醒源配置

    • 进入Power Manager配置界面:
      1. 选择匹配功耗需求的睡眠模式(如Deep Sleep),需提前查阅对应PSoC datasheet,确认该模式下CapSense低功耗扫描功能仍能正常运行。
      2. 配置电源域,确保CapSense模块在睡眠模式下保留供电,避免模块断电导致无法检测触摸。
      3. 将CapSense中断设为唤醒源,在Power Manager中勾选对应选项。

代码实现示例

#include "project.h"

/* CapSense唤醒中断处理函数 */
void CapSense_WakeupHandler(void)
{
    // 唤醒后恢复必要模块供电,示例:重启串口
    UART_Start();
    // 重新启动CapSense全部件扫描
    CapSense_ScanAllWidgets();
}

int main(void)
{
    CyGlobalIntEnable; /* 启用全局中断 */
    
    // 初始化CapSense模块
    CapSense_Start();
    CapSense_ScanAllWidgets();
    // 绑定中断回调函数
    CapSense_SetInterruptCallback(CapSense_WakeupHandler);
    
    for(;;)
    {
        while(!CapSense_IsBusy())
        {
            CapSense_ProcessAllWidgets();
            
            // 无触摸事件时进入睡眠
            if(CapSense_CheckIsWidgetActive(CapSense_BUTTON0_WDGT_ID) == 0)
            {
                // 关闭非必要模块以降低功耗
                UART_Stop();
                // 进入Deep Sleep模式
                CySysPmDeepSleep();
            }
        }
    }
}

常见问题排查

  • 睡眠模式不兼容:部分深度睡眠模式会关闭CapSense的时钟或电源,需核对datasheet确认所选模式支持CapSense低功耗扫描。
  • 中断未生效:检查NVIC中是否启用CapSense中断,Power Manager中是否正确将CapSense设为唤醒源。
  • 触发异常:调整CapSense传感器的灵敏度和阈值,测试不同触摸场景下的响应,确保基线跟踪功能正常运行。

内容的提问来源于stack exchange,提问作者user22269571

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 02:54:51