Maker Pro
Maker Pro

Interface NXP SJA1000 CAN Controller to Freescale iMX

Hi Folks,

I'm working on a project based around the Freescale iMX.31
microcontroller requiring a CANopen interface. I therefore need a
CAN2.0B (Active) compatible stand-alone controller.

We plan to test the CAN bus with the IXXAT USB-CAN interface which
incorporates the NXP SJA1000. This and the fact that the SJA1000
appears to be a very popular controller, makes it my top choice.

The SJA1000 has a multiplexed address/data bus and the iMX.31 has
seperate address and data buses. I will have to multiplex the lower
byte of the iMX.31 address and data buses using some logic such as an
octal bus switch or mux/demux, and also consider the control signals
and timing etc.

My question is - Can anyone offer any advice on the best way to do
this?

Much appreciated, Al
 
M

MK

Hi Folks,

I'm working on a project based around the Freescale iMX.31
microcontroller requiring a CANopen interface. I therefore need a
CAN2.0B (Active) compatible stand-alone controller.

We plan to test the CAN bus with the IXXAT USB-CAN interface which
incorporates the NXP SJA1000. This and the fact that the SJA1000
appears to be a very popular controller, makes it my top choice.

The SJA1000 has a multiplexed address/data bus and the iMX.31 has
seperate address and data buses. I will have to multiplex the lower
byte of the iMX.31 address and data buses using some logic such as an
octal bus switch or mux/demux, and also consider the control signals
and timing etc.

My question is - Can anyone offer any advice on the best way to do
this?

Much appreciated, Al


Don't do it.

Unless there is a compelling reason to have a nasty noisy parallel bus with
extra chips to multiplex signals.

There are very few stand alone CAN controller chips but you should look at
the Microchip MCP2515 which has an SPI interface to the processor.

Alternatively use a micro with built in CAN and then SPI (or I2C or UART)
that to your main processor.


Michael Kellett

www.mkesc.co.uk
 
Using a micro with a CAN controller built-in would mean writing more
software for another micro, as well as the fact that each device would
have to be programmed in production - not an ideal use of time if it
can be avoided.

I did consider other CAN controllers including the MCP2515 but would
prefer a parallel interface for greater throughput if required. The
OKI ML9620 is going obsolete soon, so that's a no no for new designs.

The iMX I/O operates at 1.8V, I'm having to use transceivers on the
address and data buses to interface with a 3.3V Ethernet controller,
I'm not worried about noise as I've used this multi-supply arrangement
before and observed no significant noise on a scope.

Another way I am considering the interface is to just use the data bus
and make two accesses to the SJA1000, the first for the address and
the second for the data.
 
Top