This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS570LS0432: SCI output being corrupted during interrupts

Part Number: TMS570LS0432


I have a design which continuously outputs serial data at 1MBd (no inter-byte gap) using the low priority interrupt to send data, re-loading the message once complete. I can see this on the UART debug port of the Launchxl-TMS570004.

I can send single return bytes, which are handled via the high priority interrupt, without apparently affecting the output stream.

However, if I send a block of bytes using TeraTerm macro, the output stream must be being corrupted in some fashion, although an oscilloscope view looks no different. By corrupted, the debug output, on TeraTerm is repeated garbage. I have to assume that one or more individual bytes, with its start and single stop period, has been interrupted so the terminal cannot get back in synchronisation.

This occurs whether just powered up or under control by CCS7.

I would have thought that the UART hardware should be totally independent of software functions, just providing its 10-period output once the Transmit Data Buffer Register (SCITD) has been loaded with new data. I'not knowingly writing to any of the control registers to reset, or change the Baud rate of the SCI.

As an aside, if in debug mode, when single-stepping through the scilinREG->TD = (uint32)(txdata); instruction I would expect to see UART data, but get nothing out. I've cleared all options of Disable interrupts in the Properties>Debug>Program/Memory Load tab. I'm sure I've seen something needed to set/clear to allow the SCI to work properly during Debug but thought it was the above...

Thanks

  • Hello,

    Please use scope to measure the bit time and make sure the buadrate is correct. If the difference between transmitter baud rate and receiver baud rate is >3%, the received data may be corrupted.

  • Thanks. Being back at work I have managed to find a scope and show correct baud rate, but also I've fitted an independent UART receiver onto the TMS SCI output, which looks good.

    So I have to assume that the problem's caused by either TeraTerm, Windows or the DevBoard USB bridge, not the 0432 itself.