欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 【瑞萨 RA-Eco-RA2E1-48PIN-V1.0 开发板测评】PWM

【瑞萨 RA-Eco-RA2E1-48PIN-V1.0 开发板测评】PWM

2025/4/6 12:39:51 来源:https://blog.csdn.net/qq_36654593/article/details/147017234  浏览:    关键词:【瑞萨 RA-Eco-RA2E1-48PIN-V1.0 开发板测评】PWM

【瑞萨 RA-Eco-RA2E1-48PIN-V1.0 开发板测评】PWM

本文介绍了瑞萨 RA2E1 开发板使用内置时钟和定时器实现 PWM 输出以及呼吸灯的项目设计。

项目介绍

介绍了 PWM 和 RA2E1 的 PWM 资源。

PWM

脉冲宽度调制(Pulse Width Modulation, PWM)是一种对模拟信号电平进行数字编码的方法。

在这里插入图片描述

PWM 的工作原理是通过调节脉冲信号的占空比(即高电平持续时间与整个周期的比值)来控制输出信号的平均电压或平均功率。

特点
  • 高效性:在调节功率时,PWM方式避免了传统线性调节方式中电阻发热造成的能量损耗,能将大部分能量有效地传递到负载,效率通常可达80% - 90%以上。
  • 精确控制:可以通过微处理器或专用的PWM控制器,精确地控制脉冲的宽度和频率,实现对电机转速、灯光亮度等物理量的精确调节。
  • 抗干扰能力强:数字信号相比模拟信号具有更强的抗干扰能力,PWM信号在传输过程中不易受到噪声干扰,能够保证控制信号的准确性。
应用领域
  • 电机控制:广泛应用于直流电机和步进电机的调速控制。通过改变PWM信号的占空比,可以轻松地调节电机两端的平均电压,从而控制电机的转速。
  • 电源管理:在开关电源中,PWM技术用于控制功率开关管的导通和关断,实现对输出电压的稳定调节。此外,还可用于电池充电管理,根据电池的充电状态调整充电电流和电压。
  • 音频处理:在音频功率放大器中,利用PWM技术将音频信号调制为高频脉冲信号,通过低通滤波器还原出音频信号,可提高音频放大器的效率和音质。
  • LED照明:用于调节LED灯的亮度。通过改变PWM信号的占空比,可以精确地控制LED灯的发光强度,实现节能和调光的目的。

RA2E1的PWM资源

瑞萨RA2E1的PWM资源主要与定时器相关,具体如下:

  • 32位通用PWM定时器(GPT32):1个,GPT 模块是一个高精度定时器,可用于计数事件、测量外部输入信号、生成周期性中断,或输出周期性信号/PWM 信号到 GTIOC 引脚。它使用PCLKD(外设时钟D)作为主时钟源,该时钟可以通过可配置的分频器进行调整,最大分频因子为1024;
  • 16位通用PWM定时器(GPT16):6个,可用于多种定时和 PWM 相关的应用。每个计数器支持递增计数或递减计数(锯齿波)或递增/递减计数(三角波),每个通道可选择独立时钟源,可控制两个I/O引脚,还可以在每个输入路径上设置噪声滤波器,每个通道有两个输出比较/输入捕捉寄存器及四个缓冲寄存器;
  • 低功耗异步通用定时器(AGT):2个,AGT 模块也提供灵活的计时和事件捕获功能,支持16位和32位定时器,并具有多种工作模式,适用于需要高精度时间控制和事件捕获的应用。

本文介绍了瑞萨 RA-Eco-RA2E1-48PIN-V1.0 开发板使用内置时钟和 GPT 定时器实现 PWM 输出以及呼吸灯的项目设计流程。

新建工程

在安装 e2 studio 软件和 FSP 软件包的基础上,新建项目工程

打开 e2 studio 软件,依次点击 文件 - 新建 - 瑞萨 C/C++ 项目 - Renesas RA

依次进行工程命名,路径设置,FSP版本,目标开发板选择,Device 选择 R7FA2E1A72DFL ,工具链选择 GNU ARM Embedded

点击 Generate 完成工程创建。

定时器

根据原理图可知,2 个板载 LED 控制引脚为 P103 和 P104(这里选择 P104 作为 PWM 输出引脚进行配置)

在这里插入图片描述

引脚配置

进入 FSP 配置 界面,依次选择 Pins 标签 - GPIO-P104 - 可视化引脚界面;

进入 FSP 芯片视角,右键目标 PWM 输出引脚 P104,选择 GTIOCB 输出;

依次进入 Pin Selection - Timers:GPT - GPT4 - Pin Configuration - Input/Output - 使能定时器对应的引脚输出;

在这里插入图片描述

时钟配置

在这里插入图片描述

PWM堆栈

FSP Configuration - Stacks - 新建堆栈(New Stacks) - 定时器(Timer) - 通用 PWM

在这里插入图片描述

选中新建的 PWM 堆栈,在属性标签中设置参数,开启引脚输出、PWM频道、周期、占空比、使能 GTIOCA 或 GTIOCB 引脚输出等。

生成工程

配置完成后,点击 Generate Project Content 输出相应的工程代码。

代码

打开左侧的工程文件 src/hal_entry.c ,在主函数中添加如下代码

void hal_entry(void)
{/* TODO: add your own code here */fsp_err_t err = FSP_SUCCESS;/* Initializes the module. */err = R_GPT_Open(&g_timer4_ctrl, &g_timer4_cfg);/* Handle any errors. This function should be defined by the user. */assert(FSP_SUCCESS == err);/* Start the timer. */(void) R_GPT_Start(&g_timer4_ctrl);R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);/* Setting PWM period, clock frequency 48MHz, then pwm frequency is 48MHz/4800 = 10kHz*/err = R_GPT_PeriodSet(&g_timer4_ctrl, 4800);//频率/* Check period setting*/assert(FSP_SUCCESS == err);R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);//不加延时可能会设置不成功/* breath LED */uint16_t duty_cycle = 0; // 占空比初始值int8_t direction = 1; //while(1){/* 设置PWM占空比 */err = R_GPT_DutyCycleSet(&g_timer4_ctrl, duty_cycle, GPT_IO_PIN_GTIOCB);assert(FSP_SUCCESS == err);R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);/* 更新占空比 */duty_cycle += (uint16_t) (direction * 400); // 需要强制类型转换if (duty_cycle >= 4800){duty_cycle = 4800;direction = -1;}else if (duty_cycle <= 0){duty_cycle = 0;direction = 1;}R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS); //20ms变化一次}
#if BSP_TZ_SECURE_BUILD/* Enter non-secure code */R_BSP_NonSecureEnter();
#endif
}

保存并构建工程 - 调试工程。

效果

修改代码中的 duty_cycle += (uint16_t) (direction * 400) 占空比增量,即可实现呼吸灯的速度控制。

在这里插入图片描述

使用示波器查看输出的 PWM 波形

在这里插入图片描述

可知 PWM 频率为 10kHz,占空比随时间在 0 到 1 之间连续变化。

示波器项目详见:基于地阔星STM32F103C8T6的示波器扩展板 - 立创开源硬件平台

总结

本文介绍了瑞萨 RA2E1 开发板使用内置时钟和定时器实现 PWM 输出以及呼吸灯的项目设计,包括方案介绍、项目工程创建、定时器配置、PWM配置、代码解析、效果展示等,为相关项目的开发和应用设计提供了参考。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词