ID 0x000 in Full CAN Communication and possible speed-up of Basic CAN

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

I am wondering whether I could set the ID of a Full CAN mailbox to 0x00 somehow. The GUI does not allow it but a zero ID is frequently used in CAN protocols like CANopen so I thought that it should be possible.

   

If that is not the case I am wondering if Basic CAN mailboxes could get a speed-up somehow. In the documentation it is written that only Full CAN filtering is hardware accelerated. What is about the ACR/AMR register mechanism, can it also decrease the CPU load and speed-up the filtering?

0 Likes
2 Replies
Anonymous
Not applicable

 I don't see any reason why you can't use CAN_SET_TX_ID_STANDARD_MSG() or CAN_SET_TX_ID_EXTENDED_MSG() in your code. The IDE may be preventing you from setting the Mailbox ID to zero but I can't think of any technical reason why the CAN spec or CAN hardware in the PSoC would prevent you from using the highest-priority CAN ID.

   

 

   

I find that trusting the IDE to set up the peripherals is kind of hit-and-miss. I prefer to drop the module on the schematic page, configure clocks/etc. and then initialize it myself in software. The Peripheral_Start() functions pretty much do the same thing with tables generated by the IDE.

   

 

   

BTW, I found those macros by looking at the CAN.h file in the Generated_Source/ subdirectory. There are a lot of helpful macros in there.

0 Likes
Anonymous
Not applicable

Thank you! I'd expect an equivalent register/function call for the rx-mailbox as well. I'll have a look in CAN.h.

0 Likes