Less than a month ago I started working with the TMS320C6657 EVM due to my interest in the ECU package from VoLIB. After making some tests, now I want to configure the McBSP and EDMA3 to connect with a custom board so I can run more tests with the ECU using part of our hardware.
So I started reading about the McBSP and I'm trying to run the example "McBPS Master DigitalLoopback" from the mcbsp driver, and I'm having some trouble.
I've set both RX and TX Clocks and Frame Syncs as INTERNAL. I've written in the internal TX Buffer the values from 0 to BUF_SIZE (1024). After thar, I run the code and it gets stuck at this part:
/* Wait for TX and RX processing to complete */
while (1)
{
if (edmaTxDone == 1)
{
System_printf ("Debug(Core %d): EDMA -> Iteration-%d frames are transmitted to TX path\n", coreNum, count);
edmaTxDone = 0; /* Reset for next iteration */
mcbspTxDone = 1;
}
if (edmaRxDone == 1)
{
System_printf ("Debug(Core %d): EDMA -> Iteration-%d frames are received from RX path\n", coreNum, count);
edmaRxDone = 0; /* Reset for next iteration */
mcbspRxDone = 1;
}
if ((mcbspTxDone == 1) && (mcbspRxDone == 1))
{
mcbspTxDone = 0; /* Reset for next iteration */
mcbspRxDone = 0; /* Reset for next iteration */
break;
}
}
When I inspect the McBSP0 TX address (CSL_Mcbsp0_FIFO_DATA_REGS, 0x22000000) I only see these values: -4 -3 -2 -1 and when I check the DRR and DXR, I see the same values. But when I inspect my internal RX Buffer, the original values (0,1,2,3,4...) are there.
So, I'm having two problems here: why my TX port is transmiting these numbers and not my original set values? And why doesn't my example call the mcbspAppCallback function? Do I have to set some interruptions manually? As I said before, I'm working with this DSP for a little time, so I'm not the best to diagnose the problem right away.
Thanks In advance for any help.
Regards,
Leonardo Batista