Hallo,
mir scheint, die Typenfielfalt an uC ist gerade mal wieder am
Explodieren.
Bei Atmel ist der AVR 8-bit Typ interessant.
Ebenso der kommende XMEGA der bis 32MHz taktbar sein soll (32MIPS) und
für eine Portanweisung nur 1Takt benötigen soll.
Bei Ti kenne ich den MSP430F1xx (16-bit).
Dieser ist mit max. 8MHz Taktbar (8MIPS).
Die haben auch Derivate wie den MSP430F2xx der mit 16MHz taktbar ist
(16MIPS), sowie neu den MSP430F5xx der bis 25MHz taktbar sein soll
(25MIPS).
Nun gibt es auch noch andere Architekturen (ARM) der bereits erwähnten
Hersteller , sowie Typen von Renesas, Infineon, Microcip .....
Möchte hier somit eine Vergleichsdiskusion starten.
Es geht mir vor allem um die Schaltzeiten der Ports,
max. Taktung sowie die MIPS.
Typ:
ATmega xx
8-bit
Verfügbar:
Ja, nein oder ab....
Architektur:
RISC
VCC Bereich:
1,8V - 5,5V
Max. spezifizierte Taktrate:
20MHz @ 4,5V - 5,5V
MIPS:
20
Übertakten möglich mit Hz:
keine Ahnung
Portpinanweisung:
Set Bit in I/O Register
2 Takte
Instruction Set Liste:
Anhang
Um mal auf die Titelfrage zu antworten:
Ich lasse meine MCs meistens mit 1MIPS laufen.
Das reicht in der Regel vollkommen aus und hat genug Reserven.
Peter
Seh ich so, wie Peter.
Ich nutze meist ein 3,6864 MHz-Quarz für "saubere" Baudraten (AVR), und
es gibt bei mir kaum Anwendungen, in denen mehr als 10% der
Rechenleistung gebraucht werden.
Für was für eine Applikation benötigst Du denn diese Tabelle?
(Ohne konkrete Anforderungen könntest Du genausogut mit gleicher
Sinnhaftigkeit die Farben der Gehäuse vergleichen.)
ElTorro wrote:
> Für was für eine Applikation benötigst Du denn diese Tabelle?> (Ohne konkrete Anforderungen könntest Du genausogut mit gleicher> Sinnhaftigkeit die Farben der Gehäuse vergleichen.)Ich brauch sie nicht, aber ich halt ne Tabelle für allemal sinnvoller,
als in einem Fred zig Beiträge zu sammeln, oder?
Hallo,
habe doch geschrieben:
Es geht mir vor allem um die Schaltzeiten der Ports.
Also in wieviel Takten wird auf eurem Typ ein Portpin setz, lösch Befehl
abgearbeitet.
Wieso kann man nicht einfach nur die "Tabelle" fortführen wenn man
möchte und wenn nicht, dann eben nicht.
> Es geht mir vor allem um die Schaltzeiten der Ports.> Also in wieviel Takten wird auf eurem Typ ein Portpin setz, lösch> Befehl abgearbeitet.
Warum ist das denn so wichtig? Da wird sich nicht soviel unterscheiden
bei den einzelnen µCs.
Hi
Da das Setzen eines Ports selten aus reinem Selbstzweck passiert,
sondern eine teilweise umfangreiche Entscheidungsfindung vorangeht,
spielt die Schaltzeit des Ports meist eine sehr untergeordneter Rolle.
Auch für die Auswahl eines Controllers ist das wahrscheinlich das letzte
Kriterium. Aber wenn es dir hilft. Ich werde dich nicht davon abhalten.
MfG Spess
BTW: Neuere AVRs, die bis 20Mhz spezifiziert sind (zum Beispiel
ATMega2560), laufen auch noch mit von mir getesteten 32Mhz zuverlässig,
wenn das EEPROM gerade nicht gebraucht wird. Der integrierte Prescaler
kann zum Betrieb bei sicherer Frequenz zur Laufzeit auf /2 gesetzt
werden, bei zeitkritischen Portzugriffen kann man dann "hochschalten".
Nur zum Bleistift:
ein AVR 8-bit benötigt fürn setz, lösch Befehl eines Portpins
2 Takte.
ein AVR 8-bit XMEGA benötigt 1 Takt
ein MSP430F149 benötigt meineswissens 6 Takte (jedoch nicht ganz sicher
meinerseits) und deswegen frage ich.
Wieviel Takte benötigt jetzt ein PIC, ein R8C oder was es sonst noch so
bekanntes und von den Usern dieses Forums genutztes gibt.
Gast wrote:
> Nur zum Bleistift:>> ein AVR 8-bit benötigt fürn setz, lösch Befehl eines Portpins> 2 Takte.
Vosichtig damit, die neuen AVRs können einen Port auch mit nur einem
Befehl "toggeln", nämlich indem man ins PIN-Register schreibt.
Gast wrote:
> ein MSP430F149 benötigt meineswissens 6 Takte (jedoch nicht ganz sicher> meinerseits) und deswegen frage ich.
Kommt drauf an. Das normale setzen des PxOUT dauert einige Takte.
Allerdings braucht man das in der Praxis so gut wie nie, denn man hat ja
die Hardware-Peripherie-Module, die das Pin-Getoggle übernehmen. Ich
verwende z.B. gerne die Output-units der Timer, um genau definierte
schnelle Signale zu erzeugen. UART, SPI usw. ist ja eh in Hardware.
Für reines Togglen der Pins ist ja ein µC auch nicht unbedingt das
Mittel der Wahl....
Die Geschwindigkeit eines Prozessors an der maximalen erzeugbaren
Frequenz eines GPIOs (ausgenommen PWM Module o.ä.) zu messen ist,
pardon, absoluter Schwachsinn.
Auf sowas sind die 32 Bitter gar nicht mehr ausgelegt. Da geht es nur
darum, dass man möglichst viele Funktionseinheiten hat (zB I2C, MAC,
I2S, AC97, was auch immer).
Wer von euch macht bei der µC-Auswahl überhaupt einen Vergleich mittels
MIPS-Angabe ?
Selbst bei diversen Präsentationen von Herstellern wird immer darauf
hingewiesen, dass die MIPS Angabe nur ein Marketing-GAG ist. Denn jeder
Hersteller benchmarkt seine Produkte so, dass sie sich von den anderen
positiv abheben. Daher ist heutzutage die MIPS-Angabe nicht mehr
representativ, ich wüsste auch nicht, dass ich für ein Projekt anhand
einer MIPS-Angabe jemals eine Controllerauswahl gemacht hätte, bei mir
kam es immer auf das Pinning und die onchip befindlichen Einheiten und
deren Fähigkeiten an und natürlich auf den Preis. Ob nun AVR, PIC oder
MSP, ich denke bis für ein paar wenige Spezialaufgaben sind sie
funktional alle gleichwertig.
Wobei in den letzten Monaten wurde von Elektor der Eindruck vermittelt,
dass LED´s mit MSP´s buntere Farben erzeugen könnten (WITZ!). Wenn da
mal nicht ein gewisser Einfluss seitens Ti vorhanden war!
Gebt mir ein Brett, und ich beiß da rein.
nach welchen Kriterien ich meine uC auswähle, müsst ihr schon mir
überlassen.
Hängt meinetwegen die Instruction Set List eurer uCs ausser Atmel, die
habe ich schon, rein und dann passts.
Habe aber das unterschwellige Gefühl, es sind nur AVRs hier unterwegs
und die Anderen haben kein Interesse hier zu posten oder wissen es
nicht.
Ist ja alles i.o. aber wenn man nichts als flotte Sprüche zum Besten
gibt, die dem Fragesteller nichts nutzen, hätte man's "vielleicht" auch
sein lassen können.
Möchte euch folgendes Schema vorgeben.
1. Kann ich die Frage nach wieviel Takte benötigt mein uC um den Portpin
zu
toggeln, mit 1,2,3,4,5,6.... beantworten?
true, false
2. Will ich das beantworten?
true, false
Wie ich diese Information verwerte, überlasst bitte mir.
Habt ihr nur true, herzlich willkommen.
Habt ihr nur einmal false, danke dass ihr euch die Mühe zum Lesen
gemacht habt.
So, nu erwarte ich das dicke B
Suchst du jetzt ein Mikrocontroller, der möglichst schnell GPIO Pins
togglen lassen kann? Dann solltest du vielleicht eher auf einen FPGA
umschwenken. Die Dinger sind für sowas eher gedacht.
Zum Vergleich: Ein AVR32UC3 (Mit allen Schikanen und drum und dran) Typ
kann auf höchster Takt-Einstellung (bei denen er etwa 70 MIPS rechnet),
wenn ich mich recht erinnere) den Pin kaum schneller togglen als ein AVR
es kann. Und der AVR hat 16-20MIPS.
Was soll der Vergleich über die Toggle-Geschwindigkeit? Ich weiß nicht,
ob du dich schonmal in den AVR32/ARM Bereichen bewegt hast, aber die
GPIOs (also simple Aus-/Eingänge sind in der Regel über ein eigenes
GPIO-Modul (also ähnlich einem I2C, SPI, etc. Modul) realisiert).
Deswegen wirst du kaum einen flotten 32-Bitter finden, der so dermaßen
schnell toggeln kann.