0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Vivado系列之TCL549驅(qū)動(dòng)設(shè)計(jì)

FPGA技術(shù)江湖 ? 來(lái)源:FPGA技術(shù)江湖 ? 2023-07-27 09:25 ? 次閱讀

系統(tǒng)性的掌握技術(shù)開(kāi)發(fā)以及相關(guān)要求,對(duì)個(gè)人就業(yè)以及職業(yè)發(fā)展都有著潛在的幫助,希望對(duì)大家有所幫助。本次帶來(lái)Vivado系列,TLC549驅(qū)動(dòng)設(shè)計(jì)。話不多說(shuō),上貨。

TCL549驅(qū)動(dòng)設(shè)計(jì)

在生活中,數(shù)模轉(zhuǎn)換的例子到處可見(jiàn)。但是在我們做FPGA設(shè)計(jì)時(shí),需要對(duì)數(shù)字信號(hào)進(jìn)行處理,但是,不是所有的信號(hào)都是以數(shù)字信號(hào)的形式體現(xiàn)的,比如光信號(hào)、聲信號(hào)、電信號(hào)等等。那么此時(shí)就需要我們先進(jìn)行一下模數(shù)轉(zhuǎn)換之后再進(jìn)行處理。在此,我們將介紹一款模數(shù)轉(zhuǎn)換芯片TLC549。

TLC549是一款串行總線控制的8bit模數(shù)轉(zhuǎn)換芯片,封裝如下圖:

0f07a096-2c0a-11ee-a368-dac502259ad0.png

管腳說(shuō)明:

0f1a8828-2c0a-11ee-a368-dac502259ad0.png

芯片特征:

1、8bit A/D轉(zhuǎn)換器。

2、最大轉(zhuǎn)換時(shí)間為17us。

3、供電3V~6V之間。

4、低功耗最大功率為15mW。

在官方手冊(cè)中,對(duì)此芯片有這樣的一段描述:

0f3fa6da-2c0a-11ee-a368-dac502259ad0.png

在這段描述中,大致說(shuō)出了這個(gè)芯片的一些控制。比如:TLC548和TLC549都是8bit的模數(shù)轉(zhuǎn)換器。這個(gè)芯片使用I/O CLOCK和CS_N來(lái)控制數(shù)據(jù)。TLC548的I/O CLOCK最大頻率為2.048MHz,TLC549的I/O CLOCK最大頻率為1.1MHz。

在這段描述中可以看出,AD芯片的數(shù)據(jù)輸出,需要在I/O CLOCK和CS_N的控制下才能進(jìn)行。

芯片示意圖:

0f63ccea-2c0a-11ee-a368-dac502259ad0.png

從圖中可以看出,參考電壓是模數(shù)轉(zhuǎn)換的一個(gè)標(biāo)準(zhǔn),CS_N和I/O CLOCK給到邏輯控制和輸出計(jì)數(shù)。數(shù)據(jù)通過(guò)一個(gè)輸出寄存器給到一個(gè)并串轉(zhuǎn)換的模塊。DATA_OUT數(shù)據(jù)是給到我們的FPGA的,所以,對(duì)于我們來(lái)說(shuō)需要做的就是輸出CS_N和I/O CLOCK的波形,同時(shí),將給進(jìn)來(lái)的數(shù)據(jù)采到。

0f8ece54-2c0a-11ee-a368-dac502259ad0.png

上圖為驅(qū)動(dòng)的時(shí)序圖,可以看到,當(dāng)數(shù)據(jù)輸出的時(shí)候,CS_N為低電平,總共輸出8bit,輸出完之后,CS_N拉高。我們?cè)谧鲵?qū)動(dòng)時(shí)??梢詫⒁淮无D(zhuǎn)換過(guò)程看成一個(gè)周期,后續(xù)也是重復(fù)過(guò)程。那么,我們就需要搞清楚每段時(shí)間的要求,有助于我們寫(xiě)驅(qū)動(dòng)。

0fc571f2-2c0a-11ee-a368-dac502259ad0.png

在上圖中,我們可以知道:

1、CS_N從拉低到第一bit數(shù)據(jù)出現(xiàn)在數(shù)據(jù)線上的時(shí)間最大為1.4us。

2、CS_N從拉低到第一個(gè)時(shí)鐘上升沿出現(xiàn),時(shí)間最小為1.4us。

