I've built a prototype circuit on a solder breadboard. I've connected the PIC18F25K80 to MCP2551 as shown in the schematic for this demo board. I'm running the example code from Microchip's website for CAN Mode 0 and CAN Mode 2 on PIC18, only modified to use PORT A rather than PORT D, as PIC18F25K80 does not have PORT D.
I have a 120 ohm termination resistor between CAN_H and CAN_L on the MCP2551.
The system is connected to my PC via a sysWORXX CANmodul1 CAN-to-USB adapter. Using PCANView, I can receive a message on my PC when sent from my circuit. However, I can not get the microcontroller to receive a message sent from PCANview. If I scope the CAN_H and CAN_L pins, or the CAN_RX pin, I can clearly see a digital signal traveling through the circuit and into CAN_RX.
I have tried disabling filters via changing RXM1 in RXB0CON and RXB1CON, but it doesn't seem to help.
How can I fix this problem?
EDIT1: I've been fiddling around with it a bit more, and I've noticed that RXB1D<7:0> holds the data I transmit after transmitting. The operational mode at the time IS normal (not loopback), so should the message ever be getting to the buffer? I currently have all filters and masks off.
Also, I'm using B0 through B4 as additional Rx buffers in Mode 2 (FIFO), and B5 as a Tx buffer with auto-RTR.
For reference, I'm using MPLAB X 1.80, C18 v3.46, and a PICkit 3 set up for in-circuit debugging.
PIC18F25K80 datasheet for reference: http://ww1.microchip.com/downloads/en/DeviceDoc/39977f.pdf