I am attempting CAN communication between two nodes and can not get the receiver to transfer a message from the MAB to a readable buffer. The nodes are identical, physically and in configuration. I am transmitting at 40kbps. The receiver will send the acknowledge bit and I have confirmed that a valid message is being sent with a Saleae Logic connected to PC. Also, when connected to MPLABX with PICKit3 for debugging I am able to see that neither the TXERRCNT of the trasmiter nor the RXERRCNT of the receiver are logging any errors. I have RXB0CON, RXM1 set which means the receiver should be transferring all messages, including those with errors, to RXB0 ignoring filters and masks. I have tried the same setting with RXB1CON and nothing is being transferred to that register either. I am strictly using Assembly, no canned routines. I have also tried starting with a "bootup message" of SID set to all 0's and 0 DLC prior to sending a normal message but it does not make any difference.
Hardware is PIC18F25K80 connected to MCP2561. Bus is properly terminated with 120 ohm resistors at each node and meter shows 60 ohms on bus when nodes are not powered so no shorted or open terminators.
Thanks in advance to anyone that may offer suggestions.
Best Answer
Here is the remainder of the file that didn't fit into the previous answer. This part performs the actual sending and receiving at run time.