Arduino библиотека за управление на Si570 / Si570 Arduino Library
/kn34pc.com/справочник/...

Silicon Labs Si570 - 10 MHz to 1.4 GHz I2C programmable XO

Features:

- Any programmable output frequencies from 10 to 945 MHz and select frequencies to 1.4 GHz
- I2C serial interface
- 3rd generation DSPLL with superior jitter performance
- Internal fixed crystal frequency ensures high reliability and low aging
- Available LVPECL, CMOS, LVDS and CML outputs
- Industry-standard 5x7 mm package

I2C address = 0x55

SiLabs 570 CAC000141G


Si570, поглед отгоре

***


Si570 - тестова схема

За по-голяма универсалност при тестовете използвам 5 волтово Arduino (в случая: Arduino Nano), а на тестовата си платка към Si570 съм добавил LDO стабилизатор AMS1117-ADJ на 3,3V и конвертор на ниво 5V/3,3V към I2C шината. Резисторът R1 и кондензаторите C2, C4 са за допълнителна филтрация на захранващото напрежение. Входът ОЕ може да се използва за хардуерна манипулация (включено/изключено) на изходния сигнал (напр. за CW TX, CW Beacon и др.).


Si570, "печатна платка" с прорязани островчета


LZ2WSG Si570 module

Библиотека за управление на Si570 под Arduino / Si570 Arduino Library:
si570_lib_v0.5.zip

Тестовият Arduino sketch е за една постоянна изходна честота: (напр. 10 000 000 Hz).

За избор на делителите HSDIV, HS_DIV_index, N1 и изчисление на съответните честоти на VCO използвам таблично представяне. Възможно е да се извърши допълнителна оптимизация на превключването им (напр. извън любителските диапазони, сметнато с или без IF). Затова споделям помощната си таблицата (в MS Excel). Дано е в полза:
wsg_6_OK.zip

При честотно отклонение, по-голямо от +/- 3500 ppm (според справочните данни), пресмятам новите коефициенти. Напр. на 28 MHz би трябвало да има пукот веднъж (пращене, прекъсване на изходния сигнал за време 10 mS) на всеки 98 000 Hz, на 1,8 MHz: на всеки 6 300 Hz, но практически в собствения си суперхетеродинен приемник (без антена) такова пропукване не чувам. С късовълнова антена към приемника и да има такъв негативен ефект, то той е здраво маскиран от ефирния шум, т.е. лично не намирам негативи при управлението на Si570.

При по-малко честотно отклонение от +/- 3500 ppm без преизчисление на коефициентите зареждам новия RFREQ, намерен като отношение: (нова честота / стара честота) * стар RFREQ.

Посоченото управление е за Si570 CMOS версия А. За другите по-високочестотни версии (B, C) коефициентите не са изчислени след 350 MHz, но при желание аналогично могат да се добавят в библиотеката.

***

Публични процедури:

void init(uint32_t fxtal);
инициализация на библиотеката

fxtal - честота на опорния кварцов резонатор, в Hz (~114 285 000 Hz, напр. за моята ИС Si570 -> Fxtal = 114 306 560 Hz)

void set_freq(uint32_t f);
установяване на изходната честота

f = 10 000 000 ... 160 000 000 Hz (напр. за моята ИС CMOS Si570 -> f = 4 300 000 ... 320 000 000 Hz)

void set_fxtal(uint8_t xt);
за калибрация: установяване на нова честота на опорния кварцов резонатор xt


Изходът CLK може да се управлява хардуерно (включен / изключен) с помощта на лог. ниво на външния извод ОЕ (лог.1: вкл. / лог. 0: изкл.). Състоянието по подразбиране е включено, установено с вътрешен pull-up резистор OE-Vcc.


Препратки и материали:
1. Si570, Si571, Silicon Labs - 10 MHz to 1.4 GHz I2C programmable XO/VCXO [pdf][369kb]
2. The Si-570 (SiLabs), Micromod RF Synthesizer: A 19.9 - 199.999 MHz (CMOS) I2C programmeable XO
3. Si570 revisited - flexible Arduino controller
4. WA0UWH Customization of the original Minima sketch
5. Универсальный синтезатор Si570/Si5351 от UR5FFR

6. Programmable PLL (Si570) Local Oscillator for HF Receivers, Transmitters, Transceivers [pdf][2mb]

LZ2WSG, Силистра
19 октомври 2018 година