• 正文
  • 相关推荐
申请入驻 产业图谱

TSC 工程目录架构、软件库开发配置、硬件调试与移植实操要点

10/26 16:37
65
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1. TSC 工程完整目录与三层软件层级架构

工程分为五层文件夹:Application、Hardware、TouchDriver、StdPeriphDriver、CMSIS。 软件逻辑三层架构:应用层‑驱动层‑硬件层

  1. 应用层(Example/User):main.c、tsc_user.c,业务逻辑,调用 TSC 驱动对外 API;
  2. 驱动层:分为标准外设库 StdPeriphDriver 与 TSC_Device_Lib 触摸库;
  3. 硬件层:APM32F0xx 片上 TSC 外设寄存器,GPIO 硬件。

TouchDriver 触摸库内部再细分三大模块组:

  • 处理组:tsc_ecs.c、tsc_dxs.c、tsc_time.c、tsc_filter.c(环境优化、检测排除、定时、滤波)
  • 采集组:tsc.c、tsc_acq.c、tsc_object.c(通道采集、块处理、对象管理)
  • 配置组:tsc_touchkey.c、tsc_linrot.c(按键、线性旋转算法)

资料获取:AN1090_APM32_TSC_应用笔记

2. 驱动库模块分组

  • Channel 通道:存储每个 GPIO 通道源配置、目的映射、采样参考值、Meas 测量值、Delta 差值;使用TSC_Channel_Src_T、TSC_Channel_Dest_T、TSC_Channel_Data_T结构体;需要在 ROM 定义源 / 目的配置,RAM 存放动态测量数据。
  • Block 采集块:Block 代表一组同步采集通道;通过TSC_Block_T结构体配置;核心 API:TSC_Acq_ConfigBlock、TSC_Acq_StartPerConfigBlock、TSC_Acq_WaitBlockEOA、TSC_Acq_ReadBlockResult。
  • Object 触摸对象 (Object):将若干通道组合为业务传感器,分为 TouchKey 单通道按键,LinRot 线性 / 旋转多通道传感器;结构体TSC_Object_T管理对象集合;API:TSC_Obj_ConfigGroup、TSC_Obj_ProcessGroup。

3. 关键对象配置:Channel 通道、Block 采集块、Object 触摸对象

完整配置顺序:

  1. 在 ROM 定义MyChannels_Src[]通道源配置,绑定 Group、IO 掩码;
  2. 定义MyChannels_Dest[]通道目的映射;RAM 分配MyChannels_Data[]存放实时测量数据;
  3. 定义 Block 块集合MyBlocks[],划分哪些通道属于同一个同步采集块;
  4. 定义 Object 对象集合MyObjects[],把通道组合为按键、线性滑条、旋转旋钮;
  5. 调用 API 完成块、对象初始化;周期调用TSC_Obj_ProcessGroup执行采集与状态处理。

4. 按键、线性 / 旋转触摸软件配置流程

  1. TouchKey 触摸按键 每个按键占用 1 个 Channel;结构体TSC_TouchKey_T;API TSC_TouchKey_Config配置阈值;TSC_TouchKey_Process处理按键释放 / 按下状态机;宏定义TOUCH_TOTAL_TOUCHKEYS设置按键总数量。
  2. 线性 / 旋转 LinRot 触摸 最少 3 通道;支持 M1/M2/H/D 多种电极拓扑模式;
  • 配置差值系数表DeltaCoeff[],16 位定点格式,MSB 整数、LSB 小数;例 1.50 = 0x010D;0.80 = 0x00CD;
  • 在tsc_conf.h宏启用对应电极拓扑(3CH_LIN_H、3CH_ROT_M 等);
  • API:TSC_Linrot_Config、TSC_Linrot_Process、TSC_Linrot_CalcPos输出 0‑256 位置值。

5. 抗干扰机制 DTO / DXS / ECS 参数配置

  1. DTO 超时检测:宏TOUCH_DTO配置最大触摸时长;驱动内部自动执行,超时自动重新校准通道。
  2. DXS 检测排除:宏TOUCH_USE_DXS开启;必须在TSC_Obj_ProcessGroup()之后调用TSC_Dxs_FirstObj()。
  3. ECS 环境优化:宏配置TSLPRM_ECS_K_SLOW、TSLPRM_ECS_K_FAST、TSLPRM_ECS_DELAY;定时(例每 100ms)调用TSC_Ecs_Process()做基线更新。
  4. 定时管理 Time:宏TOUCH_TICK_FREQ设置系统滴答时基;为 ECS、DTO 提供时间基准。

6. 参考测试例程、EMC 测试参数、工程移植排错要点

文档 TouchPanel‑APM32F051 例程提供两套参数配置,做 EN61000‑4‑6 传导骚扰 CS 测试:

  • 参数集 1:TouchKey 可达 10Vrms Class A,线性 / 旋转 6Vrms Class A;
  • 参数集 2:TouchKey 可达 6Vrms Class A,线性 / 旋转 3Vrms Class A。

测试失效现象:特定频点采样数值跳变,产生无触摸误触发。
工程移植关键要点:

  1. 根据芯片封装修改通道总数量宏TOUCH_TOTAL_CHANNELS,不同 F051 封装可用通道数不一致;
  2. Rs 串联电阻、Cs 采样电容直接影响灵敏度与 EMC 抗扰;
  3. 线性 / 旋转务必匹配硬件 PCB 电极拓扑,开启对应tsc_conf.h宏;
  4. ECS、DXS、DTO 调用时序必须正确,放在对象状态机处理之后;
  5. 电源纹波、PCB 布局是量产稳定性核心,软件调参不能完全弥补硬件缺陷。

相关推荐