1. 内容简介
在2015年,苹果新一代的MacBook和Apple Watch皆搭载压力触控感应技术,它被Apple称为Force Touch,用户每次按下触控板之后除了可以在萤幕看见视觉回馈,它同时能够分辨出用户点按的力度强弱来做出一系列的相关操控与应用。而本文将介绍以HY16F184内建高精密Sigma-delta 24 Bit ADC搭配Uneo Force Sensor来实现一个类似Force Touch应用电路。 在本文中的Force Touch应用电路上,主要的元件有:压力感测器(Force Sensor)、ADC和MCU控制晶片。 紘康HY16F184控制晶片内建高精密Sigma-delta 24 Bit ADC、可程式放大PGA和多段式稳压输出等功能,可以很大幅简化PCB周边线路,精准完成由类比到数位的讯号转换。
在一个完整Force Touch实际应用上,除了需要考量到X, Y轴座标与Z轴强度计算,同时也需要考量到电流消耗功率与扫瞄速度和校正的应用设计。而在本文内,只先探讨与介绍如何使用HY16F184内建高精密Sigma-delta 24 Bit ADC来扫描四个Force Sensor并透过I2C通讯来输出基本的ADC Raw Data。使用I2C转USB桥接器与电脑连接,由电脑端GUI做即时四个通道的ADC Raw Data资料变化量显示。
2. 原理说明
2.1. 量测原理
Uneo Force Sensor是以压阻效应(piezoresistive effects)为基础的压力感测器,所谓压阻效应是指当感测器内部感测元件受到外界压力作用于其上时,其电阻值会随之改变的现象。 使用者可以依照电阻值的变化量,使其输出电压随之改变,来推算出压力大小。在本文中,是使用Uneo Force Sensor来做单端输入(Single Input)的讯号量测,其量测方法与原理,可以参考下图1。R1为一个固定的参考电阻,Vr则为固定的参考电压,Rs即为Uneo Force Sensor电阻值变化量,当外界压力作用于其上时,Rs电阻值则会产生变化,V2则为Uneo Forec Sensor相对应的电压变化量。其公式为:V2=+Vr*R1/(Rs+R1)。Uneo Forece Sensor的特性为当元件受到外界压力越大时,其电导(Conductance)值会越大,换而言之即是电阻(Resistance)值会越小。所以由以上公式配合Uneo Force Sensor特性可以得知,当V2电压越大时候代表所感受到的Force压力也越大。
图1 Uneo Force Sensor量测原理
本文Force Tocuh的基本架构如下图2所示,包含四个压力感测器(Force Sensor)、ADC和MCU单晶片。当有重力施压在压力感测器上时, 压力感测器会将所得到的电压讯号变化量,透过类比数位转换(ADC)给单晶片(MCU)做后端的讯号处理计算,最后再透过I2C通讯输出资料。在本文中,使用到的压力感测器为Uneo Force Sensor,详细关于Uneo Force Sensor规格如下图3,MCU单晶片与ADC规格部份可以章节2.2介绍。
图2 HY16F184 Force Touch基本架构应用图
图3 Uneo Force Sesnor基本规格与特性
2.2. 控制晶片
单片机简介:HY16F系列32位元高性能Flash单片机(HY16F184)
图4 紘康HY16F系列32位元高性能Flash单片机(HY16F184)
(1)採用最新Andes 32位元CPU核心N801处理器。
(2)电压操作范围2.4~3.6V,以及-40℃~85℃工作温度范围。
(3)支援外部16MHz石英震盪器或内部20MHz高精度RC震盪器,
拥有多种CPU工作时脉切换选择,可让使用者达到最佳省电规划。
(3.1)运行模式 350uA@2MHz/2(3.2)待机模式 10uA@32KHz/2(3.3)休眠模式 2.5uA
(4)程式记忆体64KBytes Flash ROM
(5)资料记忆体8KBytes SRAM。
(6)拥有BOR and WDT功能,可防止CPU死机。
(7)24-bit高精准度ΣΔADC类比数位转换器
(7.1)内置PGA (Programmable Gain Amplifier)最高可达128倍放大。
(7.2)内置温度感测器TPS。
(8)超低输入杂讯运算放大器OPAMP。
(9)16-bit Timer A
(10)16-bit Timer B模组具PWM波形产生功能
(11)16-bit Timer C 模组具数位Capture/Compare 功能
(12)硬体串列通讯SPI模组
(13)硬体串列通讯I2C模组
(14)硬体串列通讯UART模组
(15)硬体RTC时钟功能模组
(16)硬体Touch KEY功能模组
1. 系统设计
1.1. 硬体说明
使用HY16F184内建ADC搭配Uneo Force Sensor做Force Touch应用电路。 HY16F184的ADC通道类比脚位分别与四个Force Sensor的S+与S-做连接,採取单端输入式的连接方式。详细ADC设置图可以参考下图5~8设定,详细完整线路设计图可以参考以下图9。
图5 通道1设置图
图6 通道2设置图
图7 通道3设置图
图8 通道4设置图
图9 HY16F184 Uneo Force Sensor硬体线路连接图
主要元件介绍
(1)HY16F184 : 资料处理与运算核心,主要负责执行运算四个Force sensor的扫描资料,并且透过I2C通讯做ADC Raw Data资料输出。
(2)ADC:HY16F184内建之类比数位转换器,将Force sensor所测得的电压讯号,做类比数位电压讯号转换。
(3)Uneo Force Sensor :压力感测器,负责侦测压力大小,并且将压力转换为电压讯号。
(4)R3~R6电阻 : 为分压用之固定参考电阻,使用者可适应用自行调整固定参考电阻值大小。
1.2. 软体说明
程式流程图 :
图10 Force sensor扫描流程图
1. 数据规格与总结
1.1. ADC Output Rate测量
在本文中,通道扫描的方式为每一个通道都扫描四次再取平均值,所以四个通道总共会需要扫描16次,在CPU频率设定为2MHz与ADC OSR设定为128的情况下(即ADC的资料输出率为2560sps),每次从CH1到CH4的扫描时间总共需要花费10ms,换算频率约为100Hz。在此条件下,如果要提升ADC的扫瞄速度,可选择提升ADC OSR设置,但是这可能会损失了解析度,如果选择提升了CPU的工作频率,也可能会造成整体消耗功率过大,在此情况下,本文建议可使用移动平均法来做资料的平均与计算,使用此方式做扫描,可以在不提升CPU功耗与ADC频率的情况下,满足每个通道也为取四笔值取平均的条件,把ADC Output Rate速度从100Hz提升到192Hz。移动平均法的方法为,只有第一次扫描四通道的ADC Raw Data需要完整的扫描16次,之后各个通道的扫描只需要做一次扫描,再与前面三笔旧的资料做平均值计算,不断的递迴更新资料。
1.2. 耗电流测量
在CPU频率设定为2MHz与ADC OSR设定为128的情况下,使用移动平均法可以得到的ADC Output Rate为192Hz,当CPU工作电压VDD=3V, VDDA=2.4V, R3~R6固定参考电阻=0.5k欧姆的时候,在此情况下所测得到的耗电流约525uA,此为Uneo Force Sensor在没有承受任何重力情况下的耗电流,但是消耗电流,是会随著当下UneoForce Sensor感应到的重力越大而相对的增加耗电流,主要原因在于Force Sensor本身阻抗变化的关系。
1.3. 最大承受力
在ADC Gain=1,PGA=1,R3~R6固定参考电阻=0.5k欧姆的情况下,可以满足最大约1.2kg秤重,使用者可以自行修改ADC的Gain值,以满足不同的应用。
1.4. ADC Raw Data与I2C通讯格式说明
I2C Slave Address:0x20
I2C Command:0x80
ADC Raw Data Format: S+Addr+0x80+rS+(Addr+1)+CH1Data_L+CH1Data_M+CH1Data_H+CH2Data_L+CH2Data_M+CH2Data_H+CH3Data_L+CH3Data_M+CH3Data_H+CH4Data_L+CH4Data_M+CH4Data_H+P
S: Star; Addr: Slave address; rS: repeat start; P: stop.
CH1,CH2,CH3,CH4: Force Sensor ADC Raw Data;
L: ADC Low byte; M: ADC Middle byte; H: ADC High byte;
每个通道数据(Chx)共8*3=24bit
Bit0,统一为旗标,Bit0=0b,代表为旧资料; Bit0=1b,代表为新资料;
使用者应该在Bit0=1b时,取得资料才有效.
Bit23,统一为Sign bit,
Bit23=0b,代表正数; Bit23=1b, 代表负数
1.5. ADC Raw Data资料显示介面介绍
扫描Force Sensor所输出的ADC Raw Data可透过I2C介面来做资料的传输与读取,搭配紘康设计的I2C转USB的桥接器配合PC端的GUI,可以做为即时的ADC Raw Data资料显示。详细资料画面显示GUI操作说明,可以参考如下 :
1.Connect : USB连接状态,如果有正常连接会显示 Connect,如果连接不正常,会显示control board connect fail
2.I2C Slave addr: 预设为0x20.
3.Chart: 显示四个通道的Force sensor扫描资料
4.Scan: 开始读取四个通道的Force sensor扫描资料
5.Save: 存取四个通道的Forec sensor扫描资料
图11 ADC Raw Data资料显示介面
1.6. ADC Raw Data分辨率测试
在本文测试中,如果在Uneo Force Sensor没有放置任何重力物的情况下,可以得到稳定度约+/-2~ +/-3 counts误差内(ADC output code: +/-15bits),详细可以由下图观察之。
图12 Uneo Force Sensor无放置任何重力物情况下的ADC Raw Data变化量
尝试在CH1的位置上放置100g的砝码,观察CH1的ADC Raw Data之变化量。CH3在尚未放置100g砝码前的ADC Raw Data约-1~-2,放置之后ADC Raw Data约2150,所以100g的砝码大约会有2150的ADC Count分辨率,此为ADC Gain=1, PGA=1时候的测试情况。测试结果可以由下图画面显示清楚看到ADC Raw Data的变化量。
图13 在CH1放置100g砝码时候的ADC Raw Data变化量
2. 总结
在本文中,提供了完整的Uneo Force Sensor相关应用与开发工具供使用者参考,使用者可以依据四个通道的ADC Raw Data变化量,来做后续的X, Y轴座标与Z轴强度计算,等功能的设计与开发。
3. 参考文献