Counter

In der sci.electronics.design-Newsgroup hatte letztens einer nach einem Geschwindigkeitsmesser gesucht. Ich habe mal für einen XC9572XL ein VHDL-Programm geschrieben, was die Zeit zwischen zwei Pulsen mit 50 MHz Genauigkeit messen könnte. War aber noch was Platz im CPLD, daher kann man damit jetzt Frequenzen messen, da ich sowas noch brauchen kann, und für die Zeitmessung ist es umschaltbar zwischen Start/Stop Puls an einem einzelnen Eingang, oder an zwei Eingängen, einen für Start und einen für Stop, sowie Pulslängenmessung an einem Pin. Ist schon faszinierend, was man in so einen einfachen und preiswerten Chip so alles hineinbekommt.

Ich überlege gerade, wie man dazu ein einfach bedienbares Benutzerinterface gestalten könnte. Meine Idee ist die vielfältigen Kombinationsmöglichkeiten auf 4 Fälle einzugrenzen und per Microcontroller auszuwerten. Kann dann per Taster ausgewählt werden, vielleicht noch mit ein paar Symbolen grafisch aufbereitet auf einem Frontpanel und LEDs, was gerade ausgewählt wurde:

- Zeitmessung mit zwei Pins: Steigende Flanke auf Start startet die Messung, steigende Flanke auf Stop stoppt die Messung

- Zeitmessung mit einem Pin: Steigende Flanke auf Start startet die Messung, noch eine steigende Flanke auf Start stoppt die Messung

- Zeitmessung eines Pulses: Steigende Flanke auf Start startet die Messung, fallende Flanke auf Start stoppt die Messung

- Frequenzmessung: Es werden die Anzahl steigender Flanken auf dem Start-Pin innerhalb eines Zeitfensters gemessen

Unabhängig davon 3 Einstellmöglichkeiten für die Torzeit bei der Frequenzmessung: 100 ms, 1 s und 10 s.

Unabhängig davon ein Taster "Einzeln", der jeweils eine neue einzelne Messung startet, und ein Taster "Wiederholend", der die Messungen mit der eingestellten Zeit immer wiederholt, wobei die Zeit im Zeitmessmodus als minimale Updatezeit verwendet wird, wenn mehr Start/Stop-Zyklen pro Updatezeit gemessen wurden und die mittlere gemessene Zeit angezeigt wird.

Das ganze dann schön klassisch mit 7-Segmentanzeigen dargestellt, von denen ich schon längere Zeit welche ohne Verwendung herumliegen habe.

Klingt das nach einer guten Idee?

Ich möchte dazu auch eine Platine entwerfen, um mal den PCB-Service von Olimex zu testen. Auf ein DSS-Panel passen bestimmt einige der Schaltungen drauf (ist ja nur ein CPLD, PIC und ein paar LED-Anzeigen plus Ansteuerung drauf), falls noch einer sowas brauchen kann. Ich würde dann die Platine mit den Bauteilen als Bausatz verschicken, wobei ich aber den 100 Pin TQFP und den PIC schon einlöten und programmieren könnte. Jetzt ist noch Zeit für Ideen und vielleicht komme ich sogar mal dazu, ein Hobbyprojekt bis zum fertigen Gerät zu bringen :-)

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss
Loading thread data ...

Symbole? Solche Runen wie auf manchen Armaturenbrettern? Lieber Klartext, notfalls auf Koelsch :-)

Das sieht alles so aus wie der Frequenzzaehler, den ich 1976 oder so gebaut habe. Diese Funktionen wie Du sie beschrieben hast haben mir immer ausgereicht, die mit zwei Pins hatte ich nie aber ist sehr praktisch. Das Dingen weilt immer noch unter den Lebenden hier, aber ewig nicht mehr benutzt weil das Scope den Job uebernahm. Der Zaehler war nicht in der Gewerkschaft ... :-)

Das klingt nach einer guten Idee, aber so rasend schnell sind CPLD ja nicht, braeuchte man noch einen Vorteiler drauf.

