Forum: Mikrocontroller und Digitale Elektronik AVR-Kontroller


von Roadrunner (Gast)


Lesenswert?

Hi,

Ich hätt ne Frage:
Was sind eigentlich die wesentlichen Vorteile eines AVR Atmega16
gegenüber andere Kontroller anderer Fabrikate????

mfg,

von Merle (Gast)


Lesenswert?

Hi der Vorteil der ATMEL Mikrocontroller gegenüber PIC Mikrocontrollr
ist das alle ATMEL AVR's mindestens 1000 mal Programmierbar ist und
die meisten PIC's sind nur 1 mal Programmierbar das heißt einmal nen
Fehler im Code und der Pic ist hinüber und die Pic's kosten im
Vergleich zu den AVR's ziemlich viel. Beim AVR ist es egal wenn man
einen Fehler macht dann Löscht man ihn wieder und Programmiert ihn neu
das kann man mit den meisten Pic's nicht.

Mfg. Merle

von Rainer (Gast)


Lesenswert?

Hmmm... PIC mit Flash statt OTP kaufen :-) ??

von Roadrunner (Gast)


Lesenswert?

Also meinte mit anderen Kontrollern eigentlich schon Flash Kontroller
:-)

von Dirk (Gast)


Lesenswert?

Hi,

ein anderer guter Grund ist z.B. die Risc Architekur. Die Quarzfrequenz
wird nicht intern durch 2 geteilt. Der Avr braucht auch fuer die
meisten Operationen nur ein oder zwei Zyklen.


Mfg

Dirk

von Ralf (Gast)


Lesenswert?

Hi,

für mich liegen die Vorteile der AVRs einmal darin, das man eine ganze
Reihe unterschiedlicher Typen mit verschiedenen Leistungen und in alen
möglichen Preisklassen erhält. Dann ist die Unterstützung, die man im
Internet erhält sehr gut. So gibt es einen freien Compiler und andere
Software frei zum Download. Hitachi oder Infineon machen zwar auch
schöne Controller, aber wenn ich erst mal für viel  Geld Compiler und
Programmer kaufen muss, dann ist mir das als Privatmann zu viel. Die
Arbeitsgeschindigkeit der AVRs ist auch nicht schlecht. Die meisten
Befehle werden, wie oben schon gesagt in einem Zyklus abgearbeitet. Ein
PIC 16F84 braucht dazu z.B. 4 Zyklen und ein 8051 soweit ich weiß 12.
Die Architektur der Controller ist auch sehr gut für Hochsprachen wie C
geeignet. Bei den PICs sieht es da nicht so gut aus.

Viele Grüße,

Ralf

von thkais (Gast)


Lesenswert?

Für den Assembler-Programmierer interessant: Die Register-Struktur. So
etwas wie einen Akku gibt es nicht, man kann mit (fast) allen Registern
alles machen, und man hat die enorme Zahl von 32 Registern. Bei den
PICs beispielsweise ist Assembler eine Qual, und bei den MCS-51
Prozessoren muß man viele arithmetische Funktionen auschließlich über
den Akku abwickeln. Dadurch ist teilweise sehr schneller und effektiver
Code möglich (wenn mir auch die speziellen Bitoperationen der MCS-51
beim Atmel immer wieder fehlen...)

von Eckhard (Gast)


Lesenswert?

Hallo,

bevor Du diesen MIPS schwachsinn hier glaubst, lies erstmal das hier.
http://www.embedded.com/story/OEG20030610S0041

Ansnosten sind die AVR´s was für gesellige Leute, man kann sich dann
wunderbar hier im Forum darüber unterhalten, das der Parallelport
programmer nicht funktioniert. Zur Dokumentation der AVR´s kann ich nur
sagen das die meisten Leute die scheinbar nicht lesen können.

