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.

ADC12DJ3200: Maximize SFDR at 1333.333 MHz sampling

Part Number: ADC12DJ3200


Hello...

 

I am using a COTS board and it uses the ADC12DJ3200. I am always using it in the “dual-channel mode” and I’m always sampling at 1333.333 MHz. I am always running in the 2nd Nyquist zone, so my analog BW is from 750 – 1250 MHz. I do not need any of the DDCs or internal processing of the ADC12DJ3200; I just need straight time-domain data.

 

In this application, I need the largest possible SFDR within my analog BW. It doesn't matter to this application if the spurs are harmonics, or clock related, or at fixed frequencies. Based on dBc, I need to knock down whatever becomes the highest spur. Since I’m sampling the ADC at a rate that’s much slower than its maximum, I have a question:

    1) Are there internal registers that may need to be tweaked for this specific sample rate in order to maximize SFDR?

 

I am working with the COTS vendor to learn how they are programming those registers, but I’d appreciate any insights you can provide.

 

Thanks...

  • Hi Forrest
    If you are using the ADC in dual input mode then the performance with a clock frequency of 1333.333 MHz should be well optimized and won't be improved significantly by changing any of the factory programmed trim registers.
    In this mode the main performance optimization will be done by performing a Foreground Calibration once the ADC is configured and in a steady state condition. This will optimize the linearity of the ADC core resulting in the best harmonic performance.
    Can you identify the highest spur currently limiting SFDR and what the level of the spur and input signal amplitude are?
    Best regards,
    Jim B
  • Hello Jim...

    Thanks for the reply. When I input a tone that is -1 dBFS, then the highest spur is around -59 or -60 dBc. This varies a little bit based on input frequency (between 750 and 1250 MHz), but not significantly. In fact, this spur is consistently the 2nd harmonic (aliased into 750 - 1250), although the 3rd harmonic is only a few dB better.

    Thanks...
  • Hi Forrest
    I will try to set up similar sampling conditions tomorrow and see how the results compare to yours.
    I'll let you know what I get.
    Best regards,
    Jim B

  • Jim...

    Again, this is a COTS board but we've recently changed SW and the 3rd harmonic got 20 dB worse. It is now about -44 dBc. (The other spurs didn't change appreciably.) We can go back to the earlier SW and it's back to normal, so this issue is definitely related to the programming of the clock synthesizer and/or the ADC itself. We're not sure of everything that changed between the 2 versions of SW, but something has, and I'm working on tracking it down.

    There's a "rumor" that this may be related to the periodic background calibration of the ADC, and possibly turning on the background calibration increased the 3rd harmonic (aliased to 750 - 1250 MHz). Does that sound plausible? Do you have any other insights?

    I'll keep working on the SW to narrow it down for certain, but I wanted to get your ideas.

    Thanks...
  • Hi Forest

    Here is my capture using the ADC12DJ3200EVM with on-board clocking at 1250 MHz and an input signal at 997.77MHz.

    I have Foreground and Foreground Offset calibration enabled.

    I am notching the interleave offset related spur at Fs/2, but all other spurs are shown and quantified in the performance metrics.

    Next is the same signal case, but with Background and Background Offset calibration also enabled.

    In this calibration mode the SFDR varies somewhat depending on which ADC cores are active. I did the screen shot of the low-end of the SFDR range in this mode.

    In both cases SFDR is limited by HD2 performance. I haven't seen an excessively high HD3.

    Can you export the ADC register settings so I can compare them to what I have in these measurements? If possible the order in which the ADC registers are programmed would also be useful, but the basic settings will be useful as well.

    Best regards,

    Jim B

  • Jim...

    Here's a text-dump of the register settings in their correct sequence. The left-most column is a debug print statement from the version of SW without a large 3rd harmonic. The other columns are my notes as I decoded the registers and data values.

    Configuring ADCs ...
    Clearing ADC RESET pins
    spi_write: ADC addr 0 data 0xb0 Configuration A Register CONFIG_A soft_reset ascending addresses 4-wire SPI mode
    spi_write: ADC addr 0x2a data 0x6 Clock Control 1 CLK_CTRL1 use LVPECL for devclk use LVPECL for sysref
    spi_write: ADC addr 0x3b data 0x2 TMSTP +/- Control TMSTP_CTRL use LVPECL for tmstp
    spi_write: ADC addr 0x2b7 data 0x1 DEVCLK Aperture Del TAD devclk aperture delay tad_fine = 1
    spi_write: ADC addr 0x29 data 0x20 Clock Control 0 CLK_CTRL0 enable sysref receiver
    spi_write: ADC addr 0x29 data 0x60 Clock Control 0 CLK_CTRL0 enable sysref processor
    spi_write: ADC addr 0x200 data 0 JESD204B Enable JESD_EN disable JESD
    spi_write: ADC addr 0x61 data 0 Calibration Enable CAL_EN hold calibration in reset
    spi_write: ADC addr 0x2b1 data 0xf SYSREF Cal Config SRC_CFG 256 averages 256 cycles per accumulation
    spi_write: ADC addr 0x2b0 data 0x1 SYSREF Cal Enable SRC_EN starts SYSREF calibration
    ADC0 SYSREF Calibration Done
    ADC1 SYSREF Calibration Done
    spi_write: ADC addr 0x201 data 0x2 JESD204B Mode JMODE JESD Mode = 2
    spi_write: ADC addr 0x202 data 0xf JESD204B K Parameter KM1 K = 16
    spi_write: ADC addr 0x204 data 0x3 JESD204B Control JCTRL 2's complement enable scrambler
    spi_write: ADC addr 0x61 data 0x1 Calibration Enable CAL_EN enable calibrations
    spi_write: ADC addr 0x200 data 0x1 JESD204B Enable JESD_EN enable JESD
    spi_write: ADC addr 0x30 data 0xff INA Full Scale Range FS_RANGE_A set chan A to 1000 mVpp
    spi_write: ADC addr 0x31 data 0xff ditto…
    spi_write: ADC addr 0x32 data 0xff INB Full Scale Range FS_RANGE_B set chan B to 1000 mVpp
    spi_write: ADC addr 0x33 data 0xff ditto…
    spi_write: ADC addr 0x48 data 0 Serializer Preemph SER_PE set pre-emphasis = 0
    spi_write: ADC addr 0x29 data 0 Clock Control 0 CLK_CTRL0 disable SYSREF processing

    Thanks...
  • Sorry, but that's not formatted well anymore.
  • Jim...

    Any new information?

    Thanks...
  • Hi Forrest

    Please try this slightly revised sequence/setup. The changes are highlighted in Red.

    Clearing ADC RESET pins
    spi_write: ADC addr 0 data 0xb0 Configuration A Register CONFIG_A soft_reset ascending addresses 4-wire SPI mode

    spi_write: ADC addr 0x2a data 0x2 Clock Control 1 CLK_CTRL1 use LVPECL for sysref. 

    spi_write: ADC addr 0x3b data 0x2 TMSTP +/- Control TMSTP_CTRL use LVPECL for tmstp

    This step is not needed and provides no benefit if SYSREF calibration is being used later in the sequence.
    //spi_write: ADC addr 0x2b7 data 0x1 DEVCLK Aperture Del TAD devclk aperture delay tad_fine = 1

    spi_write: ADC addr 0x29 data 0x20 Clock Control 0 CLK_CTRL0 enable sysref receiver
    spi_write: ADC addr 0x29 data 0x60 Clock Control 0 CLK_CTRL0 enable sysref processor
    spi_write: ADC addr 0x200 data 0 JESD204B Enable JESD_EN disable JESD
    spi_write: ADC addr 0x61 data 0 Calibration Enable CAL_EN hold calibration in reset
    spi_write: ADC addr 0x2b1 data 0xf SYSREF Cal Config SRC_CFG 256 averages 256 cycles per accumulation
    spi_write: ADC addr 0x2b0 data 0x1 SYSREF Cal Enable SRC_EN starts SYSREF calibration
    ADC0 SYSREF Calibration Done
    ADC1 SYSREF Calibration Done
    spi_write: ADC addr 0x201 data 0x2 JESD204B Mode JMODE JESD Mode = 2
    spi_write: ADC addr 0x202 data 0xf JESD204B K Parameter KM1 K = 16
    spi_write: ADC addr 0x204 data 0x3 JESD204B Control JCTRL 2's complement enable scrambler
    spi_write: ADC addr 0x61 data 0x1 Calibration Enable CAL_EN enable calibrations
    spi_write: ADC addr 0x200 data 0x1 JESD204B Enable JESD_EN enable JESD
    spi_write: ADC addr 0x30 data 0xff INA Full Scale Range FS_RANGE_A set chan A to 1000 mVpp
    spi_write: ADC addr 0x31 data 0xff ditto…
    spi_write: ADC addr 0x32 data 0xff INB Full Scale Range FS_RANGE_B set chan B to 1000 mVpp
    spi_write: ADC addr 0x33 data 0xff ditto…

    spi_write: ADC addr 0x6C data 0x0 Calibration Soft Trigger Clear

    spi_write: ADC addr 0x6C data 0x1 Calibration Soft Trigger Set to initiate Foreground calibration after changing FS Range

    spi_write: ADC addr 0x48 data 0 Serializer Preemph SER_PE set pre-emphasis = 0

    spi_write: ADC addr 0x29 data 0x20 Clock Control 0 CLK_CTRL0 disable SYSREF processing, keep receiver enabled

    I think these changes should give some improvement. Let me know what you find.

    Best regards,

    Jim B

  • Sorry for the delay, but we're still evaluating this issue.

    Thanks...
  • OK, thanks Forrest
    Please send an update when available.
    Best regards,
    Jim B
  • Jim…

    OK. Sorry for the long delay, but we have received our evaluation boards and have done some experiments with it.

    1) Documentation for the adc12dj3200 states to never write to certain registers (i.e. OADJ_C_INA/B) during an FG or BG cal. If a write to this register is made during BG Cal, are the effects permanent, or could simply running another calibration, FG or BG, resolve the issue? We suspect our original issue with a high 3rd order harmonic was created during one of these register writes. Does this sound plausible?

    2) Is there any specific event (or series of register writes) that might cause the 3rd order harmonic to significantly increase when input is simply a tone? This has been seen on our evaluation board but a FG Cal quickly eliminates the issue and brings the harmonics back down.

    3) What is the algorithm for FG or BG cal? For example, what values is it measuring and adjusting? Can we see certain registers change or is there even access to these cal values?

    4) If running with FG Cal, at what temperature deltas should FG Cal be re-run? At what other point would a FG Cal need to be re-run?

    5) When does the converter initiate a BG Cal?

    Thanks...
  • Hi Forrest

    Regarding your latest questions:

    1) Documentation for the adc12dj3200 states to never write to certain registers (i.e. OADJ_C_INA/B) during an FG or BG cal. If a write to this register is made during BG Cal, are the effects permanent, or could simply running another calibration, FG or BG, resolve the issue? We suspect our original issue with a high 3rd order harmonic was created during one of these register writes. Does this sound plausible?

    The effect of the writes won't necessarily be permanent. Running a new Foreground Offset or Background Offset calibration would restore those values you mention.

    2) Is there any specific event (or series of register writes) that might cause the 3rd order harmonic to significantly increase when input is simply a tone? This has been seen on our evaluation board but a FG Cal quickly eliminates the issue and brings the harmonics back down.

    Changing CAL_SOFT_TRIG from 1 to 0 prepares the calibration block to start a new calibration. In this state large harmonic distortion will be seen. Setting this bit back to 1 re-starts the calibration block and restores performance.

    3) What is the algorithm for FG or BG cal? For example, what values is it measuring and adjusting? Can we see certain registers change or is there even access to these cal values?

    The algorithm is proprietary. The results of the calibration can be read-out and stored, and written back into the device for future use. This is discussed in the CAL_DATA_EN and CAL_DATA register descriptions. The calibration settings are not intended to be decoded or adjusted by the users.

    4) If running with FG Cal, at what temperature deltas should FG Cal be re-run? At what other point would a FG Cal need to be re-run?

    See Figures 11-15. These show performance versus temperature in FG calibration mode with calibration at each temperature point versus calibration only at 25C ambient temperature. Based on your system requirements you can decide how much performance degradation is tolerable and then determine the delta-T where re-calibration should be performed.

    5) When does the converter initiate a BG Cal?

    With BG Calibration enabled the ADC cores are in a continuous process of being re-calibrated and swapped. The entire process to calibrate all cores takes less than a second.

    Low Power BG Calibration mode adds programmable waiting periods into the process to reduce the average power consumed. Please refer to 7.4.6.2 Low Power Background Calibration (LPBG) Mode for more details.


    I hope this is helpful.

    Best regards,

    Jim B

  • Thanks. I think this does it...