打印

ADI的SHARC系列处理器的内核PLL管理

[复制链接]
607|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Peonys|  楼主 | 2017-11-13 10:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ADI的SHARC系列处理器的内核PLL管理


SHARC处理器使用PLL来获得比时钟源(CLKIN)更高频率的时钟。PLL产生处理器的外设、处理器内核和内部存储器所需的时钟。在硬件上电期间,处理器的CLK_CFG1-0引脚选择处理器内核时钟(CCLK)与CLKIN之比,通过开关来选择比值,比值包括6:1,16:1,32:1。电源管理控制寄存器(PMCTL)可实现由软件对PLL的动态编程。PMCTL用于选择硬件引脚不支持的CCLK与CLKIN的比值。 PLL的框图如图所示:

        它包括单输入分频器、乘法器和一个产生CCLK的分频器。
        对于ADSP-2136x和ADSP-2137x处理器来说PCLK是CCLK的一半。

        下面介绍一下PLL编程步骤:
        在设置了乘法器的值之后,仅使用乘法器对PLL编程时,应用程序应将PLL设置为旁路模式并等待PLL锁定在新频率。在旁路模式,处理器内核运行频率为CLKIN。PLL在4096个CCLK周期(在本例是CLKIN周期)之后才能锁定于编程频率。一旦PLL锁定,应将旁路模式取消。
        仅使用分频器对PLL编程时,分频器的值通过PLLDx位设置,在同一指令中用DIVEN位将分频器使能。
        同时使用分频器和乘法器对PLL进行编程有两种方法:

        (1)方法一
        设置PLL乘法器和分频器的值,并将DIVEN位设置为1使能分频器;
        一个CCLK时钟周期之后,通过设置旁路位(PLLBP)为1将PLL设置为旁路模式。在对PMCTL寄存器进行写操作之前将DIVEN位清除;
        在旁路状态等待最少4096个周期直到PLL锁定;
        通过清除旁路位(PLLBP=0)撤销PLL旁路模式。在对PMCTL寄存器进行写操作之前确保已经清除了DIVEN位。

        (2)方法二
        设置PLL乘法器和分频器的值并将旁路位(PLLBP)设置为1使PLL处于旁路状态;
        在旁路状态等待最少4096个周期直到PLL锁定;
        通过清除旁路位(PLLBP=0)撤销PLL旁路模式;
        等待一个CCLK周期;
        通过设置DIVEN位使能分频器。
        对PMCTL寄存器编程时需要考虑下面几个问题:
        使用乘法器和分频器对PLL编程时,在同一个CCLK周期不要同时对DIVEN和PLLBP位编程。对它们编程时至少间隔一个CCLK周期。
        在用户应用程序中,根据下述条件选择PLL乘法器的值:
        如果输入分频器未使能(INDIV=0),CLKIN和PLLM的乘积不要超过400MHz;
        如果输入分频器使能了(INDIV=1),CLKIN和PLLM的乘积不要超过800MHz.
        最大的VCO频率不能超过800MHz.VCO频率按照下面的式子计算:
        VCO频率计算:fVCO = 2 * PLLM * fINPUT
        CCLK频率计算:fCCLK = (2 * PLLM * fINPUT) / (2 * PLLN)
        式中:fVCO=VCO频率,fCCLK =CCLK频率;PLLM=乘法器编程值;PLLN=分频器编程值;fINPUT =PLL输入频率;fINPUT=CLKIN(当禁用输入分频器时),或CLKIN/2(当使能输入分频器时)。
        (3)将PLL设置为旁路模式(通过将PLLBP位设置为1)或者取消PLL的旁路模式(清除PLLBP位)过程中在写PMCTL寄存器时要清除DIVEN位。
        (4)在PMCTL寄存器中设置CCLK与SDCLK之比时要对DIVEN位置位。
        PLL用于产生内核时钟和外设时钟。如果对PLL编程错误,PLL不会锁定在需要的频率上。这会使处理器内核和外设的运行出现异常。







相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

640

主题

901

帖子

5

粉丝