Post Go back to editing

AD9154 FMC EBZ DAC PLL not being locked when configured through SPI

Thread Summary

The user is facing issues with the AD9154 DAC PLL not locking when configured through SPI, despite the JESD PLL locking successfully. The DAC PLL configuration sequence and clock signal (200 MHz) were verified, and the DAC CLK frequency of 800 MHz is within the valid range. The final answer confirms that the AD9516 clock generator must be configured or the J1 SMA clock must be properly routed when bypassing ACE, and suggests checking the reference clock and differential signal levels.
AI Generated Content
Category: Hardware
Product Number: AD9154

Hello everyone,


I am trying to configure a AD9154 DAC through SPI. The SPI commands are coming from a zynqmp us+ custom board, which is connected to the evaluation DAC board via FMC. The clock signal CLK is also coming from the same board and is configured to 200MHz. I am using the start up sequence from this manual https://www.analog.com/media/en/technical-documentation/data-sheets/ad9154.pdf, but I have changed the some configuration values to support the CLK frequency I am using. Currently, the issue is, that the DAC PLL is not being locked, register 0x084 is always set to 0. Interestingly enough, the JESD PLL lock is successful and the register value is correct (0x0B). I also would like to point out that when configuring the DAC through the ACE software, I am able to get the DAC PLL lock successfully, so I dont think it is a hardware issue. 

This is the register sequence I am sending via SPI to configure the DAC PLL:

    // Reset sequence
    { 0x000, 0xBD },
    { 0x000, 0x3C },

    //Start up sequence
	{ 0x011,   0x00 },
	{ 0x012,   0x00 },
	{ 0x080,   0x04 },
	{ 0x081,   0x00 },
	
	// Required Device Configurations
	{ 0x12D,   0x8B },
	{ 0x146,   0x01 },
	{ 0x333,   0x01 },
	
	// DAC PLL Config
	{ 0x087,   0x62 },
	{ 0x088,   0xC9 },
	{ 0x089,   0x0E },
    { 0x08A,   0x12 },
	{ 0x08D,   0x7B },
	{ 0x1B0,   0x00 },
	{ 0x1B5,   0xC9 },
	{ 0x1B9,   0x24 },
	{ 0x1BC,   0x0D },
	{ 0x1BE,   0x02 },
	{ 0x1BF,   0x8E },
	{ 0x1C0,   0x2A },
	{ 0x1C1,   0x2A },
	{ 0x1C4,   0x7E },
	{ 0x1C5,   0x06 },
	{ 0x08B,   0x02 },
	{ 0x085,   0x08 },
	{ 0x08C,   0x02 },
	{ 0x1B6,   0x49 },
	{ 0x1BB,   0x15 },
	{ 0x1B4,   0x60 },
	{ 0x083,   0x10 }, 
	{ 0x083,   0x90 } // recalibration
	{ 0x083,   0x10 },


I also used the macro tool inside of ACE to record what SPI commands the software is sending when configuring, but after comparing the values, I didnt not find any difference to the values I am using.

Would anyone be able to support me with this issue? 

Thank you!

  • Hi  ,

    Thank you for using the AD9154.  We will evaluate your concerns and share an update once our review is complete.

    Thanks and kind regards,

    Alex

  • Hi  ,

    • Ensure the DAC is getting a proper reference clock.
      • The AD9154‑FMC‑EBZ normally gets its clock from the on‑board AD9516‑1, which ACE configures. If you bypass ACE and drive the FMC clock yourself, you must also configure the AD9516 or feed the clock through the J1 SMA input—otherwise the DAC may not actually receive the 200 MHz reference. 
    • Confirm that the DAC clock you want is within the PLL’s valid operating range.
      • The DAC PLL’s VCO must stay between 6–12 GHz. The output DACCLK = VCO ÷ LODIV, so very low sample rates often cannot be generated through the PLL. In those cases, bypass the PLL and drive CLK± directly. Also ensure the CLK± signal meets the required differential swing (~0.4–2.0 Vppd) and common‑mode range.

    Please see the similar EngineerZone questions below for reference:

    Thanks and kind regards,

    Alex

  • Hi  ,

    thank you very much for the answer. We have been already using the J1 SMA input on the AD9154‑FMC‑EBZ board to provide the cloak. The HW engineers have also confirmed that the clock signal of 200MHz can be observed on the CLK± pins.

    Does ACE always configure the AD9516 clock generator by default? In our earlier tests, when we were using just ACE, without direct SPI, DAC PLL wouldnt lock until we have provided a clock signal through the J1 SMA input.

    Regarding your second point, would a DAC CLK frequency of 800Mhz work on the DAC? We have been using this value for some time in ACE already, and the DAC operated correctly in all our tests.

    Thank you!

    Best regards,
    Kiril

  • Hi  ,

    Does ACE always configure the AD9516 clock generator by default?
    • Yes, ACE does configure the on‑board AD9516‑1 clock generator on the AD9154‑FMC‑EBZ, so when you bypass ACE you must configure the AD9516 yourself or ensure the J1 SMA clock is properly routed through it.
    Regarding your second point, would a DAC CLK frequency of 800Mhz work on the DAC?
    • A DAC clock of 800 MHz is fully supported on the AD9154, either by driving it directly (PLL bypass) or by using the DAC PLL.  And, according to Table 2 of the datasheet, the maximum DAC clock rate is 2.4 GHz, so 800 MHz is well within the valid operating range.

    Thanks and kind regards,

    Alex

  • Hi  ,

    Sorry for the late response. I have been doing some other work on the project and did not test the SPI configuration that much.
    Regarding the clock configuration through ACE. I do not think that the configuration of the on-board clock generator applies in my case. When the clock signal is not routed through J1 SMA clock connected, ACE cannot configure the evaluation DAC. Only when the clock signal is sent, both PLL locks get configured. This is an offtopic question, as I wont be using the ACE software to configure the DAC, but Iis there an option in the ACE software to enable the automatic clock configuration?

    Regarding the SPI configuration: I have noticed a strange behaviour, where if the clock cable is disconnected and then connected back to J1, the PLL locks will be configured successfully with the current configuration, but after some time, the configuration will start to fail again. We believe that the problem might be with the cable that we use to send the clock signal, but this requires testing. This at least means that the data, that is being sent through SPI, is correct. I am still very confused about why this behaviour is only observed when configuring through SPI directly, as when using ACE, the PLL locks get configured every time, without disconnecting the cable. Do you perhaps have any ideas why this might be the case? I know ACE does a lot more additional writes to the DAC, but the target registers are not mentioned in the set up guide.

    Thank you,
    Best regards,

    Kiril

  • Hi  ,

    Based on what you describe, the behavior strongly points to a clock‑ and timing‑related PLL startup issue, not incorrect SPI data. ACE depends on a live reference clock at J1 and will not complete PLL bring‑up unless that clock is already present, but it also performs additional sequencing, delays, and internal resets that make the process robust. In your direct SPI flow, enabling and calibrating the DAC PLL likely happens before the clock is fully stable, so the PLL calibration can fail and never retry. Hot‑plugging the clock effectively restarts the reference activity, allowing the existing configuration to lock temporarily. This difference explains why ACE locks reliably while your SPI setup is intermittent. The most effective fixes are to add a longer delay after reset before enabling the DAC PLL, explicitly disable → enable → recalibrate the PLL, and verify clock amplitude and edge quality at power‑up, especially if the cable is marginal.

    Thanks and kind regards,

    Alex

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.