Hello All,
I need help setting up circular buffer using EDMA3 and Mcasp.
I went through the PSP drivers and finding diffculty in setting up circular buffer.
Please help me stting up Mcasp & EDMA3 with out PSP drivers.
Back Ground:
we have 6713 application to be ported to 6747.
Tha application setup to have several transmit and recevie channels independenty which receives the 512bytes.
Thanks,
Sudheer Thota
Hi Sushani,
I defined 4096 circular buffer to hold 8 512 blocks of (256L & 256 R).
Used param link tables to connect sequentially and at the end it link back to 0th location.Here is the code snippet
/* link this paramset with the main channel */ EDMA3_DRV_linkChannel(chanHandle->edmaHandle, chanHandle->xferChan, chanHandle->pramTbl[0]); EDMA3_DRV_linkChannel(chanHandle->edmaHandle, chanHandle->pramTbl[0], chanHandle->pramTbl[1]); EDMA3_DRV_linkChannel(chanHandle->edmaHandle, chanHandle->pramTbl[1], chanHandle->pramTbl[2]); EDMA3_DRV_linkChannel(chanHandle->edmaHandle, chanHandle->pramTbl[2], chanHandle->pramTbl[3]); EDMA3_DRV_linkChannel(chanHandle->edmaHandle, chanHandle->pramTbl[3], chanHandle->pramTbl[4]); EDMA3_DRV_linkChannel(chanHandle->edmaHandle, chanHandle->pramTbl[4], chanHandle->pramTbl[5]); EDMA3_DRV_linkChannel(chanHandle->edmaHandle, chanHandle->pramTbl[5], chanHandle->pramTbl[6]); EDMA3_DRV_linkChannel(chanHandle->edmaHandle, chanHandle->pramTbl[6], chanHandle->pramTbl[7]); EDMA3_DRV_linkChannel(chanHandle->edmaHandle, chanHandle->pramTbl[7], chanHandle->pramTbl[0]);
Hope this helps.
Sudheer