Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ch01 gadre(2)


Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

Ch01 gadre(2)

  1. 1. Ch01_Gadre 8/16/00 1:24 PM Page 1 1 INTRODUCTION T his book is about the Atmel’s AVR RISC microcontroller series. It covers architecture, design, and usage of this controller in various sample applications. Atmel Corporation ( is a leading manufacturer of integrated circuits (ICs). AVR is the name of a microcontroller series that Atmel produces and that is the subject of this book. RISC (Reduced Instruction Set Computer) is a popular architecture for modern processors (more about RISC in a later chapter). Before we get into the details, let us see why it is important to learn about microcon- trollers in general and the AVR RISC series in particular. A recent white paper by Sun Microsystems, on picoJava Microprocessor core architecture claims that an average home, by the end of the decade, will contain between 50 to 100 microcontrollers controlling dig- ital phones, microwave ovens, VCRs, televisions sets and television remotes, dishwashers, home security systems, PDAs, etc. Even though this may only reflect the position of a typ- ical home in the advanced countries, there is no denying that even this reflects a huge vol- ume of the microcontroller and microprocessor usage in the home environment. Besides home use, another area that is fueling the microcontroller growth is electronic commerce. With the advent of “smart cards,” which have much more storage capacity than the more conventional magnetic cards and are more reliable, these devices are all set to replace paper currency, which means that a humongous number of people will be using the smart cards. There is even more: An average car has about 15 processors; the 1999 Mercedes S-class car has 63 microprocessors, while the 1999 BMW has 65 processors! In fact, 1
  2. 2. Ch01_Gadre 8/16/00 1:24 PM Page 2 2 INTRODUCTION except perhaps the human body, microprocessors and microcontrollers have gotten into everything around us (and even that may not be completely true—it would not be surpris- ing if a heart pacemaker is microprocessor controlled). Microcontrollers or microprocessors are easier to use as a controller than say a dedi- cated digital state machine in a system such as a washing machine, for example, cheaper to upgrade, and require less inventory; all issues critical for maintaining economic viabil- ity and profit in the face of cutthroat competition—thus this great rush for microcon- trollers and microprocessors. Given the mass usage of microcontrollers in devices, sys- tems, and consumer components, it is obvious where the money is. So we want to learn about microcontrollers and microprocessors. However, you might have noticed that I have used these terms interchangeably and rather loosely. It is time to consider what a microcontroller really is and how it differs from a microprocessor. 1.1 Microcontroller, Microcomputer, or Microprocessor? It is common to hear these terms being used interchangeably. However, each is quite dis- tinct from the other and it is important to understand the differences at this point. A microprocessor is a central processing unit (CPU) on a single chip. In the olden times, the CPU was designed using many medium/large scale integrated (MSI, LSI) chips. Intel, with its 4004, put all the components of a CPU—arithmetic logic unit (ALU), instruction decoder, registers, bus control circuit, etc.—on a single chip, and so the micro- processor was born. The 4004 was a 4-bit (i.e., it processed data in chunks of 4 bits at a time) microprocessor designed to be the number cruncher in a calculator. When a microprocessor and associated support circuitry, peripheral I/O components and memory (program as well as data) were put together to form a small computer specif- ically for data acquisition and control applications, it was called a microcomputer. So if I were to design a circuit with a popular microprocessor 8088 or for that matter even the 8085, put in EPROM for storing the program, RAM for storing variables and results and a few I/O interface chips for interacting with the external world, I would have put together a microcomputer. In a logical extension, when the components that make a microcomputer were put together on a single chip of silicon, it was called the microcontroller. Texas Instruments is credited with creating the first microcontroller, the TMS1000 series. The TMS1000 series microcontrollers had enough RAM, ROM, and I/O and were used as microwave oven con- trollers, in industrial timers, and in calculators. Today there are many microcontroller families: Intel’s 8048 and 8051, Motorola’s 68HC11, Zilog’s Z8, Microchip’s PIC, Hitachi’s H8, and now Atmel’s AVR. A microcon- troller family indicates the availability of many different microcontrollers with the same basic central core but different peripherals, packaging, operating speed options, etc. Even though the definitions for a microprocessor, a microcomputer, and a microcontroller are clear and unambiguous, it is quite common to see these terms being used loosely and interchangeably. This fuzziness in terms exists and we will have to live with it. For our
  3. 3. Ch01_Gadre 8/16/00 1:24 PM Page 3 DO YOU NEED A MICROCONTROLLER? 3 work we will use the term microcontroller for a chip with on-chip memory and peripheral I/O capability (ports, timers, serial port, etc.) besides the CPU. The Atmel’s AVR controller, with its on-chip program and memory, I/O ports, timers, and serial port, is a microcontroller, as it certainly satisfies the above criteria. 1.2 Do You Need a Microcontroller? Looking at the needs, decide whether it can be done simply. It requires substantial invest- ment of time, money, and effort to put together a reliable microcontroller-based system. The advantages are small overheads when upgrading the system with small changes. It also helps to keep the inventory to a relatively small number of components. Possible alternatives are: 1. A dedicated digital circuit, 2. A digital circuit based on a PLD (programmable logic device), 3. An application specific integrated circuit (ASIC) based implementation. The above-mentioned alternatives to microprocessors are quite similar and differ in only the implementation. A dedicated digital circuit might use discrete ICs for the vari- ous logic functions (AND, OR, XOR, etc.) while a digital circuit based on a PLD would be more compact given the programmable nature of a PLD. A PLD contains an array of various logic function blocks, the user selects the required functionality, and the inter- connection between these functional blocks at the design level, thereby achieving a more integrated and compact solution. A PLD has a substantial amount of hardware, of which only a fraction gets utilized in average applications. The ASIC solution is like a PLD except that it is an optimized implementation. Figure 1.1 is the circuit diagram for implementing an hypothetical logic equation using individual digital ICs. These logic gates, as seen in Figure 1.1, are available in various logic families (TTL, CMOS, etc.). The figure illustrates the IC numbers for the TTL family. To implement this equation, we need 3 ICs with about 57 percent utilization (the 7404 IC has 6 gates and we have used 3 of them, while the 7408 and 7432 has 4 gates each, of which we have used 5 gates—8 gates in all out of 14 available gates, i.e., a utilization factor of .57). The same equation is now implemented using a PLD (such as 16L8). Figure 1.2 illustrates the internals of a PLD implementation. Each intersection in the AND array represents an AND gate, while each intersection in the OR array represents an OR gate. For this solution, we only need 1 IC. The PLD in Figure 1.2 has about 150 gates, of which we have used only about 12, representing a mere 8 percent utilization! (The actual 16L8 if used for this circuit has more hardware than seen in Figure 1.2.) A PLD-based circuit is also more power-consuming than a comparable ASIC circuit, which is due to the redun- dant hardware on the PLD chip. In contrast, a microprocessor-based (in fact an Atmel AVR processor-based) circuit is illustrated in Figure 1.3. It is as small as the PLD-based circuit, and in terms of power consumption, is better than a PLD circuit. In terms of speed, the PLD will perform much faster than a processor. Of course, for the microprocessor circuit to work correctly, it must
  4. 4. Ch01_Gadre 8/16/00 1:24 PM Page 4 4 INTRODUCTION A N1 A1 O1 A4 Output= ((/A*B) + (/B*A))*(C*/D) B A2 N2 N1, N2, N3=7404 C A1, A2, A3, A4=7408 A3 O1=7432 D N3 FIGURE 1.1 A digital circuit implemented using TTL ICs. C*/D A*/B /A*B ((/A*B) + (A*/B))*(C*/D) A B C AND Array D Output = ((/A*B) + (A*/B))*(C*/D) OR Array (/A*B) + (A*/B) C*/D (internal connections) FIGURE 1.2 The digital circuit in Figure 1.1 implemented using a PLD.
  5. 5. Ch01_Gadre 8/16/00 1:24 PM Page 5 WHY THE ATMEL’S AVR MICROCONTROLLER? 5 AT90S1200 A PB0 B PB1 PB4 Output C PB2 D PB3 FIGURE 1.3 An AVR microcon- troller-based imple- mentation for the logic equation. be programmed correctly. The program to implement our logic equation is discussed in a later chapter. While we are trying to portray the microprocessor circuit in a positive light, it is worthwhile to be able to remember the relative merits and demerits of each implemen- tation. It is not that the microprocessor is the solution to all problems. Sometimes you need to use a PLD in conjunction with a processor, and sometimes a PLD alone is required. One such implementation of a processor and a PLD working together is the subject of a later chapter. 1.3 Why the Atmel’s AVR Microcontroller? Whether a particular requirement needs to be implemented using discrete ICs or PLDs or a microprocessor must be determined by the designer. However, many applications could be suitably implemented using microcontrollers, and a great many of them would benefit from using the AVR as outlined briefly below. We will discuss the AVR features in detail in later chapters, but at this point it may be useful to outline the salient features. Atmel’s AVR RISC family of controllers has the fol- lowing features: 1. RISC architecture with mostly fixed-length instruction, load-store memory access, and 32 general-purpose registers. 2. A two-stage instruction pipeline that speeds up execution. 3. Majority of instructions take one clock cycle. 4. Up to 10-MHz clock operation. 5. Wide variety of on-chip peripherals, including digital I/O, ADC, EEPROM, Timer, UART, RTC timer, pulse width modulator (PWM), etc. 6. Internal program and data memory. 7. In-system programmable. 8. Available in 8-pin to 64-pin package size to suit wide variety of applications. 9. Up to 12 times performance speedup over conventional CISC controllers.
  6. 6. Ch01_Gadre 8/16/00 1:24 PM Page 6 6 INTRODUCTION 10. Wide operating voltage from 2.7 V to 6.0 V . 11. A simple architecture offers a small learning curve to the uninitiated. What does the name AVR stand for? Atmel says that it is just a name. However, AVR seems to have the initials of the people who designed the controller. 1.4 Organization of This Book The book has three logical sections: 1. Introduction and preliminary discussion about microcontrollers and AVR controller details. These are covered in Chapters 1 to 4. 2. System design using the AVR RISC controllers. Issues include system design, code development, software and hardware interfacing the AVR to the outside world. These aspects are covered in Chapters 5 to 9. 3. Sample applications are covered in the rest of the chapters, and these illustrate how the AVR controller could be used in real applications. The idea is to present the material in a format that is easily accessible to readers of vary- ing interests. Beginners could start from the initial chapters and work their way up till the very end. An individual with some experience with microcontrollers could, on the other hand, skip the initial chapters in Section 1 and pick up where new material is presented. However, the last section on applications could be a starting point for beginners as well as experienced users to give perspective. The sample applications illustrate the various ways in which this versatile family of controllers could be used and could well be a starting point for a beginner. The middle sections deal with the specifics of the AVR controller family and how to get an application up and running, how to develop code, and the various tools available in the form of assemblers, compilers, simulators, evaluation and prototyping boards. I have sam- pled a few of these commercial and freeware offerings, and I present my opinion about these products in these sections. 1.5 Timing Diagram Conventions Timing diagrams are the key to understanding digital circuits and systems. Timing dia- grams illustrate how the signals of a circuit vary as a function of time, as well as the inter- play between the signals. They are the starting point in describing the way a circuit or a system ought to work, and after a circuit has been designed, the timing diagrams tell the readers how the circuit or the system works. In turn, if this circuit is being used as a sub- system in a larger design, its associated timing diagram will determine how it fits into the larger system or how the larger system is to be designed to accommodate the smaller sub- circuit. (Figure 1.4.)
  7. 7. Ch01_Gadre 8/16/00 1:24 PM Page 7 TIMING DIAGRAM CONVENTIONS 7 Supply Voltage High level 1. A low-level signal is zero voltage Zero Voltage (actually a range of voltage around Low level zero), and a high-level signal is supply voltage (or a range around it). High level 2. Transition of a low-level signal to Low level Transition high level. 3. Transition of a high-level signal to High level a low level. Low level Parallel Signals 4. Transition of a bunch of parallel signals (called BUS) from one level to another. Transition 5. A signal that goes in a high- impedance state, also called a floating signal. Floating (high impedence) duration of the signal FIGURE 1.4 Timing diagrams. Together with a circuit diagram, it is the electrical engineer’s equivalent of an architec- tural plan of a building. A circuit diagram and the associated timing diagram completely and exactly describe the circuit’s working. (Figures 1.5, 1.6.) To understand circuits and the timing diagrams, we must follow a uniform convention. To describe the various states a digital circuit operates in, we have a number of symbols. This section defines the conventions we will follow in this text.
  8. 8. Ch01_Gadre 8/16/00 1:24 PM Page 8 8 INTRODUCTION 6. A BUS with floating signals. Duration of the signal when it is in high impedance, floating state 7. A change of condition on one signal causes a transition on another signal. The example shows a high-to-low signal transition causing a high-to-low-level transition on another signal. 8. A transition on a signal causes a transition on a BUS. FIGURE 1.5 More timing diagrams.
  9. 9. Ch01_Gadre 8/16/00 1:24 PM Page 9 TIMING DIAGRAM CONVENTIONS 9 9. More than 1 condition must exist to force a transition of signals on the BUS. Example shows that a transition on one signal during the time when the other signal is at high level causes a transition on the BUS signals. 10. A condition on a signal causes changes on more than one signal level. The example shows that a high-to-low transition on one signal causes a high-to-low transition on the second signal and a pulse on another signal. FIGURE 1.6 And some more timing diagrams.
  10. 10. Ch01_Gadre 8/16/00 1:24 PM Page 10