Home Bij het bouwen van een spectrum monitor
om
ATV signalen te evalueren, is er nood aan een
frequentie uitlezing.
Een kleine studie leerde dat door gebruik van een PIC het
mogelijk is tot het tellen van perioden. De bedoeling is om met
zo weinig mogelijk componenten een eenvoudige frequentie
uitlezing te ontwerpen en bouwen.
De gekozen PIC is een 18 pins IC type PIC16F84
van Mikrochip. Deze
processor bezit een interne timer van 8 bits breed en een prescaler van
256, ook 8 bits breed.
In serie geschakeld geeft dit een 2 byte brede
teller, een
decimale teller die telt van 0 tot 65536. De maximale
stijgtijd
van deze input T0CKI bedraagt 20nS anders uitgedrukt +-50MHz.
Om een frequentie teller te bouwen is een timer nodig die de
ingangspoort opent voor een wel bepaalde exacte tijd. Tijdens
deze
tijd telt de teller alle inkomende pulsen, als eerste in de
prescaler
gevolgd door een tweede teller,TMR0. Met een bron van 50Hz en de
ingangspoort open gedurende 1 seconde telt de PIC de pulsen.
Het
resultaat is 50 pulsen. Aangezien de poort open was voor 1
seconde wordt dit uitgedrukt als 50Hz. (Hz = aantal perioden per
seconde)
De openingstijd wordt nu verlaagd tot 0.1 seconde. De teller telt tot
5, 1/10de van de
normale tijd om de telling uit te voeren, de display duidt 5
aan. De pic voert nu een vermenigvuldiging uit met 10, zo toont de
teller 50Hz op de display.
Deze manier is de basis voor het schrijven van de software voor de PIC.
Poort RA4 is de telleringang. Deze ingang wordt een bepaalde tijd
afgesloten. Een kunstgreep dringt zich hier op. De pic bezit geen poort
die
exact kan sluiten en openen op bevel van het programma. Dit is absoluut
noodzakelijk voor een correcte meet-tijd. Hier is dit opgelost
door RB0 met RA4 te verbinden. RB0 wordt als output poort
geprogrammeerd 0 of 1 (0V of 5V) maar ook als input poort dus een
relatieve hoge input impedantie. Op deze manier wordt de ingangspoort
software matig gecontroleerd.
Het blokschema van de counter.
Het schema van de frequentie teller.
De counter is zo opgebouwd dat bij een nieuwe firmware de PIC niet uit
gesoldeerd hoeft te worden. Enkel door de jumper weg te nemen en de
connector A1 los te koppelen kan de PIC geprogrammeerd worden "in
circuit".
Hier is de input frequentie 101.32KHz.
De PIC count duidt 1009 aan, dus met decimaal punt 100.9KHz
Aangezien er maar vier digits zijn zal de uiteindelijke aanduiding in
MHz zijn (vb. 1255MHz)
De regenboog kabel is de ICSP kabel (Wat is ICSP?) die verbonden is met
de programmer,
elders beschreven op de site. De coax kabel met rode clip komt van de
blokgolf generator.
Het display is gemultiplexed en werkt zonder segment drivers en
begrenzingsweerstanden. Volgens de product data is de stroom van elke
poort begrensd op 20mA, wat de serie weerstanden overbodig
maakt.
Hoe zijn we er nu toe gekomen om de frequenties op deze manier te
delen?
Zoals reeds beschreven is de maximale stijgtijd van de PIC 20nS,
m.a.w. hoger dan 50MHz kan de PIC niet tellen, daarom
wordt het signaal gedeeld met een faktor 256. Dit geeft een
signaal die wél kan gemeten worden met de PIC. Na
vermenigvuldiging van de waarde, met een faktor 256, bekomt men de
correcte gegevens om weer te geven op de display. De tabel
met berekende waarden toont stap voor stap de deelcyclus.
De software is geschreven in machinetaal. Hier het Programma
en de objectfile
om in de
PIC te programmeren.
De printlayout en bestukkingsplan voor de counter:
Na het ontwerpen van de
PCB, het maken ervan alsook
het bestukken, brengen we de teller onder spanning.
Ziehier het resultaat.
De 7 segment display die hier gebruikt is, komt uit een afgebroken
personen weegschaal. Het leek eenvoudig om deze te gebruiken, alle
segmenten zijn intern al doorverbonden. Het verkrijgen ervan is een
ander paar mouwen. De hierna volgende print is misschien een oplossing.
De product data
van deze andere display.