Jetson Nano 4GB MCP2515 CAN bus receiving wrong ID

Hi,
I have successfully connected 2 MCP2515 to Jetson Nano by following the instruction from this message:
https://forums.developer.nvidia.com/t/jetson-nano-and-mcp2515-can-module/112271/289
Now I am able to send and receive data via both MCPs, however, when I am trying to receive CAN messages with IDs higher than 0x400 I am quite often receiving messages with wrong IDs (message data is not corrupted, btw).
For example I am receiving CAN message with ID 0x731 from my STM32 board, and Jetson sees it as 0x735 when I am receiving this message through MCP2515 on the SPI1.
If I am receiving message via MCP2515 on SPI0, it receives message ID sometimes as 0x731 (correct), sometimes as 0x735 (wrong).
I tried same on other similiar Jetson, and there I received 0x734 instead of 0x731 ID.
Also, to check my hardware, I connected my shield with MCP2515 to Raspberry Pi 3, and everything worked perfectly, I received messages with correct ID all the time.
Also, I tried to connect different shields, with 8MHz and 16Mhz crystals, still receiving wrong CAN msg ID on Jetson.
I tried changing bit timing and speed too, no effect. Flashing with different JetPack versions also didn`t help.
It seems like a SPI or MCP2515 driver issue to me.
Mostly this happens with IDs from 0x430…0x439, 0x530…0x539, etc.
I would be really happy to hear any suggestions.

Screenshot from 2021-10-22 18-43-17

And when I am sending messages with loopback on, I send 1 message with frame ID 0x731, I am getting two on candump, one with ID 0x731, second with 0x735.

Sorry for the late response, is this still an issue to support?

Thanks

Thanks for response. Yes, it`s still an issue to support.
FYI, my Jetson Nano Devkit is flashed with Jetpack 4.5, because on Jetpack 4.6 CAN cannot be initialized as it mentioned here

1 Like

It was SPI frequency and signal integrity on my extension board issue, when I set SPI frequency to 2MHz, error disappeared.