Eigentlich bietet Dir jeder Hersteller eine breite Pallette an
Ausstattungsvarianten an. Ich persönlich bevorzuge Motorola und habe
bei den Atmels noch keine vorteile erkannt. Sich bei engen
Speicherresourcen mit ner Harvard Architektur rumschlagen zu müssen
empfinde ich eher als nachteil. Wenn deine Register mal voll sind, dann
sind die möglichkeiten der Stackoperationen eher mickrig. Was mich bei
den dingern auch stört ( obwohl es bei den neuen wol per JTAg geht )
ist das man die nicht In System debuggen kann. Simulatoren finde ich
eher unerotisch und wenn der dann auch noch keine ISRs kann ist das
nichts für mich.

Also für mich der einzige vorteil ist dasn man schnell viele Leute
findet die mit dem Ding auch nicht klarkommen.

Eckhard

von Markus Kaufmann (Gast)


Lesenswert?

@Eckhard:
Welche Motorolas benutzt Du? Die "großen" ? Dragonball und so? Die
sind aber wesentlich teuerer als die AVRs.


@Roadrunner:
Willst Du die Microcontroller privat oder beruflich einsetzen?

Für mich (privat) waren folgende Gründe entscheidend:
- Billig. Da ist es nicht so wild wenn man mal einen kaputtmacht. Bei
einer 40€-CPU würde man sich ziemlich ärgern, aber so kann man einfach
mal 10 Stück auf Vorrat anschaffen.
- ISP-Programmierbar
- Einfacher Programmer (zum selber bauen)
- kostenlose Assembler/Compiler verfügbar
- große Community (hier bleiben IMHO im wesentlichen AVRs und PICs,
vielleicht auch noch 8051-Kompatible übrig)
- Geschwindigkeit
- Im DIP-Gehäuse verfügbar
- gute Verfügbarkeit, d.h. die meisten Katalogversender haben sie im
Angebot.

Die obigen Argumente schränkten die Auswahl für mich auf AVR und PIC
ein, die AVRs erschienen mir schneller und moderner, deswegen hab' ich
mich dafür entschieden.

Markus

von thkais (Gast)


Lesenswert?

@Eckhard:
Wer kommt mit dem Atmel nicht klar? So oft kommts doch auch nicht vor.
Kann doch keiner was dafür, wenn Du als Motorola-Programmierer allein
dastehst (habe vor Ewigkeiten auch mal den 68000 per Assembler
programmiert). Ich sehe es als Vorteil, wenn Viele einen Controller
verwenden. Für Hobby-Bastler sind die Atmels nunmal ideal, sie sind
leicht verfügbar und einfach anwendbar, ein Programmiergerät kostet
nicht mal 3 Euro. Und da eben viele Anfänger damit herumbasteln, gibt
es eben viele Anfängerfragen - bis hin zu den nicht funktionierenden
Programmiergeräten, und daran ist zumeist das BS des PC schuld.
Ich rege mich auch manchmal drüber auf, daß ein Gutteil der Fragen
durch schlichtes Durchlesen der Dokumentation erledigt wären. Bei
Controllern, die nur auf der "Profi-Ebene" verwendet werden, ist dies
nicht so - da sich keine Anfänger damit beschäftigen.
Ich habe mir letztens mal einen Mitsubishi M16C zugelegt, und war vom
Softwareangebot schon etwas enttäuscht. Wenn man einen
Freeware-Assembler haben will, muß man sich mit DOS rumschlagen (wobei
das kein Problem ist), aber für einen blutigen Anfänger ist ein System,
das schon auf Assembler-Ebene virtuelle Speicherbereiche und
Interrupt-Vektoren bereitstellt, meines erachtens völlig ungeeignet.
Und einen wirklich brauchbaren C-Compiler gibts für den Mitsubishi auch
nicht.
Ich kam über MCS-51 und PIC zum Atmel, und war von Anfang an begeistert
über den einfachen Aufbau von Atmel-Umgebungen. Spannung dran, bei den
neuen Megas braucht man nicht mal einen Quarz, und schon gehts los.
Man muß auch differenzieren, was man mit einem Controller vor hat. Es
soll schon vorgekommen sein, daß zum RC-5 dekodieren ein 32-Bit
Controller verwendet wurde... Wenn ich sehe, in welchen Massen die PICs
verwendet werden, die eine gänzlich veraltete Struktur haben, verstehe
ich nicht, weshalb über den Atmel so gemeckert wird.
In-System-Debugger? Braucht man eigentlich nur, wenn der Code
fehlerhaft oder unübersichtlich ist. Man gewöhnt sich bei den Atmels
daran, von Anfang an strukturiert und modular zu programmieren, und ich
hatte noch nie Probleme mit dem Speicher, weil ich von vornherein die
richtige Auswahl getroffen habe.
Das ist aber alles eine Glaubensfrage. Wenn man mal so schnell ein
kleines System zusammenstellen will, paßt der Atmel, für größere
Geschichten sind andere Systeme sicherlich besser.

