DAC34H84的TI官方开发板。
用FPGA在时钟的上升下降沿的时候放上数(用示波器看眼图和时钟的关系绝对满足setup和hold time时间关系),但是始终只有上升沿的数能从IOUTA和IOUTB模拟口出来,IOUTA和IOUTB始终是一样的,这是怎么回事?
不应该是IOUTA出的是上升沿采的数转换的而IOUTB是下降沿采的转换的吗?
莫非需要在哪里设置?
Vito Shen:
DAC34H84在电路中有个8 sample FIFO模块,所以数据输入和ADC核心工作可以不是同一个频率的。数据输入的确是DDR的,在上升沿下降沿都有数据输入。建议观察下DATACLK 和DACCLK的频率。可以试着将FIFO模块bypass调试,谢谢
ying wang:
回复 Vito Shen:
本来就没有用FIFO,FIFO是disable的啊,DATACLK是100MHz,DACCLK是200MHz。相位上有固定关系,这个相位是由开发板上的CDCE6005控制的,应该是没有问题的啊。
Vito Shen:
回复 ying wang:
你好,一个sample写完需要2个dataclk周期,而dacclk只在每个周期的上升沿捕获整个sample,所以我觉得你的dataclk需要是dacclk的两倍,你可以看下datasheet中的word-wide format和byte-wide format的描述,谢谢
Vito Shen:
回复 Vito Shen:
更正下:一个sample写完需要1个dataclk周期,而dacclk只在每个周期的上升沿捕获整个sample,所以dataclk需要和dacclk相同,你可以看下datasheet中的data format的描述,谢谢
ying wang:
回复 Vito Shen:
还是不行啊,周期设成一样的也不行,我现在是上升沿的数据是一个正弦波,下降沿是0。但是怎么调整时钟频率和相位关系,IOUTA和IOUTB始终是一样的,连噪声的波形在示波器上看都是一样的。
我是这样实现的,FPGA产生两个时钟clk100MHz0和clk100MHz180,然后分别在其上升沿放数(便于测试,我clk100MHz0放的是一个正弦波,clk100MHz180放的是0),然后DATACLK是clk100MHz90,这样的时候IOUTA和IOUTB都输出的是我clk100MHz0的波形。
如果调整DATACLK的相位,IOUTA和IOUTB的输出一起动,时钟一样。
DACCLK时钟变成100MHz,IOUTA和IOUTB的输出也是一起动。
感觉上就像是IOUTA和IOUTB是同一个沿采的一样,因为在示波器上看两个波形就像是同一个波形。
ying wang:
回复 ying wang:
确信我没有犯 像把示波器探头放在 同一个位置 或者同一个信号上 的错误。
Seasat Liu:
回复 ying wang:
一点小建议
先设置寄存器,把内部的常数数据源和NCO或者Mixer打开,看一下输出的结果是不是正常。
然后启用IQtest功能,看看寄存器里是不是有告警。
ying wang:
回复 Seasat Liu:
我的设置是这样子的
ying wang:
回复 ying wang:
IOTest使能的话 结果那一行的灯全亮
Seasat Liu:
回复 ying wang:
Data routing是不是有点问题。好像是把数据都放到一个口了。