Dear All,
Because of many people, such me, searching for an open source implementation of the CANOpen layer on NXP µC, I have decide to start this project. I can start a discussion and a repository if some people are interested (Using LPCXpresso and LPCOpen)
I have found an open source layer of the CANOpen (CANOpenNode) below
GitHub - CANopenNode/CANopenNode: CANopen stack base.
Now, I'm trying to use the LPCOpen periph_can example to merge it with this work to implement all work on LPC1788.
Because I have never use CAN before I have some difficulties to understand the example, specially the setup of the Acceptance Filter LookUpTable.
For example I can't understand the following code
CAN_STD_ID_ENTRY_T FullCANSection[] = {
{CAN_CTRL_NO, 0, 0x03},
{CAN_CTRL_NO, 0, 0x05},
{CAN_CTRL_NO, 0, 0x07},
{CAN_CTRL_NO, 0, 0x09},
};
how it accept 0x03, 0x04, 0x07, 0x09 as said in the readme, and confirmed by CAN analyzer.
What is the difference between Full CAN Section, Individual Standard ID Section and Standard ID Range Section
Thank you
Hi abderrezak,
About the question how the code can accept 0x03, 0x05, 0x07, 0x09 CAN ID, you need to know the CAN acceptance filter and the ID look-up table RAM.
This content already described in the user manual in details.
Please refer to LPC1788 user manual:
From page 585, chapter 20.10 Global acceptance filter to page 613.
You will get how the receive filter works, and the function of Full CAN Section, Individual Standard ID Section and Standard ID Range Section also in these content.
Wish it helps you!
If you still have question, please let me know!
Have a great day,
Jingjing
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------