AnsweredAssumed Answered

AD9102 High speed signal generation issues

Question asked by Uros on Apr 7, 2017
Latest reply on Apr 10, 2017 by Uros

Hi 

 

I'm having difficulties setting up the AD9102 to output high speed signals (around 300ns). Output is shown with pictures from oscilloscope in the bottom. The pulse that I'm generating is ramp with values written in SRAM registers. Main problem is that for every 160ns of the displayed ramp, pulse becomes stagnant for 100ns, and then continues.  Also the part of the ramp that is stagnant isn't at constant location, but it moves throughout the ramp, as seen in picture three.

 

Clock I'm using is set to 150MHz and I'm using AD9102 on a custom board. 

 

I have succesfully managed to get output from prestored waveforms and signals prestored in SRAM, but only at lower frequencies (10+ us).

 

I have checked the clock output , but it works fine, I only set trigger to 0 after setting up the registers, to avoid possible interferances with unstable trigger. Supply lines also work fine. I'm using external reference, but have also tried with internal and have gotten the same results. I also tried to read SRAM register and thy all look as they were supposed to.

 

I tried to measure stagnant part of the signal and it lasts for 16 clock cycles. The ramp is then generated for 24 clock cycles, and again stagnant for 16 clock cycles. Two stagnant parts are seen on picture 4 with longer ramp.

 

code:

 

 

RESET pin is high
TRIGGER pin is high

 

//SPICONFIG
SPI_write_DAC(0x00, 0x0000);
//POWERCONFIG
SPI_write_DAC(0x01, 0x0000);
//CLOCKCONGIF
SPI_write_DAC(0x02, 0x0008);

//DACRANGE
SPI_write_DAC(0x08, 0x0001);
//DAC_DGAIN
SPI_write_DAC(0x35, 0x4000); 
//DACRSET
SPI_write_DAC(0x0C, 0x0000); 

//RAMUPDATE
SPI_write_DAC(0x1D, 0x0001);

//PAT_TYPE
SPI_write_DAC(0x1F, 0x0000);
//DAC_PAT
SPI_write_DAC(0x2B, 0x0001); 
//DACDOF
SPI_write_DAC(0x25, 0x8000); 
//WAV-CONFIG
SPI_write_DAC(0x27, 0x0000);

//PAT_TIMEBASE
SPI_write_DAC(0x28, 0x0100);
//PAT_PERIOD
SPI_write_DAC(0x29, 0x8000);

//DAC_CST
SPI_write_DAC(0x31, 0x8000);

//DDS_CONFIG
SPI_write_DAC(0x45, 0x0003);

//PAT_STATUS
SPI_write_DAC(0x1E, 0x0001);
//RAMUPDATE
SPI_write_DAC(0x1D, 0x0001);
//PAT_STATUS
SPI_write_DAC(0x1E, 0x0001);

 

//START_ADDR
SPI_write_DAC(0x5D, 0x0000); 
//STOP_ADDR
SPI_write_DAC(0x5E, 0x0280); 
//RAM_UPDATE
SPI_write_DAC(0x1D, 0x0001); 
//PAT_STATUS
SPI_write_DAC(0x1E, 0x0004); 
//RAM_UPDATE
SPI_write_DAC(0x1D, 0x0001);

for(j = 0 ; j <= 39 ; j ++){ 
   a = j + 24576; 
   b = j * 1000;
      SPI_write_DAC(a, b);
   }

//SRAM
SPI_write_DAC(0x6028, 0x0000); 
//PAT_STATUS
SPI_write_DAC(0x1E, 0x0001); 
//RAMUPDATE
SPI_write_DAC(0x1D, 0x0001); 
//PAT_STATUS
SPI_write_DAC(0x1E, 0x0001); 

 

TRIGGER pin is low

 

So I would like to know what is the cause for this behaviour and how to fix it.

Thanks!
Uros

Attachments

Outcomes