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
Schade das keiner rat hat. ich habe auch schon versucht, die start adresse zu ändern, habe da noch was im datenblatt gefunden, aber geht leider auch nicht. naja den halt nicht. mfg
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
ach so lad_in2 und enable kann man sich wegdenken, die waren nur zur simulation gut. mfg
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?
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.
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
mal eine frage, sollte ich die fsm so wie hier aufbauen? http://esd.cs.ucr.edu/labs/tutorial/fsm.vhd habe ich jetzt einfach mal gemacht. hoffe das entspricht was du meinst. aber gehen tuts immer noch nicht :-(
#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.
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.
ok. der momentane sieht so aus. ich bekomme jetzt schon 4x (F0)hex empfangen aber danach bricht er ab. ich glaube auch nicht, das das aus dem eprom kommt, weil ich die adresse geändert habe und da das gleiche passiert. mfg
ich habe mir mal die definitionen von der intel page geladen und werde den code danach ausrichten. zumindestens versuche ichs :-) mfg
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.
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
Hallo. Fals es jemanden interessiert, es funktioniert. anbei der quellcode. besten dank @FPGAküchle hat geholfen die statemaschine zu ändern. mfg
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.