瑞萨FPB-RA6E2开发板概述
RA6E2快速原型开发板配备了R7FA6E2BB3CFM微控制器,是专门用于各种应用原型开发的评估板。它具有内置的SEGGER J-Link™仿真器电路,因此无需额外工具即可编写/调试程序。此外,通过Arduino Uno和Pmod™接口,包括对微控制器所有引脚的标准和通孔访问等,它具有很高的可扩展性。

PWM 的全称是脉冲宽度调制(Pulse Width Modulation),简称脉宽调制,通俗的讲就是调节脉冲的宽度。其原理是通过将有效的电信号分散成离散形式从而来降低电信号所传递的平均功率,根据面积等效法则,可以通过对改变脉冲的时间宽度,来等效地获得所需要合成的相应幅值和频率的波形。PWM 有着非常广泛的应用,比如直流电机控制、开关电源、逆变器等等。

通用 PWM 定时器(GPT,General PWM Timer)是 RA MCU 的其中一种 32/16 位的定时器外设。在 GPT 当中,可分为 GPT32 和 GPT16,它们最主要的区别是计数器的不同。GPT32 是 32 位的定时器,包含的计数器是 32 位的,所能计数的范围为:0 ~ 0xFFFF_FFFF;而 GPT16 是 16 位的定时器,包含的计数器是 16 位的,所能计数的范围为:0 ~ 0xFFFF。
定时器(Timer)最基本的功能就是定时,比如定时发送串口数据、定时采集 AD 数据、定时触发中断处理其它事务等等。如果把定时器与 GPIO 引脚结合起来使用的话可以实现更加丰富的功能,可以对输入信号进行计数,可以测量输入信号的脉冲宽度,可以输出单个脉冲、PWM 等波形,等等。通过定时器生成 PWM 波形信号来控制电机状态是工业控制的普遍方法,这方面知识非常值得深入了解。GPT 提供以下中断源:
• GTCCR 输入捕捉/比较匹配
• GTCNT 计数器上溢(超出 GTPR 设置的值)/下溢
• 周期计数功能完成
本设计在每个周期溢出时产生中断,进一步调节占空比,使用P213引脚作为PWM输出端口,生成动态可调节占空比的PWM波形:

设置定时器计数方式、周期值、引脚输出极性等:

设置中断回调函数和中断优先级:

启动定时器:
R_GPT_Open(&g_timer0_ctrl, &g_timer0_cfg);
R_GPT_Start(&g_timer0_ctrl);
编写回调函数,该函数在发生溢出中断时调用:
void pwm_adjust(timer_callback_args_t *p_args)
{static uint16_t duty_cycle_counts=5000;
if(duty_cycle_counts<50000)
duty\_cycle\_counts=duty\_cycle\_counts\+100;
else duty_cycle_counts=2000;
R\_GPT\_DutyCycleSet\(&g\_timer0\_ctrl, duty\_cycle\_counts, GPT\_IO\_PIN\_GTIOCA\);
}
最后给出调试结果:

|