天天看點

就業班學員高速AD采集項目學習筆記(全)

本文為明德揚原創文章,轉載請注明出處!

以下是我在做高速AD項目的調試經驗,現在分享出來,希望可以給大家提供一定的幫助。如果發現sync一直沒有同步上,即一直為低,那麼就需要檢查同步條件,具體操作如下。

1、檢查是時鐘的正确性

1)需要使用示波器測量時鐘的正确性,示波器設定如下

就業班學員高速AD采集項目學習筆記(全)

2)表筆設定,使用前需要自行校準表筆,校準方法這裡不再贅述,不會的同學可以在網上搜尋方法。

就業班學員高速AD采集項目學習筆記(全)

3)測量點

接着對參考時鐘和同步時鐘進行測量,這兩個測量點都是AD9516給AD9144的時鐘,給FPGA的時鐘需要直接測量晶片引腳,比較危險,不建議測。主要測量有無輸出和時鐘頻率是否正确。

AD9516的配置軟體生成的寄存器值不一定正确,部分寄存器的值需要自行修改。之前就遇到過同步時鐘的輸出頻率不對的問題,修改了AD9516的0x19B寄存器的值,問題得到解決。分頻系數=M+N+2,其它寄存器的分頻系數計算方式與此相同。

參考時鐘在開發闆上的位置如下:

就業班學員高速AD采集項目學習筆記(全)

同步時鐘在開發闆上的位置如下:

就業班學員高速AD采集項目學習筆記(全)

2、AD9144的寄存器正确設定

ACE軟體生成出來的值基本是正确的,但是要注意一下幾點:

1)正确設定DAC PLL,如下圖所示,其中Ref_clk = 參考時鐘;Fin = 這個時鐘作用不清楚;FDAC = DAC每通道的實際工作頻率,這個值包含插值。

注意:要點應用

就業班學員高速AD采集項目學習筆記(全)

2)正确設定采樣率如下圖所示,

就業班學員高速AD采集項目學習筆記(全)

因為乘法器輸出的頻率範圍是6-12GHZ,是以DAC的工作頻率要≥375MHZ,如果不夠,可以通過增加插值的方式來提高頻率,同時也可以不用PLL(此方法未測試)

AD9144對寄存器的配置順序有要求,具體順序可以閱讀資料手冊或者看明德揚潘老師的上位機代碼。配置的順序特别注意一個0X300的寄存器,這個寄存器第一次配置要設定為0,第二次配置設定為1

就業班學員高速AD采集項目學習筆記(全)

AD9144的要在AD9516配置完成之後等待一段時間才能開始配置,具體等待輸出時鐘穩定的時間可以看AD9516的資料手冊,程式裡面的延時是調出來的。AD9144的寄存器的配置速度不能太快,不然也會出現無法同步的現象,具體原因未知,程式裡面的延時也是調出來的。

3、IP核設定

公式計算和IP核設定的F,S,K,Lane,等參數是由選擇的DAC工作模式确定的,其他參數如SCR等,需要怎麼設定在AD9144資料手冊裡面第50頁(不同版本的資料手冊頁數可能會有偏差)開始有詳細介紹。        IP核是高電平複位的,這裡要注意:如果複位住了這幾個會一直等于0,并且無法同步

就業班學員高速AD采集項目學習筆記(全)
就業班學員高速AD采集項目學習筆記(全)

4、AXI總線配置

具體配置方法參考明德揚潘老師的文檔,經過一次簡單的測試,這個可以不配置也能正常工作,具體沒有詳細測試。

5、時鐘

IP核的tx_core_clk需要PLL産生一個合适的時鐘并且經過BUFG給JESD204B IP核使用;Drp_clk動态調整時鐘我這裡沒有用到,但是必須給一個時鐘,并且要和IP核裡面設定的頻率相同;AXI時鐘頻率和IP核内設定的相同即可。

6、參數計算

參考明德揚潘老師的文檔,特别注意是要 * 還是 \ 。

舉個例子:20MHZ正弦波,16個點組成一個正弦波,2通道,16bit,插值=2(使用DAC PLL的時候頻率必須≥375MHZ,這例子速率不夠是以要X2)。

1)有效傳輸:20MHZ16個點2通道*16bit=10.24Gbit;

2)實際經過8b/10b編碼的速率是:10.24Gbit * 1.25=12.8Gbit這就是4條Lane總共要傳輸的速率;

3)單通道的DAC采樣率(sample_clock):20MHZ16個點=320MHZ(因為插值=2是以這個值填入ACE的時候要2=640MHZ,計算的時候依舊使用320MHZ);

4)幀頻率(frame_clock):sample_clock / S=320 / 1 = 320MHZ(S值由DAC模式決定);

5)字元頻率(character_clock):frame_clockF=320MHZ1=320MHZ(F值由DAC模式決定);

6)Bit頻率(bit_clock):character_clock10=320MHZ10=3.2Gbit;

7)多幀頻率(multi_frame_clock):frame_clock / K=320MHZ / 32 =10MHZ(K由DAC模式決定);

8)同步時鐘(sysref_clock):multi_frame_clock / R =5MHZ(R=2),AD9144資料手冊規定,同步時鐘的最大值是:fdata / (K * S)  fdata是哪個沒有細看;

9)設定時鐘(device_clock):multi_frame_clock * D =80MHZ(D取8);

10)Ref_clk:每條Lane的速率/ 40 =3.2Gbit / 40 = 80MHZ;

11)device_clock要≥ref_clk,最好是等于;

12)實際上設定的頻率是160MHZ主要是考慮到插值=2,實際上應該設為80MHZ也能工作(未測試)。

7、實作同步

經過上面的設定應該就能同步上了,具體表現為tx_sync信号持續為高電平

8、DAC輸出波形

必須拉高DAC的輸出使能引腳,不然會沒有波形輸出!!!

AD9144是電流型輸出DAC,并且闆子上使用變壓器進行放大,是以,不能輸出直流波形隻能輸出交變的波形,目前已經測試能輸出正弦波。三角波 和 方波可能無法輸出或者輸出失真。

9、DAC的資料映射

用一個示例展示給大家。

2路DAC輸出 4調lane

波形資料是:

30FB

5A81

7640

7FFF

7640

5A81

30FB

CF05

A57F

89C0

8001

89C0

A57F

CF05

輸入到IP核的資料(tx_tdata)00057fc000cfa58900057fc000cfa589

00 05 7f c0

00 cf a5 89

00 05 7f c0

00 cf a5 89

第2路 DAC(順序得看資料手冊)

00        05     7f       c0     lane 3

00        cf     a5       89     lane 2

0x0000  0xcf05  0xa57f  0x89c0

第1路 DAC(順序得看資料手冊)

00       05      7f      c0     lane 1