Forum: Projekte & Code AVR-Frequenzzählermodul 1Hz - 40MHz


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Axel S. (a-za-z0-9)


Lesenswert?

Dieser Thread ist gedacht als Fortsetzung des (überlaufenden und hier 
besser passenden) Threads Beitrag "Frequenzzähler 1Hz - 40MHz" 
aus dem Forum "Mikrocontroller und Digitale Elektronik" nebenan.

Neben der Diskussion soll dieser Thread vor allem dazu dienen, neue 
Firmware-Versionen anzukündigen. Für eine generelle Übersicht sei auf 
den zugehörigen Wiki-Artikel Frequenzzählermodul verwiesen.


BR, XL

von Axel S. (a-za-z0-9)


Angehängte Dateien:

Lesenswert?

Wie letztens schon angekündigt, kommt hier die neue Firmware-Version 1.7 
für die Hardware-Variante mit LCD.

Was hat sich geändert:

- 16 Zeichen breite Displays können wahlweise 6 oder 7 Stellen anzeigen
- das Zwischenergebnis (immer schon 7 oder 8 Stellen) wird jetzt korrekt 
gerundet; frühere Versionen haben die zuätzlichen Stellen einfach 
abgeschnitten

Im Anhang:

- neues Firmware-Archiv mit Quellen und main.hex für 6 Stellen
- eine main7.hex für 7 Stellen
- 7stellen.diff - die Änderungen mit denen main7.hex gebaut wurde

Zum Thema "7 Stellen" - dies ist ein zweischneidiges Schwert.

Zum einen muß man für 7 Stellen die nominelle Torzeit verlängern. Die 
mitgelieferte main7.hex verwendet z.B. 10 M Takte der Referenzfrequenz, 
was mit dem Default von 14.318MHz eine Torzeit von mindestens 732 ms 
entsprechend maximal 1.3 Messungen pro Sekunde ergibt. Trotzdem ist der 
mittlere systematische Meßfehler jetzt ein halbes Digit, maximal 1 
Digit.

Zum zweiten sind nackte Quarze nicht stabil genug, um 7 Stellen zu 
liefern. Z.B. hat mein Testaufbau über Nacht auf dem Tisch gelegen und 
einen stinknormalen 40MHz XO gemessen. Nach dem Einschalten der Heizung 
- was ca. 4°C ausmacht, wanderte das letzte Digit um 3-4 Werte. Und das 
ist nur die Differenz der Drift des 14.318MHz Referenzquarzes und des 
40MHz XO.

Schlußfolgerung: für 7 Stellen braucht man mindestens einen TCXO als 
Referenz, sonst ist das letzte Digit gewürfelt. Immerhin kann man mit 7 
Stellen die Temperaturdrift eines Quarzes eindrucksvoll nachweisen. 
Finger auf den XO gelegt ergibt nach ein paar Sekunden ein Wandern der 
letzten Stelle.


BR, XL

von Axel S. (a-za-z0-9)



Lesenswert?

Auch für die LED-Version gibt es nun eine neue Firmware 1.7 (angezeigt 
als 01.07.00). Außerdem habe ich noch ein paar Bilder angehängt.

Was gibt es Neues:

- das Ergebnis ist jetzt korrekt auf 6 Stellen gerundet

In Version 1.6 wurde zwar schon das Zwischenergebnis von 7 bzw. 8 
Stellen selber gerundet. Für die Anzeige wurde aber alles nach den 
ersten 6 Stellen abgeschnitten. Jetzt wird richtig gerundet.



BR, XL

von W.S. (Gast)


Lesenswert?

Axel Schwenke schrieb:
> Zum Thema "7 Stellen" - dies ist ein zweischneidiges Schwert.

Nö, eigentlich nicht. Ach Axel, du hättest schon vor langem mehr an die 
Referenz denken sollen. Aber das ist ein Thema, was man zum Teil ja 
auch noch nachträglich bessern kann: Für ein batteriebetriebenes Gerät 
einen TCXO und bei nem Netzgerät einen OCXO. Bloß bei der 
Referenzfrequenz scheint dir dein Atmel enge Grenzen zu stecken.

Mit einem TCXO ist die Sache viel angenehmer. Ich hatte ja (damals..) 
einige Toyocom TCO-990 mit 13 MHz für meinen PIC-Zähler gekauft. Sind OK 
und schlucken nur 2..3 mA bei 3.3V. Bloß die Frequenz könnte höher sein.

