Other Parts Discussed in Thread: TMS570LS3137
Hi, I'm using the TMS570LS3137 HDK and need to use Multi-buffer for SCI2/Lin port.
I've attached my project with some simple test code.
If I set MBUF_MODE in scilinREG->GCR1 then no characters are transmitted.
If I don't set MBUF_MODE then characters are transmitted.
scilinREG->GCR1 |= (uint32)((uint32)1U << 10U); // MBUF_MODE, This lines stops things from working
In the project I've added the line,
scilinREG->GCR1 |= (uint32)((uint32)1U << 10U);
to sciInit() in sci.c.
Buffer LENGTH is set to 4 in sciInit() in sci.c. scilinREG->FORMAT = 0x00030007; // LENGTH = 4
Here is my test code:
sciInit();
// Wait for IDLE after initialization -- this is required after sciInit() to have things work
while(sciIsIdleDetected(scilinREG));
// Observe characters on CCS Terminal
while(!sciIsTxReady(scilinREG));
scilinREG->TD = (uint32)'a';
while(!sciIsTxReady(scilinREG));
scilinREG->TD = (uint32)'b';
while(!sciIsTxReady(scilinREG));
scilinREG->TD = (uint32)'c';
while(!sciIsTxReady(scilinREG));
scilinREG->TD = (uint32)'d';
while(!sciIsTxReady(scilinREG));
scilinREG->TD = (uint32)'e';
The project is currently set up to transmit the the CCS Terminal, but I've also tried setting the LOOPBACK bit and doing a SCI read, but the results are the same: It works fine if MBUF_MODE=0 and nothing appears to be transmitted if MBUF_MODE=1.
I'm sure I'm missing something simple, but my search in the forum didn't turn up anything.
Your help would be greatly appreciated,
Best regards,

