2 Channel CAN BUS FD Shield for Raspberry Pi


I am sending CAN FD packets (ISO11898_1 standard) at a 500kbps nominal bit rate from an Atmel ATSAMV71. When I send various data length packets without bit rate switching, the shield works just fine and is able to receive messages. As soon as I enable bit rate switching for 2.5mbps, regardless of config on the shield side, I am unable to receive any packets. I have confirmed that my controller is sending out bit rate switched packets.

sudo ip link set can1 up type can bitrate 500000 dbitrate 2500000 restart-ms 1000 berr-reporting on fd on

5: can1: <NOARP,UP,LOWER_UP,ECHO> mtu 72 qdisc pfifo_fast state UP mode DEFAULT group default qlen 65536
link/can promiscuity 0 minmtu 0 maxmtu 0
can <BERR-REPORTING,FD> state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 1000
bitrate 500000 sample-point 0.875
tq 25 prop-seg 34 phase-seg1 35 phase-seg2 10 sjw 1
mcp251xfd: tseg1 2…256 tseg2 1…128 sjw 1…128 brp 1…256 brp-inc 1
dbitrate 2500000 dsample-point 0.750
dtq 25 dprop-seg 5 dphase-seg1 6 dphase-seg2 4 dsjw 1
mcp251xfd: dtseg1 1…32 dtseg2 1…16 dsjw 1…16 dbrp 1…256 dbrp-inc 1
clock 40000000numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535

The Atmel controller CAN clock is also configured to 40MHz.