Externer Speicher

Gast #782568
Lesenswert?

Also 64 KByte SRAM Speicher kann man ohne Probleme am AVR betreiben.
Denk dran, der Speicherchip hat eine ChipSelect Leitung, die ist da 
nicht umsonst dran sondern sagt dem Speicherchip "Egal was auf den 
Leitungen liegt, ignorieren!"
Moderator Persönliche Seite #782665
Lesenswert?

Hallo Walker,

Ich verwende die Dinger mit schöner Regelmäßigkeit, um dort meinen 
Programmcode abzulegen. Per SPI lassen die sich sehr einfach und flott 
programmieren und auslesen.

Die AT45 sind auch 5V-fest, man kann sie also direkt an einen 5V-Atmel 
hängen - günstiger ist natürlich eine niedrigere Betriebsspannung 
(schon, weil man dann nur eine Spannung benötigt :-)
Aber die High-Pegel werden auch bei 5V noch sauber detektiert (dann 
natürlich bei 3,5V Betriebsspannung des AT45).

Ich habe mir damit eine Plattform gebaut, die ich per Skriptsprache 
programmieren kann und auf der ich dann natürlich richtig viel 
Programmspeicher habe. Im Atmel selbst läuft ein speziell 
umgeschriebener und abgespeckter Tcl-Interpreter (natürlich mit 
Verschlüsselung), der sich seine Befehle dann aus dem Flash holt.

Damit kann man dann schon richtig was machen :-)

Christoph
Gast #782692
Lesenswert?

Hallo Christoph,

könntest du mir bitte dein Programmcode zeigen? Wie kann ich z.B. 
Variablenwerte in diesen Speicher ablegen und wieder auslesen?

Gib bitte ein Beispiel.

Z.B. möchte ich 100 Integer Werte abspeichern. Und später auslesen.
Wie gehe ich vor?

DANKE
Moderator Persönliche Seite #782742
Lesenswert?

Walker wrote:
> Hallo Christoph,
>
> könntest du mir bitte dein Programmcode zeigen?

Das kann ich leider nicht, da der mir nicht alleine gehört.
Aber ich denke, hier wird es genug Leute geben, die den Quellcode 
veröffentlichen können.

> Wie kann ich z.B.
> Variablenwerte in diesen Speicher ablegen und wieder auslesen?
>
> Gib bitte ein Beispiel.
>
> Z.B. möchte ich 100 Integer Werte abspeichern. Und später auslesen.
> Wie gehe ich vor?

Das ist wirklich nicht schwer :-)

Diese Speicher sind in Seiten zu je 256 (bzw. 264) Bytes eingeteilt. 
Diese lassen sich über zwei Puffer beschreiben. Du füllst also zuerst 
einen Puffer mit Deinen Werten und schreibst diesen dann z.B. mit 0x83 
("Buffer to Main Memory Page Program with Built-In Erase") auf die 
gewünschte Seite.
Dann fragst Du zyklisch das Statusregister des Chips ab, bis die 
Operation beendet ist - fertig.

Lesen ist noch viel einfacher: Du kannst mit einem Startbefehl + Adresse 
ab dieser kontinuierlich auslesen (bis in alle Ewigkeit) - dazu muss man 
einfach nur Dummy-Bytes über die SPI reinschieben - raus kommen dann die 
Daten in sequentieller Reihenfolge. Der Befehl nennt sich "Continuous 
Array Read".

Die Ansteuerung der SPI selbst ist extrem einfach und steht in jedem 
AVR-Datenblatt - sogar mit C-Code.

Viel Erfolg - und bei Fragen: fragen! :-)

Christoph
Gast #782944
Lesenswert?

Danke sehr Christoph! Ich werde mich jetzt schlau machen :) Eine Frage 
habe ich noch. Es steht im Datenblatt, dass es 100000 mal beschreibbar 
ist. Wenn ich diesen DataFlash auf meine Platine drauflöte und 100000 
mal drauf schreibe, dann muss ich den DataFlash durch einen neuen 
ersetzen?

