SPI und EEPROM

Gast #412092
Lesenswert?

Ich hoffe der Beitrag ist hier richtig:

Inzwischen bin ich mit meinem Latein am Ende, da ich nun schon etliche
Stunde vor den Datenblättern und im Internet verbracht habe und mein
EEPROM noch immer nicht läuft.

Konkret geht es um einen Atmega64 (int. RC-Oszillator 8Mhz) mit
externen EEPROM M95320:
http://www.st.com/stonline/products/literature/ds/5711/m95320-w.pdf

Trotz Austausch des EEPROMs auf der Platine und Überprüfungen der
Pinbelegung und Anschlüsse läuft das EEPROM nicht. Ich habe versucht
den Status des EEPROMs auzulesen, jedoch erhalte ich als Antwort nur
0xFF. Dies ist laut Hersdellerangaben aber unmöglich. Leider habe ich
kein Oszi zur Verfügung, damit ich mir die Signale ansehen könnte.
Aber
vielleicht hapert es ja nur am Code? Vielleicht weiß jemand weiter?

Lieben Gruß
Hans
Angehängte Dateien:
Gast #412093
Lesenswert?

> Ich hoffe der Beitrag ist hier richtig:
> ...
> Inzwischen bin ich mit meinem Latein am Ende
Nee, mit Latein biste hier nicht richtig. Hier gibts nur C...;-)

Ansonsten:
Verdrahtung wie im Datenblatt? Wie ist der /HOLD-Pin beschaltet?
Pull-Up an VCC?
Gast #412094
Lesenswert?

vielleicht solltest du nicht

  //Daten Senden
  SPDR = a;

  // Wartet bis Byte gesendet wurde
  while( !( SPSR & (1<<SPIF) ) )
    ;

  SPDR = _a;_

sondern

  //Daten Senden
  SPDR = a;

  // Wartet bis Byte gesendet wurde
  while( !( SPSR & (1<<SPIF) ) )
    ;

  SPDR = _b;_

schreiben...

Übrigens wird's hier wirklich nichts mit Latein. Viele können nicht
mal richtig Deutsch, andere reden nur (Fach-)Chinesisch...
Gast #412096
Lesenswert?

Na wenn es hier keinen Latein-Unterricht gibt, dann muss ich ja
woandershin. Aber im Moment überfordert mich ja schon C alleine ;-)

Die verdrahtung habe ich genau wie im Datenblatt vorgenommen.

*Hold ist ohne Pull-Up auf High
*CS ist mit 10k auf high
*SCK mit 10k auf low
*W ist ohne pull-up auf high
...

Ich hoffe nur, dass die fehlenden Widerstände nichts kaputt gemacht
haben, aber ich glaube es sollte auch ohne funzen.

@inoffizieller WM-Rahul: Der zweite Befehl ist ein Dummy-Write. Es geht
dabei nur darum, dass man die Daten empfängt. Was man sendet ist dabei
egal.

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