ADS8681/5/9芯片部分中文资料
ADS8681/5/9 16位ADC 单电源5v供电,单电源供电,支持正负电压ADC,支持ADC输入电压范围: ±3 × VREF ±2.5 × VREF ±1.5 × VREF ±1.25 × VREF ±0.625 × VREF 3 × VREF 2.5 × VREF 1.5 × VREF 1.25 × VREF 其中:VREF为基准电压,可通过操作寄存器配置为内部基准(默认)4.096v和电路外加外部基准(范围:4.046~4.146); 输入电压范围可通过操作寄存器配置,默认±3 × VREF范围输入; 三种模式状态 ACQ: 在此状态下,设备获取模拟输入信号,需要保证时间长度为tacq以上。设备在开机、异步复位或每次转换结束后进入ACQ状态。RST引脚输入信号的下降沿将设备从ACQ状态带入复位状态。CONVST/CS信号的上升沿将设备从ACQ状态转换CONV状态。
CONV: CS引脚收到信号上升沿,设备从ACQ状态变换到CONV状态。ADC转换过程使用内部时钟,设备忽略CS输入信号的任何进一步转换,直到正在进行的转换完成(即在tconv的时间间隔期间)。当转换结束时,RVS引脚输出信号会由低到高转换,主控设备可以监控RVS引脚以缩短采样周期。若未检测RVS引脚,则可通过使CS引脚处于高电平的时间足够以用于保证在这段时间内完成ADC转换。 RESET:低电平有效。为了进入复位状态,RST引脚必须被拉低并在twl_RST时间长度内保持低位。该设备具有两种不同类型的复位功能:应用程序复位或开机复位(POR)。默认配置是当拉到低电平时发出开机复位。当POR发出时,设备的所有内部电路(包括PGA、ADC驱动和电压参考)都被复位。当设备从POR状态出来时,必须允许延时t D_RST_POR长度的持续时间,保证所有电路复位完成以转换到ACQ模式。 为了退出复位状态(应用程序复位或开机复位),RST引脚必须拉高且CONVST/CS引脚和SCLK引脚保持低电平。经过tD_RST_POR或tD_RST_APP时间长度延迟后,设备进入ACQ状态,RVS引脚输出高电平。 通信 支持multispi、标准spi及多设备spi菊花链形式通信; 以标准spi通信为例: CONVST/CS引脚复用于设备状态切换和数据通信(文中简称CS),设备和主机控制器之间的数据传输帧从CS引脚输入信号的下降沿开始,在随后的上升沿结束。在CONV阶段结束后,主机控制器可以通过降低CONVST/CS信号(如图75所示)来启动一个数据传输帧。 不管是输入或是输出数据,设备spi通信默认SPI-00-S模式(时钟极性CPOL=0;相位极性CPHA=0),此时: ADS868X接收数据:由主控制器产生的时钟在闲置时保持低电平,在第一个脉冲上升沿接收数据帧的第一位MSB(数据接收由高位MSB到低位LSB); ADS868X发送数据:在CS信号下降沿装填数据帧第一个数据LSB(数据发送由低位LSB到高位MSB),此后在时钟信号的每一个下降沿装填数据;对应的主控制器在脉冲上升沿接收数据。 Spi通信模式可通过改变SDI_CTL_REG register和SDO_CTL_REG register寄存器值改变。 输出数据 如果在F帧中发出一个有效的READ命令,帧(F+1)的输出数据前8位为寄存器数据,后面补0。如果在F帧中发出有效的READ_HWORD命令,帧(F+1)的输出数据前16位为寄存器数据,后面补0。 其他情况下一帧32位数据中默认前16位为最新一次adc转换值;后16位为0或其余数据,可通过配置寄存器控制; 输入命令字和寄存器写操作 以SDI引脚从主控制器向设备发送数据,该设备允许在任何状态(复位状态除外)读取或写入一个字节或两个字节(相当于半个字:16位)。表5列出了该设备支持的输入命令。与在单个操作中读写两个字节相关的输入命令以HWORD作为后缀。对于任何HWORD命令,共9位地址的最低位LSB总是被忽略,被认为是0b。例如,无论为任何特定的HWORD命令输入地址04h还是05h,设备总是在地址04h上执行命令。
寄存器 下表中为各寄存器地址 共有9个32位寄存器,详细信息可查询资料手册。
现以RANGE_SEL_REG寄存器为例: 该寄存器控制内外部基准选择和输入电压范围的配置 下图为此寄存器的数据位,只有7-0位(14h)存有控制设备寄存器值,其余位都是保留位; 如上表所示,可操作配置的数据位分别为第6位和3-0位,其中第六位控制内部基准使能,默认值为0,即设备使用内部基准; 3-0位为选择九个输入范围的4位寄存器,在上表中标明了9个不同输入范围对应的寄存器值。默认值为0000b,adc电压输入范围选择为±3 × VREF;
例如,若需要改变此寄存器值,改变设备adc基准选择外部基准,并改变输入范围选择为 ±1.25 × VREF,则需要通过主控制器向设备sdi引脚发送的32位数据为: 1101000_0_00010100_00000000_01000011 其中: 前7位为命令字WRITE:1101000(可在前面操作控制表中查询), 第8到第16位共9位为RANGE_SEL_REG寄存器的地址:14h 第17位到32位为RANGE_SEL_REG寄存器的15-0位
补充:每个寄存器位数为32位,每次向控制寄存器发送数据时只传送16位,如,9位地址14h(0_00010100b)和15h(0_00010101b),最后一位无论是0或1,设备一律视为0,也就是说14h和15h都会被设备视为14h。以上面的RANGE_SEL_REG寄存器为例,此寄存器的7-0位寄存器地址为14h,15-8位寄存器地址为15h,23-16位为16h,31-24位为17h;在操作此寄存器时可以分两次输入数据操作,分别向14h和16h地址的寄存器(各16位)进行操作。
此文在芯片使用过程中查阅与翻译芯片手册,添加自己的理解与说明,若需要更详细地了解,可以查阅芯片手册;
第一次发文,文章会有一些纰漏与错误,请各位指正,在芯片使用过程中博主 realiot@163.com 的文章 ADS8695 STM32 软件IO模拟:https://blog.csdn.net/WangShiRuManWoRuLi/article/details/103729718,通过阅读其中的代码解除了很多疑惑。