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.

TMS570LS1114: CAN Mailboxes 49-64 unable to receive messages, but any other mailbox configured the same will

Part Number: TMS570LS1114
Other Parts Discussed in Thread: HALCOGEN

If I configure any CAN1 Mailbox between mailbox 49 to mailbox 64 to receive and activate it in Halcogen 04.07.01 these mailboxes do not receive. If I use same configuration and config a Mailbox in any other mailbox in CAN1 it receives message just fine. I compared the code generated by Halcogen and the canREG1 registers get configured the same except IF2NO of course. Below is what Halcogen generates:

canREG1->IF2MSK = 0xC0000000U | (uint32)((uint32)((uint32)0x01FFFFFFU & (uint32)0x1FFFFFFFU) << (uint32)0U);

canREG1->IF2ARB = (uint32)0x80000000U | (uint32)0x40000000U | (uint32)0x00000000U | (uint32)((uint32)((uint32)0x01455105U & (uint32)0x1FFFFFFFU) << (uint32)0U);
canREG1->IF2MCTL = 0x00001000U | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U;
canREG1->IF2CMD = (uint8) 0xF8U;

If I send a message to ID 0x01455105 using PEAK USB when mailbox 18 is configured as above, 

if (canIsRxMessageArrived (canREG1, canMESSAGE_BOX18) ) will return true. 

If I configure mailbox 49 to do the same thing and I send a message to ID 0x01455105 using PEAK USB 

if (canIsRxMessageArrived (canREG1, canMESSAGE_BOX49) ) will return false

  • Hello James,

    If several receiving interrupts are pending, the CAN Interrupt Register will point to the pending interrupt with the highest priority. The message object with the lowest number has the highest priority.
  • Oh maybe I'm not describing the problem well enough. I understand it two mail boxes were configured at the same time with the same ID, etc. the lower number mailbox will catch messages first. The problem is plainly, I can't configure any mailbox between 49 and 64 for receive and see them receive messages. Normally in my application box 18 and 49 are looking to receive messages from different CAN Ids. Mail box 18 always works and mailbox 49 does NOT work. If I swap the IDs configured in 18 and 49, I still only receive messages configured in box 18 but NOT 49. In looking at the Halcogen code generated, I don't see any reason why 49 does not work. Any ideas? 

  • Hi James,

    I tested the mailbox 50, it works without any problem.
  • Thanks QJ for testing. To get our scenario working we moved all our RX mailboxes to ones in 1-48 range and TX ones in remainder. That did the trick.