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.
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 [...]
CAN Bus (Controller Area Network) Projects with ARM Cortex M3 and Arduino Uno
This book details the use of the ARM Cortex-M family of processors and the Arduino Uno in practical CAN bus based projects. Inside, it gives a detailed introduction to the architecture of the Cortex-M family whilst providing examples of popular hardware and software development kits. Using these kits helps to simplify the embedded design cycle [...]
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 [...]
LPC1768/1769 - ARM Cortex M3 Development - The "Hello World!" Application
This post is a follow-up on my article LPC1768/1769 - ARM Cortex M3 Development - MCUXpresso IDE Installation And Adding A Template Project, in which we installed the MCUXpresso integrated development environment (IDE) and created a working but non-functional project for the LPC1768/LPC7169 processor. You can start the compilation (click on "Build 'LPC1769Template' [Debug]"), and there will [...]
LPC1768/1769 - ARM Cortex M3 Development - MCUXpresso IDE Installation And Adding A Template Project
After getting your LPC1768 or LPC1769 Cortex-M3 Development Board, it is time to getting started with MCUXpresso IDE. In this Step by Step tutorial we will go through the process of creating projects in MCUXpresso IDE for Cortex-M series Microcontrollers by NXP(Founded by Philips) based on CMSIS (Cortex Microcontroller Software Interface Standard). MCUXpresso is a derivative [...]
Professional ARM Cortex M3 Development System With Eclipse-Based IDE Starting At 85 Dollars
There are two worlds when it comes to the programming of embedded applications, one for hobbyists and engineers involved in rapid prototyping and one for "professional" programmers. The first one is represented by hardware platforms such as the Arduino, Raspberry Pi, BeagleBone, and others. The second is dominated by non-standard and thus expensive hardware systems [...]
The MCUXpresso Integrated Development Environment (IDE)
This page is part of a series of posts by Wilfried Voss titled NXP LPC17xx ARM Cortex-M3 Microcontroller - Programming Tips & Tricks, explaining the programming of embedded systems using the ARM Cortex-M3 processor. The MCUXpresso IDE brings developers an easy-to-use Eclipse-based development environment for NXP MCUs based on ARM® Cortex®-M cores, including, among many others, the LPC [...]
FreeRTOS-Based, IBM Bluemix Ready Remote I/O Module With ARM Cortex M3 Processor
Artila Electronics, a designer and manufacturer of embedded device networking and computing, releases the FreeRTOS based, IBM Bluemix ready remote I/O module, RIO-2010BM, which is powered by a 32-bit NXP LPC1768 100MHz ARM Cortex M3 processor and equipped with 64KB SRAM 512KB Flash. The ARM cortex M3 plus the FreeRTOS make RIO-2010BM a computing platform for [...]
Interrupt-Controlled Timer Function For The Arduino Due
The Arduino Due is a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU. 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, [...]