AD7682 - 7689 学习笔记

声明:所有文章属于个人在工作中所记下和搜集的笔记,不得转载

  1. 手册下载地址:https://download.csdn.net/download/real003/11106347
    AD7949/AD7682/AD7689
    在这里插入图片描述
  2. 16位分别率,无失码,4通道(AD7682)/8通道(AD7689)多路复用器,
    可选择输入
    单极性单端输入
    差分输入(使用参考地)
    伪双极性输入
    吞吐率:250Ksps
    AD7682/AD7689具有一个片上转换时钟,因此转换过程不需要串行时钟SCK
  3. 引脚配置
    在这里插入图片描述
    INX:ADC模拟输入通道X;
    REFIN/REF:基准电压输入输出;
    COM:共模通道输入,所有输入通道(IN[7:0])都可以参考一个0V或者Vref/2V的共模点。

SCK:串行数据时钟输入,用于以MSB优先的方式在SDO上输出数据,以及在SDI上输入数据来提供时钟。
DIN:数据输入,此输入用来写入14位配置寄存器。可以在转换期间和转入后写入配置寄存器。
SDO:串行数据输出,转换结果通过此引脚输出,与SCK同步。单极性模式下,转换结果为直接的二进制。双极性模式下,转换结果为二进制补码。
CNV:上升沿,CNV启动转换,转换期间如果CNV表示低电平,则表示芯片处于忙碌状态。

  1. 一个14位寄存器CFG[13:0]用于配置ADC的转换通道/基准电压源选择和其它元件。
    在这里插入图片描述

  2. 当CNV为低电平时,在转换/采集/转换过程中都可以进行读写数据。在前14个时钟周期更新CFG,在第15个SCK下降沿(如果繁忙,则为第16个)输出转换结果。
    推荐使用非连续的SCK时钟,因为当CNV为低则选择这个器件,SCK激活后则开始写入一个新的配置字并输出数据。
    在转换期间读取和写入数据的时候,读取的是上一次(n-1)转换的结果,写入的CFG寄存器是下一次将要采集的信息。

  3. 需要注意的是上电后前三次转换结果都是无意义的,在阶段(n-1)写入CFG寄存器时,第一个有效数据出现在(n+1)阶段。

  4. 无繁忙指示的时序
    在这里插入图片描述

  5. 有繁忙指示的时序
    在这里插入图片描述

  6. 通道序列器:AD7682/AD7689有一个通道序列器,可用于重复扫描通道,但是在实际应用中,有发现在外部供电出现短时间不稳定的时候,通道序列器不稳定的情况,从而导致数据通道采集出现错乱,建议的做法还是不要使用通道序列器来采集电压,以免因为受到环境的影响而影响数据的采集。
    对于序列操作,应在上电后的(n-1)阶段设置CFG寄存器,在阶段n,序列器设置生效并采集IN0.第一个转换结果出现在n+1阶段,对CFG[9:7]所设置的最后一个通道执行转换后,输出内部温度传感器数(如果使能),然后再次采集IN0。
    单极性并以GND为参考:
    IN0,IN1,IN2,IN3,IN4.,IN5,IN6,IN7,TEMP,IN0…
    差分对通道:
    IN0,IN2,IN4,IN6,TEMP,IN0…

  7. 下面是我自己用到的一组参数配置,采用的时AD7682,禁用序列器,仅供参考:
    在这里插入图片描述
    从上面的配置可以看到跟手册描述的貌似有点不太符合,cnt=0的时候配置了CFG IN3通道,按照手册上说的应该是在cnt=2的时候就该采集数据,而实际我这里在cnt=3的时候才采集,这是因为数据在SPI总线里面寄存了一下。

  8. 如果选用序列器,ADC_CFG只需要配置一次即可:
    在这里插入图片描述
    参数仅供参考,可根据自己的实际形况进行修改。

  9. 另外还需要注意一点就是CFG只有14bit,而SPI要配置16bit,根据上面的时序图可知:DIN在发送数据的时候先发送CFG的MSB…LSB,发送完后再发送2‘b00来凑满16bit;SDO在数据接收的时候先接收MSB,最后接收LSB。

  10. DIN在SCK下降沿的时候发送数据,SDO在上升沿的时候接收数据,SCK在IDLE状态下为低电平,即SPI工作在方式1,有关SPI的工作方式可以参考我的另外一篇文档:[https://blog.csdn.net/Real003/article/details/89195789](SPI总线学习笔记)

  11. 有关芯片更加详细的资料可以参考芯片手册,此处仅为本人从手册中摘录下来的笔记

猜你喜欢

转载自blog.csdn.net/Real003/article/details/89206106