Other Parts Discussed in Thread: C2000WARE
Hi Team,
There are some issues from the customer need your help:
In CAN communication, there are several nouns and they are different in different places, which is a bit confusing.
1.There are two exactly same CAN module in 28075, CAN A and CAN B. There are 32 mailbox in both CAN A and B, mailbox also called massage object. When used, these 32 mailboxes need to be numbered from 0 to 31(if them don't set up by sequence, such as setting a mailbox number of 33, it is wrong?) Is this understanding right?
2.There are kinds of identifier, such as CAN identifier, message identifier, CAN ID and message ID(they are short-written of the first two, right?), and there are MSGID, MsgVal, messager object ID, messager object ID number, how to distinguish those? Identifier and ID is the same thing?
3.Do each node device require an ID, each node device requires an ID, each node ID requires an ID for the mailbox, and the message sent by each node mailbox requires an ID?
4.There are two priority comparisons within the can module: The message identifier is used to determine the priority when multiple devices from different nodes are sending data to the bus at the same time, and the mailbox number is used to determine the priority when the same device needs to transmit more than one data. Don't know if this is correct?
5.In the current routine, the data for a fixed Message Identifier is sent mainly with CANA and received with CANB the data for the same Message Identifier. This is relatively simple because the Message Identifier is the same. However, in an actual application, there are several different types of variable data that need to be transferred, so it is natural to set up a unique Message Identifier for each data. This is the time when the receiver needs to use the Message Identifier to determine what variables the received data is. How does this multi-message identifier set up to transmit multiple data? Is there a routine that can be referenced at this time?
6.The .can_setupMessageObject function is used to set which mailbox sends which MSGID data, so how do you implement the same mailbox sending multiple different MSGIDs of data? Does continuous use of multiple can_setupMessageObject functions not cause the previous to be overwritten later?
CAN_setupMessageObject(CANB_BASE, RX_MSG_OBJ_ID, 0x95555555,
CAN_MSG_FRAME_EXT, CAN_MSG_OBJ_TYPE_RX, 0,
CAN_MSG_OBJ_RX_INT_ENABLE, MSG_DATA_LENGTH);
Could you help check this case?
Thanks &Regards,
Ben