|
關(guān)注+星標(biāo)公眾號(hào),不錯(cuò)過精彩內(nèi)容
直接來源 | 瑞薩嵌入式小百科
概述:本次測(cè)試用的是RA生態(tài)工作室提供的R7FA2E1A72DFL demo板,控制定時(shí)器輸出互補(bǔ)的帶死區(qū)PWM,并通過中斷觸發(fā)一對(duì)IO口的電平切換。
問題:為什么使用GPT輸出帶死區(qū)的互補(bǔ)PWM,進(jìn)入比較匹配中斷后會(huì)有一小段延時(shí)才開始執(zhí)行callback。
分析:觸發(fā)中斷后沒有馬上執(zhí)行邏輯操作,在底層耗時(shí)太長(zhǎng)。
使用e2 studio配置工程分析現(xiàn)象
1
GPT模塊的設(shè)置
時(shí)鐘框圖如下,GPT0是32位定時(shí)器,GPT4、GPT5、GPT6、GPT7、GPT8和GPT9是16位定時(shí)器。
ub2zsp0tyii640104281519.png (66.53 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
ub2zsp0tyii640104281519.png
2024-11-7 07:02 上傳
圖1 GPT框圖
2
配置工程時(shí)需要注意對(duì)應(yīng)通道是0,4,5,6,7,8,9,沒有1,2,3。
配置過程:
timer7,P302->GTIOC7A,P301->GTIOC7B,20kHz,duty=50%,打開Capture A Interrupt(compare match A),輸出互補(bǔ)同步三角波pwm,死區(qū)設(shè)1us。
cvxhv3lclm5640104281619.png (239.37 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
cvxhv3lclm5640104281619.png
2024-11-7 07:02 上傳
圖2 GPT配置
3
配置IO口在callback進(jìn)行翻轉(zhuǎn)
bxvyaigpbxd640104281719.png (40.48 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
bxvyaigpbxd640104281719.png
2024-11-7 07:02 上傳
圖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。
z5bfz5wlcd1640104281819.png (87.47 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
z5bfz5wlcd1640104281819.png
2024-11-7 07:02 上傳
圖4 定時(shí)器中斷觸發(fā)IO翻轉(zhuǎn)時(shí)間
分析——使用GPT輸出帶死區(qū)的互補(bǔ)PWM,進(jìn)入比較匹配中斷后會(huì)有一小段時(shí)間的延時(shí)才開始執(zhí)行電平翻轉(zhuǎn):
a:通過操作寄存器完成翻轉(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),
3hgu1gdelht640104281919.png (173.68 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
3hgu1gdelht640104281919.png
2024-11-7 07:02 上傳
圖5 gpt_capture_a_isr
dhzmjjgecmx640104282019.png (87.6 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
dhzmjjgecmx640104282019.png
2024-11-7 07:02 上傳
圖6 觸發(fā)中斷到完成IO翻轉(zhuǎn)時(shí)間為AC:1.22us
結(jié)論
uvn2mjuo4do640104282119.png (1.63 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
uvn2mjuo4do640104282119.png
2024-11-7 07:02 上傳
因?yàn)閳?zhí)行r_gpt_call_callback前后還需要執(zhí)行一段代碼,執(zhí)行底層耗時(shí)過長(zhǎng),因此把callback改為NULL,然后在ISR底層中執(zhí)行R_PORT1->PCNTR3_b.POSR,是目前測(cè)試時(shí)間最短的操作了。
------------ END ------------
ivzea5klq5x640104282219.jpg (270.33 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
ivzea5klq5x640104282219.jpg
2024-11-7 07:02 上傳
Modbus的學(xué)習(xí)路徑及技術(shù)要點(diǎn)
vcholge5ysf640104282319.jpg (338.3 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
vcholge5ysf640104282319.jpg
2024-11-7 07:02 上傳
MPU使用GCC編譯的過程
ztp5wz13rq2640104282419.jpg (212.13 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
ztp5wz13rq2640104282419.jpg
2024-11-7 07:02 上傳
單片機(jī)和PHY芯片連接時(shí)的注意事項(xiàng) |
|