AD7124-4 实测热电偶数据读取,电压精度到稳定到±1uV, 电压波动260nV, 温度精度到±0.01℃

CH0 CH1两通连续转换模式,PGA 64: SPS: 8.89 使用快速建立模式, Sinc3 + Sinc1
(偏置与增益寄存器均使用原厂默认参数,这2个寄存器未配置)
CH0(AIN0 AIN1)对应 CONFIG0 CH1(AIN2 AIN3)对应CONFIG1。 两个通道均是双极性配置,AIN0上使能了内部偏置电压。(为了热电偶应用)

当然,要让ADC运行稳定 首先硬件上ADC电路,供电电路要稳定,AD7124-4我是自己针对客户应用的做的隔离模块。AD7124 SPI通讯使用隔离SPI芯片。

ADC的电源 是这样。 ADDC+DCDC隔离模块B0505+LDO最终到3.3V, 还有其它包括不限于 共模滤波 三端滤波器 等等。高精度外部2.5V参考电压源。
ACDC:是从市电转成5V
DCDC隔离模块用的B0505。5V转成隔离5V 专供ADC模块。
LDO:RTQ2520GQW(这个不好买,建议用其它的超低噪声LDO): 隔离后5V再降压成3.3V专供AD7124

///AD7124多通道连续转换模式初始化
///1对1映射
void Ad7124_Multichannel_Continuous_Conversion_Init( void )
{
    ///uint32_t temp_32bit=0;
  
    Ad7124_Sofe_Reset();  ///上电后一定要复位,否则ADC会运行异常。
    
    uint8_t temp[2]={0XFF,0XFF};
    vTaskDelay( 100 );
    Ad7124_Read_Regs( Ad7124Regs[AD7124_ID_REG].addr, temp, Ad7124Regs[AD7124_ID_REG].size );
    temp[0]&=0XF0; ///去掉低4位才是DEVICE_ID 
    
    if( temp[0] == AD7124_DEVICE_ID )
    {
        DBG_PRINTF( "ad7124 read Id ok\r\n" );
    }
    else
    {
        DBG_PRINTF( "ad7124 read Id ERROR\r\n" );
    }
    
    vTaskDelay( 100 );
    Read_Ad7124_State_Reg(); ///上电后要先读取一次状态寄存器 
    vTaskDelay( 100 );
    ///写AD7124 控制寄存器  ///连续转换  AD7124_ADC_CTRL_REG_DATA_STATUS
    Ad7124Regs[AD7124_ADC_CTRL_REG].value=AD7124_ADC_CTRL_REG_DATA_STATUS |AD7124_ADC_CTRL_REG_DOUT_RDY_DEL
                       | AD7124_ADC_CTRL_REG_REF_EN | AD7124_ADC_CTRL_REG_POWER_MODE( CTRL_FULL_POWER )\
                       | AD7124_ADC_CTRL_REG_MODE( CTRL_CONTINUOUS_CONVERSION_MODE ) | AD7124_ADC_CTRL_REG_CLK_SEL( 0 );
     Ad7124_Write_Regs( AD7124_ADC_CTRL_REG, Ad7124Regs[AD7124_ADC_CTRL_REG].value,Ad7124Regs[AD7124_ADC_CTRL_REG].size );
     
    ///写AD7124 通道0寄存器,0号通道开启
    Ad7124_Write_Regs( AD7124_CH0_MAP_REG, AD7124_CH_MAP_REG_CH_ENABLE\
                       | AD7124_CH_MAP_REG_SETUP( CH_SETUP0 ) | AD7124_CH_MAP_REG_AINP( CH_AIN0 ) | AD7124_CH_MAP_REG_AINM( CH_AIN1 ), SIZE_BYTE2 );
    ///写AD7124 通道1寄存器
    Ad7124_Write_Regs( AD7124_CH1_MAP_REG, AD7124_CH_MAP_REG_CH_ENABLE \
                       | AD7124_CH_MAP_REG_SETUP( CH_SETUP1 ) | AD7124_CH_MAP_REG_AINP( CH_AIN2 ) | AD7124_CH_MAP_REG_AINM( CH_AIN3 ), SIZE_BYTE2 );


    ///写AD7124 配置1寄存器   64 ±39.06 mV
    Ad7124_Write_Regs( AD7124_CFG0_REG, AD7124_CFG_REG_BIPOLAR \
                       | AD7124_CFG_REG_AIN_BUFP | AD7124_CFG_REG_AINN_BUFM \
                       | AD7124_CFG_REG_REF_SEL( CFG_REF_REFIN1 ) | AD7124_CFG_REG_PGA( CFG_PGA_64 ), SIZE_BYTE2 );

    ///写AD7124 配置2寄存器  64 ±39.06 mV
    ///双极性 | 打开ADC+缓冲  | 打开ADC-缓冲 | REF_SEL(x) x=2 外部REF1基准 | REG_PGA(AD7124_PGA_64) 6对应增益64(±39.06mV)
    Ad7124_Write_Regs( AD7124_CFG1_REG, AD7124_CFG_REG_BIPOLAR
                      | AD7124_CFG_REG_AIN_BUFP | AD7124_CFG_REG_AINN_BUFM \
                       | AD7124_CFG_REG_REF_SEL( CFG_REF_REFIN1 ) | AD7124_CFG_REG_PGA( CFG_PGA_64 ), SIZE_BYTE2 );


    ///写AD7124 滤波寄存器0  sinc3+SIN1 快速模式  120  8.89Hz 以16为基数计算均值)
    Ad7124_Write_Regs( AD7124_FILT0_REG, AD7124_FILT_REG_FILTER( FILT_FILTER_SINC3_SIN1 )\
                       | AD7124_FILT_REG_REJ60 | AD7124_FILT_REG_POST_FILTER( 0 ) | AD7124_FILT_REG_FS( 120 ), SIZE_BYTE3 );
                       
    ///写AD7124 滤波寄存器1 sinc3+SIN1 快速模式 120  8.89Hz 以16为基数计算均值)
    Ad7124_Write_Regs( AD7124_FILT1_REG, AD7124_FILT_REG_FILTER( FILT_FILTER_SINC3_SIN1 )\
                       | AD7124_FILT_REG_REJ60 | AD7124_FILT_REG_POST_FILTER( 0 ) | AD7124_FILT_REG_FS( 120 ), SIZE_BYTE3 );

    Ad7124_Write_Regs( AD7124_IO_CTRL2_REG, AD7124_IO_CTRL2_REG_GPIO_VBIAS0, Ad7124Regs[AD7124_IO_CTRL2_REG].size ); 
}

