Chris, thanks again for the update.
Basically, here's my pitch:
1. Step one is to prototype like crazy with mbed. In my case an app that uses many pins, and no built-in USB
2. Once the prototype is ready... Deploy a custom PCB with the LPC11U24 chip and a *ridiculously low part count* since the 12mhz crystal and two 18pF caps could be omitted (in small quantities this saves nearly 50%)! I got a basic running app with only 2 bypass caps on the LQFP48 using the built in oscillator thanks to this helpful post which got me started :
blinky example from NXP code bundle for LPC11Uxx.
No mbed library used
The above blinky code does not use mbed libraries at all therefore I was able to configure the app to use the internal oscillator... BUT... for a real-world app, it means we'd have to start allllll over again since none of the basic mbed library functions would be at our disposal (a bad thing)!
Of course, if the mbed source code was open then it would be very easy to make our tweak... but I'm not sure your plans are with that, so in the meantime I'd like to suggest a cool way the LPC11U24 could be configured to use the internal oscillator without "hurting" anyone. It would require a small update to the online compiler, and perhaps the creation of a very basic page in the Handbook called "advanced compiler options":
Imagine a flag such as this at the top of the main code file in the online compiler:
// tell compiler to configure LPC11U24 for IRC clock source
#define MBED_COMPILER_FLAG_LPC11U24_USE_INTERNAL_OSCILLATOR 1
// and the business as usual
#include "mbed.h"
This [presently fictitious] flag could signal to the mbed compiler to configure the clock for the internal oscillator. Such an option could even perhaps pave the way for future configurations enhancements that cannot be set in user code (I actually can't think of any right now but I seem to remember some stuff from the forums).
You could even have a built-in NOTICE in the compiler messages when the flag is spotted: "LPC11U24 clock configured for IRC (internal RC oscillator)! Proceed at your own risk!"
The LPC11U24 is a great low-cost chip with plenty of processing power for tons of embedded applications... The only downside of using the internal oscillator means no high-speed USB (including built-in USB bootloader as per the manual, which means traditional UART ISP applies). But for embedded applications, you could be some ridiculously awesome stuff with basically 1 chip and 2 bypass caps.
A picture is worth 1000 words:
PS ok I'll spill the beans: Imagine driving 4 low-cost 8x8x3 RGB matrices (that's 768 individual leds) with full PWM colour, realtime communication, and awesome frame-rate... with only 1 LPC11U24, two bypass caps, a few source and sink drivers, and clever matrix programming.
Hey mbed people!
I am developing a PCB with the LPC11U24. According to the LPC11U24 datasheet, if high-speed USB connectivity is not needed, one can configure the chip to use the 12 MHz (+/- 0.12 MHz) Internal high-frequency RC oscillator (IRC) as a system clock, thereby eliminating the need for an external crystal on the PCB! This is very interesting, because it means with very few parts (and potentially using just the online compiler) some really cool stuff can be built!
So here’s the BIG question to the mbed people: Does the mbed online compiler support configuring the LPC11U24 to simply use the IRC as a system clock instead of the external crystal? If not, would it be possible to add some sort of compiler flag to signal the online compiler to do so?
From a hardware point of view, it appears it is simply a matter of grounding XTALIN and leaving XTALOUT floating.
Finally, perhaps it works right out of the box, but it isn’t clear to me if the LPC11U24 hardware automatically falls-back to the IRC if the external crystal if it not connected.
Many Many thanks to any insight that can be provided!
PS I am aware that I would have to load the firmware onto the chip using a tool such as flashmagic over UART since USB bootloading is not possible without an external crystal