电容式触摸屏的通讯接口设计方案

图3 Cypress TrueTouch™ 电容触摸屏方案

二、Cypress TrueTouch™电容触摸屏的通讯接口

Cypress TrueTouch™电容触摸屏主要通过TX / I2C / SPI / USB 与主机实现物理通信,TrueTouch™芯片可以直接报告一些基本手势(如两点触摸的平移 / 缩放 / 旋转),也可以提供专用的API 给用户,用户端获得多点坐标后通过API 运算识别更多的或者自定义的手势。API 使用标准C 语言编写,可以运行在51 / ARM 等多个平台,这大大简化了用户端软件开发的工作量。

1. TX 通信接口

Cypress Designer 5.0 提供了TX8SW用户模块,可以实现7 / 8位RS-232格式的软件串行接口,支持115200,57600,38400,19200,9600,4800,2400,and 1200 bps的传输速度。用户可以在代码中设定相应的I/O口,波特率,极性和停止位数。TX8SW接口不占用PSoC的数字 / 模拟模块资源,提供了从PSoC到主机的单向通信连接。

2. I2C 通信接口

Cypress Designer 5.0 提供了多个I2C通信的用户模块,包括I2CHW(允许多主机通信,可以设定为主机或从机,支持7位/10位寻址模式),EzI2Cs(工作为从机模式,占用ROM/RAM资源最少),I2Cm(工作为主机模式)和I2Cs(工作为从机模式)。这几种I2C模块都与Philips的工业标准I2C总线接口兼容,而且不占用PSoC的数字 / 模拟模块资源,提供了从PSoC到主机的100 kbps / 400 kbps速率双向通信连接。

PSoC 与主机I2C 通信时,通常是对所有的行 / 列感应单元触摸检测完成后,通过一个GPIO 报告中断给主机,主机响应中断并读出所需的数据。以下方法可以确保主机读出数据的完整性:

While(1) {

TSX_ScanAllSensors(); // TSX 是Cypress 互电容检测方式用户模块

TSX_UpdateAllBaselines(); // 更新感应单元Baseline

TSX_GetCentroids(); // 获得多点的位置

TSX_ReportINTwithOvertime(); // 向主机报告中断,有超时控制

// 检测EzI2Cs 用户模块的RAM 读/写计数器,等待直到主机读出全部数据

while (EzI2Cs_bRAM_RWcntr != sizeof(I2Cregs)) {};

…; // 运行其它用户代码

主机对I2C Structure 特定字节写入预定义数据后,可以通知PSoC 进入待机模式(定期工作模式 + 定期休眠模式)或 完全休眠模式。PSoC 在待机模式下主机可以进入休眠,PSoC 通过Sleep Timer 定期唤醒自己进入定期工作模式,检测部分感应单元(如仅扫描行单元)来获知是否有用户激活事件。如果有激活事件就通过中断唤醒主机并进入PSoC工作模式;没有就再次休眠并定期唤醒自己以降低功耗,实际的电流功耗是工作模式和休眠模式以时间加权的平均值,例如:一秒内唤醒PSoC 4 次进入工作模式检测,每次检测16ms@3.2mA,其它时间进入休眠模式@3uA,实际的电流功耗 = (16ms * 4 * 3.2mA + (1000ms – 16ms * 4) * 3uA ) / 1000ms ~= 0.208 mA。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查