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.
Der ATmega328 hat 32 Ki Byte.
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?
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.
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 ?!
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?
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...
Welcher Prozessor ist denn jetzt drin?
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
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.
Na dann: ATmega648P Gruß Jobst
Was um alles in der Welt hast Du da gebaut das 32k Flash benötigt? Riesige Lookup-Tabellen?
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.
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.
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.
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?
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.
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" ?
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.
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?
Eine Bitte: das Imperfekt von 'sein' wird 'war' geschrieben, 'wahr' tut wahrhaft weh beim Lesen (und bitte auch dem Kumpel Felix sagen). Danke.
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
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
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.
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
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. ;-)
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 ...
> 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')
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.