嵌入式DA接口實(shí)驗(yàn)_第1頁(yè)
嵌入式DA接口實(shí)驗(yàn)_第2頁(yè)
嵌入式DA接口實(shí)驗(yàn)_第3頁(yè)
嵌入式DA接口實(shí)驗(yàn)_第4頁(yè)
嵌入式DA接口實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2.5 D/A 接口實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?#190; 學(xué)習(xí) D/A 轉(zhuǎn)換原理¾ 掌握 MAX504 D/A 轉(zhuǎn)換芯片的使用方法¾ 掌握不帶有 D/A 的 CPU 擴(kuò)展 D/A 功能的主要方法¾ 了解 D/A 驅(qū)動(dòng)程序加入內(nèi)核的方法二、實(shí)驗(yàn)內(nèi)容學(xué)習(xí) D/A 接口原理,了解實(shí)現(xiàn) D/A 系統(tǒng)對(duì)于系統(tǒng)的軟件和硬件要求。閱讀 MAX504芯片文檔,掌握其使用方法。三、預(yù)備知識(shí)¾ 有 C 語(yǔ)言基礎(chǔ)¾ 掌握在 Linux 下常用編輯器的使用¾ 掌握 Makefile 的編寫(xiě)和使用¾ 掌握 Linux 下的程序編譯與交叉編譯過(guò)程四、實(shí)驗(yàn)設(shè)備及

2、工具硬件:UP-TECH S2410/P270 DVP 嵌入式實(shí)驗(yàn)平臺(tái)、PC 機(jī) Pentium 500 以上, 硬盤(pán) 10G 以上。 軟件:PC 機(jī)操作系統(tǒng) REDHAT LINUX 9.0MINICOMARM-LINUX 開(kāi)發(fā)環(huán)境五、實(shí)驗(yàn)原理1、D/A 轉(zhuǎn)換器D/A 轉(zhuǎn)換器的內(nèi)部電路構(gòu)成無(wú)太大差異,一般按輸出是電流還是電壓、能否作乘法運(yùn)算等 進(jìn)行分類。大多數(shù) D/A 轉(zhuǎn)換器由電阻陣列和 n 個(gè)電流開(kāi)關(guān)(或電壓開(kāi)關(guān))構(gòu)成。按數(shù)字輸入 值切換開(kāi)關(guān),產(chǎn)生比例于輸入的電流(或電壓)。¾ 電壓輸出型(如 TLC5620)電壓輸出型 D/A 轉(zhuǎn)換器雖有直接從電阻陣列輸出電壓的,但一般采用內(nèi)置

3、輸出放大器以低 阻抗輸出。直接輸出電壓的器件僅用于高阻抗負(fù)載,由于無(wú)輸出放大器部分的延遲,故常 作為高速 D/A 轉(zhuǎn)換器使用。¾ 電流輸出型(如 THS5661A)電流輸出型 D/A 轉(zhuǎn)換器很少直接利用電流輸出,大多外接電流電壓轉(zhuǎn)換電路得到電壓輸 出,后者有兩種方法:一是只在輸出引腳上接負(fù)載電阻而進(jìn)行電流電壓轉(zhuǎn)換,二是外接 運(yùn)算放大器。用負(fù)載電阻進(jìn)行電流電壓轉(zhuǎn)換的方法,雖可在電流輸出引腳上出現(xiàn)電壓, 但必須在規(guī)定的輸出電壓范圍內(nèi)使用,而且由于輸出阻抗高,所以一般外接運(yùn)算放大器使 用。此外,大部分 CMOS DA 轉(zhuǎn)換器當(dāng)輸出電壓不為零時(shí)不能正確動(dòng)作,所以必須外接運(yùn)算 放大器。當(dāng)外接運(yùn)

