Forum: Mikrocontroller und Digitale Elektronik Geschwindigkeits-Vergleich at89c51 mit atmega


von Migrator (Gast)


Lesenswert?

Hat jemand Vergleichsdaten bezüglich der Geschwindigkeit ?

von Rudolf (Gast)


Lesenswert?

Ja, deine Datenblätter!

von Migrator (Gast)


Lesenswert?

min 300ns bei At89c51ac3 @20MHz ext clock und X2 Mode
min  50ns bei Atmega     @20MHz ext clock

habe ich richtig gelesen ?

von Peter D. (peda)


Lesenswert?

Atmel hat aber auch 8051-er ohne Vorteiler, z.B. AT89LP6440
Da sinds dann 50ns @20MHz.

Und Silabs hat 8051 mit 10ns @100MHz.


Peter

von Jobst M. (jobstens-de)


Lesenswert?

Division (8Bit) geht beim 8051 in 4 Zyklen :-)

Migrator schrieb:
> min 300ns bei At89c51ac3 @20MHz ext clock und X2 Mode
> min  50ns bei Atmega     @20MHz ext clock
>
> habe ich richtig gelesen ?

Wenn Du einen Befehl mit einem Zyklus hast: ja.
Wie viele Zyklen ein Befehl benötigt und wie viel er dafür erledigt, ist 
eine andere Sache.


Gruß

Jobst

von Peter D. (peda)


Lesenswert?

Jobst M. schrieb:
> Wie viele Zyklen ein Befehl benötigt und wie viel er dafür erledigt, ist
> eine andere Sache.

Das stimmt. Der 8051 hat viele Kombi-Befehle, wofür der AVR 2 oder mehr 
benötigt.
Z.B. MOVC A,@A+DPTR, CJNE, DJNZ, XCH.

Dafür sind beim AVR Zugriffe auf SRAM > 256Byte (Xdata beim 8051) mit 
Adress-decrement/-increment möglich.


Peter

von Purzel H. (hacky)


Lesenswert?

Der 8051 hat ein Indexregister, die AVR haben deren drei. Dh ein 
Blockcopy ist auf den AVR viel effizienter.
Wenn man sich neu einarbeitet sollte man besser einen AVR nehmen wie 
einen 8051.

von Peter D. (peda)


Lesenswert?

Nano Oschi schrieb:
> Der 8051 hat ein Indexregister

Stimmt nicht.

Der 8051 hat 8 Pointer für Idata (256Byte),
9 Pointer für Xdata (64kB)
und 2 Pointer (DPTR, PC) für Code.

Die 9 Pointer für Xdata sind R0,R1 der 4 Registerbänke (seitenweise 
Zugriffe a 256Byte) und DPTR (16Bit).
Man kann dann bequem z.B. für den UART-Interrupt eine Registerbank 
nehmen und hat sofort die FIFO-Pointer in den Registern.

Daneben haben die meisten 8051 auch einen DPTR0 und DPTR1, wobei aber 
zwischen denen umgeschaltet werden muß, um befehlskompatibel zu bleiben.

Im Idata können auch viele Operationen direkt ausgeführt werden (INC, 
DEC, ANL, XRL, ORL, DJNZ).


Peter

von Migrator (Gast)


Lesenswert?

Die 8051-MCUs haben, wie Peter weiter oben andeutet, mit den 
"Single-Cycle-MCUs" sehr an Geschwindigkeit gewonnen.
Letzlich kann die Frage, wer ist schneller, wohl nur programm- und 
clock-spezifisch beantwortet werden.
Im vorliegenden Fall geht es darum, 4 Klaviaturen anschlagsdynamisch zu 
scannen und in MIDI-Signalen auszugeben. Bei zu schnellem Spiel gibt es 
Probleme, daher die Thematik Migration.
Eine laufende at80c51ac3 Hard- und Software liegt vor und ist auch schon 
in AVR-Assembler transkribiert und mit AVR-Studio simuliert. Leider habe 
ich keinen ähnlich guten Simulator für den 8051.

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.