Pfad: Home =>
AVR-Überblick => Absolute Beginner
AVR für absolute Beginner
Hier wird für den absoluten Anfänger und Outsider erläutert,
Die einfachste Antwort: sie bedeutet gar nix außer dass es ein
Markenzeichen der Herstellerfirma ATMEL
ist, also muss es eigentlich AVR® heißen. Was immer andere
im Internet da hineindeuten, es ist reiner Spekulatius und nicht von
Bedeutung.
Mit der Abkürzung erschließt sich also rein gar nix. Man
muss zum Verständnis da schon tiefer hinein.
Auf dem Bild sind ein paar AVR-Mikrocontroller abgebildet.

Rein physisch handelt es sich also um Integrierte Schaltungen in
unterschiedlich großen Packungen und mit einer unterschiedlichen
Anzahl an Beinen. Der kleinste links oben (es handelt sich nicht um
einen Kleinkäfer oder eine Kleinstspinne, die ins Bild gelaufen
ist!) hat sechs Beine, der zweitkleinste acht und der größte
hier Abgebildete vierzig Beine. Es gibt noch größere, aber
die sind nix für kurzsichtige Bastler.
Mikrocontroller sind auf den ersten Blick also elektronische Bauelemente,
wie Transistoren, Dioden, Widerstände und Kondensatoren auch. Sie
werden über mindestens zwei ihrer vielen Anschlusspins mit Strom
versorgt und verbrauchen dabei etwas Strom (aber nicht sehr viel).
Als Integrierte Schaltkreise (ICs) bezeichnet man Zusammenstellungen von
einzelnen Bauelementen (wie Transistoren, Dioden, etc.) dann, wenn
sie in einer einzigen Packung zu Vielen zusammen auftreten. Und in den
unscheinbar kleinen schwarzen Boxen sind viele Tausend davon verbaut,
auch schon im Kleinsten. Man kann sagen, diese Packungen bestehen
überwiegend aus Plastik und Anschlusspins, während die
eigentlichen Innereien nur sehr wenig Platz einnehmen. Das das Plastik
aber nicht arbeitet und die Pins nur den Kontakt zwischen innen und
außen herstellen, sind sie viel uninteressanter als die
Innereien.
An den Seitenanfang
Der Elektroniker schließt die von außen zugänglichen
Pins an seine Elektronische Schaltung an und die kleinen ICs messen,
steuern oder beobachten das, was an ihren Pins so vor sich geht. Was
die einzelnen Pins nun genau tun, hat der Elektroniker in einem
Programm vorher festgelegt. Das Programm hat er in die Speicher
des ICs abgelegt (programmiert). In dem Programm ist die Funktion
jedes Pins vorher festgelegt. Und auch was passiert, wenn eine
bestimmte Bedingung eintritt, steht alles im Programm.
An einem einfachen, aber blödsinnigen Beispiel: Das Programm
veranlasse den Professor, ständig den Spannungszustand an
einem Pin zu lesen, und wenn die Spannung hoch ist, an einem
anderen Pin auch eine hohe Spannung einzustellen. In diesem
Beispiel besteht der Programmablauf aus drei Schritten:
- lese Zustand am Eingangspin,
- gib den gelesenen Zustand am Ausgangspin aus, und
- starte wieder von vorne.
Solange der Prozessor mit Strom versorgt wird, führt er diese
drei Schritte immer wiederkehrend aus und wird nicht müde,
im Kreis herum zu rennen.
Das Programm muss noch Folgende Schritte zusätzlich machen:
- es muss dem Eingangspin sagen, dass er bitte schön ein
Eingang und nur zum Lesen da ist, und
- es muss den Ausgangspin dazu veranlassen, dass er Ausgang
ist und dass er je nach äußerer Beschaltung Strom
liefern oder auch ziehen muss.
Fast alle Pins können per Programm so in ihrer Richtung
umgestellt werden. Unter anderem das macht einen Mikroprofessor
so ungemein vielseitig.
An den Seitenanfang
Das Beispielprogramm ist deswegen blödsinnig, weil der Herr
Professor mit dieser Aufgabe völlig unterausgelastet wäre.
An ein paar weiteren Beispielen, wo sich Mikroprofessoren nützlich
machen:
- Jeder hat eine Bankcard. Da ist so ein Kontroller drin, der
meine Kontonummer kennt und mich beim Automaten der Bank zusammen
mit meiner Pin auf mein Konto zugreifen lässt. Mit dem
Chip kann ich sogar bezahlen, wenn ich ihn vorher mit Geld
gefüttert habe, und er vergisst meinen Kontostand auch
nach Jahren nicht. Die kleinen ästhetisch wertvoll
gestalteten Metallflächen dienen zur Stromversorgung und
zur Unterhaltung mit dem Geldautomaten. Es trägt also
heutzutage jeder einen kleinen Mikrocontroller mit sich herum.
- Etwas ganz Tolles für Semi-Profi-Wanderer: ein
Schrittzähler, damit man am Ende des Tages die getätigten
Schritte mit der Infrarot-Schnittstelle in eine Datenbank auf dem
mitgeführten Laptop eintragen und mittels Charts sich selbst
loben oder anderen gegenüber angeben kann, was man so alles
geschafft hat. Ohne den Mikroprofessor wäre das Gerät
ein riesiger Drahtverhau und beim Wandern hinderlich.
- Und noch was Tolles: spendiert man dem Mikrocontroller ein
Antennchen, über das er funken und Funkwellenspannungen
zu seiner eigenen Stromversorgung verwenden kann, dann kann man
das Ganze in einen Apfel drücken und es RFID nennen.
Verlässt der Apfel den Supermarkt, kommt er an einem solchen
Sender vorbei, sagt dem Sender über Funk schnell, dass er ein
"Bio-Apfel der Marke Rotbäckchen zu 49 Cent das Stück"
ist und dass der Preis bitteschön von meiner ebenfalls
RFID-fähigen Bankkarte abgebucht werden möge. Nur ein
Problem ist jetzt noch zu lösen: was passiert, wenn ein
hurtiger Kunde mich beim Verlassen des Supermarkts überholt
und mein Bio-Apfel jetzt von seinem Konto abgebucht wird? Ein
Gutes hat es: RFID-Mikrocontroller sind unverdaulich, müssen
vor dem Verzehr nicht aus dem Apfel gepuhlt werden und sammeln
sich zu vielen Hunderttausend in der Kläranlage an. Ob es
dort mal zu einem Aufstand der unbeachteten RFID-Controller
kommt?
- In jedem Auto arbeitet inzwischen eine Vielzahl an
Mikroprofessoren, die von der Zündung zur Lichtüberwachung
bis zur Temperatur und zum Kilometerzähler reichen. Ein
Professor erlaubt uns das Öffnen der Autotür. Wenn der
Mikroprofessor z. B. der Ansicht ist, dass eine Außentemperatur
von +80 Grad herrscht, kann sich die Limousine auch mal weigern,
den angeblich gefährdeten Motor zu starten.
- Jede Waschmaschine wird von so einem Teil gesteuert, damit die
Vielfalt der Waschprogramme in ihren Abläufen korrekt den
Füllstand der Maschine, die Temperaturen, die Drehrichtung
des Motors, die Zuheit der Tür und überhaupt alles
berücksichtigt.
Heute kann folglich niemand diesen Dingern entgehen. Sie steuern uns,
nicht wir sie. Schade, dass Viele gar nichts über sie wissen, wo
sie uns doch so gängeln. Ein paar Gefahren wurden schon genannt.
Eine der Wichtigsten ist, dass Mikroprofessoren bei Einbrüchen
ihrer Versorgungsspannung, auch wenn sie ganz kurz sind (Spikes),
panisch reagieren. Auch gegen starke Magnet- oder Elektrofelder sind
sie empfindlich und machen dann nicht mehr ihren normalen Job. Handelt
es sich dabei um die Bremsmimik einer Straßenbahn, kann das arg
böse ausgehen. Dann ist der Prozessor unser Tod.
An den Seitenanfang
Jetzt folgt so eine kleine Auflistung, was alles in so einem kleinen
Ding drin ist. Zuerst kommen die Sachen dran, die immer drin sind,
danach die, die per Programm "zuschaltbar" sind. Immer drin
ist:
- ein Programmspeicher: ein beschreibbarer und dauerhaft erhaltend
bleibender Speicher für die Programmschritte, die vom
Programmierer dort hineingeschrieben werden und dann den ganzen
Chip beherrschen, je nach AVR-Typ sind 256 bis 65.535 Schritte
zu je 16 Bits darin ablegbar,
- ein Rechenwerk, das die abgelegten Programmschritte nacheinander
abholt, sieht was nun nacheinander zu tun ist und es ausführt,
das wenigstens Addition und Subtraktion sowie etwa 120 weitere
Grundoperationen beherrscht,
- ein Taktgenerator, der das Abholen und die Ausführung der
Schritte bewerkstelligt, meistens zwischen einer bis vier
Millionen Takte pro Sekunde, bei einigen AVR-Typen kann extern
ein Quarz dazugeschaltet werden, der einen exakten Takt vorgibt,
z.B mit 4.194.304 Schwingungen pro Sekunde (das ist 2 hoch 22 und
gibt beim 22-fachen Teilen durch zwei exakt eine Schwingung pro
Sekunde),
- ein Speicherbereich, den das Rechenwerk zur Ablage von Zahlen
benutzen kann und der seit Urzeiten der Computertechnik als
"Register" bezeichnet wird, die AVR haben davon 32 Stück
zu je acht Bits, deren Inhalte gehen beim Abschalten der
Betriebsspannung unwiederbringlich verloren,
- ein etwas größerer Speicherbereich, in dem Zahlen
abgelegt und wieder gelesen werden können, je nach AVR-Typ
weitere 64 bis 32.768 Speicherzellen zu je acht Bits, auch dessen
Inhalte sind flüchtig.
Da ist aber noch viel mehr drin, das der Programmierer bei Bedarf
zuschalten kann, nämlich:
- externe Pins, die entweder als Eingang oder als Ausgang
geschaltet werden können und die hohe und niedrige Spannung
annehmen können, als Eingang geschalteten Pins kann ein
Widerstand zugeschaltet werden, der den Pin auf die
Betriebsspannung zieht,
- einer bis vier Zähler zu je 8 oder 16 Bits, dem als Takt
entweder
- der Taktgenerator,
- das entweder durch 8, durch 64, durch 256 oder durch 1024
geteilte Signal des Taktgenerators,
- ein an einem Pin angelegtes externes Signal,
zugeschaltet werden kann, und der über zwei Vergleicher
bei bestimmten Zählerständen entweder
- ein Ereignis auslösen, oder
- einen externen Pin ansteuern
kann.
- ein oder zwei Analogvergleicher, der die Spannung an zwei
Pins miteinander vergleicht und das Ergebnis in einem Bit zum
Auslesen bereithält,
- keinen oder 4 bis 16 Analog-zu-Digital-Wandler, die die Spannung
an externen Pins messen und in eine 10-Bit breite Zahl umwandeln
können (ADC),
- keine, eine oder mehrere Schnittstellen zum seriellen Empfang
und Senden von Zeichen an je zwei Pins (UART),
- EEPROM-Speicher machen es möglich, irgendwelche Werte
in einem nichtflüchtigen Speicherbereich abzulegen, dessen
Inhalte auch nach dem Abschalten der Betriebsspannung erhalten
bleiben,
- keinen oder einen 8-Bit-Multiplizierer, der zwei acht Bit breite
Zahlen multiplizieren kann,
- eine Unterbrechungslogik, die bei einer Reihe von Ereignissen
wie z. B.
- den Spannungswechsel an bestimmten Eingangspins,
- den Ergebniswechsel bei einem Analogvergleicher,
- dem Überlaufen eines Zählers oder das Erreichen
von Vergleichswerten des Zählers,
- der fertigen Umwandlung einer Spannung, oder
- dem fertigen Empfangs- oder Sendevorgang einer seriellen
Schnittstelle,
die Arbeit des Prozessors unterbricht, an eine programmierbare
Stelle verzweigt und dort die Verarbeitung der Schritte fortsetzt.
Nachdem die Unterbrechung bearbeitet ist, kehrt der Professor
zu dem Schritt zurück, bei dem er unterbrochen wurde.
Treten mehrere Unterbrechungen gleichzeitig auf, arbeitet der
Professor diese in einer vorher festgelegten Reihenfolge ab.
Diese Interruptsteuerung ermöglicht es, den Prozessor in
Wartepausen in (Tief-)Schlaf zu versetzen, wo er besonders wenig
Strom braucht.
- eine Logik, mit der das Programm im "vollen Lauf"
von einer externen Quelle heruntergeladen und ersetzt werden
kann (Update-Möglichkeit), ideal für den Hersteller
von Satellitenreceivern mit Softwarefehlern, die der Nutzer
selber ausbügeln muss.
- Durch Setzen eines Bits beim Programmieren kann jeder Zugriff
auf den Programmspeicher unterbunden werden. Ein eingebauter
Kopierschutz (nein, es gibt keine geheime Methode, mit der
dies überwunden werden kann).
Dieser kleine Ausflug in die Innereien zeigt, dass diese Dinger fast
alles können, was man früher alles mechanisch oder mit einer
Vielzahl elektronischer Einzelbauteile zusammenstricken musste oder
gar nicht machen konnte.
Für die meisten AVR bezahlt der Kleinverbraucher maximal ein paar
Euro oder weniger als einen Euro (mit das alles drin!). Nimmt man
einige 100.000 davon ab, kriegt man sie für weniger als ein Ei
kostet. Der Preis und die Vielfalt erklärt, warum wir auf Schritt
und Tritt von den Dingern verfolgt werden.
An den Seitenanfang
Das Schaltbild zeigt einen solchen Mikrocontroller bei der Arbeit.
Es handelt sich um eine Schaltung für ein Codeschloss.
Im Einzelnen besteht es
- natürlich aus einem Mikrocontroller ATtiny13,
- einer 5V-Spannungsversorgung,
- einem Zehngangpotentiometer, an dem der Zulass-Begehrende
die geheime Stellung einstellen muss,
- einem Taster, den er drücken muss, wenn er glaubt, die
geheime Stellung erraten zu haben (nach drei Mal falsch macht
der Herr Professor eine Schnarchpause von zehn Minuten),
- einem Lautsprecher, der dem Einlassbegehrenden entgegenpiepst,
- einer Leuchtdiode, die in der Zwangs-Schnarchperiode blinkt,
- dem Relais, mit einer Schutzdiode gegen
Hochspannungsrückschläge beim Ausschalten, das den
Türöffner betätigt, wenn richtig geraten wurde.
Die geheime Stellung wird so eingestellt, dass das Poti auf den
Sollwert gestellt wird und während des Einschaltens der
Betriebsspannung die Taste gedrückt bleibt. Die Stellung
des Potis wird dann in den EEPROM-Speicher geschrieben und
bleibt bis zur nächsten Umprogrammierung dort erhalten,
selbst wenn der Strom ausfällt.
Die ganze Mimik passt auf ein kleines Platinchen (40 * 25 mm) und
hätte früher, ohne Mikroprofessor und mit Logik-ICs, eine
große Europakarte (100 * 160 mm) mit Bauteilen gefüllt.
Heute kann man das bequem in den vorhandenen Türöffner
mit rein quetschen.
An den Seitenanfang
Die Schaltung selbst tut erst mal rein gar nix und reagiert auf
nichts. Sie tut es erst, wenn wir ihr ein Programm eingehaucht
haben.
Vom Programmablauf her ist Folgendes zu tun:
- Nach dem Einschalten werden zuerst die Richtungen der Pins
festgelegt: OC0A, PB1 und PB2 sind Ausgänge, PCINT4 ist
Eingang und ADC3 ist weder Eingang noch Ausgang (Treiber
abgeschaltet). Bei PCINT4 wird der eingebaute Pull-Up-Widerstand
eingeschaltet, damit er nur beim Drücken der Taste auf
logisch Null geht.
- Dann ist der Tastenzustand abzufragen. Ist er Null, dann
will der User programmieren. Dazu wird der AD-Wandler am
Kanal 3 gestartet. Ist der fertig, wird der Wert gelesen
und in das EEPROM abgelegt.
- Alles Weitere geht interrupt-gesteuert, während der
Prozessor schläft. Er wacht nur bei Tastendruck kurz
auf, startet eine AD-Wandlung am Kanal 3 und pennt wieder
weg. Ist die Wandlung fertig, weckt sie den Professor
wieder auf, vergleicht den Wert mit dem im EEPROM gespeicherten,
bei (ungefährer) Gleichheit schaltet er das Relais an,
startet den Timer und legt sich wieder schlafen. Ist der
Timer abgelaufen, schaltet er das Relais wieder aus.
- Ist der Wert nicht annähernd gleich, dann wird ein
Zähler bis drei gesetzt. Sind drei falsche Werte
hintereinander eingesetzt worden, geht der Prozessor in
den Bestrafungsmodus, schaltet die Tasterunterbrechung ab,
startet den Timer im 10-Minuten-Warte-Modus, versetzt die
LED in Blinkmodus und legt sich wieder schlafen. Erst wenn
der Timer sagt, dass jetzt 10 Minuten um sind, schaltet er
die Tasterunterbrechung wieder an und die LED auf Dauerfeuer.
- Bei allen möglichen Gelegenheiten brauchen wir noch
Piepstöne. Beim Programmieren des Sollwerts, beim
erfolgreichen Öffnungsversuch, beim Falschraten und
beim Ende des Penalties geben wir passende Töne auf
dem Lautsprecher aus. Dazu schalten wir den Timer mit der
gewünschten Schwingfrequenz ein und den Ausgang OC0A
auf Torkeln (das heißt wirklich so, "toggle"
in englisch). Hat der Timer lang genug getorkelt, nehmen
wir den Torkler wieder raus und im Lautsprecher kehrt Ruhe
ein.
Diesen Programmablauf hacken wir in Assemblersprache in eine
Textdatei namens "codeschloss.asm" und werfen die Datei
dem Assembler (einem PC-Programm, ich empfehle mein Eigenprodukt
gavrasm, das es für Windoof, Linux und DOS gibt) zum Frass
vor. Erscheint keine Fehlermeldung, dann macht dieses Programm
daraus zwei neue Dateien mit Namen "codeschloss.hex"
und "codeschloss.eep". Die enthalten lauter
hexadezimale Hieroglyphen, die aber von einem
Brennprogramm verstanden werden. Das Brennprogramm verbrennt
nicht etwa den Inhalt der Hex-Datei, sondern schreibt den
Inhalt der Hex-Datei in den Programmspeicher des angeschlossenen
Mikroprofessors, die Eep-Datei in den EEPROM-Speicher. Der
Professor hat jetzt genau das Futter, das er versteht, nämlich
binäre Befehlsworte. Und die führt er dann aus, so
wie wir es vorherbestimmt haben.
Haben wir irgend etwas falsch gemacht, ist der Herr Professor
stur und lässt uns nicht in die Wohnung. "Er"
macht schon ganz genau, was wir ihm gesagt haben, aber nicht
das, was wir "gewollt" haben, weil wir ihm was anderes
"gesagt" haben. Der Herr Professor versteht
"Bahnhof" und macht stur "Bahnhof", nix
anderes. So schlimm steht es auch nach vielen Entwicklungsjahren
noch immer um die Intelligenz der IT. Dieses mühsame
Herantasten an die selbst produzierten Fehler und Fallen
heißt Debuggen oder Entwanzen und kann um ein Vielfaches
länger dauer als das eigentliche Programmieren. Es kann
den Programmierer in die Raserei treiben, deshalb ergeht an
die umstehenden Leidtragenden die Warnung, dem debuggenden
Hausherrn bloß nicht zu nahe zu treten, schon gar keine
Ansprüche an ihn zu stellen ("Du könntest auch
mal wieder den Müll runterbringen statt Dich tagelang in
den PC zu verkriechen!") oder ihn mit bivalenten Fragen
zu reizen ("Wer ist Dir wichtiger, ich oder Dein blöder
Mikroprofessor?"). In dieser wichtigen Phase kann die
Reaktion den Tatbestand der Körperverletzung erfüllen,
aber mindestens den der Beleidigung. Er wird aber auf
"unzurechnungsfähig wegen Debuggens"
plädieren und damit womöglich sogar durchkommen, wenn
der Richter selbst mit Mikroprofessoren basteln sollte und
diesen Ausnahmezustand aus eigenem Erleben kennt.
Ist das Programm endlich bug-frei, geht das Ganze ab in den
Klingelkasten und erfreut die Familienmitglieder, weil sie jetzt
dank Herrn Professor auch ohne Schlüssel in die Wohnung
kommen. Bis der Hausherr mal wieder umprogrammiert und Niemandem
Bescheid gesagt hat (Schlüsselfaktor Mensch). Dann hilft bei
geschätzten 330 Einstellmöglichkeiten des Potis auch
nicht Ausprobieren, denn 110 mal 10 Minuten (merke: immer nur der
letzte Versuch klappt) gibt 1.100 Minuten oder 18 Stunden
Probierzeit. Wer noch sicherer gehen will, setzt einfach den
Timertakt herunter, die Karenzzeit herauf oder stellt den
Fehlerzähler schon auf zwei gescheiterte Versuche und
nur bei einem gelungenen Versuch wieder auf Null. Kleine
Programmänderungen mit großer Wirkung. So flexibel
sind nur Mikroprofessoren.
An den Seitenanfang
Für den Kleinanwender gibt es nur wenige Prozessorfamilien zur
Auswahl. Eigentlich stellt sich die Auswahlfrage nur bei zwei
Familien: die AVR und die PIC. Alle anderen sind Industrieprodukte,
die für den Kleinanwender riesige Hürden aufwerfen und
deshalb nicht ernsthaft in Frage kommen.
Ein paar grundlegende Unterschiede zwischen AVR und PIC sind:
- AVR werden ausschließlich von der
Firma ATMEL hergestellt, für
PICs gibt es mehrere Hersteller. Bis jetzt hat sich die
Monopolsituation nicht auf die Preise ausgewirkt, obwohl
seit zehn Jahren darüber spekuliert wird.
- Billige Programmierwerkzeuge für PIC sind etwas
aufwändiger. Auch das Programmieren in der Schaltung
selbst beherrschen die AVR besser.
- Die Befehle sind bei PIC 12 Bits breit, bei AVR 16 Bits.
Daher sind AVR-Programme effektiver und schneller.
Im Folgenden sind drei verschieden große AVR- und PIC-Typen
miteinander verglichen und bewertet. Dabei kommt nicht die jeweils
neueste Generation zum Vergleich, sondern Chips mit ähnlich
gleichem Alter und Zuschnitt.
Tabelle 1: 8polig
| PIC vs. AVR, 8-polig |
|
|
|
|
|
|
|
|
|
|
|
|
|
PIC |
AVR |
Besser: |
Faktor: |
|
Dimension |
10F200 |
ATtiny13 |
|
|
| max. Takt |
MHz |
4 |
20 |
AVR |
5 |
| Zeit pro Instruktion |
µs |
1 |
0,05 |
AVR |
20 |
| Anzahl Instruktionen |
[Anzahl] |
33 |
120 |
AVR |
3,64 |
| Genauigk. int. RC |
% |
1 |
10/3 |
PIC |
3,33 |
| Register |
[Anzahl] |
1 |
32 |
AVR |
32 |
| Programmspeicher |
[Instruktionen] |
256 |
512 |
AVR |
2 |
| EEPROM-Speicher |
Bytes |
0 |
64 |
AVR |
exklusiv |
| SRAM-Speicher |
Bytes |
16 |
64 |
AVR |
4 |
| max. Stapeltiefe |
[Adressen] |
2 |
32 |
AVR |
16 |
| Interrupts |
[Anzahl] |
0 |
10 |
AVR |
exklusiv |
| 8-Bit-Timer |
[Anzahl] |
1 |
1 |
- |
- |
| 8-Bit-PWM-Kanäle |
[Anzahl] |
0 |
2 |
AVR |
exklusiv |
| AD-Kanäle |
[Anzahl] |
0 |
4 |
AVR |
exklusiv |
| Preis (Reichelt) |
€ |
0,52 |
1,40 |
PIC |
2,69 |
Tabelle 2: 28polig
| PIC vs. AVR, 28-polig |
|
|
|
|
|
|
|
|
|
|
|
|
|
PIC |
AVR |
Besser: |
Faktor: |
|
Dimension |
16F870 |
ATmega8 |
|
|
| max. Takt |
MHz |
20 |
16 |
PIC |
1,25 |
| Zeit pro Instruktion |
µs |
0,2 |
0,06 |
AVR |
3,2 |
| Anzahl Instruktionen |
[Anzahl] |
35 |
130 |
AVR |
3,71 |
| Genauigkeit int. RC |
% |
1 |
3/1 |
PIC |
3 |
| Register |
[Anzahl] |
1 |
32 |
AVR |
32 |
| Programmspeicher |
[Instruktionen] |
2048 |
4096 |
AVR |
2 |
| EEPROM-Speicher |
Bytes |
64 |
512 |
AVR |
8 |
| SRAM-Speicher |
Bytes |
128 |
1024 |
AVR |
8 |
| max. Stapeltiefe |
[Adressen] |
8 |
512 |
AVR |
64 |
| 8-Bit-Multiplizierer |
- |
nein |
ja |
AVR |
exklusiv |
| Interrupts |
[Anzahl] |
11 |
19 |
AVR |
1,73 |
| 8-Bit-Timer |
[Anzahl] |
2 |
2 |
- |
- |
| 16-Bit-Timer |
[Anzahl] |
1 |
1 |
- |
- |
| 8-Bit-PWM-Kanäle |
[Anzahl] |
0 |
3 |
AVR |
exklusiv |
| 10-Bit-PWM-Kanäle |
[Anzahl] |
1 |
2 |
AVR |
2 |
| 16-Bit-PWM-Kanäle |
[Anzahl] |
0 |
2 |
AVR |
exklusiv |
| AD-Kanäle |
[Anzahl] |
5 |
5 |
- |
- |
| UARTs |
[Anzahl] |
1 |
1 |
- |
- |
| Preis (Reichelt) |
€ |
3,10 |
2,40 |
AVR |
1,29 |
Tabelle 3: 40polig
| PIC vs. AVR, 40-polig |
|
|
|
|
|
|
|
|
|
|
|
|
|
PIC |
AVR |
Besser: |
Faktor: |
|
Dimension |
16F877 |
ATmega32 |
|
|
| max. Takt |
MHz |
20 |
16 |
PIC |
1,25 |
| Zeit pro Instruktion |
µs |
0,2 |
0,06 |
AVR |
3,2 |
| Anzahl Instruktionen |
[Anzahl] |
35 |
131 |
AVR |
3,74 |
| Genauigkeit int. RC |
% |
1 |
3/1 |
PIC |
3 |
| Register |
[Anzahl] |
1 |
32 |
AVR |
32 |
| Programmspeicher |
[Instruktionen] |
8192 |
16384 |
AVR |
2 |
| EEPROM-Speicher |
Bytes |
256 |
512 |
AVR |
2 |
| SRAM-Speicher |
Bytes |
368 |
1024 |
AVR |
2,78 |
| max. Stapeltiefe |
[Adressen] |
8 |
512 |
AVR |
64 |
| Interrupts |
[Anzahl] |
15 |
19 |
AVR |
1,27 |
| 8-Bit-Multiplizierer |
- |
nein |
ja |
AVR |
exklusiv |
| 8-Bit-Timer |
[Anzahl] |
2 |
2 |
- |
- |
| 16-Bit-Timer |
[Anzahl] |
1 |
1 |
- |
- |
| 8-Bit-PWM-Kanäle |
[Anzahl] |
0 |
1 |
AVR |
exklusiv |
| 16-Bit-PWM-Kanäle |
[Anzahl] |
2 |
2 |
- |
- |
| AD-Kanäle |
[Anzahl] |
8 |
8 |
- |
- |
| UARTs |
[Anzahl] |
1 |
1 |
- |
- |
| Preis (Reichelt) |
€ |
5,20 |
3,90 |
AVR |
1,33 |
Wie man an der Vergleich sieht, haben die AVR die Nase vorn bei
- Geschwindigkeit der Befehlsausführung,
- Anzahl der Befehlsworte (für optimales Programmieren),
- einigen exklusiven Dreingaben, die es in den verglichenen PICs
gar nicht gibt.
Die PIC haben nur bei der Genauigkeit der internen Taktgeneratoren
die Nase vorn. Preislich sind keine wirklich signifikanten Unterschiede
vorhanden.
An den Seitenanfang
Die Beispiele haben gezeigt, dass man für wenige Cent ein ganzes Arsenal
an geballter Elektronik kriegt, mit dem sich fast jedes Steuer- und Regelproblem
lösen lässt. Hilfen zum Lernen, Tips und die Werkzeuge zum
Programmieren gibt es (fast) kostenlos. Nur die Mühe, die
Assemblersprache zu erlernen, nimmt einem niemand ab. Dafür lohnt es
die Mühe aber schon ab dem dritten gebauten Schächtelchen mit
eingebautem Professor.
zum Seitenanfang
©2012 by http://www.avr-asm-tutorial.net