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
Hi ich hab SPI noch nicht wirklich benutzt, aber muss die Abfrage sbis SPSR,SPIF nicht vor dem out SPDR, data ?? lg
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
Nein die Verdrahtung stimmt 100%ig. Hab ich schon mehrere Male kontrolliert.
muss PORTB nicht noch als ausgang definiert werden?? oder hast du das nur beim kopieren vergessen?
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
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?
Es funktioniert immer noch nicht :((( Langsam bin ich echt am verzweifeln ...
Hallo, gibt es schon eine Lösung für das Problem. Ich lese zwar immer FF, aber auch wenn ich vorher versucht habe was zu schreiben Gruß Werner
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.