Página principal
Si5351
CLOCK GENERATOR

Anteriormente había realizado:
-LTC6904 - Generador de frecuencia 1KHz a 68MHz.
-AD9833 -Generador de funciones 1Hz a 12MHz
-AD9850 DDS - Generador señal desde 1Hz a 40MHz.
Ahora me ha llegado un módulo que lleva el chip SI5351A, con tres salidas de señal.
Utilizando un cristal de cuarzo de 25MHz, podemos obtener 3 señales entre 8KHz hasta 160MHz.
El Si5351 es un generador de reloj altamente flexible que es completamente configurable a través de su interfaz I2C.
La configuración predeterminada se almacena en la memoria no volátil (NVM).


En internet existen muchos montajes que utilizan este chip para emisores/receptores de radio.
Lo primero que hice fue montar el circuito en una breadboard y ponerme hacer pruebas.


El primer programa probado fue el de CesarSound que funcionaba perfectamente.
Podéis bajaros del enlace el programa, o bajarlo de mi página  generador1-120  y LIBRERÍAS.
generador1-120   By J.  CesarSound

71% de programa, utiliza:
#include <Rotary.h>                //Ben  Buxton https://github.com/brianlow/Rotary
#include <si5351.h>               //Etherkit  https://github.com/etherkit/Si5351Arduino
#include <Adafruit_GFX.h>         //Adafruit  GFX https://github.com/adafruit/Adafruit-GFX-Library
#include <Adafruit_SSD1306.h>     //Adafruit SSD1306 https://github.com/adafruit/Adafruit_SSD1306

Como yo no me puedo estar quieto me puse a investigar el chip.
La mejor fuente es el DATA_CHIP pero en este caso deja bastante que desear.

Con los dato del DATA_CHIP te quedan bastantes dudas y sobre todo en lo referente de programar los PLL que te indica que debes utilizar el programa: 
DIREC(26–41) PLL, MultiSynth, and output clock delay offset Configuration Registers.
Use ClockBuilder Desktop Software to Determine These Register Values.

Estudiando las librerías y en las páginas en:
https://learn.adafruit.com/adafruit-si5351-clock-generator-breakout/downloads
https://ea4civ.blogspot.com/2016/05/si5351a-dds-de-bajo-coste-descripcion.html

Conseguí entender algo.



Y con estos datos me puse a realizar modificaciones del programa.


si5351_a por SETA43

45% de programa, utiliza:
#include <si5351.h>               //Etherkit  https://github.com/etherkit/Si5351Arduino
Librería propia llamada olex.h

El ENCODER del mando es mio, no utilizo interrupciones, pero funciona bastante bien.
Los saltos de frecuencia son 1/10/100/1K/5K/10K/100K/1M.



si5351__b por SETA43

45% de programa, utiliza:
#include <si5351.h>               //Etherkit  https://github.com/etherkit/Si5351Arduino
Librería propia llamada olex.h
El ENCODER del mando es mio, no utilizo interrupciones, pero funciona bastante bien.
Los saltos de frecuencia son 1/10/100/1K/5K/10K/100K/1M.
Parpadea el numero a cambiar, casualmente en la imagen se ve el numero de los millones apagado.


 
si5351__c por SETA43

41% de programa, utiliza:
#include <Adafruit_SI5351.h>
y una librería propia llamada olex.h
---------------
Divisor=108.00 =D1+(D2/D3)
D1=107
D2=001
D3=001
Frecuencia=008.333.333  =900M/Divisor
---------------
He querido mostrar como funciona el divisor de frecuencia, puedes cambiar el numero entero junto con la fracción.

LIBRERÍAS UTILIZADAS.


Me ha sorprendido para mal, la documentación del Si5351, aunque tiene muchos registros y explican para que son cada uno, no explica como utilizarlo.
Para la programación del PLL te remiten a un programa, que una vez instalado te quedas igual.
Diría que este chip se diseño para las empresas y con poca documentación para los usuarios.
Pienso, y esto solo es opinión mía, que las librerías se sacaron por Ingeniería Inversa.



Saludos.
Juan Galaz



Bibliografía:


https://projecthub.arduino.cc/CesarSound/10khz-to-225mhz-vforf-generator-with-si5351-version-2-acdc25
https://learn.adafruit.com/adafruit-si5351-clock-generator-breakout/downloads
https://ea4civ.blogspot.com/2016/05/si5351a-dds-de-bajo-coste-descripcion.html
https://projecthub.arduino.cc/CesarSound/10khz-to-225mhz-vforf-generator-with-si5351-version-2-acdc25