LPC4370: Filling the Gap between Bare Metal and Cortex A

Posted by:  |  Sunday, October 20, 2013

Go Back

The dual-core 204MHz LPC435x MCUs have been around for a little while now, and they fill a nice gap between entry-level bare metal Cortex M MCUs and high end Cortex A chips running embedded Linux, Android or complex RTOSes.  We've been using the LPC4300 family (mainly the LPC4357) for a while, and while the learning curve is steeper than entry level chips, it's been a great choice when we need more advanced peripherals or just pushing a lot of data around.

Specifically, they LPC43xx family can do a lot of the heavy lifting you might associate with Cortex A chips, and offer all of the connectivity and peripheral options people expect today (LCD controller, SDRAM, etc.) without the same steep learning curve.

The LPC43xx is also a natural choice for DSP and signal acquisition solution when you have hard real time constraints.  Single precision floating point acceleration and DSP-style SIMD instructions (single instruction, multiple data) enable more data processing with less clock cycles, and the ability to produce highly optimized code.

The family also come with a large block of fast, on-chip SRAM (264kB for the LPC4350 and 136kB for the LPC4357), and the ability to manipulate and get data off the chip quickly thanks to the high speed on-chip USB PHY (480Mbps compared to 12Mbps on other Cortex M MCUs).

Major Changes in the LPC4370

So where does the new LPC4370 fit into this already strong MCU family?  It build on the foundation laid by LPC4350 with two main new features:

- An 80Msps 12-bit 6-channel (multiplexed) ADC
- An additional 204MHz Cortex M0 core (for three 204MHz cores total)

The extra 204MHz Cortex M0 core provides extra processing power and allows you to offload certain processing tasks to their own core, giving you a bit more head room to do the heavy lifting on the main Cortex M4 code.

The biggest change, though, is obviously the unique 80Msps integrated ADC, making an extremely compelling solution for serious data acquisition needs!

With the new LPC4370, we have a highly efficient, low cost data pipeline in a single chip:

1. We can pipe a large amount of analog data into the LPC4370 via the new 80Msps ADC
2. The SIMD instructions and HW floating point acceleration on the ARM Cortex M4 allow us to do some basic DSP filtering on chip to reduce data output to something precise and reliable (IIR and FIR filtering are easily done on chip, for example)
3. The high speed USB PHY then allows us to push data out as fast as we can pull it in, where further processing or visualization can take place on the PC

Having the two complimentary ARM Cortex M0 cores allows us to offload non-critical tasks from the M4, such as running an RTOS, handling basic I/O or system monitoring, and dedicate the high performance M4 core exclusively to data processing and doing the heavy lifting for the signal processing.

The advantage of the new LPC4370 isn't just single-chip convenience and speed, though.  

12-bit 80Msps ADCs generally start in the $20 (15 EUR) range, and come in reasonably large packages (QFP48, etc.). Combining the high speed ADC and the MCU in one chip not only saves board space and layout headaches, but can drive the total BOM cost down considerably!

Having the ADC on the die also simplifies some of the layout requirements, and you only need to focus on the front-end signal conditioning, which can often be handled with a single op-amp and a few discrete components with a reasonably short, manageable path to the ADC pads.

LPC4370 In Action: Lab Tool

Given the peripheral blocks available on the LPC4370, it shouldn't come as a surprise that the first board making use of the LPC4370 is a signal acquisition tool: NXP's new Lab Tool (from Embedded Artists).

Lab Tool is an open source, low-cost expansion board and SW package based on NXP's LPC-Link 2 debugger, and can be run on the PC or on a low cost Raspberry Pi. It makes use of the LPC4370 on the LPC Link 2, adding some basic signal conditioning and input/output ports to the debugger:

- The high speed ADC is used to provide a 2-channel oscilloscope at up to 80MHz (presumably 40MHz useful data, re: Nyquist)
- The 10-bit DAC provides a +/-5V analog signal generator
- The SGPIO bus is used as an 11-channel 100MHz logic analyzer (including I2C/SPI/UART decoding) or as an 11-channel 80MHz digital signal generator

Dual Channel Oscilloscope

Logic Analyzer

Function Generator

Thanks to the LPC4370's processing power and integrated peripherals, Lab tool is able to offer a single chip and highly portable solution that can replace with many entry level bench-top tools, while maintaining an extremely competitive total BOM cost, in a package that you can easily stick in your pocket and bring with you almost anywhere on the road.

Further Information

For further information on the LPC4370, consult the LPC4370 product page at nxp.com, where the datasheet and user manual can be downloaded, and we'll try to post some concrete thoughts ourselves as we spend some time with this new chip as well!

  • Facebook
  • DZone It!
  • Digg It!
  • StumbleUpon
  • Technorati
  • Del.icio.us
  • NewsVine
  • Reddit
  • Blinklist
  • Furl it!