久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    ADC和DAC芯片使用FPGA調試總結

     西北望msm66g9f 2019-06-21

    AD和DA調試總結

    一、ADC芯片調試

    1.ADC芯片功能理解

    ADC,模數轉換器,功能是把模擬電壓轉換成數字量,把要測的電壓那根線,連接到ADC的用來測電壓的引腳上,ADC模塊就會檢測到這個電壓,并且自動的轉換成一個數字,我們讀出這個數字,就知道這個數字和電壓的對應關系。每個獨立的ADC芯片都有一個分辨率指標,一般分辨率有8位,10位,12位,16位,24位等。8位分辨率的最大值就是255,范圍是0~255,那么16位就是65536,范圍就是0~65535。

    用倆款芯片進行舉例:AD9467和AD9640。

    ADC9467:

    是一款16位的采樣率在250MSPS,芯片結構圖如下。VIN+/VIN-是模擬的輸入,clk+/clk-是對模擬信號進行采樣的時鐘。D15+/D15-~D0+/D0-為轉換出來的數據,DCO+/DCO-為轉換后根據數據出來的時鐘信號。

    芯片根據電壓的轉換進行模擬到數字的轉換。下圖中一個DCO時鐘周期采樣得到16位有效數據,在芯片手冊中可以讀到從AD9467被鎖定的數據信號必須在DCO的上升沿和下降沿雙倍速率的抓取。參看Figure2圖中所畫。

    根據上圖我們在FPGA程序中將一組數據引腳 利用IBUFDS原語將數據進行差分轉單端,在利用IDDR將單端信號打成雙倍數據的結果分發下去,例如引腳0的被分到位號0和8,引腳1被分到位號1和9。但實際0引腳位號應被分到0和1,則在外層模塊 再將數據位置顛倒過來。將8對引腳都按下述代碼轉換。


    將DCO的時鐘信號進行下述代碼處理。進來的DCO差分信號先利用IBUFGDS進行差分轉單端,隨后進行BUFIO原語這個原語是IO驅動專用原語,隨后在進入BUFR原語中,這個原語主要去驅動相鄰BANK內采樣引腳。得到的時鐘信號作為采樣16位數據的跟隨時鐘。

    在將數據和時鐘都進行轉換后將該數據和時鐘存入FIFO,用FPGA內部的相同速率的時鐘進行讀取,為了使數據和FPGA內部時鐘對齊。

    在上段代碼得到的165位信號W_AdcDout進行位置的顛倒。如下代碼

    上述代碼中做了位置的顛倒,在Figure2圖可以看到順序D15 ,D14,那么在原語IDDR中Q1是D15,Q2是D14,那么上述這段代碼就是將順序排序,可以發現在最高位位置處進行了一次取反,原因在下圖。

    上圖中AD9467輸出的數據格式是偏移二進制,我們在FPGA內部使用需要轉換成二進制補碼的形式,由于偏移二進制轉換成二進制補碼的方式就是最高位取反,則上述代碼中最高位取反得到相應的二進制補碼形式,就可以在FPGA中使用了。如果用信號源給AD信號,那么可以看到相應的正弦波信號。

    AD9640:

    ad9640是一款14位模數轉換器,是一款雙端口的AD芯片。

    直接看芯片結構

    上圖中VIN+a/VIN-a和VIN+b/VIN-b是A和B 倆個采樣端口,利用clk+/clk-時鐘進行采樣。

    圖中的clk+/clk-就是對模擬信號進行采樣,CHA/B DATA是A和B倆組轉換后的數據DCOA和DCOB是倆組數據對應的時鐘,在圖中可以看到一個時鐘周期正好可以直接對數據進行采樣。在下圖中可以看到芯片默認的數據輸出就是偏移二進制的形式,那么將最高位取反就可以得到FPGA所能使用的二進制補碼形式。


    根據上面信息可以將AD9640采樣的數據和對用的DCO時鐘存入FIFO,在用同樣速率的時鐘讀取,隨后將最高位取反得到二進制補碼的形式。

    AD采樣有可能有溢出,利用邏輯檢測正數的最大值(16'h7fff)和負數的最小值,在一段時間內出現個數。將檢測次數和溢出次數進行上報,進行調試放大器的值的依據。如下圖,每次使能后開始計數 并且將倆個計數器進行上報。

    2.DAC芯片功能理解

    DAC是數字模擬轉換器,是一種將數字信號轉換為模擬信號的設備(以電流、電壓或電荷的形式)。DAC的位數越高,信號失真就越小。

    AD9122:

    是一款雙通道、 16位、高動態范圍數模轉換器(DAC),提供1200 MSPS采樣速率,可以產生最高達奈奎斯特頻率的多載波。


    圖中D15P~D0p和D15N~D0N是要送到DA的數據,DCI是上述數據所跟隨的時鐘信號。在字節和半字的模式下FRAME是選擇將數據發送至哪一個通道。IOUT1P和IOUT1N是1通道的輸出,IOUT2P和IOUT2N是2通道的輸出。DACCLKP和DACACLKN是內部所要使用的時鐘信號,還可以用REFCLKP和RECLKN時鐘去經過芯片內部的倍頻去供芯片所用。但是DACCLK的頻率值就是REFCLK經過倍頻后的頻率值,要么就是DACCLK直接給過來,要么就是利用REFCLK經過鎖相環倍頻。

    數據格式可以通過內部寄存器進行配置,由于我們FPGA內部DDS產生的數據就是二進制補碼的形式,那么我們在該寄存器的設置時就采用二進制補碼形式。

    對于輸入數據模式有三種樣式,我們選用了字接口模式,從上圖可以看到該數據采用了雙倍速率時鐘下進行發送。一個時鐘周期內將IQ倆路的信號打成DDR形式。那么代碼如下。

    上述模塊中clk_in_int_buf的時鐘是96M 那么上下沿采樣去采D1和D2倆路數據(也是96M),那么得到的data_out_to_pins_predelay的速率就是192M。此時就會發現發給DA的數據格式和下圖一致。上圖中SAME_EDGE是數據在同時出現在數據線上,而OPPOSITE_EDGE表示數據出現在反相沿,D1早于D2半個時鐘周期。上升采D1,下降沿采D2。


    上圖中DCI為96M,DATA為192M

    上述代碼的頂層如下,在輸入32Bit時,將實部和虛部拼接輸入。

    在模塊中例如ODDR的輸入

    DATA_OUT_FROM_DEVICE[pin_count]和DATA_OUT_FROM_DEVICE[sys_w + pin_count]是將實部和虛部的最高位(假設pin_count為7)數據取出打成一個DDR形式的數據再利用OBUFDS將數據打成差分信號給到物理接口上去。同樣對于時鐘的操作也是如此,如下圖。

    其中CLK_IN是96M時鐘,上下沿對0和1采樣,那么得到的clk_fwd_out就是96MHZ

    DAC5672:

    是一款雙端口14位,最大采樣率為275MSPS的模數轉換器。

    圖中DA和DB是倆個端口的數據輸入,CLKA和CLKB是A和B倆個端口對應的時鐘信號。

    從上圖中可以看到該芯片要求輸入數據的格式是偏移二進制形式。

    從上圖可以看出倆個通道的數據在CLKA和CLKB的時鐘下驅動。

    那么代碼部分就是將輸入數據的最高位取反從二進制補碼形式轉換成要求的偏移二進制形式,將數據連接至相應的物理引腳即可。

    總結:

    芯片文檔主要關心芯片的輸入輸出樣式,其次關心數據格式,再次關心數據模式。

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 国产青榴视频在线观看| 99riav国产精品视频| 97人人添人澡人人爽超碰| 午夜精品久久久久成人| 亚洲中文久久久精品无码| 亚洲www永久成人网站| 潮喷失禁大喷水无码| 免费国产VA在线观看视频| 亚洲AV永久无码精品秋霞电影影院 | 12裸体自慰免费观看网站 | 亚洲色欲色欲WWW成人网| 天天日天天谢天天视2019天干 | 国色天香天天影院综合网| 中文字幕成人精品久久不卡| 丰满无码人妻热妇无码区| 在线A毛片免费视频观看| 国产成人精品久久综合| 亚洲中文字幕日产无码成人片| 欧美牲交A欧美牲交| 小嫩批日出水无码视频免费| 亚洲色在线V中文字幕| 国产欧美日韩精品丝袜高跟鞋| 男女18禁啪啪无遮挡激烈| 久久AV无码精品人妻糸列| 色狠狠色噜噜AV一区| 日本欧美大码a在线观看| 老湿机69福利区18禁网站| 国产色无码专区在线观看| 白色丝袜国产在线视频| 精品一区二区中文字幕| 亚洲乱亚洲乱少妇无码| 男女啪啪18禁无遮挡激烈| 国产在线播放专区av| 国产欧美日韩一区二区三区| 久久精品第九区免费观看| 久久精品国产99国产精品澳门| 久久无码人妻丰满熟妇区毛片| 亚洲熟女片嫩草影院| 2020国产欧洲精品网站 | 免费吃奶摸下激烈视频青青网| 99精品热在线在线观看视|