AD9707 Boot Up / Initialization Issue

Hi, I have the AD9707 DAC designed into my proprietary board as part of an SDR TX circuit and out of about 20 boards, 3 are exhibiting intermittent transmit issues, which turns out to be the DAC outputting nothing every so often. A power cycle usually fixes this and once fixed it stays fixed, until the next bad power up, so I'm trying to determine what it is at startup, which is causing the DAC to not come up correctly sometimes. Any ideas would be greatly appreciated.

I'm running the DAC in SPI mode with a 100k resistor to ground on the PIN/SPI/RESET pin and am using 2's compliment. My code is along these lines:

bool tx_dac_init( void )
{
dac_command.cs = TX_SPI_DAC_CS;
tx_dac_reset();
tx_dac_power(false);

  return true;
}

void tx_dac_reset( void )
{
    tx_dac_load_command(0x00, 0xA0, 1);     //issue sw reset, 3 wire
    tx_dac_load_command(0x00, 0x80, 1);     //clear sw reset
    tx_dac_load_command(0x02, 0x80, 1);     //2's compliment
}


void tx_dac_power(bool on)
{
    if(on)
    {
        tx_dac_load_command(0x00, 0x80, 1);     //power up
   txif_set_control(TX_SET_DAC, TX_SET_DAC_OFFSET, 1); //enable clock and data
    }
    else
    {
    txif_set_control(TX_SET_DAC, TX_SET_DAC_OFFSET, 0); //turn off clock and data
        tx_dac_load_command(0x00, 0x8E, 1);     //power down everything

    }
}

Could it be SPI bus-related I wonder, or related to the sequencing of the power rails? Is it sensitive to this? Or PIN/SPI/RESET? 

Many thanks,

Dave

Parents
  • I've just seen this section in the datasheet:

    The internal 1.0 V band gap reference may on occasion power
    up in a state that leaves the DAC output nonfunctional. To clear
    this state, power up again, and check that the voltage on the
    REFIO pin is within the reference output specifications shown
    in Table 1 or Table 4. After the internal reference is powered up
    correctly, it does not fail as long as power is applied.

    This sounds suspiciously like our issue. Does this mean the recommended design involves connecting REFIO to a GPIO to sense if the reference has come up OK and if not to sent a SWRST?!

    Cheers,

    Dave

  • +1
    •  Analog Employees 
    on Aug 22, 2019 1:50 PM over 1 year ago in reply to davekirl

    Unfortunately, that looks to be it Dave. Power cycle the device until the reference comes up. If that is unacceptable, either use an external reference or switch to the AD974x device family. Not much else can be done. Good luck!

Reply Children