SPI-Problem ATmega8 (Assembler)

Gast #937718
Hallo zusammen,

Ich habe ein Problem beim ansteuern eines EEPROMS über SPI.
Beim EEPROM handelt sich um den Typ M95640.
Und zwar müsste das Programm folgendes machen:
1. SPI initialisieren, als Master, Modus 0.
2. 00000011 senden, READ-Befehl
3. 00000000 senden, Adresse High-Byte
4. 00000000 senden, Adresse Low-Byte
5. Daten enpfangen (dafür Dummybyte (0x00) senden)
6. Empfangene Daten an Port D ausgeben
7. fertig

Wenn ich jetzt das Programm auf dem uc laufen lasse, erscheint immer 
der Wert 7F am Port D. Der EEPROM sollte jedoch auf allen Speicherzellen 
FF haben, da er neu ist.
Ich habe schon zwei verschiedene EEPROMS ausprobiert, auf beiden ist 
dasselbe Problem, Ich habe auch schon die Verbindungen kontrolliert, 
aber es ist alles in Ordnung, also muss der Fehler wohl am Programm 
liegen.
Und im Forum habe ich auch schon gesucht, habe aber nichts gefunden.

Ich hoffe, ihr könnt mir bei dem Problem helfen.

Gruss  Mäxchen
Angehängte Dateien:
Gast
Nö, sbis kontrolliert, ob die übertragung vollständig ist.
Ist sie nicht vollständig, wird   rjmp   Wait_Transmit    ausgeführt, 
sonst überspringt sie das Programm, lädt die epmfangenen Daten in das 
register data, und kehr vom unterprogramm zurück.

P.S.: Die SPI_MasterTransmit und SPI_MasterInit wurden grösstenteils vom 
Datenblatt des mega8 entnommen.

Gruss mäxchen
stimmt hab ma eben das datenblatt angeschaut.


aber was mir aufgefallen ist, sind data direction, CPOL und CPHA 
richtig?

EDIT: hab mir mal das datenblatt des eeprom angeguckt, sollte mit den 
standard einstellung vom atmega8 funktionieren. der fehler muss also 
woanders liegen.

vielleicht in der Verdrahtung??

lg
Hallo,

Schaltung scheint ja super geheim zu sein...
Ich vermisse die Behandlung von /CS.
Das muß beim PowerOn H sein und dann auf L gelegt werden.

Wie sind /WP und vor allem /HOLD bei Dir beschaltet?

Gruß aus Berlin
Michael
Gast
Die Schaltung ist überhaupt nicht geheim, einfach den EEPROM über das 
SPI angeschlossen.
1
Ich vermisse die Behandlung von /CS.
2
Das muss beim PowerOn H sein und dann auf L gelegt werden.

Wirklich? bei meinem Programm ist dieser beim Einschalten ständig auf 
Masse. Das werd ich mal ändern.
1
Wie sind /WP und vor allem /HOLD bei Dir beschaltet?

Die sind auf high-Pegel, also  nicht aktiv.

Also ich ändere mal das mit dem CS-Pin und gib dann mal einen Bericht 
obs lauft oder nicht :)

Gruss Mäxchen

P.S. Wie macht man hier eigentlich Zitate?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.