snifer

ADI阻抗测量芯片AD5933及其应用

0
阅读(5192)
最近在学习ADI的阻抗测量芯片,尤其对AD5933认识比较深刻,查阅了很多资料,现总结如下,以共勉之。
1 AD5933芯片概述
1.1 主要性能
AD5933是一款高精度的阻抗测量芯片,内部集成了带有12位,采样率高达1MSPS的AD转换器的频率发生器。这个频率发生器可以产生特定的频率来激励外部电阻,电阻上得到的响应信号被ADC采样,并通过片上的DSP进行离散的傅立叶变换。傅立叶变换后返回在这个输出频率下得到的实部值R和虚部值I。这样就可以很容易的计算出在每个扫描频率下的傅立叶变换的模和电阻的相角。其中模= ,相角=
AD5933主要具有以下特性:
 可编程的频率发生器,最高频率可达100KHz
作为设备通过I2C 口和主机通讯,实现频率扫面控制
频率分辨率为27位(<0.1Hz)
 阻抗测量范围为100Ω到10MΩ
内部带有温度传感器,测量误差范围为±2℃
带有内部时钟
可以实现相位测量
 系统精度为0.5%
可供选择的电源范围为2.7V到5V
正常工作的温度范围-40℃到+125℃
 16脚SSOP封装
1.2 AD5933的引脚定义
图1给出了AD5933的封装图,表1给出了AD5933的引脚定义。建议在使用时把所有的电源脚9、10、11都连到一起,统一连接到电源上,同样所有的地引脚12、13、14也都连接到一起,统一连接到系统地上


图1 AD5933引脚排列

表1 AD5933引脚定义


1.3 主要应用
AD5933可以广泛的应用在电化学分析、生物电极阻抗测量、阻抗谱分析、复杂阻抗测量、腐蚀监视和仪器保护、生物医学和自动控制传感器、无创检测、原材料性能分析以及燃料和电池状态监测等众多领域。为阻抗的测量提供了很大的方便,单片集成技术大大的减小了仪器的体积,使得仪器使用更加方便。简单的I2C通讯方式,方便用户操作,减小了用户编程的困难。由于它给出的直接是变换后阻抗的实部和虚部数据,大大的简化了用户编程过程,节省了开发时间。
2 AD5933工作原理
2.1 AD5933的参数设置
AD5933片上带有一个27位的DDS来提供输出特定频率激励信号。输入到DDS状态寄存器的数据由AD5933片上地址为82h、83h、84h的起始频率寄存器提供。尽管状态寄存器提供27位的精度,但其实起始频率寄存器的高三位是被内部置零的,所以用户可以控制的只有起始频率的低24位。AD5933可以实现0.1Hz的频率分辨率,频率分辨率是通过片上24位频率增量寄存器来控制的。频率增量寄存器的地址为85h、86h、87h。起始频率和频率分量寄存器的代码的计算方法为要求的起始频率值或者频率增量值除以四分之一的系统时钟再乘以2的27次方。系统时钟可以通过控制寄存器来设置是选择外部时钟还是内部时钟,AD5933的内部时钟为16MHz。还可以在寄存器88h和89h中设置频率点个数。例如,如果用户想测量150个频率点,则用户给88h和89h中分别存入00H和96H。当这三个参数都设置好之后,可以通过给控制寄存器写入起始频率扫描命令来实现扫描初始化。当完成每个频率点的扫描后状态寄存器的第二位将自动置位,可以通过查询这位来判断是否测量完成,用户可以自行控制实现跳到下一个频率点。测量 结果的实部保存在94h和95h中,虚部保存在96h和97h中,这个结果应该在跳到下一个频率点之前读出。如果想要多次测量同一个频率点的值,以使得测量结果更加精确,只需在一次测量完成之后在控制寄存器中写入重复当前频率命令字即可。当所有的频率点都扫描完时,状态寄存器的第三位将被自动置位。一旦这位被置位后,将不能进一步实现频率扫描。
频率扫描的具体过程包括三部分:
(1) 进入标准模式,在写入开始频率扫描控制字到控制寄存器之前,首先要写入
标准模式控制字到控制寄存器,在这个模式中VOUT和VIN引脚被内部接到地,因此在外部电阻或者电阻和地之间没有直流偏置。
(2) 进入初始化模式。在写入开始频率控制字到控制寄存器后将进入初始化模式。
在这个模式下,电阻已经被起始频率信号激励,但没有进行测量。用户可以通过程序设置在写入频率扫描命令到控制寄存器来启动进入频率扫描模式之前的时间。
(3) 进入频率扫描模式。用户通过写入频率扫描控制字。在这个模式中,ADC在
设定时间周期过去之后开始测量。用户可以通过在每个频率点测量之前设置寄存器8Ah和8Bh的值来控制输出频率信号的周期数。
片上DDS输出的信号通过一个可编程增益放大器,通过控制增益可以实现四个不同范
围的峰峰值输出。这个输出范围的控制是在控制寄存器的第9和第10位实现的。
在接收过程中,从电阻上得到的信号首先进入电流电压转换放大器,后面紧跟的是一个可编程增益放大器,这个放大器的增益有5和1两个值,可以通过设置控制寄存器的第8位来选择。经过可编程增益放大器之后的信号被ADC采样,采样得到的数据送DSP进行傅立叶变换。每个频率采样1024个点进行傅立叶变换,变换的结果存储在两个16位的寄存器中代表变换后的实部和虚部,每个16位的寄存器分别为两个8位的寄存器组成,这个将在下面的寄存器介绍中专门给出。
AD5933的系统时钟可以通过两个途径给出。用户可以在外部时钟引脚MCLK接入一个高精度稳定的时钟。另外也可以使用AD5933内部16.776MHz的时钟。具体选择哪个时钟可以通过设置控制寄存器的第3位来实现。系统上电默认为选择内部时钟。
2.2 内部寄存器定义及设置
AD5933片上有9个寄存器。这些寄存器分别实现不同的参数设置功能,表2中给出了它们的名称、地址和读写特性。
表2 内部寄存器

