Forum: Mikrocontroller und Digitale Elektronik Vorteile/Nachteile von AVR gegenüber 8051er


von W. (Gast)


Lesenswert?

Hallo!

Ich bin 8051er-Fan... ;-)
Möcht aber auch mal AVR genauer kennenlernen.

Kann mir jemand kurz die wichtigsten Vor-/Nachteile gegenüber 8051er
nennen?

Buchtip zum Programmieren von AVR mit C?

(Bitte keine Diskussion, welche Struktur die bessere ist!)

Danke schonmal im Vorraus!

von tex (Gast)


Lesenswert?

Ich habe mir für den Umstieg einen Butterfly besorgt. Für Litteratur
habe ich inzwischen so ca 800€ ausgegeben aber noch nicht ein einziges
sinnvolles Buch dazu gefunden. Hier macht wohl nur Versuch kluch.

von Thomas Burkhardt (Gast)


Lesenswert?

Hi.

- AVR haben keine Taktteilung wie die klassischen 8051 (gut, die neuen
8051 Derivate sind auch schon nen Schritt weiter)
- AVR haben keinen Akku, fast alle Operationen können auf den 32
Registern ausgeführt werden... Das ist wirklich TOLL :)
- dafür haben die AVR nicht so tolle Bitmanipulationsmöglichkeiten wie
die 8051


- Flash und ISP sind auch bei, allerdings gibts ja auch 8051 mit
solchen Features


Naja, lässt sich noch beliebig fortsetzen...

von Benedikt (Gast)


Lesenswert?

AVRs können nicht mit externem Programm Speicher arbeiten...

von --- (Gast)


Lesenswert?

@Benedikt

Das war wohl nichts!!!

von André Kronfeldt (Gast)


Lesenswert?

@---:

Wieso? Recht hat er? Zu schnell gelesen? PROGRAMM-Speicher ;-)

Grüße,
André

von Thomas Burkhardt (Gast)


Lesenswert?

800 Euro und kein Buch gefällt dir? Du solltest dir vielleicht die
Bücher erstmal anschauen ;-)

von Christof Rieger (Gast)


Lesenswert?

Wenn du auf dem 8051 fit bist, musst du nicht unbedingt umsteigen. Viele
Hersteller wie Philips und auch ATMEL bieten Clone an die auch mit
EEPROM-Programmspeicher ausgerüstet sind und nichtmehr die 1/12
Taktteilung haben. Eigendlich war meine ersten µ-Contollerbekanntschft
auch ein Typ aus der 8051-Serie. Bin aber dann auf die AVR-Serie
Umgestiegen. Mir war die komzeption der Register und des
Risc-Befehlssatzes sympatischer, für mich war damals auch die einfache
Konzeption des ISP ein Umstiegsargument.

von Rahul (Gast)


Lesenswert?

@Benedikt:
Schau dir mal beispielsweise den ATmeag162 an: der hat so komische
Portbezeichnungen wie "ALE" oder "AD.." (einen AD-Wandler besitzt
er nicht).
Für ein paar AVR mag deine Behauptung stimmen, für einige aber auch
nicht...

Der grösste "Vorteil" (eher wohl Unterschied) ist wohl der
Befehlsdurchsatz, sprich der klassische 8051 teilt seine Taktfrequenz
ja durch 12 und der AVR durch 1, was dazuführt, dass er bei gleichem
Takt/Quarz schneller ist, und dadurch auch weniger Strom aufnimmt (war
doch so, oder?)
Was bei der 8051-Architektur schön ist, ist dass es nicht nur einen
Hersteller, sondern eine ganze Reihe von Herstellern gibt, deren Chips
alle auf den gleichen Kern zurückgreifen.
Mir sind beide Typen lieber als die Controllermit dem PIC drin...
Aus meiner Sicht ist es nicht notwendig umzusteigen.
Der AVR ist für Anfänger wegen des geringern Hardware-Aufwandes beim
Einstieg (Low-Cost-ISP) interessant.
Wenn man erst mal mit dieser "Droge" angefangen hat, ist es doch
eigentlich egal, auf welcher Plattform man arbeitet.
So sehe ich das.

