?
本應(yīng)用筆記將詳細(xì)說明用于同步多個AD9779器件的數(shù)字?jǐn)?shù)據(jù)輸入的方法。DAC輸出的相位對齊通過設(shè)計保證,精度小于一個DACCLK輸出周期。然而,由于輸出延遲不匹配(室溫下及冷熱溫度下),多個DAC輸出的相位對齊可能存在細(xì)微的不一致,本應(yīng)用筆記不討論這一問題。
同步方案
同步多個AD9779 DAC有兩種方案。在第一種方案中,一個器件用作主器件,其余器件用作從器件。在第二種方案中,所有器件都是從器件。兩種方案具有相同的時序限制,不存在性能權(quán)衡。主/從模式和從模式的框圖分別如圖1和圖2所示。
?
圖1. 主/從SYNC_I/O分配
?
圖2. 從SYNC_I分配
同步詳解
工作中,差分時鐘信號驅(qū)動所有主器件和從器件的AD9779 REFCLK輸入。REFCLK輸入接收器是一個高增益差分放大器,各差分輸入需要接近400 mV的共模輸入電平和至少400 mV p-p的擺幅。
如果選定了主器件,可以使能主器件的差分LVDS輸出信號,該信號稱為SYNC_O+和SYNC_O?.通過寄存器0x07的位5,可以將SYNC_O設(shè)置為在DACCLK的上升沿或下降沿觸發(fā)。SYNC_O還有一個可編程的延遲,可以通過寄存器0x04的位0 (MSB)和寄存器0x05的位[7:4] (LSB)設(shè)置。SYNC_O通過將同步驅(qū)動器使能位(寄存器0x07的位6)置1而使能。SYNC_O信號速度可以是REFCLK速度的整數(shù)除數(shù),通過寄存器0x04的位[3:1]設(shè)置。主器件的REFCLK輸入和SYNC_O信號的可能時序情況如圖3所示。
?
圖3. DACCLK SYNC_O時序
SYNC_O驅(qū)動器和SYNC_I接收器規(guī)定用于LVDS電平(參見AD9779數(shù)據(jù)手冊)。
驅(qū)動多個AD9779器件的CMOS數(shù)字?jǐn)?shù)據(jù)輸入的并行數(shù)字輸入總線在時間上應(yīng)均衡。如果多條數(shù)據(jù)總線不均衡,可以利用AD9779的編程能力,通過DATA_CLOCK_DELAY(寄存器0x04的位[7:4])以大約180 ps的增量偏移各AD9779的鎖存時間。AD9779無法補償單條數(shù)據(jù)總線中包含的位偏斜。
在所有AD9779器件上,SYNC_I、REFCLK輸入與CMOS數(shù)字輸入數(shù)據(jù)之間都存在建立保持關(guān)系。AD9779數(shù)據(jù)手冊的"時序信息"部分說明了這些時序關(guān)系。
SYNC_O和SYNC_O_DELAY的推薦應(yīng)用是利用SYNC_O_DELAY來均衡SYNC_I和REFCLK的時序,確保其時序關(guān)系有效。
SYNC_I具有其自己的可編程延遲,可以通過寄存器0x05的位0 (MSB)和寄存器0x06的位[7:4] (LSB)設(shè)置。SYNC_I_DELAY可以用于均衡不理想或者選用圖2所示電路的應(yīng)用中。SYNC_I通過將同步接收器使能位(寄存器0x07的位7)置1而使能。
表1顯示了增量延遲SYNC_O_DELAY和SYNC_I_DELAY,這些延遲可以通過SPI寄存器設(shè)置。
表 1
?
圖4所示為用于同步多個AD9779的內(nèi)部電路框圖。在可編程的延遲后,SYNC_I信號得到處理,使得對于SYNC_I的每個上升沿,只剩下一個長度為DACCLK周期的脈沖。注意在這種情況下,DACCLK代表AD9779 DAC的內(nèi)部采樣速率時鐘,它可以與REFCLK相同,具體取決于對AD9779的編程。長度為DACCLK周期的該單一脈沖驅(qū)動圖4中的5位分頻器的負(fù)載信號。分頻器延遲邏輯的5信號輸出代表所有插值速率的可能DATACLK信號,包括使能零填充的可能性。通過設(shè)置DACCLK偏移寄存器,圖4中的位1至位4可以DACCLK周期為增量進(jìn)行延遲。5位分頻器的內(nèi)部時序、負(fù)載信號的影響和DACCLK偏移值如圖6所示。
?
圖4. AD9779多DAC同步電路框圖
邊沿檢測器還驅(qū)動誤差檢測電路,圖5更詳細(xì)地顯示了該電路。可編程誤差檢測電路可以用來測量時序裕量,如果超出時序裕量,將產(chǎn)生中斷。
?
圖5. 可編程時序裕量和負(fù)載信號產(chǎn)生詳情
?
圖6. SYNC_I、DACCLK和DATACLK的內(nèi)部時序
圖5更詳細(xì)地顯示了圖4中虛線所示的電路。在電路內(nèi)部,F(xiàn)F5輸入端的信號相互之間必須滿足建立保持要求。FF5輸入端的無效時序可能導(dǎo)致REFCLK與數(shù)字輸入數(shù)據(jù)之間的同步丟失。此點的時序故障通常表現(xiàn)為DAC輸出噪底的提高。對于DACCLK和SYNC_I輸入,F(xiàn)F5輸入端的時序要求變?yōu)榻⒈3忠蟆?/p>
改變同步輸入延遲可以有效移動REFCLK/SYNC_I的有效時序窗口。在實際應(yīng)用中,對于給定的同步輸入延遲,將產(chǎn)生一個具有給定寬度的有效REFCLK/SYNC_I時序窗口。如果時序裕量按1遞增,可以將時序裕量值設(shè)置為SYNC IRQ的設(shè)置值。將時序裕量設(shè)置為此值時,事實上是將SYNC IRQ設(shè)置為0裕量。SYNC IRQ不區(qū)別建立和保持違規(guī)引起的時序誤差。然而,根據(jù)設(shè)計,當(dāng)可編程時序裕量超過建立和保持裕量二者中的較小者時,SYNC IRQ置1.用戶可以通過提高寄存器0x06位[3:0]的值來提高時序裕量。對于0裕量,如果存在任何偏向敏感(建立或保持)特性的漂移,則SYNC IRQ置1.
事實上,DACCLK會對邊沿檢測器的輸出進(jìn)行采樣。邊沿檢測器的輸出是一個邏輯高電平寬度等于一個DACCLK周期的單脈沖。為使負(fù)載信號有效,邊沿檢測器的輸出在圍繞內(nèi)部DACCLK信號上升沿的給定時序窗口內(nèi)必須保持穩(wěn)定(高電平或低電平)。
假設(shè)可編程時序裕量設(shè)為0,并且FF5輸入端的時序有效,則FF3和FF4的Q輸出相同,SYNC IRQ處于復(fù)位狀態(tài)。在同樣的條件下,如果FF5輸入端的時序無效,則FF3和FF4的輸出不同,SYNC IRQ置1.如果FF5輸入端存在有效的時序條件,則必須將可編程時序裕量設(shè)置為大于0的值才能確定時序裕量。
設(shè)計一個在主/從同步配置下使用AD9779的系統(tǒng)時,推薦的程序是在SYNC IRQ置1前找出SYNC_O_DELAY的值(在該值時,可編程時序裕量可以設(shè)置為最大可能的值),這代表最佳的時序和最大的時序裕量。然后,用戶可以降低可編程時序裕量的值。可編程時序裕量的降幅代表SYNC IRQ對漂移的敏感度。
在AD9779可以接收的高DACCLK頻率時,DACCLK和SYNC_I的有效時序窗口可能占DACCLK周期相當(dāng)大的一部分。然而,在較低的DACCLK頻率時,可編程時序裕量的范圍可能不會讓用戶有機會找到無效的時序窗口。這種情況下,用戶可以確信:在正常漂移下,AD9779不會隨溫度漂移到無效時序狀況中。
為確保同步,SYNC_I的最大速率為DATACLK/2,其中DATACLK是AD9779的輸入數(shù)據(jù)速率(不是DACCLK)。圖6給出了應(yīng)用SYNC_I的兩個可能示例。在這兩個例子中,AD9779均處于4×插值模式,SYNC_I以DACCLK/8的速度運行。因此,4×線也是DATACLK輸出信號。在圖6 (a)中,DACCLK偏移值設(shè)為00000.在內(nèi)部SYNC_I延遲(a)信號的上升沿,DACCLK上升沿使所有DATACLK輸出位復(fù)位到0.注意,為在時間(X)設(shè)置4×線,SYNC_I延遲必須發(fā)生在相對于DACCLK的窗口(Y)。如果SYNC_I延遲(a)的發(fā)生時間略微提前或落后于此窗口,4×線的上升沿將提前或滯后一個DACCLK周期。
注意,當(dāng)DACCLK偏移值為00000時,應(yīng)用SYNC_I延遲(a)與4×線的上升沿之間存在一個DACCLK周期的延遲。
在圖6 (b)中,DACCLK偏移值在時間(Z)設(shè)為00010.因此,8×、4×和2×設(shè)為010(與DACCLK偏移位一致)。4×線(DATACLK輸出)的下一個上升沿出現(xiàn)在3個DACCLK周期之后。
如果多個DAC在某一時間窗口內(nèi)接收到SYNC_I脈沖,并且它們?nèi)季哂邢嗤腄ACCLK偏移值,則其DATACLK信號同步。因此,多個AD9779器件的數(shù)據(jù)鎖存同時發(fā)生。
在初始同步期間,2×、4×和8×計數(shù)器位可能不連續(xù)。這就是說,在初始應(yīng)用SYNC_I上升沿時,計數(shù)器可能處于這樣一種狀態(tài),使得同步可能導(dǎo)致其改變多個值。然而,在初始同步完成后,只要SYNC_I的速度保持DATACLK/2或更慢,那么同步脈沖只會在2×、4×和8×位復(fù)位到0時出現(xiàn)。(這似乎是多余的,但在實現(xiàn)同步后,SYNC_I脈沖實際上不必應(yīng)用。)初始脈沖后的周期性SYNC_I脈沖主要用于AD9779器件失去同步這一罕有場合。電源毛刺或不良時鐘脈沖觸發(fā)系統(tǒng)中的某些但不是全部AD9779器件時,可能發(fā)生器件失去同步的情況。
時序規(guī)格。
第一個需要注意的時序規(guī)格是SYNC_I與REFCLK之間的關(guān)系,如圖7所示。從AD9779數(shù)據(jù)手冊可知,所需的時序規(guī)格為:tS = -0.2 ns,tH = 1.0 ns.
?
圖7. REFCLK與SYNC_I的時序關(guān)系
如果DACCLK OFFSET值被設(shè)置為非0值,則圖7所示的DACCLK信號會左移一個DACCLK周期。同樣,如果SYNC_I_DELAY被設(shè)置為非0值,則SYNC_I_DELAY每遞增一次,圖7中的SYNC_I信號就會左移AD9779數(shù)據(jù)手冊給定的SYNC_I_DELAY增量。
第二個重要時序規(guī)格是DATACLK輸出與數(shù)字輸入數(shù)據(jù)之間的時序關(guān)系,該時序信息如圖8所示。當(dāng)DATACLK_DELAY_ENABLE復(fù)位時,這些值有效。如果DATACLK_DELAY_ENABLE置1,則DATACLK發(fā)生延遲(移至圖8右側(cè)),而數(shù)字輸入數(shù)據(jù)的采樣點保持靜止。因此,tS和tH的阻擋窗口相對于DATACLK左移。DATACLK_DELAY_ENABLE置1時,每遞增一次的平均延遲和DATACLK_DELAY的增量值參見AD9779數(shù)據(jù)手冊。
?
圖8. 建立保持、DATACLK到輸入數(shù)據(jù)
建立保持?jǐn)?shù)據(jù)與REFCLK的關(guān)系參見AD9779數(shù)據(jù)手冊,某些應(yīng)用中該數(shù)據(jù)也是必要的。
評論
查看更多