MICROPROZESSOR DETAILS
BASCOM-AVR.de

AT90S2313

  Pin Aus-/Eingänge PDIP Gehäuse:

 

Gehäusetyp PDIP  SOIC TQFP PLCC MLF TSSOP
Ein-/Ausgänge
Ansicht
Beschaltung


Die RISC Architektur

Allgemeines
Alle AVR-Controller wurden in der sehr leistungsfähigen Low Power RISC-Architecktur entwickelt. (RISC = Reduced Instructions Set Computer d.h. Computer mit reduzierten Befehlsatz).

Charakteristische Merkmale der RISC-Architektur
Wie bereits der Name sagt, ist das augenfälligste Kriterium eine Beschränkung des Befehlsvorrates auf eine übersichliche Anzahl effektiver Befehle.
Wegfall des klassischen Akkumulators zugunsten einer größeren Anzahl gleichberechtigter Working-Registers.
Organisation der Speicherbereiche nach dem Harvard-Modell.
Einheitliche Schnittstelle zu den Speichern durch die auschließliche Verwendung von Load-/ Store-Befehlen.
Abarbeitung (fast) aller Befehle innerhalb nur eines einziges Maschinentaktes.
Optimierung von Hardare und Befehlsvorrat hinsichtlich des Einsatzes von Hochsprachenprogrammierung.

Peripheriegeräte

Der Watschdog Timer
Um zu verhindern, daß sich ein Anwendungsprogramm bei fehlerhaften Programmierung in einer Endlosschleife festhält und damit von ausßen nicht mehr beeinflußbar ist, hat Atmel seine AVR-Controller mit einem Wachdog-Timer ("Wachhund") ausgeschtatet. Dieser Wachdog Timer generiert nach einer einstellbaren Verzögerungszeit einen System-RESET, falls er nicht vor Ablauf dieser Zeit vom Anwenderprogramm rückgesetzt wird. Nach dem Rücksetzen des Watchdogs beginnt die Verzögerungszeit erneut.

Der integrierter Analog-Komparator
Der Analogkomparator vergleicht die Eingangsspannung an seinem nichtinvertierenden Eingang AINT0 mit der Eingangsspannung an seinem invertierenden Eingang AIN1. Sobald die Spannung an AIN0 größer ist, als die an AIN1, liegt sein Ausgang ACO auf log. 1 Pegel. Es besteht die Möglichkeit, über den Analogkomparator einen Interrupt auszulösen.

Ein 8-Bit Timer/Counter mit eigenen Teiler
Ein 8-Bit Timer/Counter mit eigenen Teiler

Ein 16-Bit Timer/Counter mit eigenen Teiler

Anschlußbelegung und Gehäusebauformen

Wie man sieht hat praktisch jeder Pin neben seiner normalen Bezeichnung wie z.B. PB0 noch mindestens eine weitere Funktion, viele Pins sogar noch mehr. Hier soll jetzt aber nicht jede einzelne Funktion im Detail beschreiben werden, sondern nur die Abkürzungen aufgeschlüsselt werden. Funktionsgleiche Pins werden zusammengefasst.

Beginnen wir einfach mal bei Pin 1.

Reset
Mit dem Reset Pin kann man den Controller zurücksetzen. Dieser Pin ist Low aktiv, d.h. der Reset wird ausgelöst wenn man den Pin mit Masse verbindet. Damit nicht zufällig ein Reset ausgelöst wird sollte man ihn mit einem Widerstand von etwa 10k Ohm mit VCC (+) verbinden.

PD0 - PD6 Port D
Port D ist ein 8 Bit breiter, bi-direktionaler I/O- (Ein-/Ausgabe-) Port. Der Output-Buffer von Port D ist im "Sink"-Betrieb in der Lage, Ströme bis zu 20 mA aufzunehmen und dadurch z.B. LEDs direkt zu treiben. Jeder Pin des Ports kann individuell als Eingang oder als Ausgang konfiguriert und in der Funktion als Eingang kann ihm wahlweise ein Pull-Up-Wiederstand zugeschaltet werden. Alternativ können über Port D auch diverse Sonderfunktionen (z.B. Interrupt-Eingänge, Timerausgang, UART-Interface) ausgeführt werden.

RXD/TXD Receive Data/Transmit Data
Die meisten AVR haben einen UART oder USART. In diesem Fall heißen die Pins einfach RXD/TXD. Hat der AVR zwei U(S)ART's gibt es jeden Anschluß zwei mal, diese heißen dann RXD0/TXD0 und RXD1/TXD1. RXD empfängt die Daten aus einer asynchronen seriellen Schnittstelle, TXD sendet die Daten aus dem AVR zu einer Schnittstelle. Eine asynchrone serielle Schnittstelle ist jede normale serielle Schnittstelle am PC. Um den AVR mit der seriellen Schnittstelle des PC zu verbinden benötigt man einen Pegelwandler. Die Verdrahtung kann man dem Artikel MAX232 für Mikrocontroller entnehmen.

XTAL
Anschlüsse für den externen Takt mit dem der Controller laufen soll. Hier kann man entweder einen Quarz, einen Oszillator oder ein RC Glied anschließen. Der Oszillator und das RC Glied werden nur an XTAL1 angeschlossen, ein Quarz kommt immer an beide Pins.

