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