mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega644P vs Xmega


Autor: Spinnerich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: unwissender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
einen Tiny, wenns denn ein Controller sein soll

Autor: Daniel H. (Firma: keine) (commander)
Datum:

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

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Spinnerich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rene K. (draconix)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Spinnerich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>massive Schwierigkeiten mit den Adaptern zum Flashen

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

Autor: Spinnerich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: unwissender (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Halbminimalist (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Max Power (eizo)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Spinnerich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andi ... (xaos)
Datum:

Bewertung
0 lesenswert
nicht 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 ??)

Autor: Spinnerich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Spinnerich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich wollte den Mega644P eigentlich mit 20 Mhz betreiben^^

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann nimm doch 2 10Mhz-Quarze!

SCNR

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Knut Ballhause schrieb:
> Dann nimm doch 2 10Mhz-Quarze!

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

>
> SCNR

...

Autor: Spinnerich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was wäre denn für meine Anwendung besser?

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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: Ben ___ (burning_silicon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und bei 20Mhz halt beim doppelten...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

...

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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ß ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.