Ich möchte Euch ein neues Elektronik-Tool vorstellen an dem ich mitgearbeitet habe: Glagow Digital Interface Explorer / Debug Tool Wer kennt es nicht daß man "nur mal eben schnell" einen neuen Sensor ausprobieren möchte, einen Flash-Baustein mit ungewöhnlichem Befehlssatz auslesen oder ein obskures Protokoll reverse-engineeren. Für gängigere Protokolle kann man dafür z.B. einen Bus Pirate nehmen oder sich etwas mit einem Arduino zusammenkopieren. Bei ungewöhnlicheren oder schnelleren Protokollen wird das aber schon nicht mehr so einfach und oft kommt dann noch das Problem mit unüblichen Spannungspegeln wie z.B. 5 V oder 1.8 V hinzu. All das kann man mit Glasgow lösen. Die Hardware besteht aus einem FPGA mit individuellen Level-Shiftern für jeden der Pins und per DAC gesteuerten Spannungswandlern. Die Verbindung zum PC per USB-HS übernimmt ein Cypress FX2. Die Softwareseite besteht aus einem Python-Framwork. Es erzeugt die Gateware für den FPGA live nach den Anforderungen des Nutzers aus nMigen-Code mit dem Opensource-FPGA-Stack Yosys und nextpnr. Außerdem stellt es fertige Kommunikationsbausteine fürs USB bereit, so daß man in der Gateware einfach mit FIFOs arbeiten kann und sich nicht um den Rest kümmern muss. Natürlich sind für viele Protokolle schon fertige Applets vorhanden, so daß man auch ohne Kenntnisse in nMigen weit kommt. Die ganze Hard- und Software ist als OpenSource auf Github veröffentlicht: https://github.com/GlasgowEmbedded/Glasgow https://www.crowdsupply.com/1bitsquared/glasgow
Klingt interessant das Teil! Kann ich Glasgow mit anderen Opensource-Programmen verbinden, also z.B. mit OpenOCD um es als JTAG-Adapter zu nutzen oder mit Sigrok/Pulseview um es als Logicanalyzer mit den dort verfügbaren Protokolldecodern verwenden zu können?
Electronic E. schrieb: > Ich möchte Euch ein neues Elektronik-Tool vorstellen an dem ich > mitgearbeitet habe: Coole Idee und cooles Projekt. Aus neugier: Was war deine Rolle im Projekt? Gehörst du zu der Firma?
Frank schrieb: > Kann ich Glasgow mit anderen Opensource-Programmen verbinden, also z.B. > mit OpenOCD um es als JTAG-Adapter zu nutzen Für JTAG von OpenOCD gibt es eine Schnittstelle (Glasgow Applet "jtag-openocd"). Damit macht die Glasgow-Software auf dem PC ein Socket auf mit dem das OpenOCD dann kommuniziert. > oder mit Sigrok/Pulseview > um es als Logicanalyzer Momentan leider bisher nur über VCD-Dateien. Also der Logicanalyzer-Teil von Glasgow erstellt und schreibt eine VCD und die kann man dann in Pulseview (oder anderen Programmen mit VCD-Import) öffnen. Grundsätzlich ist die Idee bei sowas immer, daß die Glasgow-Software die Kommunikation mit der Hardware übernimmt und die Daten dann in einem sauber definierten Format per Unix-Socket oder TCP an die andere Software übergibt. Hintergrund davon ist, daß das Protokoll, welches zwischen Glasgow-SW und -HW gesprochen wird, flexibel bleiben soll. Außerdem sollen auch mal mehrere Applets gleichzeitig auf dem FPGA laufen können (z.B. UART und JTAG oder so). Da muss dann ein Konzept da sein um die Daten zu trennen und das funktioniert mit der Glasgow-SW am besten. Für den Logicanalyzer wird also vermutlich mal was ähnliches kommen. Ist aber momentan noch nicht implementiert.
D. C. schrieb: > Aus neugier: Was war deine Rolle im Projekt? Gehörst du zu der Firma? Ich hab vor allem an der Hardware und deren Verifikation gearbeitet, aber auch an der Firmware. Als nächstes steht die Software für den Pogopin-Tester an. Das ist ein echtes Opensource-Projekt. Ich (und die anderen Entwickler) machen das rein aus Spaß daran und gehören nicht zu 1bitsquared. 1bitsquared stellt die jetzt in größerer Zahl her. Aus den Erlösen wird nur das Organisieren von Produktion, Vertrieb und Support bezahlt. Ich kriege davon nichts außer ein paar Prototypen.
Ich hab mal noch eine Frage zum Glasgow: Den möglichen IO-Spannungsbereich an den beiden Haupt-Ports A und B mit 1.8V bis 5V durch die Levelshifter habe ich verstanden und das ist ein gutes Feature. Aber es gibt ja noch den zusätzlichen LVDS-Port. Was kann ich da für Spannungslevel verwenden? Ist das auf LVDS festgelegt oder geht da auch CMOS?
EinGast schrieb: > Aber es gibt ja noch den zusätzlichen LVDS-Port. Was kann ich da für > Spannungslevel verwenden? Ist das auf LVDS festgelegt oder geht da auch > CMOS? Der LVDS-Port ist direkt mit dem FPGA verbunden, ohne Levelshifter dazwischen. Der ganze LVDS-Port ist mit IO-Bank 3 des FPGAs verbunden. Diese Bank wird für nichts anderes verwendet. Du kannst daher die verwendete Spannung frei zwischen 1.8V und 3.3V festlegen indem Du sie über den VIO_AUX-Pin des LVDS-Ports einspeist. In der Gateware kannst Du dann frei festlegen ob Du differentielle Signalpaare oder einzelne CMOS-Signale verwenden möchtest. Der LVDS-Port hat keinen extra ESD-Schutz und ist lang nicht so robust wie die beiden Haupt-Ports A und B. Der ist eher für selten zu steckende Erweiterungen gedacht. Z.B. wird hier gerade an einem Addon für Hyperram gearbeitet, welches dann in den LVDS-Port eingesteckt wird: https://github.com/esden/glasgow-addons/tree/master/hardware/ram-pak Damit kann dann der Glasgow mit 32 MByte RAM bestückt werden, z.B. als Puffer für den Logic Analyzer, einen SPI-Flash-Emulator etc.
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.