mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
84 lines
2.3 KiB
C
84 lines
2.3 KiB
C
/*
|
|
* Copyright (C) 2016 Kees Bakker, SODAQ
|
|
*
|
|
* This file is subject to the terms and conditions of the GNU Lesser
|
|
* General Public License v2.1. See the file LICENSE in the top level
|
|
* directory for more details.
|
|
*/
|
|
|
|
/**
|
|
* @ingroup boards_common_sodaq
|
|
* @{
|
|
*
|
|
* @file
|
|
* @brief Default clock configuration for SODAQ boards
|
|
*
|
|
* @author Kees Bakker <kees@sodaq.com>
|
|
*/
|
|
|
|
#ifndef CFG_CLOCK_DEFAULT_H
|
|
#define CFG_CLOCK_DEFAULT_H
|
|
|
|
#include <stdint.h>
|
|
|
|
#include "cpu.h"
|
|
#include "periph_cpu.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @name External oscillator and clock configuration
|
|
*
|
|
* For selection of the used CORECLOCK, we have implemented two choices:
|
|
*
|
|
* - usage of the PLL fed by the internal 8MHz oscillator divided by 8
|
|
* - usage of the internal 8MHz oscillator directly, divided by N if needed
|
|
*
|
|
*
|
|
* The PLL option allows for the usage of a wider frequency range and a more
|
|
* stable clock with less jitter. This is why we use this option as default.
|
|
*
|
|
* The target frequency is computed from the PLL multiplier and the PLL divisor.
|
|
* Use the following formula to compute your values:
|
|
*
|
|
* CORECLOCK = ((PLL_MUL + 1) * 1MHz) / PLL_DIV
|
|
*
|
|
* NOTE: The PLL circuit does not run with less than 32MHz while the maximum PLL
|
|
* frequency is 96MHz. So PLL_MULL must be between 31 and 95!
|
|
*
|
|
*
|
|
* The internal Oscillator used directly can lead to a slightly better power
|
|
* efficiency to the cost of a less stable clock. Use this option when you know
|
|
* what you are doing! The actual core frequency is adjusted as follows:
|
|
*
|
|
* CORECLOCK = 8MHz / DIV
|
|
*
|
|
* NOTE: A core clock frequency below 1MHz is not recommended
|
|
*
|
|
* @{
|
|
*/
|
|
#define CLOCK_USE_PLL (1)
|
|
|
|
#if CLOCK_USE_PLL
|
|
/* edit these values to adjust the PLL output frequency */
|
|
#define CLOCK_PLL_MUL (47U) /* must be >= 31 & <= 95 */
|
|
#define CLOCK_PLL_DIV (1U) /* adjust to your needs */
|
|
/* generate the actual used core clock frequency */
|
|
#define CLOCK_CORECLOCK (((CLOCK_PLL_MUL + 1) * 1000000U) / CLOCK_PLL_DIV)
|
|
#else
|
|
/* edit this value to your needs */
|
|
#define CLOCK_DIV (1U)
|
|
/* generate the actual core clock frequency */
|
|
#define CLOCK_CORECLOCK (8000000 / CLOCK_DIV)
|
|
#endif
|
|
/** @} */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* CFG_CLOCK_DEFAULT_H */
|
|
/** @} */
|