Dear sirs, I'm using the MCP2518FD CAN controller with Rasperry PI 4 and are suffering from wrong data reception. My hardware is a Model 4 B with MCP2581 Click board(s) attached with a prototype (hand-made) interface PCB, as well as baseboards for a CM4 with a single MCP2518 on it. The error occurs on both of them. I have reduced my test case to a simple single thread self-receipt test: * TX two messages * Wait for RX and send out a new message on every receipt * TX for messages in total Refer to the attached PDF for some error cases. Last send frames are at the top of the logs. You can see that wrong messages appear in the RX queue, which have been successfully transmitted in previous test loop. The data that is actually sent out is correct however (checked with an external logger for some cases). The error appeared very often (every 1..10 minutes) when I was using kernel raspberrypi 5.15.32-v7l+ and reduced to once in several hours when I switched to raspberrypi 6.0.12-v7l+. BTW I modified the loopback to external loopback To check for correct transmission. No other changes to the driver as taken from the Raspbian repository. I see infrequent mcp251xfd CRC read errors. I think those are due to the 2518 SPI errata. However they don't occur at the time when the wrong messages are received (refer to the PDF). Questions: - Is this a known problem? - What did change from 5.15.32 to 6.0.12 to reduce the error rate? Maybe this is just because of a change in execution timing? - Any suggestion how I can step further in fixing this issue. ----- Stefan Althöfer (stefan.althoefer@xxxxxxxxxxx)
Attachment:
can_mcp2518fd_fail.pdf
Description: can_mcp2518fd_fail.pdf