Forum: Mikrocontroller und Digitale Elektronik AVR Controller mit massig RAM


von Jan (Gast)


Lesenswert?

Hi!

Das übliche Verhältnis bei AVR Controllern zwischen RAM und Flash ist 
anscheinend fast immer 1 zu 16. Die Ausrede, man muss sich ja mal für 
irgendwas entscheiden, zieht hier aber nicht. Es gibt immerhin eine 
extreme Auswahl von µCs, die sich auch nur marginal voneinander 
unterscheiden. Da frage ich mich einfach, warum es kein Modell gibt, der 
z.B. mal ein 1:1 Verhältnis hat. Es soll ja auch Projekte geben, die mal 
16 oder sogar 32 kB RAM (omg!!!) brauchen, ohne dass man gleich ein EBI 
anbinden will...

Oder habe ich da was übersehen, was es schon längst gibt?

von Pete K. (pete77)


Lesenswert?

RAM braucht viel Platz auf dem Die.

Siehe z.B. hier: Beitrag "Anzahl Transitoren eines ATMega8"

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Jan schrieb:
> Oder habe ich da was übersehen, was es schon längst gibt?

Ja. Andere Controller-Familie verwenden. Bei AVRs gibts etwas RAM 
intern, notfalls EBI, und das wars. Die sind nicht für Aufgaben mit 
hoher RAM-Kapazität gebaut.

: Bearbeitet durch User
von S. Landolt (Gast)


Lesenswert?

> ...  16 ... kB RAM

Ist, zugegeben, nicht "massig", aber: ATmega1284 oder AVR128Dx mit 16 
KiB.

von Egon (Gast)


Lesenswert?

Jan schrieb:
> Es soll ja auch Projekte geben, die mal
> 16 oder sogar 32 kB RAM

Meine Erfahrung: Entweder braucht man deutlich weniger und nimmt AVR 
oder deutlich mehr und man nimmt ARM. Meine Frage: Bei welchem 
AVR-Projekt ist einem Projekt des TO der SRAM ausgegangen?

von Jim (Gast)


Lesenswert?

ATxmega384 mit 32 KBytes RAM (und 384 KBytes Flash)

von Thorsten S. (whitejack)


Lesenswert?

Jim schrieb:
> ATxmega384 mit 32 KBytes RAM (und 384 KBytes Flash)

fast 1:1 :-)

TS

von Keiler (Gast)


Lesenswert?

Habe hier ein 80186 Board mit 256k Flash und 4MB RAM. Das ist ein ganz 
schöner Klopper. In etwa wie die alten VLB VGA Karten. Komplett 
vollgestopft.

Das in einen DIP32 quetschen wird lustig...

von Jobst M. (jobstens-de)


Lesenswert?

Jan schrieb:
> Es soll ja auch Projekte geben, die mal
> 16 oder sogar 32 kB RAM (omg!!!) brauchen, ohne dass man gleich ein EBI
> anbinden will...

Um den AVR als Datacenter zu betreiben, empfiehlt sich der Einsatz 
seriellen RAMs oder einer SD-Karte.
Irgendwo willst Du mit den Daten ja auch hin ...

Ich bezweifele, dass die Menge an Daten für einen derart 'kleinen' 
Prozessor in einem sinnvollen Verhältnis steht.
(Auch wenn ich solche Konstrukte hin und wieder selbst auch gerne mal 
aufstelle.)

Sonst z.B. AT32UC3A3256

Gruß
Jobst

von Jobst M. (jobstens-de)


Lesenswert?

Keiler schrieb:
> Habe hier ein 80186 Board mit 256k Flash und 4MB RAM. Das ist ein ganz
> schöner Klopper. In etwa wie die alten VLB VGA Karten. Komplett
> vollgestopft.
>
> Das in einen DIP32 quetschen wird lustig...

Stimmt. Meist sind solche Systeme inzwischen kleiner. Siehe NXP RT600. 
Benötigt allerdings noch eine SD-Karte oder eMMC zum booten.

Gruß
Jobst

