×

AD9789评估板、DAC-FMC转接器和Xilinx ML605参考设计

消耗积分:2 | 格式:pdf | 大小:121.94KB | 2021-05-20

分享资料个

This version (28 Jan 2021 19:15) was approved by Robin Getz.The Previously approved version (25 Jan 2021 19:33) is available.Diff

AD9789 Evaluation Board, DAC-FMC Interposer & Xilinx ML605 Reference Design

Introduction

The AD9789 is a flexible four channel QAM encoder, interpolator and upconverter combined with a high performance, 2.4GSPS, 14-bit, RF digital-to-analog converter (DAC). This reference design includes DDS generators that drives all channels of the device. The programming is done via the USB-SPI interface.

Supported Devices

Supported Carriers

Quick Start Guide

The bit file provided combines the FPGA bit file and the SDK elf files. It may be used for a quick check on the system. All you need is the hardware and a PC running a UART terminal, ADI DAC software and the programmer (IMPACT).

Required Hardware

  • ML605 board
  • AD9789-EBZ board & Power supply
  • DAC FMC interposer board
  • Signal/Clock generator (2.4GHz)
  • Spectrum Analyzer

Required Software

  • Xilinx ISE 14.1 (Programmer (IMPACT) is sufficient for the demo and is available on Webpack).
  • A UART terminal (Tera Term/Hyperterminal), Baud rate 57600.
  • ADI DPG DAC Software Suite (available here).

Bit file

  • Download the gzip file and extract the sw/cf_ad9789_ebz.bit file.

Running Demo (SDK) Program

To begin make the following connections (see image below):

  • Connect the AD9789-EBZ board to the FMC Interposer board.
  • Connect the interposer board to the FMC-LPC connector of ML605 board.
  • Connect power to ML605 and the AD9789-EBZ boards.
  • Connect two USB cables from the PC to the JTAG and UART USB connectors on ML605.
  • Connect a USB cable to the AD9789-EBZ board.
  • Connect an external clock source to AD9789-EBZ board's S1 (HF_DACCLK) SMA connector.
  • Connect a spectrum analyzer to AD9789-EBZ board's S5 (AOUT_DAC-) SMA connector.

Setup the clock source to be 2.4GHz/6dBm. After the hardware setup, turn the power on to the ML605 and the AD9789-EBZ boards.

Hardware setup

The reference design primarily supports four modes of operation.

Mode Key-Select Bus-Width Data-Width Data-Format First Block Enabled Description
0x0 'a' 32 8 Real QAM mapper Channelizer Mode.
0x1 'b' 32 8 Complex SRRC filter Channelizer Mode.
0x2 'c' 32 16 Complex Interpolation Filter Channelizer Mode.
0x3 'd' 32 16 Complex N/A QDUC Mode.

The reference design is NOT fully verified across all the modes. The delay/latency parameters may have to be adjusted depending on various features selected.

QAM Mapper Mode

SRRC Filter Mode

Interpolation Filter Mode

Start ADI- AD9789 SPI program (see screenshot below)-

  • Click on “Run Continously” button.
  • Interface Control: Set DCO_INV to OFF position (change it to ON if the spectrum has unwanted spurs).
  • Interface Control: Set I/F_MODE to Channelizer mode.
  • Interface Control: Set CHANPRI to ON position (enabled).
  • Data Control: Set Coding to Binary position.
  • Data Control: Set Data Width to 16-Bit mode.
  • Data Control: Set I/O-Data Path to Complex.
  • Data Control: Make sure BusWidth is set to 32.
  • Data Control: Set Latency to 1.
  • Channel Select: Enable all channnels.
  • Bypass: Enable QAM Mapper, SRRC filter and filter 4 bypass.
  • Summing Junction Scalar Input Scalar: Set 2.6 Multiplier Scale to 16. Note that this value must be set so that the saturation counter is always read as 0x0. You may clear the saturation register by clicking on the knob right next to it.
  • NCO Frequency Tuming Words: Make sure the central frequency is 834MHz on all channels.
  • Interpolating BPF Center Frequency: Set it to 834MHz click twice on the button to the right for the changes to take effect.
  • Reference/Sample/Sync Clock Control: Make sure DCODIV is set to 0x1.
  • Reference/Sample/Sync Clock Control: Set DSCPHZ to 0x0, click twice on PARAMNEW to take effect.
  • Reference/Sample/Sync Clock Control: Set SNCPHZ to 0x3, click twice on PARAMNEW to take effect.

