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.

GPIO access from DSP on TMS320DM6446 for ASP Inititialization with External Frame Sync

Hi,

I've got a DSP project on the dm6446 which reads audio on the DSP and sends it to the ARM using DSPLINK.  Everything is working except I'm trying to fix a random channel swap issue on startup.  We are using an external frame sync and according the the ASP documentation we must poll a GPIO connected to the frame sync before enabling the ASP.  For a previous project that has audio on the ARM side we already do this inside the ALSA driver and it works well.

However I'm not having as much success on the DSP side.  I seem to be able to access the GPIO's OK (GPIO51 in our case) from the DSP and I've reduced the occurance of channel swap from about 1 in 5 to about 1 in 100 but it's still not perfect.

In the dm6446 documentation (SPRS283F) it does say that the GPIO registers are reserved on the DSP side so I'm wondering if there are some limitations with using GPIO's in this manner?


Regards

Craig

  • Hi Craig,

    I don't think that is the case here. You should be able to access the GPIO51 (GPIO bank 2 and bank 3) from the DSP side. I think the issue here could be that the GPIO51 pulse duration is near the edge (it needs to be greater than 52ns assuming the DSP is running at maximum frequency). Please refer to page 122 of the SPRS283F document.

    Thanks and regards,

    Tai Nguyen  

  • Hi Tai,

    Thanks for the response.  I don't believe it's anything to do with pulse duration as our frame sync signal is 10us, well above the minimum.  Also I checked frame sync detection with a scope and it looked fine.  I suspect it might have something do with our EDMA usage.  Since the DM6446 didn't come with a PSP we ported the audio driver from the DM6437 so there might be some issues with that.

    Regards

    Craig

  • Hi Craig,

    Does the channel swap issue happen only at the start up? If the frame sync detection works well, once you detect the frame sync, you have two shift clocks to get the ASP well initialized (transmitter out of reset, DXR loaded with good data, etc..) before the next frame arrives.

    Thanks and regards,

    Tai

  • Hi Tai,

    Thanks for you help.  I'ved fixed the channel swap issue by decoupling DSPLINK IO with ASP IO via a circular buffer.  I believe the problem was to do with the way I had DSPLINK IO and audio SIO gated via the same SWI.  Once separated the channel swap seems to have gone away.

    Regards

     

    Craig Haskins

  • Hi Craig,

    Thanks for letting us know. I am glad that you have figured out how to resolve the channel swap issue.

    Regards,

    Tai