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