4、算放大器進(jìn)行電流電壓轉(zhuǎn)換時(shí),則電路構(gòu)成基本上與內(nèi)置放大器的電壓 輸出型相同,這時(shí)由于在 D/A 轉(zhuǎn)換器的電流建立時(shí)間上加入了運(yùn)算放入器的延遲,使響應(yīng) 變慢。此外,這種電路中運(yùn)算放大器因輸出引腳的內(nèi)部電容而容易起振,有時(shí)必須作相位 補(bǔ)償。¾ 乘算型(如 AD7533)D/A 轉(zhuǎn)換器中有使用恒定基準(zhǔn)電壓的,也有在基準(zhǔn)電壓輸入上加交流信號(hào)的,后者由于能 得到數(shù)字輸入和基準(zhǔn)電壓輸入相乘的結(jié)果而輸出,因而稱為乘算型 D/A 轉(zhuǎn)換器。乘算型 D/A 轉(zhuǎn)換器一般不僅可以進(jìn)行乘法運(yùn)算,而且可以作為使輸入信號(hào)數(shù)字化地衰減的衰減器及對(duì) 輸入信號(hào)進(jìn)行調(diào)制的調(diào)制器使用。¾ 一位 D/A 轉(zhuǎn)換器一位

5、 D/A 轉(zhuǎn)換器與前述轉(zhuǎn)換方式全然不同,它將數(shù)字值轉(zhuǎn)換為脈沖寬度調(diào)制或頻率調(diào)制的 輸出,然后用數(shù)字濾波器作平均化而得到一般的電壓輸出(又稱位流方式),用于音頻等場(chǎng) 合。2、D/A 轉(zhuǎn)換器的主要技術(shù)指標(biāo)¾ 分辯率(Resolution) 指最小模擬輸出量(對(duì)應(yīng)數(shù)字量?jī)H最低位為“1”)與最大量(對(duì)應(yīng)數(shù)字量所有有效位為“1”) 之比。¾ 建立時(shí)間(Setting Time)是將一個(gè)數(shù)字量轉(zhuǎn)換為穩(wěn)定模擬信號(hào)所需的時(shí)間,也可以認(rèn)為是轉(zhuǎn)換時(shí)間。D/A 中常用建 立時(shí)間來(lái)描述其速度,而不是 A/D 中常用的轉(zhuǎn)換速率。一般地,電流輸出 D/A 建立時(shí)間較 短,電壓輸出 D/A 則較長(zhǎng)。 其

6、他指標(biāo)還有線性度(Linearity),轉(zhuǎn)換精度,溫度系數(shù)/漂移。3、MAX50410 位 D/A 轉(zhuǎn)換器的特點(diǎn)由單個(gè) 5V 電源供電 電壓輸出緩沖內(nèi)部 2.048V 參考電壓 1INL=2 LSB(MAX) 電壓不隨溫度變化 可變的輸出范圍:0VVDD,VSSVDD 上電復(fù)位 串行輸出其各個(gè)管腳的功能如表 所示:表 2.5.1 管腳定義管腳名稱功能1BIPOFFBipolar offset/gain resistor2DINSerial data input3CLRClear. Asynchronously sets DAC register to all 0s.4SCLKSerial cl

7、ock input5CSChip select, active low6DOUTSerial data output for daisy-chaining7DGNDDigital ground8AGNDAnalog ground9REFINReference input10REFOUTReference output, 2.048V. Connect to VDD if not used.11VSSNegative power supply12VOUTDAC output13VDDPositive power supply14RFBFeedback resistor4、MAX504 在開(kāi)發(fā)板上

8、的連接MAX504 在開(kāi)發(fā)板中的連接如圖 所示:圖 2.5.1 Max504 的連接上圖中,RFB 連接 VOUT、BIPOFF 連接 AGND,使得輸出電壓范圍為 02VREFIN,即 04.069V。 時(shí)鐘和輸入、輸出信號(hào)分別與同步串口的時(shí)鐘、發(fā)送和接收端相連。可以通過(guò) WriteSDIO(data)函數(shù)(Uhal.h)向 MAX504 發(fā)送數(shù)據(jù)。發(fā)送數(shù)據(jù)時(shí)要注意,MAX504 可接受12 位的數(shù)據(jù),但低兩位不起作用。WriteSDIO(data)函數(shù)一次只能發(fā)送 8 位的數(shù)據(jù),所以 發(fā)送數(shù)據(jù)時(shí)應(yīng)先將數(shù)據(jù)左移兩位,然后先發(fā)送高八位,再發(fā)送低八位數(shù)據(jù)。CLR 和 CS 分別 由 MAX504

