How does it work?
Clock Gen click features the Si5351A, a versatile I2C programmable clock generator that is ideally suited for replacing crystals, crystal oscillators, VCXOs, PLLs, and buffers. The Si5351A consists of an input stage, two synthesis stages, and an output stage. The input stage accepts an external crystal (XTAL on XA and XB pins). The first stage of synthesis multiplies the input frequencies to an high-frequency intermediate clock, while the second stage of synthesis uses high resolution MultiSynth fractional dividers to generate the desired output frequencies. Additional integer division is provided at the output stage for generating output frequencies as low as 2.5 kHz. Crosspoint switches at each of the synthesis stages allows total flexibility in routing any of the inputs to any of the outputs. Because of this high resolution and flexible synthesis architecture, the Si5351A is capable of generating synchronous or free-running non-integer related clock frequencies at each of its outputs, enabling one device to synthesize clocks for multiple clock domains in a design.
The Si5351A uses a fixed-frequency standard AT-cut crystal as a reference to the internal oscillator. The output of the oscillator can be used to provide a free-running reference to one or both of the PLLs for generating asynchronous clocks. The output frequency of the oscillator operates at the crystal frequency of 25 MHz. Internal load capacitors are provided to eliminate the need for external components when connecting a crystal to the Si5351A. The total internal XTAL load capacitance (CL) can be selected to be 0, 6, 8, or 10 pF.
The Si5351A uses two stages of synthesis to generate its final output clocks. The first stage uses PLLs to multiply the lower frequency input references to a high-frequency intermediate clock. The second stage uses high resolution MultiSynth fractional dividers to generate the required output frequencies. Only two unique frequencies above 112.5 MHz can be simultaneously output. For example, 125 MHz (CLK0), 130 MHz (CLK1), and 150 MHz (CLK2) is not allowed. Both PLLs are locked to the same source (XTAL). The crosspoint switch at the input of the second stage allows any of the MultiSynth dividers to connect to PLLA or PLLB. This flexible synthesis architecture allows any of the outputs to generate synchronous or non-synchronous clocks, with spread spectrum or without spread spectrum, and with the flexibility of generating non-integer related clock frequencies at each output. Frequencies down to 2.5 kHz can be generated by applying the R divider at the output of the Multisynth.
All output drivers generate CMOS level outputs with a single output voltage supply pin (VDDO) allowing a different voltage signal level (1.8, 2.5, or 3.3 V) at the output banks. The output voltage level selection can be chosen by moving an SMD jumper labeled as VDDO SEL to an appropriate position (3V3 or EXT). If 3V3 is chosen, the VDDO is supplied by the board, otherwise, an external supply must be connected to the voltage level supply pin.
This Click Board™ uses the I2C communication interface. It is designed to be operated only with 3.3V logic levels. A proper logic voltage level conversion should be performed before the Click board™ is used with MCUs with logic levels of 5V.
Specifications
Type
Clock generator
Applications
Audio/video equipment, gaming, printers, scanners, projectors, handheld instrumentation, laser range finder, residential gateways, network/communication, servers, storage, XO replacement.
On-board modules
Clock Gen Click uses the SI5351A-B-GT IC, a configurable clock generator, from Silicon Labs.
Key Features
Configurable clock generator with three outputs, freq generator from 2.5 kHz to 200 MHz, very low power consumption
Interface
I2C
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
M (42.9 x 25.4 mm)
Input Voltage
3.3V
Pinout diagram
This table shows how the pinout on Clock Gen Click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | – | Power LED Indicator |
JP1 | VDDO SEL | Left | Output voltage level selection 3V3/EXT, left position 3v3, right position External supply |
Clock Gen Click electrical specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Core Supply Voltage | 3.0 | 3.3 | 3.6 | V |
Output Buffer Voltage | 1.71 | 3.3 | 3.6 | V |
Operating Temperature Range | -40 | 25 | 85 | °C |
Output Impedance | – | 50 | – | Ω |
Software Support
We provide a library for the Clock Gen Click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
Library provides functions for communicating with device via I2C module, and many functions for user to easly set frequency of device.
Key functions:
void clockgen_generic_write ( uint8_t reg_adr, uint8_t write_data )
– Function for I2C write to deviceuint8_t clockgen_generic_read ( uint8_t reg_adr )
– Function for I2C read from devicevoid clockgen_set_frequency ( uint8_t clk_num, uint8_t pll_num, uint32_t freq )
– Function for setting frequency to devicevoid clockgen_set_params ( uint8_t clk_pll_num, clockgen_params_t *param_group )
– Function for setting parameters to specific clock or pllvoid clockgen_setup_multisyinth ( uint8_t clk_num, uint32_t divider, uint32_t num, uint32_t denom, uint8_t factor )
– Function for setting OMDvoid clockgen_setup_pll ( uint8_t pll, uint8_t mult, uint32_t num, uint32_t denom )
– Function for setting FMD
Examples description
The application is composed of three sections :
- System Initialization – Initialization of I2C module
- Application Initialization – Configures device to default function that enables clock 0 and disables all others
- Application Task – Changes 4 different frequency i span of 5 seconds
void application_task ( ) { clockgen_set_frequency( CLOCKGEN_CLOCK_0, CLOCKGEN_PLLA, 1 ); Delay_ms( 5000 ); clockgen_set_frequency( CLOCKGEN_CLOCK_0, CLOCKGEN_PLLA, 3 ); Delay_ms( 5000 ); clockgen_set_frequency( CLOCKGEN_CLOCK_0, CLOCKGEN_PLLA, 10 ); Delay_ms( 5000 ); clockgen_set_frequency( CLOCKGEN_CLOCK_0, CLOCKGEN_PLLA, 5 ); Delay_ms( 5000 ); }
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- I2C
- UART
Additional notes and informations
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
mikroSDK
This Click board™ is supported with mikroSDK – MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant Click board™ demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.