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.

TMS320F28377S: CAN Receive mailbox New Data indication

Part Number: TMS320F28377S

Dear Team,

I have Configured New Data 21 Register as follows

:

if((CanaRegs.CAN_NDAT_21 == 1))
{
{
CANMessageGet(CANA_BASE, RX7B4_MSG_OBJ_ID, &sRX7B4CANMessage, true);}

CanaRegs.CAN_IF1MCTL.bit.NewDat = 0x0000;
CanaRegs.CAN_IF2MCTL.bit.NewDat = 0x0000;
CanaRegs.CAN_NDAT_21 = 0x00000000;

}

But once CAN_NDAT_21 is 1 it is not resetting after successful reception.

Can someone please guide correct way to configure same.

  • CAN_NDAT_21 Register is a read-only register. You cannot write to it directly. Below from the TRM:

    Typically the CPU will write 0x7F to bits [23:16] and then the number of the message object to bits [7:0] of the Command Register. That combination will transfer the whole received message from the Message RAM into the Interface Register set. Additionally, the bits NewDat and IntPnd are cleared in the Message RAM (not in the Interface Register set). The values of these bits in the Message Control Register always reflect the status before resetting the bits. 

    When Direction = Read, a value of 1 for TXRQST will clear the NewDat bit. See description for TXRQST bit (bit 18) in CAN_IF1CMD Register.