Professional Documents
Culture Documents
6
8 8
15
19
21 27
28
28 30 31 32 33 34 35 36 37 38
Microcontroller Glossary
CPU Multi-Core Embedded Flash Memory Real-Time OS Integrated Development Environment DSC Instruction Set Architecture Analog Circuit Serial Communication Interface
NE Handbook 2011
38
Genealogy of Microcontrollers
ARM Microcontroller-Dedicated Cores Derived from General-Purpose Processor Cores MIPS Began as Processors for Workstations, Now Primarily Used for Embedded Applications Renesas Multiple Product Lines with Origins in Three Companies, Likely to be Integrated in One Line Freescale World's First Developer of One-Chip Microcontroller Gains Edge in Applications for Automobiles and Communication Devices
42
46
Microcontrollers
52
PR
Mark Zack
Vice President of Semiconductor Product Digi-Key Corporation
Q What is the worldwide market trend for microcontrollers in 2011? ZackWe expect to see continued expansion as microcontrollers become more pervasive in our everyday lives. Rapid advancements in smart medical devices, smart grids and smart automobiles are driving growth. Semico Research Corp. reports that the microcontroller industry will grow by more than 13% in 2011. Handling a large product portfolio Q How many microcontroller vendors and items do you handle? What are some of your microcontroller vendor business partners?
ZackToday, we carry microcontrollers from roughly 20 manufacturers and sell more than 29,000 individual devices. Digi-Keys wide microcontroller portfolio includes devices from Analog Devices, Atmel, Cirrus, Cypress, Energy Micro, Freescale, Fujitsu, Infineon, Maxim, Microchip, NXP, Parallax, OKI Semiconductor/ROHM, Renesas, Silicon Laboratories, ST Microelectronics, TI, Toshiba, and Zilog. Comprehensive platforms support customers Q Do you also handle software development kits, reference boards, and peripherals for microcontrollers?
PR
ZackDigi-Key has one of the most complete offerings of design platforms for the engineering community. We support manufacturers design tools and platforms along with the vast majority of qualified third-party support companies.
ZackWe target a 95% in-stock rate for all products we carry. This allows us to ship products the same day from our facility in the U.S. and deliver them worldwide in 2 4 days. Our product distribution center is organized in a way that
The expansion of these third parties has been a big push for Digi-Key in the recent past. We have added numerous partners that support controller manufacturers with middleware, compilers, integrated development environments, development platforms, single-board computers, programmers, emulators, and more. Q What trends are customers looking for in microcontrollers now? ZackCustomers power considerations have pushed manufacturers to produce devices that have low sleep current, low active current, and fast wake-up times. As electronic devices become more interactive, microcontroller technology will have to stay a step ahead of these devices. With this in mind, designers will continue to require controllers with higher clock speeds, wider bus paths, and extended peripherals on-chip to support these requirements. Targeting fast shipments Q How do you build the procurement, inventory, and speedy delivery system for users? How many items are stored in your warehouse? Do you buy microcontrollers directly from original makers?
allows us to process and package orders quickly and accurately. We are able to process an average order and have the product picked, packed, and placed on a truck for shipment in approximately 15 minutes. We have some 600,000 part numbers on hand for immediate shipment. We are an authorized, franchise distributor for every supplier on our line card. We only purchase products directly from the manufacturers. Q Please describe your after-sale and technical support for microcontrollers. ZackTechnical support is provided for all products that Digi-Key sells. Support levels range from basic requests, such as aiding in the selection of devices for specific requirements, to assisting with debugging and laying out projects. Our technical support department is staffed 24 hours a day and is available via phone, e-mail, and web-chat interaction.
Digi-Key Corporation
Product specications
Control system
Today, microcontrollers are incorporated in many devices used in our daily lives. For example, office automation equipment such as copiers and factory automation equipment in plants are equipped with one or more microcontrollers. It is almost difficult to find a device that does not have one. On what criteria should an engineer make a choice among microcontrollers, which are used in various applications? This article discusses the considerations in selecting a microcontroller. When you chose a microcontroller, you must examine the delivery time, costs, development assets and development environment, in addition to the product specifications (Fig. 1). Here, the delivery time and costs, etc. are referred to as restricting conditions and the general ways to make a selection with regard to the product specifications and the restricting conditions will be explained. Microcontrollers are used for a wide range of applications and there are a lot of different ways to select one. You have to organize your own opinions beforehand, because the points to be considered may vary depending on the product you are planning to develop.
Restricting conditions
Combined system
Fig. 1Points to consider in selecting a microcontroller General points are given above.
The article also covers the problems frequently faced in actual development. The article discusses things that are likely to be overlooked by software engineers who are not familiar with how electronics operate or electronic engineers who know little about software, even if they are experienced in their own fields.
Function, circuit
Points to consider
Specic suggestions and possible problems Check that the CPU operation bit rate matches those of the A/D converter and the timer. Check the operating frequency. (Exaggerated specications lead to increased cost.) External ports may run short when they are shared. A resistor may have to be added later on. An external driver circuit has to be added if the allowable output current is insucient. The resolution may be decreased due to noise, signal wiring on the board, power supply, etc. Check whether the conversion process completes within the period required for the control process. The process may not complete in time due to the time required to switch channels. The accuracy may be insucient due to unavailability of an external clock. Consult the timer usage examples and the application notes. Timers may run short when a real-time OS is adopted. Make sure that the ports will not run short when they are shared with other functions. Check the capability to perform edge detection, level detection, etc., of input signal waveforms. Check whether the priority level can be set for reset and other processes.
CPU
A/D converter
Control System
Cooperation with peripheral functions Number of timers Number of input ports for interrupt signals
Interrupt
CPU
ROM
RAM
Clock
A/D converter
Timer
Serial interface
DMA controller
vating a pump. In short, the microcontroller in an electronic hot water dispenser cooperates with the temperature and water level sensors to control electronic components such as the heater and pump. When selecting a control system microcontroller used for such applications, it is common to consider the performance and operating frequency of the central processing unit (CPU) and the peripheral functions (Fig. 3).
Fig. 2Block diagram of microcontroller A supply voltage detection circuit and application-specific blocks are also included.
The following discusses the criteria and tips to keep in mind when selecting a microcontroller with such peripheral functions.
[ CPU ]
Regarding the I/O ports, you have to pay attention to the number of input ports, output ports and input/output ports provided, the number of external ports that can be used simultaneously and the availability of pullup (or pulldown) functionality. In addition, you need to be careful about the allowable output current of the output ports. The number of external ports should be determined according to the number of operation switches to be detected and the number of LEDs to be controlled. If the number of ports is insufficient, you have to examine whether the problem can be addressed by adding external logic circuits. Then, select a product that can secure at least the minimum required number of ports. In many cases, the external ports are also used as ports for other functions of microcontroller. You need to be aware of this because you will often have trouble in allocating the ports as you continue with the circuit design. Pullup or pulldown functionality is a necessary feature for I/O ports. In the case of operation switch on/off detection, the port has to be fixed either to the H or L level when the switch circuit is open. If an input port of a microcontroller is not provided with pullup or pulldown functionality, an external resistor is required. You should be aware of this when you design the circuit, otherwise you may have to provide an additional resistor on a high-density printed circuit board (PCB) later on and this can cause a lot of trouble. The allowable output current of the external port should be determined according to the value of current that must be supplied to the circuit connected. In controlling an LED, for example, a current of several milliamperes needs to be supplied. If this exceeds the allowable output current of the output port of a microcontroller, you need an external drive circuit.
[ Input/output port ]
10
11
[ A/D converter ]
Furthermore, you have to be careful about the number of channels that can simultaneously perform A/D conversion if electric signals from multiple sensors have to be A/D converted. If the number of input ports used for A/D conversion and the number of built-in A/D converters do not match, then A/D conversion has to be performed by switching over the channels. You need to pay attention to the time required to switch the channels, as well as the method and required time for the CPU to read the converted data. Sometimes you may realize later on that A/D conversion cannot be performed within the required period. Select a microcontroller with the right A/D conversion functionality after you have fully understood the accuracy of A/D conversion required for the system.
[ Timer ]
12
13
As for cooperation with peripheral functions, you should pay attention to whether the external port can be controlled when the specified count value is reached, whether the counter value can be automatically obtained when changes in the external port are detected and whether multiple timers can be operated in conjunction with one another. When a three-phase motor is inverter controlled, for example, pulse width modulation (PWM) waveforms in three phases should be output. For this purpose, there is a microcontroller designed to easily output the PWM waveforms by enabling collaboration between multiple timers and I/O ports. When a microcontroller is designed for a particular application as mentioned above, timer usage examples may be given in the specification sheet or a separate document may be provided as application notes. It is important to effectively use such documentation in selecting a microcontroller. You need to be very careful about the number of timers. If the number is insufficient, you may have a hard time, for example, adding an extra piece of external hardware during development. This applies to the case when, for example, the circuit design is initially developed by a team of hardware engineers alone and then the adoption of a real-time operating system (OS) is decided after a software engineer joins the team in the course of development. A real-time OS generally takes up one timer function in the microcontroller as a system timer. Thus, an extra timer is required in excess of the number of timers necessary for the originally intended control.
e.g., the detection of an operation button being pushed, a communication request notification from other devices that work in conjunction with the microcontroller and the reception of a notification about the completion of conversion process carried out by a built-in A/D converter. In particular, with regard to events that occur outside the microcontroller, you have to pay attention to the number of ports to which interrupt signals are input and whether the detection method can be selected. The number of input ports for interrupt signals should be determined based on whether the number of causes of interrupts extracted during the circuit design is met. You need to make sure that you have a sufficient number of ports that can actually be used, because these ports are often shared with other functions as in the case of I/O ports. Regarding the interrupt detection method, you need to check whether the interrupts can be detected not only at the rising or trailing edge of an input signal, but also by other detection methods (such as level detection) that are suitable for the characteristics of the causes of interrupts. In general, interrupts are regarded as one of the exception handling processes. You need to consider how to specifically set the processing priority among other exception handling processes (e.g., reset or error detection, system call, etc.) and whether you can mask (temporarily suspend) other causes of interrupts.
[ Interrupt ]
14
15
Function, circuit
Specic suggestions and possible problems Pay attention to the power consumption and unwanted radiation, as well as the performance. Check whether the coprocessor or the built-in DSP can perform the desired operations. Select a capacity that can store the operation programs. Check whether the bus can properly transfer data. Check the DMA mechanism and the arbitration specications. Check the bus connection specications between the CPU and the coprocessor or the built-in DSP. Check, for example, whether the Harvard architecture is adopted. Check the operation and measure the performance. Check whether a support system is provided by the manufacturers of the microcontroller, etc.
Arithmetic circuit
Coprocessor/ built-in DSP Built-in RAM Bus transfer rate Bus connection specications Cooperation with peripheral functions Bus architecture Microcontroller evaluation kit
for signal processing is insufficient, you cannot develop a satisfactory device. Thus, the arithmetic performance must be properly ensured. As far as the arithmetic performance is concerned, the existence or nonexistence of a coprocessor, built-in digital signal processor (DSP) and built-in random access memory (RAM) in addition to the CPU is important. With respect to the processing speed of the CPU, which is the main function of a microcontroller, you have to first roughly estimate the number of signal processing steps required per unit time. Then, make sure whether the CPU can properly handle the processing necessary for data input/output and the user interface, etc. As in the case of control-oriented microcontrollers, you have to give special consideration to the power consumption and unwanted radiation if a high operation clock is required. You also need to check whether a coprocessor or DSP capable of performing multiply-and-accumulate operations, etc., is included in the microcontroller. For example, in order to add sound effects to audio signals, arithmetic operations must be performed for an infinite impulse response (IIR) or finite impulse response (FIR) filter. However, these operations may not be carried out by the simple combination of CPU instructions or they may require an enormous number of processing steps. Moreover, when performing integer or fixed-point arithmetic, the accuracy required for the system may not be ensured. Thus, the capability to perform floating-point arithmetic with a small number of processing steps significantly affects the arithmetic performance. Needless to say, you can use multiple microcontrollers or separately provide a dedicated DSP if the required arithmetic performance cannot be ensured with a single microcontroller. Built-in RAM is indispensable to effectively perform arithmetic operations because it can be accessed from the CPU,
Bus interface
Middleware
Support system
Fig. 4Example guidelines for selecting a microcontroller for signal processing system
a portable music player, for example, the microcontroller used in the system reads audio data that has been compressed such as the MPEG-1 audio layer III (MP3) from the NAND flash memory, etc., incorporated in the system and decodes the data into music signals. This is a typical application of signal processing systems. In particular, the items listed in Fig. 4 should be taken into consideration when selecting a microcomputer used for such applications. Here, we will discuss the criteria and tips when making choices regarding these items.
[ Arithmetic Circuit ]
16
17
coprocessor or DSP without causing unnecessary overhead. Generally, signals are processed by periodically repeating one arithmetic program. If the program is entirely deployed in built-in RAM, the execution speed can be expected to increase significantly. Pay attention to the number of cycles required to access the built-in RAM and its size when selecting a microcontroller used for the applications mentioned above.
the signal processing during that time. If the audio output is interrupted in a piece of audio equipment as a consequence, it would be a fatal flaw for the product. To avoid such problems, you need to check the microcontroller specification sheet for the specifications of the bus interface so as to fully understand the specifications of the bus connections between the CPU and the coprocessor or the built-in DSP, as well as between the CPU and the cache memory or the built-in RAM. You also need to check the bus configuration (just in case that the instruction and data buses are separated as mentioned above) and the arbitration specifications with respect to the DMA mechanism. If possible, it is recommended that you use the evaluation kit of the microcontroller to perform operational tests such as performance measurement.
[ Bus Interface ]
[ Middleware ]
18
19
Combined System
Make sure that the circuits and software can be reused. Development assets Select a microcontroller that will continue to be sold and developed in the future. Check the performance of the compiler optimization option function and the support system. Select a microcontroller that supports a satisfactory debugging function.
Development environment
20
21
Programs are usually stored in memory that cannot be modified called read only memory (ROM). Ideally, when the product specifications are decided, the program specifications are also determined and programs once created would never have to be changed. Before being incorporated in the product, the programs are written into a relatively inexpensive component called masked ROM, which cannot be rewritten. In reality, however, program revision often continues until just before product shipment due to the modification of specifications or bugs found during development. In such cases, the use of masked ROM entails huge revision costs. Furthermore, since the production of masked ROM requires a certain amount of time, product shipment can be delayed when revisions have to be made. Recently, microcontrollers with rewritable built-in flash memory have been adopted in place of masked ROMs in an increasing number of cases in order to provide for some leeway in the development schedule, even if slightly increasing the cost. Thus, microcontrollers with built-in flash memory are currently on the market in large quantity and have become more affordable. When selecting a microcontroller with built-in flash memory, you need to be careful about the flash memory capacity. First, you have to make a rough estimation of the program capacity based on the product specifications, and then choose a microcontroller with a memory capacity somewhat larger than the estimate. Furthermore, if you have options about the capacities of built-in flash memory for the same microcontroller, you can continue development even if the planned program capacity is exceeded. The cost slightly fluctuates if the capacity is changed, but you can still meet the delivery date. Accordingly, do not forget to check on this point as well. When manufacturing the product, you also need to confirm,
in advance, by whom and how the programs will be written to the flash memory. If a special tool is required to write the programs, you have to add the cost of this tool as well. If the programs are written by the microcontroller manufacturer before delivery, you should check the schedule to hand over the final program data to the manufacturer and the schedule of component delivery. These schedules also serve as the basis for making a decision in selecting a microcontroller.
[ Development Assets ]
22
23
microcontrollers and the resulting development assets, there are often cases where the microcontroller and development assets were set as the starting point in designing product specifications, which is a preposterous idea. Products developed in such a way can end up as a failure in terms of sales because they cannot ensure sufficient customer satisfaction even though they result in lower investment cost. Thus, it is important to select a product released by a manufacturer that is continuously expanding its lineup of products and middleware. It is strongly recommended that you check manufacturer roadmaps and strategies. Of course, it goes without saying that you should modularize the circuits and software created in-house so that you will be able to reuse them in the future. In view of such circumstances, you need to plan a mediumto long-term development strategy for the product and carefully select a microcontroller.
size may be exceeded or the expected responsiveness may not be ensured. Furthermore, a compiler is also software and may have bugs. Thus, it is important whether the compiler vendor has a sufficient support system. When selecting a microcontroller, you have to make sure that a trouble-free compiler is available so that you can concentrate on the development work originally intended. A debugger is a tool used to verify whether a program works correctly. A device called an in-circuit emulator (ICE) is connected to the target board equipped with the microcontroller and the program operation is controlled while communicating with special application software. In particular, when using the Joint Test Action Group incircuit emulator (JTAG-ICE), efficiency in development varies significantly depending on whether the microcontroller itself has a debugging support function. JTAG-ICE is a tool used to expand JTAG control functions and enables users to read data from or write to the registers and memory in the CPU and execute the steps of a program. Regarding the trace function used to analyze bugs, for example, various schemes are provided in some microcontrollers in order to obtain detailed trace results. If the trace function is unsatisfactory, the behavior of the microcontroller cannot be analyzed properly and thus you may go through a lot of trouble in debugging work. As outlined above, the development environment is an extremely important factor for engineers. When selecting a microcontroller, always make sure to check the support conditions of your development environment. Make Long-Term Considerations Including Maintenance Period The functions and performance required for devices vary widely depending on the application and use conditions.
[ Development Environment ]
24
25
"The 4004"
Microcontrollers often play an important role in the devices. Accordingly, you have to carefully select a microcontroller that serves this purpose by focusing on the functionality and performance covered by the points in this article. In addition to selecting a microcontroller that meets functional and performance requirements, you must remember to consider every aspect to manufacture the target product, such as the cost, delivery period for parts procurement and whether the parts can be stably supplied during the production and maintenance periods of the device.
The 4004 microprocessor chip
It was in 1971 that the worlds first microprocessor, the Intel 4004, appeared. The 4004 processor was born as the core of the "MCS-4" chipset developed by Intel at the request of Busi-
com, a Japanese calculator manufacturer. At that time, Intel was only a four-year-old company. In June 1969, Masatoshi Shima and two other Busicom engineers were sent to develop a general-purpose LSI for calculators in collaboration with Intel. Although Busicom proposed an architecture using "macroinstructions" defined by finely breaking down the functions of a calculator, an investigation carried out by Intel revealed that the architecture would require at least 10 chips. To overcome this situation, Ted Hoff from Intel proposed a method in late August 1969 to use a 4-bit CPU and constitute a calculator by using "microinstructions," which have a higher degree of versatility. This became the prototype of the 4004. Aside from Shima and Hoff, Federico Faggin from Intel joined the development team and the design work intensified from April 1970. The team started shipping samples of the 4004 in March 1971. Faggin noticed the high versatility of the 4004 and persuaded Intel executives to negotiate with Busicom for the direct sales rights. Busicom accepted the proposal on the conditions that Intel pay back part of the development cost and not sell the microprocessor to other calculator manufacturers. This was because Busicom was battered by escalating low-price competition in the calculator market. This event marked the beginning of the history of microprocessors.
26
27
Microcontroller Glossary
Word 01
CPU
A central processing unit (CPU) is a circuit that carries out basic arithmetic operations and data transfer, etc., in accordance with the instructions of computer programs. It is composed of an arithmetic and logic unit (ALU) to execute actual operations, registers to temporarily store data and instructions and circuitry to control the execution of programs. In addition to the CPU, a microcontroller is equipped with main memory, flash memory and various kinds of peripheral circuits. A program is executed in the CPU as described below. First, the memory address of the instruction to be executed is fetched from the program counter and the instruction is read into the instruction register. Then, the instruction is converted (decoded) into an instruction executable by the CPU. The value of the general register, the value in the specified main memory location and the value directly specified by the instruction are used as operands. Based on the instruction and the data, the ALU carries out the operation and writes the results to a register or the main memory. The procedure is repeated in the order specified by the program. The CPU also has circuits to branch or interrupt a program. If the program includes a branch, a judgment based on the preset condition is made using a flag register that stores the status of operation and the process flow jumps to another instruction if the condition is met. An interrupt controller controls interrupt processing to interrupt the current process if a specific signal is received and to resume the original process when a series of other processes has been executed. Various Definitions for Microcontroller Bit Count Microcontrollers may be classified using terms such as 8bit, 16-bit and 32-bit based on the CPU specifications. In
Control of program execution Management of instruction to be executed Data retention before and after operation
Program counter Address Instruction register Data Instruction decoder General register Data Data
CPU
Execution of instructions for data
Arithmetic and logic unit (ALU)
Main memory
Flash memory
Peripheral circuit
Microcontroller
Main components constituting a CPU
actual fact, the classification is not that strict. In general, microcontrollers are often classified according to the operation data width of the ALU in the CPU. However, there are various components in the CPU that operate with different bit widths and they may not coincide with the operation data width of the ALU. To be more precise, this includes the widths of registers in the CPU, the widths of external address and data buses and the widths of instructions executed by the ALU. In some models, for example, the ALU operation data has a width of 32 bits and the external data bus is 16 bits wide. This difference results from how the circuit area, power consumption and computing performance, etc., are balanced. The classification according to the bit count is just for the sake of convenience. When actually selecting a microcontroller, one must carefully determine which part of the internal structure of a microcontroller the bit count specifies.
28
29
Multi-Core
Multi-core refers to a technique to mount two or more CPUs on a semiconductor such as microcontroller. Multi-core technology is already commonplace for microprocessors used in personal computers and mobile devices. Recently, multicore microcontrollers are being commercialized. There are two reasons why multi-core technology is being promoted. First, there is a demand to integrate multiple subsystems for the cost reduction of entire devices. This is the main demand in the case of microcontrollers. By adopting the form of asymmetric multiprocessing (AMP) in which multiple CPUs have different memory spaces, the subsystems can be integrated without significantly changing the program. The integrated CPUs may be of the same or different types. Another reason is that, as miniaturization in semiconductor production technology progresses, power leakage tends to increase when the operating frequency is raised. As a result, multi-core architecture has been promoted as a method to enhance the processing performance of a microprocessor without increasing the power consumption. In this case, an implementation form of symmetric multiprocessing (SMP) is often adopted in which multiple CPUs share the same memory space.
Control gate
CPUn
CPUn
Memory space 0
Memory space n
Memory space
Drain
Source
Drain
Source
30
31
Real-Time OS
A real-time operating system (OS) is a type of OS that emphasizes the strict management of the time at which a program is executed. There is no quantitative definition of what exactly is real-time, but some of the requirements of a realtime OS are: capable of ensuring the worst-case length of time spent to call an interrupt processing program after the occurrence of a hardware interrupt and capable of ensuring the scheduling to first execute the task with the highest priority. The basic functions of a typical real-time OS are: (1) the task management function to generate and activate tasks as well as execute scheduling; (2) the inter-task communication function to enable synchronization and messaging between tasks; and (3) the processing function for various types of application programming interfaces (API), such as memory, time and interrupt management. In addition to these basic functions, many real-time OS vendors provide a communication protocol stack and other programs as added functions. In a strict sense, they are not the core portion of the OS (kernel). These programs run as tasks of the OS, just like the programs created by device developers.
User program
Task
Programs of services (network functions, etc.) provided by OS Programs of I/O device processing and interrupt processing
OS (kernel)
Example of integrated development environment using Eclipse (Picture courtesy of Wind River)
32
33
DSC
A digital signal controller is a microcontroller with an enhanced capability to process digital signals. Because it employs the elements of a digital signal processor (DSP) at the architecture level, e.g., a multiply-and-accumulate (MAC) operation execution unit, it is sometimes called a DSP microcontroller. The integration of a DSP and a microcontroller was originally promoted with the main purpose of effectively carrying out media processing, but lately DSCs are also attracting attention in the field of feedback control applications for motors and power supplies. Currently, DSCs are spreading widely because of two aspects. One of the aspects is that an increasing number of general-purpose microcontrollers are becoming capable of performing MAC and other operations with the use of a dedicated unit. Most DSCs released thus far are specialized for motor control, etc., but the development of ARMs CortexM4, a CPU dedicated for microcontrollers also equipped with DSP instructions, led several semiconductor manufacturers to commercialize general-purpose microcontrollers that can be used as DSCs. These products have an advantage in that a system capable of performing motor control and audio processing can be built without the use of an external DSP. The other aspect is that DSCs designed for digital power supply control have become available at low prices. Models equipped with a CPU that supports digital signal processing instructions, a high-speed pulse-width modulation (PWM) unit, an analog-to-digital (A/D) converter, etc., have become as affordable as general-purpose microcontrollers. This can lead to the rapid spread of the use of digital power supplies, which contribute to the size reduction and efficiency improvement of power supplies.
Source code in C
Assembler
Compiler
34
35
Analog Circuit
Circuits that handle continuous electric signals are collectively called analog circuits. Typical analog circuits used in a microcontroller are analog-to-digital (A/D) and digitalto-analog (D/A) converters. This is because a microcontroller frequently receives input signals from sensors and outputs signals to actuators. A power-on reset (POR) circuit is another analog circuit. It monitors the supply voltage of the system and initializes the microcontroller when the preset voltage is reached. In particular, the A/D converter is an indispensable function of a microcontroller. Models with a resolution of 8-16 bits are commonly employed. Successive approximation type A/D converters, which repeatedly execute magnitude comparison with one comparator, and -type converters, which integrate the analog signals that have been subjected to oversampling and then quantize and differentiate the resultant signals, are used. There have been moves to reduce the number of components, mounting surface and power consumption by incorporating analog IC circuits inside a microcontroller, instead of using them around the microcontroller. A number of semiconductor manufacturers have commercialized microcontrollers that incorporate, for example, an operational amplifier to amplify analog input signals when the signal voltage is extremely low, a comparator for overcurrent/overvoltage protection and a drive control circuit for the liquid crystal panel.
UART (universal asynchronous receiver-transmitter) I 2 C (inter-integrated circuit) SPI (serial peripheral interface)
Applicable to Local Interconnect Network (LIN), etc. Proposed by Philips. First standardized in 1992. Proposed by Motorola.
36
37
Genealogy of Microcontrollers
ARM MIPS Renesas Freescale
A 16-bit reduced instruction set called "Thumb" was added to the ARM9. The ARM7 TDMI, widely used as a generalpurpose microcontroller, was a variant of the ARM7, which was modified based on the ARM V4 architecture adopted in the ARM8 and ARM9. ARM then released the ARM10 equipped with the ARM V5 architecture and the ARM 9E, a modified version of the ARM9 based on the ARM V5 architecture. Next, the company released the ARM11, which was based on the ARM V6. The latest version of the instruction set is ARM V7 released in 2005. After the adoption of ARM V7, all the products are named with a unified style, "Cortex-XYY." Here, the letter "X" denotes the usage where "A," "R" and "M" represent application, real-time control and microcontroller, respectively. The letters "YY" denote the numbers that represent the position of the product.
Thumb
ARM V1
ARM V2
ARM V3
StrongARM
ARM V4
ARM V5
ARM1
ARM2 ARM3
ARM6 ARM7
ARM8
ARM9
ARM10
ARM9E
For microcontrollers
ARM7TDMI
For FPGAs
38
39
Genealogy of Microcontrollers
ARM V1
ARM V2
ARM V3
StrongARM
ARM V4
Thumb
ARM V5
plication cessors
l-time trol
The Cortex-A series includes the Cortex-A8, -A9 and -A5. ARM3 ARM7 The Cortex-A8 is the first model equipped with the ARM V7 series. The Cortex-A9 is compatible with multiprocessors and the Cortex-A5 is an entry-level model. The Cortex-R series also includes the Cortex-R4, -R5 and -R7. The Cortex-R4 features a high-speed interrupt processing capability and the Cortex-R5 and Cortex-R7 are advanced models of the Cortex-R4. The Cortex-M series is intended for microcontrollers. pose microcontroller, it was far behind the microcontrollers from competing manufacturers in terms of performance. As a breakthrough, ARM put the Cortex-M3 on the market. Although it is a high-performance 32-bit microcontroller, it is capable of providing a code density almost as high as that of a 16-bit microcontroller through the adoption of "Thumb-2," the successor technology to Thumb. In addition, the die size is almost as small as that of a 16-bit model. With such feaBasic instruction set
ARM1
ARM2
ARM6
ARM8
tures, ARM is vigorously attempting to make users transit from other manufacturers' 16-bit microcontrollers.
ARM9
ARM10
ARM also released a low-end model named the Cortex-M0. While featuring a performance comparable to that of a 16-bit computer, it is intended to be sold at a price as ARM9E that of low as an 8-bit microcontroller and operated with equivalent power consumption. In addition, the Cortex-M4, a variant of the Cortex-M3 equipped with a digital signal processor (DSP) extension, is available for ARM7TDMI high-end applications. With these three products, ARM is reportedly aiming to gain a 20% or larger share in the microcontroller market sometime in the future. The Cortex-M1, designed based on the Cortex-M3, is available as a software core that operates on field programmable gate arrays (FPGA). The Cortex-M1 is licensed to major FPGA vendors and end users who have bought the FPGA from these vendors can use the Cortex-M1 without a license.
Thumb-2/NEON
FPGAs
ARM V5
Jazelle
ARM V6
ARM V7
Cortex-A15
Cortex-A9 ARM10 ARM11 Cortex-A8 Cortex-A5 Cortex-R5 Cortex-R7 ARM9E Cortex-R4 Cortex-M4 Cortex-M3 Cortex-M0 Cortex-M1
MI
For microcontrollers
For FPGAs
40
41
Genealogy of Microcontrollers
ARM
MIPS
Renesas
Freescale
Began as Processors for Workstations, Now Primarily Used for Embedded Applications
MIPS processors have their origin in the MIPS project led by John L. Hennessy of Stanford University. The architecture developed by this project was commercialized by MIPS Computer Systems, a company founded by Hennessy in 1984. The company was purchased by Silicon Graphics (SGI) in 1992, but was later spun off as MIPS Technologies. The products initially released by MIPS were not intended for embedded applications, but for workstations. From its first product, the R2000, to the R12000, etc., the company targeted high-performance processors. Meanwhile, the MIPS core had been offered for embedded applications since around 1990. Similar to the business model of ARM, the company started licensing the core designs, which turned out to be a great success. In 1997, the shipment volume of MIPS processors overtook that of the 68000-based processors from Motorola Inc., becoming the
most widely used embedded processor in the world. When it was spun off from SGI, MIPS redesigned the architecture so that its core could be more easily used for embedded applications. Before this modification, four types of architectures, MIPS I to IV, had been defined. The MIPS series had a structure in which MIPS I and II were provided as the base architectures and MIPS III and IV were designed to have additional instruction sets and functions while maintaining backward compatibility. The company later changed this structure to one similar to ARMs. The four architectures were integrated into two instruction sets, MIPS32 (32 bits) and MIPS64 (64 bits) and extensions were added as an option. MIPS32 comes in two families: the 4K family for microcontrollers and the 20K family with enhanced performance. The 4K family includes: the 4K, a basic 32-bit core that has a similar structure to the R3000; the M4K, a low-end model; the 4KE, a high-speed model and the 4KS, which features a built-in security function. The 4K is further divided into three types. The basic one is the 4Kp core. The 4Km core is based on the 4K and is equipped with a high-speed multiplication and division
MIPS
MIPS
MIPS
MIPS
R2000
R3000
R6000
R5000
R4000
R8000
R10000
R12000
42
43
GenealogyMIPS of Microcontrollers
MIPS
MIPS
MIPS
unit. The 4Kc core is based on the 4Km and incorporates a translation lookaside buffer memory management unit (TLB MMU). The low-end M4K core consists of only 35K gates. The 4KE supports bit field instructions and vectored interrupts and reduces the granularity of clock gating. It also supports a write back function by increasing the maximum cache capacity. With these features, the 4KE enables a high level of performance. As with the 4K, it comes in three types: the 4KEp, 4KEm and 4KEc. The 4KS core also supports cryptographic accelerator instructions (SmartMIPS ASE). As for the 20K family, the MIPS32 24K, designed based on the MIPS32 20K and equipped with an enhanced internal structure, was released in 2003. The company also released the MIPS32 34K in 2006 and the MIPS32 74K in 2007. The
R4000
R2000
R3000
R6000
MIPS32 34K is based on the MIPS32 24KE and enables simultaneous multi-threading (SMT). The MIPS32 74K is the successor to the MIPS32 24KE and features an improved internal structure. Then in 2008, the MIPS32 1004K, which integrates up to four MIPS32 34K cores, was released and was followed by the release of the MIPS32 1074K in 2010, which integrates four MIPS32 74K cores. It should be noted that all of the MIPS32 models have a reduced instruction set called MIPS16, which is similar to ARMs Thumb. The company later defined a new instruction set called microMIPS because MIPS16 has not been widely implemented and released the MIPS32 M14K and M14Kc incorporating microMIPS in 2009.
R8000 R10000 R12000
R5000
MIPS32
MIPS32 Release 2
MIPS32 74K
MIPS32 1074K
MIPS32 4K/4KE/4KS
MIPS32 24K
MIPS32 24KE
MIPS32 1004K
MIPS32 M4K
DSP ASE
44
45
Genealogy of Microcontrollers
ARM
MIPS
Renesas
Freescale
Multiple Product Lines with Origins in Three Companies, Likely to be Integrated in One Line
Renesas Electronics is a manufacturer that was formed by a merger between NEC Electronics and Renesas Technology Corp. Because Renesas Technology was founded as a result of a business merger between the semiconductor divisions of Hitachi and Mitsubishi Electric, the new Renesas Electronics has coexisting product lines that have origins in three companies. First, there are the product lines of the former NEC Electronics. Their origins go back to the PD780, a Z80-compatible 8-bit processor and the V30, a 16-bit processor that is upwardly compatible with the 8086. These processors led
to the 78K family/RL78 series and the V850 family, which remain in use today. While the PD780 was a stand-alone processor, the 78K family was released as a one-chip microcontroller incorporating ROM, RAM and peripheral circuitry. Although a line of high-end products was released, the low-end models, the 78K0 and 78K0S (initially called the 78K/0 and 78K/0S), turned out to be pervasive. In 2006, the company released the 78K0R, which was based on the 78K0 and equipped with a 16-bit internal structure. It is still available today. The V30 is famous for once being used in NECs PC-9801 series. The V60 and later versions are no longer compatible with the 8086. In addition, the company adopted a 32-bit RISC architecture starting with the V800 family, replacing the CISC architecture that had been used until then.
NEC 8-bit
78K//
NEC 32-bit
V850E1
V850E2
78K/0
78K0
V850ES
78K/
78K0R
V852/V853 /V854
V20/V25
V40
V55
V805/V810
V820/V821
V30
V35/V35+
V50
V60/V70 /V80
V33/V33A
V53/V53A
46
47
Genealogy of Microcontrollers
NEC 8-bit 78K// NEC 32-bit V850E1 V850E2
PD780 Next was the V850 family, which has much 78K0 in common 78K/0 etc... with the V800 in terms of structure, but it is not compatible with V800 in the strictest sense. The V850E (later renamed NEC 16-bit to the V850E1) was designed based on the V851, which is 78K/ 78K0R the first product from the V850 family and was modified to enhance its speed. This product family also includes the V850E2, which is equipped with a superscalar architecture that enables simultaneous execution of two instructions and V20/V25 V40 V55 the V850ES, which focuses on low power consumption and low cost. They have been incorporated in various products and are still in use today. V60/V70 V30 V35/V35+ V50 /V80
After this come the former Hitachi product lines. The H8 V850ES series is the line that was independently developed by Hitachi. The company first released a 16-bit product called the H8/500, followed by a reduced version, the H8/300. The V852/V853 V851 /V854 H8/300H was developed by extending the H8/300 architecV830/V831 ture to 16 bits, but in a different way from the H8/500. Both /V832 the H8S/2000 series, which is a version of the H8/300H featuring enhanced speed and the H8SX/1x00, which is a 32V805/V810 V820/V821 bit version of H8S/2000, are still in use today. The Super-H is a 32-bit RISC processor completely different from the H8 series. Although the Super-H is designed with address and data lengths of 32 bits, its instruction length is fixed at 16 bits, thereby increasing the code density. A memory management unit (MMU), which was not incorporated in the SH-1 and -2 series, was included with the SH3. The SH-4, a version of the SH-3 with enhanced speed, was also provided with a single instruction multiple data (SIMD) type floating-point unit (FPU). The SH-X1, a system-on-chip (SoC) core for embedded applications developed by modifying the SH-4, was released after the company was reborn as Renesas Technology. This was followed by the release of the SH-X2, a version of the SH-X1 with enhanced speed and the SH-X3, a multi-core-enabled version. They are used for SoC in mobile phones and other devices.
It should be noted that NEC, as a partner of MIPS V33/V33A V53/V53A Computer(currently known as MIPS Technologies), once released a product line called the VR series, which adopted the MIPS architecture. However, the series consisted of old products compliant with MIPS III and IV. Currently, only a limited part of the line is available for maintenance purposes.
Hitachi 8-bit
H8/300
H8/300L
H8S/2000
SH-2A
SH2A-FPU
H8SX/1x00
SH-X3
SH2-DSP
SH3-DSP
SH-X2
SH-1
SH-2
SH-3
SH-4
SH-4A
SH-X1
48
49
Genealogy of Microcontrollers
Hitachi 8-bit H8/300 H8/300L
The former Mitsubishi Electric H8/300H lines are rather product H8S/2000 simple. Mitsubishi released three types of cores: the M16C, H8/500 H8/300H M32C and M32R. The M16C is a 16-bit core and the M32C Tiny Hitachi 16-bit is a 32-bit version of the M16C. The M32R is a modified version of the M32C and is adapted to control purpose. Based on these cores, a wide range of products combining periphHitachi 32-bit SH-2A SH2A-FPU eral circuits, etc., are available. The M16C and M32C are still widely used today.
SH2-DSP SH3-DSP
Following the launch of these products, Renesas Technology announced in 2007 the development of the RX family, a line of entirely new CISC-based processors. The company first released a 32-bit processor called the RX600, followed by the 16-bit RX200 processor. The products were designed with the intention to integrate the companys middle-range H8SX/1x00 SH-X3 CISC architectures into one family in the future. However, the plan was somewhat derailed by the merger with NEC Electronics in 2010. SH-X2 The RL78 was the first product developed by Renesas ElecSH-4A SH-X1 tronics after the merger. It combines the 78K0R core and the peripheral circuitry of the R8C. As of March 2011, however, it still uses 78K0R-based peripheral circuitry. A series of products remodeled with the use of R8C-based peripheral circuitry is slated for launch.
Together with the merger of the companies, there have been moves to integrate these products. For example, the SH-1 SH-2 SH-3 R8C series, which combines the M16C core and the H8S peripheral circuitry, was commercialized so that users of both products could make a smooth transition. The R32C was released to facilitate a similar transition by combining the M32C core and peripheral circuitry equivalent to that used in the R8C.
SH-4
RX200 M32C M32R Mitsubishi 32-bit M32C Renesas Technology 32-bit R32C/80 R32C/100
RX600
50
51
Genealogy of Microcontrollers
ARM
MIPS
Renesas
Freescale
Worlds First Developer of OneChip Microcontroller Gains Edge in Applications for Automobiles and Communication Devices
Freescale Semiconductor was the first company in the world to manufacture a one-chip microcontroller. More precisely, the forerunner of Freescale, i.e., the semiconductor division of Motorola, Inc., manufactured the worlds first onechip microcontroller named the MC6801. The MC6801 integrated the MC6800 8-bit processor, ROM, RAM, a 16-bit timer, parallel I/O and serial I/O into a single chip. Its successor, the MC6803, was used for a wide range of applications. The MC6803 was then followed by a modified version (MC6805), a CMOS version (68HC05) and its successor the HC08. The RS08 is the low-priced version of the HC08 and the HCS08 is the high-end version. Combined with the ColdFire processor
described below, the RS08 and HCS08 constitute a product line called Flexis. The use of common peripheral circuits facilitates the transition from 8-bit to 32-bit architecture. The 16-bit products are classified into two family lines. One is the MC68000 family, which was used in Macintosh computers, etc. and the other is the 68HC11 family, which was developed by modifying the MC6801 separately from the MC6805. The 68HC12 is a 16-bit version of the 68HC11. The HCS12, a modified version of the 68HC12 and the HCS12X, the successor to the HCS12, are still available as 16-bit microcontrollers for automotive applications. There is also a unique product called the 56800/E, which adds the functions of a microcontroller to a 16-bit DSP. The 56F8000 series is designed based on the 56800/E core and is equipped with integrated peripheral circuitry. Freescale stopped the development of new products for this line, but
32-bit processor/microcontroller
MC68040
MC68060 ColdFire V2
MC6801 /6803
MC68EZ328 DragonBall EZ
MC68VZ328 DragonBall VZ
DragonBall Super VZ
MC68SZ328
ColdFire
68HC16 HCS12
56800/E
56F8000 HCS12X
MC6805
68HC05
HC08 RS08
HCS08
8-bit microcontroller
52
53
Genealogy of Microcontrollers
32-bit processor/microcontroller 32-bit processor/microcontroller
As for 32-bit products, the company released a MC68000ColdFire V2 ColdFire V3 based model called the MC68030, as well as its successor MC68EZ328 MC68SZ328 ColdFire V2 ColdFire V3 MC68328 MC68VZ328 MC6801 MC68SZ328 MC68328 MC68EZ328 MC68VZ328DragonBall MC6801 the development of the MC68040 floun-DragonBall EZ DragonBall DragonBall VZ the MC68040, but However, the architectures of the e300 and e600 were /6803 DragonBall Super VZ DragonBall DragonBall EZ DragonBall VZ /6803 Super VZ dered. As a result, the MC68040 fell far behind its main intended for use in personal computers and were not necesMC683xx MC683xx competition, the 486 from Intel Corp. Yet, QUICC archithe 68000 sarily suited for embedded applications. To overcome this QUICC 68HC16 56800/E 56F8000 16-bit microcontroller 68HC16 problem, a nonprofit 56F8000 56800/E tecture had a large share of the market for embedded prostandard-setting organization called 16-bit microcontroller cessors at that time. Accordingly, the company redesigned Power.org was established and the organization defined the 68HC11 68HC12 HCS12 HCS12X the 68040 core based on RISC architecture and developed PowerISA standards. Freescale newly developed the e200 68HC11 68HC12 HCS12 HCS12X ColdFire, targeting the embedded application market. First, core, which is compliant with the standards and decided to the V2 was released and followed by the V3, V4 and V5, make a shift to this core in principle. The e200 core was enMC6805 68HC05 HC08 HCS08 MC6805 68HC05 HC08 HCS08 adopted in the Qorivva microcontroller series for automodified versions with enhanced functionality. These cores tirely are mounted on a number of 32-bit microcontrollers. mobiles and is also used in the PX microcontroller series for RS08 RS08 industrial and general-purpose applications. The company 8-bit microcontroller 8-bit microcontroller The PowerPC family is another 32-bit product line. The also developed the e500 core, which is a higher-end version first product from this family was the MPC603e. Freescale of the e200 and the e500mc core, which is a multi-coredeveloped the e300 core based on the MPC603e and the enabled model. It also developed a 64-bit core called the e5500. The QorIQ microcontroller series for communication devices uses these cores exclusively.
32-bit processor/microcontroller 32-bit processor/microcontroller PowerPC Classic PowerPC Classic MPC603e MPC603e G2 G2 e300 MPC7400 MPC7400 G4 G4 e300 e600 e600
MC68010 MC68010
MC68020 MC68020
e600 core based on the MPC7400 and used them in a numMC68060 ber ofMC68030 microcontrollersMC68040 in communication devices and autoMC68030 MC68040 MC68060 mobiles.
0 68040
MC68060 MC68060
ColdFire V5 ColdFire V5
ColdFire V2 ColdFire V3 ColdFire V4 ColdFire V4e ColdFire V2 ColdFire V3 ColdFire V4 ColdFire V4e ColdFire V1 ColdFire V1
e700
e500
e500
e500mc e500mc
e200
e200
e200Z e200Z
54
55
Norikazu Kunikata
Joined Teac in 1989. He was in charge of the design of analog and digital circuits for audio equipment, as well as board design, etc. He has been involved in the development of HDD recorder software since 1998. He has also worked on quality improvement activities and human resource development. He is a member of the Society of Embedded Software Skill Acquisition for Managers and Engineers (SESSAME).
Genealogy of Microcontrollers
pp. 38-55
Yusuke Ohara
Mainly specializes in the architecture of CPUs, memory and other components, as well as operating systems (OS), drivers and firmware.
Nikkei Business Publications, Inc. 2011 All rights reserved. Printed in Japan
http://www.digikey.jp/