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

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

3天内不再提示

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

瑞萨嵌入式小百科 来源:瑞萨嵌入式小百科 作者:瑞萨嵌入式小百科 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
    +关注

    关注

    100

    文章

    7976

    浏览量

    557376
  • AFE
    AFE
    +关注

    关注

    8

    文章

    339

    浏览量

    124464
  • pga
    pga
    +关注

    关注

    1

    文章

    114

    浏览量

    42489
  • 输出电压
    +关注

    关注

    2

    文章

    2055

    浏览量

    41363
  • 温度检测器
    +关注

    关注

    1

    文章

    23

    浏览量

    12115
  • Pt100
    +关注

    关注

    9

    文章

    174

    浏览量

    71693
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Renesas RX23E - A Group MCU:高性能与低功耗的完美融合

    Renesas RX23E - A Group MCU:高性能与低功耗的完美融合 在电子设计领域,微控制器(MCU)的性能和特性直接影响着产品的功能和稳定性。Renesas RX23E
    的头像 发表于 04-01 16:45 705次阅读

    WM8786 24 - bit, 192kHz 立体声 ADC 深度解析

    WM8786 24 - bit, 192kHz 立体声 ADC 深度解析 在音频处理领域,一款高性能的 ADC 芯片对于实现优质音频录制至关重要。今天我们就来深入了解一下 Cirrus
    的头像 发表于 03-27 10:05 237次阅读

    探索Renesas RSSKRX23E - B开发板:功能、使用与注意事项

    探索Renesas RSSKRX23E - B开发板:功能、使用与注意事项 在电子工程师的日常工作中,一款功能强大且稳定的开发板能为项目的开展提供极大的便利。今天,我们就来深入了解一下Renesas
    的头像 发表于 12-29 11:05 917次阅读

    AFE80xx 系列技术文档总结

    AFE8000是一款高性能、宽带宽的多通道收发器,集成了8个RF采样DAC和10个RF采样ADC。引脚和编程兼容的低通道数版本(AFE8004具有 4TX 和
    的头像 发表于 10-29 14:07 1058次阅读
    <b class='flag-5'>AFE</b>80xx 系列技术文档总结

    AFE8010 射频采样接收器技术文档总结

    AFE8000是一款高性能、宽带宽的多通道收发器,集成了8个RF采样DAC和10个RF采样ADC。引脚和编程兼容的低通道数版本(AFE8004具有 4TX 和
    的头像 发表于 10-29 09:45 726次阅读
    <b class='flag-5'>AFE</b>8010 射频采样接收器技术文档总结

    AFE8004射频采样收发器技术文档总结

    AFE8000是一款高性能、宽带宽的多通道收发器,集成了8个RF采样DAC和10个RF采样ADC。引脚和编程兼容的低通道数版本(AFE8004具有 4TX 和
    的头像 发表于 10-29 09:35 738次阅读
    <b class='flag-5'>AFE</b>8004射频采样收发器技术文档总结

    AFE432A3W/AFE532A3W 技术文档总结

    10 位 AFE532A3W 和 8 位 AFE432A3W (AFEx32A3W) 是 3 通道、缓冲电压输出、电流输出和 ADC 输入、智能模拟前端 (
    的头像 发表于 10-27 13:49 1981次阅读
    <b class='flag-5'>AFE432A</b>3W/<b class='flag-5'>AFE532A</b>3W 技术文档总结

    AFE159P4数据手册完整总结

    AFE1594是一系列多通道、同步采样、24 位、三角积分 (ΔΣ) 模数转换器 (ADC),具有内置可编程增益仪表放大器 (INA)、内部基准电压源和片上 PLL。AFE 支持数字
    的头像 发表于 10-23 10:46 793次阅读
    <b class='flag-5'>AFE159P4</b>数据手册完整总结

    AFE53004W 4通道智能AFE,带10位DAC、10位ADC、IDAC和EEPROM技术手册

    10 位 AFE53004W 和 12 位 AFE63004W (AFEx3004W) 是一系列 4 通道、超低功耗智能模拟前端 (AFE) 器件。这些器件具有一个具有四个独立通道的共
    的头像 发表于 10-21 15:17 876次阅读
    <b class='flag-5'>AFE</b>53004W <b class='flag-5'>4</b>通道智能<b class='flag-5'>AFE</b>,带10位DAC、10位<b class='flag-5'>ADC</b>、IDAC和EEPROM技术手册

    主板的RGB接口是16bit位(RGB-565),怎么24bit位RGB接口的 屏幕 接线 ?

    求助各位大神, 主板的RGB接口是16bit位(RGB-565),怎么24bit位RGB接口的 屏幕 接线 ?
    发表于 09-16 10:13

    德州仪器AFE80xx系列RF采样收发器技术解析与应用设计指南

    Texas Instruments AFE80xx RF采样收发器是高性能、宽带宽多通道收发器系列,集成了多达八个RF采样DAC和十个RF采样ADC。其中,引脚和编程兼容的低通道数版本(具有4TX和
    的头像 发表于 09-08 11:19 1759次阅读
    德州仪器<b class='flag-5'>AFE</b>80xx系列RF采样收发器技术解析与应用设计指南

    液晶显示屏LVDS接口JEIAD 、VESA、18bit LVDS关联和区别

    方式: 它使用4个数据通道(3个传RGB数据,1个传时钟和控制信号)。 在每个时钟周期内,它将3个8bit的R/G/B数据(共24bit)和3个控制信号(HS, VS, DE)拆分到3个传输周期
    发表于 08-30 09:13

    A23: BMIC器件知识与应用专题--AFE芯片知识及应用案例

    介绍 “A23-1锂保IC知识及选用案例”、 “A23-2电量计知识及选用案例” 、“A23-3 AFE知识及选用案例”。每个部分包含如下4
    的头像 发表于 08-10 21:12 746次阅读
    <b class='flag-5'>A23</b>: BMIC器件知识与应用专题--<b class='flag-5'>AFE</b>芯片知识及应用案例

    AFE539A4EVM评估模块技术解析与应用指南

    Texas Instruments AFE539A4EVM评估模块评估用于热电冷却 (TEC) 控制的10位AFE539A4智能模拟前端 (AFE) 的性能和功能。 这个易于使用的模
    的头像 发表于 08-07 16:01 1317次阅读
    ‌<b class='flag-5'>AFE539A4</b>EVM评估模块技术解析与应用指南

    Texas Instruments AFE159x 4通道24位模拟前端(AFE)数据手册

    Texas Instruments AFE159x 4通道24位模拟前端(AFE)是一系列多通道、24位同步采样、Δ-Σ模数转换器(Δ
    的头像 发表于 07-06 17:14 1106次阅读