本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權(quán)歸本公司所有,如需轉(zhuǎn)載,需授權(quán)并注明出處(http://www.alinx.com)。
適用于板卡型號(hào):
PGL22G/PGL12G
1. 實(shí)驗(yàn)簡(jiǎn)介
本實(shí)驗(yàn)練習(xí)使用AN9767模塊,實(shí)驗(yàn)中使用的模塊是采用ANALOG DEVICES公司的AD9767芯片,支持獨(dú)立雙通道、14位、125MSPS的數(shù)模轉(zhuǎn)換。在教程中介紹了利用該模塊與FPGA開(kāi)發(fā)板相連輸出雙通道14位的正弦波,然后通過(guò)示波器查看把輸出的正弦波的波形。
AN9767模塊實(shí)物照片如下:
AN9767模塊正面圖AN9767模塊背面圖
AN9767雙通道DA模塊的詳細(xì)參數(shù):
-
DA轉(zhuǎn)換芯片:AD9767;
-
通道數(shù):2通道;
-
DA轉(zhuǎn)換位數(shù):14bit;
-
DA更新速率:125 MSPS;
-
輸出電壓范圍:-5V~+5V;
-
模塊接口:40針2.54mm間距排座,方向向下;
-
工作溫度:-40°~85°模塊使用芯片均滿(mǎn)足工業(yè)級(jí)溫度范圍
-
輸出接口:2路BNC模擬輸出接口(用BNC線可以直接連接到示波器);
2. 實(shí)驗(yàn)原理
2.1 AN9767模塊原理框圖
AN9767模塊的原理設(shè)計(jì)框圖如下:
2.2 AD9767芯片簡(jiǎn)介
AD9767是雙端口、高速、雙通道、14位CMOS DAC,芯片集成兩個(gè)高品質(zhì)TxDAC+?內(nèi)核、一個(gè)基準(zhǔn)電壓源和數(shù)字接口電路,采用48引腳小型LQFP封裝。器件提供出色的交流和直流性能,同時(shí)支持最高125 MSPS的更新速率。AD9767的功能框圖如下:

2.3 電流電壓轉(zhuǎn)換及放大
AD9767的兩路DA輸出都為補(bǔ)碼形式的電流輸出IoutA和IoutB。當(dāng)AD9767數(shù)字輸入為滿(mǎn)量程時(shí)(DAC的輸入的14位數(shù)據(jù)都為高),IoutA輸出滿(mǎn)量程的電流輸出20mA。IoutB輸出的電流為0mA。具體的電流和DAC的數(shù)據(jù)的關(guān)系如下公式所示:
其中IoutFS=32 x Iref,在AN9767模塊設(shè)計(jì)中, Iref的值由電阻R16的值決定,如果R16=19.2K,那Iref的值就是0.625mA。這樣IoutFS的值就是20mA。
AD9767輸出的電流通過(guò)第一級(jí)運(yùn)放AD6045轉(zhuǎn)換成-1V~+1V的電壓。具體的轉(zhuǎn)換電路如下圖所示:
第一級(jí)運(yùn)放轉(zhuǎn)換后的-1V~+1V的電壓通過(guò)第二級(jí)運(yùn)放變換到更高幅度的電壓信號(hào),這個(gè)運(yùn)放的幅度大小可以通過(guò)調(diào)整板上的可調(diào)電阻來(lái)改變。通過(guò)第二級(jí)運(yùn)放,模擬信號(hào)的輸出范圍高達(dá)-5V~+5V。

下表為數(shù)字輸入信號(hào)和各級(jí)運(yùn)放輸出后的電壓對(duì)照表:
DAC數(shù)據(jù)輸入值 | AD9767電流輸出 | 第一級(jí)運(yùn)放輸出 | 第二級(jí)運(yùn)放輸出 |
3fff(14位全高) | +20mA | -1V | +5V |
0(14位全低) | -20mA | +1V | -5V |
2000(中間值) | 0mA | 0V | 0V |
AD9767芯片的數(shù)字接口可以通過(guò)芯片的模式管腳(MODE)來(lái)配置成雙端口模式(Dual)或者交叉(Interleaved)模式。在AN9767模塊設(shè)計(jì)中,AD9767芯片是工作在雙端口模式,雙通道的DA數(shù)字輸入接口是獨(dú)立分開(kāi)的。雙端口模式(Dual)的數(shù)據(jù)時(shí)序圖如下圖所示:
給AD9767芯片的DA數(shù)據(jù)通過(guò)時(shí)鐘CLK和寫(xiě)信號(hào)WRT的上升沿輸入到芯片進(jìn)行DA轉(zhuǎn)換。
3. 程序設(shè)計(jì)
例程中提供了AN9767模塊的DA測(cè)試程序,通過(guò)AN9767模塊來(lái)實(shí)現(xiàn)正弦波信號(hào)的輸出。
正弦波測(cè)試程序是通過(guò)讀取FPGA內(nèi)部的一個(gè)ROM中存儲(chǔ)的正弦波數(shù)據(jù),然后把正弦波的數(shù)據(jù)輸出到AN9767模塊進(jìn)行數(shù)模的轉(zhuǎn)換,從而得到正弦波的模擬信號(hào)。正弦波測(cè)試程序的示意圖如下:
3.1 生成ROM初始化文件
程序中我們會(huì)用到一個(gè)ROM用于存儲(chǔ)1024個(gè)14位的正弦波數(shù)據(jù), 首先我們需要準(zhǔn)備ROM的初始化文件。以下為生成正弦波ROM數(shù)據(jù)文件的方法:
在軟件工具及驅(qū)動(dòng)文件夾下找到工具,其圖標(biāo)如下所示:
-
雙擊.exe打開(kāi)工具,打開(kāi)界面如下:
2. 可以根據(jù)需要自選波形,本例程中選擇正弦波,數(shù)據(jù)長(zhǎng)度1024,數(shù)據(jù)位寬14,其它默認(rèn):
3. 點(diǎn)擊保存按鈕,將生成的數(shù)據(jù)文件保存到工程目錄文件下(注意保存的文件類(lèi)型.dat):
4. 保存后點(diǎn)擊確定后關(guān)閉工具
將 .dat文件保存到生成的Rom IP核中即可,在字符顯示實(shí)驗(yàn)教程中已做介紹,這里不再重復(fù)。
3.2 雙通道正弦波發(fā)生程序
`timescale1ns/1ps////////////////////////////////////////////////////////////////////////////////////Twosinewaveoutputs-10V~+10V//////////////////////////////////////////////////////////////////////////////////modulead9767_test(inputsys_clk,//inputclock50Mhzoutputda1_clk,//AD9767CH1clockoutputda1_wrt,//AD9767CH1enableoutput[13:0]da1_data,//AD9767CH1dataoutputoutputda2_clk,//AD9767CH2clockoutputda2_wrt,//AD9767CH2enableoutput[13:0]da2_data//AD9767CH2dataoutput);reg[9:0]rom_addr;wire[13:0]rom_data;wireclk_125M;assignda1_clk=clk_125M;assignda1_wrt=clk_125M;assignda1_data=rom_data;assignda2_clk=clk_125M;assignda2_wrt=clk_125M;assignda2_data=rom_data;//DAoutputsinwaveformalways@(negedgeclk_125M)begin rom_addr<=?rom_addr?+1'b1;//The?output?sine?wave?frequency?is?122Khz//?rom_addr?<=?rom_addr?+?4?;??????????????//The?output?sine?wave?frequency?is?488Khz//?rom_addr?<=?rom_addr?+?128?;????????????//The?output?sine?wave?frequency?is?15.6Mhz????????????????????????? endROM?ROM_inst(.clka(clk_125M),//?input?clka.addra(rom_addr),//?input?[8?:?0]?addra.douta(rom_data)//?output?[7?:?0]?douta);PLL?PLL_inst(//?Clock?in?ports.clk_in1????(sys_clk????????),//?IN//?Clock?out?ports.clk_out1???(),//?OUT.clk_out2???(clk_125M???????),//?OUT//?Status?and?control?signals.reset??????(1'b0),//?IN.locked?????());endmodule
程序中通過(guò)一個(gè)PLL IP來(lái)產(chǎn)生125M的DA輸出時(shí)鐘,然后就是循環(huán)讀取存放在ROM中的1024個(gè)數(shù)據(jù),并同時(shí)輸出到通道1和通道2的DA數(shù)據(jù)線上。程序中可以通過(guò)地址的加1,加4, 或者加128來(lái)選擇輸出不同的頻率的正弦波。
4. 實(shí)驗(yàn)現(xiàn)象
1)將AN9767模塊插入開(kāi)發(fā)板擴(kuò)展口J8,注意1腳對(duì)齊,不要插錯(cuò)、插偏,不能帶電操作。
2)用我們提供的BNC線連接AN9767的輸出到示波器的輸入如下圖,然后開(kāi)發(fā)板上電,下載程序就可以從示波器上觀察從DA模塊輸出的模擬信號(hào)的波形了。
AN9767與開(kāi)發(fā)板連接圖
3)示波器上看到的正弦波如下:
4)我們可以把程序中的地址修改成+4的方式,如下修改,這樣一個(gè)正弦波的輸出的點(diǎn)為256個(gè),輸出的正弦波的頻率會(huì)提高4倍:
程序修改后,重新下載FPGA后,正弦波的頻率變高,示波器顯示的波形如下:
用戶(hù)也可以通過(guò)調(diào)節(jié)AN9767模塊上的可調(diào)電阻來(lái)改變2個(gè)通道輸出波形的幅度。
-
FPGA
+關(guān)注
關(guān)注
1637文章
21842瀏覽量
608529 -
正弦波
+關(guān)注
關(guān)注
11文章
649瀏覽量
55871 -
adc
+關(guān)注
關(guān)注
99文章
6571瀏覽量
546766 -
數(shù)模轉(zhuǎn)換
+關(guān)注
關(guān)注
3文章
111瀏覽量
29138 -
紫光同創(chuàng)
+關(guān)注
關(guān)注
5文章
89瀏覽量
27675
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
【紫光同創(chuàng)國(guó)產(chǎn)FPGA教程】【第二十一章】AD9767雙通道三角波產(chǎn)生例程
國(guó)產(chǎn)FPGA介紹-紫光同創(chuàng)
AD9767的verilog驅(qū)動(dòng)
明德?lián)P視頻分享點(diǎn)撥FPGA課程--第二十章??提高效率技巧
【小梅哥FPGA】帶上位機(jī)的高速雙通道DDS信號(hào)發(fā)生器
求AD9767的FPGA驅(qū)動(dòng)程序?
STM32產(chǎn)生雙極性正弦波
紫光同創(chuàng)FPGA開(kāi)發(fā)套件,高性能國(guó)產(chǎn)FPGA方案
基于FPGA控制AD9854產(chǎn)生正弦波

正弦波發(fā)生電路原理
正弦波信號(hào)產(chǎn)生電路的原理是什么
正弦波產(chǎn)生電路的組成是什么
ALINX 多系列 FPGA 產(chǎn)品亮相第二十六屆高交會(huì),攜手紫光同創(chuàng)助力 FPGA 國(guó)產(chǎn)化發(fā)展

評(píng)論