Forum: Mikrocontroller und Digitale Elektronik SPI EEPROM M95160: read/write probleme, erhalte immer FFh!


von philip (Gast)


Angehängte Dateien:

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

von Stephan H. (stephan-)


Lesenswert?

hatte ich mit nem Atmel Typ.
Achte auf CLK und Daten wenn CS low geht, das Schreiben beginnt mit der 
L/H Flanke von CS. Da müssen diese beiden Pins exakt den gleichen 
Zustand haben wie beim aktivieren des EEPROM.

Hier nochmal mein Bericht:
Beitrag "Problem beim Schreiben eines SPI EEPROM AT25080"

von philip (Gast)


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

von philip (Gast)


Angehängte Dateien:

Lesenswert?

hier noch das datenblatt im anhang..

könnte es in mainem code an der initialisierung scheitern?
habe ich da evtl. etwas mit dem "write enable" falsch verstanden??
oder etwas vergessen??

lg philip

von Stephan H. (stephan-)


Lesenswert?

wofür nen Oszi ???
Der Code ist Dein Oszi !!

von holger (Gast)


Lesenswert?

>  adresse=0x4369;

Dein Chip hat 16kBit. Also 2kByte.
Die höchste Adresse die du beschreiben kannst
ist 2047 oder 0x7FF.

von holger (Gast)


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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Solltest du nicht vor dem Schreiben auch mal das Write-Enable-Kommando 
(WREN) schicken? (Bild 7 / Seite 13 im DB)

EDIT:
Bekommst du irgendwas anderes als 0xFF zurück, z.B. wenn du das 
Status-Register oder die ID ausliest?

BTW:
Anhänge in C bitte mit Endung .c
Dann werden die hübsch formatiert.

von philip (Gast)


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

von philip (Gast)


Angehängte Dateien:

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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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...

von philip (Gast)


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

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
Noch kein Account? Hier anmelden.