文章来源 Cytech Engineer

瑞萨 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】即可出现新工程。

图1 新建工程操作
图1 新建工程操作

(二) 分配引脚和引脚功能映射

在 RL78 的新工程建立时,必须在 pin assignment 界面分配管脚的功能。分配好后点击【Fix】,再点击【Reflect in Pin】,系统会初步分配一些基本功能到特定的 Pin 脚上。其中 T01、TRDIOB0 等功能其实都是定时器模块的功能,可以用这些功能所在的管脚作为 PWM 输出。TO00、TO01 等,就是本次示范的 TAU 定时器模块的输出功能。

图2 引脚分配操作
图2 引脚分配操作
图3 引脚分配提示
图3 引脚分配提示

(三) 打开定时器模块

在工程左侧找到【Timer】模块,点击后即可进入该模块。

图4 定时器界面
图4 定时器界面

(四) 配置一路 PWM 输出

在【Timer】模块中,点击 TAU0 (也可以是其他定时器,本次以 TAU0 示例),配置 Channel 0 为 matser,Channel 1 为 salve 输出,点击分配引脚。需要注意的是,master 必须要跟一个 slave 才能正常工作。

图5 配置一路 PWM 输出操作
图5 配置一路 PWM 输出操作

(五) 设置 PWM 参数

配置完后可以去设置对应 slave 通道的占空比等参数。

图6 Channel 1 slave 的参数配置界面
图6 Channel 1 slave 的参数配置界面

(六) 生成代码

点击【Generate Code】按钮即可生成代码,在 code generator 的模块中,对应的驱动已生成,只需要调用就可以使用。

图7 生成 PWM 驱动代码
图7 生成 PWM 驱动代码

   

三、常见问题和解决经验参考

问题1:为什么有的通道只能设置成 master,有的只能设置成 slave?

如下图 (图8),通道 0 可以设置成 master,但是不能设置成 slave,但是通道 1 只能设置成 salve,不能设置成 master,这是为什么?

这是因为 RL78/F13/F14 的 PWM 设定规则里面规定,master 只能用偶数通道 (这里需要注意的是,master 虽然只能从偶数通道设置,但是并不意味着,偶数通道只能设置成 master,偶数通道除 0 外,也可以设置成 salve),单数通道只能设置成 slave 的 PWM 输出。

图8 Channel 0 功能配置选项界面
图8 Channel 0 功能配置选项界面
图9 Channel 1 的功能配置选项界面
图9 Channel 1 的功能配置选项界面

问题2:想设置一个 master,带多个 slave 设置报错怎么办?

如下图 (图10),设置了 Channel 2 作为 master 后,想设置 Channel 3 和 Channel 4 作为 PWM 输出 slave,但是出现了红色叹号提示“please set only 1 salve”,怎么解决?

图10 please set only 1 slave 警告
图10 please set only 1 slave 警告

这是因为选项选择错误,【PWM output (master)】这个选项只能对应一路 slave,如果要设置一主多从,需要选择如下图 (图11) 所示【Multiple PWM output (master)】选项。这样设置后,Channe 2 后面的 3~7 通道其实都可以作为 salve 输出。slave 输出数目取决于通道数量 (除去 0 通道),最多可达 7 路 slave。

另外,如果选择了【PWM output (master)】模式,至少需要选择 2 路 slave,否则会报错。

图11 【Multiple PWM output (master)】选项
图11 【Multiple PWM output (master)】选项
图12 一主多从设置
图12 一主多从设置

问题3:从通道是否可以设置 Cycle value?

不可以。从通道只能改变占空比等选项 (即在 CS+ 界面中有的那些配置),PWM 的 Cycle value 是由 master 通道决定的,如果多个 slave 跟着一个 matser,则多个 slave 共享一个 master。如下图 (图13) 所示:

图13 PWM maser 配置界面
图13 PWM maser 配置界面

问题4:Master 和 Slave 占用实际引脚的情况是怎样的?

在 RL78 的 PWM 设置中,其实只有 slave 是占用实际物理引脚的,master 只是作为一种内部 cycle value 等控制,虽然也标记了一个 Channel,但是实际上并不占用管脚。所以在进行引脚管理的时候,不需要刻意留一个引脚给到 master 用。如下图 (图14),设置了 3 个 slave 和一个 master,点击分配引脚按钮后,会发现实际上就只分配了三个引脚,因为 master 不算在里面。

图14 slave 引脚分配提示
图14 slave 引脚分配提示

问题5:为什么有时候选择了一路 master 后,对应的通道无 salve0 选项?

图15 无法选择 PWM out (slave)
图15 无法选择 PWM out (slave)

这种情况大概率是因为对应的引脚被其他功能占用了,系统才会标记灰色。解决方式有两个:

1. 点击对应的灰色的 Channel 的选项,下方的【output】界面会出现提示,如图 16 的提示就是本引脚已经被 TRDIOD1 功能占用,无法作为当下功能使用。如果一定要使用该引脚的话,需要权衡一下是否要在该引脚上换掉 TRDIO01 功能以改为当前需要的功能。对应的操作是找到 TRDIOD1 的界面,将其设置为【unused】即可,如下图 (图17) 所示。

图16 点击灰色的选项提示报错
图16 点击灰色的选项提示报错
图17 unused TMRD0 功能
图17 unused TMRD0 功能

2. 如果不想改动原来已占用对应引脚的 TRDIOD1 功能,也可以选择其他空闲通道作为 slave。如图 18 所示,在 1,2,3 通道都占用的情况下,salve 4 正好是空的,所以 master0 可以和 slave4 组合。

图18 选择其他的 Channel
图18 选择其他的 Channel

   

四、总结

以上就是在 CS+ 中,RL78/F13 的 PWM 模块的快速配置操作,以及常见问题的分享。使用 CS+ 进行代码驱动生成和配置,可以快速搭建项目,加快开发进度。

欲了解关于更多瑞萨相关方案或技术信息,请与骏龙科技当地的办事处联系或点击下方「联系我们」,提交您的需求,骏龙科技公司愿意为您提供更详细的技术解答。

 

参考链接

RL78/F13 - Microcontrollers with Low Consumption Current for Automotive Applications | Renesas

更多信息: