2.4 觸發(fā)源
●軟件觸發(fā)
●來自事件鏈接控制器(ELC)的同步觸發(fā)器
●由外部觸發(fā)引腳ADTRG0(單元0)和ADTRG1(單元1)異步觸發(fā)
2.5 ADC轉(zhuǎn)換時間
ADC時鐘
ADC輸入時鐘ADCLK由PCLKC經(jīng)過分頻產(chǎn)生,最大值是四分頻50MHz,PCLKA和PCLKC (ADCLK) 的分頻比可以設(shè)置為 1:1, 2:1, 4:1, 8:1, 1:2, 1:4。
ADC轉(zhuǎn)換時間
ADC允許的最大值頻率值是50MHz,使用50 MHz的時候12-bit轉(zhuǎn)換時間為0.4 μs。
2.6 數(shù)據(jù)寄存器
ADDRn寄存器是16位只讀寄存器,用于存儲AD轉(zhuǎn)換結(jié)果。
以下條件決定了AD數(shù)據(jù)寄存器中的數(shù)據(jù)格式:
● AD數(shù)據(jù)寄存器格式選擇位(ADCER.ADRFMT)的設(shè)置(左對齊或右對齊);
● AD轉(zhuǎn)換精度 選擇位(ADCER.ADPRC[1:0])中的設(shè)置(可選擇12位、10位、8位。);
●加法平均計數(shù)選擇位(ADADC.ADC[2:0])的設(shè)置(1、2、3、4或16次);
●設(shè)置平均模式啟用位(ADADC.AVEE)(加法或平均)。
未選擇AD轉(zhuǎn)換值加法平均模式時:
表40.5顯示了12位精度的位分配示例。
點(diǎn)擊可查看大圖
選擇AD轉(zhuǎn)換值平均模式時:
當(dāng)A/ D轉(zhuǎn)換值加法指定2次或4次時,可選擇A/D轉(zhuǎn)換值平均模式。這樣可以提高A/D轉(zhuǎn)換的有效位。
選擇AD轉(zhuǎn)換值相加模式時:
對于12位、10位、8位精度,可以在A/D轉(zhuǎn)換值相加模式中選擇1、2、3或4次。在該轉(zhuǎn)換精度下A/D轉(zhuǎn)換結(jié)果以2bit擴(kuò)展值存儲在A/D數(shù)據(jù)寄存器中。對于12位精度,在A/D轉(zhuǎn)換值相加模式中也可以選擇16次。在AD轉(zhuǎn)換值相加模式中,這些寄存器指示值,通過在特定通道上添加A/D轉(zhuǎn)換值獲得。A/D轉(zhuǎn)換結(jié)果以4bit擴(kuò)展值存儲在A/D數(shù)據(jù)寄存器中。
2.7 電壓轉(zhuǎn)換
模擬電壓經(jīng)過ADC轉(zhuǎn)換后,是一個12位的數(shù)字值,如果通過串口以16進(jìn)制打印出來的話,可讀性比較差,那么有時候我們就需要把數(shù)字電壓轉(zhuǎn)換成模擬電壓,也可以跟實(shí)際的模擬電壓(用萬用表測)對比,看看轉(zhuǎn)換是否準(zhǔn)確。
設(shè)計原理圖的時候會把ADC的輸入電壓范圍設(shè)定在:0~3.3v,這時需要將采樣的參考電壓硬件VREFH0/VREFL0引腳分別接到VCC和VSS上,因為ADC是12位的,那么12位滿量程對應(yīng)的就是3.3V,12位滿量程對應(yīng)的數(shù)字值是:2^12。數(shù)值0對應(yīng)的就是0V。如果轉(zhuǎn)換后的數(shù)值為 X對應(yīng)的模擬電壓為Y,那么會有這么一個等式成立:2^12 / 3.3 = X / Y , Y = (3.3 * X ) / 2^12。這樣便可以計算出對應(yīng)采樣的電壓值了。
三
實(shí)現(xiàn)程序設(shè)計
3.1 硬件設(shè)計
如下圖DEMO板上的ADC采樣原理圖P000端口連接在一個可調(diào)電位器上
3.2 軟件設(shè)計
1
新建工程
如上圖,1選擇板上對應(yīng)MCU型號,2處選擇工程類型:e2 studio / IAR / Keil,然后默認(rèn)下一步直到完成。
2
FSP配置
第一步選擇并配置時鐘,請確認(rèn)板子上的外部時鐘,當(dāng)板子上的外部時鐘為8M時,進(jìn)行選擇并按要求分配好對應(yīng)的時鐘。
依次點(diǎn)擊 “Stacks” -> “Pins”-> “Peripherals” ->“ADC0” 來配置通道AN000對應(yīng)的引腳為P000。如下圖所示:
然后依次點(diǎn)擊 “Stacks” ->“New Stack” -> “Analog” ->“ADC-DMAC Integration(r_adc)” 來配置ADC模塊。如下圖所示:
ADC的屬性配置:
勾選“Input” -> “Channel Scan Mask” -> “Channel 0” 通道0,并設(shè)置中斷函數(shù)名及優(yōu)先級。“Interrupts” -> “Callback” & “Scan End interrupt Priority”
DMAC的屬性設(shè)置:
設(shè)置中斷函數(shù)名及優(yōu)先級。
“Callback” & “Transfer End Interrupt Priority”
3
程序?qū)崿F(xiàn)
外設(shè)初始化:
●ADC初始化
R_ADC_Open()為整個外設(shè)設(shè)置操作模式、觸發(fā)源、中斷優(yōu)先級和配置。如果啟用了中斷,該函數(shù)將注冊一個回調(diào)函數(shù)指針,以便在掃描完成時通知用戶。
R_ADC_ScanCfg()配置ADC掃描參數(shù),通道特定設(shè)置是在這個函數(shù)中設(shè)置的。
●DMA初始化
R_DMAC_Open()初始化DMAC函數(shù)。
R_DMAC_Enable()使能DMAC中斷。
中斷處理函數(shù):
設(shè)置傳輸目的地址到DMA0_ADC0數(shù)據(jù)輸入寄存器,然后開始數(shù)據(jù)傳輸。
DMA傳輸完成,記錄傳輸次數(shù)。
hal_entry入口函數(shù):
點(diǎn)擊可查看大圖
達(dá)到設(shè)定次數(shù)ADC_count再求平均值,當(dāng)然DEMO也可以通過定時器進(jìn)行更為精準(zhǔn)的控制采樣的間隔。
總結(jié)
當(dāng)然DEMO還有更多要優(yōu)化的地方,這里只學(xué)習(xí)FSP配置基礎(chǔ)的功能樣例,若有陳述不嚴(yán)謹(jǐn)之處,歡迎大家指正。謝謝!
審核編輯:湯梓紅
-
寄存器
+關(guān)注
關(guān)注
31文章
5343瀏覽量
120383 -
adc
+關(guān)注
關(guān)注
98文章
6498瀏覽量
544680 -
瑞薩
+關(guān)注
關(guān)注
35文章
22309瀏覽量
86323 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2000瀏覽量
61159
原文標(biāo)題:基于RA6M4開發(fā)板在FSP上配置DMAC傳輸ADC采樣的方法(下)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論