AnsweredAssumed Answered

AD9958 AutoClear Phase Accumulator

Question asked by BHerrera on Jun 16, 2011
Latest reply on Jun 28, 2011 by Kevin.G

I have the AD9958 putting out 80MHz and 79MHz.  These are being rectified into square waves by two AD9515s.  I would like to be able to use IO_Update and have the rising edge of both clocks align with an IO_Update pulse.  I thought that I could accomplish this with the "All channels autoclear phase accumulator" bit, but this does not seem to be happening.  I also set the autoclear phase accumulator bit in each channel's individual register.  I thought that it might be a CS problem so I pulled CS low when I give the IO_Update.  Any suggestions?

 

    DDSPulseReset();

    DDSCSLow();

 

    SpiChnPutC(2, 0b00000001);  //Set PLL

    SpiChnPutC(2, 0b11010000);

    SpiChnPutC(2, 0b00000000);

    SpiChnPutC(2, 0b00000000);

 

    SpiChnPutC(2, 0x00000010);   //AutoClear All

    SpiChnPutC(2, 0b00100000);

    SpiChnPutC(2, 0b00000000);

 

    SpiChnPutC(2, 0x00);   //Select Channel 0

    SpiChnPutC(2, 0b01110000);

 

 

    SpiChnPutC(2, 0b00000100);   //80MHz

    SpiChnPutC(2, 0b00101000);

    SpiChnPutC(2, 0b11110101);

    SpiChnPutC(2, 0b11000010);

    SpiChnPutC(2, 0b10001111);  

 

 

    SpiChnPutC(2, 0b00000011);   //AutoClear

    SpiChnPutC(2, 0b00000000);

    SpiChnPutC(2, 0b00000011);

    SpiChnPutC(2, 0b00000100);

 

    SpiChnPutC(2, 0x00);   //Select channel 1

    SpiChnPutC(2, 0b10110000);

 

    SpiChnPutC(2, 0b00000100);   //79.9992MHz

    SpiChnPutC(2, 0b00101000);

    SpiChnPutC(2, 0b11110101);

    SpiChnPutC(2, 0b10100111);

    SpiChnPutC(2, 0b10110111);  

 

    SpiChnPutC(2, 0b00000011);   //AutoClear

    SpiChnPutC(2, 0b00000000);

    SpiChnPutC(2, 0b00000011);

    SpiChnPutC(2, 0b00000100);

 

 

     PulseIOUpdate();

     DDSCSHigh();

Attachments

Outcomes