Post Go back to editing

AD9102 Output Signal

Thread Summary

The user is unable to generate a signal using the AD9102 despite writing and reading all registers. The solution involves setting the DDS Tuning Word source to RAM data and using the DDS MSB as the SRAM address counter clock. Additionally, the user must ensure the RAMUPDATE register is set to 1 to transfer shadow register values to active registers. The data sheet lacks clear examples and specific details, leading to confusion about the initialization sequence and register settings.
AI Generated Content

I’m using  AD9102, I write and read in all register but I haven't output signal.

What is the minimum registers configuration for generate a signal?

Can it work without calibration?

In attachment the schematic.

Regards.

Valentino

ad9102.pdf
Parents
  • Hello Larry,

    I also seem to have two other problems.

    1. DDS Clock Source

    I cannot make the DDS_MSB_EN work in the DDS_CONFIG register.

    My assumption is that if I program the RAM to have two values, 0x1FFF <<2 and 0x2000 <<2 at 0x6000 on, I set Start_addr to 0 <<4 and Stop_addr to 1<<4, and Pattern_period to 2, then I should get a square wave. If the DDS_MSB_EN is 0, then the square wave frequency should be CLK/2 frequency. If DDS_MSB_EN = 1, then the square wave should be at the DDS/2 frequency - which is what I want.

    However, the DDS_MSB_EN bit does not seem to have any effect.

    2. Sawtooth Frequency

    I cannot work out how to change the Sawtooth frequency. Set to Triangle, I see the generator outputting 16384 samples increasing from -max to + max, and then 16384 samples from +max to -max, and repeating this. This yields just one frequency.

    I can see that I can dwell at one sample for between 1 and 64 clock cycles, but that is a very coarse approach to setting the frequency. It means you can only get 64 frequencies - the next being half of the previous one. Kind of not very useful!  I had assumed (silly of me) that the part would use the phase accumulator with the linear to sine wave conversion turned off (just as the AD9834 does), and so I could get any frequency. However, I cannot figure out how to do this. I would be grateful for any help.

    Can you clarify what I'm doing wrong?  Thanks.

    Bart

Reply
  • Hello Larry,

    I also seem to have two other problems.

    1. DDS Clock Source

    I cannot make the DDS_MSB_EN work in the DDS_CONFIG register.

    My assumption is that if I program the RAM to have two values, 0x1FFF <<2 and 0x2000 <<2 at 0x6000 on, I set Start_addr to 0 <<4 and Stop_addr to 1<<4, and Pattern_period to 2, then I should get a square wave. If the DDS_MSB_EN is 0, then the square wave frequency should be CLK/2 frequency. If DDS_MSB_EN = 1, then the square wave should be at the DDS/2 frequency - which is what I want.

    However, the DDS_MSB_EN bit does not seem to have any effect.

    2. Sawtooth Frequency

    I cannot work out how to change the Sawtooth frequency. Set to Triangle, I see the generator outputting 16384 samples increasing from -max to + max, and then 16384 samples from +max to -max, and repeating this. This yields just one frequency.

    I can see that I can dwell at one sample for between 1 and 64 clock cycles, but that is a very coarse approach to setting the frequency. It means you can only get 64 frequencies - the next being half of the previous one. Kind of not very useful!  I had assumed (silly of me) that the part would use the phase accumulator with the linear to sine wave conversion turned off (just as the AD9834 does), and so I could get any frequency. However, I cannot figure out how to do this. I would be grateful for any help.

    Can you clarify what I'm doing wrong?  Thanks.

    Bart

Children
No Data