Vermutlich waere es fuer einen Bausatzvertrieb besser wenn das per USB an einen PC angehaengt werden koennte. Cypress PSoC mit USB oder was aehnliches dranhaengen, falls es fuer das CPLD keine USB Libraries gibt. Selber frickeln willst Du das sicher nicht.

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Text kommt auch drauf :-) Symbole aber denke ich sind sinnvoll für die verschiedenen Trigger-Modi, denn da braucht man dann nur den Start und den Stop Eingang darzustellen und daneben dann eine steigende Flanke malen, mit Pause dazwischen und noch eine steigende Flanke usw., je nach Modus. Das kann man dann schneller erfassen, als Text zu lesen.

Mein Scope ist da nicht besonders für geeignet, da es die Frequenz nicht allzu genau anzeigt (10 Sekunden Torzeit gehen da nicht) und die Start/Stop-Funktion mit zwei Pins wüsste ich jetzt auch nicht auf Anhieb, wie ich das ohne zusätzliche Frickelei per externen Flipflop hinbekommen würde. Ist vielleicht irgendwo in den tiefen der Logikmenüs versteckt.

Das bringt mich aber auf eine gute Idee: Ich sollte zumindest einen Schmitt-Trigger am Eingang spendieren (bis jetzt hatte ich geplant, direkt auf den CPLD zu gehen, der nur einen normalen CMOS-Eingang hat). Dann könnte ich auch Sinus usw. messen. Vielleicht noch einstellbare Schwelle und Hysterese. Gibt es da einen einfachen fertigen Komperator-Chip, der bis

50 MHz arbeitet?

Kommt drauf an, was für dich rasend schnell ist :-) Für meine Hobbyprojekte komme ich mit den 50 MHz aus, die der kann. Der Synthesebericht sagt sogar,

100 MHz wären maximal erlaubt, wenn man den etwas teureren schnelleren Speed Grade 5ns Typ nimmt (bei 10ns ist es ca. 76 MHz).

Die letzte PIC-Schaltung, die ich entworfen habe, hätte das schon drin und es gibt auch bereits Software dafür von Microchip. Die wollte ich sowieso als Teil davon einsetzen, sodaß man USB hätte. Aber was könnte man damit machen? So ein Frequenzzähler hätte ja nicht allzu viele Daten zu übertragen, wofür das 7 Segment Display ja reichen sollte.

Interessant wäre vielleicht, den CPLD per JTAG vom PIC programmieren zu können, was dann über USB gehen könnte und auch der PIC selbst ließe sich per Sotware über USB programmieren, sodaß man ein nettes kleines Entwicklungsboard mit PIC und CPLD hätte, was ohne sonstige Hardware und mit kostenlos verfügbarer Software (Microchip MPLAB und Xilinx ISE Webpack) für viele Dinge verwendbar wäre.

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Waere es nicht einfach nur einen Microcontroller zu verwenden wenn du schon einen verwenden musst? Und da der ja keine 50Mhz macht dann da einen Vorteiler vormachen?

Olaf

Reply to
Olaf Kaluza

Die Symbole kenne ich von meinem Philips Pulsgenerator, habe dann auf alle Knoeppschen gedrueckt und einen Spickzettel geschrieben. Umgekehrter Messbecher mit Strich drunter bedeutet nicht-invertierter Puls :-)

Meines zeigt immerhin 6 Stellen an und scheint recht genau zu sein. Als es neu war hatte ich ab und zu Gekrissel auf dem Schirm. Ja was jetzt ... oh, zeigte 123.050MHz an. Scanner eingeschaltet, auf 123.050MHz gestellt und zeitgleich mit dem naechsten Gekrissel kam es dann. " Cameron Park seven two romeo golf turning final three one Cameron Park " ... kurz darauf Motorengeraeusch und in 30m Hoehe tauchte vor dem Laborfenster eine Cessna auf. Peinlich, zum Glueck hatte das niemand gesehen.

Geht auch sehr schoen wenn man die Messwerte per Stream auf den PC schickt.

Schon, LT1719S6 da Du wahrscheinlich nur positive VCC hast. Kostet aber je nach Stueckzahl $1.50 bis $4.00:

formatting link

Ehrlich gesagt koennte ich mit 50MHz Limit heutzutage kaum noch was anfangen.