Hab grad was gesehen: Ebay: item=110965837749, ist ein Toyocom TCO-986A1 
mit 26 MHz.

Ansonsten ist am Sonnabend in Hannover die "Interradio" Amateurfunkmesse 
mit Flohmarkt, wo man sowas sicherlich bekommt.

W.S.

von Uwe (de0508)


Lesenswert?

Hallo,

den Toyocom TCO-986A1 habe ich auch schon länger hier liegen muss ihn 
mal an 3V anschließen und testen. Er soll Uss=0,8V liefern, das würde 
gerade so bei meinem atMegax8 reichen.

von W.S. (Gast)


Lesenswert?

Gönne ihm doch nen Komparator, ADCMP600 oder sowas, oder nen 
LVDS-Empfänger (gibt's von MicroChip).

Nebenbei: Axels Zähler hat ja auch nur einen TTL-Eingang und wer damit 
messen will, muß sich Gedanken über ein Frontend machen. Da ist dann 
sowieso das Beschaffen von nem Komparator angesagt.

W.S.

von Axel S. (a-za-z0-9)


Lesenswert?

W.S. schrieb:
> Axel Schwenke schrieb:

>> Zum Thema "7 Stellen" - dies ist ein zweischneidiges Schwert.
>
> Nö, eigentlich nicht.

Naja. Irgendwie schon. Weil man es ja auch ganz gerne mal kalibieren 
will.

> Ach Axel, du hättest schon vor langem mehr an die
> Referenz denken sollen. Aber das ist ein Thema, was man zum Teil ja
> auch noch nachträglich bessern kann: Für ein batteriebetriebenes Gerät
> einen TCXO und bei nem Netzgerät einen OCXO. Bloß bei der
> Referenzfrequenz scheint dir dein Atmel enge Grenzen zu stecken.

10MHz ist eine gängige Größe. Und mit einem Mega88 kommt man bis 20MHz. 
Irgendwo dazwischen sollte sich doch was finden lassen.

Ich habe in meinem Fundus noch zwei TCXO 12.8MHz und einen TCXO 10MHz. 
Die muß ich die Tage mal mit einer Aufholstufe an den AVR hängen und 
schauen was sich da tut.

Außerdem liebäugele ich mit einem MV89, das ist ein DOCXO mit 10MHz. 
Kostet EUR 30,- in der Bucht. Oder gleich den ganzen Weg und für EUR 
80,- ein Rubidiumnormal :)

Ein anderes Problem ist die Torzeit. Mit 10MHz Referenz muß man für nur 
7 Stellen halt schon eine ganze Sekunde lang messen. Für 8 oder mehr 
Stellen braucht man dann schon einen Interpolator. Oder ich probiere mal 
die Regressionsmethode die letztes Jahr angesprochen wurde.

Nö, erstmal kommt 64-bit Arithmetik und ein Vorteiler-Jumper. Im Moment 
sieht es aus, als ob ich ein bisschen Zeit dafür hätte :)

> Ansonsten ist am Sonnabend in Hannover die "Interradio" Amateurfunkmesse
> mit Flohmarkt, wo man sowas sicherlich bekommt.

