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