Sinnvoll waere das z.B. fuer Versuchsreihen. Laeuft gerade bei einem Kunden: Meine Chose steuert ein schnelles Ventil und hinten sitzt ein analoger Drucksensor. Da muessen jetzt die Schwellen zeitlich auf einige zig usec genau gemessen werden, und das dann per Logging ueber je eine Stunde oder so. Hoert sich an wie ein Maschinengewehr. Das geht bei der Datenmenge nur per PC. Da es Deinen Zaehler aber noch nicht gibt muessen wir das mit einem teuren NI Modul machen :-)

Ich haette einen LabJack im Streaming Mode genommen, war aber schon zu spaet.

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Nein, das wäre zu ungenau. Ich möchte ja auch einzelne Pulse, bzw. die Zeiten zwischen zwei Pulsen, mit hoher Genauigkeit messen und das geht nicht per Microcontroller, oder es ist ein sehr schneller, was dann aber meist höhere Interrupt-Latenzzeiten usw. bedeutet, also man bekäme nie die hohe Auflösung ohne viel Jitter hin, wenn man den Microcontroller nicht nur für die reine Messung einsetzen will und viel mit Opcode Timing jonglieren will. Eine DSP wäre vielleicht noch eine Alternative, aber ich glaube ein kleiner Microcontroller in Kombination mit einem CPLD ist am flexibelsten.

Ein Vorteiler wäre aber vielleicht noch zusätzlich sinnvoll, wenn man höhere Frequenzen messen will. Ich habe eben mal geschaut, Flipflops scheint es bis in den GHz-Bereich zu geben, auch gar nicht so teuer, aber bei den hohen Frequenzen scheinbar nur noch mit differentiellen Ein-/Ausgängen. Und da habe ich auch zu wenig Erfahrung und lasse da erstmal die Finger von. Ein CPLD mit 5 ns läuft bis 100 MHz, das müsste ich hinbekommen, werde aber vorher nochmal die Schaltung und das Layout hier posten.

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

formatting link

Preis ist nicht so wichtig, da es erstmal nur für mich ist. Der LT1719 sieht schon gut aus und bietet auch noch ein wenig Schutz an den Eingängen gegen ESD. Der CPLD ist das glaube ich empfindlicher.

Ich werde die 5 ns Version des CPLD einsetzen und ein 100 MHz Quarz dranbauen. Mein Design läuft damit dann bis 100 MHz. Ist aber nur die Worst-Case Angabe: wenn man das noch richtig per Constraints definiert und ggf. mit mehreren Clock-Domains arbeitet, könnte man da vielleicht noch mehr hinbekommen, aber für mich reicht es erstmal. Bei höheren Frequenzen könnte ich sowieso die Schaltung und das Layout nicht selber entwickeln :-)

Man könnte das auch auf einer SD-Card oder so speichern und dann später am PC auslesen, aber USB ist schon praktischer, wenn sowieso ein PC in der Nähe ist.

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Das verstehe ich jetzt nicht. Du zaehlst doch nicht im Controller von Hand sondern mit einem Timer. Und wenn deine Torzeit abgelaufen ist dann liesst du den aus. Dann brauchst du nur noch zu kucken was im Vorteiler steht. Also entweder direkt auslesen, oder wenn das nicht geht auf den Eingang mit dem Controller einen Takt von Hand drauf und kucken wann der Ausgang umschaltet.

Es gibt noch ein paar alte U813 aus Fernsehtunerzeiten. Den gibt es auch bei Reichelt noch. Die haben aber wohl auch eine UNTERE Grenzfrequenz.

Olaf

Reply to
Olaf Kaluza

Ein USB Device will man nicht auf einem CPLD/FPGA implementieren, zumindest die hoeheren Layers nicht. Das ist auch der Grund, warum in jedem Cardreader neben der schnellen Logik meist ein MCS51 implementiert ist, der das handelt. Es gibt aber sehr kleine 32-Pin Atmels oder PICs, die haben USB mit dabei, koennen die 7-Segment gemultiplext ansteuern, mit dem CPLD ueber SPI kommunizieren und noch rechnen.

Gruss,

Steffen

Reply to
Steffen Koepf

FPGA, steuert mehrere DACs, deren Signale zu Komparatoren gehen und das mit dem Eingangssignal vergleichen. Die Komparatorausgaenge zurueckgefuehrt auf den FPGA, digitale Eingangsfilter, getaktet mit

100 MHz. Logging in FPGA-Internes Block-RAM, mit Timestamp. Geht mit
Reply to
Steffen Koepf

