背景介紹
瑞薩 RX23E-A 系列微控制器配備模擬前端,無(wú)需校準(zhǔn)即可測(cè)量溫度、壓力、流量和重量,精度優(yōu)于 0.1%,是高精度傳感、測(cè)試和測(cè)量設(shè)備的理想之選。CPU 配備 RXv2 內(nèi)核,在 DSP/FPU 運(yùn)行中表現(xiàn)卓越,可以單芯片實(shí)現(xiàn)高精度測(cè)量、控制和通信。
瑞薩 RX23E-A MCU 特性
雙 24 位 delta sigma 模數(shù)轉(zhuǎn)換器:高達(dá) 23 位的有效分辨率,可編程數(shù)據(jù)速率為 7.6sps 至 15,625ksps
PGA:軌到軌模擬輸入,增益 1 至 128 倍,失調(diào)漂移 10nV/°C,增益漂移 1ppm/°C
基準(zhǔn)電壓源:10ppm/°C 的低溫漂特性,具有良好的溫度穩(wěn)定性
勵(lì)磁電流源:匹配可編程電流源
CPU:32 位 RXv2 (32MHz)
數(shù)字信號(hào)處理的 DSP/FPU
接口:SPI x 1 通道、UART x 4 通道、I2C x 1 通道、CAN x 1 通道
可以直接連接傳感器,如 PT100、擴(kuò)散硅壓力傳感器
下圖 (圖1) 為瑞薩 RX23E-A MCU 的系統(tǒng)框圖:
圖1 瑞薩 RX23E-A MCU 系統(tǒng)框圖
調(diào)試步驟
一、新建工程文件
如下圖 (圖2) 所示,打開(kāi) e2studio,添加 RX23E-A_UART_ADC 工程文件。
圖2 新建 RX23E-A_UART_ADC 工程文件
創(chuàng)建完成后,對(duì)該工程進(jìn)行編譯,同時(shí)需確保編譯無(wú)錯(cuò)誤,具體操作如下圖 (圖3) 所示:
圖3 編譯工程文件
二、配置串口
首先打開(kāi)左側(cè)資源管理器中的 RX23EA UART ADC.scfg 文件,選中該文件 Components 功能區(qū)后,點(diǎn)擊下圖 (圖4) 中第 3 個(gè)紅色方框內(nèi)標(biāo)記的 button 以打開(kāi) Software Component Selection:
圖4 打開(kāi) Software Component Selection
接下來(lái)根據(jù)下圖 (圖5) 的步驟,從可選的組件中選擇 SCI/SCIF Asynchronous Mode,為新組件添加新配置,選擇“SCI1”模塊。
圖5 Add new configuration for selected component
完成以上操作后,配置串口參數(shù),具體參數(shù)可參考下圖 (圖6):
圖6 配置串口參數(shù)
配置完成后,點(diǎn)擊“Generate Code”生成代碼?;氐?RX23E-A_UART_ADC 工程文件即可看到串口文件,如下圖 (圖7) 所示:
圖7 生成的串口文件
接下來(lái)打開(kāi) Config_SCI1_user.c 文件,在下圖 (圖8) 所標(biāo)記箭頭處添加代碼,相應(yīng)的注意事項(xiàng)請(qǐng)參考圖內(nèi)說(shuō)明。
圖8 添加代碼
下圖 (圖9) 為代碼添加成功后的顯示信息界面:
圖9 添加代碼成功示意圖
在使用 printf 函數(shù)進(jìn)行串口打印前,我們需要對(duì)串口重定向,具體步驟如下圖 (圖10):
圖10 串口重定向
具體代碼如下:
#include "r_smc_entry.h" #include "platform.h" void main(void); extern volatile uint8_t g_sci1_tx_end; void my_sw_charput_function(char output_char); void main(void) { R_Config_SCI1_Start();//串口初始化 while(1) { printf(" Renesas RX23E-A MCU "); } } //串口重定向 void my_sw_charput_function(char output_char) { R_Config_SCI1_Serial_Send((uint8_t *) &output_char,1); while(g_sci1_tx_end == false); g_sci1_tx_end = false; }右滑查看完整代碼 接下來(lái)對(duì)工程進(jìn)行編譯,確認(rèn)無(wú)錯(cuò)誤后進(jìn)行燒錄,燒錄完成后開(kāi)始運(yùn)行,如下圖 (圖11) 所示:
圖11 工程編譯、燒錄及運(yùn)行步驟
完成上述操作后,使用 printf 函數(shù)進(jìn)行串口打印,串口打印信息如下圖 (圖12):
圖12 串口打印信息
下圖 (圖13) 為 RX23E-A 串口配置成功硬件連接示意圖:
圖13 RX23E-A 串口配置成功
三、配置 24bit ADC
像前面配置串口一樣,點(diǎn)擊左側(cè)資源管理器中的 RX23EA UART ADC.scfg 文件,選擇該文件 Components 功能區(qū)后打開(kāi) Software Component Selection,選擇“DSAD0”模塊。
圖14 選擇 DSAD0 模塊
接下來(lái)設(shè)置 ADC 的采樣率、通道數(shù)等參數(shù),各參數(shù)如下圖 (圖15) 所示。在配置完成后點(diǎn)擊界面右上方“Generate Code”即可生成代碼。
圖15 設(shè)置 ADC 的采樣率、通道數(shù)等參數(shù)
生成 ADC 代碼后,打開(kāi)工程文件,在 Config_DSAD0.h 添加如下代碼:
bool r_dsad0_IsConversionEnd (void); void r_dsad0_ClearIrFlag (void);在 Config_DSAD0.c 文件下面添加如下代碼:
bool r_dsad0_IsConversionEnd (void) { return (bool) ((1U == IR(DSAD0, ADI0)) ? true : false); } void r_dsad0_ClearIrFlag (void) { IR(DSAD0, ADI0)= 0U; }
右滑查看完整代碼
ADC 配置完成,在主函數(shù)頁(yè)面添加如下圖 (圖16) 代碼:
圖16 主函數(shù)下的代碼
完整代碼如下:
/*********************************************************************** * * FILE : RX23EA_UART_ADC.c * DATE : 2024-10-24 * DESCRIPTION : Main Program * * NOTE:THIS IS A TYPICAL EXAMPLE. * ***********************************************************************/ #include "r_smc_entry.h" #include "platform.h" void main(void); extern volatile uint8_t g_sci1_tx_end; void my_sw_charput_function(char output_char); //bool timer_flag = false; void main(void) { uint32_t dsad0_reg; /**DSAD0.DR register storage variable */ float ADC_Data0_0,ADC_Data0_1,ADC_Data0_2,ADC_Data0_3,ADC_Data0_4,ADC_Data0_5; int32_t dsad0_value_0,dsad0_value_1,dsad0_value_2,dsad0_value_3,dsad0_value_4,dsad0_value_5; R_Config_SCI1_Start();//串口初始化 R_Config_DSAD0_Start();//ADC初始化 R_Config_DSAD0_Set_SoftwareTrigger();//軟件觸發(fā)方式 while(1) { r_dsad0_ClearIrFlag(); /** clear DSAD0 IR flag*/ if(DSAD0.DR.BIT.CCH == 0x01) //Channel 1 data { /** Get A/D value */ R_Config_DSAD0_Get_ValueResult( &dsad0_reg); /** Flag mask, Sign extension */ dsad0_value_0 = (int32_t) ((dsad0_reg & 0x00FFFFFFU) <<8) >> 8; ADC_Data0_0 = dsad0_value_0 * (5.0)/8388608; } if(DSAD0.DR.BIT.CCH == 0x02) //Channel 2 data { /** Get A/D value */ R_Config_DSAD0_Get_ValueResult( &dsad0_reg); /** Flag mask, Sign extension */ dsad0_value_1 = (int32_t) ((dsad0_reg & 0x00FFFFFFU) <<8) >> 8; ADC_Data0_1 = dsad0_value_1 * (5.0)/8388608; } if(DSAD0.DR.BIT.CCH == 0x03) //Channel 3 data { /** Get A/D value */ R_Config_DSAD0_Get_ValueResult( &dsad0_reg); /** Flag mask, Sign extension */ dsad0_value_2 = (int32_t) ((dsad0_reg & 0x00FFFFFFU) <<8) >> 8; ADC_Data0_2 = dsad0_value_2 * (5.0)/8388608; } if(DSAD0.DR.BIT.CCH == 0x04) //Channel 4 data { /** Get A/D value */ R_Config_DSAD0_Get_ValueResult( &dsad0_reg); /** Flag mask, Sign extension */ dsad0_value_3 = (int32_t) ((dsad0_reg & 0x00FFFFFFU) <<8) >> 8; ADC_Data0_3 = dsad0_value_3 * (5.0)/8388608; } if(DSAD0.DR.BIT.CCH == 0x05) //Channel 5 data { /** Get A/D value */ R_Config_DSAD0_Get_ValueResult( &dsad0_reg); /** Flag mask, Sign extension */ dsad0_value_4 = (int32_t) ((dsad0_reg & 0x00FFFFFFU) <<8) >> 8; ADC_Data0_4 = dsad0_value_4 * (5.0)/8388608; } if(DSAD0.DR.BIT.CCH == 0x06) //Channel 6 data { /** Get A/D value */ R_Config_DSAD0_Get_ValueResult( &dsad0_reg); /** Flag mask, Sign extension */ dsad0_value_5 = (int32_t) ((dsad0_reg & 0x00FFFFFFU) <<8) >> 8; ADC_Data0_5 = dsad0_value_5 * (5.0)/8388608; } printf("Channel_1 = %f ",ADC_Data0_0); printf("Channel_2 = %f ",ADC_Data0_1); printf("Channel_3 = %f ",ADC_Data0_2); printf("Channel_4 = %f ",ADC_Data0_3); printf("Channel_5 = %f ",ADC_Data0_4); printf("Channel_6 = %f ",ADC_Data0_5); R_BSP_SoftwareDelay((uint32_t)100, BSP_DELAY_MILLISECS); //printf(" Renesas RX23E-A MCU "); } } //串口重定向 void my_sw_charput_function(char output_char) { R_Config_SCI1_Serial_Send((uint8_t *) &output_char,1); while(g_sci1_tx_end == false); g_sci1_tx_end = false; }右滑查看完整代碼 代碼添加完畢后,可點(diǎn)擊如下圖 (圖17) 所示界面圖標(biāo)進(jìn)行編譯代碼:
圖17 編譯代碼
四、燒錄程序
最后燒錄程序。燒錄成功后,可以給 RX23E-A 模擬輸入口給一個(gè)模擬量,測(cè)試一下 ADC 性能。我們以 ADC0 (1-6 通道) 為例,硬件連接如下圖 (圖18) 所示:
圖18 ADC0 (1-6 通道) 硬件連接
分別為 6 個(gè)通道設(shè)置的電壓值如下表:
通道 | 第一通道 | 第二通道 | 第三通道 | 第四通道 | 第五通道 | 第六通道 |
---|---|---|---|---|---|---|
電壓值 | 4.35V | 3.64V | 2.91V | 2.18V | 1.45V | 0.73V |
實(shí)測(cè)結(jié)果 (用串口打印) 如下圖 (圖19) 所示:
圖19 實(shí)測(cè)結(jié)果
總結(jié)
本文主要介紹瑞薩 RX23E-A 這款 MCU 的串口和 ADC 調(diào)試方法。
-
微控制器
+關(guān)注
關(guān)注
48文章
7844瀏覽量
153348 -
mcu
+關(guān)注
關(guān)注
146文章
17718瀏覽量
358200 -
adc
+關(guān)注
關(guān)注
99文章
6611瀏覽量
547731 -
瑞薩
+關(guān)注
關(guān)注
36文章
22356瀏覽量
87579 -
串口
+關(guān)注
關(guān)注
14文章
1580瀏覽量
78334
原文標(biāo)題:瑞薩 RX23E-A MCU UART 和 ADC 調(diào)試經(jīng)驗(yàn)分享
文章出處:【微信號(hào):駿龍電子,微信公眾號(hào):駿龍電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
RX23E-A中的24位ΔΣADC轉(zhuǎn)換器和模擬前端介紹

瑞薩電子新推32位RX系列微控制器RX23E-A產(chǎn)品組
瑞薩電子推出RX23E-A MCU入門(mén)套件 具備業(yè)界一流高精度模擬前端
瑞薩電子推出32位RX系列微控制器 將高精度模擬前端集成于MCU單芯片
什么是RX23E-A物聯(lián)網(wǎng)時(shí)代的數(shù)據(jù)采集和分布式處理

利用RX23E-A 32位MCU實(shí)現(xiàn)熱電Peltier控制器

RSSKRX23E-A Renesas Solution Stater Kit for RX23E-A 快速入門(mén)指南

RSSKRX23E-A Renesas Solution Stater Kit for RX23E-A 快速入門(mén)指南

瑞薩面向高端工業(yè)傳感器系統(tǒng)推出高精度模擬前端的32位RX MCU
RX23E-A 24bitΔΣADC基礎(chǔ)篇(4) RX23E-A詳解

評(píng)論