How can I send more then 16 bytes by SCI_A?
No FIFO
Please dont tell me do watch one example like echo_back.
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.
How can I send more then 16 bytes by SCI_A?
No FIFO
Please dont tell me do watch one example like echo_back.
Hi Alexandre,
For Non-FIFO mode:
Best Regards,
Allison
Thanks for your response.
I've used many microcontrollers, but this is without a doubt the most complicated to set by UART.
I've tried several configurations for the registers, but I can only send 16 bytes.
Could you provide an example of configuration and byte sending?
Thank you very much in advance.
Alexander
Hi Alexandre,
There are certainly some nuances to using the SCI module. To better help you, could you explain a bit of what you have been trying? Are you using interrupts? When and how are you checking that the TX buffer has space before writing to it? Are you scoping the data lines to help verify communication? Are you also trying to receive data or only transmit? At a broader level, what is the goal of your system/communication so I can understand the requirements?
If you are using interrupts, it could also be helpful to reference the TRM section that outlines the interrupt flags you will want to pay attention to in Figure 10-10. SCI FIFO Interrupt Flags and Enable Logic:

Best Regards,
Allison
Thanks for the answer.
What I need is to send a block of 256 bytes via uart.
No interruptions, just send...
void scia_xmit(int a)
{
while (SciaRegs.SCICTL2.bit.TXRDY == 0) {}
SciaRegs.SCITXBUF=a;
}
WD_Disable(void);
GPIO_Setup(void); //GPIO28 and GPIO29
SCI_Setup(void(); //NO Interrupts
void xtm(int); // Send data for SCI-A
Uint16 sdataB[256]; // data
int i;
int main(void){
WD_Disable();
GPIO_Setup();
SCI_Setup(); //NO Interrupts
for(i=0;i<256;i++){
xtm(sdataB[i]);
}
}
Hi Alexandre,
Thanks for the updates - with this are you still unable to transmit more than 16 bytes (and is that the only issue, as in, the correct data is being transmitted, right?)? Could you please ensure your configurations are without FIFO mode? Note that there is also a helpful FAQ for double checking your issues and checking your setup process for SCI: https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1031947/faq-my-c2000-sci-is-not-transmitting-and-or-receiving-data-correctly-how-do-i-fix-this. Did you start with one of the SCI examples as a reference and alter the code for your application?
Best Regards,
Allison
Hi Allison,
After watching many videos and reading many manuals about configuring the TMS320F28335, I managed to make the echo_back example work.
Thanks for the support.
Sincerely,
Alexandre Marques