ADS1212和51单片机实现高精度数据采集设计
SPIE是SPI中断使能位,当SPIE和ES同时置为“1”,则SPI中断使能; SPR0,SPR1是SPI时钟频率选择位,控制SPI时钟为单片机时钟的几分频,如表1所示: SPI接口初始化程序如下所示: R/W是读写控制位;“1”为读操作,“0”为写操作。 采样精度同增益和加速因子的设置都有关系,具体如表3所示。这里需要指出的是。不能同时追求采样速度和采样精度,只有选取合适的速度和精度才能体现出该芯片的优势。 注:G=1,fXIN=1 MHz(fXIN是外部晶体振荡嚣频率) 如下是程序的部分片段: 3 结 语
SPE是SPI使能位,“0”为不使能,“1”为使能;
DORD是数据传输的顺序位,“0”为从高位到低位,“1”为从低位到高位;
MSTR是主/从选择位,“0”为从方式,“1”为主方式;
CPOL是时钟极性位,“0”为时钟高电平有效,“1”为时钟低电平有效;
CPHA是时钟相位控制位,“0”为时钟上升沿左触发,“1”为时钟下降沿左触发;
2.2 A/D数据采集程序
ADS1212内部有5种功能寄存器。其中,指令寄存器(INSR)和命令寄存器(CMR)用于控制转换器的操作。数据输出寄存器(DOR)用于存放最新的转换结果。零点校准寄存器(OCR)和满量程寄存器(FCR)用于对转换结果进行校准。
指令寄存器INSR是一个8位寄存器,对ADS1212的每一步操作都是从它开始的。具体格式如下:
MB1MB0是欲读写的字节数。“00”~“11”对应“1”~“4”;
A3~A0是欲读写寄存器的地址。
命令寄存器CMR是一个32位寄存器,通过对它的操作可以设置ADS1212的各种工作模式,格式如下:
零点校准寄存器(OCR)和满量程寄存器(FCR)用于对转换结果进行校准。它们都是24位寄存器,可以在初始化中对其写入,以便用于校准输出数据。
数据采集程序的流程图如图2所示。
数据输出寄存器DOR为24位寄存器,用于存放最新的转换结果。只有在DRDY信号为低时,DOR中的数据才有效。如果在(1/fDATA)-12 (1/fXIN)时间内没有读出DOR中的数据,则它将会被新的数据所覆盖。DOR中输出的数据格式可以用补码形式表示,如 “FFFFFFH~000000H~7FFFFFH”,表示“负最大量程~0~正最大量程”;也可以用原码形式表示,如 “000000H~800000H~FFFFFFH”,表示“负最大量程~0~正最大量程”,这可用设置CMR3的DF位来实现。
采用ADS1212与SST89E564RD完成的数据采集处理系统采集速度快,精度高,还能将数据及时通过串口发送给上位机程序,且外围电路简单。因此,能用于较为复杂的系统开发,非常适用于工业控制、自动测试、仪器仪表、远程通信等领域的数据采集与传输。
- 关于RTX51 TINY的分析与探讨(05-30)
- 浅析8051模块化编程技巧(05-28)
- 基于DSP和单片机通信的液晶显示设计方案(07-20)
- 锁相环控制及初始化简析(08-27)
- 基于MSP430自动胀管控制器的研究(09-07)
- 嵌入式C实现延时程序的不同变量的区别(03-01)