智能硬件论坛
直播中

刘艳芳

7年用户 231经验值
私信 关注
[问答]

具有电容式感应和LED照明系统的低功耗设计考虑因素有哪些?

具有电容式感应和LED照明系统的低功耗设计考虑因素有哪些?

回帖(1)

况冶

2021-5-10 11:11:55
  在第三部分中,我们探讨了如何应对具有电容式感应和LED照明的系统的常见设计挑战。现在我们来介绍针对此类应用的低功耗设计考虑因素。
  低功耗设计考虑因素
  为了优化功耗,电容式传感器通常以扫描-休眠-扫描-休眠的重复程序进行扫描。应按照特定时间间隔扫描传感器,且器件会在连续扫描之间进入休眠状态。一个扫描-休眠周期被称为刷新间隔。 下面给出了扫描-休眠-扫描-休眠周期的时序图。
  
  图1:扫描-休眠-扫描周期
  现在我们来着重研究刷新间隔内的器件功率模式。当传感器被扫描时,称器件处于活动模式。传感器扫描完成后,器件继续处于活动模式,这期间CPU处理传感器数据,驱动LED、蜂鸣器等输出,并将传感器数据传输到主机。这步完成后,器件才进入休眠模式。
  在活动模式下,以下模块启动。
  1.以MHz速度运行的主时钟
  2.电容式感应引擎
  3.CPU
  4.通信模块,例如I2C或SPI
  5.用于实现PWM以进行LED亮度控制的定时器。我们称之为“快速定时器”,因为它能提供微秒时基。
  6.用于维持刷新间隔的定时器。我们称之为“慢速定时器”,因为它提供毫秒时基。
  在休眠模式下,以下模块启动。
  1.用于维持刷新间隔的慢速定时器。该定时器还能将器件从休眠模式中唤醒。
  2.通信模块,例如I2C(启用唤醒地址匹配)或SPI
  为实现最佳的功耗,应使用如下方法:
  1.当扫描传感器时,CPU进入休眠状态
  2.在扫描某个传感器的同时,处理之前扫描过的传感器的数据。这样就避免了器件在所有传感器扫描完成后处理传感器数据的过程中处于活动状态。
  这些方法确实有助于优化功耗,但如果设计中包含LED亮度控制等高级功能,那么功耗优化就会退居次席。这是因为LED亮度控制需要在器件的整个执行周期内发生,因此要求快速定时器一直处于启动状态,也就是使MHz时钟处于开启状态。这会导致更高的功耗。然而在功耗优化与LED亮度控制之间仍存在折衷方案。我们看看应该如何做。
  1.CPU休眠
  有些高级器件,包括赛普拉斯的PSoC4等ARM cortex-M器件,能在CPU进入休眠状态的同时让定时器等外设在后台运行。我们以前了解了有两种方法可以实现PWM:
  a.在基于固件的实现方案中,我们使用定时器中断来驱动PWM。最好的方式是:只要中断未被触发就让CPU处于休眠状态。一旦触发中断,CPU立即唤醒以服务该中断。ISR必须保持越短越好,以获得更佳的功耗。
  b.当使用硬件PWM时存在两种情况。第一种情况是使用具有比较功能的定时器,该定时器不能直接驱动引脚。这种情况的功耗比较低,原因在于确定PWM的占空比时ISR只驱动引脚而不驱动逻辑,因此CPU唤醒的时间较短。第二种情况是使用能直接驱动输出引脚的定时器。这种情况下不需要唤醒CPU来服务任何ISR,因此能进一步改善功耗。
  以下的图2给出了不同情景的CPU状态。为了简化,图中未显示CPU唤醒以处理传感器数据的部分。
  
  图2:基于固件和硬件的PWM实现方案中的CPU状态
  2.在休眠模式下驱动LED
  采用以上讨论的功耗降低方法实现的优化效果并不明显,因为只有CPU处于休眠状态。主时钟和定时器仍然开启,并消耗功率。
  一种解决方法是采用由低功率休眠模式下的时钟驱动的定时器。这种情况下可将主时钟关闭,并使器件进入休眠模式。如果有一个以上的定时器能在休眠模式下运行,那么其中一个可用来实现PWM,其它的用来维持刷新间隔。否则,这两个工作都将通过慢速定时器来实现。
  如果采用慢速定时器实现PWM以及维持刷新间隔,那么我们需要注意在功耗优化与PWM的占空比粒度之间进行权衡。如果要求的粒度低,应设定好定制器的周期,使其不能过于频繁地产生中断和唤醒器件。
  例如,慢速定时器以32KHz的时钟运行,刷新间隔为120ms。如果要求占空比以10的步长变化,例如10%、20%、30%等,而且所需PWM频率是100Hz,那么定时器可加载周期值32,这样每隔1ms生成中断。如果要求的占空比粒度增加,那么中断必须出现得比1ms更加频繁。此时的功耗将比之前更高。
  在很多SoC中,休眠模式下工作的时钟其精度比主时钟的精度要低很多。典型的休眠模式时钟容差很大,可达到±60%。而且,为了节省BOM成本通常不使用外部晶体。这种情况下,可定期根据主时钟校正休眠时钟,这样生成的PWM将与由主时钟计时的定时器所生成的PWM一样精确。
  我们来了解一种借助主时钟校正休眠模式时钟的方法。定时器用休眠模式时钟计时,并根据主时钟周期的数量使用固件延迟程序生成固定延迟。固件逻辑在延迟的末尾读取定时器计数。这就是定时器校正值。可将校正值或其倍数加载到定时器以创建延迟。
  校正值 = 休眠模式时钟 x 固件延迟
  
  图3:休眠模式时钟校正法的方框图演示
  我们可以使用这种方法计算休眠模式时钟的精确度。存在两个误差来源:
  1. 主时钟的精确度(e)
  这会直接反映在固件延迟中,进而反应在校正值中。
  2. 校正值的舍入误差 (r)
  假设最大有1位变化,误差计算方法如下
  最大舍入误差 = 1/(固件延迟 ×休眠模式时钟)
  当休眠模式时钟最低时,该误差最大。使用较大的固件延迟能减少该误差。
  现在,校正值的最大误差 = e + r。
  现在考虑这种情况:休眠模式时钟是32 KHz ± 50%,主时钟的精确度为±2 %,固件延迟为1ms。 这种情况下,最慢的休眠时钟是16 KHz,e = 0.02,r = 0.0625。因此,校正值的最大误差 = 0.0825 或 8.25 %。注意,使用10ms的固件延迟可将误差降至2.63%。
  3.用唤醒式接近传感器优化功耗
  在触摸按键应用中实现LED亮度功能同时保持低功耗的一种创新方法是使用唤醒式接近传感器。
  无线鼠标、移动电话、平板电脑、遥控背光以及笔记本键盘背光等应用均采用了这种技术,能在用户接近设备时唤醒系统。这些应用利用接近传感器确定何时从低功耗模式切换至全功能的活动模式。
  
  图4:使用唤醒式接近传感器的应用
  当电容式触摸感应器件运转在低功耗模式时,只扫描接近传感器,同时关闭背光以表明器件处于非活动状态。只扫描接近传感器,这样能降低平均功耗。当用户手部接近UI面板时,接近传感器可检测手的出现,并唤醒设备。从低功耗模式唤醒后,电容式感应器件进入活动模式,并扫描所有按键传感器以检测触摸情况。此外,背光开启可帮助用户触摸正确的按键。
  赛普拉斯的CapSense MBR3等器件已经在可配置的单芯片SoC中实现了唤醒式接近功能以及电容式感应和亮度控制功能。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分