PROGRAMMING AND CUSTOMIZING THE AVR MICROCONTROLLER
CONTENTS 1 ATMEL AVR ARCHITECTURE OVERVIEW REDUCED INSTRUCTION SET COMPUTER ATMEGA16 ARCHITECTURE OVERVIEW NONVOLATILE AND DATA MEMORIES IN-SYSTEM PROGRAMMABLE FLASH EEPROM BYTE-ADDRESSABLE EEPROM STATIC RANDOM ACCESS MEMORY PROGRAMMABLE LOCK BITS PORT SYSTEM PERIPHERAL FEATURES---INTERNAL SUBSYSTEMS TIME BASE TIMING SUBSYSTEM PULSE WIDTH MODULATION CHANNELS SERIAL USART SERIAL PERIPHERAL INTERFACE TWO-WIRE SERIAL INTERFACE ANALOG-TO-DIGITAL CONVERTER INTERRUPTS PHYSICAL AND OPERATING PARAMETERS POWER CONSUMPTION SPEED GRADES HARDWARE CONFIGURATION SOFTWARE CONFIGURATION PROGRAMMING THE ATMEGA16 PROGRAMMING PROCEDURE SOFTWARE PORTABILITY SUMMARY 2 SERIAL COMMUNICATION SUBSYSTEM SERIAL COMMUNICATIONS SERIAL COMMUNICATION TERMINOLOGY ASYNCHRONOUS VERSUS SYNCHRONOUS SERIAL TRANSMISSION BAUD RATE FULL DUPLEX NONRETURN TO ZERO CODING FORMAT THE RS-232 COMMUNICATION PROTOCOL PARITY USART CLOCK GENERATOR USART TRANSMITTER USART REGISTERS SPI OPERATION REGISTERS PROGRAMMING 3 ANALOG-TO-DIGITAL CONVERSION BACKGROUND THEORY SAMPLING, QUANTIZATION, AND ENCODING ANALOG-TO-DIGITAL CONVERSION PROCESS ADC CONVERSION TECHNOLOGIES SUCCESSIVE APPROXIMATION INTEGRATION COUNTER-BASED CONVERSION PARALLEL CONVERSION THE ATMEL ATMEGA16 ADC SYSTEM BLOCK DIAGRAM ADC MULTIPLEXER SELECTION REGISTER ADC CONTROL AND STATUS REGISTER A ADC DATA REGISTERS (ADCH AND ADCL) PROGRAMMING THE ADC DIGITAL-TO-ANALOG CONVERSION ATMEGA16 INTERRUPT SYSTEM PROGRAMMING AN INTERRUPT APPLICATION EXTERNAL INTERRUPTS INTERNAL INTERRUPT 5 TIMING SUBSYSTEM TIMING-RELATED TERMINOLOGY FREQUENCY PERIOD DUTY CYCLE TIMING SYSTEM OVERVIEW COUNTING EVENTS OUTPUT COMPARE---GENERATING TIMING SIGNALS TO INTERFACE EXTERNAL DEVICES INDUSTRIAL IMPLEMENTATION CASE STUDY (PWM) OVERVIEW OF THE ATMEL TIMERS PHASE CORRECT PWM MODE FAST PWM TIMER 0 REGISTERS TIMER/COUNTER CONTROL REGISTER 0 TIMER/COUNTER REGISTER OUTPUT COMPARE REGISTER TIMER/COUNTER INTERRUPT MASK REGISTER TIMER/COUNTER INTERRUPT FLAG REGISTER TIMER 1 TIMER 1 REGISTERS TIMER/COUNTER REGISTER 1 (TCNT1H/TCNT1) OUTPUT COMPARE REGISTER 1 CHANNEL A (OCR1AH/ OCR1AL) INPUT CAPTURE REGISTER 1 (ICR1H/ICR1L) TIMER/COUNTER INTERRUPT MASK REGISTER (TIMSK) TIMER/COUNTER INTERRUPT FLAG REGISTER (TIFR) TIMER 2 TIMER/COUNTER REGISTER (TCNT2) OUTPUT COMPARE REGISTER (OCR2) PRECISION DELAY PULSE WIDTH MODULATION INPUT CAPTURE MODE 5 10 SUMMARY 5 12 CHAPTER PROBLEMS 6 ATMEL AVR OPERATING PARAMETERS AND INTERFACING OPERATING PARAMETERS INPUT DEVICES SWITCHES SWITCH DEBOUNCING SENSORS ANALOG SENSORS SEVEN-SEGMENT LED DISPLAYS DOT MATRIX DISPLAY LIQUID CRYSTAL DISPLAY HIGH-POWER DC DEVICES DC MOTOR SPEED AND DIRECTION CONTROL DC MOTOR OPERATING PARAMETERS AC DEVICES APPLICATION: FLIGHT SIMULATOR PANEL CHAPTER PROBLEMS