von crazy horse (Gast)


Lesenswert?

@eckhard: ziemlich daneben, dein statement.
Ich weiss nicht mehr, wieviele Projekte ich schon mit MCs realisiert
habe (selbständiger Elektronik-Entwickler). Einen 32-bitter habe ich
noch nie benötigt, habe jetzt aber angefangen, mir den Philips-LPC
reinzuziehen.
Selbst 16bit sind im embedded-Bereich selten nötig, habe ich nur in
wenigen Projekten drin. Die Masse sind 8-bit-Teile, und bei vielen
davon würden auch 4bit genügen, i.a. verbringen MCs viel Zeit mit
warten.
Und ich kann meinen Kunden für simple Sachen keinen 30 oder mehr Euro
Prozessor einbauen, meist sind einzuhaltende Preislimits Bestandteil
des Auftrags.
In welcher Welt lebst/arbeitest du??

von Eckhard (Gast)


Lesenswert?

Hallo,

also ich bin im gegensatz zu all den anderen hier schon davon
ausgegeangen, das es um 8 Bit Controller geht. Die Coldfires und
sonstige sind hier von anderen ins Spiel gebracht worden. Die sachen
die ich beim AVR vermißt habe besitzt ein HC08 z.B. alle. Ich kann
nichts dafür wenn Ihr alle denkt Motorola stellt nur 32 Bit MCU´s her.
Die Motorola MCU´s mögen ja für den Privatmann etwas teurer sein, weil
der Händler um die Ecke da nicht ganz so viele von umsetzt aber gerade
im geweblichen bereich sind die eher günstig zu bekommen. Gerade der
Preis ist sicherlich mitentscheidend warum Motorola weltweit immer noch
die Meisten MC´s verkauft ( auch im 8_Bit bereich ). Ich verstehe also
hier die Vergleich nicht. Es liegt an jedem selbst sich über den Markt
zu informieren und ich habe gesagt was aus meiner sicht gegen die AVR´s
spricht. Den einzigen Vorteil den ich bei den AVR´s sehe ist das
externe Speicherinterface falls man mal etwas mehr RAM braucht, das ist
dann ja aber auch nicht für Daten zu gebrauchen schade eigentlich, da
würde ich dann den HC11 doch noch vorziehen, der ja auf dem Chip eher
mager ausgestattet ist.
Die vielen Register beim AVR sind auch nicht nur ein Vorteil, wenn man
wirklich allle benutzt, dann dauert es eine halbe Ewigkeit bis man in
einer ISR mal alles auf den Stack gebracht hat, da patzt der Chip
gerade dann wenn er mal nicht mit Warten beschäftigt ist, von
Taskswitching will ich da garnicht erst reden.


So jetzt habe ich schon wieder Jehova gesagt.


Eckhard

von Sascha (Gast)


Lesenswert?

Steinigt ihn !!!    ;-)


Sascha


PS: Nur zur Auflockerung (Das Leben des Brian)

von Markus Kaufmann (Gast)


Lesenswert?

@Eckard:
Im Privatbereich sind die großen Motorolas nunmal bekannter als die die
kleinen.

