You are on page 1of 31

Microcontrollers

NE Handbook series 201 1

6
8 8

Guidelines for Selecting a Microcontroller with Required Functions and Performance


Examine Product Specifications
Control System Select CPU and Peripheral Functions According to Usage Signal Processing System Ensure Performance Meeting Requirement Specifications Combined System Examine Communication Standard between Microcontroller and Other Devices

15

19

21 27

Examine Restricting Conditions


[ Column ] The World's First Microprocessor Born of the Calculator Wars "The 4004"

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

Fully Featured Microcontrollers See Strong Market Demand


With cutting-edge technologies like smart grids and automobiles pushing demand for new functions such as higher clock speeds, wider bus paths, and extended peripherals on-chip, microcontrollers are becoming more powerful and feature-laden. They are expected to see strong market growth in 2011. We sat down with Mark Zack,Vice President of Semiconductor Product, Digi-Key Corporation, to discuss market and technology trends, and to learn how the company efficiently handles so many products to meet worldwide demand.

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

Te l1-800-344-4539 Fax218-681-3380 US URL http://www.digikey.com/

Guidelines for Selecting a Microcontroller

Guidelines for Selecting a Microcontroller with Required Functions and Performance


There is a wide variety of microcontrollers available and even if you have decided on which series to use, you still have plenty of choices. Engineers must have their own criteria in order to make the right selection. This article discusses the general considerations and some tips to keep in mind when selecting a microcontroller, serving as a basis for setting your own criteria.

Product specications

Control system

CPU Input/output (I/O) port A/D converter Timer (counter) Interrupt

Signal processing system

Arithmetic circuit Bus interface Middleware

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

Communications between multiple processors

Delivery time, costs Development assets Development environment

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.

Guidelines for Selecting a Microcontroller

Examine Product Specifications


A microcontroller acts as the brains to run the system. It also has various peripheral functions to meet the capability and performance required for the system (Fig. 2). Therefore, the microcontroller to be used may vary depending on the characteristics and specifications of the system. In the following, we divide systems roughly into two categories control and signal processing systems and provide some general points to consider in selecting a microcontroller.

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

Operation bit rate Responsiveness Number of external ports

Input/ output (I/O) port

Pullup/ pulldown Allowable output current of output port Resolution

A/D converter

Conversion time Number of channels Time measurement

Control System

Select CPU and Peripheral Functions According to Usage


An electronic hot water dispenser, a home appliance, can be given as an example of a control system. It boils water and keeps it hot by cleverly controlling temperature and water level sensors and an electronic heater. When the user pushes the button, the hot water dispenser pours hot water by actiTimer (counter)

Cooperation with peripheral functions Number of timers Number of input ports for interrupt signals

Interrupt

Interrupt detection method Processing priority setting

CPU

ROM

RAM

Clock

Fig. 3Example guidelines for selecting microcontroller for control system

A/D converter

Timer

Serial interface

Input/output (I/O) port

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.

Guidelines for Selecting a Microcontroller

The following discusses the criteria and tips to keep in mind when selecting a microcontroller with such peripheral functions.

[ CPU ]

Watch out for Exaggerated Specifications


A microcontroller intended for control applications generally employs a CPU with sufficient performance to properly control the peripheral functions used. However, when making a choice, you need to check that the operation bit rate matches the data length of the peripheral functions handled by the microcontroller (e.g., the bit rate of the analog-todigital (A/D) converter or a timer). In addition, make sure that you select a microcontroller equipped with a CPU with an operating frequency that can sufficiently ensure the responsiveness (real-time property) required for the product. Note, however, that a higher operating frequency can increase the power consumption and pose a greater risk of extra costs required to prevent unwanted radiation. To avoid exaggerated specifications, it is important to balance the specifications with the required performance.

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 ]

Pay Attention to Number of External Ports and Pullup Functionality


The input/output (I/O) port is one of the typical functions of microcontrollers for use in control systems. For example, the I/O ports are used for operation switch on/off detection, light-emitting diode (LED) indicator on/off control and information exchange with the other devices that cooperate with the microcontroller to constitute the system.

10

11

Guidelines for Selecting a Microcontroller

[ A/D converter ]

Resolution and Number of Channels may Differ from Specification Sheet


In control systems, an A/D converter is familiar as a function to fetch electric signals into the microcontroller from a sensor and so on. In the case of an electronic hot water dispenser, for example, electric signals from a temperature sensor such as a thermistor are A/D converted and then fetched into the microcontroller via the input port to control the temperature, while the heater and other components are controlled by using the output port. In respect to the A/D converter, the main points to be considered are the resolution (bit count) and the conversion time. The resolution should be determined so that it is neither lower nor higher than the accuracy of the electronic signals (the level of noise contained in the signals, etc.) output by the sensor and that it adequately meets the data accuracy (granularity, etc.) required for control. The conversion time should be determined so that the conversion process completes within the period required for the control process. If you decide to use the A/D conversion functionality incorporated in the microcontroller, there are some things to keep in mind about the resolution of A/D conversion. To tell the truth, you cannot fully trust the resolution indicated in the microcontroller specification sheet. A/D converters are basically analog circuits and thus the performance you can get out from them may vary depending on the distance to the sensor, the mounting condition on the PCB and the state of power supply to the system. When high accuracy is required for the A/D conversion results, it may be better to give up using the A/D conversion functionality incorporated in the microcontroller and separately adopt an external A/D conversion device.

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 ]

Check Accuracy and Number of Timers


A timer is also an essential function for control systems. In regard to timer functionality, it is important to consider not only whether it can properly measure the time, but also whether it can make multiple timers cooperate with one another or make timers cooperate with other peripheral functions. It is also important to consider the number of timers. As far as time measurement is concerned, you have to pay attention to the type and accuracy of the clock that drives the timer. When choosing a timer, you have to take into account whether the clock used to drive the microcontroller (or its frequency-divided clock) or other clocks supplied externally can be selected as the clock to drive the timer, as well as the range of clock frequencies countable by the timer, depending on the type of time to be measured. When the rotational speed of a motor, etc., is detected by externally supplying the pulse output of a rotation sensor, for example, you need to check whether the pulse generation period can be counted properly.

12

13

Guidelines for Selecting a Microcontroller

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 ]

Signal Processing System

Determine the Number of Input Ports and Detection Method


Interrupts are extremely important functions to detect various phenomena (events) that occur in and outside the microcontroller. There are a number of causes of interrupts,

Ensure Performance Meeting Requirement Specifications


When image and audio signals are digitalized for use, the signals are processed in a number of different ways in accordance with the application. When playing back music on

14

15

Guidelines for Selecting a Microcontroller

Function, circuit

Circuit and points to consider CPU

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 ]

Prepare Solutions for Operations that Cannot be Processed by CPU


If the arithmetic performance of the microcontroller used

16

17

Guidelines for Selecting a Microcontroller

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 ]

Prevent Congestion of Data


It is absolutely necessary to consider whether the data can be properly supplied and transmitted in and outside a microcontroller. In other words, you also need to pay attention to the bus interface. In this case, check the data transfer rate of the bus, the capability to cooperate with peripheral functions such as a direct memory access (DMA) mechanism and whether the Harvard architecture is adopted in which the instruction and data buses are separated. A microcontroller operates by sequentially processing instructions for the CPU one at a time. The series of instructions has to be read via the bus from the memory that stores the programs. Data transferred by DMA is also read via the bus from memory or a peripheral function block and the processed data is then written. The bus is a path for these instructions and data and the bus interface serves to efficiently pass them via the bus. Therefore, the performance of the bus interface, which arbitrates the operations of the functions, is extremely important in order for the CPU, coprocessor, builtin DSP and DMA mechanism, etc., to share the bus. When audio data is transferred by DMA from a device that takes a considerable amount of time for readout, for example, if the DMA mechanism occupies the bus during the readout, the CPU cannot read the instructions and has to suspend

[ Middleware ]

Availability of Desired Middleware Matters


There is no sense in selecting a microcontroller with high arithmetic performance if you cannot use it effectively. When decoding an MP3 file on a portable music player, for example, you need a program that can carry out the operation. It would require an enormous amount of time and development cost if you had to code the operation program each time you adopted a different microcontroller. Moreover, you cannot make full use of the arithmetic performance if you do not effectively use the CPU, coprocessor or DSP. In short, you cannot develop a practical product unless a program tuned to fully take advantage of the arithmetic performance of a microcontroller is readily available. In such cases, whether middleware equipped with the functionality required for the product is provided by the microcontroller manufacturer or a third-party vendor is an important item to check when selecting a microcontroller.

18

19

Guidelines for Selecting a Microcontroller

Combined System

Examine Communication Standard between Microcontroller and Other Devices


Relatively large systems carry out signal processing and control in parallel (or rather this type of system may be more common). For example, a copier analyzes the duplicate data read from the original document and controls the paper feed mechanism and ink jetting function to print, while performing signal processing for the contrast ratio and color tone correction, etc. A system equipped with a universal serial bus (USB) port also performs communication control with the USB device inserted in the port. Such systems often require the adoption of multiple microcontrollers or collaboration with dedicated devices such as DSP because the requirements cannot be met just by using the functionality of one microcontroller. The point to consider in such cases is the method of communications between the microcontroller and other devices. A microcontroller normally has several functions to communicate with other devices. One of the typical functions is the serial communication function. For example, a bidirectional asynchronous communication circuit called a universal asynchronous receiver-transmitter (UART), which can be found in personal computers, etc., or a clock synchronization communication circuit called a serial peripheral interface (SPI) may be used. Neither method can be used if the devices on both sides of the serial communication use different communication standards. When selecting a microcontroller in such a case, you need to make sure that the type and the number of channels of the adopted serial interface meet the specifications required for the system.

Examine Restricting Conditions


When configuring a system, you have to select the microcontroller and other components while taking into account various restricting conditions. In the following, let us consider the criteria in selecting a microcontroller from the aspects of delivery time, cost and the utilization of development assets (Fig. 5). Since this involves a wide range of considerations, we mainly focus on flash microcontrollers and middleware, which are commonly used these days.

[ Delivery time, Cost ]

Microcontrollers with Flash Memory Become Potential Product


You have to prepare programs in order for a microcontroller to operate according to the intended specifications.
Points to consider
Specic suggestions and possible problems Consider the adoption of a microcontroller with ash memory. Delivery time, cost Check the capacity options of the ash memory. Check the tools used to write programs and their cost.

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

Fig. 5: Examples of restricting conditions to be considered

20

21

Guidelines for Selecting a Microcontroller

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 ]

Reuse Circuits and Software


When you develop a microcontroller-equipped product, all kinds of expertise will be accumulated during that time. For example, you may have to modify the timing to supply clock signals or the power supply circuit so that the microcontroller can be stably reset. In fact, these pieces of knowledge are all regarded as development assets. The programs that operate the microcontroller are sometimes referred to as software, and this software can also be reused as an asset. For example, if you developed or purchased middleware to process a certain kind of signal, the same software can be applied continuously to products that need the same function. In other words, microcontrollers on which the software was developed and runs stably will continue to be selected. In corporate activities, it is necessary to reuse assets achieved through investment in development as much as possible. Thus, once a microcontroller including other models from the same series is selected, it tends to be selected continuously. Note here that you must choose the right microcontroller that can meet the requirements demanded for the product under development. To make full use of previously adopted

22

23

Guidelines for Selecting a Microcontroller

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 ]

Pay Attention to Compiler Performance and Cooperation with Debugger


A compiler and a debugger are necessary tools in the development of programs to operate the microcontroller. A compiler is a tool to convert source code written in C, etc., into programs that can be read into the CPU. Compiler performance affects the performance and quality of programs, so you need to check in advance whether a compiler suitable for the microcontroller is available. For example, you may find yourself in trouble if the performance of the compiler optimization option function, which reduces the program capacity or increases the processing speed, is unsatisfactory, because then the planned program

24

25

Guidelines for Selecting a Microcontroller

The World's First Microprocessor Born of the Calculator Wars

"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.

NE Handbook 2011 Microcontrollers

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)

Data External bus

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

Microcontroller Glossary Word 02 Word 03

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.

Embedded Flash Memory


Embedded flash memory is flash memory formed on the same die on which the CPU and other logic circuits are provided. While microcontrollers equipped with masked ROM, where programs are written on a mask, have been pervasive thus far, most recent products come with embedded flash memory, where programs are written and used by device manufacturers. There are mainly two types of embedded flash memory. One is the floating gate structure that stores electric charges in a semiconductor layer covered by an insulating film. The other is the metal-oxide-nitride-oxide-silicon (MONOS) structure that stores charges in traps distributed in a nitride film covered by an insulating layer. (Instead of MONOS, the term SONOS, with the first word replaced by silicon, is sometimes used.) In general, it becomes harder to form the insulating film and the control gate in the floating gate structure as the miniaturization progresses. Meanwhile, the MONOS structure is thought to have a problem with data retention properties. Renesas Electronics selectively uses embedded flash memory of both types. The company chooses the floating gate structure when low power consumption and low-voltage operation have priority, whereas the MONOS structure is chosen when a large capacity and high-speed operation are prioritized.
Floating gate structure Floating gate MONOS structure Noncovalent bonds in nitride lm Nitride lm Block insulating lm Tunnel insulating lm Control gate

Asymmetric multiprocessing CPU0

Symmetric multiprocessing CPU0

Control gate

CPUn

CPUn

Memory space 0

Memory space n

Memory space

Drain

Source

Drain

Source

Two implementation forms in multi-core environment

Structures of embedded flash memory (illustration courtesy of Renesas Electronics)

30

31

Microcontroller Glossary Word 04 Word 05

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.

Integrated Development Environment


An integrated development environment is a software development environment that integrally provides the required tools. It includes a source code editor, a compiler to convert source code into object code, a linker to convert the object code into an executable form and a debugger to execute the programs in a stepwise manner and display the contents of various types of registers and memory. In the development of microcontroller software, an emulator connected to a microcontroller via the Joint Test Action Group (JTAG) interface is often used. It is a piece of hardware that enables users to check functions including the actual I/O control, while making the microcontroller operate at the same speed as the actual setup. As a result, the debugger included in an integrated development environment for microcontrollers usually has the capability to operate in conjunction with an emulator. Recently, an increasing number of embedded OS vendors are using Eclipse, an open source integrated development environment. Eclipse is distributed to embedded OS users with dedicated plug-ins such as a compiler and a debugger.

User program

Task
Programs of services (network functions, etc.) provided by OS Programs of I/O device processing and interrupt processing

OS (kernel)

Task management (generation, activation and switching of tasks)

Inter-task communication (event ag, semaphore, etc.)

Processing of various types of APIs (memory, time and interrupt management)

Typical structure of real-time OS

Example of integrated development environment using Eclipse (Picture courtesy of Wind River)

32

33

Microcontroller Glossary Word 06 Word 07

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.

Instruction Set Architecture


An instruction set architecture defines the CPU instructions, data type, register type, memory structure and addressing method for the operands, etc. It can be described as the CPU specifications from the perspective of software developers and compilers. The CPU design that indicates the kinds of circuits used to implement the instruction set architecture is called microarchitecture. In the development of microcontroller programs, assembly language or C is used. Assembly language uses instructions that correspond to the CPU object code (machine language) on a one-to-one basis, whereas C uses a compiler to convert the source code into object code. Assembly language is closely related to the instruction set architecture and thus it is difficult to port programs from one CPU to another once they are written. However, as programming in C, etc., is becoming popular, the differences in CPU instruction set architectures can be overcome by a compiler. Constraints such as the need to use products from the same series in order to properly run old programs are gradually being eliminated.

Source code in assembly language

Source code in C

Assembler

Compiler

Object code (machine language) based on instruction set architecture

Instruction set architecture

Instruction Data type Register structure Addressing method, etc.

Relationship between instruction set architecture and programming language

34

35

Microcontroller Glossary Word 08 Word 09

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.

Serial Communication Interface


