This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CAPTIVATE-FR2676:有关电容式感应产品独立操作和结果显示的查询

Guru**** 2033340 points
Other Parts Discussed in Thread: CAPTIVATE-PHONE, CAPTIVATE-PGMR, CAPTIVATE-FR2676, CAPTIVATE-BSWP
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1440391/captivate-fr2676-inquiry-regarding-independent-operation-and-result-display-for-capacitive-sensing-products

器件型号:CAPTIVATE-FR2676
主题中讨论的其他器件:CAPTIVATE-PGMRCAPTIVATE-BSWP、CAPTIVATE-PHONE

工具与软件:

尊敬的 TI 团队:

我最近购买了以下电容式感应测量产品、一切都运行良好:

  1. CAPTIVATE-PGMR 硬件编程工具 - 19.99美元
  2. CAPTIVATE-FR2676评估板 - 25.0美元
  3. CAPTIVATE-BSWP 评估板 - 29.99美元

我有两个主要问题:

  1. 如何让这些器件独立于软件运行?
  2. 是否可以使用 LED 灯泡或显示模块显示结果?

期待您的指导。

此致、
Sushant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sushant:

    我不太确定我理解你所说的"独立于软件运行"。  您是指您编程到 MSP430中的软件还是指 CapTIvate GUI?

    用于显示结果的 LED 或显示模块、是的。 您需要编写一些用于测量的代码并将其转换为用于开/关 LED (例如7段 LED 显示屏)的格式、或者使用 MSP430的 SPI 接口或使用 GPIO 引脚的"位拆"功能将值写入显示模块。

    能否详细介绍一下您的应用?  这将有助于为您微调我的答案。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Dennis、

    我正在寻找能够直接编程到 MSP430中的软件或代码、以便使用全部三个套件以及电源来测量电容。 我已经在使用 正常工作的 CapTIvate GUI。 现在、我想将代码直接上传到控制器中、这样我就可以在没有计算机的情况下工作、只需使用电源(5V)、并在 LED 上显示结果。  

    最初、我想创建一个设置、使用 LED 指示电容器的变化。 例如、借助包含多个触控电容式传感器的 CAPTIVATE-BSWP 评估板、我想使用 LED 显示激活的触控点。

    如果可行、或者需要更多详细信息、请告知我。

    此致、
    Sushant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sushant:

    您可以从 FR2676_CAPTIVATE_BSWP 示例代码开始、因为它已设置为测量特定 PCB 上的所有传感器。  我假设您使用的是 CCS 或 IAR 环境、因此您只需要导入和编译项目并对 MSP430进行编程。

    现在、这不会完成您所需的所有操作、因此您将不得不访问示例代码并添加一些代码来驱动 LED。  您计划如何将 LED 连接到 CAPTIVATE-FR2676 PCB?您计划使用多少个 LED?

    [报价用户 id="604411" url="~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1440391/captivate-fr2676-inquiry-regarding-independent-operation-and-result-display-for-capacitive-sensing-products/5530766 #5530766"]我想使用 LED 显示激活的触点。

    不确定我是否理解您所说的"接触点"。 您是想让 LED 在触摸其中一个 BSWP 传感器时打开、还是要根据您的手指触摸滑块或滚轮的位置打开其他 LED 中的一个?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Dennis、

    感谢您的答复。

    我计划仅使用触控传感器、而不是滑块或滚轮。 您能否指导我如何将 LED 连接到 CAPTIVATE-FR2676 PCB? 最初、我想使用一个 LED 进行测试、然后扩展为4–8个 LED。

    此外、您能解释如何为 LED 编写代码吗? 我不确定应该在哪里编写、因为系统似乎只使用 GUI。 我是这一领域的新手、非常感谢您的指导。

    感谢您的支持。

    此致、

    Sushant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sushant:

    我度假回来了。

    我会用指令作出回应。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Dennis、

    谢谢你。

    期待您的指导。

    KR、

    Sushant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sushant:

    我很抱歉我的答复出现延误。

    好的、让我们将其分解为硬件和软件任务。

    任务#1 -添加 LED 和电阻器

    -您将需要为每个 LED 添加一个电流限制电阻器(330欧姆)将起作用(这应该将电流限制在约5mA )。  因此必须提出将 LED 连接到此板上的 BoosterPack 接头的方法。  我假设您将电阻器的一侧连接到接头上的一个引脚、然后将电阻器的另一侧连接到 LED 的阳极、并将阴极连接到 GND。

    任务2 -配置 GPIO 以从 CAPT-FR2676 PCB 驱动 LED

    -看看引脚,让我们选择 P5.0, P5.1, P5.2和 P5.6。  

    如果您查看 CAPT_bsp.c 文件中的 CapTIvate 项目、您将看到如何在 IO 端口上配置引脚。 (我将使用 CapTIvate 下载附带的 CAPT-PHONE 示例代码)。

    为了方便起见、我将在此处复制并修改 BSP 文件中的代码。 请注意、设置 P5DIR 位会使该引脚成为输出引脚。

       P5OUT = (0);
       P5DIR = (GPIO_PIN0 | GPIO_PIN1 | GPIO_PIN2 | GPIO_PIN6);
       P5SEL0 = (0);
       P5SEL1 = (0);

    然后、查看 CAPT_BSP.h 文件、您将看到 CAPT_FR2676 PCB 上3个 LED 的分配。 修改它们以供您使用。 我将为您操作第一个 LED。  您可以对 LED2、3、4执行相同的操作。

    #define LED1_POUT                                    (P5OUT)
    #define LED1_Pdir                                     (P5DIR)
    #define LED1_PIN                                        (BIT0)//这是 P5.0

    任务3 -注册传感器回调函数。

    每次扫描(测量)传感器时、您都希望应用根据测量结果执行某些操作。  在这种情况下、您想知道是否按下了特定按钮、然后打开相应的 LED。  要告诉 CapTIvate 库执行此操作、您必须首先注册您的回调函数。  请务必在调用 CAPT_AppStart()之前执行此操作。

       MAP_CAPT_registerCallback (&yourSensor、&yourSensorHandler);

    -创建回调函数。  我将执行一个示例、该示例应该按照您的要求执行、但您可能想要修改。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    /* Define the buttons */
    #define BTN_1 (0)
    #define BTN_2 (1)
    #define BTN_3 (2)
    #define BTN_4 (3)
    #define CLEAR_LEDS P5OUT & =(GPIO_PIN0 | GPIO_PIN1 | GPIO_PIN2 | GPIO_PIN6)
    void yourSensorHandler(tSensor* pSensor)
    {
    // Test if this is the very first touch, else skip it
    if ((pSensor->bSensorTouch == true) && (pSensor->bSensorPrevTouch == false))
    {
    // First clear all previous LEDs
    CLEAR_LEDS;
    //
    // Identify the dominant element in the sensor.
    // Of the four buttons, only one is allowed to be touched at a time,
    // and the button with the strongest response is selected.
    //
    switch (CAPT_getDominantButton(pSensor))
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    主题: 对任务3的澄清

    您好、Dennis、

    感谢您的详细答复。

    我理解了前两项任务。 我找到你提到的文件,这是空的现有项目,我复制的代码到CAPT_BSP.cCAPT_BSP.h.

    然而、我不确定如何继续任务3。 具体而言:

    1. 如何注册和创建回调函数?
    2. 此任务的文件扩展名应该是什么(例如、.c.h)?
    3. 我应该为此创建一个新文件、还是可以简单地将代码粘贴到现有文件中?

    如果您能为该器件提供指导或示例、我将不胜感激。

    此致、

    Sushant

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sushant:

    要查看展示如何注册回调的示例、请查看 CapTIvate 技术指南、软件一章、操作方法一节-> 链接]

    此外、Capt-phone 项目也是一个很好的示例。  位于:
    C:\ti\MSP\CapTIvateDesignCenter_1.83.00.08\CapTIvateDesignCenter\Example_Projects\CapTIvateDesignCenterWorkspace\TI_examples\FR2676_CAPTIVATE-PHONE

    要消除任务3的一些困惑,请查看上面的 CAPT-PHONE 示例,并查看回调在文件"capTIVATE_PHONE_Demo.c , function Demo_init ()中注册的位置;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Dennis、

    感谢您的答复。  

    与配合使用的器件 FR2676_CAPTIVATE BSWP Project using (项目使用) Code Composer Studio 并已成功导入和调试该项目。 但是、我会遇到一个问题、那就是在上未接收到任何信号 P5.2 已通过限流电阻器将其连接到 LED。

    在中 main.c 文件中、我实施了以下代码以将每个引脚的相应引脚设置为高电平

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    /* --COPYRIGHT--,BSD
    * Texas Instruments Incorporated, 2017
    * Redistribution and use in source and binary forms are permitted.
    * Full license details are in the header comments.
    */
    //*****************************************************************************
    // Includes
    //*****************************************************************************
    #include <msp430.h> // Generic MSP430 Device Include
    #include "driverlib.h" // MSPWare Driver Library
    #include "captivate.h" // CapTIvate Touch Software Library
    #include "CAPT_App.h" // CapTIvate Application Code
    #include "CAPT_BSP.h" // CapTIvate EVM Board Support Package
    #include "gpio.h" // Include GPIO control headers
    //*****************************************************************************
    // Macros and Definitions
    //*****************************************************************************
    #define BTN_1 (0)
    #define BTN_2 (1)
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    尽管成功调试了项目、但仍然没有看到任何信号 P5.2 . 我还验证了 P5所有引脚上的信号、但其中任何引脚上都没有输出。 有趣的是、我可以看到中正确反映的传感器活动 CapTIvate 设计传感器 .

    您能帮助我确定问题吗? 非常感谢您提供任何指导或建议。

    感谢您的时间和支持。

     Sushant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Dennis:

    我希望您能表现得好。 我想知道是否可以安排一次简短的在线会议来讨论我要解决的问题。 如果您有空、请告诉我、我们可以协调合适的时间。

    期待收到您的回复。

    此致、

    Sushant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sushant:

    很抱歉响应出现延迟。  如果您在 SensorHandler()中的第81行设置了一个断点、那么当您按下 BTN_1时、调试器是否会在该处停止?

    如果您在 main 的50行上设置 P5OUT |= GPIO_PIN2、LED 是否会亮起?

    我向您发送了一个朋友邀请、以便我可以获取您的电子邮件地址、我们可以私下继续此对话。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Denis:

    我在这个项目上取得了进一步的进展、现在能够感测键盘、滑轮和滑块来分别控制3个 LED。 这涉及到修改现有的 FR2676 CapTIvate BSWP 代码库。

    目前、我希望通过访问键盘传感器的每个单独按键来控制各个 LED、从而扩展功能。 为了实现这一点、我认为我需要:

    1. 为键盘传感器上的每个键注册单独的回调。
    2. 声明每个传感器的处理程序。

    您能否指导我如何处理此问题、或者分享任何相关文档或示例? 此外、如果可能、我很感谢有机会在适合您的时间通过 BBB 在线会议详细讨论此问题。

    感谢您的时间和帮助。 我期待您的答复。

    此致、
    Sushant Panhale

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sushant:

    下面是示例代码、提供了返回值中每个位所表示的每个按键值。  您可以在下面的#defines 中看到按钮(键)值。  此示例是一个可从回调函数内部调用的单独函数、也可以获取函数内容并插入回调函数中。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    // define keys value
    #define Key1 0x0001
    #define Key2 0x0002
    #define Key3 0x0004
    #define Key4 0x0008
    #define Key5 0x0010
    #define Key6 0x0012
    #define Key7 0x0014
    #define Key8 0x0018
    uint8_t Buttons_Pressed;
    uint8_t ui8Element;
    uint8_t ui8Cycle;
    #if 1
    uint16_t getButtonPresses(tSensor *pSensor)
    {
    /* always clear before checking all buttons */
    Buttons_Pressed = 0;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX