ARM Board
The goal is to have a small, cheap, and powerful development board that supports USB for easy programming, at low parts costs (current estimate < $5). This allows us to use the board for all silly purposes where spending >$20 for an Arduino is just too much. The board is like the Teensy, just with an ARM microcontroller instead.
Contents
Quick links
- Project sources
- NUC homepage
- Reference Manual
- ARMv6 Architecture Manual (requires registration)
Detailed Description
The board uses a Nuvoton NUC120 48-pin microcontroller which has an ARM Cortex-M0 CPU 32-bit CPU core.
Features:
- up to 50MHz
- 32KKB-128KKB program flash, 4KKB-16KKB RAM, 4KKB data flash, 4KKB boot loader flash
- 2 UART, 1 SPI, 2 I2C, USB, 1 analog comparator, 4 PWM, 8 12-bit ADC channels
The board contains:
- USB A connector on board outline
- optional Mini-USB receptacle
- USB header connector for direct wire connections (e.g. inside PC)
- optional voltage regulator for external voltage (up to 13V)
- optional LiPo battery charger IC for battery operation
- LiPo charger can be driven from a solar panel
- SWD debug/programming header
- reset button
- 1 LED for binary debug/information display
Project roadmap
Hardware design
In beta state. Version 1 boards have been fabbed and need to be tested and assembled
Errata/changes required for next version:
- probably a problem with 3.3V circuit operation and battery: PMOS gate only gets pulled up to 3.3V, but likely needs the full battery voltage. Replacing PMOS with SOT-323 footprint might help routing.
Toolchain
Proprietary windows software is available, but we'd like to have complete support with free software tools.
What works
- gcc/binutils/gdb support ARM Cortex-M0
In progress
Bus Blaster can speak SWD with KT firmware; use UrJTAG git as root to flash (interface=1). TODO: test SWD connection to target.
What needs work
- Programming/Debugging: OpenOCD supposedly supports SWD. Needs to be confirmed what works.
- Need bootloader and programming software. Proprietary from Nuvoton available
- Tool library?
Programming envionment
- Maple IDE by LeafLabs is a port of the Arduino IDE for ARM
- LeafLabs command-line toolchain might apply in parts, or at least inspire
- summon arm toolchain builds an ARM toolchain
Umbrellas
Eric says: Expansion boards will be called umbrellas.
possible umbrellas:
- sdcard umbrella
- rf umbrella (6LoWPAN/802.15.4?)
- stepper motor umbrella
- lcd umbrella
- microphone umbrella
- speaker umbrella (with small amp)
- power umbrella (bigger voltage regulator)
Example projects
- OTP generator (yubikey-like)
- Your idea here