因终端客户保密,发不了全部代码头文件及宏定义(这些宏定义就是寄存器配置参数值,请自行参考手册)。AD7124寄存器读写寄存用 STM32硬件SPI读取

实测K热电偶电压读取。 uV小数点后面丢弃。电压稳定在±1uV
在这里插入图片描述
转换成K热电偶温度,温度稳定在±0.01℃
在这里插入图片描述
实测 uV小数量点后面3位 ,实测数据波动 260nV. 与手册所写Sinc3 + Sinc1滤波器 SPS8.89配置 噪声0.036(RMS)X6.6=0.2376uV 结果比较接近。(当然用ADC自行读取,比不上示波器更精准)
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
AD7124-4是一款可编程增益放大器,由Analog Devices公司生产。它集成了四个独立的放大器,适用于精密测量和传感器放大应用。 STM32是一系列由STMicroelectronics公司生产的32位微控制器。它们基于ARM Cortex-M处理器核心,并具有丰富的外设和功能,适用于广泛的应用领域。 当我们谈论AD7124-4与STM32时,通常是指在使用STM32微控制器的项目中,与AD7124-4增益放大器进行集成和连接。这种集成可以实现对传感器信号的放大和处理。 在使用AD7124-4与STM32进行集成时,需要注意以下几点: 1. 连接:首先,必须建立AD7124-4与STM32之间的物理连接。这通常涉及到将AD7124-4的引脚与STM32的引脚连接,以实现数据和控制信号的传输。 2. 编程:其次,需要编写适当的软件程序来控制AD7124-4的操作。这包括配置增益、滤波器设置、数据采集等。通过STM32的GPIO和SPI(串行外围接口)等功能,可以与AD7124-4进行通信和控制。 3. 数据处理:一旦AD7124-4开始采集数据STM32可以对数据进行进一步处理和分析。这可能包括滤波、校准、数据显示等。 通过AD7124-4与STM32的集成,可以实现高精度的传感器测量和数据处理。它们在各种应用中都被广泛使用,如工业自动化、医疗设备、仪器仪表等。同时,AD7124-4和STM32的组合也提供了丰富的开发资源和支持,使开发人员能够更轻松地实现各种应用需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值