Forum: Mikrocontroller und Digitale Elektronik Digital DAQ mit echtzeit Python Interface gesucht


von Anonymus B. (anonymus_bugmenot)


Lesenswert?

Hallo zusammen,

ich suche ein Gerät (DAQ / Logic Analyzer), mit dem ich vom PC aus 
binäre Signale auswerten kann (Spannungen 0/5V oder 0/3.3V oder 
ähnlich). Die Frequenzen sind maximal 2MHz, mir reicht also eine 
Abtastrate von 16MHz locker aus. Die eigentliche Spannung interessiert 
nicht, nur an/aus.

Das besondere: Ich möchte einen Teil der Daten gerne mit Python live 
darstellen, deswegen wäre mir ein kontinuierliche Datenerfassung am 
liebsten, von der ich dann die aktuellsten 10ms mit Python auslesen und 
zur Live Darstellung verwenden kann. Nach dem Ende des 
Aufnahmezeitraumes (mein RAM leicht locker für die gesammelten Daten) 
hätte ich dann den kompletten Datensatz und würde darauf tiefergehende 
Analysen anwenden.
Zur Not wäre es aber auch okay, wenn ich mehrmals die Sekunde Spnapshots 
von ca. 50ms nehmen kann und nur diese später für die tefergehenden 
Analysen zu Verfügung habe.

Das Gerät darf 300 Euro kosten, aber nicht deutlich mehr als das. 
Anbindung per USB oder Ethernet, es soll mit einem Laptop verwendet 
werden.

Kennt jemand was passendes?

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Wieviel Kanäle solls denn haben? Und bist du sicher, das dir nicht so 
ein kleiner zum Saleae Analyzer kompatibler 8-Kanaler reicht?
Wie man die Kiste abfragt, zeigt dir das Sigrok/Pulseview Projekt.

von Harald K. (kirnbichler)


Lesenswert?

Mit einem der Saleae-Logikanalysatoren sollte sich Dein Unterfangen 
lösen lassen. Für die gibt es eine Programmierschnittstelle, um die 
erfassten Daten analysieren zu können.

https://www.saleae.com/automation/

Der kleinste der Logikanalysatoren kann acht Signale mit einer 
Abtastrate von 100 MHz verarbeiten:
https://eur.saleae.com/products/saleae-logic-8

Wenn Du unfair bist, kannst Du die gleiche Software aber auch mit einem 
Nachbau eines alten Modells von Saleae betreiben - das kann acht Signale 
mit einer Abtastrate von 24 MHz verarbeiten, und ist bei den üblichen 
Verdächtigen (ebay, Amazon, Aliexpress) für ca. 10 EUR zu bekommen.

Fairer ist es, so ein Gerät stattdessen mit Sigrok zu betreiben, das ist 
eine universelle OpenSource-Logikanalysatorsoftware, die sich ebenfalls 
mit einer API steuern lässt.

https://sigrok.org/wiki/Managing_sigrok-cli_data_with_Python
https://github.com/pysigrok/pysigrok

Wenn sigrok verwendet wird, kann natürlich auch jeder beliebige andere 
Logikanalysator verwendet werden, den Sigrok unterstützt - die Liste ist 
lang

https://sigrok.org/wiki/Supported_hardware

von Lothar (mutex)


Lesenswert?


von Harry L. (mysth)


Lesenswert?

Sigrok ist definitiv das, was du suchst.
https://www.sigrok.org/api/libsigrok/0.5.2/bindings/python/

Und hier die Übersicht über unterstützte Hardware:
https://sigrok.org/wiki/Supported_hardware#Logic_analyzers

von Anonymus B. (anonymus_bugmenot)


Lesenswert?

Mir reichen 2 Kanäle, der Saleae Analyzer würde mir von der Performance 
her komplett reichen. Ich habe mir die Python API von Saleae und sigrok 
angeschaut und so wie ich das verstanden habe, hat man dort nicht die 
Möglichkeit kontinuierlich Daten aufzunehmen und zwischendurch die 
neuesten abzugreifen. Man muss immer einen Befehl absenden mit der 
Anzahl an Daten, die man haben möchte. Zwischen den Befehlen gehen Daten 
verloren.
Allerdings wird es in der Saleae Logic GUI ja auch kontinuierlich 
angezeigt - also muss es irgendwie möglich sein...

von He. (Gast)


Lesenswert?

Die Daten dürften wohl intern gepuffert werden und lückenlos auslesbar 
sein, wenn man schnell genug pollt.

Ob Python dafür der richtige Ansatz ist, lassen wir mal aussen vor.

Ein kleines C-Programm hat das in den 2000ern auf einer 2GHZ Win XP 
Möhre mit Leichtigkeit gekonnt.

von Harry L. (mysth)


Lesenswert?

Heiko E. schrieb:
> Die Daten dürften wohl intern gepuffert werden und lückenlos auslesbar
> sein, wenn man schnell genug pollt.

So ist es.

Heiko E. schrieb:
> Ob Python dafür der richtige Ansatz ist, lassen wir mal aussen vor.

Ja, ist er.
Ein Großteil der Sigrok-Protokoll-Decoder ist in Python programmiert.

von Anonymus B. (anonymus_bugmenot)


Lesenswert?

Ich habe Sigrok ausprobiert und es funktioniert wirklich ganz gut - auch 
wenn die Doku sehr dürftig ist!

Vielen Dank!

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.