
引言:
在嵌入式系統開發中,LED調光控制是一個常見而重要的應用場景。
傳統的單一PWM調光通過快速地開關LED,利用人眼視覺暫留實現亮度調節,通常只能通過改變一個信號的頻率或占空比來同時影響閃爍和亮度,二者容易耦合,例如低頻PWM可實現閃爍但點亮時通常接近全亮,高頻PWM可實現調光但不適合產生明顯閃爍。因此該方式雖然簡單,但在精細控制方面存在局限。
本文將介紹一種基于瑞薩RL78/G23的雙頻調光技術,通過Smart Configurator工具快速實現高質量的LED調光控制。
其核心思想是將LED調光控制拆分為兩個層次:一個低頻或中頻PWM用于控制LED的整體閃爍周期,另一個高頻PWM用于控制LED在點亮期間的實際亮度。通過將兩路PWM信號進行邏輯組合,最終輸出到LED驅動電路,從而實現“閃爍控制”和“亮度控制”的相互獨立。

本方案的核心亮點在于:
采用雙頻率PWM組合,實現精細調光
利用ELCL硬件邏輯,無需CPU持續干預
通過Smart Configurator圖形化配置,大幅降低開發難度
完整的從0到1的實踐教程,30分鐘即可上手

無論您是嵌入式開發新手,還是希望優化現有LED控制方案的工程師,本文都將為您提供有價值的參考。讓我們一起探索如何用更智能的方式控制LED!

工程原理

LED的雙頻調光通過將兩個占空比不同的PWM輸出(TO01、TO02)與PWM輸出(TO05)進行與非邏輯(NAND)來實現。
假設DC/DC轉換器采用恒流控制(開關控制),TO01和TO02是用于控制LED閃爍頻率的PWM輸出,頻率設為1Hz,TO05用于控制LED整體亮度,設置TO05為比TO01和TO02更高的頻率,這兩種頻率的組合可以實現精細的調光控制。

下圖為工程時序圖:
(1)將TAU01、TAU02和TAU05設置為PWM輸出模式。
(2)當TO01為高電平時,使能來自TO05的PWM輸出,并從OUTPUT A輸出。類似的,當TO02為高電平時,使能OUTPUT B的輸出。
(3)當TO01為低電平時,OUTPUT A的輸出固定為低電平。類似的,當TO02為低電平時,OUTPUT B的輸出固定為低電平。

點擊可查看大圖


核心模塊

低電壓檢測
(Low Voltage Detector,LVD模塊)
LVD模塊將電源電壓VDD與檢測電壓VLVD進行比較,并據此產生內部中斷信號或內部復位信號。
定時器陣列單元
(Timer Array Unit,TAU模塊)
TAU模塊是一個多功能定時器模塊,可以實現定時、計數、PWM輸出等功能。
事件鏈接邏輯控制器
(Logic and Event Link Controller,ELCL模塊)
ELCL模塊通過內部邏輯單元塊,將外設功能輸出的信號鏈接到其他指定的外設功能,從而允許外設功能之間在無需CPU介入的情況下直接通信。
多模塊協同工作
通過LVD模塊、TAU模塊和ELCL模塊協同工作,可以實現LED雙頻調光控制。使用LVD模塊保證系統平穩運行;使用TAU模塊生成低頻和高頻PWM信號,再通過ELCL模塊對不同占空比的PWM輸出進行NAND邏輯運算,實現LED雙頻調光。

工程建立

通過點擊File->New->Renesas C/C++ Project->Renesas RL78創建新工程。

點擊可查看大圖
選擇Renesas CC-RL C/C++ Executable Project,點擊Next。

點擊可查看大圖
為工程命名,如RL78G23_SC_Sample。
選擇Renesas CC-RL v1.15.00及以上版本的Toolchain。
選擇Target Device 為R7F100GLGxFB(依據所使用的MCU進行選擇)。

點擊可查看大圖
在Hardware Debug Configuration中選擇E2 Lite (RL78),點擊Next。

點擊可查看大圖
選擇Use Smart Configurator,點擊Next。

點擊可查看大圖
確認Toolchain信息,點擊Finish。

點擊可查看大圖
如果出現以下彈出窗口,請點擊Open Perspective,如果你希望以后仍選擇Open Perspective,可以勾選Remember my decision。

點擊可查看大圖

Smart Configurator配置

工程創建之后可以看到如下Smart Configurator視圖。

點擊可查看大圖
在Project Explorer中,展開文件夾以查看整個工程樹,所有Smart Configurator生成的代碼都會放在“smc_gen”的子文件夾中。

點擊可查看大圖
在Smart Configurator視圖中,點擊Clocks選項卡,打開配置窗口,配置MCU啟動/運行所需的時鐘。通過拖動窗口或使用右圖中箭頭所示的縮放按鈕來擴大窗口,可查看更多內容,使用左箭頭可返回到默認設置。

點擊可查看大圖
勾選High-speed on-chip oscillator,取消勾選Middle-speed on-chip oscillator和X1 oscillator,并確保系統時鐘來自于High-speed on-chip oscillator。

點擊可查看大圖
選擇Components選項卡。

點擊可查看大圖
將視圖從Components切換為Hardware View。

點擊可查看大圖
接下來在工程中添加一個電壓檢測(Voltage Detection)模塊,打開Voltage Detection,然后雙擊LVD0,以添加低電壓檢測模塊。

點擊可查看大圖
打開Software Component Selection窗口,選擇Voltage Detector,然后點擊Next。

點擊可查看大圖
在如下界面上,可以根據需要更改配置名稱,修改過后可點擊Finish。

點擊可查看大圖
在配置窗口中,選擇LVD0的Reset mode,并從下拉列表中選擇要使用的一個復位產生電平(VLVD0),本次工程選擇1.86(V)。

點擊可查看大圖
接下來添加一個TAU模塊來生成PWM輸出,打開Timer Array Unit,雙擊TAU00。

點擊可查看大圖
在Software Component Selection窗口。選擇PWM Output,然后點擊Next。

點擊可查看大圖
在如下界面上,可以根據需要更改配置名稱,修改過后可點擊Finish。

點擊可查看大圖

注意
此步驟的目標是創建兩個具有不同占空比的PWM輸出,用于調光控制。通過改變每個通道的占空比即可控制LED的亮度。


未完待續

如您在使用瑞薩MCU/MPU產品中有任何問題,可識別下方二維碼或復制網址到瀏覽器中打開,進入瑞薩MCU/MPU官方技術論壇尋找答案或獲取在線技術支持。
https://bbs.21ic.com/renesas
推薦閱讀
名單揭曉|瑞薩RA6M4+傳感器專題挑戰賽
瑞薩低成本和低功耗觸摸系統選型指南
瑞薩嵌入式AI技術漫談· 瑞薩AFCI邊緣部署實戰與完整解決方案全景

