PLL click is a frequency multiplier which uses the Phase-Locked Loop (PLL) techniques to provide a high-frequency clock output from a cheap, standard fundamental mode crystal oscillator. In addition to this, PLL click also offers a choice between nine different multiplication factors, programmed via states of the two input pins. The output range of the PLL click goes up to 160MHz.
Besides the fixed 12MHz crystal oscillator, PLL click can also use a PWM signal source brought from the PWM pin of the mikroBUS™, offering a possibility to continuously adjust the output frequency. Featuring a very precise PLL multiplication, very low output jitter of 25ps, tri-state output for board level testing, both onboard and external clock inputs, ability to change clock “on the fly”, compatibility with all the 3.3V and 5V MCUs, and selectable multiplication factor, this Click board™ can be used for development and prototyping of various applications which can benefit from having an adjustable system clock generator, or for any general purpose application that demands cheap solution for the high-speed system clock.
How does it work?
PLL click is equipped with the ICS501, a LOCO™ PLL clock multiplier, from Integrated Device Technology. This IC uses the Phase-Locked Loop to provide a high-frequency clock output, deriving input from a much cheaper, standard fundamental frequency crystal oscillator. Besides the onboard crystal oscillator fixed at 12MHz, it is possible to select the signal from the mikroBUS™ PWM pin as the clock input source.
To select the desired multiplication factor, the states of the two input pins S0 and S1, routed to the mikroBUS™ pins RST and AN, respectively. These pins can be set to a HIGH logic state, LOW logic state, or can be disconnected (by tri-stating the MCU pins). The combination of these pins states will set the PLL click to a specific multiplier. To set the multiplication factor of the PLL click, please consult the multiplication selection table, below.
The Output Enable (OE) pin of the ICS501, is used to disable the output clock, by setting it to a LOW logic level. It will additionally set the clock output pin in high impedance (Hi-Z) mode, allowing complete disconnection and no influence on the rest of the circuit, which is useful for experimenting and prototyping purposes. This pin is internally pulled to a HIGH logic level. The OE pin is routed to the CS pin of the mikroBUS™.
PLL click is equipped with two onboard SMD jumpers. The SMD jumper labeled as the VCC SEL is used to select the operating voltage level, consequently limiting the amplitude of the clock output signal, in respect to the selected voltage. The other SMD jumper labeled as the OSC SEL is used to choose the clock input source between the onboard 12MHz crystal oscillator or the external clock signal. The output signal is routed through the onboard SMA connector, which provides a secure connection and good signal shielding.
PLL click comes with the library that contains functions for all the MikroElektronika compilers (mikroBASIC, mikroPASCAL, and mikroC). Although relatively easy to control it, the library offers comprehensive functions that make the code more readable and are easy to use. The included example application demonstrates the use of these functions and it can be used as a reference for custom projects.
Specifications
Type
Clock generator
Applications
PLL click can be used for development and prototyping of various applications which can benefit from having an adjustable system clock generator, or for any general purpose application that demands cheap solution for the high-speed system clock.
On-board modules
ICS501, a LOCO™ PLL clock multiplier, from Integrated Device Technology
Key Features
Precise PLL multiplication, very low output jitter of 25ps, the tri-state output for board level testing, both onboard and external clock inputs, etc.
Interface
GPIO
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
M (42.9 x 25.4 mm)
Input Voltage
3.3V or 5V
Pinout diagram
This table shows how the pinout on PLL click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
PLL click specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Input frequency – crystal input | – | 12 | – | MHz |
Input frequency – clock input | 2 | – | 50 | MHz |
Absolute clock period jitter | -75 | – | 75 | ps |
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | – | Power LED indicator |
JP1 | VCC SEL | Left | Power supply voltage selection: left position 3V3, right position 5V |
JP2 | OSC SEL | Left | Input clock signal source selection: left position onboard 12MHz crystal oscillator, right position external clock from PWM pin |
Software support
We provide a library for PLL click on our Libstock page, as well as a demo application (example), developed using MikroElektronika compilers and mikroSDK. The provided click library is mikroSDK standard compliant. The demo application can run on all the main MikroElektronika development boards.
Library Description
Initializes and defines I2C driver and driver functions which offer a choice of writing in registers and reading from the registers. The library also has the ability for light measurements. The library can measure Small, Medium, and Large IR light, White and Large White light and UV and Deep UV light, whose values can be 16-bit or 24-bit. The library also offers a choice between channels that the user wants to measure desired light. For more details check the documentation.
Key functions:
void pll_setClockOutput(uint8_t mode);
- Function for enabling and disabling of the clock output.void pll_setPLL_3x();
- Function for multiplying of the clock 3 times.void pll_setPLL_4x();
- Function for multiplying of the clock 4 times.void pll_setPLL_5x();
- Function for multiplying of the clock 5 times.void pll_setPLL_6x();
- Function for multiplying of the clock 6 times.void pll_setPLL_8x();
- Function for multiplying of the clock 8 times.
Examples Description
- System Initialization – Initializes CS pin, RST pin and AN pin as an output.
- Application Initialization – Initializes driver init and set mode chip as ACTIVE.
- Application Task – (code snippet):
- Every 2 seconds, the PLL increases the input clock in the order of x4, x5, x6, and x8.
- If you use PLL x4, x5, x6 or x8, set S0 (RST pin) and S1 (AN pin) as OUTPUT.
- If you use PLL x3.125 or x6.25, set S1 ( AN pin ) as INPUT and S0( RST pin ) as OUTPUT.
- If you use PLL x3 or x5.3125, set S0 ( RST pin ) as INPUT and S1 ( AN pin ) as OUTPUT.
For the test, the onboard crystal oscillator is used where the frequency of the input clock is fixed. Using ICK (PWM pin) as input, it allows continuous output frequency setting to be in a wide range.
void applicationTask() { pll_setPLL_4x(); Delay_ms( 2000 ); pll_setPLL_5x(); Delay_ms( 2000 ); pll_setPLL_6x(); Delay_ms( 2000 ); pll_setPLL_8x(); Delay_ms( 2000 ); }
The full application code, and ready to use projects can be found on our Libstock page.
Other mikroE Libraries used in the example:
- Conversions
- I2C
- UART
Additional notes and information
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.