AD7124-4BRUZ-RL7 模数转换器(ADI / ADC)

AD7124-4是一款适合高精度测量应用的低功耗、低噪声、完整模拟前端。该器件内置一个低噪声24位Σ-Δ型模数转换器(ADC),可配置来提供4个差分输入或7个单端或伪差分输入。片内低噪声级确保ADC中可直接输入小信号。

AD7124-4的主要优势之一是用户可灵活使用三种集成功率模式。当前的功耗、输出数据速率范围和均方根噪声均可通过所选功率模式进行定制。该器件还提供多个滤波器选项,确保为用户带来更大的灵活性。

当输出数据速率为25 SPS(单周期建立)时,AD7124-4可实现50 Hz和60 Hz同时抑制,且在较低输出数据速率下,可实现超过80 dB的抑制性能。

AD7124-4提供高的信号链集成度。该器件内置一个精密低噪声、低漂移内部带隙基准电压源,也可采用内部缓冲的外部差分基准电压。其他主要集成特性包括可编程低漂移激励电流源、开路测试电流控制和偏置电压发生器,后者可将某一通道的共模电压设置为AVDD/2。低端功率开关支持用户在两次转换之间关断桥式传感器,确保系统功耗较低。该器件还允许用户采用内部时钟或外部时钟工作。

内置通道序列器可以同时使能多个通道,AD7124-4按顺序在各使能通道上执行转换,简化了与器件的通信。多达16个通道可随时使能;这些通道具有模拟输入或诊断功能(比如电源检查或基准电压源检查)。这一独特的特性允许诊断和转换交替进行。缓冲和基准电压源。 用户可在各通道上分配任何设置。

AD7124-4还支持按通道配置。该器件支持8种配置或设置。每种配置包括增益、滤波器类型、输出数据速率、缓冲和基准电压源。用户可在各通道上分配任何设置。

AD7124-4还集成了丰富的诊断功能,作为全面特性组合的一部分。这些诊断功能包括循环冗余校验(CRC)、信号链检查和串行接口检查,从而提供更强大的解决方案。这些诊断功能可减少执行诊断功能所需的外部元件,从而减少对电路板空间的需求,缩短设计时间并节省成本。根据IEC 61508,典型应用的失效模式影响和诊断分析(FMEDA)表明安全失效比率(SFF)大于90%。

该器件采用2.7 V至3.6 V单模拟电源或1.8 V双电源工作。数字电源范围为1.65 V至3.6 V。器件的额定温度范围为−40°C至+105°C。AD7124-4采用32引脚LFCSP封装或24引脚TSSOP封装。

应用 温度测量 压力测量 工业过程控制 仪器仪表 智能变送器 智能变送器

特性

