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: CAN:When using 19 or more mailboxes to transmit, the data cannot be received

Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE

Hi experts,

My customer is first time to use CAN, and they follow the examples. But now when they use 19 or more mailboxes to transmit, the 19th and subsequent data cannot be read.(all 0).

The datas in the 19th and subsequent mailboxes may have the same ID, but the data lengths are different. Will this matter?

The customer has provided limited code as follows:

s18TXCANMessage.ui32MsgID = 0x1EE03830;          
s19TXCANMessage.ui32MsgID = 0X1EE000AD;           
s20TXCANMessage.ui32MsgID = 0x1EE03830;            
s21TXCANMessage.ui32MsgID = 0x1EE03830;             
s22TXCANMessage.ui32MsgID = 0x1EE03830;            
s23TXCANMessage.ui32MsgID = 0x1EE03830;

//ignored some codes

CANMessageSet(CANA_BASE, TX_MSG_OBJ_ID18, &s18TXCANMessage, MSG_OBJ_TYPE_TX);
    CANMessageSet(CANA_BASE, TX_MSG_OBJ_ID19, &s19TXCANMessage, MSG_OBJ_TYPE_TX);
    CANMessageSet(CANA_BASE, TX_MSG_OBJ_ID20, &s20TXCANMessage, MSG_OBJ_TYPE_TX);
    CANMessageSet(CANA_BASE, TX_MSG_OBJ_ID21, &s21TXCANMessage, MSG_OBJ_TYPE_TX);
    CANMessageSet(CANA_BASE, TX_MSG_OBJ_ID22, &s22TXCANMessage, MSG_OBJ_TYPE_TX);
    CANMessageSet(CANA_BASE, TX_MSG_OBJ_ID23, &s23TXCANMessage, MSG_OBJ_TYPE_TX); 
    
//ignored some codes

CANInit(CANA_BASE); CANClkSourceSelect(CANA_BASE, 0);
CANBitRateSet(CANA_BASE, 150000000, 20000);//500k-20k 
CANIntEnable(CANA_BASE, CAN_INT_MASTER | CAN_INT_ERROR | CAN_INT_STATUS); 
CANGlobalIntEnable(CANA_BASE, CAN_GLB_INT_CANINT0); 
CANEnable(CANA_BASE);
    Int_ecan_ID();
    Set_ecan_date();  
    CanaRegs.CAN_CTL.bit.ABO = 1;  
    CanaRegs.CAN_ABOTR = 0x10;

It seems they followed the example(can_loopback_cpu01). When they need to add some message objects or data length in a data frame, what configurations need attention?

Thanks and regards,

Jim

  • Jim,

             How many mailboxes are used in an application does not matter. All 32 mailboxes are exactly identical to each other. They can have the same ID or different ID. It does not matter. Same thing with the data length. If the TxRqst bit is set for a mailbox, data from that mailbox will get transmitted when the bus is idle next. Can you please ask customer to try the Driverlib example in C2000ware? Please request them to take a look at my debug tips in www.ti.com/lit/SPRACE5.