Skip to content
AN9767用户手册REV1.0
双通道 14 位 DA 输出模块 AN9767 用户手册
Rev. 1.00

版本记录

版本时间作者描述
Rev1.002017-4-28First Release

第一部分 双通道 14 位 DA 模块说明介绍

黑金双通道 14 位 DA 输出模块 AN9767 采用 ANALOG DEVICES 公司的 AD9767 芯片 ,支持独立双通道、 14 位, 125MSPS 的数模转换。模块留有一个 40 针的排母用于连接 FPGA 开发板,2 个 BNC 连接器用于模拟信号的输出。

AN9767 模块实物照片如下:

图片展示了一块AN9767双通道DA模块的实物,正面可见两个BNC模拟输出接口,用于连接示波器。模块上还集成有多个电容、电感和芯片,以及两个蓝色旋钮。该图片在文档中用于直观展示AN9767模块的外观和接口配置,帮助读者更好地理解其结构和功能。

AN9767 模块正面图

图片展示了一个AN9767双通道DA模块的正面图。模块正面有两个BNC接口,用于模拟输出,接口方向向下。模块表面有多个螺丝固定,右侧边缘有多个排针接口,用于连接电路板。图片在文档中用于展示AN9767模块的实物外观,帮助读者更好地理解其结构和接口配置。

AN9767 模块背面图

1.1 AN9767 模块的参数说明

以下为 AN9767 双通道 DA 模块的详细参数:

DA 转换芯片:AD9767

通道数:2 通道

DA 转换位数:14bit

DA 更新速率:125 MSPS ;

输出电压范围:-5V~+5V ;

模块 PCB 层数:4 层,独立的电源层和 GND 层;

模块接口:40 针 2.54mm 间距排座,方向向下;

工作温度:-40° ~85° 模块使用芯片均满足工业级温度范围

输出接口:2 路 BNC 模拟输出接口(用 BNC 线可以直接连接到示波器);

1.2 AN9767 模块的参数说明

图片内容:该图展示了AN9767双通道DA模块的尺寸图,模块的尺寸为81.0 mm x 51.1 mm。图中标注了模块的长宽尺寸,有助于用户了解模块的实际大小。图片在上下文中的作用:该尺寸图在文档中用于说明AN9767双通道DA模块的具体尺寸,帮助用户在实际应用中正确安装和布局该模块。

AN9767 双通道 DA 模块尺寸图

第二部分 模块功能说明

2.1 AN9767 模块原理框图

AN9767 模块的原理设计框图如下:

图片展示了一个高速双通道DAC芯片AD9767的原理框图。该芯片通过40针DIO数据输出扩展口接收5V输入电压,并通过AM1117产生3.3V电压。芯片内部集成两个高品质TxDAC+®内核、一个基准电压源和数字接口电路。芯片输出经过低通滤波和两级远放(电流转电压、电压放大)后,通过BNC接口输出。图片在文档中用于说明AD9767芯片的原理设计,帮助读者理解其内部结构和工作流程。

2.2 AD9767 芯片简介

AD9767 是双端口、高速、双通道、 14 位 CMOS DAC, 芯片集成两个高品 质 TxDAC+®内核、一个基准电压源和数字接口电路,采用 48 引脚小型 LQFP 封 装。器件提供出色的交流和直流性能,同时支持最高 125 MSPS 的更新速率。 AD9767 的功能框图如下:

图片内容:该图展示了AD9767芯片的功能框图,包括数字接口、两个DAC(DAC1和DAC2)、基准电压源、偏置生成器和两个LATCH(1和2)。DAC1和DAC2分别连接到IOUTA1和IOUTA2、IOUTB1和IOUTB2输出端,CLK1和CLK2分别作为时钟输入。PORT1和PORT2作为数字输入端,WRT1和WRT2作为写入端,DVDD、DCOM、AVDD和ACOM为电源输入端。 图片作用:此图在文档中用于说明AD9767芯片的功能框图,帮助读者理解芯片内部结构及其各部分的功能,为后续章节中对AD9767芯片原理的详细说明提供直观参考。

