eigentlich ein triviales Problem:
Die Impulsdauer messen.
24V Signal Impulslänge ca. 1ms, gewünschte Auflösung ca. 1µs.
Ich dachte, so ein "Timer" ist in jedem Frequenz/Funktionsgenerator drin.
Meistens ist das nur ein Frequenzzähler der von einem periodischen Signal
die Periodendauer ermittelt.
Ein sehr teures Gerät von Key**ht kann das, ist aber über dem Budget.
Mit einem Oszi und "Cursorschieben" geht das natürlich, ist aber nicht
für Serienmessungen geeignet.
Ich prüfe gerade noch, ob das ein Analog Discovery kann.
Manche Frequenzzähler haben Impulsdauer als extra Messmodus.
Zum Beispiel der Philips PM6671 den wir in der Arbeit noch haben sollte laut Datenblatt Impulsbreite zwischen 100ns und 10^8s messen können (sind das ernsthaft ca. 3 Jahre?).
Ansonsten kann normalerweise jedes Digitaloszilloskop mit Messfunktion auch High- und Low-Impulsbreiten messen. D.h. Trigger auf steigende Flanke und Zeitbasis so einstellen dass die Impulse im Aufzeichnungsbereich liegen. Dann sollte das ohne Cursorschieben oder ähnliches einfach angezeigt werden können. Die gewünschte Zeitauflösung hängt dann vom Aufzeichnungsspeicher und der Zeitbasis ab. 1µs bei 1ms Impulsdauer klingt aber erstmal nicht so anspruchsvoll.
Mit einem Oszi und "Cursorschieben" geht das natürlich
Ein Oszi mit passender Triggerung und automatischen Messfunktionen sollte das schon können. Bestenfalls die gewünschte Auflösung kann da spannend werden.
Gibt es Anregungen aus der MC-Gemeinde.
Passend zum MC: mach es selber mit einem Arduino. Stichwort dazu: Input Capture
Mit einem Oszi und "Cursorschieben" geht das natürlich, ist aber nicht
für Serienmessungen geeignet.
Ich prüfe gerade noch, ob das ein Analog Discovery kann.
Gibt es Anregungen aus der MC-Gemeinde.
Aktuelle Oszis besitzen, wie schon geschrieben, meist eine Messfunktion, die den Wert direkt ermitteln kann und oft eine Schnittstelle, um ihn weiter zu reichen. "Sehr teuer" liegt im Auge des Betrachters.
Ein Mikrocontroller für 5€ kann das natürlich auch, falls jemand das passende Know-How besitzt und die paar Zeilen Code zusammen hacken kann oder ein kleiner Logikanalysator für 8€, auch wiederum mit der passenden Software zur Auswertung. Für eine Serienmessung muss das ja meist sowieso irgendwo eingebunden werden.
Wie sollen die Daten denn weiter gereicht werden und wie schnell muss gemessen werden?
Wenn du schon weißt, das es trivial ist, warum fragst du dann erst hier und löst es nicht gleich?
Ich finde es immer erstaunlich, dass die Leute, die am wenigsten Ahnung davon haben, als erstes mit Aufwandsbeurteilungen wie "einfach", "eben schnell", "trivial" oder dergl. um die Ecke kommen.
Meistens ist das nur ein Frequenzzähler der von einem periodischen
Signal
die Periodendauer ermittelt.
Frequenzzähler können oft auch Zählen, solange ein Tor-Eingang "high" ist. Entweder die interne Zeitbasis oder eine externe.
Zudem wäre Deine Aufgabe das ideale Projekt für jeden, der eine LED mit einem µController ansteuern kann. Hinzu kommen LCD oder 4-stellige 7-Segment-Anzeige und ein (bzw. 2) interne Timer. + Prüfung der Zeitbasis every now and then.
Nennt sich Periodendauermessung und ist eine der Kernfunktionen
eigentlich jedes Frequenzzählers.
Der TO scheint nur welche zu haben/kennen, die auf 2 gleiche Flanken reagieren, nicht auf eine Torzeit. Oder hat sich einige Manuals durchgelesen und es so interpretiert.
Falls er einen hat (oder sich angeschaut hat), sollte er den Typ nennen. Sonst ist das alles sehr virtuell.
Frequenzzähler können oft auch Zählen, solange ein Tor-Eingang "high"
ist. Entweder die interne Zeitbasis oder eine externe.
Nennt sich Periodendauermessung
Nein. Es ist die Länge eines Impulses zu messen. Das ist was anderes als die Periodendauer. Und auch was anderes als die halbe Periodendauer.
und ist eine der Kernfunktionen eigentlich jedes Frequenzzählers.
Es ist normalerweise nicht sehr kompliziert, zwischen Periodendauer- und Pulslängenmessung umzuschalten. Manchmal aber schon. Z.B. wenn es ein Reziprokzähler ist. Deren Meßprinzip ist nicht auf die Impulslänge anwendbar.
ObJoke: Ein Ingenieur sieht aus dem Fenster zwei Arbeiter vor dem Gebäude stehen. Sie deuten immer wieder auf den Fahnenmast und diskutieren. Nach der Pause stehen sie immer noch da. Also geht er hin und fragt, was das Problem sei. "Wir sollen die Höhe des Fahnenmasts messen". Sagt er: "Kein Problem", löst den Klappmechanismus, legt den Fahnenmast um und sagt "So nun könnt ihr messen". Tippt sich der eine Arbeiter an die Stirn und sagt: "So ein Idiot! Wir sollen messen, wie hoch der Mast ist. Nicht wie lang!"
es ist kein periodisches Signal.
Die üblichen Frequenzgeneratoren haben einen eingebauten
Frequenzzähler mit Frequenz/Periodendauermessung.
Ein Keysight 53220A z.B. kann die gewünschte Funktion.
Ich bin aber mit dem Analog Discovery weitergekommen
und werde dieses Teil verwenden.
Die STM32 können das in Hardware taktgenau, also z.B. auf 100ns genau. Kann man sich ruckzuck in der GUI zusammenklicken und kriegt sofort fix und fertig das supergenaue Ergebnis. "PWM Input" heißt das Zauberwort. Evalboard mit Display kostet <50€
z.B. das STM32U083C-DK, spart auch das Netzteil, weil so sparsam dass man es aus einer kleinen Solarzelle betreiben kann 😉
Ich bin aber mit dem Analog Discovery weitergekommen
und werde dieses Teil verwenden.
Wenn das Deine Lösung ist, brauchst Du Deine Anfrage nicht weiter zu spezifizieren ;-)
Für den kleinen Mann gäbe es eine Lösung mit ATmega328 (Arduino), bei der zwei Eingänge mit wählbaren Flanken die positive, negative oder gesamte Periodendauer messen kann. Die Genauigkeit erreicht die geforderten 1 µs auch ohne Hardware-Capture:http://mino-elektronik.de/fmeter/fm_software.htm#bsp6
Die Genauigkeit erreicht die geforderten 1 µs auch ohne Hardware-Capture
Die Genauigkeit hat Thomas noch gar nicht spezifiziert.
Warum willst vorhandene Hardware nicht nutzen. Das vermeidet Jitter.
Aber wenn Geld keine Rolle spielt tut's auch eine beliebige andere Lösung.
Flexibler, z.B. in Bezug auf Weiterverarbeitung der Daten, ist man eventuell mit einem selbst programmierten Teil - kommt auf die Umgebung an, in der die Messung stattfinden soll. Falls jemand vor dem Gerät sitzt und händisch die Werte in eine Excel-Tabelle einträgt, ist sowieso fast alles egal.
Dafür halt inklusive Debugger/Programmieradapter. Man kann natürlich auch ein günstiges kleines Mini-Board selber designen, wenn man zu viel Zeit hat...
Man kann natürlich
auch ein günstiges kleines Mini-Board selber designen, wenn man zu viel
Zeit hat...
Die 2.Schaltung, die ich verlinkt hatte, ist auch fertig für einen einstelligen Eurobetrag zu bekommen - ohne 18 € Versandkosten + Umsatzsteuer.
Keine Frage, ein STM32F/G/H xyz hat optimale Hardware für eine Pulsweitenmessung. Platinen hätte ich für alle genannten Typen und auch für RP2040.
Gut, der TO hat seine Lösung und es ist kein Freitagsthema geworden!
Die 2.Schaltung, die ich verlinkt hatte, ist auch fertig für einen
einstelligen Eurobetrag zu bekommen
Na wenn es auf einzelne Euros ankommt ist die Seriengröße so groß, dass man sich auch ein Custom Board mit STM32 bauen kann und kommt dann auch auf diesen Preis. Man braucht dann nichtmal die externen Treiber ICs und kann ein nacktes LCD verwenden weil manche STM32 den kompletten LCD Treiber integriert haben.
Im Anhang sind die nötigen Einstellungen zu sehen, um die Pulsdauer per Hardware zu messen. Beim Prescaler stellt man z.B. die Haupt-Taktfrequenz (in MHz) minus eins ein (23 also für 24MHz Systemtakt). Das Ganz macht man bei einem der 32bit-Timer, hier TIM2. Dazu noch ein bisschen Code:
1
intmain(void){
2
...
3
/* USER CODE BEGIN 2 */
4
HAL_TIM_Base_Start(&htim2);
5
6
HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);// main channel
Ganz kurz: bei einer Einzelmessung wird die Genauigkeit nie besser sein als die Auflösung.
Ein paar zusammengeklickte Programmzeilen ergeben keine fertige Lösung.
Ganz kurz: bei einer Einzelmessung wird die Genauigkeit nie besser sein
als die Auflösung.
Meistens ist die Genauigkeit sowieso niedriger. Aber mit Hardware-Messung ist sie näher dran an der Auflösung, näher als bei softwarebasierter Messung.
Hallo Gemeinde,
eigentlich ein triviales Problem:
Die Impulsdauer messen.
24V Signal Impulslänge ca. 1ms, gewünschte Auflösung ca. 1µs.
Ich dachte, so ein "Timer" ist in jedem Frequenz/Funktionsgenerator
drin.
Meistens ist das nur ein Frequenzzähler der von einem periodischen
Signal
die Periodendauer ermittelt.
Ein sehr teures...
Racal 9904 macht das auch, ca 100€ auf dem Gebraucht Markt.
Ein professioneller Zähler halt.
Warum diese unsinnige Diskussion um Auflösung und Genaugikeit. Die von mir verlinkte Schaltung mit ATmega88/328 hat schon eine Genauigkeit von 1 µs. Einfach mal lesen. Und ich gehe davon aus, daß niemand solche Messungen mit internem RC-Oszillator als Referenz 'veranstaltet'.
Racal 9904 macht das auch, ca 100€ auf dem Gebraucht Markt.
Ein professioneller Zähler halt.
Wenn wir schon in den 70ern+++ sind, wie wäre es mit 2 x 74390, 2 x 74374, 4 x 7447 und etwas wie 7408 und 7414?
Vielleicht gibt es diese Teile ja schon in stromsparender Version?
;-)
Ich finde der Pi Pico macht das unglaublich gut mit extrem hoher Auflösung da er die mikrosekunden zwischen den Impulsen zählt! Watchdog zum restart im Fehlerfall hat er auch.
Der ESB32 kann das nicht.
import time
import gc
from machine import Pin, PWM, Timer, WDT
from umqtt.simple import MQTTClient
Ich finde der Pi Pico macht das unglaublich gut mit extrem hoher Auflösung da er die mikrosekunden zwischen den Impulsen zählt! Watchdog zum restart im Fehlerfall hat er auch.
Der ESP32 kann das nicht.
import time
import gc
from machine import Pin, PWM, Timer, WDT
from umqtt.simple import MQTTClient
Ich finde der Pi Pico macht das unglaublich gut mit extrem hoher
Auflösung da er die mikrosekunden zwischen den Impulsen zählt!
Mit jedem Arduino Nano bekommt man eine deutlich höhere Auflösung als eine läppische Mikrosekunde hin. Aber das gibt es nicht als Fertiggerät, sondern man muss selber ein paar Programmzeilen schreiben.
Mit jedem Arduino Nano bekommt man eine deutlich höhere Auflösung als
eine läppische Mikrosekunde hin.
Mit jedem Pi Pico bekommt man eine Auflösung von 5ns hin.
Das bringt Dir alles nichts, wenn das Signal vermatschte Flanken hat, oder die Flanken durch den nötigen Spannungsteiler ohne Frequenzkompensation vermatscht werden.
Das bringt Dir alles nichts, wenn das Signal vermatschte Flanken hat,
oder die Flanken durch den nötigen Spannungsteiler ohne
Frequenzkompensation vermatscht werden.
Musste gerade mal auf meine Armbanduhr schauen. Und – wie erwartet – wir befinden uns im 21. Jahrhundert.
Nicht nur dass der Schmitt-Trigger sich mittlerweile weitestgehend etabliert hat, auch die Messmethodik hat durchaus Fortschritte erfahren.
So kann man — wenn es denn nötig erscheint – völlig problemarm hunderttausende von direkt aufeinander folgenden Messungen durchführen und auswerten. Mit dem Pico2 kann man sogar 2× so viele machen. ;-)
Es mag vielen wie dunkle Magie erscheinen, isses aber nich…
Nicht nur dass der Schmitt-Trigger sich mittlerweile weitestgehend
etabliert hat, auch die Messmethodik hat durchaus Fortschritte erfahren.
Ein Schmitt-Trigger macht eine Flanke verglichen mit einem Komparator schön, indem er Schwingungen durch überlagertes Rauschen verhindert. Das definiert den Zeitpunkt des Schaltens aber nicht besser.
Das hat etwas mit Verständnis für Messtechnik zu tun, aber nicht unbedingt mit Fortschritt.
So kann man — wenn es denn nötig erscheint – völlig problemarm
hunderttausende von direkt aufeinander folgenden Messungen durchführen
und auswerten.
Hunderttausende von direkt aufeinander folgenden Messungen kann man ausführen, falls es entsprechend viele Ereignisse gibt. Solange sich der TO über die eigentliche Messaufgabe und die Auswertung ausschweigt, kann man da vortrefflich philosophieren - ziellose Spekulation.
Solange sich der
TO über die eigentliche Messaufgabe und die Auswertung ausschweigt, kann
man da vortrefflich philosophieren - ziellose Spekulation.
Also, ich persönlich habe, soweit ich erkennen kann, nirgendwo spekuliert.
Das spekulieren überlasse ich — überaus erfolgreich — anderen.
Die Aussage lautet weiterhin:
5ns Auflösung mit einem Pi Pico (oder Pico2)
Verifiziert.
Auch über eine Widerstand-Kondensator-Kombinationen am Eingang.
(140Ω / 18pf) (140Ω / 33pf)
warum immer höher schneller weiter?
Der TO schrieb folgendes
eigentlich ein triviales Problem:
Die Impulsdauer messen.
24V Signal Impulslänge ca. 1ms, gewünschte Auflösung ca. 1µs.
Warum dann der Bieterwettbewerb bis aktuell runter auf 5ns?
Dafür reicht auch ein Arduino Nano Every mit seinen 16MHz -> 62,5ns. TCB hat den passenden Timermode dabei und liefert das Ergebnis auf dem Silbertablett. Funktioniert natürlich auch mit anderen Controllern. Die Frage ist wie kompliziert/aufwendig die Einarbeitung sein soll.
Warum dann der Bieterwettbewerb bis aktuell runter auf 5ns?
Das war eigentlich nur eine Replik auf die (gut versteckte) Andeutung, dass ein Pico nur Mikrosekunden könne. (11:07)
Dafür reicht auch ein Arduino Nano Every mit seinen 16MHz -> 62,5ns.
15€ (also dreimal so teuer, dafür aber auch zwölfmal so ungenau)
TCB
hat den passenden Timermode dabei und liefert das Ergebnis auf dem
Silbertablett. Funktioniert natürlich auch mit anderen Controllern. Die
Frage ist wie kompliziert/aufwendig die Einarbeitung sein soll.
Bei diesen Software gesteuerten Frequenzzählern oder AD-Wandlern bin ich immer misstrauisch.
Gerade dieses Chinazeug für billig Geld ist schwierig.
Ich kann die Software nicht nachvollziehen.
Die Datenblätter zeigen eigentlich nur Sch...ße.
Da bleibe ich lieber bei Hardware.
Zb: CA3161, CA3162 und diesen ganzen ICM oder ICL- Kram.
Vielleicht bin ich auch nur zu alt.
Und wenn das so ist,.... dann ist das halt so:-)
Was mich interessieren würde, daß sich der TO nach nicht einmal 24 h für ein "Analog Discovery" entschieden hat. Davon gibt es mehrere Varianten, von denen mir keine nach einer zielgerechten Lösung für das unvollständig beschriebene Problem aussieht. Dabei erscheinen mir die Teile als 'Steckbrettausführungen', die nicht einmal über ein Display zur Ergebnisanzeige verfügen.
Auf die Anschaffungkosten scheint es ihm nicht angekommen zu sein.