UniDDS Firmware

  • Hallo,


    ich habe die FW des UniDDS ergaenzt. Neu ist die Beruecksichtigung negativer Zahlen bei der Berechnung der VFO-Frequenz.

    Hintergrund:

    Ich moechte einen TRX betreiben RX 3,5MHz und ZF 4MHz. Bei der Einstellung VFO = RX - ZF wuerde das eine negative Zahl ergeben und die DDS-VFO-Frequenz wird falsch ausgegeben.
    Logisch muesste aber bei dieser Konfiguration der DDS-VFO die Frequenz 0,5 MHz ausgeben.
    Bei der neuen FW ist das jetzt der Fall. Die Frequenzberechnungsformel habe ich umgestellt auf:


    DDS-VFO-Frequenz = ABS( RX - ZF)


    Somit wird auch diese Frequenzberechnung richtig durchgefuehrt.


    Die FW ist auf http://www.dl4jal.eu/unidds_v1_10.hex zu finden.


    Ich konnte diese FW nicht ausreichend testen, da keine entsprechende HW mehr vorhanden ist. Ich wuerde mich ueber eine Rueckmeldung freuen.


    vy 73 Andreas

  • Prima Andreas, ich probiere das am Wochenende aus.


    Hast du evtl. noch eine Idee, wie wir ein anderes Problem lösen können? Beim Spatz wird ja der DDS mit einem Quarz vorgemischt. Auf 40m geht das einwandfrei. Auf 30m wird aber die Mischrichtung geändert, und die Frequenzanzeige läuft dann genau verkehrt herum.


    DDS soll bei 30m 7,9MHz -7,8 MHz


    Mischquarz 22MHz, ZF 4MHz, LO 14,1;Hz -14,2 MHz >>> Output 10,1 - 10,2 MHz


    Gebe ich nun ams Anzeige Frequenz 10,1MHz an und als -ZF Wert 2,2, dann macht der DDS bei 10.100 die richtige Frequenz und die richtige Anzeige. Gehe ich in der Frequenz nach oben, dann geht die Anzeige aber nach unten-

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

  • Hallo Peter,


    da der Anzeigewert sowieso berechnet wird könnte man den ermittelten (der nach unten geht) Anzeigewert von 10,1 subtrahieren, dann die Differnz zu 10,1 addieren und dann ausgeben
    73
    de Addi / DC0DW

  • Hallo Peter,
    das wuerde die neue FW auch abdecken.


    18 MHz ZF einstellen (22 MHz - 4 MHz)


    RX 10.1 MHz - ZF 18 MHz = ABS(DDS 7,9 MHz)
    RX 10,2 MHz - ZF 18 MHz = ABS(DDS 7,8 MHz)


    Passt das so?


    vy 73 Andreas

  • Hallo Addi,
    in meiner FW wird nicht der Anzeigewert berechnet sondern immer aus der Anzeige die DDS-Frequenz. Da bin ich viel flexibler bei allen Berechnungen.


    Die Reihenfolge ist.
    1. VFO A oder B liegt als BCD vor. Also auslesen und in BIN wandeln.
    2. ZF addieren oder subtrahieren (FW neu: ist eine negative Zahl entstanden wird negiert)
    3. Ergebnis mit der DDS-Konstande multiplizieren
    4. DDS-Binaerwert abspeichern


    Das wird fuer die RX-VFO und TX-VFO getrennt durchgefuehrt, um RIT XIT usw. schnell zu bedienen. Das ist wichtig um bei Umschaltung RX <-> TX kurze DDS-Umprogrammierzeiten zu erreichen. Die Umprogrammierzeit des DDS liegt dadurch bei etwa 1mSek.


    73 Andreas

  • Hallo Andreas,


    vielen Dank für die Info.


    Ich bin in meiner Vorstellung von Peters Angaben ausgegangen. Wollte mit einem Vorschlag nicht allzuviele Änderungen im Sourcecode einbringen.


    73
    Addi / DC0DW

  • Leider bin ich erst heute dazu gekommen, die neue Firmware zu testen. Es ist halt viel zu tun.


    Andreas, es funktioniert genau so, wie du es wolltest, auch das Problem mit den vorgemischten LO Frequenzen ist damit gelöst:


    1. Dein Ausangspunkt: ZF 4,00 MHz, Sollfrequenz 3,5-3,8 MHz. Ergebnis: DDS erzeugt bei Anzeige 3,5 MHz 500Hz, bei Anzeige 3,8MHz 300Hz


    2.Mein Ausgangspunkt: Sollfrequenz 10,1 - 10,2 MHz. Premixer mit 22MHz Quarz, ZF 4,00 MHz. LO Soll 7,9 - 7,8 Ergebnis: DDS erzeugt bei Anzeige 10,1 MHz wie gewünscht 7,9MHz und bei 10,2MHz 7,8MHz.


    Ein großes Dankeschön für diese Erweiterung, die den UniDDS jetzt endgültig universell macht.

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