Forum: Mikrocontroller und Digitale Elektronik ATmega644P vs Xmega


von Spinnerich (Gast)


Lesenswert?

Hi

Ich steh vor der Wahl ob ich einen alten bewerten ATmega644P nehme oder 
einen XMega.

Die XMega sind etwas schneller, wenn ichs richtig verstanden habe?

Es gibt aber auch etliche Leute, die sich über Fehler auf dem Die, 
Probleme beim Programmieren und und und beschweren.


Ich muss eigentlich nur einen Transistor zu einer bestimmten 
Millisekunde auf High oder Low schalten.


Was soll ich nehmen?


mfg Spinnerich

von unwissender (Gast)


Lesenswert?

einen Tiny, wenns denn ein Controller sein soll

von Daniel H. (Firma: keine) (commander)


Lesenswert?

Also für so eine hochkomplexe Aufgabe würde ich schon mindestens einen 
Supercomputer mit mehreren Petaflops greifen...

von Chris (Gast)


Lesenswert?

Spinnerich schrieb:
> Ich muss eigentlich nur einen Transistor zu einer bestimmten
> Millisekunde auf High oder Low schalten.

So eine Aufgabe ist mit den heutigen Mittel nicht realisierbar.

von Spinnerich (Gast)


Lesenswert?

dazu kommt noch die Ansteuerung eines LCD Displays, eventuell über 
74HC595 und SPI, eine Tastaturmatrix, die über einen ADC ausgelesen 
werden soll und eventuell kleinere andere Features, wie LEDs die halt 
den übertragenen Wert anzeigen. Die Angaben über die Zeit in 
Millisekunden in der der µC den Transistor schalten soll, wird über I2C 
oder SPI von einem IO Warrior (musste ich leider nehmen) übertragen.


lg Spinnerich

von Rene K. (draconix)


Lesenswert?

Spinnerich schrieb:
> Ich muss eigentlich nur einen Transistor zu einer bestimmten
> Millisekunde auf High oder Low schalten.

Puhh... das ist natürlich eine Anforderung an die Hardware, welche mit 
heutigen Mitteln sehr sehr schwer zu realisieren ist. Normalerweise 
schaffen aktuelle µC das schalten eines Transistors nur im Stundentakt, 
da müsstest du aber schon einen Cortex M3 nehmen.

Nein Spaß bei Seite...

Für diese Anforderung einfach mal den kleinsten Tiny (z.b. Tiny25) 
suchen den du finden kannst. ;) Wenn du was im millisekunden Bereich 
schalten willst, langweilt sich dieser sowieso zu tote. ;)

Spinnerich schrieb:
> dazu kommt noch die Ansteuerung eines LCD Displays, eventuell über
> 74HC595 und SPI, eine Tastaturmatrix, die über einen ADC ausgelesen
> werden soll und eventuell kleinere andere Features, wie LEDs die halt
> den übertragenen Wert anzeigen. Die Angaben über die Zeit in
> Millisekunden in der der µC den Transistor schalten soll, wird über I2C
> oder SPI von einem IO Warrior (musste ich leider nehmen) übertragen.

Aha, da sieht die Sachen schon anders aus...

Was soll das denn mal werden? Warum nicht gleich:


i/O Warrior ----------
                     |
                     |
        ---------- Atmega--------------------
        |            |            |         |
        |            |            |         |
       LCD       Tastmatrix      LEDs     Transe


Kommt halt auch ein wenig darauf an, wie groß deine Tastenmatrix ist. 
Aber dafür dürfte ein ATmega644 vollkommen ausreichend sein.

von Spinnerich (Gast)


Lesenswert?

genau sowas, was du aufgezeichnet hast, hab ich mir vorgestellt.

Die Tastaturmatrix besteht aus 12 Tastern, die über unterschiedliche 
Widerstandskombinationen einen Wert an einen ADC liefern.