100000 mal ist nicht so viel, wenn man im Programm eine Schleife hat die 
dauernd Daten schreibt und liest..
#782968
Lesenswert?

@ Roober (Gast)

>ist. Wenn ich diesen DataFlash auf meine Platine drauflöte und 100000
>mal drauf schreibe, dann muss ich den DataFlash durch einen neuen
>ersetzen?

Kann passieren.

>100000 mal ist nicht so viel, wenn man im Programm eine Schleife hat die
>dauernd Daten schreibt und liest..

Das macht man ja auch nicht so! Solche Daten gehören ins RAM! Ins Flash 
wird nur selten geschrieben, z.B. kurz vor einem Spannungsausfall etc.

MFG
Falk
Persönliche Seite #783017
Lesenswert?

MoinMoin,

> Ich habe mir damit eine Plattform gebaut, die ich per Skriptsprache
> programmieren kann und auf der ich dann natürlich richtig viel
> Programmspeicher habe. Im Atmel selbst läuft ein speziell
> umgeschriebener und abgespeckter Tcl-Interpreter (natürlich mit
> Verschlüsselung), der sich seine Befehle dann aus dem Flash holt.
>
ähmmm, als Tcl-Freak bin ich gearde hellhörig geworden...!!! Habe ich es 
richtig verstanden, dass es einen Tcl-Interpreter für AVRs gibt, den ich 
zur Laufzeit mit Scripts füttern kann?

Wo finde ich das Zeugs???

Grüße Uwe
#783035
Lesenswert?

@ Roober (Gast)

>Und was ist mit der SD-Karte oder MMC? Würde das gehen?

Da ist auch Flash drin, den kann man auch nicht dauernd beschreiben. 
Auch wenn die Controller schon schlau sind, und die Schreibzugriffe gut 
verteilen, ein Ersatz für RAM ist es nicht.
Was willst du denn machen?

MFG
Falk
Moderator Persönliche Seite #783394
Lesenswert?

Uwe Berger wrote:
> MoinMoin,
>
>> Ich habe mir damit eine Plattform gebaut, die ich per Skriptsprache
>> programmieren kann und auf der ich dann natürlich richtig viel
>> Programmspeicher habe. Im Atmel selbst läuft ein speziell
>> umgeschriebener und abgespeckter Tcl-Interpreter (natürlich mit
>> Verschlüsselung), der sich seine Befehle dann aus dem Flash holt.
>>
> ähmmm, als Tcl-Freak bin ich gearde hellhörig geworden...!!! Habe ich es
> richtig verstanden, dass es einen Tcl-Interpreter für AVRs gibt, den ich
> zur Laufzeit mit Scripts füttern kann?

Ja, gibt es - allerdings nur eine abgespeckte Version mit nicht allen 
Befehlen. Dateioperationen etc. kann man direkt rausschmeißen, dafür 
habe ich dann Skriptbefehle für das Setzen der Register usw. etc. 
geschrieben.

Im Prinzip kann ich je nach Anwendung ursprüngliche Befehle weglassen 
oder eincompilieren - sozusagen ein maßgeschneiderter Tcl-Interpreter 
für genau diese Anwendung.

> Wo finde ich das Zeugs???

In obiger Form kenne ich es nur von mir.

Es gab mal ein paar Projekte (TinyTcl meine ich), die das auch gemacht 
haben. Googlen sollte Dir da weiterhelfen.

Ich habe dazu ziemlich viel des originalen Codes umgeschrieben - da 
stecken fast zwei Monate Arbeit drin, aber die sichern mir jetzt 
Vorsprung gegenüber Wettbewerbern. Deswegen werde ich diesen Code nicht 
freigeben. Ich denke, das ist verständlich.

Es macht aber jedenfalls Spaß AVRs (und natürlich auch andere) in Tcl zu 
programmieren :-)

Christoph

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