Posts mit dem Label LCD werden angezeigt. Alle Posts anzeigen
Posts mit dem Label LCD werden angezeigt. Alle Posts anzeigen

Samstag, 21. März 2020

Automatischer Antennenschalter, Teil 4

Die Bedienung

... beschränkt sich im Normalfall auf das Einschalten.
Bei vorhandener Versorgungsspannung zeigt der rot leuchtende Einschalter an, dass sich das Gerät im Standby befindet. Nach dem Einschalten erlicht der Einschalter. 



Kurz nach dem Einschalten wird für ca. drei Sekunden die Firmware-Version angezeigt und ein Farbwechsel des Displays durchgeführt.
 

Das Gerät erkennt, ob auf dem PC ein CAT-fähiges Programm läuft, oder ob es selbst die CAT Requests erzeugen muss. Die Auswahl der Antenne erfolgt entsprechende dem am FTDX1200 eingestellten Sendeband. Sind mehr als eine Antenne für ein Band verfügbar, so wird die definierte Standardauswahl genutzt (orange LED). Alternativ für dieses Band verfügbare Antennen (grüne LED) können per Tastendruck gewählt werden.



Die Anzeige ist wie folgt aufgebaut:



Band:
Es wird das aktuelle Sende-Band angezeigt.

Antenn.Name
Hier wird die bis zu 11-stellige Bezeichnung der Antenne über die gesendet wird oder ERROR! angezeigt.

MODE
An dieser Stelle wird entweder AUTO oder PC-> angezeigt.

SPEC
An dieser Stelle wird entweder MAN! oder [SD] angezeigt.



*** Funktionsmodi ***

AUTO
Der Controller erzeugt die CAT Requests. Es ist keine externe "CAT request" Quelle in Betrieb, also auf dem PC läuft kein Programm (WSJT-X, JTDX, HRD, etc. ) oder der PC ist ausgeschaltet.




PC->
WSJT-X, JTDX, HRD oder ein anderes Programm erzeugt die CAT requests und der Controller wertet diese bzw. die Antworten des Trx aus.




ERROR (Display rot)
Ein Fehlerzustand: der Trx ist nicht eingeschaltet oder es ist eine Sendefrequenz gewählt, für die keine Antenne im System hinterlegt wurde.




MAN (Display magenta)
Alle Antennen können manuell über die Tasten ausgewählt werden, unabhängig davon, ob sie für die Sendefrequenz geeignet sind. Dies ist z.B. beim Testen von neuen Antennen sinnvoll, wenn man noch keine Konfiguration im System hinterlegt hat.




[SD]
Zum Aktualisieren der Antennenkonfiguration werden die Daten via SD-Karte übertragen. Die SD-Karte wird vor dem Einschalten des Gerätes eingelegt. Nach dem Einschalten erscheint dann [SD] im Display. Ein Druck auf die F-Taste bestätigt, dass die Daten von der SD-Karte übernommen werden sollen. Eine Prüfung, ob die Daten der SD-Karte Unterschiede zu den bereits eingespielten Daten aufweisen, erfogt nicht.





*** Antennenauswahl ***

AUTO und PC Mode
Die aktive Antenne wird im Display angezeigt und die zugehörige Taste durch die orange leuchtende LED markiert. Eine grüne LED zeigt alternativ wählbare Antennen an.




Durch Druck auf die entsprechende Taste wird diese Antenne aktiviert.




Während des Sendens leuchtet die LED rot.




Achtung: während des Sendens ist keine Neuwahl von Antennen möglich.


Manueller Mode
Durch Betätigen der F-Taste wird der manuelle Modus aktiviert. Der Display-Hintergrund leuchtet nun magentafarben.
Jede Antenne kann nun per Tastendruck ausgewählt werden.




Z.B. kann Antenne 5 zum Testen ausgewählt werden:




Durch erneuetes Betätigen der F-Taste wird der manuelle Modus beendet. Und die Standard-Antenne für das aktuelle Band wieder aktiviert.




[Automatischer Antennenschalter, Teil 5]

Automatischer Antennenschalter, Teil 3

Das Gehäuse

Nach einer ausreichend langen Testphase und Designüberlegungen, folgte der Einbau der Komponenten in ein Gehäuse.
Ein Kühlrippengehäuse von Proma, mit den Maßen 168 x 110 x 80mm bot ausreichend Platz zum Unterbringen der Bedienteile und der Anschlüsse.

Die Frontplatte:




Als Designelement und zum Abdecken des wenig schönen Displaygehäuses, erhielt die Frontplatte eine 3D-gedruckte Blende aus PLA. Auch eine Halterung für die Frontplatine ist per 3D-Druck entstanden, um unschöne Verschraubungen mit der Frontplatte zu umgehen.




Der Platinenausschnitt für den SD-Kartenslot wird nicht mehr benötigt.




Die Rückseite:




Der SD-Karten Slot ist von der Vorderseite auf die Rückseite gewandert. Damit die SD-Karte leichter einzuführen ist, habe ich den Slot  mit einer Blende versehen (auch aus dem 3D-Drucker). Auch der Abstandhalter des SD-Kartenmoduls wurde ausgedruckt. Damit wurde das Modul an der Seitenwand der Oberschale verschraubt.



