This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Using DAC7811 with TMS320c6713

Other Parts Discussed in Thread: TLV5626, OPA277, DAC7811

Hi,

I am having some problems using this DAC. I am using it in the three wire configuration. I have used the TLV5626 with this code and decided I needed to upgrade to the DAC 7811 with its 5Msps capabilities. Theoretically, if I am using the DAC at 5Msps and would like to send a CW (sine) at 500kHz. This means I need 10 samples per cycle.  Correct? However, when I am running this code, I am only achieving around 150kHZ and the signal appears as a triangular wave not a sine wave. I can probe the device and I see the 50Mhz clock, I see the data, and I see the FSYNC.

Now, since this is a current output I have a couple options for op amps to convert to a voltage. I have the OPA277 and the ADS8065. Right now I have been using the OPA277 and I am getting these results. Any suggestions? I am thinking that maybe the OP amp is the result for the triangular wave due to its slew rate. 

How can I achieve the quoted 5MSps? I can send my configuration file/main.c via email. My goal is to create arbitrary waveforms at 300kHz. 

Another problem which I believe is separate from this is that when I change the samples for to be sent to the DAC I no longer get an output. The only time when I can see an output is when I run the code for the first time. If I edit the array of samples and rebuild the program, the output is not visible and I have to reboot. I guess some questions arise here so I will try to clarify. I am loading samples from and array of 16 bit samples in the main program. The 16 bit samples contain 4 bits for configuration (set to 0001) and the remaining 12 bits are reserved for data. I use a MATLAB to generate the samples for me automatically depending on variables I set. So if I want to transmit 10 samples to produce one cycle I have a sine_table array of 10 elements. I use a while loop to continue the wave for multiple cycles.

I would appreciate feedback as in suggestions or comments on this as well if you have any.

Thanks,

Brady 

  • Brady,

    First, I apologize for the delay in responding to your question. This somehow slipped through and I did not receive a notification for this post.

    Can you please share the following information to help me debug your problem:

    • Schematic for this design
    • Oscilloscope captures of the output waveform (please share details concerning which output you are attempting to generate for this capture)
    • Oscilloscope capture of the SPI input frame
    • The data you are writing to the device for a given output waveform

    Concerning the second issue, I'm not sure I will have any wisdom for you. If you are using Code Composer Studio, your question may be best serviced on the CCS forum.

  • Hi Kevin,

    Turns out the project went a different route and I am no longer using the DAC7811. However, I did find the problem I was having. The error was a result of not delaying the data long enough for the frame sync to return to its active state. The Data_delay configuration needed to be increased to 1 or 2 bits. If the DAC7811 does not receive all of the data (16 bits including config bits)  then the output does not update. the other problem I was having in which the output frequency was not high enough was due to the fact that frame sync frequency was half that I thought. Therefore the data was only getting updated half as frequently. A simple change to the framesync configuration caused the update rate to return to max. Other than that, the DAC7811 performed well for a SPI DAC and was straightforward to use. Thanks again for getting back to me.

    Best,

    Brady

  • Thanks for closing the loop with us Brady.

    Out of curiosity, what is the different route that the project went down? I'd like to know just so we can try to accommodate in the future.