MENU

Optimize Embedded Designs with a Highly Flexible 32bit USB Microcontroller Architecture

Optimize Embedded Designs with a Highly Flexible 32bit USB Microcontroller Architecture

Feature articles |
By eeNews Europe



The key to success in today’s embedded market is the ability to respond quickly to fluctuations in market demand, last-minute design changes and competitive challenges. Microcontrollers (MCUs) have provided versatile, configurable platforms for embedded systems for many years in this respect, giving developers the flexibility to implement new system features easily and efficiently through firmware updates and I/O changes.

With conventional MCUs, even minor I/O changes can cause headaches for engineers performing printed circuit board (PCB) design, especially in cost- and space-constrained systems commonly encountered in MCU applications. For example, the connectors in a system may all be on one side of the enclosure, but some of the I/Os may need to be routed to the opposite side of the MCU by passing underneath it because the MCU supplier has defined the pinout such that the I/O connections for the revised system cannot all sit on one side of the IC. The rearrangement of pins used for a given combination of I/O functions may force the PCB layout engineer to use more board layers, thus increasing overall system cost.

An additional design challenge concerns the MCU package itself. To reduce cost, some MCU suppliers may offer versions of a device that share functions between pins and thus squeeze the IC into a smaller, cheaper package. Register configurations provide the ability to allocate those I/O pins to a selection of different peripherals, but the degree of freedom is usually limited; the configuration-control hardware may support only one or two functions per pin, limiting the number of options and creating potential pin conflicts if the MCU is used in an application that the vendor did not anticipate. The wide variety of MCU applications means this scenario occurs frequently.

The Precision32 MCU architecture defines two crossbars (one for either side of the IC) that can link any internal I/O function to a wide range of pins, as Figure 1 illustrates. In this example, which uses a TQFP-80 package, Crossbar 1 connects to pins 9 through 40, excluding only 28 and 29, which are power and ground pins. Crossbar 1 supports 14 different internal functions, including various serial ports, timers and comparators. Any of these functions can connect to any of the external pins served by the crossbar. Some of these pins can also be mapped to A/D converter inputs or 5V-tolerant outputs.

Figure1. The Precision32 MCU Dual-Crossbar Architecture

The crossbar architecture provides the designer with a number of benefits. The architecture makes it possible to arrange the pinout of the chip to simplify board design, placing a group of I/O pins as close as possible to the ICs or connectors to which they need to be linked. This approach can often reduce costs by allowing the use of a PCB with fewer routing layers as it avoids the need to route underneath the MCU or take many circuit traces through a congested area of the PCB, and it can improve signal integrity by keeping sensitive traces as short as possible or routed close to ground lines. Furthermore, pinout changes can be accomplished easily by simply reprogramming the registers that control the crossbar to accommodate last-minute board changes.

Such fine-tuned control of I/O configuration allows designers to use a more cost-effective package, choosing which functions to connect to pins and which ones to leave unconnected.

To allow easy migration from other MCUs, Silicon Labs chose the ARM Cortex-M3 as the processor core for the Precision32 family. This processor core has rapidly become a de facto standard in 32bit MCU architectures thanks to its broad adoption in the embedded market by a wide variety of MCU suppliers and software tool vendors, providing a high degree of choice for the embedded developer. It has widespread support among software companies in terms of conventional development tools, such as C and C++ compilers and real-time operating systems. Standardization on ARM cores has now made it is easier than ever to port code from one 32bit MCU to another. As a result, the deciding factor in MCU selection is the shift from the CPU core architecture to the peripheral set and the innovative ways in which MCU vendors address system-design issues.

A flexible crossbar is easier to understand than many of the ad hoc I/O remapping schemes used by other MCU vendors. To further improve ease of use, Silicon Labs provides a software tool that simplifies device configuration. AppBuilder offers a graphical interface that allows designers to drag and drop functions to pins. Once the configuration is complete, the tool generates the boot code required to load this configuration into the MCU. This tool works with commercial IDEs, including Keil and IAR as well as the popular Eclipse development environment, which Silicon Labs has adopted and modified to support Precision32 products.

AppBuilder goes further, enabling developers to quickly and graphically choose a peripheral mix, select peripheral properties, set up clocking modes and customize pin-out, all without reading the data sheet (see Figure 2). The IDE support also goes further in terms of MCU support by providing direct support for all members of the Precision32 MCU family. The Precision32 dashboard provides the latest documentation, code examples and software all in one place, removing the need to hunt down register locations and driver source code in data sheets and application notes.