Vorteile:
AVR mit serieller Schnittstelle haben dafür einen eigenen Timer und man
muß nicht einen von den anderen opfern.
Alle AVR lassen sich einfach über die ISP programmieren.
Die werden immer mit ner Menge Schnickschnack (ADC etc) geliefert.
Die Architektur wurde der Sprache "C" angelehnt entwickelt, also
hochsprachenoptimiert.

Nachteile:
nur ein einziger Hersteller (ATMEL)
Durch mehrere Hersteller gibt es vom 8051 eine vielfältigere Auswahl.

[OT]
Übrigens habe ich bisher für den AVR keine Bücher gebraucht(gibt es da
überhaupt welche, die aktuell sind?). Für den 8051 hab ich mir mal vor
Jahren die Bücher von Andreas Roth schenken lassen.
Naja, FH-Skripte sind für den Anfang schon recht gut...
[/OT]

Gruß Rahul

von Matthias (Gast)


Lesenswert?

Hi

@Rahul
Kein AVR kann externen _Programm_-Speicher ansprechen. Mega8515,
Mega162, Mega64 und Mega128 ermöglichen nur den Anschluß von
Datenspeicher.

Matthias

von André Kronfeldt (Gast)


Lesenswert?

@Rahul:

Der kann noch so viele ALE, AD, A, sonstwas haben.
Einen externen PROGRAMM-Speicher kriegt er dadurch trotzdem nicht.
Benedikt hat also recht. Liest denn keiner das Datenblatt?

Grüße,
André

von André Kronfeldt (Gast)


Lesenswert?

Ups. Zu spät. @Matthias: Danke ;-)

von W. (Gast)


Lesenswert?

@Christof:

Kennst du 8051er ohne die 12er-Teilung und mit ISP?
(evtl. auch mit ein bischen Schnickschnack..?!?)


@All:

Danke für die Postings! Werd mir mal'nen Schmetterling besorgen und
damit etwas experimentieren...  ;-)

von Christof Rieger (Gast)


Lesenswert?

Das Stimmt, bei einem 8051 kann man mit entsprechender Beschaltung ein
Programm in einen externen RAM-Speicher up-loaden. Das geht bei den AVR
nur intern über den BOOT-LOADER und das nur 10.000mal. Oder man
Programmiert einen Interpreter (Wäre auch mal ein Projekt.)

von Rahul (Gast)


Lesenswert?

ja, tut mir leid! Asche auf mein Haupt!
Hab "Programm" überlesen...
Vielleicht überlegt sich Atmel ja noch mal irgendwas...