Die 8Bit-Motorolas sind für den Privatanwender schwerer erhältlich und
viel teurer. Außerdem sind sie wohl auch viel langsamer. Die meisten
laufen nur mit 8MHz, brauchen aber für die meisten Befehle mehrere
Takte.

Daß die Motorolas im gewerblichen Bereich deutlich günstiger sind ist
mir als Privatmensch eigentlich relativ egal, insbesondere da im
industriellen Bereich ja gerne die maskenprogrammierten Typen benutzt
werden, mit denen ich zuhause nunmal garnichts anfangen kann.

Zum Stack: Das verstehe ich nun garnicht. Wenn Du in Deiner ISR nicht
alle 32 Register brauchst, dann mußt Du sie auch nicht alle sichern.
Wenn Du sie brauchst, dann kannst Du keine CPU verwenden, die weniger
Register hat. Wenn Du aber einen zeitkritischen Interrupt hast, dann
kannst Du bei vielen Registern einfach welche für diesen Interrupt
reservieren, dann mußt Du garnichts sichern.

Markus

von Malte (Gast)


Lesenswert?

Jetzt muss ich mein Zeug hier auch mal dazu geben.
@ Eckhard
Ich verstehe diese ganze Geschichte garnicht, die du hier abziehst.
Lass doch MC's MC's sein. Lohnt es sich, gleich so anzukommen und
"motorola rulez the PCBs" zu schreien?
Jeder hat so seinen Geschmack und jeder Prozessor hat Vor und Nachteile
gegenüber anderen.
Und das absolut beste Argument, gerade für kleinere Steuerungen, bei
denen es vor allem auch auf Platz ankommt bietet sich doch der 1200er
gnadenlos an.
Ich selbst habe ihn in diversen Geräten zur Erweiterung verwendet...
Was also ist da besser als so ein kleines DIP20 Teil welches nicht mal
einen externen Oszillator benötigt, also mit ZERO komponenten auskommt?
Achja... und der preis in diesem beispiel: über knapp 1 € kann man
nicht meckern.

Aber ich rede wieder blablabla... Wie gesagt Argumente gibt es viele -
dafür und dagegen. und bevor du jetzt auf dem 1200er rumhackst, weil
der ja "fast nix kann" und kein ram hat und blablabla:
es war wie gesagt ein beispiel von vielen:)

So. jetzt geh ich wieder kaffee trinken. bis spaeter *g

von thkais (Gast)


Lesenswert?

Diese Diskussion ist sinnlos.

von Notker (Gast)


Lesenswert?

Die Diskussion ist nicht sinnlos. Sie muß nur anhand konkreter
Vergleiche sinnvoll geführt werden. In dem Buch "AVR-RISC
Mikrocontroller" sind z.B. Leistungsvergleiche verschiedener MCs für
verschiedene "Tätigkeiten" drin, die meiner Meinung auch sehr
realistisch sind. Und hier zeigt sich, dass selbst die einfachen AVRs
der klassischen Serie (also noch kein Atmega), über alles gemittelt
leistungsfähiger sind, als der 68HC11 von Motorola. Das ist doch schon
mal eine Aussage, mit der sich etwas anfangen läßt.

@Eckhard

wieso sollte der Parallelport-Programmer nicht funktionieren? Bei mir
funktioniert er bestens. Vielleicht liegt es eher am Unvermögen des
Bastlers?


Gruß,

Notker

von Markus Kaufmann (Gast)


Lesenswert?

@thkais:
Natürlich geht es in diesen Diskussionen oft nur um die persönlichen
Vorlieben und weniger um sachliche Argumente, aber nach welchen
Kriterien suchst Du Dir denn die CPUs aus? Würfelst Du?

In dieser Diskussion sind genug sachliche Argumente genannt worden, so
daß ich diese Diskussion keinesfalls als sinnlos erachten würde.

Markus

von Eckhard (Gast)


Lesenswert?

Hallo,

