7 cpu clock source – Digilent 410-295P-KIT User Manual
Page 14
ChipKIT Pro MX4 Reference Manual
Copyright Digilent, Inc. All rights reserved.
Other product and company names mentioned may be trademarks of their respective owners.
Page 14 of 37
7 CPU Clock Source
The PIC32 microcontroller supports numerous clock source options for the main processor operating clock. The
ChipKIT Pro MX4 circuit board is designed to support either a silicon resonator from Discera, IC8, for use with the
EC oscillator option, or an external crystal for use with the XT oscillator option. Standard production boards will
have an 8Mhz Discera silicon resonator loaded and the EC oscillator option should be used. If IC2 is not loaded, an
8Mhz crystal will be loaded for X1 (on the bottom of the board) and the XT oscillator option should be used.
Oscillator options are selected via the configuration variables specified using the #pragma config statement. Use
#pragma config POSCMOD=EC to select the EC option and #pragma config POSCMOD=XT to select the
XT option.
Using the internal system clock phase-locked loop (PLL), it is possible to select numerous multiples or divisions of
the 8Mhz input frequency to produce CPU operating frequencies up to 80Mhz. The clock circuit PLL provides an
input divider, multiplier, and output divider. The external clock frequency (8Mhz) is first divided by the selected
input divider value. This is multiplied by the selected multiplier value and then finally divided by the selected
output divider. The result is the system clock, SYSCLK, frequency. The SYSCLK frequency is used by the CPU, DMA
controller, interrupt controller and pre-fetch cache.
The values controlling the operating frequency are specified using the PIC32MX460 configuration variables. These
are set using the #pragma config statement. Use #pragma config FPLLIDIV to set the input divider,
#pragma config FPLLMUL to set the multiplication factor and #pragma config FPLLODIV to set the
output divider. Refer to the PIC32MX3XX/4XX Family Data Sheet and the PIC32MX Family Reference Manual,
Section 6. Oscillators, for information on how to choose the correct values, as not all combinations of
multiplication and division factors will work.
In addition to configuring the SYSCLK frequency, the peripheral bus clock, PBCLK, frequency is also configurable.
The peripheral bus clock is used for most peripheral devices, and in particular is the clock used by the timers, and
serial controllers (UART, SPI, I2C). The PBLCK frequency is a division of the SYSCLK frequency selected using
#pragma config FPBDIV. The PBCLK divider can be set to divide by 1, 2, 4, or 8 using the values DIV_1,
DIV_2, DIV_4 or DIV_8.
The following example will set up the ChipKIT Pro MX4 for operation using the Discrea silicon resonator with a
SYSCLK frequency of 80Mhz and a PBCLK frequency of 10Mhz:
#pragma config FNOSC = PRIPLL
#pragma config POSCMOD = EC
#pragma config FPLLIDIV = DIV_2
#pragma config FPLLMUL = MUL_20
#pragma config FPLLODIV = DIV_1
#pragma config FPBDIV = DIV_8
Documentation for the PIC32 configuration variables can be found in the PIC32MX Configuration Settings guide.
This is found using the “Help.Topics…” command in the MPLAB IDE. Also, refer to Appendix B for an example of
setting the configuration variables.
When using the ChipKIT Pro MX4 with the MPIDE software, the clock source is set by the boot loader and no action
is required.