@Wilhelm:
(auch wenn ich inzwischen etwas unglaubwürdig erscheinen mag=
Bisher habe ich nur 8051 mit 1/6-Teilung gesehen. Die Typen ...-RD2
(Philips?) haben (soviel ich nicht vergessen nzw. überlesen habe) diese
12er Teilung durch eine 6er ersetzt.
Musst du mal einen Blick in die Datenblätter werfen.

Gruß
Rahul

von Christof Rieger (Gast)


Lesenswert?

Ich glaub sogar mal einen mit 2er Teilung gesehen zu habe, aber der
Preis war häftig, dann lieber AVR

von Bernd (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

immer dieses halbwissen...

Leider weis ich nicht ob der AT43USB320A noch angeboten wird.

Ein Blick in das Datenblatt zeigt aber das man dem Ding bis zu 64KB
EXTERNEN Programm Speicher verpassen kann. Er hat auch 4 Ports etc.
also muß man ja nicht unbedingt einen USB-Applikation darauf laufen
lassen. Und da dieses Teil einen AVR-Kern hat...

Ausschnitt der Seite 1 des PDF im Anhang.

Gruß Bernd

von Johannes M. Richter (Gast)


Lesenswert?

SILabs hat ein paar: Zitat aus dem Datenblatt des C8051F130;
"executes 70% of instructions in 1 or 2 system clocks
Up to 100 MIPS throughput with 100MHz system clock"

von Christof Rieger (Gast)


Lesenswert?

@Bernd
OK. Aber für den Hobbybastler nicht einfach zu händln (100 Pin SMD).
Kennst du eine Bezugsquelle für dieses Modell. Vieleicht auch für den
AT43USB351M

von Johannes M. Richter (Gast)


Lesenswert?

Von den AT43USB320A hat digikey noch knapp ueber 500. Wenn ihn wer will
- im Markt-Forum lauft grad eine Digikey-Sammelbestellung an.

von buz11 (Gast)


Lesenswert?

Warum wird den so auf der /12 Teilung so herumgeritten ?
Wenn man einen modernen , schnellen , stromsparenden 8051er
nimmt , ist die interne Taktung egal , oder ?


ADuC812 : Single-cycle 20 MIPS 8052 core

multichannel ADC, a dual DAC, and an optimized single-cycle
20 MHz 8-bit MCU (8051 instruction set compatible)
on a single chip ...  bla bla ...

von W. (Gast)


Lesenswert?

@buz11:

Der ADuC812 kostet bei RS 44,30Euronen!!
Das schon ein bischen heftig, findest du nicht..??

Wenn ich dann erst die Geschwindigkeitsvorteile vom AVR mit dem
verbunden "Cent-Preis" betrachte...  ;)

----

Abgesehen von der Geschwindigkeit, ist die moderne 8051-Serie dann
eigendlich genausogut, wie ich das hier so rauslese.. Oder ist da
jemand anderer Meinung?

Ciao!

von Rufus T. Firefly (Gast)


Lesenswert?

@W.: Ein Preis von 44.30 für einen ADuC812 erscheint mir
auch etwas überzogen.
Vielleicht ist RS einfach nicht der geeignete Anbieter für sowas?

Allgemein:
Der MCS51-Kern hat einen deutlichen Unterschied zur AVR-Serie, nämlich
die Behandlung von Speicher. "Echtes" RAM, das ohne Verkrampfungen
oder Spezialbefehle angesprochen werden kann, ist beim MCS51 rar -
nämlich gerade mal 256 (oder sogar nur 128, beim echten 8051) Bytes
groß. Alles, was darüber hinausgeht, muss auf andere Art und Weise
angesprochen werden. Der Hardwarestack muss in diese 256 Bytes passen,
was die Programmierung in Hochsprachen zumindest spannend macht.
Dadurch unterscheiden sich die Teile signifikant von der AVR-Reihe, die
es mit bis zu 4 kByte RAM gibt, die dadurch etwas zielorientierter
programmiert werden können.

Die Eleganz der ISP-Programmierbarkeit der AVR-Reihe ist kein
Alleinstellungsmerkmal; die MCS51-Derivate von Atmel (zumindest einige
davon) verwenden exakt die gleiche Schnittstelle dafür und der bei
Einsteigern beliebte Bascom-Compiler liegt auch in einer MCS51-Version
vor, die via ISP die Atmel-51er programmieren kann ...

Letztlich ist der MCS51-Kern einfach deutlich älter als der AVR-Kern,
aber dafür in deutlich mehr unterschiedlichen Prozessoren mit teilweise
äußerst interessanter Peripherie verbaut.
Gerade da ist die AVR-Reihe etwas schwach bestückt

Selbst Atmel verwendet im USB/IDE/MP3-Prozessor AT89C51SND1C einen
MCS51-Kern.
Und die Cypress EzUSB-Reihe (ursprünglich von AnchorChips), einer der
reizvollsten Microcontroller mit USB, verwendet ebenfalls einen
MCS51-Kern.


Mein persönliches Fazit ist: Wer den einen Kern kennt, muss nicht
unbedingt den anderen auch kennenlernen. Dazu sind die Unterschiede
nicht ausreichend.
Interessanter für "Aufsteiger" ist beispielsweise der ARM7-Kern, wie
er im LPC2106 zu finden ist (das ist ein 32-Bit-RISC-Prozessorkern im
48poligen Gehäuse mit 64 kByte RAM und 128 kByte Flash und bis zu 32
Portleitungen. Bei 60 MHz Takt hat das Teil eine Leistungsaufnahme von
etwa 60 mW.)

: Bearbeitet durch Admin
von Thorsten (Gast)


Lesenswert?

> Für Litteratur habe ich inzwischen so ca 800€ ausgegebe

...KOPFSCHÜTTEL...

von André Kronfeldt (Gast)


Lesenswert?

@Bernd:

Das hat mit Halbwissen nix zu tun. Die 'echten' AVRS (also die bei
Atmel auch unter AVR stehen) können keinen externen Programm-Speicher.
Das Atmel auch USB-Chips mit AVR-Core hat (warum das Rad 2x erfinden,
wenn es den Core schon gibt) ist ja was anderes. Genauso kann ich einen
AVR-Core in einen FPGA setzen mit Bluettoth-Stack und sagen es gibt AVRs
mit Bluetooth. Einigen wir uns so: Gaaanz seltene AVR-Mutanten können
das. Aber kaufen will man die dann trotzdem nicht ;-)

