Frage an die Microproc Experten

  • Kann man mit einem Microproc / PIC / Atmel einen einstellbaren Frequenzteiler realisieren?


    Wir wollen ein Grundsignal durch neun verschiedene Teilerwerte teilen. Das Ergebnis soll ein sauber geteiltes Signal mit glatten Hertz Frequenzen sein.


    Ich meine damit: 21000.0000 kHz : 3 muss 7.000.000 kHz und nicht etwa z.B. 7000,000123 kHz. ergeben.


    Wenn nein, wie könnte man so einen Teiler sonst realisieren wenn man nicht die uralt Lösungen mit binären Teilern und Diodenmatrix anwenden möchte?

    73/2 de Peter, DL2FI
    Proud member of Second Class Operators Club SOC and Flying Pig Zapper #OOO (Certificated Kit Destroyer)

  • Hallo Peter,


    welche Teilerwerte müssen es den sein ?


    :1 ; :2 ; :3 ; ... ; :7 ; :8 ; :9 ?


    wie hoch ist die Maximale Frequenz?

    73 de Uwe
    DC5PI

  • Hallo Peter
    Schneller wie er selber taktet also max 20 Mhz ,je Takt 200 ns, geht es nicht. Wenn noch zusätzliche arbeitsschritte zum berechnen gebraucht werden wird das immer langsamer. Richtig praktikabel nicht.
    Vieleicht giebt es anderer die da noch mehr wissen. Wenn die alten Lösungen nicht genommen werden sollen, dann bleibt eigentlich nur eine DDS. Schön wäre es schon eine Frequenz so zu teilen.
    Reinhard

    Einmal editiert, zuletzt von DL4DRG ()

  • Hallo Peter,
    Mit einem uC wird es nicht gehen aber mit einem preiswertem FPGA z.B. sehr wohl. Welches ist denn die höchste Eingangsfrequenz?


    72 Wolf, DL2WRJ

  • Hallo Peter,


    die ATMEL können mit ihrem Counter maximal die halbe Taktfrequenz, praktisch ist es etwas weniger, verarbeiten. Der Takt beträgt gegenwärtig wohl maximal 20MHz, also wird es so ab 8MHz dünn.
    Bei 20MHz ist der Stromverbrauch dann auch nicht mehr klein und niedlich.


    73 Reiner


    Nachtrag: 1 Counter kann nur ein Verhältnis teilen, mehr wie 2 Counter sind nicht drin, die Umschaltung des Teilerverhältnisses dauert auch ein paar Schritte.

    Einmal editiert, zuletzt von DL8LRZ ()

  • Ich weiss nicht in welchem Umfang aber die GALs sind vieleicht eine Möglichkeit Ich hab gerade mal in das Buch Schaltungstechnik mit GALs geschaut, Franzisverlag. Da sind programmierbare Teiler beschrieben.
    Reinhard

    2 Mal editiert, zuletzt von DL4DRG ()

  • Hallo Peter,


    vielleicht gibt es eine Möglichkeit, wenn man eine Kombination aus HCMOS-ICs und Microcontroller nimmt. Ich habe hier den Zähler auf die Art realisiert. Das Teilerverhältnis kann entweder dekadisch oder binär (oder eine Kombination davon) eingestellt werden. Mein Problem war, dass der Atmel als Frequenzzähler nicht wirklich geeignet ist (vor allem, wenn er noch andere Aufgaben erledigen muss), wenn die Zählfrequenz sich der halben Taktfrequenz nähert. Deshalb habe ich die hohen Frequenzanteile durch Binärteiler teilen lassen, die ich später dann mit dem Controller auslesen kann (8 Bit je Teiler).


    Die ursprüngliche Idee orientiert sich an dieser Schaltung:


    http://www.myplace.nu/avr/countermeasures/cm_sch.gif


    Welche Teilerverhältnisse werden denn benötigt? Nur ganzzahlige?

    73 de Stefan DK6TM

  • Hallo Peter
    Bei den GALs ist es allerdings so dass sie nich sehr oft umprogrammiert werden können.
    Es müsste also für jede der Frequenzen ein programmierter GAL eingesetzt werden. Würde aber
    den Bauteileaufwand stark reduzieren.
    Reinhard

  • Hallo Reinhard,


    > Bei den GALs ist es allerdings so dass sie nich sehr oft
    > umprogrammiert werden können.
    > Es müsste also für jede der Frequenzen ein programmierter GAL
    > eingesetzt werden. Würde aber den Bauteileaufwand stark reduzieren.


    ... oder es müssten Eingänge am GAL reserviert werden, die je nach Belegung das interne Teilerverhältnis (also die interne Logik) ändern. Bei den 9 gewünschten Teilerverhältnissen wären es im Minimalfall 4 Eingänge.


    72/73 de Ingo, DK3RED - Don't forget: the fun is the power!

  • Lieber Peter,


    ich habe es noch nicht selbst ausprobiert, aber vielleicht kannst Du den Microprozessor mit dem Nutzsignal takten? Dann hat der Processor gar keinen eigenen Quarz, sondern wird direkt mit dem zu teilenden Sigal angesteuert. Dann muss der Prozessor nur noch zwischen An und Aus hin und her schalten, und dazwischen je nach gewünschtem Teiler warten. Was meinst Du?


    73 Daniel DM3DA

  • Vielen Dank schon mal für die vielen Hinweise, auf euch kann man sich ja doch verlassen :D


    Ich hänge mal das Konzept als PDF an, dass sagt wahrscheinlich mehr aus, als wenn ich hier Seiten fülle.


    Der Teiler müsste idealerweise eine höchste QRO von 40MHz (exakt beträgt die höchste QRG 34,0 MHz) verarbeiten können.Hann er das nicht, dann würde der eingezeichnete 1:10 Vorteiler zum Einsatz kommen müssen, was etwas mehr Jitter bedeuten würde.


    Die Teilerverhältnisse sind statisch, es gibt für jedes Band einen Teiler der einmalig programmiert werden muss. Sie müssen nur von aussen angewählt werden können

  • Hallo Peter,


    so wie das aussieht, ließe sich das mittels eines programmierbaren Zählers (z.B. 8 Bit Zähler mit programmierbarem Startwert) realisieren lassen.


    Der Zähler bekommt einen Vorgabewert, der z.B. 256 - Teilerfaktor beträgt und zählt dann die hereinkommenden Taktimpulse hoch. Bei Erreichen des Überlaufs wird das Überlauf-Bit an ein Flipflop übergeben, das dann bis zum nächsten Erreichen des Überlaufs den Zustand hält und der Zähler auf den Vorgabewert zurückgesetzt. Der Vorgabewert kann entweder parallel (8 Bit) oder per Schieberegister gesetzt werden. Eventuell muss man mit dem niederwertigsten Bit des Zählers spielen, um auch ungeradzahlige Teilerfaktoren realisieren zu können.

    73 de Stefan DK6TM

  • Hallo Peter,


    damit ich Deiner Schaltung folgen kann, würde ich gern wissen, auf welcher Frequenz liegt die Quarzreferenz.


    73 de
    Robert, DL5FCE

  • Zitat

    Original von DK6TM
    Hallo Peter,


    so wie das aussieht, ließe sich das mittels eines programmierbaren Zählers (z.B. 8 Bit Zähler mit programmierbarem Startwert) realisieren lassen.


    Der Zähler bekommt einen Vorgabewert, der z.B. 256 - Teilerfaktor beträgt und zählt dann die hereinkommenden Taktimpulse hoch. Bei Erreichen des Überlaufs wird das Überlauf-Bit an ein Flipflop übergeben, das dann bis zum nächsten Erreichen des Überlaufs den Zustand hält und der Zähler auf den Vorgabewert zurückgesetzt. Der Vorgabewert kann entweder parallel (8 Bit) oder per Schieberegister gesetzt werden. Eventuell muss man mit dem niederwertigsten Bit des Zählers spielen, um auch ungeradzahlige Teilerfaktoren realisieren zu können.


    Das ist die klassische Methode, genau so ist das schon realisiert. Dazu muss dann aber für jedes Band über eine Diodenmatrix der Teilerwert gesetzt werden! Wir hoffen eine Lösung zu finden, bei der dieses Konzept so eingesetzt werden kann, dass deine Steuerlogik damit fertig wird :rolleyes:

    73/2 de Peter, DL2FI
    Proud member of Second Class Operators Club SOC and Flying Pig Zapper #OOO (Certificated Kit Destroyer)

  • Hallo Peter,


    warum Diodenmatrix?


    Es gibt Teiler-ICs die "seriell" mit Vorgabewerten befüllt werden, da brauche ich nur zwei (drei) Leitungen vom Controller und die Datenworte. Noch eleganter (aber ein bisschen mit Kanonen auf Spatzen geschossen) ist die Lösung mit dem PCF8574 Portexpander. Der hat direkt 8 Parallele Datenleitungen, kostet bloß ein paar Cent und wird in den Zweidrahtbus integriert. Damit habe ich auch fast alle Schaltaufgaben im Speaky gelöst, eleganter als mit einem Haufen Controller und einfacher in der Ansteuerung.

    73 de Stefan DK6TM

  • Zitat

    Original von DM3DA
    ... aber vielleicht kannst Du den Microprozessor mit dem Nutzsignal takten?


    Das halte ich fuer eine sehr gute Idee, denn m.E. ist nur so eine phasenstarre Kopplung zwischen der Eingangs- und Ausgangsfrequenz (bei Verwendung eines Proz.) zu erhalten. Die in den Proz. eingebauten Zaehler koennen zwar oftmals mit hoeheren Frequenzen betrieben werden als die Taktfrequenz, nur was nuetzt das einem Teiler-Programm, wenn es nur im Instruktionstakt (bei einem PIC ein Viertel des angelegten Taktes) feststellen kann, dass der Zaehler uebergelaufen ist?


    73 de Roland / DK1RM

    Einmal editiert, zuletzt von DK1RM ()

  • Eine Taktung des uC mit dem Nutzsignal wird ein wenig schwierig, weil die meisten Controller bei ca. 20 MHz aufgeben... Man müsste also den Master-Takt erst einmal wieder durch 2 teilen (oder entsprechend niedriger ansetzen). Trotzdem wird man wahrscheinlich Timing-Probleme bekommen, weil auch bei Atmel-Controllern die entsprechenden Befehle nicht nur einen Taktzyklus brauchen.


    Wobei ich auch schon mal einen Zähler realisiert habe, der mit einem hochgradigen Teiler die Torzeit für den uC generiert hat und der Prozessortakt war dann das Maß für die Frequenz. So etwas ist aber von der Software her extrem zeitkritisch. Und der Controller kann nix anderes mehr machen.

    73 de Stefan DK6TM

  • Zitat

    Original von DK6TM
    Trotzdem wird man wahrscheinlich Timing-Probleme bekommen, weil auch bei Atmel-Controllern die entsprechenden Befehle nicht nur einen Taktzyklus brauchen.


    Da kann ich dir nur Recht geben. Die Realisierung eines solchen Programms wuerde ein ziemliches Gefrickel (in Assembler, mit abgezaehlten Zyklen) werden ;) Bei dem gegebenen Problem wuerde auch ich eher zu einer "in Hardware gegossenen" (auch PALs, GALs, oder FPGAs) Loesung tendieren.


    73 de Roland / DK1RM

  • Zitat

    Original von DK6TM
    Hallo Peter,


    warum Diodenmatrix?


    Es gibt Teiler-ICs die "seriell" mit Vorgabewerten befüllt werden, da brauche ich nur zwei (drei) Leitungen vom Controller und die Datenworte. Noch eleganter (aber ein bisschen mit Kanonen auf Spatzen geschossen) ist die Lösung mit dem PCF8574 Portexpander. Der hat direkt 8 Parallele Datenleitungen, kostet bloß ein paar Cent und wird in den Zweidrahtbus integriert. Damit habe ich auch fast alle Schaltaufgaben im Speaky gelöst, eleganter als mit einem Haufen Controller und einfacher in der Ansteuerung.


    Diese Lösung gefällt mir schon mal recht gut. Das im Blockschaltbild gezeigte Design ist eine Variante des geplanten txvr, für den eine Speaky Steuerung ja letztlich herhalten soll :D

    73/2 de Peter, DL2FI
    Proud member of Second Class Operators Club SOC and Flying Pig Zapper #OOO (Certificated Kit Destroyer)

  • Peter, dann sag mir doch mal durch, welche Teilerfaktoren Du brauchst und welche Eckfrequenzen. Teiler liegen hier noch ein paar rum, und den einen oder anderen PCF hab ich auch noch ;)


    Das einzige was ich wohl nicht habe, ist ein brauchbarer Oszillator für 34 MHz. :D

    73 de Stefan DK6TM