AnsweredAssumed Answered

AD9102 High speed signal generation issues

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



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.





RESET pin is high
TRIGGER pin is high


SPI_write_DAC(0x00, 0x0000);
SPI_write_DAC(0x01, 0x0000);
SPI_write_DAC(0x02, 0x0008);

SPI_write_DAC(0x08, 0x0001);
SPI_write_DAC(0x35, 0x4000); 
SPI_write_DAC(0x0C, 0x0000); 

SPI_write_DAC(0x1D, 0x0001);

SPI_write_DAC(0x1F, 0x0000);
SPI_write_DAC(0x2B, 0x0001); 
SPI_write_DAC(0x25, 0x8000); 
SPI_write_DAC(0x27, 0x0000);

SPI_write_DAC(0x28, 0x0100);
SPI_write_DAC(0x29, 0x8000);

SPI_write_DAC(0x31, 0x8000);

SPI_write_DAC(0x45, 0x0003);

SPI_write_DAC(0x1E, 0x0001);
SPI_write_DAC(0x1D, 0x0001);
SPI_write_DAC(0x1E, 0x0001);


SPI_write_DAC(0x5D, 0x0000); 
SPI_write_DAC(0x5E, 0x0280); 
SPI_write_DAC(0x1D, 0x0001); 
SPI_write_DAC(0x1E, 0x0004); 
SPI_write_DAC(0x1D, 0x0001);

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

SPI_write_DAC(0x6028, 0x0000); 
SPI_write_DAC(0x1E, 0x0001); 
SPI_write_DAC(0x1D, 0x0001); 
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.