formatting link

Trotzdem, Diodenschutz der ueblichen Art (R-BAV99-R) sollte schon rein. Bei meinem Zaehler ist auch noch eine flinke Schmelzsicherung drin. Man weiss nie was man mit bleiern muedem Kopf nachts um halb drei aus Versehen da anstoepselt ;-)

Dann vielleicht noch Over-Clocking. Im Ernst, DSOs laufen schonmal laessig mit 120% der Herstellerangabe am ADC.

[...]
--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Ich wuerde wahrscheinlich die faule Socke machen und einen USB-RS232 Konverter reinsetzen :-)

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Entweder mit dem LabJack oder (bei den meisten Firmen) per NI Interface in LabView rein. Manchmal auch in Excel. Am liebsten gehen sie inzwischen ueber Ethernet in die Rechner, weil USB zu zimperlich bei den Kabellaengen ist.

Sorry, National Instruments. Alles ziemlich teuer:

formatting link

GPIB mag ich ueberhaupt nicht, diese elenden Gartenschlaeuche. Das war IMHO schon immer ein Krampf, frueher hatte ich stattdessen alles ueber RS232 oder wenn das Volumen gross war direkt in den ISA Bus gepruegelt.

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Moin!

Jau, ich hab in selbigen mal 2 32-Bit-Zähler gesteckt, die mit jedem Auslesetakt umgeschaltet werden (es ist also immer einer der Zähler aktiv) mit SPI und 2 Eingängen für Frequenzzähler mit und ohne Vorteiler.

Gruß, Michael.

Reply to
Michael Eggert

Ich habe gerade mal im Datenblatt des STM32 nachgelesen und da gibt es tatsächlich einen Gated Mode, womit man die Zeitmessungen wohl hinbekommen würde, wenn auch nur mit dem internen Takt, also keine 100 MHz. Und problematisch wird es, wenn die Zeiten zwischen den zu messenden Pulsen zu kurz sind, da es so aussieht, als würde der Zähler immer zählen, wenn der Gate Pin aktiv ist. Bei meiner Implementierung habe ich das so gelöst, daß man den Zähler zuerst scharf schalten muß, dann beginnt er ab steigender Flanke zu zählen und hört bei fallender Flanke auf, bis zur nächsten Scharfschaltung. Kann sein, daß ich da was übersehen habe, aber das scheint mit der STM32-Familie (und einigen anderen Microcontrollern, die ich so kenne) nicht möglich zu sein. Ist natürlich trivial das extern nachzurüsten, aber für sowas ist der CPLD ja gedacht :-)

Ähnlich sieht es für die Frequenzmessung aus: Man kann scheinbar die externe Taktung des Counters mit der Gated-Funktion kombinieren. Leider sieht es so aus, als könnte man nicht ein internes Counter-Signal direkt für den Gate-Eingang nehmen. Kann man wahrscheinlich auch recht einfach lösen, indem man die PWM-Funktionalität eines weiteren Counters verwendet und den Ausgang auf den Gate-Eingang extern verdrahtet und dann noch die Interrupts passend programmiert, synchron zum PWM-Signal, um das rechtzeitig abzufragen, aber elegant erscheint mir das nicht. Ich hätte das gerne rein per (VHDL-)Software änderbar.

Danke, das wäre eine Idee. Die haben sogar ein Datenblatt bei Reichelt dazu. Geht bis 1,1 GHz, untere Grenzfrequenz ist 70 MHz. Einstellbar auf

64, 128 oder 256 Teilerfaktor und kostet auch nur 1,15 Euro.

Aber nur mal interessehalber: Wird der noch hergestellt? Falls ich mein Gerät doch mal kommerziell verkaufen sollte, wäre das für eine Serienproduktion nicht so gut. Aber da gibt es doch bestimmt ähnliche moderne Bausteine, die auch nicht viel kosten, oder wird das heute alles nicht mehr gebraucht, da der Fernsehempfänger komplett in einem ASIC ist?

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Guten Tag,

Le Sat, 24 Oct 2009 17:52:52 +0200, Frank Buss a écrit :

