已回答假定已回答

AD9122输出错误,FIFO乱序

echo.wang 在 2016-1-13 詢問的問題
最後回覆由hpkamen於2016-1-14提供

DA9122配置参数:

 

f DATA = 122.88MSPS

Interpolation = 8x, using HB1=’10’ and

HB2=’010010’ and HB3=’001001’

f REFCLK = 122.88MHz

PLL = Enabled

 

f DACCLK = f DATA * Interpolation = 983.04 MHz

f VCO = 2 * f DACCLK = 1966.08 MHz (1 GHz < f VCO < 2 GHz)

N1 = f DACCLK / f REFCLK = 8

N2 = f VCO / f DACCLK = 2

 

配置值:

0x00       =>   0x20; /* Issue Software Reset */

0x 00      =>   0x 80; // SDIO输入输出

0x 03      =>   0x 01; // BYTE模式

      

0x 0B      =>   0x 20; /* Start PLL */

0x 0C      =>   0x D1;

0x 0D     =>   0x D6; /* 设置VCO参数 DAC:122.88*8;  VCO:122.88*16; */

0x 0A     =>   0x CF; /* VCO自动调整 */

0x 0A     =>   0x A0; /* VCO自动调整 */

 

读取0x 0E          ; // 等待200ms后读取PLL状态,若锁定,则往下配置,否则重新开始                                       配置

 

0x 1B      =>   0x E4; /* Configure Interpolation Filters */

0x 1C      =>   0x 04; /* set HB1 */

0x 1D     =>   0x 24; /* set HB2 */

0x 1E      =>   0x 12; /* set HB3 */

      

0x 30      =>   0x 00; // SET NCO 0

0x 31      =>   0x 00; // SET NCO 1

0x 32      =>   0x 00; // SET NCO 2

0x 33      =>   0x 00; // SET NCO 3

0x 36      =>   0x 00; // UPDATA NCO

0x 36      =>   0x 00; // UPDATA NCO

      

0x 10      =>   0x 48; /* Choose Data Rate Mode */

0x 17      =>   0x 04; /* Issue Software FIFO Reset */

0x 16      =>   0x 00;

0x 18      =>   0x 02;

读取0x 18     ;

0x 18      =>   0x 00;

读取0x 18     ;

      

0x 01      =>   0x 11; // both DAC shut down

 

REFCLKDCI稳定的情况下,重复配置9122芯片,输出小概率出错

出错时,读取配置数据全部正确

但是读取0x18发现bit7,bit6经常出现告警

读取0x19发现Fifo level乱跳,出现一系列值:0x 070x 0f0x 190x 390x 030x 130x 430x 1d0x 530x 230x 1e等等乱序出现

 

出错时,在不做软件复位的情况下,重新配置依然保持错误状态,

如果进行软件复位,重新配置则可以正常运行

結果