50.8.4.2.2 Transmitting within a Time Window

A time mark is defined for each mailbox. It is defined in the 16-bit CAN_MMRx.MTIMEMARK field. At each internal timer clock cycle, the value of CAN_TIM is compared with each mailbox time mark. When the internal timer counter reaches the MTIMEMARK value, an internal timer event for the mailbox is generated for the mailbox.

In Time-triggered mode, transmit operations are delayed until the internal timer event for the mailbox. The application prepares a message to be sent by setting CAN_MCRx.MTCR. The message is not sent until the CAN_TIM value is less than the MTIMEMARK value defined in CAN_MMRx.

If the transmit operation is failed, i.e., the message loses the bus arbitration and the next transmit attempt is delayed until the next internal time trigger event. This prevents overlapping the next time window, but the message is still pending and is retried in the next time window when CAN_TIM value equals the MTIMEMARK value. It is also possible to prevent a retry by setting the CAN_MR.DRPT field.