Обновление
This commit is contained in:
parent
29109cf3fd
commit
1b43ec9d7c
53
APP/Clock.c
53
APP/Clock.c
|
|
@ -24,11 +24,20 @@ static void Bsp_PCC_Init(void);
|
||||||
* @brief Local SCG initial
|
* @brief Local SCG initial
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Ядро процессора: 240 МГц
|
||||||
|
// Системная шина: 120 МГц
|
||||||
|
// Медленная периферия: 120 МГц
|
||||||
|
// PLL0/PLL1: 240 МГц
|
||||||
|
// FOSC: 24 МГц
|
||||||
|
// SIRC: 12 МГц
|
||||||
|
|
||||||
static void Bsp_SCG_Init(void) {
|
static void Bsp_SCG_Init(void) {
|
||||||
|
|
||||||
SCG_Deinit();
|
SCG_Deinit();
|
||||||
|
|
||||||
/* Enable FOSC, frequency is 24M, DIVH=DIV1(24M), DIVM=DIV1(24M), DIVL=DIV2(12M)*/
|
/* Enable FOSC, frequency is 24M, DIVH=DIV1(24M), DIVM=DIV1(24M), DIVL=DIV2(12M)*/
|
||||||
|
// FOSC - Внешний кварцевый генератор (Базовый источник 24 МГц)
|
||||||
SCG_FoscType tFoscStruct =
|
SCG_FoscType tFoscStruct =
|
||||||
{
|
{
|
||||||
.bLock = false,
|
.bLock = false,
|
||||||
|
|
@ -44,6 +53,12 @@ static void Bsp_SCG_Init(void) {
|
||||||
|
|
||||||
/* Enable PLL0, frequency is 240M, DIVH=DIV2(120M), DIVM=DIV2(120M), DIVL=DIV4(60M), src=FOSC*/
|
/* Enable PLL0, frequency is 240M, DIVH=DIV2(120M), DIVM=DIV2(120M), DIVL=DIV4(60M), src=FOSC*/
|
||||||
/* The value of multiplier factor(FOSC/u8Prediv) between 2 ~ 4 is better*/
|
/* The value of multiplier factor(FOSC/u8Prediv) between 2 ~ 4 is better*/
|
||||||
|
|
||||||
|
// FOSC = 24 МГц
|
||||||
|
// После предделителя: 24 МГц / (11 + 1) = 24 МГц / 12 = 2 МГц
|
||||||
|
// После умножения: 2 МГц × (239 + 1) = 2 МГц × 240 = 480 МГц
|
||||||
|
// После постделителя: 480 МГц / 2 = 240 МГц
|
||||||
|
|
||||||
SCG_PllType tPll0Struct =
|
SCG_PllType tPll0Struct =
|
||||||
{
|
{
|
||||||
.bLock = false,
|
.bLock = false,
|
||||||
|
|
@ -62,6 +77,10 @@ static void Bsp_SCG_Init(void) {
|
||||||
|
|
||||||
/* Enable PLL1, frequency is 240M, DIVH=DIV2(120M), DIVM=DIV2(120M), DIVL=DIV4(60M), src=FOSC*/
|
/* Enable PLL1, frequency is 240M, DIVH=DIV2(120M), DIVM=DIV2(120M), DIVL=DIV4(60M), src=FOSC*/
|
||||||
/* The value of multiplier factor(FOSC/u8Prediv) between 2 ~ 4 is better*/
|
/* The value of multiplier factor(FOSC/u8Prediv) between 2 ~ 4 is better*/
|
||||||
|
|
||||||
|
// Аналогична PLL0, также 240 МГц
|
||||||
|
// Обычно используется для периферии
|
||||||
|
|
||||||
SCG_PllType tPll1Struct =
|
SCG_PllType tPll1Struct =
|
||||||
{
|
{
|
||||||
.bLock = false,
|
.bLock = false,
|
||||||
|
|
@ -79,6 +98,9 @@ static void Bsp_SCG_Init(void) {
|
||||||
SCG_EnablePLL(SCG_PLL1, &tPll1Struct);
|
SCG_EnablePLL(SCG_PLL1, &tPll1Struct);
|
||||||
|
|
||||||
/* Enable SIRC DIV, DIVH=DIV1(12M), DIVM=DIV1(12M), DIVL=DIV2(6M) */
|
/* Enable SIRC DIV, DIVH=DIV1(12M), DIVM=DIV1(12M), DIVL=DIV2(6M) */
|
||||||
|
// Резервный источник тактирования
|
||||||
|
// Меньшая точность, но быстрый запуск
|
||||||
|
|
||||||
SCG_SircType tSircStruct =
|
SCG_SircType tSircStruct =
|
||||||
{
|
{
|
||||||
.bLock = false,
|
.bLock = false,
|
||||||
|
|
@ -94,6 +116,13 @@ static void Bsp_SCG_Init(void) {
|
||||||
SCG_SetSIRC(&tSircStruct);
|
SCG_SetSIRC(&tSircStruct);
|
||||||
|
|
||||||
/* Set core clock source from PLL0, DIV_CORE=DIV1(240M), DIV_BUS=DIV2(120M), DIV_SLOW=DIV4(60M)*/
|
/* Set core clock source from PLL0, DIV_CORE=DIV1(240M), DIV_BUS=DIV2(120M), DIV_SLOW=DIV4(60M)*/
|
||||||
|
// Системное тактирование
|
||||||
|
|
||||||
|
//.eSrc = PLL0, // Источник - PLL0 (240 МГц)
|
||||||
|
//.eDivCore = DIV1, // Ядро: 240 МГц
|
||||||
|
//.eDivBus = DIV2, // Шина: 120 МГц
|
||||||
|
//.eDivSlow = DIV2 // Медленная периферия: 120 МГц
|
||||||
|
|
||||||
SCG_ClockCtrlType tClockStruct =
|
SCG_ClockCtrlType tClockStruct =
|
||||||
{
|
{
|
||||||
.bSysClkMonitor = false,
|
.bSysClkMonitor = false,
|
||||||
|
|
@ -113,6 +142,30 @@ static void Bsp_SCG_Init(void) {
|
||||||
static void Bsp_PCC_Init(void) {
|
static void Bsp_PCC_Init(void) {
|
||||||
PCC_CtrlType bSP_PCC_Config;
|
PCC_CtrlType bSP_PCC_Config;
|
||||||
|
|
||||||
|
/* UART 2 */
|
||||||
|
bSP_PCC_Config.eClockName = PCC_CLK_FCUART2;
|
||||||
|
bSP_PCC_Config.bEn = true;
|
||||||
|
bSP_PCC_Config.eClkSrc = PCC_CLKGATE_SRC_FOSCDIV;
|
||||||
|
bSP_PCC_Config.eDivider = PCC_CLK_UNINVOLVED;
|
||||||
|
|
||||||
|
PCC_SetPcc(&bSP_PCC_Config);
|
||||||
|
|
||||||
|
/* CAN 0 */
|
||||||
|
bSP_PCC_Config.eClockName = PCC_CLK_FLEXCAN0;
|
||||||
|
bSP_PCC_Config.bEn = TRUE;
|
||||||
|
bSP_PCC_Config.eClkSrc = PCC_CLKGATE_SRC_FOSCDIV;
|
||||||
|
bSP_PCC_Config.eDivider = PCC_CLK_DIV_BY1;
|
||||||
|
|
||||||
|
PCC_SetPcc(&bSP_PCC_Config);
|
||||||
|
|
||||||
|
/* ADC 0 */
|
||||||
|
bSP_PCC_Config.eClockName = PCC_CLK_ADC0;
|
||||||
|
bSP_PCC_Config.bEn = TRUE;
|
||||||
|
bSP_PCC_Config.eClkSrc = PCC_CLKGATE_SRC_FOSCDIV;
|
||||||
|
bSP_PCC_Config.eDivider = PCC_CLK_DIV_BY1;
|
||||||
|
|
||||||
|
PCC_SetPcc(&bSP_PCC_Config);
|
||||||
|
|
||||||
/* DMA 0 */
|
/* DMA 0 */
|
||||||
bSP_PCC_Config.eClockName = PCC_CLK_DMA0;
|
bSP_PCC_Config.eClockName = PCC_CLK_DMA0;
|
||||||
bSP_PCC_Config.bEn = true;
|
bSP_PCC_Config.bEn = true;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue