Forum: Mikrocontroller und Digitale Elektronik Glagow Digital Interface Explorer / Debug Tool


von Electronic E. (electronic_eel) Benutzerseite


Lesenswert?

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

von Frank (Gast)


Lesenswert?

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?

von Zero V. (Firma: Freelancer) (gnd)


Lesenswert?

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?

von Electronic E. (electronic_eel) Benutzerseite


Lesenswert?

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.

von Electronic E. (electronic_eel) Benutzerseite


Lesenswert?

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.

von EinGast (Gast)


Lesenswert?

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?

von Electronic E. (electronic_eel) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.