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.
I currently have a McAsp driver that works well if the WNUMEVT is set to 1.I have 1 serializer. When I change it to anything else, I get continuous RX/TX errors. I modified the edma bCnt value accordingly. What am I possibly doing wrong? Is there another setting that needs to be done?
Thank you.
Hi Chris,
I'm assuming WNUMDMA is set to 1? What TX/RX errors are you getting? You can view the RSTAT & XSTAT registers to see if any flags have been set.
Also, have you already seen the following wiki? processors.wiki.ti.com/.../AM1x_Multichannel_Audio_Serial_Port_(McASP)_Throughput_and_Optimization_Techniques
WNUMDMA is set to 1.
I am getting ROVRN and XUNDRN errors.
RSTAT = 0x159
TSTAT = 0x179
Thanks.
Perhaps you can check how the old Starterware code setup the FIFO for reference.
http://www.ti.com/tool/starterware-dsparm
/** * \brief Enables the Write FIFO for McASP. This shall be done before * taking McASP out of Reset. First this API sets the FIFO parameters * keeping the FIFO disabled. Then it enables the FIFO * * \param baseAddr Base Address of the McASP FIFO Registers. * \param numTxSer Number of Transmit Serializers to be used. * \param minWdPerSer The minimum number of words per serializer * to be available in FIFO to issue a DMA event. * * \return None. * **/ void McASPWriteFifoEnable(unsigned int baseAddr, unsigned int numTxSer, unsigned int minWdPerSer) { HWREG(baseAddr + MCASP_FIFO_WFIFOCTL) = numTxSer | ((minWdPerSer * numTxSer) << AFIFO_WFIFOCTL_WNUMEVT_SHIFT); /* The configuration is done. now set the enable bit */ HWREG(baseAddr + MCASP_FIFO_WFIFOCTL) |= AFIFO_WFIFOCTL_WENA; }
Regards,
Mark
The issue is resolved. I simply needed to change the fifo configuration to Multi-slot Interlaced.
Chris