3、I/O CLOCK頻率最大為1.1MHz。為了方便計(jì)算,我們采取1MHz。

4、Tconv轉(zhuǎn)換時(shí)間最大為17us。

5、CS_N拉高時(shí)間最小為17us。

在知道了以上信息后,我們開(kāi)始寫(xiě)驅(qū)動(dòng),首先新建一下工程。

0fefcac4-2c0a-11ee-a368-dac502259ad0.png

100eea26-2c0a-11ee-a368-dac502259ad0.png

選擇好之后點(diǎn)擊完成,新建文件寫(xiě)代碼。

10337e86-2c0a-11ee-a368-dac502259ad0.png

10566eb4-2c0a-11ee-a368-dac502259ad0.png

代碼如下:

1   module TLC549_driver(
2     
3     input   wire          clk,
4     input   wire          rst_n,
5     
6     output  reg           ad_clk,
7     output  reg           ad_cs_n,
8     input   wire          ad_data,
9     
10    output  reg    [7:0]  data
11  );
12
13    parameter   t = 1300;
14
15    reg     [10:0]    cnt;
16    reg     [7:0]     data_temp;
17    
18    always @ (posedge clk, negedge rst_n)
19    begin
20    if(rst_n == 1'b0)
21      cnt <= 11'd0;
22    else if(cnt == t - 1)
23      cnt <= 11'd0;
24    else
25      cnt <= cnt + 1'b1;
26    end
27    
28    always @ (posedge clk, negedge rst_n)
29    begin
30    if(rst_n == 1'b0)
31      begin
32      ad_clk <= 1'b0;
33      ad_cs_n <= 1'b1;
34      data_temp <= 8'd0;
35      data <= 8'd0;
36      end
37    else
38      case(cnt)
39      0   : begin ad_cs_n <= 1'b0; ad_clk <= 1'b0; end
40      74  : begin ad_clk <= 1'b1; data_temp[7] <= ad_data; end
41      99  : begin ad_clk <= 1'b0; end
42      124 : begin ad_clk <= 1'b1; data_temp[6] <= ad_data; end
43      149 : begin ad_clk <= 1'b0; end
44      174 : begin ad_clk <= 1'b1; data_temp[5] <= ad_data; end
45      199 : begin ad_clk <= 1'b0; end
46      224 : begin ad_clk <= 1'b1; data_temp[4] <= ad_data; end
47      249 : begin ad_clk <= 1'b0; end
48      274 : begin ad_clk <= 1'b1; data_temp[3] <= ad_data; end
49      299 : begin ad_clk <= 1'b0; end
50      324 : begin ad_clk <= 1'b1; data_temp[2] <= ad_data; end
51      349 : begin ad_clk <= 1'b0; end
52      374 : begin ad_clk <= 1'b1; data_temp[1] <= ad_data; end
53      399 : begin ad_clk <= 1'b0; end
54      424 : begin ad_clk <= 1'b1; data_temp[0] <= ad_data; end
55      449 : begin ad_clk <= 1'b0; ad_cs_n <= 1'b1; end
56      1299: begin data <= data_temp; end
57      default : ;
58      endcase
59    end
60    
61  endmodule

代碼寫(xiě)好之后,我們做一下仿真看一下數(shù)據(jù)能否被正確采集,代碼如下:

1   `timescale 1ns / 1ps
2 
3   module TLC549_driver_tb;
4 
5     reg         clk;
6     reg         rst_n;
7     
8     wire        ad_clk;
9     wire        ad_cs_n;
10    reg         ad_data;
11    
12    wire  [7:0] data;
13    
14    initial begin
15    clk = 0;
16    rst_n = 0;
17    ad_data = 0;
18    #100;
19    rst_n = 1;
20    #1000;
21    ad_data = 1;     //10100110
22    #1000;
23    ad_data = 0;
24    #1000;
25    ad_data = 1;
26    #1000;
27    ad_data = 0;
28    #1000;
29    ad_data = 0;
30    #1000;
31    ad_data = 1;
32    #1000;
33    ad_data = 1;
34    #1000;
35    ad_data = 0;
36    #20000;
37    $stop;
38    end
39
40    always #10 clk = ~clk;
41    
42    TLC549_driver TLC549_driver_inst(
43    
44    .clk          (clk),
45    .rst_n        (rst_n),
46    
47    .ad_clk       (ad_clk),
48    .ad_cs_n      (ad_cs_n),
49    .ad_data      (ad_data),
50    
51    .data         (data)
52  );
53    
54  endmodule

編譯無(wú)誤,打開(kāi)波形觀察。

106b7c00-2c0a-11ee-a368-dac502259ad0.png

仿真中給出的數(shù)據(jù)位8’b10100110,換算成16進(jìn)制為8’ha6。與波形中顯示一致,仿真正確。

責(zé)任編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)模轉(zhuǎn)換

    關(guān)注

    3

    文章

    106

    瀏覽量

    28963
  • 驅(qū)動(dòng)設(shè)計(jì)

    關(guān)注

    1

    文章

    110

    瀏覽量

    15261
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    804

    瀏覽量

    66224
  • TCL549
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    3076
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    TclVivado中的基礎(chǔ)應(yīng)用

    Xilinx的新一代設(shè)計(jì)套件Vivado相比上一代產(chǎn)品ISE,在運(yùn)行速度、算法優(yōu)化和功能整合等很多方面都有了顯著地改進(jìn)。但是對(duì)初學(xué)者來(lái)說(shuō),新的約束語(yǔ)言XDC以及腳本語(yǔ)言Tcl的引入則成為了快速掌握Vivado使用技巧的最大障礙,
    的頭像 發(fā)表于 09-14 09:09 ?1810次閱讀

    TCL 定制 Vivado 設(shè)計(jì)實(shí)現(xiàn)流程

    今天推出Xilinx已發(fā)布的《Vivado使用誤區(qū)與進(jìn)階》系列:用TCL定制Vivado設(shè)計(jì)實(shí)現(xiàn)流程。 上一篇《Tcl
    發(fā)表于 06-28 19:34

    FPGA零基礎(chǔ)學(xué)習(xí)Vivado-TLC549驅(qū)動(dòng)設(shè)計(jì)

    及打算進(jìn)階提升的職業(yè)開(kāi)發(fā)者都可以有系統(tǒng)性學(xué)習(xí)的機(jī)會(huì)。 系統(tǒng)性的掌握技術(shù)開(kāi)發(fā)以及相關(guān)要求,對(duì)個(gè)人就業(yè)以及職業(yè)發(fā)展都有著潛在的幫助,希望對(duì)大家有所幫助。本次帶來(lái)Vivado系列,TLC549驅(qū)動(dòng)
    發(fā)表于 08-16 19:57

    Vivado設(shè)計(jì)Tcl定制化的實(shí)現(xiàn)流程

    其實(shí)TclVivado中還有很多延展應(yīng)用,接下來(lái)我們就來(lái)討論如何利用Tcl語(yǔ)言的靈活性和可擴(kuò)展性,在Vivado中實(shí)現(xiàn)定制化的FPGA設(shè)計(jì)流程。 基本的FPGA設(shè)計(jì)實(shí)現(xiàn)流程 FPGA
    發(fā)表于 11-18 01:48 ?3569次閱讀
    <b class='flag-5'>Vivado</b>設(shè)計(jì)<b class='flag-5'>之</b><b class='flag-5'>Tcl</b>定制化的實(shí)現(xiàn)流程

    TclVivado中的基礎(chǔ)應(yīng)用

    Xilinx的新一代設(shè)計(jì)套件Vivado相比上一代產(chǎn)品ISE,在運(yùn)行速度、算法優(yōu)化和功能整合等很多方面都有了顯著地改進(jìn)。但是對(duì)初學(xué)者來(lái)說(shuō),新的約束語(yǔ)言XDC以及腳本語(yǔ)言Tcl的引入則成為了快速掌握
    發(fā)表于 11-18 03:52 ?4910次閱讀
    <b class='flag-5'>Tcl</b>在<b class='flag-5'>Vivado</b>中的基礎(chǔ)應(yīng)用

    VivadoTCL腳本語(yǔ)言基本語(yǔ)法介紹

    TCL腳本語(yǔ)言 Tcl(Tool Command Language)是一種很通用的腳本語(yǔ)言,它幾乎在所有的平臺(tái)上都可以解釋運(yùn)行,而且VIVADO也提供了TCL命令行。最近發(fā)現(xiàn)
    發(fā)表于 04-11 12:09 ?9819次閱讀

    如何使用Tcl命令語(yǔ)言讓Vivado HLS運(yùn)作

    了解如何使用Tcl命令語(yǔ)言以批處理模式運(yùn)行Vivado HLS并提高工作效率。 該視頻演示了如何從現(xiàn)有的Vivado HLS設(shè)計(jì)輕松創(chuàng)建新的Tcl批處理腳本。
    的頭像 發(fā)表于 11-20 06:06 ?3149次閱讀

    FPGA設(shè)計(jì)中TclVivado中的基礎(chǔ)應(yīng)用

    Tcl介紹 Vivado是Xilinx最新的FPGA設(shè)計(jì)工具,支持7系列以后的FPGA及Zynq 7000的開(kāi)發(fā)。與之前的ISE設(shè)計(jì)套件相比,Vivado可以說(shuō)是全新設(shè)計(jì)的。無(wú)論從界面
    的頭像 發(fā)表于 11-17 17:32 ?2515次閱讀

    使用Tcl命令保存Vivado工程

    一個(gè)完整的vivado工程往往需要占用較多的磁盤(pán)資源,少說(shuō)幾百M(fèi),多的甚至可能達(dá)到上G,為節(jié)省硬盤(pán)資源,可以使用Tcl命令對(duì)vivado工程進(jìn)行備份,然后刪除不必要的工程文件,需要時(shí)再恢復(fù)即可。
    的頭像 發(fā)表于 08-02 15:01 ?4715次閱讀

    Vivado中常用TCL命令匯總

    Vivado是Xilinx推出的可編程邏輯設(shè)備(FPGA)軟件開(kāi)發(fā)工具套件,提供了許多TCL命令來(lái)簡(jiǎn)化流程和自動(dòng)化開(kāi)發(fā)。本文將介紹在Vivado中常用的TCL命令,并對(duì)其進(jìn)行詳細(xì)說(shuō)明,
    的頭像 發(fā)表于 04-13 10:20 ?3410次閱讀

    TclVivado中的應(yīng)用

    Xilinx的新一代設(shè)計(jì)套件Vivado相比上一代產(chǎn)品 ISE,在運(yùn)行速度、算法優(yōu)化和功能整合等很多方面都有了顯著地改進(jìn)。但是對(duì)初學(xué)者來(lái)說(shuō),新的約束語(yǔ)言 XDC 以及腳本語(yǔ)言 Tcl 的引入則成為
    的頭像 發(fā)表于 04-15 09:43 ?1404次閱讀

    TCL定制Vivado設(shè)計(jì)實(shí)現(xiàn)流程

    今天推出Xilinx已發(fā)布的《Vivado使用誤區(qū)與進(jìn)階》系列:用TCL定制Vivado設(shè)計(jì)實(shí)現(xiàn)流程。
    的頭像 發(fā)表于 05-05 09:44 ?1021次閱讀
    用<b class='flag-5'>TCL</b>定制<b class='flag-5'>Vivado</b>設(shè)計(jì)實(shí)現(xiàn)流程

    Vivado設(shè)計(jì)套件Tcl命令參考指南

    電子發(fā)燒友網(wǎng)站提供《Vivado設(shè)計(jì)套件Tcl命令參考指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-14 10:23 ?1次下載
    <b class='flag-5'>Vivado</b>設(shè)計(jì)套件<b class='flag-5'>Tcl</b>命令參考指南

    Vivado設(shè)計(jì)套件用戶指南:使用Tcl腳本

    電子發(fā)燒友網(wǎng)站提供《Vivado設(shè)計(jì)套件用戶指南:使用Tcl腳本.pdf》資料免費(fèi)下載
    發(fā)表于 09-14 14:59 ?0次下載
    <b class='flag-5'>Vivado</b>設(shè)計(jì)套件用戶指南:使用<b class='flag-5'>Tcl</b>腳本

    Vivado Design Suite用戶指南:使用Tcl腳本

    電子發(fā)燒友網(wǎng)站提供《Vivado Design Suite用戶指南:使用Tcl腳本.pdf》資料免費(fèi)下載
    發(fā)表于 09-13 15:26 ?0次下載
    <b class='flag-5'>Vivado</b> Design Suite用戶指南:使用<b class='flag-5'>Tcl</b>腳本