Reply by Paul Keinanen June 30, 20072007-06-30
On Fri, 29 Jun 2007 21:14:51 +0200, Hans-Bernhard Br�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
Reply by Grant Edwards June 29, 20072007-06-29
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
Reply by Michael June 29, 20072007-06-29
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
Reply by June 29, 20072007-06-29
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.
Reply by Michael June 29, 20072007-06-29
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