avr by chenshu


 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
3 index register pairs
Register & IO are mapped
 in SRAM space.
     Typical Hardware Support
Internal or External   Real time   clock
 Oscillator/Clock       10bit ADC
Brown Out Detector     Analog Comparator
One or more timers     External interrupts
Two or more PWM        Pulse timing   capture
One or more USART      EEPROM
I2C                    USB/CAN/RF
Atmel Studio: IDE& Simulator/debugger.
BASCOM: Basic compiler & IDE with
GNU C compiler (free, very high quality).
Third party C compilers vary from cheap to very
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
No additional signal
 conditioning needed.
Stable, well defined trip
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)
         Cool projects & pages
                         web software)
www.egnite.de (ethernet &
www.avrfreaks.net (Academy tab, must register)

To top