Ein bisschen Experimentieren
  Einstieg AVR µC
 

Einstieg in die Arbeit mit AVR Mikrocontrollern

  1. Beschaltung
    1. Strom-/Spannungsversorgung
      Der µC benötigt eine möglichst konstante Spannungsversorgung ohne Störungen oder Spannungsspitzen. Dazu ist es am einfachsten einen 7805 positiv Spannungsregler zu verwenden. Es gibt (grob) drei Typen
      L = 0,1A
      M = 0,5A
      nix = 1A
      S = 2A
      C1 und C2 sind Glättkondensatoren, C3 und C4 Siebkondensatoren
      Braucht man 3,3V kann man sich entweder mit zwei Dioden in Reihe behelfen, oder mit einem speziellen 3,3V Spannungsregler (keine Ahnung, wie der heißt)

    1. Systemfrequenz
      Externer Quarzoszillator (Fuse-Bit „
      external crystal oscillator“)
      (WICHTIG!!! nicht „
      external RC Oscillator“ bei Fuse-Bits anklicken. Sonst ausgesperrt) Die 18pF Cs können auch 33pF sein. Je nach Quarzfrequenz.


      Zweite Möglichkeit ist, den internen RC Oszillator zu verwenden. Möchtest du allerdings UART oder zeitkritische Anwendungen realisieren ist ein Quarz unabdingbar! Wenn’s um ein Eval-Board gehen soll, dann (auch für Debug Zwecke) einfach mit einem Quarz aufbauen.

    2. RESET
      Der Reset-Eingang sollte, auch für die In-System-Programmierung mit einem Pull-Up Widerstand versehen werden. 10kΩ sind meist völlig ausreichend.
    3.  

    4. Taster und LED’s
      Um Taster an einen Mikrocontroller Eingang anschließen zu können ist nicht viel nötig. Auf Grund des internen Pull-Up Widerstands kann der Taster direkt vom Pin zu Masse gelegt werden.
       Status-LED’s werden vom Ausgang über einen, passend zum LED Strom gewählten, Serienwiderstand geschaltet. Zu beachten ist dabei die maximale Strombelastbarkeit des µC-Ausgangs von rund 25mA. Pro Port allerdings nur maximal 100mA.




    5. Analog-Digital Wandler
      Für die Messung von analogen Werten sollte der ADC ordentlich beschaltet werden. Dazu gehört mindestens ein Sieb-Kondensator von AVCC zu Masse, besser noch durch eine Parallel-Induktivität zwischen der Referenzspannung AREF und der Versorgungsspannung des ADC AVCC.



    6. In-System-Programming (ISP)
      Die ISP Schnittstelle ist meist als 6pol-, oder 10pol-Wannenstecker ausgeführt. Die Beschaltung für den µC ist eine einfache 1:1 Bedrahtung der passenden Pins. Da man bei der µC-Programmierung LEDs und den UART zu Debug-Zwecken verwenden kann ist meines Erachtens für die meisten Projekte kein JTAG notwendig.
      MISO – Master in; Slave out
      MOSI – Master out; Slave in
      SCK – System Clock
      Reset – Reset
       

 

  1. Programmierung
    1. Entwicklungsumgebung
      Meine Empfehlung ist, ein Programm zu nehmen, in dem du so viele Funktionen zur Entwicklung wie möglich in einem Programm hast.
      Im AVRStudio kannst du Simulieren, Flashen, Programmieren, Fusen usw.
      C Programmierung geht allerdings nur, wenn WinAVR auch installiert wurde. Beim Projektstart, wird man dann gefragt ob man ein Assembler Projekt, oder ein GNU-Compiler, also C, Projekt haben möchte.
    2. Als Programmer würde ich, der Einfachheit halber den MKII von Atmel verwenden, der kostet rund 35€ und ist robust und einfach.

 

So, das sollte mal so der schnellste Einstieg sein. An Hand dieser Schaltungsbeispiele sollte ein eigenes Eval-Board schnell erstellt und funktionsfähig sein.

Ach ja, evtl. sollte ich noch den UART ansprechen. Damit man mit dem PC kommunizieren kann, muss eine Pegelwandlung durchgeführt werden. Hab jetzt grad keine Schaltung da, aber im Datenblatt vom MAX232[1] findest du die komplette Beschaltung.

 

Logisch

RS232

TTL UART

1

-12V

5V

0

12V

0V

 

Programmierung

  1. PORTS
    Um den Mikrocontroller mit der Außenwelt in Interaktion treten kann werden die I/O-Pins verwendet. Sie sind, bei 8-bit Prozessoren, meist in PORTS á 8 Pins aufgeteilt.
    Die Ports können als Eingang, wie auch als Ausgang fungieren. Um die PORTS zu konfigurieren müssen sog. Register passend Gesetzt werden.
    1. DDR
      Das Data Direction Register legt die „Richtung“ des Ports fest. Also ob Ein- oder Ausgang. Dabei ist eine einmalige Initialisierung notwendig.

      Bsp. für den zweiten Pin von PORT B als Ausgang
      DDRB |= (1 << 2); // betreffendes Bit im Register setzen

      Bsp.: Für den dritten Pin von PORT D als Eingang
      DDRD &= ~(1 << 3);// betreffendes Bit im Register auf Low
      PORTD |= (1<<3);
      // Internen Pull-Up Widerstand aktivieren

    2. PORT
      Das PORT Register dient bei Verwendung als Ausgang zum setzten des High- bzw. Low-Pegels.
      Wird der Pin als Eingang verwendet kann beim setzten des dazugehörigen Bits der interne Pull-Up Widerstand aktiviert werden.
    3. PIN
      PIN ist das Port Input Register. Ist der Pin als Eingang initialisiert wird über dieses Register der Status abgefragt.


[1] Für die Pegelwandlung RS232-TTL bei 3,3V Spannungen nen MAX3232 verwenden

 
  Copyright by Bastian  
 
Diese Webseite wurde kostenlos mit Homepage-Baukasten.de erstellt. Willst du auch eine eigene Webseite?
Gratis anmelden