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.

TMS320F28377D: Notice that when clearing the interrupt by issuing PIE ACK , sometimes one ISR is clearing the interrupt at group level and the other communication port will not be able to detect a response

Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE

TI Friends & Family,

Placing this inquiry from our customer on our shared E2E Forums in the event others have experienced this same debug behavior with PIE and SCIA/B:

I'm debugging SCI interrupt,  ISR SCI-A ( communication to ESP32) and SCI-B ( modbus communication to Inverter ), which share the same   PIE Acknowledge Interrupt group (INTERRUPT_ACK_GROUP9) by default.

I've noticed that when clearing the interrupt by  issuing PIE ACK , sometimes one ISR is clearing the interrupt at group level and the other communication port will not able to detect a response. this usually happen after running 10+hr ,  possibly when both comm receive data at the same time( need more testing if that is the case)

 Bellow is code snippiest for reference only

//

#define SCOMM2      SCIA_BASE   //SCI used for serial communications interface 2(ESP32)

    #define SCOMM2_RX_PIN   35      //Serial interface 0 transmit pin RX485

    #define SCOMM2_TX_PIN   36      //Serial interface 1 transmit pin

 

#define MBCOMM SCIB_BASE //SCI used for modbus communications interface to inverter

    #define MBCOMM_RX_PIN 11 //Modbus interface receive pin   

    #define MBCOMM_TX_PIN 10 //Modbus interface transmit pin  

---------------------------------------------------------------

//Clear the interrupt  MODBUS(SCI-B)

SCI_clearInterruptStatus(MBCOMM, SCI_INT_RXFF); // Clears SCI interrupt sources. RXFF

SCI_clearOverflowStatus(MBCOMM); // Clear the receive FIFO Overflow flag status

Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP9);  // Issue PIE ACK

-------------------------------------------------------------

//Clear the interrupt  SCOMM2     (SCI-A)

SCI_clearInterruptStatus(SCOMM2, SCI_INT_RXFF);// // Clears SCI interrupt sources. RXFF

SCI_clearOverflowStatus(SCOMM2); // Clear the receive FIFO Overflow flag status

Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP9);// Issue PIE ACK

-----------------------------------------------------------------

 When I commented out PIE ACK group , both comm is not working at all.

 So, please advise how to clear SCI interrupt in one ISR without affecting another port ( without clearing PIE ACK group).

or how to configure custom PIE ACK group so that I can have SCI-B on INTERRUPT_ACK_GROUP10 instead INTERRUPT_ACK_GROUP9 assigned by default by the library provided 

 Best Regards

TY,
CY