von N. B. (charlie_russell)


Lesenswert?

alter Thread von 2014: Beitrag "Viel RAM am kleinen Controller"

Kurzes googeln: Scheint keinen einzigen AVR(32) der DDR-RAM unterstützt. 
Nur bereits hier genannten SDRAM und SRAM.

von Bauform B. (bauformb)


Lesenswert?

Ein STM32H7B0 könnte einen AVR mit 1MB RAM und 4KB EEPROM emulieren. Der 
Chip hat zusätzlich noch 128KB Flash und 128+128+64+32KB RAM und kommt 
im LQFP-64. Und von wegen RAM braucht viel Chipfläche: angekündigt ist 
ein 4.6x4.4mm Gehäuse (WLCSP-132). Zum Ausgleich kommt er dann mit 2MB 
Flash.

von Egon (Gast)


Lesenswert?

Egon schrieb:
> Meine Frage: Bei welchem AVR-Projekt ist einem Projekt des TO der SRAM
> ausgegangen?

Ich wills gleich selbst beantworten: Natürlich keinem!
Für die Aufgaben wozu ein AVR gut ist (und das sind nicht wenige) reicht 
Flash wie SRAM nämlich locker. Denn dort programmiert man etwas 
ressourcenschonender als bei dafür weniger berühmten Chips.

von Roland E. (roland0815)


Lesenswert?

N. B. schrieb:
> alter Thread von 2014: Beitrag "Viel RAM am kleinen Controller"
>
> Kurzes googeln: Scheint keinen einzigen AVR(32) der DDR-RAM unterstützt.
> Nur bereits hier genannten SDRAM und SRAM.

Das will man auch an einem AVR mit DDR-RAM? Das macht erst ab ARM mit 
mehr als 500MHz Sinn.

: Bearbeitet durch User
von weiter weg (Gast)


Lesenswert?

Egon schrieb:
> Ich wills gleich selbst beantworten: Natürlich keinem!

Hatte mir früher auch immer eingebildet mit einem AVR riesige
Mengen an RAM zu brauchen - ist nie eingetreten. Ausnahmen
natürlich bei den sehr kleinen Tinies.

von Johannes S. (Gast)


Lesenswert?

viel RAM tut gut bei Anwendungen z.B. mit Ethernet oder Grafik, für 
beides haben die AVR keine Devices auf dem Chip. Und die Quälerei mit 
ENC oder Wiznet will man sich ja wohl auch nicht mehr antun wo es weit 
bessere Lösungen gibt. Zu den AVR würde B.G. wohl auch sagen '16 kB 
sollten für jeden reichen'.

von (prx) A. K. (prx)


Lesenswert?

Johannes S. schrieb:
> Wiznet will man sich ja wohl auch nicht mehr antun wo es weit
> bessere Lösungen gibt

Wiznet kann schon noch Sinn ergeben, besonders wenn man bestehende 
Software mit z.B. serieller Kommunikation auf Ethernet umstellen will. 
Man verlagert die sonst in Form zusätzlich einzubauender TCP/IP-Software 
in einen leicht zu initialisierenden Chip und das wars.

von Malte _. (malte) Benutzerseite


Lesenswert?

Das ist leider eine leere Menge. Und nach diversen RAM-sparen-Versuchen 
wie 3 Bit pro Pixel für ein LCD etc... bin ich bin deswegen zu ARM 
gewechselt. Ein RGB Framebuffer für ein kleines LCD braucht einfach ein 
paar KB. Von der Rechenzeit her würde das auf einem AVR eigentlich noch 
gut gehen. Blöd nur, dass die Verfügbarkeit der STM jetzt schlechter ist 
als bei den AVRs...

: Bearbeitet durch User
von Egon (Gast)


Lesenswert?

Malte _. schrieb:
> bin ich bin deswegen zu ARM gewechselt. Ein RGB Framebuffer für ein
> kleines LCD braucht einfach ein paar KB.

Derart "pure" GrafikDisplay-Anbindung ist so ein Fall:

