大于8位的A/D转换器,如12位、16位能方便地与16位的微处理器连接,在与8位的微处理器相连接时,必须将A/D转换的数据分两次输入CPU,这时要采用两个三态缓冲器。高字节数据和低字节数据分别占用了各自的地址。
AD1674为12位的A/D转换器,其转换时间为10μs,允许直接与16位的微处理器或8位的微处理器相连。输出时可一次读取全部12位数据或分两次各读取8位数据。此器件的引脚与AD574、AD674兼容,但内部包含了采样保持电路。
AD 1674的结构如图1所示。
图1 ADC 1674的结构
ADC 1674与微处理器的接口信号为:
12条输出数据线DB0~DB11;芯片选择信号CE、-CS,CE=1、-CS=0时芯片选中;数据读/转换开始信号R/-C,当芯片选中时,若R/-C=1为读数据,R/-C=0为转换开始;12位或8位数据选择信号12/-8和A0;转换结束信号STS,转换开始变为高电平,转换完成后为低电平。
ADC 1674的模拟接口信号为:
范围为10V的模拟电压输入信号10VIN;范围为20V的模拟电压输入信号20VIN;基准电压输出REF OUT,AD1674内部有基准电压,该端为此电压输出端;基准电压输入REF IN,允许外加基准电压;双极性偏置输入端BIP OFF。
ADC 1674的电源与地线的信号为:
逻辑电源VL0G,接+5V;VCC、VEE接±12V或接±15V;模拟地、数字地AGND、DGND。
12/-8、A0用于12位或 8位的数据选择,当CE=1、-CS=0时芯片选中,R/-C、12/-8、A0的功能如表1所示。
表1 12位及8位数据选择
R/-C |
12/-8 |
A0 |
功能 |
0 |
X |
0 |
启动12位A/D转换 |
0 |
X |
1 |
启动8位A/D转换 |
1 |
接5V |
X |
允许12位同时输出 |
1 |
接DC |
0 |
允许高8位输出 |
1 |
接DC |
1 |
允许低4位输出,另补4位0 |
当A0=0时启动,A/D转换器为12位的转换,当A0=1时启动,则将AD1674作为一个8位A/D转换器使用,此时可获得较快的转换速度。在读取数据时,如12/-8接+5V,则一次读出 12位数据,如12/-8接地,则一次只读出8位数据。此时当 A0=0,则读出高8位,A0=1则读出低4位,并在数据的低4位上补0。
图2为AD1674用于单极性输入与双极性输入时的接法。在单极性输入时,允许输入电压为0~10V或0~20V。在双极性输入时,允许输入电压为-5V~+5V或-10V~+10V。
(a)单极性输入
(a)双极性输入
图2 AD1674的单极性输入与双极性输入
AD1674与16位的微处理器的接口比较简单,图3为AD1674与8位微处理器接口的例子。
图3 AD1674与8位微处理器的接口
在此例中,我们将12/-8接+5V,将A0接低电平。因此,这时工作在12位A/D转换的状态,而且在读出数据时,12位数据并行输出。
利用写信号触发一单稳电路,以产生负脉冲启动AD1674开始转换。转换结束后,STS信号由高变低,将其反相后,加到数据锁存器74LS374的CLK端。这时12位数据进入锁存器,STS同时将状态触发器置"1",表示数据已装入锁存器。微处理器在启动A/D转换器后,查询状态触发器的状态,如果为1,则开始读入数据。先读入高4位数据,再读入低8位数据,在读入低8位数据的同时,将状态触发器清0。然后微处理器再次启动A/D转换器。图4为读AD1674数据的时序图。
图4 读AD1674数据的时序图
从上述时序图上可以发现,第二次启动信号在读入上次数据后再发出。而事实上,在A/D转换结束后,此数据已进入了数据锁存器。因此为提高速度,在得到 A/D转换结束的信号后,可以先启动下一次A/D,然后再读入数据。采用这种方法的时序图及程序流程图如图5及图6所示。
图5 AD1674数据的时序图之二
图6 程序流程图