瑞萨e2studio----定时器AGT配置PWM输出

1.概述      
     本篇文章主要介绍如何使用e2studio对瑞萨单片机进行定时器agt配置pwm输出。
2.硬件准备   
     首先需要准备一个开发板,这里我准备的是芯片型号 r7fa2l1ab2dfl 的开发板。
3.新建工程
4.工程模板
5.保存工程路径
6.芯片配置     
    本文中使用r7fa2l1ab2dfl来进行演示。 
7
   7.工程模板选择
8.选择定时器
时钟源在这设置的是pclkb 24m 。    可以通过修改该频率来修改占空比频率。
9.pwm(脉冲宽度调制)     
    脉冲宽度调制是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或mos管栅极的偏置,来实现晶体管或mos管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。    在瑞萨ra系列mcu中有两种定时器,一种是通用pwm定时器gpt,另外一种是异步通用定时器agt。    频率=主频/period    +占空比=cycle/period
10.定时器管脚配置      
     通过点击需要配置的管脚,选择agtoa即可配置。
11.定时器配置     
点击stacks->new stack->driver->timers->timer driver on r_agt。
12.定时器agt配置
13.r_agt_open()函数原型     
    故可以用 r_agt_open()函数进行初始化时器模块并应用配置。 
/* initializes the module. */ err = r_agt_open(&g_timer0_ctrl, &g_timer0_cfg); /* handle any errors. this function should be defined by the user. */ assert(fsp_success == err);
14.r_agt_start()函数原型     
    故可以用r_agt_start()函数进行开启定时器。 
/* start the timer. */ (void) r_agt_start(&g_timer0_ctrl); 
15.r_agt_periodset()函数原型     
    频率=时钟源/period,若设置频率为10k,则period=24m/10k=2400 
err = r_agt_periodset(&g_timer0_ctrl, 2400);//频率assert(fsp_success == err);r_bsp_softwaredelay (20, bsp_delay_units_milliseconds);//不加延时可能会设置不成功
16.r_agt_dutycycleset()函数原型     
    +占空比=cycle/period,若设置agtoa占空比为50%,则cycle= +占空比* period=50%*2400=1200,若设置agtob占空比为30%,则cycle= +占空比* period=30%*2400=720 
err = r_agt_dutycycleset(&g_timer0_ctrl, 1200, agt_output_pin_agtoa);//占空比assert(fsp_success == err);err = r_agt_dutycycleset(&g_timer0_ctrl, 720, agt_output_pin_agtob);//占空比assert(fsp_success == err);
17.r_agt_reset()函数原型      
     将计数器值重置为 0。 
err = r_agt_reset(&g_timer0_ctrl); assert(fsp_success == err);
18.r_agt_close()函数原型      
     关闭定时器agt。 
(void) r_agt_close(&g_timer0_ctrl);
19.工程文件      
     打开hal_entry.c,可以看到在hal_entry函数内,注释着可以在这输入自己的代码。 
    打开hal_entry.c,可以看到在hal_entry函数内,注释着可以在这输入自己的代码。
