Linux之ARM(MX6U)裸机篇----8.主频和时钟配置实验

一,PLL时钟配置原理

二,bsp_clk代码

cpp 复制代码
bsp_clk.c:

#include "bsp_clk.h"

/*
 * @description	: 使能I.MX6U所有外设时钟
 * @param 		: 无
 * @return 		: 无
 */
void clk_enable(void)
{
	CCM->CCGR0 = 0XFFFFFFFF;
	CCM->CCGR1 = 0XFFFFFFFF;

	CCM->CCGR2 = 0XFFFFFFFF;
	CCM->CCGR3 = 0XFFFFFFFF;
	CCM->CCGR4 = 0XFFFFFFFF;
	CCM->CCGR5 = 0XFFFFFFFF;
	CCM->CCGR6 = 0XFFFFFFFF;

}

/* 初始化时钟 */
void imx6u_clkinit(void)
{
	/* 初始化6U的主频为528MHz */
	if(((CCM->CCSR >> 2) & 0X1) == 0) /* 当时时钟使用pll1_main_clk,也就是pll1 */
	{
		CCM->CCSR &= ~(1 << 8);	/* 设置step_clk = osc_clk=24M */
		CCM->CCSR |= (1 << 2); /* pll1_sw_clk=step_clk=24MHz */
	}

	/* 设置PLL1=1056MHz */
	CCM_ANALOG->PLL_ARM = (1 << 13) | ((58 << 0) & 0x7f);
	CCM->CACRR = 0;/* 设置2分频 */
	CCM->CCSR &= ~(1 << 2);/* 设置pll1_sw_clk=pll1_main_clk=1056MHz */
}

bsp_clk.h:

#ifndef __BSP_CLK_H
#define __BSP_CLK_H
#include "fsl_common.h"
#include "fsl_iomuxc.h"
#include "MCIMX6Y2.h"

void clk_enable(void);
void imx6u_clkinit(void);

#endif
相关推荐
szxinmai主板定制专家3 小时前
轨道交通CPU+FPGA控制器,支持codesys/vxWorks/翼辉等实时系统
arm开发·人工智能·fpga开发·架构
sz66cm5 小时前
算法基础 -- ARM 体系架构设计专家的算法提升目标
arm开发·算法
ZL.zheng6 小时前
arm内核寄存器错误定位技巧【持续更新】
arm开发
亿道电子Emdoor11 小时前
【ARM】MDK-STM32g0xx.h文件与Define规则记录
arm开发·stm32·单片机
是qiqi呀~12 小时前
聊一聊:ARM与RISC-V架构
arm开发·单片机·risc-v
九鼎创展科技1 天前
LGA封装 Z3588开发板,8K视频编解码
arm开发·人工智能·嵌入式硬件
一枝小雨2 天前
ARM:使用F103纯汇编点灯
汇编·arm开发
小狗爱吃黄桃罐头2 天前
正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-5.1 uboot顶层Makefile分析-VSCode工程创建
linux·arm开发·学习
szxinmai主板定制专家3 天前
基于DSP+ARM+FPGA轨道交通6U机箱结构牵引控制单元(Pcle)
大数据·arm开发·人工智能·fpga开发·架构
钡铼技术物联网关3 天前
支持Linux、鸿蒙的工业AIOT智能终端在钢铁厂的应用
linux·arm开发·边缘计算