Processors for Raspberry Pi and Arduino CoMs
BY JIM HARRISON
Two popular low-cost computer-on-modules (CoM) are the Raspberry Pi and the Arduino.
Raspberry Pi reportedly sold out the 11,000 unit first production run in one day. So what’s the big deal? Price of $25 or $35 is the big deal. With HDMI and Ethernet 10/100 and USB connections, the credit card sized board is really cool. But, I never would have guessed at the popularity. element14, the leading distributor of Raspberry Pi, recently announced that it has now manufactured more than 500,000 of the boards since the launch in February 2012. Where are all these Pis? What are they doing?
I suspect quite a few are in a dark desk drawer someplace. But many, I’m certain, are also useful contributors to society. If you have done a Raspberry Pi design and can share something about it with us — please do so at www.eebeat.com. Search for R-Pi and add a comment.
The processor for the R-Pi is the Broadcom BCM2835. The BCM2835 is a full HD, multimedia applications processor for advanced mobile and embedded applications. Optimized for power efficiency, the processor features:
• Low-power ARM1176JZ-F applications processor
• Dual-core VideoCore IV multimedia coprocessor
• OpenGL-ES 1.1/2.01; Gpixel/s fill rate
• 1080p30 Full HD HP H.264 video encode/decode
• Advanced image sensor pipeline or up to 20-Mpixel cameras operating at up to 220 Mpixels/s
• Simultaneous display outputs for high-resolution LCD and HDMI with HDCP at 1080p60
The processor has the following peripherals, which may safely be accessed by its ARM core:
• Timers
• Interrupt controller
• GPIO; USB; PCM / I2 S
• DMA controller
• I2 C master; SPI
• PWM
• UART0, UART1
The Raspberry Pi CPU is clocked at 700 MHz and may have up to 512 Mbytes of RAM (model B). For R-Pi, running on 5 V, I’ve seen supply measurements of 320 mA in idle without a network, 370 mA with Ethernet. Model B users should have at least a 700 ma supply because of the USB ports potential power output. 1080p video playback can push current 750 mA, I’m told.
Fig 1: The Raspberry Pi BCM2835 can run at up to 700 MHz and has a multimedia coprocessor.
You can choose from a number of free Linux OS distributions, which you load via the SD card. Raspbian is one choice, and it comes with a GUI, the Python object-oriented programming language (www.python.org), and IDLE 3, a Python integrated development environment. IDLE 3 seems to be mostly a text editor. But, it is a starting point. The web site www.raspberrypi.org/downloads has many links to SD card images for various operating system distributions. It is recommended you use a 4 Gbye SD card or larger, but most packages are about 500 Mbytes.
You may see a hard float distribution. This uses hard code for floating-point of the ARM-11 based CPU. A soft float is a lot slower and a lot smaller, more reliable, and more fixable.
Meanwhile, the Arduino open-source electronics prototyping platform uses different processors, some of which are shown in the table below. It has considerably less processing power than an R-Pi, But when power consumption is of paramount importance the Arduino has the edge with microwatt consumption when in sleep mode.
Fig 2: The Arduino Due uses a 32-bit Atmel SAM3 processor.
The Arduino microcontroller is programmed using the Arduino programming language (based on Wiring, http://wiring.org.co) and a development environment – which is basically a text editor and a compiler. There are a lot of different Arduino boards available (see http://arduino.cc/en/Main/Products). An Arduino microcontroller is preprogrammed with a boot loader.
Parameter | Type | Uno | Mega | Due |
Digital I/O: | 14 | 54 | 54 |
I/O that can PWM: | 6 | 15 | 12 |
Operating Voltage | 5V | 5V | 3.3V |
Analog Inputs (ADC): | 6x 10-bit | 16x 10-bit | 12x 12-bit |
Analog Outputs (DAC) | 2x 12-bit 1MSPS | ||
Processor: | Atmega 328 | ATmega2560 | SAM3X8E |
Processor Architecture: | 8-bit RISC at16MHz | 8-bit RISC at 16MHz | 32-bit ARM at 84MHz |
Flash Memory (for firmware) | 32kB | 256kB | 512kB |
RAM: | 2kB | 8kB | 96kB |
DMA: | Yes, for up to 17 peripherals | ||
USB Host | USB OTG | ||
Timers | 2x 8-bit, 1x 16-bit | 2x 8-bit, 4x 16-bit | 9x 32-bit |
Power in lowest state (uC chip only) | 0.1uA | 0.1uA | 2.5uA |
Ethernet MAC (EMAC) | One 10/100 | ||
Price | $24.52 | $47.22 | $49.99 |
■
Table 1: A table from the element14 web site shows three of many Arduino boards
Unlike other Arduino boards, the Arduino Due board runs at 3.3V. The maximum voltage that the I/O pins can tolerate is 3.3 V. Providing higher voltages, such as 5 V, to an I/O pin will damage the board. ■
Learn more about Electronic Products Magazine