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!
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.
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...
@---: Wieso? Recht hat er? Zu schnell gelesen? PROGRAMM-Speicher ;-) Grüße, André
800 Euro und kein Buch gefällt dir? Du solltest dir vielleicht die Bücher erstmal anschauen ;-)
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.
@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
Hi @Rahul Kein AVR kann externen _Programm_-Speicher ansprechen. Mega8515, Mega162, Mega64 und Mega128 ermöglichen nur den Anschluß von Datenspeicher. Matthias
@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é
@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... ;-)
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.)
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
Ich glaub sogar mal einen mit 2er Teilung gesehen zu habe, aber der Preis war häftig, dann lieber AVR
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
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"
@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 den AT43USB320A hat digikey noch knapp ueber 500. Wenn ihn wer will - im Markt-Forum lauft grad eine Digikey-Sammelbestellung an.
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 ...
@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!
@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
> Für Litteratur habe ich inzwischen so ca 800 ausgegebe
...KOPFSCHÜTTEL...
@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é
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
Der ADuC812 ist mit 8x12bit AD und 2x12bit DAC ausgestattet. Darum ist der so teuer...
@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.
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
[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 (-;
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
Im wiki gibts ein ne ordentliche anleitung zu gcc. da braucht man keine bücher für 600 euro!!
@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 :-)
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 ;-)
@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
@Ratber: Und was wolltest du uns jetzt eigendlich genau mitteilen? :)
@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 ? ;-)
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.