SJA1000 support in Colibri iMX6

Hello world,

I’m still developing with my recent Colibri (V1.0A) module on an old evaluation board (V2.1c).
I’m starting working with the CAN bus, and it appears I have two solutions :

  1. Use the on-module FlexCan and connect the correct pin (on extension header) to the input of the CAN transceiver. I’ll do that later.
  2. Use the on-board SJA1000 controller which is not supported due to the new SPI controller used (MCP2510). That’s what I’m trying to do.

I have built Linux with can modules. Then I load manually the modules to have the following running modules:

# lsmod
Module                  Size  Used by    Not tainted
sja1000_platform        2881  0
sja1000                 5439  1 sja1000_platform
can_bcm                11706  0
can_raw                 6064  0
can                    25548  2 can_bcm,can_raw
can_dev                 8509  1 sja1000

But, I still don’t have a can0 interface while typing ip a. Is there an additional module to load to make the interface appearing?

Regards,

Léo

I believe the way the SJA1000 is hooked up to the external parallel bus on the Colibri Evaluation board V2.1C is not quite supported in any recent Linux kernel. You could probably find some hints about this in the ancient as-is PXA BSP sources here or of course the schematics available here.

Hi back,

It appears that using the SJA1000 could be quite complex.

The solution is to use the on-module FlexCan controller. The Col Eval V2.1c can be hacked to directly connect:

  • the CANTX signal outputed on X10[20] to pin 4 of the CAN isolator ADuM1301
  • the CANRX signal outputed on X10[25] to pin 5 of the CAN isolator ADuM1301

That worked perfectly at 1Mbit/s in my case.

Léo