1) 初始化完成后,读寄存器0x05的值,发现低3位都是1,说明DAC PLL和Serdes PLL都没有锁定,但可以测到CLKOUT脚上有输出,而且频率也和配置的频率一样。我同时也使能了Serdes PLL在ALARM脚上的输出(根据手册,如下图),应该是Serdes PLL输出频率的80分频,但在ALARM脚上测不到任何输出。
2) DAC正常工作下,SYNC信号在上电时默认是高,初始化完成后会变低。但现在SYNC始终保持高,初始化完成后也没有变低。
DAC38RF84调试遇到问题.docx
所有配置的寄存器及顺序如下:
0x00FF0000, //0x7F
0x00019A85, // IO_CONFIG enable 4 wire SPI
0x00860000, //0x06 read
0x00090004, //PAGE_SET
0x00230000, // SLEEP_CNTL
0x000C4F00, //CLK_OUT
0x001B0020, // DTEST
0x00240803, // SYSR_CAPTURE enable sysref monitor
0x000B0000, //SLEEP_CONFIG
0x003B1001, //SRDS_CLK_CFG dacclk pll 1.6G/3=533.33M (3B9001)
0x003C9851, //SRDS_PLL_CFG MPY 0x28(5x)/VRANGE 0
0x003E0C29, //SRDS_CFG2 RATE half
0x00336410, //PLL_CONFIG2
0x00311438, //PLL_CONFIG1 dac pll N=8/ N in reset to set M
0x00320308, //PLL_CONFIG1 dac pll M=4
0x00310438, //PLL_CONFIG1 dac pll N=8/ N out of reset
0x00090001, //PAGE_SET
0x000C27F7, //MULTIDUC_CFG2 enable NCO
0x001E0000, //FREQ_NCOAB set NCO frequency
0x001F0000, //FREQ_NCOAB set NCO frequency
0x00200000, //FREQ_NCOAB set NCO frequency
0x000D8000, //JESD_FIFO set SPI_TXENABLE to 0
0x000A060F, //MULTIDUC_CFG1 INTERP 12
0x00256600, // SERDES_CLK
0x004C1303, // JESD_K_L 20
0x004B1300, //JESD_RBD_F
0x004D0100, //JESD_M_S
0x004E0F6F, //JESD_N_HD_SCR scramble on
0x004A0F03, //JESD_LN_EN
0x00090002, //PAGE_SET
0x000C27F7, //MULTIDUC_CFG2 enable NCO
0x001E0000, //FREQ_NCOAB set NCO frequency
0x001F0000, //FREQ_NCOAB set NCO frequency
0x00200000, //FREQ_NCOAB set NCO frequency
0x000D8000, //JESD_FIFO set SPI_TXENABLE to 0
0x000A060F, //MULTIDUC_CFG1 INTERP 12
0x00256600, // SERDES_CLK
0x004C1303, // JESD_K_L 20
0x004B1300, //JESD_RBD_F
0x004D0100, //JESD_M_S
0x004E0F6F, //JESD_N_HD_SCR scramble on
0x004A0F03, //JESD_LN_EN
0x00090001, //PAGE_SET
0x00240000, //SYSREF_CLKDIV Don't use SYSREF pulse
0x005C0000, //JESD SYSREF Mode Don't use SYSREF pulse
0x00090002, //PAGE_SET
0x00240000, //SYSREF_CLKDIV Don't use SYSREF pulse
0x005C0000, //JESD SYSREF Mode Don't use SYSREF pulse
0x00090004, //PAGE_SET
0x000AF000, //CLK_CONFIG sync the clock divider
0x008AF000, //空一个周期来保证有至少两个sysref上升沿
0x000A7000, //CLK_CONFIG finish sync the clock divider
0x00090000, //PAGE_SET
0x00007861, //RESET_CONFIG only one link used/Put JESD204B core in reset
0x00090001, //PAGE_SET
0x00240020, //SYSREF_CLKDIV Sync CDRV
0x005C0003, //JESD SYSREF Mode Sync JESD204B blocks
0x00090002, //PAGE_SET
0x00240020, //SYSREF_CLKDIV Sync CDRV
0x005C0003, //JESD SYSREF Mode Sync JESD204B blocks
0x00090000, //PAGE_SET
0x00007860, //RESET_CONFIG only one link used/Put JESD204B core out of reset
0x00040000, // Clear all DAC alarms
0x00050000,
0x00090001,
0x00640000,
0x00650000,
0x00660000,
0x00670000,
0x00680000,
0x00690000,
0x006A0000,
0x006B0000,
0x006C0000,
0x006D0000,
0x000D8001, //JESD_FIFO set SPI_TXENABLE to 1
0x00090002,
0x00640000,
0x00650000,
0x00660000,
0x00670000,
0x00680000,
0x00690000,
0x006A0000,
0x006B0000,
0x006C0000,
0x006D0000,
0x000D8001 //JESD_FIFO set SPI_TXENABLE to 1
原理图见下图
user151383853:
说明DAC PLL和Serdes PLL都没有锁定,但可以测到CLKOUT脚上有输出,我看是不是该先解决这个问题, 看看 PLL 没有锁定的问题, 时钟信号不稳定, 幅度不够大?
yu zhang35:
回复 user151383853:
现在锁相环已经可以锁定,SYNC信号一直是高204B链路无法建立。SYNC信号一直不可控