2.3 电流电压转换及放大

AD9767 的两路 DA 输出都为补码形式的电流输出 IoutA 和 IoutB。当 AD9767 数字输入为满量程时( DAC 的输入的 14 位数据都为高),IoutA 输出满 量程的电流输出 20mA。IoutB 输出的电流为 0mA。具体的电流和 DAC 的数据 的关系如下公式所示:

其中 IoutFS=32 x Iref ,在 AN9767 模块设计中, Iref 的值由电阻 R16 的值 决定,如果 R16=1.92K ,那 Iref 的值就是 0.625mA。这样 IoutFS 的值就是 20mA。

AD9767 输出的电流通过第一级运放 AD6045 转换成-1V~+1V 的电压。具 体的转换电路如下图所示:

图片内容描述:该图展示了一个电路图,其中AD9767作为信号源,输出电流IOUTA和IOUTB。IOUTA通过225Ω电阻连接到AD8047运算放大器的负输入端,而IOUTB通过25Ω电阻连接到AD8047的正输入端。此外,电路中还包含一个电容C_OPT,用于滤波。运算放大器AD8047的输出端连接到500Ω电阻,最终输出-1V~+1V的电压。 图片在上下文中的作用:该电路图是文档中描述的AD9767输出电流通过第一级运放AD6045转换成-1V~+1V电压的具体实现。它直观地展示了电流信号如何通过电阻和运算放大器转换为电压信号,进一步解释了AD9767与AD8047之间的信号传输过程。

第一级运放转换后的-1V~+1V 的电压通过第二级运放变换到更高幅度的电 压信号,这个运放的幅度大小可以通过调整板上的可调电阻来改变。通过第二级 运放,模拟信号的输出范围高达-5V~+5V。

图片展示了一个AD9767芯片的电路图,其中包含了DAC数据输入值与各级运放输出电压的对照关系。电路图中,DAC数据输入值为3fff(14位全高)时,AD9767电流输出为+20mA,第一级运放输出为-1V,第二级运放输出为+5V。该电路图在用户手册中用于说明数字输入信号与运放输出电压之间的关系,帮助用户理解AD9767芯片在不同输入值下的工作状态。

下表为数字输入信号和各级运放输出后的电压对照表:

DAC 数据输入值AD9767 电流输出第一级运放输出第二级运放输出
3fff(14 位全高)+20mA-1V+5V
0(14 位全低)-20mA+1V-5V
2000(中间值)0mA0V0V

2.4 数字接口定义

AD9767 芯片的数字接口可以通过芯片的模式管脚(MODE)来配置成双端口 模式(Dual)或者交叉(Interleaved)模式。在 AN9767 模块设计中,AD9767 芯片 是工作在双端口模式 ,双通道的 DA 数字输入接口是独立分开的。双端口模式(Dual) 的数据时序图如下图所示:

给 AD9767 芯片的 DA 数据通过时钟 CLK 和写信号 WRT 的上升沿输入到芯 片进行 DA 转换。

2.5 模块 40 针排母的引脚分配:

引脚号引脚名称备注
1GND
2+5V5V 电源输入
3P1_DATA13DAC 通道 1 数据 13 位
4P1_DATA12DAC 通道 1 数据 12 位
5P1_DATA11DAC 通道 1 数据 11 位
6P1_DATA10DAC 通道 1 数据 10 位
7P1_DATA9DAC 通道 1 数据 9 位
8P1_DATA8DAC 通道 1 数据 8 位
9P1_DATA7DAC 通道 1 数据 7 位
10P1_DATA6DAC 通道 1 数据 6 位
11P1_DATA5DAC 通道 1 数据 5 位
12P1_DATA4DAC 通道 1 数据 4 位
13P1_DATA3DAC 通道 1 数据 3 位
14P1_DATA2DAC 通道 1 数据 2 位
15P1_DATA1DAC 通道 1 数据 1 位
16P1_DATA0DAC 通道 1 数据 0 位
17P1_WRTDAC 通道 1 数据写信号
18P1_CLKDAC 通道 1 数据写时钟
19P2_CLKDAC 通道 2 数据写时钟
20P2_WRTDAC 通道 2 数据写信号
21P2_DATA13DAC 通道 2 数据 13 位
22P2_DATA12DAC 通道 2 数据 12 位
23P2_DATA11DAC 通道 2 数据 11 位
24P2_DATA10DAC 通道 2 数据 10 位
25P2_DATA9DAC 通道 2 数据 9 位
26P2_DATA8DAC 通道 2 数据 8 位
27P2_DATA7DAC 通道 2 数据 7 位
28P2_DATA6DAC 通道 2 数据 6 位
29P2_DATA5DAC 通道 2 数据 5 位
30P2_DATA4DAC 通道 2 数据 4 位
31P2_DATA3DAC 通道 2 数据 3 位
32P2_DATA2DAC 通道 2 数据 2 位
33P2_DATA1DAC 通道 2 数据 1 位
34P2_DATA0DAC 通道 2 数据 0 位
35-NC
36-NC
37GND
38GND
39-NC
40-NC