Hannover ist mir zu weit weg :(


XL

von m.n. (Gast)


Lesenswert?

W.S. schrieb:
> Nebenbei: Axels Zähler hat ja auch nur einen TTL-Eingang und wer damit
> messen will, muß sich Gedanken über ein Frontend machen.

Aber das hatten wir doch schon vor einem Jahr. 
Beitrag "Eingangsstufe für Frequenzzähler DC-50MHz, +5V"
Leerplatinen wären auch vorhanden.

von Klaus O. (owo)


Lesenswert?

ich würde gerne eine Platine herstellen oder beziehen.
Was Selberätzen betrifft ,so bin ich mit der Textdatei "LED-board.pcb"
erst mal außen vor. Kann mir bitte  jemand weiterhelfen?

von Axel S. (a-za-z0-9)


Lesenswert?

Klaus Oelsner schrieb:

> ich würde gerne eine Platine herstellen oder beziehen.

Hast du denn auch die passenden Displays?

> Was Selberätzen betrifft ,so bin ich mit der Textdatei "LED-board.pcb"
> erst mal außen vor. Kann mir bitte  jemand weiterhelfen?

Das ist ein Layoutfile für die 'pcb' Komponente aus gEDA. Ist Open 
Source und gibts für UNIX und Windows. Wenn du magst, kann ich dir das 
als PDF oder Postscript exportieren.


XL

von W.S. (Gast)


Lesenswert?

Axel Schwenke schrieb:
> 10MHz ist eine gängige Größe. Und mit einem Mega88 kommt man bis 20MHz.
> Irgendwo dazwischen sollte sich doch was finden lassen.

Ja, genau DAS ist dein Problem. Du hängst bei der Referenz am zulässigen 
Bereich für den Systemtakt und das ist eben IMMER eine Einschränkung. Du 
hättest das besser entkoppeln sollen, macht weniger Sorgen. Wenn ich das 
recht sehe, dann hast du ja sowieso 2 Fullsize-TTL-IC's mit auf der 
Platte: einen HC590 als Vorteiler und einen HC74 als Tor. Du bräuchtest 
wirklich nur noch einen dual Bustreiber und anstelle des HC590 einen 
dual 4 Bit Zähler (Nummer hab ich grad vergessen), was insgesamt keine 
riesige Änderung im Hardware-Aufwand wäre, und du hättest damit die 
Freiheit, alles an Oszillatoren bis ca. 120 MHz als Referenz benutzen zu 
können. Gibt ne Menge Freiheit für eine echte Stelle mehr bis hin zu 8 
gültigen Stellen, wenn die Referenz mitmacht.

Ach ja: Ich habe mir von den obengenannten TCXO's ein paar gekauft und 
bin zufrieden: Laufen mit 2.5 V bis 3.3 Volt, schlucken bei 3.3V nur ca. 
1.5 mA und bei 2.5V nur 1 mA. Das Ausgangssignal hat ca. 1.4 Volt 
Spitze-Spitze bei 3.3V und ca. 1.1V bei 2.5V. Ist ein auf der L->H 
Flanke sehr verschliffener Rechteck, braucht also nen guten Komparator 
(ADCMP600, MAX999 und Konsorten). Also saugut für portable Anwendungen. 
Aber eben 26 MHz und das ist für deinen Atmel zu viel.

Aber die Dinger in deinem Fundus sollten es tun.

Axel Schwenke schrieb:
> MV89

Meinst du die Trimbles von Flyingbest? Ja, die sind gut. Riesig, rostig 
und stromschluckend, aber gut. Hab 2 davon und mir daraus zwei 
Frequenznormale gebaut. In den ersten 2..3 Minuten nach Einschalten 
rennen sie um rund 120 Hz nach oben, aber dann stehen sie beide astrein. 
Die Frequenzverstellung (Feintuning) reicht - wenn ich mich recht 
erinnere - für +/- 7 Hz sofern man sie beschaltet. In der Anfangszeit 
hatte ich Zweifel, da mein Auersbach-Zähler bei beiden auf 10.000.018 
bis 10.000.022 Hz kam, aber das Karnickel war mein Zähler, dessen "OCXO" 
ne Katastrophe (Deutsche Wertarbeit..) war.

W.S.

von Klaus O. (owo)


Lesenswert?

Axel Schwenke schrieb:
> Wenn du magst, kann ich dir das
> als PDF oder Postscript exportieren.

 Das  file als PDF wäre sehr nett.
Die Displays sind kein Problem.

Danke!

von Axel S. (a-za-z0-9)


Lesenswert?

W.S. schrieb:
> Axel Schwenke schrieb:

>> 10MHz ist eine gängige Größe. Und mit einem Mega88 kommt man bis 20MHz.
>> Irgendwo dazwischen sollte sich doch was finden lassen.
>
> Ja, genau DAS ist dein Problem. Du hängst bei der Referenz am zulässigen
> Bereich für den Systemtakt und das ist eben IMMER eine Einschränkung.

Keine, die mich beißt. Wenn man sich im Bereich der höherwertigen 
Normale umschaut (OCXO, Rubidium) dann liegen die alle in diesem 
Bereich.

> Du hättest das besser entkoppeln sollen, macht weniger Sorgen
...
> Freiheit, alles an Oszillatoren bis ca. 120 MHz als Referenz benutzen zu
> können.

Ich habe gar keine Sorgen. 80% der Quarze und Oszillatoren und 100% der 
TCXOs in meinem Fundus liegen in diesem Bereich. Und 100MHz Referenz 
will und brauche ich nicht. Das baut dann ja auch keiner mehr nach.

>> MV89

> Meinst du die Trimbles von Flyingbest?

Kenn ich wiederum nicht. Der MV89 ist ein Double Oven von Morion 
(Russen, St. Petersburg). Recht groß (musser auch, damit genügend 
thermische Masse da ist). Und vermutlich gußeisern. Nächste Woche hab 
ich einen :)

