芯查查logo
  • 物料选型
  • 数据服务
    1. 新品推荐
    2. 查替代料
    3. 丝印反查
    4. 查品牌
    5. PCN/PDN
    6. 查代理
    7. 数据合作
  • 应用方案
  • SaaS产品
      SaaS产品
    1. 供应链波动监测预警
    2. 半导体产业链地图
    3. 智能BOM管家
    4. 解决方案
    5. 汽车电子
    6. 政府机构
    7. 数据API
  • 商城
  • 行业资讯
    1. 资讯
    2. 直播
  • 论坛社区
    1. 论坛
    2. 学习
    3. 测评中心
    4. 活动中心
    5. 积分商城
  • 查一下
正在使用账号登录iCEasy商城
meiyao
瑞萨RA2E1-ADC使用与理解

ADC基本知识

ADC(模拟-数字转换器)是一种将连续的模拟信号转换为离散的数字信号的电子设备。这种转换对于嵌入式系统来说至关重要,因为它允许单片机处理来自传感器的模拟信号,如温度、压力和声音等。

 

瑞萨RA2E1 ADC特性

转换单元:瑞萨RA2E1开发板配备了2个ADC转换单元,提供了灵活且高效的模拟信号采集能力。

通道数量:支持高达26个通道,但需要注意的是,有三组通道(AN000&AN100、AN001&AN101和AN002&AN102)分别共用相同的引脚,因此这些通道不可同时使用。

内部传感器支持:内置温度传感器,可用于检测芯片的运行温度,同时还支持测量内部参考电压,为系统提供了稳定的参考基准。

分辨率:逐次逼近型ADC,支持12-bit、10-bit和8-bit的分辨率,可以根据应用需求选择合适的分辨率。

转换时间:在12-bit ADC和时钟PCLKC(ADCLK)等于50 MHz的条件下,转换时间仅为0.4μs/每通道,满足了高速数据采集的需求。

时钟配置:PCLKA是ADC外设模块的时钟,用于驱动外设模块的工作;PCLKC(ADCLK)是用于A/D转换的时钟。PCLKA与PCLKC(ADCLK)的时钟频率比可以设置为1:1、2:1、4:1、8:1、1:2和1:4,提供了灵活的时钟配置选项。

数据存储缓冲区:可启用的A/D数据存储缓冲区是一个环形缓冲区,由16个缓冲组成,用于顺序存储AD转换后的数据,确保了数据的连续性和完整性。

 

位移传感器采集方案

在实现位移传感器的采集方案时,可以利用瑞萨RA2E1开发板的ADC功能来采集传感器的模拟信号。

 

硬件连接,将位移传感器的输出端连接到瑞萨RA2E1开发板的ADC输入通道上。

软件配置,在e2studio开发环境中,配置ADC的相关参数,如通道选择、分辨率设置和时钟配置等。

数据采集,启动ADC转换,并读取转换后的数字信号。根据传感器的特性,可以将数字信号转换为实际的位移值。

数据处理,对采集到的位移数据进行处理和分析,以实现所需的功能或应用。

 

框图:

配置ADC0 的模拟输入通道:

配置ADC的通道属性:

代码:

  1. volatile bool scan_complete_flag = false;  
  2. void adc1_callback (adc_callback_args_t * p_args)  
  3. {  
  4. FSP_PARAMETER_NOT_USED(p_args);  
  5. scan_complete_flag = 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. }  

 

  1. R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS); // NOLINT  
  2. /*        printf("EEPW test data \r\n"); 
  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 = %5d\r\n",adcSample);  

 

输出:

 

版块: 瑞萨电子
2025/03/24 23:25
  • 举报
😁😂😃😄😅😆😉😊😋😌😍😏😒😓😔😖😘😚😜😝😞😠😡😢😣😤😥😨😩😪😫😭😰😱😲😳😵😷😸😹😺😻😼😽😾😿🙀🙅🙆🙇🙈🙉🙊🙋🙌🙍🙎🙏✂✅✈✉✊✋✌✏✒✔✖✨✳✴❄❇❌❎❓❔❕❗❤➕➖➗➡➰🚀🚃🚄🚅🚇🚉🚌🚏🚑🚒🚓🚕🚗🚙🚚🚢🚤🚥🚧🚨🚩🚪🚫🚬🚭🚲🚶🚹🚺🚻🚼🚽🚾🛀Ⓜ🅰🅱🅾🅿🆎🆑🆒🆓🆔🆕
@好友

全部评论

加载中
游客登录通知
已选择 0 人
自定义圈子
移动
发布帖子
发布动态
发布问答
最新帖子
学而思可多编程掌机改装2PCB设计翻车实录:我踩过的5个大坑,每个都值一万块从0到1学PCB:硬件工程师Layout实战避坑指南从0到1做硬件:智能硬件产品经理全流程实战指南《图解功率半导体》书评
热门版块
查看更多
萤火工场
单片机/MCU论坛
电子元器件
问型号
飞腾
开源硬件项目
每日打卡
电子DIY
维修技术交流
抄图联盟

5

收藏

分享

微信扫码
分享给好友

评论