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.

TMS570LS0914: mibspiGroupNotification is sometimes not triggerd

Part Number: TMS570LS0914
Other Parts Discussed in Thread: HALCOGEN

In my application we use the operating system RTOS with several tasks on the microcontroller. For one module we use SPI4 for sending and MIBSPI5 for receiving (also other SPI ports for other modules). However, it happens in the application that the interrupt for MIBSPI5-receive is not triggered. If I look at the sent and received message on an oscilloscope, it was sent correctly and should be received correctly.

If no interrupt is triggered, I wait a short time and read out the multibuffer (mibspiGetData) manually. In about 50% of the cases the correct message is in the buffer. In the other cases (only a part of the whole message is in the buffer) I have to send the request again. Then how can it be that the interrupt did not trigger if the correct message is in the buffer? What could be the reason for this happening?

I would appreciate your help.

Kind regards,

Konstanty Kuczynski

  • Hi, Konstanty,

    In TI HalCoGen tool, there is an example for mibspi configuration, example_mibspi_trigger_tick.c. However, HalCoGen doesn't support project for TMS570LS09x FreeRTOS configuration, but for TMS570LS07x. You may want to go through the mibspi_trigger_tick example to see if there is anything missed.

    Rex

  • Hello Rex,

    thanks for your answer. Unfortunately, I don't think this example will help me. That an interrupt does not trigger happens in my application one per about 100000-200000 transmissions. I would like to understand how this can be possible if the correct message has been sent? Can a further interrupt disturb the SPI interrupt while receiving the message?

    Can I somehow switch off all other interrupts during the SPI transmission, with the exception of the SPI interrupt?

    Which trigger source do I have to select if I want an interrupt after receiving a complete message?

    Kind regards

    Konstanty

  • Hi, Konstanty,

    I am checking internally what could cause the miss of MiBSPI interrupt. At the mean time, could you try disable all other modules, and only have an application receiving messages and only MiBSPI interrupt going?

    Rex

  • Hi, Konstanty,

    During serving other interrupts, it's likely the new coming MibSPI interrupt will overwrite the pending MibSPI interrupt. The execution time of any ISR should be much shorter than the interval between 2 interrupt events. You may want to check if too much time spent in the ISR.

    Rex