> In den ersten 2..3 Minuten nach Einschalten
> rennen sie um rund 120 Hz nach oben, aber dann stehen sie beide astrein.

Ach was. Wie ungewöhnlich für OCXOs ;)

> Die Frequenzverstellung (Feintuning) reicht - wenn ich mich recht
> erinnere - für +/- 7 Hz sofern man sie beschaltet.

Für den MV89 nennt das Datenblatt +/- 0.25ppm. Also gerade mal +/- 2.5Hz 
bei 10MHz.


XL

von Michael D. (mike0815)


Lesenswert?

Hallo Axel,

jetzt kann dein Code im AVR-Studio 4.19 ohne Probleme kompiliert werden.
Wichtig ist, dass der "main" Filename bei Projekterstellung erhalten 
bleibt(main.aps).
Im Makefile sind die wichtigen Kompilierprozeduren angegeben und man 
sollte dies als externes Makefile(Main Project Options), welches im 
selben Ordner wie die Source u. Header Files sein muß, im Studio 
angeben.

Nach jeder Änderung (inkl. abspeichern) im Code,
muß die Option "Rebuild Project" durchgeführt werden, danach wird neu 
kompiliert.

Gruß Michael

von Axel S. (a-za-z0-9)


Lesenswert?

Gute Nachricht: ich habe mich endlich mal aufgerafft und das Reziprok- 
zählerverfahren inclusive der Besonderheiten meiner Implementierung im 
Detail dokumentiert:

Frequenzzählermodul: Messverfahren


HTH, XL

von Uwe (de0508)


Lesenswert?

Danke Axel !

von Nachbauer (Gast)


Lesenswert?

Hallo,


hat da noch jemand fertig geätzte leere Platinen für mich ?

Für den Controller und für die LED oder LCD Anzeige?


Danke

von Ich nicht (Gast)


Lesenswert?

Ich nicht

von Thomas D. (thomasderbastler)


Lesenswert?

Nachbauer schrieb:
> hat da noch jemand fertig geätzte leere Platinen für mich ?

Der Kina man..

von Ich nicht (Gast)


Lesenswert?

Wo gibt's das beim kinamann , lieber Thomas?

von Sermon (Gast)


Lesenswert?

Hallo, benötige dringend Hilfe,

im Projekt finde ich eine Layout "Board.pcb".

Ich konnte es bisher nur mit der Freeware Geda und dem PCB Program 
öffnen.
Allerdings sehe ich nicht alle Layer auch, wenn ich diese in der SW alle 
aktiviere.


Was mache ich falsch?
Ich weiß mir keine Hilfe mehr als hier darum zu bitten.

Danke für Eure Hilfe

von Sermon (Gast)


Lesenswert?

Ok,

das beiliegende PCB ist nur als Gerüst gedacht gewesen, wie Axel 
bestätigt.

Also keine komplette Platine, schade

von Old Papa suchen (Gast)


Lesenswert?

Wo ist old Papa?
Ich muss Ihn was wichtiges fragen!

von Old P. (Gast)


Lesenswert?

Ähm, hier isser...

Old-Papa

von Sermon (Gast)


Lesenswert?

Ahh Old Papa,

Hab Dir ne PN nach WEB.de gesendet.
Such dringend Leerplatine.
Kannst Du helfen?

Danke.

von Old P. (Gast)


Lesenswert?

Kann sein.
Auf Web.de kam nix an (oder liegt im Spam)
Ich schau da gleich mal rein

Old-Papa

So, ich habe nachgeschaut. Ich habe jetzt ein paar Autos gewonnen, 
Bargeld auch und könnte sogar Kredite bekommen (die sollten sich mal 
absprechen...). Dann möchten mich Lisa, Olga und Gedöhns kennen lernen, 
nur von Dir war nix dabei.

von Sigi S. (sermon)


Lesenswert?

Moin,

das hab ich Dir über web.de geschrieben:


Mit Begeisterung habe ich Dein Engagement bei diesem Projekt beobachtet 
und ich würde mir gern so ein Modul bauen.
Bin mit Lochraster angefangen, habe aber gestern weinend aufgehört...

Hast Du noch 1-2 solcher Platinchen übrig, oder kennst Du jemanden der 
noch welche hortet?

Falls nicht, kannst Du mir die Dateien für Sprint Layout überlassen, ich 
habe eine Vollversion davon.

