mikrocontroller.net

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


Autor: philip (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht 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"

Autor: philip (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: philip (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wofür nen Oszi ???
Der Code ist Dein Oszi !!

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>  adresse=0x4369;

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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: philip (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: philip (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: philip (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.