**AD9154为4通道**,分辨率**16**位,最高采样率**2.4 G**Hz的**DA芯片**,支持JESD204B,可选1×,2×,4×,8×插值滤波器,内部有两个可独立控制的NCO,最高通信速率可达8×10.96 Gb/s,可满足高速复杂雷达信号的产生。
功能框图如图1所示:
图1 AD9154功能框图
从功能框图可以看出,AD9154具有两组sync,4个模拟通道,通道0和1对应sync0,同时对应高速差分对的SERDIN0~3;通道2和3对应sync1,同时对应SERDIN4-7。设计时,FPGA如果用一个8L的的接收204B IP核,FPGA需要将输入的两个sync进行逻辑与,然后给IP。
AD9154有两种工作模式:直通模式和正常工作模式。直通模式不需要建链,调试时,可以先用直通模式检查硬件链路是否OK,直通模式只要配置NCO相关寄存器即可,具体配置寄存器如下:
#直通模式
AD9154_WriteReg(0x000,0x81); // Soft reset,mirror W
DelayMs(100);
AD9154_WriteReg(0x000,0x00); // Deassert reset, set 3-wire SPI(default). 如果地址递增,写24
DelayMs(100);
AD9154_WriteReg(0x146,0x00); //
AD9154_WriteReg(0x011,0x00); // Enable reference, DAC channels, and master DAC. 0 is en RW
AD9154_WriteReg(0x080,0x04); // Power up all clocks with,duty cycle correction on RW
AD9154_WriteReg(0x112,reg112);// Set the interpolation to 2×----0.4 × fDATA RW--debug
AD9154_WriteReg(0x110,0x00); // Set twos complement data format-- # INPUT DATA ENCODING 00-COMPLENTARY BINARY;80-OFFSET BINARY
ftw = FTW_GEN(Fs_clkm,Fout_clkm,48); // 产生频率字: 20M/1000M--05 1E B8 51 EB 85
ftw_w32= (u32)((ftw & 0xff0000000000) >> 32) ;
ftw_w8 = (u8) (ftw_w32 >> 8);
AD9154_WriteReg(0x119,ftw_w8); // MSB
ftw_w32= (u32)((ftw & 0x00ff00000000) >> 32) ;
ftw_w8 = (u8) (ftw_w32);
AD9154_WriteReg(0x118,ftw_w8);
ftw_w8 = (u8) ((ftw & 0x0000ff000000) >> 24) ;
AD9154_WriteReg(0x117,ftw_w8);
ftw_w8 = (u8) ((ftw & 0x000000ff0000) >> 16);
AD9154_WriteReg(0x116,ftw_w8);
ftw_w8 = (u8) ((ftw & 0x00000000ff00) >> 8);
AD9154_WriteReg(0x115,ftw_w8);
ftw_w8 = (u8) (ftw & 0x0000000000ff);
AD9154_WriteReg(0x114,ftw_w8); // LSB
AD9154_WriteReg(0x113,0x00); // clr 0
AD9154_WriteReg(0x113,0x01); // update
AD9154_WriteReg(0x111,0x04); //
AD9154_WriteReg(0x520,0x02); // DC Test Mode Enable.
AD9154_WriteReg(0x521,0xFF); // TEST_DC_VALUEI0
AD9154_WriteReg(0x522,0x7F); // TEST_DC_VALUEI1
AD9154_WriteReg(0x146,0x00); //
#正常工作模式
图2 204B工作模式图
我们选用mode0,4个M,8L,1个F。2倍插值,线速率是5倍转换率。比如1G转换率,对应5G线速率,那么内核时钟就是1G/40=250MHz.
#数据映射关系
根据M/L/F的关系,F=1,说明1个采样点放在2个L上传输,根据《PG066》手册,解析数据。
#数据源
cha_sample0~3可以由FPGA的DDS IP产生,调用IP,即可。
DDS的输入是斜波数据,即累加数据,累加步进是频率字ftw1
#频率字ftw1的计算
以1G转换率,2倍插值的MODE0工作模式为例
内核时钟core_clk=250M,Fs=1G; Fs/core_clk=4 => 四相 =>phase0~3
ftw=Fout/Fs *2^16 因为是16的频率字,所以是2的16次方
如果需要AD9154输出20M的单音信号,则ftw=20/1000 *2^16
#寄存器配置
AD9154的寄存器配置可以参考官方手册的示例,难点是时钟分频等参数的配置,可以监视0x281寄存器是否锁定,确认芯片的204B配置。此外打印0x230 288 300 470~473等寄存器进一步确认建链状态