TI论坛
直播中

欲望都市

10年用户 953经验值
擅长:可编程逻辑
私信 关注
[问答]

使用DAC3482 fifo同步失败的原因?怎么处理?


  • 最近在使用DAC3482芯片,使用AD9517提供DACCLK P/N(30M),然后使用3482内部PLL产生480M的DACCLK,相关分频器M=16,N=1,OSTR=30M;另外使用AD9517产生240M时钟信号作为FPGA芯片的时钟输入,在FPGA内部以其为参考时钟,使用IP核产生480M(clk_pll,作为数据产生模块的驱动时钟,因为3482是在DATACLK的上升沿和下降沿均进行数据采样,所以设置为DATACLK的2倍)、240M(DATACLK,输出到3482芯片)、10M(SCLK,配置3482寄存器的串口驱动时钟,输出到3482)  这3个时钟。 FIFO使用双同步源模式,相关的32号寄存器使用默认值,根据DATASHEET第44页的说明,FRAME使用DATACLK的16分频;
            刚开始提供DACCLK,DATACLK,SCLK,clk_pll,输入数据位全0,配置完所有寄存器之后拉高TXENABLE信号,输入数据变为正弦信号,同时给SYNC信号一个上升沿用于同步3482内部的PLL。
            在以上配置和时序的情况下,每次FIFO都会冲突,复位后还是冲突,请各位朋友帮我分析一下原因,在线等,比较急,谢谢!

回帖(9)

俞丽

2024-12-23 10:26:50
 1. FRAME使用DATACLK的16分频可能有问题,手册45页图51,FRAME需要领先DATACLK一段时间,同时FRAME和DATA是边沿对齐的,你检查一下。
2. 所以现在FIFO写指针的同步源是FRAME,读指针是OSTR,PLL的同步源是SYNC?FRAME和OSTR来自不同的时钟域,FIFO还是有可能乱掉。两个办法,一是把读指针也用FRAME做同步源,反正你也不做多片DAC的输出同步,OSTR也就无所谓了;或者是用SIF_SYNC,给一个异步的同步信号强制同步一下FIFO读写指针,或许也有帮助。
3. FIFO offset和LVDS data/clk delay可能需要调一下。
4. DAC3482的产品文件夹里有应用手册啊,里面讲得很全,你去官网下载“DAC348x Device Configuration and Synchronization“
举报

张小林

2024-12-23 10:27:28
多片同步的话,OSTR和DACCLK应该从时钟芯片产生,走等长线送到各个DAC。我觉得你还是先调通一版单同步源的,再去尝试多同步源。
你从FPGA送一组数据过来,比如送个单音信号。DAC FIFO的读写指针先同时用FRAME同步,然后看输出频谱是否混乱。如果频谱干净,单FIFO出错,那么就去调LVDS delay和FIFO offset。如果频谱混乱,把Alarm寄存器回读一下,看看有哪些位报警了。
举报

王华梅

2024-12-23 10:27:45
不要使用内部PLL,FIFO读写指针的同步源要从外面给。通常的作法,是无视PLL,以及无视PLL产生的各种信号。FIFO的写指针用FRAME,读指针用FRAME或OSTR,不需要多芯片同步就用FRAME,需要多芯片同步就用OSTR。
举报

李秋年

2024-12-23 10:27:57
PLL模式下,DACCLK作为PLL的参考时钟。按照手册图56的PLL框图所示,PLL输出的DAC时钟=REFCLK*M/N,现在REFCLK=62.5M,M=16,N=1,则PLL产生的DACCLK=1000M,预分频=7,则VCO=7GHz。但是手册图57所示,VCO的范围是3.3G到4G,你的设置明显错了,预分频应该设置为4才对。
举报

更多回帖

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