AD轉(zhuǎn)換時間指的是完成一次AD轉(zhuǎn)換所需的時間,即從啟動信號開始到轉(zhuǎn)換結(jié)束并得到穩(wěn)定的數(shù)字輸出量所需要的時間。
從RA2L1硬件手冊(R01UH0853EJ0130)第1067頁的電氣特性“Table 41.35 A/D conversion characteristics (1) in high-speed A/D conversion mode (2 of 2) ”中的內(nèi)容,看到RA2L1的AD轉(zhuǎn)換時間在對應(yīng)的測試條件下最小值為0.67us。
那么如果用戶測試AD轉(zhuǎn)換時間,是否能得到跟硬件手冊中電氣特性的最小AD conversion time (0.67us) 一樣的結(jié)果呢?
基于上述問題,我們從理論和實際兩方面做了分析和測試。
理論分析
首先,基于RA2L1硬件手冊中Figure 30.25和Figure 30.26, 單次掃描模式下所選通道數(shù)為n的掃描轉(zhuǎn)換時間(tSCAN)可按如下方式確定:
tSCAN = tD + tDIS × n + tDIAG + tED + tCONV × n
tSCAN: 掃描轉(zhuǎn)換時間
tD: 開始掃描延遲時間
tDIS: 斷線檢測輔助處理時間
tDIAG 和 tDSD: 自診斷A/D轉(zhuǎn)換處理時間
tCONV: A/D轉(zhuǎn)換處理時間
tED: 結(jié)束掃描延遲時間
另外,參考“Table 41.35 A/D conversion characteristics (1) in high-speed A/D conversion mode (2 of 2) ”中Note 1的內(nèi)容,轉(zhuǎn)換時間是采樣時間和比較時間的總和。也就是說,這里的轉(zhuǎn)換時間指的僅僅是tCONV,而并非掃描轉(zhuǎn)換時間tSCAN。測試的話測量的是掃描轉(zhuǎn)換時間,所以不能以“最小0.67us” 這個數(shù)值作為參考。
接下來,我們先從理論上計算一下如何獲得掃描轉(zhuǎn)換時間的最小值。參考RA2L1硬件手冊,選取公式中每一項的最小值和其對應(yīng)的條件。
tSCAN = tD + tDIS × n + tDIAG + tED + tCONV × n
tD = 2 PCLKB + 4 ADCLK: All other, Synchronous trigger. But this does not include the time consumed in the path from timer output to trigger input.
tDIS = 0: Setting in ADNDIS[3:0] (initial value = 0x00) × ADCLK
tDIAG = 0: DIAGST[1:0] = 00 (Self-diagnosis not executed after power-on.)
tCONV = 0.67us:Operation at PCLKD = 48 MHz, High-precision channel, ADCSR.ADHSC = 0, ADSSTRn.SST[7:0] = 0x0A, ADACSR.ADSAC = 1
tED = 2 PCLKB + 3 ADCLK: PCLKB to ADCLK frequency ratio = 1:2
從而確定測試條件為:PCLKD (ADCLK) = 48MHz、PCLKB = 24MHz(PCLKB不能超過32MHz)、快速轉(zhuǎn)換模式、高速A/D轉(zhuǎn)換模式、AN000(高精度通道)、不使用自診斷。
基于以上測試條件,計算AD掃描轉(zhuǎn)換時間的理論值為:
實際測試
對照著AD掃描轉(zhuǎn)換時間的理論值為0.90us,進(jìn)行了以下3個測試:
1
使用GPT+ELC+ADC+中斷方式進(jìn)行測試
● GPT:設(shè)置周期為50ms,允許GTIOC0A輸出
● ELC:設(shè)置GPT的計數(shù)值發(fā)生Overflow時觸發(fā)AD轉(zhuǎn)換
● ADC:設(shè)置為Single Scan模式,選擇Channel 0,允許掃描完成時產(chǎn)生中斷,在中斷Callback函數(shù)中翻轉(zhuǎn)端口(P301:H→L)
通過以上波形,可以得到實際測試結(jié)果為7.31us。根據(jù)測試情況進(jìn)行分析,這個時間包括了中斷響應(yīng)時間和端口執(zhí)行時間。
采用在中斷中翻轉(zhuǎn)端口測量ADC轉(zhuǎn)換時間,結(jié)果較理論值長很多,接下來使用DTC來翻轉(zhuǎn)端口。
2
使用GPT+ELC+ADC+DTC方式進(jìn)行測試
● GPT:設(shè)置周期為50ms,允許GTIOC0A輸出
● ELC:設(shè)置GPT的計數(shù)值發(fā)生Overflow時觸發(fā)AD轉(zhuǎn)換
● ADC:設(shè)置為Single Scan模式,選擇Channel 0,允許掃描完成時產(chǎn)生中斷
● DTC:觸發(fā)源為每次ADC掃描結(jié)束,進(jìn)行DTC傳送,即翻轉(zhuǎn)IO口(P301:H→L)
通過以上波形,可以得到實際測量結(jié)果為1.36us (VS理論值0.67us)。根據(jù)測試情況進(jìn)行分析,這個時間包括DTC的響應(yīng)時間和端口執(zhí)行時間。
單獨測試端口執(zhí)行時間,大概為0.21us。
采用單次轉(zhuǎn)換測量ADC轉(zhuǎn)換時間,結(jié)果較理論值偏長,接下來使用多次轉(zhuǎn)換測量總時間,用來消除端口翻轉(zhuǎn)時間的影響。
3
使用GPT+ELC+ADC+DTC方式(500次)進(jìn)行測試
● GPT:設(shè)置周期為50ms,允許GTIOC0A輸出
● ELC:設(shè)置GPT的計數(shù)值發(fā)生Overflow時觸發(fā)AD轉(zhuǎn)換
● ADC:設(shè)置為Continuous Scan模式,選擇Channel 0,允許掃描完成時產(chǎn)生中斷
● DTC:觸發(fā)源為每次ADC掃描結(jié)束,進(jìn)行一次DTC傳送,500次傳送后,在中斷Callback函數(shù)中,翻轉(zhuǎn)IO口(P301:H→L)
通過以上波形,可以得到實際測量結(jié)果為337.31us/500 = 0.67us (=理論值)。根據(jù)測試情況進(jìn)行分析,這個時間包括DTC的響應(yīng)時間、中斷響應(yīng)時間和端口執(zhí)行時間。
這個測試結(jié)果和理論值相符,因為這個時間還包括DTC的響應(yīng)時間、中斷響應(yīng)時間和端口執(zhí)行時間,所以可以推斷實際測量結(jié)果優(yōu)于電氣特性中內(nèi)容。
測試代碼請點擊文末閱讀原文或通過以下鏈接下載:(復(fù)制網(wǎng)址到瀏覽器中打開)
https://gitee.com/recn-mcu-ae/ra2-l1-ad-conversion-time
最后,總結(jié)一下AD轉(zhuǎn)換時間的計算和測量。
● 手冊中的“0.67 μs/channel”僅僅是采樣時間和比較時間的總和,并非一個通道的全部掃描轉(zhuǎn)換時間。
● 在實測③的情況下,我們可以得到比較理想并且合理的結(jié)果,一次AD掃描轉(zhuǎn)換時間大概為0.67us。
● 使用FSP自動生成代碼的情況下,中斷響應(yīng)時間是比較長的,所以建議采用DTC傳送數(shù)據(jù),或者客戶采用自己的ADC中斷響應(yīng)函數(shù)。
審核編輯:劉清
-
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2000瀏覽量
61155 -
AD轉(zhuǎn)換
+關(guān)注
關(guān)注
3文章
168瀏覽量
45314 -
GPT
+關(guān)注
關(guān)注
0文章
354瀏覽量
15373 -
DTC控制
+關(guān)注
關(guān)注
0文章
18瀏覽量
1173
原文標(biāo)題:AD轉(zhuǎn)換時間的理論推算與測量
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論