Post Go back to editing

AD9174: How to program for FFH

Category: Software
Product Number: AD9174
Software Version: ACE

Hello, I am currently using the ACE software to evaluate the AD9174-FMC-EBZ and am a bit confused as to how to go about configuring it in NCO-only mode for fast frequency hopping

I am using a 6GHz direct clock in J34 and only need an output on DAC0.

I am not sure how to translate that 6GHz value into a FTW, since I've seen a couple different formulas in the data sheet for it that don't really match what I'm trying to create nor the size of the register. I want to (for the moment) hop from 1650MHz to 2250MHz

  • Additionally, the NCO is 48 bits but the FFH FTW are 32 bits? How do I find out what 32 bit values I need and how do they relate to the 48 bit NCO?

  • 0
    •  Analog Employees 
    •  Super User 
    in reply to dylgan

    Your query is acknowledged and will be responded by the product owner soon.

  • Hi,

    You can use ACE to configure AD9174 in NCO only mode and perform FFH. 

    Evaluation board user guide wiki page provides the information on how to configure the AD9174-FMC-EBZ for NCO only mode. See below.

    AD917x-FMC-EBZ Evaluation Board User Guide [Analog Devices Wiki]

    In configuration wizard tab of ACE program,

    - A correct JESD mode must be selected depending on desired link mode (single/dual), desired number of channel per DAC(single/dual/triple), interpolation factor (must be different than 1 so NCO is not bypassed).  To output a single tone from DAC0 and DAC1, JESD Mode 0 can be used as an example..

    - Frequency control for 48-Bit channel and main datapath NCOs are directly inputted as a frequency value (ie final NCO 0 = 1 GHz and final NCO 1 = 1.5GHz).

    - When hit apply, FTW values are automatically calculated (see the formula below copied from datasheet) and written to the registers 0x114 to 0x119 (FTW0) so DAC0 and DAC1 output a single tone at 1GHz and 1.5GHz respectively.  


    For 32-Bit FFH NCOs, FTW values should be calculated (FFH NCO are 32-bit, FTW values can be calculated by changing the power of two from 48 to 32 in the formula above) and written to the FTW1-31 registers 0x806 to 0x881 (see table 61 in datasheet). Then any of the 32 FTWs can be selected by a single register write to Register 0x800, Bits[4:0] (0 selects FTW0, 1 selects FTW1, 1F selects FTW31).

    Register debugger tool of ACE is used to send SPI write/read commands to program and select FTWs.

    For fcarrier = 1050MHz and fncoclk = 6GHz as an example, calculated FTW is 751619276 = 0x2CCCCC. Below is the SPI command sequence in Register debugger tool for programming this value to FTW1 for DAC0 and hop between FTW0 and FTW1.


    Let me know if you have additional questions.

  • Thank you for this, it was very helpful and I can successfully hop between frequencies on the DDS

    Another question I have is what is the difference between using the 48-bit register for the frequency as opposed to the 32-bit register? Is there performance differences with the frequency depending on if you decide to put it in the 48 vs the 32?

  • One more additional question: if I am using the P3 SPI header with the USB unplugged but no FMC plugged in, is there anything special I need to do aside from plugging into CS1, SCK, and MOSI? I can't seem to talk to the part

  • Hi,

    Each FFH NCO is implemented within the main NCO. There is no performance difference.

    Is an external 12V power supply connected TP41 (red) and GND to TP42 (black) as there is no connection to FMC connector? You may need to uninstall jumper on JP71 to power down the PIC and USB port as you are using P3 SPI header.



  • Good to know, thank you!

    Also I am now able to talk to the part, I was sending too many bytes (user error)

  • Great that you debugged the issue and it is working now.