diese Beschreibung erinnert mich an einen Evaluationskit von Intersil für den ICM7226 den ich 1979, vor 30 (!) Jahren gekauft und aufgebaut hatte. Der 40-beinige Spezialkäfer konnte damals schon Frequenzen, Perioden, Zwischenzeiten und Frequenzverhältnisse messen und als Ereigneiszähler benutzt werden. Frequenzen bis 10 Mhz waren möglich, ein Vorteiler hatte auf der breadboarding area Platz. Drei scans der alten Anleitung kann man auf

formatting link

sehen.

Die Anzeige erfolgte auf acht Siebensegmentanzeigen, die BCD und Digit-Ausgänge konnte man auch benützen

aber natürlich fehlt der USB Anschluss ;-)

Als die alten Zeiten noch gut waren ...

Peter Greuter

--
http://www.teaser.fr/u/pgreuter/albumel.htm
Reply to
Peter Greuter

Sieht gut aus. Gibt sogar noch ein Datenblatt von 1997, scheint also längere Zeit verkauft worden zu sein. Und bei eBay kostet der immer noch 20 Euro und wurde auch schon ein paarmal verkauft. Schon interessant, daß ich einen ähnlichen Funktionsumfang in ein CPLD für 3 Euro implementiert habe, aber ohne LED-Treiber.

Was bei mir noch fehlt wäre die automatische Aufsummierung von 1, 10, 100 und 1000 Messungen der Periodenlänge. Das erscheint mir auch sinnvoll, da wie schon geschrieben, ein Microcontroller damit Probleme bekommen könnte, wenn die Lücken zwischen den Perioden zu kurz werden.

Aber wofür braucht man die Frequenzverhältnisfunktion? Wenn ich zwei Frequenzen habe, brauche ich die doch nur einzeln auszumessen. Will ich die wirklich parallel messen, nehme ich zwei Stück von den 3 Euro CPLDs :-)

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Der hat aber nicht schon immer 20Euro gekostet. Das Dingen ist wohl nur noch da um ein paar alte Geraete zu reparieren. Anders kann ich mir den Preis nicht erklaeren.

Fang nicht an zu denken! Sonst kommst du hinterher darauf das man einen Frequenzzaehler garnicht so oft braucht wie man glaubt. :-)

Olaf

Reply to
Olaf Kaluza

Scheint aber zumindest ein Markt da zu sein, sonst gäbe es so Geräte wie das hier nicht:

formatting link

Das hat interessanterweise ziemlich ähnliche Funktionen, wie der ICM7226, inklusive der Frequenzverhältnismessung und der Auswahl von 1, 10, 100 und

1000 für Anzahl Messungen usw. Der Messbereich geht aber bis in den GHz-Bereich, allerdings muß man dafür eine extra Buchse nehmen. Ist also noch ein Vorteiler vor dem ICM7226 :-)

Aber im Prinzip hast du Recht: Ein reiner Frequenz- und Zeitzähler ist ein wenig langweilig. Interessant wird es dann durch die USB-Anbindung und programmierbare Microcontroller. Ich werde also am besten an meinem Gerät ein Grafikdisplay statt eine LED-Anzeige anbringen, dann kann ich es noch vielseitiger einsetzen. Habe hier noch eine schöne 128x64 mit grüner Hintergrundbeleuchtung aus einem Restpostenverkauf.

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Le Sun, 25 Oct 2009 14:57:40 +0100, Frank Buss a écrit :

ich habe diese Funktion bis **gestern** nie benutzt, aber ich kann mir so etwas vorstellen :

erster Eingang : 50Hz ( oder 400Hz ) zweiter Eingang : "falsche Frequenz" Anzeige : 1.056 ( drei Kommastellen sind möglich )

--> Abweichung = +5.6%

für negative Abweichungen muss man aber wieder Kopfrechnen :-( also doch gleich einen Mikrocontroller mit etwas Rechenpower nehmen.

aber Frank hast schon recht : wirtschaftlich ist der ICM7226 heute nicht mehr. Ich wollte nur zeigen was **vor langer Zeit** mit einem Spezial-IC schon möglich war ;-)

Als eventuelle Vorteiler waren 11C90 vorgesehen, gibt es die heute noch ??

Peter Greuter

--
PS  auf   http://www.teaser.fr/u/pgreuter/albumel.htm
gibt es dank RoHS günstig alte MAN3640A Anzeigen !
Reply to
Peter Greuter

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.