第三部分 正选波产生程序说明

我们提供了 2 个 AN9767 模块的 DA 测试程序,一个是正选波发生程序,通 过 AN9767 模块来实现正选波信号的输出。另一个三角波发生程序,通过 AN9767 模块来实现三角波信号的输出。 因为三角波的例子比较简单,我们不再介绍,下 面为大家介绍一下正选波输出程序:

正选波测试程序是通过读取 FPGA 内部的一个 ROM 中存储的正选波数据, 然后把正选波的数据输出到 AN9767 模块进行数模的转换,从而得到正选波的模 拟信号。正选波测试程序的示意图如下:

3.1 生成 ROM 初始化文件

程序中我们会用到一个 ROM 用于存储 1024 个 14 位的正弦波数据, 首先我 们需要准备 ROM 的初始化文件(如果是 ALTERA 开发板的话是 mif 文件 ,如果是 Xilinx 开发板的话是 coe 文件)。以下为生成正弦波 ROM 数据文件的方法:

首先打开"软件工具" 目录下的 Guagle_wave 工具,选择菜单"查看"- >”全局 参数设置” ,设置参数如下:

图片显示了全局参数设置界面,其中数据长度被设置为1024,数据位宽被设置为14。这些参数用于生成ROM初始化文件,以存储1024个14位的正弦波数据。图片在上下文中用于说明生成正弦波ROM数据文件的方法,特别是设置参数的步骤。

在菜单"设定波形"里选择正弦波。

在菜单"查看"里选择数据曲线。

保存为 mif 格式的文件 sin1024.mif(注意不要选择另存为,不然存储的文件为

空)。

图片显示了一个文件夹窗口,其中包含多个文件和文件夹。当前选中的文件是“sin1024.mif”,这是一个MIF文件,用于生成正弦波ROM数据文件。图片中的文件夹窗口与上下文中的说明相关,展示了生成正弦波ROM数据文件的具体步骤之一,即保存文件为mif格式。

这样 mif 文件就生成好了,对于 Altera的开发板 mif 文件就是 ROM 的初始化文 件了。我们可以用记事本打开 sin1024.mif 文件查看里面的数据格式和内容。

对于 Xilinx 的开发板,用户还需要把它修改为Coe 的文件格式。因为 Xilinx 的 ROM 的初始化文件 coe 的格式和 mif 文件的格式有些不一样,所以我们需要 把生成的 mif 用文本文件或者 excel 重新编辑成如下的格式(16 进制,1024 个数据 长度) :

3.2 添加 ROM IP 及配置初始化文件

下面我们以 AX301 开发板为例介绍一下 ROM IP 的生成和配置, 我们先新建 一个 Quartus 工程, 向工程中添加一个 ROM IP, 选择菜单 Tool->MegaWizard Plug-In Manager,在弹出的 MegaWizard Plug-in Manager 窗口选择第一项 "Create a new custom megafunction variation"。

