4
本節(jié)學習如何添加外圍功能-AFE和DSAD,并進行設置,每1ms采集外部PT100的溫度值。
4.1 參考文檔r01an4788ej0110-rx23ee-a.pdf
4.2 打開Smart Configurator,Components標簽頁點擊“+”,F(xiàn)unction選擇“A/D Converter”,選擇“Analog Front End”。
4.3 點擊“Next”,點擊“Finish”。
4.4 設置AFE,PT100為三線RTD(電阻溫度檢測器),通過電流激勵能產(chǎn)生輸出電壓。
所以選擇從AIN8和AIN9輸出250uA的激勵電流。板子上已經(jīng)將J5-2連接到J4-2,J5-1連接到J4-1。
4.5 Components標簽頁點擊“+”,F(xiàn)unction選擇“A/D Converter”,選擇“Continuous Scan Mode DSAD”。
4.6 點擊“Next”,點擊“Finish”。
4.7 設置DSAD
選擇Channel0
不勾選中斷
Positive input signal選擇ANI7
Negative input signal選擇AIN6
Reference input選擇REF1P/REF1N
勾選Positive reference voltage buffer
勾選Negative reference voltage buffer
選擇PGA:x16
A/D conversion number選擇Immediate value mode (the number of A/D conversions if from 1 to 255),轉換次數(shù)設為1
Oversampling ratio:OSR設為50000,那么所對應的OSRm寄存器的值為3124
4.8 點擊右上角“Generate Code”生成代碼
4.9 雙擊src->smc_gen->Config_DSAD0文件夾中的Config_DSAD0.h
文件的最后,添加下面第2行和第3行的代碼
/* Start user code for function. Do not edit comment generated here */ bool r_dsad0_IsConversionEnd (void); void r_dsad0_ClearIrFlag (void); /* End user code. Do not edit comment generated here */
4.10 雙擊src->smc_gen->Config_DSAD0文件夾中的Config_DSAD0.c
文件的最后,添加下面第2行到29行的代碼
/* Start user code for adding. Do not edit comment generated here */ /********************************************************************************************************************** * Function Name: r_dsad0_IsConversionEnd * Description : This function returns the Conversion status of DSAD0. * Arguments : None * Return Value : bool * false:Conversion, true:Conversion end *********************************************************************************************************************/ bool r_dsad0_IsConversionEnd (void) { return (bool) ((1U == IR(DSAD0, ADI0)) ? true : false); } /********************************************************************************************************************** End of function r_dsad0_IsConversionEnd *********************************************************************************************************************/ /********************************************************************************************************************** * Function Name: r_dsad0_ClearIrFlag * Description : This function clears the IR flag * Arguments : None * Return Value : None *********************************************************************************************************************/ void r_dsad0_ClearIrFlag (void) { IR(DSAD0, ADI0)= 0U; } /********************************************************************************************************************** End of function r_dsad0_ClearIrFlag *********************************************************************************************************************/ /* End user code. Do not edit comment generated here */
4.11 從參考例程“r01an4788_rx23ea_rtd”的src文件夾中拷貝以下文件到src文件夾中。
打開r_rtd_api.h文件,將D_RTD_SELECT宏定義修改為“1”(3線)。
4.12 雙擊rx23ea_local_board_lab.c文件,包含以下頭文件(第10-12行,第16-17行)
/*********************************************************************** * * FILE : rx23ea_local_board_lab.c * DATE : 2023-09-16 * DESCRIPTION : Main Program * * NOTE:THIS IS A TYPICAL EXAMPLE. * ***********************************************************************/ #include #include #include #include "r_smc_entry.h" #include "r_sensor_common_api.h" #include "r_rtd_api.h"
4.13 在main()函數(shù)前添加變量定義(第2-3行)
bool timer_flag = false; static volatile int32_t s_dsad0_value; /** DSAD0 24bit A/D value storage variable */ static volatile float s_temp = 0; /** Measurement temperature storage variable */
4.14 在main函數(shù)中添加下面的代碼(第1-2行,第6-8行,第10-44行)
uint32_t dsad0_reg; /** DSAD0.DR register storage variable */ float rtd_temp = 0; /** Measurement temperature */ R_Config_TMR0_TMR1_Start(); /** A/D conversion start */ R_Config_DSAD0_Start(); R_Config_DSAD0_Set_SoftwareTrigger(); while (1) { if(true == timer_flag){ timer_flag = false; /****************************/ /** Temperature measurement */ /****************************/ /** A/D conversion complete for DSAD0? */ if (true == r_dsad0_IsConversionEnd()) { int32_t dsad0_value; /** Signed 24-bit DSAD0 value */ r_dsad0_ClearIrFlag(); /** clear DSAD0 IR flag */ /** Get A/D value */ { R_Config_DSAD0_Get_ValueResult( &dsad0_reg); /** Flag mask, Sign extension */ dsad0_value = (int32_t) ((dsad0_reg & 0x00FFFFFFU) << 8) >> 8; } /** Calculate the temperature [degree] of the reference junction */ rtd_temp = R_RTD_DsadToTemp((float) dsad0_value); /** debug monitor */ { s_dsad0_value = dsad0_value; s_temp = rtd_temp; } } } }
4.15 點擊編譯代碼。
4.16 高亮rx23ea_local_board_lab工程,按下調(diào)試按鈕
4.17 可以通過觀測變量的方式檢查轉換結果。
打開src文件夾中的rx23ea_local_board_lab.c文件,找到s_dsad0_value和s_temp。鼠標移動到變量名上,雙擊變量名,并點擊鼠標右鍵,選擇“Add Watch Expression”。
在Expressions窗口中,右鍵點擊該變量名,選擇Enable Real-time Refresh,將此變量設置為實時刷新。
4.18 運行代碼 (),需要點擊兩次。
可以觀察到變量的實時變化。
用手捏住傳感器,可以看到數(shù)值發(fā)生變化。
4.19 按下斷開按鈕或者終止按鈕
。
審核編輯:劉清
-
adc
+關注
關注
99文章
6533瀏覽量
545743 -
AFE
+關注
關注
8文章
229瀏覽量
121823 -
pga
+關注
關注
1文章
98瀏覽量
41586 -
輸出電壓
+關注
關注
2文章
1122瀏覽量
38292 -
溫度檢測器
+關注
關注
1文章
23瀏覽量
11798 -
Pt100
+關注
關注
9文章
172瀏覽量
69252
原文標題:RX23E-A 24bit ΔΣADC 應用篇 (4) 添加AFE和DSAD [完結]
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
ADS1292 24Bit AD有效位數(shù)如何確定?
ADS1256設置不同的數(shù)據(jù)輸出速率的時候,得到的24bit的輸出數(shù)據(jù)不相同,為什么?
ADS1299的SPI可以一次傳送24bit資料嗎?
ADS1256對24bit ADC采集的數(shù)據(jù)進行在模擬工程計算器上進行FFT轉換,為什么ENOB和SNR的值這么矛盾呢?
ADS127L01是一個24 bit的數(shù)模轉換器,讀取出來的實際的24bit的值如何跟實際的電壓對應起來,轉換公式是什么?
RX23E-A 24bit ΔΣADC 應用篇 (2) 創(chuàng)建RX23E-A工程
![<b class='flag-5'>RX23E-A</b> <b class='flag-5'>24bit</b> ΔΣ<b class='flag-5'>ADC</b> 應用<b class='flag-5'>篇</b> (2) 創(chuàng)建<b class='flag-5'>RX23E-A</b>工程](https://file1.elecfans.com/web2/M00/00/1C/wKgZomase22AS8t9AAIgKbnVDRc700.png)
QCC5181QCC3086QCC3084QCC3083 USB Audio 96K/24bit LDAC
![QCC5181QCC3086QCC3084QCC3083 USB Audio 96K/<b class='flag-5'>24bit</b> LDAC](https://file1.elecfans.com/web2/M00/E8/CE/wKgZomZQV42AVAraAAClB8z0xbw186.png)
使用RX23E-A對外部電阻式傳感器PT100進行溫度測量
![使用<b class='flag-5'>RX23E-A</b>對外部電阻式傳感器PT100進行溫度測量](https://file1.elecfans.com/web2/M00/E9/33/wKgaomZO4EGAbdeXAAAr-PK4yDg963.png)
RX23E-A 24bit ΔΣADC基礎篇(3)應用實例及設計要點
RX23E-A 24bit ΔΣADC基礎篇(2)用于傳感器測量的Δ∑ADC的特性
![<b class='flag-5'>RX23E-A</b> <b class='flag-5'>24bit</b> ΔΣ<b class='flag-5'>ADC</b>基礎<b class='flag-5'>篇</b>(2)用于傳感器測量的Δ∑<b class='flag-5'>ADC</b>的特性](https://file1.elecfans.com/web2/M00/C7/C0/wKgZomYWMneAIrUqAAA57UJ5sms959.png)
RX23E-A中的24位ΔΣADC轉換器和模擬前端介紹
![<b class='flag-5'>RX23E-A</b>中的<b class='flag-5'>24</b>位ΔΣ<b class='flag-5'>ADC</b>轉換器和模擬前端介紹](https://file1.elecfans.com/web2/M00/C7/66/wKgZomYTjEqAOWY0AAAg-tCfP9E670.png)
評論