Moin, ich überarbeite jetzt gerade ein Platinenlayout und möchte den Flash S25FL128SXXXXXX0 etwas schöner anbinden. Das würde auch funktionieren wenn ich die Datenleistungen vom QSPI anders zuordne. Geht das? Für die Daten müsste das tatsächlich egal sein wie ich meine, aber für die Befehle könnte das nicht funktionieren. Da müsste man dann also auch im Vivado oder so die neue Pinzuordnung dem write_cfgmem mitteilen. Geht das?
Nein das geht nicht. Jedenfalls nicht wenn das FPGA selber davon booten soll. Oder du nimmst nur normales SPI, da brauchst du nur MOSI und MISO, aber auch die kannst du nicht tauschen.
OK, Danke! Na dann setze ich ein paar Vias mehr ...
Oh und noch eine Nachfrage: Warum werden oft in Schaltplänen an manche der Datenpins vom QSPI Flash Pullups angeschlossen? Ich habe das auch bisher so gemacht, funktioniert auch, aber es funktioniert auch ohne Pullups. Z. B. hier https://www.trenz-electronic.de/fileadmin/docs/Trenz_Electronic/Modules_and_Module_Carriers/3.5x7.3/TE0725/REV03/Documents/SCH-TE0725-03-100-2C.PDF Seite 4. Hier https://reference.digilentinc.com/_media/cmod_a7/cmod_a7_sch.pdf Seite 2.
Gustl B. schrieb: > Warum werden oft in Schaltplänen an manche der Datenpins vom QSPI Flash > Pullups angeschlossen? Ich habe das auch bisher so gemacht, funktioniert > auch, aber es funktioniert auch ohne Pullups. Bin mir nicht ganz sicher - könnte etwas mit dem Switch auf den Quad-Modus zu tun haben. Das ist auch der Grund, wieso man die Pins nicht vertauschen darf. (Kommando-Dekoder)
:
Bearbeitet durch User
Gustl B. schrieb: > Oh und noch eine Nachfrage: > > Warum werden oft in Schaltplänen an manche der Datenpins vom QSPI Flash > Pullups angeschlossen? Ich habe das auch bisher so gemacht, funktioniert > auch, aber es funktioniert auch ohne Pullups. Vermute mal damit das Pin einen definierten Pegel hat wenn es als Eingang konfiguriert wurde. Xilinx hat z.B. die Option unbenutzte Pins automatisch mit einem Weak Pulldown zu konfigurieren. Die Widerstand gewinnt in dem Fall und hält den Flash inaktiv. Wäre auch die Frage wie sich die I/O verhalten wenn das FPGA konfiguriert wird. Bei deinem Board z.B. scheint das Pin PUDC_B High Level zu haben. Der Eingang steuert den Zustand der I/O-Pins bis zum Ende der Konfiguration. H bedeutet, dass die Pins bis zum Ende der Konfiguration hochohming sind (Tristate). https://www.xilinx.com/support/answers/50802.html
Hm, ja klar verwendet man Pullups für definierte Pegel. Ich kann das für ChipSelect auch verstehen, da will man nicht, dass der wackelt. Aber die Datenleitungen? Die interessieren doch sowieso nur wenn CS aktiv ist. Der Grund für meine Frage ist, dass ich die 4 Datenpins am FPGA nach der Konfiguration weiterverwenden möchte. Und zwar ohne Pullups. Auf meiner aktuellen Bastelplatine habe ich die Pullups im Layout und hatte die auch bestückt. Funktioniert. Jetzt ändere ich gerade mein Layout weil ich eben diese 4 zusätzlichen Pins verwenden will und habe zum Test mal die Pullups weggelötet. Funktioniert immer noch. Sowohl Konfiguration des FPGA als auch das Schreiben des Bitstreams ins Flash. Mir scheint also, ich bräuchte diese Pullups nicht.
Moin, Gustl B. schrieb: > Warum werden oft in Schaltplänen an manche der Datenpins vom QSPI Flash > Pullups angeschlossen? Sieht fuer mich nach Kompatibilitaet/Ueberbleibsel zu "normalen" SPI-Flashes aus. Gruss WK
Vielen Dank! Ich lasse die im neuen Layout mal weg.
Gustl B. schrieb: > Vielen Dank! Ich lasse die im neuen Layout mal weg. Mach sie doch hin und lasse sie unbestueckt. Sollten jemals Probleme auftauchen dann bist froh du kannst sie von Hand nachbestuecken.
Moin, Tobias B. schrieb: > Mach sie doch hin und lasse sie unbestueckt. Sollten jemals Probleme > auftauchen dann bist froh du kannst sie von Hand nachbestuecken. Wuerd ich auch sagen - ist viel simpler, die einfach nicht zu bestuecken als nachtraeglich dranzubasteln. Ein Blick in die Datenblaetter der beteiligten Chips ist auch zuverlaessiger als der Versuch im Einzelfall. Gruss WK
Im Datenblatt https://www.cypress.com/file/448601/download kann ich dazu kaum was finden. Reset#, IO2 und IO3 haben interne Pullups. CS# allerdings nicht, und dazu steht auf Seite 24: The device must not be selected at power-up or power-down (that is, CS# must follow the voltage applied on VCC) until VCC reaches the correct value as follows: - VCC (min) at power-up, and then for a further delay of t_PU - VSS at power-down A simple pull-up resistor (generally of the order of 100 kOhm) on Chip Select (CS#) can usually be used to insure safe and proper power-up and power-down. Nun, wie ist das, wenn CS# nur mit dem FPGA verbunden ist, ist dann sichergestellt, dass das gleich mit der Versorgungsspannung auf high geht? Aber gut, weil ich CS# sowieso nicht für weitere Dinge nutzen kann/will, kann ich da auch den Pullup hinsetzen. Aber ich sehe keinen Grund einen Pullup an die Datenleitungen zu bauen.
Gustl B. schrieb: > Aber ich sehe keinen Grund einen > Pullup an die Datenleitungen zu bauen. Wenn der Chip interne Pullups an IO2 und IO3 hat, brauchst du natürlich keine externen. Ein Flash started im SPI Modus und wird erst durch einen SPI Befehl in den Qaud Modus befördert. Damit dieser Befehl funktioniert muss Hold (IO3) auf High sein.
OK, habe mich damit nicht beschäftigt. Gut, das erledigt also der interne Pullup. Und eigentlich würde ich auch erwarten, dass das FPGA am QSPI Interface beim Starten sofort CS# und auch Hold hoch zieht. Erst wenn der sich dann konfiguriert dann sollte der ja den Flash Baustein ansprechen.
Gustl B. schrieb: > OK, habe mich damit nicht beschäftigt. Gut, das erledigt also der > interne Pullup. Und eigentlich würde ich auch erwarten, dass das FPGA am > QSPI Interface beim Starten sofort CS# und auch Hold hoch zieht. Erst > wenn der sich dann konfiguriert dann sollte der ja den Flash Baustein > ansprechen. Die Spartan 7 Configuration Guide sagt: > For SPI x4: Connect D02 to the SPI flash quad data > bit 2 output (DQ2/W#/WP#/IO2) pin and connect > to an external 4.7kohm pull-up resistor to > VCCO_14. > For SPI x4: Connect D03 to the SPI flash quad data > bit 3 output (DQ3/HOLD#/IO3) pin and connect > to an external 4.7kohm pull-up resistor to > VCCO_14 Weiterhin ("Power-on Sequence Precautions"): > At power-on, the FPGA automatically starts its configuration procedure. > When the FPGA is in Master Serial SPI configuration mode, the FPGA asserts > FCS_B Low to select the SPI flash and drives a read command to the SPI flash. > The SPI flash must be awake and ready to receive commands before the FPGA > drives FCS_B Low and sends the read command. Da steht nicht, der FPGA würde Hold oder WP ansteuern. Mir wären das zu viele Annahmen, die du triffst und ich würde mich an die Configuration-Guide halten, um sicher zu gehen.
:
Bearbeitet durch User
Moin, Mampf F. schrieb: > Mir wären das zu viele Annahmen, die du triffst und ich würde mich an > die Configuration-Guide halten, um sicher zu gehen. Aber sowas von... Gustl B. schrieb: > Und eigentlich würde ich auch erwarten, dass das FPGA ... Da gabs frueher mal MAD-TV, iirc auf RTL, dort hatten die eine Partnervermittlung namens "Lowered Expectations"... Gruss WK
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.