EEprom über LPC ansteuern

#388983
Lesenswert?

Einen schlnen guten Tag.
Ich versuche gerade einen SST49lf040 über lpc auszulesen und das
ausgelesene über den usb zu serielen zum pc zu senden.
Ich habe alle pin anschlüsse schon 3mal kontrolliert, also kann hier
nicht der Fehler liegen.
im angehängten archiv, ist die vhdl datei + datenblatt des eproms.
so nun zum Problem.
Ich habe den code geschrieben, und mit modelsim simuliert. meiner
meinung stimmt er mit dem datenblatt über ein.
desweiteren habe ich das signal error eingefügt, welches kommen soll,
wenn der eprom den 4bit lpc bus nicht über nimmt.
sprich er ist bidirektional. aber genau hier ligt der fehler.
der eprom übernimmt den bus einfach nicht. und das error signal kommt.

meine pinbelegung des eproms.
=============================
gegen plus: 32,25(beide VDD)
            7,8 für den ausgeschalteten schreibschutz
gegen gnd: 16,28(beide VSS)
            3,4,5,6,30 (GPI pins) nach meinen durchlesen egal was da
            anligt, hauptsache definiert
           29 mode pin. ob lpc oder parrallel, bei gnd lpc
13,14,15,17 der datenbus
2,24 resetpins, habe ich beide zusammengeklemmt.
31 lclk
23 lframe

also die pins zum fpga sind meiner meinung alle richtig.
und die anderen meiner meinung auch.

nun habe ich auf dem board auch noch 7 segment anzeige drauf, und habe
mir so den datenbus rausgeführt, um das zu überprüfen(clk natürlich
langsammer) aber er bleibt immer bei der abfrage ob der bus auf '0'
gezogen ist hängen, weil der eprom ihn nicht übernimmt.
könnte sich das mal einer anschauen.
ich weiß grad nicht mehr weiter.
hoffe ich habe das prblem ausgibig geschildert und eingegrenzt.
schon im vorraus danke.
mfg
MockUp
Angehängte Dateien:
#388986
Lesenswert?

Habe den code jetzt nochmal umgeschrieben und mit text am rand zur
besseren verständlichkeit geschrieben. habe auch das testbench file,
und  ein bild was modelsim daraus macht erstellt. auf seite 12 im
datenblatt, welches ich im ersten post hochgeladen habe ist beschrieben
wie es aussehen soll.
meiner meinung ist das so vollkommen in ordnung.
aber es geht immer noch nicht.
könnte sich das nicht mal jemand angucken.
ich weiß echt nicht mehr weiter.
der code ist nun auch voll übersichtlich, fals es daran lag.
er bleibt immer bei der übernahme des busses(eprom_lad) hängen.
anscheinend übernimmt ihn der eprom nicht.
du usb-seriel verbindung läuft. habe ich schon getestet.
schon mal danke.
mfg
MockUp
Angehängte Dateien:
Gast #388988
Lesenswert?

Ich kann erstmal nix offensichtliches im VHDL finden, also keine leichte
Aufgabe. Und Datenblatt lesen braucht auch seine Zeit, vielleicht in den
nächsten Tagen.

PS: meint LPC das low pin count interface von intel?
Gast #388989
Lesenswert?

Hm womit synthetisierst Du den Code? Mit XST aus dem Xilinx Webpack?
Dann stelle bitte mal das *.syr file hier ein.

Es könnte ein Synthesefehler sein. Gerade bei Code der wie in
C-geschrieben würde, schlägt die Synthese Purzelbäume -> das design
wird unnötig gross und langsam und einige Codeteile werden garnicht
übersetzt. Dem XST ist das nur eine Warning wert :-( .

Aber keine Panik, nichts ist sicher. Lass mal einen Experten da
reinschauen.
Und überlege mal wie man das mit einem counter schreiben kann. Das

a <= a + 1; in fast jedem Case zweig ist gräulich (macht man das so in
C) da hat die synthese sicherlich ein problem. Verwende anstatttdessen
einen counter-beschreibung in einem extra Prozess.
#388990
Lesenswert?

Hy wenigstens einer der es versucht. danke.
also ich benutze das xilinx webpack 8.1.
ab der lpc bus von intel ist weiß ich nicht.
der steht halt im datenblatt drinnen.

also ich habe grad neu synthetisiert und das syr file hängt mit dran.
ich wüste jetzt garnicht wie ich das anders beschreiben sollte.
also du meinst einen counter extra, der den sowas wie ein enable signal
hat zum zählen.
na ich werde mal was versuchen.
wenn ich das aber ohne die abfrage ob der eprom den bus übernommen hat
mache und mit so 1hz laufen lasse, macht er aber die durchgänge die ich
haben will? hm
ich werd sie mal mit einen zähler beschreiben.
schon mal danke
Angehängte Dateien:
Gast #388992
Lesenswert?

#mal eine frage, sollte ich die fsm so wie hier aufbauen?
#http://esd.cs.ucr.edu/labs/tutorial/fsm.vhd

Hm, einen getakteten process für die Zustands -FF und einen
kombinatorsichen prozess für die beiden kombinatorsuchen netzwerke der
Ausganglogig und zustandsübergänge.

Das prinzip ist IO aber der Code ist unnötig vollgestopf (elsif wo else
reicht (?!)).

Diesen Code kann ich später kommentieren ich halte mich erstmal an den
EEPROM Ansteuercode.
Gast #388993
Lesenswert?

Hm sind im FPGA immer '1' oder '0':

INFO:Xst:1304 - Contents of register <eprom_rst> in unit <main> never
changes during circuit operation. The register is replaced by logic.
INFO:Xst:1304 - Contents of register <usb_RD_n> in unit <main> never
changes during circuit operation. The register is replaced by logic.
INFO:Xst:1304 - Contents of register <usb_SIWU> in unit <main> never
changes during circuit operation. The register is replaced by logic.

Ist das OK für den EEPROM das der Reset sich nie ändert?

Weiteres frühestens heute abend.
Gast #388996
Lesenswert?

So, ich habe das main.vhd aus dem rar archive genohmen und "den counter
in extra process geschoben". Jetzt siehts nicht mehr nach C aus und die
Synthese könnte es einfacher haben.

Das wars aber für die Arbeitwoche, vor dem Wochenende kann ich nicht
tiefer in das problem steigen.
Angehängte Dateien:
Gast #388997
Lesenswert?

Hy schon einmal danke.
ich denke, da gibt es ein problem.
eigentlich wollte ich den process erst starten,
wenn die flanke eines tasters erkannt wurde.
habe den ganzen code noch ein bissle verändert
und die eigentliche fsm auch getacktet.
Ich war dann noch auf der intel seite und habe mir
das datenblatt zu dem lpc bus durchgelesen und noch
einige sachen verändert und überprüft.
zb habe ich bei der busübernahme noch die warte signale
mit rein genommen. ich kann auch schon daten auslesen!!!
das problem ist nur, das es mal nur 49 sind und dann error
kommt und mal 270, jenachdem welche adresse ich nehme.
das habe ich noch nicht ganz verstanden.
da werde ich noch weiter herrum experementieren.
aber trotzdem schon einmal danke.
das mit dem extra process indem der zähler der fsm ist,
werde ich in meinen nähsten projekten berücksichtigen.
im anhang der momentane stand.
mfg
MockUp
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren