ATMega2560 - was kommt danach ?

OP #4721338
Lesenswert?

Moin Moin,

nachdem ich nun einige Jahre mit allen möglichen AVRs verbracht habe 
stoßen die Applikationen immer öfter an Grenzen.

Zur Zeit nutze ich einen ATMega2560 und habe z.B. bei LCD Anwendungen 
immer mit der Geschwindigkeit und dem Speicher zu kämpfen.

Nun ist die Frage, was kommt danach und wo kann man sinnvoll anknüpfen ? 
Generell würde ich gerne Speicher und Geschwindigkeit mindestens 
verdoppeln.

Bedeutet das zwingend den Umstieg auf 32Bit und was ändert sich dann, 
z.B. mit den AT32UC.. Prozessoren. Würde die gleiche Software in C (AVR 
Studio), natürlich mit Portanpassungen, auch darauf laufen ?

Danke

Benjamin
Gast #4721361
Lesenswert?

In der Atmega Serie ist der 2560 das Ende der Fahnenstange.

Danach komen Xmega Controller, die haben allerdings 32 Bit und etwas 
komplexere Hardware. Bevor du dich mit denen beschäftigst, würde ich 
allerdings eher zum Wechsel auf ARM basierte Controller raten. Ich 
vermute nämlich, dass die Xmega Serie bald aussterben oder noch teurer 
wird, als sie jetzt schon ist.
#4721429
Lesenswert?

Benjamin S. schrieb:
> Zur Zeit nutze ich einen ATMega2560 und habe z.B. bei LCD Anwendungen
> immer mit der Geschwindigkeit und dem Speicher zu kämpfen.

Ja, für Grafik-Displays ist der AVR schlecht geeignet. Da sollte man 
schon >64kB Daten adressieren können.
Gängig sind dafür die ARM-Cortex von NXP oder ST.
Welches GLCD möchtest Du denn ansteuern?

Mir macht GLCD-Programmierung keinen Spaß. Ständig gibt es 
Änderungswünsche. Dem einen gefällt die Menüaufteilung nicht, dem 
anderen die Farben, dem nächsten die Schriftarten usw. Mit GLCD kann man 
es niemandem recht machen.
Gefühlt gehen 99% der Entwicklungszeit für das GUI drauf und nur 1% für 
die eigentliche Gerätefunktion.
#4721433
Lesenswert?

@  Benjamin S. (benjamin_s316)

>nachdem ich nun einige Jahre mit allen möglichen AVRs verbracht habe
>stoßen die Applikationen immer öfter an Grenzen.

Wirklich? Hast du mal versucht herauszufinden, woran das liegt? Ist die 
CPU WIRKLICH zu langsam und der Speicher WIRKLICH zu klein, oder liegt 
es eher an deiner Programmierung?

>Zur Zeit nutze ich einen ATMega2560 und habe z.B. bei LCD Anwendungen
>immer mit der Geschwindigkeit und dem Speicher zu kämpfen.

Was macht denn deine LCD-Anwendung? Echtzeitdarstellung komplexer Daten?

>Nun ist die Frage, was kommt danach und wo kann man sinnvoll anknüpfen ?
>Generell würde ich gerne Speicher und Geschwindigkeit mindestens
>verdoppeln.

ATXmega wäre eine Option, wenn man nicht großartig "umschulen" will. In 
Anbetracht der heute verfüghbaren 32 Bit uCs ist der aber eher ein 
Kompromiss.

>Bedeutet das zwingend den Umstieg auf 32Bit

Zwingend nicht, aber es ist in vielen Fällen sinnvoll, WENN du wirklich 
deutlich mehr CPU-Leitung brauchst und deine Software die vorhandene 
Hardware schon gut auslastet.

>und was ändert sich dann,
>z.B. mit den AT32UC.. Prozessoren. Würde die gleiche Software in C (AVR
>Studio), natürlich mit Portanpassungen, auch darauf laufen ?

Wenn sie halbwegs gescheit strukturiert ist, ja.
OP #4721524
Lesenswert?

Route_66 schrieb:
> Grafik?

Ja, es wird ein TFT Display angesteuert. Erst waren es nur ein paar 
Buttons, jetzt kommen Bilder usw. dazu, was die ganze Sache etwas 
langsam macht.


Peter D. schrieb:
> Mir macht GLCD-Programmierung keinen Spaß. Ständig gibt es
> Änderungswünsche. Dem einen gefällt die Menüaufteilung nicht, dem
> anderen die Farben, dem nächsten die Schriftarten usw. Mit GLCD kann man
> es niemandem recht machen.
> Gefühlt gehen 99% der Entwicklungszeit für das GUI drauf und nur 1% für
> die eigentliche Gerätefunktion.

Das kann ich 1000% nachvollziehen !! Es wird ein 3.2" TFT (ILI9341) mit 
Touch angesteuert. Es funktionert, aber ist schon alles sehr am Limit.

Falk B. schrieb:
> Wirklich? Hast du mal versucht herauszufinden, woran das liegt? Ist die
> CPU WIRKLICH zu langsam und der Speicher WIRKLICH zu klein, oder liegt
> es eher an deiner Programmierung?

Die Programmierung ist sicherlich nicht optimal, aber schon ok. Manchmal 
ist es auch bequemlichkeit, z.B. ganzes Display und zeichnen lassen, 
anstatt Teilbereiche zu löschen. CPU Geschwindigkeit hängt auch bei 
Signalerzeugung, Ansteuerung für VCOs. Da darf es gerne etwas mehr sein.

MaWin schrieb:
> Willst du nicht auch mal auf einen Prozessor wechseln, der Video und
> Graphik, Linux und Ethernet kann ?

Eigentlich nicht. Das meiste sind Standalone Geräte mit einer festen 
Aufgabe und ich bin frih das ich den C-Code komplett selbst schreibe und 
überblicke, wenn ich da noch Linux dazwischen hätte wäre das zu viel. 
Schnittstellen brauche ich auch nicht so viele.

Falk B. schrieb:
> Zwingend nicht, aber es ist in vielen Fällen sinnvoll, WENN du wirklich
> deutlich mehr CPU-Leitung brauchst und deine Software die vorhandene
> Hardware schon gut auslastet.

Ich werde auf die 32 Bit von ATmel umsteigen, komme mit dem AVR Studio 
ganz gut klar.

Danke für eure Hilfe !!
Gast #4721530
Lesenswert?

Jörg W. schrieb:
> Moment mal: ein Prozessor, der ein VM-Betriebssystem fahren kann,
> ist dann aber schon mal eine völlig andere Nummer.

Nö, mit Cortex-M4 kann man auch µC-Linux laufen lassen. Das geht dann 
logischerweise ohne virtuellen Speicher, weil der M4 keine MMU hat.

Der Haken ist, daß auch dieses Linux noch ziemlich fett ist und 
speichermäßig nicht mit dem onchip-RAM/ROM auskommt. Man muß es in 
externes RAM laden und den Code dann auch von dort aus laufen lassen. 
Das ist dementsprechend lahm, etwa einen Faktor 8 langsamer als 
Programmausführung aus dem onchip-ROM.

Sinnvoller wäre es natürlich, gleich ein RTOS zu nehmen. Wenn 
Geschwindigkeit aber egal ist, dann hat µC-Linux den Vorteil, daß man 
viele zumindest kleinere Linuxprogramme mehr oder weniger unverändert 
laufen lassen kann, wodurch man einen riesigen Softwarepool hat.
Moderator Persönliche Seite #4721540
Lesenswert?

Nop schrieb:
> Nö, mit Cortex-M4 kann man auch µC-Linux laufen lassen.

Klar, man kann auch auf einem AVR ein CP/M laufen lassen.

Die Frage ist eben nur, was wirklich Sinn hat.  Ein RTOS auf einem
Controller ist OK, aber Linux nur um des Linux Willen?  (Mal von
den Problemen mit der GPL ganz abgesehen: welche Firma im
Embedded-Bereich würde schon freiwillig ihren Kunden alle Quellcodes
mitgeben wollen?)

Man bekäme sicher auch ein V7 UNIX auf einen Cortex M4 portiert, das
brauchte noch keinen VM …
#4721588
Lesenswert?

@ Benjamin S. (benjamin_s316)


>Die Programmierung ist sicherlich nicht optimal, aber schon ok.

Wie hast du das festgestellt? Hast du GEMESSEN? Hast du die kritischen 
Funktionen WIRKLICH gefunden? Oder ist das alles nur Bauchgefühl?

https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung

> Manchmal
>ist es auch bequemlichkeit, z.B. ganzes Display und zeichnen lassen,
>anstatt Teilbereiche zu löschen.

Da geht es schon los.

>CPU Geschwindigkeit hängt auch bei
>Signalerzeugung, Ansteuerung für VCOs. Da darf es gerne etwas mehr sein.

Was für Signale werden denn da erzeugt? Eine VCO ANsteuerung klingt auch 
nicht nach einem CPU-Killer.

>Ich werde auf die 32 Bit von ATmel umsteigen, komme mit dem AVR Studio
>ganz gut klar.

Vorsicht! Einige Serien sind abgekündigt und nicht für neue Designs 
empfohlen!
Moderator Persönliche Seite #4721590
Lesenswert?

Falk B. schrieb:
>> Ich werde auf die 32 Bit von ATmel umsteigen, komme mit dem AVR Studio
>>>ganz gut klar.
>
> Vorsicht! Einige Serien sind abgekündigt und nicht für neue Designs
> empfohlen!

Da er einen Nachfolger für einen AVR sucht, würde ich an seiner Stelle
nicht mit den Cortex-M4 ins Rennen gehen, sondern eher mit den M0+
(SAMD21, SAML21 etc.).  Die haben eine etwas moderner anmutende
Peripherie als die alten Boliden (SAM4E etc.).
Gast #4721617
Lesenswert?

Jörg W. schrieb:
> Die Frage ist eben nur, was wirklich Sinn hat.  Ein RTOS auf einem
> Controller ist OK, aber Linux nur um des Linux Willen?

Schrieb ich - wegen des Softwarepools. Spart also Entwicklungszeit.

> (Mal von
> den Problemen mit der GPL ganz abgesehen: welche Firma im
> Embedded-Bereich würde schon freiwillig ihren Kunden alle Quellcodes
> mitgeben wollen?)

Bei Routerfirmen ist das völlig normal, ohne daß die daran 
pleitegegangen wären. Zudem unterliegt zwar das Linux der GPL, das gilt 
aber nicht für die darauf aufsetzenden, selbstgeschriebenen 
Applikationen, in denen dann das Knowhow stecken kann.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren