dknguyen said:
Ohhhhhhhhh. Then I need an actual transceiver/driver to use with the CAN pins that come off of the PIC? I can't just have two long bus wires and splice every CTX and CRX pin of all the PICs into this wire, unlike SPI or I2C? That clears stuff up. So there is a difference between a "CAN controller" and a "CAN transceiver" then? Why is a CAN bus this way while I2C or SPI are not? All differential protocals require some extra driving hardware or something?
PS. It doesnt seem like the 2551 can run at 3.3V?
Yep. Unlike serial, I2C, or SPI, here is NO way to use this without a CAN transceiver.
A CAN
controller such as the MCP2515 is a transceiver which handles additional levels of the protocol. The MCP2515 can allow a PIC16 to work as a CAN node because the PIC16 can configure the node and send and receive data packets through a SPI connection. The MCP2515 will understand the protocol, see packets, pick out packets which agree with the configured filter mask, acknowledge them, and buffer them. The PIC16 cannot possibly bit-bang this job by itself. The 2515 is not particularly expensive either.
There are even some cheap Microchip CAN controllers that can operate as a CAN node all by themselves without a microcontroller. They have an ADC input, PWM output, and/or some switch input/outputs so it can do useful things.
Damn, you're right. I thought the 2551 could go to 3.3v due to the note on Table 1-2 of the spec. I thought they didn't advertise it as such because it wouldn't technically meet the voltage levels on the bus. But Vpor IS greater than 3.3v so it can't come out of reset at all.
Need to go revisit a project I'm working on at this very moment, which needs that 2551 to work with the 33f! Damn you!
Another notable feature- CAN tranceivers allow a node to be unpowered without affecting the bus. With say I2C, putting 5v on an I2C pin will turn on the pin's protection diode, which will forward bias and conduct to Vdd. It can pull Vdd up to 4.3v and half turn on the device.
What microcontroller are you looking at? There are some bugs in some of the CAN modules.