mikrocontroller.net

Forum: Compiler & IDEs SPI und EEPROM


Autor: Hans (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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/...

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

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nee, doch nicht...

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: philip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wurde das proplem damals gelöst?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.