基于瑞萨RL78 Smart Configurator的LED双频调光控制(上)

描述

引言:

在嵌入式系统开发中,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的输出固定为低电平。

RL78

点击可查看大图

核心模块

低电压检测

(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创建新工程。

RL78

点击可查看大图

选择Renesas CC-RL C/C++ Executable Project,点击Next。

RL78

点击可查看大图

为工程命名,如RL78G23_SC_Sample。

选择Renesas CC-RL v1.15.00及以上版本的Toolchain。

选择Target Device 为R7F100GLGxFB(依据所使用的MCU进行选择)。

RL78

点击可查看大图

在Hardware Debug Configuration中选择E2 Lite (RL78),点击Next。

RL78

点击可查看大图

选择Use Smart Configurator,点击Next。

RL78

点击可查看大图

确认Toolchain信息,点击Finish。

RL78

点击可查看大图

如果出现以下弹出窗口,请点击Open Perspective,如果你希望以后仍选择Open Perspective,可以勾选Remember my decision。

RL78

点击可查看大图

Smart Configurator配置

工程创建之后可以看到如下Smart Configurator视图。

RL78

点击可查看大图

在Project Explorer中,展开文件夹以查看整个工程树,所有Smart Configurator生成的代码都会放在“smc_gen”的子文件夹中。

RL78

点击可查看大图

在Smart Configurator视图中,点击Clocks选项卡,打开配置窗口,配置MCU启动/运行所需的时钟。通过拖动窗口或使用右图中箭头所示的缩放按钮来扩大窗口,可查看更多内容,使用左箭头可返回到默认设置。

RL78

点击可查看大图

勾选High-speed on-chip oscillator,取消勾选Middle-speed on-chip oscillator和X1 oscillator,并确保系统时钟来自于High-speed on-chip oscillator。

RL78

点击可查看大图

选择Components选项卡。

RL78

点击可查看大图

将视图从Components切换为Hardware View。

RL78

点击可查看大图

接下来在工程中添加一个电压检测(Voltage Detection)模块,打开Voltage Detection,然后双击LVD0,以添加低电压检测模块。

RL78

点击可查看大图

打开Software Component Selection窗口,选择Voltage Detector,然后点击Next。

RL78

点击可查看大图

在如下界面上,可以根据需要更改配置名称,修改过后可点击Finish。

RL78

点击可查看大图

在配置窗口中,选择LVD0的Reset mode,并从下拉列表中选择要使用的一个复位产生电平(VLVD0),本次工程选择1.86(V)。

RL78

点击可查看大图

接下来添加一个TAU模块来生成PWM输出,打开Timer Array Unit,双击TAU00。

RL78

点击可查看大图

在Software Component Selection窗口。选择PWM Output,然后点击Next。

RL78

点击可查看大图

在如下界面上,可以根据需要更改配置名称,修改过后可点击Finish。

RL78

点击可查看大图

注意

此步骤的目标是创建两个具有不同占空比的PWM输出,用于调光控制。通过改变每个通道的占空比即可控制LED的亮度。

未完待续

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分