Figure 1. Clock distribution
The clock system on the SAM C20 consists of:
- Clock sources, controlled by OSCCTRL
and OSC32KCTRL
- A Clock source is the base clock signal used in the system. Example clock sources
are the internal 48MHz oscillator (OSC48M), External crystal oscillator (XOSC) and
the Digital phase locked loop (FDPLL96M).
- Generic Clock Controller (GCLK) which
controls the clock distribution system, made up of:
- Generic Clock generators: A programmable prescaler, that can use any of the
system clock sources as its source clock. The Generic Clock Generator 0, also
called GCLK_MAIN, is the clock feeding the Power Manager used to generate
synchronous clocks.
- Generic Clocks: Typically the clock input of a peripheral on the system. The
generic clocks, through the Generic Clock Multiplexer, can use any of the Generic
Clock generators as its clock source. Multiple instances of a peripheral will
typically have a separate generic clock for each instance.
- Main Clock controller (MCLK)
- The MCLK controls synchronous clocks on the system. This includes the CPU, bus
clocks (APB, AHB) as well as the synchronous (to the CPU) user interfaces of the
peripherals. It contains clock masks that can turn on/off the user interface of a
peripheral as well as prescalers for the CPU and bus clocks.
The figure below shows an example where
SERCOM0 is clocked by the OSC48M. The OSC48M is enabled, the Generic Clock Generator 1 uses
the OSCLL48M as its clock source, and the generic clock 19, also called GCLK_SERCOM0_CORE,
that is connected to SERCOM0 uses generator 1 as its source. The SERCOM0 interface, clocked
by CLK_SERCOM0_APB, has been unmasked in the APBC Mask register in the MCLK.
Figure 2. Example of SERCOM clock