User:Unknown13

Microcontroller Basics

1.1 Introduction

Even at a time when Intel presented the first microprocessor with the 4004 there was alrady a demand for microcontrollers: The contemporary TMS1802 from Texas Instruments, designed for usage in calculators, was by the end of 1971 advertised for applications in cash registers, watches and measuring instruments. The TMS 1000, which was introduced in 1974, already included RAM, ROM, and I/O on-chip and can be seen as one of the first microcontrollers, even though it was called a microcomputer. The first controllers to gain really widespread use were the Intel 8048, which was integrated into PC keyboards, and its successor, the Intel 8051, as well as the 68HCxx series of microcontrollers from Motorola. Today, microcontroller production counts are in the billions per year, and the controllers are integrated into many appliances we have grown used to, like • household appliances (microwave, washing machine, coffee machine, . . . ) • telecommunication (mobile phones) • automotive industry (fuel injection, ABS, . . . ) • aerospace industry • industrial automation • . . . But what is this microcontroller we are talking about? What is the difference to a microprocessor? And why do we need microcontrollers in the first place? To answer these questions, let us consider a simple toy project: A heat control system. Assume that we want to • periodically read the temperature (analog value, is digitized by sensor; uses 4-bit interface), • control heating according to the temperature (turn heater on/off; 1 bit), • display the current temperature on a simple 3-digit numeric display (8+3 bits), • allow the user to adjust temperature thresholds (buttons; 4 bits), and • be able to configure/upgrade the system over a serial interface. So we design a printed-circuit board (PCB) using Zilog’s Z80 processor. On the board, we put a Z80 CPU, 2 PIOs (parallel I/O; each chip has 16 I/O lines, we need 20), 1 SIO (serial I/O; for communication to the PC), 1 CTC (Timer; for periodical actions), SRAM (for variables), Flash (for program memory), and EEPROM (for constants).1 The resulting board layout is depicted in Figure 1.1; as you can see, there are a lot of chips on the board, which take up most of the space (euro format, 10 x16 )