背景介紹
瑞薩 RX23E-A 系列微控制器配備模擬前端,無需校準即可測量溫度、壓力、流量和重量,精度優于 0.1%,是高精度傳感、測試和測量設備的理想之選。CPU 配備 RXv2 內核,在 DSP/FPU 運行中表現卓越,可以單芯片實現高精度測量、控制和通信。
瑞薩 RX23E-A MCU 特性
雙 24 位 delta sigma 模數轉換器:高達 23 位的有效分辨率,可編程數據速率為 7.6sps 至 15,625ksps
PGA:軌到軌模擬輸入,增益 1 至 128 倍,失調漂移 10nV/°C,增益漂移 1ppm/°C
基準電壓源:10ppm/°C 的低溫漂特性,具有良好的溫度穩定性
勵磁電流源:匹配可編程電流源
CPU:32 位 RXv2 (32MHz)
數字信號處理的 DSP/FPU
接口:SPI x 1 通道、UART x 4 通道、I2C x 1 通道、CAN x 1 通道
下圖 (圖1) 為瑞薩 RX23E-A MCU 的系統框圖:
圖1 瑞薩 RX23E-A MCU 系統框圖
調試步驟
一、新建工程文件
如下圖 (圖2) 所示,打開 e2studio,添加 RX23E-A_UART_ADC 工程文件。
圖2 新建 RX23E-A_UART_ADC 工程文件
創建完成后,對該工程進行編譯,同時需確保編譯無錯誤,具體操作如下圖 (圖3) 所示:
圖3 編譯工程文件
二、配置串口
首先打開左側資源管理器中的 RX23EA UART ADC.scfg 文件,選中該文件 Components 功能區后,點擊下圖 (圖4) 中第 3 個紅色方框內標記的 button 以打開 Software Component Selection:
圖4 打開 Software Component Selection
接下來根據下圖 (圖5) 的步驟,從可選的組件中選擇 SCI/SCIF Asynchronous Mode,為新組件添加新配置,選擇“SCI1”模塊。
圖5 Add new configuration for selected component
完成以上操作后,配置串口參數,具體參數可參考下圖 (圖6):
圖6 配置串口參數
配置完成后,點擊“Generate Code”生成代碼。回到 RX23E-A_UART_ADC 工程文件即可看到串口文件,如下圖 (圖7) 所示:
圖7 生成的串口文件
接下來打開 Config_SCI1_user.c 文件,在下圖 (圖8) 所標記箭頭處添加代碼,相應的注意事項請參考圖內說明。
圖8 添加代碼
下圖 (圖9) 為代碼添加成功后的顯示信息界面:
圖9 添加代碼成功示意圖
在使用 printf 函數進行串口打印前,我們需要對串口重定向,具體步驟如下圖 (圖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; }右滑查看完整代碼 接下來對工程進行編譯,確認無錯誤后進行燒錄,燒錄完成后開始運行,如下圖 (圖11) 所示:
圖11 工程編譯、燒錄及運行步驟
完成上述操作后,使用 printf 函數進行串口打印,串口打印信息如下圖 (圖12):
圖12 串口打印信息
下圖 (圖13) 為 RX23E-A 串口配置成功硬件連接示意圖:
圖13 RX23E-A 串口配置成功
三、配置 24bit ADC
像前面配置串口一樣,點擊左側資源管理器中的 RX23EA UART ADC.scfg 文件,選擇該文件 Components 功能區后打開 Software Component Selection,選擇“DSAD0”模塊。
圖14 選擇 DSAD0 模塊
接下來設置 ADC 的采樣率、通道數等參數,各參數如下圖 (圖15) 所示。在配置完成后點擊界面右上方“Generate Code”即可生成代碼。
圖15 設置 ADC 的采樣率、通道數等參數
生成 ADC 代碼后,打開工程文件,在 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 配置完成,在主函數頁面添加如下圖 (圖16) 代碼:
圖16 主函數下的代碼
完整代碼如下:
/*********************************************************************** * * 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();//軟件觸發方式 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; }右滑查看完整代碼 代碼添加完畢后,可點擊如下圖 (圖17) 所示界面圖標進行編譯代碼:
圖17 編譯代碼
四、燒錄程序
最后燒錄程序。燒錄成功后,可以給 RX23E-A 模擬輸入口給一個模擬量,測試一下 ADC 性能。我們以 ADC0 (1-6 通道) 為例,硬件連接如下圖 (圖18) 所示:
圖18 ADC0 (1-6 通道) 硬件連接
分別為 6 個通道設置的電壓值如下表:
通道 | 第一通道 | 第二通道 | 第三通道 | 第四通道 | 第五通道 | 第六通道 |
---|---|---|---|---|---|---|
電壓值 | 4.35V | 3.64V | 2.91V | 2.18V | 1.45V | 0.73V |
實測結果 (用串口打印) 如下圖 (圖19) 所示:
圖19 實測結果
總結
本文主要介紹瑞薩 RX23E-A 這款 MCU 的串口和 ADC 調試方法。
-
微控制器
+關注
關注
48文章
7707瀏覽量
152554 -
mcu
+關注
關注
146文章
17445瀏覽量
354024 -
adc
+關注
關注
99文章
6565瀏覽量
546595 -
瑞薩
+關注
關注
36文章
22319瀏覽量
87120 -
串口
+關注
關注
14文章
1569瀏覽量
77591
原文標題:瑞薩 RX23E-A MCU UART 和 ADC 調試經驗分享
文章出處:【微信號:駿龍電子,微信公眾號:駿龍電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
RX23E-A中的24位ΔΣADC轉換器和模擬前端介紹

瑞薩電子新推32位RX系列微控制器RX23E-A產品組
瑞薩電子推出RX23E-A MCU入門套件 具備業界一流高精度模擬前端
瑞薩電子推出32位RX系列微控制器 將高精度模擬前端集成于MCU單芯片
利用RX23E-A 32位MCU實現熱電Peltier控制器

RSSKRX23E-A Renesas Solution Stater Kit for RX23E-A 快速入門指南

RSSKRX23E-A Renesas Solution Stater Kit for RX23E-A 快速入門指南

評論