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


von Wulf K. (cyberwulf)


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.

von Wulf K. (cyberwulf)


Angehängte Dateien:

Lesenswert?

Vielleicht klappt's jetzt mit dem Bild

von Wulf K. (cyberwulf)


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?

von Wulf K. (cyberwulf)


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.

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.