新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一款基于XMC1200的LED智能调光设计

一款基于XMC1200的LED智能调光设计

作者:时间:2014-03-13来源:网络收藏

【导读】英飞凌新一代XMC1200系列MCU将内核与尖端的65nm制程技术结合在一起,内建了亮度与色彩控制单元,可以对LED的进行智慧调光,实现亮度的指数调节,色彩的线性调节,同时可以避免低频时候产生的闪烁现象,有效的保护人眼。

本文引用地址:http://www.eepw.com.cn/article/234717.htm

目前广泛使用的LED调光方式主要为模拟的恒流控制方法和PWM控制,存在控制复杂、功能单一、且容易产生闪烁的缺点。针对上述挑战,英飞凌公司推出了新一代XMC1200系列MCU。它将 内核与尖端的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) 智慧的柔和调光控制

方案优势:

XMC1200作为单芯片解决方案,可以节省大量的CPU开销,大幅降低软件开发的时间,有效的减少人为导致的软件错误风险。同时XMC1200系列MCU具有高性能、大容量,高可靠性的特点,可以把智慧调光广泛的应用于生活、工业的各个方面。

第一页:XMC1200 BCCU的智能调光方案

第二页:RGB LED调光的电路图

第三页:线性调光器和Sigma Delta调制器

第四页:闪烁看门狗/打包器

图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);

第一页:XMC1200 BCCU的智能调光方案

第二页:RGB LED调光的电路图

第三页:线性调光器和Sigma Delta调制器

第四页:闪烁看门狗/打包器

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信号对比

 

第一页:XMC1200 BCCU的智能调光方案

第二页:RGB LED调光的电路图

第三页:线性调光器和Sigma Delta调制器

第四页:闪烁看门狗/打包器

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具有高性能、大容量,高可靠性的特点,可以把智慧调光广泛的应用于生活、工业的各个方面。



关键词: ARM Cortex-M0

评论


相关推荐

技术专区

关闭