Grüße,
André

von Peter D. (peda)


Lesenswert?

Es stimmt schon, die 8051-welt ist natürlich ungleich vielfältiger.
Auf der Keil Webseite sind z.Z. 638 verschiedene 8051 Derivate
aufgelistet (können jederzeit mehr werden).

Such Dir einfach den passenden aus:

http://www.keil.com/dd/parm_search.asp


Geschwindigkeit ist aber selten ausschlaggebend, daher benutze ich auch
vorwiegend die Atmel-Typen (z.B. AT89C51CC03).

In der Klasse >=20MIPS gibts z.B. von Analog Devices, Maxim und Silabs
was. Die können dann natürlich nicht mehr externen Programmspeicher
verwenden, das Timing würde sie ja wieder total ausbremsen.


AVR und 8051 kann man sehr gut in C programmieren. Dann kann man
Routinen leicht auf beiden einsetzen.

Die AVRs werden gerne von Bastlern genommen, weil in DIP und VCC = 5V.
Viele moderne 8051 gibts nur in SMD oder nur für 3V (sind aber 5V
tolerant).


Bei komplexeren Projekten ziehe ich den 8051 vor, da der mehrere
Interruptprioritäten hat. Das macht das Programmieren wesentlich
einfacher, da man sehr oft schnelle kurze und langsame lange Interrupts
benötigt.
Beim AVR muß man sämtliche Interrupts so kurz halten, daß auch der
schnellste Interrupt oft genug dran kommt. Oder man muß sehr tricksen
(Interruptpriorität in Software nachbilden).


Einfache Sachen mache ich auch mit den kleinen AVRs (ATTiny26,
ATMega8).


Peter

von Sebastian (Gast)


Lesenswert?

Der ADuC812 ist  mit 8x12bit AD und 2x12bit DAC ausgestattet. Darum ist
der so teuer...

von Christof Rieger (Gast)


Lesenswert?

@Peter
Da hast du aufjedenfall recht. Entscheident ist was ich bauen will und
wähle dann den passenden Controller aus. Ideal ist es dann wenn ich vom
Know How her auf verschiedene Familien zurückgreifen kann.

von Rufus T. Firefly (Gast)


Lesenswert?

Nee, Sebastian.
Der ADuC kostet bei vernünftigen Distributoren einfach noch nicht mal
ansatzweise soviel.

