STM32应用实例十一:基于SPI和AD7192的数据采集

本文介绍了如何在STM32系统中使用SPI接口与AD7192高精度ADC进行数据采集。内容涵盖AD7192的特点、硬件设计、软件初始化、读取转换数据和内部温度的步骤,提供了详细的代码实现。
摘要由CSDN通过智能技术生成

在开发臭氧发生器的时,我们需要一个高分辨率的AD采集,于是选择了AD7192,选择这款ADC的原因比较简单。首先它是24位的符合我们的精度要求;其次它自带时钟,便于节省空间;第三他又4路单端或2路差分输入,与我们需要三路采集相符。

1AD7192简介

AD7192是一款适合高精密测量应用的低噪声完整模拟前端,内置一个低噪声、 24 位Σ-Δ型模数转换器 (ADC)。片内低噪声增益级意味着可直接输入小信号。

AD7192可配置为两路差分输入或四路伪差分输入。片内通道序列器可以使能多个通道,AD7192 按顺序在各使能通道上执行转换,这可以简化与器件的通信。 片内 4.92 MHz时钟可以用作 ADC 的时钟源; 或者也可以使用外部时钟或晶振。 该器件的输出数据速率可在 4.7 Hz 至 4.8 kHz 的范围内变化。

AD7192提供两种数字滤波器选项。 滤波器的选择会影响以编程输出数据速率工作时的均方根噪声和无噪声分辨率、建立时间以及 50 Hz/60 Hz 抑制。 针对要求所有转换均需建立的应用, AD7192 具有零延迟特性。

其功能结构图如下:

2、硬件设计

AD7192的串行接口包含四个信号:CS、DIN、SCLK 和DOUT/RDY。所以我们采用标准的SPI接口来实现AD7192的数据操作。具体的硬件设计图如下:

 

4路输入分别通过运算放大器做前端处理,然后以标准信号输入到AD7192,数字输入输出则接到MCU的SPI接口。

3、软件设计

AD7192内部具有多个寄存器,对AD7192的操作就是通过这些片内寄存器进行控制和数据寄存器/数据寄存器加状态信息配置。这些寄存器包括:通信寄存器、状态寄存器、模式寄存器、配置寄存器、ID寄存器、GPOCON寄存器、失调寄存器以及满量程寄存器。其中通信寄存器和状态寄存器共享地址,读操作时针对的是状态寄存器,写操作时针对的是通讯寄存器。对任何寄存器的操作都是从写通讯寄存器开始。

(1)、AD7192初始化

在使用AD719前先对其实先初始化。首先是软件复位,连续写入40个1就可对AD7192实现复位。复位完成后,对零点和量程进行较准。而后读取各寄存器状态。具体实现代码如下:

/*AD7192初始化配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值