A serial communication interface is a communication interface that sequentially transmits data one bit at a time via one signal line. Most microcontrollers integrate a universal asynchronous receiver-transmitter (UART), which is a transmitting and receiving circuit for asynchronous serial communication, or a universal synchronous and asynchronous receivertransmitter (USART), which is based on the UART but with an additional circuit for synchronous serial communication. The UART is mainly used for the asynchronous serial communication of microcontrollers, whereas the I2C and serial peripheral interface (SPI) are often used for synchronous serial communication. In addition, three-wire synchronous serial communication to communicate on a one-to-one basis is sometimes utilized. The universal serial bus (USB) and Ethernet supported by some microcontrollers are also serial communication standards. The parallel communication interface, which simultaneously transmits multiple-bit data via a number of signal lines, has a problem in that it uses many signal lines and the timing can easily fluctuate during high-speed operation. Accordingly, serial communication has been increasingly used in recent years.
Major serial communication interfaces supported by microcontrollers
Classification Asynchronous Synchronous Name of standard Number of signal lines 3 Notes

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

Microcontroller-Dedicated Cores Derived from General-Purpose Processor Cores


ARM processors are widely used as microcontrollers, as well as processors for mobile phones and other portable devices, but they have a somewhat complicated family line. The original ARM was a 32-bit reduced instruction set computer (RISC) architecture, which was developed by Acorn of the U.K. for its personal computers. This instruction set is called ARM V1. Later on, Acorn's development team was spun off as Advanced RISC Machines (currently known as ARM) and converted its business to sell processor cores. Its first product was the ARM6, followed by the release of the ARM7 and ARM8.
Basic instruction set

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

For application processors

ARM1

ARM2 ARM3

ARM6 ARM7

ARM8

ARM9

ARM10

For real-time control

ARM9E

For microcontrollers

ARM7TDMI

For FPGAs

38

39

sic ruction set

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

rocontrollersAlthough the ARM7TDMI was widely used as a general-pur-

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

For application processors

Cortex-A9 ARM10 ARM11 Cortex-A8 Cortex-A5 Cortex-R5 Cortex-R7 ARM9E Cortex-R4 Cortex-M4 Cortex-M3 Cortex-M0 Cortex-M1

For real-time control

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 34K MT ASE

MIPS32 1004K

MIPS32 M4K

MIPS32 M14K/M14Kc microMIPS MCU ASE

DSP ASE

ASEapplication specic extension

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

PD780 etc... NEC 16-bit

78K/0

78K0

V850ES

78K/

78K0R

V851 V830/V831 /V832

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

H8/300H H8/500 Hitachi 16-bit Hitachi 32-bit H8/300H Tiny

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

Mitsubishi 16-bit M16C M16C

Renesas Technology 16-bit R8C/1x R8C/2x


R8C/3x R3C/Lx R3C/Mx

RX200 M32C M32R Mitsubishi 32-bit M32C Renesas Technology 32-bit R32C/80 R32C/100

RX600

Renesas Electronics 16-bit 78K0R RL78

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

MC88000 MC6800 MC6809 MC68000 /MC68008 MC68010 MC68020 MC68030

32-bit processor/microcontroller

MC68040

MC68060 ColdFire V2

MC6801 /6803

MC68328 DragonBall MC683xx QUICC 16-bit microcontroller 68HC11 68HC12

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

MC88000 MC88000 MC6800 MC6800

the company is still providing existing models.


MC6809 MC6809 MC68000 MC68000 /MC68008 /MC68008

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

PowerISA PowerISA e700 e5500 e5500

e700

e500

e500

e500mc e500mc

e200

e200

e200Z e200Z

54

55

About the Authors

"Guidelines for Selecting a Microcontroller with Required Functions and Performance"


pp. 6-26

Norikazu Kunikata

Development Technology Promotion Group of Teac Corp.

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

Freelance technical writer

Mainly specializes in the architecture of CPUs, memory and other components, as well as operating systems (OS), drivers and firmware.

NE Handbook series 2011Microcontrollers


Publisher Nikkei Business Publications, Inc. 1-17-3 Shirokane, Minato-ku, Tokyo 108+8646 Japan Published April, 2011 Editor Nikkei Electronics Design Nikkei BP Consulting Printing Dai Nippon Printing

Sponsored by Digi-Key Corporation


Nikkei Business Publications, Inc. 2011 All rights reserved. Printed in Japan

http://www.digikey.jp/

You might also like