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/TMS320F28379D: Maximum baud rate for communication with a PC.

Part Number: TMS320F28379D

Tool/software: Code Composer Studio

Dear TI Hello,

I am working on serial communication between a PC and my DSP,

I want to send data to be displayed on a project scope.

My question is what is the maximum speed I could use? Did you have any recommendations or limits while use an SCI with PC?

My DSP is ruining at 200Mhz clock frequency.

Thank you in advance,

S.Tarik

  • Hi,

    Please check the section 19.12 of TRM titled "SCI Baud rate calculations". 

    You might also want to check if the PC utility operates based on some standard baud rates or configurable.

    Regards,

    Sudharsanan

  • Yes, I see, I read the TMR before posting this question. Speatialy the section about Serial Communication Interface, Thank you for your advice,

    The thing is, when I was using the terminal on my PC, I notice this speed 256000. I have never used this speed for SCI and I though maybe if I ask you about it. 

    By the way,

    I want to implement a 16 words FIFO with interrupt fro RX and TX,

    I am using this code;

       #define CPU_FREQ        200E6
    #define LSPCLK_FREQ     CPU_FREQ/4  /* Default value at reset */
    #define SCI_FREQ        115200
    #define SCI_PRD         ((LSPCLK_FREQ/(SCI_FREQ*8))-1)
    EALLOW;
       SciaRegs.SCICCR.all = 0x0007;      // 1 stop bit,  No loopback
                                          // No parity,8 char bits,
                                          // async mode, idle-line protocol
    
       /* Enable TX, RX, internal SCICLK */
       SciaRegs.SCICTL1.all = 0x0003;
                                          // Disable RX ERR, SLEEP, TXWAKE
       SciaRegs.SCICTL2.bit.TXINTENA = 1;
       SciaRegs.SCICTL2.bit.RXBKINTENA = 1;
       SciaRegs.SCIHBAUD.all = ((uint16_t)SCI_PRD  & 0xFF00U) >> 8U;
       SciaRegs.SCILBAUD.all = (uint16_t)SCI_PRD  & 0x00FFU;
    
    
       /* FIFO configuration for Transmission
        * Set the maximum level for the FIFO interrupt */
       SciaRegs.SCIFFTX.bit.TXFFIL = 0x10;
    
       /* Enable the interrupt for FIFO */
       SciaRegs.SCIFFTX.bit.SCIFFENA = 1;
    
       /* Send when FIFO is full */
       SciaRegs.SCIFFTX.bit.TXFFST = 0x10;
    
       /* Clear flag */
       SciaRegs.SCIFFTX.bit.TXFFINTCLR = 1;
    
       /* Reset SCI */
       SciaRegs.SCIFFTX.bit.SCIRST = 1;
    
       /* FIFO configuration for Reception
        * Set the maximum level for the FIFO interrupt */
       SciaRegs.SCIFFRX.bit.RXFFIL = 0x10;
    
       /* Enable RX interrupt */
       SciaRegs.SCIFFRX.bit.RXFFIENA = 1;
    
       /* Clear RX interrupt flag */
       SciaRegs.SCIFFRX.bit.RXFFINTCLR = 1;
    
    
       SciaRegs.SCIFFCT.all = 0x00;
    
       SciaRegs.SCICTL1.all = 0x0023;     // Relinquish SCI from Reset
       SciaRegs.SCIFFTX.bit.TXFIFORESET = 1;
       SciaRegs.SCIFFRX.bit.RXFIFORESET = 1;
    
       EDIS;

    I am sending a 16 words from a terminal from my pc, the issue is the reception interrupt don't came. Does something wrong with my C code?

    Thank you in advance,

    Regards,

    S.Tarik

  • Hi,

    SCI is as documented in TRM as LSPCLK/16. 

    It is also discussed in this thread

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/850683.

    Since you  opened another thread and you mentioned that you got it working https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/904689/3345013#3345013

    I am closing this thread. Please avoid opening multiple threads for the same issue. 

    Regards,

    Sudharsanan