[Frequentieteller] Nauwkeurig en snel


Als je alles wilt doen wat je hierboven beschreven hebt moet je wel een µcontroller gebruiken..maar zou je niet beter één kopen? want tegen dat je daar mee klaar bent, zijt ge toch zeker een jaartje verder, tenzij je iets kopieert.
Voor 10euro hebt je een 500MHz exemplaar.

En moest je toch van plan zijn om er 1 te maken maak dan dat hij ook de pulsbreedte (in µS) van signalen kan meten.
Ik heb ooit eens meegewerkt aan zoiets van iemand die een elektuur project had nagemaakt en waar een fout in zat (diode verkeerd om) maar dat ding kon bijna alles en was gemaakt met een ICL ic maar ik weet niet meer uit welk elektuurjaargang.

LDmicro user.

De standaard CMOS family is niet echt wat je zou kiezen voor hoge snelheden... ;)
Neem een 74Fxxx of 74FCTxxx

Arco - "Simplicity is a prerequisite for reliability" - www.arcovox.com

In plaats van de oude methodes denk ik dat het anno 2019 leuker / zinniger als men zich nader verdiept in het gebruik van de timer hardware van microcontrollers, en in belangrijke randverschijnselen daaromheen zoals prescalers, voorversterkers en referenties.

Er zijn zo ook al veel bestaande ontwerpen die als inspiratie kunnen dienen.

Mocht het om de lol van een retro oplossing gaan kijk dan eens in de manual van de Philips PM6622 / 24 / 25, dat is alles TTL en er staan volledige schema's in.

:P
Overigens heeft de eigenlijke teller in deze teller negen cijfers en loopt op maximaal 10 MHz. Met 32 bits ben je daar overheen.

Zo, ik wist niet dat er zoveel interessante reacties / info zou komen : Bedankt ! Verder heb ik even wat tijd uitgetrokken om de nodige suggesties te bestuderen, waarmee ik hieronder reageer.

@Aart :
Het lijkt me een deelschema, die er behoorlijk complex uit ziet. Ik begin daardoor wel te denken dat ik het projectje wellicht onderschat. Van de andere kant,. ik heb schema's kunnen vinden van tellers die er minder complex (en voor mij minder afschrikwekkend) uit zien. Daarnaast, ik wil er echt een microcontroller in bouwen, omdat ik het kastje nog een extra functie wil geven waarbij een microcontroller vereist is.

@Arco :
Dat is een goede suggestie ! Via een zoektocht heb ik geen 74FCT4040 kunnen vinden, maar wel een 74VHC4040FT bij Digikey. Deze heeft op papier bij 3.3V een F_max van 140 MHz aan zou kunnen, bij 5.0V tot zelfs 210 MHz.

@MGP:
In je link kwam ik inderdaad diverse tellers tegen voor een leuk prijsje op eBay. De meesten hebben een bepaald meetbereik. Daarmee bedoel ik dat ze niet altijd al meteen bij een lage frequentie kunnen starten of juist weer moeite hebben met de hogere frequenties (>50 MHz). En er zijn van die apparaatjes waarbij je kunt schakelen voor het meetbereik. Wat me opviel was dat velen gebruik maken van 7-segment displays. Maar ik zag ook de GOOIT (GY560) met antenne tussen zitten voor iets meer dan 11 EUR.

Wat betreft de Elektuur : ik ga zoeken in mijn digitale verzameling of ik het kan vinden. Zou met dat ontwerp nog meer te meten zijn, dan ben ik niet handig bezig om zelf opnieuw (een deel van) het wiel uit te vinden.

@RBeckers:
Ja, ik heb ze gevonden. Ik heb inmiddels diverse datasheets bekeken en ze dat het 2, 4, of 8-delers zijn en tot in de GHz'en gaan. Ik vond er velen wel erg interessant, totdat ik de prijzen bekeek. Ik denk dat ik de GHz-range moet laten varen. De enige die nog binnen bereik ligt, is de HMC434.

@RAAF12:
De binaire ripple-counter CD4040 kan theoretisch ook tot 50 MHz. Dat ik naar de 74-familie moet overstappen is me wel duidelijk geworden, zeker na de suggestie van Arco.

@Mel:

Ik heb wel eens met TTL een counter gemaakt.. tot 250 MHz.

Dat klinkt best interessant en ik ben benieuwd welke constructie of IC als teller daarvoor is gebruikt. Zou het dan de reeds aangestipte 74VHC4040 kunnen zijn ?

Van elk bezoek aan CO leer ik weer meer...
bprosman

Golden Member

