The busy time of Electronica and ARM Technology Symposia is now behind us, and I finally get the opportunity to have a deeper look the latest release of NXP: their mini-tiny-LPC800. NXP being one of our lead-partners on the ARM Cortex-M0+, and also previously on the Cortex-M0, I was really excited to see what they came up with and how they took advantage of our latest Cortex-M processor. First of all, I must admit I wasn't expecting them to set this family on the very lowend, even below their Cortex-M0 LPC1100 series. When we designed the Cortex-M0+ we aimed at offering at least as much the Cortex-M0 does, while adding capabilities to support low-power design even better and to address a wider scope of applications. I was anticipating an upgrade of the Cortex-M0 product line with even more features, memories and pins, with LP1100 and LPC1200 already on the market and the LPC1300 based on Cortex-M3. What could it become? Hmm... wait a moment... that brings to mind some similar brainstorming on a processor name... An LPC1200+? Lucky me, I didn't bet as I would have lost!Even if the name, the price point, the ease-of-use and the package smells very much like an 8-bit, NXP avoided any compromise on the processor. All Cortex-M's are very flexible, and partners can fine tune their implementation by including or discarding options at Verilog level, so they could have opted for the minimal implementation. With LPC800, it's the opposite and you get an almost full blown Cortex-M0+:
So as you can see there is much more to the "ARM Cortex-M0+ 30MHz", shown on the chip diagram:
Which Cortex-M0+ options were left down the road? The Memory Protection Unit, which for such lower end application makes sense to keep out. The small memory footprint limits the use-case of multi-application schemes running on this class of device, while the MPU is one of the biggest options in terms of gate count. NXP did not use the ARM WIC since it requires clocks to wake up the part. Instead, they implemented a clockless version. They used this idea with their new peripherals to offer wake up from them without any internal clocks. As an example, as an I2C slave the LPC800 can wake up when its slave address is matched. This means the part can be in power down mode consuming just leakage current and only wake up when there it sees its address. In addition, wake up from power down can come from pins, timers, and brownouts, offering many different ways to save power.
In all cases it's a smart and fully loaded microcontroller that will get his way in many designs, and it even comes in a DIP 8-pin package! So as wrote my colleague Joseph one year ago for the LPC1100L launch: Hey Hobbyists, dust off your breadboards - DIP package is back!