热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

【黑金动力社区】【bf531体验板教程】第五章时钟及电源(七)

一、时钟及锁相环ADSP-BF531处理器使用来自外部晶体的正弦输入,或经过缓冲整形的外部时钟。如果使用外部时钟,该时钟信号应是TTL兼容信号,而且正常运行时,此时钟不能停止

一、 时钟及锁相环

        ADSP-BF531处理器使用来自外部晶体的正弦输入,或经过缓冲整形的外部时钟。如果使用外部时钟,该时钟信号应是TTL兼容信号,而且正常运行时,此时钟不能停止、改变、或低于指定的频率。此外部时钟应连到DSP的CLKIN引脚,且XTAL引脚必须悬空。

        由于ADSP-BF531处理器有片内振荡电路,所以也可以使用外部晶振。外部晶振应当连接到CLKIN和XTAL引脚,并与两个电容相连。电容值取决于晶振的类型,应当由晶振厂商提供。内核时钟(CCLK)和系统外设时钟(SCLK)可由输入时钟(CLKIN)信号获得,如图5-1所示。用户通过设置PLL_CTL中的倍频因子,可使片上PLL倍频CLKIN信号, CLKIN与倍频因子的乘积为PLL输出(VCO)的中间时钟,内核时钟(CCLK)和系统外设时钟(SCLK)就是由VCO产生。

 

图5-1 PLL 结构框图

        用户可以通过四个MMR寄存器来操作或者读取PLL的状态。分别为分频寄存器(PLL_DIV),PLL控制寄存器(PLL_CTL),PLL状态寄存器(PLL_STAT)和PLL锁定计数寄存器(PLL_LOCKCNT)。四个寄存器都是16位的,访问时候需要注意对齐问题。

表5-1 PLL_DIV(地址:0XFFC0 0004 复位值0x0005)

名称

描述

15:6

-

未用

5:4

CSEL

内核时钟选择

00:CCLK=VCO/1;

01:CCLK=VCO/2;

10:CCLK=VCO/4;

11:CCLK=VCO/8。

3:0

SSEL

系统时钟选择

0000:保留

1~15:SCLK= VCO / X

 

表5-2 PLL_CTL(地址:0XFFC0 0000 复位值0x1400)

名称

描述

15

SPORT_HYS

添加250mV滞后电压到SPORT 输入脚

14:9

MSEL

VCO倍频因子

0:64倍频

N=1~63:N倍频

8

BYPASS

跳过PLL

0:不跳过PLL(PLL有效)

1:跳过 PLL

7

OUT_DELAY

输出延迟

0:输出不延迟

1:PLL 到外部时钟输出,添加200ps的延迟

6

IN_DELAY

输入延迟

5

PDWM

掉电模式

0:所有内部时钟掉电

1:所有内部时钟开启

4

-

未用

3

STOPCK

内核时钟停止

0:内核时钟正常运行

1:内核时钟停止

2

-

未用

1

PLL_OFF

PLL 电源控制

0:开启PLL 电源

1:关断PLL 电源

0

DF

输入时钟二分频使能

0:输入时钟直接连PLL;

1:输入时钟二分频后连PLL。

 

表5-3 PLL_STAT(地址:0XFFC0 000C 复位值0x00A2 只读)

名  称

描  述

15:8

-

未使用

7

VSTAT

电压调节器指示

0:电压调节器未达到编程电压

1:电压调节器达到了编程电压

6

CORE_IDLE

内核停止状态

5

PLL_LOCKED

锁相环锁住

4

SLEEP

休眠

3

DEEP_SLEEP

深度休眠

2

ACTIVE_PLLDISABLED

激活模式,PLL禁止

1

FULL_ON

所有均使能

0

ACTIVE_PLLENABLED

激活模式,PLL使能

当用户改变锁相环输出频率时,锁相环需要一段过渡时间,来稳定到新的输出频率,PLL_LOCKCNT寄存器所定义的时钟计数就是设置新的时钟频率后,锁相环锁定需要的周期数。

 

二、 电源管理


1.    动态电源管理控制器

        ADSP-BF531的动态电源管理控制器(DPMC)与PLL结合,使用户能够动态地控制处理器的性能和功耗。用户可以利用DPMC提供下面的功能,对性能和功耗进行控制。

  • 多种运行模式——ADSP-BF531有4种不同的运行模式,每个模式的性能和功耗都不同;
  • 外设时钟——用户可以控制外设时钟的关断和接通,当一个外设处于空闲或者未被使用时,可以节省功耗;
  • 电压控制——ADSP-BF531提供一个片上电压调节器,利用buck技术,它能够操纵Blackfin处理器内核的内部电压,从而进一步降低功耗。

 

2.    运行模式

        ADSP-BF531有4种运行模式,每种模式有不同的性能/功耗特性,此外,动态功率管理有动态地改变处理器内核供电电压的控制功能,进一步降低功耗。控制每一个ADSP-BF531处理器外设的时钟也能降低功耗,表5-4总结了各种模式的运行特性。

表5-4 运行模式

运行模式

省电

PLL状态

PLL旁路

CCLK

SCLK

允许DMA访问

全速

使能

使能

使能

L1

活动

使能

使能

使能

L1

休眠

使能

禁止

使能

 

深度休眠

最大

禁止 

 

禁止

