Da hier im MC-Net gerade Frequenzzählerwochen sind und ich Lust hatte,
etwas herumzubasteln, hier eine kleine Schätzeisenaktion.
Ein Arduino Uno mit einem Siebensegmentdisplay.
Der Zähler scheint bis ca. 7MHz zu laufen ( Bild ). Er ist an einen DDS
Signal Generator FY6800 mit einem 100Ohm Widerstand angeschlossen.
Interessante Frage: Welche der beiden Zeitbasen verursacht die größte
Ungenauigkeit?
>Schönes "Led&Key" TM1638 Modul, gleich mal vormerken ;-)
Ja, die habe ich auch erst vor kurzem hier entdeckt. Für einen
Frequenzzähler sind die auch schöner als die LCD-Module, weil man sie
besser ablesen kann.
Um die Genauigkeit des Zählers zu testen habe ich mal mit dem Föhn drauf
gehalten: Die Frequenz läuft dann ziemlich schnell weg, was wohl auf
eine starke Temperaturabhängigkeit des Arduino-Quarz schließen lässt.
chris_ schrieb:> Da hier im MC-Net gerade Frequenzzählerwochen sind
Da geht es aber um andere Probleme, als in einer Dauerschleife vier
Funktionen aus einer LIB aufzurufen.
chris_ schrieb:> Die Frequenz läuft dann ziemlich schnell weg,
Das kann ich voll nachvollziehen :-|
m.n. (Gast)
>chris_ schrieb:>> Da hier im MC-Net gerade Frequenzzählerwochen sind>Da geht es aber um andere Probleme, als in einer Dauerschleife vier>Funktionen aus einer LIB aufzurufen.
So sieht's aus. Nichtsdestotrotz kann man einige der Probleme
offensichtlich ziemlich schnell mit meinem 30Minuten Quick-Hack
nachvollziehen.
Hier eine Sammlung der Frequenzzählerthemen, die ich gerade sehe:
https://www.mikrocontroller.net/articles/Frequenzz%C3%A4hlermodul#MessverfahrenBeitrag "8-stelliger Frequenzzähler, reziprok, STM32F7xx"Beitrag "FPGA reziproker Frequenzzähler">chris_ schrieb:>> Die Frequenz läuft dann ziemlich schnell weg,>Das kann ich voll nachvollziehen :-|
Interessant wäre die Temperaturabhängigkeit des auf dem Arduino-Uno
verbauten Quarzes zu kennen.
In der Wikipedia finden sich eine ziemlich ausführliche Liste und die
Anzahl der Bauformen der Quarzes ist immens, so dass sich ein
qualifizierte Aussage nur schwer machen lässt:
https://de.wikipedia.org/wiki/Schwingquarz
chris_ schrieb:> Nichtsdestotrotz kann man einige der Probleme> offensichtlich ziemlich schnell mit meinem 30Minuten Quick-Hack> nachvollziehen.
Welches denn?
> Hier eine Sammlung der Frequenzzählerthemen, die ich gerade sehe:
Wenn man den FPGA-Beitrag genau gelesen hat, findet man dort unter
Beitrag "Re: FPGA reziproker Frequenzzähler" einen
Link, der eine erschreckend ähnliche Lösung anbietet.
Aber wer kauft sich ein e-bike und sucht dann eine Bauanleitung zur
Demontage von Motor und Akku, um daraus ein normales Fahrrad zu
erhalten?
> Interessant wäre die Temperaturabhängigkeit des auf dem Arduino-Uno> verbauten Quarzes zu kennen.
Auf dem Arduino-Uno ist ein keramischer Resonator verbaut. So genau
sollte man schon hinsehen.
Im Netz gibt es Schaltungen, die diesen abklemmen und mit dem Arduino
einen reziproken Zähler aufbauen. Soetwas hätte ich hier unter der
Überschrift erwartet.
>Auf dem Arduino-Uno ist ein keramischer Resonator verbaut. So genau>sollte man schon hinsehen.
Ist auch gar nicht so einfach.
Auf dem UNO ist laut dem Bild oben ein
Murata CSTCE16M0V53-R0
verbaut.
Bei Mouser ist ein Datenblatt verlinkt, aber genau diese Bezeichnung
kann ich dort nicht finden.
chris_ schrieb:
> Der Resonator im Schaltbild.
Das im Bild eingezeichnete Bauteil ist ein Quarz und kein Resonator. Ein
Resonator hat 3 Anschlüsse, ein Quarz nur 2 !!!
Es gibt zwar auch Resonatoren in einem Metallgehäuse, habe ich aber
bisher noch keine in den Fingern gehabt... genausowenig wie ein Arduino
mit eingebautem Resonator.
Gängig haben die Quarze eine Genauigkeit von +-30 ppm, das sind 0,003% .
Die Temperaturempfindlichkeit der Ziehkondensatoren haben mehr Einfluß.
Ralph S. schrieb:> Das im Bild eingezeichnete Bauteil ist ein Quarz und kein Resonator. Ein> Resonator hat 3 Anschlüsse, ein Quarz nur 2 !!!
Der Schwingquarz ist ein Resonator und Bestandteil eines
Quarzoszillators.
https://en.wikipedia.org/wiki/Pierce_oscillator
Ralph S. schrieb:> Das im Bild eingezeichnete Bauteil ist ein Quarz und kein Resonator. Ein> Resonator hat 3 Anschlüsse, ein Quarz nur 2 !!!
Der 3. Anschluss ist vorhanden und geht von den beiden internen
Kondensatoren an GND.
https://de.wikipedia.org/wiki/Datei:Pierce-Oszillatorschaltung-3.png> genausowenig wie ein Arduino mit eingebautem Resonator.
Das ist aber das typische Bauteil für eine Originalausführung:
dummerweise, voll daneben und nicht einmal günstig.
>Frequenzzählerwochen
Eines meiner alten Projekte (ca. 1997) möchte ich in dem Zusammenhang
auch mal kurz vorstellen. Auch kein FPGA, nicht reziprok, aber im CPLD.
Damals gab es die ersten etwas größeren CPLDs auch im Einzelhandel
(Reichelt, ELV), speziell den Lattice ispLSI1016. Hatte der gute alte
22V10 noch 10 Register, so waren es hier immerhin 64. Passend für einen
Versuch minimalistischer Schaltungstechnik.
Lattice hatte als kostenlose Demosoftware eine CD speziell nur für
diesen kleinsten Typ herausgebracht. Programmierung mit ABEL/Synario.
ABEL ist nur eine Textbeschreibung für programmierbare Logik, Synario
bildete darüber noch eine grafische Oberfläche, die auch eine
Schaltplaneingabe erlaubte. Hier die Übersicht als Plan, die einzelnen
Blöcke sind ABEL-Texte.
Ähnlich kann man heute immer noch in Quartus arbeiten, auch wenn
Puristen den reinen Text bevorzugen.
Der 4 1/2 stellige Frequenzzähler ist als "Quarzmarke" für einen Wobbler
gedacht. Ein Komparator soll den Sägezahn des Wobblers mit einer
einstellbaren Spannung vergleichen. Der Ausgang "GATE" läßt sich dann
auf sein Y-Signal addieren, sodass die Wobbelkurve dort einen kleinen
Peak hat.
Der hier gezeigte Typ hat mit Zusatz "-80" unter bestimmten
Messbedingungen eine maximale Frequenz von 80 MHz. Der Zähler schaffte
bei Zimmertemperatur und Rückenwind sogar 150 MHz.
Die Kapazität des LCD stört die Darstellung etwas. Die rechteckige
Ansteuerung (wie im CD4543 Decoder wird der Ausgang durch Exor hier in
eine 312Hz Wechselspannung verwandelt) ergibt eine Art Ladungspumpe, an
den LCD-Anschlüssen sind Spannungen bis 10V zu messen. Dadurch war die
Anzeige unsauber.
>Eines meiner alten Projekte (ca. 1997) möchte ich in dem Zusammenhang>auch mal kurz vorstellen. Auch kein FPGA, nicht reziprok, aber im CPLD.
Ein schön minimalistisches Design ;-)
Mit den Lattice CPLDs hatte ich damals auch schon zu tun. Ich meine mich
zu erinnern, dass die Entwicklungsumgebung deutlich einfacher war als
ISE.
Ich versuche mich gerade an einer parametrischen 19-Zoll Frontplatte zum
Druck im 3D-Drucker mit OpenScad.
Georg M. schrieb:> Ralph S. schrieb:>> Das im Bild eingezeichnete Bauteil ist ein Quarz und kein Resonator. Ein>> Resonator hat 3 Anschlüsse, ein Quarz nur 2 !!!>> Der Schwingquarz ist ein Resonator und Bestandteil eines> Quarzoszillators.>> https://en.wikipedia.org/wiki/Pierce_oscillator
Das weiß ich sehr wohl, aaaaaber: egal ob am Arduino nun ein Quarz
hängt, oder ein Resonator: in keinem Falle hängt dort ein
Quarzoszillator dran (das kann man zwar mit einem ATmega auch machen,
ext. Taktquelle).
Aber hier wird dem Controller nur ein Resonator oder ein Quarz
angeboten. Die interne Schaltung des ATmega bildet mit dem Resonator
(oder einem Quarz mit Ziehkondensatoren der dann zu einem Resonator
wird) einen Quarzoszillator.
m.n. schrieb:> Das ist aber das typische Bauteil für eine Originalausführung:> dummerweise, voll daneben und nicht einmal günstig.
Du hast Recht !!!! (und ich habe nicht richtig hingesehen bzw. die
Typbezeichnung des Murata nicht gelesen). Hab ich extra einen originalen
Arduino rausgekramt und stimmt. Grundsätzlich habe ich mich verleiten
lassen, dass es um die Schaltung des Quarzes mit den Ziehkondensatoren
keine Umrandung als Bauteil gibt. Für mich hat das so ausgesehen, als
wären das lt. Schaltplan 3 Bauteile
Aber, du hast recht !
m.n. schrieb:> dummerweise, voll daneben und nicht einmal günstig.
Ob ich deswegen voll daneben bin weiß ich nicht ... wahrscheinlich schon
Die Konstruktion für den 3D-Drucker braucht mehr Zeit als gedacht.
Hier mal der Zwischenstand. Als nächstes wird ein Eingangsverstärker
gebraucht, sonst könnte der verwendete Pin 5 des Arduino schnell
abrauchen.
PJRC schlägt diese Variante vor:
https://www.pjrc.com/teensy/td_libs_FreqCount.html
Was ist davon zu halten?
chris_ schrieb:> Was ist davon zu halten?
Kann man schlecht sagen, ohne die Anforderungen zu kennen. Diese simplen
Verstärkerstufen mit einem Transistor und zufälliger Kollektorspannung
taugen nicht viel.
Da die Eingänge der AVRs schon Schmitttrigger haben, könnte es auch
reichen per Spannungsteiler den Gleichspannungspegel am Eingang auf
Vcc/2 zu bringen und das Signal kapazitiv einzukoppeln. Ein Widerstand (
10 k || 100 pF) in Reihe schützt in gewissem Rahmen vor Überspannung.
Die Hysterese der AVR-Eingänge ist eher kleiner als die eines 'HC14.
>Da die Eingänge der AVRs schon Schmitttrigger haben,
Da habe ich auch gerade daran gedacht. Vielleicht ist die einfachste
Lösung, den Eingang mit zwei Dioden und einem Widerstand vor
Überspannung zu schützen.
Wenn ich die "Maximum-Ratings" des Atmega anschaue, liegen die
Grenzwerte für die Spannungen aber genau bei den Diodenspannungen.
Sollte man sie verwenden, oder doch eher nicht?
>könnte es auch>reichen per Spannungsteiler den Gleichspannungspegel am Eingang auf>Vcc/2 zu bringen und das Signal kapazitiv einzukoppeln.
Kapazitiv einkoppeln ist immer ein wenig problematisch. Mir schwebt auch
eine Periodendauermessung vor und das ist bei PWM Signalen mit großem
Tastverhältnis dann schwierig.
chris_ schrieb:> Sollte man sie verwenden, oder doch eher nicht
Man kann für R1 100 k nehmen und Schottky-Dioden (BAT54S) verwenden oder
diese auch weglassen, da intern schon vorhanden.
Für DC-Kopplung braucht man einen Komparator. Je nach Grenzfrequenz
soetwas wie LM393, oder schnell wie der MAX961, oder schnell und mit
hochohmigem Eingang TLV3501, ...
Wenn man ICP1 von Timer1 als Eingang nutzt, kann man auch den internen
Komparator verwenden.
Kommt ganz darauf an, was Du machen willst.
>Man kann für R1 100 k nehmen und Schottky-Dioden (BAT54S) verwenden oder>diese auch weglassen, da intern schon vorhanden.
Ich hatte es mal mit den Shottkey 1N5819 simuliert, weil ich die da
habe. Aber dort bricht die Amplitude bei hohen Frequenzen zu stark ein.
>Kommt ganz darauf an, was Du machen willst.
Weiss noch nicht. Ich experimentiere einfach ein wenig herum.
Ich habe jetzt zwei Tasten des Anzeigboards in Betrieb genommen: ganz
links den Knopf, um Tara einzustellen ( aktuelle Frequenz wird abgezogen
), ganz rechts um wieder auf Default zu gehen.
Im Anhang das weglaufen der Frequenzanzeige ( Tara ) über 500 Sekunden.
Schottky hat es verdient, daß man sich seinen Namen merkt:
https://de.wikipedia.org/wiki/Walter_Schottkychris_ schrieb:> Ich hatte es mal mit den Shottkey 1N5819 simuliert, weil ich die da> habe.
Wenn Du einen Hammer brauchst, hilft Dir eine Säge nicht weiter. Die 25
A Spitzenstrom der 5819 willst Du sicherlich nicht nutzen.
100 pF || zu 100 kOhm sind bei höheren Frequenzen Pflicht.
chris_ schrieb:>>Kommt ganz darauf an, was Du machen willst.> Weiss noch nicht. Ich experimentiere einfach ein wenig herum.
Dann gehe mit Deinem Signal über die o.g. Schutzschaltung direkt auf den
AVR-Eingang. Virtuelle Schaltungen bringen hier nichts.
Kurven ohne Skalierung sagen nichts aus. Solange Du weiter den Resonator
vom Arduino verwendest, sind die Ergebnisse recht unbrauchbar.
chris_ schrieb:> Sollte man sie verwenden, oder doch eher nicht?
Das ist ganz einfach zu lösen. Es kommt ein kleiner Widerstand noch
zwischen die Dioden zum µC-Eingang. Irgendwas zwischen 50...100Ω. Dann
teilt sich der Strom auf und nur ein geringer Teil wird noch von den
internen Dioden übernommen.
Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)
>Irgendwas zwischen 50...100Ω.
Beispielsweise 10V: (10V-5V)/50 Ohm=100mA
bzw: -10V/50 Ohm=-200mA
Wenn ich ein 10Vss Signal habe fließen 100mA über die Schutzdiode des
Atmega in die Spannungsversorgung bzw 200 mA über Masse des Chips. Macht
der Prozessor das mit?
>Kurven ohne Skalierung sagen nichts aus.
m.n. (Gast)
Guck mal auf den Titel des Bildes
"FrequenzverlaufBei4MHzInput_x_sec_y_delteF.png".
Ok .. deltaF in HZ.
Der "Screenshot" des in der Arduino IDE eingebauten Plotters gibt da
nicht mehr her und alles weitere war mir zu aufwendig.
8 Tasten hat das Bedienpanel.
Welche Messgrößen könnten interessant sein, um alle Tasten zu nutzen?
Meistens wird die Frage nach dem Bedienkonzept ja vernachlässigt.
In meiner Bastelkiste habe ich einen alten Arduino Diecimilla mit
Atmega168 gefunden. Praktischerweise war am Anfang der Arduinozeit der
Sparzwang wohl nicht so groß und der Diecimilla besitzt noch einen
echten Quarz.
Und siehe da: Der Drift ist quasi verschwunden.
Einziger Wermutstropfen: Ein Unterschied von 104ppm zwischen dem FY6800
und dem Diecimilla Frequenzzähler.
Frage: wer ist Schuld? Die Italiener oder die Chinesen ;-)
Ich bin große fan vom HP, ich glaube daß in der 70s und 80s sehr
einfache und nutzliche Bedienungspanelen entworfen haben, z.B. der
HP8116A hat (ok, Pulse generator), 29 Tasten un ein 4 Stelliges 7 Seg
display. 2 Ausgangsbuchsen, 2 Einganbuchsen und ein Trimpot. Und eine
Menge LEDs :). Sehr intuitiv, schnell, ein paar Knöpfe und deine Signal
ist da.
Die einfache Zähler wie 5314A, 15A usw. haben eine minimalistische
Bedienung, mit wenig Knöpfe.
>Ich bin große fan vom HP, ich glaube daß in der 70s und 80s sehr>einfache und nutzliche Bedienungspanelen entworfen haben,
Ja, das wissen heute viele vielleicht gar nicht mehr: HP wahr ein großer
Messgerätehersteller.
Hewlett-Packard => Agilent => Keysight
HP hatte immer schon edle Messtechnik. Es lohnt auf jeden Fall ein Blick
ins HP-Archiv:
http://hparchive.com/hp_catalogs
Besonders die HP-Journale sind interessant:
http://hparchive.com/Journals/HPJ-1974-06.pdf
chris_ schrieb:> Einziger Wermutstropfen: Ein Unterschied von 104ppm zwischen dem FY6800> und dem Diecimilla Frequenzzähler.
Interessant auch die Temperatur von 22.2 Prozent.
> 29 Tasten
Ok Boomer. Es sind 33!
4x Up/Down := 8 Tasten.
Einige Dinge sind aber nicht so intuitiv.
Bei einem u.a. Pulsgenerator wäre ein Eingabe der
Periodendauer ausgesprochen wünschenswert gewesen.
Einen kleinen Rechenknecht hätte er ja für sowas.
Statt dessen darf man immer die Frequenz ausrechnen...
Und ein Knopf mehr, für ein Feintuning der Frequenz,
wäre auch nicht verkehrt gewesen.
Ein HP 5308A hat genau so viele Knöpfe, wie ein
Universalzähler mit 2 Eingängen (A/B) halt braucht.
Es gibt zusätzlich ein DC-Filter (aka AC) und
ein Dämpfungsglied je Kanal. Allerdings hat HP
das ganze wirklich nett und klein in 7 Schiebeschaltern
und 2 Potis mit Schalter zusammengefasst.
Zzgl. dem Betriebsartenschalter und der Zeitbasis.
Sowas will man nicht durch Chinaböller ersetzen.
>Ein HP 5308A hat genau so viele Knöpfe, wie ein>Universalzähler mit 2 Eingängen (A/B) halt braucht.
Hmm.. interessant: Schiebeschalter und Punktmatrixanzeigen, aber mit nur
6 Stellen.
Auch sehr interessant: Man kann wohl die Display-Update Rate
kontinuierlich einstellen.
Für was braucht man zwei Kanäle?
Periode gibt es und Pulsbreite. Hier wäre vielleicht Low- Und High-Time
nicht schlecht.
chris_ schrieb:> Für was braucht man zwei Kanäle?
Ich habe einen HP5302A, da haben die beiden Eingänge unterschiedliche
Eingangsimpedanzen, Empfindlichkeiten und Frequenzgrenzen.
Wenn ich mich recht entsinne, kann man auch Zeiten zwischen Impulsen an
A und B messen.
> Für was braucht man zwei Kanäle?
Na z.B. für 2 Lichtschranken.
> Hier wäre vielleicht Low- Und High-Time nicht schlecht.
Das geht natürlich. Dazu schaltet man A & B parallel.
Triggert mit Start Low und Stop High. Und umgekehrt.
Den 5308A, dass ist nur das Unterteil, kann man übrigens auch
mit einer 8 stelligen 7 Segmentanzeige kombinieren.
Für unterwegs passt dann noch ein Akkueinschub in die Mitte.
>Wie fest ist denn eine Frontplatte, die mit 3-D Druck erstellt wurde ?
Das hängt ein wenig von der Dicke ab, mit der gedruckt wird. Ich habe
sie 4mm dick gemacht, das ist schon ziemlich stabil. Wenn man es noch
stabiler wollte, könnte man auf der Unterseite auch ein paar
Verstrebungen drucken. So ähnlich wie bei einem T-Träger.
Die Eingangschaltung ist einfach ein Widerstand und zwei Klemmdioden.
Das Schaltbild und die Diskussion steht ab hier:
Beitrag "Re: Frequenzzähler Uno"
Die Bedieneinheit ist mit einer Art SPI angebunden.
Das Digitaldisplay mit Tasten gibt's für unter 10Euro beim Chinesen und
hat drei Anschlüsse zur Datenübertragung:
// GPIO I/O pins on the Arduino connected to strobe, clock, data,
3
// pick on any I/O you want.
4
#define STROBE_TM 4 // strobe = GPIO connected to strobe line of module
5
#define CLOCK_TM 2 // clock = GPIO connected to clock line of module
6
#define DIO_TM 3 // data = GPIO connected to data line of module
Die Funktionen auf den Tasten sind folgende:
1
#define BUTTON_TARA 0 // auf 0 kallibrieren, um Frequenzänderungen sichtbar zu machen
2
#define BUTTON_PWMDUTY 1 // PWM duty cycle in %
3
#define BUTTON_THIGH 2
4
#define BUTTON_TLOW 3
5
#define BUTTON_PERIOD 4
6
#define BUTTON_COUNTER 5
7
#define BUTTON_FREQUENCY 6
8
#define BUTTON_SERIAL 7
Der Arduino-Uno ist nicht sehr gut als Frequenzzähler geeignet, weil der
Resonator eine zu große Temperaturabhängigkeit hat.
Beitrag "Re: Frequenzzähler Uno"
Deshalb ist die Schaltung mit einem Arduino Diecimilla gemacht.
Der letzte Code siehe Anhang.
Die Treiber für den Frequenzzähler sollte man eigentlich selber
schreiben, um die reziproke Zählmethode besser zu nutzen. Dazu habe ich
aber keine Muße mehr, weil's mir hier mehr um die Gehäusetechnik ging.
N.G. schrieb:> Schönes "Led&Key" TM1638 Modul, gleich mal vormerken ;-)
Danke für den Tipp!
Gerade drei Stück von Marotronics.de erhalten. Machen einen sehr guten
Eindruck.