Figure 2. The Precision32 AppBuilder Tool

Support for peripherals is augmented by the inclusion of Cortex Microcontroller Software Interface Standard (CMSIS) compliant code. CMSIS provides an interface for common peripherals that enables peripheral driver re-use and simple porting from other ARM-based MCUs. On top of this, Silicon Labs has implemented middleware designed to make writing code for multitasking and data transfers simple. This provides important support for complex systems that need, for example, USB support. There are many configuration options and usage models for USB. Silicon Labs has used its long-standing experience with USB to provide a rich suite of middleware functions that help ease implementation. Given the number of applications that now demand USB support, from sports watches to data loggers, engineers need to get up to speed on USB as quickly as possible, and this library makes it possible. For example, to create USB-to-UART transfers, developers simply specify properties, such as USB transfer type, data size, and synchronous or asynchronous UART operation.

The library provides a number of USB class drivers, including audio, human-interface device, mass storage and device firmware update (DFU) libraries for easy development.

In keeping with the strategy of providing a 32bit MCU family that supports the constraints on cost, time and space of today’s systems, the USB hardware itself was designed with a minimum number of external support components. Many on-chip USB controllers are not feature-complete and require components such as external clock generators. The USB controller on the Precision32 MCU family devices has its own integrated precision oscillator using a novel clock-recovery technique to achieve 0.25 percent accuracy without an external crystal. The rest of the MCU can use this oscillator or a separate one (allowing greater flexibility over clocking regimes in low-power modes) that is either fed by a low-cost 32kHz crystal or that can run in open-loop mode. This novel approach enables members of the Precision32 MCU family to operate without costly external crystals.

Similarly, the internal voltage regulator eliminates the need for an external regulator so that the device can operate directly from a 5V supply, allowing it to be powered directly from a USB or a separate unregulated source. This regulator can also drive an output rail at a programmable output voltage, enabling the MCU to provide power to additional ICs while avoiding the need for an external regulator. Alternatively, this output can act as a constant current source to drive the backlight on an LED display.

Similar care has been taken in the implementation of other analogue and digital peripherals (figure 3). The A/D converter, for example, provides 12bit resolution. In addition, all of the Precision32 analogue peripherals are tested and specified across temperature and voltage. Many alternative 32bit MCU vendors do not test their analogue peripherals in production, which can lead to field defects. If the analogue circuits do not work or are degraded below 2.4V, the MCUs become impractical for AA/AAA alkaline battery applications. The Precision32 analogue peripherals are so reliable that they can often be used to replace standalone analogue components.

Figure 3: The Precision32 application blocks

Configurability extends to the analogue peripherals, making it possible to optimize performance for many different applications using the same devices. The MCUs have two ADCs with multiple modes including interleaving mode to achieve up to 2 MSPS. To reduce I/O overhead for the processor core, the ADCs support a programmable auto scan system that cycles through ADC channels and reads the input data on each. Burst mode support makes it possible to automatically sample and average up to 64 samples.

The analogue comparators have four different modes, including a low-power mode (400nA) and a high-performance mode (150ns response time) as well as an internal 6bit DAC to provide 64 levels of comparison. The two 10bit DACs have a circular buffer to enable a 12bit mode.

In addition, ultra-low power has become a major selling point in a wide variety of embedded applications. A number of architectures provide low-power sleep modes that save energy when the processor is sleeping. The design of the Precision32 family, however, addresses power consumption in both sleep and active modes.

As shown in Figure 4, the Precision32 MCU architecture reduces power and provides a number of sleep modes that, when coupled with circuit topologies optimized for low active power consumption, provide a high degree of energy efficiency for this class of MCU. The Precision32 MCUs leverage Silicon Labs’ state-of-the-art, patented low-power design technologies and have achieved power reductions within every block of the MCU design, resulting in lower active current of 20mA at 80MHz or 0.25mA/MHz and lower sleep current of 0.35µA with the RTC enabled.


Figure 4. The Precision32 Ultra-Low Power in Sleep and Active Modes

Increasing cost and performance pressures on embedded development encourage OEMs and system designers to focus on the most widely supported processor architectures, while standardization around ARM technology is driving a new round of innovation in MCU design focused on configurability, ease-of-use and system cost. The Precision32 MCU family marks a major step in this evolution.

Shahram Tadayon is MCU Product Marketing Manager at Silicon Laboratories

www.siliconlabs.com

 

If you enjoyed this article, you will like the following ones: don't miss them by subscribing to :    eeNews on Google News

Share:

Linked Articles
10s