Forum: Compiler & IDEs SPI und EEPROM


von Hans (Gast)


Angehängte Dateien:

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

von johnny.m (Gast)


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?

von inoffizieller WM-Rahul (Gast)


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...

von inoffizieller WM-Rahul (Gast)


Lesenswert?

nee, doch nicht...

von Hans (Gast)


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.

von Hans (Gast)


Lesenswert?

Hab mich etwas undeutlich ausgedrückst:
Mit high bzw. low meine ich +VCC (=5V) bzw. Ground.
Ohne Pull-up soll bedeuten, dass der Widerstand fehlt und der Pin
direkt an VCC hängt.

von philip (Gast)


Lesenswert?

wurde das proplem damals gelöst?

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.