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.

ADC/DAC of C6455 Problem

SA

I have a problem when using the ADC/DAC when dealing with different sizes,

Foe rexample we do this experiment:

-Input a song to the kit line in port & the ADC convert it to samples in to the buffer_rx (it's size=50 in our experiment)

& we equate the buffer_tx (it's size=50) with the buffer_rx then we convert the data in buffer_tx again using the DAC to be in analog form

This analog signal is transmitted via an audio cable to another kit  & do exactly the reverse that we do in the 1st kit (ADC the equate the 2 buffers (both of size=50)) then DAC & listen to the signal from line out of the second kit.

This experiment is ok & works good

-This's the problem:

-Input a song to the kit line in port & the ADC convert it to samples in to the buffer_rx (it's size=50 in our experiment)

& we equate the buffer_tx (it's size=100) in this way: buffer_tx={buffer_rx[0],0,buffer_rx[1],0,.................}

then we convert the data in buffer_tx again using the DAC to be in analog form

This analog signal is transmitted via an audio cable to another kit  which has (buffer_rx size=100 & buffer_tx =50)  DAC the we equate the buffer_tx with the buffer_rx in this manner:

buffer_tx[0]=buffer_rx[0]   buffer_tx[1]=buffer_rx[2]  buffer_tx[2]=buffer_rx[4] ................   

then DAC then we listen to the analog signal via line out of the second kit

Why this exp doesn't work?
In general we have a problem when
buffer_tx size is not equal to the buffer_rx

Thanks alot


  • Ramy Essam,

    What you have presented here are the specifications for two similar systems for receiving and transmitting data. Fortunately for you, the first system's implementation is working well so you have a reference case to start with.

    Your description of the specification of the second system seems reasonable, with the obvious need to interpret "equate" for two buffers of different sizes.

    The next step is to debug your implementation of the second system. If the specification is logically sound, then the implementation has an error or the board devices do not function the way you want them to function. The former (implementation error) is the most likely problem in your case.

    My philosophy is to always make small steps rather than making all the changes from one system to the next. My recommendation is to do the following and make sure everything works at each step:

    1. Change the first DSP's buffer_tx to have the alternating 0's. Verify that result in the first DSP's buffer_tx.
    2. Send the data to the second DSP. Verify the result of the same / expected data in the second DSP's buffer_rx.
    3. Copy the data to buffer_tx on the second DSP. Verify the result of the copy in buffer_tx.
    4. Send the data to the second line out and verify it sounds correct.

    Or, you can just debug through these same steps with the current implementation without changing the code.

    Regards,
    RandyP

     

    If you need more help, please reply back. If this answers the question, please click  Verify Answer  , below.