• 三种功率模式
• 有效值噪声• 低功耗:24 nV rms (1.17 SPS),增益=128(典型值255 µA)
• 中功率:20 nV rms (2.34 SPS),增益=128(典型值355 µA)
• 全功率:23 nV rms (9.4 SPS),增益=128(典型值930 µA)
• 在所有功率模式下,无噪声分辨率高达22位(增益=1)
• 输出数据速率• 全功率:9.38 SPS至19,200 SPS
• 中功率:2.34 SPS至4800 SPS
• 低功耗:1.17 SPS至2400 SPS
• 轨到轨模拟输入(增益大于1)
• 50 Hz/60 Hz同时抑制(25 SPS,单周期建立)
• 诊断功能(有助于安全完整性等级(SIL)认证
• 交叉点多路模拟输入• 4个差分/7个伪差分输入
• 可编程增益(1至128)/li>
• 带隙基准电压源,漂移最大值为10 ppm/°C (70 μA)
• 可编程匹配激励电流
• 内部时钟振荡器
• 片内偏置电压发生器
• 低端功率开关
• 通用输出
• 多个滤波器选项
• 内部温度传感器
• 自校准和系统校准
• 传感器开路检测
• 自动通道时序控制器
• 各通道独立配置
• 电源:2.7 V至3.6 V和±1.8 V
• 独立接口电源
• 关断电流:5 μA(最大值)
• 温度范围:−40°C至+125°C
• 32引脚LFCSP/24引脚TSSOP
• 3线或4线串行接口• SPI、QSPI、MICROWIRE和DSP兼容
• SCLK引脚内的施密特触发
• ESD: 4 kV
AD7124-4-EP支持防务和航空航天应用(AQEC标准)• 下载AD7124-4-EP数据手册 (PDF)
• 整个军用温度范围:-55°C至+125°C
• 受控制造基线
• 封装/测试厂
• 制造厂
• 产品变更通知
• 认证数据可应要求提供

应用

• 温度测量
• 压力测量
• 工业过程控制
• 仪器仪表
智能变送器• 智能变送器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是基于STM32F103和AD7172-2BRUZ-RL的C语言程序驱动实现: 首先,需要包含相应的头文件和库文件: #include "stm32f10x.h" #include "stm32f10x_spi.h" #define AD7172_CS_PIN GPIO_Pin_4 // AD7172芯片片选引脚 #define AD7172_CS_PORT GPIOA // AD7172芯片片选引脚所在端口 // 初始化SPI的函数,设置SPI速度等参数 void init_spi() { // 打开SPI2时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE); // 初始化GPIO口 GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); // 初始化SPI口 SPI_InitTypeDef SPI_InitStructure; SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; SPI_InitStructure.SPI_Mode = SPI_Mode_Master; SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge; SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8; SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; SPI_Init(SPI2, &SPI_InitStructure); // 打开SPI2 SPI_Cmd(SPI2, ENABLE); } // 初始化AD7172芯片的函数 void init_ad7172() { // 设置AD7172芯片片选引脚为输出式 GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = AD7172_CS_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(AD7172_CS_PORT, &GPIO_InitStructure); } // 发送SPI命令并读取返回数据的函数 uint8_t spi_transfer(uint8_t data) { // 等待SPI发送缓冲区为空 while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET); // 发送数据 SPI_I2S_SendData(SPI2, data); // 等待SPI接收缓冲区有数据 while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET); // 返回接收到的数据 return SPI_I2S_ReceiveData(SPI2); } // 读取AD7172中指定寄存器的函数 uint32_t ad7172_read_reg(uint8_t addr) { uint32_t data = 0; // 使能AD7172芯片片选 GPIO_ResetBits(AD7172_CS_PORT, AD7172_CS_PIN); // 发送读寄存器命令 spi_transfer(0x4); // 发送寄存器地址 spi_transfer(addr); // 从AD7172芯片读取数据 data |= spi_transfer(0x0) << 16; data |= spi_transfer(0x0) << 8; data |= spi_transfer(0x0) << 0; // 关闭AD7172芯片片选 GPIO_SetBits(AD7172_CS_PORT, AD7172_CS_PIN); // 返回读取到的数据 return data; } // 写入AD7172中指定寄存器的函数 void ad7172_write_reg(uint8_t addr, uint8_t data) { // 使能AD7172芯片片选 GPIO_ResetBits(AD7172_CS_PORT, AD7172_CS_PIN); // 发送写寄存器命令 spi_transfer(0x2); // 发送寄存器地址 spi_transfer(addr); // 向寄存器中写入数据 spi_transfer(data); // 关闭AD7172芯片片选 GPIO_SetBits(AD7172_CS_PORT, AD7172_CS_PIN); } // 主函数 int main(void) { // 初始化SPI init_spi(); // 初始化AD7172芯片 init_ad7172(); // 读取AD7172芯片的ID号 uint32_t id = ad7172_read_reg(0x0); // 将ID号输出 printf("AD7172 ID: %x\n", id); // 将AD7172芯片中某个寄存器的值设置为0x55 ad7172_write_reg(0x1, 0x55); // 等待一段时间 for (int i = 0; i < 1000000; i++); // 读取该寄存器的值,并输出 uint8_t reg_value = ad7172_read_reg(0x1) & 0xFF; printf("AD7172 REG: %x\n", reg_value); // 死循环,防止程序退出 while (1); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值