0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ARM内核及8路PFD频率怎么配置

汽车电子技术 来源:程序猿搬砖 作者:坏人 2023-03-02 16:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

芯片要工作就需要读取指令,解析指令然后运行指令,需要在某种固定的周期性运动的设备驱动下有条不紊的进行,它就是频率

默认情况下I.MX6ULL工作在默认频率下(396MHz),工作频率相对保守。为了更好发挥I.MX6ULL的性能,需要对它的时钟频率进行配置。I.MX6ULL开发手册标注的内核最高频率支持528MHz,实际上它还可以超频到696MHz。

配置内核频率

I.MX6ULL支持24MHz32.768kHz两个OSC,32.768为低频率,目前使用的所有时钟来源都是24MHz

图片从上面这张图可以看出,pll1_sw_clk是进入到内核频率的,通过CCSRpll1_sw_clk_sel来选择到底使用哪一路作为最终进入ARM内核频率。step_clk在这里通过CCSRstep_sel选择为与OSC相同频率24MHz,它主要是用于在配置pll1_main_clk时的备用频率使用。

  • 读取CCSR的第2位值,如果是0表示当前选择的是pll1_main_clk,需要将它切换到step_clk,同时将step_clk选择成24MHz频率
/// CCM->CCSR的第二位判断是否选择的是pll1_main_clk(值是0)
if (((CCM->CCSR >> 2) & 0x1) == 0)
{
    /// 需要先切换时钟源到24MHz晶振
    CCM->CCSR &= ~(1 << 8);
    CCM->CCSR |= (1 << 2);
}
  • 配置CCM_ANALOG_PLL_ARMn寄存器

    /// bit 13: enable register
      /// 配置(696MHz)
      CCM_ANALOG->PLL_ARM = (1 << 13) | (58);
      /// 分频器配置为1
      CCM->CACRR = 0;
      /// 将时钟源切换回CCSR的第二位判断是否选择的是pll1_main_clk
      CCM->CCSR &= ~(1 << 2);
    

    这里配置了一个超频数值696MHz

    8路FPD配置

    • BYPASS_CLK_ SRC(15 - 14)配置成0x0,即选择使用24MHz作为时钟源
    • ENABLE(13)配置成1即使能时钟频率输出
    • DIV_SELECT按公式(PLL output frequency = Fref * DIV_SEL/2)配置
    • CCMCACRR的1-3位配置分频器的值
    • 配置完成切换回pll1_main_clk

到目前为止,会使用到的PLL除了内核以外还有PLL2PLL3PLL2PLL3是固定的频率,但他们都各分出去了4路FPD是可以灵活配置的。图片上面红色框里面看到的就是。分别有两个寄存器控制,PLL2CCM_ANALOG_PFD_528n, PLL3CCM_ANALOG_PFD_480n。配置的公式是 528(480) * 18 / 实际频率,具体配置代码如下:

/// 配置PPL2(528MHz)的PFD0 ~ FPD3
int reg = CCM_ANALOG->PFD_528;
/// PFD0: 352MHz
reg |= (27 << 0);
/// PFD1: 594MHz
reg |= (16 << 8);
/// PFD2: 396MHz
reg |= (24 << 16);
/// PFD3: 297MHz
reg |= (32 << 24);
CCM_ANALOG->PFD_528 = reg;
/// 配置PPL3(480MHz)的PFD0 ~ FPD3
reg = CCM_ANALOG->PFD_480;
/// PFD0: 720MHz
reg |= (12 << 0);
/// PFD1: 540MHz
reg |= (16 << 8);
/// PFD2: 508.2MHz
reg |= (17 << 16);
// PFD3: 454.7MHz
reg |= (19 << 24);
CCM_ANALOG->PFD_480 = reg;

