Sie sind nicht angemeldet.

1

Donnerstag, 24. Februar 2011, 09:55

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

2

Donnerstag, 24. Februar 2011, 10:04

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
Don´t follow the path. Make one! (Helena Martins, Fotografin, die im Erwachsenenalter ihr Gehör verlor)

3

Donnerstag, 24. Februar 2011, 10:14

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

  • »dl3hrt« ist männlich

Beiträge: 276

Hobbys: QRP,QRO,VHF, UHF, SHF,Astronomie, Elektronikbasteln

  • Nachricht senden

4

Donnerstag, 24. Februar 2011, 11:31

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

5

Donnerstag, 24. Februar 2011, 14:34

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

6

Donnerstag, 24. Februar 2011, 16:55

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

7

Donnerstag, 24. Februar 2011, 20:40

Harzburg, Schnittstelle langsam/holprig ...

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

8

Montag, 28. Februar 2011, 10:25

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

  • »dl3hrt« ist männlich

Beiträge: 276

Hobbys: QRP,QRO,VHF, UHF, SHF,Astronomie, Elektronikbasteln

  • Nachricht senden

9

Montag, 28. Februar 2011, 11:36

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