SPI EEPROM M95160: read/write probleme, erhalte immer FFh!

Gast #1162199
Lesenswert?

hallo zusammen,
ich versuche gerade ein m95160 eeprom anzusteuern.
ich glaube, das funktioniert auch teilweise!
ich kann einen wert auslesen, aber immer nur FFh, und nicht den 
hineingeschriebenen!! weiss nicht genau was das problem ist, vielleicht 
kann mir jemand helfen der schon mal ein M95xxx angesteuert hat..
habe den einten oder anderen beitrag dazu gefunden, jedoch keine antwort 
wie das problem gelöst wurde!:(

nun ja, im anhang sind mal meine funktionen die ich geschrieben habe und 
das datenblatt des eeproms.

das eeprom wird mit einem pic18f2550 angesteuert.

vielen dank für schnelle antworten und hilfe!!

lg philip
Angehängte Dateien:
Gast #1162239
Lesenswert?

nun, danke schon mal für den tip!
habe leider kein oscilloskop zur verfügung, jedenfalls im moment 
nicht...
konnte die daten noch nicht genau überprüfen.
aber meiner meinung nach sollte die spi-übertragung vom pic her gut 
funktionieren...
ich übertrage über die gleich spi-schnittstelle auch daten zu einem 
lcd(dog163) und das funktioniert. Fürs lcd habe ich die daten auch schon 
mal mit dem osci kontrolliert, und die waren ok.
aber damals war das eeprom noch nicht initialisiert, und jetzt hab ich 
das osci nicht mehr.. müsste es wieder organisieren...
was müsste ich überhaupt anders machen??
steht das in deinem beitrag? (habs leider nicht so mitm english :S, bin 
auch noch azubi xD )
und sonst trotzdem schon mal vielen dank!! :D
ich versuch mal was interessantes aus deinem beitrag zu verstehen..

danke, lg philip
Gast #1162365
Lesenswert?

>  eeprom_write(adresse,wert_out);
>  wert=eeprom_read(adresse);

Und nochwas: Du wartest in eeprom_write() nicht bis das
Byte geschrieben wurde und liest es gleich zurück.
Füge da mal ein Delay von 10ms ein.
Gast #1174904
Lesenswert?

danke viel mals für die antworten!!

@holger:
ja danke, das hab ich bereits gemerkt.. peinlicher fehler!! :S
hat aber nichts genützt!

wegen dem warten nach dem schreiben, gibts da eine möglichkeit auf ein 
bit zu warten? glaube nicht...
ein delay hatte ich auch schon mal drin, hab deine überlegung auch schon 
gemacht! hatte da ein 100ms delay, hat aber auch nichts genützt..


@lothar:
den write-enable sende ich doch in der initialisierung im ersten teil, 
reicht das nicht? muss ich vor dem schreibbefehl auch noch einen 
senden??
ich denke dass man den nur einmal senden muss, ausser man sendet nen 
write-disable..?!

hab ich noch nie versucht, das mach ich gleich, wäre ein guter test um 
herauszufinden ob die read-funktion klappt, danke!

und danke für den tip, den nächsten werde ich mit .c hochladen! ;)


danke an alle, hoffe ich schaffe das noch..
hab heute den letzten tag an diesem projekt, dann wechsle ich die 
abteilung und ein anderer azubi wird daran gesetzt.
und ich wäre schon froh, wenn die hardware und alle grundfunktionen der 
software funktionieren!
vielen dank, lg philip
Gast #1174946
Lesenswert?

OK, hab jetzt den WREN vor dem schrieben auch noch getestet. und hab 
auch wieder ein delay, zwischen write/read, funktioniert nicht.. FFh!

auch read-status-register(RDSR) gibt FFh zurück.. :(

hab jetzt ein oscilloskop, kontrolliere mal ob die daten auch richtig 
ankommen..

hab jetzt noch das write-in-progress bit im statusregister gesehen, aber 
glaube nicht dass es sinvoll ist auf das bit zu warten, oder?
denn ich glaube ein delay von 10 ms sollte das problem lösen..

hatte auch noch fehler beim herumschieben der 2bytes in dem 16bit 
adresswert, hier die neuere version der funktionen..
(habe den write enable in der schreibfunktion wieder gelöscht)

lg philip
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #1174959
Lesenswert?

> auch read-status-register(RDSR) gibt FFh zurück.. :(
Du bekommst also gar nichts zurück. Da müssten mindestens 3 Bits 
(b6,b5,b4) auf 0 sein. Das EEPROM stellt sich tot, vermutlich sprichst 
du es nicht richtig an.

> hab jetzt ein oscilloskop, kontrolliere mal ob die daten auch richtig
> ankommen..
Gut, alles andere ist nur Raten...
Gast #1175119
Lesenswert?

ich glaub ich hab was interessantes gefunden..
der datenausgang Q(pin2) ist immer auf 5V. sonst alle signale i.o.
dann hab ich nach einem kurzschlussvon Q zu VCC gesucht! und dabei 200 
Ohm gemessen!! :S
ich denke der ausgang ist tot..
das ist gut möglich, denn an der gleichen spi schnittstelle ist auch ein 
lcd angeschlossen, und das hatte ich einmal falsch angeschlossen.
muss jetzt wohl das eeprom ersetzten...
lg philip

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