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

描述

书接上文:

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

在Configure窗口中,在下拉列表里选择ms,并将Cycle value设置为1000,此时可以看到“1000”为红色,这是因为时钟频率过高,导致此时设定的周期超出范围,需要调低时钟频率(见14);因为不使用定时计数结束中断,所以取消勾选Interrupt设置;在PWM slave select setting选项中,选择Channel 1 slave和Channel 2 slave。

RL78

点击可查看大图

将Clock source从fCLK修改为fCLK/2^9

RL78

点击可查看大图

对于Channel 1 slave:将PWM duty设为20%,将Initial output value设为0,并将Output level设为Active-high;取消勾选Interrupt设置。

RL78

点击可查看大图

对于Channel 2 slave:将PWM duty设置为70%,将Initial output value设置为0,并将Output level设置为Active-high,同样取消勾选Interrupt设置。

RL78

点击可查看大图

接下来再添加一个TAU模块,打开Timer Array Unit,然后双击TAU04。

RL78

点击可查看大图

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

RL78

点击可查看大图

在Resource下拉列表中选择TAU0_4,然后点击Finish,此步的目标是创建一个占空比为50%的PWM输出,用作LED驱动信号。

RL78

点击可查看大图

在Configure窗口中,在下拉菜单中选择μs,并将Cycle value设置为2。不要勾选Interrupt,在PWM slave select setting选项中,应选择Channel 5 slave。

RL78

点击可查看大图

对于Channel 5 slave:将PWM duty设置为50%,将Initial output value设置为0,并将Output level设置为Active-high,取消勾选Interrupt设置。

RL78

点击可查看大图

安装ELCL模块:

(1)打开Smart Configurator。

(2)点击 Components选项卡,然后点击Add component。

RL78

点击可查看大图

(3)在New Component窗口点击Download ELCL modules。

RL78

点击可查看大图

(4)选择ELCL AND并下载,同时下载通用设置文件RL78/G23 Common ELCL Module。

RL78

点击可查看大图

添加一个ELCL模块,双击Logic and Event Link Controller。

RL78

在Software Component Selection窗口中选择ELCL AND,然后点击Finish。

RL78

点击可查看大图

在Common setting选项中,勾选L1L0和L2L0。

RL78

点击可查看大图

对于L1L0:将TAU0 Channel1 Output设置为 ELISEL_0,将TAU0 Channel5 Output设置为 ELISEL_1。Application选择NAND。在Output signal selector中选择P10。

RL78

对于L2L0:将TAU0 Channel2 Output设置为ELISEL_4,将TAU0 Channel5 Output设置为ELISEL_5。Application选择NAND,在Output signal selector中选择P11。

RL78

点击可查看大图

这一步使用了ELCL模块中NAND应用的输入/输出功能。在完成上述所有设置后,窗口中出现红色错误提示。这是因为在ELCL设置中,两个模块选择了相同的通道作为输入信号。只要理解相关规格,某些内容(单一功能)与信号是可以同时使用的。在本工程中,即使存在该错误提示,也不会影响代码生成。

在配置窗口右上角,点击Generate Code图标来生成项目代码。

RL78

点击可查看大图

展开项目的文件夹,并确认已生成Config_AND、Config_TAU0_0和Config_TAU0_4文件夹,以及相应的Code Generator代码。

RL78

点击可查看大图

根据RL78/G23-64p FPB原理图可知,P53控制LED1,P52控制LED2。但是在ELCL的规格中,P52和P53不能被选作输出信号。因此,需要手动将P10与P52(LED2)相连,并将P11与P53(LED1)相连。

RL78

点击可查看大图

如下面所示,在RL78/G23-64p FPB上使用杜邦线将P10与P52相连、将P11与P53相连。

RL78

点击可查看大图

在MCU/MPU Package(封装)视图中,可以看到已分配的引脚,如下图所示:

RL78

点击可查看大图

最后,切换到Pins选项卡。注意其中关于TAU和ELCL AND引脚分配的信息。这些信息可以通过多种不同方式查看(按字母顺序、按组件、其他方式等)。

例如下方所示的Pins视图

RL78

点击可查看大图

RL78

点击可查看大图

RL78

点击可查看大图

RL78

点击可查看大图

RL78

点击可查看大图

添加工程代码

在Project Explorer窗口中打开文件夹smc_gen->Config_AND。

在编辑器中打开Config_AND.c文件。

在Config_AND.c文件中,复制函数R_Config_AND_Start。

在RL78G23_SC_Sample.c中,将其粘贴到main函数里,并放在EI()语句之后。

在Project Explorer窗口中,打开文件夹 smc_gen->Config_TAU0_0。

在Project Explorer窗口中,打开Developer Assistance,将需要的函数拉到代码中。

RL78

点击可查看大图

将R_Config_TAU0_0_start()函数拖到main()下。

RL78

点击可查看大图

将R_Config_TAU0_4_start()函数拖到main()下。

RL78

点击可查看大图

最后,在main()末尾加入一个简单的while (1)循环。

RL78

点击可查看大图

编译、运行工程。

可以看到LED1和LED2在闪烁

(1)LED1和LED2同时点亮;

(2)200ms后,LED2熄灭;

(3)700ms后,LED1熄灭;

(4)回到(1)。

重复周期为1秒。

如果使用示波器或逻辑分析仪,可以观察P10和P11的如下波形:

RL78

点击可查看大图

总结

本文基于RL78单片机与Smart Configurator,介绍了一种双频PWM的LED调光方案,充分利用了RL78 MCU内部丰富的定时器与可配置逻辑资源,并结合Smart Configurator图形化开发工具完成外设初始化与配置。通过TAU生成高、低两种频率PWM,并结合ELCL硬件NAND逻辑实现信号组合,同时引入LVD模块提升系统供电可靠性,在无需CPU持续参与的情况下,实现了LED的调光控制。实验结果表明,LED能够按照设定逻辑实现稳定的闪烁效果。

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

全部0条评论

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

×
20
完善资料,
赚取积分