Adafruit's Latest Feather Offering Has a Real "CAN"-do Attitude About It

The forthcoming Feather from Adafruit looks set to make sure you CAN do just about anything with Controller Area Networking!

Tom Fleet
5 years agoAutomotive / HW101

Boards of a Feather flock together, and there's no greater collection of Feather-based boards than the formidable collection now on offer from Adafruit.

It's a safe bet that if the team over at Adafruit has seen to it to include a fancy new feature in one of their feather development boards — well, there's bound to be a user base, bristling with people who are itching to integrate it into their latest ingenious ideas.

The Feathers feature everything you need to figure out your next project idea, without getting over the basics of figuring out the support needed for your favorite family of microcontroller. They pack the core components — from MCU to connectors, and everything in-between — into a board that bootstraps your latest brainwave.

You don't want to be scratching your head figuring out FPLL settings for clocking your MCU — you want to be cracking on and coding your creation!

Despite the basic idea of being a board from which to base future developments from, there are still a few variants of feather that feature some further functionality. From barebones to Bluetooth, boards that can log in, or log on (and on, and on...) — it's a pretty busy table at the adafruit household come Thanksgiving.

With all of this hardware at your fingertips, you're empowered to do whatever your imagination will allow. This "can do" attitude is core to the concept of these boards, and could not be more aptly embodied by the latest addition to the Feather family — the Feather M4 CAN Express!

A quick background scan on CAN

The Controller Area Network (CAN) bus might be a new term for some of us, but it's a technology that was created in 1986, and has been in use around us practically every single day since the early '90s.

Many of you are enabled to go about your daily commute thanks to CAN, even if you might not already be aware of the level of communications going on under the hood of your hotrod!

Designed as a networking system that has no need for a host controller, it allows independent devices to sit on a shared electrical signaling bus, with every node that has a connection also having the ability to send and receive messages to other nodes, without the need to route them through a central coordinator.

Imagine it perhaps as an I2C bus, where all the devices are controllers and peripherals (wait, don't imagine that, that sounds like hell), or perhaps more as a multi-drop RS-485 network, where there's no need for a central node to negotiate who's talking to who.

Practically, the implication of this is safety — a CAN bus communication system can still continue to pass data between devices, even in the event of an error causing an individual node to crash out.

With some of the major applications for this technology concerning themselves around safety-critical systems, CAN is often the backbone of the communication between the various components found within an automobile system, for example.

In fact, CAN originates from this industry of interconnected car components, despite its now widespread adoption elsewhere within other industries.

With things like ABS and power steering being pretty desirable features to have, even in the event that your cars head-unit has hung up due to a software glitch — this controller / host independent network topology is essential for systems that can't afford to be taken down by one individual component failing.

Suddenly not being being able to steer, brake,or even indicate while doing 70mph down the central lane seems like a horrifying prospect for you and every other driver around you.... CAN makes sure this can't happen.

So, how does CAN do this?

Electrically, it's two wire connection looks something like a differential signaling protocol, similar to RS-485, with a few subtle differences.

Instead of fully bipolar signal swings between V+/V-, the two CAN signals, CANH and CANL will normally sit, biased at a midpoint of whatever the CAN bus voltage is — effectively we've shifted the 0V point of what we'd see with a RS-485 signal such that everything is now up in the +Vcc range.

When a "bit" is sent, the two levels are leveraged apart, CANH goes up towards the bus voltage, and CANL drops it down towards the lower of the voltage range. The difference between the two signals (Vᵈⁱᶠᶠ) is interpreted as a logical "1."

No more negative voltages, but the use of bipolar differential signaling still allows for robust, noise-resistant data transmission.

Just as RS-485 has found itself popular in noisy industrial networks, the Controller Area Network can similarly stand up to the typical electrical noise that will be common place in any automobile, or other electromechanical systems — think any industrial automation application — CAN is probably applicable to at least some of the systems contained within.

Fitting all of this together — let's cram CAN into this Feather!

This Feather features the frankly ridiculous ATSAME51J19from Microchip. You'd be forgiven for thinking I've made another typo, but no, that part number is correct.

While many of us are far more familiar with the ATSAMD51 parts, the E series are more industrially targeted, with peripherals poised to provide the functionality and interfaces so sorely desired in such, signal slaying situations — those environmental EMC nightmares that can all but eradicate less robust TTL-based signaling protocols.

Almost a twin sibling to the more familiar ATSAMD51, as with any twin, there are a few subtle tells that allow you to spot which one is which.

With its maximum clock speed of 120 MHz, and all the usual sensational SERCOM objects we've grown to love from the ATSAMx parts on offer, there are a few extra goodies included in the E series, most notably for our point here — up to 2 CAN-FD (that's CAN at 5 Mbps!) controller interfaces.

A controller can't do much on it's own though...

While the ATSAME51J19 CAN controller peripheral can generate the required timings that are needed to tickle the CAN bus signal transitions at the right timings, simply plugging those I/O pins into a powered bus isn't going to do much for the E51, if there's much left of it after the event... We need a way of interfacing the controller to the physical CAN bus.

So, how can you get your MCU connected with CAN?

The CAN control interface and logic, while typically implemented within the controllers that feature it, will take care of the protocol layer of the network.

The physical signaling however is a slightly different set of responsibilities, and often resigned to an external transceiver.

Much as many of us will know that the MAX232 is often employed to enable embedded TTL logic level systems speaking at the often significant +/- 12V required by true RS-232, CAN is a similar affair, with the physical trickery of this touted out to a transceiver device.

In the case of this new CAN-do feather, the transceiver in question is the TCAN1051V, from Texas Instruments. We can see it highlighted in blue in the board detail below.

This fault protected CAN transceiver allows the ATSAME51J19 connected to it to communicate on a CAN network at speeds of up to 2 Mbps!

Although the transceiver needs tickling with 5V to generate the voltages needed by the differential protocol signals seen on the CAN lines, the V-suffix of the part indicates the inclusion of a built in 3V level shifter, meaning that it can happily talk to the SAME51, the I/O of which are much happier down at 3.3!

Adafruit has every application note checkbox ticked on this one, with an on board 5V boost converter — highlighted in red — specifically to provide the CAN bus supply.

So, what CAN you do with this?

Beyond the automotive industry, CAN is found all over the world — usually with applications that feature electromechanical products. Factory lines will feature fields of products connected by this system, and we're starting to see it crop up in more maker-level products every day.

A quick skim of the GitHub topics for CAN bus reveals a whole world of potential projects that we feel this forthcoming feather will facilitate!

The only remaining question in my mind right now — when CAN we get our hands on this piece of hardware?

If you want to be in with a shot of getting your hands on this hot new hardware first, go and get your email logged in the "let me know" notification box on the product page.

UPDATE (12/10/2020): The board is now available on the Adafruit store, where you CAN purchase one for $24.95.

Ok, I'm done with the CAN puns now!

Tom Fleet
Hi, I'm Tom!I create content for Hackster News, allowing us to showcase your latest and greatest projects for the world to see!
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles