一款基于XMC1200的LED智能调光设计
英飞凌新一代XMC1200系列MCU将Cortex-M0内核与尖端的65nm制程技术结合在一起,内建了亮度与色彩控制单元,可以对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智能调光应用。
![](../img/eep/emb/emb-43252hwsnlbaovp4.jpg)
图 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调光的电路图。
![](../img/eep/emb/emb-43253uxvm4f0tdpq.jpg)
从上图可以看出,在XMC1200的BCCU中,主要引入了以下模块:
1) 指数型调光引擎
人眼对于光强的感知实际是对光振动的振幅的感知,而光的强度和振幅的平方成正比,这就导致人眼对光强的线性变化无法做出线性的感知,而是会产生近似对数的关系。为此,如果需要让人眼感知到线性的变化,则需要让光强按照指数型改变。
为了解决这种难题,BCCU创新的增加了指数型调光模块,使得光强可以自动的按照指数规律变化,从而达到对人眼的感知的线性变化,从而达到柔和调光的效果。指数型调光的模块和原理如图3。
![](../img/eep/emb/emb-43254dpq0gpwx3m0.jpg)
代码实现
{
// 指数型调光引擎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三色同一时刻开始变化,并在同一时刻达到 变化终点,它们的合成颜色在三色空间中表现为一条直线。
![](../img/eep/emb/emb-43255kelyhjs2yel.jpg)
代码实现
{
// 设置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特性更好,同时因频率较高,更不易产生低频闪烁。
![](../img/eep/emb/emb-43256u0r5uhtdrwy.jpg)
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)