Post Go back to editing

how to use sram to output arbitrary wave

153/5000

1. I followed the steps of the picture, but the output waveform of DDS is not ideal. My data is 4095, which should be the maximum, but the output waveform is only about 200mv.

2. Spi communication is normal, but the value of sram read is not correct. If I write 0x7 in, only 0x4 will be read out, and bit0-1 will be set to zero.

3. Can you tell me what register should be configured to write data to sram and output sram stored waveform?

Parents
  • Hi Cherish_,

    Thanks for reaching out. I have a few comments on your register settings:

    • Address 0x26 is nonexistent in the AD9102 register map. Write on address 0x27 for waveform read between the start and stop address.
    • Addresses 0x32 and 0x33 is nonexistent in the AD9102 register map. Write on address 0x35 for adjusting the DAC digital gain. The digital gain is 11bit wide, try to input 0xFFE0 for max gain.
    • Addresses 0x50 and 0x54 is nonexistent in the AD9102 register map. Write on address 0x5C for the start delay.
    • Addresses 0x51, 0x52, 0x55, and 0x56 is nonexistent in the AD9102 register map. Write on address 0x5D and 0x5E for configuring the start and stop address on SRAM.

    You might have used the AD9106 register map, which has 4 channels as compared to a single channel in the AD9102. That explains why there's a skip on the addresses of the register map of the AD9102. Kindly refer to the datasheet for the proper register map.

    1. I followed the steps of the picture, but the output waveform of DDS is not ideal. My data is 4095, which should be the maximum, but the output waveform is only about 200mv.

    Are you trying to output from the SRAM or the DDS? The 2 waveform sources are independent on each other unless you want to modulate the DDS using the SRAM data. The AD9102 is capable of handling 4096 data points, each data point having a full-scale(width) of 14bits. Also, make sure that there's a resistor to ground on the IOUTP and IOUTN pins.

    Try to reconfigure your register settings with the comments above.

    It also looks like there's something wrong with how your questions were formatted on the browser, as I can only see three questions. Kindly rewrite the questions if I missed any.

    Regards,

    Mark

Reply
  • Hi Cherish_,

    Thanks for reaching out. I have a few comments on your register settings:

    • Address 0x26 is nonexistent in the AD9102 register map. Write on address 0x27 for waveform read between the start and stop address.
    • Addresses 0x32 and 0x33 is nonexistent in the AD9102 register map. Write on address 0x35 for adjusting the DAC digital gain. The digital gain is 11bit wide, try to input 0xFFE0 for max gain.
    • Addresses 0x50 and 0x54 is nonexistent in the AD9102 register map. Write on address 0x5C for the start delay.
    • Addresses 0x51, 0x52, 0x55, and 0x56 is nonexistent in the AD9102 register map. Write on address 0x5D and 0x5E for configuring the start and stop address on SRAM.

    You might have used the AD9106 register map, which has 4 channels as compared to a single channel in the AD9102. That explains why there's a skip on the addresses of the register map of the AD9102. Kindly refer to the datasheet for the proper register map.

    1. I followed the steps of the picture, but the output waveform of DDS is not ideal. My data is 4095, which should be the maximum, but the output waveform is only about 200mv.

    Are you trying to output from the SRAM or the DDS? The 2 waveform sources are independent on each other unless you want to modulate the DDS using the SRAM data. The AD9102 is capable of handling 4096 data points, each data point having a full-scale(width) of 14bits. Also, make sure that there's a resistor to ground on the IOUTP and IOUTN pins.

    Try to reconfigure your register settings with the comments above.

    It also looks like there's something wrong with how your questions were formatted on the browser, as I can only see three questions. Kindly rewrite the questions if I missed any.

    Regards,

    Mark

Children
  • hi mrecio,
         First of all, DDS output is ok, I want to know how to debug using sram output corresponding data waveform.
         Secondly, I want to talk about my steps and you can help me to see if there are any other registers to configure.   My configuration doesn't come out very well.
         1. Configure register 0x001F, the data is 0x0000
         2. Configure register 0x0027, the data is 0x0030
         3. Configure register 0x0028, the data is 0x0199
         4. Configure register 0x0029, the data is 0x0258
         5. Configure register 0x0035, the data is 0x4000
         6. Configure register 0x005C, the data is 0x00C8
         7. Configure register 0x001E, the data is 0x0004
         8. Configure register 0x001D, the data is 0x0001
         9.write data to register 0x6000,the data is [4095,4095,4095,4095,...,-4096,-4096....]
         10. Configure register 0x001D, the data is 0x0001
          11. Configure register 0x005D, the data is 0x0000
          12. Configure register 0x005E, the data is 0xFFF0
          13. Configure register 0x001E, the data is 0x0001
          14. Configure register 0x001D, the data is 0x0001
        Finally, I would like to ask register 0x0035, the maximum data is not 0x4000? And how do registers 0x005D and 0x005E define the data, for example if I write data from 0x6000-0x6050, what is the data that I want to configure 0x005D and 0x005E?

  • Hello,

    Assumed that his has been answered offline. Please let us know if this is not the case.