mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LC320 macht nichts!


Autor: Johnny Knot (johnny_knoxville)
Datum:
Angehängte Dateien:

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

Autor: Arne (Gast)
Datum:

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

Autor: Arne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
*Warum ist SO nicht angeschlossen?* Wenn das Datenblatt nichts 
Gegenteiliges behauptet, würde ich auch /HOLD über einen pull-up gegen 
High ziehen.

Autor: Johnny Knot (johnny_knoxville)
Datum:

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

Autor: Johnny Knot (johnny_knoxville)
Datum:

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

Autor: Arne (Gast)
Datum:

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

Autor: Johnny Knot (johnny_knoxville)
Datum:

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

Autor: Arne (Gast)
Datum:

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

Autor: Johnny Knot (johnny_knoxville)
Datum:

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

Autor: Johnny Knot (johnny_knoxville)
Datum:

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

Autor: Arne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, dann knall mal Screenshots vom Oszi/LA rein. Schau sie mir morgen 
früh mal an - jetzt erstmal feierabend :)

Autor: Johnny Knot (johnny_knoxville)
Datum:
Angehängte Dateien:

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

Autor: Arne (Gast)
Datum:

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

Autor: Johnny Knot (Gast)
Datum:

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

Autor: Arne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, die steigende Flanke ist diejenige, bei der die Daten übernommen 
werden. Sind ja keine DDR-EEPROMs ;)

Autor: Arne (Gast)
Datum:

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

Autor: Johnny Knot (johnny_knoxville)
Datum:

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

Autor: Johnny Knot (johnny_knoxville) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...Screenshots kommen FIX morgen gegen 13-14 Uhr!! Sorry!
Liebe Grüße

Autor: Johnny Knot (johnny_knoxville)
Datum:
Angehängte Dateien:

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

Autor: Johnny Knot (johnny_knoxville)
Datum:

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

Autor: Arne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein praktikant braucht unser 4ch. Oszi, daher konnte ich gestern nix 
machen. Woran lag es jetzt genau?

Autor: Johnny Knot (Gast)
Datum:

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

Autor: Arne (Gast)
Datum:

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

Autor: Johnny Knot (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na wunderbar, jeder ist jetzt glücklich, hehe

Liebe Grüße

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.