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.
大家好、
我正在从事 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 设计中心的数据。 但无法检测到触摸
我认为您需要更改此处的阈值:
下面是当前的 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 上添加覆盖层的建议。 会尝试返回给你