<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > 小梅哥和你一起深入學(xué)習(xí)FPGA之DAC驅(qū)動(dòng)

          小梅哥和你一起深入學(xué)習(xí)FPGA之DAC驅(qū)動(dòng)

          作者: 時(shí)間:2015-08-05 來源:網(wǎng)絡(luò) 收藏

            本實(shí)驗(yàn)中,我們使用來驅(qū)動(dòng)了一片芯片TLC5620,該芯片的特性如下所示:

          本文引用地址:http://www.ex-cimer.com/article/278347.htm

            TLC5620特性:

            4路8位電壓輸出;

            單電源5V供電;

            串行接口;

            參考電壓輸入高阻;

            可編程的1次或2次輸出范圍;

            同時(shí)更新的能力;

            內(nèi)部自帶上電復(fù)位功能;

            低功耗;

            半緩沖輸出。

            小梅哥設(shè)計(jì)的該芯片的驅(qū)動(dòng)模塊的接口如下所示:

            

           

            各個(gè)端口定義如下:

            以下是代碼片段:

            input Clk;

            input Rst_n;

            input Do_DA; /*使能單次轉(zhuǎn)換*/

            input [10:0]Data;/*{Addr1,Addr0,Range,Data_bit[7:0]}*/

            output reg _Dout; /*數(shù)據(jù)線*/

            output reg DAC_Clk; /*DAC時(shí)鐘線,最高速度1M*/

            output reg DAC_LDAC; /**/

            output reg DAC_LOAD; /**/

            output reg DA_Done; /*單次轉(zhuǎn)換完成標(biāo)志信號(hào)*/

            該芯片提供了類似于SPI的數(shù)字接口,因此,我們只需要使用該接口與芯片進(jìn)行通信,再配合LOAD和LDAC兩個(gè)控制線,即可實(shí)現(xiàn)對(duì)該DAC芯片的控制。TLC5620一次轉(zhuǎn)換的操作時(shí)序如下:

            

           

            圖1 TLC5620單次轉(zhuǎn)換時(shí)序圖

            TLC5620每次寫入的數(shù)據(jù)為11位,其中前兩位為DAC選擇位A1、A0,通過不同的組合可以選擇不同通道的DAC,具體分配為:

            

           

            表1 DAC通道選擇位與對(duì)應(yīng)通道關(guān)系

            第三位是電壓輸出增益位,0代表不變,1代表兩倍,當(dāng)設(shè)定參考電壓為2.5V時(shí),取這一位為1就可以得到最高5V的輸出電壓。后面8位是數(shù)據(jù)位,其中第四位是數(shù)據(jù)的最高位。對(duì)于TLC5620的輸出電壓公式是:

            VO=VREF ×CODE/256×(1+RNG)

            VREF是參考電壓,CODE是待轉(zhuǎn)換的8位二進(jìn)制代碼,RNG是增益倍數(shù)。

            寫入數(shù)據(jù)時(shí),首先LOAD和LDAC寫高電平,這樣在CLK的每個(gè)下降沿寫入的每位數(shù)據(jù)被鎖存到DATA端,當(dāng)11位數(shù)據(jù)傳送完畢后,拉低LOAD,芯片根據(jù)前兩位數(shù)據(jù),判斷是哪一路DAC通道,然后將8位數(shù)據(jù)移入相應(yīng)的通道,進(jìn)行DA轉(zhuǎn)換,這時(shí)拉低LDAC,再拉高LDAC,就可以再下次轉(zhuǎn)化之前,保持此次的模擬輸出。

            TLC5620正常工作時(shí)的具體電壓和時(shí)間參數(shù)如下表所示,通過該表,可知該芯片串行數(shù)字接口的時(shí)鐘信號(hào)(CLK)最高為1MHz。該參數(shù)將作為我們采用產(chǎn)生TLC5620數(shù)字接口時(shí)鐘的依據(jù)。同時(shí),還有輸入數(shù)據(jù)建立時(shí)間tsu(data-clk)為50ns,即,數(shù)據(jù)送出,到能夠被TLC5620正常讀取,至少需要50ns,因此FPGA單位數(shù)據(jù)輸出保持時(shí)間不得少于50ns。tv(data-clk)為時(shí)鐘下降沿到來后多久時(shí)間數(shù)據(jù)線上的數(shù)據(jù)才能被芯片內(nèi)部采集,該時(shí)間確定了,時(shí)鐘下降沿出現(xiàn)多久后,數(shù)據(jù)線上的數(shù)據(jù)可以被更新。tsu(LOAD-LDAC)為L(zhǎng)OAD的上升沿到LDAC下降沿的建立時(shí)間,這里最小為0ns,因此忽略,即兩者同時(shí)發(fā)生即可。tw(LDAC)為L(zhǎng)DAC低電平所需的最短時(shí)間,為250ns。

            

            表2 TLC5620關(guān)鍵參數(shù)

            通過對(duì)TLC5620一次完整轉(zhuǎn)換的時(shí)序進(jìn)行分析,列出以下序列機(jī)對(duì)應(yīng)的序列點(diǎn):該序列機(jī)總共包含26個(gè)點(diǎn),其中,當(dāng)Cnt1=0(ST0)時(shí),為空閑態(tài),ST1—ST22為數(shù)據(jù)發(fā)送狀態(tài),ST23時(shí)拉低LOAD,即將數(shù)據(jù)加載入對(duì)應(yīng)通道的DAC中,ST24時(shí)釋放LOAD,同時(shí)拉低LDAC,以產(chǎn)生LDAC的下降沿,將對(duì)應(yīng)通道的模擬輸出保持住。ST25拉高LDAC,完成一次轉(zhuǎn)換。

            表3 TLC5620單次轉(zhuǎn)換控制序列機(jī)

            序列機(jī)的計(jì)數(shù)器計(jì)數(shù)條件如下

            表4 TLC5620序列機(jī)計(jì)數(shù)器計(jì)數(shù)條件

          fpga相關(guān)文章:fpga是什么


          路由器相關(guān)文章:路由器工作原理


          路由器相關(guān)文章:路由器工作原理


          塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理

          上一頁 1 2 下一頁

          關(guān)鍵詞: FPGA DAC

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();