电子产业一站式赋能平台

PCB联盟网

搜索
查看: 68|回复: 0
收起左侧

RA2单片机定时器带死区互补PWM中断延时问题

[复制链接]

418

主题

418

帖子

4293

积分

四级会员

Rank: 4

积分
4293
发表于 2024-11-5 17:31:00 | 显示全部楼层 |阅读模式
关注+星标公众,不错过精彩内容
直接来源 | 瑞萨嵌入式小百科
概述:本次测试用的是RA生态工作室提供的R7FA2E1A72DFL demo板,控制定时器输出互补的带死区PWM,并通过中断触发一对IO口的电平切换。
问题:为什么使用GPT输出带死区的互补PWM,进入比较匹配中断后会有一小段延时才开始执行callback。
分析:触发中断后没有马上执行逻辑操作,在底层耗时太长。
使用e2 studio配置工程分析现象
1
GPT模块的设置
时钟框图如下,GPT0是32位定时器,GPT4、GPT5、GPT6、GPT7、GPT8和GPT9是16位定时器。

ub2zsp0tyii640104281519.png

ub2zsp0tyii640104281519.png

图1 GPT框图

2
配置工程时需要注意对应通道是0,4,5,6,7,8,9,没有1,2,3。
配置过程:
timer7,P302->GTIOC7A,P301->GTIOC7B,20kHz,duty=50%,打开Capture A Interrupt(compare match A),输出互补同步三角波pwm,死区设1us。

cvxhv3lclm5640104281619.png

cvxhv3lclm5640104281619.png

图2 GPT配置

3
配置IO口在callback进行翻转

bxvyaigpbxd640104281719.png

bxvyaigpbxd640104281719.png

图3 在timer7_callback触发IO翻转
现象如下:
A:死区时间AB设定为1us,1,2通道为GTIOC7A(P302)和GTIOC7B (P301)
B:触发比较匹配中断后,翻转3(P103)通道和4(P104)通道的电平
从触发中断到完成3,4通道电平翻转的时间AC为3.3us。

z5bfz5wlcd1640104281819.png

z5bfz5wlcd1640104281819.png

图4 定时器中断触发IO翻转时间
分析——使用GPT输出带死区的互补PWM,进入比较匹配中断后会有一小段时间的延时才开始执行电平翻转:
a:通过操作寄存器完成翻转的时间为350ns,因此排除操作IO口占用时间的因素
b:在callback中完成电平翻转需要3.3us

4
为了缩短时间,把IO翻转改到gpt_capture_a_isr中执行,不在r_gpt_call_callback中执行IO翻转,

3hgu1gdelht640104281919.png

3hgu1gdelht640104281919.png

图5 gpt_capture_a_isr

dhzmjjgecmx640104282019.png

dhzmjjgecmx640104282019.png

图6 触发中断到完成IO翻转时间为AC:1.22us

结论

uvn2mjuo4do640104282119.png

uvn2mjuo4do640104282119.png

因为执行r_gpt_call_callback前后还需要执行一段代码,执行底层耗时过长,因此把callback改为NULL,然后在ISR底层中执行R_PORT1->PCNTR3_b.POSR,是目前测试时间最短的操作了。

------------ END ------------

ivzea5klq5x640104282219.jpg

ivzea5klq5x640104282219.jpg

Modbus的学习路径及技术要点

vcholge5ysf640104282319.jpg

vcholge5ysf640104282319.jpg

MPU使用GCC编译的过程

ztp5wz13rq2640104282419.jpg

ztp5wz13rq2640104282419.jpg

单片机和PHY芯片连接时的注意事项
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表