Der von AD selbst genannte 1000er-Preis liegt bei 8.30 USD.
Daß ein Einzelpreis bei einem in D. ansässigen Distributor höher liegt,
ist klar, aber 44 EUR ist einfach nur noch sittenwidrig.

Übrigens irrt buz11 mit 20 Mips - der ADuC812 hat den üblichen
12-Takte-Kern und macht 1.3 Mips.

Näheres hier
http://www.analog.com/en/prod/0,2877,ADUC812,00.html

von Philipp Sªsse (Gast)


Lesenswert?

[Bernd:]
Ein Blick in das Datenblatt zeigt aber das man dem Ding bis zu 64KB
EXTERNEN Programm Speicher verpassen kann.

Ändert aber m.W. leider nichts daran, daß der AVR getrennte Adreßräume
für Programm und Daten hat, denn das ist ja das eigentliche Problem! Da
müßte man ja etwas abenteuerliches konstruieren, daß ich den externen
Speicher als Flash und RAM gleichzeitig ansprechen kann, damit die
Beschränkungen der Harvard-Architektur überwunden werden. Mich
zumindest stört beim AVR nichts so sehr wie das Geprokel mit dem
Z-Register im Flash.

Und von wegen "dann halt Interpreter": das hilft annähernd null, da
z.B. Registerangaben auch im Programmspeicher stehen müssen. Wenn der
Interpreter etwa sämtliche Registerverschiebebefehle zulassen wollte,
hätte er schon 4 kB nur voll Verschieberoutinen; ähnliches gilt für
Bitmanipulationen. Also muß man immer Krückenlösungen basteln (immer
über Hilfsregister verschieben usw.), aber dann gehen ja schon kräftig
AVR-Vorteile baden. Dann lieber einen Von-Neumann-Rechner, der so etwas
wirklich kann.

Auf Platz zwei der Nachteile steht für mich auch die
Lieferantenabhängigkeit, zumal Atmel ziemlich stur eine Korrelation von
Flash, RAM und Pins vorsieht:
- Wenn ich für einen Datenpuffer wenig Flash und wenig Pins
  brauche, aber viel RAM, oder
- wenn ich zum Ansteuern von ein paar Controller-lose
  7-Segment-LEDs massenhaft Pins brauche, aber kaum RAM
  oder Flash, oder
- wenn ich für ein komplexen Protokollkonverter ordentlich Flash,
  aber kaum RAM oder Pins brauche ...

... immer zwingt mich Atmels Produktpolitik zu einem eigentlich völlig
überdimensionierten Controller.

Tja, ansonsten: tolle Teile, schneller Einstieg ohne ein einziges Buch
(-;

von Tipper (Gast)


Lesenswert?

Ein gewaltiger Nachteil der AVRmega's ist, daß die Port-Pins bei Input
nicht TTL-konform sind. Externe 3,3V-Logik und AVRmega ist, unter
seriöser Betrachtung, nicht möglich. Ich musste aus diesem Grund auf
ein 8051-Derivat umsteigen.


Tipper

von 125 (Gast)


Lesenswert?

Im wiki gibts ein ne ordentliche anleitung zu gcc. da braucht man keine
bücher für 600 euro!!

von buz11 (Gast)


Lesenswert?

@Rufus T. Firefly

Hab mich leider verguckt .
Meinte den ADuC841 ...

The ADuC841/ADuC842/ADuC843 are complete smarttransducer front ends,
that integrates a high performance selfcalibrating
multichannel ADC, a dual DAC, and an optimized
single-cycle 20 MHz 8-bit MCU (8051 instruction set compatible)
on a single chip.

Siehe : http://www.analog.com/en/prod/0%2C2877%2CADUC841%2C00.html

Habe den µC selbst getestet , ist beim gleichen Quarz 12 mal
schneller als z.B. AT89S8252 .
Merkt man spätestens bei der seriellen Komunikation mit dem PC :-)

