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.

[参考译文] MSP-EXP430F5529LP:使用 MSP-EXP430F5529LP 对 MSP430FR2633进行编程

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1271509/msp-exp430f5529lp-programming-msp430fr2633-using-msp-exp430f5529lp

器件型号:MSP-EXP430F5529LP
主题中讨论的其他器件:MSP430FR2633CAPTIVATE-PGMRTIDA-00343、TIDM-1021

大家好、

我正在从事  MSP430FR2633   调试器将 MCU 集成到定制板上、  MSP-EXP430F5529LP  使 LaunchPad 在自电容模式下运行。 即使在生成代码后也无法检测到触摸、
有人能帮我解决这个问题吗? 下面是随附的配置代码

#include "CAPT_UserConfig.h"

//*****
//
//! CapTIvate 元件定义
//! 此应用中的所有元素定义如下。
//! 每个元件有3个元件:
//! 1)原始计数数组(每个频率一个索引、 已扫描)(uint16_t)
//! 2)一个调谐数组(每个频率一个索引。 已扫描)(tCapTIvateElementTuning)
//! 3)元素结构(tElement)
//
//*****
//传感器:BTN00,元件:E00
uint16_t BTN00_E00_RawCnts[CAPT_SEL_FREQ_CNT];
tCapTIvateElementTuning BTN00_E00_Tuning [CAPT_SEL_FREQ_CNT];
Element BTN00_E00 =
{
.ui8RxPin = 0、
.ui8RxBlock = 0、
.ui8TouchThreshold = 60、
.pRawCount = BTN00_E00_RawCnts、
.pTuning = BTN00_E00_Tuning、
};


//*****
//
//! CapTIvate 时间周期定义
//! 此应用中的所有时间周期定义如下。 时间周期为
//! 在一个时隙中并联测量的一组元件。
//! 每个周期有2个组成部分:
//! 1)指向成员元素的元素指针数组(tElement*)
//! 2)循环结构(tcycle)
//
//*****
//时间周期:BTN00_C00
tElement* BTN00_C00_Elements[1]=
{
&BTN00_E00、
};
tCycle BTN00_C00 =
{
.ui8NrOfElements = 1、
.pElements = BTN00_C00_ELEMENTS、
};


//*****
//
//! CapTIvate 传感器定义
//! 此应用中的所有传感器定义如下。 传感器用于
//! 一组时间周期、它们利用原始测量数据来创建
//! 抽象传感器类型、例如按钮、滑块、滚轮或近端传感器。
//! 每个传感器有3个组件:
//! 1)指向成员时间周期(tcycle*)的周期指针数组
//! 2) 2)特定于传感器的参数结构(tGenericSensorParams)
//! 3) 3)传感器结构(TSENSOR)
//
//*****
//传感器:BTN00
const tCycle * BTN00_cycles [1]=
{
&BTN00_C00、
};

tButtonSensorParams BTN00_Params;
TSENSOR BTN00 =
{
//基本属性
.TypeOfSensor = eButtonGroup、
.SensingMethod = eSelf、
.DirectionOfInterest = eDOIDown、
.pvCallback = NULL、
.ui8NrOfCycles = 1、
.pCycle = BTN00_CYCLES、
.pSensorParams =(tGenericSensorParams*)&BTN00_Params、
//转换控制参数
.ui16ConversionCount = 800、
.ui16ConversionGain = 100、
.ui8FreqDiv = 2、
.ui8ChargeLength = 0、
.ui8TransferLength = 0、
.bModEnable = true、
.ui8BiasControl = 3、
.bCsDischarge = true、
.bLpmControl = false、
.ui8InputSyncControl = 0、
.bTimerSyncControl = false、
.bIdleState = true、
//调整参数
.ui16ProxThreshold = 40、
.ui16NegativeTouchThreshold = 20、
.ui16ErrorThreshold = 8191、
.ui16TimeoutThreshold = 10000、
.ProxDbThreshold.DbIn = 1、
.ProxDbThreshold.DbOut = 0、
.TouchDbThreshold.DbIn = 2、
.TouchDbThreshold.DbOut = 1、
.bCountFilterEnable = false、
.ui8CntBeta = 1、
.bSensorHalt = false、
.bPTSensorHalt = true、
.bPTElementHalt = true、
.ui8LTABaBeta = 7、
.bReCalibrateEnable = true、
};


