App Note: Arduino Due With 2-Channel CAN Bus Prototyping Board
According to the official Arduino website: The Arduino Due is a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU (datasheet). It is the first Arduino board based on a 32-bit ARM core microcontroller. It has 54 digital input/output pins (of which 12 can be used as PWM outputs), 12 analog inputs, 4 UARTs (hardware serial ports), a 84 MHz clock, an USB OTG capable connection, 2 DAC (digital to analog), 2 TWI, a power jack, an SPI header, a JTAG header, a reset button and an erase button.
The board contains everything needed to support the microcontroller; simply connect it to a computer with a micro-USB cable or power it with a AC-to-DC adapter or battery to get started. The Due is compatible with all Arduino shields that work at 3.3V and are compliant with the 1.0 Arduino pinout.
The Due has a 32-bit ARM core that can outperform typical 8-bit microcontroller boards. The most significant differences are:
- A 32-bit core, that allows operations on 4 bytes wide data within a single CPU clock.
- CPU Clock at 84Mhz.
- 96 KBytes of SRAM.
- 512 KBytes of Flash memory for code.
- A DMA controller that can relieve the CPU from doing memory intensive tasks.
The Arduino Due has two USB ports available. The Native USB port (which supports CDC serial communication using the SerialUSB object) is connected directly to the SAM3X MCU. The other USB port is the Programming port. It is connected to an ATMEL 16U2 which acts as a USB-to-Serial converter. This Programming port is the default for uploading sketches and communicating with the Arduino.
The USB-to-serial converter of the Programming port is connected to the first UART of the SAM3X. It's possible to communicate over this port using the "Serial" object in the Arduino programming language.
The USB connector of the Native port is directly connected to the USB host pins of the SAM3X. Using the Native port enables you to use the Due as a client USB peripheral (acting as a mouse or a keyboard connected to the computer) or as a USB host device so that devices can be connected to the Due (like a mouse, keyboard, or an Android phone). This port can also be used as a virtual serial port using the "SerialUSB" object in the Arduino programming language.
For more information on the Arduino Due see: www.arduino.cc
The Togglebit Prototyping Board
The Togglebit board connects the two CAN channels on the Arduino Due to a real vehicle bus by means of two CAN transceivers, thus eliminating the need for external breakout boards. It also represents one of the very few examples of an Arduino Shield that fills the entire Arduino Due (the Due has the same footprint as the Mega 2560) form factor. However, the entire standard board area is only used for prototyping, while the two CAN transceivers extend the board by about ½ inch (~12.5 mm).
According to the manufacturer: The Togglebit board is a prototyping shield designed specifically for supporting the CAN bus capability on the Arduino DUE. The board incorporates dual CAN transceivers required by the two integrated CAN ports on the DUE while providing a large prototyping area. The shield is pin-for-pin compatible with the Arduino DUE and includes a 3.3V bus, 5V bus, SOIC breakout, full digital breakout, CAN termination resistors and terminal blocks for CAN connections.
For more information and for ordering the board, log on to:
The board is very well suitable for prototyping, and that is its ultimate purpose, nothing more, and nothing less.
Arduino Due Resources:
- Getting started with the Arduino Due
- Download the Arduino Software (IDE)
- Atmel 11057 32-bit Cortex-M3 Microcontroller SAM3X/SAM3A Datasheet (PDF...)
Programming Arduino Getting Started with Sketches
by Simon Monk
Clear, easy-to-follow examples show you how to program Arduino with ease! "Programming Arduino: Getting Started with Sketches" helps you understand the software side of Arduino and explains how to write well-crafted Sketches (the name given to Arduino programs) using the C language of Arduino. This practical guide offers an unintimidating, concise approach for non-programmers that will get you up and running right away.
Programming Arduino: Getting Started with Sketches explains basic concepts and syntax of C with simple language and clear examples designed for absolute beginners - no prior knowledge of programming is required. It leads you from basic through to advanced C programming concepts and features dozens of specific examples that illustrate concepts and can be used as-is or modified to suit your purposes.
- All code from the book is available for download.
- Helps you develop working Sketches quickly.
Coverage includes: C Language Basics; Functions; Arrays, Strings; Input / Output; Standard Library Goodies; Storage; LCD Displays; Programming for the Web; Program Design; C++ and Library Writing