Serielle Steuerung

  • Hallo,
    Eine technische Frage:
    Warum ist die serielle Ansteuerung des Harzburg eigentlich so holprig/langsam? So wie ich den ICS307-2 verstanden habe, werden doch nur 24 Bit in den Schaltkreis reingeschrieben, nichts zurückgelesen oder sonstwie bestätigt und der Schreibetakt vom Sender vorgegeben? Oder ist das ein Problem der seriellen Schnittstelle unter Windows? Oder liegt das am USB->Seriell Adapter? (getestet unter XP 32Bit, Win7 Home Prem 32 Bit, Win7 Prof 64 Bit)
    Wenn dafür noch einen Dongle gebaut werden soll, würde der doch auch nichts beschleunigen können oder soll der dann vom PC/Winrad anders angesteuert werden als der Harzburg bisher? Gibt es da Neuigkeiten?


    MfG Alexander

  • Hallo,
    Eine technische Frage:
    Warum ist die serielle Ansteuerung des Harzburg eigentlich so holprig/langsam? So wie ich den ICS307-2 verstanden habe, werden doch nur 24 Bit in den Schaltkreis reingeschrieben, nichts zurückgelesen oder sonstwie bestätigt und der Schreibetakt vom Sender vorgegeben? Oder ist das ein Problem der seriellen Schnittstelle unter Windows? Oder liegt das am USB->Seriell Adapter? (getestet unter XP 32Bit, Win7 Home Prem 32 Bit, Win7 Prof 64 Bit)
    Wenn dafür noch einen Dongle gebaut werden soll, würde der doch auch nichts beschleunigen können oder soll der dann vom PC/Winrad anders angesteuert werden als der Harzburg bisher? Gibt es da Neuigkeiten?


    MfG Alexander

    Das IC kann nicht jede Frequenz einstellen, da nur feste Teilerraten möglich sind. Es wird die nächst gelegene Frequenz eingestellt, danach erfolgt eine Rückmeldung an die Software, die dann die eingestellte Frequenz korrigiert. Einrasten und hin und her melden dauert dann eben. Das ist der Preis für den Preis :D


    Mit dem Dongle geht es in der Tat erheblich schneller.


    73 de Peter, DL2FI

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

  • OK, daß nicht jede Frequenz eingestellt werden kann habe ich verstanden. Nur warum das so lange dauert noch nicht wirklich. Dauert also die Verarbeitung/Kommunikation WinradHD(HDSDR) <-> DLL so lange? Auch wenn ein bischen gerechnet werden muß darf das doch von der Rechenleistung nicht ins Gewicht fallen!? Ich meine, was Winrad da in Echtzeit macht ist der blanke Wahnsinn, da kann das Ermitteln der richtigen Freuqenzeinstellung doch nicht der Rede wert sein?
    Gibt es für den Dongle eine neue/andere DLL oder eine ganz andere Ansteuerung?


    MfG Alexander

  • Hallo Alexander,


    hast du an deinem Rechner eine echte COM-Schnittstelle oder arbeitest du mit einem USB-RS232-Adapter? Der Geschwindigkeitsunterschied zwischen beiden Varianten ist dramatisch zugunsten einer echten RS232!


    Viele Grüße


    Karsten - DL3HRT
    Homepage

  • Hallo Kartsen,
    das könnte natürlich sein. Ich habe nur USB->Serial Adapter. Meine Rechner haben leider keine seriellen Schnittstellen mehr. (Und auch keine Alternative testweise verfügbar) Ich habe aber eigentlich keine größeren Probleme mit den Adaptern.
    Es wäre natürlich vorstellbar, daß das Öffnen und Schließen der Schnitstellen über USB länger dauert, da muß ja bestimmt alles mögliche initialiseiert und emuliert werden. Der reine Datentransfer (24 BIT!) kann doch nicht wirklich dauern. Es ist ja auch nicht schlimm, man kann ja mit der Verzögerung beim Frequenzwechsel ganz gut leben, ist nur nicht ganz perfekt.
    Ich kenne ja den Ablauf in der DLL ja nicht, aber vielleicht wird jedesmal die Sequenz
    Open(); // dauert vielleicht?
    Write(3 Bytes);
    Close(); // dauert vielleicht?


    ausgeführt und das Open() dauert bei der USB->Seriell-Geschichte länger? Wenn da so ist könnte es nicht (ev. per Startrparameter) so geändert werden, daß das Open() nur einmalig beim Programmstart und das Close() nur einmalig am Programmende aufgerufen wird?


    MfG Alexander

  • Hallo Alexander,
    der USB->RS232 Converter hat ja auch einen virtuellen Treiber. Eine Idee wäre, den FIFO auf 8 Byte zu setzen. Schau mal >Start>Systemsteuerung>System>Hardware>Geräte-Manager>Erweitert ... nach, ob das so ist. Viel Erfolg...

    Vy 72/73 de Gerhard

  • Hallo Alexander,


    zur Frage der prinzipiellen Ansteuerung des ICS307 siehe PLL-Taktgenerator ICS307


    Insbesondere handelt es sich nicht um eine serielle Schnittstelle im eigentlichen Sinne:
    Es werden die Statusleitungen der Schnittstelle für die Übertragung verwendet.
    Ein Vergrößern der Schnittstellen-Puffer wird daher auch keinen Effekt haben.


    Zum von Dir bemängelten Timing auf der Schnittstelle siehe Readme-File der Harzburg-DLL (Im Zip-Archiv enthalten):


    Abschnitt INI-Datei, darunter im Abschnitt "Default-Ini"

    [Config]
    ...
    Delay_Comment = Delay in msec fuer Datenübertragung zum ICS307
    Delay=10
    ...

    Abschnitt "Einträge in der Ini-Datei"

    Delay
    Verzögerung in msec beim Ausgeben der Bits über die Schnittstelle
    Für Debugzwecke kann die Übertragung soweit verlangsamt werden dass die
    Ausgaben mit Hilfe eines Schnittstellentesters (LED) für die serielle Schnitstelle
    beobachtet werden kann.


    Auf ausreichend langsamen Rechnern kann ein Delay = 0 zu einer erheblichen
    Beschleunigung der Übertragung führen. Die Zuverlässigkeit kann dabei nicht
    garantiert werden!

    Die Default-Werte stammen noch aus der 'Anfangszeit' der Harzburg-DLL und sind wahrscheinlich eher sehr konservativ gewählt. Ich muss allerdings gestehen dass ich das nie genauer getestet habe wie weit man den Wert reduzieren kann. Ein Versuch wäre es Wert ...


    Bei aktiviertem Logging sollte auch genau zu sehen sein wie lange es tatsächlich dauert. (Damit wäre auch ein Vergleich 'echte' Serielle mit USB/Seriell durchführbar. Schneller wird es über USB, wie ja schon angemerkt wurde, aber sicher nicht ...)


    Wenn dafür noch einen Dongle gebaut werden soll, würde der doch auch nichts beschleunigen können


    Das Dongle wird dagegen wie ein 'richtiges' serielles Gerät angesteuert und hat damit das Timingproblem erst gar nicht.
    Die 'Wirkung' des Dongle ist ja schon an anderer Stelle mal beschrieben worden.


    Wenn da so ist könnte es nicht (ev. per Startparameter) so geändert werden, daß ...


    Hmmm ... vielleicht doch erst mal die Sache mit dem Timing ausprobieren?


    Gruß
    Robert

  • Hallo Robert,
    vielen Dank für Deine Erklärungen.
    Ich habe Deinen Vorschlag mit der Delay-Änderung am Wochenende ausprobiert. Erst hatte ich kein ini-File gefunden. Software (HDSDR) war mit den vorgegebenen Pfaden installiert worden, dementsprechend konnte im Programmverzeichnis dann nicht geschrieben werden. (Windows7) Dann habe ich es also nocheinmal unter eigene Dateien installiert.
    Im Inifile stehen stehen 10 ms Delay, die habe ich dann nach 0 ms geändert und das funktioniert dann schon wesentlich flüssiger. Zur Demonstartion habe ich 2 kurze Videos gemacht.


    HP Elitebook 8540w (WIndows7 Prof) -> Prolific USB/Seriell-Adapter -> Harzbug


    Hier die Frequenzeinstllung mit 10ms (Default) Serielle Steuerung mit 10 ms Delay (Default)
    und hier mit NULL ms : Serielle Steuerung mit NULL ms Delay


    Es geht also wesentlich flüssiger. Super!
    Ist das Ergebnis bei einer echten seriellen Schnittstelle das Gleiche oder noch besser?


    Gruß Alexander

  • Hallo Alexander,


    also der Geschwindigkeitsunterschied zwischen USB-RS232-Konverter und echter RS232 kann, zumindest auf meinem Rechner, als dramatisch bezeichnet werden. Vielleicht hatte ich aber auch nur einen besonders langsamen Konverter erwischt. Mit echter RS232 kann ich problemlos das Wasserfalldiagramm mit gedrückter Maustaste verschieben und die LO-Frequenz passt sich ohne zu Ruckeln an.


    Viele Grüße


    Karsten - DL3HRT
    Homepage