Si570

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Der Si570 und SI571 von Silabs sind digital einstellbare Pll/DDs-Oszillatoren für 10MHz bis max. 1417 MHz (abhängig vom Typ, siehe Bestellbezeichnungen im Datenblatt).

Sie bestehen aus einem PLL-Oszillator, der mit einem 38 Bit DDS sehr feinstufig von 4850 bis 5670 MHz abgestimmt wird. Der Referenz-Quarzoszillator hat eine Frequenz von 114,285 MHz. Anschließend wird die Frequenz mit zwei einstellbaren Frequenzteilern namens HSDIV und N1 heruntergeteilt. Die Ausgangspegel sind je nach Bestellbezeichnung CMOS (max nur 160 MHz), LVDS und weitere, z.B. LVPECL.

Programmierung der Frequenz über I2C-Bus

Der Teiler HSDIV ist nur auf die sechs Werte 4,5,6,7,9 und 11 einstellbar, Teiler N1 ist entweder 1 oder eine gerade Zahl von 2 bis 128.

Eine Tabelle (Si570_Frequenzbereiche.pdf) zeigt die damit erreichbaren Frequenzen (laut Datenblatt nur > 10 MHz zulässig).

Die unten genannte Webseite "SDR-Kits.net " sagt zu den tatsächlich erreichbaren Frequenzbereichen: "...can generate almost any frequency between 3.5MHz and up to 945 MHz depending on the Si570 chip used. The Si570CAC CMOS version is specified for 160 MHz, max freq 210 MHz, , The Si570BBC LVDS version is specified up to 280 MHz and the Si570BBB LDS version is specified at 810 MHz with 945 MHz as maximum."

Das Datenblatt empfiehlt (bei mehreren möglichen Einstellungen) die mit der niedrigsten Oszillatorfrequenz und den größten HS-Teiler zu verwenden, da der Stromverbrauch damit kleiner ist: "To help minimize the device's power consumption, the divider values should be selected to keep the DCO's oscillation frequency as low as possible. The lowest value of N1 with the highest value of HS_DIV also results in the best power savings."

Eine weitere Tabelle (Si570_RFREQ_DDS.pdf‎) zeigt, dass von den 38 Bit des DDS nur 33 veränderlich sind. Die Tabelle ist nach der sehr umständlichen dreiseitigen Beschreibung im Datenblatt erstellt. Sie zeigt, dass die 820 MHz Frequenzvariation in 1,9 Milliarden Stufen eingeteilt ist, also etwa 0,5 Hz pro Schritt. Durch die anschließende Teilung durch (HSDIV * N1) werden die Schritte noch entsprechend kleiner.

Aus der 5 Byte langen RFREQ-Zahl erhält man die Oszillatorfrequenz in MHz mittels Division durch 2348824,92 (dez). Für die tatsächliche Ausgangsfrequenz muß diese Zahl noch durch (HSDIV * N1) geteilt werden. Umgekehrt erhält man die RFREQ-Zahl durch Multiplikation mit dieser Konstanten, damit ist keine große Division nötig.

Die Auswahl der beiden Frequenzteiler kann mit einer überschaubaren Tabelle wie oben gezeigt erfolgen. Viele Einträge sind doppelt, überschneiden sich, oder liegen unter der Grenze von 10 MHz, sodass sie noch deutlich kleiner ausfällt.

Die Einstellung einer dezimal vorgegebenen Frequenz kann also so ablaufen:

  • Umrechnung in eine Hexadezimalzahl
  • Suche in der Tabelle nach den passenden Teilern HSDIV und N1
  • Aus derselben Tabelle entnimmt man den Multiplikator (HSDIV * N1 * 2348824,92d)
  • Eine Multiplikation liefert die RFREQ-Zahl (5 Byte)
  • Diese Daten werden über I2C-Bus ins Si570 übertragen

Wird die Frequenz mit Drehgeber eingegeben oder aus einer Auswahltabelle geholt, kann es sinnvoller sein, sie hexadezimal vorzugeben und nur zur Anzeige wie hier gezeigt in dezimale Ascii-Ziffern umzurechnen.

Zur BCD-to-Bin/Bin-to-BCD-Umrechnung und Multiplikation gibt es zum Beispiel für die AVR-Reihe die 32 Bit Mathematikbibliothek von A. Birua

Einschwingzeit

Das Datenblatt nennt zwei verschiedene Einschwingzeiten: bei Frequenzänderungen von max ± 0,35 % nur 100 µs, sonst 10 ms. Damit ist ein Wobbelbetrieb oder ein schnelles Abstimmen eines Empfängers nur sehr beschränkt möglich. Ein Rechenbeispiel: ein LC-Display 320*240 Pixel soll eine Wobbelkurve darstellen. Damit dauert ein Wobbelvorgang mindestens 320*10ms = 3,2 sec

Während der Neukalibration (innerhalb dieser 10 ms) ist der Oszillatorausgang abgeschaltet.

Um Frequenzsprünge während des Abstimmens zu vermeiden läßt sich die alte Frequenz "einfrieren" (freeze-bit).

Zwischen dem Aufwecken aus dem Freeze-Zustand und dem Setzen des Trigger-Bits "NewFreq" dürfen maximal 10 ms vergehen, da sonst auf die Start-up-Frequenz umgestellt wird. Das NewFreq-Bit kann auch gelesen werden, möglicherweise kann damit das Ende des Kalibrationsvorgangs festgestellt werden. Das Datenblatt sagt dazu nur "This bit will clear itself when the new frequency is applied".

Harmonische Frequenzen

Da das Ausgangssignal eine digitale Rechteckschwingung darstellt, enthält es ungerade Harmonische, vor allem die dreifache bis siebenfache Frequenz. Damit können wir auch die WLAN-Bänder 2,4 GHz (3*800 MHz) und 5,6 GHz (7*800MHz) erreichen. Ein Bandpass oder Hochpass könnte die Grundschwingung unterdrücken. Eine Messung des Si570-Spektrums (leider nur bei 100 MHz, "significant harmonic energy is seen above 2 GHz") gibt es hier .

Si570 im Diskussionsforum

Weblinks