Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Designing Embedded Hardware
Preface
Organization of This Book
Using Code Examples
Conventions
SafariĀ® Enabled
How to Contact Us
Acknowledgments
1. An Introduction to Computer Architecture
1.1. Concepts
1.1.1. Processors
1.1.2. Basic System Architecture
1.1.2.1. Buses
1.1.2.2. Processor operation
1.1.2.3. ALU
1.1.3. Interrupts
1.1.3.1. Hardware interrupts
1.1.3.2. Software interrupts
1.1.4. CISC and RISC
1.1.5. Digital Signal Processors
1.2. Memory
1.2.1. RAM
1.2.2. ROM
1.2.2.1. EPROM
1.2.2.2. EEROM
1.2.2.3. Flash
1.3. Input/Output
1.4. DMA
1.4.1. Parallel and Distributed Computers
1.4.1.1. Introduction to parallel architectures
1.4.1.2. SIMD computers
1.4.1.3. MIMD computers
1.5. Embedded Computer Architecture
2. Assembly Language
2.1. Registers
2.2. Machine Code
2.3. Signed Numbers
2.4. Addressing Modes
2.4.1. Big-Endian and Little-Endian Addressing
2.5. Coding in Assembly
2.6. Disassembly
2.7. Position-Independent Code
2.8. Loops
2.9. Masking
2.10. Indexed Addressing
2.11. Stacks
2.12. Timing of Instructions
3. Forth/Open Firmware
3.1. Introducing Forth
3.2. String Words
3.3. Stack Manipulation
3.4. Creating New Words
3.5. Comments
3.6. if ... else
3.7. Loops
3.8. Data Structures
3.9. Interacting with Hardware and Memory
3.10. Forth Programming Guidelines
4. Electronics 101
4.1. Voltage and Current
4.2. Analog Signals
4.3. Power
4.4. Reading Schematics
4.5. Resistors
4.6. Capacitors
4.6.1. Types of Capacitors
4.7. RC Circuits
4.8. Inductors
4.9. Transformers
4.10. Diodes
4.11. Crystals
4.11.1. Clocks and Oscillators
4.11.1.1. Power versus speed
4.12. Digital Signals
4.13. Electrical Characteristics
4.13.1. Absolute Maximum Ratings
4.13.2. DC Characteristics
4.13.3. AC Characteristics and Timing
4.14. Logic Gates
4.15. The Importance of Reading the Datasheet
5. Power Sources
5.1. The Stuff Out of the Wall
5.2. Batteries
5.3. Low Power Design
5.4. Regulators
5.5. LM78xx Regulators
5.6. MAX603/MAX604 Regulators
5.7. MAX1615 Regulator
5.8. MAX724 Regulator
5.9. Electrical Noise and Interference
5.9.1. Minimize the Current Loop Area
5.9.2. Keep the Power Smooth
5.9.3. How to Destroy a Computer Without Really Trying
6. Building Hardware
6.1. Tools
6.1.1. Development Kits
6.1.2. Measurement Tools
6.1.3. In-Circuit Emulators
6.1.4. Construction Tools
6.2. Soldering
6.2.1. How to Solder
6.3. Quick Construction
6.3.1. Breadboarding
6.3.2. Wirewrapping
6.4. Printed-Circuit Boards
6.4.1. Laying Out a PCB
6.5. Building It
6.5.1. Powering Up for the First Time
6.5.2. Add in the Processor
6.5.3. Some Thoughts on Debugging
6.6. JTAG
7. Adding Peripherals Using SPI
7.1. Serial Peripheral Interface
7.1.1. SPI-Based Clock/Calendar
7.1.2. SPI-Based Digital Potentiometer
7.1.3. Adding Nonvolatile Data Memory with SPI
7.1.4. Adding a Parameter Memory Using SPI
8. Adding Peripherals Using I2C
8.1. Overview of I2C
8.2. Adding a Real-Time Clock with I2C
8.3. Adding a Small Display with I2C
9. Serial Ports
9.1. UARTs
9.2. Error Detection
9.3. Old Faithful: RS-232C
9.1.1. Shake Hands
9.1.2. Implementing an RS-232C Interface
9.1.3. Using a Serial Port as a Power Supply
9.4. RS-422
9.5. RS-485
10. IrDA
10.1. Introduction to IrDA
10.1.1. An IrDA Interface
10.1.2. Other Infrared Devices
11. USB
11.1. Introduction to USB
11.2. USB Packets
11.3. Physical Interface
11.4. Implementing a USB Interface
12. Networks
12.1. Controller Area Network (CAN)
12.2. Ethernet
12.2.1. Adding an Ethernet Interface
13. Analog
13.1. Amplifiers
13.2. Analog to Digital Conversion
13.2.1. Sample Rates
13.3. Interfacing an External ADC
13.4. Temperature Sensor
13.5. Light Sensor
13.5.1. Amplifying the Light Sensor
13.6. Accelerometer
13.7. Pressure Sensors
13.8. Magnetic-Field Sensor
13.9. Digital to Analog Conversion
13.10. PWM
13.11. Motor Control
13.11.1. Sensing Motor Speed
13.12. Switching Big Loads
14. The PIC Microcontrollers
14.1. A Tale of Two Processors
14.2. Starting Simple
14.2.1. Variable-Speed Oscillator
14.2.2. Power-on Reset
14.3. A Bigger PIC
14.4. PIC-Based Environmental Datalogger
14.5. Motor Control with a PIC
15. The AVR Microcontrollers
15.1. The AVR Architecture
15.2. The ATtiny15 Processor
15.2.1. Adding a Status LED
15.2.2. Switching Analog Signals
15.3. Downloading Code
15.4. A Bigger AVR
15.5. AVR-Based Datalogger
15.6. Bus Interfacing
15.6.1. AT90S8515 Memory Cycle
15.6.2. Bus Signals
15.6.3. Memory Maps and Address Decoding
15.6.4. PALs
15.6.5. Timing Analysis
15.6.6. Memory Management
15.6.6.1. Page mapping
15.6.6.2. Banked memory
15.6.6.3. Address translation
16. 68HC11
16.1. Architecture of the 68HC11
16.2. A Simple 68HC11-Based Computer
16.3. Address Decoding
17. MAXQ
17.1. Architectural Overview
17.2. Schematics
18. 68000-Series Computers
18.1. The 68000 Architecture
18.2. A Simple 68000-Based Computer
18.2.1. Reset Circuit
18.2.2. Address Decoder
18.2.3. I/O
18.2.4. Memory
18.2.5. Wait States
19. DSP-Based Controllers
19.1. The DSP56800
19.2. A DSP56805-Based Computer
19.2.1. Oscillator
19.2.2. Reset and Interrupts
19.2.3. External Memory
19.3. JTAG
Index
About the Author
Colophon
← Prev
Back
Next →
← Prev
Back
Next →