Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage: Pinning ATMEGA32 -> FRAM


von Matthias (DC2RLM) (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich knoble hier nach wie vor an meinem STK 500 mit einem ATMEGA32 in C 
(AVR- Studio mit GCC)- also immer noch meine ersten Schritte in der Welt 
der µCs. Deswegen auch die vielleicht etwas "dämlich" anmutende Frage, 
aber das Risiko geh ich jetzt einfach mal ein :D.
Ich brauche für eine Anwendung (Maschinensteuerung) einen remanenten 
Speicher, der sich nahezu beliebig oft beschreiben lässt.
Dabei bin ich über die FRAMs von RAMTRON gestolpert, und habe jetzt mal 
den FM24C04A über Farnell kommen lassen, dessen Datenblatt ihr auch im 
Anhang findet.

Ich will diesen Speicher nun mit dem ATMEGA32 ansprechen, und bin nun 
seit heute morgen am Datenblatt lesen- zum einen das des ATMEGA, wie man 
SPI richtig initialisiert (das hätte ich soweit gerafft), zum anderen 
das des FRAM, wie ich diesen richtig an den Atmel anschliesse und dann 
mit Hilfe des Datenblattes ansprechen kann.
Das Pinning des FRAM sieht so aus:
Pin1: NC
Pin2: A1
Pin3: A2
-> zusammen für die "Device Selection" verantwortlich. Ich hab das jetzt 
so verstanden: Wenn ich A1 & A2 auf low lege, hat mein Device die Nr 
"00" und muss dementsprechend so angesprochen werden.
Pin4: VSS, also Ground
Pin5: SDA, "Serial Data/ Adress"
-> Ein- und Ausgang, für die serielle Kommunikation.
Verstehe ich das jetzt richtig, dass ich hier MISO UND MOSI des Atmel 
anschliessen muss (Einmal der Eingang für den F-RAM, einmal der Ausgang, 
auf dem der µC dann die Daten wieder auslesen kann)?
Pin6: SCL, muss mit SCK verbunden werden (hab ich über Vorteiler auf 250 
kHz eingestellt).
Pin7: WP, write Protection, liegt bei mir auf low, ist also AUS.
Pin8: VDD, +5V.

Jetzt lese ich immer mal wieder was von #CS und #SS, auch in den Atmel 
App- Notes: Ich hätte das jetzt so interpretiert, dass ich das nicht 
brauche, da ich ja nur einen Master und mit dem FRAM den "Slave" am Bus 
habe.

Wäre euch dankbar, wenn mir jemand kurz sagen könnte, ob ich so auf dem 
richtigen Weg bin- nicht dass es bei den anstehenden Software- Sachen 
auch noch am Pinning hapert, und ich so mehrere ungelöste Probleme am 
Hals hab ;)

Grüße aus Regensburg,
Matthias

von Michael (Gast)


Lesenswert?

Nur ein kurzer Hinweis: Dieser FRAM hat kein SPI sondern ein I2C.

Ich glaube, das wird von den AVRs auch unterstützt. Schau mal unter TWI 
oder so ähnlich. (wenn ich mich jetzt richtig erinnere)

von Michael (Gast)


Lesenswert?

Habe noch einmal ins Datasheet geschaut. Ab Seite 169 steht alles über 
das Two-Wire-Interface beschrieben. Die Pins, die Du brauchst, sind SDA 
und SCL (Pin 23 und Pin 22 beim DIP40, Pin 20 und 19 beim TQFP44).

von Matthias (DC2RLM) (Gast)


Lesenswert?

Hallo Michael,

recht herzlichen Dank für deinen Hinweis!
Da brauche ich mich dann natürlich nicht zu wundern, warum ich für SPI 
und FRAM nirgendwo irgendwas finde, was mir weiterhilft :D.
Merci für das "Licht im Dunkel", war doch gut, dass ich nachgefragt 
habe...

Grüße,
Matthias

von P. S. (Gast)


Lesenswert?

Schau mal nach den EEPROM-Routinen, die hier und da rumfliegen. Mit 
wenigen Aenderungen bei der Adressaufbereitung (je nach Chip sogar ohne) 
sollte der Code eigentlich passen.

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.