Hallo, ich habe hier ein Nexys2 500 und möchte Dinge anschließen. Und zwar an den FX2 Stecker. Natürlich habe ich eine Pinzuordnung und die wollte ich überprüfen. Also habe ich immer je 8 Pins vom FX2 (PIO) in VHDL den 8 LEDs zugeordnet. LED(7 downto 0) <= PIO(7 downto 0); Und dann bin ich miteinem Jumperkabel auf die +3,3V gegangen und danach nacheinander auf die PIO Pins und habe geguckt welche LED leuchtet. Das Seltsame: Es leuchtet manchmal nicht nur eine sondern mehrere LEDs. Woran kann sowas liegen? Bei 3,3V müsste das doch alles passen?
Gustl Buheitel schrieb: > LED(7 downto 0) <= PIO(7 downto 0); Das ginge kürzer: LED <= PIO; > Woran kann sowas liegen? Meine Vermutung: Übersprechen bei offenen CMOS Eingängen.
Klar geht das kürzer, hatte ich auch nur hier so geschrieben um zu zeigen, dass die auch wirklich gleich lang sind. Ok, Danke! Dann wäre es also ratsam die anderen Eingänge auf Masse zu legen? Oder wenn ich die nicht verwende, dann sollte das sowieso egal sein ... Ich probiere das mal aus.
Gustl Buheitel schrieb: > 8 LEDs zugeordnet. inkl. Vorwiderstände? Ich würde dann auch mal drauf achten ob beim Stimulieren der Eingänge die Versorgung stabil bleibt wenn Vor-und Pull-up-Widerstände fehlen.
Gustl Buheitel schrieb: > Dann wäre es also ratsam die anderen Eingänge auf Masse zu legen? Es wäre ratsam, CMOS-Eingänge auf einen definierten Pegel zu legen. Ich würde an deiner Stelle für unbenutzte Pins einen Pullup definieren.
Klar überall Vorwiderstände ist ja das standard Nexys2 Board von Digilent. Ist das mit den internen Pullups auch wichtig wenn man die Eingänge nicht verwendet? Also ich meine, was nicht irgendwie zu der Logik geschalten wird, das stört auch nicht, oder doch?
Gustl Buheitel schrieb: > Ist das mit den internen Pullups auch wichtig wenn man die Eingänge > nicht verwendet? Naja, "nicht verwenden" gibt es eigentlich nicht. Denn du verwendest das FPGA. Also verwendest du auch die Pins des FPGAs. Und somit musst du dich um diese Pins kümmern. Sehr schlecht wäre z.B. eine LED blinke zu lassen unad alle anderen Pins einfach zu ignorieren, egal was sonst noch dranhängt. Dann kann es nämlich sein, dass die Eingangstreiber alle "so halb" durchschalten und dein FPGA den Hitzetod stirbt. Und auch angeschlossenes RAM/Flash möchte lieber definiert disabled sein...
Die Xilinx ISE hat ne Standardeinstellung für unbenutze Pins, Rechtsklick auf "Generate Programming File" und dann unter "Configuration Options". Standard ist Pulldown. -> automatisch keine offenen Pins Altera ist da schlimmer deren Standard ist GND, falls es also ein Eingang ist an dem entwas hängt, der aber net verwendet wird hat man nen schönen kurzen.... wieso mehrere angehen kann ich so direkt keinen Grund für sehen
Tobias L. schrieb: > Standard ist Pulldown. Das ist dann auch der Standard, wenn man ein Flash oder ein RAM enablen will. Und schlagartig sind dann durch den Pulldown alle RAM-Bausteine und die parallelgeschalteten Flashs aktiv und treiben auf einen gemeinsamen Bus. Wie gesagt: diesen Schalter auf "Pullup". Immer!
Ok, dann mach ich das mal so, vielen Dank! Sieht schon so aus als wäre das Problem erledigt wenn man alle verwendeten Eingänge auch wirklich auf ein definiertes Potential legt.
Lothar Miller schrieb: > Wie gesagt: diesen Schalter auf "Pullup". Immer! Ich such mir entsprechend die chip selects und chip enables aus dem Schaltplan und treibe diese definiert auf inaktiv. Hier ein Beispiel für das SP601:
1 | flash_a <= (others => '1'); |
2 | flash_d <= (others => 'Z'); |
3 | flash_we_b <= '1'; |
4 | flash_oe_b <= '1'; |
5 | flash_ce_b <= '1'; |
6 | fpga_awake <= '1'; |
7 | fpga_cclk <= '1'; |
8 | fpga_init_b <= '1'; |
9 | fpga_mosi_csi_b_miso0 <= '1'; |
10 | spi_cs_b <= '1'; |
Duke
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.