Flash als Speicher für DAten verwenden (ATtiny13)

Gast #1629598
Lesenswert?

Hallo zusammen,
ich arbeite mit den ATtiny13 und habe das Problem, dass der EEPROM zu 
klein ist.
Ich möchte nämlich einen Text über die serielle Schnittstelle ausgeben, 
wenn der Text immer gleich ist, kann ich ihm im Programm einfach so 
schreiben, er steht dann irgendwo im Flash. Das Problem ist nun, dass 
der Text dem Mikrocontroller übermittelt werden soll, und der 
Mikrocontroller diesen dann speicher soll, möglichst aber am Ende des 
Flashs.
Ist das über haupt möglich?
Vielen Dank!!!
Gast #1629626
Lesenswert?

>Hat überhaupt jemand verstanden, was ich machen will?
>Schätze, ich hab mich unklar ausgedrückt, oder?

Schätze, du hast es selber noch nicht ganz verstanden.

Die Stichworte von Guido sind alle richtig, such dir das für dich 
passende aus.

Oliver
Gast #1629633
Lesenswert?

Hallo Patrick,

verstanden habe ich schon, was Du machen willst.

Gehen wird es, im Prinzip ja (Radio Eriwan, wer kennt das noch)
ABER:
Du mußt halt auf einiges achten:

Der Flash wird Pageweise geschrieben. (Pagegröße siehe Datenblatt)
Der Flash ist nicht gerade sehr häufig überschreibbar.
Die Daten müssen irgendwie in den µC kommen.
(Gilt auch für ein externes EEPROM)

Ich halte die Lösung die Texte im Flash "zwischenzuspeichern"
für eher suboptimal. Ein kleines serielles EEPROM wie auch
von Guido Scheidat dürfte die sinnvollere Lösung sein.
Gast #1629643
Lesenswert?

Danke,
tut mir leid Guido, unsere Posts haben sich überkreuzt!

Einen externen EEPROM möchte ich nicht anschließen, ich hab dafür keinen 
Platz.
Ja, so was wie ein Bootloader soll es werden, nur das ich eben diese 
geschriebenen Bytes nicht ausführen, sondern lesen möchte.
Gibt es was in BASCOM, das mir helfen könnte?
Vielen Dank!
Gast #1629663
Lesenswert?

In Bascom kann ich Dir nicht helfen, aber zumindest ein Grundgerüst (in 
C :-) liefern - die eigentlich einzige Herausforderung ist, dafür zu 
sorgen, dass die Flashseite(n) nicht anderweitig benutzt wird(werden). 
In C ist das ganz einfach zu erreichen: eine eigenen Section anlegen, 
eine Variable hinreichender Größe (ein ganzzahliges Vielfaches der 
Seitengröße) ebendort hineinpacken, die Section beim Linken z.B. 'ganz 
nach hinten' legen. Fertig.

Zum Lesen: pgm_read_byte() und co.
Zum Schreiben: Gemäß Datenblatt die Seite löschen, den neuen Text in den 
Puffer legen, die Seite neu schreiben.

Jetzt viel Spaß beim Umsetzen auf Bascom ;-)

HTH
#1629669
Lesenswert?

Oliver schrieb:
>>Gibt es was in BASCOM, das mir helfen könnte?
>
> Die Bascom-Hilfe,

In diesem Fall, ausnahmsweise, würde mich das sehr wundern, wenn die 
Hilfe dazu irgendetwas zu sagen hätte.

Das Problem ist auch in C schon so speziell, dass man höchst 
wahrscheinlich erst mal 3 Tage Recherche im Forum benötigt, ehe da 
irgendetwas Brauchbares dabei rauskommt.
Gast #1629965
Lesenswert?

Karl heinz Buchegger schrieb:
> In diesem Fall, ausnahmsweise, würde mich das sehr wundern, wenn die
>
> Hilfe dazu irgendetwas zu sagen hätte.

Das wäre ja die dabie zu gewinnenden Erkenntnis, ob das mit Bascom geht, 
oder auch nicht.

Für jemanden, für den schon nicht-auszuführende Daten im Flash Neuland 
sind, enthält die Aufgabestellung sowieso noch einige größere 
Herausforderungen. C zu lernen, dürfte dabei noch nicht einmal die 
schwierigste davon sein.

Oliver
#1630094
Lesenswert?

Warum nicht den ATtiny85 nehmen, der hat 512Bytes EEPROM.

Beim ATtiny13 werden die Schreibroutinen ne Menge des winzigen Flash 
(512 Words) verbrauchen, da wird kaum was zum Speichern übrig bleiben.
Und Deine Applikation wird ja auch nicht nur aus Luft bestehen.


Peter
Gast #1630212
Lesenswert?

Hallo Peter,
das ist ne gute Idee, so kann ich es lösen.
Nur ist der Versand bei Reichelt recht hoch, gibt es nich einen 
ähnlichen Tiny-Controller, der die Größe des tiny13 hat und der was 
billiger ist, und den es auch bei Conrad gibt?
Ich brauche nur 100Byte, die 64 reichen ganz knapp nicht aus.
#1695555
Lesenswert?

Also 1KB insgesamt und nur der letzte Block wird benötigt?

1/Minute gibt bei 2 Jahren 1 Mio Schreibvorgänge. Ein externes EEPROM 
kann 1 Mio Schreibzyklen, bereits einige KB solchen EEPROM reichen dafür 
also aus.

Ideal ist FRAM, ist auch gut verfügbar (z.B. bei TME).
#1695579
Lesenswert?

Andreas K. schrieb:

> Wie wärs mit einem Tiny 25, 45 oder 85? Die haben 2, 4 bzw. 8x soviel
> RAM und EEPROM-Speicher an Bord und sind zumindest Pinkompatibel.

Aber nur 100000 mal (sicher) beschreibbar. Ergibt bei 2 Jahren eine
Mindestkapazität von 10KB. Ausserdem wurde der ältere Thread von Klaus
gekapert, insofern ist offen ob ebenfalls 8-Pin Zwerg.
#1695618
Lesenswert?

A. K. schrieb:
> Aber nur 100000 mal (sicher) beschreibbar.

Guck, der Arbeitsspeicher wächst im selben Verhältnis, wenn er groß 
genug ist müssen die Daten nicht ins EEPROM.
Wäre eigentlich eine tolle Lösung für sein Problem, wenn er nicht schon 
selbst drauf gekommen ist und es sich gespart hat, uns freundlicherweise 
zu unterrichten, um dem Thread ein vernünftiges Ende zu spendieren.

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