mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit 93C66A Microwire EEPROM - Es antwortet nur mit dem Dummy bit


Autor: Wulf K. (cyberwulf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe ein (für mich) merkwürdiges Phänomen beim Ansteuern des 4K 
Microwire EEPROMs 93C66A.

Problem: Beim Lesen jedweder Adresse (0x0000 bis 0x01FF) kommt nur das 
Dummy Bit vom EEPROM zurück, der Rest ist high Pegel (also 0xFF) - trotz 
eingeschriebener Test-Daten.
Ich habe das Datenblatt gelesen und mich an den Timing Diagrammen 
orientiert. Außerdem kann ich das EEPROM in einem Programmer Lesen und 
Beschreiben. Den Output Pin überwache ich mit dem Oszilloskop gemeinsam 
mit der Clock.

Ich nutze ChipSelect (CS), Clock (SC) und DataIn(SD)/Out(SQ) in Software 
und verwende den 8bit Modus (ORG Pin=0).

Die standard Pegel (zwischen allen Routinen) sind bei mir: CS=0, SC=0, 
SD/SQ=1 (IN/OUT sollen später über ein Leitung).

An die Timings für stabile Pegel habe ich mich auch gehalten. Die 
Wartezeiten führe ich hier mal nicht auf.

Zum Auslesen verwende ich das folgende Schema lt. Datenblatt:
CS=1 //start, Data ist bereits high, clock ist low
[schleife über 12 bit: 1start+2opcode+9adr]
SD=bit nummer x //wert setzen. beginnend mit dem start bit
SC=1 // clock generieren
SC=0
[schleifen ende]
[schleife über 8 clock zyklen]
SC=1 // clock generieren
result=SQ //lesen (und ignorieren)
SC=0
[schleifen ende]
SD=1 // standard pegel
CS=0 // ende

Auf dem Oszi kann ich die Clock gut erkennen und auch die hingesendeten 
12 Datenbits. Genau beim schreiben des letzen Adressbits (LSB) antwortet 
das EEPROM erwartungsgemäß mit der Dummy "0". Danach geht der Pegel 
wieder hoch und bleibt dort während der letzen 8 Clock Phasen in denen 
eigentlich der Speicherzellen Inhalt übermittelt werden sollte.

Das sieht ungefähr so aus:

SC 01010101010101010101010101010101010 clock
SD 1 1 0 0 0 0 0 0 0 0 0 0 X X X X X X data in
SQ 11111111111111111111111001111111111 data out
   ^start bit            ^letztes adress bit
     ^opcode 2bit         ^dummy "0" zurück
         ^MSB adresse 9bit  ^hier sollte die antwort kommen

Da ich in alle Speicherzellen überprüfbar (Programmer) die Werte 0xAA 
geschrieben habe, kann bei ordnungsgemäßer Funktion doch eigentlich nur 
ein Adressierungsproblem vorliegen?!
Ich rufe meine READ routine ja schon in einer Schleife von 0 bis 1FF auf 
und beobachte das Resultat auf dem Oszi.
Unabhängig davon auf welcher Flanke die Bits vom Chip kommen (im DB 
steht steigend) sehe ich den Pegel ja unverändert bei log. 1.

Anbei noch ein 'Bild' vom Versuch den Speicherwert an der Stelle 10 
(0x000A) auszulesen.

Für Hinweise wäre ich wirklich dankbar.

Autor: Wulf K. (cyberwulf)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht klappt's jetzt mit dem Bild

Autor: Wulf K. (cyberwulf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es kann doch nicht so schwer sein, dieses eeprom auszulesen!

Ich habe gründlich und lange gesucht.

In allen Datenblättern und App Notes findet sich immer dasselbe:
sende startbit "1"
sende 2bit opcode "1 0"
sende 9bit adresse z.B. "0 0 0 0 0 0 0 0 0"
Beim letzten adr bit antwortet das eeprom schon mit einer dummy "0", 
gefolgt von den 8 angeforderten Datenbits.
(Ein- und Ausgabe je auf steigender Flanke von clock)

Mein Problem:
Die Daten sind jedoch immer ein konstanter High Pegel und somit 0xFF.

Ich habe die IOPins ChipSelect, DIN, DOUT sowie Clock 1 zu 1 mit einem 
8051er verbunden. An fehlenden Pullups kann's eigentlich nicht liegen, 
da die Pegel messbar HIGH sind und auch auf LOW gezogen werden.

Kann mir keiner mal einen Denk Anstoss geben, was ich falsch gemacht 
haben könnte?

P.S. wie kann man seine Postings hier eigentlich löschen?

Autor: Wulf K. (cyberwulf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, erledigt.
Kalte Lötstelle am Versorgungspin des EEPROMs.
Erstaunlich, dass es noch mit dem ersten Bit antworten konnte.
Jetzt klappt alles wunderbar.

Nächstes Mal schreibe ich einfach nicht so viel

"EEPROM ansteuern nix geht. Hilfe !!! fertige code sucht"

Naja, nix für ungut.

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.