Hallo Leute. Ich steuere gerade das LC320 EEPROM von Microchip an, jedoch macht das Ding nichts... Beschalten ist es laut Anhang. Rausschreiben tu ich zuerst die Write Enable Sequence (Siehe Datanblatt Seite 9), danach die Daten mit Byte Write Sequence mit dem Bytewerten 2 - Adresse HB - Adresse LB - Daten. Danach möchte ich sie auslesen und schreibe die Read Sequence raus mit den Bytewerten 3 - Adresse HB - Adresse LB - 8 Bit Don't Care. Versorgungs mit +5V Aber rauskommen tut da nichts... Hmm... C-Code poste ich auf Anfrage...
Zwischen WREN und WRITE muss das /CS kurz high und dann wieder low sein (lt. Datenblatt IIRC mind. 100ns). Hast Du das drin? Kommandos werden nämlich mit der steigenden Flanke von /CS übernommen und vom EEPROM ausgewertet.
*Warum ist SO nicht angeschlossen?* Wenn das Datenblatt nichts Gegenteiliges behauptet, würde ich auch /HOLD über einen pull-up gegen High ziehen.
Arne schrieb: > Zwischen WREN und WRITE muss das /CS kurz high und dann wieder low sein > (lt. Datenblatt IIRC mind. 100ns). > Hast Du das drin? Kommandos werden nämlich mit der steigenden Flanke von > /CS übernommen und vom EEPROM ausgewertet. Hab ich auf jeden Fall drinn, weil ich das über die Software steuere und dabei sogar 3000ms vergehen (dient jetzt zu Testzwecken), danach kann es ruhig auch viel mehr als 100ns dauern. hmm...
Arne schrieb: > *Warum ist SO nicht angeschlossen?* Wenn das Datenblatt nichts > Gegenteiliges behauptet, würde ich auch /HOLD über einen pull-up gegen > High ziehen. SO ist zur Auswertung auf einem Logikanalysator angeschlossen, sorry für den nicht vollkommenen Plan. Ja, Hold auf high zu ziehen war von mir auch schon eine Idee, auch WP könnte ich mal probieren, aber WP sollte laut Datenblatt zur Programmierung egal sein, solange man nicht das Statusregister einstellen möchte.
Mein Aufbau mit dem 25LC640 sieht so aus: - /CS an Portpin - MISO an µC SPI (10k PullUp) - /WP mit 1k gegen High - /HOLD mit 1k gegen High - SCK an SPI (kein PullUp / PullDown) - MOSI an SPI (kein PullUp / PullDown) Und damit funktioniert es. Taktest Du das EEPROM zu schnell?
Arne schrieb: > Mein Aufbau mit dem 25LC640 sieht so aus: > - /CS an Portpin > - MISO an µC SPI (10k PullUp) > - /WP mit 1k gegen High > - /HOLD mit 1k gegen High > - SCK an SPI (kein PullUp / PullDown) > - MOSI an SPI (kein PullUp / PullDown) > > Und damit funktioniert es. > > Taktest Du das EEPROM zu schnell? Nein, zu schnell bin ich nicht, habe ich ausgemessen, mach mir eher Sorgen, ob das Timing passt, soll ich es mal posten?
Ich hab mit einem Atmel EEPROM (25020 = 256Byte) die Entwicklung begonnen. Nachdem die HW-Entwicklung nun sich auf einen 25LC320/640 festgelegt hat, habe ich den 25020 runtergelötet und den 25LC640 draufgelötet. Hab die zu übertragende Adresse von 8bit auf 16bit angepasst und es lief auf Anhieb mit dem 25020 Code. So gesehen weiß ich nicht, wie das Timing beim LC320/640 aussehen sollte. Aber das Datenblatt weiß es doch genau?
Arne schrieb: > Ich hab mit einem Atmel EEPROM (25020 = 256Byte) die Entwicklung > begonnen. Nachdem die HW-Entwicklung nun sich auf einen 25LC320/640 > festgelegt hat, habe ich den 25020 runtergelötet und den 25LC640 > draufgelötet. Hab die zu übertragende Adresse von 8bit auf 16bit > angepasst und es lief auf Anhieb mit dem 25020 Code. So gesehen weiß ich > nicht, wie das Timing beim LC320/640 aussehen sollte. Aber das > Datenblatt weiß es doch genau? Ja da hast du Recht, aber da ich nicht sooo viel Erfahrung mit SPI habe, würde ein Rückhalt schon eine kleine Bestätigung bringen... Eine Frage... Beim Timing des 640... Wenn du /Hold auf high setzt, dann hat er ja ein low und die Bits sind ja dann Don't Care, oder etwa nicht? ...hm..
> Eine Frage... > Beim Timing des 640... > Wenn du /Hold auf high setzt, dann hat er ja ein low und die Bits sind > ja dann Don't Care, oder etwa nicht? ...hm.. PS:Timing ist gleich wie beim 640
Ja, dann knall mal Screenshots vom Oszi/LA rein. Schau sie mir morgen früh mal an - jetzt erstmal feierabend :)
Arne schrieb: > Ja, dann knall mal Screenshots vom Oszi/LA rein. Schau sie mir morgen > früh mal an - jetzt erstmal feierabend :) Okay, danke... Hab das mal hier reingeknallt jetzt, wie das Timing vom µC gesendet wird, und beim LC ankommt... Nach dem letzten Takt wird, nachdem CS auf high hüpft, noch ein Takt von mir generiert (steht, so meine ich, so im Datenblatt drinn...siehe Seite 4 "Serial Input Timing"... Danke :-)
Johnny Knot schrieb: > Nach dem letzten Takt wird, nachdem CS auf high hüpft, noch ein Takt von > mir generiert (steht, so meine ich, so im Datenblatt drinn...siehe Seite > 4 "Serial Input Timing"... Ich bin mir recht sicher, daß ich das nicht mache, da ich die SCK Generierung der HW-SPI überlasse. Du ziehst das /CS zwar vor dem 9ten Clock (steigende Flanke) wieder gegen High, aber es irritiert mich trotzdem... Falls das nicht exakt so passiert und die interne state-machine den 9ten Clock noch zum Abtasten nutzen würde, würde im Schieberegister des EEPROMs wohl statt z.B. 0x06 dann (0x06 << 1) = 0xC0 stehen. Abgesehen davon: Fig 2.4 (Timing WREN) hat kein 9tes Clocksignal. Sonst weiß ich auch nicht, woran es noch liegen könnte :-/
Okay, danke! :-) Die Flanke werde ich ausprogrammieren, ansonsten passt das Timing? Ich hoffe, hehe. Von Bedeutung ist ja beim Clock ja nur die steigende, nicht aber die fallende Flanke, oder lieg ich da falsch? Liebe Grüße
Ja, die steigende Flanke ist diejenige, bei der die Daten übernommen werden. Sind ja keine DDR-EEPROMs ;)
Hab mir in der Mittagspause nochmal die Screenshots angeschaut. Bei READ/WRITE kann man nicht erkennen, ob die Bitmuster korrekt sind. WREN sieht gut aus. Vergrößere READ/WRITE doch mal auch auf 20µs Raster und schau Dir die SI Pegel bei den steigenden Clockflanken an und lass mal das letzte Clockbit weg. Pack doch mal 10k gegen High an SDO des EEPROMs. So habe ich das hier ohne groß nachzudenken bei meinem Aufbau auch gemacht.
Arne schrieb: > Hab mir in der Mittagspause nochmal die Screenshots angeschaut. Bei > READ/WRITE kann man nicht erkennen, ob die Bitmuster korrekt sind. WREN > sieht gut aus. > Vergrößere READ/WRITE doch mal auch auf 20µs Raster und schau Dir die SI > Pegel bei den steigenden Clockflanken an und lass mal das letzte > Clockbit weg. > Pack doch mal 10k gegen High an SDO des EEPROMs. So habe ich das hier > ohne groß nachzudenken bei meinem Aufbau auch gemacht. Cool, danke. Also, zzt. ist es mir nicht möglich, dass ich das Timing poste, da ich jetzt nicht zum Gerät komme. Aber meiner Meinung nach müsste Read und Write passen, werde aber die Timings MORGEN oder allerspätestens übermorgen posten. Heute kann ich leider nicht. Das letzte Clockbit ist schon Geschichte... Nen 10k Pull-Up hab ich jetz gerade früher an den SDO des E²PROMS gepackt! Liebe Grüße
Johnny Knot (johnny_knoxville) schrieb: > ...Screenshots kommen FIX morgen gegen 13-14 Uhr!! Sorry! > Liebe Grüße Ist doch 14.05 Uhr geworden, hehe Timings sind jetzt so gezoomt, dass man jedes Byte einzeln erkennen kann... Schreib den Wert 6dez raus...
Johnny Knot schrieb: > Johnny Knot (johnny_knoxville) schrieb: >> ...Screenshots kommen FIX morgen gegen 13-14 Uhr!! Sorry! >> Liebe Grüße > > Ist doch 14.05 Uhr geworden, hehe > > Timings sind jetzt so gezoomt, dass man jedes Byte einzeln erkennen > kann... > > Schreib den Wert 6dez raus... Achja...dann wars wohl vllt doch der SO... Jetzt macht er jedenfalls was ich möchte :-) Danke! Für Fragen bezüglich des LC320 stehe ich jetzt zur Verfügung xD
Mein praktikant braucht unser 4ch. Oszi, daher konnte ich gestern nix machen. Woran lag es jetzt genau?
Hallo! wenn ich mich nicht täusche, dann wars der Pull-Up auf SO! Undefinierte Pegel mag der Baustein anscheinend nicht... :-)....obwohls natürlich auch das letzte Bit sein könnte, da ich die beiden Dinge aufeinmal ausgebessert habe, und so nicht genau sagen kann, was schuld ist :-) lg
Sowas in der Art hatte ich gestern auch: 7406 (inverter) hat Ausgangssignal nicht gegen High gezogen. 12k PullUp dran und es lief. Ich dachte, der hätte genug "Bums". Aber gut, dass es bei Dir jetzt auch läuft :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.