You are viewing an older revision! See the latest version

m0 release

http://mbed.org/media/uploads/dan/m0-more3.png

The new mbed Microcontroller is almost ready for launch!

The new mbed NXP LPC11U24 Microcontroller is designed for prototyping USB devices, battery powered applications, and 32-bit ARM Cortex-M0 designs and we asked a few members of the mbed community to test the hardware and libraries to make sure the new mbed is ready for final release.

Beta Tester Projects

Here are some of the projects that the beta testers have been working on –

Fast logic analyser using Cortex-m0 mbed – Romily Cockling

Prototyping a logic analyser using the USB HID class

Flight Simulator Instrument - Michiel B.

The creation an airplane instrument for a flight simulator making use of the USBSerial class.

Joystick as USB Mouse - Adam Green

An mbed-M0 and thumb joystick emulating a PC mouse using the USBMouse library

Example: USB Device Interfaces

This is going to be great for building USB devices. In the following video you can see how to emulate a USB mouse.

You can programatically send movement, button clicks and states, and even scroll the scroll wheel, and of course do this dependant on any sensors or logic you like. A really neat feature is the absolute version of the mouse, meaning you can move to a location on the screen; great for direct interaction with program interfaces.

Another example is USB Keyboard:

In this example, we're sending media keys to control the PC media player, but you could of course type strings or send interesting keycode combinations and sequences. A raw USBHID interface is also available to allow driverless custom interfaces to your favourite USB-capable programming language on the PC. We also have some other interfaces on the way, including USB MIDI (Musical Instrument Digital Interface) and USB Virtual Serial.

Example: Use in Battery Applications

This board should be good for prototyping battery applications. Here is an example of it being sent to sleep, woken up by a button to increment and update a screen, then going back to sleep:

It is running from a couple of AA's, and takes a couple of mA when not doing anything. The code is using some new sleep() and deepsleep() functions of the mbed C/C++ SDK. The code for this example uses deepsleep(), and looks like:

Simple deepsleep and interrupt wakeup example

#include "mbed.h"
#include "TextLCD.h"

TextLCD lcd(p21, p23, p24, p25, p26, p27);
InterruptIn wakeup(p14);

int i = 0;

void count() {
    lcd.locate (0,1);
    lcd.printf("%d",i);
    i++;
    wait(0.5);
}

int main () {
    wakeup.rise(NULL);  // Setup rising edge interrupt (no handler function needed)

    lcd.printf("Hello World!");

    while (1) {
        deepsleep();  // Deep sleep until external interrupt
        count();      // We've come out of sleep due to interrupt, so count!
    }
}

For both sleep() and deepsleep(), all state is retained so you can see it is a nice simple programming model. Should be great for quickly prototyping some things that need to run off batteries.

Specifications

This board is based around the upcoming NXP LPC11U24 which has 32 KB of Flash memory, 8 KB of SRAM data memory and runs at 48 MHz. The peripherals include a Full Speed USB 2.0 device controller, Fast-mode Plus I2C-bus, UART, SPI and ADC interfaces.

Here is the pinout card:

/media/uploads/simon/m0-pinout.png

It is packaged in the same 40-pin DIP, 0.1-inch pitch form-factor as the mbed NXP LPC1768, making it convenient for prototyping with solderless breadboard, stripboard, and through-hole PCBs and compatible with existing designs and baseboards.

Should be a great way for prototyping USB, battery powered and other cheap devices using 32-bit!

Tools

The board is supported with all the mbed tools, so the online compiler and the C/C++ SDK will just work. In fact, all the programs and libraries already written that work within the resources of the new LPC11U24 can be used just by compiling for the new target; exactly the same code!

Information for Beta testers!

If you are a beta tester the Cortex-M0 mbed, take a look at the following instructions for how to access the beta tools and libraries:

I want one!

Great! We've setup an email list so you'll be the first to hear:

Sign up if you want to get updates as and when they progress through to release later this year!

If you want to find out more about mbed, take a look at:


All wikipages