SPI setup

  • Start a UART terminal (57600 baud rate).
  • Start IMPACT/XMD then program the device.

If programming was successful, you should be seeing messages appear on the terminal as shown in figure below.

Terminal

Select 'c' for the interpolation filter mode. The spectrum should appear as shown below. The DDS is set to 500KHz to 2000KHz.

Terminal

QDUC Mode

Start ADI- AD9789 SPI program (see screenshot below)-

  • Click on “Run Continously” button.
  • Interface Control: Set DCO_INV to OFF position (change it to ON if the spectrum has unwanted spurs).
  • Interface Control: Set I/F_MODE to QDUC mode.
  • Interface Control: Set CHANPRI to ON position (enabled).
  • Data Control: Set Coding to Binary position.
  • Data Control: Set Data Width to 16-Bit mode.
  • Data Control: Set I/O-Data Path to Complex.
  • Data Control: Make sure BusWidth is set to 32.
  • Data Control: Set Latency to 1.
  • Channel Select: Enable channel 0, disable all the other channnels.
  • Bypass: Enable QAM Mapper, SRRC filter and all other filters bypass.
  • Summing Junction Scalar Input Scalar: Set 2.6 Multiplier Scale to 45. Note that this value must be set so that the saturation counter is always read as 0x0. You may clear the saturation register by clicking on the knob right next to it.
  • NCO Frequency Tuming Words: Make sure the central frequency is 834MHz on channel 0.
  • Interpolating BPF Center Frequency: Set it to 834MHz click twice on the button to the right for the changes to take effect.
  • Reference/Sample/Sync Clock Control: Make sure DCODIV is set to 0x1.
  • Reference/Sample/Sync Clock Control: Set DSCPHZ to 0x0, click twice on PARAMNEW to take effect.
  • Reference/Sample/Sync Clock Control: Set SNCPHZ to 0x3, click twice on PARAMNEW to take effect.

SPI setup

  • Start a UART terminal (57600 baud rate).
  • Start IMPACT/XMD then program the device.

If programming was successful, you should be seeing messages appear on the terminal as shown in figure below.

Terminal

Select 'd' for the qduc mode. The spectrum should appear as shown below. The DDS is set to 3MHz.

Terminal

Using the reference design

Functional description

The reference design consists of a DDS module and a lvds interface. The DDS module consists of a Xilinx DDS core and DDR based DDS. It is possible to change the output data delay with respect to the DCO clock, as well as the FS to data delay. See the regmap file and the SDK c file.

Registers

Refer to the regmap.txt file inside the pcore.

Downloads

FPGA Referece Designs:

Only Xilinx coregen xco files are provided with the reference design. You must regenerate the IP core files using this file. See generating Xilinx netlist/verilog files from xco files for details.

Tar file contents

The tar file contains, in most cases, the following files and/or directories. To rebuild the reference design simply double click the XMP file and run the tool. To build SDK, select a workspace and use the C file to build the elf file. Please refer to Xilinx EDK documentation for details.

license.txt ADI license & copyright information.
system.mhs MHS file.
system.xmp XMP file (use this file to build the reference design).
data/ UCF file and/or DDR MIG project files.
docs/ Documentation files (Please note that this wiki page is the documentation for the reference design).
sw/ Software (Xilinx SDK) & bit file(s).
cf_lib/edk/pcores The pcores directory.

More information

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.lene-v.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'AD9789评估板、DAC-FMC转接器和Xilinx ML605参考设计',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.lene-v.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);