Problem mit I2C-EEPROM

Hallo Leute,

ich bin am verzweifeln, denn ich sitze hier mit einem (mehrere, also=20 schlie=DFe ich einen Defekt aus) 24c256 EEPROM von Atmel. Das Datenblatt =

liegt vor. Dieses wird von einem =B5C angesteuert, aber schon beim ersten= =20 Byte, dem 'device adress word', kommt kein 'Ack' von EEPROM. In der=20 selben Schaltung funktioniert ein 24c32 von ST. Und in einer baugleichen =

Schaltung mit gleichem Programm funktionierte auch ein 24c64 von Microchi= p.

Die Datenbl=E4tter liegen vor.

Folgende Unterschiede sind mir aufgefallen:

Es gibt ein WP ('Write Protect') Pin. Es gibt nur 2-Bit Chip-Adressen

Da aber sowohl WP, als auch A2 interen Pull-Down-Widerst=E4nde haben=20 sollte dies nicht kritisch sein.

Das Timing sieht mir korrekt aus, ich habe aber sicherheitshalber schon=20 Abst=E4nde verg=F6=DFert und so.

Wei=DF jemand einen Rat, woran die Schweigsamkeit des Chips liegen k=F6nn= te?=20 Die Stromversorgung sieht gut aus, 5V und laut Oszi ohne St=F6rungen.

Das Timing sieht laut Oszi so aus:

