Site Information

 Loading... Please wait...

A Brief Introduction to the ARM Cortex M3 Processor

Posted by Wilfried Voss on

This post is part of a series on CAN Bus and SAE J1939 Prototyping with the ARM Cortex M3 processor

ARM Cortex-M3 processor

The ARM Cortex-M is a group of 32-bit RISC ARM processor cores licensed by ARM Holdings. The cores are intended for microcontroller use, and consist of the Cortex-M0, M0+, M1, M3, M4, and M7.

The  ARM Cortex-M3 processor is very well suited for highly deterministic real-time applications, even for low-cost platforms, such as automotive body systems, industrial control systems, wireless networking and sensors, and many more.

Cortex-M3 microcontrollers are available from a number of semiconductor manufacturers such as Texas Instruments, Infineon, Atmel, NXP (formerly Philips), Analog Devices, Toshiba, STMicroelectronics, and more.

Key features of the Cortex-M3 core are:

  • ARMv7-M architecture
  • 3-stage pipeline with branch speculation.
  • Instruction sets:
  • Thumb (entire).
  • Thumb-2 (entire).
  • 32-bit hardware multiply with 32-bit or 64-bit result, signed or unsigned, add or subtract after the multiply.
  • 32-bit hardware divide (2-12 cycles).
  • Saturated math support.
  • DSP extension: Single cycle 16/32-bit MAC, single cycle dual 16-bit MAC, 8/16-bit SIMD arithmetic.
  • 1 to 240 interrupts, plus NMI.
  • 12 cycle interrupt latency.
  • Integrated sleep modes.

Since the Cortex-M3 has been licensed to such a variety of manufacturers, their individual processor products vary slightly in regards to processor speed, memory size, available interfaces, etc.

In the following, I will refer to two hardware systems using:

  • Atmel SAM3X8E ARM Cortex-M3 CPU
  • NXP LPC1768 with a 32-bit ARM Cortex-M3 core

Besides its great speed and more than sufficient amount of FLASH and RAM, the ARM Cortex-M3 is the perfect choice for a myriad of embedded applications due to its support of a great number of peripheral interfaces. They built-in features include:

  • Ethernet
  • USB Host and Device
  • Controller Area Network (CAN)
  • SPI
  • I2C
  • ADC
  • DAC
  • PWM
  • Digital I/O

The availability of Controller Area Network (CAN) interfaces in combination with other interface technologies explains the vast popularity of the Cortex-M3 processor in the CAN and J1939 industry. The processor provides the means to easily and quickly create applications like CAN/J1939 gateways, CAN Bridges, J1939 ECUs, J1939 Data Logger, and many more.

Last, but not least, for more information on the topic see:  CAN Bus and SAE J1939 Prototyping with the ARM Cortex M3 processor.

A Comprehensible Guide to Controller Area Network by Wilfried VossA Comprehensible Guide to Controller Area Network by Wilfried Voss represents the most thoroughly researched and most complete work on CAN available in the marketplace.

Controller Area Network (CAN) is a serial network technology that was originally designed for the automotive industry, especially for European cars, but has also become a popular bus in industrial automation as well as other applications. 

The CAN bus is primarily used in embedded systems, and as its name implies, is a network technology that provides fast communication among microcontrollers up to real-time requirements, eliminating the need for the much more expensive and complex technology of a Dual-Ported RAM.

This book provides complete information on all CAN features and aspects combined with a high level of readability.