Freitag, 27. Dezember 2019

Automatischer Antennenschalter

Bisher musste ich die Antennenauswahl via Fernumschalter manuell durchführen. Dabei ist es jedoch nicht selten passiert, dass ich die falsche Antenne gewählt habe, oder einfach bei Bandwechsel den Antennenwechsel vergaß.
Die Folgen: hohes SWR und vor allem wenig abgestrahlte Leistung, da der Wirkungsgrad der "falschen" Antenne gering ist. Und so wundert man sich, dass keine Verbindungen zustande kommen, bis der Blick auf den Antennenwahlschalter fällt.

Ein automatischer Antennenumschalter (Controller) ist die Lösung, denn die Informationen, um die richtige Antenne zu wählen, liefert mein Sender - YAESU FTDX1200 - über die CAT-Schnittstelle.

CAT = Computer Aided Transceiver

... ist ein Kommunikationsprotokoll auf Basis des seriellen RS232 Übertragungsverfahrens. Alle Parameter, die via CAT abgefragt oder konfiguriert werden können, sind im FTDX1200 CAT Operations Manual dokumentiert.


Anforderungen:
  • passend zur Außeneinheit des Fernumschalters: mindestens 5 Antennen schaltbar
  • galvanische Trennung zwischen Transceiver und Controller
  • Betriebsspannung 13,8 V DC
  • Anzeige der aktuellen Bandes und der genutzten Antenne
  • Anzeige alternativer Antennen
  • Anzeige Sende-Status
  • Verriegelung während des Sendens (keine Umschaltung möglich)
  • Konfigurationsmöglichkeit 
  • Beibehaltung der Konfiguration nach Abschaltung
  • Transparente Durchleitung der CAT Kommunikation

System-Design:


Der Controller wird in die CAT-Verbindung zwischen FTDX1200 und PC geschaltet. Findet eine CAT-Kommunikation zwischen PC und FTDX1200 statt, z.B. weil ein FT8-Programm läuft, soll der Controller diese Kommunikation "belauschen". Ist der PC nicht aktiv, muss der Controller selbst aktiv werden und passende CAT Requests an den Transceiver schicken.



Kern des Controllers ist ein Mikrocontroller, hier in Form eines fertigen Arduino-Boards, des Arduino Nano Every. Dazu später mehr.
Die RS232-Signale werden durch Wandler in TTL-Spannungspegel umgesetzt, damit der Mikrocontroller sie verarbeiten kann. Eine galvanische Trennung ist bei TTL mittels Optokopplern einfach zu realisieren. Die Stromversorgung wird mit einem DC-DC Wandler entkoppelt. Während der Mikrocontroller und seine Peripherie mit +5V versorgt werden, soll die Schaltstufe 13,8 V und 160 mA liefern, um die Relais in der Ausseneinheit zuverlässig anzusprechen.

Soweit die Theorie.  Ein erster Test sollte zeigen, ob und wie sich die CAT-Kommunikation auswerten lässt, um auf dieser Basis eine Entscheidung zur Antennenwahl zu treffen.



Da mir nur ein FTDX1200 zur Verfügung steht, beschränkt sich die Auswertung auf dessen CAT Befehlssatz. Die Befehlssätze anderer Geräten unterscheiden sich vermutlich etwas.
Bei der Kommunikation mit PC-Programmen habe ich mich auf Ham Radio Deluxe 5.24.0.38, JTDX v2.1.0-rc141 und WSJT-X v2.1.0 beschränkt. Andere Programme kommen bei mir derzeit nicht zum Einsatz.

Die CAT-Auswertung beinhaltet nur die Sendefrequenz, die in den Kommandos FA, FB oder IF enthalten ist, abhängig davon welches Programm läuft, bzw. ob der FTDX normalen oder Split-Betrieb macht. Dies genügt, um das gewählte Band zu erkennen und eine Entscheidung für die Antennenauswahl zu treffen. Ob Split-Betrieb vorliegt, kann man mit dem TX Kommando abfragen.

Bei der Auswertung des Kommunikationsprotokolls ist ein Saleae Logic Analyzer hilfreich. Hier die Darstellung eines CAT-Requests vom Controller und die Antwort des FTDX:



Ein weiteres unentbehrliches Werkzeug ist ein Jumperboard zum Auftrennen und Messen der RS232 Signalleitungen.



Die Flachbandkabel sind mit einem Sub-D Stecker (X1) auf der einen Seite und einer Sub-D Buchse (X2) auf der anderen Seite abgeschlossen. An die Pins von JP1 und JP3 kann z.B. der Logic Analyzer angeschlossen werden.
Bei JP2 wird die Verbindung der Leitungen mit Jumper hergestellt oder bei Bedarf getrennt.
 
Die Controller-Schaltung

Der Signalpfad von links nach rechts:


Die Signale TX (gelb) und CTS (orange) werden von der CAT-Schnittstelle des FTDX1200 gesendet, RX (grün) und RTS (violett) empfangen. Jeweils ein MAX232N (IC1 und IC2) wandelt FTDX-seitig und PC-seitig das RS232-Signal in ein TTL-Signal um. Die Optokoppler OK2...OK5 sorgen für die galvanische Trennung zwischen PC und FTDX. Dazu ist jedoch auch erforderlich, dass die Spannungsversorgung getrennt wird. Dies übernimmt der DC-DC Wandler V2, ein TME0505S von Traco Power.
An der Tuner-Buchse des FTDX kann das Signal TX_GND (blau) abgegriffen werden. Wenn der FTDX sendet, wird der Pegel von TX_GND gegen GND gezogen, also LOW-Pegel. Sendet er nicht, so erhält TX_GND über R3 als Pull-Up-Widerstand (HIGH-Pegel). Die Trennung erfolgt über OK1.
Die Auswertung der Signale erfolgt durch den Mikrocontroller.



Der Mikrocontroller (oben rechts im Gesamtschaltplan) schaltet entsprechend der Antennenkonfiguration die Relais K2...K6. Relais K1 schaltet das TX Signal im PC Mode zum PC durch. Dies und die Dioden D1...D3 verhindern, dass die Interfaces des Mikrocontrollers und des PCs sich gegenseitig die Ausgabe-Pegel von HIGH auf LOW ziehen.

Die Verbindung zum Frontpanel erfolgt via TWI-Schnittstelle (I2C). Parallel dazu verlaufen Leitungen für die Display-Beleuchtung und für ein SD-Card Modul.
Via SD-Card ist das Anpassen der Antennenkonfiguration möglich.

Die Relaiskontakte von K2...K6 schalten 13,8 V zur Außeneinheit durch. Ein TMR1211 von Traco Power trennt die 13,8 V galvanisch und transformiert sie auf +5 V zur Versorgung der Controller-Schaltung.

Das Controller-Board



Maße: 83 mm x 100 mm

Bauteilliste


Auf R1 und JP4 habe ich bei der ersten Bestückung verzichtet. Mit diesen Bauteilen könnte ein Standby implementiert werden, was ich vorerst nicht brauche.


Arduino Nano Every




Die ersten Versuche habe ich mit einem Arduino Uno und einem Arduino Mega 2560 durchgeführt. Ursprünglich wollte ich nur einen ATmega328P-PU einzusetzen. Der Platzbedarf ist jedoch  unwesentlich geringer, als bei einem Arduino Nano Modul. Die Wahl fiel letztendlich auf den Arduino Nano Every, der den gleichen Footprint wie der Nano hat. Der Hauptgrund für die Wahl war der Speicher. 



Die ersten Programmentwürfe mit EEPROM Speicherung ließen erkennen, dass besonders der SRAM beim Nano knapp werden könnte. Zusäzlich erlaubt der Nano Every die Nutzung von A6 und A7 als digitale Ausgänge, was ein gefälligeres Board-Design ermöglichte.

Die fertige Platine, ...


... deren Test ...



... und eine erste Idee, wie die Frontplatte aussehen könnte.



Doch vorerst ist es noch nicht soweit. Die Firmware läuft zwar schon mit allen Wunsch-Features, die Tests sind jedoch noch nicht abgeschlossen. 
Und manchmal plagt mich noch die ein oder andere "dumme Idee", die evtl. Auswirkungen auf das Frontplatten-Design haben könnte. Die muss dann natürlich erst implementiert, getestet und verworfen werden. ;-)

[Teil 2 ...]