You are viewing an older revision! See the latest version

m0 release

/media/uploads/simon/m0-join-mailinglist.png

A new mbed Microcontroller based on an NXP Cortex-M0 is coming!

It is entering public beta testing now, so this page covers its progress to final release!

Specifications

The new mbed Microcontroller is designed for prototyping USB devices, battery powered applications, and 32-bit ARM Cortex-M0 designs.

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:

/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!

If you haven't seen what mbed is about, take a look at:

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.

Example: USB Device Interfaces

Coming soon...

Beta batch arrives

Inside these rather anonymous brown boxes are 100 beta versions of our new Cortex-M0 mbed Microcontroller, hot off the production line!

/media/uploads/simon/m0-batch.jpg

That means we're about ready to start beta trials! More details coming soon...

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!

Beta trials


All wikipages