This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DAC3174: DAC 3174 issues at higher frequency

Part Number: DAC3174
Other Parts Discussed in Thread: LMK03200

I am using DAC 3174 for the waveform generation as well target simulation. For clocking the Device, I am using LMK03200 jitter cleaner. The Device is working upto 200 MHz. As I am increasing the frequency , the DAC is giving good response when the desired frequency is integral multplie of sampling frequency. If I deviate, the noise increase. For the register programming, I am just reseting the DAC. Is there any solution.

  • Hi,

    if you are not doing any register programming, then what are you doing to reset the FIFO pointers inside the DAC?  The address pointers in the device for the write side of the FIFO need to be reset with a SYNC input, and the address pointers for the read side of the FIFO need to be reset with an ALIGN input.     And these two events need to happen at about the same time to ensure that the data coming out of the FIFO is about 4 words behind the data going into the FIFO.    If you are not planning to synchronize multiple DAC devices to maintain uniform latency across all channels then you don't need to use the ALIGN signal, but you will still need to have an ALIGN 'event' by substituting a SYNC 'event' in place of the ALIGN 'event' by setting the sync_only register bit and using the SYNC input.  This lets the SYNC input be used to reset address pointers in both sides of the FIFO and the ALIGN input pins could be left unused.   And if you don't wish to have a source for the SYNC input, you can set the sif_sync_ena bit in the device and then set the sif_sync bit to zero and then on another register write set the sif_sync to one.  Then the SYNC input pins could also be left unused.   You only have to reset the FIFO address pointers once after power up, but it has to be at least once and the reset pin doesn't do it. 

    Regards,

    Richard P.

  • Hi Richard

     
                            I have done what you asked to modify. I am using only Dac clock as well as Data clock. I am not using SYNC and allign. I am writing following registers

    Address Value

    00          x"04ed"

    01         x"601e"

    01         x"603e"

    But the problem is, once in a while spectrum is not coming clean when I am operating at 300 MHz. There is no issue when operation is at 150 MHz.

    What could be done for this.

  • Hi,

    since you are using the sif_sync now, you would not need to have the sync input buffer enable in Config0 bit 3.   But it sounds to me more like you are having timing issues getting the data latched into the DAC if it works at low sample rates and not at higher sample rates.   Config3 lets you adjust the timing of the data and sync relative to the clock input, you can add delay to the data busses or add delay to the clock signal to adjust for timing out of the FPGA.   I expect you are taking default register values for Config3.  You could start by incrementing the value for the clock delay one by one to see if the issue resolves, or if not then incrementing the values for the data busses to see if the issue resolves.   There is also the option to enable the pattern verification feature and have the FPGA send a repeating 8-sample pattern to the DAC and let the DAC compare the pattern against pre-stored patterns to check for errors on the digital bus, but to use this feature you would have to do a SPI read back to check for timing errors.   But a quicker test would be to just try incrementing the delay values.   the field clkdlyb is the one that delays the clock in full-word interface mode, and clkdlya delays the SYNC if needed.   The two datadly fields would be used with the same values to delay the data busses.

    Regards,

    Richard P. 

  • Hi Richard

    I tried delaying the data with all the possible combination available but could not see the solution. I asked altera also, whether some issue in there in nco ipcore .
  • Hi,

    it might be worth your while then to use the pattern verification feature to verify that the digital data is getting into the DAC from the FPGA without error.  Please see attached for a ppt I made of when I set up this feature on my bench a while back.  Essentially there are 8 registers in the device that each hold a sample pattern.  You can accept the default values or write your own pattern values into these registers if you wish.   Then you have your FPGA send a repeating pattern of these 8 samples to the DAC over and over continuously.   With the verifier enabled, the pattern match is done on each bit of data coming from the FPGA on each of the 8 samples, and if there is ever a mismatch then a bit is set to indicate an error.   You would read back the error indication register at a later time to see if there has been an error in the data from the FPGA.   It takes a while to get used to how the feature works.  once you have the data going, you have to write zero to the error indicators to clear out old comparisons, and then the next time you read the error register you will see results from the last time you cleared the register.   And the SYNC signal must be used to indicate the first of the 8 samples from the FPGA.   If you can verify that the data from the FPGA to the DAC is being handed off properly, then the issue you are seeing must be something else, such as the FIFO handling.  you need to be able too read the registers, and the SPI GUI for the EVM on the TI web does not do that so I had to make a new GUI that would do read-back, and that is the GUI you can see being used in the ppt.

    Regards,

    Richard P.

    4544.DAC3174 Pattern Test Feature.pptx