Small microcontrollers may fit into compact spaces and perform the purposes required nicely, but almost by definition, they will be I/O limited. One solution to this, even with small 6-pin micros, is to extend the amount of I/O available using serial buses or shift registers. Slightly larger parts that feature parallel buses can use external multiplexors and latches along with address decoding and read/write signals. These methods can easily extend the amount of I/O by blocks of 8, 16, or 32 bits at a time.
The problem is that these solutions require more chips, special code blocks to shift and write (or read), and may introduce latency times. While smaller micros can be less expensive than larger parts, when you add up all the costs for discrete latches, decoders, mulitplexors, de-multiplexors, cost of acquisition, and ownership of parts, plus the insertion costs for each device, cost-wise it is either a wash, or you may actually do better with the larger package than with the smaller one.
This article looks 16-bit microcontrollers with high I/O pin counts. We will examine some parts that offer I/O counts of 100 or more and some with specialty features that enhance performance. Along the way, we will point out both benefits and limitations only external parts can solve.
All parts, tutorials, reference designs, datasheets, and development tools discussed here are available on Hotenda’s website.
Advantages and disadvantages
There are times where a small micro with external latches or logic can do what larger parts cannot. For example, mixed I/O signal levels scattered around the periphery of a printed circuit board (PCB) may need specific level shifters that very few micros support in a native way (like LVDS). Level shifting to higher voltage outputs is done quite easily with an open collector part biased at the higher voltage level. Input levels can be attenuated passively with resistors, but at high speeds, the current limiting stretches out rise and fall times because junction capacitance becomes a more prevalent issue. Active buffers may be better used here.
High-I/O parts may also cause routing issues. When a lot of I/O is scattered around the board, routing parallel buses and signals from a central processor to various latches or buffers can introduce signal skew from bit to bit, and may require additional routing layers. This adds more cost to the PCB and can also affect reliability. With such a densely routed board, debug and troubleshooting can be a nightmare (Fig. 1, left).
Figure 1: Smaller micros that can use external parallel latches and drivers to extend I/O (left) may require an extra PCB layer since so many traces are needed. A serial scheme (right) can solve this, but will introduce latency times.
With a high-speed serial bus, only a few signals from the centrally located micro need to traverse the PCB area in a daisy-chain fashion. All outputs of the latches change at the same time, virtually eliminating signal-to-signal skew and jitter. This also greatly simplifies PCB routing (Fig. 1, right). Termination may be required at the endpoint.
The biggest limitation most large micros have is with the number of higher drive signals for direct connection to power LEDs and actuators. An 8-digit, 7-segment LED display may need eight high-current sink and seven or eight high-current source lines to satisfy the needs of the multiplexed common anode displays. This can be a lot of current to be passing through the micro, therefore, external latches, drivers, and multiplexors with higher drive capability may be a better choice.
Still, there are times when a central processor with a lot of I/O is a better solution. For one thing, power-up states can be set very quickly with a micro powering up, and are usually more deterministic. Flip flops and latches can power up in random states which could be an issue when driving power signals, especially quadrature and H-Bridge, which can cause excessive current flows if suddenly in the wrong states.
Another benefit is tighter control on I/O states. High-value resistive pull-ups (or pull-downs) can draw very little current, especially if the micro puts the I/O lines in tri-state mode. This is an ideal situation for power-sensitive designs, especially if the micro is put to sleep for long periods of time and the I/O levels need to remain static.
A few examples
Often, it will be the mix of functions combined with high and flexible I/O counts that will determine if a part is a good fit. Many chipmakers have parts that provide high pin and I/O counts with a variety of clock speeds, memory resources, peripherals, and performances. A few stand out.
Take for example the 16-bit 80 MHz Freescale MC9S12XD256CAG in the 144-pin LQFP. This relatively high-performance processor is an enhanced version of the company’s S12 core with up to five times the performance of previous 25 MHz parts.
The available 119 I/O pins (of which 25 can generate interrupts) can implement a standard external bus interface for high-speed parallel connections to external memory or peripherals like TFTs. What is rather unique is the company’s internal XGATE co-processor, which can pump flash, EEPROM, RAM, or peripheral data out to and in from I/O pins (Figure 2). This is an independent parallel processor that can offload the main CPU and provide high-speed data transfer and processing autonomously.
Figure 2: Once set up, the XGATE co-processor can autonomously offload the core CPU for many of the I/O functions. Data can come from or go to peripherals, I/O, RAM, ROM, EEPROM, and others.
This part can run in the 5 and 3.3 V world and is packed with features and peripherals like CAN bus interface, 24 10-bit A/D channels, PWMs, multiple serial interfaces, an on-chip regulator, clock frequency generators (up to 256 frequencies), and more. Powerful debug and development hooks are also provided.
Another interesting 16-bit part is the H8S series 128 I/O DF2117VBG20V in a 176-pin LFBGA package from Renesas. As Figure 3 shows, these high-I/O parts pack in a lot of peripherals and functions. Designed for 3 to 3.6 V operation, the high pin count parts also feature multiple serial interfaces such as UARTs, IIC, LIN, and CSI, as well as 16 10-bit A/D channels.
Figure 3: Many I/O lines provide a lot of opportunity to pack high-I/O devices with a lot of peripherals and resources. Flexible bus architectures can provide better performance for moving data around in high-speed designs.
These 8 to 20 MHz parts also target data movement applications and provide a flexible DMA and data transfer control built in for up to 85 channels. This permits single interrupts to kick-off concurrent or background data transfer operations while other blocks are processing, sleeping, or are turned off. Of course, I/O can be a source or destination for parallel data transfers, so designs that implement multiple buses can benefit from the combination of a lot of I/O and a fast, efficient data-transfer mechanism.
Another feature of interest is there are up to 40 pins designed to drive or sink high amounts of current for LED drive. This can save external decoder and driver chips for multiplexed or direct-drive numeric or alphanumeric LED displays. An H8S Architectural Overview Product Training Module of the family is available from Renesas on the Hotenda website, as is an H8S Peripheral Overview Product Training Module.
STMicroelectronics plays in this arena as well. Check out the 32-MIPS, 144-pin ST10F276Z5Q3 with 111 I/O and full 24 channels of 10-bit A/D converters. While only a 5 Volt part (but the core runs at 1.8 V), this member of the company’s ST10 family is also packed with two CAN buses, UARTs, I²C ports, capture/compare units, and extensive Boolean and bit-manipulation features including the ability to configure output-port pins on a bit-wise basis for push-pull, open drain, CMOS, TTL, or tri-state. Also note the partitioning into 8-, 15-, and 16-bit ports and the bus control signals for external-bus interface devices (Figure 4).
Figure 4: The port-partitioning and external-bus interface signals combined with 24-channel A/D inputs make the ST10 parts ideal for high-I/O mixed-signal designs.
While many embedded control designs that require a lot of I/O may not also need a heavy-lifting number cruncher, some algorithm based PID and feedback control systems can benefit greatly with the addition of dedicated fixed and floating-point hardware. Take for instance the 60-MIPS, 120-I/O, 144-pin, 16-bit Microchip DSPIC33EP256MU814-I/PL, which takes direct aim at high-performance motor controls (Figure 5). A member of Microchip’s dsPIC33E motor-control family of digital signal controllers (DSCs), the chip features a dsPIC DSC core with integrated DSP and enhanced on-chip peripherals.
Figure 5: This Microchip motor-controller part can handle process-intensive applications while monitoring and controlling a lot of I/O. These are ideal for appliance designs like washing machines, dryers, and dish washers that may have high I/O for user interfaces, keypads, buttons, and displays as well as power control, motors, tachometers, and sensors.
With I/O connected to specialized MOSFET or IGBT driver circuitry, on-chip sensor interfaces allow fast and reliable position, speed, direction, and power draw. In addition, the input section, with up to 32 A/D channels (10 and 12-bit), allows parallel signal-dominated or serially-communicated motor control, including torque.
The part’s Modified Harvard DSP architecture features dual fetching for single-cycle operations, and boasts up to 60-MIPS performance. Its architecture is optimized for C coding. The single power-supply part has dual 40-bit accumulators to aid in PID control loops and includes on-chip EEPROM as well as flash.
So far, we have discussed sub-100 MHz parts as they are most commonly used for general-purpose designs. For those who need higher performance and higher-level peripherals and connectivity, Texas Instruments offers its 337-pin Hercules 220 MHz ARM® Cortex™-based RM48L952ZWTT with Ethernet and 120 I/Os. With this MCU, TI is targeting high-end medical applications such as defibrillators, infusion pumps, ventilators, and robotic surgery. A Product Training Module Overview for TI Hercules Processors is available on the Hotenda website.
The next step
This article has focused on some sample MCUs with benefits beyond simple input and output instructions. Parts such as these can reduce development time by bringing into play advanced features that streamline everything from board layout to algorithm coding. Engineers will need to do a little research to find parts with precisely the right mix of communications, sensor, and user-interface peripherals. Hotenda’s Parametric Search Engine is a great tool to use in this effort. Also note that while we have used 16-bit parts as examples, the same principles apply for finding 8- and 32-bit parts to meet your high-I/O design requirements.
For more information on the parts discussed, use the links provided to access product information pages on the Hotenda website.