Hallo zusammen
Ich wollte eine Machbarkeit mit dem Raspberry Pi Pico prüfen für ein Projekt, bin aber bisher nicht weitergekommen, bzw. erhalte verschiedene Aussagen im Web dazu. Vielleicht kann hier jemand helfen, der sich besser auskennt?
Geplant ist, sieben Signalleitungen auszuwerten. Eine Signalleitung davon gibt einen Takt vor: Ein logisches Signal 1 (high) für 125 ns gefolgt von einem logischen Signal 0 (low) für 125 ns. Immer bei 1 soll der Zustand aller Leitungen erfasst werden (für jede Leitung gilt ebenfalls 0 oder 1).
Zusammen mit den steigenden und sinkenden Flanken dauert das Taktsignal von 0 auf 1 mindestens 334 ns gemäss Herstellerangaben. Das würde heissen, dass pro Sekunde ganze 2'994'012 Datensamples erfasst werden müssten, oder knapp 3 Msps => 3 MHz. Wenn man beim Taktsignal auch die 0 als Signal zählt, sind wir bei 5'988'024 sps => 6 Mhz. Gemessen werden müsste somit mit 6 MHz.
Die 334 ns sind jedoch die kleinst mögliche Zeitspanne für den Takt. Effektiv sind es 15'360 Datenpunkte mit einer Refreshrate von 70 Hz, +/- 5 Hz. Mit 75 Hz als Maximum wären wir bei 1'152'000 sps oder 2'304'000 sps. Somit 2.3 MHz. Nun ist es aber so, dass nur 2'304'000 sps pro Sekunde gesammelt werden, aber es vorkommen kann, dass zwei Datenpunkte in 334 ns Abstand kommen, auch wenn im Durchschnitt nur alle 868 ns ein Datenpunkt kommt. Würde heissen, dass die Abtastrate doch auch 6 MHz sein kann, da ja immer bei Takt = 1 abgetastet werden muss.
Was ich bisher ausfindigmachen konnte:
- Es ist auf jedenfall C/C++ notwendig, da mit Micropython maximal circa 55-60 kHz möglich sind.
- Benchmarktests haben Signalabtastraten von 120 Mhz gezeigt => wäre also theoretisch mehr als genügend Luft nach oben. 120 MHz wäre ja eine Abtastrate von 1 sp / 8.33 ns...
Nun ist die Frage: Benchmarktest ist das eine, aber ist es auch realistisch aus 7 Kanälen die Werte gleichzeitig zu beziehen? Das wäre ja pro Takt 7 Datenpunkte, somit die 7-fache Menge. Es ist zu erwähnen, dass die Daten nicht gespeichert werden sollen auf dem Pico sondern direkt über USB auf den PC übertragen werden. Jeweils 15'360 Datenpunkte müssen zusammenhängend bleiben. Und ebenfalls zu erwähnen ist, dass die Refreshrate von 75 Hz beim übertragen der Daten nicht notwendig wäre. Theoretisch wäre es ausreichend, die ersten 15'360 Datenpunkte pro Sekunde zu erfassen, was an der Datenmenge etwas ändert, jedoch nicht an der Abtastrate. Die Datenpunkte ändern sich nämlich nur dann, wenn der Nutzer dies aktiv auslöst. Es ist jedoch an dem Gerät, von dem die 7 Datenleitungen kommen, nicht möglich, pro Sekunde mehr als einmal die Datenpunkte zu ändern. Es ist sogar eher so, dass die Daten eher alle 3-5 Sekunden geändert werden können maximal. Aber weiterhin muss die Abtastrate gleich hoch bleiben, da zwingend 15'360 Datenpunke nacheinander ausgelesen werden müssen, damit die Daten in sich schlüssig sind.
Was meint ihr dazu?
Gruss und Danke Michael

