AT03259: SAM D/R System Clock Management (SYSTEM CLOCK) Driver. Introduction. SMART ARM-based Microcontrollers APPLICATION NOTE
|
|
|
- Phillip Lucas
- 9 years ago
- Views:
Transcription
1 SMART ARM-based Microcontrollers AT03259: SAM D/R System Clock Management (SYSTEM CLOCK) Driver APPLICATION NOTE Introduction This driver for Atmel SMART ARM -based microcontrollers provides an interface for the configuration and management of the device's clocking related functions. This includes the various clock sources, bus clocks, and generic clocks within the device, with functions to manage the enabling, disabling, source selection, and prescaling of clocks to various internal peripherals. The following peripherals are used by this module: GCLK (Generic Clock Management) PM (Power Management) SYSCTRL (Clock Source Control) The following devices can use this module: Atmel SMART SAM D20/D21 Atmel SMART SAM R21 Atmel SMART SAM D09/D10/D11 Atmel SMART SAM DA1 The outline of this documentation is as follows: Prerequisites Module Overview Special Considerations Extra Information Examples API Overview
2 Table of Contents Introduction Software License Prerequisites Module Overview Driver Feature Macro Definition Clock Sources CPU / Bus Clocks Clock Masking Generic Clocks Clock Chain Example Generic Clock Generators Generic Clock Channels Special Considerations Extra Information Examples API Overview Structure Definitions Struct system_clock_source_dfll_config Struct system_clock_source_dpll_config Struct system_clock_source_osc32k_config Struct system_clock_source_osc8m_config Struct system_clock_source_xosc32k_config Struct system_clock_source_xosc_config Struct system_gclk_chan_config Struct system_gclk_gen_config Macro Definitions Driver Feature Definition Function Definitions External Oscillator Management External 32KHz Oscillator Management Internal 32KHz Oscillator Management Internal 8MHz Oscillator Management Internal DFLL Management Clock Source Management Main Clock Management Bus Clock Masking Internal DPLL Management System Clock Initialization System Flash Wait States
3 Generic Clock Management Generic Clock Management (Generators) Generic Clock Management (Channels) Generic Clock Frequency Retrieval Enumeration Definitions Enum gclk_generator Enum system_clock_apb_bus Enum system_clock_dfll_chill_cycle Enum system_clock_dfll_loop_mode Enum system_clock_dfll_quick_lock Enum system_clock_dfll_stable_tracking Enum system_clock_dfll_wakeup_lock Enum system_clock_external Enum system_clock_source Enum system_clock_source_dpll_filter Enum system_clock_source_dpll_lock_time Enum system_clock_source_dpll_reference_clock Enum system_main_clock_div Enum system_osc32k_startup Enum system_osc8m_div Enum system_osc8m_frequency_range Enum system_xosc32k_startup Enum system_xosc_startup Extra Information for SYSTEM CLOCK Driver Acronyms Dependencies Errata Module History Examples for System Clock Driver Quick Start Guide for SYSTEM CLOCK - Basic Setup Use Case Quick Start Guide for SYSTEM CLOCK - GCLK Configuration Setup Use Case Document Revision History
4 1. Software License Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name of Atmel may not be used to endorse or promote products derived from this software without specific prior written permission. 4. This software may only be redistributed and used in connection with an Atmel microcontroller product. THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 4
5 2. Prerequisites There are no prerequisites for this module. 5
6 3. Module Overview The SAM devices contain a sophisticated clocking system, which is designed to give the maximum flexibility to the user application. This system allows a system designer to tune the performance and power consumption of the device in a dynamic manner, to achieve the best trade-off between the two for a particular application. This driver provides a set of functions for the configuration and management of the various clock related functionality within the device Driver Feature Macro Definition Driver Feature Macro FEATURE_SYSTEM_CLOCK_DPLL Supported devices SAM D21, SAM R21, SAM D10, SAM D11, SAM DA1 Note: The specific features are only available in the driver when the selected device supports those features Clock Sources The SAM devices have a number of master clock source modules, each of which being capable of producing a stabilized output frequency, which can then be fed into the various peripherals and modules within the device. Possible clock source modules include internal R/C oscillators, internal DFLL modules, as well as external crystal oscillators and/or clock inputs CPU / Bus Clocks The CPU and AHB/APBx buses are clocked by the same physical clock source (referred in this module as the Main Clock), however the APBx buses may have additional prescaler division ratios set to give each peripheral bus a different clock speed. The general main clock tree for the CPU and associated buses is shown in Figure 3-1 CPU / Bus Clocks on page 7. 6
7 Figure 3-1. CPU / Bus Clocks CPU Bus AHB Bus Clock Sources Main Bus Prescaler APBA Bus Prescaler APBA Bus APBB Bus Prescaler APBB Bus APBC Bus Prescaler APBC Bus 3.4. Clock Masking To save power, the input clock to one or more peripherals on the AHB and APBx buses can be masked away - when masked, no clock is passed into the module. Disabling of clocks of unused modules will prevent all access to the masked module, but will reduce the overall device power consumption Generic Clocks Within the SAM devices there are a number of Generic Clocks; these are used to provide clocks to the various peripheral clock domains in the device in a standardized manner. One or more master source clocks can be selected as the input clock to a Generic Clock Generator, which can prescale down the input frequency to a slower rate for use in a peripheral. Additionally, a number of individually selectable Generic Clock Channels are provided, which multiplex and gate the various generator outputs for one or more peripherals within the device. This setup allows for a single common generator to feed one or more channels, which can then be enabled or disabled individually as required. 7
8 Figure 3-2. Generic Clocks Channel x Peripheral x Clock Source a Generator 1 Channel y Peripheral y Clock Chain Example An example setup of a complete clock chain within the device is shown in Figure 3-3 Clock Chain Example on page 8. Figure 3-3. Clock Chain Example Channel y SERCOM Module 8MHz R/C Oscillator (OSC8M) Generator 1 Channel z Timer Module External Oscillator Generator 0 Channel x Core CPU Generic Clock Generators Each Generic Clock generator within the device can source its input clock from one of the provided Source Clocks, and prescale the output for one or more Generic Clock Channels in a one-to-many relationship. The generators thus allow for several clocks to be generated of different frequencies, power usages, and accuracies, which can be turned on and off individually to disable the clocks to multiple peripherals as a group Generic Clock Channels To connect a Generic Clock Generator to a peripheral within the device, a Generic Clock Channel is used. Each peripheral or peripheral group has an associated Generic Clock Channel, which serves as the clock 8
9 input for the peripheral(s). To supply a clock to the peripheral module(s), the associated channel must be connected to a running Generic Clock Generator and the channel enabled. 9
10 4. Special Considerations There are no special considerations for this module. 10
11 5. Extra Information For extra information, see Extra Information for SYSTEM CLOCK Driver. This includes: Acronyms Dependencies Errata Module History 11
12 6. Examples For a list of examples related to this driver, see Examples for System Clock Driver. 12
13 7. API Overview 7.1. Structure Definitions Struct system_clock_source_dfll_config DFLL oscillator configuration structure. Table 7-1. Members Type Name enum system_clock_dfll_chill_cycle chill_cycle Enable Chill Cycle uint8_t coarse_max_step Coarse adjustment maximum step size (Closed loop mode) uint8_t coarse_value Coarse calibration value (Open loop mode) uint16_t fine_max_step Fine adjustment maximum step size (Closed loop mode) uint16_t fine_value Fine calibration value (Open loop mode) enum system_clock_dfll_loop_mode loop_mode Loop mode uint16_t multiply_factor DFLL multiply factor (Closed loop mode bool on_demand Run On Demand. If this is set the DFLL won't run until requested by a peripheral. enum system_clock_dfll_quick_lock quick_lock Enable Quick Lock enum system_clock_dfll_stable_tracking stable_tracking DFLL tracking after fine lock enum system_clock_dfll_wakeup_lock wakeup_lock DFLL lock state on wakeup Struct system_clock_source_dpll_config DPLL oscillator configuration structure. Table 7-2. Members Type Name enum system_clock_source_dpll_filter filter Filter type of the DPLL module. bool lock_bypass Bypass lock signal. enum system_clock_source_dpll_lock_time lock_time Lock time-out value of the DPLL module. bool low_power_enable Enable low power mode. 13
14 Type Name bool on_demand Run On Demand. If this is set the DPLL won't run until requested by a peripheral. uint32_t output_frequency Output frequency of the clock. enum system_clock_source_dpll_reference_clock reference_clock Reference clock source of the DPLL module. uint16_t reference_divider Devider of reference clock. uint32_t reference_frequency Reference frequency of the clock. bool run_in_standby Keep the DPLL enabled in standby sleep mode. bool wake_up_fast Wake up fast. If this is set DPLL output clock is enabled after the startup time Struct system_clock_source_osc32k_config Internal 32KHz (nominal) oscillator configuration structure. Table 7-3. Members Type Name bool enable_1khz_output Enable 1KHz output bool enable_32khz_output Enable 32KHz output bool on_demand Run On Demand. If this is set the OSC32K won't run until requested by a peripheral bool run_in_standby Keep the OSC32K enabled in standby sleep mode enum system_osc32k_startup startup_time Startup time bool write_once Lock configuration after it has been written, a device reset will release the lock Struct system_clock_source_osc8m_config Internal 8MHz (nominal) oscillator configuration structure. 14
15 Table 7-4. Members Type Name bool on_demand Run On Demand. If this is set the OSC8M won't run until requested by a peripheral. enum system_osc8m_div prescaler Internal 8MHz RC oscillator prescaler bool run_in_standby Keep the OSC8M enabled in standby sleep mode Struct system_clock_source_xosc32k_config External 32KHz oscillator clock configuration structure. Table 7-5. Members Type Name bool auto_gain_control Enable automatic amplitude control bool enable_1khz_output Enable 1KHz output bool enable_32khz_output Enable 32KHz output enum system_clock_external external_clock External clock type uint32_t frequency External clock/crystal frequency bool on_demand Run On Demand. If this is set the XOSC32K won't run until requested by a peripheral. bool run_in_standby Keep the XOSC32K enabled in standby sleep mode enum system_xosc32k_startup startup_time Crystal oscillator start-up time bool write_once Lock configuration after it has been written, a device reset will release the lock Struct system_clock_source_xosc_config External oscillator clock configuration structure. Table 7-6. Members Type Name bool auto_gain_control Enable automatic amplitude gain control enum system_clock_external external_clock External clock type uint32_t frequency External clock/crystal frequency bool on_demand Run On Demand. If this is set the XOSC won't run until requested by a peripheral. 15
16 Type Name bool run_in_standby Keep the XOSC enabled in standby sleep mode enum system_xosc_startup startup_time Crystal oscillator start-up time Struct system_gclk_chan_config Configuration structure for a Generic Clock channel. This structure should be initialized by the system_gclk_chan_get_config_defaults() function before being modified by the user application. Table 7-7. Members Type Name enum gclk_generator source_generator Generic Clock Generator source channel Struct system_gclk_gen_config Configuration structure for a Generic Clock Generator channel. This structure should be initialized by the system_gclk_gen_get_config_defaults() function before being modified by the user application. Table 7-8. Members Type Name uint32_t division_factor Integer division factor of the clock output compared to the input bool high_when_disabled If true, the generator output level is high when disabled bool output_enable If true, enables GCLK generator clock output to a GPIO pin bool run_in_standby If true, the clock is kept enabled during device standby mode uint8_t source_clock Source clock input channel index, see the system_clock_source 7.2. Macro Definitions Driver Feature Definition Define system clock features set according to different device family Macro FEATURE_SYSTEM_CLOCK_DPLL #define FEATURE_SYSTEM_CLOCK_DPLL Digital Phase Locked Loop (DPLL) feature support. 16
17 7.3. Function Definitions External Oscillator Management Function system_clock_source_xosc_get_config_defaults() Retrieve the default configuration for XOSC. void system_clock_source_xosc_get_config_defaults( struct system_clock_source_xosc_config *const config) Fills a configuration structure with the default configuration for an external oscillator module: External Crystal Start-up time of external clock cycles Automatic crystal gain control mode enabled Frequency of 12MHz Don't run in STANDBY sleep mode Run only when requested by peripheral (on demand) Table 7-9. Parameters [out] config Configuration structure to fill with default values Function system_clock_source_xosc_set_config() Configure the external oscillator clock source. void system_clock_source_xosc_set_config( struct system_clock_source_xosc_config *const config) Configures the external oscillator clock source with the given configuration settings. Table Parameters [in] config External oscillator configuration structure containing the new config External 32KHz Oscillator Management Function system_clock_source_xosc32k_get_config_defaults() Retrieve the default configuration for XOSC32K. void system_clock_source_xosc32k_get_config_defaults( struct system_clock_source_xosc32k_config *const config) Fills a configuration structure with the default configuration for an external 32KHz oscillator module: External Crystal Start-up time of external clock cycles Automatic crystal gain control mode disabled Frequency of KHz 1KHz clock output disabled 17
18 32KHz clock output enabled Don't run in STANDBY sleep mode Run only when requested by peripheral (on demand) Don't lock registers after configuration has been written Table Parameters [out] config Configuration structure to fill with default values Function system_clock_source_xosc32k_set_config() Configure the XOSC32K external 32KHz oscillator clock source. void system_clock_source_xosc32k_set_config( struct system_clock_source_xosc32k_config *const config) Configures the external 32KHz oscillator clock source with the given configuration settings. Table Parameters [in] config XOSC32K configuration structure containing the new config Internal 32KHz Oscillator Management Function system_clock_source_osc32k_get_config_defaults() Retrieve the default configuration for OSC32K. void system_clock_source_osc32k_get_config_defaults( struct system_clock_source_osc32k_config *const config) Fills a configuration structure with the default configuration for an internal 32KHz oscillator module: 1KHz clock output enabled 32KHz clock output enabled Don't run in STANDBY sleep mode Run only when requested by peripheral (on demand) Set startup time to 130 cycles Don't lock registers after configuration has been written Table Parameters [out] config Configuration structure to fill with default values Function system_clock_source_osc32k_set_config() Configure the internal OSC32K oscillator clock source. void system_clock_source_osc32k_set_config( struct system_clock_source_osc32k_config *const config) Configures the 32KHz (nominal) internal RC oscillator with the given configuration settings. 18
19 Table Parameters [in] config OSC32K configuration structure containing the new config Internal 8MHz Oscillator Management Function system_clock_source_osc8m_get_config_defaults() Retrieve the default configuration for OSC8M. void system_clock_source_osc8m_get_config_defaults( struct system_clock_source_osc8m_config *const config) Fills a configuration structure with the default configuration for an internal 8MHz (nominal) oscillator module: Clock output frequency divided by a factor of eight Don't run in STANDBY sleep mode Run only when requested by peripheral (on demand) Table Parameters [out] config Configuration structure to fill with default values Function system_clock_source_osc8m_set_config() Configure the internal OSC8M oscillator clock source. void system_clock_source_osc8m_set_config( struct system_clock_source_osc8m_config *const config) Configures the 8MHz (nominal) internal RC oscillator with the given configuration settings. Table Parameters [in] config OSC8M configuration structure containing the new config Internal DFLL Management Function system_clock_source_dfll_get_config_defaults() Retrieve the default configuration for DFLL. void system_clock_source_dfll_get_config_defaults( struct system_clock_source_dfll_config *const config) Fills a configuration structure with the default configuration for a DFLL oscillator module: Open loop mode QuickLock mode enabled Chill cycle enabled Output frequency lock maintained during device wake-up Continuous tracking of the output frequency 19
20 Default tracking values at the mid-points for both coarse and fine tracking parameters Don't run in STANDBY sleep mode Run only when requested by peripheral (on demand) Table Parameters [out] config Configuration structure to fill with default values Function system_clock_source_dfll_set_config() Configure the DFLL clock source. void system_clock_source_dfll_set_config( struct system_clock_source_dfll_config *const config) Configures the Digital Frequency Locked Loop clock source with the given configuration settings. Note: The DFLL will be running when this function returns, as the DFLL module needs to be enabled in order to perform the module configuration. Table Parameters [in] config DFLL configuration structure containing the new config Clock Source Management Function system_clock_source_write_calibration() enum status_code system_clock_source_write_calibration( const enum system_clock_source system_clock_source, const uint16_t calibration_value, const uint8_t freq_range) Function system_clock_source_enable() enum status_code system_clock_source_enable( const enum system_clock_source system_clock_source) Function system_clock_source_disable() Disables a clock source. enum status_code system_clock_source_disable( const enum system_clock_source clk_source) Disables a clock source that was previously enabled. Table Parameters [in] clock_source Clock source to disable 20
21 Table Return Values Return value STATUS_OK STATUS_ERR_INVALID_ARG Clock source was disabled successfully An invalid or unavailable clock source was given Function system_clock_source_is_ready() Checks if a clock source is ready. bool system_clock_source_is_ready( const enum system_clock_source clk_source) Checks if a given clock source is ready to be used. Table Parameters [in] clock_source Clock source to check if ready Returns Ready state of the given clock source. Table Return Values Return value true false Clock source is enabled and ready Clock source is disabled or not yet ready Function system_clock_source_get_hz() Retrieve the frequency of a clock source. uint32_t system_clock_source_get_hz( const enum system_clock_source clk_source) Determines the current operating frequency of a given clock source. Table Parameters [in] clock_source Clock source to get the frequency Returns Frequency of the given clock source, in Hz. 21
22 Main Clock Management Function system_cpu_clock_set_divider() Set main CPU clock divider. void system_cpu_clock_set_divider( const enum system_main_clock_div divider) Sets the clock divider used on the main clock to provide the CPU clock. Table Parameters [in] divider CPU clock divider to set Function system_cpu_clock_get_hz() Retrieves the current frequency of the CPU core. uint32_t system_cpu_clock_get_hz( void ) Retrieves the operating frequency of the CPU core, obtained from the main generic clock and the set CPU bus divider. Returns Current CPU frequency in Hz Function system_apb_clock_set_divider() Set APBx clock divider. enum status_code system_apb_clock_set_divider( const enum system_clock_apb_bus bus, const enum system_main_clock_div divider) Set the clock divider used on the main clock to provide the clock for the given APBx bus. Table Parameters [in] divider APBx bus divider to set [in] bus APBx bus to set divider Returns Status of the clock division change operation. Table Return Values Return value STATUS_ERR_INVALID_ARG STATUS_OK Invalid bus ID was given The APBx clock was set successfully 22
23 Function system_apb_clock_get_hz() Retrieves the current frequency of a ABPx. uint32_t system_apb_clock_get_hz( const enum system_clock_apb_bus bus) Retrieves the operating frequency of an APBx bus, obtained from the main generic clock and the set APBx bus divider. Returns Current APBx bus frequency in Hz Bus Clock Masking Function system_ahb_clock_set_mask() Set bits in the clock mask for the AHB bus. void system_ahb_clock_set_mask( const uint32_t ahb_mask) This function will set bits in the clock mask for the AHB bus. Any bits set to 1 will enable that clock, 0 bits in the mask will be ignored. Table Parameters [in] ahb_mask AHB clock mask to enable Function system_ahb_clock_clear_mask() Clear bits in the clock mask for the AHB bus. void system_ahb_clock_clear_mask( const uint32_t ahb_mask) This function will clear bits in the clock mask for the AHB bus. Any bits set to 1 will disable that clock, 0 bits in the mask will be ignored. Table Parameters [in] ahb_mask AHB clock mask to disable Function system_apb_clock_set_mask() Set bits in the clock mask for an APBx bus. enum status_code system_apb_clock_set_mask( const enum system_clock_apb_bus bus, const uint32_t mask) This function will set bits in the clock mask for an APBx bus. Any bits set to 1 will enable the corresponding module clock, zero bits in the mask will be ignored. 23
24 Table Parameters [in] mask APBx clock mask, a SYSTEM_CLOCK_APB_APBx constant from the device header files [in] bus Bus to set clock mask bits for, a mask of PM_APBxMASK_* constants from the device header files Returns Status indicating the result of the clock mask change operation. Table Return Values Return value STATUS_ERR_INVALID_ARG STATUS_OK Invalid bus given The clock mask was set successfully Function system_apb_clock_clear_mask() Clear bits in the clock mask for an APBx bus. enum status_code system_apb_clock_clear_mask( const enum system_clock_apb_bus bus, const uint32_t mask) This function will clear bits in the clock mask for an APBx bus. Any bits set to 1 will disable the corresponding module clock, zero bits in the mask will be ignored. Table Parameters [in] mask APBx clock mask, a SYSTEM_CLOCK_APB_APBx constant from the device header files [in] bus Bus to clear clock mask bits Returns Status indicating the result of the clock mask change operation. Table Return Values Return value STATUS_ERR_INVALID_ARG STATUS_OK Invalid bus ID was given The clock mask was changed successfully 24
25 Internal DPLL Management Function system_clock_source_dpll_get_config_defaults() Retrieve the default configuration for DPLL. void system_clock_source_dpll_get_config_defaults( struct system_clock_source_dpll_config *const config) Fills a configuration structure with the default configuration for a DPLL oscillator module: Run only when requested by peripheral (on demand) Don't run in STANDBY sleep mode Lock bypass disabled Fast wake up disabled Low power mode disabled Output frequency is 48MHz Reference clock frequency is 32768Hz Not divide reference clock Select REF0 as reference clock Set lock time to default mode Use default filter Table Parameters [out] config Configuration structure to fill with default values Function system_clock_source_dpll_set_config() Configure the DPLL clock source. void system_clock_source_dpll_set_config( struct system_clock_source_dpll_config *const config) Configures the Digital Phase-Locked Loop clock source with the given configuration settings. Note: The DPLL will be running when this function returns, as the DPLL module needs to be enabled in order to perform the module configuration. Table Parameters [in] config DPLL configuration structure containing the new config System Clock Initialization Function system_clock_init() Initialize clock system based on the configuration in conf_clocks.h. void system_clock_init( void ) This function will apply the settings in conf_clocks.h when run from the user application. All clock sources and GCLK generators are running when this function returns. 25
26 Note: OSC8M is always enabled and if user selects other clocks for GCLK generators, the OSC8M default enable can be disabled after system_clock_init. Make sure the clock switch successfully before disabling OSC8M System Flash Wait States Function system_flash_set_waitstates() Set flash controller wait states. void system_flash_set_waitstates( uint8_t wait_states) Will set the number of wait states that are used by the onboard flash memory. The number of wait states depend on both device supply voltage and CPU speed. The required number of wait states can be found in the electrical characteristics of the device. Table Parameters [in] wait_states Number of wait states to use for internal flash Generic Clock Management Function system_gclk_init() Initializes the GCLK driver. void system_gclk_init( void ) Initializes the Generic Clock module, disabling and resetting all active Generic Clock Generators and Channels to their power-on default values Generic Clock Management (Generators) Function system_gclk_gen_get_config_defaults() Initializes a Generic Clock Generator configuration structure to defaults. void system_gclk_gen_get_config_defaults( struct system_gclk_gen_config *const config) Initializes a given Generic Clock Generator configuration structure to a set of known default values. This function should be called on all new instances of these configuration structures before being modified by the user application. The default configuration is: Clock is generated undivided from the source frequency Clock generator output is low when the generator is disabled The input clock is sourced from input clock channel 0 Clock will be disabled during sleep The clock output will not be routed to a physical GPIO pin 26
27 Table Parameters [out] config Configuration structure to initialize to default values Function system_gclk_gen_set_config() Writes a Generic Clock Generator configuration to the hardware module. void system_gclk_gen_set_config( const uint8_t generator, struct system_gclk_gen_config *const config) Writes out a given configuration of a Generic Clock Generator configuration to the hardware module. Note: Changing the clock source on the fly (on a running generator) can take additional time if the clock source is configured to only run on-demand (ONDEMAND bit is set) and it is not currently running (no peripheral is requesting the clock source). In this case the GCLK will request the new clock while still keeping a request to the old clock source until the new clock source is ready. Note: This function will not start a generator that is not already running; to start the generator, call system_gclk_gen_enable() after configuring a generator. Table Parameters [in] generator Generic Clock Generator index to configure [in] config Configuration settings for the generator Function system_gclk_gen_enable() Enables a Generic Clock Generator that was previously configured. void system_gclk_gen_enable( const uint8_t generator) Starts the clock generation of a Generic Clock Generator that was previously configured via a call to system_gclk_gen_set_config(). Table Parameters [in] generator Generic Clock Generator index to enable Function system_gclk_gen_disable() Disables a Generic Clock Generator that was previously enabled. void system_gclk_gen_disable( const uint8_t generator) Stops the clock generation of a Generic Clock Generator that was previously started via a call to system_gclk_gen_enable(). 27
28 Table Parameters [in] generator Generic Clock Generator index to disable Function system_gclk_gen_is_enabled() Determins if the specified Generic Clock Generator is enabled. bool system_gclk_gen_is_enabled( const uint8_t generator) Table Parameters [in] generator Generic Clock Generator index to check Returns The enabled status. Table Return Values Return value true false The Generic Clock Generator is enabled The Generic Clock Generator is disabled Generic Clock Management (Channels) Function system_gclk_chan_get_config_defaults() Initializes a Generic Clock configuration structure to defaults. void system_gclk_chan_get_config_defaults( struct system_gclk_chan_config *const config) Initializes a given Generic Clock configuration structure to a set of known default values. This function should be called on all new instances of these configuration structures before being modified by the user application. The default configuration is as follows: Clock is sourced from the Generic Clock Generator channel 0 Clock configuration will not be write-locked when set Table Parameters [out] config Configuration structure to initialize to default values 28
29 Function system_gclk_chan_set_config() Writes a Generic Clock configuration to the hardware module. void system_gclk_chan_set_config( const uint8_t channel, struct system_gclk_chan_config *const config) Writes out a given configuration of a Generic Clock configuration to the hardware module. If the clock is currently running, it will be stopped. Note: Once called the clock will not be running; to start the clock, call system_gclk_chan_enable() after configuring a clock channel. Table Parameters [in] channel Generic Clock channel to configure [in] config Configuration settings for the clock Function system_gclk_chan_enable() Enables a Generic Clock that was previously configured. void system_gclk_chan_enable( const uint8_t channel) Starts the clock generation of a Generic Clock that was previously configured via a call to system_gclk_chan_set_config(). Table Parameters [in] channel Generic Clock channel to enable Function system_gclk_chan_disable() Disables a Generic Clock that was previously enabled. void system_gclk_chan_disable( const uint8_t channel) Stops the clock generation of a Generic Clock that was previously started via a call to system_gclk_chan_enable(). Table Parameters [in] channel Generic Clock channel to disable Function system_gclk_chan_is_enabled() Determins if the specified Generic Clock channel is enabled. bool system_gclk_chan_is_enabled( const uint8_t channel) 29
30 Table Parameters [in] channel Generic Clock Channel index Returns The enabled status. Table Return Values Return value true false The Generic Clock channel is enabled The Generic Clock channel is disabled Function system_gclk_chan_lock() Locks a Generic Clock channel from further configuration writes. void system_gclk_chan_lock( const uint8_t channel) Locks a generic clock channel from further configuration writes. It is only possible to unlock the channel configuration through a power on reset. Table Parameters [in] channel Generic Clock channel to enable Function system_gclk_chan_is_locked() Determins if the specified Generic Clock channel is locked. bool system_gclk_chan_is_locked( const uint8_t channel) Table Parameters [in] channel Generic Clock Channel index Returns The lock status. Table Return Values Return value true false The Generic Clock channel is locked The Generic Clock channel is not locked 30
31 Generic Clock Frequency Retrieval Function system_gclk_gen_get_hz() Retrieves the clock frequency of a Generic Clock generator. uint32_t system_gclk_gen_get_hz( const uint8_t generator) Determines the clock frequency (in Hz) of a specified Generic Clock generator, used as a source to a Generic Clock Channel module. Table Parameters [in] generator Generic Clock Generator index Returns The frequency of the generic clock generator, in Hz Function system_gclk_chan_get_hz() Retrieves the clock frequency of a Generic Clock channel. uint32_t system_gclk_chan_get_hz( const uint8_t channel) Determines the clock frequency (in Hz) of a specified Generic Clock channel, used as a source to a device peripheral module. Table Parameters [in] channel Generic Clock Channel index Returns The frequency of the generic clock channel, in Hz Enumeration Definitions Enum gclk_generator List of Available GCLK generators. This enum is used in the peripheral device drivers to select the GCLK generator to be used for its operation. The number of GCLK generators available is device dependent. Table Members Enum value GCLK_GENERATOR_0 GCLK generator channel 0 GCLK_GENERATOR_1 GCLK generator channel 1 31
32 Enum value GCLK_GENERATOR_2 GCLK generator channel 2 GCLK_GENERATOR_3 GCLK generator channel 3 GCLK_GENERATOR_4 GCLK generator channel 4 GCLK_GENERATOR_5 GCLK generator channel 5 GCLK_GENERATOR_6 GCLK generator channel 6 GCLK_GENERATOR_7 GCLK generator channel 7 GCLK_GENERATOR_8 GCLK generator channel 8 GCLK_GENERATOR_9 GCLK generator channel 9 GCLK_GENERATOR_10 GCLK generator channel 10 GCLK_GENERATOR_11 GCLK generator channel 11 GCLK_GENERATOR_12 GCLK generator channel 12 GCLK_GENERATOR_13 GCLK generator channel 13 GCLK_GENERATOR_14 GCLK generator channel 14 GCLK_GENERATOR_15 GCLK generator channel 15 GCLK_GENERATOR_16 GCLK generator channel Enum system_clock_apb_bus Available bus clock domains on the APB bus. Table Members Enum value SYSTEM_CLOCK_APB_APBA SYSTEM_CLOCK_APB_APBB SYSTEM_CLOCK_APB_APBC Peripheral bus A on the APB bus Peripheral bus B on the APB bus Peripheral bus C on the APB bus Enum system_clock_dfll_chill_cycle DFLL chill-cycle behavior modes of the DFLL module. A chill cycle is a period of time when the DFLL output frequency is not measured by the unit, to allow the output to stabilize after a change in the input clock source. 32
33 Table Members Enum value SYSTEM_CLOCK_DFLL_CHILL_CYCLE_ENABLE Enable a chill cycle, where the DFLL output frequency is not measured SYSTEM_CLOCK_DFLL_CHILL_CYCLE_DISABLE Disable a chill cycle, where the DFLL output frequency is not measured Enum system_clock_dfll_loop_mode Available operating modes of the DFLL clock source module. Table Members Enum value SYSTEM_CLOCK_DFLL_LOOP_MODE_OPEN The DFLL is operating in open loop mode with no feedback SYSTEM_CLOCK_DFLL_LOOP_MODE_CLOSED The DFLL is operating in closed loop mode with frequency feedback from a low frequency reference clock Enum system_clock_dfll_quick_lock DFLL QuickLock settings for the DFLL module, to allow for a faster lock of the DFLL output frequency at the expense of accuracy. Table Members Enum value SYSTEM_CLOCK_DFLL_QUICK_LOCK_ENABLE Enable the QuickLock feature for looser lock requirements on the DFLL SYSTEM_CLOCK_DFLL_QUICK_LOCK_DISABLE Disable the QuickLock feature for strict lock requirements on the DFLL Enum system_clock_dfll_stable_tracking DFLL fine tracking behavior modes after a lock has been acquired. Table Members Enum value SYSTEM_CLOCK_DFLL_STABLE_TRACKING_TRACK_AFTER_LOCK Keep tracking after the DFLL has gotten a fine lock SYSTEM_CLOCK_DFLL_STABLE_TRACKING_FIX_AFTER_LOCK Stop tracking after the DFLL has gotten a fine lock Enum system_clock_dfll_wakeup_lock DFLL lock behavior modes on device wake-up from sleep. 33
34 Table Members Enum value SYSTEM_CLOCK_DFLL_WAKEUP_LOCK_KEEP Keep DFLL lock when the device wakes from sleep SYSTEM_CLOCK_DFLL_WAKEUP_LOCK_LOSE Lose DFLL lock when the devices wakes from sleep Enum system_clock_external Available external clock source types. Table Members Enum value SYSTEM_CLOCK_EXTERNAL_CRYSTAL The external clock source is a crystal oscillator SYSTEM_CLOCK_EXTERNAL_CLOCK The connected clock source is an external logic level clock signal Enum system_clock_source Clock sources available to the GCLK generators. Table Members Enum value SYSTEM_CLOCK_SOURCE_OSC8M SYSTEM_CLOCK_SOURCE_OSC32K SYSTEM_CLOCK_SOURCE_XOSC SYSTEM_CLOCK_SOURCE_XOSC32K SYSTEM_CLOCK_SOURCE_DFLL SYSTEM_CLOCK_SOURCE_ULP32K SYSTEM_CLOCK_SOURCE_GCLKIN Internal 8MHz RC oscillator Internal 32KHz RC oscillator External oscillator External 32KHz oscillator Digital Frequency Locked Loop (DFLL) Internal Ultra Low Power 32KHz oscillator Generator input pad SYSTEM_CLOCK_SOURCE_GCLKGEN1 Generic clock generator one output SYSTEM_CLOCK_SOURCE_DPLL Digital Phase Locked Loop (DPLL). Check FEATURE_SYSTEM_CLOCK_DPLL for which device support it. 34
35 Enum system_clock_source_dpll_filter Table Members Enum value SYSTEM_CLOCK_SOURCE_DPLL_FILTER_DEFAULT SYSTEM_CLOCK_SOURCE_DPLL_FILTER_LOW_BANDWIDTH_FILTER SYSTEM_CLOCK_SOURCE_DPLL_FILTER_HIGH_BANDWIDTH_FILTER SYSTEM_CLOCK_SOURCE_DPLL_FILTER_HIGH_DAMPING_FILTER Default filter mode. Low bandwidth filter. High bandwidth filter. High damping filter Enum system_clock_source_dpll_lock_time Table Members Enum value SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_DEFAULT SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_8MS SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_9MS SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_10MS SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_11MS Set no time-out as default. Set time-out if no lock within 8ms. Set time-out if no lock within 9ms. Set time-out if no lock within 10ms. Set time-out if no lock within 11ms Enum system_clock_source_dpll_reference_clock Table Members Enum value SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC32K Select XOSC32K as clock reference. SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_GCLK Select XOSC as clock reference. Select GCLK as clock reference Enum system_main_clock_div Available division ratios for the CPU and APB/AHB bus clocks. Table Members Enum value SYSTEM_MAIN_CLOCK_DIV_1 SYSTEM_MAIN_CLOCK_DIV_2 SYSTEM_MAIN_CLOCK_DIV_4 Divide Main clock by one Divide Main clock by two Divide Main clock by four 35
36 Enum value SYSTEM_MAIN_CLOCK_DIV_8 Divide Main clock by eight SYSTEM_MAIN_CLOCK_DIV_16 Divide Main clock by 16 SYSTEM_MAIN_CLOCK_DIV_32 Divide Main clock by 32 SYSTEM_MAIN_CLOCK_DIV_64 Divide Main clock by 64 SYSTEM_MAIN_CLOCK_DIV_128 Divide Main clock by Enum system_osc32k_startup Available internal 32KHz oscillator start-up times, as a number of internal OSC32K clock cycles. Table Members Enum value SYSTEM_OSC32K_STARTUP_3 SYSTEM_OSC32K_STARTUP_4 SYSTEM_OSC32K_STARTUP_6 SYSTEM_OSC32K_STARTUP_10 SYSTEM_OSC32K_STARTUP_18 SYSTEM_OSC32K_STARTUP_34 SYSTEM_OSC32K_STARTUP_66 SYSTEM_OSC32K_STARTUP_130 Wait three clock cycles until the clock source is considered stable Wait four clock cycles until the clock source is considered stable Wait six clock cycles until the clock source is considered stable Wait ten clock cycles until the clock source is considered stable Wait 18 clock cycles until the clock source is considered stable Wait 34 clock cycles until the clock source is considered stable Wait 66 clock cycles until the clock source is considered stable Wait 130 clock cycles until the clock source is considered stable Enum system_osc8m_div Available prescalers for the internal 8MHz (nominal) system clock. Table Members Enum value SYSTEM_OSC8M_DIV_1 SYSTEM_OSC8M_DIV_2 SYSTEM_OSC8M_DIV_4 SYSTEM_OSC8M_DIV_8 Do not divide the 8MHz RC oscillator output Divide the 8MHz RC oscillator output by two Divide the 8MHz RC oscillator output by four Divide the 8MHz RC oscillator output by eight Enum system_osc8m_frequency_range Internal 8MHz RC oscillator frequency range setting. 36
37 Table Members Enum value SYSTEM_OSC8M_FREQUENCY_RANGE_4_TO_6 SYSTEM_OSC8M_FREQUENCY_RANGE_6_TO_8 SYSTEM_OSC8M_FREQUENCY_RANGE_8_TO_11 SYSTEM_OSC8M_FREQUENCY_RANGE_11_TO_15 Frequency range 4MHz to 6MHz Frequency range 6MHz to 8MHz Frequency range 8MHz to 11MHz Frequency range 11MHz to 15MHz Enum system_xosc32k_startup Available external 32KHz oscillator start-up times, as a number of external clock cycles. Table Members Enum value SYSTEM_XOSC32K_STARTUP_0 SYSTEM_XOSC32K_STARTUP_32 SYSTEM_XOSC32K_STARTUP_2048 SYSTEM_XOSC32K_STARTUP_4096 SYSTEM_XOSC32K_STARTUP_16384 SYSTEM_XOSC32K_STARTUP_32768 SYSTEM_XOSC32K_STARTUP_65536 Wait zero clock cycles until the clock source is considered stable Wait 32 clock cycles until the clock source is considered stable Wait 2048 clock cycles until the clock source is considered stable Wait 4096 clock cycles until the clock source is considered stable Wait clock cycles until the clock source is considered stable Wait clock cycles until the clock source is considered stable Wait clock cycles until the clock source is considered stable SYSTEM_XOSC32K_STARTUP_ Wait clock cycles until the clock source is considered stable Enum system_xosc_startup Available external oscillator start-up times, as a number of external clock cycles. Table Members Enum value SYSTEM_XOSC_STARTUP_1 SYSTEM_XOSC_STARTUP_2 SYSTEM_XOSC_STARTUP_4 Wait one clock cycles until the clock source is considered stable Wait two clock cycles until the clock source is considered stable Wait four clock cycles until the clock source is considered stable 37
38 Enum value SYSTEM_XOSC_STARTUP_8 SYSTEM_XOSC_STARTUP_16 SYSTEM_XOSC_STARTUP_32 SYSTEM_XOSC_STARTUP_64 SYSTEM_XOSC_STARTUP_128 SYSTEM_XOSC_STARTUP_256 SYSTEM_XOSC_STARTUP_512 SYSTEM_XOSC_STARTUP_1024 SYSTEM_XOSC_STARTUP_2048 SYSTEM_XOSC_STARTUP_4096 SYSTEM_XOSC_STARTUP_8192 Wait eight clock cycles until the clock source is considered stable Wait 16 clock cycles until the clock source is considered stable Wait 32 clock cycles until the clock source is considered stable Wait 64 clock cycles until the clock source is considered stable Wait 128 clock cycles until the clock source is considered stable Wait 256 clock cycles until the clock source is considered stable Wait 512 clock cycles until the clock source is considered stable Wait 1024 clock cycles until the clock source is considered stable Wait 2048 clock cycles until the clock source is considered stable Wait 4096 clock cycles until the clock source is considered stable Wait 8192 clock cycles until the clock source is considered stable SYSTEM_XOSC_STARTUP_16384 Wait clock cycles until the clock source is considered stable SYSTEM_XOSC_STARTUP_32768 Wait clock cycles until the clock source is considered stable 38
39 8. Extra Information for SYSTEM CLOCK Driver 8.1. Acronyms Below is a table listing the acronyms used in this module, along with their intended meanings. Acronym DFLL MUX OSC32K OSC8M PLL OSC XOSC XOSC32K AHB APB DPLL Digital Frequency Locked Loop Multiplexer Internal 32KHz Oscillator Internal 8MHz Oscillator Phase Locked Loop Oscillator External Oscillator External 32KHz Oscillator Advanced High-performance Bus Advanced Peripheral Bus Digital Phase Locked Loop 8.2. Dependencies This driver has the following dependencies: None 8.3. Errata This driver implements experimental workaround for errata 9905 "The DFLL clock must be requested before being configured otherwise a write access to a DFLL register can freeze the device." This driver will enable and configure the DFLL before the ONDEMAND bit is set Module History An overview of the module history is presented in the table below, with details on the enhancements and fixes made to the module since its first release. The current version of this corresponds to the newest version in the table. 39
40 Changelog Corrected OSC32K startup time definitions Support locking of OSC32K and XOSC32K config register (default: false) Added DPLL support, functions added: system_clock_source_dpll_get_config_defaults() and system_clock_source_dpll_set_config() Moved gclk channel locking feature out of the config struct functions added: system_gclk_chan_lock(), system_gclk_chan_is_locked() system_gclk_chan_is_enabled() and system_gclk_gen_is_enabled() Fixed system_gclk_chan_disable() deadlocking if a channel is enabled and configured to a failed/not running clock generator Changed default value for CONF_CLOCK_DFLL_ON_DEMAND from true to false Fixed system_flash_set_waitstates() failing with an assertion if an odd number of wait states provided Updated DFLL configuration function to implement workaround for errata 9905 in the DFLL module Updated system_clock_init() to reset interrupt flags before they are used Fixed system_clock_source_get_hz() to return correcy DFLL frequency number Fixed system_clock_source_is_ready not returning the correct state for SYSTEM_CLOCK_SOURCE_OSC8M Renamed the various system_clock_source_*_get_default_config() functions to system_clock_source_*_get_config_defaults() to match the remainder of ASF Added OSC8M calibration constant loading from the device signature row when the oscillator is initialized Updated default configuration of the XOSC32 to disable Automatic Gain Control due to silicon errata Initial Release 40
41 9. Examples for System Clock Driver This is a list of the available Quick Start guides (QSGs) and example applications for SAM System Clock Management (SYSTEM CLOCK) Driver. QSGs are simple examples with step-by-step instructions to configure and use this driver in a selection of use cases. Note that a QSG can be compiled as a standalone application or be added to the user application. Quick Start Guide for SYSTEM CLOCK - Basic Quick Start Guide for SYSTEM CLOCK - GCLK Configuration 9.1. Quick Start Guide for SYSTEM CLOCK - Basic Setup In this case we apply the following configuration: RC8MHz (internal 8MHz RC oscillator) Divide by four, giving a frequency of 2MHz DFLL (Digital frequency locked loop) Open loop mode 48MHz frequency CPU clock Prerequisites Code Use two wait states when reading from flash memory Use the DFLL, configured to 48MHz There are no special setup requirements for this use-case. Copy-paste the following setup code to your application: void configure_extosc32k(void) { struct system_clock_source_xosc32k_config config_ext32k; system_clock_source_xosc32k_get_config_defaults(&config_ext32k); config_ext32k.startup_time = SYSTEM_XOSC32K_STARTUP_4096; } system_clock_source_xosc32k_set_config(&config_ext32k); #if (!SAMC21) void configure_dfll_open_loop(void) { struct system_clock_source_dfll_config config_dfll; system_clock_source_dfll_get_config_defaults(&config_dfll); system_clock_source_dfll_set_config(&config_dfll); } #endif 41
42 Workflow 1. Create a EXTOSC32K module configuration struct, which can be filled out to adjust the configuration of the external 32KHz oscillator channel. struct system_clock_source_xosc32k_config config_ext32k; 2. Initialize the oscillator configuration struct with the module's default values. system_clock_source_xosc32k_get_config_defaults(&config_ext32k); Note: This should always be performed before using the configuration struct to ensure that all values are initialized to known default settings. 3. Alter the EXTOSC32K module configuration struct to require a start-up time of 4096 clock cycles. config_ext32k.startup_time = SYSTEM_XOSC32K_STARTUP_4096; 4. Write the new configuration to the EXTOSC32K module. system_clock_source_xosc32k_set_config(&config_ext32k); 5. Create a DFLL module configuration struct, which can be filled out to adjust the configuration of the external 32KHz oscillator channel. struct system_clock_source_dfll_config config_dfll; 6. Initialize the DFLL oscillator configuration struct with the module's default values. system_clock_source_dfll_get_config_defaults(&config_dfll); Note: This should always be performed before using the configuration struct to ensure that all values are initialized to known default settings. 7. Write the new configuration to the DFLL module. system_clock_source_dfll_set_config(&config_dfll); Use Case Code Copy-paste the following code to your user application: /* Configure the external 32KHz oscillator */ configure_extosc32k(); /* Enable the external 32KHz oscillator */ enum status_code osc32k_status = system_clock_source_enable(system_clock_source_xosc32k); if (osc32k_status!= STATUS_OK) { /* Error enabling the clock source */ } #if (!SAMC21) /* Configure the DFLL in open loop mode using default values */ configure_dfll_open_loop(); /* Enable the DFLL oscillator */ enum status_code dfll_status = system_clock_source_enable(system_clock_source_dfll); if (dfll_status!= STATUS_OK) { /* Error enabling the clock source */ 42
43 } /* Configure flash wait states before switching to high frequency clock */ system_flash_set_waitstates(2); /* Change system clock to DFLL */ struct system_gclk_gen_config config_gclock_gen; system_gclk_gen_get_config_defaults(&config_gclock_gen); config_gclock_gen.source_clock = SYSTEM_CLOCK_SOURCE_DFLL; config_gclock_gen.division_factor = 1; system_gclk_gen_set_config(gclk_generator_0, &config_gclock_gen); #endif Workflow 1. Configure the external 32KHz oscillator source using the previously defined setup function. configure_extosc32k(); 2. Enable the configured external 32KHz oscillator source. enum status_code osc32k_status = system_clock_source_enable(system_clock_source_xosc32k); if (osc32k_status!= STATUS_OK) { /* Error enabling the clock source */ } 3. Configure the DFLL oscillator source using the previously defined setup function. configure_dfll_open_loop(); 4. Enable the configured DFLL oscillator source. enum status_code dfll_status = system_clock_source_enable(system_clock_source_dfll); if (dfll_status!= STATUS_OK) { /* Error enabling the clock source */ } 5. Configure the flash wait states to have two wait states per read, as the high speed DFLL will be used as the system clock. If insufficient wait states are used, the device may crash randomly due to misread instructions. system_flash_set_waitstates(2); 6. Switch the system clock source to the DFLL, by reconfiguring the main clock generator. struct system_gclk_gen_config config_gclock_gen; system_gclk_gen_get_config_defaults(&config_gclock_gen); config_gclock_gen.source_clock = SYSTEM_CLOCK_SOURCE_DFLL; config_gclock_gen.division_factor = 1; system_gclk_gen_set_config(gclk_generator_0, &config_gclock_gen); 9.2. Quick Start Guide for SYSTEM CLOCK - GCLK Configuration In this use case, the GCLK module is configured for: One generator attached to the internal 8MHz RC oscillator clock source Generator output equal to input frequency divided by a factor of 128 One channel (connected to the TC0 module) enabled with the enabled generator selected 43
44 Setup This use case configures a clock channel to output a clock for a peripheral within the device, by first setting up a clock generator from a master clock source, and then linking the generator to the desired channel. This clock can then be used to clock a module within the device Prerequisites Code There are no special setup requirements for this use-case. Copy-paste the following setup code to your user application: void configure_gclock_generator(void) { struct system_gclk_gen_config gclock_gen_conf; system_gclk_gen_get_config_defaults(&gclock_gen_conf); #if (SAML21) (SAML22) gclock_gen_conf.source_clock = SYSTEM_CLOCK_SOURCE_OSC16M; gclock_gen_conf.division_factor = 128; #elif (SAMC21) gclock_gen_conf.source_clock = SYSTEM_CLOCK_SOURCE_OSC48M; gclock_gen_conf.division_factor = 128; #else gclock_gen_conf.source_clock = SYSTEM_CLOCK_SOURCE_OSC8M; gclock_gen_conf.division_factor = 128; #endif system_gclk_gen_set_config(gclk_generator_1, &gclock_gen_conf); } system_gclk_gen_enable(gclk_generator_1); void configure_gclock_channel(void) { struct system_gclk_chan_config gclk_chan_conf; system_gclk_chan_get_config_defaults(&gclk_chan_conf); gclk_chan_conf.source_generator = GCLK_GENERATOR_1; #if (SAMD10) (SAMD11) system_gclk_chan_set_config(tc1_gclk_id, &gclk_chan_conf); system_gclk_chan_enable(tc1_gclk_id); #else system_gclk_chan_set_config(tc3_gclk_id, &gclk_chan_conf); system_gclk_chan_enable(tc3_gclk_id); #endif } Add to user application initialization (typically the start of main()): Workflow configure_gclock_generator(); configure_gclock_channel(); 1. Create a GCLK generator configuration struct, which can be filled out to adjust the configuration of a single clock generator. struct system_gclk_gen_config gclock_gen_conf; 44
45 2. Initialize the generator configuration struct with the module's default values. system_gclk_gen_get_config_defaults(&gclock_gen_conf); Note: This should always be performed before using the configuration struct to ensure that all values are initialized to known default settings. 3. Adjust the configuration struct to request the master clock source channel 0 is used as the source of the generator, and set the generator output prescaler to divide the input clock by a factor of 128. gclock_gen_conf.source_clock = SYSTEM_CLOCK_SOURCE_OSC16M; gclock_gen_conf.division_factor = 128; 4. Configure the generator using the configuration structure. system_gclk_gen_set_config(gclk_generator_1, &gclock_gen_conf); Note: The existing configuration struct may be re-used, as long as any values that have been altered from the default settings are taken into account by the user application. 5. Enable the generator once it has been properly configured, to begin clock generation. system_gclk_gen_enable(gclk_generator_1); 6. Create a GCLK channel configuration struct, which can be filled out to adjust the configuration of a single generic clock channel. struct system_gclk_chan_config gclk_chan_conf; 7. Initialize the channel configuration struct with the module's default values. system_gclk_chan_get_config_defaults(&gclk_chan_conf); Note: This should always be performed before using the configuration struct to ensure that all values are initialized to known default settings. 8. Adjust the configuration struct to request the previously configured and enabled clock generator is used as the clock source for the channel. gclk_chan_conf.source_generator = GCLK_GENERATOR_1; 9. Configure the channel using the configuration structure. system_gclk_chan_set_config(tc1_gclk_id, &gclk_chan_conf); Note: The existing configuration struct may be re-used, as long as any values that have been altered from the default settings are taken into account by the user application. 10. Enable the channel once it has been properly configured, to output the clock to the channel's peripheral module consumers. system_gclk_chan_enable(tc1_gclk_id); Use Case Code Copy-paste the following code to your user application: while (true) { /* Nothing to do */ } 45
46 Workflow 1. As the clock is generated asynchronously to the system core, no special extra application code is required. 46
47 10. Document Revision History Doc. Rev. Date Comments 42119E 42119D 42119C 42119B 42119A 12/2015 Added support for SAM DA1 and SAM D09 12/2014 Added support for SAM R21 and SAM D10/D11 01/2014 Added support for SAM D21 06/2013 Corrected documentation typos. Fixed missing steps in the Basic Use Case Quick Start Guide 06/2013 Initial release 47
48 Atmel Corporation 1600 Technology Drive, San Jose, CA USA T: (+1)(408) F: (+1)(408) Atmel Corporation. / Rev.: Atmel, Atmel logo and combinations thereof, Enabling Unlimited Possibilities, and others are registered trademarks or trademarks of Atmel Corporation in U.S. and other countries. ARM, ARM Connected logo, and others are registered trademarks of ARM Ltd. Other terms and product names may be trademarks of others. DISCLAIMER: The information in this document is provided in connection with Atmel products. No license, express or implied, by estoppel or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Atmel products. EXCEPT AS SET FORTH IN THE ATMEL TERMS AND CONDITIONS OF SALES LOCATED ON THE ATMEL WEBSITE, ATMEL ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDENTAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS AND PROFITS, BUSINESS INTERRUPTION, OR LOSS OF INFORMATION) ARISING OUT OF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF ATMEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Atmel makes no representations or warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to make changes to specifications and products descriptions at any time without notice. Atmel does not make any commitment to update the information contained herein. Unless specifically provided otherwise, Atmel products are not suitable for, and shall not be used in, automotive applications. Atmel products are not intended, authorized, or warranted for use as components in applications intended to support or sustain life. SAFETY-CRITICAL, MILITARY, AND AUTOMOTIVE APPLICATIONS DISCLAIMER: Atmel products are not designed for and will not be used in connection with any applications where the failure of such products would reasonably be expected to result in significant personal injury or death ( Safety-Critical Applications ) without an Atmel officer's specific written consent. Safety-Critical Applications include, without limitation, life support devices and systems, equipment or systems for the operation of nuclear facilities and weapons systems. Atmel products are not designed nor intended for use in military or aerospace applications or environments unless specifically designated by Atmel as military-grade. Atmel products are not designed nor intended for use in automotive applications unless specifically designated by Atmel as automotive-grade.
AT13486: SAM C System Clock Management (SYSTEM CLOCK) Driver. Introduction. SMART ARM-based Microcontrollers APPLICATION NOTE
SMART ARM-based Microcontrollers AT13486: SAM C System Clock Management (SYSTEM CLOCK) Driver APPLICATION NOTE Introduction This driver for Atmel SMART ARM -based microcontrollers provides an interface
GCLK (Generic Clock Management) PM (Power Management) SYSCTRL (Clock Source Control) The following devices can use this module:
APPLICATION NOTE AT03259: SAM System Clock Management Driver (SYSTEM CLOCK) ASF PROGRAMMERS MANUAL SAM System Clock Management Driver (SYSTEM CLOCK) This driver for Atmel SMART SAM devices provides an
AT09333: USB Host Interface (UHI) for Communication Class Device (CDC) Introduction. Atmel Microcontrollers APPLICATION NOTE
Atmel Microcontrollers AT09333: USB Host Interface (UHI) for Communication Class Device (CDC) APPLICATION NOTE Introduction USB Host Interface (UHI) for Communication Class Device (CDC) provides an interface
Hello, and welcome to this presentation of the STM32L4 reset and clock controller.
Hello, and welcome to this presentation of the STM32L4 reset and clock controller. 1 The STM32L4 reset and clock controller manages system and peripheral clocks. STM32L4 devices embed three internal oscillators,
DACC (Digital-to-Analog Converter Controller) The outline of this documentation is as follows: Module Overview. Special Considerations
APPLICATION NOTE AT07900: SAM4 Digital-to-Analog Converter Controller (DACC) ASF PROGRAMMERS MANUAL SAM4 Digital-to-Analog Converter Controller (DACC) This driver for SAM4 (and SAM3) devices provides an
AVR1003: Using the XMEGA Clock System. 8-bit Microcontrollers. Application Note. Features. 1 Introduction
AVR1003: Using the XMEGA Clock System Features Internal 32 khz, 2 MHz, and 32 MHz oscillators External crystal oscillator or clock input Internal PLL with multiplication factor 1x to 31x Safe clock source
APPLICATION NOTE. Atmel AVR134: Real Time Clock (RTC) Using the Asynchronous Timer. Atmel AVR 8-bit Microcontroller. Introduction.
APPLICATION NOTE Atmel AVR134: Real Time Clock (RTC) Using the Asynchronous Timer Introduction Atmel AVR 8-bit Microcontroller This application note describes how to implement a real time counter (RTC)
AVR1321: Using the Atmel AVR XMEGA 32-bit Real Time Counter and Battery Backup System. 8-bit Microcontrollers. Application Note.
AVR1321: Using the Atmel AVR XMEGA 32-bit Real Time Counter and Battery Backup System Features 32-bit Real Time Counter (RTC) - 32-bit counter - Selectable clock source 1.024kHz 1Hz - Long overflow time
AN11008 Flash based non-volatile storage
Rev. 1 5 January 2011 Application note Document information Info Content Keywords Flash, EEPROM, Non-Volatile Storage Abstract This application note describes the implementation and use of a library that
AVR131: Using the AVR s High-speed PWM. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE
AVR 8-bit Microcontrollers AVR131: Using the AVR s High-speed PWM APPLICATION NOTE Introduction This application note is an introduction to the use of the high-speed Pulse Width Modulator (PWM) available
APPLICATION NOTE. AT07175: SAM-BA Bootloader for SAM D21. Atmel SAM D21. Introduction. Features
APPLICATION NOTE AT07175: SAM-BA Bootloader for SAM D21 Atmel SAM D21 Introduction Atmel SAM Boot Assistant (Atmel SAM-BA ) allows In-System Programming (ISP) from USB or UART host without any external
AVR1301: Using the XMEGA DAC. 8-bit Microcontrollers. Application Note. Features. 1 Introduction
AVR1301: Using the XMEGA DAC Features 12 bit resolution Up to 1 M conversions per second Continuous drive or sample-and-hold output Built-in offset and gain calibration High drive capabilities Driver source
ES_LPC4357/53/37/33. Errata sheet LPC4357/53/37/33. Document information
Rev. 1.1 8 August 2012 Errata sheet Document information Info Keywords Abstract Content LPC4357FET256; LPC4357FET180; LPC4357FBD208; LPC4353FET256; LPC4353FET180; LPC4353FBD208; LPC4337FET256; LPC4337FET180;
AT03247: SAM D/R/L/C Non-Volatile Memory (NVM) Driver. Introduction. SMART ARM-based Microcontrollers APPLICATION NOTE
SMART ARM-based Microcontrollers AT03247: SAM D/R/L/C Non-Volatile Memory (NVM) Driver APPLICATION NOTE Introduction This driver for Atmel SMART ARM -based microcontrollers provides an interface for the
AN10850. LPC1700 timer triggered memory to GPIO data transfer. Document information. LPC1700, GPIO, DMA, Timer0, Sleep Mode
LPC1700 timer triggered memory to GPIO data transfer Rev. 01 16 July 2009 Application note Document information Info Keywords Abstract Content LPC1700, GPIO, DMA, Timer0, Sleep Mode This application note
Software Real Time Clock Implementation on MC9S08LG32
Freescale Semiconductor Document Number: AN4478 Rev. 0, 03/2012 Software Real Time Clock Implementation on MC9S08LG32 by: Nitin Gupta Automotive and Industrial Solutions Group 1 Introduction The MC9S08LG32
Atmel AVR1017: XMEGA - USB Hardware Design Recommendations. 8-bit Atmel Microcontrollers. Application Note. Features.
Atmel AVR1017: XMEGA - USB Hardware Design Recommendations Features USB 2.0 compliance - Signal integrity - Power consumption - Back driver voltage - Inrush current EMC/EMI considerations Layout considerations
AVR125: ADC of tinyavr in Single Ended Mode. 8-bit Microcontrollers. Application Note. Features. 1 Introduction
AVR125: ADC of tinyavr in Single Ended Mode Features Up to 10bit resolution Up to 15kSPS Auto triggered and single conversion mode Optional left adjustment for ADC result readout Driver source code included
Fujitsu Microelectronics Europe Application Note MCU-AN-300067-E-V11 FR FAMILY 32-BIT MICROCONTROLLER MB91460 CLOCK MONITOR APPLICATION NOTE
Fujitsu Microelectronics Europe Application Note MCU-AN-300067-E-V11 FR FAMILY 32-BIT MICROCONTROLLER MB91460 CLOCK MONITOR APPLICATION NOTE Revision History Revision History Date Issue 2008-06-02 V1.0,
AVR126: ADC of megaavr in Single Ended Mode. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE
AVR 8-bit Microcontrollers AVR126: ADC of megaavr in Single Ended Mode APPLICATION NOTE Introduction Atmel megaavr devices have a successive approximation Analog-to- Digital Converter (ADC) capable of
USER GUIDE EDBG. Description
USER GUIDE EDBG Description The Atmel Embedded Debugger (EDBG) is an onboard debugger for integration into development kits with Atmel MCUs. In addition to programming and debugging support through Atmel
AVR055: Using a 32kHz XTAL for run-time calibration of the internal RC. 8-bit Microcontrollers. Application Note. Features.
AVR055: Using a 32kHz XTAL for run-time calibration of the internal RC Features Calibration using a 32 khz external crystal Adjustable RC frequency with maximum +/-2% accuracy Tune RC oscillator at any
8-bit Microcontroller. Application Note. AVR134: Real-Time Clock (RTC) using the Asynchronous Timer. Features. Theory of Operation.
AVR134: Real-Time Clock (RTC) using the Asynchronous Timer Features Real-Time Clock with Very Low Power Consumption (4µA @ 3.3V) Very Low Cost Solution Adjustable Prescaler to Adjust Precision Counts Time,
AVR32788: AVR 32 How to use the SSC in I2S mode. 32-bit Microcontrollers. Application Note. Features. 1 Introduction
AVR32788: AVR 32 How to use the SSC in I2S mode Features I²S protocol overview I²S on the AVR32 I²S sample rate configurations Example of use with AT32UC3A on EVK1105 board 32-bit Microcontrollers Application
PAC52XX Clock Control Firmware Design
APPLICATION NOTE PAC52XX Clock Control Firmware Design TM Marc Sousa Senior Manager, Systems and Firmware www.active-semi.com Copyright 2014 Active-Semi, Inc. TABLE OF CONTENTS APPLICATION NOTE... 1 Table
SAMA5D2. Scope. Reference Documents. Atmel SMART ARM-based MPU ERRATA
SAMA5D2 Atmel SMART ARM-based MPU ERRATA Scope This document contains the known errata found on the following Atmel SMART ARM -based SAMA5D2 devices, and planned to be fixed in the next silicon version:
Measuring Resistance Using Digital I/O
Measuring Resistance Using Digital I/O Using a Microcontroller for Measuring Resistance Without using an ADC. Copyright 2011 John Main http://www.best-microcontroller-projects.com Page 1 of 10 Table of
AN11241. AES encryption and decryption software on LPC microcontrollers. Document information
AES encryption and decryption software on LPC microcontrollers Rev. 1 25 July 2012 Application note Document information Info Content Keywords AES, encryption, decryption, FIPS-197, Cortex-M0, Cortex-M3
Scanning Comparator (ScanComp) Features. General Description. Input/Output Connections. When to Use a Scanning Comparator. clock - Digital Input* 1.
Scanning Comparator (ScanComp) 1.0 Features Scan up to 64 single ended or differential channels automatically Note The number of input and output channels will be limited by the hardware available in the
ARM Cortex STM series
ARM Cortex board 1 ARM Cortex STM series 2 STM32 Series 3 Abbreviation FS full speed HS high speed MC motor controller MSI multi speed internal oscillator RNG random number generator SDIO secure digital
AN1991. Audio decibel level detector with meter driver
Rev. 2.1 20 March 2015 Application note Document information Info Keywords Abstract Content SA604A, LM358, RSSI, cellular radio The SA604A can provide a logarithmic response proportional to the input signal
Pulse Redundancy. User Guide
Pulse Redundancy User Guide August 2014 Copyright The information in this document is subject to change without prior notice and does not represent a commitment on the part of AFCON Control and Automation
Fuse MQ Enterprise Broker Administration Tutorials
Fuse MQ Enterprise Broker Administration Tutorials Version 7.0 April 2012 Integration Everywhere Broker Administration Tutorials Version 7.0 Updated: 14 Sep 2012 Copyright 2011 FuseSource Corp. All rights
AVR151: Setup and Use of the SPI. Introduction. Features. Atmel AVR 8-bit Microcontroller APPLICATION NOTE
Atmel AVR 8-bit Microcontroller AVR151: Setup and Use of the SPI APPLICATION NOTE Introduction This application note describes how to set up and use the on-chip Serial Peripheral Interface (SPI) of the
AT15007: Differences between ATmega328/P and ATmega328PB. Introduction. Features. Atmel AVR 8-bit Microcontrollers APPLICATION NOTE
Atmel AVR 8-bit Microcontrollers AT15007: Differences between ATmega328/P and ATmega328PB APPLICATION NOTE Introduction This application note assists the users of Atmel ATmega328 variants to understand
Upgrading Intel AMT 5.0 drivers to Linux kernel v2.6.31
White Paper Zerene Sangma Platform Application Engineer Intel Corporation Upgrading Intel AMT 5.0 drivers to Linux kernel v2.6.31 For Intel Q45 and Intel GM45 based embedded platforms June 2010 323961
APPLICATION NOTE. Atmel AT02607: Wireless Product Development Using Atmel Studio and ASF. Atmel MCU Wireless. Description.
APPLICATION NOTE Atmel AT02607: Wireless Product Development Using Atmel Studio and ASF Description Atmel MCU Wireless This application note introduces the users on how to develop products using Atmel
SMARTCARD XPRO. Preface. SMART ARM-based Microcontrollers USER GUIDE
SMART ARM-based Microcontrollers SMARTCARD XPRO USER GUIDE Preface Atmel SMARTCARD Xplained Pro is an extension board to the Atmel Xplained Pro evaluation platform. Atmel SMARTCARD Xplained Pro is designed
General Porting Considerations. Memory EEPROM XRAM
AVR097: Migration between ATmega128 and ATmega2561 Features General Porting Considerations Memory Clock sources Interrupts Power Management BOD WDT Timers/Counters USART & SPI ADC Analog Comparator ATmega103
Simba ODBC Driver with SQL Connector for Apache Cassandra
Simba ODBC Driver with SQL Connector for Apache Cassandra Installation and Configuration Guide May 7, 2013 Simba Technologies Inc. Copyright 2012-2013 Simba Technologies Inc. All Rights Reserved. Information
AN3252 Application note
Application note Building a wave generator using STM8L-DISCOVERY Application overview This application note provides a short description of how to use the STM8L-DISCOVERY as a basic wave generator for
Section 7. Oscillator
HIGHLIGHTS Section 7. This section of the manual contains the following topics: 7 7.1 Introduction... 7-2 7.2 CPU Clocking...7-4 7.3 Configuration Registers... 7-5 7.4 Special Function Registers... 7-8
Hello and welcome to this training module for the STM32L4 Liquid Crystal Display (LCD) controller. This controller can be used in a wide range of
Hello and welcome to this training module for the STM32L4 Liquid Crystal Display (LCD) controller. This controller can be used in a wide range of applications such as home appliances, medical, automotive,
HIGHSEC eid App Administration User Manual
HIGHSEC eid App Administration User Manual Contents 1 Introduction... 3 2 Application overview... 3 3 Managing HIGHSEC eid App... 3 3.1 Deleting card pairings... 4 4 Inspecting smart card contents... 5
Chapter 13. PIC Family Microcontroller
Chapter 13 PIC Family Microcontroller Lesson 01 PIC Characteristics and Examples PIC microcontroller characteristics Power-on reset Brown out reset Simplified instruction set High speed execution Up to
AN3265 Application note
Application note Handling hardware and software failures with the STM8S-DISCOVERY Application overview This application is based on the STM8S-DISCOVERY. It demonstrates how to use the STM8S window watchdog
APPLICATION NOTE. AT12405: Low Power Sensor Design with PTC. Atmel MCU Integrated Touch. Introduction
APPLICATION NOTE AT12405: Low Power Sensor Design with PTC Atmel MCU Integrated Touch Introduction A ma saved (reduced) is a mah gained the philosophical engineer The challenges for improving battery life
Atmel AVR4920: ASF - USB Device Stack - Compliance and Performance Figures. Atmel Microcontrollers. Application Note. Features.
Atmel AVR4920: ASF - USB Device Stack - Compliance and Performance Figures Features Compliance to USB 2.0 - Chapters 8 and 9 - Classes: HID, MSC, CDC, PHDC Interoperability: OS, classes, self- and bus-powered
RSA Two Factor Authentication
RSA Two Factor Authentication VERSION: 1.0 UPDATED: MARCH 2014 Copyright 2002-2014 KEMP Technologies, Inc. All Rights Reserved. Page 1 / 16 Copyright Notices Copyright 2002-2014 KEMP Technologies, Inc..
Hello, welcome to this presentation of the low power timer, or LPTMR, module for Kinetis MCUs. In this session you ll learn about the LPTMR, it s
Hello, welcome to this presentation of the low power timer, or LPTMR, module for Kinetis MCUs. In this session you ll learn about the LPTMR, it s main features and the application benefits of leveraging
AVR134: Real Time Clock (RTC) using the Asynchronous Timer. 8-bit Microcontrollers. Application Note. Features. 1 Introduction
AVR134: Real Time Clock (RTC) using the Asynchronous Timer Features Real Time Clock with Very Low Power Consumption (4 μa @ 3.3V) Very Low Cost Solution Adjustable Prescaler to Adjust Precision Counts
AVR311: Using the TWI Module as I2C Slave. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE
AVR 8-bit Microcontrollers AVR311: Using the TWI Module as I2C Slave APPLICATION NOTE Introduction The Two-wire Serial Interface (TWI) is compatible with Philips I 2 C protocol. The bus allows simple,
FortiAuthenticator Agent for Microsoft IIS/OWA. Install Guide
FortiAuthenticator Agent for Microsoft IIS/OWA Install Guide FortiAuthenticator Agent for Microsoft IIS/OWA Install Guide February 5, 2015 Revision 1 Copyright 2015 Fortinet, Inc. All rights reserved.
AVR033: Getting Started with the CodeVisionAVR C Compiler. 8-bit Microcontrollers. Application Note. Features. 1 Introduction
AVR033: Getting Started with the CodeVisionAVR C Compiler Features Installing and Configuring CodeVisionAVR to Work with the Atmel STK 500 Starter Kit and AVR Studio Debugger Creating a New Project Using
Extending the swsusp Hibernation Framework to ARM. Russell Dill
Extending the swsusp Hibernation Framework to ARM Russell Dill 1 2 Introduction Russ Dill of Texas Instruments swsusp/hibernation on ARM Overview Challenges Implementation Remaining work Debugging swsusp
AN3998 Application note
Application note PDM audio software decoding on STM32 microcontrollers 1 Introduction This application note presents the algorithms and architecture of an optimized software implementation for PDM signal
Fujitsu Microelectronics Europe Application Note MCU-AN-300104-E-V10 FR FAMILY 32-BIT MICROCONTROLLER MB91460 CLOCK SUPERVISOR APPLICATION NOTE
Fujitsu Microelectronics Europe Application Note MCU-AN-300104-E-V10 FR FAMILY 32-BIT MICROCONTROLLER MB91460 CLOCK SUPERVISOR APPLICATION NOTE Revision History Revision History Date 2008-06-18 V1.0, First
AN3332 Application note
Application note Generating PWM signals using STM8S-DISCOVERY Application overview This application user manual provides a short description of how to use the Timer 2 peripheral (TIM2) to generate three
AN10849. LPC1700 RTC hardware auto calibration. Document information. RTC, Hardware Auto Calibration, LPC1700, Graphic LCD
Rev. 01 1 July 2009 Application note Document information Info Keywords Abstract Content RTC, Hardware Auto Calibration, LPC1700, Graphic LCD Using the LPC1700 RTC s auto calibration feature Revision history
ANZ TRANSACTIVE MOBILE for ipad
ANZ TRANSACTIVE MOBILE for ipad SIMPLIFYING AND CONNECTING YOUR TRANSACTION BANKING ACROSS AUSTRALIA AND NEW ZEALAND QUICK REFERENCE GUIDE May 2014 GETTING STARTED Please ensure your ANZ Transactive Administrator
AN3371 Application note
Application note Using the hardware real-time clock (RTC) in STM32 F0, F2, F3, F4 and L1 series of MCUs Introduction Note: A real-time clock (RTC) is a computer clock that keeps track of the current time.
Lab Experiment 1: The LPC 2148 Education Board
Lab Experiment 1: The LPC 2148 Education Board 1 Introduction The aim of this course ECE 425L is to help you understand and utilize the functionalities of ARM7TDMI LPC2148 microcontroller. To do that,
RENESAS TECHNICAL UPDATE
RENESAS TECHNICAL UPDATE TN-RX*-A***A/E RENESAS TECHNICAL UPDATE 1753, Shimonumabe, Nakahara-ku, Kawasaki-shi, Kanagawa 211-8668 Japan Renesas Electronics Corporation Date: Apr. 1, 2013 Product Category
Adobe DNG Flat Field Plug-in (1.0) Software Notices and/or Additional Terms and Conditions
Adobe DNG Flat Field Plug-in (1.0) Software Notices and/or Additional Terms and Conditions This page and/or pages linked from this page contain Third Party Software Notices and/or Additional Terms and
APPLICATION NOTE Atmel AT02509: In House Unit with Bluetooth Low Energy Module Hardware User Guide 8-bit Atmel Microcontroller Features Description
APPLICATION NOTE Atmel AT259: In House Unit with Bluetooth Low Energy Module Hardware User Guide Features 8-bit Atmel Microcontroller Low power consumption Interface with BLE with UART Bi-direction wake
AN4646 Application note
Application note Peripheral interconnections on STM32F401 and STM32F411 lines Introduction On top of the highest performance and the lowest power consumption of the STM32F4 family, STM32F401/411 peripherals
Application Note AN_299. FT800_FT801_Internal_Clock _Trimming
AN_299 FT800_FT801_Internal_Clock _Trimming Issue Date: 2014-03-04 The FTDI FT800 and FT801 video controllers offer a low cost solution for embedded graphics requirements. In addition to the graphics,
System Center Virtual Machine Manager 2012 R2 Plug-In. Feature Description
System Center Virtual Machine Manager 2012 R2 Plug-In Feature Description VERSION: 6.0 UPDATED: MARCH 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies
MPLAB Harmony System Service Libraries Help
MPLAB Harmony System Service Libraries Help MPLAB Harmony Integrated Software Framework v1.08 All rights reserved. This section provides descriptions of the System Service libraries that are available
User Manual. AS-Interface Programmer
AS-Interface Programmer Notice: RESTRICTIONS THE ZMD AS-INTERFACE PROGRAMMER HARDWARE AND ZMD AS-INTERFACE PROGRAMMER SOFTWARE IS DESIGNED FOR IC EVALUATION, LABORATORY SETUP AND MODULE DEVELOPMENT ONLY.
Hello, and welcome to this presentation of the STM32 SDMMC controller module. It covers the main features of the controller which is used to connect
Hello, and welcome to this presentation of the STM32 SDMMC controller module. It covers the main features of the controller which is used to connect the CPU to an SD card, MMC card, or an SDIO device.
AVR315: Using the TWI Module as I2C Master. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE
AVR 8-bit Microcontrollers AVR315: Using the TWI Module as I2C Master APPLICATION NOTE Introduction The Two-wire Serial Interface (TWI) is compatible with Philips I 2 C protocol. The bus allows simple,
AlazarTech SDK Programmer s Guide. Version 6.0.3 June 16, 2011
AlazarTech SDK Programmer s Guide Version 6.0.3 June 16, 2011 License Agreement Important By using this software you accept the following terms of this License Agreement. If you do not agree with these
Azure Multi-Factor Authentication. KEMP LoadMaster and Azure Multi- Factor Authentication. Technical Note
KEMP LoadMaster and Azure Multi- Factor Authentication Technical Note VERSION: 1.0 UPDATED: APRIL 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies
SDN Adaptive Load Balancing. Feature Description
SDN Adaptive Load Balancing Feature Description VERSION: 4.0 UPDATED: JANUARY 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies
Microsoft SharePoint
Microsoft SharePoint VERSION: 1.1 UPDATED: JULY 2014 Copyright 2002-2014 KEMP Technologies, Inc. All Rights Reserved. Page 1 / 13 Copyright Notices Copyright 2002-2014 KEMP Technologies, Inc.. All rights
8-Bit Flash Microcontroller for Smart Cards. AT89SCXXXXA Summary. Features. Description. Complete datasheet available under NDA
Features Compatible with MCS-51 products On-chip Flash Program Memory Endurance: 1,000 Write/Erase Cycles On-chip EEPROM Data Memory Endurance: 100,000 Write/Erase Cycles 512 x 8-bit RAM ISO 7816 I/O Port
Atmel AVR4903: ASF - USB Device HID Mouse Application. Atmel Microcontrollers. Application Note. Features. 1 Introduction
Atmel AVR4903: ASF - USB Device HID Mouse Application Features USB 2.0 compliance - Chapter 9 compliance - HID compliance - Low-speed (1.5Mb/s) and full-speed (12Mb/s) data rates Standard USB HID mouse
Open Source Used In Cisco Instant Connect for ios Devices 4.9(1)
Open Source Used In Cisco Instant Connect for ios Devices 4.9(1) Cisco Systems, Inc. www.cisco.com Cisco has more than 200 offices worldwide. Addresses, phone numbers, and fax numbers are listed on the
SAM4 Real-Time Clock (RTC)
APPLICATION NOTE AT07337: SAM4 Real-Time Clock (RTC) ASF PROGRAMMERS MANUAL SAM4 Real-Time Clock (RTC) This driver for SAM4C/SAM4E/SAMG/SAM4N/SAM4S devices provides an interface for the configuration and
Atmel AVR4950: ASF - USB Host Stack. 8-bit Atmel Microcontrollers. Application Note. Features. 1 Introduction
Atmel AVR4950: ASF - USB Host Stack Features USB 2.0 compliance - Chapter 9 - Control, Bulk, Isochronous and Interrupt transfer types - Low Speed (1.5Mbit/s), Full Speed (12Mbit/s), High Speed (480Mbit/s)
AVR127: Understanding ADC Parameters. Introduction. Features. Atmel 8-bit and 32-bit Microcontrollers APPLICATION NOTE
Atmel 8-bit and 32-bit Microcontrollers AVR127: Understanding ADC Parameters APPLICATION NOTE Introduction This application note explains the basic concepts of analog-to-digital converter (ADC) and the
AVR1309: Using the XMEGA SPI. 8-bit Microcontrollers. Application Note. Features. 1 Introduction SCK MOSI MISO SS
AVR1309: Using the XMEGA SPI Features Introduction to SPI and the XMEGA SPI module Setup and use of the XMEGA SPI module Implementation of module drivers Polled master Interrupt controlled master Polled
Keil C51 Cross Compiler
Keil C51 Cross Compiler ANSI C Compiler Generates fast compact code for the 8051 and it s derivatives Advantages of C over Assembler Do not need to know the microcontroller instruction set Register allocation
2.0 System Description
2.0 System Description The wireless alarm system consists of two or more alarm units within a specified range of one another. Each alarm unit employs a radio transceiver, allowing it to communicate with
Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs
Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs AN033101-0412 Abstract This describes how to interface the Dallas 1-Wire bus with Zilog s Z8F1680 Series of MCUs as master devices. The Z8F0880,
BlackBerry Web Desktop Manager. Version: 5.0 Service Pack: 4. User Guide
BlackBerry Web Desktop Manager Version: 5.0 Service Pack: 4 User Guide Published: 2012-10-03 SWD-20121003174218242 Contents 1 Basics... 5 Log in to the BlackBerry Web Desktop Manager... 5 Connect your
User Guide. Introduction. HCS12PLLCALUG/D Rev. 0, 12/2002. HCS12 PLL Component Calculator
User Guide HCS12PLLCALUG/D Rev. 0, 12/2002 HCS12 PLL Component Calculator by Stuart Robb Applications Engineering Motorola, East Kilbride Introduction The MC9S12D amily o MCUs includes a Phase-Locked Loop
GEO Sticky DNS. GEO Sticky DNS. Feature Description
GEO Sticky DNS Feature Description VERSION: 5.0 UPDATED: JANUARY 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies logo
Installation Guide Supplement
Installation Guide Supplement for use with Microsoft ISA Server and Forefront TMG Websense Web Security Websense Web Filter v7.5 1996 2010, Websense Inc. All rights reserved. 10240 Sorrento Valley Rd.,
SN 132 SNAPstick QUICK START GUIDE
QUICK START GUIDE SN 132 SNAPstick 2008-2015 Synapse, All Rights Reserved. All Synapse products are patent pending. Synapse, the Synapse logo, SNAP, and Portal are all registered trademarks of Synapse
Chapter 6 PLL and Clock Generator
Chapter 6 PLL and Clock Generator The DSP56300 core features a Phase Locked Loop (PLL) clock generator in its central processing module. The PLL allows the processor to operate at a high internal clock
AN1229. Class B Safety Software Library for PIC MCUs and dspic DSCs OVERVIEW OF THE IEC 60730 STANDARD INTRODUCTION
Class B Safety Software Library for PIC MCUs and dspic DSCs AN1229 Authors: Veena Kudva & Adrian Aur Microchip Technology Inc. OVERVIEW OF THE IEC 60730 STANDARD INTRODUCTION This application note describes
SKP16C62P Tutorial 1 Software Development Process using HEW. Renesas Technology America Inc.
SKP16C62P Tutorial 1 Software Development Process using HEW Renesas Technology America Inc. 1 Overview The following tutorial is a brief introduction on how to develop and debug programs using HEW (Highperformance
Microtronics technologies Mobile: 99707 90092
For more Project details visit: http://www.projectsof8051.com/rfid-based-attendance-management-system/ Code Project Title 1500 RFid Based Attendance System Synopsis for RFid Based Attendance System 1.
EMC6D103S. Fan Control Device with High Frequency PWM Support and Hardware Monitoring Features PRODUCT FEATURES ORDER NUMBERS: Data Brief
EMC6D103S Fan Control Device with High Frequency PWM Support and Hardware Monitoring Features PRODUCT FEATURES Data Brief 3.3 Volt Operation (5 Volt Tolerant Input Buffers) SMBus 2.0 Compliant Interface
[MD5 Message Digests] derived from the RSA Data Security, Inc. MD5 Message Digest Algorithm
[MD5 Message Digests] derived from the RSA Data Security, Inc. MD5 Message Digest Algorithm [RegExp] Copyright (c) 1986, 1993, 1995 by University of Toronto. Written by Henry Spencer. THIS IS AN ALTERED
White Paper Utilizing Leveling Techniques in DDR3 SDRAM Memory Interfaces
White Paper Introduction The DDR3 SDRAM memory architectures support higher bandwidths with bus rates of 600 Mbps to 1.6 Gbps (300 to 800 MHz), 1.5V operation for lower power, and higher densities of 2
Atmel Norway 2005. XMEGA Introduction
Atmel Norway 005 XMEGA Introduction XMEGA XMEGA targets Leadership on Peripheral Performance Leadership in Low Power Consumption Extending AVR market reach XMEGA AVR family 44-100 pin packages 16K 51K
Optimizing VCO PLL Evaluations & PLL Synthesizer Designs
Optimizing VCO PLL Evaluations & PLL Synthesizer Designs Today s mobile communications systems demand higher communication quality, higher data rates, higher operation, and more channels per unit bandwidth.
