Forum: Mikrocontroller und Digitale Elektronik Suche ein 28 Pin Mikrocontroller mit mehr als 32 kBit Flash Speicher


von Jan H. (jan_h865)


Lesenswert?

Moin Leute,
Ich suche zurzeit ein Mikrocontroller der 28 Pins hat und mehr als 32 
Kbit Flash Speicher hat.
Kann mir einer sagen ob es so einen gibt? Oder ist bei denn 28 Pinning 
Controllern bei 32 Kbit schluss?

Mfg Jan Hampel.

von Felix Neumann (Gast)


Lesenswert?

Der ATmega328 hat 32 Ki Byte.

von Stefan (Gast)


Lesenswert?

Wie wäre es mit PIC 18F26K20 ?
64K Speicher.

von Stefan (Gast)


Lesenswert?

Oder PIC 32MX150F128B
Mit 128K Speicher.

von c-hater (Gast)


Lesenswert?

Jan H. schrieb:

> Ich suche zurzeit ein Mikrocontroller der 28 Pins hat und mehr als 32
> Kbit Flash Speicher hat.

Warum muss es denn unbedingt einer mit 28 Pins sein?

von Jan H. (jan_h865)


Lesenswert?

c-hater schrieb:
> Jan H. schrieb:
>
>> Ich suche zurzeit ein Mikrocontroller der 28 Pins hat und mehr als 32
>> Kbit Flash Speicher hat.
>
> Warum muss es denn unbedingt einer mit 28 Pins sein?

Weil ich die Platine bereits gelötet habe und dort ein 28 Pin Sockel 
drauf ist. Und mir beim Programmieren mir der Speicher ausgegangen ist.

Stefan schrieb:
> Wie wäre es mit PIC 18F26K20 ?
> 64K Speicher.

Es sollte schon einer von der ATMega Familie sein.

von Berufsrevolutionär (Gast)


Lesenswert?

Jan H. schrieb:
> Weil ich die Platine bereits gelötet habe und dort ein 28 Pin Sockel
> drauf ist. Und mir beim Programmieren mir der Speicher ausgegangen ist.

Und du meinst jeder 28pin µC ist pinkompatibel ?!

von Jan H. (jan_h865)


Lesenswert?

Berufsrevolutionär schrieb:
> Und du meinst jeder 28pin µC ist pinkompatibel ?!

Verstehe ich nicht so ganz. Natürlich muss ich vielleicht denn Code an 
einigen Stellen ändern und auch den Controller im Projekt ändern. Oder 
meinst du jetzt wegen SMD und DIP?

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Jan H. schrieb:
> Und mir beim Programmieren mir der Speicher ausgegangen ist.

32 KBytes sind eigentlich ganz schön viel! Gerade bei den ATmegas.

Hast du schon geprüft, warum der Speicher nicht ausreicht? Welche 
Programmiersprache verwendest du? Wahrscheinlich gibts 
Optimierungsmöglichkeiten beim Programm...

von Helmut S. (helmuts)


Lesenswert?

Welcher Prozessor ist denn jetzt drin?

von Berufsrevolutionär (Gast)


Lesenswert?

Jan H. schrieb:
> Berufsrevolutionär schrieb:
>> Und du meinst jeder 28pin µC ist pinkompatibel ?!
>
> Verstehe ich nicht so ganz. Natürlich muss ich vielleicht denn Code an
> einigen Stellen ändern und auch den Controller im Projekt ändern. Oder
> meinst du jetzt wegen SMD und DIP?

Ich mein das wegen inkompatiblen Controllerfamilien, das es sich um 
ATMega wird  erst spät im Thread klar. Am beste du nennst den uC und das 
Package das du ersetzen möchtest. Alternativ kannst du ja auch eine 
Adapterplatine plannen

von Jan H. (jan_h865)


Lesenswert?

Helmut S. schrieb:
> Welcher Prozessor ist denn jetzt drin?

Zurzeit ist der ATMega328P. Werde gleich mal mein Code überarbeiten. 
Denn ich habe beim kurzen übersehen grade ein paar(5-6) nötigen 
Funktionen gefunden.

von Jobst M. (jobstens-de)


Lesenswert?

Na dann: ATmega648P


