当前位置: 首页 > article >正文

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

一,PLL时钟配置原理

二,bsp_clk代码

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


http://www.kler.cn/a/467471.html

相关文章:

  • 3.final关键字
  • 智能客户服务:科技如何重塑客户服务体验
  • 力扣283 移动零
  • Vue3实现PDF在线预览功能
  • python对mongodb的增删查改
  • TCP 演进之路:软硬件跷跷板与新征程
  • AWS EMR基础知识
  • 【ArcGISPro/GeoScenePro】裁剪和打包栅格数据
  • 1、数据结构之:树的相关定义和二叉树
  • Java接入阿里云日志服务
  • JAVA构造方法练习
  • 光伏安装在屋顶:安全、环保还是潜在威胁?
  • ithewei的2024年度总结
  • VB.NET CRC32 校验
  • 智能工厂的设计软件 应用场景的一个例子: 为AI聊天工具添加一个知识系统 之19 再次重建 之5 项目文件三大部
  • 《learn_the_architecture_-_generic_interrupt_controller_v3_and_v4__lpisn》学习笔记
  • 内部类 --- (寄生的哲学)
  • MQ消息队列
  • 【GBT32960协议学习系列】GBT 32960协议学习大纲
  • 【Seed-Labs 2.0】Buffer Overflow Attack Lab (Server Version)
  • [读书日志]从零开始学习Chisel 第二篇:Scala的变量与函数(敏捷硬件开发语言Chisel与数字系统设计)
  • 每日一学——自动化工具(Ansible)
  • 【练习】PAT乙1033 旧键盘打字
  • SQL把字符串按逗号分割成记录
  • 19.2、windows安全分析与防护
  • CSP初赛知识学习计划(第一天)