首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

将电容式感应与LED照明相结合(2)

将电容式感应与LED照明相结合(2)

作者: Vairamuthu Ramasamy, Shruti Hanumanthaiah,赛普拉斯半导体

我们在第一部分中通过实际使用案例介绍了电容式感应型UI应用中所采用的不同LED照明技术。下面我们将了解一下实现脉冲宽度调制(PWM,面向LED控制应用的关键技术)的各种不同方法。

PWM有两大属性:

频率:用PWM信号快速开关LED,由于开关频率会产生LED闪烁,因此PWM频率应大于100 Hz,确保人眼不会感觉到闪烁。

占空比:PWM通过改变占空比、保持负载电流恒定以控制LED的亮度。LED的平均电流取决于占空比。平均电流会随占空比的提升而升高,进而提高亮度。占空比在0%和100%之间的步长数量应满足应用中需要调节的不同亮度级数量要求。举例来说,如果应用在完全关闭(0%)到完全开启(100%)之间需要20个亮度级,那么就应支持5%的步长(除完全关闭之外包含20个步长)。

用微控制器实现PWM有两种方法。我们可用简单的定时器/计数器在固件中实现整个PWM逻辑,也可以选择集成硬件PWM功能的高级控制器来实现。

基于固件的PWM实现方案

简单的固件实现方案需要定时器和中断服务子程序(ISR)。定时器在与占空比每个步长大小的相同时间内创造中断。举例来说,如果PWM周期为10ms(100Hz)而步长大小为1ms(10%的占空比),那么定时器就要每1ms对CPU发出中断,即:定时器周期 = 脉冲宽度/步长大小。

图1给出了ISR中的逻辑。PULSE_WIDTH和ON_TIME代表PWM步长数量的脉冲宽度和开启时间。举例来说,PULSE_WIDTH = 5即满足5个亮度级的要求,而ON_TIME = 2则满足40%的占空比要求。ISR变量isrVar控制输出何时切换开/关。该逻辑可方便地进行扩展,从而支持多个LED引脚,而每个LED都有不同的占空比。



图1:固件PWM ISR逻辑

基于硬件的PWM实现方案

高级控制器有驱动PWM的专用硬件块。举例来说,赛普拉斯的PSoC4有一个TCPWM硬件块,能实现基于硬件的PWM驱动。通常说来,我们用带有比较功能的定时器来实现它,逻辑类似于上面讨论的固件逻辑。定时器将采用比较寄存器和周期寄存器。周期寄存器载入的值等于脉冲宽度,而比较寄存器载入的值等于开启时间。只要比较值大于tick值,定时器输出就会走高,反之就会走低。此外,tick值达到最大(16位定时器为65535)时,会自动回滚为零。当输出布线到端口引脚,从而能用硬件块直接驱动LED。

表1总结了基于固件和基于硬件的PWM实现方案之间的差别。

表1:基于固件和基于硬件的PWM实现方案



我们在本部分分析了实现PWM的不同方法。在第三部分中,我们将探讨设计具有电容式感应和LED照明的系统时所遇到的常见挑战,以及应对方法。
返回列表