Gruß

Jobst

von Bernd K. (prof7bit)


Lesenswert?

Was um alles in der Welt hast Du da gebaut das 32k Flash benötigt? 
Riesige Lookup-Tabellen?

von Jan H. (jan_h865)


Lesenswert?

Bernd K. schrieb:
> Was um alles in der Welt hast Du da gebaut das 32k Flash benötigt?
> Riesige Lookup-Tabellen?

Nein. Aber viele Display Nachrichten. Die mit PSTR in denn Flash kopiert 
werden.

von Lothar (Gast)


Lesenswert?

Jan H. schrieb:
> Nein. Aber viele Display Nachrichten. Die mit PSTR in denn Flash kopiert
> werden.

Gespeichert als Text? Wie wäre es mit einer Liste der in den Nachrichten 
gebrauchten Wörter, dann muss jedes mehrfach vorkommende Wort nur einmal 
gespeichert werden. Oder eine ganz einfache Komprimierung die der AVR 
noch schafft:

https://en.wikipedia.org/wiki/Run-length_encoding

Ansonsten ist ein 8-Bit uC die falsche Wahl für alles was über 64k ROM 
oder 4k RAM rausgeht, sollte ja eigentlich vorher absehbar sein.

von Peter D. (peda)


Lesenswert?

Jan H. schrieb:
> Nein. Aber viele Display Nachrichten. Die mit PSTR in denn Flash kopiert
> werden.

Falls viele Nachrichten sich nur in Parametern unterscheiden, kann man 
diese als Variablen übergeben.

Oder Du schließt noch nen 24C512 an.

von Axel S. (a-za-z0-9)


Lesenswert?

Jan H. schrieb:
> Bernd K. schrieb:
>> Was um alles in der Welt hast Du da gebaut das 32k Flash benötigt?
>> Riesige Lookup-Tabellen?
>
> Nein. Aber viele Display Nachrichten. Die mit PSTR in denn Flash kopiert
> werden.

Sie werden nicht "kopiert". Aber egal. Ich glaube das trotzdem nicht, 
daß das so viel sein soll. Kannst du Zahlen nennen wieviel KB in deinem 
Flash von Konstanten belegt werden?

von Jan H. (jan_h865)


Lesenswert?

Axel S. schrieb:
> Sie werden nicht "kopiert". Aber egal. Ich glaube das trotzdem nicht,
> daß das so viel sein soll. Kannst du Zahlen nennen wieviel KB in deinem
> Flash von Konstanten belegt werden?

Jaa, davon wahren viele belegt. Ich habe gut die hälfte entfernt. Denn 
zum Teil wahren dort mehrer uint16_t's die schon seit langer Zeit 
unbenutzt wahren. Ein Paar Text Nachrichten fürs Displays habe ich 
anstatt im Flash in denn RAM gelagert. Nun sind nur noch 14 kbit belegt 
vorher wahren es 22 kbit. Viele unnötige Funktionen habe ich auch 
entfernt.
Brauche wohl dann erst mal doch kein anderen Controller zum Glück.

Auf jeden Fall danke an euch.

Mfg Jan H.

von Sascha (Gast)


Lesenswert?

Wenn man Sachen in den RAM lädt, wo standen sie vorher? Vielleicht im 
Flash? ;-)

Der Flash hat 16bit Wortbreite, speicherst du auch 2 ASCII-Stellen in 
einem Wort oder nur einen + 8 Bits Befehl "Das ist eine 8bit-Konstante" 
?

von Guest (Gast)


Lesenswert?

Jan H. schrieb:
> 14 kbit

Jan H. schrieb:
> 22 kbit

Kein Wunder daß Dir der Speicher ausgeht. Wenn Du lernst Bits und Bytes 
zu unterscheiden hast Du plötzlich acht mal soviel.

von Axel S. (a-za-z0-9)


Lesenswert?

Jan H. schrieb:
> Ein Paar Text Nachrichten fürs Displays habe ich
> anstatt im Flash in denn RAM gelagert.

Ach. Und du glaubst das hilft? Überleg mal: wenn dein µC eingeschaltet 
wird - was steht dann im RAM? Wenn dann später dein Programm (vulgo 
main()) losläuft und die Daten dann im RAM stehen, wie kommen die da 
hin? Wo waren die wohl vorher abgelegt?

von S. Landolt (Gast)


Lesenswert?

Eine Bitte: das Imperfekt von 'sein' wird 'war' geschrieben, 'wahr' tut 
wahrhaft weh beim Lesen (und bitte auch dem Kumpel Felix sagen).
Danke.

von Swiss Made (Gast)


Lesenswert?

S. Landolt schrieb:
> Eine Bitte: das Imperfekt von 'sein' wird 'war' geschrieben,

Hier zum Üben:
http://www.lernumgebung.ch/SEK1/uebungen/Deutsch/war_oder_wahr_Matrose.htm

von c-hater (Gast)


Lesenswert?

Lothar schrieb:

> Ansonsten ist ein 8-Bit uC die falsche Wahl für alles was über 64k ROM
> oder 4k RAM rausgeht

[Mod: unnötig unflätigen Ausdruck gelöscht]

Ein ATMega1284P z.B. hat 128k Flash und 16k RAM, ein ATMega2560 hat 256k 
Flash und 8k RAM (trivial extern erweiterbar auf 64k).

Um was anderes zu benutzen, braucht man schon deutlich bessere Gründe 
als von dir angegeben...

: Bearbeitet durch Moderator
von Frank S. (_frank_s_)


Lesenswert?

c-hater schrieb:
> Ein ATMega1284P z.B. hat 128k Flash und 16k RAM, ein ATMega2560 hat 256k
> Flash und 8k RAM (trivial extern erweiterbar auf 64k).

Sind aber beide keine 28-Pinner mehr.

von c-hater (Gast)


Lesenswert?

Frank S. schrieb:

> Sind aber beide keine 28-Pinner mehr.

Das ist wohl wahr. Aber es spielt auch absolut keine Rolle, denn der 
Grund für das Beharren auf 28 Pins war ja die bereits gefertigte 
Platine. Und die kann man weder benutzen, wenn man einen "größeren" AVR8 
braucht, noch dann, wenn man auf was völlig anderes wechselt, selbst 
wenn das dann tatsächlich 28 Beine hat.

Der Wechsel auf einen größeren AVR8 ermöglicht aber immerhin, den 
gesamten (oder zumindest den Grossteil) des existierenden Codes zu 
übernehmen.
[Mod: unnötig unflätigen Ausdruck gelöscht]

: Bearbeitet durch Moderator
von Helmut D. (Gast)


Lesenswert?

c-hater schrieb im Beitrag #4634559:
> du Dumpfbramme

c-hater schrieb:
> Gequirlte Kacke.

c-hater schrieb:
> komplett in's Hirn geschissen

Da ist sie wieder, deine gewählte und bekannte Ausdrucksweise. ;-)

von Lothar (Gast)


Lesenswert?

c-hater schrieb:
> Ein ATMega1284P z.B. hat 128k Flash und 16k RAM, ein ATMega2560 hat 256k
> Flash und 8k RAM (trivial extern erweiterbar auf 64k).
>
> Um was anderes zu benutzen, braucht man schon deutlich bessere Gründe
> als von dir angegeben...

Der Preis ??? Es sollte doch jeder wissen das Flash/SRAM in einem 
Prozess für 8-Bit viel aufwendiger ist als in einem Prozess für 32-Bit. 
Deshalb:

ATMega2560 kostet 15 EUR !!!
LPC11U68 kostet 4 EUR und ist auch noch 3x schneller ...

von S. Landolt (Gast)


Lesenswert?

> absolut vorzuziehende Variante

Ich denke, die derzeit sinnvollste Variante wäre, die beiden würden sich 
zusammensetzen und ausloten, was an Einsparpotenzial vorhanden ist, das 
scheint einiges zu sein. Wäre eine lehrreiche Übung, darüber hinaus 
lohnend, da das vorhandene Material, uC und Platine, weiter genutzt 
werden könnte.
  (vor langer Zeit gab es mal das Schlagwort 'small is beautiful')

von Jack (Gast)


Lesenswert?

Man könnte den 2560 als SMD auf eine Adapterplatine mit 28 Pins löten... 
könnte wäre hätte...

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.