图片显示了MegaWizard Plug-In Manager的界面,用户正在选择“Create a new custom megafunction variation”选项。该界面是用于创建或修改包含自定义变体的综合文件的设计文件。图片中的箭头指向了“Create a new custom megafunction variation”选项,这与上下文中的描述一致,说明用户正在按照文档的指导进行ROM IP的生成和配置。

选择 ROM:1-PORT, 再在 output file 栏里输入存放 IP 的目录和名称,这里 我们取名为 rom。

图片显示了MegaWizard Plug-In Manager的界面,用户正在选择ROM IP。具体来说,用户选择了“ROM:1-PORT”选项,并在输出文件栏中输入了存放IP的目录和名称“rom”。图片中的突出部分是“ROM:1-PORT”选项,这表明用户正在配置一个单端口的ROM IP。图片在上下文中起到解释用户如何选择和配置ROM IP的作用,帮助读者理解在创建新定制宏功能变体时如何选择ROM类型。

选择 ROM 的数据宽度为 14bits,数据的深度为 1024 个数据。这个设置刚好 和前面生成的 mif 文件的大小一致。

图片显示了ROM: 1-PORT的配置界面,其中“Q output bus be”设置为14位,“Memory”设置为1024个16位字。该界面用于配置ROM IP的参数,包括地址宽度、数据宽度和深度。在上下文中,这页内容指导用户如何选择和配置ROM初始化文件,以便完成ROM IP的添加。

这一页不用修改,保留默认设置,点击 Next 按钮。

图片显示了MegaWizard Plug-In Manager的ROM: 1-PORT配置界面,其中列出了多个配置选项,如地址/数据/时钟端口、输出端口等。用户需要选择哪些端口应该注册,并创建一个时钟使能信号。此外,界面还提供了更多选项按钮,允许用户进一步配置。在上下文中,这张图片用于指导用户如何配置ROM IP,特别是如何选择和配置端口,以便与之前生成的mif文件大小一致。

在这页面中 , 点击 Browse.. 按钮再选择刚才我们生成的 ROM 初始化文件 sin1024.mif。

图片显示了Nexys4 FPGA开发板的ROM 1-PORT配置界面,用户需要选择ROM初始化文件。当前界面中,用户已选择文件名为“/fsm1024.mif”的ROM初始化文件,并将其关联到PORT_A。图片在上下文中起到指导作用,帮助用户完成ROM IP的添加和配置,确保与前面生成的mif文件大小一致。

点击 Finish 完成按钮,完成 ROM IP 的添加。

图片显示了MegaWizard Plug-In Manager的界面,其中ROM: 1-PORT模块被选中。右侧列出了生成的文件列表,包括ROM_init.h、ROM_init.c、ROM_init.v等。页面底部有“Finish”按钮,提示用户完成ROM IP的添加。图片在上下文中用于指导用户完成ROM IP的配置步骤,确保用户能够正确选择并添加生成的ROM初始化文件。

关于 Xilinx FPGA 开发板的 ROM IP 的添加和配置我们这里就不介绍了,配 置的方法跟 ALTERA 的配置都差不多的。

3.3 编写正选波发生程序

