Microcontroller AVR 8 oder 8051 ?

Hallo,

welche von beiden Schaltkreisfamilien ist besser geeignet um zeitkritische Anwendungen zu programmieren? Ich habe das ganze Wochenende das Internet durchstöbert und kann mich einfach nicht entscheiden. Der AVR scheint moderner zu sein, die 8051er Reihe kann aber schneller getaktet werden. Nun habe ich gelesen, bei den meisten 8051er wird der Takt intern geteilt, so das sie effektiv langsamer sind. Bei den Neusten soll das nicht so sein. Nach dem was ich gefunden habe spricht für den AVR:

- 1 Takt entspricht fast immer einem Befehl

- einfach und im System programmierbar

für die 8051er Reihe:

- kann schneller getaktet werden (intern geteilt ???)

- da habe ich zwei Bücher gegen den 8051:

- die meisten umständlich zu programmieren

Programmieren würde ich in Assembler und wie schon erwähnt, schnelle Anwendungen. (CCD Zeilen Ansteuerung) Also ich müßte schon immer wissen, wie lang ein Befehlszyklus ist.

Gruß Reinhard Tarnick

Reply to
Reinhard Tarnick
Loading thread data ...

Hi,

ich habe mal irgendwann mit den 8051ern angefangen - und bin dann auf AVRs umgestiegen. Ich muß gestehen, ich kenne nicht die aktuellen 8051er aber zumindest war da mal ein Takt/Befehlsverhätniss von 12:1 d.h. ein Befahl hat 12 Takte benötigt. Und damit waren die AVRs auf jeden Fall wesentlich Fixer. Ich Persönlich mag auch den Befehlssatz der AVRs lieber - aber das ist Geschmackssache. Letztendlich kannst Du bei jedem Assemblerprogramm genau ausrechnen, wie lange der Proz für die Abarbeitung braucht. Und wie viele Taktzyklen ein Befehl braucht, findest Du in den Datenblättern. Andere Entscheidungskritererien sollten aber nicht nur die Architektur, sondern auch die Funktionen sein, die der Controller hat: Timer, PWM, RAM, Flash, EEprom, Ext. Interupts, Serielle-Schnittstelle usw. Die AVRs finde ich ziemlich gut ausgestattet. Außerdem sind sie mit wenig Hardware-Aufwand zu programmieren und man benötigt keine teure Programmer-Hardware. Das ist aber zumindest bei den

8051er Deriveraten von Atmel auch der Fall. Als dritte Alternative solltest Du Dir evtl. noch die PICs anschauen. Zu denen kann ich Dir allerdings nix sagen, da ich mich mit denen noch gar nicht befasst habe. Weiß nur, daß es davon sau viele unterschiedliche - und damit warscheinlich auch mit unterschiedlichsten Ausstattungen gibt.

Gruß Michael

Reply to
Michael Trowe

"Michael Koch" schrieb

Hi!

die Dinger klingen ja ziemlich interessant. Von diesen 8051 Derivaten hab ich ja noch nie was gehört :-) Die Ausstattung dieser MCs ist ja beachtlich ....

Nur WER in good old Germany hat diese Dinger in seinem Sortiment ?

cu Marc

Reply to
Marc Keller

AVRs [...]

8051er wird der Takt intern geteilt, so das

Generell gilt eine Teilung der Quarzfrequenz von 12, dh. 12 Takte des Quarzes sind ein Maschinenzyklus. Da viele Befehle mehrere Zyklen haben, ist nicht immer der schneller getaktete auch der mit der schnelleren Befehlsausführung.

Ich empfehle für sowas den AVR.

Robert

Reply to
R.Freitag

Hallo Reinhard,

beim Cygnal C8051F120 ist das auch so. 100 MIPS. siehe

formatting link

auch bei Cygnal.

Steht im Datenblatt, Tabelle 12.1

Gruss Michael

Reply to
Michael Koch

Hallo,

