0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

瑞萨电容触摸技术之低功耗应用—RX140实验环节(5)-3

瑞萨MCU小百科 来源:瑞萨MCU小百科 2024-04-09 14:07 次阅读

Lab Session 4

在Lab 3的基础上增加低功耗 (Auto Judgement) 功能

5.4

增加低功耗 (Auto Judgement) 功能应用程序

5.4.1 将培训配套资料Checkpoints文件夹中的工程 "Lab session 4" 中的qe_gen文件的 "qe_touch_sample.c" 拷贝

并覆盖 "Project Explorer" 的Lab_session_1工程中qe_gen文件的 "qe_touch_sample.c".

5.4.2 应用程序代码说明

使用init_peripheral_function初始化需要使用的外设

使用R_CTSU_Open() 初始化config01 (MEC电极)

使用RM_TOUCH_Open() 初始化config02 (12个自容式按键)

/* Initialize peripheral functions */
init_peripheral_function();
/* Open Touch middleware */
err = R_CTSU_Open (g_qe_ctsu_instance_config01.p_ctrl, g_qe_ctsu_instance_config01.p_cfg);
ctsu_ctrl = (ctsu_instance_ctrl_t *)g_qe_ctsu_instance_config01.p_ctrl;
err = RM_TOUCH_Open (g_qe_touch_instance_config02.p_ctrl, g_qe_touch_instance_config02.p_cfg);

5.4.3 应用程序代码说明

以下代码完成config01 (MEC电极) 和 config02 (12个自容式按键电极) 的初始化偏置电流调整。

/* Initial Offset Tuning */
{
  (void)R_LPT_SetCMT(LPT_CH1, (uint32_t)WAKEUP_LPT_PERIOD_NORMAL);
  /* Method1 offset tuning */
  do
  {
    err = R_CTSU_ScanStart (g_qe_ctsu_instance_config01.p_ctrl);
    if (FSP_SUCCESS != err)
    {
      while (true) {}
    }
    (void)R_LPT_Control(LPT_CMD_START);
    while (0 == g_qe_touch_flag) {}
    g_qe_touch_flag = 0;
    err = R_CTSU_OffsetTuning (g_qe_ctsu_instance_config01.p_ctrl);
  } while(err != FSP_SUCCESS);
  /* Method2 offset tuning */
  do
  {
    err = RM_TOUCH_ScanStart (g_qe_touch_instance_config02.p_ctrl);
    if (FSP_SUCCESS != err)
    {
      while (true) {}
    }
    (void)R_LPT_Control(LPT_CMD_START);
    while (0 == g_qe_touch_flag) {}
    g_qe_touch_flag = 0;
    err = RM_TOUCH_DataGet(g_qe_touch_instance_config02.p_ctrl, &button_status02, NULL, NULL);
  } while(err != FSP_SUCCESS);
}

5.4.4 应用程序代码说明

以下代码完成config01 (MEC电极) 在Normal模式下的baseline调整。

/* base line setting @method1 */
for (uint32_t i = 0U; i < WAKEUP_TIME_BASELINE; i++)
{
     err = R_CTSU_ScanStart (g_qe_ctsu_instance_config01.p_ctrl);
     if (FSP_SUCCESS != err)
     {
         while (true) {}
     }
     (void)R_LPT_Control(LPT_CMD_START);
     R_BSP_SoftwareDelay(WAKEUP_WAIT_MEASUREEND, BSP_DELAY_MILLISECS);
     (void)R_LPT_Control(LPT_CMD_STOP);
     (void)R_LPT_Control(LPT_CMD_COUNT_RESET);
     ctsu_ctrl->state = CTSU_STATE_SCANNED;
   err = R_CTSU_AutoJudgementDataGet (g_qe_ctsu_instance_config01.p_ctrl,  &button_status01);
   if (FSP_SUCCESS == err)
   {
    RM_TOUCH_MonitorAddressGet (g_qe_touch_instance_config02.p_ctrl,
                  &monitor_buf_address,
                  &monitor_id_address,
                  &monitor_size_address);
    qe_monitor_autojudge (g_qe_ctsu_instance_config01.p_ctrl);
   }
}

