Using the CAN subsystem with the RoboRIO
Using CAN with the RoboRIO has many advantages over previous connection methods between the robot controller and peripheral devices.
- CAN connections are through a single wire that is daisy-chained between all the devices so home run wiring isn't required.
- Since this is protocol-based signaling the devices can be smart and accept higher level commands besides start, stop and set speed.
- Devices can report status back to the robot controller making it possible to have much better control algorithms with devices that use CAN.
There are a number of CAN devices supported in the FRC control system:
- CAN speed controllers
- The Power Distribution Panel (PDP)
- The Pneumatics Control Module (PCM)
The devices are typically connected to the RoboRIO CAN bus using twisted pair wiring.
CAN bus topology and termination
The CAN bus must be terminated at each end of the bus, that is bridged with a termination resistor of 120 ohms. Conveniently both the RoboRIO (start of bus) and the PDP board can supply termination. So a CAN bus that starts at the RoboRIO, goes through several devices, and ends at the PDP board (with the termination jumper installed) will provide the correct termination. Nothing else has to be done.
If you wish to terminate your bus somewhere other than the PDP, the PDP terminator jumper must be moved to disable the PDP terminator and a user provided 120 Ohm resistor must be placed at the end of the bus.