View previous topic :: View next topic |
Author |
Message |
kender
Joined: 09 Aug 2004 Posts: 768 Location: Silicon Valley
|
[OT] CAN transceiver |
Posted: Sat Oct 29, 2005 3:47 pm |
|
|
Colleagues,
I have never used CAN, and I'm designing a board whith a working name "CAN playground". It will have a couple of PIC18F258s and a bunch of different CAN peripherals. Rolling my own board is more fun then buying one from CCS. The question is: what CAN transceiver to use? In this forum I have seen people use MCP2551, PCA82C250, LT1796. These transceivers seem to be pin-for-pin compatible. Is there any preference?
Thanks!
~K |
|
![](templates/subSilver/images/spacer.gif) |
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Sat Oct 29, 2005 5:59 pm |
|
|
The CCS CAN bus drivers configure the PIC to use a transceiver that
has an internal pullup on the microcontroller side of the transmitter.
Not all transceivers have this internal pullup. This can cause quite a
mess until you figure it out. See this thread. It is finally resolved
on page 2.
http://www.ccsinfo.com/forum/viewtopic.php?t=23825 |
|
![](templates/subSilver/images/spacer.gif) |
kender
Joined: 09 Aug 2004 Posts: 768 Location: Silicon Valley
|
|
Posted: Sat Oct 29, 2005 6:21 pm |
|
|
I see. So, I can use any transmitter, as long as I leave pads for an external pull-up resistor, can't I? |
|
![](templates/subSilver/images/spacer.gif) |
newguy
Joined: 24 Jun 2004 Posts: 1903
|
|
Posted: Sat Oct 29, 2005 6:29 pm |
|
|
Actually, I'm still waiting to hear back from CCS regarding that issue. I'm very sure that the CAN_DRIVE_HIGH (or whatever that define is called) should be a 1, not a 0 as in the driver files. I keep checking the new releases of the compiler, but it's still defined as a 0. |
|
![](templates/subSilver/images/spacer.gif) |
|