Transcript AVR - UCCS

AVR
 Modern
RISC architecture: Compact and FAST.
 Tuned for high level languages.
 Consistent architecture across entire line.
 Small AVR are subsets of larger chips: Same
hardware and code works across all chips.
 I/O structure reduces need for external components.
 Flash based, ultra trivial downloading of code.
AVR RISC Architecture
Single
Cycle Instructions:
8mhz = 8mips.
Large register file (32).
Every register an
accumulator.
3 index register pairs
Register & IO are mapped
in SRAM space.
Typical Hardware Support
Internal or
External
Oscillator/Clock
Brown Out Detector
One or more timers
Two or more PWM
One or more USART
I2C
Real
time clock
10bit ADC
Analog Comparator
External interrupts
Pulse timing capture
EEPROM
USB/CAN/RF
Tools
Atmel Studio: IDE &
Simulator/debugger.
BASCOM: Basic compiler & IDE with
programmer.
GNU C compiler (free, very high quality).
Third party C compilers vary from cheap to very
expensive.
FLASH programmers are trivial to make.
Availability & Price
www.digikey.com has everything (single unit price):
 Attiny26 (2k, ADC, USI, 2 PWM, 2 ports) $2.58
 ATmega16 (16k, ADC, etc, 4 ports) $7.74
 ATmega128 (128k, 6 ports, oodles of stuff) $16.34
 STK500 (development board) $79
 ICE200 (In circuit emulator) $100
 ATAVRISP (serial programmer) $29
I/O Example: simple switch
No
external parts
Input Example: Trinary Input
Three states with
one input.
Useful way to expand IO.
Switch internal resistor on/off
to determine state of pin.
Off:
If input high, then J1-2.
On: if low, then J2-3.
On: If high, then no jumper.
Input example: Photo-detector
Schmitt trigger inputs on
all
lines.
No additional signal
conditioning needed.
Stable, well defined trip
points.
Basic circuit works well for
Quadrature encoders.
Input Example: Variable Input
 Useful
for parts without ADC.
 Set pin to output, low to
discharge capacitor.
 Set pin to input, no pull-up.
 Increment counter until input
reads 1.
 Linear conversion.
Case Studies
BASCOM based
multi-tasking Minisumo code in
less than 2k
Dilbert II written with GCC in less than 6k
Gyrobot written with GCC in less than 6k
LCD
user interface
PID based motion control
Sensor tasks managing tilt, gyro and wheel encoders
R/C Tether uses variable input
(PC Joystick)
Resources
www.barello.net/ARC
www.barello.net/Papers
www.avrfreaks.net
www.mcselec.com/download_avr
www.atmel.com/
Cool projects & pages
http://www.mysunrise.ch/users/pfleury/index.html
http://instruct1.cit.cornell.edu/courses/ee476/
www.barello.net/Robots
www.egnite.de
(ethernet & web software)
www.avrfreaks.net (Academy tab, must register)