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.

SCI Interrupt vs Timer Interrupt



Hi,

I'm transmitting numeric data after converting them into string form to my computer, in order to be able to plot them on Matlab. The data that I'm logging is obtained from a variable that's updated in a timer interrupt sequence, which normally executes every 100 us. However, with the highest possible baudrate on F28335, which is 115200, I'm getting erroneous data among the correctly transferred data. (ex: it fails to transfer some digits or fails to add the space character) 

I have observed that when my timer interrupt period is increased to 10000 us, there is no more erroneous data in my transferred values. Both SCI and Timer0 are generating their own interrupts and ideally they can not execute at the same time. So my question is, is this problem happening because my fast timer interrupts are interrupting the SCI interrupts ?

Thanks,

Goksan

  • Goksan,

    Highest possible baudrate is not 115200. Theoretically, it can go up to LSPCLK/16. Max LSPCLK is 75MHz in F28335. So, try to increase the baud rate until the slew rate limitations hit the communication quality.

    Hope you are using TX FIFO - Try using a FIFO level of 7 to keep the FIFO full before it gets empty.

    If the rate at which the timer interrupt is updating the variable is higher than the rate at which SCI is sending the data out, you will of course miss some data to be transmitted. Before updating the variable in your Timer ISR, you need to make sure that the existing data is written to SCI TX FIFO.

    Thanks and regards,
    Vamsi