图 4是一个触摸按键应用中一次典型的按键波形,每个按键按下后,系统都需输出对应的电压值以供其他系统检测。该应用要求响应时间小于等于40ms,当按键被长按时,需要一直输出按键电压,即使按键释放后,仍需250 ms时间保持原有按键电压,之后停止输出按键电压,进入空闲状态。系统共包含12个触摸按键,当多个按键被同时按下时,系统不响应。系统低功耗设计要求为,系统待机时没有按键操作的平均电流应至少小于1 mA。
使用示波器可以测出系统扫描12个按键所需时间大约为1.388 ms。同时,可以测量到正常工作状态下系统的工作电流大约为6mA。根据公式2以及表 1,若一次休眠1.92 ms,需要连续休眠5次(9.6 ms),才可以得到低于1mA的平均待机电流,约为0.875mA;若一次休眠15.6 ms,休眠一次即可满足要求,平均待机电流约为0.52mA。实际工程中采用了第二种休眠方式,实际测量到的平均待机电流值为0.565mA,与计算值相近。
4. 降低功耗和唤醒方式的进一步讨论
以上实例中系统的平均待机电流是0.565mA,虽然这个功耗满足了系统的设计要求,但是在很多使用电池供电的场合是不行的。这是因为在待机时,系统扫描全部12个按键,用去了1.388ms的时间。如果能减小扫描按键的时间,那么还能够降低系统的待机功耗。
固定按键唤醒系统
采用固定按键的方式唤醒系统能有效的降低系统扫描按键的时间。系统无需扫描所有的按键,只需扫描固定的一个按键,这可以大大降低在待机状态下扫描按键的时间。以上述的应用为例,CY8C22x45系列PSoC支持双通道并行扫描,12个按键均匀分布在两个通道上,因此扫描一个按键约为0.231 ms。 如果休眠15.6 ms, 可以计算出此时平均待机电流只有0.113 mA,相比之前的0.52 mA的计算值,仅是其21%。如果休眠时间增加至40ms, 从表 1可以推算出此时平均休眠电流约为9 uA, 此时计算出平均待机电流仅为0.043 mA。
任意按键唤醒系统
如果系统要求任意按键唤醒系统,那么以上介绍的固定按键唤醒系统方法不能满足。Cypress特有的内部模拟总线的方式,可以将全部的按键组合成一个“大按键”。这样系统待机时,只需要对这个“大按键”扫描一次,就能判断是否有手指触摸到任何按键上。不论任何一个按键被手指触摸,都可以唤醒系统。系统唤醒后,将“大按键”分解,进行正常的按键扫描处理,区分哪个按键按下,进行任务处理。使用这种方法,系统的待机平均电流与使用固定按键唤醒系统的方法相同。
手指接近唤醒系统
手指接近唤醒系统是Cypress的一项成熟的技术。此方法是建立在任意按键唤醒系统方法基础之上的。在系统待机时,也是使用一个“大按键”进行扫描。与上个方法不同的地方在于:不是当手指触摸到键盘时唤醒系统,而是当手指靠近键盘时就唤醒系统。系统唤醒后立即将“大按键”分解为正常按键,进行按键扫描。相对于任意按键唤醒系统方法,这种方法能加快系统对按键的相应速度,还可以使产品增加丰富的功能特性。
5. 结语
应用Cypress的CY8C22x45系列芯片以及独有的CapSense技术,设计者可以用更快的时间扫描大量按键,用更长的时间让系统休眠,结合其较低的休眠电流,在保证系统可靠性能的同时,可以实现较低的待机功耗,为触摸按键应用的低功耗设计提供了一种良好的解决方案。