mit dieser ganz unscheinbaren Frage wurden bereits unzählige Glaubenskriege in den Foren begonnen. Jedenfalls werden alle drei Typen (Pic, 8051 und AVR) heutzutage noch produziert und verkauft. Weshalb ich davon ausgehen würde, dass alle auf dem neuesten Stand der Technik sind.

Die Frage der Echtzeitfähigkeit hängt hier ausschliesslich vom Einzelfall, also deinen Algorithmen ab. Wenn du viel Zeit hast, könntest du also deine zeitkritischen Routinen für beide Typen in Assembler schreiben, und dann die Zahl der nötigen Taktzyklen abzählen. Natürlich gibt es manchmal auch Benchmarks. Leider stammen diese oft von herstellernahen Organisationen, und sollten daher nicht so ernst genommen werden. Ich weiss das aus erster Hand *schäm*.

Bei den schnellen Cygnus-Teilen bin ich anderer Meinung: Wenn jemand mit 8Bit Micros arbeitet, dann meistens deshalb, weil sie klein, billig sind und man herstellerunabhänig ist. Dies sind für Bastler eher untergeordnete Eigenschaften, aber für Serienfertigung wichtige. Wenn sich also nun herausstellt, dass man mit normalen (=billigen) 8Bittern hart an der Performancegrenze liegt, dann kann es sinnvoll sein, auf speziell getunete 8 Bit Typen umzusteigen. Diese sind dann jedoch sehr viel teuerer. Ich glaube, dass man hier mit Standard 16/32 Bit Typen günstiger wegkommt. Die arbeiten sowieso mit höheren Taktfrequenzen, und sind im Gegensatz zu Spezial 8 Bittern Massenware.

Die Bezugsquellen für die Mikrocontroller sagen dir die Hersteller, da sie nicht direkt verkaufen. Schau also mal auf die Homepages von Atmel, Philips, Microchip, Cygnus, Infineon ...

Viel Erfolg bei der Auswahl, Christian

Reply to
Christian Kulig

Hallo Marc,

entweder direkt in USA bestellen und mit Kreditkarte bezahlen, oder

formatting link

Gruss Michael

Reply to
Michael Koch

Hallo,

das gilt nicht generell. Es gibt Ausnahmen:

einige neuere Philips Typen: 6 Zyklen Dallas C320 u.ä.: 4 Zyklen Dallas C420: 1 Zyklus alle Typen von Cygnal: 1 Zyklus

Gruss Michael

Reply to
Michael Koch

Hallo Christian,

Der F120 von Cygnal hat 100MIPS und kostet ca. 30 EURO bei 1 Stück. Welcher Standard 16/32 Bit Controller ist schneller UND billiger?

Gruss Michael

Reply to
Michael Koch

Die grossen Händler sollten die haben. Ich beziehe die immer bei Farnell, sind leider in "Privat-"Stückzahlen recht teuer.

Reply to
Jochen Giese

Richtig, es gibt jede Menge Varianten mit bis zu 1:1 Zyklen.

Trifft auch auf die modernen 8051er zu.

Wieso das denn? Der Befehlssatz ist sicherlich beim AVR logischer, dafür hat der AVR keine Interrupt-Level, was ihn für komplexere Projekte praktisch ausschliesst, da so etwas (rechenzeit-)aufwendig in Software nachgebildet werden muss, was dann auch noch fehlerträchtig ist.

Das steht bei jedem Controller, egal von welchem Hersteller, im Datenblatt.

Reply to
Jochen Giese

Richtig, aber der Standard-8051 hat diese Teilung by 12. Die von dir genannten Ausnahmen sind vorhanden, aber meiner Erfahrung nach teurer.

Was kostet ein Dallas im Vergleich zu einem AVR? Und wie gut ist er erhältlich?

Robert

Reply to
R.Freitag

Hallo Jochen!

Genau, und für C-Compiler wegen seiner Registerarchitektur deutlich einfacher zu handhaben.

Naja, so aufwändig ist das wohl nicht, oder wieviele IRQ-Level hättest du gerne? Zwei erreichst du schon dadurch, das du in der Interupt-Routine weitere IRQs zuläßt, oder eben nicht...

Gruß Thorsten