5.4.5 应用程序代码说明

以下代码完成进入低功耗模式的操作,在低功耗模式里完成config01 (MEC电极) 的测量和自动判断,当config01 (MEC电极) 有按键On判断是时,退出低功耗,并通过R_CTSU_AutoJudgementDataGet() 取得结果。

/* Standby mode */
{
  /* for [CONFIG01] configuration */
  (void)R_LPT_SetCMT(LPT_CH1, (uint32_t)WAKEUP_LPT_PERIOD_STANDBY);
  err = R_CTSU_ScanStart (g_qe_ctsu_instance_config01.p_ctrl);
  /* Enter software standby mode */
  lpc_err = R_LPC_LowPowerModeActivate(&activate_standby_callback);
  if (LPC_SUCCESS != lpc_err)
  {
    while (true) {}
  }
  while (0 == g_qe_touch_flag) {}
  g_qe_touch_flag = 0;
  err = R_CTSU_AutoJudgementDataGet (g_qe_ctsu_instance_config01.p_ctrl, &button_status01);
  if (FSP_SUCCESS == err)
  {
    RM_TOUCH_MonitorAddressGet (g_qe_touch_instance_config02.p_ctrl,
                  &monitor_buf_address,
                  &monitor_id_address,
                  &monitor_size_address);
    qe_monitor_autojudge (g_qe_ctsu_instance_config01.p_ctrl);
  }
}

5.4.6 应用程序代码说明

以下代码为进入Software Standby Mode时的Callback程序,用于启动Low-power Timer定时器

/* activate_standby_callback */
static void activate_standby_callback(void *p_data)
{
  lpt_err_t lpt_err;
  /* Start LPT count */
  lpt_err = R_LPT_Control(LPT_CMD_START);
  if (LPT_SUCCESS != lpt_err) while(1);
}

5.4.7 应用程序代码说明

以下代码为退出Snooze Mode时的Callback程序,用于停止和复位Low-power Timer定时器,以及disable snooze release interrupt。

/*snooze_callback*/
static void snooze_callback(void *p_data)
{
  lpt_err_t lpt_err;
  lpc_err_t lpc_err;
  /* Stop LPT count */
  lpt_err = R_LPT_Control(LPT_CMD_STOP);
  if (LPT_SUCCESS != lpt_err) while(1);
  /* Reset LPT count */
  lpt_err = R_LPT_Control(LPT_CMD_COUNT_RESET);
  if (LPT_SUCCESS != lpt_err) while(1);
  /* Disable snooze release interrupt */
  lpc_err = R_LPC_SnoozeModeConfigure(&gs_snooze_mode);
  if (LPC_SUCCESS != lpc_err) while(1);
}

5.4.8 点击a2b1616e-f631-11ee-a297-92fbcf53809c.png图标,编译程序。

5.4.9 以上应用程序代码的详细解释

您可参考瑞萨官网的应用笔记RX140 Group Smart Wakeup Solution Rev.1.00以及配套的样例程序

a2befab8-f631-11ee-a297-92fbcf53809c.png




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 定时器
    +关注

    关注

    23

    文章

    3148

    浏览量

    112059
  • 电容触摸
    +关注

    关注

    0

    文章

    66

    浏览量

    16348
  • 偏置电流
    +关注

    关注

    1

    文章

    109

    浏览量

    13038