禁止

 

(1)  全速模式

        全速模式是Blackfin的最高性能模式。在该模式中,PLL被全能并且不被旁路,该模式是Blackfin正常执行时的状态,处理器和所有被使能的外设以全速运行。在该模式下,输入时钟(CLKIN)对内核时钟(CCLK)的频率比不能被改变。DMA存取可用于L1存储器,处理器可以从全速模式切换到活动、休眠或深度休眠模式。

(2)  活动模式

        在此模式下,PLL被使能,但被旁路。因为PLL被旁路,处理器内核时钟(CCLK)和系统时钟(SCLK)运行于输入时钟(CLKIN)频率下。在此模式下,CLKIN到CCLK倍频可变,直到进入全速运行模式。通过适当地配置L1存储器,可以进行DMA访问。

        在激活模式下,通过PLL控制寄存器(PLL_CTL)能够禁止PLL。如果被禁止,在转换到全速或休眠模式前必须被使能。

(3)  休眠模式

        休眠运行模式通过关闭处理器内核(CCLK)的时钟来降低功耗,然而PLL和系统时钟(SCLK)仍在运行。一般通过外部事件或RTC活动来唤醒处理器。此模式下唤醒的出现将会使处理器检查PLL控制寄存器(PLL_CTL)中旁路位(BYPASS)的值。如果旁路位被关闭,处理器将切换到全速运行模式。如果旁路位使能,处理器将切换到活动运行模式。

        休眠模式时,系统DMA不支持对L1存储器的访问。在休眠模式下,一个唤醒事件可以使处理器切换到下面两个模式之一:

  • 如果PLL_CTL中的BYPASS位被置位,则进行活动模式;
  • 如果PLL_CTL中的BYPASS位被清零,则进行全速模式。

(4)  深度休眠模式

        深度休眠模式通过停止PLL、CCLK和SCLK,达到最省电效果。在该方式中,除了实时时钟(RTC)外,处理器内核以及所有其他外设都被禁止。该模式下不支持DMA。

        在深度休眠模式中,DEEP_SLEEP输出管脚输出有效电平。深度休眠方式只能被RTC中断或硬件复位事件激活。一个RTC中断使处理器切换到活动模式,一次硬件复位启动硬件复位序列。在深度休眠方式中,SDRAM的定时信号被关闭。在进入深度休眠方式之前,软件应该保证将SDRAM中重要信息转换到其他存储器中。

 

3.    片上内核电压调节器

        处理器内部提供了一个开关模式电压调节器,只需要几个外部元件,就可以组成一个电压可以设置的动态电源模块,为内核供电。这样,我们就可以根据不同的处理能力需求,来控制内核电压,达到按需供电的目的。以节约能量。如图5-2所示,图中VROUT为内部调节器PWM 输出,与PMOS、蓄能电感、肖特基二极管以及几个相关的电容,组成典型的BUCK电路。

        当然,在不需要功率控制的情况下,这一部分电路也可以省略,可以用一个固定输出的电路代替。MS531第一版就是采用SPX3819-1.2固定输出的LDO作为内核电源的。VCCINT的范围为0.85~1.30V,不同电压,能支持的最高频率也是不同的。如果要想更好的性能 ,就得保证较高的内核电压。

 

图5-2 电源调节器外部结构

        VR_CTL 寄存器控制着所有的偏上内核电压调节参数,写入VR_CTL后,将会导致锁相环重新锁定。表5-5为VR_CTL寄存器各位的含义。

表5-5 VR_CTL(地址:0XFFC0 0008   复位值0x00DB)

名称

描述

15:9

-

未用

8

WAKE

RTC 唤醒设置

0:不允许RTC唤醒

1:允许RTC唤醒

7:4

VLEV

设定内核电压级别

0000-0101:保留

0110:0.85V

0111:0.90V

1000:0.95V

1001:1.00V

1010:1.05V

1011:1.10V

1100:1.15V

1101:1.20V

1110:1.25V

1111:1.30V

3:2

GAIN

电压输出增益控制,值越大电压调节速率越快,但是容易过冲

00:5    01:10

10:20   11:50

1:0

FREQ

调节器的频率,频率越高需要的电感和电容越小,但是会产生较强的EMI

00:旁路/不工作模式

01:333kHz

10:667kHz

11:1MHz

 

附录:

MS531-II 板子靓照


推荐阅读
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了在Pygame中使用矩形对表面进行涂色的方法。通过查阅Pygame文档中的blit函数,可以了解到如何将一个表面的特定部分复制到另一个表面的指定位置上。具体的解决方法和参数说明在文中都有详细说明。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了如何将CIM_DateTime解析为.Net DateTime,并分享了解析过程中可能遇到的问题和解决方法。通过使用DateTime.ParseExact方法和适当的格式字符串,可以成功解析CIM_DateTime字符串。同时还提供了关于WMI和字符串格式的相关信息。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了多因子选股模型在实际中的构建步骤,包括风险源分析、因子筛选和体系构建,并进行了模拟实证回测。在风险源分析中,从宏观、行业、公司和特殊因素四个角度分析了影响资产价格的因素。具体包括宏观经济运行和宏经济政策对证券市场的影响,以及行业类型、行业生命周期和行业政策对股票价格的影响。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
author-avatar
非策不劃小子白
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有