1.2 时钟、电源、引导模式、事件处理

1.2.1 时钟信号

处理器时钟可用一个外部晶体、一个正弦波输入,或来自一个外部时钟振荡器的缓冲的整形的时钟来驱动。这个外部时钟连接到处理器的CLKIN引脚,又称为输入时钟CLKIN,它应该是一个TTL兼容的信号。处理器的内核时钟(CCLK)和系统时钟(SCLK)是由CLKIN信号得到的,片上锁相环(PLL)能够根据可编程的(1x到63x)乘系数(受限于压控振荡器VCO的最小和最大频率)倍频CLKIN再分频得到CCLK和SCLK,乘系数默认值为10x,所有片上外设都由SCLK驱动。

1.2.2 动态电源管理

ADSP-BF561提供了4种操作模式,每种都有不同的性能和功耗。动态电源管理提供了控制功能,能够动态地改变处理器内核的电压以进一步降低功耗。控制每个外设的时钟也能降低功耗。

全速运行操作模式(最高性能) 全速运行模式下PLL是使能的且不被旁路,提供了最高的操作频率,两个内核和使能的外设都全速运行,这是正常的执行状态,有着最高性能。

活动操作模式(中等程度的电源节省) 活动模式下PLL是可以使能的,但被旁路了,CCLK和SCLK工作在CLKIN频率上。可以进行合理配置的L1存储器的DMA访问,可以通过PLL控制寄存器(PLL_CTL)禁止PLL。

休眠操作模式(高度的电源节省) 休眠模式下禁止了CCLK,不支持L1存储器DMA访问,但PLL和SCLK继续工作。可用一个外部事件唤醒处理器并使处理器检测PLL_CTL里的旁路位(BYPASS)的值,如果没有旁路则处理器将过渡到全速运行模式,否则处理器将过渡到活动模式。

深度休眠模式(最大限度的电源节省) 深度休眠模式禁止了两个内核的CCLK,以及所有同步系统的SCLK,最大限度地节省了功耗。这种节电模式只能用复位中断退出,根据BYPASS引脚的状态,复位中断可使处理器过渡到全速运行模式或活动模式。

冬眠状态 为了获得最低限度的功率消耗,冬眠状态允许关闭内部电源(VDDINT),但保持I/O电源(VDDEXT)运行。它不是一种严格的操作模式,但仍视为一种工作模式,它与片上开关电源控制器有关。

电压调节 ADSP-BF561 提供了一个片上电压调节器,能够根据外部的2.25~3.6V电源产生内部电压(0.8~1.2V)。如图1-3所示为通常所要求的外部元件以完成电源管理系统。电压调节器控制内部逻辑电压级别,是用电压调节器控制寄存器(VR_CTL)可编程实现的,增量为50mV。为降低备用电源消耗,内部电压调节器能编程撤销内核电源供应而保持I/O电源供应,这种状态下VDDEXT仍被供应,但消除了外部缓冲的需要。也能根据用户需要来禁止和旁路电压调节器。

图1-3 电压调节器电路

1.2.3 引导模式

ADSP-BF561芯片复位后有3种机制来自动加载内部的L1指令存储器。

(1)从外部8/16-bit Flash存储器引导。位于Boot ROM空间里的8/16-bit Flash引导程序是根据异步存储器组0来设置的,是为可能的最慢的设备准备的(3个周期的保持时间、15个周期的R/W访问时间、4个周期的建立时间)。

(2)从16-bit外部存储器运行。从地址0x20000000开始按16-bit打包运行,这种模式下Boot ROM是旁路的,所有配置的设置也是为可能的最慢的设备准备的。

(3)从SPI串行EEPROM(16或24-bit可寻址)存储器引导。SPI用PF2输出引脚来选择一个单独的SPI EEPROM设备,发送一个读指令到地址0x0000处,并开始将数据按时钟传入L1指令存储器的起始位置。

(4)从SPI主机引导(从模式)。用户定义一个可编程标志引脚作为ADSP-BF561处理器的输出、SPI主机设备的输入。该引脚允许处理器在引导过程的一定阶段时暂缓主机设备发送信息。该引脚撤销时,主机又可以继续向处理器发送字节。

对每一种引导模式都需要用引导加载协议把程序和数据块从外部存储器设备传送到指定的存储器里,可以加载多个存储块。一旦加载了所有存储块,内核A开始从L1指令SRAM的开始位置(0xFFA00000)执行程序;内核B保持暂缓,直到一个确定的寄存器位清零了才开始从0xFF600000执行程序。软件复位时将复位配置寄存器的位4置位,以旁路正常的引导序列,这种情况下处理器直接跳到L1指令存储器的起始位置。

1.2.4 事件处理

ADSP-BF561每个内核都用一个事件控制器来处理到内核的所有异步和同步事件,处理事件的方式既可以是嵌套的,也可以按优先级顺序执行。事件控制器支持如下5种不同类型的事件:

(1)仿真。仿真事件使处理器进入仿真模式,允许通过JTAG接口管理和控制处理器。

(2)复位。复位事件将复位处理器。

(3)不可屏蔽中断。不可屏蔽中断事件是由软件看门狗定时器或不可屏蔽中断(NMI)输入信号引发的,NMI可作为一种断电指示来启动系统的秩序关闭。

(4)异常。数据对准冲突以及一些没有定义的指令都会引起异常事件,它们与程序流程是同步的,即在指令完成之前就产生了异常。

(5)中断。中断和程序流程是异步的,是由输入引脚、计时器及其他外部设备引起的。

每个事件都有一个关联的寄存器来存储返回地址和一个相应的从事件返回的指令。当一个事件被触发时处理器的状态被存储到监控堆栈中。每个内核的事件控制器分为两个阶段,分别由内核事件控制器(CEC)和系统中断控制器(SIC)来处理所有的系统事件,包括事件的优先级及其控制。从概念上理解,就是外部设备产生中断先到达SIC,然后直接进入CEC的通用中断中。

内核事件控制器 除了专用中断和异常事件,CEC还支持9 个通用中断(IVG15-7),这些通用中断中两个优先级最低的中断(IVG15-14)推荐预留给软件中断,其余7个高优先级通用中断用于支持外部设备。

系统中断控制器 来自于外设中断源的事件很多,SIC提供了这些事件到CEC的优先化的通用中断输入之间的映射关系以及路径选择。处理器提供了一套默认的映射关系,但可以通过系统中断分配寄存器(SIC_IARx)来改变中断事件的映射关系和优先级。