小梅哥和你一起深入學(xué)習(xí)FPGA之DAC驅(qū)動(dòng)
本實(shí)驗(yàn)中,我們使用FPGA來驅(qū)動(dòng)了一片DAC芯片TLC5620,該芯片的特性如下所示:
本文引用地址:http://www.ex-cimer.com/article/278347.htmTLC5620特性:
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 DAC_Dout; /*DAC數(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ù)將作為我們采用FPGA產(chǎn)生TLC5620數(shù)字接口時(shí)鐘的依據(jù)。同時(shí),還有輸入數(shù)據(jù)建立時(shí)間tsu(data-clk)為50ns,即,FPGA數(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ù)器原理
評(píng)論