求教:DAC3484的SYNC、FRAME、OSTR、DATACLK连接到FPGA,在进行到配置步骤31时,都是正常的,读出的05的值不存才alarm的标识,但是随后进行32到36任何一项,都会触发寄存器05的alarms_from_fifo的Pointers are 2 away、Pointers are 1 away、FIFO pointer collision,只要对寄存器进行写操作都会触发alarm,在此期间txenable保持为0,没有数据传输。始终alarm清不掉.
设计中使用DAC3484芯片输出信号,上电后,对其的配置过程如下:
序号 |
寄存器 |
配置值 |
说明 |
1 |
00 |
089c |
16倍内插,fifo使能,alarm使能,clkdiv_sync使能 |
2 |
01 |
010e |
4通道使能,fifo的1away/2away/collosion使能 |
3 |
02 |
f0d2 |
16bitin,dacclk、dataclkgone使能,nco使能,twos |
4 |
03 |
f000 |
设置输出电流 |
5 |
07 |
c07f |
设置alarm的mask |
6 |
08 |
0000 |
设置qmc_offset |
7 |
09 |
a000 |
Fifo offset5,设置qmc_offset |
8 |
0a |
0000 |
设置qmc_offset |
9 |
0b |
0000 |
设置qmc_offset |
10 |
0c |
0400 |
设置qmc_gain |
11 |
0d |
0400 |
Cmix无效,设置qmc_gain |
12 |
0e |
0400 |
设置qmc_gain |
13 |
0f |
0400 |
输出延时设置,设置qmc_gain |
14 |
10 |
0000 |
设置qmc_phase |
15 |
11 |
0000 |
设置qmc_phase |
16 |
12 |
0000 |
设置phase_offset |
17 |
13 |
0000 |
设置phase_offset |
18 |
14 |
999a |
设置NCO |
19 |
15 |
1999 |
设置NCO |
20 |
16 |
999a |
设置NCO |
21 |
17 |
1999 |
设置NCO |
22 |
18 |
2c60 |
PLL N分频使能,PLL使能,Single pump,P为4 |
23 |
19 |
c0f4 |
M为128,N为16,参考时钟120MHz,DACCLK960MHz |
24 |
1a |
cc00 |
设置PLL CVO coarse为51,PLL不sleep |
25 |
1b |
0800 |
内参考, |
26 |
1e |
4444 |
Qm的同步源设置为SYNC |
27 |
1f |
4444 |
设置mix和nco、dataformat的同步源为sync |
28 |
20 |
1401 |
Fifoin同步源为sync,fifoout同步源为ostr,clkdiv同步源为sync |
29 |
18 |
NA |
读取18,判断lfvolt的值为合理值 |
30 |
05 |
0000 |
Clear all alarm |
31 |
05 |
NA |
读取05,判断alarm是否存在 |
32 |
1f |
4442 |
设置sfi_sync |
33 |
00 |
0898 |
clkdiv_sync不使能 |
34 |
1f |
4448 |
设置dataformat不同步,清除sfi_sync |
35 |
20 |
0000 |
Fifo的in和out同步不使能 |
36 |
18 |
2460 |
不使能PLL的N分频器同步 |
37 |
05 |
NA |
读取05判断alarm |
Kailyn Chen:
上电时序没问题吧?关于alarm配置,请按照下面这个顺序:
Alarm monitoring is implemented as follows:
• Power up the device using the recommended power-up sequence.
• Clear all the alarms in config5 by setting them to 0.
• Unmask those alarms that will generate a hardware interrupt through the ALARM pin in config7.
• Enable automatic DAC shut-off in register config2 if required.
• In the case of an alarm event, the ALARM pin will trigger. If automatic DAC shut-off has been enabled the
DAC outputs will be disabled.
• Read registers config5 to determine which alarm triggered the ALARM pin.
• Correct the error condition and re-synchronize the FIFO.
• Clear the alarms in config5.
• Re-read config5 to ensure the alarm event has been corrected.
• Keep clearing and reading config5 until no error is reported.
Seasat Liu:
按照DAC3484的评估板软件,先生成一份初始的寄存器表吧
user4359409:
回复 Seasat Liu:
按照软件配置的寄存器试过了,还是一样的效果,clear 寄存器0x05的alarm之后,只要对其他寄存器有操作,就会有alarm触发.