原文标题:瑞萨电容触摸技术之低功耗应用——RX140实验环节 (5)-3

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    瑞萨电容触摸技术之低功耗应用—RX140实验环节(2)-1

    在本实验环节中,将基于RX140创建一个基本的含有12个自容按键的触摸应用工程,以此了解使用QE For Cap Touch进行触摸应用开发
    的头像 发表于 03-06 13:56 3098次阅读
    瑞萨<b class='flag-5'>电容</b><b class='flag-5'>触摸</b><b class='flag-5'>技术</b><b class='flag-5'>之低功耗</b>应用—<b class='flag-5'>RX140</b><b class='flag-5'>实验</b><b class='flag-5'>环节</b>(2)-1

    瑞萨电容触摸技术之低功耗应用—RX140实验环节(2)-5

    基于RX140创建一个基本的含有12个自容按键的触摸应用工程;使用QE for Cap Touch监控触摸底层数据以及触摸行为.
    的头像 发表于 03-15 13:41 1832次阅读
    瑞萨<b class='flag-5'>电容</b><b class='flag-5'>触摸</b><b class='flag-5'>技术</b><b class='flag-5'>之低功耗</b>应用—<b class='flag-5'>RX140</b><b class='flag-5'>实验</b><b class='flag-5'>环节</b>(2)-5

    瑞萨电容触摸技术之低功耗应用—RX140实验环节(4)&amp;amp;amp;(5)-1

    在本实验环节中,将在Lab session 2的基础上,通过调整MEC电极的运行参数,提高灵敏度,增加接近传感功能。
    的头像 发表于 03-29 13:47 1195次阅读
    瑞萨<b class='flag-5'>电容</b><b class='flag-5'>触摸</b><b class='flag-5'>技术</b><b class='flag-5'>之低功耗</b>应用—<b class='flag-5'>RX140</b><b class='flag-5'>实验</b><b class='flag-5'>环节</b>(4)&amp;amp;amp;(5)-1

    瑞萨电容触摸技术之低功耗应用—RX140原理介绍

    RX140产品群是RX100系列中处理性能最强、功耗最低的微控制器。可以广泛应用于家用电器、工业控制和楼宇自动化等领域。
    的头像 发表于 08-25 12:28 1279次阅读
    瑞萨<b class='flag-5'>电容</b><b class='flag-5'>触摸</b><b class='flag-5'>技术</b><b class='flag-5'>之低功耗</b>应用—<b class='flag-5'>RX140</b>原理介绍

    瑞萨电容触摸技术之低功耗应用—RX140实验环节(1)

    接下来,我们将着眼于实际操作,依托几个具体的实验环节,从基本的RX140触摸应用工程创建、使用QE for Cap touch监控触摸数据和
    的头像 发表于 10-11 16:34 1061次阅读
    瑞萨<b class='flag-5'>电容</b><b class='flag-5'>触摸</b><b class='flag-5'>技术</b><b class='flag-5'>之低功耗</b>应用—<b class='flag-5'>RX140</b><b class='flag-5'>实验</b><b class='flag-5'>环节</b>(1)

    瑞萨电容触摸技术之低功耗应用—RX140实验环节(2)-2

    选择"Renesas view瑞萨视图" → "Renesas QE" → "CapTouch workflow"
    的头像 发表于 03-08 13:38 577次阅读
    瑞萨<b class='flag-5'>电容</b><b class='flag-5'>触摸</b><b class='flag-5'>技术</b><b class='flag-5'>之低功耗</b>应用—<b class='flag-5'>RX140</b><b class='flag-5'>实验</b><b class='flag-5'>环节</b>(2)-2

    瑞萨电容触摸技术之低功耗应用案例—RX140实验环节(2)-3

    自动调整过程 (Auto Tuning Process) 完成前四步准备工作后,开始第五步。
    的头像 发表于 03-12 13:45 478次阅读
    瑞萨<b class='flag-5'>电容</b><b class='flag-5'>触摸</b><b class='flag-5'>技术</b><b class='flag-5'>之低功耗</b>应用案例—<b class='flag-5'>RX140</b><b class='flag-5'>实验</b><b class='flag-5'>环节</b>(2)-3

    瑞萨电容触摸技术之低功耗应用—RX140实验环节(2)-4

    在"Project Explorer"中,选择工程Lab_Session_1→文件夹src→文件Lab_session_1.c
    的头像 发表于 03-14 13:34 496次阅读
    瑞萨<b class='flag-5'>电容</b><b class='flag-5'>触摸</b><b class='flag-5'>技术</b><b class='flag-5'>之低功耗</b>应用—<b class='flag-5'>RX140</b><b class='flag-5'>实验</b><b class='flag-5'>环节</b>(2)-4

    瑞萨电容触摸技术之低功耗应用案例—RX140实验环节(2)-6

    在"CapTouch Parameters (QE) View"中,可以对触摸运行参数进行调整,包括
    的头像 发表于 03-22 13:52 1666次阅读
    瑞萨<b class='flag-5'>电容</b><b class='flag-5'>触摸</b><b class='flag-5'>技术</b><b class='flag-5'>之低功耗</b>应用案例—<b class='flag-5'>RX140</b><b class='flag-5'>实验</b><b class='flag-5'>环节</b>(2)-6

    瑞萨电容触摸技术之低功耗应用案例—RX140实验环节(3)

    在本实验环节中,将在Lab session 1的基础上,增加MEC多电极连接功能,12个按键电极将在内部连接在一起,作为一个MEC电极工作,此时不识别12个按键电极中的哪个按键电极被按下。
    的头像 发表于 03-28 13:39 430次阅读
    瑞萨<b class='flag-5'>电容</b><b class='flag-5'>触摸</b><b class='flag-5'>技术</b><b class='flag-5'>之低功耗</b>应用案例—<b class='flag-5'>RX140</b><b class='flag-5'>实验</b><b class='flag-5'>环节</b>(3)

    瑞萨电容触摸技术之低功耗应用—RX140实验环节(5)-2

    单击下图红色框内的圆点,将"Low power timer clock(LPTCLK) "的时钟源设定为"IWDT-dedicated low-speed clock"
    的头像 发表于 04-02 14:05 1026次阅读
    瑞萨<b class='flag-5'>电容</b><b class='flag-5'>触摸</b><b class='flag-5'>技术</b><b class='flag-5'>之低功耗</b>应用—<b class='flag-5'>RX140</b><b class='flag-5'>实验</b><b class='flag-5'>环节</b>(5)-2

    瑞萨电容触摸技术之低功耗应用—RX140实验环节(5)-4

    在 "Cap Touch Workflow" 的 "4.monitoring" 中,点击 "Start Monitoring (Emulator)" 下方的 "Show Views"
    的头像 发表于 04-11 15:15 395次阅读
    瑞萨<b class='flag-5'>电容</b><b class='flag-5'>触摸</b><b class='flag-5'>技术</b><b class='flag-5'>之低功耗</b>应用—<b class='flag-5'>RX140</b><b class='flag-5'>实验</b><b class='flag-5'>环节</b>(5)-4

    基于RX140低功耗触摸按键解决方案

    “ 概述 该方案基于最新一代RX100系列MCU产品(RX140),实现了触摸按键的低功耗和高抗噪声特点。RX140除了搭载瑞萨最新
    的头像 发表于 12-27 13:15 675次阅读

    瑞萨电容触摸技术之低功耗应用—RX140实验环节(5)-5

    以下三个参数,由于无法在低功耗模式下仿真调试,因此只能直接在 "qe_touch_config.c" 中直接修改。
    的头像 发表于 04-23 14:09 114次阅读
    瑞萨<b class='flag-5'>电容</b><b class='flag-5'>触摸</b><b class='flag-5'>技术</b><b class='flag-5'>之低功耗</b>应用—<b class='flag-5'>RX140</b><b class='flag-5'>实验</b><b class='flag-5'>环节</b>(5)-5

    瑞萨电容触摸技术之低功耗应用—RX140实验环节(6)

    在前面发布的文章《瑞萨电容触摸技术之低功耗应用——RX140原理篇》中,介绍了在应用瑞萨RX140
    的头像 发表于 04-26 14:03 98次阅读
    瑞萨<b class='flag-5'>电容</b><b class='flag-5'>触摸</b><b class='flag-5'>技术</b><b class='flag-5'>之低功耗</b>应用—<b class='flag-5'>RX140</b><b class='flag-5'>实验</b><b class='flag-5'>环节</b>(6)