瑞萨 RL78/F13 MCU 基于 CS+ 配置 PWM 操作流程与常见问题经验分享
一、前言
PWM (Pulse Width Modulation) 控制技术就是对脉冲的宽度进行调制的技术,即通过对一系列脉冲的宽度进行调制,来等效的获得所需要的波形 (含形状和幅值)。
关于 PWM 原理本文不多作介绍,本文主要基于瑞萨 16 位超低功耗 RL78/F13 芯片,在 CS+ 作为 IDE 背景下,用 TAU 定时器 (定时器阵列单元) 进行 PWM 模块的创建示范,同时分享在工程中容易遇见的常见问题的解决经验。
二、搭建 PWM 驱动工程操作
(一) 创建新工程
点击【File】,选择对应型号芯片,本次选择的是 64-pin 的 R5F10BLG (RL78 /F13 系列),然后输入工程名字点击【create】即可出现新工程。
(二) 分配引脚和引脚功能映射
在 RL78 的新工程建立时,必须在 pin assignment 界面分配管脚的功能。分配好后点击【Fix】,再点击【Reflect in Pin】,系统会初步分配一些基本功能到特定的 Pin 脚上。其中 T01、TRDIOB0 等功能其实都是定时器模块的功能,可以用这些功能所在的管脚作为 PWM 输出。TO00、TO01 等,就是本次示范的 TAU 定时器模块的输出功能。
(三) 打开定时器模块
在工程左侧找到【Timer】模块,点击后即可进入该模块。
(四) 配置一路 PWM 输出
在【Timer】模块中,点击 TAU0 (也可以是其他定时器,本次以 TAU0 示例),配置 Channel 0 为 matser,Channel 1 为 salve 输出,点击分配引脚。需要注意的是,master 必须要跟一个 slave 才能正常工作。
(五) 设置 PWM 参数
配置完后可以去设置对应 slave 通道的占空比等参数。
(六) 生成代码
点击【Generate Code】按钮即可生成代码,在 code generator 的模块中,对应的驱动已生成,只需要调用就可以使用。
三、常见问题和解决经验参考
问题1:为什么有的通道只能设置成 master,有的只能设置成 slave?
如下图 (图8),通道 0 可以设置成 master,但是不能设置成 slave,但是通道 1 只能设置成 salve,不能设置成 master,这是为什么?
这是因为 RL78/F13/F14 的 PWM 设定规则里面规定,master 只能用偶数通道 (这里需要注意的是,master 虽然只能从偶数通道设置,但是并不意味着,偶数通道只能设置成 master,偶数通道除 0 外,也可以设置成 salve),单数通道只能设置成 slave 的 PWM 输出。
问题2:想设置一个 master,带多个 slave 设置报错怎么办?
如下图 (图10),设置了 Channel 2 作为 master 后,想设置 Channel 3 和 Channel 4 作为 PWM 输出 slave,但是出现了红色叹号提示“please set only 1 salve”,怎么解决?
这是因为选项选择错误,【PWM output (master)】这个选项只能对应一路 slave,如果要设置一主多从,需要选择如下图 (图11) 所示【Multiple PWM output (master)】选项。这样设置后,Channe 2 后面的 3~7 通道其实都可以作为 salve 输出。slave 输出数目取决于通道数量 (除去 0 通道),最多可达 7 路 slave。
另外,如果选择了【PWM output (master)】模式,至少需要选择 2 路 slave,否则会报错。
问题3:从通道是否可以设置 Cycle value?
不可以。从通道只能改变占空比等选项 (即在 CS+ 界面中有的那些配置),PWM 的 Cycle value 是由 master 通道决定的,如果多个 slave 跟着一个 matser,则多个 slave 共享一个 master。如下图 (图13) 所示:
问题4:Master 和 Slave 占用实际引脚的情况是怎样的?
在 RL78 的 PWM 设置中,其实只有 slave 是占用实际物理引脚的,master 只是作为一种内部 cycle value 等控制,虽然也标记了一个 Channel,但是实际上并不占用管脚。所以在进行引脚管理的时候,不需要刻意留一个引脚给到 master 用。如下图 (图14),设置了 3 个 slave 和一个 master,点击分配引脚按钮后,会发现实际上就只分配了三个引脚,因为 master 不算在里面。
问题5:为什么有时候选择了一路 master 后,对应的通道无 salve0 选项?
这种情况大概率是因为对应的引脚被其他功能占用了,系统才会标记灰色。解决方式有两个:
1. 点击对应的灰色的 Channel 的选项,下方的【output】界面会出现提示,如图 16 的提示就是本引脚已经被 TRDIOD1 功能占用,无法作为当下功能使用。如果一定要使用该引脚的话,需要权衡一下是否要在该引脚上换掉 TRDIO01 功能以改为当前需要的功能。对应的操作是找到 TRDIOD1 的界面,将其设置为【unused】即可,如下图 (图17) 所示。
2. 如果不想改动原来已占用对应引脚的 TRDIOD1 功能,也可以选择其他空闲通道作为 slave。如图 18 所示,在 1,2,3 通道都占用的情况下,salve 4 正好是空的,所以 master0 可以和 slave4 组合。
四、总结
以上就是在 CS+ 中,RL78/F13 的 PWM 模块的快速配置操作,以及常见问题的分享。使用 CS+ 进行代码驱动生成和配置,可以快速搭建项目,加快开发进度。
欲了解关于更多瑞萨相关方案或技术信息,请与骏龙科技当地的办事处联系或点击下方「联系我们」,提交您的需求,骏龙科技公司愿意为您提供更详细的技术解答。
参考链接
RL78/F13 - Microcontrollers with Low Consumption Current for Automotive Applications | Renesas
更多信息: