I’m using the BeagleBone Black Rev C running Debian Linux. We are developing a new agricultural field implement. I have designed a CANBus interface board that uses the MCP2562 transceiver and Molex 39281043 for bus cable connectors. The first board I designed has just one Molex connector, which connects to the CAN Bus network cable. I have a 120 ohm resistor across CAN_H and CAN_L, which can be jumpered in or out of the circuit as needed. This board works fine with two nodes, both of which are terminated with the onboard resistor connected.
I realized after receiving these that I had no way to easily use this board as a midpoint node, so I copied the working design and added a second Molex connector, allowing the board to be inserted into the network in a daisy chain fashion (at least, that’s how I think it works).
I’ve started testing by putting one of the new two-connector boards in the middle of the network. Before doing so, I have reconfirmed that the two-node configuration still works and confirmed all the cables are good by using each in the two-node configuration one at a time. I have even used one of the new boards as the end node in the two node test configuration and that works.
I have swapped all cables around to confirm they are all good.
The testing is going on in the office away from any appliances, etc. other than overhead office lights and my computer.
I’m running at 500kbps. The cables are roughly 18” long... The traces on the boards are under 0.5” and, admittedly, are small at 6mil. It's a two-layer board. I have checked continuity on the boards and swapped the new boards out for a different copy of the board. I have checked the resistance of the network cable, and it is 60.4 Ohms.
At this point, I am not trying to communicate with the mid-node. I just want to keep communicating between the two end nodes first, and that is not working. There is no code running involving the CANbus on the middle node BeagleBone.
Here is a scope trace of the signal from the two-node setup.
The trace on the scope when the mid-node is in place is definitely different but there it isn't appreciably more noisy.
I have switched in different copies of the same boards and no significant change. I have also checked all cables and connectors and everything seems stable. The CANBus cable is IGUS CFBUS-LB-022 Chainflex. And the connectors on them are Amphenol Sine Systems ATM series.
Any ideas? Anything you’d like to see? This is my first work with CANBus boards, and it was really encouraging to have such initial success but I've not been able to figure out what is going on.
UPDATE: FIXED! I caused the problem by misreading the Microchip MCP2562 transceiver documentation. I put a 100pf capacitor across CAN_H and CAN_L in error. As I designed a rev of the board to improve the signal routing, I checked the doc & found my error. I removed the 100pf caps from all the boards and ran my tests again with the same cables, BeagleBones, boards & software & it all works really well now at 500Kbps. The telltale sign was right there in the scope traces - the capacitive decay that got worse with a third board installed.



