SPI-Problem ATmega8 (Assembler)

Gast #937718
Lesenswert?

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 #937728
Lesenswert?

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
#937733
Lesenswert?

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
Gast #937786
Lesenswert?

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

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