英语原文共 26 页,剩余内容已隐藏,支付完成后下载完整资料
AN3416
2.STM Studio综述
STM Studio是一个免费的软件工具,它通过实时读取和显示STM8和STM32应用程序的变量来帮助调试和诊断它们。
STM Studio在PC上运行,STM Studio通过标准开发工具与STM8和STM32 MCUs接口,如低成本的ST-LINK和RLink以及高端的STM8仿真系统。
STM Studio是一个非侵入性工具,它保留了应用程序的实时行为。
STM Studio完美地补充了传统的调试工具来优化应用程序。它非常适合于调试无法停止的应用程序,如电机控制应用程序。
可以使用不同的图形视图来满足调试和诊断的需要,或者演示应用程序的行为。该工具通过SWIM(单线接口模块)与STM8微控制器一起工作,通过JTAG或SWD(串行线调试)接口与STM32微控制器一起工作。
它是一个图形用户界面,用于探测和可视化的实时应用程序的变量,而它正在运行。它的设计是运行在计算机与微软Windows操作系统。
请参阅STM Studio发行说明,了解主机PC系统需求和支持的硬件。
有关如何使用STM Studio的高级信息,请参阅其用户手册(UM1025;开始与STM工作室)。
3.使用STM Studio监视STMTouch驱动程序变量
修剪触摸传感应用程序的主要参数是:
- 通道引用,TSL_ChannelData_T结构数组的“Ref”元素
- 信道增量,TSL_ChannelData_T结构数组的“增量”元素
- 对象状态,TSL ouchKeyData结构数组或TSL LinRotData结构数组的“StateId”元素
此列表并不详尽,将取决于具体应用。
以下过程提供了导入此类变量的简单方法:
- 打开STM Studio
- 右键单击“显示变量”选项卡并选择“导入hellip;”或选择“文件/导入变量”菜单
- 在“从可执行文件导入变量”窗口中,
- 使用“浏览”按钮通过“可执行文件”字段选择应用程序Elf文件(.Elf、.out或.axf)
- 选中“展开表格元素”复选框
- 选中“相对于用户设置文件存储可执行路径”复选框以使用相对路径。
- 在“显示包含hellip;的符号”文本框中输入“Ref”
- 在变量列表框中选择“将变量添加到显示变量表”
- 选择以“.Ref”结尾的变量,然后单击“导入”按钮或按Ctrl click操作不连续的多重选择
- 使用Delta重复步骤d)和f)
- 使用StateId重复步骤d)和f)
- 点击“关闭”按钮
图1.STM Studio变量选择窗口
一旦导入,必须将变量分配给查看器才能显示:
- 在“显示变量设置”表中,选择所有“Ref”项(可以使用Shift Click操作连续多选,也可以使用Ctrl Click操作不连续多选)
- 在表中单击鼠标右键,然后选择“Send To→VarViewer1”,或将它们直接拖动到右侧的查看器。
- 在“查看者设置”窗口中,右键点击灰色部分,选择“New VarViewer”。出现一个“VarViewer2”选项卡。
- 对“Delta”项重复步骤4、5和6
- 对“StateId”项重复步骤4和步骤5
为了简化导航,您可以通过右键单击和重命名所监视变量的名称来重命名VarViewer窗口。
变量可以显示为曲线、条形图或表格。对于变化非常缓慢的变量,建议使用表显示。曲线和柱状图适用于变化快的变量。
图2.变量名为的VarViewers
然后,调整每个varviewer的值范围:
- 增量取决于应用程序的灵敏度,可以是正的,也可以是负的
- 状态从0到19不等,对于值含义,请参阅TSL_types.h中的TSL_StateId_enum_T。
- 参考取决于Cx/Cs
此时,您必须通过USB电缆和适当的硬件工具(如ST-Link)将PC与应用程序连接,并使用微控制器中下载的选定二进制代码。
要开始监视,请单击绿色箭头或选择“运行/开始”菜单。
数据可以存储在一个文件中:
- 打开“选项”和“采集设置”窗口。
- 选中“日志到文件”复选框并设置日志文件路径。
图3.数据日志设置
4. 阈值的调整
本节提供有关如何选择可靠阈值的建议。根据应用程序用例,必须对一些建议进行调整。
电容触摸传感应用对大地耦合非常敏感。参数调优必须在与最终应用程序相同的环境中进行。连接到应用程序的硬件工具可能会更改接地耦合。尤其是在电池供电的应用中。ST正在提供一种电绝缘硬件工具(ST-Link/ISOL),以尽量减少这种影响。
4.1使用标准的测试手指
为了构建一个应用程序使用广泛的人手指的特点,我们建议使用一个标准的测试手指,将坏的情况下也将允许重复测试没有人类依赖,比如手指大小,压力和接触面积,皮肤导电性等hellip;hellip;进行重复性测试时,建议使用带平橡胶头的导电笔形工具。平端由导电橡胶制成,允许接触接触键与一个恒定的接触面。
执行验证的操作员将负责将接触区域集中在touchkey上。
此外,与一组用户一起计划最终验证是有意义的。
下面提供了一个标准手指的图片
图4.标准8mm直径的手指
有关推荐的标准测试手指,请参阅附录A。
4.2阈值定义
4.2.1Touchkeys阈值
调整检测阈值,首先要确定每个触摸键的灵敏度。为了做到这一点:
- 通过ST-Link将最终硬件连接到PC上,并为应用程序供电
- 下载固件,该固件将与STMT ouch驱动程序的最终参数一起在最终应用程序中使用。默认的检测阈值可以设置为一个较低的值,但保持高于噪声级。
- 启动STM Studio并按照第5页第2节:STM Studio概述中的说明进行配置。
- 使用第4.1节中描述的标准手指:使用第11页中的标准测试手指。
- 触摸触摸键并移动手指以找到最大增量并记下该值,然后对每个触摸键重复此操作。如果在最大增量附近度量值仍然存在显著的抖动,则计算平均值并将其用作基线。
这些值将是所有阈值的基线。如果应用程序触摸键的基线之间存在显著差异,建议为每个触摸键设置特定阈值。
检测阈值必须设置在基线的55%到65%之间,必须超过该阈值才能报告检测到的触摸键。检测结束阈值必须设置在基线的35%到45%之间,低于该阈值的密钥将不再被检测。
图5.阈值位置
阈值固件调整的示例,基线在80处测量,阈值在基线的~65%和~55%之间调整,如下所示:
MyTKeys[0].p_Param-gt;DetectInTh = 50; // Key 1 检测阈值
MyTKeys[0].p_Param-gt;DetectOutTh = 30; // Key 1 检测结束阈值
校准阈值(TSLPRM_TKEY_CALIB_TH)可以对所有键通用,并设置为最大基线的60%。
如果其中一个阈值必须大于255,则必须设置TSLPRM_COEFF_TH,以便使值处于正确的范围[0;255]。这是通过除校准阈值外的所有阈值除以2的TSLPRM_COEFF_TH次方得到的。在这种情况下,分割系数值(校准阈值除外)是需要在固件中配置的值。然后,固件将对所有系数(校准阈值除外)应用TSLPRM_COEFF_TH功率的补偿系数2。
4.2.2线性和旋转触摸传感器阈值
对于这种类型的传感器,方法是不同的,因为这些传感器是由几个通道组成的。标准测试手指必须沿着整个传感器移动,并且必须使用STM Studio记录增量日志。
检测阈值调整
一个旋转传感器日志的例子如下:
图6.旋转传感器的日志
必须将上图所示的最坏情况delta作为基线来计算该传感器的阈值。必须达到此阈值才能触发位置计算并报告对此传感器的检测。
用于触摸键的相同比率可以应用于此基线,因此65%到55%之间的比率可以进入检测,35%到45%之间的比率可以停止报告检测。
通道之间的平衡
当通道上出现明显的灵敏度差异时,STM Touch驱动器提供了一种平衡delta的方法,以最小化位置计算的误差。
灵敏度由每个通道上的最大增量确定。
下图显示了来自一个灵敏度差异过大的旋转传感器的日志。
图7.平衡前的传感器日志
为了得到平衡的通道,将对每个通道delta应用一个系数。这个系数是每个通道的最大增量之比。参考通道是delta值最高的通道(A表示通道1),其他通道的delta值最大的是B表示通道0,C表示通道2。通道0的系数设为A/B,通道2的系数设为A/C。通道1没有改变,系数是1。
这些系数必须乘以255,因为它们是255的一部分。
例如:
- A/B = 1.75 系数是 488 = 0x1C0
- A/C = 3 系数是 768 = 0x300 那么代码就是:
CONST uint16_t MyLinRot0_DeltaCoeff[LINROT_CHANNELS] =
{
0x1C0, 0x100, 0x300,// CH0, CH1, CH2
};
MyLinRot0_DeltaCoeff将在TSL_LinRot_T或TSL_LinRotB_T结构的声明中由p_DeltaCoeff项指向。
CONST TSL_LinRotB_T MyLinRots[TSLPRM_TOTAL_LNRTS] =
{
{
amp;MyLinRots_Data[0],
amp;MyLinRots_Params[0],
amp;MyChannels_Data[CHANNEL_16_DEST],
(TSL_tNb_T)LINROT_CHANNELS,
MyLinRot0_DeltaCoeff,
(TSL_tsignPosition_T *)TSL_POSOFF_3CH_LIN_INTERLACED,
(TSL_tIndex_T) TSL_SCTCOMP_3CH_LIN_INTERLACED,
(TSL_tIndex_T) TSL_POSCORR_3CH_LIN_INTERLACED
}
};
4.2.3邻近
在确定接近阈值时,设计者必须考虑噪声的灵敏度和期望的检测距离,还要考虑最小的待检测表面。
4.3去燥设置
为了提高应用程序的健壮性,STMT ouch驱动程序提供了去噪特性。为了验证触控检测,delta必须在一定数量的连续采样期间超过阈值,如图8所示。这是为了避免由于噪声峰值而导致的错误检测。
图8.去噪示例
由于使用向下计数器,在触发检测之前,必须将去噪预处理器常数设置为n1,而n个连续样本必须测量到低于检测阈值。
#define TSLPRM_DEBOUNCE_DETECT(2)//3个需要输入检测的连续样本。
可为每个状态转换配置去噪功能:
- TSLPRM_DEBOUNCE_PROX:从释放状态切换到接近状态时
- TSLPRM_DEBOUNCE_DETECT:从释放状态或接近触摸检测状态切换时
- TSLPRM_DEBOUNCE_RELEASE:从触摸或接近状态切换到释放状态时
- TSLPRM_DEBOUNCE_CALIB:从释放状态切换到校准状态时(再次计算参考)
- TSLPRM_DEBOUNCE_ERROR:从任何状态切换到错误状态时
5.电荷转移周期调谐
采集基于传感器通道电容的测量(或线性和旋转传感器的一组传感器)。此传感器电容充电越多,测量越精确,抗噪性越好。
为确保电容正确充电,有必要监测连接到传感器板的引脚或通过传感器上的金属硬币。
图9.金属硬币探针
信号必须显示一个方波,表示满负载电容。图10显示了一个理想电荷转移的例子,图11显示了一个非理想电荷转移的例子。
图10.理想电荷转移
图11.非理想电荷转移
如果发生未完成的电荷,用户必须增加电荷转移期。
根据产品和获得类型,需要进行不同的调整。所
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[238163],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。