基於BF531 DSP的時鐘及電源

2021-06-04 02:36:21 字數 4339 閱讀 1949

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位的,訪問時候需要注意對齊問題。

位 名稱

描述 15:6 -

未用5:4

csel

核心時鐘選擇

00:cclk=vco/1;

01:cclk=vco/2;

10:cclk=vco/4;

11:cclk=vco/8。

3:0ssel

系統時鐘選擇

0000:保留

1~15:sclk= vco / x

位 名稱 描述

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

- 未用

3stopck

核心時鐘停止

0:核心時鐘正常執行

1:核心時鐘停止 2

- 未用

1pll_off

pll 電源控制

0:開啟pll 電源

1:關斷pll 電源 0

df輸入時鐘二分頻使能

0:輸入時鐘直接連pll;

1:輸入時鐘二分頻後連pll。

位 名  稱

描  述

15:8 -

未使用 7

vstat

電壓調節器指示

0:電壓調節器未達到程式設計電壓

1:電壓調節器達到了程式設計電壓 6

core_idle

核心停止狀態 5

pll_locked

鎖相環鎖住 4

sleep 休眠

3deep_sleep

深度休眠 2

active_plldisabled

啟用模式,pll禁止 1

full_on

所有均使能 0

active_pllenabled

啟用模式,pll使能

當使用者改變鎖相環輸出頻率時,鎖相環需要一段過渡時間,來穩定到新的輸出頻率,pll_lockcnt暫存器所定義的時鐘計數就是設定新的時鐘頻率後,鎖相環鎖定需要的週期數。

1.    動態電源管理控制器

adsp-bf531的動態電源管理控制器(dpmc)與pll結合,使使用者能夠動態地控制處理器的效能和功耗。使用者可以利用dpmc提供下面的功能,對效能和功耗進行控制。

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儲存器的訪問。在休眠模式下,乙個喚醒事件可以使處理器切換到下面兩個模式之一:

(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暫存器各位的含義。

位 名稱

描述 15:9 -

未用 8

wake

rtc 喚醒設定

0:不允許rtc喚醒

1:允許rtc喚醒

7:4vlev

設定核心電壓級別

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:2gain

電壓輸出增益控制,值越大電壓調節速率越快,但是容易過衝

00:5    01:10

10:20   11:50

1:0freq

調節器的頻率,頻率越高需要的電感和電容越小,但是會產生較強的emi

00:旁路/不工作模式

01:333khz

10:667khz

11:1mhz

基於Qt的時鐘設計

時鐘本身使用paintevent函式進行繪製,使用timerevent進行定時重新整理。繪製時鐘,通過paintevent實現,包括 時鐘背景,表盤,刻度線,數字以及時針,分針,秒針。使用timerevent定時重新整理,設定重新整理時間為1000毫秒 1秒 void dialog painteve...

基於DSP的溫度採集系統設計

這學期終於要結束了,對於電子的工科學生來說,嘗試了文科期末考試背書的感覺。dsp這門課還是很有趣的,上課老師講的也很不錯,其中給我們布置了乙個用dsp設計的溫度採集系統,花了半天時間來了解dsp系列晶元的原理,又花了兩天時間在軟體上和文字上,最後迫於期末臨近,不得不拋棄些許質量上的考量,在此共享,不...

編寫基於DSP程式的注意事項

使用c c 語言編寫基於dsp程式的注意事項 1 不影響執行速度的情況下,可以使用c或c c 語言提供的函式庫,也可以自己設計函式。2 要非常謹慎地使用區域性變數,根據自己專案開發的需要,應盡可能多地使用全域性變數和靜態變數。3 一定要非常重視中斷向量表的問題。中斷向量表中的中斷名是任意取定的,ds...