#if (CAPT_AECUTED_NOISE_TESSION_ENABE==true)
//*****
//
//! \var g_EMCConfig
//! 此结构存储此应用的 EMC 配置。
//
//*****
const tEMCConfig g_EMCConfig =
{
//转换样式
.selfModeConversionStyle = CAPT_self_mode_conversion_style、
.projModeConversionStyle = CAPT_PROJ_MODE_CONVERSION_Style、

//过采样样式
.selfModeOversamplingStyle = CAPT_SELF_MODE_OVERSAMPLING_Style
.projModeOversamplingStyle = CAPT_PROJ_MODE_OVERSAMPLING_Style

//抖动滤波器启用
.bJitterFilterEnable = true、

//噪声阈值和校准噪声限制
.ui8NoiseThreshold = CAPT_NOISE_THRESHOLD、
.ui16CalibrationNoiseLimit = CAPT_CALIBRATION_NOISE_LIMIT、
.ui8CalibrationTestSampleSize = 8、

//动态阈值调整参数
.bEnableDynamicThresholdAdjustment = CAPT_DYNAMIC 阈值调整、
.ui8MaxRelThreshhAdj = 76、
.ui8NoiseLevelFilterEntryThresh = 40、
.ui8NoiseLevelFilterExitThresh = 0、
.ui8NoiseLevelFilterDown = 6、
.ui8NoiseLevelFilterUp = 1、
coeffA =_IQ31 (0.0065)、
coeffB =_IQ31 (0.050)
};
#endif

//*****
//
//! \var g_pCapTIvateSensorArray
//! 该数组允许对任意主器件进行索引访问、
//! 传感器的配置。
//
//*****
TSENSOR* g_pCapTIvateSensorArray[CAPT_SENSOR_COUNT]=
{
&BTN00、
};