--
Kunst kommt aber von 'können',
nicht von 'kennst du schon den neuesten trick?'
   Gunther in oecher.computer zum Thema "Gutes Webdesign"
Reply to
Thorsten Ostermann

Hallo Michael,

besten Dank für Deine Antwort. Der Tip ist wirklich gut, die Dinger haben ja eine erstaunliche Rechenpower und eine prima Ausstattung. Bisher habe ich mich mit dem Gebiet noch nicht beschäftigt aber bei manchen Sachen kommt man mit einzelnen IC's einfach nicht weiter.

Gruß Reinhard

Reply to
Reinhard Tarnick

Hallo Jochen,

da habe ich mich falsch ausgedrückt. Ich meinte damit, das Programm läßt sich bei den älteren nicht ohne ein aufwendiges Programmiergerät in den Schaltkreis übertragen. Habe inzwischen mitbekommen, daß das bei den neueren Typen einfacher ist.

Besten Dank.

Gruß Reinhard

Reply to
Reinhard Tarnick

Hallo Allerseits,

vielen Dank für die vielen Tips ! Also, ich werde es mit einen AVR Controller versuchen. Von den Daten her bin ich zwar von den Cygnal Typen beeindruckt, aber zu den AVR Controllern gibt es jede Menge Internetseiten und Tutorials auf Deutsch. Mein englisch ist äußerst mangelhaft und als ich mal in die 170seitige Beschreibung zu einem Cygnal Controller reingeschaut habe, da hat mich das blanke Entsetzen gepackt. So groß ist die Investition ja auch nicht, wenn ich gut klarkommen sollte, kann ich ja immer noch umsteigen.

Beste Grüße, Reinhard

Reply to
Reinhard Tarnick

Eigentümlicherweise scheint mir dieses Argument immer wieder vorrangig von denjenigen ins Feld geführt zu werden, die noch nie einen AVR benutzt haben. Was spricht dagegen, die ISRs einfach kurz genug zu haben, daß man gar keine geschachtelten Interrupts braucht?

--
J"org Wunsch					       Unix support engineer
joerg_wunsch@interface-systems.de        http://www.interface-systems.de/~j/
Reply to
Joerg Wunsch

Darauf gibt es keine einfache Antwort. Wenn man einfach bloede runterprogrammiert duerfte ein AVR performanter sein. Wenn man aber die drei Zaehler eines 8052 gut ausnutzt und die einstellbaren Prioritaeten bei den IRQs einem gut ins Konzept passen dann kann es sein das der MCS51 einen AVR locker abhaengt.

Es haengt also stark von der Aufgabe ab.

Ich habe mit einem 8052 schon zwei Schrittmotoren gleichzeitig gesteuert, inklusive Rampen und Positionsberechnung und gleichzeit von einem Hostrechner noch Kommandos ueber die RS232 entgegengenommen. Ich glaub das haette ich mit einem AVR nicht geschafft.

Olaf

--
D.i.e.s.S. (K.)
Reply to
Olaf Kaluza

Hallo!

Naja, bei mir steuert ein AT90S8515 bei 8 MHz vier Schrittmotoren, berechnet noch die Zündzeitpunkte für eine Lampendimmung mit Triac und filtert seine Steuerdaten ebenfalls aus einem seriellen Datenstrom herraus. Es spricht ja auch nichts dagegen die Timer des AVRs zu benutzten :) Wobei ich zugeben muss, dass das Beschleunigungsverhalten der Schrittmotoren noch nicht ideal ist, was vermutlich aber an der noch nicht perfekten EEPROM Tabelle liegt... Hast du da vielleicht ein bischen Erfahrung mit "Schrittmotoren und glatten Bewegungen" ? Dann hätte ich da nämlich mal ein paar Fragen... :)

Cu, Michael

Reply to
Michael Dreschmann

Was gibt es da zu fragen? Du musst dir halt sicher sein das der IRQ fuer die Schritte immer rechtzeitig an die Reihe kommt und niemals behindert wird.

Olaf

--
D.i.e.s.S. (K.)
Reply to
Olaf Kaluza

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.