Ein FT8-QRP-Transceiver    

Elektronik-Labor  Lernpakete  Projekte  HF  




Mein neues FSK-Modulationsverfahren ist so einfach, dass es geradezu nach einem QRP-Projekt schreit. Ich möchte deshalb versuchen, einen kleinen FT8-Transceiver für das 40m-Band auf einer 100 mm x 80 mm großen Platine zu bauen. Ich verwende dazu eine durchgehende Kupferfläche und kleine Abschnitte einer Streifenrasterplatine, die mit Drahtstücken aufgelötet werden. Damit erreicht man eine gute Masseführung und die nötige mechanische Stabilität. Außerdem ist der Aufbau sehr flexibel. Ich kann einfach mal anfangen, auch wenn ich noch nicht alle Stufen genau überblicke. Bisher ist nur festgelegt, dass ein Ardunino-Nano-Clone zum Einsatz kommen soll und das SI5351-Board von Adafruit. Zum Start wurden die Audiobuchsen und der Arduino montiert.



Das Blockschaltbild zeigt alle Stufen des Transceivers. Als erstes habe ich den PLL-Baustein SI5351 mit dem Arduino verbunden. Dazu werden nur drei Leitungen gebraucht, zwei für den I2C-Bus und eine für die Betriebsspannung 5 V. Auf der Platine von Adafruit ist ein 3,3-V-Spannunsgregler für den PLL-Chip. 



USB-Stecker rein, ein vorhandenes Beispiel in den Arduino geladen, erster Test. An CLK1 messe ich ein Signal. Soweit funktioniert es. Als nächstes folgt nun der Modulationseingang mit seinem Tiefpassfilter.




Die Dimensionierung ist nicht kritisch und wurde entsprechend den vorhandenen und gut passenden Bauteilen geändert. Die Hilfsspannung von 3,3 V zur sichern Erkennung des Endes einer Übertragung habe ich mir vom SI5351 und seinem Spannungsteiler geliehen. Ein RC-Filter mit 10 k und 10 nF hat eine Grenzfrequenz von 1,6 kHz. Zwei zusammen liegen dann knapp über 1 kHz. Das bedeutet, dass höhere Frequenzen nahe 2,5 kHz bereits 5-fach geschwächt werden. Wegen der hohen Empfindlichkeit des Komparators ist das jedoch unproblematisch. Bei 2,5 kHz reicht eine Modulationsspannung von 100 mV zur Ansteuerung des Senders.



Jetzt fehlt nur noch die Firmware. Dazu brauchte ich nur mein Programm für das SDR-Shield passend kürzen. Zusätzlich habe ich die LED am Pin 13 auf dem Arduino verwendet, um den Sendebtrieb anzutzeigen.

//FT8QRP

#include "si5351.h"
#include "Wire.h"

Si5351 si5351;
unsigned long  freq;

void setup(void)
{
  freq= 7074000;
  word cal_factor = 0;
  si5351.init(SI5351_CRYSTAL_LOAD_8PF, 0, 0); 
  si5351.set_correction(cal_factor, SI5351_PLL_INPUT_XO);
 
  si5351.set_pll(SI5351_PLL_FIXED, SI5351_PLLA);
  si5351.set_freq(freq*100ULL, SI5351_CLK1);
  si5351.output_enable(SI5351_CLK1, 1);
 
  si5351.set_freq(freq*100ULL, SI5351_CLK0);
  si5351.drive_strength(SI5351_CLK0, SI5351_DRIVE_8MA);
  si5351.output_enable(SI5351_CLK0, 0);
  TCCR1A = 0x00;
  TCCR1B = 0x01; // Timer1 Timer 16 MHz
  TCCR1B = 0x81; // Timer1 Input Capture Noise Canceler
  ACSR |= (1<<ACIC);  // Analog Comparator Capture Input
  pinMode(7, INPUT); //PD7 = AN1 = HiZ, PD6 = AN0 = 0
  pinMode(13, OUTPUT);
}


void loop(void)
{
 // Modulationsfrequenz messen über Analog Comparator Pin7 = AN1

 unsigned int d1,d2;
 int FSK = 10;
 int FSKtx = 0;
 while (FSK>0){
  TCNT1 = 0;
  while (ACSR &(1<<ACO)){
    if (TCNT1>65000) {break;
  }
  }  while ((ACSR &(1<<ACO))==0){
    if (TCNT1>65000) {break;}
  }
  TCNT1 = 0;
  while (ACSR &(1<<ACO)){
    if (TCNT1>65000) {break;}
  }
  d1 = ICR1;  
  while ((ACSR &(1<<ACO))==0){
    if (TCNT1>65000) {break;}
  } 
  while (ACSR &(1<<ACO)){
    if (TCNT1>65000) {break;}
  }
  d2 = ICR1;
  if (TCNT1 < 65000){
  unsigned long codefreq = 1600000000/(d2-d1);
    if (codefreq < 350000){
      if (FSKtx == 0){
          digitalWrite(13,1);
          si5351.output_enable(SI5351_CLK1, 0);   //RX off
          si5351.output_enable(SI5351_CLK0, 1);   // TX on
      }
      si5351.set_freq((freq * 100 + codefreq), SI5351_CLK0);  
      FSKtx = 1;
    }
  }
  else{
    FSK--;
  }
 }
  digitalWrite(13,0);
  si5351.output_enable(SI5351_CLK0, 0);   //TX off
  si5351.output_enable(SI5351_CLK1, 1);   //RX on
  FSKtx = 0;
}


Der Direktmischer



Der Empfänger in diesem QRP-Transceiver soll ein einfacher Direktmischer werden. Dafür würde man üblicherweise eine NE612 nehmen, aber dieses IC ist nur noch schwer zu bekommen. Ein Balancemischer dieser Art ist aber auch in vielen Radio-Chips eingebaut. Ich habe mich für den CD2003 entscheiden, den ich gut kenne, weil ich ihn auch für den Fledermausdetektor eingesetzt habe. Man kann sich am Datenblatt orientieren und muss sich nur alles wegdenken, was man nicht braucht.



Im ersten Versuch habe ich den CD2003-Direktmischer auf einer Steckplatine aufgebaut ...



... und provisorisch mit dem PLL-Chip SI5351 verbunden. Der Test zeigt gute Empfangseigenschaften.



Dann habe ich den Empfänger möglichst kompakt auf zwei Rasterstreifen aufgebaut...



... und schließlich in das Gerät eingesetzt.



Der Eingangskreis verwendet die Spule aus dem Franzis KW-Radio. Die Antenne ist über einen kleinen Kondensator angeschlossen. Zusätzlich gibt es einen Diodenbegrenzer. Damit soll es später möglich werden, den Antennenanschluss direkt an den Ausgang der Sendeendstufe anzuschließen und kein Antennenrelais einzusetzen. Das Oszillatorsignal mit 7074 kHz wird an einen 100-R-Widersatnd am AM-Oszillatoreingang des Radio-ICs gelegt. Am Mischerausgang Pin 4 würde normalerweise ein ZF-Filter angeschlossen. Beim Betrieb als Direktmischer erscheint hier das NF-Signal. Der Pegel passt gut zum direkten Anschluss an die Soundkarte.



Ein Empfangsversuch zeigt, dass der Empfänger gut funktioniert. Gegen Mittag waren zwar weniger Stationen zu empfangen als am Abend, aber alle Ergebnisse sehen aus wie gewohnt. Damit die die Empfängerstufe des Transceivers einsatzbereit.





Die Sendeendstufe



In der Sendeendstufe will ich den bewährten Power FET IRF720 einsetzen. Zusätzlich ist allerding noch eine Treiberstufe nötig. Ich wollte schon länger mal ausprobieren, ob man dazu einen MOSFET-Treiber MCP14E8-E/P einsetzen kann. Das IC habe ich eigentlich mal für einen Motortreiber gekauft, und es ist eigentlich nicht für HF gedacht. Aber es hat Anstiegszeiten von 23 ns bei einer Lastkapazität von 1000 pF. Da müsste es bei 7 MHz gerade noch gehen. VDD darf maximal 20 V sein, mehr als genug, um einen Power-FET anzusteuern.