Ich würde das mit Tonertransfer versuchen, glaube aber nicht das es mit 
Doppel- Layer  funktionieren wird ;-)))(((

Ich bitte Dich um Hilfe auf der Suche nach den Platinchen.


Danke,

Dietmar

von Old P. (Gast)


Lesenswert?

Noch immer nix von Dir da...
Ich maile Dich mal an...

Old-Papa

von Matthias T. (auchmonoabspielbar)


Angehängte Dateien:

Lesenswert?

Ich möchte gerne den ursprünglichen Thread wiederbeleben und mich als 
erstes bei Axel für die Anregung und Anleitung bedanken.

Ich habe das Projekt sehr ähnlich auf einem PIC32 nachgebaut. Aufgrund 
der anderen Hardware (z.B. zwei interne 32 Bit Counter oder 64 Bit 
Fließkommazahlen) war mein Projekt einfacher zu realiseren. Da ich aber 
neu in der PIC Welt bin, stand das Erlernen der Architektur im 
Vordergrund und nicht die möglichst effiziente Nutzung der Hardware.

Leider gibt es zur PIC32 Welt noch nicht mal ansatzweise so viele 
Informationen und Hilfestellungen wie für die AVR Welt. Um die Situation 
ein klein wenig zu Verbessern, habe ich mein Projekt im Internet 
dokumentiert.

http://techblog.auchmonoabspielbar.de/?p=113

von Axel S. (a-za-z0-9)


Lesenswert?

Matthias Thiele schrieb:
> Ich möchte gerne den ursprünglichen Thread wiederbeleben und mich als
> erstes bei Axel für die Anregung und Anleitung bedanken.

Danke für die Blumen!

> Ich habe das Projekt sehr ähnlich auf einem PIC32 nachgebaut. Aufgrund
> der anderen Hardware (z.B. zwei interne 32 Bit Counter oder 64 Bit
> Fließkommazahlen) war mein Projekt einfacher zu realiseren. Da ich aber
> neu in der PIC Welt bin, stand das Erlernen der Architektur im
> Vordergrund und nicht die möglichst effiziente Nutzung der Hardware.

OK. Meine Motivation auch auch weniger das funktionsfähige Gerät als 
vielmehr die Beschäftigung mit der Hardware und besonders der Toolchain. 
Selbst wenn sonst nichts dabei herausgekommen wäre, so weiß nun doch 
wesentlich besser, wie man C und Assembler mischen kann.

> Leider gibt es zur PIC32 Welt noch nicht mal ansatzweise so viele
> Informationen und Hilfestellungen wie für die AVR Welt. Um die Situation
> ein klein wenig zu Verbessern, habe ich mein Projekt im Internet
> dokumentiert.
>
> http://techblog.auchmonoabspielbar.de/?p=113

Nett. Weitermachen!

von Thomas N. (tonevi)


Angehängte Dateien:

Lesenswert?

Hallo,

zwar hatte ich zuvor schon mal den "mino"-Zähler aufgebaut, da mich neue 
Lösungsansätze aber immer interessieren, habe ich diese Variante auch 
mal getestet - schönes Projekt!

Zunächst habe ich basierend auf den Vorarbeiten von Michael D. das 
Layout noch etwas vereinfacht, damit die Platinenfertigung leichter von 
der Hand geht: Da ich die Firmware stets mit einem externen Programmer 
übertrage, ist der ISP-Stecker entfallen. Die Kontrast-Einstellung des 
LCD erfolgt hier per Festwiderstand. Obwohl nur bedrahtete Bauteile 
verwendet werden, weist die einseitig geroutete Platine nur noch 4 
Drahtbrücken auf der Leiterbahnseite auf. Wenn man Wert auf die 
Befestigungsbohrungen legt, muss man die Platine entsprechend 
verlängern. Für meine Zwecke bietet der 16-polige Stecker genug 
Stabilität. Ergebnis siehe Fotos (Firmware LCD 1.5).

- Thomas

von Werner M. (Gast)


Lesenswert?

Matthias T. schrieb:
> http://techblog.auchmonoabspielbar.de/?p=113

Sehr schön. Den gute Heinrich Hertz wird es sicher freuen, dass du ein 
Herz für ihn hast ;-)

von Matthias T. (auchmonoabspielbar)


Lesenswert?

Autsch.

Aber zumindest habe ich es konsequent falsch geschrieben. Danke für den 
Hinweis.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.