9、_CLEAR()和 MAX504_ENABLE()、MAX504_DISABLE()函數(shù)(Max504.c)控制。六、程序分析程序流程圖如圖 :具體程序代碼 da_main.c 如下:圖 實(shí)驗(yàn)程序流程圖/*by zou jian guo<zounix> 14:30*the driver is s3c2410_da_max504.c in drivers/char*/#include <stdio.h>#include <fcntl.h>#include <string.h>#include <sys/ioctl.h>#define D

10、A0_IOCTRL_WRITE0x10#define DA1_IOCTRL_WRITE0x11#define DA_IOCTRL_CLR0x12#define Max504_FULL4.096f static int da_fd = -1;char *DA_DEV="/dev/exio/0raw"void Delay(int t)int i;for(;t>0;t-)for(i=0;i<400;i+);/*/int main(int argc, char *argv)float v;unsigned int value;/char *da_dev;/unsigne

11、d int da_num=0;if(argc < 3)printf("n");printf("Error parametern"); printf("Input as:n"); printf("./ad_main da_id numn");printf("da_id: select between 0 and 1n"); printf("num: range 0.0 4.096n"); printf("n");return 1;sscanf(argv

12、2, "%f",&v);if(v<0 | v>Max504_FULL)printf("DA out must between: 0 to %fn", Max504_FULL);return 1;value=(unsigned int)(v*1024.0f)/Max504_FULL);if(da_fd=open(DA_DEV, O_WRONLY)<0) printf("Error opening /dev/exio/0raw devicen"); return 1;if(strcmp(argv1,"0

13、") = 0)ioctl(da_fd, DA_IOCTRL_CLR, 0);/clear da. ioctl(da_fd, DA0_IOCTRL_WRITE, &value);else if (strcmp(argv1,"1") = 0)ioctl(da_fd, DA_IOCTRL_CLR, 1);/clear da. ioctl(da_fd, DA1_IOCTRL_WRITE, &value);#if 0ioctl(da_fd, DA_IOCTRL_CLR, 0);/clear da. for(;)#endifioctl(da_fd, DA0_I

14、OCTRL_WRITE, &value); Delay(500);close(da_fd);printf("Current Voltage is %f vn", v);return 0;七、實(shí)驗(yàn)步驟1、閱讀理解源碼進(jìn)入/arm2410cl/exp/basic/05_da 目錄,使用 vi 編輯器或其他編輯器閱讀理解源代碼2、編譯應(yīng)用程序運(yùn)行 make 產(chǎn)生 da 可執(zhí)行文件 da_mainrootzxt /# cd /arm2410cl/exp/basic/05_da/ rootzxt 05_da# makearmv4l-unknown-linux-gcc-c -o

15、 da_main.o da_main.c armv4l-unknown-linux-gcc da_main.o -o da_main rootzxt 05_da# lsda_main da_main.c da_main.o doc drivers Makefile s3c44b0-spi.h3、下載調(diào)試切換到 minicom 終端窗口,使用 NFS mount 開(kāi)發(fā)主機(jī)的/arm2410cl 到/host 目錄,然后進(jìn)入/host/exp/05_da/drivers 目錄,用 insmod s3c2410-exio.o 命令插入 D/A 驅(qū)動(dòng),并用 lsmod命令查看是否已經(jīng)插入。/mnt/y

16、affscd /host/exp/basic/05_da/ /host/exp/basic/05_dacd drivers/host/exp/basic/05_da/driversinsmod s3c2410-exio.o Using s3c2410-exio.o /host/exp/basic/05_da/driverslsmodModuleSize Used byNot taintedS3c2410-exio23840 (unused)i2c-tops2141040 (unused)注意:卸載模塊可以使用 rmmod 命令,以本實(shí)驗(yàn)為例,卸載方法如下:/host/exp/basic/05_darmmod s3c2410-exio進(jìn)入/host/exp/basic/05_da 目錄,運(yùn)行./da_main,觀察運(yùn)行結(jié)果的正確性。在輸 入 ./da_main 后會(huì)出現(xiàn)下面的提示信息。/host/exp/basic/05_da./da_mainError parameterInput as:./ad_main da_id numda_id: select bet

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論