起重大部分寄存器已经在上面提到过了。首先主要介绍一下控制寄存器。控制寄存器主要实现AD5933各参数的设置以及工作状态的设定。表3给出了控制寄存器各个位的功能定义。控制寄存器由两个8位的寄存器组成,地址分别为80h和81h,在使用时,用户可以只改变其中一个寄存器的值,而另外一个寄存器的值不变。当给控制寄存器写入复位命令时不会使得已经编程好的和频率扫描有关的设置复位,和频率扫描有关的值为起始频率,频率增量和频率点数。在复位命令之后,必须写入开始频率命令到控制寄存器来重新开始频率扫描过程。上电之后控制寄存器的缺省值为A000H。
表3 AD5933内部寄存器位定义

除了控制寄存器外,需要注意的还有状态寄存器,状态寄存器的地址是8Fh。状态寄存器来标志测量的结束。D7到D0各位分别表示AD5933的不同功能状态,其中D4至D7没有实际意义,不表示任何测量状态。(D0表示温度测量 完成时,这位被置1)。D1表示一个频率点的阻抗测量,当完成当前频率点的阻抗测量时,这位被置1,同时表明实部和虚部数据寄存器中已经存入测量结果。在接到开始,跳到下个频率点,重复当前频率或复位等命令时该位被自动复位,在上电时这位也被复位。D2表示频率扫描完成,当所有的频率点都测量结束时该位被置1,当接受到复位命令或上电时这位被复位。
2.3 AD5933与控制系统的数据传输
AD5933与控制系统的通讯是用 实现的,作为 设备使用,遵守 通讯的时序。它有一个七位的设备地址0001101。当控制系统写入到AD5933时没有什么特别说明的,当从AD5933读数据时,首先要写入B0h到AD5933,然后写入要读出数据的寄存器地址,读出寄存器的值。
2.4 温度测量实现
AD5933片上的温度传感器是一个13位的数字温度传感器,第14位是一个标志位。温度传感器可以精确测量周围器件的温度。温度传感器的测量范围是-40℃到+125℃,当温度达到+150℃时,当工作在电压和温度的最大规格时,结构完整性将受到破坏。测量温度的精度为±2℃。
温度测量过程的转换时钟由内部产生,只有从串口读取或写入数据才需要外部时钟。一般模式下,内部时钟自动完成转换过程。默认情况下温度传感器处于掉电状态,要启动温度测量需要在控制寄存器中写入温度测量控制字,在测量完成后温度传感器自动关闭,直到下次接受到命令再启动。用户可以通过读取状态寄存器的值来检查温度测量是否结束,温度测量的结果保存在92h和93h中。其中有14位是有用数据,最高两位没有意义。DB13是一个标志位。表4中给出了部分测量数据与实际温度的对应关系。对于具体的温度测量数据可以通过公式得到,如果测量温度为正,则等于所得数据的十进制表示值除以32。如果测量温度值为负,且把DB13的值也计算在内,则等于测得数据的十进制值减去16384后再除以32,若不把DB13的值计算在内,则等于测量数据的十进制值减去8192后再除以32。
Baidu
map