Part Number:DAC38J82Other Parts Discussed in Thread: LMK04828
你好,
我在使用DAC38J82进行开发时,配置参数后,Serdes PLL无法锁定,且FIFO报错;
我使用DAC3XJ8X GUI v1.3软件生成所需参数,生成参数后未做任何更改,参数配置如下图所示。
LMK048280x00 0x00
0x02 0x00
0x100 0x01
0x101 0x55
0x103 0x00
0x104 0x20
0x105 0x00
0x106 0xF0
0x107 0x11
0x108 0x61
0x109 0x55
0x10B 0x01
0x10C 0x20
0x10D 0x00
0x10E 0xF0
0x10F 0x76
0x110 0x08
0x111 0x55
0x113 0x00
0x114 0x00
0x115 0x00
0x116 0xF9
0x117 0x00
0x118 0x18
0x119 0x55
0x11B 0x00
0x11C 0x20
0x11D 0x00
0x11E 0xF9
0x11F 0x00
0x120 0x10
0x121 0x55
0x123 0x00
0x124 0x00
0x125 0x00
0x126 0xF9
0x127 0x11
0x128 0x08
0x129 0x55
0x12B 0x00
0x12C 0x00
0x12D 0x00
0x12E 0xF9
0x12F 0x00
0x130 0x08
0x131 0x55
0x133 0x00
0x134 0x20
0x135 0x00
0x136 0xF9
0x137 0x01
0x138 0x40
0x139 0x02
0x13A 0x00
0x13B 0xA0
0x13C 0x00
0x13D 0x08
0x13E 0x03
0x13F 0x00
0x140 0x00
0x141 0x00
0x142 0x00
0x143 0x12
0x144 0xFF
0x145 0x00
0x146 0x10
0x147 0x12
0x148 0x02
0x149 0x42
0x14A 0x02
0x14B 0x16
0x14C 0x00
0x14D 0x00
0x14E 0xC0
0x14F 0x7F
0x150 0x03
0x151 0x02
0x152 0x00
0x153 0x00
0x154 0x78
0x155 0x00
0x156 0x78
0x157 0x00
0x158 0x96
0x159 0x00
0x15A 0x78
0x15B 0xF4
0x15C 0x20
0x15D 0x00
0x15E 0x00
0x15F 0x0B
0x160 0x00
0x161 0x01
0x162 0x44
0x163 0x00
0x164 0x00
0x165 0x0C
0x166 0x00
0x167 0x00
0x168 0x0C
0x169 0x5B
0x16A 0x20
0x16B 0x00
0x16C 0x00
0x16D 0x00
0x16E 0x13
0x17C 0x15
0x17D 0x0F
DAC_RESET0x00 0x1
DAC3XJ8X0x00 0x0018
0x01 0x0003
0x02 0x2002
0x03 0xA300
0x04 0xF0F0
0x05 0xFF07
0x06 0xFFFF
0x07 0x3100
0x08 0x0000
0x09 0x0000
0x0A 0x0000
0x0B 0x0000
0x0C 0x0400
0x0D 0x0400
0x0E 0x0400
0x0F 0x0400
0x10 0x0000
0x11 0x0000
0x12 0x0000
0x13 0x0000
0x14 0x0000
0x15 0x0000
0x16 0x0000
0x17 0x0000
0x18 0x0000
0x19 0x0000
0x1A 0x0023
0x1B 0x0000
0x1E 0x9999
0x1F 0x9980
0x20 0x8008
0x22 0x1B1B
0x23 0x01FF
0x24 0x0020
0x25 0x2000
0x26 0x0000
0x2D 0x0001
0x2E 0xFFFF
0x2F 0x0004
0x30 0x0000
0x31 0x1000
0x32 0x0000
0x33 0x0000
0x34 0x0000
0x3B 0x0000
0x3C 0x0050
0x3D 0x0088
0x3E 0x0148
0x3F 0x0000
0x46 0x1882
0x47 0x01C8
0x48 0x3143
0x49 0x0000
0x4A 0x0F3E
0x4B 0x1200
0x4C 0x1303
0x4D 0x0100
0x4E 0x0F4F
0x4F 0x1C61
0x50 0x0000
0x51 0x00DC
0x52 0x00FF
0x53 0x0000
0x54 0x00FC
0x55 0x00FF
0x56 0x0000
0x57 0x00FF
0x58 0x00FF
0x59 0x0000
0x5A 0x00FF
0x5B 0x00FF
0x5C 0x1133
0x5E 0x0000
0x5F 0x3210
0x60 0x5764
0x61 0x0211
0x64 0x0001
0x65 0x0001
0x66 0x0001
0x67 0x0001
0x68 0x7709
0x69 0x0000
0x6A 0x0000
0x6B 0xBD07
0x6C 0x0007
0x6D 0x0090
0x6E 0x0000
0x6F 0x0000
0x70 0x0000
0x71 0x0000
0x72 0x0000
0x73 0x0000
0x74 0x0000
0x75 0x0000
0x76 0x0000
0x77 0x0000
0x78 0x0000
0x79 0x0000
0x7A 0x0000
0x7B 0x0000
0x7C 0x0000
0x7D 0x0000
Amy Luo:
您好,感谢您对TI产品的关注!为更加有效地解决您的问题,我需要询问更了解这款芯片的TI资深工程师。
,
z xx:
多谢您的回复,但目前尚未看到进一步的回复。
,
Amy Luo:
因为前2天是周末,所以没有回复。我得到反馈后,会在这里回复您的,请耐心等一下。
,
Amy Luo:
您好,已得到回复如下
此错误通常与时钟问题有关。这是自己设计的板还是TI EVM?
1.FPGA和DAC是否接收到正确的时钟和SYSREF(频率和振幅)?
2.SYNC的状态是什么?DAC在CGS之后发送高吗?
3.DAC和FPGA上的链路参数是否正确(K、L、M、F、S等)?
4.提供时钟和电源后,DAC是否发出硬复位?
请运行附带的仅限NCO的测试,该测试将验证DAC38J82 SPI、时钟和电源是否正确。
7840.DAC38J84 100MHz NCO Test.pptx
,
z xx:
非常感谢您的回复,针对您提出的问题及测试情况回复如下:
此错误通常与时钟问题有关。这是自己设计的板还是TI EVM?
回复:该调试板为自己设计的板,为LMK04828+DAC38J82的组合;
1.FPGA和DAC是否接收到正确的时钟和SYSREF(频率和振幅)?
回复:由于未预留测试点,只能从侧面推测时钟状态。从FPGA内部通过ILA查看,FPGA接收到的时钟和SYSREF频率正确。由于LMK04828输出到DAC的时钟和输出到FPGA的时钟只有参数不同,且DAC38J82采用PLL配置方式时,DAC的PLL能够锁定,我认为DAC接收到的时钟正确;
2.SYNC的状态是什么?DAC在CGS之后发送高吗?
回复:DAC参数配置完成后,SYNC始终保持为高,但不确定具体什么时刻拉高的。
3.DAC和FPGA上的链路参数是否正确(K、L、M、F、S等)?
回复:经过多次核对,二者参数配置一致。
4.提供时钟和电源后,DAC是否发出硬复位?
回复:实际工作流程为,先配置LMK04828的参数,该器件配置完成后,FPGA输出低脉冲,对DAC进行复位,然后再配置DAC参数;
请运行附带的仅限NCO的测试,该测试将验证DAC38J82 SPI、时钟和电源是否正确。
回复:根据你提供的资料,结合器件型号,参数配置截图如下:
另附DAC38J82和LMK04828参数文件及配置顺序文件
3882_4lanes.cfg
LMK04828_HexRegisterValues.txtR0 (INIT) 0x000090 R0 0x000010 R2 0x000200 R3 0x000306 R4 0x0004D0 R5 0x00055B R6 0x000600 R12 0x000C51 R13 0x000D04 R256 0x010000 R257 0x010155 R258 0x010255 R259 0x010301 R260 0x010422 R261 0x010500 R262 0x0106F0 R263 0x010711 R264 0x010864 R265 0x010955 R266 0x010A55 R267 0x010B04 R268 0x010C22 R269 0x010D00 R270 0x010EF0 R271 0x010F77 R272 0x011008 R273 0x011155 R274 0x011255 R275 0x011300 R276 0x011402 R277 0x011500 R278 0x0116F9 R279 0x011700 R280 0x01180C R281 0x011955 R282 0x011A55 R283 0x011B00 R284 0x011C22 R285 0x011D00 R286 0x011EF0 R287 0x011F33 R288 0x01200C R289 0x012155 R290 0x012255 R291 0x012300 R292 0x012422 R293 0x012500 R294 0x0126F0 R295 0x012711 R296 0x012808 R297 0x012955 R298 0x012A55 R299 0x012B00 R300 0x012C02 R301 0x012D00 R302 0x012EF9 R303 0x012F00 R304 0x01300C R305 0x013155 R306 0x013255 R307 0x013300 R308 0x013422 R309 0x013500 R310 0x0136F1 R311 0x013731 R312 0x013825 R313 0x013902 R314 0x013A03 R315 0x013BC0 R316 0x013C00 R317 0x013D08 R318 0x013E01 R319 0x013F00 R320 0x01408A R321 0x014100 R322 0x014200 R323 0x014312 R324 0x014400 R325 0x01457F R326 0x014600 R327 0x01471A R328 0x014802 R329 0x014942 R330 0x014A02 R331 0x014B16 R332 0x014C00 R333 0x014D00 R334 0x014EC0 R335 0x014F7F R336 0x015003 R337 0x015102 R338 0x015200 R339 0x015300 R340 0x015478 R341 0x015500 R342 0x015678 R343 0x015700 R344 0x015896 R345 0x015900 R346 0x015A78 R347 0x015BD4 R348 0x015C20 R349 0x015D00 R350 0x015E00 R351 0x015F0B R352 0x016000 R353 0x016101 R354 0x016244 R355 0x016300 R356 0x016400 R357 0x01650C R369 0x0171AA R370 0x017202 R380 0x017C15 R381 0x017D33 R358 0x016600 R359 0x016700 R360 0x01680C R361 0x016959 R362 0x016A20 R363 0x016B00 R364 0x016C00 R365 0x016D00 R366 0x016E13 R371 0x017300 R386 0x018200 R387 0x018300 R388 0x018400 R389 0x018500 R392 0x018800 R393 0x018900 R394 0x018A00 R395 0x018B00 R8189 0x1FFD00 R8190 0x1FFE00 R8191 0x1FFF53spi_3882.txt
send_data[0] <= 24'h4A_0F_3E;send_data[1] <= 24'h24_00_00;send_data[2] <= 24'h5C_00_00;send_data[3] <= 24'h00_01_18;send_data[4] <= 24'h01_00_03;send_data[5] <= 24'h02_20_50;send_data[6] <= 24'h03_A3_00;send_data[7] <= 24'h04_F0_F0;send_data[8] <= 24'h05_FF_07;send_data[9] <= 24'h06_FF_FF;send_data[10 ] <= 24'h07_31_00;send_data[11 ] <= 24'h08_00_00;send_data[12 ] <= 24'h09_00_00;send_data[13 ] <= 24'h0A_00_00;send_data[14 ] <= 24'h0B_00_00;send_data[15 ] <= 24'h0C_04_00;send_data[16 ] <= 24'h0D_04_00;send_data[17 ] <= 24'h0E_04_00;send_data[18 ] <= 24'h0F_04_00;send_data[19 ] <= 24'h10_00_00;send_data[20 ] <= 24'h11_00_00;send_data[21 ] <= 24'h12_00_00;send_data[22 ] <= 24'h13_00_00;send_data[23 ] <= 24'h14_38_E4;send_data[24 ] <= 24'h15_E3_8E;send_data[25 ] <= 24'h16_22_B8;send_data[26 ] <= 24'h17_00_00;send_data[27 ] <= 24'h18_00_00;send_data[28 ] <= 24'h19_00_00;send_data[29 ] <= 24'h1A_00_20;send_data[30 ] <= 24'h1B_00_00;send_data[31 ] <= 24'h1E_99_99;send_data[32 ] <= 24'h1F_99_80;send_data[33 ] <= 24'h20_80_08;send_data[34 ] <= 24'h22_1B_1B;send_data[35 ] <= 24'h23_01_FF;send_data[36 ] <= 24'h25_40_00;send_data[37 ] <= 24'h26_00_00;send_data[38 ] <= 24'h2D_00_01;send_data[39 ] <= 24'h2E_FF_FF;send_data[40 ] <= 24'h2F_00_05;send_data[41 ] <= 24'h30_00_00;send_data[42 ] <= 24'h31_10_00;send_data[43 ] <= 24'h32_00_00;send_data[44 ] <= 24'h33_00_00;send_data[45 ] <= 24'h34_00_00;send_data[46 ] <= 24'h3B_08_00;send_data[47 ] <= 24'h3C_02_28;send_data[48 ] <= 24'h3D_00_88;send_data[49 ] <= 24'h3E_01_28;send_data[50 ] <= 24'h3F_00_00;send_data[51 ] <= 24'h46_18_82;send_data[52 ] <= 24'h47_01_C8;send_data[53 ] <= 24'h48_31_43;send_data[54 ] <= 24'h49_00_00;send_data[55 ] <= 24'h4B_12_00;send_data[56 ] <= 24'h4C_13_03;send_data[57 ] <= 24'h4D_01_00;send_data[58 ] <= 24'h4E_0F_4F;send_data[59 ] <= 24'h4F_1C_61;send_data[60 ] <= 24'h50_00_00;send_data[61 ] <= 24'h51_00_DC;send_data[62 ] <= 24'h52_00_FF;send_data[63 ] <= 24'h53_00_00;send_data[64 ] <= 24'h54_00_FC;send_data[65 ] <= 24'h55_00_FF;send_data[66 ] <= 24'h56_00_00;send_data[67 ] <= 24'h57_00_FF;send_data[68 ] <= 24'h58_00_FF;send_data[69 ] <= 24'h59_00_00;send_data[70 ] <= 24'h5A_00_FF;send_data[71 ] <= 24'h5B_00_FF;send_data[72 ] <= 24'h5E_00_00;send_data[73 ] <= 24'h5F_32_10;send_data[74 ] <= 24'h60_57_64;send_data[75 ] <= 24'h61_02_11;send_data[76 ] <= 24'h6D_00_90;send_data[77 ] <= 24'h6E_00_00;send_data[78 ] <= 24'h6F_00_00;send_data[79 ] <= 24'h70_00_00;send_data[80 ] <= 24'h71_00_00;send_data[81 ] <= 24'h72_00_00;send_data[82 ] <= 24'h73_00_00;send_data[83 ] <= 24'h74_00_00;send_data[84 ] <= 24'h75_00_00;send_data[85 ] <= 24'h76_00_00;send_data[86 ] <= 24'h77_00_00;send_data[87 ] <= 24'h78_00_00;send_data[88 ] <= 24'h79_00_00;send_data[89 ] <= 24'h7A_00_00;send_data[90 ] <= 24'h7B_00_00;send_data[91 ] <= 24'h7C_00_00;send_data[92 ] <= 24'h7D_00_00;send_data[93 ] <= 24'h24_00_20;send_data[94 ] <= 24'h5C_11_33;send_data[95 ] <= 24'h4A_0F_3E;send_data[96 ] <= 24'h4A_0F_3F;send_data[97 ] <= 24'h4A_0F_21;send_data[98 ] <= 24'h03_A3_01;send_data[99 ] <= 24'h64_00_00;send_data[100] <= 24'h65_00_00;send_data[101] <= 24'h66_00_00;send_data[102] <= 24'h67_00_00;send_data[103] <= 24'h68_00_00;send_data[104] <= 24'h69_00_00;send_data[105] <= 24'h6A_00_00;send_data[106] <= 24'h6B_00_00;send_data[107] <= 24'h6C_00_00;send_data[108] <= 24'h00_00_00;最终输出信号频谱如下:
,
Amy Luo:
我已将您的回复反馈给TI工程师,我收到他的回复后会立即给您回复的,请耐心等待。
,
Amy Luo:
必须切换SIF_SYNC,才能更新NCO值。加载所有DAC寄存器后,它们需要执行以下写入操作:
地址 数据
0x1F 0x9980
0x1F 0x9982
0x1F 0x9980
这样做之后,他们应该会得到100MHz的输出。
,
z xx:
非常感谢你的指导。修改之后,确实得到了100MHz的输出。据此能否得出SerdesPLL无法锁定以及FIFO报错的原因吗?
,
Amy Luo:
配置DAC和FPGA后,您 reset DAC JESD 核,并使用如下所示的寄存器写入发出LMK SYSREF脉冲。附件是一份启动顺序指南您可以尝试。
7635.DAC38J84 SYSREF Configuration.docx
,
z xx:
您好,
根据建议reset DAC JESD 核后,增加触发LMK SYSREF脉冲的寄存器,回读0x6C的状态仍然为0x0F,但FIFO的不再报错,但我怀疑FIFO的变化是因为关闭了串行通道。另外我有两个疑问:
1、SYSREF是否与SerdesPLL锁定有关?
2、能否将SerdesPLL环路中的时钟通过ALARM引脚输出?能否作为通过IO连接到FPGA中进行查看?
,
Amy Luo:
1、不是的,Serdes PLL使用DAC输入时钟或DAC PLL VCO。FIFO错误和其他错误将无效,直到Serdes PLL被锁定,并通过写入“0”进行清除。
2、不能;不能
3、在读取寄存器0x6C之前,确保写入“0”以清除警报。如果不使用DAC PLL,确保寄存器0x3B中的位15设置为“0”。
4、Serdes参考时钟分频器设置是什么?也就是寄存器0x3B中的14:11位。
5、如果Serdes PLL未锁定,CGS未通过,链路应被卡住因SYNC 低,FPGA持续发送0xBCBC(K28.5字符)。是这样吗?