von Ratber (Gast)


Lesenswert?

Meine Güte,ich lese hier "fast" nur das Säbelrasseln der
Religionskriege.

Mir ist es Latte welchen Controller ich nehme.
Jeder hat seine Vor- und Nachteile und danach suche ich letztendlich
aus.
Natürlich habe ich meine Favoriten weil ich genauso wie andere wenig
Lust habe mich auf einigen dutzend Modellen einzuarbeiten aber ich kann
noch dazulernen.

Mesit bewege ich mich um die AVR-Mega/Classic/Atiny herum aber auch
8051-Derivate kommen manchmal zum Einsatz.
Der Rest ist seltener aber wenn irgendein Motorola Hardwaremäßig an
meine Wünsche herankommt dann habe ich keinerlei Hemmungen auch den zu
nehmen und zu lernen.





@ Mal nebenbei :


Ich gehe eigentlich davon aus das Leute die sich im Internet rumtreiben
Modern und auch aufgeschlossen sind aber wie bei jeder Massenverbreitung
kommen auch die Religiösen Fanatiker mit ihrem Schwarz/Weiß-Denken rein
die seit Jahrtausenden nur Ärger verursachen.

Vieleicht sollten sich diese mal überlegen das es neben ihrem "Gott"
(Achtung: Symbolisch gemeint) auch noch anderes gibt ;-)

Der Tread entwickelt sich jedenfalls solangsam in die Sparte :

Opel vw. VW
DNT vs. Kaiser
Zyxel vs. USR
Amiga vs. PC
Nike vs. Puma
AMD vs. Intel

usw.


Das ist wenig erbaulich und nutzt niemandem.

Also Cool bleiben ;-)

von Peter D. (peda)


Lesenswert?

@Ratber,

ich weiß garnicht, was Du hast.

Es ging doch ganz konkret um die Unterschiede und die meisten wurden
recht realistisch herausgearbeitet.

Das da auch immer ein bischen subjektive Meinung mit bei ist, ist doch
völlig klar und nicht schlimm oder gar "Krieg".

Ich hab jedenfalls den Eindruck, daß alle Poster völlig "Cool"
geblieben sind.


Peter

von W. (Gast)


Lesenswert?

@Ratber:

Und was wolltest du uns jetzt eigendlich genau mitteilen?  :)

von Ratber (Gast)


Lesenswert?

@Willhelm


Was ich mitteilen wollte ?

Na du haste eine Frage gestellt und eine Antwort habe ich in meinem
Post gegeben.

Mußt nur lesen ;-)


@Peter

Wenn man unvermnittelt hier reinkommt dann sieht es ganz genau danach
aus.

Les mal meinen Post genauer durch dann wird dir nicht entgehen das ich
nie behauptet habe das der "Krieg" schon los ist sondern die Tendenz
dahingehend ist.

Ein kleiner aber entscheidender Unterschied oder ? ;-)

von Bernd (Gast)


Lesenswert?

Hi Christof,

> OK. Aber für den Hobbybastler nicht einfach zu händln (100 Pin SMD).

Ok, einmaliges Angebot an Dich: Schick mir eine Platine und einen IC,
den löte ich Dir dann auf. Habe das Jahrelang Beruflich gemacht. :-)

>Kennst du eine Bezugsquelle für dieses Modell. Vieleicht auch für den
AT43USB351M

Kenne ich leider nicht. Aber der AT43USB351M hat so weit ich weis einen
internen Flash.

Gruß Bernd

von Christof Rieger (Gast)


Lesenswert?

Hey, super Angebot Bernd,

ich habe blos z.Z. kein Projekt laufen, wo ich dies tun müsste.
aber in diesen zusammenhang mal ne Frage.
Wenn ich mir ne Platine herstellen lassen wollte 5x10cm 100 Stück
doppelseitig durchkontaktiert mit Lötstop, was müsste ich dafür
hinlegen?

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.