The Xduino - An ARM processor running on High Octane Steroids.
I now have three microcontrollers in my arsenal. All three are Arduino compatible.
I used the standard Arduino 168P/328P for quick, simple, non network solutions.
Next comes Rugged Circuit's 20 Mhz Gator/Gator+ for fast serial networking applications.
Last comes the 72 Mhz Xduino, which runs on an ARM processor and has Arduino software compatible
commands/functions, and can be used for any application imaginable. See peripherals below.
Over the last several years, the Arduino community and "AVR Freaks" were shaking
in their boots if Microchip (The manufacturer of the PIC Micro) ever succeeded with their bid to
buy Atmel which produces the AVR microcontrollers used on the Arduino and the Gator. Fortunately,
their bid was repelled by Atmel and everything seemed to go back to normal. Since then, Phillips
(NXP) STMicrosystems and other ARM producers started to produce what is to be the "next
generation" group of microcontrollers. Apple uses many of them in the Ipods. Now by having an
alternative Arduino source, other than Atmel, to run the Arduino sketches - it should be a great
relief to the many users in the Arduino community! (I just had a terrible thought, Microchip
could have "pulled the plug" on the AVR Arduino and the forum would have to change the Arduino
name to PIC-Arduino!)
I researched four ARM competitors and made my choice on the Xduino. MBed has a Internet on line
compiler which you can download into their $60 ARM stamp which goes up to $100 after the trial
offer expires.[Too expensive and you can only use their online compiler and is not Arduino
compatible] The Cortino is hardware compatible, but is lacking a low cost tool chain for compiling
Arduino functions commands. Leaf Labs (MIT students) has their Maple board and software which is
"open source" and Arduino compatible but I have yet to see the software and hardware in action.
Last is the Xduino, which is a stamp like ARM STM32 processor from Thailand.
I like to mention, to anyone trying to migrate up to the ARM microcontroller that it is NOT
for novices, even though it does run an Arduino syntax. There is a great technical learning curve
involved in using ARM processors, (there are many ARM variations) but if you are very versed in
reading a lot of technical information on the ARM then you will succeed! You don't have to
re-invent the wheel because STM did all the grunt work in providing "C" firmware software routines
which could be converted for any of the peripherals devices below. I did not say it would be easy
but you have to realize that by converting the C routines to the Xduino that you do not disturb
the Xduino compatible software routines. You could, free wheel it, and not even use the Xduino
functions/commands. The flexible IDE compiler options allows you to do this.
The Xduino is fairly new and they just came out with their IDE / tool chain. You do have to expect
some bumps in the road but most of the Xduino's Arduino compatible functions/commands, I tested,
worked flawlessly. The IDE needs tweaking some more, but keep in mind, the Arduino's IDE is now up
to revision 17 after a few years on the market.
One application, using the Xduino, which I had my eyes on, is a high security data logger.
Imagine using a 32 bit ARM RISC Cortex M3 processor running at 90 million instructions per
second then, with a flip of a software switch, shuts down the processor's clock, the Xduino goes
from 36 ma. power consumption to 4 microamps (4 ua.) in the low power saving standby mode.
The built-in RTC is backed up by a 3 vdc lithium coin cell along with 41 RAM/Registers.
When the Xduino, receives a rising signal on the wake up pin (other sources are RTC & Reset)
then it awakes, reads the RTC, stores the data on the SD card then goes back to sleep.
Having a 32 Bit ARM 90 MIPS processor, running on batteries, is truly an amazing feat!
Please note: I had to do a slight hardware modification to the Xduino to get the power down
to 4 ua. in the standby mode. The Xduino and other commercial ARM boards are not made for low
power, off the shelf, applications.
Just some of the new features on the Xduino which are typical of the STM ARM high density product
line (LQF64 pin part# STM32F103xE) are:
#1. 5 serial ports which include LIN, IrDA capability, modem control.
#2. 72 MHZ clock operation 1.2 DMIPS/MHz (Drystone 2.1) or 90 MIPS - (million instructions per
#3. 32 bit M3 Cortex M3 Core RISC ARM processor
#4. Built-in Real Time Clock/counter - The calendar portion is done in software.
#5. Low power stop/sleep/standby modes achieved by shutting the external/internal clock down -
great for battery operation.
#6. SDIO - SD card interface. (3.3 VDC interface with no logic conversion)
#7. 512 K bytes of flash
#8. 64 K bytes of RAM.
#9. 41 registers that are backup with the same battery used for the RTC. Used as non volatile
#10. 12 bit A/D channels (4096 steps) Up to 16 channels.
#11. 48 general purpose input/outs pins (GPIO) which can be used for alternate functions like
A/D, DAC, Serial, SPI, I2C, CAN, SDIO.
#12. 3 SPI ports - up to 18 Mbits/s in slave and master modes.
#13. 2 I2S - inter-integrated sound
#14. 1 CAN - controller area network
#15. 3.3 VDC logic (5 VDC tolerant) which means you can connect directly to 3.3 VDC devices like
SD/MMC devices and XBEE wireless modules without any logic conversion ICs.
#16. 2 Analog output channels - 12 Bit DACs.
#17. On board chip temperature sensor
#18. 12 channel DMA controller - Direct memory access controller which frees the
processor of processing mundane tasks of i/o streams of data.
#19. CRC calculation unit - Cyclic redundancy check calculation hardware unit.
#20. USB 2.0 full speed interface capability.
#21. 2 watchdogs
#22. 2 I2c channels - standard and fast modes
#23. LCD parallel interface
#24. Nested vector interrupt controller (NVIC)
#25. External interrupt/event controller (EXTI)
#26. Power supply supervisor
#27. Voltage regulator - for power saving modes
#28. Flexible internal clocks - for power saving modes of sleep/stop/standby
#29. 8 general purpose timers. Note: Xduino operation systems uses several timers up.
#30. Security features - anti-tamper pin input that erases the battery protected registers on any
disturbance on this GPIO pin.
#31. Encoder interface - for motor control
#32. Hall Senor Interface - for motor control
#33. Clock security system - on clock failure the clock source is switched to another clock.
#34. Software controlled GPIO setup - pull-up, pull-down, floating, push-pull and open drain can
be applied to the general purpose inputs and outputs by software control.
#35. I/O pin locking - to prevent the I/O from changing under program control - used for safety.
#36. 50 Mhz max. GPIO speed.
"I know what you are thinking - WOW! - how did they put that many peripherals on one chip?"
Be sure to read the following articles on the Xduino ARM STM32:
Circuit Cellar Silicon Update by Tom Cantrell "More Than a Core" (PDF)
See the photos below:
Xduino ARM Module
Development Board For Xduino prototyping
Let The Power Of The ARM Be With You!