Strictly necessary cookies are on by default and cannot be turned off. Functional, Performance and Tracking/targeting/sharing cookies can be turned on below based on your preferences (this banner will remain available for you to accept cookies). You may change your cookie settings by deleting cookies from your browser. Then this banner will appear again. You can learn more details about cookies HERE.
Strictly necessary (always on)
Functional, Performance and Tracking/targeting/sharing (default off)
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?
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.