SPRUJ79 November 2024 F29H850TU , F29H859TU-Q1
The SENT peripheral has interrupts for receive errors and FIFO thresholds. The RINTFLAG register is updated when there are errors in the received data, and the RSTAT register is updated with the relevant status information is made available.
An interrupt can be created based on the FIFO level of the SENT peripheral when the interrupt is enabled and the FIFO level is greater than or equal to the user-configured threshold in RFIFO_TRIGLEV. Figure 42-10 shows an example of implementing an interrupt trigger for the SENT peripheral with a FIFO threshold.
When a receive error occurs the entire packet or frame is not considered valid, depending on the NOWR_ERRDATA in the RCFG2 register. Frame data with errors are still saved to the receive buffer if NOWR_ERRDATA is 0. Receive error flags can occur simultaneously, with the RINTFLAG register showing the cause of the flags raised. The following errors activate the error interrupt flags:
The following list shows additional conditions which, when detected, can generate an error or interrupt:
The interrupt architecture for the SENT peripheral is shown in Figure 42-11.
| Type | Flag | Event(1)(2) | Condition | Clear Interrupt |
|---|---|---|---|---|
| Valid Receives | GLBL | GLBL_flag0 | This flag generates a low pulse interrupt flag | RCLRINT[0] |
| RFAST_S1DV | rs1valid_evt | Active when SENT is in multi sensor mode and receives the corresponding channel's fast channel frame or standard SENT(3) frame data without any errors | RCLRINT[1] | |
| RFAST_S2DV | rs2valid_evt | RCLRINT[2] | ||
| RFAST_S3DV | rs3valid_evt | RCLRINT[3] | ||
| RFAST_S4DV | rs4valid_evt | RCLRINT[4] | ||
| RSLOW_DV | rslow_valid_evt | Set when SENT receives slow channel data (16 or 18 consecutive fast channel data) without any errors | RCLRINT[5] | |
| Receive Errors | RSLOW_CRCERR | rslow_crcerr_evt | The RSLOW_CRCERR is set when the received slow channel message ID and data CRC calculation does not match the received slow channel CRC; RX_CRCENB in the RCFG register must be enabled | RCLRINT[6] |
| RSLOW_FORMATERR | rslow_formaterr_evt | The RSLOW_FORMATERR is set when the received Slow Channel message contains wrong format | RCLRINT[7] | |
| RFAST_S1CRCE | rfast_crcerr_evt | The RFAST_CRCERR is set when the Receiver CRC calculation (RX_CRCENB must be enabled) does not match the CRC nibble received on the corresponding channel or standard SENT(3) fast channel | RCLRINT[8] | |
| RFAST_S2CRCE | rfast_crcerr_evt | RCLRINT[9] | ||
| RFAST_S3CRCE | rfast_crcerr_evt | RCLRINT[10] | ||
| RFAST_S4CRCE | rfast_crcerr_evt | RCLRINT[11] | ||
| RFAST_S1FRME | rfast_frmerr_evt | The RFAST_FRMERR is set when the received status or data nibble of the Sensor1 or standard SENT(3) fast channel is less than 12 TT or greater than 27 TT, which is invalid | RCLRINT[12] | |
| RFAST_S2FRME | rfast_frmerr_evt | RCLRINT[13] | ||
| RFAST_S3FRME | rfast_frmerr_evt | RCLRINT[14] | ||
| RFAST_S4FRME | rfast_frmerr_evt | RCLRINT[15] | ||
| RTIMEOUT_ERR[0] | rtimeout_err_evt[0] | The RTIMEOUT_ERR[0] is set when there is no response, since the MTPG is sent out to the channel, or there is an unexpectedly long idle time between frames for standard SENT mode(3) | RCLRINT[16] | |
| RTIMEOUT_ERR[1] | rtimeout_err_evt[1] | RCLRINT[17] | ||
| RTIMEOUT_ERR[2] | rtimeout_err_evt[2] | RCLRINT[18] | ||
| RTIMEOUT_ERR[3] | rtimeout_err_evt[3] | RCLRINT[19] | ||
| RFAST_SYNCERR25 | rfast_syncerr25_evt | The RFAST_SYNCERR is set when the received Calibration or Synchronization pulse is more than +/-25% from the nominal 56 ticks | RCLRINT[20] | |
| RFAST_SYNCERR | rfast_syncerr_evt | The RFAST_SYNCERR is set when the received Calibration or Synchronization pulse is more than +/-25% from the nominal 56 ticks or the successive calibration pulse differ by more than 1.5625% | RCLRINT[21] | |
| FREQDRIFT_ERR | freqdrift_err_evt | The FREQDRIFT_ERR is set when the frequency drift on the fixed length frames (the ratio of the calibration pulse to the message length varies by more than 1/64 or less than -1/64 from one message to another) | RCLRINT[22] | |
| RFIFO_TRIGGER | rfifo_trig_evt | The RFIFO_TRIGGER is set when the Receiver FIFO’s pointer is greater than or equal to the programmed trigger level | RCLRINT[23] | |
| RFIFO_OVFERR | rfifo_ovferr_evt | The RFIFO_OVFERR is set when the Receiver FIFO is overflow | RCLRINT[24] | |
| RFIFO_UNDFERR | rfifo_undferr_evt | The RFIFO_UNDFERR is set when the Receiver FIFO is underflow | RCLRINT[25] | |
| MTPG Errors | OVFTRIG_ERR[0] | ovftrig_err_evt[0] | The OVFTRIG_ERR is set when the Broadcast Channel of the MTPG has Overflow trigger requests | RCLRINT[26] |
| OVFTRIG_ERR[1] | ovftrig_err_evt[1] | The OVFTRIG_ERR is set when the corresponding channel of the MTPG has Overflow trigger requests | RCLRINT[27] | |
| OVFTRIG_ERR[2] | ovftrig_err_evt[2] | RCLRINT[28] | ||
| OVFTRIG_ERR[3] | ovftrig_err_evt[3] | RCLRINT[29] | ||
| OVFTRIG_ERR[4] | ovftrig_err_evt[4] | RCLRINT[30] |