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.

TMS320F280023: SCI RX Fifo when receiving less than interrupt level

Part Number: TMS320F280023

I have almost same question as the related post.

Except ten years has passed by and I have another µcontroller.

I want to limit the number of interrupts when receiving sci data by utilizing the Fifo buffer.

I receive telegrams from 1 to many words long.

My dream scenario i get an interrupt when fifo is half or more full, and i also get an interrupt when any data is in fifo and the line has been silent for some time (preferably 2-3 words time)

As I read the related question this is not possible on the other but similar µC he was using 10 years ago.

Is this still true today on the newer F28002x µControllers?

  • Hi,

    Thanks for your question! As you mentioned, your request is a bit different than the related post linked, and so I think we can likely get a workaround for the second half of your request. Here's the summary answers to your dream scenario:

    1. Get an interrupt when FIFO is half or more full: definitely possible as part of FIFO configuration levels. Let me know if you have questions implementing this.

    2. Also get an interrupt when any data is in FIFO and the line has been silent for some time: Not possible in hardware via solely the SCI module, but we could maybe do a software workaround for this: what if, in addition to the SCI FIFO interrupt, we use a timer interrupt that triggers an ISR every 2-3 words worth of time. Inside the timer ISR, the normal SCI read commands can be executed. It won't be able to directly detect whether or not there is data in the FIFO, but could at least get the timing requirement. Let me know if something like this could work for your application.

    Otherwise, unfortunately there is no way to directly wait for a certain amount of idle-time on the RX line before triggering an interrupt.

    Regards,

    Vince