Spielversion eines Frequenzzählers

Das Forum für die Software der FPGA-Basisplatine
Antworten
magicroomy
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 205
Registriert: 01.12.2007, 09:23

Spielversion eines Frequenzzählers

Beitrag von magicroomy » 11.09.2008, 16:58

Hallo zusammen,
ich hab mal einen Spielentwurf eines Frequenzzählers für das FPGA entworfen, um mit dem ISE etwas vertraut zu werden.

Funktionsprinzip ist ganz simpel.

1) Das zu messende Signal geht auf 2 kaskadierte 16 Bitcounter. Der Anschluß ist übrigens der Clockanschluß des zweiten Quarzes.
Die Counter zählen wild drauflos. 32Bit sollten für alles reichen was in 1s an Frequenz reinkommt.

2) Es gibt einen Clock Generator, der die 50Mhz des FPGA Quarzes auf 1Hz herunterteilt um eine Zeitbasis zu haben.

3) Die Counter speisen 2 16 Bit Flipflops, die ihre Ausgänge auf das SPI Interface speisen, daß ich aus dem DDS geklaut hab. Damit ist durch Abfrage von 0? die Abfrage der Frequenz möglich.
Abfrage klappt mit der SPI Implementierung schon ganz gut. Setzen konnte ich noch keinen Wert. Liegt aber evtl. auch an der Firmware des ATMega. CM hatte da was geschrieben....

4) Der Clockgenerator (1s Zeitbasis) speist nun die zwei Flipflops und ein Hilfsflipflop. Sobald also die richtige Flanke des 1Hz Signals kommt werden die Counterwerte in die Flipflops übernommen. Das Hilfsflipflop hat als Eingang eine feste 1. => Bei der Flanke wird am Ausgang eine 1 erscheinen. Der Ausgang wird dann benutzt um die Counter zu resetten. Zusätzlich setzt der Reset auch das Hilfsflipflop zurück damit es bei der nächsten Flanke wieder "scharf" ist. Dadurch ist wiederum auch der Reset an den Countern weg und sie können wieder zählen. (Selbstabwürger)

Wer Lust hat kann es sich ja mal anschauen.
Ich hab mal einen 1Mhz Quarz reingesteckt und ich bekomme ca. 1MHz über den Optobus gemeldet.
Was mich etwas wundert ist die Schwankung in der Messung. Die 1MHz können schon mal um 10000 +/- Abweichen und das finde ich extrem viel.
Aber vielleicht hat ja von euch einer eine Idee woran das liegt.

Viel Spass Magic Roomy
Dateianhänge
Counter_V1.zip
Die sourcen und das Binary (bit=>bin umbenennen)
(119.53 KiB) 109-mal heruntergeladen

magicroomy
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 205
Registriert: 01.12.2007, 09:23

Schankung gefunden

Beitrag von magicroomy » 11.09.2008, 19:38

Hab meine Schwankung in den Zählerständen gefunden. Kaputter Testquartz.
Mit anderem Quartz ist es schön stabil +/- 1 Zählerstand.
Jetzt brauchts noch einen Analogteil und dann sieht es schon ganz gut aus.

Gruß
Volker

Antworten