Egon schrieb:
> Entweder braucht man deutlich weniger und nimmt AVR oder deutlich mehr
> und man nimmt ARM.

Mit weniger (Nextion) oder mehr (uniTFT) Geld kann man sich aber auch da 
behelfen. Analog Funktions-Auslagerung a'la Wiznet nimmt man hier eben 
ein intelligentes HMI Display.

von Johannes S. (Gast)


Lesenswert?

Egon schrieb:
> Mit weniger (Nextion)

jo, und da ist dann ein kleiner ARM drauf. ARM, ESP32 oder mittlerweile 
auch RP2040 haben reichlich Dampf das all in one zu erledigen. Mit lvgl 
auch mit netter Grafik die Nextion & Co. in nichts nachsteht, Open 
Source ist und wofür es reichlich Beispiele gibt.
Man müsste sich nur mal davon verabschieden jedes Bit beim Namen kennen 
zu wollen und eine Abstraktionsschicht höher erlernen.

von Egon (Gast)


Lesenswert?

Johannes S. schrieb:
> Man müsste

Nix da, niemand muß.
Was langt das langt.
Sonst kommt man schnell vom Hundertsten ins Tausendste ohne echte 
Notwendigkeit.
Hat alles seine Vor- und Nachteile.

von Falk B. (falk)


Lesenswert?

Jan schrieb:
> Da frage ich mich einfach, warum es kein Modell gibt, der
> z.B. mal ein 1:1 Verhältnis hat.

Weil das die Masse der zahlenden Kunden nicht braucht. Und in diesem 
Markt geht es um jeden Cent. Die paar zehntausend Bastler sind 
nebensächlich, die Milliardenumsätze bringen die Industriekunden.

> Es soll ja auch Projekte geben, die mal
> 16 oder sogar 32 kB RAM (omg!!!) brauchen,

Dann nimm externen S(D)RAM.

> ohne dass man gleich ein EBI
> anbinden will...

Nö. Die wenigen (wieviel? 1 Promille?), die das WIRKLICH brauchen, 
nehmen externen S(D)RAM und gut. Wo liegt das Problem? Es scheint eher, 
daß du daraus eine Ideologie machen willst. Interner RAM ist gut, 
externer böse. Das ist Unfug.

von Bauform B. (bauformb)


Lesenswert?

Falk B. schrieb:
> Die wenigen (wieviel? 1 Promille?), die das WIRKLICH brauchen,
> nehmen externen S(D)RAM und gut. Wo liegt das Problem?

Zu teuer, zu groß, zu viele Pins und Leiterbahnen, zu viel 
Störstrahlung.

> Es scheint eher, daß du daraus eine Ideologie machen willst.
> Interner RAM ist gut, externer böse. Das ist Unfug.

Und die Erde ist eine Scheibe ;)

von Falk B. (falk)


Lesenswert?

Bauform B. schrieb:
>> Die wenigen (wieviel? 1 Promille?), die das WIRKLICH brauchen,
>> nehmen externen S(D)RAM und gut. Wo liegt das Problem?
>
> Zu teuer, zu groß, zu viele Pins und Leiterbahnen, zu viel
> Störstrahlung.

Sagt die Konifere des Forums . . .

von Egon (Gast)


Lesenswert?

Johannes S. schrieb:
> Egon schrieb:
>
>> Mit weniger (Nextion)
>
> jo, und da ist dann ein kleiner ARM drauf

Den passiv zu nutzen da fällt mir wirklich kein Zacken aus der AVR 
Krone. Bis ich etwa mit einem aktuellen RP2040 wirklich alles so locker 
programmieren könnte was ich jetzt mit schlankem AVR (viel flexibler) 
aus dem Ärmel schüttele sind wir schon wieder einige RPxxxx mit wieder 
neuen Eigenheiten Generationen weiter. Über irgendwelche billigen 
Beispielprogramme hinaus wird das Projekt- Gelände da nämlich schnell 
schwer sumpfig.

von c-hater (Gast)


Lesenswert?

Egon schrieb:

> Bis ich etwa mit einem aktuellen RP2040 wirklich alles so locker
> programmieren könnte was ich jetzt mit schlankem AVR (viel flexibler)

Der AVR ist (zumindest softwaremäßig oder bezüglich der Peripherie) 
keinesfalls flexibler als ein RP2040. Das Gegenteil ist der Fall.

Die extremen Vorteile des RP2040 gegenüber bezüglich der Rechenleistung 
vergleichbaren ARM-Controllern sind:
-viel mehr verfügbarer RAM
-Echtzeit viel besser als AVR (durch die PIOs)

D.h.: viele ARM-Nachteile wiegen hier längst nicht mehr so schwer, die 
Vorteile können besser genutzt werden, und der Hauptvorteil ist halt im 
Falle des RP2040: extrem viel RAM für so einen kleinen Controller. 
Genug, um sogar einen echten Framebuffer völlig unabhängig von den Cores 
zu betreiben. Wenn auch nur im bescheidenen Ausmaß von maximal ca. 22MHz 
Pixeltakt und 12bpp.

> Über irgendwelche billigen
> Beispielprogramme hinaus wird das Projekt- Gelände da nämlich schnell
> schwer sumpfig.

Ja, wenn die "eigenen" Projekte im Wesentlichen nur C&P fremder 
Leistungen sind, dann mag das wohl so aussehen...

von Stefan F. (Gast)


Lesenswert?

Er ist nur verwirrt. Einfach weiter gehen ohne hinzuschauen, dann 
passiert nichts.

von c-hater (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> Er ist nur verwirrt. Einfach weiter gehen ohne hinzuschauen, dann
> passiert nichts.

Wie meinen? Wer ist verwirrt?

von Egon (Gast)


Lesenswert?

c-hater schrieb:
> Der AVR ist (zumindest softwaremäßig oder bezüglich der Peripherie)
> keinesfalls flexibler als ein RP2040. Das Gegenteil ist der Fall.

Flexibler meint, Du hast als Bastler die Auswahl unter 
unterschiedlichsten Chips und nicht nur eine fixe Platine. Das 
ermöglicht insbesondere kleinere und funktionell angepasstere Lösungen.

c-hater schrieb:
> viel mehr verfügbarer RAM
> -Echtzeit viel besser als AVR (durch die PIOs)

Das Event-System neuerer AVRs scheint Dir noch kein Begriff zu sein. Daß 
die GPIO Ansteuerung über die neuen PIOs nun noch komplexer geworden ist 
sehe ich eher als schweren Nachteil. Sie braucht sogar eine eigene 
Assembler-Sprache. Gehts noch verrückter?

> Hauptvorteil ist halt im Falle des RP2040: extrem viel RAM für so einen
> kleinen Controller. Genug, um sogar einen echten Framebuffer völlig
> unabhängig von den Cores zu betreiben. Wenn auch nur im bescheidenen
> Ausmaß von maximal ca. 22MHz Pixeltakt und 12bpp.

RAM ist immer von Vorteil, doch wenn ich schon wieder die vorgenommene 
Segmentierung des Speichers sehe... Auch sonst ist das Ding viel zu 
komplex geraten. Damit ist wieder eine Generation Programmierer mit 
Arbeit eingedeckt. Meist für die gleichen Dinge die jetzt und schon 
lange AVRs bewerkstelligen. Danke.

c-hater schrieb:
> Ja, wenn die "eigenen" Projekte im Wesentlichen nur C&P fremder
> Leistungen sind,

Ja, wenn!

von c-hater (Gast)


Lesenswert?

Egon schrieb:

> Das Event-System neuerer AVRs scheint Dir noch kein Begriff zu sein.

Doch, natürlich. Aber: was kann ein Eventsystem bei maximal 32Mhz, was 
der RP2040 nicht bei 133MHz können soll...

> die GPIO Ansteuerung über die neuen PIOs nun noch komplexer geworden ist
> sehe ich eher als schweren Nachteil. Sie braucht sogar eine eigene
> Assembler-Sprache.

Du kannst die GPIOs natürlich auch in gemütlichem C ansteuern. Nur halt 
nicht nicht so zeitlich treffgenau, wie es die PIOs können.

> RAM ist immer von Vorteil, doch wenn ich schon wieder die vorgenommene
> Segmentierung des Speichers sehe...

Der ist nicht "segmentiert", jedenfalls nicht so, wie du das verstehst. 
Aus deinem geliebten C-Bullshit heraus kannst du den als plain 
betrachten und auch so darauf zugreifen. Die Segmentierung existiert nur 
dann, wenn es wirklich auf Speed ankommt. Also nur bezüglich des 
möglichen Durchsatzes, nicht bezüglich der Addressierung. Also nur dann, 
wenn man wirklich maximal Performance aus dem Speicher herauskitzeln 
muss/will, muss man sich mit dessen "Segmentierung" befassen.

> Auch sonst ist das Ding viel zu
> komplex geraten.

Maybe, für dich. Nicht für mich.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Also bislang habe ich nur eine Anwendung wo mir der RAM eines AVR 
wirklich störend zu klein ist, als VGA Controller. Aber das war auch 
eher eine Machbarkeitsstudie. Andererseits ging mir dabei auch auf die 
Nerven, dass das SPI ungepuffert ist oder es praktisch nie einen 
komplett nutzbaren Port gibt wo nicht wieder ein anderes Signal drin 
liegt was man auch braucht (Reset, RxD/TxD, XTAL1/2), außer eben bei den 
40/44 Pinnern.

von Egon (Gast)


Lesenswert?

c-hater schrieb:
> Aber: was kann ein Eventsystem bei maximal 32Mhz, was der RP2040 nicht
> bei 133MHz können soll...

Wer braucht eine Echtzeit bei 133MHz wenn (mir) meist schon eine bei 
8MHz in reinem Interruptbetrieb reicht :)

