0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RX23E-A 24bit ΔΣADC应用篇(4)添加外围功能AFE和DSAD的方法

瑞萨MCU小百科 来源:瑞萨嵌入式小百科 作者:瑞萨嵌入式小百科 2024-05-28 14:13 次阅读

4

添加AFE和DSAD

本节学习如何添加外围功能-AFE和DSAD,并进行设置,每1ms采集外部PT100的温度值。

4.1 参考文档r01an4788ej0110-rx23ee-a.pdf

897b07e4-1ca7-11ef-b74b-92fbcf53809c.png8995b7ce-1ca7-11ef-b74b-92fbcf53809c.png

4.2 打开Smart Configurator,Components标签页点击“+”,Function选择“A/D Converter”,选择“Analog Front End”。

89b928a8-1ca7-11ef-b74b-92fbcf53809c.png

4.3 点击“Next”,点击“Finish”。

89d811a0-1ca7-11ef-b74b-92fbcf53809c.png

4.4 设置AFE,PT100为三线RTD(电阻温度检测器),通过电流激励能产生输出电压。

所以选择从AIN8和AIN9输出250uA的激励电流。板子上已经将J5-2连接到J4-2,J5-1连接到J4-1。

89f073ee-1ca7-11ef-b74b-92fbcf53809c.png

4.5 Components标签页点击“+”,Function选择“A/D Converter”,选择“Continuous Scan Mode DSAD”。

8a04c6f0-1ca7-11ef-b74b-92fbcf53809c.png

4.6 点击“Next”,点击“Finish”。

8a1924ec-1ca7-11ef-b74b-92fbcf53809c.png

4.7 设置DSAD

选择Channel0

不勾选中断

8a294336-1ca7-11ef-b74b-92fbcf53809c.png

Positive input signal选择ANI7

Negative input signal选择AIN6

Reference input选择REF1P/REF1N

勾选Positive reference voltage buffer

勾选Negative reference voltage buffer

选择PGA:x16

A/D conversion number选择Immediate value mode (the number of A/D conversions if from 1 to 255),转换次数设为1

Oversampling ratio:OSR设为50000,那么所对应的OSRm寄存器的值为3124

8a4915da-1ca7-11ef-b74b-92fbcf53809c.png

4.8 点击右上角“Generate Code”生成代码

8a612832-1ca7-11ef-b74b-92fbcf53809c.png

4.9 双击src->smc_gen->Config_DSAD0文件夹中的Config_DSAD0.h

文件的最后,添加下面第2行和第3行的代码

/* Start user code for function. Do not edit comment generated here */
bool r_dsad0_IsConversionEnd (void);
void r_dsad0_ClearIrFlag (void);
/* End user code. Do not edit comment generated here */

4.10 双击src->smc_gen->Config_DSAD0文件夹中的Config_DSAD0.c

文件的最后,添加下面第2行到29行的代码

/* Start user code for adding. Do not edit comment generated here */
/**********************************************************************************************************************
 * Function Name: r_dsad0_IsConversionEnd
 * Description : This function returns the Conversion status of DSAD0.
 * Arguments  : None
 * Return Value : bool
 *          false:Conversion, true:Conversion end
 *********************************************************************************************************************/
bool r_dsad0_IsConversionEnd (void)
{
  return (bool) ((1U == IR(DSAD0, ADI0)) ? true : false);
}
/**********************************************************************************************************************
 End of function r_dsad0_IsConversionEnd
 *********************************************************************************************************************/


/**********************************************************************************************************************
 * Function Name: r_dsad0_ClearIrFlag
 * Description : This function clears the IR flag
 * Arguments  : None
 * Return Value : None
 *********************************************************************************************************************/
void r_dsad0_ClearIrFlag (void)
{
  IR(DSAD0, ADI0)= 0U;
}
/**********************************************************************************************************************
 End of function r_dsad0_ClearIrFlag
 *********************************************************************************************************************/
/* End user code. Do not edit comment generated here */

4.11 从参考例程“r01an4788_rx23ea_rtd”的src文件夹中拷贝以下文件到src文件夹中。

8a6d1976-1ca7-11ef-b74b-92fbcf53809c.png

打开r_rtd_api.h文件,将D_RTD_SELECT宏定义修改为“1”(3线)。

8a9cffd8-1ca7-11ef-b74b-92fbcf53809c.png

4.12 双击rx23ea_local_board_lab.c文件,包含以下头文件(第10-12行,第16-17行)

/***********************************************************************
*
*  FILE        : rx23ea_local_board_lab.c
*  DATE        : 2023-09-16
*  DESCRIPTION : Main Program
*
*  NOTE:THIS IS A TYPICAL EXAMPLE.
*
***********************************************************************/
#include 
#include 
#include 


#include "r_smc_entry.h"


#include "r_sensor_common_api.h"
#include "r_rtd_api.h"

4.13 在main()函数前添加变量定义(第2-3行)

bool timer_flag = false;
static volatile int32_t s_dsad0_value;         /** DSAD0 24bit A/D value storage variable     */
static volatile float  s_temp   = 0;        /** Measurement temperature storage variable    */

4.14 在main函数中添加下面的代码(第1-2行,第6-8行,第10-44行)

  uint32_t dsad0_reg;                 /** DSAD0.DR register storage variable                          */
  float rtd_temp = 0;                             /** Measurement temperature */


  R_Config_TMR0_TMR1_Start();


    /** A/D conversion start */
    R_Config_DSAD0_Start();
    R_Config_DSAD0_Set_SoftwareTrigger();


    while (1)
    {
        if(true == timer_flag){
          timer_flag = false;


      /****************************/
      /** Temperature measurement */
      /****************************/
      /** A/D conversion complete for DSAD0? */
      if (true == r_dsad0_IsConversionEnd())
      {
              int32_t dsad0_value;        /** Signed 24-bit DSAD0 value                                   */


              r_dsad0_ClearIrFlag();      /** clear DSAD0 IR flag                                         */


              /** Get A/D value */
              {
                  R_Config_DSAD0_Get_ValueResult( &dsad0_reg);


                  /** Flag mask, Sign extension */
                  dsad0_value = (int32_t) ((dsad0_reg & 0x00FFFFFFU) << 8) >> 8;
              }
              /** Calculate the temperature [degree] of the reference junction */
              rtd_temp = R_RTD_DsadToTemp((float) dsad0_value);


              /** debug monitor */
              {
                  s_dsad0_value   = dsad0_value;
                  s_temp          = rtd_temp;
              }


      }
        }


    }

4.15 点击8ac06a0e-1ca7-11ef-b74b-92fbcf53809c.png编译代码。

8acb9492-1ca7-11ef-b74b-92fbcf53809c.png

4.16 高亮rx23ea_local_board_lab工程,按下调试按钮8ae94172-1ca7-11ef-b74b-92fbcf53809c.png

4.17 可以通过观测变量的方式检查转换结果。

打开src文件夹中的rx23ea_local_board_lab.c文件,找到s_dsad0_value和s_temp。鼠标移动到变量名上,双击变量名,并点击鼠标右键,选择“Add Watch Expression”。

8af3f2de-1ca7-11ef-b74b-92fbcf53809c.png

在Expressions窗口中,右键点击该变量名,选择Enable Real-time Refresh,将此变量设置为实时刷新。

8b0f2860-1ca7-11ef-b74b-92fbcf53809c.png

4.18 运行代码 (8b49b192-1ca7-11ef-b74b-92fbcf53809c.png),需要点击两次。

可以观察到变量的实时变化。

8b5774da-1ca7-11ef-b74b-92fbcf53809c.png

用手捏住传感器,可以看到数值发生变化。

8b6a1f04-1ca7-11ef-b74b-92fbcf53809c.png

4.19 按下断开按钮8b8d1090-1ca7-11ef-b74b-92fbcf53809c.png或者终止按钮8b9727ce-1ca7-11ef-b74b-92fbcf53809c.png



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • adc
    adc
    +关注

    关注

    98

    文章

    6388

    浏览量

    543726
  • AFE
    AFE
    +关注

    关注

    7

    文章

    216

    浏览量

    121546
  • pga
    pga
    +关注

    关注

    1

    文章

    97

    浏览量

    41485
  • 输出电压
    +关注

    关注

    2

    文章

    1083

    浏览量

    37951
  • 温度检测器
    +关注

    关注

    1

    文章

    23

    浏览量

    11746
  • Pt100
    +关注

    关注

    9

    文章

    172

    浏览量

    69038