Kent Electronics (C.O.B.Q) had vroeger een kitje met de MC12080
https://www.onsemi.com/pub/Collateral/MC12080-D.PDF

Lijkt nog steeds te krijgen te zijn en ook gebruikt.
https://www.foxdelta.com/projects/fc2a.htm

De jongere generatie loopt veel te vaak zijn PIC achterna.

Relatief is HC(T) nog vrij langzaam vergeleken de rest... ;)

Arco - "Simplicity is a prerequisite for reliability" - www.arcovox.com

Bij gebruik van een microcontroller, is er nog een andere mogelijheid voor een pre-scaler.

een I²C-synthesizer-chip uit een (satelliet)tuner. SP5055 is bruikbaar tot 2.5 GHz, heeft een testuitgang enkan daarmee ook op een 'rond' deeltal van 500 of 1000 gezet worden.

de microcontroller kan de synthesizer-chip simpelweg programmeren met het gewenste deeltal.(testmode, dan komt op pin P7 de gedeelde frequentie eruit (16*geprogrammeerd deeltal)

@bprosman:
Ik heb 'm gevonden, incl. datasheet. Voor de hogere frequentie van 200Mhz tot 1 GHz is die best bruikbaar. Verder is de chip vrij goed verkrijgbaar via AliExpress. Is dus interessant.

@Arco:
Volgens mij ben je een beetje aan het plagen. Ik moet het doen met componentjes die makkelijk verkrijgbaar zijn, snel zijn en voor een leuke prijs te koop zijn. De 74HCT4040 voldoet op alle 3 punten. Ik heb nog geen snellere versie gezien, waar ik mee uit de voeten kan.

@DC2PCC:
Ik heb de datasheet kunnen vinden en zie ook dat ie beschikbaar is via AliExpress. Ik heb niet helemaal door de datasheet kunnen bladeren, maar een prescaler van 500 is zeker interessant voor het hogere frequentiebereik.
Tot 200 MHz-metingen zou ik graag nauwkeurig de frequentie willen weergeven, maar gaat het hoger, dan zou ik best met wat minder nauwkeurigheid kunnen doen.

Hmm,. de MC12080 tot 1.1GHz en de SP5055 tot 2.5GHz. De MC12080 leidt tot een hogere nauwkeurigheid, de SP5055 een hoger frequentiebereik.

Van elk bezoek aan CO leer ik weer meer...

Daarmee bedoel ik dat ze niet altijd al meteen bij een lage frequentie kunnen starten of juist weer moeite hebben met de hogere frequenties (>50 MHz).

Dat komt omdat er grofweg 2 methodes zijn om de frequentie te bepalen.

  1. Gedurende een vaste tijd tel je het aantal pulsen, tijd kan bv 1mS, 1S enz zijn.
  2. Bij lage frequenties werkt dit niet of je moet de tijd heel erg lang maken dan draai je het om en je meet de periode tijd van een halve, hele of meerdere perioden.

Het ontwerp van de teller bepaalt waar het omslagpunt van 1 naar 2 ligt en bepaalt daarmee ook de laagst te meten frequentie. Meeste frequentie teller doen alleen manier 1 en kunnen daarom ook niet heel laag een goede meting doen.

Met enkel een micro kan je al tot 70Mhz meten.
https://www.pi4raz.nl/index.php?option=com_content&task=...;Itemid=46

Op 23 september 2019 15:36:44 schreef oxurane:
Wat betreft de Elektuur : ik ga zoeken in mijn digitale verzameling of ik het kan vinden. Zou met dat ontwerp nog meer te meten zijn, dan ben ik niet handig bezig om zelf opnieuw (een deel van) het wiel uit te vinden.

Hij staat in Elektuur India jan 1988 als "multifunctional frequency meter"
Ik weet niet of de NL versie op die datum verschenen is of op aan andere datum.
Maar hieronder het schema.

Maar ik zou er één kopen als uw budget beperkt is.

LDmicro user.
bprosman

Golden Member

De jongere generatie loopt veel te vaak zijn PIC achterna.

Op 22 september 2019 16:00:20 schreef oxurane:
Intro
Ik kwam daarbij uit op een CD4040 gebruiken. De CD4040 is 12-stage binary counter, wat inhoud dat een soort (2^12) 4096-deler zou ontstaan.
Om de microcontroller niet over te belasten, besloot ik om 2x een CD4073 te gebruiken, die een pulsje voor de counter genereerd, zodra er 4096 pulsen zijn gedetecteerd.

Als je gewoon Q12 naar de microcontroller voert, dan verandert dat signaal 2x per 4096 clocks. langzaam zat om met een pin change interrupt te verwerken. Als je echt 1x per 4096 pas lastig gevallen wil worden, dan zet je de pin change interrupt op negative edge only.

Jou huidige opzet levert als het goed is bij 250MHz een 4ns pulsje op wat naar de microcontroller gaat. Dat is te kort voor de meeste microcontrollers.

Als microcontroller zou ik een STM32F334 gebruiken. Die heeft een geinig peripheral wat tot 217 ps nauwkeurig timing kan meten.

Ik denk dat je dan heel aardig het verschil tussen 10MHz en 10.00000001MHz kan meten (10MHz + 1/100e), zelfs als je 10 metingen per seconde wilt hebben...

(De rest heeft meer verstand van de prescalers die je kunt gebruiken, dus daar hou ik m'n mond over...).

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

@RBeckers:
Tsja, ik begin me bewust te raken van wat mogelijk is, en wat nog "handig" kan zijn. Ik vraag me nu inderdaad voorzichtig af, tot hoe nauwkeurig ik eigenlijk wil gaan meten. Daarnaast komt ik ook tegen een ander probleem aan. Als ik op een zeer hoge frequentie wil gaan meten, tot hoe ver wil ik gaan met een comparator. Daar zit ook op een gegeven moment een grens aan, is het niet de snelheid, dan wel de kostprijs.

Ik had de MAX9203 of een TLV3501 in gedachten, maar merk nu dat beiden een grens kennen.
Bij de MAX9203 kan ik niet zien wat de max. frequentie waar nog netjes mee omgesprongen kan worden. Wel is in de datasheet een afbeelding te zien, wat er gebeurt met een 100 MHz signaal. Ik zie een verschuiving, maar het signaal komt er nog netjes door.
https://www.uploadarchief.net/files/download/f_maxmax920x.jpg

Bij de TLV3501 staat in de datasheet vermeld dat f_max = 80 MHz
https://www.uploadarchief.net/files/download/f_maxtlv3501.jpg

Maar kan ik dat nu zien als : Wanneer de frequentie 160 MHz is, dan zal de grens bereikt zijn (80MHz togglen), of is dat nu juist bij 80 MHz ?

@benleentje:
Ik was me hier van bewust. Ik had al zitten denken om per 0.1 seconde te gaan sampelen. Het voordeel is dat 2x een 74HC4040 (in serie) dan nog net niet is vol gelopen / uitgeteld bij 160 MHz.
Althans, ik beredeneerde het als volgt :
2^12 voor 1x 74HC4040, dus 2^24 voor 2 in serie, wordt 16.777.216, dus grofweg 16 MHz. Aangezien per 1/10 seconde wordt gemeten, kom ik uit op 160 MHz.
Het nadeel aan deze werkwijze : frequenties van 0 tot 10 Hz worden niet gedetecteerd.

Verder verras je met je link naar pi4raz. Ik wist niet dat een counter los van de de kloksnelheid waarop de uC werkt. Ik gebruik alleen maar AVR's (Atmega8 en Atmega328), maar zou het bij deze uC's op identieke wijze werken als bij de PIC ?

Achteraf ben ik maar wat blij dat ik mijn vragen hier stel met de frequentiecounter. Ik word door jullie op best wel belangrijke aspecten gewezen, die belangrijk zijn bij het ontwerp. En daarnaast is het mooi om te zien dat er zoveel mogelijkheden zijn aan componenten.

Wat ik wil bereiken is het volgende. Ik zit redelijk vaak met microcontrollers en dergelijke te werken. Soms werkt er iets niet, of lijkt het niet te werken. In bepaalde gevallen gaat het om doodsimpele laagfrequente signalen (<10 Hz), een andere keer om iets in de 100 KHz, weer een andere keer gaat het om veel hoger (100 MHz). Laatst zat ik bijvoorbeeld met een haperende keyfob voor een auto te stoeien. Die werkt op 433 MHz.
Kortom, een vrij breed frequentiegebied.
Ik heb hier een digitale scoop die tot max 50 MHz werkt en vrij log is. Althans, ik moet dat ding van de plank pakken, wat spullen van mijn buro ruimen, voordat ik daarmee kan werken (mits onder de 50 MHz). Na tig-keer was ik het wel een beetje beu. Vandaar dat ik graag iets wil bouwen dat werkt op een Li-Ion accu en in een kleine behuizing (pocket-formaat) past en een breed meetgebied heeft. Die Gooit (GY560) was dan ook het eerste waar ik serieus over na dacht om aan te schaffen. Alleen,.. in een demonstratievideo zag ik dat de gemeten frequentie maar erg kort in beeld is te zien. Vandaar dat ik dacht : ik ga het dan wel helemaal zelf doen.

==[ EDIT ]===
@Rew:
Je hebt volkomen gelijk wat betreft dat kortdurende pulsje die nauwelijk opgemerkt zou worden. Top ! Daar had ik helemaal niet bij stil gestaan. Ik ga het inderdaad aanpassen zoals je hebt aangegeven : Q12 op een INT-pin.
Verder, ik heb koudwatervrees voor andere uCs. Ik kan aardig uit de voeten met Bascom en AVR's.

@bprosman / MGP:
Ik heb 'm gevonden, bedankt ! Lijkt op 10 MHz. Ik vraag me wel nog af wat mel als ontwerp had (tot 250 MHz).

Van elk bezoek aan CO leer ik weer meer...
fatbeard

Honourable Member

Een ripple counter is -by design zou ik haast zeggen- ongeschikt voor hogere snelheden: uitgang 12 slaat 12 propagatie-delaytijden (plus een beetje) later om dan de klok-ingang. Voor de standaard HCT4040 is de delaytijd per trap 8ns en die van de eerste trap 14ns, dus voordat de 4096e klokpuls bij uitgang 12 is zijn er bij de maximum kloksnelheid van 90MHz al ruim 9 klokpulsen verstreken wat betekent dat de gewenste tellerstand van allemaal enen pas veel later dan gewenst bereikt zal worden, áls die al bereikt wordt.

Om dit soort snelheden te kunnen halen zul je moeten werken met (een) synchrone teller(s).

Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.

Ik had een oud ontwerp met allemaal TTL ic,s.. De eerste deler was zelfs ook een TTL geval, dacht ik.Maar welke weet ik niet meer. Het heeft eens in Electron gestaan, jaren geleden.

u=ir betekent niet :U bent ingenieur..

Een comparator aan de ingang is niet altijd nodig.
Bijvoorbeeld het meten aan TTL signalen. Ook kan een Schmitttrigger voldoende zijn. De maximum frequentie bij de TLV3501 is 80MHz.
De ingangsversterker zal voor verschillende frequentiegebieden anders zijn.

Denk ook eens aan de referentie tijdbasis. Die klok is erg belangrijk voor de nauwkeurigheid.

Met TTL kun je m.b.v. meerdere 74xx90, decadeteller, ook gemakkelijk een frequentieteller maken. Achter de 74xx90 een latch en een 7-segmentsdecoder die een 7-segment LED van stroom voorziet. Maar een microcontroller is een betere keuze.

Als je snel wilt tellen is de truuk altijd om een snelle kleine deler te hebben aan de ingang. Dat kan een D-flipflop zijn of een teller van een paar bits.

Als je naar commerciele chips gaat, dan is de eerste hit die ik kreeg bij analog devices en de HMC988. 0-4GHz. deelt door 32 (max). Dan houd je een 125Mhz signaal over wat je dan makkelijk verder kan verwerken. Des noods een 2e HMC988 in om nog een keer door 32 te kunnen delen om bij frequenties te komen die de AVR aankan. Zo zit je zonder gezeik redelijk snel op fors hoge frequenties.

edit: Farnell heeft dit specifieke chipje er uit gemikt. Mouser en digikey hebben hem nog wel voor 16 euro.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Ha oxurane,

In je startpost heb je het over langzame pulsen dan zou ik zeker gebruik maken van een reciproque teller voor frequenties < 10 MHz.
Het is belangrijk om de basis teller een zo hoog mogelijke ingangsfrequentie bereik te geven.
Dus voor frequenties > 10 MHz een eerste orde van 80 MHz zoals @rbeckers aan geeft 100 MHz is vandaag de dag haalbaar.
Een poort tijd van 1 Hz laat dan ook 1 Hz LSD zien bij gebruik van een deler voor je poort wordt met gelijk blijvende resolutie de tijd uiteraard alleen maar langer.
Om 1 Hz LSD te verkrijgen met een 10 deler zal je 10 Sec moeten wachten :(
Verder valt of staat je teller met het bepalen van het triggerpunt en de dynamiek van je ingang.
Ook je tijdbasis.... dit is een tweede belangrijk punt een kristal aan een uC hangen gaat absoluut niet werken als je serieus meten wil.
Ik denk dat voor jou toepassing een TI meting met event teller niet verkeert is zeker in het digitale werk.

Groet,
Henk.

Everything should be as simple as possible, but not simpler.

Jou huidige opzet levert als het goed is bij 250MHz een 4ns pulsje op wat naar de microcontroller gaat.

Is dat wel zo. Als je een 250Mhz door een flipflop haalt als 2 deler dan hou je over een signaal van 125Mhz met 8nS als periode tijd.

Als ik op een zeer hoge frequentie wil gaan meten, tot hoe ver wil ik gaan met een comparator.

Dat van de comperator zie ik even niet maar die al ook zeker niet direct op de ingang moeten staan.

Verder verras je met je link naar pi4raz. Ik wist niet dat een counter los van de de kloksnelheid waarop de uC werkt.

De counter kan dan in verschillende modi werken sychroon of asynchroon met de klok. En inderdaad is de counter van micro sneller dan je zou verwachten.

IK vraag me dan ook ineens hardop af hoe snel een counter in bv een ESP32 is. De chip zelf kan op 240Mhz geklokt worden dan verwacht ik van de counter dat ook minimaal. Met de 2,4Ghz deler eerder in dit topic is dat deel toch wel te doen. Echter zal een goede ingangscircuit voor 2,4Ghz met de nodige beveiligingen moeilijker zijn.

Dat kijk je af bij anderen bijv. op qsl.net

Die MB506 is max 2.4GHz

[Bericht gewijzigd door RAAF12 op 24 september 2019 18:53:30 (16%)]

- bij de SP5055 kun je ook kleinere deeltallen instellen, het zijn alleen wel altijd gehele veelvouden van 16.
- de MB506 van Fujitsu kan ook heel goed, kan zelfs ook door 256 delen ipv. 64. Die heb ik ooit eens gebruikt in een teller met 7 7-segment displays en 2 4553 IC's. door nog een 4-deler erachter (74HCT74) was het deeltal dan 1024 (en niet 1000!) door aanpassen van de poorttijd 1.024s ipv. 1s had ik dan een frequentieteller met 1 kHz resolutie. Om de uitgangsfrequentie van een PLL-oscillatortje te controleren voldooet dat uitstekend.

de Truuk met de SP5055 heb ik ook toegepast om een 1:1000 prescaler te bouwen voor een PM6620 counter. Ik heb daar een andere plessey-synthesizer gebruikt (SP5678) die is bruikbaar tot 3.5 GHz, maar moeilijk verkrijgbaar, de mijne kwam uit een sloop Satelliettuner.

Zo, ik had de afgelopen dagen even geen tijd om te reageren. Wel heb ik zijdelings de reacties kunnen lezen.

Ik denk dat ik het als volgt ga doen : dubbel tellen.
Met een 4040 via een INT-pin de frequentie tot 100 MHz in de gaten houden. Tegelijkertijd op een andere INT-pin, met een x-deler de hogere frequenties in de gaten houden. Ik weet nog niet met welke deler het gaat worden. Op zich is best nog redelijk nauwkeurig te tellen wanneer met een 256 of hogere deler wordt gewerkt.

Dan heb ik nog een vraag. Ik zit te denken om het ingangssignaal te blokkeren richting de teller. Een relais zou waarschijnlijk wel werken, maar is veel te traag.

Verder nog dit : ik had de comparator in gedachten, om tussen ingang en de uiteindelijke x-deler te plaatsen. Dit om ook zwakke, inkomende signalen te kunnen meten, via een antenne. Dat zie ik bij die Gooit-meter namelijk ook gebeuren. Voor hetzelfde geld is de gebruikte x-deler in dat apparaat al heel gevoelig. Ik weet het niet en zou graag willen weten naar welke gegevens ik dien te zoeken in een datasheet om dit te kunnen achterhalen ?

Van elk bezoek aan CO leer ik weer meer...

Op 27 september 2019 05:46:11 schreef oxurane:
Met een 4040 via een INT-pin de frequentie tot 100 MHz in de gaten houden.

Knoop Q11 aan een CLK-ingang v/d AVR. B.v. aan T1 van een ATmega328.
Laat TCNT1 gewoon tellen, en gebruik de overflow-ISR als je vreest dat een 12-bit en een 16-bit teller in serie niet volstaat.

Verder: als je er voor zorgt dat je de ingang van je meter kan loskoppelen van de 4040 CLK-ingang, en dat de AVR op zijn beurt de 4040 van klokpulsen kan voorzien, hoef je enkel Q11 v/d 4040 met de AVR te verbinden.

Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)

Op 27 september 2019 05:46:11 schreef oxurane:
Voor hetzelfde geld is de gebruikte x-deler in dat apparaat al heel gevoelig. Ik weet het niet en zou graag willen weten naar welke gegevens ik dien te zoeken in een datasheet om dit te kunnen achterhalen ?

Hier wordt de gevoeligheid in dBm gegeven.
https://nl.mouser.com/datasheet/2/609/hmc363g8-469023.pdf