概述
本次測(cè)試用的是RA生態(tài)工作室提供的R7FA2E1A72DFL demo板,控制定時(shí)器輸出互補(bǔ)的帶死區(qū)PWM,并通過(guò)中斷觸發(fā)一對(duì)IO口的電平切換。
問(wèn)題
為什么使用GPT輸出帶死區(qū)的互補(bǔ)PWM,進(jìn)入比較匹配中斷后會(huì)有一小段延時(shí)才開始執(zhí)行callback。
分析
觸發(fā)中斷后沒(méi)有馬上執(zhí)行邏輯操作,在底層耗時(shí)太長(zhǎng)。
操作
使用e2 studio配置工程分析現(xiàn)象
1、GPT模塊的設(shè)置
時(shí)鐘框圖如下,GPT0是32位定時(shí)器,GPT4、GPT5、GPT6、GPT7、GPT8和GPT9是16位定時(shí)器。
圖1 GPT框圖
2、配置工程時(shí)需要注意對(duì)應(yīng)通道是0,4,5,6,7,8,9,沒(méi)有1,2,3。
配置過(guò)程:
timer7,P302->GTIOC7A,P301->GTIOC7B,20kHz,duty=50%,打開Capture A Interrupt(compare match A),輸出互補(bǔ)同步三角波pwm,死區(qū)設(shè)1us。
圖2 GPT配置
3、配置IO口在callback進(jìn)行翻轉(zhuǎn)
圖3 在timer7_callback觸發(fā)IO翻轉(zhuǎn)
現(xiàn)象如下:
A:死區(qū)時(shí)間AB設(shè)定為1us,1,2通道為GTIOC7A(P302)和GTIOC7B (P301)
B:觸發(fā)比較匹配中斷后,翻轉(zhuǎn)3(P103)通道和4(P104)通道的電平
從觸發(fā)中斷到完成3,4通道電平翻轉(zhuǎn)的時(shí)間AC為3.3us。
圖4 定時(shí)器中斷觸發(fā)IO翻轉(zhuǎn)時(shí)間
分析——使用GPT輸出帶死區(qū)的互補(bǔ)PWM,進(jìn)入比較匹配中斷后會(huì)有一小段時(shí)間的延時(shí)才開始執(zhí)行電平翻轉(zhuǎn):
a:通過(guò)操作寄存器完成翻轉(zhuǎn)的時(shí)間為350ns,因此排除操作IO口占用時(shí)間的因素
b:在callback中完成電平翻轉(zhuǎn)需要3.3us
4、為了縮短時(shí)間,把IO翻轉(zhuǎn)改到gpt_capture_a_isr中執(zhí)行,不在r_gpt_call_callback中執(zhí)行IO翻轉(zhuǎn),
圖5 gpt_capture_a_isr
圖6 觸發(fā)中斷到完成IO翻轉(zhuǎn)時(shí)間為AC:1.22us
結(jié)論
因?yàn)閳?zhí)行r_gpt_call_callback前后還需要執(zhí)行一段代碼,執(zhí)行底層耗時(shí)過(guò)長(zhǎng),因此把callback改為NULL,然后在ISR底層中執(zhí)行R_PORT1->PCNTR3_b.POSR,是目前測(cè)試時(shí)間最短的操作了。
來(lái)源:瑞薩MCU小百科
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問(wèn)題,請(qǐng)聯(lián)系小編進(jìn)行處理
審核編輯 黃宇
-
PWM
+關(guān)注
關(guān)注
114文章
5198瀏覽量
214882 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3255瀏覽量
115371
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論