You are previewing Designing Embedded Hardware.
O'Reilly logo
Designing Embedded Hardware

Book Description

Intelligent readers who want to build their own embedded computer systems-- installed in everything from cell phones to cars to handheld organizers to refrigerators-- will find this book to be the most in-depth, practical, and up-to-date guide on the market. Designing Embedded Hardware carefully steers between the practical and philosophical aspects, so developers can both create their own devices and gadgets and customize and extend off-the-shelf systems. There are hundreds of books to choose from if you need to learn programming, but only a few are available if you want to learn to create hardware. Designing Embedded Hardware provides software and hardware engineers with no prior experience in embedded systems with the necessary conceptual and design building blocks to understand the architectures of embedded systems. Written to provide the depth of coverage and real-world examples developers need, Designing Embedded Hardware also provides a road-map to the pitfalls and traps to avoid in designing embedded systems. Designing Embedded Hardware covers such essential topics as:

  • The principles of developing computer hardware

  • Core hardware designs

  • Assembly language concepts

  • Parallel I/O

  • Analog-digital conversion

  • Timers (internal and external)

  • UART

  • Serial Peripheral Interface

  • Inter-Integrated Circuit Bus

  • Controller Area Network (CAN)

  • Data Converter Interface (DCI)

  • Low-power operation

This invaluable and eminently useful book gives you the practical tools and skills to develop, build, and program your own application-specific computers.

Table of Contents

  1. Designing Embedded Hardware
    1. Foreword
    2. Preface
      1. Organization of This Book
      2. Acknowledgments
      3. Online Resources
      4. Conventions
      5. Disclaimer
    3. I. Background
      1. 1. Introduction to Computer Architecture
        1. Concepts
          1. Processors
          2. System Architecture
            1. Buses
            2. Processor operation
            3. ALU
            4. Registers
            5. Stacks
            6. Addressing modes
            7. Big-endian and little-endian
          3. Interrupt s
            1. Hardware interrupts
            2. Software interrupts
          4. CISC and RISC
          5. Digital Signal Processors
        2. Memory
          1. RAM
          2. ROM
          3. EPROM
          4. EEROM
          5. Flash
        3. Input/Output
        4. DMA
          1. Parallel and Distributed Computers
            1. Introduction to parallel architectures
            2. Single-instruction multiple-data computers
            3. Multiple-instruction multiple-data computers
        5. Embedded Computer Architecture
      2. 2. Electronics 101
        1. Voltage and Current
        2. Analog Signals
        3. Power
        4. Resistors
        5. Capacitors
          1. Types of Capacitors
        6. RC Circuits
        7. Inductors
        8. Transformers
        9. Diodes
        10. Crystals
          1. Clocks and Oscillators
            1. Power versus speed
        11. Digital Signals
        12. Understanding Schematics
        13. Read the Datasheet
      3. 3. Power Sources
        1. Juice from the Wall
        2. Batteries
        3. Regulators
      4. 4. Building It
        1. Avoid Noise
          1. Minimize the Current Loop Area
          2. Keep the Power Smooth
          3. How to Destroy a Computer Without Really Trying
        2. Quick-and-Dirty Construction
          1. Breadboarding
          2. Wirewrapping
        3. Printed-Circuit Boards
          1. Laying Out a PCB
        4. Routing a Design
        5. Tools for Debugging
        6. Putting It All Together
          1. Soldering
        7. Powering Up
        8. Add in the Processor
        9. Some Thoughts on Debugging
    4. II. Embedded Processors and Systems
      1. 5. The PIC Microcontrollers
        1. A Tale of Two Processors
        2. Starting Simple
          1. Variable-speed Oscillator
          2. Power-on Reset
        3. A Bigger PIC
      2. 6. The AVR Microcontrollers
        1. The AVR Architecture
        2. The ATtiny15 Processor
          1. Adding a Status LED
          2. Switching Analog Signals
        3. Downloading Code
        4. A Bigger AVR
        5. Bus Interfacing
          1. Timing
          2. AT90S8515 Memory Cycle
          3. Bus Signals
          4. Memory Maps and Address Decoding
          5. PALs
          6. Timing Analysis
          7. Memory Management
            1. Page mapping
            2. Banked memory
            3. Address translation
      3. 7. 68000-Series Computers
        1. The 68000 Architecture
        2. A Simple 68000-Based Computer
          1. Reset Circuit
          2. Address Decoder
          3. I/O
          4. Memory
          5. Wait States
      4. 8. DSP-Based Controllers
        1. The DSP56800
        2. A DSP56805-Based Computer
          1. Oscillator
          2. Reset and Interrupts
          3. External Memory
        3. JTAG
    5. III. Peripherals and Interfacing
      1. 9. Adding Peripherals Using SPI and I2C
        1. Serial Peripheral Interface
          1. SPI-based Clock/Calendar
          2. SPI-based Digital Potentiometer
          3. Adding Nonvolatile Data Memory with SPI
          4. Adding a Parameter Memory Using SPI
        2. Inter Integrated Circuit
        3. Adding a Real-Time Clock with I2C
        4. Adding a Small Display with I2C
      2. 10. Serial Ports
        1. UARTs
        2. Error Detection
        3. Old Faithful—RS-232C
          1. Shake Hands
          2. Implementing an RS-232C Interface
          3. Using a Serial Port as a Power Supply
        4. RS-422
        5. Infrared Communication
          1. IrDA
          2. An IrDA Interface
          3. Other Infrared Devices
        6. USB
          1. USB Packets
          2. Physical Interface
          3. Implementing a USB Interface
      3. 11. Networks
        1. RS-485
        2. Controller Area Network (CAN)
        3. Ethernet
          1. Adding an Ethernet Interface
      4. 12. Analog
        1. Amplifiers
        2. Analog-to-Digital Conversion
          1. Sample Rates
        3. Interfacing an External ADC
        4. Temperature Sensor
        5. Light Sensor
          1. Amplifying the Light Sensor
        6. Accelerometer
        7. Pressure Sensors
        8. Magnetic Field Sensor
        9. Digital-to-Analog Conversion
        10. PWM
        11. Motor Control
          1. Sensing Motor Speed
        12. Switching Big Loads
    6. 13. References
    7. Index
    8. Colophon