概述
文章主要介绍如何使用e2studio灵活软件包(FSP)对瑞萨R7FA2L1AB2DFL单片机开发板进行ADC单通道采集电压,评估AD功能,以及制作水位检测器。其中重点介绍了使用EZ-CUBE3仿真器对RA-Eco-RA2L1-48PIN开发板成功烧录及调试;
同时还使用另一个J-Link烧录固件至J-Link OB-STM32F072,对其升级,支持ARM v8的Renesas芯片烧录及调试,显示p000脚值、ADC电压值、水深值。
AD功能评估
01 创建工程
打开e2 studio软件;
依次点击文件-新建-瑞萨C/C++项目-Renesas RA;
依次进行工程命名,路径设置,FSP版本,目标开发板选择,Device选择R7FA2L1AB2DFL,工具链选择GNU ARM Embedded;
完成工程创建。
ADC及串口配置完成后,构建工程,确保无误。
输入代码,实现ADC采集与重定向串口打印输出。
02 使用瑞萨EN-CUBE3仿真器调试

瑞萨EN-CUBE3仿真器
因RA-Eco-RA2L1-48PIN板上没有USB口,RA-Eco-RA2L1-48PIN调试时,左边档位先打到RA档,按下表RA SWD+串口列接线调试。之后,将左边档位打到USB+UART档,进行串口打印。

用瑞萨EN-CUBE3仿真器调试时,项目-属性-工具设置选项为下表所示。

也可以对J-Link OB升级固件,用J-Link OB调试
因J-Link OB不支持ARM v8-M,J-Link OB进行如下改进:
使用另一个J-Link或DAP-Link或ST-Link或PW-Link烧录更新的固件J-Link OB-STM32F072-128KB-CortexM 20231030.bin固件至STM32F072CBT6芯片。

03 演示效果
EN-CUBE3
RA2L1-ADC
04 工程代码
左右滑动查看完整内容
#include"hal_data.h" #includeFSP_CPP_HEADER voidR_BSP_WarmStart(bsp_warm_start_event_t event); FSP_CPP_FOOTER fsp_err_t err = FSP_SUCCESS; volatilebool uart_send_complete_flag = false; voiduser_uart_callback(uart_callback_args_t * p_args) { if(p_args->event == UART_EVENT_TX_COMPLETE) { uart_send_complete_flag = true; } } /*------------- 串口重定向 -------------*/ #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #endif PUTCHAR_PROTOTYPE { err = R_SCI_UART_Write(&g_uart9_ctrl, (uint8_t *)&ch, 1); if(FSP_SUCCESS != err) __BKPT(); while(uart_send_complete_flag == false){} uart_send_complete_flag = false; return ch; } int _write(int fd,char *pBuffer,int size) { for(int i=0;i
制作水位检测器
01 水位传感器运行原理
当平行铜线之间有水时,水浸没的高度不同,电流不同。铜线间的电阻根据水位的变化而变化。
电阻与水的高度成反比(传感器浸水越深,导电性越好,电阻越小,电流越大)。电路连接:
ADC读取电压(V)与水位高度(mm)为线性相关关系:Y=41.774-38.686
从而得出水位值。RA-Eco-RA2L1-48PIN开发板与水位传感器连线图如下。
02 主循环部分代码修改如下
左右滑动查看完整内容
while(1) { uint16_t adc_data25=0; double a25,wl; // define wl (water level) (void) R_ADC_ScanStart(&g_adc0_ctrl); scan_complete_flag = false; while (!scan_complete_flag) { } err = R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_25, &adc_data25); assert(FSP_SUCCESS == err); a25=(double)(adc_data25/4095.0)*3.3; wl = (double)(41.774 * a25 - 38.686); // water level definition equation printf("P510(AN25)=%d, voltage=%f, water level=%f mm ",adc_data25,a25,wl); // print water level (mm) R_BSP_SoftwareDelay (1000, BSP_DELAY_UNITS_MILLISECONDS); }
03 演示效果
RA2L1-水位测试
结果结论
瑞萨RA2L1微控制器集成的外设,简化了设计并能加快开发过程。它有优越的关键性能,比如:灵活的连接性(UART通信接口等)满足工业自动化项目的需求。
全部0条评论
快来发表一下你的评论吧 !