Embedded System Design with the Atmel AVR Microcontroller

Book description

This textbook provides practicing scientists and engineers an advanced treatment of the Atmel AVR microcontroller. This book is intended as a follow-on to a previously published book, titled Atmel AVR Microcontroller Primer: Programming and Interfacing. Some of the content from this earlier text is retained for completeness. This book will emphasize advanced programming and interfacing skills. We focus on system level design consisting of several interacting microcontroller subsystems. The first chapter discusses the system design process. Our approach is to provide the skills to quickly get up to speed to operate the internationally popular Atmel AVR microcontroller line by developing systems level design skills. We use the Atmel ATmega164 as a representative sample of the AVR line. The knowledge you gain on this microcontroller can be easily translated to every other microcontroller in the AVR line. In succeeding chapters, we cover the main subsystems aboard the microcontroller, providing a short theory section followed by a description of the related microcontroller subsystem with accompanying software for the subsystem. We then provide advanced examples exercising some of the features discussed. In all examples, we use the C programming language. The code provided can be readily adapted to the wide variety of compilers available for the Atmel AVR microcontroller line. We also include a chapter describing how to interface the microcontroller to a wide variety of input and output devices. The book concludes with several detailed system level design examples employing the Atmel AVR microcontroller.

Table of contents

  1. Acknowledgments
  2. Preface
  3. Embedded Systems Design
    1. What is an embedded system?
    2. Embedded system design process
      1. Problem Description
      2. Background Research
      3. Pre-Design
      4. Design
      5. Implement Prototype
      6. Preliminary Testing
      7. Complete and Accurate Documentation
    3. Example: Kinesiology and Health Laboratory Instrumentation
    4. Summary
    5. Chapter Problems
  4. References
  5. Atmel AVR Architecture Overview
    1. ATmega164 Architecture Overview
      1. Reduced Instruction Set Computer---RISC
      2. Assembly Language Instruction Set
      3. C Operator Size
      4. Bit Twiddling
      5. ATmega164 Architecture Overview
    2. Nonvolatile and Data Memories
      1. In-System Programmable Flash EEPROM
      2. Byte-Addressable EEPROM
      3. Accessing Byte-Addressable EEPROM Example
      4. Static Random Access Memory (SRAM)
      5. Programmable Lock Bits
    3. Port System
    4. Peripheral Features---Internal Subsystems
      1. Time Base
      2. Timing Subsystem
      3. Pulse Width Modulation Channels
      4. Serial Communications
      5. Analog to Digital Converter---ADC
      6. Analog Comparator
      7. Interrupts
    5. Physical and Operating Parameters
      1. Packaging
      2. Power Consumption
      3. Speed Grades
    6. Choosing a Microcontroller
    7. Application: ATmega164 Testbench
      1. Hardware Configuration
      2. Software Configuration
    8. Programming the ATmega164
      1. Programming Procedure
    9. In-System Programming (ISP)
    10. Software Portability
    11. Summary
    12. Chapter Problems
  6. References
  7. Serial Communication Subsystem
    1. Serial Communications
      1. ASCII
    2. Serial USART
      1. System Overview
      2. System Operation and Programming
      3. Full Duplex USART-based Microcontroller Link (1/2)
      4. Full Duplex USART-based Microcontroller Link (2/2)
      5. USART-based Radio Frequency Microcontroller Link
      6. USART-to-PC
      7. USART Serial Liquid Crystal Display
      8. Serial Peripheral Interface---SPI
      9. Extending the Atmel AVR features via the SPI
    3. Networked Microcontrollers
      1. Two-wire Serial Interface
      2. Controller Area Network (CAN)
      3. Zigbee Wireless IEEE 802.15.4 Interface
    4. Summary
    5. Chapter Problems
  8. References
  9. Analog to Digital Conversion (ADC)
    1. Sampling, Quantization and Encoding
      1. Resolution and Data Rate
    2. Analog-to-Digital Conversion (ADC) Process
      1. Transducer Interface Design (TID) Circuit
      2. Operational Amplifiers
    3. ADC Conversion Technologies
      1. Successive-Approximation
    4. The Atmel ATmega164 ADC System
      1. Block Diagram
      2. Registers
      3. Programming the ADC
    5. Examples
      1. ADC Rain Gage Indicator
      2. ADC Rain Gage Indicator with SPI
      3. Transmitting ADC values via the USART or SPI
      4. One-bit ADC - Threshold Detector
    6. Digital-to-Analog Conversion (DAC)
      1. Octal Channel, 8-bit DAC via the SPI
    7. Summary
    8. Chapter Problems
  10. References
  11. Interrupt Subsystem
    1. Interrupt Theory
    2. ATmega164 Interrupt System
    3. Programming an Interrupt System
    4. Application
      1. External Interrupts
      2. Internal Interrupt
    5. Foreground and Background Processing
    6. Interrupt Examples
      1. Real Time Clock
      2. Interrupt Driven USART (1/3)
      3. Interrupt Driven USART (2/3)
      4. Interrupt Driven USART (3/3)
    7. Summary
    8. Chapter Problems
  12. References
  13. ATmega164 Register Set
    1. ATmega164 Header File
      1. Author's Biography
        1. Index

Product information

  • Title: Embedded System Design with the Atmel AVR Microcontroller
  • Author(s): Steven F. Barrett
  • Release date: January 2009
  • Publisher(s): Morgan & Claypool Publishers
  • ISBN: 9781608453320