- Bill of Materials
- Gerber Files
- Allegro Files
- Assembly Drawing
- EVAL-ADICUP3029 ($45.00) Ultra-Low Power, Cortex M3 Arduino form factor compatible Development Platform
- EVAL-ADM3055E-ARDZ ($49.00) CAN to SPI Arduino Shield
- Fully Isolated CAN FD Bus
- Operates in Standby mode and Remote Wake up mode
- Switchable Termination
- Arduino shield form factor
Controller area network with flexible data rate (CAN FD) allows higher bandwidth communications demanded by multinode networks in industrial automation, HVAC, agriculture, and healthcare applications. The circuit shown in Figure 1 enables CAN FD bus connectivity data rates up to 8 Mbps on an Arduino Uno form factor platform by connecting with an existing serial peripheral interface (SPI) bus.
The CAN FD transceiver has integrated signal and power reinforced isolation. The integrated isolated dc-to-dc converter draws power from the logic side to provide power to the bus side isolation channels and transceiver, and thus requires no external power on the CAN FD bus.
The isolated transceiver has exceptional EMC robustness. An extended common-mode range of ±25 V exceeds the ISO11898- 2:2016 requirement and offers a high tolerance to localized ground potential differences when receiving CAN frames. Integrated ESD protection offers IEC 61000-4-2 ESD protection on the CANH and CANL bus pins. The differential bus pins can withstand miswires and shorts to 24 V systems with ±40 V fault protection on the CANH and CANL pins.
The CAN bus may connect two or hundreds of nodes. The connections may be made with different cable types, depending on application requirements. Cables may range from lower cost unshielded twisted pair like Cat5e cable to higher quality shielded cable like PROFIBUS cable. With any cable type, the ideal CAN bus daisy chains one node to the next and has terminations at both ends. Connections to the bus may be made either by screw terminal or the CAN CiA 303-1 male, 9-pin, sub-D port.
To implement the end of bus terminations, the circuit uses an integrated auxiliary isolated digital channel for runtime configuration of the bus termination. The switchable termination circuitry connects a 120 Ω split termination with commonmode filtering capacitor between the CAN bus lines. Switchable termination allows software configuration of termination locations when the CAN bus is changed. Using switchable termination, each board can be used for any node along the signal path simply by modifying the software.
Additionally, the circuit can be configured at runtime via software to enter a reduced power standby mode. In this state, the isolated CAN FD transceiver responds only on receipt of the ISO11898-2:2016 defined remote wake-up sequence from a remote node.
CAN FD Protocol
CAN was designed as a robust communication network to eliminate the need for point-to-point wiring between individual microcontrollers. Rather than connecting each point (or node in CAN terminology) that must share information with one another, each node is connected to a single twisted pair. This configuration reduces wiring cost and complexity. Unlike many other protocols, CAN is multiple master and the physical location of the node does not determine which node takes priority on the CAN bus. There is not a master/slave relationship as exists in SPI, I2 C, or RS-485 where one node controls and services the network. Instead, it is the message ID, or programmed importance of the message, that determines the priority of a node to control the bus. A single node may send a message or various priority levels. The AN-1123 Application Note, Controller Area Network (CAN) Implementation Guide, provides additional details on this subject.
CAN FD compliant controllers are backwards compatible with classical CAN and are tolerant of classical CAN frames. It is possible to have groups of nodes communicating with classical CAN while other nodes communicate with CAN FD on the same network. However, the vintage of existing CAN controllers must be considered when adding CAN FD nodes. Legacy classical CAN controllers may identify the arbitration phase of the CAN FD frame as an error and produce an error frame that overwrites the CAN FD frame. Such controllers make CAN FD communication impossible. These controllers need to be replaced, or limit future nodes to classical CAN. The controller in this circuit, the MCP2518FD, can operate in classical CAN or CAN FD modes. It is tolerant of CAN FD frames when operating in classical CAN mode.
Fast Loop Delay and High Speed Data Rate
A distinguishing feature of CAN is the arbitration phase at the start of each CAN frame. Nodes arbitrate between one another to determine message transmission priority by each transmitting a sequence of dominant and recessive bits. Each bit requires a certain amount of time to propagate throughout the network, and each node participating in arbitration must have enough time to respond. This means that during the arbitration phase, the maximum data rate is limited by the longest total signal propagation time between any two CAN controllers on the network.
As illustrated in Figure 2, the signal path starts when the Node A CAN controller begins transmission. This signal first passes through the Node A transmitter, then propagates over the cables, then through the receiver of the furthest node, and finally reaches the furthest CAN controller. During the arbitration phase, the receiving node may also be transmitting, so the signal propagation delay from Node B to Node A must also be considered. The worst case of this propagation delay determines the absolute maximum data rate of the arbitration phase.
Propagation delay along the bus lines increases with the cable length and construction. Cable length is typically fixed by the physical locations where nodes need to be located and this portion of signal propagation delay becomes basically fixed. The propagation delay through the transceivers receive and transmit circuitry is called the loop delay. The ADM3055E has an industry leading maximum loop delay of only 150 ns, which allows a network designer to dedicate less of the bit time to the transceiver. These time savings can translate to higher arbitration data rates, longer bus cables, or longer bus signal settling time for added communication robustness at any arbitration data rate. More details on the total propagation delay and optimizing CAN networks can be found in the Analog Dialog article, “Configure Controller Area Network (CAN) Bit Timing to Optimize Performance.”
The maximum data rate in the data phase of the CAN FD frame, by contrast, is not determined by propagation delay but rather network signal quality. Reflections due to impedance mismatches and cable stubs are among the factors limiting the data rate in multiple node networks. As CAN FD multiple node networks are put in service, 2 Mbps data rates are a popular conservative choice. The ADM3055E isolated signal and power transceiver can operate at up to 12 Mbps data rates, which support very fast data transfers for point-to-point connections, and future proofs the multiple node network to adapt to faster data rate requirements in the future.
Standby Mode, and Remote Wake Up
The CAN FD controller and isolated CAN FD transceiver can be set to standby mode with commands issued by the development platform over the SPI bus. The CAN FD controller sets itself and the isolated CAN FD transceiver to standby mode. In standby mode, the transmit functionality of the transceiver is disabled and its output is set to a high impedance state.
The transceiver can only be taken out of standby mode by the local CAN FD controller, however the transceiver does respond to the remote wake-up calls made by other nodes. The remote wake-up pattern is defined in ISO11898-2:2016 and in the ADM3055E data sheet. The pattern can be sent out in the arbitration field of a frame with no data, or it can be sent in the data field. It must only meet the timing requirements of the transceiver. When the remote wake up pattern is received, the RXD pin of the ADM3055E transceiver toggles in response to low speed data on the CAN FD bus.
The state changes on the RXD pin is used to trigger an interrupt to the CAN FD controller. When the ADM3055E receives the remote wake-up pattern, it does not exit standby mode. It is then up to development to determine whether to respond, or to toggle the standby pin of the transceivers to discontinue reception of low speed data and return to standby mode until the remote wake-up pattern is again received. While in standby mode, the isolated auxiliary channel of the transceiver latches in the last state, and its integrated isoPower® isolated dc-to-dc converter continues to operate, providing power to the bus side circuitry.
Harsh environments, lengthy physical separation, and different power supply sources between nodes can and often do have different local ground potentials. The differing local ground potentials causes currents to flow through the ground wire causing common-mode offsets and noise. Isolating the physical bus lines breaks the ground loops and eliminates these problems. The ADM3055E breaks ground loops and carries system level safety certification for 5 kV rms signal and power isolation between the CAN FD node and CAN bus lines.
For best signal integrity, implement termination at both ends of a CAN bus. Switchable termination allows software to configure the location of the termination. Software control is useful for on-the-fly network reconfiguration of the CAN bus due to the addition or removal of nodes.
To keep the network reliability as high as possible, termination circuitry must not restrict the common-mode range. The termination circuitry must also not be affected by the common-mode range of the signal or, more specifically, the termination circuitry must remain off when set to off and remain on when set to on. To meet the required circuit characteristics, the termination circuitry on the EVAL-ADM3055E-ARDZ evaluation board floats with the transmitting node using very compact optically isolated SPST solid state relays (SSR).
Controlling the relays from the auxiliary isolated channel of the ADM3055E means the relays do not bridge the isolation gap. Because the relays do not bridge the isolation gap, they are not required to serve a safety isolation function and can be chosen to have the smallest package possible to save printed circuit board (PCB) area.
The 120 Ω termination resistance can be accomplished with a single resistor. However, splitting the resistor into series 60 Ω resistors offers an inexpensive measure of electrostatic discharge (ESD) protection to both relay pins exposed to the CAN bus. Implementing the switchable termination circuit with a second SSR allows for the addition of a filter capacitor. This added capacitor acts with the split termination resistors to provide a low-pass filter, reducing common-mode noise on the CAN bus.
Silent Mode and Slope Control Mode
The CN-0401 circuit also supports bus baud rate discovery via a software configurable trial and error in conjunction with the silent mode of the transceiver. Silent mode disables the transmit channel of the transceiver and allows a CAN controller to produce error frames while attempting to synchronize to the bus data rate without interrupting bus traffic with those error frames.
The CN-0401 circuit provides access to the ADM3055E slope control mode. For low speed signaling, slope control decreases the slew rate of the CANH and CANL recessive to dominant transitions. Decreasing the slew rate minimizes ringing and electromagnetic interference (EMI) caused by fast edges. Do not use slope control mode for high speed signaling.
CAN FD Controller
The EVAL-ADM3055E-ARDZ uses the MCP2518FD external CAN FD controller. The controller and the ADM3055E transceiver are compatible with legacy CAN, CAN 2.0B, and CAN FD. Joining CAN or CAN 2.0B requires software changes.
The standalone CAN controller and ADM3055E offer a convenient option for system designers to add one or more isolated CAN ports to existing designs by simply connecting to the ubiquitous SPI port. The MCP2518FD supports a maximum CAN FD data rate of 8 Mbps. See the MCP2518FD datasheet for further information.
The EVAL-ADM3055E-ARDZ uses the ADM3055E transceiver. This reinforced isolated signal and power transceiver is rated for 1-minute 5 kv rms overvoltages. The 8.3 mm minimum creepage of the package meets reinforced safety standards. For applications requiring lower isolation capabilities and prioritizing board layout space, the ADM3057E is available. For applications where bus side power is available, ADM3056E is a reinforced signal isolated solution.
This section outlines a simple evaluation procedure for the EVAL-ADM3055E-ARDZ using the EVAL-ADICUP3029. For more information on the hardware and software setup, visit the EVAL-ADM3055E-ARDZ user guide (CN0401 (EVALADM3055E-ARDZ) Shield Overview).
- PC with a USB port and Windows® 7 (32-bit) or higher
- Serial terminal, for example, PuTTY or Tera Term
- Two EVAL-ADM3055E-ARDZ circuit evaluation boards
- Two EVAL-ADICUP3029 development boards
- CrossCore® Embedded Studio or prebuilt .hex file
- Open the CN0401 project in CrossCore Embedded Studio.
- Check that all user-defined settings are correct, as detailed in the EVAL-ADM3055E-ARDZ user guide
- Build the project and upload the project to the ADICUP3029 board (alternatively, copy (drag and drop) the prebuilt hex file into the ADICUP3029 board mass storage device).
Functional Block Diagram
Figure 4 shows the functional block diagram of the test setup. The PCB tethered node software sets up a command line interface (CLI), which is commanded via a serial terminal running in a PC. Through the serial terminal, the user is able to command other nodes and send a remote wake-up message.
A CAN node is set up by mounting the EVAL-ADM3055EARDZ atop the EVAL-ADICUP3029 using the Arduinocompatible headers, as shown in Figure 5.
Communication and Remote Wake-Up Test
With the sample software built and loaded on two different CAN nodes, the two boards (when connected) communicate with each other through the CAN FD connection. Figure 6 shows a two-node CAN connection.
Default arbitration and data transmission speeds are 500 kbps and 2 Mbps, respectively. The boards are connected to the PC via a USB cable and each node has its own CLI running on a serial terminal. This configuration sets up a two-way CAN FD communication between the devices and they become two independent nodes on the CAN bus.
At first, all devices are in sleep mode but can be commanded via the CLI to wake up and send an ASCII message on the CAN bus. The message transmission has a timeout of 5 seconds and is repeatedly sent until it is acknowledged by the other node. The message, particularly the slower arbitration phase, wakes up the other node, which acknowledges the message and displays the message on the serial terminal interface of that node. Then, both nodes reenter sleep.
When connected to a PC, each CAN node can be commanded to perform a communication loopback test. The CAN controller is placed in external loopback mode wherein the transmit line is internally connected to the receive line. The CAN transmits a custom message and checks if it receives the same message. If the loopback message is received, the message is displayed in ASCII art on the CLI and the LEDs on the ADICUP3029 flash. A screenshot of the received message in the serial terminal is shown in Figure 7.