引言
LED被称为第四代光源,具有节能、环保、安全、寿命长、低功耗、低热、高亮度、防水、微型、防震、易调光、光束集中、维护简便等特点,广泛应用于各种指示、显示、装饰、背光源、普通照明等领域,正在逐步取代传统的白炽灯、荧光灯等。
目前广泛使用的LED调光方式主要为模拟的恒流控制方法和PWM控制,存在控制复杂、功能单一、且容易产生闪烁的缺点。
针对上述挑战,英飞凌公司推出了新一代XMC1200系列MCU。它将ARM® Cortex™-M0内核与尖端的65nm制程技术结合在一起,克服了8位设计的限制,使当前的8位用户有机会享受32位性能,而无需在价格或易用性方面付出代价。XMC1200的FLASH容量从16KB- 200KB不等,16K SRAM,内核主频32M Hz,12bit ADC。特别的,XMC1200内建了亮度与色彩控制单元(BCCU),专门针对LED智能调光应用。
图 1 XMC1200系列MCU资源
基于XMC1200 BCCU的智能调光方案
XMC1200内建的亮度与色彩控制单元(BCCU)可以实现对LED亮度和色彩的全数字控制,可实现以下关键特性:
1) 自动消除低频闪烁
2) 自动色彩变化控制
3) 智能的柔和调光控制
其中图2为利用XMC1200实现1组RGB LED调光的电路图。
图2 XMC1200 BCCU RGB三色调光电路方案
从上图可以看出,在XMC1200的BCCU中,主要引入了以下模块:
1) 指数型调光引擎
人眼对于光强的感知实际是对光振动的振幅的感知,而光的强度和振幅的平方成正比,这就导致人眼对光强的线性变化无法做出线性的感知,而是会产生近似对数的关系。为此,如果需要让人眼感知到线性的变化,则需要让光强按照指数型改变。
为了解决这种难题,BCCU创新的增加了指数型调光模块,使得光强可以自动的按照指数规律变化,从而达到对人眼的感知的线性变化,从而达到柔和调光的效果。指数型调光的模块和原理如图3。
图3 指数型调光模块及原理
代码实现
{
// 指数型调光引擎0,终值0xABC写入影子寄存器
WR_REG((BCCU0->DL0,BCCU_DL0_DLEV_Msk,BCCU_DL0_DLEV_Pos,0xABC);
// 调整指数型调光变化速率为0xCBA
WR_REG((BCCU0->DTT0,BCCU_DTT0_DIMDIV_Msk,BCCU_DTT0_DIMDIV_Pos,0xCBA);
// 指数型调光引擎0,终值写入
SET_BIT(BCCU0->DESTRCON,BCCU_DESTRCON_DE0S_Pos);
// 打开BCCU指数型调光引擎0
SET_BIT(BCCU0->DEEN,BCCU_DEEN_EDE0_Pos);
}
2)线性调光器
BCCU中引入了线性调光器,特性可以根据亮度目标值和变化时长,生成线性变化的亮度输出,从而达到线性调整色彩的目的。改特性在RGB三色调光方面有特别的优势,若设定RGB三通道变化时长一致,则可以达到同步进行三色调节的目的,轻松的实现三色混合。在图4中,RGB三色同一时刻开始变化,并在同一时刻达到变化终点,它们的合成颜色在三色空间中表现为一条直线。
图4 线性调光模块及原理
代码实现
{
// 设置BCCU通道0的线性调光速率为0xCBA
WR_REG(BCCU0->INTS0,BCCU_CHCONFIG0_LINPRES_Msk,BCCU_CHCONFIG0_LINPRES_Pos,0xCBA);
// 设置调光终点为0xABC,写入影子寄存器
WR_REG(BCCU0->INTS0,BCCU_INTS0_TCHINT_Msk,BCCU_INTS0_TCHINT_Pos,0xABC);
// 线性调光终值写入
SET_BIT(BCCU0->CHSTRCON,BCCU_CHSTRCON_CH0S);
}
3) Sigma Delta调制器
通过开关LED,能够使得LED发出一定的光亮,若切换速度足够快,则人眼将感知不到LED的开关,达到连续发光的目的,而LED的亮度则取决于开通的平均时间。
BCCU中内置了Sigma Delta调制器,用于将亮度数值变换为比特流,产生快速开关的脉冲密度调制信号(PDM),通过这个信号来控制LED的开关。
大家比较熟知的开关信号有PWM,PDM和PWM的区别可以参考图5,在相同的较长时长内,PDM和PWM信号有相同的开通时间,但PWM表现为周期恒定,脉宽变化,但PDM则表现为周期不恒定,但脉宽相同。
相比来说BCCU中提供的PDM具有较高的频率,可以达到较高的解析度,EMI特性更好,同时因频率较高,更不易产生低频闪烁。
图5 PWM/PDM信号对比
4) 闪烁看门狗/打包器
研究报告指出,人眼感官能够感知的变化为45.8HZ以内,低于这个频率闪烁,会引起人眼的不适,高于这个频率的闪烁,虽然不会被人眼感知到,但是仍旧会对人体产生神经性的影响,比如流行的护眼灯,频率都在100Hz以上,这样才能保证对人体影响较小。
在BCCU中,提供了一个自动的低频看门狗特性,通过提前设定好信号间的间隔时间,若间隔时间过大,则看门狗会自动加入开通信号,保证开关频率不低于设定的最小值,从而从原理上消除了低频闪烁的产生。闪烁看门狗原理如图6
图6 闪烁看门狗原理
在LED的驱动中,需要保证最小开通时间,即在最短的一段时间内,需要保持开通信号恒定。BCCU中提供了一个打包器用于完成这一功能。
图7 打包器原理
看门狗配合打包器使用,就可以既保证了最小开通时间,同时又能保证不产生低频闪烁。
代码实现
{
// 设定闪速看门狗的门限为0xABC
WR_REG(BCCU0->GLOBCON,BCCU_GLOBCON_WDMBN_Msk,BCCU_GLOBCON_WDMBN_Pos,0xABC);
// 打开BCCU通道0的闪烁看门狗
SET_BIT(BCCU0->CHCONFIG0,BCCU_CHCONFIG0_WEN_Pos);
// 设定BCCU通道0的打包器门槛为0xA
WR_REG(BCCU0->CHCONFIG0,BCCU_CHCONFIG0_PKTH_Msk,BCCU_CHCONFIG0_PKTH_Pos,0xA);
// 打开BCCU通道0的打包器
SET_BIT(BCCU0->CHCONFIG0,BCCU_CHCONFIG0_PEN_Pos);
}
总结
综上所述,通过使用内建BCCU单元的XMC1200系列MCU,可以对LED的进行智能调光,实现亮度的指数调节,色彩的线性调节,同时可以避免低频时候产生的闪烁现象,有效的保护人眼。
XMC1200作为上述特性的单芯片解决方案,可以节省大量的CPU开销,大幅降低软件开发的时间,有效的减少人为导致的软件错误风险。同时XMC1200系列MCU具有高性能、大容量,高可靠性的特点,可以把智能调光广泛的应用于生活、工业的各个方面。
|