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!

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!


All wikipages