Für die Steckverbindungen der Steuerleitungen und der Stromversorgung habe ich auf verschraubbare Verbinder gesetzt, um ein unbeabsichtigtes Lösen zu verhindern.
Die Hauptplatine wurde in die Führungsschinen der Gehäuseunterschale eingelegt und mit zwei M3 Schraube so fixiert, dass sie bündig mit der Schalenkante abschloss. Die USB Buchse des Arduino steht etwas darüber hinaus ud findet in einer entsprechenden Öffnung der rückseitigen Anschlussplatte Platz.




Es folgte die Verkabelung mit Dupont-Steckverbindern.




Ein abschließender Funktionstest, vor dem Verschrauben des Gehäuses.




Die Verkabelung an der Rückseite:




Ready, ...

... steady, ...

...go!


Noch ein kurzes Update der Antennendaten per SD-Karte, um die Testdaten durch die Realität zu ersetzen und nun ist der Automatische Antennenumschalter im Einsatz.

Foto: Vergleich manueller Umschalter vs. automatischem Umschalter

 

[Teil 4: Bedienungsanleitung]
.

Samstag, 4. Januar 2020

Automatischer Antennenschalter, Teil 2

Ich habe das System auf zwei Platinen verteilt, das Controller Board und das Front-Board. Das Front-Board enthält alle Bedienelemente, das Display und - obwohl nicht auf dem Board platziert - das SD-Card Modul. Zusammenfassend: alles was über die Frontplatte zugänglich ist.


Ein erster Entwurf für die Platzierung der Bauteile:


Als Display verwende ich jedoch ein Dot-Matrix LCD Display mit 2x16 Zeichen und RGB Hintergrundbeleuchtung von Adafruit. Dadurch erübrigen sich die beiden LEDs links neben dem Display.



 
Bis auf zwei zusätzliche Pins ist die Pin-Belegung nahezu identisch mit den üblichen einfarbig hintergrundbeleuchteten Displays, so dass ein Austausch jederzeit möglich wäre. Die RGB-Beleuchtung hat den Charme, unterschiedliche Betriebszustände so sichtbar zu machen, dass man sie auch aus den Augenwinkeln erkennen kann.

Das Display wird mittels eines TWI Moduls angesteuert.
TWI = Two-Wire-Interface (oder I2C = Inter-Integrated Circuit)



Auch die Tasten und die 2-farbigen LEDs werden mit dem TWI verbunden. Dazu verwende ich einen MCP23017-E/SO 16-Bit I/O-Expander.

Das SD-Card-Modul wird via SPI mit dem Controller verbunden.
SPI = Serial Peripheral Interface



Ich habe mich für eine SD-Card im Normalformat entschieden. Micro-SD ist mir in der Handhabung zu fummelig. Die Konfigurationsdateien sind nur wenige Kilobyte groß. Die Speicherkapazität gebräuchlicher SD-Karten wird dadurch also nicht erschöpft.

Apropos fummelig:
Der MCP23017-E/SO hat ein 28-poliges SOIC Gehäuse, also ein SMD. Ebenso habe ich mich entschlossen, alle Widerstände und Kondensatoren als SMD auf die Leiterbahnseite zu montieren. Durch die Schalter, LEDs und das Display ist der Platz auf der Oberseite der Platine sehr begrenzt. Eine Hybridbestückung schuf Abhilfe.


Die Schaltung



Das Board

Maße: 68 mm x 100 mm
SD ist hier ein "Platzhalter" für einen Ausschnitt aus der Platine, in den das SD-Card-Modul eingefügt wird, und zwar im 90°-Winkel, an der Seitenwand des Gehäuses befestigt. Der Kreis daneben wird eine Bohrung für den Ein-Schalter, der leider tiefer ist, als der Abstand der Platine zur Frontplatte.

Bauteilliste:



Der Aufbau

Das Layout stammt noch von einer Vorversion und stimmt nicht zu 100% mit der oben dargestellten Version überein. Manche Fehler fallen erst beim Aufbauen auf. So fehlt JP6 für die Spannungsversorgung des SD-Card-Moduls - nicht notwendig, aber sinnvoll.
R11, der Pull-Up-Widerstand für den RESET-Pin des MCP23017, hatte ich schlicht vergessen und nachträglich aufgelötet.



Das TWI-Modul des Displays habe ich nicht direkt verlötet. Eine abgewinkelte Buchsenleiste lässt sich problemlos auf die Pads auflöten. Das Modul wird somit steckbar.



Eigentlich sind diese Module dafür gedacht, sie direkt von hinten mit dem Display zu verlöten. Da mein Display aber schon mit einer Stiftleiste bestückt war, hätte ich diese dazu entlöten müssen. Die Aufsteckvariante gefiel mir besser und brachte mehr verfügbare Bestückungsfläche auf der Platinenunterseite.



Verbindungen:


Funktionstest:

Die Firmware benötigte noch geringfügige Anpassungen und läuft nun.
Z.B. könnten für das 20m-Band die Antennen 3-5 genutzt werden. Vorgegeben und automatisch ausgewählt wird Antenne 3 (Dipol 20), erkennbar auch an der gelben LED. Die grünen LEDs zeigen an, welche Antennen für das 20m-Band noch in Frage kämen. Diese können dann durch Tastendruck ausgewählt werden.



Bis hierhin funktioniert es technisch schon mal. Als nächstes erfolgt der Einbau in ein Gehäuse und die Verkabelung mit den externen Steckverbindern. Eine Programmbeschreibung folgt.

[Teil 3...]

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 ...]