ADI 技术
直播中

李祥芝

7年用户 202经验值
私信 关注
[问答]

AD9122输出错误,读取0x19发现FIFO乱序

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等等乱序出现

出错时,在不做软件复位的情况下,重新配置依然保持错误状态,
如果进行软件复位,重新配置则可以正常运行

回帖(1)

袁飞

2018-9-11 10:15:28
如下链接有AD9122的示例代码,可以参考一下
参考代码 | 亚德诺半导体
举报

更多回帖

发帖
×
20
完善资料,
赚取积分