Developing an AVR Microcontroller System - Microscale Embedded ...

canolaokahumpkaΗλεκτρονική - Συσκευές

2 Νοε 2013 (πριν από 3 χρόνια και 10 μήνες)

121 εμφανίσεις


Introducing Microcontrollers


About AVR


AVR Mega8 Architecture


AVR Programming Interface


Demo: ‘Hello World’ AVR Design.


Demo: Hardware Design


Demo: Programming


A microprocessor is a central processing unit
(CPU) on a single chip.


When a microprocessor and associated
support circuitry, peripheral I/O components
and memory (program as well as data) were
put together to form a small computer
specifically for data acquisition and control
applications, it was called a microcomputer.


When the components that make a
microcomputer were put together on a single
chip of silicon, it was called the
microcontroller.



A microcontroller
interfaces to
external devices
with a minimum of
external
components


A recent white paper by Sun Microsystems claims that
by the end of the decade, an average home will
contain between 50 to 100 microcontrollers
controlling digital phones, microwave ovens, VCRs,
televisions sets and television remotes, dishwashers,
home security systems, PDAs etc.


An average car has about 15 processors; the 1999
Mercedes S
-
class car has 63 microprocessors, while
the 1999 BMW has 65 processors!


Except perhaps the human body, microprocessors and
microcontrollers have gotten into everything around
us.



RISC architecture with mostly fixed
-
length
instruction, load
-
store memory access and 32
general
-
purpose registers.


A two
-
stage instruction pipeline that speeds
up execution


Majority of instructions take one clock cycle


Up to 10
-
MHz clock operation



Wide variety of on
-
chip peripherals, including
digital I/O, ADC, EEPROM, Timer, UART, RTC
timer, PWM etc


Internal program and data memory.


In
-
System programmable


Available in 8
-
pin to 64
-
pin size to suit wide
variety of applications



Up to 12 times performance speedup over
conventional CISC controllers.


Wide operating voltage from 2.7V to 6.0V


Simple architecture offers a small learning
curve to the uninitiated.


8
-
Kbyte self
-
programming Flash
Program Memory


1
-
Kbyte SRAM


512 Byte EEPROM


6 or 8 Channel 10
-
bit
A/D
-
converter.


Up to 16 MIPS
throughput at 16 Mhz.


2.7
-

5.5 Volt operation.




The AVR chip has a built in interface, that enables you
to write and read the content of the program flash
and the built
-
in
-
EEPROM. This interface works serially
and needs three signal lines:


SCK: A clock signal that shifts the bits to be written to the
memory into an internal shift register, and


that shifts out the bits to be read from another internal
shift register,


MOSI: The data signal that sends the bits to be written to
the AVR,


MISO: The data signal that receives the bits read from the
AVR.


These three signal pins are internally connected to the
programming machine only if you change the RESET pin
to zero.


Otherwise, during normal operation of the AVR, these pins
are programmable I/O lines like all the others.


If you like to use these pins for other purposes during
normal operation, and for in
-
system
-
programming, you'll
have to take care, that these two purposes do not


conflict.


Usually you then decouple these by resistors or by use of a
multiplexer.


What is necessary in your case, depends from your use of
the pins in the normal operation mode.


VTG: Target Voltage


LED: indicates that the
programmer is doing
its job


The purpose of this
demo is:



to design a simple AVR
system


Interface it to and LCD
display


Program it to display
‘Hello World’

Programmer

AVR MCU

LCD Display

LCD Interface

AVR Port

RS

PORTC.2

RW

PORTC.3

E

PORTC.4

DATA

PORTD


AVR Studio


GCC


AVRLibs


PonyProg


Include the following files in your project


lcd.c


global.h


timer.h


lcd.h


Add a new c source file to your AVR Studio
project.


Type in the main function as shown below:


Main()


{


lcdInitHW();


lcdInit();


lcdGotoXY(0,4);


lcdPrintData(“Hello Word!”, 11);


}