El SI5351 es un circuito CMOS cuya función es la de hacer de generador de reloj programable con interface IIC y ser un oscilador VCXO (Oscilador de cristal controlable por tensión - 25 MHz) de:
- 8 kHz a 160 MHz
- 8 dBm (unos 6 mW)
El circuito SI5351A permite hasta:
- tres salidas de señal de radio frecuencia independientes: CLK0, CLK1 y CLK2
- tres salidas de señal de reloj: Pin O, Pin 1 y Pin 2
La frecuencia y el periodo mantienen una relación inversa por lo que teniendo una de ellas es fácil obtener la otra.
![]() |
| Esquema de bloques del 10-MSOP en la que se distinguen el oscilador, los 2 PLL, y las tres salidas de RF. |
Configuración
Hay dos librerias que pueden usarse para su uso con Arduino IDE
- Etherkit Si5351 (https://github.com/etherkit/Si5351Arduino) que es mas alto nivel y que es la única que se ha conseguido hacer funcionar. En el fuente se distingue por el código
- #include "si5351.h"
- #include "Wire.h"
- Si5351 si5351;
- Adafruit SI5351 (https://github.com/adafruit/Adafruit_Si5351_Library) que permite trabajar a bajo nivel (clockgen.setupPL que controla los dos PLL con salidas entre 600 y 900 MHz a partir del cristal de 25 MHz y clockgen.setupMultisynth que controla los tres Multisynth de salida basicamente dividiendo la frecuencia). En el fuente se distingue por el código:
- #include "Adafruit_SI5351.h"
- #include <Wire.h>
- Adafruit_SI5351 si5351 = Adafruit_SI5351();
Cableado
Si5351 lo vamos a controlar con la placa Lilygo T-Beam por lo que necesitamos conectar una con otra
![]() |
| La pantalla OLED de la Lilygo T-Beam usa VCC, GND, SCL y SDA |
![]() |
| Detalle de la soldadura de la regleta de 4 terminales a la Lilygo T-Beam y conexión a la Si 5351 |
Calibración
Es necesario calibrar el SI5351 antes de usarlo, es decir conocer que desviación hay entre la frecuencia que dice generar y la que realmente genera.
Para ello necesitamos uno de estos dos elementos:
- Un generador de RF fiable
- Un receptor de RF fiable
El programa que vamos a usar es examples/si5351_calibration
- Disponer de un receptor sintonizado a la frecuencia para la que queremos calibrar, solamente se pude hacer con una frecuencia, si se cambia habria que volver a calibarlo. En nuestro caso usamos un RTL-SDR & SDR++ y en una primera calibración vamos hacerlo para 10 MHz
- Abrir Arduino IDE
- Cargar el programa si5351_calibration.ino y comprobar la frecuencia de ajuste
- uint64_t target_freq = 1000000000ULL; // 10 MHz, in hundredths of hertz (en Centesimas de Hz)
- Comprobar que la señal sale por el CLK0 ( si5351.set_freq(target_freq, SI5351_CLK0) y enroscar una antena en dicha salida de las tres que tenemos
- Compilar y cargar en la placa ESp32, ajustando la velocidad del puerto serie
![]() |
| Esta es la imagen que tenemos que ver cuando conectemos el SI5351+ESP32 La desviación es de +1.460 Hz |
- Pulsamos la letra sucesivamente la siguiente secuencia de letras con su correspondiente INTRO "l k k k k j j j j j j" en la entrada serie y comprobaremos que baja la frecuencia hasta los 10 MHz. La secuencia la obtenemos de la siguiente tabla de ajustes
![]() |
| Una vez que tengamos la frecuencia ajustada basta con introducir la letra "q" |
- Lea el valor de ajuste en la salida, modifique la variable en el programa (int32_t cal_factor = 146000;), y vuelva a compilarlo y cargarlo, si todo ha ido bien emitirá en 10 MHz
- uint64_t target_freq = 1014010000ULL;
- int32_t cal_factor = 0;
Filtrado
Dado que la onda que se genera es cuadrada (pulsos) debe instalar obligatoriamente un filtro pasa bajos con frecuencia de corte ligeramente superior a la máxima frecuencia de generación en la salida, para atenuar los armónicos y los productos de intermodulación.
Algunos modelos de filtros pasabajos- 80, 40, 20,17 y 6m https://www.zachtek.com/product-page/low-pass-filter-board-kit 20€
- 10 m https://es.aliexpress.com/item/1005006331048805.html 5€
- 0,5-1,5 MHz, 4,5-12 MHz, 12 30 MHz, 80-110 MHz https://es.aliexpress.com/item/1005008465762239.html 20€
Atenuación
- Individuales (de 1 a 60 dB, por unos 6€ calibrados): https://es.aliexpress.com/item/1005005680019816.html
- Bancos (p.e. 0, 10, 20 y 30 dB, por unos 10€ ): https://es.aliexpress.com/item/1005008851971386.html
Amplificación
Se han analizado diversos amplificadores de potencia de bajo coste para aumentar la potencia de salida de 8dBm, de todos ellos hay que destacar:
- Amplificadores basados en ( SBB5089Z o su clon LA2T9E): que ofrece 20dB de ganancia con 5V de alimentación. Parece que la señal de entrada es excesiva (sin atenuador no se recibe ningun spot al saturarse el amplificador por una señal excesiva de entrada)por lo que se le ha conectado un atenuador de 3dB, por lo que la ganancia efectiva sería de 17 dB (25 dBm) con ello se ha comprobado que en la práctica se duplica el numero de spots recibidos.
![]() |
| Diferencia de spots recibidos en WSPR sin amplificador (1 y 2) y con amplificador con atenudor de 3dB en la entrada(3) |
- TQP3M9037 LNA - RF AMP 04A (TQP3M9037) ofrece 15 dB de ganancia con 5V de alimentación. para disminuir la señal de entrada se probóo con un atenuador de 3 dB y con otro de 6dB, siendo este ultimo el idóneo, por lo que la ganancia efectiva sería de 9 dB (17 dBm) con ello se ha comprobado . Disponible por unos 7€ en aliexpress
Resumen
Hemos:- conectado la placa SI5351 a la placa de desarrollo ESP32 Lilygo
- comprobado que funciona correctamente
- calculado el ajuste de frecuencia que necesitamos hacer mediante el uso de un receptor.
- Podemos hacer una tabla con las frecuanecias que vamos a usar y las correcciones que necesitamos
- Cuando usemos WSPR podemos comprobar la frecuencia en la que emite viendo los spots
- probado elementos complementarios como amplificador de potencia, atenuador y filtro.
Referencias











No hay comentarios:
Publicar un comentario