I'm trying to build an application that involves one BF561 and one BF548, these DSP communicate each other through the SPORT interface.
The dimension of the message packet is 50KByte, with one header at the beginning of the message and one trailer at the end of the message.
What I see is that sometimes the packet that the DSP receive is corrupted.
I explain better: if the header should be "_START__", sometimes I receive " RT__".
This is the value of the register of the SPORT interface:
SPORT TX -> BF561 -> *pSPORT0_TCR1 = 0x4603
*pSPORT0_TCR2 = 0x010F
*pSPORT0_TCLKDIV = 0x000A
*pSPORT0_TFSDIV = 0x0010
SPORT RX -> BF548 -> *pSPORT3_RCR1 = 0x4401
*pSPORT3_RCR2 = 0x010F
*pSPORT3_RCLKDIV = 0x000A
*pSPORT3_RFSDIV = 0x0010
Only in BF548 the DMA is set for RX.
*pDMA20_PERIPHERAL_MAP = PMAP2_SPORT3RX;
*pDMA20_X_COUNT = packet_size/2;
*pDMA20_X_MODIFY = WDSIZE_16;
*pDMA20_Y_COUNT = 0;
*pDMA20_Y_MODIFY = 0;
I've added 16bytes of dummy vaule before the header and 16bytes before the trailer, and the application seems to work fine.
Could someone help me?