Der erste Vorversuch lief wieder auf einer Steckplatine. Ich konnte feststellen, dass das Treiber-IC sich redlich mühen musste, um die 7 MHz zu schaffen. Der Betriebsstrom steigt mit der Frequenz und der Betriebsspannung. Mehr als 9 V sollte man vermeiden. Aber schon ab 6 V wird der FET sauber durchgesteuert. Der MCP14E8 enthält einen invertierenden und einen nicht invertierenden Treiber. Nur mit dem invertierenden Treiber war die Ansteuerung optimal. Der andere produzierte längere High-Signale als Low-Signale. Für die Versuche habe ich verschiedene Widerstände im Drain-Kreis des FETs verwendet. Einer ging völlig in Rauch auf, was für eine HF-Endstufe ein gutes Omen ist.



Jetzt ist die Endstufe in den Transceiver eingebaut. Der Power-FET hat zwei kleine Kühlkörper bekommen, die eigentlich mal für einen Raspberry vorgesehen waren. Zur 12V-Stromversorgung gibt es eine Netzteilbuchse. Ein Spannungsregler 7808 liefert stabile 8 V für den FET-Treiber. Weil der invertierende Treiber im Ruhezustand ein High-Signal liefert, ist eine C-Kopplung nötig. Ein Spanungsteiler mit 4,7 k und 6,8 k legt die Vorspannung beim Senden auf +2 V. Die Vorspannung wird beim Senden vom Ausgang D13 des Arduino eingeschaltet.



Der Ausgangsübertrager der Eintakt-Endstufe verwendet einen Doppellochkern. Primär hat er drei Windungen aus dickem Draht mit 0,6 mm, sekundär sechs Windungen mit dünnerem Draht. Damit wird die Spannung im Verhältnis 1 : 2 und die Impedanz im Verhältnis 1 : 4 transformiert. Bei einer Ausgangslast von 50 Ohm sieht der Transistor 12,5 Ohm.

Nachfolgend sorgt ein Tiefpassfilter für die nötige Oberwellendämpfung. Die Filterspulen haben ca. 0,5 µH. Ich habe zehn Windungen CuL 0,2 auf eine LED als 5-mm-Wickeldorn gewickelt und dann eine elfte Windung so um das Bündel geschlungen, dass die Wicklung mechanisch stabil bleibt. Die  äußeren Kondensatoren haben 560 pF, der mittlere 1500 pF. Diese Werte sind nicht berechnet, sondern im Vergleich zu vorher gebauten Filtern geschätzt. Eine Messung zeigte, dass das Filter für 7 MHz gut funktioniert.



Am Ausgang liegt der dreipolige Pfostenstecker, der inzwischen zu einem Quasi-Standard für meine HF-Experimente geworden ist. Die äußeren Pinne liegen an Masse, der mittlere trägt das Signal. Der Stecker ist damit unverpolbar. Der Antenneneingang des Empfängers liegt direkt am Ausgang des Übertragers. An der Stelle steht beim Senden eine HF-Spannung bis ca. 20 V, die am Empfängerkreis durch zwei Dioden auf ca. 0,6 V begrenz wird, Weil der Koppelkondensator nur 4,5 pF hat, fließt nur ein geringer HF-Strom, sodass kaum Leistung verloren geht. Im Empfangsmodus ist der Power-FET vollständig gesperrt und für den Empfänger ohne Wirkung. So kommt man ohne einen eigentlichen Antennenumschalter aus.



Zur Messung der Ausgangsleistung habe ich mir eine kleine Dummy Load gebaut. In der Bastelkiste fanden sich mehrere Widerstände mit 75 Ohm. Jeweils drei Widerstände parallel und zwei Blöcke in Reihe kommen auf 50 Ohm. Mit dem Oszilloskop konnte ich dann die Spannung am Lastwiderstand messen. Gemessen wurde eine Amplitude von 15 V. daraus ergibt sich eine Leistung von 2,25 W. Eigentlich hatte ich etwa 5 W angezielt. Aber 2 W reichen auch, wie ich schon mit dem SDR-Transceiver feststellen konnte.



Hier das Zielfoto des ersten erfolgreichen QSOs, das ich mit diesem QRP-Transceiver gefahren habe. Die erreichte Station steht in England, zwischen Liverpool und Manchester, 689 km von Essen entfernt. Der kleine Transceiver hat damit seinen ersten Praxistest bestanden.







Elektronik-Labor  Lernpakete  Projekte  HF