Arduino SI5351 Taktgenerator und Frequenzgenerator

HF-Frequenzgeneratoren werden benötigt, um beispielsweise Empfänger oder Signalanzeigen überprüfen zu können. In diesem Artikel zeigen wir, wie man einen Takt-Generator mit dem Arduino baut und damit die Testsignale und Testfrequenzen generiert. Als Hardware wird der SI5351A Taktgenerator verwendet, der über die I2C Schnittstelle mit dem Arduino kommuniziert. Der Taktgenerator arbeitet laut Herstellerangaben im Frequenzbereich zwischen 8 KHz und 160 MHz. Der Takt-Generator verfügt über drei Kanäle, die jeweils unterschiedliche Frequenzen zugleich ausgeben können.

Verdrahtung mit dem Arduino

Der Frequenzgenerator Arbeit mit 3.3 und 5 Volt. Der Datenaustausch erfolgt über I2C. Der SI5351 wird in der regel zerlegt geliefert, was bedeutet, dass man die Stiftleiste und die drei SMA-Buchsen erst an die Platine löten muss. Neben SCL und SDA wird lediglich noch die Stromversorgung (+5V & GND) benötigt.

SI5351 Frequency Takt Generator Wiring Plan

Die Library

Adafruit stellt für den Modulator eine Library bereit, die den SI5351 unterstützt. Im Beispiel-Code werden alle drei Kanäle mit jeweils einer unterschiedlichen Variante programmiert. Um bestimmte Frequenzen und Eigenschaften generieren zu können, muss man sich für eine dieser Varianten entscheiden. Der unten angeführte Code stammt teilweise vom Beispielcode und wurde etwas vereinfacht. Mit diesem Code ist es Möglich, alle Frequenzen von der unten angeführten Tabelle zu generieren.


Quellcode

//Source: https://learn.adafruit.com/adafruit-si5351-clock-generator-breakout/overview
#include <Wire.h>
#include <Adafruit_SI5351.h>

int plla = 36; //Define factor for frequency (1-50)

Adafruit_SI5351 clockgen = Adafruit_SI5351();

void setup() 
{
  Serial.begin(9600);
  Serial.println("Si5351 Clockgen Test"); 
  Serial.println("");
  if (clockgen.begin() != ERROR_NONE)
  {
    Serial.print("No Si5351 detected ... Check your wiring or I2C ADDR!");
    while(1);
  }
  Serial.println("System running...");
  float freq = plla*25/8.0;
  clockgen.setupPLLInt(SI5351_PLL_A, plla);
  Serial.println(freq, 3);  
  clockgen.setupMultisynthInt(0, SI5351_PLL_A, SI5351_MULTISYNTH_DIV_8);
  
}

void loop() 
{  
  clockgen.enableOutputs(true);
  delayMicroseconds(500);
  clockgen.enableOutputs(false);
  delayMicroseconds(500);
}

Der Quellcode

Mit dem oben angeführten Quellcode können über 50 verschiedene Frequenzen generiert werden. Die Ausgabefrequenz errechnet sich aus der Formel plla-wert*25Mhz/8 oder plla-wert*25Mhz/6. "plla" ist ein Wert zwischen 1 und 50, der am Beginn vom Programm definiert wird. Die Tabelle zeigt, was die Ausgabefrequenz beim jeweiligen plla-Wert in Abhängigkeit vom Divisionsfaktor (8 oder 6) ist.

Töne generieren

Normalerweise wird nur ein leerer Träger ohne Modulation erzeugt. Gerade um z.B. analoge Empfänger die keine Signalstärke anzeigen, testen zu können, wird ein Test-Ton benötigt. Unser Beispielcode macht dies bereits, indem er ständig im Mikrosekunden-Bereich den Sender Ein- und Ausschaltet. Durch den schnellen Wechsel vom Zustand des Senders erreicht man, dass aus den Empfängern ein Ton hörbar wird. Durch die Änderung vom Delay kann die Tonhöhe angepasst werden. Achtung: Es handelt sich dabei um keinen echten Tongenerator, der als Referenzfrequenz genutzt werden kann.

Frequenztabelle

*Hellgrüne Felder sind Frequenzen im Amateurfunkband

PLLA Faktor 8 Faktor 6 PLLA Faktor 8 Faktor 6
1 3.125 MHz 4.167 MHz 27 84.375 MHz 112.500 MHz
2 6.250 MHz 8.333 MHz 28 87.500 MHz 116.667 MHz
3 9.375 MHz 12.500 MHz 29 90.625 MHz 120.833 MHz
4 12.500 MHz 16.667 MHz 30 93.750 MHz 125.000 MHz
5 15.625 MHz 20.833 MHz 31 96.875 MHz 129.167 MHz
6 18.750 MHz 25.000 MHz 32 100.000 MHz 133.333 MHz
7 21.875 MHz 29.167 MHz 33 103.125 MHz 137.500 MHz
8 25.000 MHz 33.333 MHz 34 106.250 MHz 141.667 MHz
9 28.125 MHz 37.500 MHz 35 109.375 MHz 145.833 MHz
10 31.250 MHz 41.667 MHz 36 112.500 MHz 150.000 MHz
11 34.375 MHz 45.833 MHz 37 115.625 MHz 154.167 MHz
12 37.500 MHz 50.000 MHz 38 118.750 MHz 158.333 MHz
13 40.625 MHz 54.167 MHz 39 121.875 MHz
14 43.750 MHz 58.333 MHz 40 125.000 MHz
15 46.875 MHz 62.500 MHz 41 128.125 MHz
16 50.000 MHz 66.667 MHz 42 131.250 MHz
17 53.125 MHz 70.833 MHz 43 134.375 MHz
18 56.250 MHz 75.000 MHz 44 137.500 MHz
19 59.375 MHz 79.167 MHz 45 140.625 MHz
20 62.500 MHz 83.333 MHz 46 143.750 MHz
21 65.625 MHz 87.500 MHz 47 146.875 MHz
22 68.750 MHz 91.667 MHz 48 150.000 MHz
23 71.875 MHz 95.833 MHz 49 153.125 MHz
24 75.000 MHz 100.000 MHz 50 156.250 MHz
25 78.125 MHz 104.167 MHz 51 159.375 MHz
26 81.250 MHz 108.333 MHz

Oft gelesen

Anzeige:

Video zum Beitrag

Social Media

Newsletter