Ich frag mich aber trotzdem obs nicht doch besser wäre einen XMega zu 
nehmen, wären ja immerhin neuer.

Haben die XMega villeicht programmiertechnisch ein paar Vorteile?

Mich beunruhigen eigentlich nur die zahlreichen Threads über angebliche 
Die Fehler und massive Schwierigkeiten mit den Adaptern zum Flashen

von Hannes L. (hannes)


Lesenswert?

Nimm den, mit dem Du umgehen kannst.

Zähle mal die benötigten Portpins, vielleicht reicht ja schon der 
Mega48, ansonsten würde ich den Mega8535 nehmen. Schieberegister würde 
ich ohne Not nicht einsetzen, ich bevorzuge (wenn möglich) die 
Einchip-Lösung, das macht die Platine und das Programm einfacher.

...

von ich (Gast)


Lesenswert?

>massive Schwierigkeiten mit den Adaptern zum Flashen

Blödsinn. Mit einem avrispkk2 für ein paar Euro funktioniert das auch

von Spinnerich (Gast)


Lesenswert?

Ich hätte halt schon gerne ein paar Reserven, es kann sehr gut sein, 
dass in 3 Monaten die Schaltung nochmal erweitert werden muss. Mein 
Ausbilder siehts nicht gerne, wenn ich dann nochmal anfangen muss.

Deshalb stell ich mir die Frage auch, XMega oder doch nicht?

Die Anzahl der verfügbaren Busse ist auch höher bei den XMega



Meine Erfahrungen mit den Atmel sind eh sehr begrenzt, ich hab mal was 
mit nem Tiny gemacht. Für jedes private Projekt habe ich bisher einen 
PIC 16 oder 18 hergenommen, hasse diese Teile aber mittlerweile.


Hat jemand von euch zufällig einen XMega und kann über Probleme 
berichten?

von Peter D. (peda)


Lesenswert?

Spinnerich schrieb:
> Die Tastaturmatrix besteht aus 12 Tastern, die über unterschiedliche
> Widerstandskombinationen einen Wert an einen ADC liefern.

Zähl einfach die benötigten Pins zusammen und dann nimm den kleinsten 
AVR, der soviele hat.

Spinnerich schrieb:
> Ich frag mich aber trotzdem obs nicht doch besser wäre einen XMega zu
> nehmen, wären ja immerhin neuer.

Ist aber nicht hardware kompatibel zu den ATtiny/mega, nur der 
Befehlssatz ist gleich.

Und wenn Du etwas länger mit MCs arbeitest, wirst Du merken, daß es 
unklug ist, immer die neuesten grünen Bananen zu nehmen. Es sei denn, 
man braucht wirklich die Features der neuen ICs.


Spinnerich schrieb:
> Haben die XMega villeicht programmiertechnisch ein paar Vorteile?

Nö.


Peter

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Spinnerich schrieb:
> Haben die XMega villeicht programmiertechnisch ein paar Vorteile?

Nein. Sie haben mehr Features, die auch programmiert werden müssen.

Spinnerich schrieb:
> Ich frag mich aber trotzdem obs nicht doch besser wäre einen XMega zu
> nehmen, wären ja immerhin neuer.

Ist relativ. Wenn Du Performace brauchst (32Mhz, DMA, Event-System, 
16MByte RAM), dann XMEGA, ansonsten reicht ein normaler Mega auch. Hat 
immerhin bis zu 20 MIPS.

von unwissender (Gast)


Lesenswert?

@Spinnerich
>dazu kommt noch....

