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

点击可查看大图
将Clock source从fCLK修改为fCLK/2^9

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

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

点击可查看大图
接下来再添加一个TAU模块,打开Timer Array Unit,然后双击TAU04。

点击可查看大图
打开Software Component Selection窗口。选择PWM output,然后点击Next。

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

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

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

点击可查看大图
安装ELCL模块:
(1)打开Smart Configurator。
(2)点击 Components选项卡,然后点击Add component。

点击可查看大图
(3)在New Component窗口点击Download ELCL modules。

点击可查看大图
(4)选择ELCL AND并下载,同时下载通用设置文件RL78/G23 Common ELCL Module。

点击可查看大图
添加一个ELCL模块,双击Logic and Event Link Controller。

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

点击可查看大图
在Common setting选项中,勾选L1L0和L2L0。

点击可查看大图
对于L1L0:将TAU0 Channel1 Output设置为 ELISEL_0,将TAU0 Channel5 Output设置为 ELISEL_1。Application选择NAND。在Output signal selector中选择P10。

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

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

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

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

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

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

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

点击可查看大图

点击可查看大图

点击可查看大图

点击可查看大图

点击可查看大图
添加工程代码
在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,将需要的函数拉到代码中。

点击可查看大图
将R_Config_TAU0_0_start()函数拖到main()下。

点击可查看大图
将R_Config_TAU0_4_start()函数拖到main()下。

点击可查看大图
最后,在main()末尾加入一个简单的while (1)循环。

点击可查看大图
编译、运行工程。
可以看到LED1和LED2在闪烁
(1)LED1和LED2同时点亮;
(2)200ms后,LED2熄灭;
(3)700ms后,LED1熄灭;
(4)回到(1)。
重复周期为1秒。
如果使用示波器或逻辑分析仪,可以观察P10和P11的如下波形:

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