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.

F28335 SCIA sending only 2 bytes

Hi!

 

In have my SCI setup with RX interrupt, no TX interrupt and no FIFO. The RX part is fine, however I can't TX out more than 2 bytes. Here are my initial settings:

 

SciaRegs.SCICCR.all =0x0007; // 1 stop bit, No loopback
// No parity,8 char bits,
// async mode, idle-line protocol


 SciaRegs.SCICTL1.all =0x0003; // enable TX, RX, internal SCICLK,

// Disable RX ERR, SLEEP, TXWAKE

SciaRegs.SCICTL2.bit.RXBKINTENA =1;


  SciaRegs.SCIHBAUD =0x0001; // 9600 baud @LSPCLK = 37.5MHz.
SciaRegs.SCILBAUD =0x00E7;

SciaRegs.SCICTL1.all =0x0023; // Relinquish SCI from Reset

 

My TX out part:

 

SciaRegs.SCITXBUF=0x55;
SciaRegs.SCITXBUF=0x56;
SciaRegs.SCITXBUF=0x57;
SciaRegs.SCITXBUF=0x58;

 

The resulting output  is:0x56 and 0x58. Watching the SCICTL2 register, I can see the following sequence:

 

-After writing 0x55 into TXBUF, TXRDY asserts

-After writing 0x56 into TXBUF, TXRDY de-asserts

-After writing 0x57 into TXBUF, SCICTL2 doesn't change

-After writing 0x58 into TXBUF, SCICTL2 doesn't change

 

Clearly, it is something important which I have overlook in the SCI datasheet. It would be great if someone would point my the right direction. Thank you.