was an den Parallelportprogrammern so kompliziert ist weiß ich nicht,
aber mindestens einmal die Woche taucht hier jemand auf bei dem er
nicht funktioniert. Ich hab mich damit noch nicht so im detail
auseinandergesetzt, aber ich halte es für ziemlich unmöglich unter
Windows ein exaktes Timing auf dem Parallelport hinzubekommen. Die
Serielle kann garnicht anders als das Timing einzuhalten. Soviel zur
generellen Technik. Desweiteren bin ich auch der Meinung das die HC11er
Ihre beste Zeit hinter sich haben, da bieten sich eher die HC12er an
aber da wären wir schon bei 16 Bit und darum gehts hier nicht. Die sind
für Hobbyisten auch eher unhandlich. Was mich aber am meisten stört ist
dieses runtergeleier der Atmel Marketingsprüche. Welcher Controller ist
denn heute nicht für Hochsprachen Optimiert. Schlimmstenfalls bedeutet
das für Assembler ungeeignet. RISC ist nicht imemr unbedingt ein
Vorteil, das kann auch ein Nachteil sein. Da kann man doch nicht so
einfach hinpinseln, deren Vorteil ist das sie RISC sind. Wenn ich mir
die Ausführungszeiten der befehle mal so ansehe dann sind die Zeiten wo
unendlich viele Takte für einen Befehl gebraucht werden sowieso überall
vorbei. Der große geschwindigkeitsvorteil ergibt sich wirklich nur
dadurch das die AVR oftmals nur mit ihren Registern arbeiten. Befehle
die nur auf Register gehen werden aber auch von anderen MCU´s in einem
Takt abgearbeitet. Ob die angelegte Frequenz intern nochmal geteilt
wird ist mir eigentlich auch ziemlich schnuppe, wenn ich 32 MHz anlegen
muß um intern 8MHz zu haben, stört mich das eigentlich recht wenig. Wem
das zu hochfrequent ist, der hat meistens noch die Variante einen 32KHz
Uhrenquarz an eine interne PLL zu hängen also was solls. Desweiteren
hat Harvard halt nicht nur Vorteile. Sicherlich sind Befehle schneller
geholt wenn man darfür einen eigenen Bus hat auf dem nicht auch noch
die Daten rumspazieren, trotzdem ist es ganz amgenehm überall code
ausführen zu können bzw Daten hinpacken zu können. Als beispiel nenne
ich mal FLASH Memory zur laufzeit zu Programmieren. Die meisten MC´s
haben nur einen FLASH Block und der wird zur Programmausführung
gebraucht. Dadurch läßt der sich nicht gleichzeitig programmieren. Wenn
man hier eine kleine Routine ins RAM kopieren und dort ausführen kann
ist das alles überhaupt kein Problem mehr.

Eckhard

von Markus Kaufmann (Gast)


Lesenswert?

@Eckard:
Wenn man eine Taktleitung hat - und die haben die AVRs - dann ist das
Timing eigentlich nichtmehr sonderlich kritisch.

Bei den Marketingsprüchen gebe ich Dir recht, bei den Taktzyklen aber
nicht:

Vergleicht man z.B. die Multiplikation bei einem ATMega (2 Zyklen bei
16MHz) mit einem HC08 (5 Zyklen bei 8MHz), dann ist der ATMega einfach
um den Faktor 5 schneller.

Zur Taktfrequenz: Natürlich ist es egal, ob der Takt nun direkt oder
über eine PLL erzeugt wird, aber die AVRs bearbeiten maximal 16 Mio
Befehle/Sekunde während z.B. die PICs nur 10 Mio machen. Deswegen macht
man ja die MIPS-Vergleiche, weil die einen ersten Eindruck über die
Leistungsfähigkeit der CPUs geben, unabhängig von der externen
Taktfrequenz.

An der Stelle würde mich aber schonmal ein realistischer
Performancevergleich diverser Microcontroller interessieren. Kennt
jemand sowas (vorzugsweise im Web) ?

Markus

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.