Alternatives to SJA1000 and MCP2515 CAN Controllers

Go To Last Post
17 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello all,

It seems that the two most common CAN controllers are the SJA1000 (Parallel Bus) the MCP2515 (SPI).

Are there any alternatives to these parts? Once upon a time, there used to be a Bosch CC770 and an Intel 82527, but I haven't heard any references to these in a long tme.

I'm looking for something to interface to the XMEGA (still specifying the exact model, choice may be dependant on CAN controller) rather than going back to the ATCAN90 series.

Are there any other options I should be looking for?

-- Damien

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

What's wrong with the MCP2515 or SJA1000 then?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

jayjay1974 wrote:
What's wrong with the MCP2515 or SJA1000 then?

The SJA1000 interfaces to 5V whereas the xmega is max 3v3 (correct me if I'm wrong). Not a show-stopper with level translators, but it's an extra chip to worry about.

Nothing particually wrong with either device, but it'd be nice to find out if there are any new competetors on the market that I'm not aware of.

-- Damien

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I think there are not that many stand alone CAN controllers available (any more). They all come as part of a microcontroller.

Compare the lists of stand-alone controllers and the list of CANbus enabled MCUs at http://www.kvaser.com/can/products/index.htm. The first lists 5 items or so and the latter a couple of dozen :)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

jayjay1974 wrote:

Compare the lists of stand-alone controllers and the list of CANbus enabled MCUs at http://www.kvaser.com/can/products/index.htm. The first lists 5 items or so and the latter a couple of dozen :)

Certainly looks to be the case. The Infineon part is discontinued, as is the NEC part. No more references left to the Intel Part. Looks like it's SJA1000 or Microchip.

Or if Atmel brings out a CAN xmega. Actually, I'll just settle for the normal xmegas to be available in quantity first :(

Thanks!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

How about using a separate regular mega with CAN as an alternative? :)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

MCP2515 is way cheaper, smaller and one MCU less to program ;)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

CountZero wrote:
How about using a separate regular mega with CAN as an alternative? :)

That thought did actually cross my mind. I suppose there are other crazy solutions like a programmed FPGA (e.g. http://www.opencores.org/project... ).

In the end I'd probably implement something like one of the two popular chips in either the AVR or (eek!) FPGA. Not really worth the effort for the small volume we expect.

-- Damien

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I certainly would not take the FPGA route, it's very expensive with no added benefit in your case I think.

Not only you need the FPGA, you need a configuration device (unless you use the MCU to configure it, but a config file can be easily a few hundred Kb so you need some extra Flash device anyway) and they usually need multiple voltages too.

Only worth if you need some other periphals, like twenty more UARTs, or an esoteric bus interface or expansive weird logic; you could consider using a MCU core, like a NIOS2, but that's whole different world with a relatively steep learning curve. And not cheap either :)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

jayjay1974 wrote:

Only worth if you need some other periphals, like twenty more UARTs, or an esoteric bus interface or expansive weird logic; you could consider using a MCU core, like a NIOS2, but that's whole different world with a relatively steep learning curve. And not cheap either :)

Not to mention that my VHDL is very rusty indeed :) My verilog is completely non-existent...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

damien_d wrote:
jayjay1974 wrote:
What's wrong with the MCP2515 or SJA1000 then?

The SJA1000 interfaces..

Nothing particually wrong with either device, ...

-- Damien

Does the SJA1000 work yet? I had the misfortune of getting their bleeding edge pre-release parts long ago. So long ago I don't remember the issues, just that there were many of them. Hopfully all fixed by now. I'd go with the Microchip part myself; have not used it.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

bpaddock wrote:

Does the SJA1000 work yet? I had the misfortune of getting their bleeding edge pre-release parts long ago. So long ago I don't remember the issues, just that there were many of them. Hopfully all fixed by now. I'd go with the Microchip part myself; have not used it.

I've only used it as part of a PC/104 card (it's nice when everything is done for you), but a colleague has designed one into a product before (and did the software). He speaks fairly highly of it.

The MPC2515 also has a significant errata list (see http://www.microchip.com/wwwprod... ). I guess I'll be seeing just how significant it is...

-- Damien

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I've used the MCP2515 a little and it has worked fine, it's the route I would go if I didn't have the option of using a microcontroller with CAN. Several AVR and MCP2515 examples to get you started too.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The MCP2515 is a solid chip. I've used it on multiple designs without any hiccups.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The MCP2551 is the CAN driver used on the Olimex AVRCAN board that uses AT90SCAN128

Imagecraft compiler user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

@damien
have a look here for for a nice lib for can , including the 2515

Doc
http://www.kreatives-chaos.com/a...

Lib
http://www.kreatives-chaos.com/a...

I guess you can run it through babelfish translation , but source code is "universal"

/Bingo

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Bingo600 wrote:
@damien
have a look here for for a nice lib for can , including the 2515

Doc
http://www.kreatives-chaos.com/a...

Lib
http://www.kreatives-chaos.com/a...

I guess you can run it through babelfish translation , but source code is "universal"

/Bingo

Google translation is just fine :)

Thank you very much for the links - it's under a 2-Clause BSD license, which is even better.

-- Damien