//*****
//
//! \var g_uiApp
//! 此结构存储此应用的全局设置。
//
//*****
tCapTIvateApplication g_uiApp =
{
.state = eUIActive、
.pSensorList =&g_pCaptivate SensorArray [0],
.ui8NrOfSensors = CAPT_SENSOR_COUNT、
.ui8AppLPM = CAPT_LOW_POWER_MODE、
.bElementDataTxEnable = true、
.bSensorDataTxEnable = true、
.ui16ActiveModeScanPeriod = 33、
.ui16WakeOnProxModeScanPeriod = 100、
.ui16InactivityTimeout = 32、
.ui8WakeupInterval = 5、
};

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

    我认为您需要一个电容式编程器(CAPTIVATE-PGMR)来读取数据、然后我可以帮助您了解发生了什么以及如何进行调整。

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

    现在、我们已连接 CAPTIVATE-PGMR 并能够读取 CapTIvate 设计中心的数据。 但无法检测到触摸  

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

    我建议您参考以下文档:https://www.ti.com/lit/ug/slau857a/slau857a.pdf?ts = 1695102906651&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FMSP430FR2633

    我认为您需要更改此处的阈值:

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

    我是否更改了阈值

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

    下面是当前的 config.c 代码

    /*-版权-, BSD
    *版权所有(c) 2017、德州仪器(TI)公司
    保留所有权利。
    *
    *以源代码和二进制形式重新分发和使用,有或没有
    *修改,在以下条件允许的条件下
    *满足:
    *
    **源代码的重新分发必须保留以上版权
    *请注意,本条件清单和以下免责声明。
    *
    **二进制形式的再分发必须复制上述版权
    *通知,本条件清单和下述免责声明在
    *与分发一起提供的文档和/或其他材料。
    *
    **德州仪器公司名称或公司名称
    *其贡献者可用于认可或推广派生的产品
    *从本软件未经事先书面许可。
    *
    *本软件由版权持有者和贡献者"按原样"提供
    本站明确声明不作出任何种类的所有明示或暗示的保证,包括但不限于关于适销性、适用于
    *对特定产品的适销性和适用性的暗示保证
    *免责声明。 在任何情况下,版权所有者或
    *贡献者对任何直接、间接、偶然、特殊、
    *示例性或后果性损害(包括但不限于:
    *替代产品或服务的采购;使用、数据或利润的损失;
    *或业务中断)然而造成和任何责任理论,
    *无论是合同,严格的责任,或侵权(包括疏忽或
    *其他)因使用本软件而产生的任何原因、
    *即使被告知此类损害的可能性。
    *-/版权-*/


    //由 CapTIvate 设计中心 v1_83_00_08在星期二9月19日11:47:20 IST 2023生成


    //*****
    // CAPT_UserConfig.c
    //
    //版本1.83.00.05
    // 2020年5月15日发布
    //
    //*****

    //*****
    //
    //注释:这是一个自动生成的源代码文件! 该 CapTIvate
    //设计中心自动生成用户配置文件
    //基于创建的传感器布局。
    //
    //如果您选择了,对该文件所做的更改将被覆盖
    //在设计中心的"生成源代码"下面的"更新现有项目"。
    //
    //为避免干扰代码生成过程,请保留所有应用程序
    //该文件外部的代码。
    //
    //*****

    #include "CAPT_UserConfig.h"

    //*****
    //
    //! CapTIvate 元件定义
    //! 此应用中的所有元素定义如下。
    //! 每个元件有3个元件:
    //! 1)原始计数数组(每个频率一个索引、 已扫描)(uint16_t)
    //! 2)一个调谐数组(每个频率一个索引。 已扫描)(tCapTIvateElementTuning)
    //! 3)元素结构(tElement)
    //
    //*****
    //传感器:BTN00,元件:E00
    uint16_t BTN00_E00_RawCnts[CAPT_SEL_FREQ_CNT];
    tCapTIvateElementTuning BTN00_E00_Tuning [CAPT_SEL_FREQ_CNT];
    Element BTN00_E00 =
    {
    .ui8RxPin = 0、
    .ui8RxBlock = 0、
    .ui8TouchThreshold = 60、
    .pRawCount = BTN00_E00_RawCnts、
    .pTuning = BTN00_E00_Tuning、
    };


    //*****
    //
    //! CapTIvate 时间周期定义
    //! 此应用中的所有时间周期定义如下。 时间周期为
    //! 在一个时隙中并联测量的一组元件。
    //! 每个周期有2个组成部分:
    //! 1)指向成员元素的元素指针数组(tElement*)
    //! 2)循环结构(tcycle)
    //
    //*****
    //时间周期:BTN00_C00
    tElement* BTN00_C00_Elements[1]=
    {
    &BTN00_E00、
    };
    tCycle BTN00_C00 =
    {
    .ui8NrOfElements = 1、
    .pElements = BTN00_C00_ELEMENTS、
    };


    //*****
    //
    //! CapTIvate 传感器定义
    //! 此应用中的所有传感器定义如下。 传感器用于
    //! 一组时间周期、它们利用原始测量数据来创建
    //! 抽象传感器类型、例如按钮、滑块、滚轮或近端传感器。
    //! 每个传感器有3个组件:
    //! 1)指向成员时间周期(tcycle*)的周期指针数组
    //! 2) 2)特定于传感器的参数结构(tGenericSensorParams)
    //! 3) 3)传感器结构(TSENSOR)
    //
    //*****
    //传感器:BTN00
    const tCycle * BTN00_cycles [1]=
    {
    &BTN00_C00、
    };

    tButtonSensorParams BTN00_Params;
    TSENSOR BTN00 =
    {
    //基本属性
    .TypeOfSensor = eButtonGroup、
    .SensingMethod = eSelf、
    .DirectionOfInterest = eDOIDown、
    .pvCallback = NULL、
    .ui8NrOfCycles = 1、
    .pCycle = BTN00_CYCLES、
    .pSensorParams =(tGenericSensorParams*)&BTN00_Params、
    //转换控制参数
    .ui16ConversionCount = 800、
    .ui16ConversionGain = 100、
    .ui8FreqDiv = 3、
    .ui8ChargeLength = 0、
    .ui8TransferLength = 0、
    .bModEnable = true、
    .ui8BiasControl = 3、
    .bCsDischarge = true、
    .bLpmControl = false、
    .ui8InputSyncControl = 0、
    .bTimerSyncControl = false、
    .bIdleState = true、
    //调整参数
    .ui16ProxThreshold = 37、
    .ui16NegativeTouchThreshold = 20、
    .ui16ErrorThreshold = 8191、
    .ui16TimeoutThreshold = 60000、
    .ProxDbThreshold.DbIn = 1、
    .ProxDbThreshold.DbOut = 1、
    .TouchDbThreshold.DbIn = 3、
    .TouchDbThreshold.DbOut = 3、
    .bCountFilterEnable = true、
    .ui8CntBeta = 1、
    .bSensorHalt = false、
    .bPTSensorHalt = true、
    .bPTElementHalt = true、
    .ui8LTABaBeta = 7、
    .bReCalibrateEnable = true、
    };


    #if (CAPT_AECUTED_NOISE_TESSION_ENABE==true)
    //*****
    //
    //! \var g_EMCConfig
    //! 此结构存储此应用的 EMC 配置。
    //
    //*****
    const tEMCConfig g_EMCConfig =
    {
    //转换样式
    .selfModeConversionStyle = CAPT_self_mode_conversion_style、
    .projModeConversionStyle = CAPT_PROJ_MODE_CONVERSION_Style、

    //过采样样式
    .selfModeOversamplingStyle = CAPT_SELF_MODE_OVERSAMPLING_Style
    .projModeOversamplingStyle = CAPT_PROJ_MODE_OVERSAMPLING_Style

    //抖动滤波器启用
    .bJitterFilterEnable = true、

    //噪声阈值和校准噪声限制
    .ui8NoiseThreshold = CAPT_NOISE_THRESHOLD、
    .ui16CalibrationNoiseLimit = CAPT_CALIBRATION_NOISE_LIMIT、
    .ui8CalibrationTestSampleSize = 8、

    //动态阈值调整参数
    .bEnableDynamicThresholdAdjustment = CAPT_DYNAMIC 阈值调整、
    .ui8MaxRelThreshhAdj = 76、
    .ui8NoiseLevelFilterEntryThresh = 40、
    .ui8NoiseLevelFilterExitThresh = 0、
    .ui8NoiseLevelFilterDown = 6、
    .ui8NoiseLevelFilterUp = 1、
    coeffA =_IQ31 (0.0065)、
    coeffB =_IQ31 (0.050)
    };
    #endif

    //*****
    //
    //! \var g_pCapTIvateSensorArray
    //! 该数组允许对任意主器件进行索引访问、
    //! 传感器的配置。
    //
    //*****
    TSENSOR* g_pCapTIvateSensorArray[CAPT_SENSOR_COUNT]=
    {
    &BTN00、
    };


    //*****
    //
    //! \var g_uiApp
    //! 此结构存储此应用的全局设置。
    //
    //*****
    tCapTIvateApplication g_uiApp =
    {
    .state = eUIActive、
    .pSensorList =&g_pCaptivate SensorArray [0],
    .ui8NrOfSensors = CAPT_SENSOR_COUNT、
    .ui8AppLPM = CAPT_LOW_POWER_MODE、
    .bElementDataTxEnable = true、
    .bSensorDataTxEnable = true、
    .ui16ActiveModeScanPeriod = 33、
    .ui16WakeOnProxModeScanPeriod = 100、
    .ui16InactivityTimeout = 32、
    .ui8WakeupInterval = 5、
    };

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

    我无法通过代码了解会发生什么情况、您可以使用数据记录功能来记录数据吗? 您可以在我以前共享的文档中找到如何执行该操作。

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

    周奕迅、您好!

    感谢您的答复。

    我已经引用了您共享的用于数据记录功能的文档、同样地在 GUI 中设置了数据记录器。 条形图不显示任何数据。

    目前、我们正在使用 MSP430FR2633来检测 TIDA-00343触控面板上的触控输入。 根据用户指南、我们预计按钮的增量值大约为50。 但是、令人关注的是、我们看到的值是从0到3的范围。

    您能告诉我们应该采取哪些后续步骤来解决此问题吗? 非常感谢您为简化和解决此差异提供指导。

       

    CCS 中存在以下用于数据日志的代码

    期待您的帮助。

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

    另外还参考了 doc https://www.ti.com/lit/ug/tidubj7/tidubj7.pdf?ts 252Fwww.google.com%252F 、并更新了转换计数、转换增益和计数器滤波器 β 值。 在触摸检测方面没有任何进展、

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

    您能否共享您的 PCB 设计。 信号看起来太小。 您可能需要更改硬件设计。

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

    我们使用了 TIDA-00343并将其连接到了 MSP430FR2633IDA。

    在使用 TIDA-00343设计之前、我们 在互电容模式下使用了 TIDM-1021参考设计、并设置了按钮1、4和7来进行触控检测。 按钮4工作正常、但按钮1和7根本不工作。 当我们按下按钮3、6和9时、它显示出奇怪的负触摸响应。

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

    1.我认为您需要尽量缩短有线布线。 否则、这种敏感性会受到影响。

     2.请给我一些图片来帮助我知道发生了什么。 否则、我也不知道为什么"当我们按下按钮3、6和9时、它显示出奇怪的负触摸响应。"

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

    下面是为  TIDA-00343 和 TIDM-1021参考设计进行的连接

    e2e.ti.com/.../Touch_5F00_sensor.pdf

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

    尊敬的 Pallavi:

    您希望它能在哪个部分工作? TIDA-00343或 TIDM-1021? 我有点困惑。

    一个用于互模式、一个用于自模式。 请确保使用的 IO 不同?

    您能解释一下您遇到的问题吗? 信号很小或信号为负?

    我看到您移除了电阻器、我认为它会影响 TIDM-1021。

    从这些 EVM 的代码开始如何?

    在触摸之前、我建议您在 PCB 上添加一个盖板。 否则、信号将会过强。

    伊森

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

    我想以互模式使用 TIDM-1021、
    感谢您在 PCB 上添加覆盖层的建议。 会尝试返回给你