新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 16位高速A/D轉換器在高速DSP處理器中的應用

        16位高速A/D轉換器在高速DSP處理器中的應用

        ——
        作者:武漢高壓研究所華電公司 武漢材料保護研究所 張蓬鶴 米德偉 時間:2007-01-26 來源:《END 電子設計技術》 收藏

        由于dsp有先進的并行結構使其特別適合于信號處理,故已經越來越多的應用于工業控制領域和各類儀器儀表的開發設計。而在用數字信號微處理器構成的智能儀器儀表中,外部的各種模擬信號必須通過a/d轉換器變換為數字信號后才能送入微處理器芯片。而bb公司的高精度轉換器ads7805具有較高的性能價格比,最高的轉換頻率可達100khz,在儀器儀表中得到廣泛的應用。
        ads7805芯片有28腳雙排直插式或貼片式封裝,只需單端5v電源供電即可正常工作;芯片內部含有采樣保持、電壓基準和時鐘等電路,極大簡化用戶的電路設計,同時提高了系統的穩定性。ads7805采用cmos工藝制造,功耗低(最大功耗為100mw),單通道輸入,模擬輸入電壓的范圍為±10v,采用逐次逼近式工作原理,轉換結果由16位數據線并行輸出,啟動轉換和讀取上次轉換的結果可以同時進行。

        本文引用地址:http://www.104case.com/article/20998.htm

        1、引腳及功能

        ads7805共有28個引腳,圖1為其引腳圖。這些引腳大體可以劃分為3類。

        i. 電源類

        數字電源vdig(28腳)和模擬電源vana(27腳)通常一起接到5v電源上;數字地dgnd(14腳)和模擬地agnd1(2腳)、agnd2(5腳)通常共地;參考電壓端ref(3腳)對地接2.2μf鉭電容,則芯片內部就會產生2.5v基準電壓;參考電容端cap(4腳)對地接2.2μf鉭電容。

        ii.信號類


        模擬信號輸入端vin(1腳);d15~d8(6腳到13腳)與d7~d0(15腳到22腳)為數字信號并行輸出口。

        iii.控制信號類


        片選信號輸入端/cs(25腳);讀取結果/模數轉換控制信號輸入端r/c(24腳);轉換結果指示輸出端/busy(26腳);控制從總線讀出的數據是轉換結果的高字節還是低字節信號輸入端byte(23腳)。

        2、 啟動a/d轉換和讀取轉換結果


        美國bb公司生產的ads78xx系列a/d轉換器的啟動轉換和讀取轉換結果的時序都比較特別,且大致相同,ads7805的轉換時序圖如圖2所示。


        首先要在r/c引腳輸入一個低電平信號,此低電平信號的持續時間要求在40~7000ns之間;這時busy引腳電平被拉低表示正在進行轉換,在經過了大約8μs(即為/busy信號保持低電平的時間)以后,轉換完成,busy引腳電平相應變高;再把r/c腳電平拉高,此時ads7805就會將轉換結果輸出到數據總線上。雖然轉換結果為16位,但對于具有16位數據總線的dsp微處理器而言,不必分兩次讀入,故可將byte腳從始至終同一信號電平,當byte腳為高電平時,pin6~13輸出低字節,pin15~22輸出高字節;反之當byte腳為低電平時,pin6~13輸出高字節,pin6~13輸出低字節。如果用/cs引腳來控制ads7805的轉換,其時序同r/c引腳相似,故這里就不詳細說明。ads7805轉換得到的數字結果是以補碼形式給出的,現給出其理想的數據轉換表,表1所列即為ads7805的模擬電壓與其補碼形式的數字輸出關系, -10v~9.99512v為量程

        3、 與dsp的接口


        ti公司的16-bit定點dsp tms320f206,是一種低功耗器件,采用了改進的哈佛結構,有1條程序總線和3條數據總線,流水線操作,有高度并行32-bit算術邏輯單元、16*16-bit并行硬件乘法器、片內存儲器、片內外設和高度專業化的指令集。當tms320f206外接16mhz的晶振,工作時鐘控制模式選為×1時,可以將ads7805的/cs腳接到dsp的/rd信號引腳,但為了減少控制線,可以將/cs引腳直接接成低電平,r/c引腳接到dsp的擴展輸出口,而/busy信號只需連接到普通的端入端口即可,如dsp的io口、擴展芯片74ls244的輸入口等。圖3是一個ads7805與tms320f206的典型接口電路。

        4、 c語言程序設計

        tms320f206的用戶可以用匯編語言或c語言進行源程序的編寫,而c語言開發出的系統易于維護,可靠性高,可移植性好,故下面介紹用c語言編寫的ads7805的開發程序。

        源程序如下:

        #include
        #include
        ioport unsigned int port90ac;
        ioport unsigned int porte0f7;
        #define ic273n port90ac
        #define ads7805 porte0f7
        #define wait asm(" nop ");
        int i, ia[8]; double bv_coil,ia;
        reg_aspcr=0x0e00; reg_iosr=0x0000;
        asm( " clrc intm ");
        ic273n=0x0008; wait;
        for(i=0;i<=7;i++)
        { ic273n=0x0000;
        while ((reg_iosr&0x0004)==0x0004)
        { if (adt> 2; return();)
        ic273n=0x0008; wait;
        ia[i]=(int)(ads7805&0xffff); }
        ia=0; for (i=0;i<=7;i++)
        { if ia[i]<32767 pr[i]=((double)(ia[i]))*0.000305185;/*10/32767=0.000305185*/ else
        pr[i]=((double)(ia[i]-65535))*0.000305185;
        ia=ia+pr[i]*pr[i]; }
        bv_coil = sqrt(ia/8);

        5、 結束語

        ads7805為16位的a/d轉換器,它不僅分辨率高、轉換速度快,而且接口簡單方便、應用靈活,因而具有廣泛的應用前景。筆者在gkndc-h型高壓開關特性精密測量儀中就使用了ads7805,并取得了很好的測量效果。




        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宣汉县| 泸州市| 桑植县| 新化县| 巩义市| 新宁县| 安庆市| 遂溪县| 大港区| 专栏| 宁河县| 六枝特区| 长治县| 沁阳市| 天峨县| 边坝县| 南溪县| 弥渡县| 思茅市| 九龙坡区| 资阳市| 柳州市| 双流县| 安达市| 张北县| 古浪县| 洛宁县| 曲沃县| 台北市| 类乌齐县| 甘孜县| 淳安县| 海淀区| 灵宝市| 罗甸县| 洛浦县| 武义县| 蒙山县| 林周县| 西乡县| 浑源县|