您当前的位置: 首页 >> 新品发布/设计应用

【瑞萨RA2E1开发板】使用ADC功能实现位移传感器采集方案

作者:美共电子交流圈电子网 日期:2025-04-20 点击数:5


硬件:RA2E1 开发板

软件:e2studio Version: 2024-10 (24.10.0)

调试器:J-link V9

今天和大家分享使用瑞萨的开发板实现位移传感器的采集方案;

简单和大家分享一下瑞萨RA2E1 的ADC 知识。

1 ADC的基本知识如下所示:

ADC,全称为模拟- 数字转换器(Analog-to-Digital Converter),是一种电子设备,其主要功能是将连续的模拟信号转换为离散的数字信号。举例来说,我们日常生活中的温度、压力和声音等模拟信号,可以通过ADC 转换为单片机能够处理的数字信号。

2 瑞萨RA2E1 ADC简单描述

AD 的特征如下:2个ADC转换单元。

支持高达26 个通道。其中有三组通道(AN000& AN100、AN001&AN101和AN002&AN102)分别共用相同的引脚,因此通道AN000和AN100不可同时使用,AN001和AN101. AN002和AN102这两组也同理。

支持内部温度传感器,可以检测芯片运行温度;支持测量内部参考电压。

逐次逼近型ADC,支持的分辨率:12-bit,10-bit.8-bit。

转换时间很短:0.4 μs/ 每通道(这是在使用12-bit ADC、时钟PCLKC(ADCLK)等于50 MHz 的条件下)。PCLKA 是RA2E1 的ADC 外设模块的时钟,用于驱动外设模块的工作;而PCLKC(ADCLK)是用于A/D转换的时钟,它们的频率需要保持一定的比例。

PCLKA 与PCLKC(ADCLK)的时钟频率比可以设置为:1:1,2:1,4:1,8:1,1:2,1:4。

可启用的A/D 数据存储缓冲区是一个环形缓冲区,由16个缓冲组成,用于顺序存储AD转换后的数据。

3   ADC的系统框图如下:

1744986490463538.png

ADC0的参考电压为VREFH0 和VREFL0、输人电压范围为:VREFLO ≤ VINSVREFH0;

ADC的模拟输入通道:

ANOxx是ADC0的模拟输入通道(xx为通道号);

可选通道如下所示:

1744986553298920.png

触发来源:

中断请求信号

事件输出到ELC信号

同步触发信号

异步触发信号

4   任务创建过程

4.1 增加ADC通道

1744986616737073.png

4.2 配置ADC的通道属性

1744986648169538.png

5   任务编写:

5.1 程序流程图如下所示:

image.png

5.2 ADC初始化函数如下

view plaincopy to clipboardprint?

1. /* Initializes the module. */

2. err = R_ADC_Open(&g_adc1_ctrl, &g_adc1_cfg);

3.

4. assert(FSP_SUCCESS == err);

5.

6. err = R_ADC_ScanCfg(&g_adc1_ctrl, &g_adc1_

channel_cfg);

7. assert(FSP_SUCCESS == err);

5.3 ADC读取函数如下:

view plaincopy to clipboardprint?

1. volatile bool scan_complete_fl ag = false;

2. void adc1_callback (adc_callback_args_t * p_args)

3. {

4. FSP_PARAMETER_NOT_USED(p_args);

5. scan_complete_fl ag = true;

6. }

7.

8. double adcVolate; //adc 电压值

9. uint16_t adcSample ; //adc 采样值

10.

11.void ReadAdcSample(void)

12. {

13. (void) R_ADC_ScanStart(&g_adc1_ctrl);

14. scan_complete_flag = false;

15. while (!scan_complete_flag)

16. {

17.

18. }

19. err =R_ADC_Read(&g_adc1_ctrl, ADC_

CHANNEL_1, &adcSample);

20. assert(FSP_SUCCESS == err);

21. adcVolate =(adcSample/4095.0)*3.3;

22. }

5.4 主程序执行如下:

view plaincopy to clipboardprint?

1. R_BSP_SoftwareDelay(500, BSP_DELAY_

UNITS_MILLISECONDS); // NOLINT

2. /* printf("EEPW test data rn");

3. SendTestData(0x01);

4. Add_Write_Data(0x12,12);*/

5. /* 处理串口屏数据信息*/

6. DealDwinData();

7. /* 处理串口屏按键信息*/

8. DealTouchPanelInfo(ucKeyValue);

9. /* 读取ADC 数据*/

10. ReadAdcSample();

11. printf("EEPW test data = %5drn",adcSample);

(本文来源于《EEPW》202504

本站所有文章、数据、图片均来自网友原创提供和互联网,一切版权均归源网站或源作者所有。

如果侵犯了你的权益请来信告知我们删除。邮箱:

标签:202504