SI5351: primeros pasos

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 placa de desarrollo SI5351 monta el chip 10-MSOP y se puede obtener en Aliexpress por menos de 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.

Bloques de un sintetizador de RF.
La realimentación es la base del PLL (Phase-Locked Loop, bucle de enganche de fase) que compara la señal de referencia (Ref) que generad un cristal de cuarzo (En nuestro caso de 25 MHz) con la generada por el VCO (Voltage-Controlled Oscillator, oscilador controlado por voltaje que trabaja entre 600-900 MHz) a traves de un FMD (Feedback Multisynth Divider  - Divisor de realimentación).y la corrige de forma continua, pasando al OMD (Oscillator Modulation Direct, Oscilador de Modulación Directa que dividen las frecuencias las veces que sea necesaria , siempre mayor o igual a 4, para obtener la frecuencia de salida deseada) que pasa al divisor y al amplificador d (Entre 4 y 1800)e cada una de las salidas.


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


Lilygo T-BEam => Si5351
5V => Vin, GND => GND, 22=> SCL, 21=> SDA
Es decir que usa los mismos conectores por lo que hay que soldar una regleta y despues diferenciar por la dirección, este problema lo tendra siempre que tenga tya un periferico en SDA /SDL
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
Vamos a modificarlo para la frecuencia de trabajo que queremos usar en nuestro proyecto  WSPR para comprobar la corrección que necesitamos
  • uint64_t target_freq = 1014010000ULL;
  • int32_t cal_factor = 0;
Vemos en el receptor que aparece en 10141540 por lo que la desviación es +1440 Hz => 144000


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
Otra opción son los filtros pasa banda

Atenuación

Si se va usar un paso de amplificación hay que ajustar el nivel de la señal al máximo aceptable por el amplificador para no quemarlo, ni que la señal distorsione
Los atenuadores pueden ser:

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)


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


Prohibida la reproducción parcial o total de este artículo sin permiso previo del autor

No hay comentarios:

Publicar un comentario

Cacharreando con señales horarias.

  (En construcción) En una entrada anterior hemos visto que todavía se mantienen activas  emisoras de patrones de tiempo y frecuencia ,  y e...