Atmel ist der u.a. der Hersteller der AVR-Controllerserie.
Es gibt eine ganze Serie von AVR-Controllern. Sie alle werden ähnlich programmiert bieten jedoch unterschiedliche Features (I/O Leitungem, Timer, PWM-Ports usw.) Es gibt inzwischen Entwicklungssysteme in den Sprachen Basic, C, Pascal und Assembler für diese Controller. AVR steht angeblich für Advanced Virtual RISC (in einem Paper von Alf Egin Bogen und Vegard Wollan)
- 8 Bit Architektur ist für Hochsprachen (C) optimiert
- Harvard-Architektur (getrennter Befehls- und Datenspeicher)
- 32 Register, kein Akkumulator, 3 Pointerregister
- In-System progammierbar - Das bedeutet der Controller kann sehr einfach über ein Programmierkabel (oft ISP-Kabel genannt ) das mit dem PC verbunden wird programmiert werden, auch dann wenn sich dieser in einer Schaltung befindet
- JTAG (Debugerinterface)
- AVR Typen (AT90, ATtiny, ATmega)
- Viele Entwicklungsboards erhältlich, z.B. das Roboternetzboard RN-Control
Inhaltsverzeichnis
Einige Pinbelegungen der pupulärsten Controller im Roboternetz
(in etwa nach Leistungsfähigkeit sortiert)
- AT90S2313
- Atmel Controller Mega8
- Atmel Controller Mega48 Mega88 Mega168
- Atmel Controller Mega16 und Mega32
- Atmel Controller Mega128 - SMD-Chip
Die AVR-Pin-Bezeichnungen und deren Funktion
Die meisten Ports sind doppelt belegt und besitzen neben der normalen Port-Funktion noch eine Sonderfunktion. Die verschiedenen Pinbezeichnungen und Sonderfunktionen werden hier beschrieben:
PA 0 – 7 | Port A - Ein 8 Bit breiter, bi-direktionaler I/O Port. Jeder Pin des Ports kann individuell als Eingang oder Ausgang konfiguriert werden. |
PB 0 – 7 | Port B - Ein 8 Bit breiter, bi-direktionaler I/O Port. Jeder Pin des Ports kann individuell als Eingang oder Ausgang konfiguriert werden. |
PC 0 – 7 | Port C - Ein 8 Bit breiter, bi-direktionaler I/O Port. Jeder Pin des Ports kann individuell als Eingang oder Ausgang konfiguriert werden. |
PD 0 – 7 | Port D - Ein 8 Bit breiter, bi-direktionaler I/O Port. Jeder Pin des Ports kann individuell als Eingang oder Ausgang konfiguriert werden. |
XCK | Externe Takt für UART. Wird nur in Sonderfällen für Baudrate benötigt.
UART ("Universal Asynchronous Receiver and Transmitter"). Das ist die serielle Schnittstelle, die zur Datenübertragung zwischen Mikrocontroller und PC genutzt wird. Zur Übertragung werden zwei Pins am Controller benötigt: TXD und RXD. Über TXD ("Transmit Data") werden Daten gesendet, RXD ("Receive Data") dient zum Empfang. |
T0 | Timer Eingang. Timer kann gestartet, gestoppt oder getaktet werden |
T1 | Timer Eingang. Timer kann gestartet, gestoppt oder getaktet werden |
AIN0 | Erster Eingang des Analog Komperators.
Mit AINT0 und AINT1 kann man zwei Spannungen miteinander vergleichen. Wenn die Spannung an AIN0 höher als bei AIN1 ist, liefert der Komparator "High", wenn umgekehrt ein "Low". |
AINT 1 | Zweiter Teil des Analog Komperators
Mit AINT0 und AINT1 kann man zwei Spannungen miteinander vergleichen. Wenn die Spannung an AIN0 höher als bei AIN1 ist, liefert der Komparator "High", wenn umgekehrt ein "Low". |
OC0 | PWM bzw. Output Compare Ausgang des Timers 0 |
SS | SPI-Interface – wird beneötigt um den richtigen Slave am Bus zu wählen |
MOSI | SPI-Interface – Datenausgang (bei Slave Eingang) |
MISO | SPI-Interface – Dateneingang (bei Slave Ausgang) |
SCK | SPI-Interface – Bustakt vom Controller |
RESET | Rücksetz Eingang. Ein log. 0 – Pegel an diesem Pin für die Dauer von mindestens zwei Zyklen des Systemtaktes bei aktivem Oszillator setzt den Controller zurück |
VCC | Betriebsspannung 5 V
(2,7 Volt bis 6 V bei 8 Mhz, die nächsten AVRs sollen ab 1,8 Volt funktionieren ) |
GND | Masse |
XTAL1 | Eingang des internen Oszillators zur Erzeugung des Systemtaktes bzw. Eingang für ein externes Taktsignal, wenn der interne Oszillator nicht verwendet werden soll |
XTAL2 | Ausgang des integrierten Oszillators zur Erzeugung des Systemtaktes |
RXD | Serielle Schnittstelle Eingang TTL-Pegel |
TXD | Serielle Schnittstelle Ausgang TTL-Pegel |
INT0 | Externe Interrupt |
INT1 | Externe Interrupt |
INT2 | Externer Interrupt 2 |
OC1A | Ausgang für die Compare-Funktion des integrierten Zeitgeber- / Zählerbausteines
Der erste PWM Ausgang des Timers1. Er wird oft zum Regeln der Bot-Motogeschwindigkeit benutzt. |
OC1B | Ausgang für die Compare-Funktion des integrierten Zeitgeber- / Zählerbausteines
Der zweite PWM Ausgang des Timers1. Er wird oft zum Regeln der Bot-Motogeschwindigkeit benutzt. |
ICP1 | Eingang für die Capture-Funktion des integrierten Zeitgebers / Zählerbausteines |
ADC0 bis ADC7 | Eingänge des Analag nach Digital (AD) Wandlers. Spannungen können hier gemessen werden. |
AREF | Referenzspannung für Analog-Digitalwandler (wird meist auf 5 V gesetzt) |
GND | Masse |
AVCC | Analog Digital Wandler (siehe Beschaltungsskizze)
Die Betriebsspannung für den AD Wandler. Die Pins AVCC, AGND und AREF sollten immer beschaltet werden, da es sonst es passieren kann, dass Port A nicht richtig funktioniert, selbst wenn man den AD Wandler nicht benutzt |
TOSC1 | TOSC1 und 2 sind Eingänge für den Asyncronen Modus von Timer2. Sie sind vorgesehen für den Anschluss eines externen Uhrenquarzes ( 32.768 kHz ). Damit lässen sich zum Beispiel sehr genaue 1 Sekunden Impulse für eine Uhr generien... |
TOSC2 | TOSC1 und 2 sind Eingänge für den Asyncronen Modus von Timer2. Sie sind vorgesehen für den Anschluss eines externen Uhrenquarzes ( 32.768 kHz ). Damit lässen sich zum Beispiel sehr genaue 1 Sekunden Impulse für eine Uhr generien... |
TDI | JTAG-Debug Interface |
TDO | JTAG-Debug Interface |
TMS | JTAG-Debug Interface |
TCK | JTAG-Debug Interface |
SDA | I2C-Schnittstelle (Bus aus 2 Leitungen) Datenleitung |
SCL | I2C-Schnittstelle (Bus aus 2 Leitungen) Clockleitung |
OC2 | PWM bzw. Output Compare Ausgang des Timers2 |
Siehe auch
- AVR-ISP Programmierkabel - Bauanleitung für die AVR Controller Programmierkabel
- RN-Control - Eines der beliebtestet AVR-Boards im Roboternetz
- Bascom - Sehr gutes Basic-Entwicklungssystem
- Bascom - Erstes Programm in den AVR Controller übertragen