R-2R梯形电阻数模转换器(DAC)
目标
本实验的目标是探讨数模转换的概念,将CMOS反相器用作梯形电阻分压器的基准开关(用于DAC中)。
背景信息
我们将简单的CMOS反相器逻辑门用作一对开关。ADALM2000模块的数字I/O信号可配置为具有+3.3 V电源电压的标准CMOS分压器(推挽模式)。采用最简单的形式,CMOS输出可以由一个PMOS器件M1和一个NMOS器件M2组成。通常,CMOS制造工艺经过特别设计,使得NMOS和PMOS器件的阈值电压VTH大致相等——即互补。然后,反相器的设计人员调整NMOS和PMOS器件的宽长比W/L,使其各自的跨导和RON也相等。两个晶体管中,只有一个处于导通状态,同时将输出端连接到VDD或VSS。我们可以考虑将这两个电压用作DAC的基准电压源。
图1.CMOS输出驱动器。
在 “电压模式”中使用R-2R梯形电阻(如图2所示),根据数字码交替驱动到两个基准电压电平中的任一个(D0-7)。数字0表示VREF–,数字1表示VREF+。根据数字输入码,VLADDER(图2)将在两个基准电平之间变化。两个基准电压的负基准电压(VREF–)通常为地电压(VSS)。在本例中,我们将正基准电压(VREF+)设置为CMOS驱动器的正电源电压(VDD)。
材料
► ADALM2000主动学习模块
► 无焊面包板
► 跳线
► 9个20 kΩ电阻
► 9个10 kΩ电阻
► 1个OP27放大器
说明
最好在无焊试验板上构建图2所示的8位梯形电阻电路。模拟部件套件(ADALP2000)中提供的电阻数量通常不足以构建完整的8位梯形电阻。如果可以获得这些电阻,此项目最好使用1%的电阻。
将用蓝色框表示的8个数字输出、示波器通道和用绿色框表示的AWG输出连接到梯形电阻电路中,如图所示。注意将电源连接到运算放大器电源引脚。
图2.R-2R梯形电阻网络电路
硬件设置
图3.R-2R梯形电阻网络电路试验板连接
程序步骤
当安装R1和R2时,设置AWG1的直流电压与DAC的VREF+相等,即等于CMOS数字输出的3.3 V电源电压。此时输出电压为双极性,其摆幅为-3.3 V至+3.3 V。断开AWG1并移除电阻R1,输出电压为单极性,摆幅为0 V至+3.3 V。启动Scopy软件。打开模式发生器界面。选择DIO0至DIO7,并组成一个分组。设置参数,将模式设置为二进制计数器。输出设置为推挽输出(PP),频率设置为256 kHz。此时能看到类似图4所示的内容。最后,点击运行按钮。
图4.模式发生器界面。
打开示波器界面,开启通道2,并将时基设置为200μs/div,点击绿色运行按钮开始运行。有时可能还需要调整通道的垂直范围(初始条件下,1 V/div比较合适)。通过示波器界面能看到(如图4所示)电压从0 V上升到3.3 V,斜坡信号的周期应为1 ms。
图5.示波器界面。
改变数字模式。尝试随机模式,并打开示波器上的FFT窗口。您还可以通过生成具有一列0到255(对于8位宽总线)数字的纯文本.csv文件,来加载自定义模式。加载自定义模式,看看会出现什么情况。
您可以尝试加载以下这些预制波形文件:正弦、三角、高斯脉冲等:waveforms_pg。
AD5626 12位nanoDAC
背景信息
AD5626是一款可以使用5 V单电源供电的电压输出DAC。它集成了DAC、输入移位寄存器和锁存、基准电压源以及一个轨到轨输出放大器。输出放大器摆幅可达到任一供电轨,且设置范围为0 V至4.095 V,分辨率为每位1 mV。该器件采用高速、三线式、兼容数据输入(SDIN)的DSP、时钟(SCLK)和负载选通(LDAC)的串线接口。它还有芯片选择引脚,可连接多个DAC。上电时或用户要求时,CLR输入可将输出设置为零电平。
图6.AD5626的简化功能框图。
除1位DAC寄存器外,AD5626还有一个独立的串行输入寄存器,新数据值可以预载到该串行寄存器中,而不会干扰现有DAC输出电压。通过选通LDAC引脚,可以将加载值传输到DAC寄存器。
单极性输出操作
这种操作模式是AD5626的基本模式。您可以根据DAC的单极性代码表验证AD5626的功能是否正常。
表1.AD5626的单极性代码表
材料
► ADALM2000主动学习模块
► 无焊面包板
► 跳线
► 一个AD5626 12位nanoDAC®
► 一个2.2 kΩ电阻
► 一个0.001 μF电容
► 一个0.1 μF电容
► 一个10 μF电容
硬件设置
如图7所示连接AD5626的引脚。
图7.AD5626实现单极性操作的连接。
程序步骤
打开Scopy,使能正电源为5 V。在模式发生器中,根据数据手册中AD5626的时序图配置DAC输入信号。从配置SPI信号开始。使用DIO0、DIO1和DIO2创建通道组。如果连接如图7所示,则DIO1表示时钟信号,DIO2表示数据信号,DIO0表示CS信号。在进行SPI分组时,确保数字通道的顺序是正确的(参见图10)。数据手册中指明,高电平和低电平状态下的时钟宽度应达到至少30 ns。由此可计算时钟周期,进而计算最大频率。将时钟频率设为1 MHz。将CLK极性和CLK相位设为1。
由于AD5626是12位DAC,因此通过SPI发送的数据长度应至少为12位。将每帧的字节数设为2,在转换开始时,它会发送16位。在数据文本框中,您可以输入将发送至DAC的值。SPI组通道的信号应类似于AD5626 DAC的时序图。
图8.AD5626试验板连接。
图9.AD5626 SPI时序图。
现在,您应该配置LDAC和CLR信号。从数据手册中,我们得知在CLR处于高电平时,移位寄存器的内容会在LDAC的上升沿更新。将DIO4 (CLR)的模式设置为“数值”,输入数值1。只要位是串行传输,LDAC信号(DIO3)的CS下降沿之前应该有一个上升沿,且应处于高电平。为了满足上述条件,DIO3信号可以设置为采用13 kHz频率和160°相位。AD5626数模转换所需的所有输入信号如图9所示。
图10.模式发生器信号设置。
最后一步是在Scopy中打开示波器,将通道1连接到AD5626的输出端。启用通道1测量,并在SPI的“数据”区域输入一个值。如果通过SPI发送的数据为7FF,在图11中,您可以查看相应的输出电压。
图11.输入为7FF时,AD5626的输出电压。
双极性输出操作
虽然AD5626设计用于单电源操作,但使用图12所示的电路也可以实现双极性操作。
图12.双极性输出操作,未经调节(数据手册中建议的电路)。
此电路可用于不需要高精度的应用。输出电压以偏移二进制格式编码,由以下公式给出:
在输出范围为±5 V,采用图12中的表所示的电路值时,转换公式变为:
材料
► ADALM2000主动学习模块
► 无焊面包板
► 跳线
► 一个AD5626 12位nanoDAC
► 一个OP484运算放大器
► 一个0.1 μF电容
► 一个1 kΩ电阻
► 一个20 kΩ电阻
► 两个10 kΩ电阻
► 一个47 kΩ电阻
► 一个470 kΩ电阻
图13.AD5626双极性输出操作试验板连接
硬件设置
在无焊试验板上构建图12所示的电路。
程序步骤
您可以将DAC配置为单极性输出操作,如图7所示。对于基准电压,使用信号发生器的通道1,设置为恒定2.5 V。在示波器的第二个通道上,可显示运算放大器输出端的电压。您可以在示波器上同时显示单极性操作和双极性操作的电压。
图14.000输入的单极性和双极性输出电压。
图15.800输入的单极性和双极性输出电压。
图16.FFF输入的单极性和双极性输出电压。
问题:
1.使用欧姆定律和并联电阻公式,当输入D7和D6连接到接地和3.3 V的每个组合时,R-2R DAC的输出电压是多少?请将结果以表格形式呈现。
您可以在学子专区论坛上找到答案。