Oben SDA Unten SCL Einheit 4=B5S (20=B5S je Div, 5V je Div auf dem Bild:=20

formatting link

---____----____----____________________-------------

----___-___-___-___-___-___-___-___-___-------------

St 1 2 3 4 5 6 7 8 Ack???

St. =3D Start Ack??? =3D Warten auf ein Ack

Ciao Dschen

--=20 Dschen Reinecke

=3D=3D=3D der mit dem Namen aus China =3D=3D=3D

formatting link
mailto: snipped-for-privacy@dschen.de

Reply to
Dschen Reinecke
Loading thread data ...

Dann fuehlt es sich nicht angesprochen. Das kann folgende Gruende haben:

- Falsche Adresse

- Zu schnell, das EEPROM kommt nicht mit.

Probier mal alle moeglichen Adressen durch. Nur weil im Datenblatt was von Pulldowns an den Adressleitungen steht sind die im Chip nicht unbedingt vorhanden, Fehler kommen vor.

Hat Atmel u.U. die Basisadresse beim 24C256 gegenueber den

24C32 und 24C64 geaendert? Datenblatt?

Ziemlich fix... Ich erinnere mich noch an Experimente mit einem 24C02 wo SCL 100KHz (Tastverhaeltnis 1:1!) nicht ueberschreiten durfte, sonst kam das EEPROM nicht mit. Was sagt das Datenblat zum 24C256? Was fuer Pullups hast du fuer SCL und SDA vorgesehen?

Gerrit

Reply to
Gerrit Heitsch

Hallo gerrit,

schon mal Danke f=FCr Deine Hilfe, aber sie hat noch nichts gebracht :-(

Laut Datenblatt soll es 1MHz k=F6nnen. Die kleineren aber nur je 400KHz, =

daf=FCr ist das Timing ausgelegt. Ich hatte schon mit verdoppelten Zeiten= =20 getestet.

Ich habe die beiden Adress-Leitungen aber auch auf GND gelegt. :-(

Aber ich teste es gerade explizit mit allen Adressen. Aber selbst mit=20 auf 1 gesetztem a3 (was es ja nicht gibt) klappt es nicht. :-(

Nein, weiterhin 1 0 1 0 a3 a2 a1 r/w

wobei a3 es nicht gibt und es stattdessen mit einer 0 belegt wird.

Datenbl=E4tter habe ich jetzt auch hochgeladen:

formatting link
formatting link
formatting link

Der ist ja nun auch schon ein Bi=DFchen =E4lter...

Das Tastverh=E4ltnis ist nicht angegeben, die maximale Freqenz ist=20

1000kHz, bei eine Lo und Hi Zeit von je min. 0,4=B5S, da komme ich noch=20 lange nicht ran.

Je 8k2, in den Leitungen habe ich allerdings noch je einen 1k eingef=FCgt= ,=20 allerdings habe ich diesen schon testweise =FCberbr=FCckt. Der Sinn dahin= ter=20 ist, da=DF ich sp=E4ter die Datenleitungen auf ein Erweiterungs-Steckplat= z=20 f=FChren will und den Kurzschlu=DF-Strom begrenzen will, wenn ein User do= rt=20 einen baut. Das sieht dann so aus:

Vcc | 8k2 | =B5C -----+----1k----- EEPROM

Ciao Dschen

--=20 Dschen Reinecke

=3D=3D=3D der mit dem Namen aus China =3D=3D=3D

formatting link
mailto: snipped-for-privacy@dschen.de

Reply to
Dschen Reinecke

Mag sein, aber das war das letzte Mal das ich mit dem Kram gespielt habe. Ein 24C02 am Userport meines Plus/4 und die Software in 6502-Assembler.

Ich hab mir das Oszi-Bild nochmal angesehen. Meiner Meinung solltest du nach dem Anlegen des neuen Bits ueber SDA etwas laenger warten bevor du SCL aktiv schaltest, das Oszi zeigt da fast keine Verzoegerung und wenn das EEPROM da etwas empfindlich ist, dann liest es falsch und erkennt seine eigene Adresse natuerlich nicht.

Auch sieht das Ende der Uebertragung komisch aus. Ich vermisse den 9. Zyklus auf SCL. Ausserdem schaltest du SCL und SDA sehr nahe zusammen inaktiv. Das koennte das EEPROM, wenn du Pech hast, als STOP interpretieren. Also zuerst SDA auf HIGH und dann erst SCL HIGH. Das Bild auf den Oszi sieht fast umgekehrt aus (und das ist eine STOP-Condition).

Ist das nicht etwas wenig? Ich erinnere mich dunkel an 10KOhm minimal...

Gerrit

Reply to
Gerrit Heitsch

Gerrit Heitsch schrieb:

AFAIR übernimmt bei I2C die Peripherie doch die Daten bei steigender Flanke von SCL und liefert sie mit fallender Flanke.

Gruß Dieter

Reply to
Dieter Wiedmann

"Dschen Reinecke" schrieb:

[...]

Da du SDA/SCL direkt am 24C gemessen hast, kannst du den uC also als Fehlerquelle sicher ausschließen, richtig? Ich frage nur, weil Microchip bei fast allen aktuellen PIC16/18 das MSSP-Modul vergeigt hat, was zu Problemen mit I2C und SPI führen kann. Es gibt dazu bei Microchip eine "Silicon Errata".

MfG Bernd

Reply to
Bernd Maier

Hatte ich schon pobiert und habe ich jetzt auch wieder eingebaut, klappt =

aber nicht. :-(

Sie steigende Flanke ist der Beginn, ich wollte es abschalten (auf Low=20 legen), wenn ich das Ack habe, aber dieses kommt ja nicht.

Auf

formatting link
(Abschnitt=20 'Waiting for ACKNOWLEDGE') steht, da=DF ich die SDA freigeben soll,=20 solange SCL noch Low ist, das EEPROM schaltet dann das Ack auf die SDA=20 und ich kann den SCL-Impuls generieren. Allerdings klappt auch dieses=20 nicht. Ich warte ewig auf eine =C4nderung auf der SDA, nachdem ich sie=20 freigegeben habe.

also so etwa:

Daten 1 0 Warten auf Ack

SDA ----____------------------

SCL _--__--___________________

Habe ich korrigiert, bringt aber auch nichts.

Die habe ich auf dem =B5C-Eval-Board :-(

Ciao Dschen

--=20 Dschen Reinecke

=3D=3D=3D der mit dem Namen aus China =3D=3D=3D

formatting link
mailto: snipped-for-privacy@dschen.de

Reply to
Dschen Reinecke

Der =B5C (einer von Fujitsu) spricht ein ST 24c32 wunderbar an. Die Pegel= =20 sind direkt am 24cxx aufgenommen.

=2E Es

Da ich keinen Microchip-=B5C nutze, d=FCrfte es egal sein, zumal es mit=20 einem anderen 24cxx klappt.

also es geht mit einem 24c32 von ST mit verschiedenen 24c256 von Atmel geht es nicht.

Hast Du weitere Ideen?

Ciao Dschen

--=20 Dschen Reinecke

=3D=3D=3D der mit dem Namen aus China =3D=3D=3D

formatting link
mailto: snipped-for-privacy@dschen.de

Reply to
Dschen Reinecke

Mir gefällt am obigen bild nicht daß die steigende Taktflanke genau auf der Steigenden Datenflanke liegt.

Wenn das wirklich so ist kann ein kleinliches Rom das als start/stop erkennen. Aber ich glaub das hattest du schon geändert. Oder hast du vieleicht die Typen mit der geänderten Addresse?

Falls du einen funktionierenden Quellcode für den PC-Printerport unter Dos brauchst schick ne Mail.

--
MFG Gernot
Reply to
Gernot Fink

Ja habe ich. Brachte aber nichts. :-(

Da will ich mehr dr=FCcber wissen. Was f=FCr eine Adresse denn? nicht meh= r

1 0 1 0 0 a1 a0 r/w

Auf meinen Chips steht folgendes:

ATMEL334

24C256 =2EPI127 B

Ich glaube ich teste mal ob der Chip auf irgendwas antwortet...

Bisher nicht. Mein Quellcode tut's ja, aber nur mit dem 24c256 von atmel =

nicht. Der 24c32 von St tut's und ein Microchip 24C65 tat's auch, selbst =

mit dem Timing auf dem Bild.

Unter=20

formatting link
bzw. snipped-for-privacy@ezy.net.au habe ich eine Beschreibung eines =E4hnliche= n=20 Problems gefunden, aber keine Der L=F6sungen scheint auf mein Problem zu =

passen.

Ciao Dschen

--=20 Dschen Reinecke

=3D=3D=3D der mit dem Namen aus China =3D=3D=3D

formatting link
mailto: snipped-for-privacy@dschen.de

Reply to
Dschen Reinecke

Hallo Leute,

danke f=FCr Eure Hilfe.

Bei meinem ersten Baord klappt es immer noch nicht, aber bei zwei=20 Baugleichen klappt alles.

Ciao Dschen

--=20 Dschen Reinecke

=3D=3D=3D der mit dem Namen aus China =3D=3D=3D

formatting link
mailto: snipped-for-privacy@dschen.de

Reply to
Dschen Reinecke

Dschen Reinecke schrieb:

Hallo!

Hab zwar auch keine Lösung aber ich hatte mal ein ähnliches Problem.

24C16 und 24C32 gingen und der 24C65 ging nicht. Waren glaube ich alles NoName Teile. Habs nicht weiter verfolgt da der 24C32 ausgereicht hat.

Gruß Jürgen

--
Advertisement to this mail address is prohibited!
Mailadress: juergen AT ek-p DOT de
Reply to
Juergen Klein

Auch dieses R=E4tzel ist gel=F6=DFt: ich hatte Vcc bis zum Chip herangef=FC= hrt,=20 dort auch testweise gemessen, aber die L=F6tbr=FCcke zum Chip fehlte. Der= =20 kleine Chip hat wohl =FCber die Schutzdioden von =FCber die Datenleitunge= n=20 den Strom bezogen, der gro=DFe nicht...

Danke trotzdem f=FCr Eure Hilfe.

Ciao Dschen

--=20 Dschen Reinecke

=3D=3D=3D der mit dem Namen aus China =3D=3D=3D

formatting link
mailto: snipped-for-privacy@dschen.de

Reply to
Dschen Reinecke

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.