Intro
Ik wil binnenkort graag een frequentieteller maken. Dit om de nodige opgewekte pulsen bij diverse projecten te monitoren. Soms gaat het om luttele pulsen per seconden, de andere keer om een paar Khz of in de MHz-range iets te bekijken. Op het internet zijn verschillende schema's te vinden, maar ben ik verbaasd over de claims die erbij staan.
Soms lijkt het schema in eerste instantie prima eruit te zien, totdat ik de datasheet erbij pak van een onderdeel. Het blijkt dan dat in theorie het schema er logisch uit ziet, maar in de datasheet vind ik bijvoorbeeld terug dat de gebruikte IC maar tot een paar MHz kan werken. Zo viel ik zelf ook in zo'n valkuil bij een eerste ontwerp. Ik zal het toelichten.
Een eerste poging
In eerste instantie dacht ik aan een rij met 10-tellers achter elkaar te knopen. Dat is op zich erg gemakkelijk, totdat ik me realiseerde dat er veel output-pinnen van deze batterij aan CD4017 uitgelezen moeten worden met de microcontroller. Het vereist dan aardig wat parallele input naar serieele output shiftregisters (CD4094) om de "stand" uit te lezen.
De tweede poging
Het moest dus iets anders en compacters worden.
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.
Uitleg
Zou de output van de CD4073(pin 10) naar een 8-bits counter van de microcontroller aangesloten worden, kan ik in theorie dan (8-bit counter => 2^8 = ) 256 * 4096 = 1.048.576 pulsen tellen, voordat de counter overloopt. Afgerond stel ik dat voor het gemak op 1 MHz. Aangezien een microcontroller ook nog eens op een frequentie loopt, ergens in de MHz, was ik vrij snel klaar.
Een microcontroller zou geen enkel probleem hebben met het bijhouden van bijvoorbeeld 1000 keer een overloop van de 8-bit counter. Met andere woorden, een betrouwbare frequentiecounter van 0 tot 1 GHz.
Wanneer ik echter in de datasheet van de CD4040 kijk, zie ik dat die tot max. 50 MHz zou werken. Met andere woorden, in theorie kan het makkelijk 1 GHz signalen meten, de praktijk is echter anders (tot max. 50 MHz).
Extra hulp
Nog even terzijde :
1) Ik was van plan om het inkomende signaal op de input van de CD4040 te controleren, door het in / uit te schakelen per seconde of fractie van een seconde.
2) Om de nauwkeurigheid te verhogen, was ik van plan om met parallele input, serieele output shiftregisters de CD4040 uit te lezen, na elke meting.
Goed, hoe kan ik het alsnog omzeilen om toch die hoge frequentie ook te kunnen bereiken ? Tsja, nogmaals een CD4040 ervoor zetten heeft geen zin, maar heeft toch mijn aandacht. Ik dacht in eerste instantie de oplossing in logica-ICs (AND, OR etc) te kunnen vinden, maar kwam er niet echt uit. Wel merkte ik de oplossing waarschijnlijk in de wereld van flipflops gevonden kan worden. Tot gisteravond heb ik via YouTube diverse video's bekeken om te zien hoe dat eigenlijk zou werken.
Wensenpakket
Goed, ik heb dus eerst een wensenlijstje opgemaakt, om te zien welke type flipflop zou kunnen werken.
A) Stop / start meting
Via de microcontroller zal een signaal aangeven wanneer er gestart kan worden met een meting en wanneer gestopt.
Dat zou inhouden dat op 1 van de pinnen een hoog signaal wordt afgegeven via de microcontroller, om de meting te kunnen starten, op de andere ingang het te meten signaal.
B) Reset
Zodra een meting is afgelopen, worden de pinnen uitgelezen van de flipflops. Bij een volgende meting zouden eerst alle flip-flops gereset moeten worden.
C) Hoge frequentie
Ik zou graag tot 200 MHz willen meten, liefst nog hoger. Volgens mij schiet een CD40xx of een 74HCxxx dan ruimschoots tekort.
De hamvraag
Kortom, ik denk dat een CD4040 best mogelijk is, maar er dient dus een veelvoud aan razendsnelle flipflops ervoor te zitten. Deze flipflops of misschien andersoortige oplossing is bedoeld om ook met hogere frequenties om te kunnen springen. Ik ben dus op zoek naar ideeen. Ik heb hier wel SN74LVC1G80 liggen. Pros had daarvoor al eens iets voor ontworpen als aan/uitschakelaar.
Dat vergt een aanpassing in het schema : Dr1 en C1 weglaten. Op de CLK het te meten pulsje. Maar die reset...
Vandaar dus mijn vraag, hoe en met wat zijn snelle, binaire delers of counters te maken ?
En dan nog dit
1) Om het ontwerp niet te beperken tot alleen 5V signalen, maar ook met lagere spanningen, leek me het gebruik van een comparator ook erg handig. De comparator zou evt. met een DAC aangestuurd kunnen worden.
2) Ik ken de GOOIT frequentietellers. Dat is een kastje met een antenne eraan. Erg leuk en de prijs is iets van 15 EUR. Op Youtube is te zien dat de frequentie best snel wordt weergegeven. En dat is in mijn geval ook een nadeel : de gemeten frequentie flitst in het scherm en is alweer van het scherm gewist, voordat je het goed en wel hebt kunnen uitlezen.