原文标题:RX23E-A 24bit ΔΣADC 应用篇 (4) 添加AFE和DSAD [完结]

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RX23E-A 24bit ΔΣADC 应用 (2) 创建RX23E-A工程

    本节学习项目开发,熟悉e2 studio和Smart Configurator,创建工程。
    的头像 发表于 08-02 11:59 1443次阅读
    <b class='flag-5'>RX23E-A</b> <b class='flag-5'>24bit</b> ΔΣ<b class='flag-5'>ADC</b> 应用<b class='flag-5'>篇</b> (2) 创建<b class='flag-5'>RX23E-A</b>工程

    RX23E-A 24bit ΔΣADC应用(3)添加Component-定时器

    本节学习如何添加外围功能 - CMT,并进行设置,每1ms发生一次中断。
    的头像 发表于 05-27 14:05 871次阅读
    <b class='flag-5'>RX23E-A</b> <b class='flag-5'>24bit</b> ΔΣ<b class='flag-5'>ADC</b>应用<b class='flag-5'>篇</b>(3)<b class='flag-5'>添加</b>Component-定时器

    QCC5181QCC3086QCC3084QCC3083 USB Audio 96K/24bit LDAC

    QCC5181QCC3086QCC3084QCC3083 USB Audio 96K/24bit LDAC 1、USB Audio 支持 96K/24bit ; 2、支持sbc/aac/aptx/aptx-HD/aptx-Adaptive/aptx-lossless/I
    的头像 发表于 05-24 17:02 2766次阅读
    QCC5181QCC3086QCC3084QCC3083 USB Audio 96K/<b class='flag-5'>24bit</b> LDAC

    使用RX23E-A对外部电阻式传感器PT100进行温度测量

    RX23E-A系列微控制器配备模拟前端,无需校准即可测量温度、压力、流量和重量,精度优于0.1%,是高精度传感、测试和测量设备的理想之选。
    的头像 发表于 05-23 14:18 1414次阅读
    使用<b class='flag-5'>RX23E-A</b>对外部电阻式传感器PT100进行温度测量

    RX23E-A 24bitΔΣADC基础(4) RX23E-A详解

    RX23E-A的目标应用是需要高精度模拟的工业传感器设备。例如,温度控制器、记录仪、压力表、力传感器、体重秤等。
    的头像 发表于 04-25 14:17 712次阅读
    <b class='flag-5'>RX23E-A</b> <b class='flag-5'>24bit</b>ΔΣ<b class='flag-5'>ADC</b>基础<b class='flag-5'>篇</b>(<b class='flag-5'>4</b>) <b class='flag-5'>RX23E-A</b>详解

    RX23E-A 24bit ΔΣADC基础(3)应用实例及设计要点

    由于应变片/电阻电桥的灵敏度较低*1,请将PGA增益设置为128倍,以使输入参考噪声最小。
    的头像 发表于 04-18 14:03 928次阅读
    <b class='flag-5'>RX23E-A</b> <b class='flag-5'>24bit</b> ΔΣ<b class='flag-5'>ADC</b>基础<b class='flag-5'>篇</b>(3)应用实例及设计要点

    RX23E-A 24bit ΔΣADC基础(2)用于传感器测量的Δ∑ADC的特性

    世界上有各种各样的传感器,除了ΔΣADC之外,还需要各种电路来测量这些传感器。当处理微小信号时,您可能需要在执行AD转换之前放大信号。
    的头像 发表于 04-10 14:30 2052次阅读
    <b class='flag-5'>RX23E-A</b> <b class='flag-5'>24bit</b> ΔΣ<b class='flag-5'>ADC</b>基础<b class='flag-5'>篇</b>(2)用于传感器测量的Δ∑<b class='flag-5'>ADC</b>的特性

    RX23E-A中的24位ΔΣADC转换器和模拟前端介绍

    RX23E-A MCU是32位RX MCU,具有内置FPU和高达256KB闪存,配有模拟前端(AFE),有助于测量压力、流量、温度和重量,精度小于0.1%。
    的头像 发表于 04-08 14:16 1327次阅读
    <b class='flag-5'>RX23E-A</b>中的<b class='flag-5'>24</b>位ΔΣ<b class='flag-5'>ADC</b>转换器和模拟前端介绍

    适用于工业传感器应用的嵌入模拟前端RX23E-B MCU

    新发布的RX23E-B MCU配备125kSPS速率的ΔΣADC,其性能与分立式产品相当,可支持大多数工业传感设备。
    的头像 发表于 01-04 18:23 897次阅读
    适用于工业传感器应用的嵌入模拟前端<b class='flag-5'>RX23E</b>-B MCU

    请问24bit以上的adc有效位能做到多少?

    我们公司有个项目,需要高精度采样,但个人认为24bitADC就已经很难做好了,有人推荐24bit以上的adc,不知道有用过的高人吗,给指点一下迷津,谢谢。
    发表于 12-22 06:54

    AD7766是24bit的SAR带数字滤波的,有没有跟它同系列但是是16bit的?

    AD7766是24bit的SAR带数字滤波的,有没有跟它同系列,但是是16bit的?
    发表于 12-14 06:37

    ADV7611在Power-down模式0下,24bit RGB输出接口的每个Pin脚是否处于高组态?

    ADV7611在 Power-down模式0下,24bit RGB输出接口的功能没有启用,那24bit RGB输出接口的每个Pin脚是否处于高组态?
    发表于 12-01 13:32

    高精度24bit ADC MCT1248产品介绍

    MCT1248 是高精度 24bit ADC,集成低噪声 PGA、单循环数字滤波器、高精度Δ-Σ AD 转换器和内部振荡器,其输入模拟多路复用器支持四路差分输入。此外,该多路复用器集成了传感器失效检测,热电偶电压偏置,系统监控和通用数字 I/O。
    的头像 发表于 11-29 11:15 889次阅读
    高精度<b class='flag-5'>24bit</b> <b class='flag-5'>ADC</b> MCT1248产品介绍

    瑞萨面向高端工业传感器系统推出高精度模拟前端的32位RX MCU

    RX23E-A产品快8倍。与RX23E-A相比,它可以处理精确的A/D转换,同时将均方根(RMS)噪声降低至1/3(0.18?Vrms
    的头像 发表于 11-23 13:59 431次阅读

    国产MCU中 24bit 高精度ADC,如何使用?

    ARM-M0内核+24bit 高精度 ADC,如何使用?
    发表于 11-16 15:53