Hallo ich möchte einen FTDI FT2232 im FiFo-Mode per PLB vom MicroBlaze lesen/schreiben. Nur bekomm ich den inout Port im XPS nicht zum Laufen. Bin mittlerweile 3 Schritte zurück und hab ein einfaches Design mit einem Register(slv_reg0) eportiert. Diese Register wird bei tristate = 0 vom inout Port und kann bei tristate = 1 vom PLB beschrieben werden. Auf dem inout Port liegt bei tristate = 1 slv_reg0 sonst Z. Im Top_Level sind die 3 Ports einzeln in_out_i, in_out_o, in_out_t und beim reimport ins XPS wird der inout Port erzeugt. Den hab ich mit dem IO Port von GPIO verbunden (den IO-Port, die drei einzelnen sind nicht verbunden). Im SDK kann ich per GPIO_SetDataDirection den tristate Port umschalten (hab mir einen Pin rausgelegt der je nach in_out_t Zustand low oder high ist). Und das wars, kann vom IO-Port (also per GPIO) weder Daten lesen noch schreiben. Das slv_reg0 per plb schreiben und lesen geht. In der .mpd des Cores wird der I/O port zweimal identisch generiert, weiß jemand warum? Hab hier auch enable = single versucht, ohne Erfolg. Hab das umschalten in einem kleinen Projekt ohne XPS/SDK, einfach mit Oszi und per Hand Spannung/GND setzen, gechecked - das geht. Wo könnte der Fehler liegen?
Hallo, Nun, _I _O _T beziehen sich auf IOBUF. Hier ein Auszug aus dem Language-Template: IOBUF_inst : IOBUF generic map ( DRIVE => 12, IOSTANDARD => "DEFAULT", SLEW => "SLOW") port map ( O => O, -- Buffer output IO => IO, -- Buffer inout port (connect directly to top-level port) I => I, -- Buffer input T => T -- 3-state enable input, high=input, low=output ); D.h. du müsstest T auf '0' ( = low) setzen, wenn du schreiben willst. Ich hoffe das löst dein Problem Grüße Christian
Danke für die Antwort aber leider nicht. Mein Core verhält sich genau entgegen gesetzt zum xps_gpio. D.h. wenn ich vom uB aus die gpio Datenrichtung auf Output setze ist in_out_t = 0 und mein Core soll lesen und umgekehrt. Das klappt auch im ISE mit 4 rausgelegt Pins(inout,einem eingang der auf inout geschrieben wird, einem ausgang auf dem das von inout gelesenen geschrieben wird und einen zum Umschalten(t quasi)). Nur nach dem Import ins xps funktioniert es nicht. Da werden zwar noch _i,_o und _t in einem io zusammen gefasst, den kann ich mit io vom xps_gpio verbinden und die IOs sind auch wirklich verbunden da ich zumindest tristate(auch in meinem Core) per SetDataDirection des GPIO-Cores umschalten kann. Aber das lesen und schreiben geht nicht.
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.