配置完成后,烧写后可看到实验07中的LED0BEEP闪灯与响声的频率更高了,这是由于内核工作在了更高的频率。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    462

    文章

    53539

    浏览量

    459175
  • 频率
    +关注

    关注

    4

    文章

    1581

    浏览量

    61724
  • 指令
    +关注

    关注

    1

    文章

    617

    浏览量

    37301
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    arm内核结构

    ARM内核结构有4个功能模块T、D、M、I,可供生产厂商根据不同用户的要求来配置生产ARM内核结构芯片。本文详细讲解了什么是
    发表于 01-03 13:45 1.1w次阅读

    赛灵思发布1GHz频率ARM内核的FPGA

    美国赛灵思(Xilinx)发布了配备ARM处理器内核“Cortex-A9 MPCore”的FPGA系列“Zynq-7000 Extensible Processing Platform(EPP)”的新产品“Zynq-7045”。其ARM
    发表于 08-17 08:51 8584次阅读

    48 第14.3讲 主频和时钟配置实验-8PLL和8PFD时钟设置 - 第1节

    电路程序函数代码时钟配置
    充八万
    发布于 :2023年08月17日 03:52:26

    48 第14.3讲 主频和时钟配置实验-8PLL和8PFD时钟设置 - 第3节

    电路程序函数代码时钟配置
    充八万
    发布于 :2023年08月17日 03:54:08

    48 第14.3讲 主频和时钟配置实验-8PLL和8PFD时钟设置 - 第4节

    电路程序函数代码时钟配置
    充八万
    发布于 :2023年08月17日 03:54:59

    ADRF6850 PFD频率泄露frequence leakage

    当我使用ADRF6850时,发现IQ输出信号中包含有如图所示的毛刺。 经验证,这些毛刺之间的频率间隔正好是PFD频率。 当我通过程序改变PFD
    发表于 09-18 11:23

    「正点原子Linux连载」第十六章主频和时钟配置实验

    ,PLL4~PLL6都是针对特殊外设的,用到的时候再设置。因此,接下来重点就是设置PLL2和PLL3的各自4PFD,NXP推荐的这8PFD
    发表于 12-23 11:18

    对于输入频率130MHz左右的pll设计,应该选择哪种结构的PFD比较好?

    请教各位大虾:小弟刚开始学习pll设计不久 请问对于输入频率130MHz左右 应该选择哪种结构的PFD比较好?TSPC的吗?谢谢了
    发表于 06-24 07:09

    I.MX6ULL时钟树的相关资料推荐

    声称7PLL,每一又升成PFD_PLL。​配置详见时钟树。还要学会看RM手册进行配置频率,具
    发表于 01-18 09:05

    如何对RK3399 CPU arm64的内核进行配置

    如何对RK3399 CPU arm64的内核进行配置
    发表于 02-16 06:20

    XN31202双PLL频率合成器

    XN31202是一种高性能1.3GHz的双PLL频率合成器,芯片内部集成了两双模前置分频器和可编程分频器。具有无死区PFD、可选择电荷泵电流、节电模式、锁相检测输出、环路滤波时间常
    发表于 03-22 14:12 65次下载

    基于Arm的Linux内核编译指导

    基于Arm的Linux内核编译指导
    发表于 10-30 10:13 15次下载
    基于<b class='flag-5'>Arm</b>的Linux<b class='flag-5'>内核</b>编译指导

    arm内核全解析_arm内核体系结构分类介绍

    本文介绍了arm内核的特点、体系结构、分类,以及对两种典型的arm内核进行了详细介绍说明。
    发表于 12-29 15:49 2w次阅读
    <b class='flag-5'>arm</b><b class='flag-5'>内核</b>全解析_<b class='flag-5'>arm</b><b class='flag-5'>内核</b>体系结构分类介绍

    AN-1347:在高PFD频率下操作ADF4360-7

    AN-1347:在高PFD频率下操作ADF4360-7
    发表于 04-27 18:42 3次下载
    AN-1347:在高<b class='flag-5'>PFD</b><b class='flag-5'>频率</b>下操作ADF4360-7

    32位ARM®Cortex®-M0+内核单片机XL32F003系列MCU

    XL32F003系列微控制器采用高性能的32位ARM®Cortex®-M0+内核,宽电压工作范围的MCU。嵌入高 达64 Kbytes flash和8 Kbytes SRAM存储器,最高工作
    的头像 发表于 11-09 15:44 3174次阅读
    32位<b class='flag-5'>ARM</b>®Cortex®-M0+<b class='flag-5'>内核</b>单片机XL32F003系列MCU