cp316- introduction to avr architecture

31
Introduction CP316 Introduction to AVR Architecture Terry Sturtevant Wilfrid Laurier University June 19, 2019 Terry Sturtevant CP316 Introduction to AVR Architecture

Upload: others

Post on 18-Dec-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Introduction

CP316Introduction to AVR Architecture

Terry Sturtevant

Wilfrid Laurier University

June 19, 2019

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

What this course is and is not

This is not an exhaustive course about the AVRmicrocontroller.This is not an exhaustive course about the AVR assemblylanguage.This is not an exhaustive course about the Arduino UNO.This is not an exhaustive course about real-time programming.This is an introduction to techniques for real-time hardwareinterfacing.

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

What this course is and is not

This is not an exhaustive course about the AVRmicrocontroller.

This is not an exhaustive course about the AVR assemblylanguage.This is not an exhaustive course about the Arduino UNO.This is not an exhaustive course about real-time programming.This is an introduction to techniques for real-time hardwareinterfacing.

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

What this course is and is not

This is not an exhaustive course about the AVRmicrocontroller.This is not an exhaustive course about the AVR assemblylanguage.

This is not an exhaustive course about the Arduino UNO.This is not an exhaustive course about real-time programming.This is an introduction to techniques for real-time hardwareinterfacing.

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

What this course is and is not

This is not an exhaustive course about the AVRmicrocontroller.This is not an exhaustive course about the AVR assemblylanguage.This is not an exhaustive course about the Arduino UNO.

This is not an exhaustive course about real-time programming.This is an introduction to techniques for real-time hardwareinterfacing.

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

What this course is and is not

This is not an exhaustive course about the AVRmicrocontroller.This is not an exhaustive course about the AVR assemblylanguage.This is not an exhaustive course about the Arduino UNO.This is not an exhaustive course about real-time programming.

This is an introduction to techniques for real-time hardwareinterfacing.

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

What this course is and is not

This is not an exhaustive course about the AVRmicrocontroller.This is not an exhaustive course about the AVR assemblylanguage.This is not an exhaustive course about the Arduino UNO.This is not an exhaustive course about real-time programming.This is an introduction to techniques for real-time hardwareinterfacing.

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Microprocessors, digital signal processors andmicrocontrollers

µPU vs. DSP vs. µCUµPU is for general purpose processingDSP is for math intensive processingµCU is for I/O intensive processing

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Microprocessors, digital signal processors andmicrocontrollers

µPU vs. DSP vs. µCU

µPU is for general purpose processingDSP is for math intensive processingµCU is for I/O intensive processing

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Microprocessors, digital signal processors andmicrocontrollers

µPU vs. DSP vs. µCUµPU is for general purpose processing

DSP is for math intensive processingµCU is for I/O intensive processing

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Microprocessors, digital signal processors andmicrocontrollers

µPU vs. DSP vs. µCUµPU is for general purpose processingDSP is for math intensive processing

µCU is for I/O intensive processing

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Microprocessors, digital signal processors andmicrocontrollers

µPU vs. DSP vs. µCUµPU is for general purpose processingDSP is for math intensive processingµCU is for I/O intensive processing

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

AVR core

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

I/O modules identify a microcontroller

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Section 8

Memory organization - Harvard architecture

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Section 8

Memory organization - Harvard architecture

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Harvard Architecture

separate memory space for data and codeaddress and data buses can be different widthsprogram execution is more efficient since execution of currentinstruction and fetch of next instruction can happensimultaneously

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Harvard Architecture

separate memory space for data and code

address and data buses can be different widthsprogram execution is more efficient since execution of currentinstruction and fetch of next instruction can happensimultaneously

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Harvard Architecture

separate memory space for data and codeaddress and data buses can be different widths

program execution is more efficient since execution of currentinstruction and fetch of next instruction can happensimultaneously

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Harvard Architecture

separate memory space for data and codeaddress and data buses can be different widthsprogram execution is more efficient since execution of currentinstruction and fetch of next instruction can happensimultaneously

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Figure 7-4

Instruction timing

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Figure 7-5

ALU register timing

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Figure 8-2

Program memory

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Figure 8-3

Data and I/O memory

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Registers accessible as data or I/O

LD/LDS/LDD and ST/STS/STD for all I/O registersI/O registers 0x00-0x1FSBI and CBI instructions as wellLD and ST instructions require 0x20 added to address

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Registers accessible as data or I/O

LD/LDS/LDD and ST/STS/STD for all I/O registers

I/O registers 0x00-0x1FSBI and CBI instructions as wellLD and ST instructions require 0x20 added to address

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Registers accessible as data or I/O

LD/LDS/LDD and ST/STS/STD for all I/O registersI/O registers 0x00-0x1FSBI and CBI instructions as well

LD and ST instructions require 0x20 added to address

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Registers accessible as data or I/O

LD/LDS/LDD and ST/STS/STD for all I/O registersI/O registers 0x00-0x1FSBI and CBI instructions as wellLD and ST instructions require 0x20 added to address

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Section 14

Access as I/O or data (addresses +0x20)

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Section 14

Access as I/O or data (addresses +0x20)

Terry Sturtevant CP316 Introduction to AVR Architecture

IntroductionWhat this course is and is notAVR MicrocontrollerHarvard Architecture

Section 14

Access as I/O or data (addresses +0x20)

Terry Sturtevant CP316 Introduction to AVR Architecture