`timescale 1ns / 1ps
////////////////////////////////////////////////////////////////////////////////// //正选波发生器--2 路输出 -5V ~ +5V
////////////////////////////////////////////////////////////////////////////////// module ad9767_test(
input clk, //fpga clock
wire [13:0] rom_data; wire clk_50;
wire clk_ 125;
assign da1_clk=clk_ 125;
assign da1_wrt=clk_ 125;
assign da1_data=rom_data;
assign da2_clk=clk_ 125;
assign da2_wrt=clk_ 125;
assign da2_data=rom_data;
//DA output sin waveform
always @(negedge clk_125) begin
rom_addr <= rom_addr + 1'b1 ; //一个正选波采样点为 1024,输出正选波频率 125/1024=122Khz // rom_addr <= rom_addr + 4 ; //一个正选波采样点为 256,输出正选波频率 125/256=488Khz
// rom_addr <= rom_addr + 128 ; //一个正选波采样点为 8,输出正选波频率 125/1024=15.6Mhz
end
ROM ROM_inst (
.clock (clk_ 125), // input clka
.address (rom_addr), // input [8 : 0] addra
.q (rom_data) // output [7 : 0] douta );
PLLPLL_inst(
.areset (1'b0),
.inclk0 (clk),
.c0 (clk_50), .c1 (clk_ 125), .locked ()
);
endmodule

程序比较简单,通过一个 PLL IP 来产生 125M 的 DA 输出时钟,然后就是循 环读取存放在 ROM 中的 1024 个数据,并输出到通道 1 和通道 2 的 DA 数据线 上。程序中可以通过地址的加 1 ,加 4, 或者加 128 来选择输出不同的频率的正选 波。

第四部分 硬件连接

AN9767 模块和 FPGA 开发板的硬件连接很简单,只要把 DA 模块的 40 针 的母座 J3 插到 FPGA 开发板的扩展口上,连接器的管脚 1 对齐就好了 。以下为 黑金 AX301B 开发板的 J1 扩展口和 AN9767 双通道 DA 模块的硬件连接图(如 果需要连接 J2 扩展口,管脚需要重新分配):

图片显示了黑金AX301B开发板的J1扩展口和AN9767双通道DA模块的硬件连接情况。开发板上有一个黑色的电路板,上面有多个电子元件和连接器,其中J1扩展口位于电路板的左侧,而AN9767双通道DA模块则通过40针的母座J3连接到开发板的扩展口上。图片中的数字“888888”显示在电路板下方,表明电路板已经通电。这张图片在文档中用于说明如何将AN9767模块连接到FPGA开发板的扩展口上,以进行硬件连接。

然后用我们提供的 BNC 线连接 AN9767 模块的模拟输出(通道 1 和通道 2 都可以)到示波器显示器上。

图片显示了一块电路板连接到示波器的场景。电路板上有一个BNC接口,连接着一根BNC线,另一端插入示波器的输入端口。电路板上还有两个模拟输出接口,旁边有一个红色的跳线。图片的作用是展示如何使用BNC线将AN9767双通道DA模块的模拟输出连接到示波器,以便观察从DA模块输出的模拟信号波形。

开发板上电, 然后下载程序就可以从示波器上观察从 DA 模块输出的模拟信 号的波形了。

第五部分 波形实验

下载 sof 文件(Xilinx 开发板是下载 bit 文件)到 FPGA ,如果 AN9767 模块 已经用 BNC 线连接到示波器的话,我们就可以在示波器上看到正选波了。

图片显示了一个示波器屏幕,屏幕上显示了两个正弦波形,波形的频率为122.1kHz,幅度为8.2V。屏幕右上角显示了示波器的参数设置,包括电压、频率和触发设置。图片在上下文中用于展示修改程序后,正选波的输出点为256个,输出的正选波的频率会提高4倍,以及用户可以通过调节AN9767模块上的可调电阻来改变2个通道输出波形的幅度。

如果我们把程序中的地址修改成+4 的方式,这样一个正选波的输出的点为

256 个,输出的正选波的频率会提高 4 倍。

程序修改后,重新下载 FPGA 后,正选波的频率变高,示波器显示的波形如下:

图片显示了一个示波器屏幕,屏幕上显示了一个正弦波形,频率为488.8kHz,幅度为8.3V。该波形在示波器的通道1(Ch1)上被记录,波形的周期为4.00μs。图片中的关键信息包括波形的频率、幅度以及示波器的设置参数。在上下文中,这张图片用于展示修改程序后,正选波的频率提高4倍后的波形,说明了程序修改对输出波形频率的影响。

用户也可以通过调节 AN9767 模块上的可调电阻来改变 2 个通道输出波形的

幅度。

图片显示了电路板上的两个可调电阻,分别用红色箭头标注。这些电阻位于电路板的左侧,靠近电源模块附近。图片中的上下文提到用户可以通过调节这些可调电阻来改变2个通道输出波形的幅度。因此,这张图片展示了用户手册中提到的可调电阻的位置,帮助用户理解如何通过调节这些电阻来调整输出波形的幅度。

由飞书知识库自动同步生成 · Alinx