SPRUII0F May 2019 – June 2024 TMS320F28384D , TMS320F28384D-Q1 , TMS320F28384S , TMS320F28384S-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S
Figure 30-20 shows the structure of a message object.
The grayed fields are those parts of the message object which are represented in dedicated registers. For example, the transmit request flags of all message objects are represented in centralized transmit request registers.
Message Object | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
UMask | Msk[28:0] | MXtd | MDir | EoB | unused | NewDat | MsgLst | RxIE | TxIE | IntPnd | RmtEn | TxRqst |
MsgVal | ID[28:0] | Xtd | Dir | DLC[3:0] | Data 0 | Data 1 | Data 2 | Data 3 | Data 4 | Data 5 | Data 6 | Data 7 |
Name | Value | Description |
---|---|---|
MsgVal | Message valid | |
0 | The message object is ignored by the message handler. | |
1 | The message object is to be used by the message handler. | |
Note: This bit can be kept at level 1 even when the identifier bits ID[28:0], the control bits Xtd, Dir, or the data length code DLC[3:0] are changed. | ||
UMask | Use Acceptance Mask | |
0 | Mask bits (Msk[28:0], MXtd and MDir) are ignored and not used for acceptance filtering. | |
1 | Mask bits are used for acceptance filtering. | |
Note: If the UMask bit is set to 1, the message object's mask bits are programmed during initialization of the message object before MsgVal is set to 1. | ||
ID[28:0] | Message Identifier | |
ID[28:0] | 29-bit ("extended") identifier bits | |
ID[28:18] | 11-bit ("standard") identifier bits | |
Msk[28:0] | Identifier Mask | |
0 | The corresponding bit in the message identifier is not used for acceptance filtering (don't care). | |
1 | The corresponding bit in the message identifier is used for acceptance filtering. | |
Note: The bit functionality in the DCAN module is the opposite of the Local Acceptance Mask bit functionality in the eCAN module found in older C28x devices, where a 1 means the corresponding bit is not used for filtering, and a 0 means the bit is used. | ||
Xtd | Extended Identifier | |
0 | The 11-bit ("standard") identifier is used for this message object. | |
1 | The 29-bit ("extended") identifier is used for this message object. | |
MXtd | Mask Extended Identifier | |
0 | The extended identifier bit (IDE) has no effect on the acceptance filtering. | |
1 | The extended identifier bit (IDE) is used for acceptance filtering. | |
Note: When 11-bit ("standard") Identifiers are used for a message object, the identifiers of received data frames are written into bits ID[28:18]. For acceptance filtering, only these bits together with mask bits Msk[28:18] are considered. | ||
Dir | Message Direction | |
0 | Direction = receive: On TxRqst, a remote frame with the identifier of this message object is transmitted. On reception of a data frame with matching identifier, the message is stored in this message object. | |
1 | Direction = transmit: On TxRqst, a data frame is transmitted. On reception of a remote frame with matching identifier, the TxRqst bit of this message object is set (if RmtEn = 1). | |
MDir | Mask Message Direction | |
0 | The message direction bit (Dir) has no effect on the acceptance filtering. | |
1 | The message direction bit (Dir) is used for acceptance filtering. | |
EOB | End of Block | |
0 | The message object is part of a FIFO Buffer block and is not the last message object of this FIFO Buffer block. | |
1 | The message object is a single message object or the last message object in a FIFO Buffer Block. | |
Note: This bit is used to concatenate multiple message objects to build a FIFO Buffer. For single message objects (not belonging to a FIFO Buffer), this bit must always be set to 1. | ||
NewDat | New Data | |
0 | No new data has been written into the data bytes of this message object by the message handler since the last time when this flag was cleared by the CPU. | |
1 | The message handler or the CPU has written new data into the data bytes of this message object. | |
MsgLst | Message Lost (only valid for Message Objects with direction = receive) | |
0 | No message was lost since the last time when this bit was reset by the CPU. | |
1 | The message handler stored a new message into this message object when NewDat was still set, so the previous message has been overwritten. | |
RxIE | Receive Interrupt Enable | |
0 | IntPnd is not triggered after the successful reception of a frame. | |
1 | IntPnd is triggered after the successful reception of a frame. | |
TxIE | Transmit Interrupt Enable | |
0 | IntPnd is not triggered after the successful transmission of a frame. | |
1 | IntPnd is triggered after the successful transmission of a frame. | |
IntPnd | Interrupt Pending | |
0 | This message object is not the source of an interrupt. | |
1 | This message object is the source of an interrupt. The Interrupt Identifier in the Interrupt Register point to this message object, if there is no other interrupt source with higher priority. | |
RmtEn | Remote Enable | |
0 | At the reception of a remote frame, TxRqst is not changed. | |
1 | At the reception of a remote frame, TxRqst is set. | |
Note: See Section 30.11.8 for details on the setup of RmtEn and UMask for remote frames. | ||
TxRqst | Transmit Request | |
0 | This message object is not waiting for a transmission. | |
1 | The transmission of this message object is requested and is not yet done. | |
DLC[3:0] | Data length code | |
0-8 | Data frame has 0-8 data bytes. | |
9-15 | Data frame has 8 data bytes. | |
Note: The data length code of a message object must be defined to the same value as in the corresponding objects with the same identifier at other nodes. When the message handler stores a data frame, the message handler writes the DLC to the value given by the received message. | ||
Data 0 | 1st data byte of a CAN data frame | |
Data 1 | 2nd data byte of a CAN data frame | |
Data 2 | 3rd data byte of a CAN data frame | |
Data 3 | 4th data byte of a CAN data frame | |
Data 4 | 5th data byte of a CAN data frame | |
Data 5 | 6th data byte of a CAN data frame | |
Data 6 | 7th data byte of a CAN data frame | |
Data 7 | 8th data byte of a CAN data frame | |
Note: Byte Data 0 is the first data byte shifted into the shift register of the CAN core during a reception, byte Data 7 is the last. When the message handler stores a data frame, the message handler writes all the eight data bytes into a message object. If the data length code is less than 8, the remaining bytes of the message object can be overwritten by undefined values. |