INTx External Interrupt
Mit Hilfe eines externen Interrupts kann man das laufende Programm unterbrechen und in eine Unterroutine springen die das entsprechende Ereignis verarbeitet. Für jeden Interrupteingang kann ein eigenes Unterprogramm aufgerufen werden.

Tx Timer Clock Input
Bei manchen AVR kann der Timer/Counter mit einem externen Takt versorgt werden. Das ist immer dann nötig wenn mit dem Vorteiler (Prescaler) nicht der nötige Takt aus der CPU Frequenz gewonnen werden kann. Für jeden Timer/Counter gibt es einen eigenen Eingang.

GND Masseanschluß
Die ist die Masse der Spannungsversorgung (-). Beim Verdrahten von GND ist besonders bei handgelöteten Platinen darauf zu achten das die Lötstellen sauber gelötet sind und man sollte nicht zu dünne Drähte verwenden. Eine gute Masseführung ist wichtig für den stabilen Betrieb.

ICx Input Capture
Mit Hilfe von Input Capture kann man Zeiten messen. Ein Signal an diesem Pin stoppt einen laufenden Timer. Verwenden kann man das zb bei den SRF04 Ultraschall Sensoren. Man startet den Timer und triggert gleichzeitig den Sensor, was einen Impuls sendet. Registriert der Sensor ein reflektiertes Signal setzt er den Input Capture Eingang und der Timer stoppt. Aus dem Wert kann man dann die Entfernung berechnen.

PB0 - PB7 Port B
Port B ist ein 8 Bit breiter, bi-direktionaler I/O- (Ein-/Ausgabe-) Port. Der Output-Buffer von Port B ist im "Sink"-Betrieb in der Lage, Ströme bis zu 20 mA aufzunehmen und dadurch z.B. LEDs direkt zu treiben. Jeder Pin des Ports kann individuell als Eingang oder als Ausgang konfiguriert und in der Funktion als Eingang kann ihm wahlweise ein Pull-Up-Wiederstand zugeschaltet werden. Alternativ können über Port B auch diverse Sonderfunktionen (Timer, Analogkomparator-Eingänge, SPI-Interface) ausgeführt werden.

AIN0/AIN1 Analog Comparator
Den Analog Comparator kann man mit einem Operationsverstärker vergleichen. Mit seiner Hilfe kann man zwei Spannungen miteinander vergleichen. Der Controller kann dann feststellen welche der Spannungen höher ist. AIN0 ist der positive Eingang des Comparators, AIN1 der invertierte Eingang. Ist die Spannung an AIN0 höher als die an AIN1 gibt der Comparator ein "High" Signal aus, ist die Spannung niedriger gibt er ein "Low" Signal aus.

OCxx Output Compare
Für jeden Timer gibt es eine oder mehrere Output Compare Pins. Dem OC folgt eine Zahl die angibt mit welchem Timer der Pin verbunden ist, als letztes kommt optional noch ein Buchstabe wenn an einem Timer mehrere Pins hängen, zb. OC0 = Timer0. OC1A, OC1B, OC1C = Timer1. Für jeden Pin gibt es ein Output Compare Register. Dessen Inhalt wird permanent mit dem Zählerstand des jeweiligen Timers verglichen. Stimmt Zählerstand und Output Compare Register überein kann eine vordefinierte Funktion ausgelöst werden, zb den entsprechenden OCxx Pin aktivieren/deaktivieren. Befindet sich der Timer im PWM Modus können die OCxx Pins entsprechend auch PWM Signale liefern

MOSI Master Out, Slave In
Bei der SPI Schnittstelle gibt es getrennte Leitungen für Daten senden und empfangen. Der Master sendet seine Daten über die MOSI Leitung, der Slave empfängt sie.

MISO Master In, Slave Out
Das Gegenstück zu MOSI ist MISO. Über diese Leitung empfängt der Master die Daten, der Slave sendet hierüber seine Daten.

SCK Serial Clock
Takteingang oder -ausgang für die SPI Schnittstelle. Die SPI Schnittstelle ist eine synchrone Schnittstelle, dh neben den Datenleitungen wird der Takt für die Übertragungsgeschwindigkeit über eine zusätzliche Leitung an den Empfänger übermittelt. Der Master gibt hierbei immer den Takt vor, der Slave nimmt ihn an. Atmel empfiehlt diesen Pin mit einem Widerstand auf ein definiertes Potential zu ziehen (PullUp oder PullDown). Es soll Fälle gegeben haben bei denen ein zufälliges Rauschen an den ISP Pins das Muster für eine Programmierung angelegt haben soll und dadurch der Chip in den Programmiermodus ging.

VCC Betriebspannungsanschluß
Hier kommt die Spannungsversorgung für den Controller dran. An VCC kommt +. Im Normalfall sind das +5V, bei Batteriebetrieb können es aber auch 3V oder 3,3V sein. Man muß beachten das die Spannung nie über 5,5V steigt und das man den Controller bei 3,3V nicht mit 16MHz takten kann (L-Typ).


Alle Angaben ohne Gewähr.


4537

AGB| Impressum | Home

Copyright (c) 2004 Marius Arnold Meissner