Elektronik und Roboterbau
AVR, avr-gcc, CAN, CPLD, Elektronik, Mikrocontroller, MSP430, PIC, Roboter, Schaltungen, Sensoren, Software, Testboards
Tags: AVR
Stand: 25. September 2006, 22:11
2 Kommentar(e)
Die AVR Reihe von Atmel besteht aus mehreren sehr leistungsfähigen Mikrocontrollern. Die einzelnen Mikrocontroller unterscheiden sich hauptsächlich in der Größe des Programmspeichers, des RAM und den unterschiedlicher Peripherie. Die Bandbreite der Peripherie erstreckt sich dabei von 10-Bit Analog/Digital Wandler, über Pulsweitenmodulierte Ausgänge bis zu asyncronen/syncronen seriellen Schnittstellen (UART, TWI, SPI), frei konfigurierbaren Hardware Watchdogs, 8/16-Bit Timerblöcke bis zu Brown-Out-Detection.
Vom Grundprinzip sind alle Modelle gleich aufgebaut. Sie bestehen aus einer 8-Bit Recheneinheit (ALU), 32 8-Bit Arbeitsregistern (die letzten 6 können als 16-Bit Register zum direkten Adressieren von RAM und Flash genutzt werden), einem internen RAM (von 128 bis 4096 Byte), einem im System über wenige Leitungen programmierbaren Flashspeicher (von 2K bis 128 KByte) und einem internen EEprom (64 bis 4096 Byte).
Im Gegensatz zum anderen Mikrocontroller wie der Z80 Reihe wurden bei den meisten Modellen die Adress- und Datenleitungen nicht nach außen geführt, dies schränkt zwar die Erweiterbarkeit ein, erlaubt aber das produzieren wesentlich kleiner Chip, wie zum Beispiel den AT90S2323, AT90S2343 oder die ATTiny Reihe, die jeweils in 8-Pin DIP oder SOIC Gehäusen untergebracht sind, allerdings stehen dem Anwender dabei nur 3 bzw. 5 I/O Leitungen zu Verfügung. Nur bei einigen Modellen sind gemultiplexte Adress- und Datenleitungen zugänglich und ermöglichen so das anschließen von externem RAM oder ähnlichem.
Die CPU wurde 1995 in Trondheim, Norwegen mit dem Ziel entwickelt bei gleichen geringen Preis eine höhere Leistung als vergleichbare 8-Bit Chips, wie zum Beispiel 6805, 8051, 68HC11 oder PIC, zu bieten. Um dies zu erreichen verwendete man eine echte RISC Architektur ohne interne Taktteilung, die die Ausführung der meisten Befehle innerhalb eines Taktzykluses erlaubt, nur ein kleiner Teil der Befehle benötigt zwei Taktzyklen. Die AVRs schaffen also bis zu 1 MIPS pro Mhz. Im Gegensatz dazu brauchen zum Beispiel die Mikrocontroller der PIC Reihe von Mircochip pro Befehl 12 Taktzyklen. Die AVRs sind also bei gleicher Taktfrequenz bis zu 12 mal schneller. RISC bedeutet einen geringere Anzahl von Maschinencodebefehlen, dadurch wird der Computer einfacher und es können so schnellere Bauteile verwendet werden. RISC ist eine “Load-and-Store” Architektur, mit fester Befehlslänge und vielen Mehrzweckregistern. Dadurch können Compiler den Code für RISC besser optimieren.
Das Gegenstück zu RISC ist CISC. Die komplexen Befehle die im CISC Befehlssatz enthalten sind müssen bei RISC durch eine Folge von einfachen Maschinencodebefehlen nachgebildet werden.
Die Chips lassen sich mit einer Betriebsspannung zwischen 4 und 6 Volt betreiben, die L-Ausführungsformen auch mit 2,7 bis 6 Volt. Neudings gibt es sogar die V-Varianten die mit 1,8 Volt minimal auskommen.
Sie brauchen bei 8 MHz Takt und 5 Volt Betriebsspannung nur zwischen 10 und 12 mA. Im Schlafmodus mit Weckfunktion sinkt der Verbrauch sogar noch auf weniger als die Hälfte. Auch eine niedrigere Betriebsspannung und eine niedrigere Taktrate spart Strom. Sie sind also recht sparsam zu betreiben.
Beim Hochfahren der Betriebsspannung wird ein Power-On-Reset durchgeführt, die Hardware wird auf Anfangswerte zurückgesetzt und die Programmbearbeitung beginnt bei Adresse 0x0000. Über einen externen Reset-Pin oder den internen Watchdog kann ein Neustart ebenfalls ausgelöst werden.
Der Takt kann an zwei Pins extern über einen Quarz oder Keramikschwinger erzeugt werden. Er kann aber auch aus einem eigenständigen externen Generator zugeführt werden. Die Taktung mit einem internen RC-Generator ist ebenfalls möglich, allerdings ist die Taktfrequenz dann sehr abhängig von der Betriebspannung und der Temperatur. Die neuen Atmegas enthalten jetzt einen internen einstellbaren Oszillator, sodass der Quarz bei diesen Typen ganz entfallen kann.
Pins, die als Ausgabeports konfiguriert sind, können je nach Betriebsspannung zwischen 10 und 20 mA treiben, so dass z.B. LEDs über einen Strombegrenzungswiderstand direkt gegen die Betriebsspannung getrieben werden können.
Die RC-Kombination am Reseteingang verzögert den Reset beim Hochfahren der Betriebsspannung, der Widerstand vor dem Reseteingang begrenzt den Strom aus dem Elko in den Pin insbesondere beim Abschalten der Betriebsspannung, die Diode sorgt für einen sicheren Reset beim kurzen Absenken der Betriebsspannung. Der Kondensator am Betriebsspannungsanschluss glättet die Schaltspitzen, die durch die Taktung im Chip entstehen und sorgt für weniger Störungen auf der Versorgungsleitung. Es ist allerdings auch möglich für die Resetbeschaltung nur einen 10K Widerstand nach VCC zu verwenden. Der Taktoszillator kann mit einem Standardquarz bestückt werden, die beiden Kondensatoren helfen beim Anschwingen des internen Oszillators. Es werden also minimal vier Bausteine benötigt um einen fertig programmierten AVR zu betreiben, bei den Atmegas oder den neuen ATTinys sogar im Prinzip nur ein Widerstand für die Resetbeschaltung.
Die meisten der Pins haben weitere Sonderfunktionen, die sich per Software aktivieren lassen. Die Pins lassen sich dann natürlich nicht mehr als normale I/O-Leitungen verwenden. So lassen sich Analog/Digital-Wandler, Timer Ein- und Ausgänge oder serielle Schnittstellen und vieles mehr aktivieren.
Quellen:
http://www.avr-asm-tutorial.net/cq-dl/index.html
http://www.atmel.com
Jim Turley, Atmel AVR Brings RISC to 8-Bit World, aus: MICROPROCESSOR REPORT, July 14, 1997
Kommentare
# Gerhard Hinze meinte am 20. Juli 2008, 17:15 dazu:
Toll, diese Seiten! Meine Hochachtung.
Bin gerade beim Erlernen/Einarbeiten der AVR Technik/Programmierung. Da kommen mir als Selbstlerner solche Webseiten mit Beispielne und Erklärungen der selben sehr gut gelegen.
Werde bestimmt hier nun öfter nach Informationen umherstöbern? Weiter so !!
Gruss Gerhard
# pointhi meinte am 15. Dezember 2011, 22:37 dazu:
[zitat]von Mircochip pro Befehl 12 Taktzyklen. Die AVRs sind also bei gleicher Taktfrequenz bis zu 12 mal schneller. RISC bedeutet einen geringere Anzahl von Maschinencodebefehlen, dadurch wird der Computer einfacher und es können[/zitat]
Das muss ich verneinen, ein pic teil seinen takt durch 4, dafür braucht nur der sprungbefehl 2 dieser 4 taktzyklen, ein avr braucht dafür teils für andere befehle länger. Meiner meinung sind avr und pic zimlich gleich.
Großes lob für deine seite, aber ich wollte es einfach sagen :)
mfg. pointhi
Deine Meinung: