adc/dac(analogto digital converter/ digital to analog converter,即模数转换器/数模转换器)是大多数系统中必不可少的组成部件,用于将连续的模拟信号转换成离散的数字信号,或者将离散的数字信号转换成连续的模拟信号,它们是连接模电电路和数字电路必不可少的桥梁。在很多场合下,adc/dac 的转换速度甚至直接决定了整个系统的运行速度。
(资料图片)
本篇博文为各位分享一种高速adc和dac转换电路。高速adc选用芯片为:ad9280/3pa9280(两款芯片兼容),高速dac选用芯片为:ad9708/3pd9708e(两款芯片兼容)。
1
高速adc转换电路
ad9280 是 adi公司生产的一款单芯片、8 位、32msps(million samples per second,每秒采样百万次)模数转换器,具有高性能、低功耗的特点。
ad9280 的内部功能框图如下图所示:
ad9280 在时钟(clk)的驱动下工作,用于控制所有内部转换的周期;ad9280 内置片内采样保持放大器(sha),同时采用多级差分流水线架构,保证了 32msps 的数据转换速率下全温度范围内无失码;ad9280 内部集成了可编程的基准源,根据系统需要也可以选择外部高精度基准满足系统的要求。
ad9280 输出的数据以二进制格式表示,当输入的模拟电压超出量程时,会拉高 otr(out-of-range)信号;当输入的模拟电压在量程范围内时,otr 信号为低电平,因此可以通过 otr 信号来判断输入的模拟电压是否在测量范围内。
ad9280 的时序图如下图所示:
模拟信号转换成数字信号并不是当前周期就能转换完成,从采集模拟信号开始到输出数据需要经过 3 个时钟周期。比如上图中在时钟 clk 的上升沿沿采集的模拟电压信号 s1,经过 3 个时钟周期后(实际上再加上 25ns 的时间延时),输出转换后的数据 data1。需要注意的是,ad9280 芯片的最大转换速度是32msps,即输入的时钟最大频率为 32mhz。
ad9280 支持输入的模拟电压范围是 0v 至 2v,0v 对应输出的数字信号为 0,2v 对应输出的数字信号为 255。而 ad9708 经外部电路后,输出的电压范围是-5v~ 5v,因此在 ad9280 的模拟输入端增加电压衰减电路,使-5v~ 5v 之间的电压转换成 0v 至 2v 之间。那么实际上对我们用户使用来说,当 ad9280 的模拟输入接口连接-5v 电压时,ad 输出的数据为 0;当 ad9280 的模拟输入接口连接 5v 电压时,ad 输出的数据为 255。
当 ad9280 模拟输入端接-5v 至 5v 之间变化的正弦波电压信号时,其转换后的数据也是成正弦波波形变化,转换波形如下图所示:
输入的模拟电压范围在-5v 至 5v 之间,按照正弦波波形变化,最终得到的数据也是按照正弦波波形变化。
高速adc转换电路设计思路如下所示:
高速adc转换电路设计如下所示:
图中输入的模拟信号 sma_in(vi)经过衰减电路后得到 ad_in2(vo)信号,两个模拟电压信号之间的关系是 vo=vi/5 1,即当 vi=5v 时,vo=2v;vi=-5v 时,vo=0v。
2
高速dac转换电路
ad9708 是 adi 公司(analog devices,inc.,亚德诺半导体技术有限公司)生产的 txdac 系列数模转换器,具有高性能、低功耗的特点。ad9708 的数模转换位数为 8 位,最大转换速度为 125msps(每秒采样百万次 million samples per second)。
ad9708 的内部功能框图如下图所示:
ad9708 在时钟(clock)的驱动下工作,内部集成了 1.2v 参考电压( 1.20v ref)、运算放大器、电流源(current source array)和锁存器(latches)。两个电流输出端 iouta 和 ioutb 为一对差分电流,当输入数据为 0(db7~db0)时,iouta 的输出电流为 0,而 ioutb 的输出电流达到最大,最大值的大小跟参考电压有关;当输入数据全为高点平(db7~db0=8’hff)时,iouta 的输出电流达到最大,最大值的大小跟参考电压有关,而 ioutb 的输出电流为 0。ad9708 必须在时钟的驱动下才能把数据写入片内的锁存器中,其触发方式为上升沿触发,ad9708 的时序图如下图所示:
上图中的 dbo-db7 和 clock 是 ad9708 的 8 位输入数据和为输入时钟,iouta 和 ioutb 为ad9708 输出的电流信号。由上图可知,数据在时钟的上升沿锁存,因此我们可以在时钟的下降沿发送数据。需要注意的是,clock 的时钟频率越快,ad9708 的数模转换速度越快,ad9708 的时钟频率最快为125mhz。
iouta 和 ioutb 为 ad9708 输出的一对差分电流信号,通过外部电路低通滤波器与运放电路输出模拟电压信号,电压范围是-5v 至 5v 之间。当输入数据等于 0 时,ad9708 输出的电压值为 5v;当输入数据等于 255时,ad9708 输出的电压值为-5v。
ad9708 是一款数字信号转模拟信号的器件,内部没有集成 dds(direct digital synthesizer,直接数字 式频率合成器)的功能,但是可以通过控制 ad9708 的输入数据,使其模拟 dds 的功能。例如,我们使用ad9708 输出一个正弦波模拟电压信号,那么我们只需要将 ad9708 的输入数据按照正弦波的波形变化即可,下图为 ad9708 的输入数据和输出电压值按照正弦波变化的波形图。
由上图可知,数据在 0 至 255 之间按照正弦波的波形变化,最终得到的电压也会按照正弦波波形变化,当输入数据重复按照正弦波的波形数据变化时,那么 ad9708 就可以持续不断的输出正弦波的模拟电压波形。需要注意的是,最终得到的 ad9708 的输出电压变化范围由其外部电路决定的,当输入数据为 0 时,ad9708 输出 5v 的电压;当输入数据为 255 时,ad9708 输出-5v 的电压。
由此可以看出,只要输入的数据控制的得当,ad9708 可以输出任意波形的模拟电压信号,包括正弦波、方波、锯齿波、三角波等波形。
高速dac转换电路设计思路如下所示:
高速dac转换电路设计如下所示:
图中输出的一对差分电流信号先经过滤波器,再经过运放电路得到一个单端的模拟电压信号。图中右侧的 w1 为滑动变阻器,可以调节输出的电压范围,推荐通过调节滑动变阻器,使输出的电压范围在-5v 至 5v 之间,从而达到 ad 转换芯片的最大转换范围。
编辑:黄飞