Hi All...
I have a requirement to get the audio samples from the audio jacks through I2C and I2S and DMA and process the samples and send out the packets to host through UART. At the same time the host will transmit similar packets that it receives from other card to my evm through UART.
UART is configured in interrupt mode.
Now if I only transmit to host and don't transmit from host then the code will run smoothly for ever.
But if I enable transmit on the host also so that the UART has a bidirectional data transfer then after some short duration, the UART hangs...There will be always some UART interrupt pending in IIR regsiter. Some times it will be just RDA interrupt or sometimes it will be RLS interrupt caused by Over run error.
I'm using all CSL library functions to configure the UART but the UART isr is configured using TCF file and HWI dispatcher.
I have tried FIFO enabled/ disabled. Changed the trigger levels. etc but still no use.
In the UART ISR, I just dump the data received to a queue and post an SWI and return. In the SWI I do the processing function.
Similarly for writing to UART, my audio sample process function will dump the packets to a write Queue and the uart tx function will take data from this queue and output on UART. This writing function is semaphore controlled task which waits for buffer ready semaphore.
I have gone through lot of already available discussions in the forum and found couple of cases which had the same issue. like the UART freeze after some time but the discussion did not help my case.
http://e2e.ti.com/support/dsp/c5000/f/109/t/91219.aspx
http://e2e.ti.com/support/dsp/c5000/f/109/t/116276.aspx
Please let me know what could be the issue here.
Thanks & Regards,
Ashok