NXP and NGX Technologies in conjunction with EE Times has just posted an archived Webinar that very effectively walks you through the many benefits of using a 32-bit processor over an older 8-bit architecture in even moderately complex applications. The subject here is the NXP LPC11U00 microcontroller series but the lessons learned, and there are many, are laid out in surprising detail by Ashwin Athani, Director and Co-founder of NGX Technologies, a design house that’s using the NXP LPC11U00. This is a 1-hour Webinar and well worth your time for the system-level design tradeoff discussion, but I am going to summarize some of the lessons here for you so you don’t absolutely need to listen to the hour-long discussion.
The Webinar starts with a long discussion of the NXP LPC11Uxx family of microcontrollers based on the ARM Cortex-M0 processor core. Here’s a block diagram:
This is a pretty typical diagram of a microcontroller with a processor core—in this case an ARM Cortex-M0 that runs at clock rates to 50MHz—some Flash for code and data; SRAM; an assortment of peripherals; and some I/O ports including two SSP ports (synchronous serial ports that support SPI, SSI, and Microwire protocols), an I2C port, a USB port, and a USART/SmartCard port.
One very important and easily-missed block in the above diagram is the ROM. In the case of the NXP LPC11Uxx microcontroller family, this ROM contains USB device drivers for HID (Human Interface Device), MSC (Mass Storage device class), and CDC (Communications Device Class). There’s also support for custom classes in the ROM. The reason that the inclusion of these drivers in ROM is important is because the design team will not need to use precious Flash space for such drivers, which may mean the difference between using an NXP device with a 16Kbyte Flash memory and one with a 32Kbyte Flash memory. The difference, of course, is cost.
Oh, I should mention the cost of this device. An NXP LPC 11U00 costs $0.99 USD in 10K quantities. This is important in the analysis to come, so keep it in mind.
At this point, we’ve reached the first lesson I want to make sure you take away from this Webinar. There’s tremendous value in the ROM code in this device, irrespective of the silicon. Developing drivers like the USB drivers in this microcontroller takes time and money—factors you must account for in any computation of the engineering economics of a design.
At this point, Amit Bhojraj who is a Product Marketing Manager at NXP handed the Webinar over to Athani to discuss an engineering design project his company, NGX Technologies, had worked on. The goal of the project was to develop a low-cost controller for a client’s family of ticket printers. The original design of this printer family was done in an era before the PC world switched from RS-232-C serial ports to USB. Thus the existing ticket-printer design had been based on a simple serial protocol where the commands and data arrived from the PC and entered a UART. The serial character stream controlled the printer and delivered the data.
You may have noticed that PCs no longer have serial ports. USB ports have taken over and peripherals designed for the simpler era must adapt or be completely redesigned. One way to adapt these devices is to use an external USB-to-Serial converter box. A better way is to redesign the device to accept a USB cable and that is what NGX Technologies’ client had done. For simplicity, the company had added an FTDI chip, essentially a USB-to-UART converter, to its existing design based on an 8051 microcontroller.
However, the company was unhappy with this design for a couple of reasons. First, the more capable printers in the family actually required the addition of another 8051 microcontroller because there just wasn’t enough performance in one 8-bit microcontroller to handle the USB communications and manage the printer. That led to the second problem: there was a long response time for some operations even with the addition of a second microcontroller. So NGX Technologies was commissioned to look at these issues and propose a new design that solved the operational problems, lowered the power consumption on these battery-operated printers, and lower the overall manufacturing cost.
Here’s the second lesson I want to make sure you take away from this Webinar: improving performance, lowering power consumption, and cutting manufacturing costs at the system level are all possible with the right application of available technologies. This Webinar clearly demonstrates this fact.
It should not surprise you that NGX Technologies proposed replacing the 8051 microcontrollers with the NXP LPC11U24 microcontroller from the LPC11Uxx family. Doing so eliminated two major components from the BOM (bill of materials) and from the BOM cost. The eliminated components were the FTDI interface chip, its external crystal, the external EEPROM, and a few discrete passive components required to interface and bypass these two devices. Both functions are included in the NXP microcontroller, which actually costs less than the FTDI chip itself and doesn’t include the 8051 microcontroller and external EEPROM that the NXP microcontroller also replaced. The component reduction also allowed NGX Technologies to reduce the size of the printed circuit board by nearly a third, resulting in even more cost reduction.
The switch from an 8-bit 8051 microcontroller to a 32-bit ARM Cortex-M0 processor core increased the available performance by 10x on a per-clock basis and made it much easier to use C for the ported code instead of assembly. That of course makes the code far more portable, which is essential for future-proofing a design.
The Webinar ends with Athani’s description of the software porting effort and that too is well worth viewing whether or not you are going to use NXP’s microcontrollers.
It is rare to get the opportunity to see this sort of reality-based, system-level economic analysis of competing design alternatives and I commend this Webinar to you wholeheartedly.
Here’s a link to the archived Webinar: Enabling USB-to-serial applications with NXP LPC11U00 microcontroller series