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...