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.

CCS/TMS320F28034: F28034 SCI Communication will lost data when transfer 8 bytes, only 5 bytes can be transfer.

Part Number: TMS320F28034
Other Parts Discussed in Thread: C2000WARE

Tool/software: Code Composer Studio

Hi,

    F28034 SCI Communication will lost data when transfer 8 bytes, only 5 bytes can be transfer. but the configuration in F28232 is as the same as the F28034, F28232 can send out 8 bytes normally.

why SCI in f28034 can't transfer 8 bytes just as the way F28232 does?

    when we add one line of code like this:

while(SciaRegs.SCICTL2.bit.TXEMPTY==0)

the F28034 did send out 8 bytes completely, but it will cost 6 ms delay after adding this code.

    is there any difference about the SCI between F28034 and F28232?

//configuration as below

SciaRegs.SCICCR.all =0x0007;

// 1 stop bit, No loopback, No parity,8 bits,async mode,idle-line
SciaRegs.SCIHBAUD = HI_BYTE(BAUDREG);
SciaRegs.SCILBAUD = LO_BYTE(BAUDREG);
SciaRegs.SCICTL1.all =0x0023;

// Relinquish SCI from Reset

SciaRegs.SCICTL1.bit.RXERRINTENA = 0;
SciaRegs.SCICTL1.bit.RXENA= 1;

 //SCI enable
SciaRegs.SCICTL1.bit.TXENA= 1;

  //0 //SCI transfer enable
SciaRegs.SCICTL2.bit.TXINTENA = 0;

 //Enable TXTDY Interrupt
SciaRegs.SCICTL2.bit.RXBKINTENA = 1;

 //Enable RXTDY Interrupt
SciaRegs.SCIPRI.bit.FREE = 1;




SciaRegs.SCIFFRX.all = 0xC021;//RX FIFO Enable
SciaRegs.SCIFFTX.all = 0xC000;//TX FIFO Enable,AliCheck  C000
SciaRegs.SCIFFCT.all=0x00;//
SciaRegs.SCIPRI.bit.FREE = 1;
SciaRegs.SCICTL1.all =0x0023;

  // Relinquish SCI from Reset   





//Transfer code

if(SciaRegs.SCICTL2.bit.TXEMPTY && (SciaRegs.SCIFFTX.bit.TXFFST <= 0x00))
{
for(; mbComm.cursor < 8; j++)
{

SciaRegs.SCITXBUF = mbSendBuffer[mbComm.cursor++];
//while(SciaRegs.SCICTL2.bit.TXEMPTY == 0);
if(j >= 15)     //16
break;
}

}

  • hi ,

    There is no limitation on F28034 not being able to transfer 8 bytes. Can you try using interrupts ?

    Yes there are a few difference in the SCI like 

    • 16-level transmit/receive FIFO in F28232 vs 4-level transmit/receive FIFO in F28034
    • Data-word format has an extra bit to distinguish addresses from data (address bit mode only) in F28034 which is not there in F28232.

    Did you get a chance to check the examples in C2000Ware\device_support\f2803x\examples\c28  to get an idea of the configurations? 

    Regards.