一款基于XMC1200的LED智能調光設計
【導讀】英飛凌新一代XMC1200系列MCU將Cortex-M0內核與尖端的65nm制程技術結合在一起,內建了亮度與色彩控制單元,可以對LED的進行智慧調光,實現亮度的指數調節,色彩的線性調節,同時可以避免低頻時候產生的閃爍現象,有效的保護人眼。
本文引用地址:http://www.104case.com/article/234717.htm目前廣泛使用的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) 智慧的柔和調光控制
方案優勢:
XMC1200作為單芯片解決方案,可以節省大量的CPU開銷,大幅降低軟件開發的時間,有效的減少人為導致的軟件錯誤風險。同時XMC1200系列MCU具有高性能、大容量,高可靠性的特點,可以把智慧調光廣泛的應用于生活、工業的各個方面。
第一頁:XMC1200 BCCU的智能調光方案
第二頁:RGB LED調光的電路圖
第三頁:線性調光器和Sigma Delta調制器
第四頁:閃爍看門狗/打包器
圖2為利用XMC1200實現1組RGB LED調光的電路圖。

從上圖可以看出,在XMC1200的BCCU中,主要引入了以下模塊:
1) 指數型調光引擎
人眼對于光強的感知實際是對光振動的振幅的感知,而光的強度和振幅的平方成正比,這就導致人眼對光強的線性變化無法做出線性的感知,而是會產生近似對數的關系。為此,如果需要讓人眼感知到線性的變化,則需要讓光強按照指數型改變。
為了解決這種難題,BCCU創新的增加了指數型調光模塊,使得光強可以自動的按照指數規律變化,從而達到對人眼的感知的線性變化,從而達到柔和調光的效果。指數型調光的模塊和原理如圖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三色同一時刻開始變化,并在同一時刻達到 變化終點,它們的合成顏色在三色空間中表現為一條直線。

代碼實現
{
// 設置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特性更好,同時因頻率較高,更不易產生低頻閃爍。

第一頁:XMC1200 BCCU的智能調光方案
第二頁:RGB LED調光的電路圖
第三頁:線性調光器和Sigma Delta調制器
第四頁:閃爍看門狗/打包器
4) 閃爍看門狗/打包器
研究報告指出,人眼感官能夠感知的變化為45.8HZ以內,低于這個頻率閃爍,會引起人眼的不適,高于這個頻率的閃爍,雖然不會被人眼感知到,但是仍舊會對人體產生神經性的影響,比如流行的護眼燈,頻率都在100Hz以上,這樣才能保證對人體影響較小。
在BCCU中,提供了一個自動的低頻看門狗特性,通過提前設定好信號間的間隔時間,若間隔時間過大,則看門狗會自動加入開通信號,保證開關頻率不低于設定的最小值,從而從原理上消除了低頻閃爍的產生。閃爍看門狗原理如圖6

在LED的驅動中,需要保證最小開通時間,即在最短的一段時間內,需要保持開通信號恒定。BCCU中提供了一個打包器用于完成這一功能。

看門狗配合打包器使用,就可以既保證了最小開通時間,同時又能保證不產生低頻閃爍。
代碼實現
{
// 設定閃速看門狗的門限為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具有高性能、大容量,高可靠性的特點,可以把智慧調光廣泛的應用于生活、工業的各個方面。
評論