20.agt定时器管脚输出状态      
     在agt定时器配置中,有一个agto输出管脚,该管脚在周期结束时候会进行翻转电平,故占空比应该是50%, agto输出管脚频率是设定频率的一般。    黄色为agtoa输出的信号,为e2studio配置的2k频率,60%占空比。    蓝色为agto输出的信号,频率刚好为2k的一半,为1k,占空比为50%。    在agt定时器配置中,有配置agtoa/agtob输出管脚的电平,该设置是在输出启动时或者关闭时候的电平状态。void hal_entry(void){ /* todo: add your own code here */ fsp_err_t err = fsp_success; /* initializes the module. */ err = r_agt_open(&g_timer0_ctrl, &g_timer0_cfg); /* handle any errors. this function should be defined by the user. */ assert(fsp_success == err); r_bsp_softwaredelay (5, bsp_delay_units_milliseconds); /* start the timer. */ (void) r_agt_start(&g_timer0_ctrl); r_bsp_softwaredelay (5, bsp_delay_units_milliseconds); (void) r_agt_close(&g_timer0_ctrl);#if bsp_tz_secure_build /* enter non-secure code */ r_bsp_nonsecureenter();#endif}
黄色波形为agtob管脚的信号,设置为start level high,故在开启agt时候电平就被置为高,而在关闭agt的时候,电平也是被置为高。    蓝色波形为agtoa管脚的信号,设置为start level low,故在开启agt时候电平就被置为低,而在关闭agt的时候,电平也是被置为低。    黄色波形为agtob管脚的信号,设置为start level high,故在输出pwm时候,高电平时间为0~duty_cycle_counts。    蓝色波形为agtoa管脚的信号,设置为start level low,故在输出pwm时候,高电平时间为(timer_period_t::counts - duty_cycle_counts) ~ (timer_period_t::counts)。
21.agt定时器修改pwm输出频率以及占空比      
     通过 r_agt_periodset ()可以修改频率,通过r_agt_dutycycleset()可以修改占空比,修改频率为10k,其中agtoa的占空比为50%, agtob的占空比为30%。 
void hal_entry(void){ /* todo: add your own code here */ fsp_err_t err = fsp_success; /* initializes the module. */ err = r_agt_open(&g_timer0_ctrl, &g_timer0_cfg); /* handle any errors. this function should be defined by the user. */ assert(fsp_success == err); /* start the timer. */ (void) r_agt_start(&g_timer0_ctrl); err = r_agt_periodset(&g_timer0_ctrl, 2400);//频率 assert(fsp_success == err); r_bsp_softwaredelay (20, bsp_delay_units_milliseconds);//不加延时可能会设置不成功 err = r_agt_dutycycleset(&g_timer0_ctrl, 1200, agt_output_pin_agtoa);//占空比 assert(fsp_success == err); err = r_agt_dutycycleset(&g_timer0_ctrl, 720, agt_output_pin_agtob);//占空比 assert(fsp_success == err);#if bsp_tz_secure_build /* enter non-secure code */ r_bsp_nonsecureenter();#endif} 
    可以看到,输出频率为10k,其中黄色波形为agtob输出的波形,占空比为30%,蓝色波形为agtoa输出的波形,占空比为50% 。
22.视频教学      
 视频教学稍后会在b站官方账号更新,请留意b站视频更新~
原创:by ra_billy xiao
原文标题:瑞萨e2studio----定时器agt配置pwm输出
文章出处:【微信公众号:ra生态工作室】欢迎添加关注!文章转载请注明出处。

汽车胎压监测系统发射模块设计
英飞凌售出超过25亿颗移动终端用LNA(低噪声放大器)
探析硅光学技术的原理、种类及优势
数字输入端口逻辑电路的设计及应用分析
人工智能的漏洞及时发现和纠正,有赖于科技政策和机制的进一步规范
瑞萨e2studio----定时器AGT配置PWM输出
HR050位移传感器的一些特性
基于脉冲宽度调制的LED驱动电路
案例分享 | 汽车电机控制箱螺钉浮高检测
泡沫隐现 英伟达的人工智能神话面临终结
VR体验店,赛车模拟器给你最真实的赛车体验
飞腾嵌入式赋能培训深圳站成功举行
坚果Pro强势来袭:指纹识别前置/双摄 高配版超劲爆
PIC WWVB时钟设计
人工智能技术在电力监控系统方面的应用
华为高通的握手言和,让人们又看到产业界合作发展、共同前进的曙光
买不起VR相机? 没关系现在可以租Jaunt ONE!
恩智浦半导体倾心推出i.MX 8M系列应用处理器
2018年的顶尖编程语言 Python 为后起之秀
十款高续航低延迟蓝牙耳机推荐,助你选择不再迷茫