In dem Fall würde ich, unter der Voraussetzung, dass du dich in die 
XMEGA`s mal reinfinden möchtest, es mal mit diesem probieren. Dieser 
bietet tolle neue Funktionen z.B. DMA, Event System etc.

Zeit ist dabei wohl der kritischste Punkt, nicht die Errata.


Grüße

von Halbminimalist (Gast)


Lesenswert?

Nimm einfach einen AVR mit genug Pins, dann passt das schon. Wenn dir 
das USI der ATTinys nicht passt, dann nimm einen ATMega. Ein XMega ist 
für deine Aufgabe Overkill.

von Max P. (eizo)


Lesenswert?

Der ATMega 644p hat den Vorteil, dass es hier im Forum schon recht viel 
Code Beispiele für LCD,ISP etc. gibt und du somit beim Programmieren 
viel Zeit sparen kannst. Beim XMega ist es zwar nicht viel schwieriger, 
aber dennoch musst du den Code eventl. erst anpassen oder wo anders 
suchen oder dir selber aneignen, was natürlich enorm zum Verständnis 
beitragen würde :)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Max Power schrieb:
> Der ATMega 644p hat den Vorteil, dass es hier im Forum schon recht viel
> Code Beispiele für LCD,ISP etc. gibt

Ein XMega hat den Vorteil, an fast jedem Port mehrere UARTs, SPIs, I2Cs 
und Timer zu bieten, was einerseits den Anschluss vieler Bausteine 
ermöglicht und andererseits das Design sehr vereinfacht.

von Peter D. (peda)


Lesenswert?

unwissender schrieb:
> Zeit ist dabei wohl der kritischste Punkt, nicht die Errata.

Damit ist die Entwicklungszeit für Dein Programm gemeint.

Dein Projekt hat null Anforderungen an CPU-Geschwindigkeit, warum sich 
also zusätzliche Entwicklungszeit ans Bein binden?

Du kannst den AVR ruhig mit den internen 1MHz laufen lassen, das schafft 
der dicke. Es sei denn, die 1ms müssen genau sein, dann brauchst Du nen 
Quarz.


Peter

von Spinnerich (Gast)


Lesenswert?

ich brauch die 1ms so genau wie nur irgendwie möglich, deshalb wollte 
ich an die Pins TOSC1 und TOSC2 einen 32,768kHz Quarz ranhängen und das 
über den Timer 2 lösen.

Die Zeiten in der eine Leitung auf High oder Low geschalten werden soll, 
müssen eingestellt werden können mit einer Auflösung von 1ms, so genau 
wie irgendwie möglich

von Peter D. (peda)


Lesenswert?

Spinnerich schrieb:
> ich brauch die 1ms so genau wie nur irgendwie möglich, deshalb wollte
> ich an die Pins TOSC1 und TOSC2 einen 32,768kHz Quarz ranhängen und das
> über den Timer 2 lösen.

Dann ist die bestmögliche Schrittweite aber nur 993µs (32,768kHz/33).

Nimm besser nen 10MHz Quarzoszillator, dann schaffst Du genau 1000,0µs 
und die sind ab Werk schon sehr genau abgeglichen.


Peter

von TestX .. (xaos)


Lesenswert?

Spinnerich schrieb:
> Die Zeiten in der eine Leitung auf High oder Low geschalten werden soll,
> müssen eingestellt werden können mit einer Auflösung von 1ms, so genau
> wie irgendwie möglich

definier mal wie genau und wie steil die flanken sein müssen... (µs, ns, 
fs, as ??)

von Spinnerich (Gast)


Lesenswert?

die Flanken müssen möglichst steil sein, aber nicht so steil, dass das 
Teil EMV mäßig so stark rumsaut.

im µs Bereich würde auf alle Fälle reichen




sind 10 Mhz am TOSC1 und TOSC2 nicht bisschen viel?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Spinnerich schrieb:
> sind 10 Mhz am TOSC1 und TOSC2 nicht bisschen viel?

Richtig. Deswegen schließt man einen 10Mhz-Quarz ja auch an XTAL1 und 
XTAL2 an.

von Spinnerich (Gast)


Lesenswert?

Ich wollte den Mega644P eigentlich mit 20 Mhz betreiben^^

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Dann nimm doch 2 10Mhz-Quarze!

SCNR

von Hannes L. (hannes)


Lesenswert?

Knut Ballhause schrieb:
> Dann nimm doch 2 10Mhz-Quarze!

Aua-ha...
Dir hätte ich diesen Spruch am wenigsten zugetraut... ;-)

>
> SCNR

...

von Spinnerich (Gast)


Lesenswert?

was wäre denn für meine Anwendung besser?

auf den Takt von XTAL1 und 2 oder auf TOSC1 und 2 zu setzen?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Spinnerich schrieb:
> was wäre denn für meine Anwendung besser?
>
> auf den Takt von XTAL1 und 2 oder auf TOSC1 und 2 zu setzen?

Auf den Takt von XTAL1/2 natürlich. TOSC lässt nur einen Takt von einem 
Uhrenquarz mit 32.768Hz zu und sonst nichts. Wie im Datenblatt 
beschrieben.

von Hannes L. (hannes)


Lesenswert?

Spinnerich schrieb:
> was wäre denn für meine Anwendung besser?

Das Überdenken der Anforderungen.

>
> auf den Takt von XTAL1 und 2 oder auf TOSC1 und 2 zu setzen?

Liest Du eigentlich die Antworten?

Peter hat Dir doch bereits geschrieben, dass das Zeitraster mit 
Uhrenquarz recht grob ist. Und genauer als ein herkömmlicher Quarz ist 
ein Uhrenquarz auch nicht, der ist auf Stromsparen optimiert. Wenn Dir 
ein normaler Quarz zu ungenau ist, dann nimm, wie Peter vorschlug, einen 
fertig abgeglichenen Quarzoszillator für den Controllertakt. Bei 10 MHz 
erreichst Du Deine Millisekunde mit dem 16-Bit-Timer bei Zählerstand 
10'000 (9'999), das wird also schon extrem genau.

...

von Ben _. (burning_silicon)


Lesenswert?

und bei 20Mhz halt beim doppelten...

von Hannes L. (hannes)


Lesenswert?

Ben _ schrieb:
> und bei 20Mhz halt beim doppelten...

Man muss aber nicht immer gleich mit Kanonen auf Spatzen schießen.

Die meisten kleineren (vom Programmspeicher betrachtet) AVRs mögen auch 
gar keine 20 MHz. Und vom Programmspeicher aus gesehen reicht ein 
Tiny2313 für diese Aufgabe völlig aus.

...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Hannes Lux schrieb:
> reicht ein
> Tiny2313 für diese Aufgabe

Und jetzt neu: Der Tiny4313! Gerade lieferbar :-)

P.S.: Der Tiny2313 war einer der ersten AVRs mit 20Mhz Spezifikation.

von Hannes L. (hannes)


Lesenswert?

Knut Ballhause schrieb:
> Hannes Lux schrieb:
>> reicht ein
>> Tiny2313 für diese Aufgabe
>
> Und jetzt neu: Der Tiny4313! Gerade lieferbar :-)

Habe ich noch nicht vermisst. Bisher war der Tiny2313 immer ausreichend. 
Auch beim aktuellen Projekt 
(http://www.hanneslux.de/planet5b/index.html) ist er noch lange nicht 
voll.

>
> P.S.: Der Tiny2313 war einer der ersten AVRs mit 20Mhz Spezifikation.

Ich weiß, die habe ich aber noch nie gebraucht.

Gruß in die halbe Stadt vom ganzen königlichen Dorf ;-)

...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Hannes Lux schrieb:
> Habe ich noch nicht vermisst. Bisher war der Tiny2313 immer ausreichend.

Ich schon. Jetzt kann ich für meinen Grafik-LCD-Interface-Baustein 
endlich den kompletten Grafik-Zeichensatz im Flash ablegen :-)

Hannes Lux schrieb:
> Ich weiß, die habe ich aber noch nie gebraucht.

Du machst ja auch nichts in Richtung Audio, höchstens indirekt... 
BUMMMM!!!

Auch Gruß ;-)

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.