c-hater schrieb:
> Du kannst die GPIOs natürlich auch in gemütlichem C ansteuern. Nur halt
> nicht nicht so zeitlich treffgenau, wie es die PIOs können.

Mir reicht ein kurzes knackiges sbi und cbi, ggf. ergänzt um Interrupts 
bei Flanken-Erkennung.

c-hater schrieb:
> Aus deinem geliebten C-Bullshit

Du solltest hier aufmerksamer lesen.

c-hater schrieb:
> Maybe, für dich. Nicht für mich.

Das freut mich aufrichtig.
Ob Du "den Vorteil" wirklich irgendwobei nutzt oder hier nur wichtig 
daherquakst steht sicher auf einem anderen Blatt.

von Harald W. (wilhelms)


Lesenswert?

c-hater schrieb:

> Stefan ⛄ F. schrieb:
>
>> Er ist nur verwirrt. Einfach weiter gehen ohne hinzuschauen, dann
>> passiert nichts.
>
> Wie meinen? Wer ist verwirrt?

Stefan will RAM beim µC-Forum sparen und vergisst deshalb,
vernünftig zu zitieren.

von Egon (Gast)


Lesenswert?

Tim T. schrieb:
> als VGA Controller

eignen sich sicher andere und 32Bitter besser.

Tim T. schrieb:
> es praktisch nie einen komplett nutzbaren Port gibt wo nicht wieder ein
> anderes Signal drin liegt was man auch braucht (Reset, RxD/TxD,
> XTAL1/2), außer eben bei den 40/44 Pinnern.

Immerhin existieren gerade auch bei den neuen AVRs 
Alternativbelegungungen. Die völlig freie Definierbarkeit der 
Pinfunktion bei gleichzeitig simpler Konfiguration derselben stünde 
auch bei mir auf der Wunschliste. Und noch einiges mehr was heute noch 
in Software zu erledigen ist.

von m.n. (Gast)


Lesenswert?

c-hater schrieb:
> Die extremen Vorteile des RP2040 gegenüber bezüglich der Rechenleistung
> vergleichbaren ARM-Controllern sind:
> -viel mehr verfügbarer RAM
> -Echtzeit viel besser als AVR (durch die PIOs)

Sobald man Timer braucht, die schnelle, externe Ereignisse zählen können 
und/oder Capture-Funktion zu diesen Timern, sieht der RP2040 doch total 
alt aus.
Was sich die Entwickler dabei nur gedacht haben?

von STM8 (Gast)


Lesenswert?

Bereits die kleinsten STM8 haben 2 kB RAM und sind/waren mindestens
vor der grossen Chipkrise viel billiger als ein stinkender AVR.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Egon schrieb:
> Tim T. schrieb:
>> als VGA Controller
>
> eignen sich sicher andere und 32Bitter besser.

Natürlich, aber es ging mir gerade eben darum nicht einfach einen 
billigen RPi dafür zu nehmen und auch direkt HDMI zu haben sondern das 
Ganze mit einfachsten Mitteln zu bauen.

>
> Tim T. schrieb:
>> es praktisch nie einen komplett nutzbaren Port gibt wo nicht wieder ein
>> anderes Signal drin liegt was man auch braucht (Reset, RxD/TxD,
>> XTAL1/2), außer eben bei den 40/44 Pinnern.
>
> Immerhin existieren gerade auch bei den neuen AVRs
> Alternativbelegungungen. Die völlig freie Definierbarkeit der
> Pinfunktion bei gleichzeitig simpler Konfiguration derselben stünde
> auch bei mir auf der Wunschliste. Und noch einiges mehr was heute noch
> in Software zu erledigen ist.

Finde es einfach schade dass es bei den kleineren AVR praktisch nie eine 
Möglichkeit gibt einen kompletten Port zu nutzen. Beispielsweise bei den 
328ern mussten sie ja unbedingt den XTAL auf PB legen, Reset auf PC 
(wobei der eh nur 7 Pins hat) und die Serielle Schnittstelle auf PD. 
Irgendwie grenzt das doch an Sabotage. Warum konnte man nicht einfach 
Reset, Seriell und XTAL auf den eh schon zu kleinen PC legen?

von c-hater (Gast)


Lesenswert?

Egon schrieb:

> Das freut mich aufrichtig.
> Ob Du "den Vorteil" wirklich irgendwobei nutzt oder hier nur wichtig
> daherquakst steht sicher auf einem anderen Blatt.

Nun ich habe mit dem RP2040 z.B. einen Framebuffer für ein 960x160-LCD 
realisiert. Der läuft (einmal initialisiert) völlig unabhängig von den 
beiden M0+-Kernen.

Nur über den Speicherdurchsatz kann man das Ding noch in der Funktion 
beeinträchtigen. Z.B. durch Mem2Mem-DMA ohne Pacing.

However: Das ist jedenfalls weit jenseits der Möglichkeiten eines AVR8. 
Der hat schlicht nicht annähernd genug RAM für sowas.

von c-hater (Gast)


Lesenswert?

m.n. schrieb:

> Sobald man Timer braucht, die schnelle, externe Ereignisse zählen können
> und/oder Capture-Funktion zu diesen Timern, sieht der RP2040 doch total
> alt aus.

Nicht, wenn man die PIOs beherrscht...

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Ach ja, was meinst du mit neueren AVR? Meinst du die XMegas? Also da 
gehe ich dann doch lieber direkt auf nen ARM. Die XMegas versuchen 
irgendwie eine Lücke zu füllen, die ich weder sehe noch habe.

von Stefan F. (Gast)


Lesenswert?

Harald W. schrieb:
> Stefan will RAM beim µC-Forum sparen und vergisst deshalb,
> vernünftig zu zitieren.

Wie wir sehen hat sich die gemeinte Person dennoch prompt angesprochen 
gefühlt.

von Egon (Gast)


Lesenswert?

Tim T. schrieb:
> Meinst du die XMegas?

Nein. Die neue AVRxxxDx Serie.

c-hater schrieb:
> However: Das ist jedenfalls weit jenseits der Möglichkeiten eines AVR8.
> Der hat schlicht nicht annähernd genug RAM für sowas.

Das hat auch niemand behauptet.

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.