基于 STM32 微控制器的触摸感应控制入门 引言 本文档帮助客户快速找到基于 STM32 微控制器的触摸感应应用的相关信息 本文档适用于 STM32F0 STM32F3 STM32L0 STM32L1 和 STM32L4 系列产品, 列出了涉及触摸感应的所有现有的应用笔记和用户手册, 并提供了触摸感应的关键信息的记录位置 本文档还解释了如何使用 STM32CubeMx 图形界面在 STM32L0538-DISCO 和 STM32F072B-DISCO 探索板上构建触摸感应应用 - Rev 1 - July 2020 更多垂询, 请联系您本地的意法半导体销售处 www.st.com
概述 1 概述 提示 本文档适用于基于 Arm 的器件 Arm 是 Arm Limited( 或其子公司 ) 在美国和 / 或其他地区的注册商标 - Rev 1 page 2/72
术语和原理 2 术语和原理 2.1 术语 2.2 原理 下面是与触摸感应有关的主要术语 : 采集模式 CT: 电荷转移采集原理 此模式用在 STM32 微控制器上 触摸感应 STM32 外设 TSC: 触摸感应控制器外设 组 : 同时采集的通道组 通道 : 基本采集项 组合 :1-3 个通道加上 1 个采样电容 (Cs) 传感器 触摸键或 TKey: 单通道传感器 线性传感器 : 多通道传感器, 电极排列成直线 旋转传感器 : 多通道传感器, 电极排列成圆形 主动屏蔽 : 沿传感器走线和 / 或传感器本身布设的走线或其周围的铜层 主动屏蔽的驱动方式与传感器类似 可在不降低灵敏度的情况下改善抗噪性 STM32 软件 TSL: 触摸感应库 Delta: 测量值与参考值之间的差值 测量值 : 在通道上测得的电流信号 参考值 : 基于测量值样本的平均值的参考信号 DTO: 检测超时 超时由 TSLPRM_DTO 定义 参见 tsl_conf.h 文件中的 TSLPRM_DTO DXS: 检测排除机制 排除机制由 TSLPRM_USE_DXS 定义 参见 tsl_conf.h 文件中的 TSLPRM_USE_DXS ECS: 环境变化机制 参见文件 tsl_conf.h 中的 TSLPRM_ECS_DELAY 涉及的硬件 Cx: 传感器电容 ( 典型值为几 pf) Cp: 寄生电容 ( 典型值为几 pf) Ct: 等效触摸电容 Cs/Cskey/Csshield: 采样电容 ( 典型值为 2.2 至 100nF) Rs/Rskey/Rsshield: 串联电阻,ESD 保护 ( 典型值为 100Ohms 至 10K) STM32 触摸感应特性以电荷转移为基础 表面电荷转移采集原理包括将传感器电容 (Cx) 充电和将累积电荷转移至采样电容 (Cs) 此过程不断重复, 直至 Cs 两侧电压达到 V IH 达到阈值所需的电荷转移次数直接表示电极电容的大小 当传感器被触摸时, 传感器对地电容增大 这意味着 C 电压达到 V IH 所需的电荷转移次数减少, 测量值变小 当此测量值低于阈值时,TSL 报告检测 下图为没有考虑寄生电容的原理图 - Rev 1 page 3/72
原理 图 1. 电荷转移原理 - Rev 1 page 4/72
原理 表 1. 电荷转移原理相关文档提供了包含电荷转移原理相关信息的文档列表 表 1. 电荷转移原理相关文档 Id 标题章节 AN4299 STM32F0/F3/L0/L4 系列触摸感应应用抗传导噪声性能改善指南 表面电荷转移采集原理概述 AN4310 基于 MCU 的触摸感应应用的采样电容选择指南 电荷转移采集原理概述 AN4312 使用表面传感器的触摸感应应用设计指南 ST 的电容感应技术 AN4316 调试基于 STMTouch 的应用 电荷转移周期调整 OLT STM32L4 在线培训 触摸感应控制器 (TSC) - Rev 1 page 5/72
参考文档 3 参考文档 图 2. 主要文档结构所示为与 TSC 和 TSL 相关的主要文档结构 - Rev 1 page 6/72
参考文档 图 2. 主要文档结构 - Rev 1 page 7/72
参考文档 表 2. 参考文档 文档名称 UM1913 AN3960 AN4299 AN4310 AN4312 AN4316 文件标题使用 STMTouch 触摸感应库在 STM32Cube 上开发应用触摸感应应用中关于 ESD 的注意事项 STM32F0/F3/L0/L4 系列触摸感应应用抗传导噪声性能改善指南基于 MCU 的触摸感应应用的采样电容选择指南使用表面传感器的触摸感应应用设计指南调试基于 STMTouch 的应用 - Rev 1 page 8/72
STM32L4 触摸感应控制器在线演示 4 STM32L4 触摸感应控制器在线演示 ST 的网站 www.st.com 提供了在线培训 在 搜索 字段中插入字符串 STM32L4 在线培训 并按回车键 为了查找在线培训资料, 使用搜索功能并插入字符串 STM32L4 在线培训 图 4. STM32L4 触摸感应控制器在线培训所示为显示的在线页面 图 3. STM32L4 在线培训 图 4. STM32L4 触摸感应控制器在线培训 - Rev 1 page 9/72
主要特性 5 主要特性 5.1 说明 下面的图 5. TSC 特性显示了触摸感应控制器 (TSC) 的所有特性及其相关性 下面几节将描述 TSC 的主要特性 - Rev 1 page 10/72
说明 图 5. TSC 特性 - Rev 1 page 11/72
信号阈值 5.2 信号阈值 为了调节检测阈值, 必须确定每个触键的灵敏度 可以使用几个参数调节每个触键的这些信号阈值 为了进行调试, 可使用 printf 或 STMStudio 工具获取触键参数 : for (Index = 0;Index < NUMBER_OF_TOUCHKEYS;Index++) { printf("k%1d [%2d][%4d %3d %3d %4d] %d %d %d %d %d",index,mytkeys[index].p_data->stateid,mytkeys[index].p_chd->ref,mytkeys[index].p_chd->refrest,mytkeys[index].p_chd->delta,mytkeys[index].p_chd->meas,mytkeys[index].p_param->proxinth,mytkeys[index].p_param->proxoutth,mytkeys[index].p_param->detectinth,mytkeys[index].p_param->detectoutth,mytkeys[index].p_param->calibth ); } 提示当 TSLPRM_USE_PROX = 1 时, 只定义接近探测特性的 ProxInTh 和 ProxOutTh 图 6. STMStudio 输出 在软件侧 : 相关信息位于 tsl_conf.h 和 tscl_user.c 文件中 可以在 tsl_conf_tsc.h 文件中调节阈值 (xx_th): 下面是一个例子 : #define TSLPRM_TKEY_DETECT_IN_TH (64) #define TSLPRM_TKEY_DETECT_OUT_TH (60) #define TSLPRM_TKEY_CALIB_TH (56) #define TSLPRM_LINROT_DETECT_IN_TH (50) #define TSLPRM_LINROT_DETECT_OUT_TH (40) - Rev 1 page 12/72
电荷转移 TSL API(tsl_user_SetThresholds) 位于 tsl_user.c 中, 可以单独调节每个通道 下面是一个例子 : void tsl_user_setthresholds(void) { /* 用户代码开始 Tsl_user_SetThresholds */ /* 示例 : 降低 TKEY 0 的检测阈值 */ MyTKeys_Param[0].DetectInTh -= 10; MyTKeys_Param[0].DetectOutTh -= 10; /* 用户代码结束 Tsl_user_SetThresholds */ } 表 3. 信号阈值使用的相关文档提供了包含信号阈值使用的相关信息的文档列表 表 3. 信号阈值使用的相关文档 Id 标题章节 UM1913 AN4316 5.3 电荷转移 使用 STMTouch 触摸感应库在 STM32Cube 上开发应用 调试基于 STMTouch 的应用 使用 STMStudio 调试使用 STMStudio 监测 STMTouch 驱动程序变量阈值的调整触键阈值线性和旋转触摸传感器阈值 采集以传感器通道电容的测量为基础 为确保 Cx 电容正确充电, 必须监测连接到传感器的引脚 在传感器和屏蔽层侧观测到的必须是完整的充电 / 放电周期 图 7. 不完整和完整的电荷转移周期 本例中, 为了得到完整的电荷转移周期, 必须对以下参数进行如下修改 : 增大 : htsc.init.pulsegeneratorprescaler htsc.init.ctpulsehighlength htsc.init.ctpulselowlength 减小 : Sysclk 表 4. 电荷转移相关文档提供了包含电荷转移相关信息的文档列表 - Rev 1 page 13/72
电荷转移 表 4. 电荷转移相关文档 Id 标题章节 AN4299 STM32F0/F3/L0/L4 系列触摸感应应用抗传导噪声性能改善指南 主动屏蔽 AN4316 调试基于 STMTouch 的应用电荷转移周期调整 - Rev 1 page 14/72
灵敏度 5.4 灵敏度 灵敏度是触摸感应应用的一个重要特性 可通过以下方式改善灵敏度 : 减小气隙 减小面板厚度 选择具有较高 ε R 的电介质 GND 层不得离屏蔽层和传感器太近 避免在屏蔽层和传感器附近使用金属涂料表 5. 灵敏度相关文档提供了包含灵敏度相关信息的文档列表 表 5. 灵敏度相关文档 Id 标题章节 AN1913 AN4312 使用 STMTouch 触摸感应库在 STM32Cube 上开发应用 使用表面传感器的触摸感应应用设计指南 GPIO 模式 ( 表格 ) 气隙 : 减小气隙更改面板材料 : 减小面板厚度 选择具有较高 ε R 的电介质金属底架 : GND 层不得离屏蔽层和传感器太近 避免在屏蔽层和传感器附近使用金属涂料机械结构和 PCB 与面板的结合 表面传感器设计 AN4316 调试基于 STMTouch 的应用所有章节 电介质示例 表 6. 面板结构中常用材料的介电常数 材料 ε R 空气 1.00059 玻璃 4 至 10 蓝宝石玻璃 9 至 11 云母 4 至 8 尼龙 3 有机玻璃 3.4 聚乙烯 2.2 聚苯乙烯 2.56 聚酯 (PET) 3.7 FR4( 玻璃纤维 + 环氧树脂 ) 4.2 PMMA( 聚甲基丙烯酸甲酯 ) 2.6 至 4 典型 PSA 2.0-3.0( 近似值 ) - Rev 1 page 15/72
传感器 5.5 传感器 建议对所有电极使用相同形状 可根据面板上的图纸自定义触键 TSL 补偿电容差异 当电极具有相近的电容时, 可以优化采集时间和处理参数 传感器尺寸示例 图 8. 传感器尺寸 5.5.1 键 常见的应用中使用键传感器 您可以从以下文档中获取更详细的键信息 : 表 7. 键相关文档提供了包含键相关信息的文档列表 表 7. 键相关文档 Id 标题章节 UM1913 使用 STMTouch 触摸感应库在 STM32Cube 上开发应用 触键传感器 AN4312 使用表面传感器的触摸感应应用设计指南触键传感器 - Rev 1 page 16/72
传感器 5.5.2 线性或滑块传感器 线性传感器是一组连续的电容性电极 图 9. 带 3 个通道 /4 个电极 ( 半端电极设计 ) 的交错式线性触摸传感器所示为探索板上使用的滑块 - Rev 1 page 17/72
传感器 图 9. 带 3 个通道 /4 个电极 ( 半端电极设计 ) 的交错式线性触摸传感器 - Rev 1 page 18/72
传感器 表 8. 线性触摸传感器相关文档提供了包含线性触摸传感器相关信息的文档列表 表 8. 线性触摸传感器相关文档 Id 标题章节 UM1913 使用 STMTouch 触摸感应库在 STM32Cube 上开发应用 线性和旋转触摸传感器 AN4312 使用表面传感器的触摸感应应用设计指南线性传感器 - Rev 1 page 19/72
传感器 5.5.3 旋转或轮盘传感器 旋转传感器是一组连续的电容性电极 - Rev 1 page 20/72
传感器 图 10. 带 3 个通道 /3 个电极的交错式图案化旋转传感器 - Rev 1 page 21/72
传感器 表 9. 旋转传感器相关文档提供了包含旋转传感器相关信息的文档列表 表 9. 旋转传感器相关文档 Id 标题章节 UM1913 使用 STMTouch 触摸感应库在 STM32Cube 上开发应用 线性和旋转触摸传感器 AN4312 使用表面传感器的触摸感应应用设计指南旋转传感器 - Rev 1 page 22/72
传感器 5.5.4 主动屏蔽或驱动屏蔽主动屏蔽或驱动屏蔽 ( 某些应用笔记中使用此名称 ) 使用与电极相同的信号驱动屏蔽层 相比于接地屏蔽, 使用主动屏蔽有以下几个优势 : 无需为电极和屏蔽之间的寄生电容充电 保护触摸电极免受噪声源影响 提高运动金属零件接近电极时的系统稳定性和性能 - Rev 1 page 23/72
传感器 图 11. 主动屏蔽原理 - Rev 1 page 24/72
传感器 表 10. 主动屏蔽相关文档提供了包含主动屏蔽相关信息的文档列表 表 10. 主动屏蔽相关文档 Id 标题章节 AN4299 STM32F0/F3/L0/L4 系列触摸感应应用抗传导噪声性能改善指南 主动屏蔽 AN4312 使用表面传感器的触摸感应应用设计指南驱动屏蔽 AN4316 调试基于 STMTouch 的应用屏蔽调整 OLT STM32L4 在线培训触摸感应控制器 (TSC) - Rev 1 page 25/72
布局和 PCB 5.6 布局和 PCB 5.6.1 Led 规则 改善 TSC 系统时应遵循的规则 图 12. Led 布局示例 - Rev 1 page 26/72
布局和 PCB 图 13. 需要 LED 旁路电容的应用示例 - Rev 1 page 27/72
布局和 PCB 表 11. LED 规则相关文档提供了包含 LED 规则相关信息的文档列表 表 11. LED 规则相关文档 Id 标题章节 AN4312 使用表面传感器的触摸感应应用设计指南 LED 和传感器 在传感器附近放置 LED - Rev 1 page 28/72
布局和 PCB 5.6.2 电极不在 PCB 上 可以实现但不建议采用, 因为当电极不在 PCB 上时, 会降低灵敏度并增加额外的寄生电容 - Rev 1 page 29/72
布局和 PCB 图 14. 电极不在 PCB 上的示例 - Rev 1 page 30/72
布局和 PCB 表 12. 电极相关文档提供了包含电极相关信息的文档列表 表 12. 电极相关文档 Id 标题章节 AN4312 使用表面传感器的触摸感应应用设计指南使用独立于 PCB 的电极 - Rev 1 page 31/72
布局和 PCB 5.6.3 接地 屏蔽层和传感器 表 13 提供了包含布局相关信息的文档列表 表 13. 布局相关文档 Id 标题章节 AN4312 使用表面传感器的触摸感应应用设计指南 PCB 及布局 接地注意事项 旋转传感器和线性传感器建议 图 15 所示为接地层和信号走线 - Rev 1 page 32/72
布局和 PCB 图 15. 用阴影表示的接地层和信号走线 - Rev 1 page 33/72
布局和 PCB 图 16. 接地层示例 - Rev 1 page 34/72
布局和 PCB 图 17. 走线布线 - Rev 1 page 35/72
布局和 PCB 图 18. 走线布线建议 - Rev 1 page 36/72
布局和 PCB 图 19. 屏蔽 - Rev 1 page 37/72
布局和 PCB 5.6.4 FAQ 系统主要特点 : 为避免传导噪声问题, 板接地层必须直接接地 前面板上必须避免使用传导性涂料 机械装配必须牢固 布局的主要特点 : 接地层必须位于 MCU 采样电容下方且不高于串联电阻 PCB 两侧传感器走线的推荐阴影接地层 : 尽可能减少寄生电容 网格层可使用 25% 至 40% 铜 将传感器和接地布设在同一层时, 将元件和其他走线布设在其他层 建议使用驱动屏蔽或主动屏蔽 如果传感器附近有 LED, 为了指示触摸事件, 必须通过电容将其旁路 此电容通常为 10 nf 外部 LDO 稳压器应只用于为 MCU 供电, 以提供无任何波动的稳定供电电压, 特别是不得对所有切换元件 ( 例如晶体管和 LED) 使用相同供电电压 此稳压器不应靠近传感器及其走线, 而应靠近 MCU 强烈建议将引脚专门用于触摸传感器, 不要与其它功能共用 R S 和 C S 的主要特点 : 建议使用 PPS 或 NPO 采样电容 可以使用 X5R 或 X7R 切勿使用钽采样电容 建议将串联 ESD 10 K( 最小 1 K) 电阻置于尽可能靠近 MCU 的位置 任何走线都不得从这些电阻和 MCU 之间跨越或经过 主动屏蔽的采样电容值应不同于用于采集的采样电容值 主动屏蔽的电容高于 ( 面积更大 ) 单个触摸感应通道的 C X 为了在主动屏蔽和主动触摸感应通道上获得相同波形, 主动屏蔽和主动触摸感应通道 ( 触键 ) 的 C S /C X 之比 因此, 主动屏蔽的 CS 也应具有更高值 (k x 触摸感应通道的 C S ) 传感器的主要特点 : 其他走线不得跨越触摸感应走线或整个触摸感应区 触摸感应走线应在技术允许的范围内尽可能细, 并应尽可能短 不长于 10 cm 走线与接地层之间的理想间隔应为 5 mm TC 引脚抗外部干扰的能力要强于 FT: 考虑修改 PCB 布局以便将外部 VDD 钳位二极管连接到触摸感应电极走线 使用低电容二极管, 例如 BAR18 和 BAS70(Cmax = 2 pf) 如果以后有需要, 为 PCB 添加焊盘和连接, 无需装配元件 切勿将浮动层置于传感器附近 - Rev 1 page 38/72
噪声 5.7 噪声 噪声是触摸感应应用的一个重要特性 噪声可能来自电源 5.7.1 电源要遵循的主要规则 : 将蜂鸣器和 LED 置于 LDO 之前 将 LDO 置于 MCU 附近 - Rev 1 page 39/72
噪声 图 20. 典型电源原理图 - Rev 1 page 40/72
噪声 表 14. 电源相关文档提供了包含电源相关信息的文档列表 表 14. 电源相关文档 Id 标题章节 AN4312 使用表面传感器的触摸感应应用设计指南电源 5.7.2 错误检测为避免错误检测,TSL 嵌入了 ECS DXS 和 DTO 算法 表 15. 错误检测相关文档提供了包含错误检测相关信息的文档列表 表 15. 错误检测相关文档 Id 标题章节 UM1913 使用 STMTouch 触摸感应库在 STM32Cube 上开发应用 环境变化机制 (ECS) 电源电压 温度和空气湿度 检测排除机制 (DXS) 检测超时 (DTO) - Rev 1 page 41/72
噪声 5.7.3 抗噪性 可以在硬件和软件 (TSL) 侧执行噪声滤波 表 16. 抗噪相关文档提供了包含抗噪相关信息的文档列表 表 16. 抗噪相关文档 Id 标题章节 UM1913 AN4299 使用 STMTouch 触摸感应库在 STM32Cube 上开发应用 STM32F0/F3/L0/L4 系列触摸感应应用抗传导噪声性能改善指南 噪声滤波器 如何改善抗噪性 OLT STM32L4 在线培训触摸感应控制器 (TSC) 5.7.4 传导噪声 触摸感应系统需具备抗传导噪声的能力 一个主要特性是信噪比 (SNR) 标准 IEC61000-4-6 中描述了用户需遵循的测试条件 表 17. 传导噪声相关文档提供了包含传导噪声相关信息的文档列表 表 17. 传导噪声相关文档 Id 标题章节 AN4299 STM32F0/F3/L0/L4 系列触摸感应应用抗传导噪声性能改善指南 所有章节 - Rev 1 page 42/72
调谐 6 调谐 有专门的应用笔记提供调试信息 传感器 表 18. 传感器相关文档提供了包含传感器相关信息的文档列表 表 18. 传感器相关文档 Id 标题章节 AN4312 使用表面传感器的触摸感应应用设计指南所有章节 ESD 表 19. ESD 相关文档提供了包含 ESD 相关信息的文档列表 表 19. ESD 相关文档 Id 标题章节 AN3960 触摸感应应用中关于 ESD 的注意事项所有章节 CN 表 20. 传导噪声相关文档提供了包含传导噪声相关信息的文档列表 表 20. 传导噪声相关文档 Id 标题章节 AN4299 STM32F0/F3/L0/L4 系列触摸感应应用抗传导噪声性能改善指南 所有章节 CS 表 21. 采样电容相关文档提供了包含采样电容相关信息的文档列表 表 21. 采样电容相关文档 Id 标题章节 AN4310 基于 MCU 的触摸感应应用的采样电容选择指南所有章节 - Rev 1 page 43/72
使用 STM32CubeMX 的 TSC 入门 7 使用 STM32CubeMX 的 TSC 入门 7.1 应用案例 下面的两个示例解释了如何设置基于 TSL 的 TSC 应用 这些示例描述了在 STM32F072B-DISCO 和 STM32L0538-DISCO 探索板上设置 TLS 的方法 这些描述可用作设置其他 TSC 系列 ( 例如,L4 F3 L0 L1 和 L4) 的示例 STM32CubeMX 的版本 4.24.0 具有新特性 此新特性有助于加快 TSL(TouchSensingLib) 的安装速度 图 21. 主项目面板 - Rev 1 page 44/72
探索板 :STM32F072B-DISCO 7.2 探索板 :STM32F072B-DISCO STM32F072 探索套件帮助用户了解 STM32F072( 具备 STM32F0 系列提供的所有特性 ), 帮助用户轻松地开发应用 它包含初学者和经验丰富的用户迅速开始设计所需的一切 它基于 STM32F072RBT6, 包含 ST-LINK/V2 嵌入式调试工具接口 ST MEMS 陀螺仪 LED 按钮 线性触摸传感器 RF EEPROM 连接器和 USB Mini-B 连接器 此探索板提供三通道线性 ( 或滑块 ) 传感器 这些传感器的主要特性为 : 板载 ST-LINK/V2 通过 ST-Link USB 供电 外部电源 :3V 和 5V JP2(Idd) 用于电流测量 带 mini-b 连接器的全速 USB 运动传感器,3 轴数字输出陀螺仪 (L3GD20) 1 个线性触摸传感器或 4 个触摸键 2 个按钮 : 用户和复位按钮 6 个 LED:USB COM 3.3 V 电源 用户 ( 橙 / 绿 / 红 / 蓝色 ) 扩展接口 :2 x 33, 脚间距 2.54 mm 探索板封装 7.2.1 STM32F072B-DISCO 板的选择 开始选择 STM32F072B-DISCO 板 图 22. STM32F072B-DISCO 板的选择 为了同时开始线性触摸传感器通道采集, 使用三个组 ( 参见图 23. STM32F072B-DISCO 板原理图 - Rev 1 page 45/72
探索板 :STM32F072B-DISCO 图 23. STM32F072B-DISCO 板原理图 - Rev 1 page 46/72
探索板 :STM32F072B-DISCO 7.2.2 STM32F072B-DISCO TSC 组和传感器的激活按照以下步骤激活 TSC 组 采样电容和传感器通道 : 根据图表信息激活 TSC 停用无关的外设, 例如 USB SPI NCF(L0) EPaper(L0) 和 MFX(L0) 必须按照设置 SWD 外设图 24 图 24. STM32F072B-DISCO SWD 引脚排列 必须按照图 25 设置 TSC 外设 图 25. STM32F072B-DISCO TSC 引脚排列 - Rev 1 page 47/72
探索板 :STM32F072B-DISCO 图 26 显示了获得的结果 图 26. STM32F072B-DISCO 引脚排列总览 7.2.3 STM32F072B-DISCO 时钟树 此板使用默认时钟树设置 图 27. STM32F072B-DISCO 时钟配置 - Rev 1 page 48/72
探索板 :STM32F072B-DISCO 7.2.4 STM32F072B-DISCO 触摸感应库 为了激活 TLS 的使用, 启用 TOUCHSENSING 框的配置 图 28. TOUCHSENSING 框的配置 选择 3 通道线性滑块, 并分配专用 Gx_IOy( 参见上一章或图表获取详细信息 ) 就培训而言, 我们可以使用 3 通道线性滑块作为 3 个键传感器 选择 3 个键, 并分配专用 Gx_IOy( 参见上一章或图表获取详细信息 ) 图 29 至图 33 显示了这些步骤 图 29. STM32F072B-DISCO 传感器的选择 - Rev 1 page 49/72
探索板 :STM32F072B-DISCO 图 30. STM32F072B-DISCO 传感器选择步骤 2 图 31. STM32F072B-DISCO 传感器选择步骤 3 - Rev 1 page 50/72
探索板 :STM32F072B-DISCO 图 32. STM32F072B-DISCO 传感器选择步骤 4 图 33. STM32F072B-DISCO 传感器选择步骤 5 - Rev 1 page 51/72
探索板 :STM32F072B-DISCO 7.2.5 STM32F072B-DISCO 软件项目生成 现在, 可以基于 TSC HAL 和 TSL 生成完整的软件项目 图 34 至图 37 显示了所有这些步骤 图 34. STM32F072B-DISCO 软件生成步骤 1 图 35. STM32F072B-DISCO 软件生成步骤 2 - Rev 1 page 52/72
探索板 :STM32F072B-DISCO 图 36. STM32F072B-DISCO 软件生成步骤 3 图 37. STM32F072B-DISCO IDE 工作空间 - Rev 1 page 53/72
探索板 :STM32F072B-DISCO 7.2.6 STM32F072B-DISCO 软件基本算法现在, 用户需编写应用程序主循环 下面是使用键而非滑块的示例 打开 IDE, 在 main.c 文件中添加以下代码行 : /* 用户代码开始 3 */ extern TSL_LinRot_T MyLinRots[]; static uint32_t cnt=0; tsl_user_status_t status = TSL_USER_STATUS_BUSY; status = tsl_user_exec(); if(tsl_user_status_busy == status) { // 无操作 if(cnt++%50==0){ HAL_GPIO_TogglePin(LD3_GPIO_Port, LD3_Pin); } HAL_Delay(1); } else { if(mylinrots[0].p_data->stateid == TSL_STATEID_DETECT) { //TSLPRM_LINROT_RESOLUTION if(mylinrots[0].p_data->position >= 5 && MyLinRots[0].p_Data->Position < 50) { HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LD6_GPIO_Port, LD6_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_RESET); } if(mylinrots[0].p_data->position >= 50 && MyLinRots[0].p_Data->Position < 80) { HAL_GPIO_WritePin(LD6_GPIO_Port, LD6_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_RESET); } if(mylinrots[0].p_data->position >= 80 && MyLinRots[0].p_Data->Position < 120) { HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LD6_GPIO_Port, LD6_Pin, GPIO_PIN_RESET); } } else //if(mylinrots[0].p_data->stateid == TSL_STATEID_RELEASE) { HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LD6_GPIO_Port, LD6_Pin, GPIO_PIN_RESET); } } } /* 用户代码结束 3 */ 关于 ST-Link 设置, 参见图 38. STM32F072B-DISCO 的设置 - Rev 1 page 54/72
探索板 :STM32F072B-DISCO 图 38. STM32F072B-DISCO 的设置 现在, 系统已具备功能且可以使用 LED 将根据滑块上手指的位置闪烁 - Rev 1 page 55/72
探索板 :STM32L0538-DISCO 7.3 探索板 :STM32L0538-DISCO STM32L053 探索套件帮助您了解 STM32L0 系列的超低功耗微控制器 它为初学者和有经验的用户提供快速入门和轻松开发应用所需的一切 此套件基于 STM32L053C8T6, 包含 ST-LINK/V2-1 嵌入式调试工具接口 线性触摸传感器 IDD 电流测量 2.04" E-paper 显示屏 用于 PLUG-CR95HF-B 板的 NFC 连接器 LED 按钮和 USB Mini-B 连接器 此探索板提供三通道线性 ( 或滑块 ) 传感器 其主要特性为 : 板载 ST-LINK/V2-1 通过 ST-Link USB 供电 外部电源 :3V 和 5V JP4(Idd) 用于电流测量 带 mini-b 连接器的全速 USB E-paper 2.04" 显示屏 (172 x 72) 1 个线性触摸传感器或 4 个触摸键 2 个按钮 : 用户和复位按钮 4 个 LED:USB COM 3.3 V 电源 用户 ( 绿 / 红色 ) 扩展接口 :2 x 25, 脚间距 2.54 mm 探索板封装 7.3.1 STM32L0538-DISCO 板的选择 开始选择 STM32L0538-DISCO 板 图 39. STM32L0538-DISCO 板的选择 为了同时开始线性触摸传感器通道采集, 使用三个组 - Rev 1 page 56/72
探索板 :STM32L0538-DISCO 图 40. STM32L0538-DISCO 板原理图 - Rev 1 page 57/72
探索板 :STM32L0538-DISCO 7.3.2 STM32L0538-DISCO TSC 组和传感器的激活按照以下步骤激活 TSC 组 采样电容和传感器通道 : 根据图表信息激活 TSC 您可以停用无关的外设, 例如 USB SPI NCF(L0) EPaper(L0) 和 MFX(L0) 必须按照图 41 设置 SWD 外设 图 41. SWD 引脚排列 必须按照图 42 设置 TSC 外设 图 42. TSC 引脚排列 - Rev 1 page 58/72
探索板 :STM32L0538-DISCO 图 43 显示了获得的结果 图 43. 引脚排列总览 7.3.3 STM32L0538-DISCO 时钟树 此板使用默认时钟树设置 图 44. 时钟配置 - Rev 1 page 59/72
探索板 :STM32L0538-DISCO 7.3.4 STM32L0538-DISCO 触摸感应库 为了激活 TLS 的使用, 启用 TOUCHSENSING 框的配置 图 45. TOUCHSENSING 框的配置 选择 3 通道线性滑块, 并分配专用 Gx_IOy( 参见上一章或图表获取详细信息 ) 就培训而言, 用户可以 : 使用 3 通道线性滑块作为 3 个键传感器 选择 3 个键, 并分配专用 Gx_IOy( 参见上一章或图表获取详细信息 ) 按照图 46 至图 50 设置传感器 图 46. STM32L0538-DISCO 传感器选择步骤 1 - Rev 1 page 60/72
探索板 :STM32L0538-DISCO 图 47. STM32L0538-DISCO 传感器选择步骤 2 图 48. STM32L0538-DISCO 传感器选择步骤 3 - Rev 1 page 61/72
探索板 :STM32L0538-DISCO 图 49. STM32L0538-DISCO 传感器选择步骤 4 图 50. STM32L0538-DISCO 传感器选择步骤 5 - Rev 1 page 62/72
探索板 :STM32L0538-DISCO 7.3.5 STM32L0538-DISCO 软件项目生成 现在, 可以基于 TSC HAL 和 TSL 生成完整的软件项目 详见图 51 至图 55 图 51. STM32L0538-DISCO 软件生成步骤 1 图 52. STM32L0538-DISCO 软件生成步骤 2 - Rev 1 page 63/72
探索板 :STM32L0538-DISCO 图 53. STM32L0538-DISCO 完整项目总览 图 54. STM32L0538-DISCO IDE 工作空间 图 55. SWD 设置 - Rev 1 page 64/72
探索板 :STM32L0538-DISCO 7.3.6 STM32L0538-DISCO 软件基本算法 下面是使用键而非滑块的示例 打开 IDE, 在 main.c 文件中添加以下代码行 : /* 用户代码开始 3 */ extern TSL_TouchKey_T MyTKeys[]; static uint32_t cnt=0; tsl_user_status_t status = TSL_USER_STATUS_BUSY; status = tsl_user_exec(); if(tsl_user_status_busy == status) { // 无操作 if(cnt++%50==0){ } HAL_Delay(1); } else { HAL_GPIO_WritePin(LD_R_GPIO_Port, LD_R_Pin, GPIO_PIN_RESET); //00 HAL_GPIO_WritePin(LD_G_GPIO_Port, LD_G_Pin, GPIO_PIN_RESET); if(mytkeys[0].p_data->stateid == TSL_STATEID_DETECT) { HAL_GPIO_WritePin(LD_R_GPIO_Port, LD_R_Pin, GPIO_PIN_SET); //11 HAL_GPIO_WritePin(LD_G_GPIO_Port, LD_G_Pin, GPIO_PIN_SET); } if(mytkeys[1].p_data->stateid == TSL_STATEID_DETECT) { HAL_GPIO_WritePin(LD_R_GPIO_Port, LD_R_Pin, GPIO_PIN_SET); //01 HAL_GPIO_WritePin(LD_G_GPIO_Port, LD_G_Pin, GPIO_PIN_RESET); } if(mytkeys[2].p_data->stateid == TSL_STATEID_DETECT) { HAL_GPIO_WritePin(LD_R_GPIO_Port, LD_R_Pin, GPIO_PIN_RESET);//01 HAL_GPIO_WritePin(LD_G_GPIO_Port, LD_G_Pin, GPIO_PIN_SET); } } } /* 用户代码开始 3 */ 现在, 系统已具备功能且可以使用 LED 将根据滑块的位置闪烁 - Rev 1 page 65/72
版本历史 表 22. 文档版本历史 日期版本变更 2018 年 9 月 19 日 1 初始版本 - Rev 1 page 66/72
目录 目录 1 概述...2 2 术语和原理...3 2.1 术语...3 2.2 原理...3 3 参考文档...6 4 STM32L4 触摸感应控制器在线演示...9 5 主要特性...10 5.1 说明...10 5.2 信号阈值...12 5.3 电荷转移...13 5.4 灵敏度...15 5.5 传感器...16 5.5.1 键...16 5.5.2 线性或滑块传感器...17 5.5.3 旋转或轮盘传感器...20 5.5.4 主动屏蔽或驱动屏蔽...23 5.6 布局和 PCB...26 5.6.1 Led 规则...26 5.6.2 电极不在 PCB 上...29 5.6.3 接地 屏蔽层和传感器...32 5.6.4 FAQ...38 5.7 噪声...39 5.7.1 电源...39 5.7.2 错误检测...41 5.7.3 抗噪性...42 5.7.4 传导噪声...42 6 调谐...43 7 使用 STM32CubeMX 的 TSC 入门...44 7.1 应用案例...44 - Rev 1 page 67/72
目录 7.2 探索板 :STM32F072B-DISCO...45 7.2.1 STM32F072B-DISCO 板的选择...45 7.2.2 TSC 组和传感器的激活...47 7.2.3 STM32F072B-DISCO 时钟树...48 7.2.4 STM32F072B-DISCO 触摸感应库...49 7.2.5 STM32F072B-DISCO 软件项目生成...52 7.2.6 软件基本算法...54 7.3 探索板 :STM32L0538-DISCO...56 7.3.1 STM32L0538-DISCO 板的选择...56 7.3.2 STM32L0538-DISCO TSC 组和传感器的激活...58 7.3.3 STM32L0538-DISCO 时钟树...59 7.3.4 STM32L0538-DISCO 触摸感应库...60 7.3.5 STM32L0538-DISCO 软件项目生成...63 7.3.6 STM32L0538-DISCO 软件基本算法...65 Revision history...66 - Rev 1 page 68/72
表一览 表一览 表 1. 电荷转移原理相关文档...5 表 2. 参考文档...8 表 3. 信号阈值使用的相关文档... 13 表 4. 电荷转移相关文档... 14 表 5. 灵敏度相关文档... 15 表 6. 面板结构中常用材料的介电常数... 15 表 7. 键相关文档... 16 表 8. 线性触摸传感器相关文档... 19 表 9. 旋转传感器相关文档... 22 表 10. 主动屏蔽相关文档... 25 表 11. LED 规则相关文档... 28 表 12. 电极相关文档... 31 表 13. 布局相关文档... 32 表 14. 电源相关文档... 41 表 15. 错误检测相关文档... 41 表 16. 抗噪相关文档... 42 表 17. 传导噪声相关文档... 42 表 18. 传感器相关文档... 43 表 19. ESD 相关文档... 43 表 20. 传导噪声相关文档... 43 表 21. 采样电容相关文档... 43 表 22. 文档版本历史... 66 - Rev 1 page 69/72
图一览 图一览 图 1. 电荷转移原理...4 图 2. 主要文档结构...7 图 3. STM32L4 在线培训...9 图 4. STM32L4 触摸感应控制器在线培训...9 图 5. TSC 特性... 11 图 6. STMStudio 输出... 12 图 7. 不完整和完整的电荷转移周期... 13 图 8. 传感器尺寸... 16 图 9. 带 3 个通道 /4 个电极 ( 半端电极设计 ) 的交错式线性触摸传感器... 18 图 10. 带 3 个通道 /3 个电极的交错式图案化旋转传感器... 21 图 11. 主动屏蔽原理... 24 图 12. Led 布局示例... 26 图 13. 需要 LED 旁路电容的应用示例... 27 图 14. 电极不在 PCB 上的示例... 30 图 15. 用阴影表示的接地层和信号走线... 33 图 16. 接地层示例... 34 图 17. 走线布线... 35 图 18. 走线布线建议... 36 图 19. 屏蔽... 37 图 20. 典型电源原理图... 40 图 21. 主项目面板... 44 图 22. STM32F072B-DISCO 板的选择... 45 图 23. STM32F072B-DISCO 板原理图... 46 图 24. STM32F072B-DISCO SWD 引脚排列... 47 图 25. STM32F072B-DISCO TSC 引脚排列... 47 图 26. STM32F072B-DISCO 引脚排列总览... 48 图 27. STM32F072B-DISCO 时钟配置... 48 图 28. TOUCHSENSING 框的配置... 49 图 29. STM32F072B-DISCO 传感器的选择... 49 图 30. STM32F072B-DISCO 传感器选择步骤 2... 50 图 31. STM32F072B-DISCO 传感器选择步骤 3... 50 图 32. STM32F072B-DISCO 传感器选择步骤 4... 51 图 33. STM32F072B-DISCO 传感器选择步骤 5... 51 图 34. STM32F072B-DISCO 软件生成步骤 1... 52 图 35. STM32F072B-DISCO 软件生成步骤 2... 52 图 36. STM32F072B-DISCO 软件生成步骤 3... 53 图 37. STM32F072B-DISCO IDE 工作空间... 53 图 38. STM32F072B-DISCO 的设置... 55 图 39. STM32L0538-DISCO 板的选择... 56 图 40. STM32L0538-DISCO 板原理图... 57 图 41. SWD 引脚排列... 58 图 42. TSC 引脚排列... 58 图 43. 引脚排列总览... 59 图 44. 时钟配置... 59 图 45. TOUCHSENSING 框的配置... 60 图 46. STM32L0538-DISCO 传感器选择步骤 1.... 60 图 47. STM32L0538-DISCO 传感器选择步骤 2.... 61 图 48. STM32L0538-DISCO 传感器选择步骤 3.... 61 图 49. STM32L0538-DISCO 传感器选择步骤 4.... 62 图 50. STM32L0538-DISCO 传感器选择步骤 5.... 62 图 51. STM32L0538-DISCO 软件生成步骤 1... 63 图 52. STM32L0538-DISCO 软件生成步骤 2... 63 - Rev 1 page 70/72
图一览 图 53. STM32L0538-DISCO 完整项目总览... 64 图 54. STM32L0538-DISCO IDE 工作空间... 64 图 55. SWD 设置... 64 - Rev 1 page 71/72
重要通知 - 请仔细阅读 意法半导体公司及其子公司 ( ST ) 保留随时对意法半导体产品和 / 或本文档进行变更 更正 增强 修改和改进的权利, 恕不另行通知 买方在订货之前应获取关于意法半导体产品的最新信息 意法半导体产品的销售依照订单确认时的相关意法半导体销售条款 买方自行负责对意法半导体产品的选择和使用, 意法半导体概不承担与应用协助或买方产品设计相关的任何责任 意法半导体不对任何知识产权进行任何明示或默示的授权或许可 转售的意法半导体产品如有不同于此处提供的信息的规定, 将导致意法半导体针对该产品授予的任何保证失效 ST 和 ST 标志是意法半导体的商标 关于意法半导体商标的其他信息, 请访问 www.st.com/trademarks 其他所有产品或服务名称是其各自所有者的财产 本文档中的信息取代本文档所有早期版本中提供的信息 2020 STMicroelectronics - 保留所有权利 - Rev 1 page 72/72