Blog
Recent Posts
CAN Bus And SAE J1939 Prototyping With The Arduino Due ARM Cortex M3 Processor
Posted by
onWhenever it comes to building rapid prototypes for new CAN Bus or SAE J1939 applications, my first choice is regularly the Arduino Due, a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU.
In general, the Arduino platform couples an easy-to-use programming environment (IDE) with a vast number of hardware extensions (shields). While I do appreciate programming on a more "professional" level using our embedded systems with more sophisticated IDEs and debug probe, often enough, the needed hardware is not available. The Arduino concept may have its flaws (such as limited debugging capabilities), but when it comes to rapid prototyping, it is virtually unbeatable.
Let's have a look at the Arduino Due features:
- Microcontroller board (Arduino Due) based on the Atmel SAM3X8E ARM Cortex-M3 CPU
- 512 KB Flash Memory
- 96 KB SRAM
- 84 MHz Clock Speed
- 2 CAN ports w/o transceiver
- 54 Digital I/O Pins (of which 12 provide PWM output)
- 12 Analog Input Pins
- 2 Analog Output Pins
When it comes to CAN Bus or SAE J1939 applications, though, the Due misses an essential feature, namely the CAN Bus transceivers (it shares that short-coming with a great number of off-the-shelf embedded systems with CAN Bus ports). Consequently, we at Copperhill Technologies have created a Dual CAN Bus interface for the Arduino Due that provides the following features:
- 2 CAN ports with three-pin terminal connectors
- Extended input power range of 7 VDC to 36 VDC
- 3 LEDs (Power, CAN Activity Port 1, CAN Activity Port 2)
- CAN Bus Termination resistors switchable per jumper
The available options are:
- Arduino-Based ECU Development Board With Dual CAN Bus Interface...
- Dual CAN Bus interface for Arduino Due...
- Dual CAN Bus interface for Arduino Due With Extended Power Range...
The concept of the Arduino Due mainboard plus Dual CAN Bus interface allows adding any Arduino-compatible hardware (shield).
For instance, the image to the left shows the board with Dual CAN Bus interface plus an Ethernet shield, which certainly, with the corresponding software development, can be used as a CAN-to-Ethernet gateway.
Check out the available resources, may it be hardware, cables, datasheets, or sample programs:
CAN Shield Resources:
- Arduino Due: Dual CAN Port Test Sketch...
- Arduino Due: Dual CAN Port Test Sketch With LED CAN Traffic Indicators...
- Dual CAN Bus Interface For Arduino Due: Controlling the LEDs...
- ODB2 and CAN Bus Acquisition Libraries...
- SAE J1939 Protocol Stack Sketch for Arduino Due...
- App Note: ARM Cortex M3 Development Boards Require External CAN Bus Transceiver...
- CAN Bus Data Traffic Simulation With Arduino Due...
- CAN Bus Bridge (CAN-to-CAN) Application With Arduino Due...
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)...
Cables:
Arduino Project Handbook: 25 Practical Projects to Get You Started
The Arduino Project Handbook is a beginner-friendly compilation of electronics projects using the low-cost Arduino board. With just a few components, an Arduino, and a computer, you learn to create and program everything from light shows to arcade games to an ultrasonic security system.
In the first step, you receive an introduction to the Arduino and helpful information on tools and components. Then you work throughout the book in order or jump to projects that catch your eye. Each project includes simple instructions, colorful photos, circuit diagrams, and all the necessary code.
The Arduino Project Handbook is a fast and fun way to get started with microcontrollers that is ideal for beginners, hobbyists and educators.
Application Note: Arduino Due Timer Control
The Arduino platform is not only the ideal solution for the hobbyist, due to low price and ease of programming; it is also a great tool for professionals who are looking for quick prototyping. This application note will address the very specific topic of timer control for the Arduino Due. The Arduino platform does provide library functions dedicated to timers, and they cover [...]
CAN Bus Prototyping With Arduino Uno - Prototyping Hardware
This post is part of a series about Controller Area Network (CAN Bus) Prototyping With the Arduino Uno. As I had mentioned earlier, it is assumed that you have some basic knowledge of the Arduino, Arduino Sketches, and Arduino Shields. I will nevertheless take the opportunity of mentioning the prototyping hardware and its variants. It is important to know that the [...]
Arduino Due - Programming And Debugging Using JTAG ICE And Atmel Studio
Atmel’s SAM3X series MCUs are great for users who want to move further from the world of 8bit/16bit microcontrollers to 32bit ARM Cortex core MCUs. One of the most famous device in this series is SAM3X8E, Atmel’s Smart ARM microcontroller. The development platform of choice for getting started with the SAM3X8E is the Arduino Due board. The SAM3X8E [...]
Arduino Due Firmware Flaw: Problem With Using The USB Programming Port At 230400 Baud And Beyond
One of the improvements that came with the Arduino IDE's updates was an increased baud rate for the Serial Monitor. Well, there are many time-sensitive applications that will benefit from the speed gain, specifically when using one of the fastest Arduinos around, the Arduino Due with its ARM Cortex M3 processor. However, when you set the Serial [...]
ARM Cortex Processors – UART Programming Problem At Baud Rates Higher Than 115200
To say it upfront, I cannot confirm with 100% certainty that all ARM Cortex microcontrollers are affected by the UART programming problem as described in the following, but there are indications that make my assumption very probable. The outcome depends primarily on thorough testing of serial communication applications, but there is evidence to the contrary [...]
Programmable, Arduino-Due-Based USB Gateway With Two CAN Bus Ports
As part of our business strategy of providing prototyping solutions for the CAN Bus (including SAE J1939, ISOBUS, NMEA 2000) we have decided to focus more on the Arduino platform, specifically the Arduino Due. The Due, while providing the power of an ARM Cortex M3 processor, comes with two CAN Bus ports per default, however, lacking the [...]
Arduino DUE CORE Board With Dual CAN Bus Interface, Real-Time Clock, And SD Card
As I had mentioned in my post, Arduino DUE CORE Board With Dual CAN Bus Interface And Extended Power Supply Range, our business strategy is providing prototyping solutions for the CAN Bus (including SAE J1939, ISOBUS, NMEA 2000), and, in the months to follow, we will increase our focus on the Arduino platform, specifically the Arduino Due. Now [...]
Arduino DUE CORE Board With Dual CAN Bus Interface And Extended Power Supply Range
As part of our business strategy of providing prototyping solutions for the CAN Bus (including SAE J1939, ISOBUS, NMEA 2000) we have decided to focus more on the Arduino platform, specifically the Arduino Due. The Due, while providing the power of an ARM Cortex M3 processor, comes with two CAN Bus ports per default, however, lacking [...]
Hands-On Recipes To Quickly Build And Understand Arduino Projects And Their Development
The single-chip computer board Arduino is small in size but vast in scope, capable of being used for electronic projects from robotics through to home automation. The most popular embedded platform in the world, Arduino users range from school children to industry experts, all incorporating it into their designs. Arduino Development Cookbook comprises clear and step-by-step [...]