EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

CAN controllers

Started by Michael June 29, 2007
Hi there - on an upcoming project I will need to use a CAN controller.
I have previously used the Microchip MCP2515. What other CAN
controllers are there out there? All I know of is the NXP SJA1000. Any
opinions on advantages of one over the other? Thanks!

-Michael

Michael wrote:
> Hi there - on an upcoming project I will need to use a CAN controller. > I have previously used the Microchip MCP2515. What other CAN > controllers are there out there? All I know of is the NXP SJA1000. Any > opinions on advantages of one over the other?
By far the biggest advantage to be had is to use a CAN controller integrated with a microcontroller, not as a separate chip. Stand-alone CAN controllers will take considerable resources just to connect them to the micro: read/write message box control and data registers, route interrupts, do access control and all that. CAN itself is just two wires taken care of by the CAN controller. A lot simpler.
On Jun 29, 3:14 pm, Hans-Bernhard Br=F6ker <HBBroe...@t-online.de>
wrote:
> Michael wrote: > > Hi there - on an upcoming project I will need to use a CAN controller. > > I have previously used the Microchip MCP2515. What other CAN > > controllers are there out there? All I know of is the NXP SJA1000. Any > > opinions on advantages of one over the other? > > By far the biggest advantage to be had is to use a CAN controller > integrated with a microcontroller, not as a separate chip. Stand-alone > CAN controllers will take considerable resources just to connect them to > the micro: read/write message box control and data registers, route > interrupts, do access control and all that. CAN itself is just two > wires taken care of by the CAN controller. A lot simpler.
I agree, for the most part. Though really the MCP2515 did not take all that many cycles when I used it. It generates an interrupt when a message is received. The ISR starts the DMA reading in the message. The DMA generates an interrupt when it finishes. I've also been told that that simply is not an option, as all of our code is written for a very specific line of chips. I have to go with an external CAN controller. -Michael
On 2007-06-29, Michael <nleahcim@gmail.com> wrote:
> On Jun 29, 3:14 pm, Hans-Bernhard Br&#4294967295;ker <HBBroe...@t-online.de> > wrote: >> Michael wrote: >> > Hi there - on an upcoming project I will need to use a CAN controller. >> > I have previously used the Microchip MCP2515. What other CAN >> > controllers are there out there? All I know of is the NXP SJA1000. Any >> > opinions on advantages of one over the other? >> >> By far the biggest advantage to be had is to use a CAN controller >> integrated with a microcontroller, not as a separate chip. Stand-alone >> CAN controllers will take considerable resources just to connect them to >> the micro: read/write message box control and data registers, route >> interrupts, do access control and all that. CAN itself is just two >> wires taken care of by the CAN controller. A lot simpler. > > I agree, for the most part. Though really the MCP2515 did not take all > that many cycles when I used it. It generates an interrupt when a > message is received. The ISR starts the DMA reading in the message. > The DMA generates an interrupt when it finishes. > > I've also been told that that simply is not an option, as all of our > code is written for a very specific line of chips.
It's also not an option for cost sensitive applications. Using a uC+MCP2515 was about half the cost of an equivalent uC with integrated CAN.
> I have to go with an external CAN controller.
I could have used an integrated one for another $5... -- Grant Edwards grante Yow! Now we can become at alcoholics! visi.com
On Fri, 29 Jun 2007 21:14:51 +0200, Hans-Bernhard Br&#4294967295;ker
<HBBroeker@t-online.de> wrote:

>Michael wrote: >> Hi there - on an upcoming project I will need to use a CAN controller. >> I have previously used the Microchip MCP2515. What other CAN >> controllers are there out there? All I know of is the NXP SJA1000. Any >> opinions on advantages of one over the other? > >By far the biggest advantage to be had is to use a CAN controller >integrated with a microcontroller, not as a separate chip. Stand-alone >CAN controllers will take considerable resources just to connect them to >the micro: read/write message box control and data registers, route >interrupts, do access control and all that. CAN itself is just two >wires taken care of by the CAN controller. A lot simpler.
On the other hand, with an external CAN controller, you can choose which controller you use, while with an integrated controller, you are stuck with the features provided by the mico-controller. For example, I would not use MicroChip MCP2515 or Intel 82527 as a CanOpen master, but the NXP SJA1000 in PeliCan mode would be acceptable due to the 64 message Rx FIFO, when you might potentially receive hundreds of frames in a row, after sending the SYNC frame. In security related applications, the MCP2515 one-shot mode is useful (and possibly also the transmit priority features), since you would not want any delayed (perhaps hours in a line break situation) commands to be transmitted. Paul

The 2024 Embedded Online Conference