《ADC类比数位转换.ppt》由会员分享,可在线阅读,更多相关《ADC类比数位转换.ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ADC類比轉數位實驗 瞭解類比轉數位的基本原理寫程式對類比輸入進行採集和轉換,並將結果顯示在超級終端機1類比轉數位原理類比轉數位原理n經常遇到的物理參數如電流、電壓、溫度、壓力、速度等電量或非電量都是模擬量模擬量的大小是連續分佈的,且經常也是時間上的連續函數 n類比轉換成數位信號需經過取樣量化編碼三個基本過程(數位化過程)2類比轉數位原理類比轉數位原理 n取樣按取樣定理對類比信號進行等時間間隔取樣n將得到的一系列時域上的樣值去代替u=f(t),即用u0、u1、un代替u=f(t)這些樣值在時間上是離散的值n但在幅度上仍然是連續類比量3類比轉數位原理類比轉數位原理n量化在幅值上再用離散值來表示。
2、方法是用一個量化因數Q去度量;u0、u1、,便得到整量化的數字量。u0=2.4Q 2Q 010u1=4.0Q 4Q 100u2=5.2Q 5Q 101u3=5.8Q 5Q 101n編碼將整量化後的數位量進行編碼,以便讀入和識別;編碼僅是對數位量的一種處理方法。例如:Q=0.5V/格,設用三位元(二進編碼)4S3C2410X的的A/D簡介簡介 n8通路10位A/D轉換器n支援觸控螢幕介面獨立/自動X/Y位置轉換模式n轉換器的主要特性:解析度:1LSB 微分線性度誤差:1.5LSB積分線形度誤差:1LSB最大轉化速率:500KSPS輸入電壓範圍:03.3vnA/D轉換器至少工作在2.5MHz Cl
3、ock rate下所以轉換速率可以達到500KSPS5S3C2410X A/D轉換器和觸控螢幕介面 nAIN7接上拉電阻到VDDA_ADC,觸控螢幕的X通道連接到S3C2410的AIN7Y通道應該連接到AIN56ADC 應用電路7ADC 應用電路位置J1-ADC輸入介面U2-ADC AIN1溫度感測器8LM35D溫度感測器元件n輸出電壓與攝氏溫度成正比例的溫度傳感器,可直接讀出溫度值n使用時無需外圍元件,也無需調試和較正(標定)n只要外接一個1V的表頭(如指針式或數字式的萬用表)n特性特性:靈敏度為靈敏度為10mV/工作溫度範圍為工作溫度範圍為0-100工作電壓為工作電壓為4-30V精度為精度
4、為1最大線性誤差為最大線性誤差為0.5靜態電流為靜態電流為80uA 該器件如塑封三極管(該器件如塑封三極管(TO-92)9設置設置A/D取樣的時鐘頻率取樣的時鐘頻率 n主時鐘的頻率為50MHZ,A/D取樣預分頻值設為49而完成一次轉換至少需要5個Clock週期則取樣頻率:nf 50M/(49+1)/5 200 KHZ n轉換時間轉換時間=1/f=0.5usn程式實現該功能程式實現該功能rADCCON=(rADCCON&0 xC03F)|(0 xC03F)&(0 x316)/設置預分頻值設置預分頻值10A/D控制暫存器ADCCON11A/D資料暫存器ADCDAT0 12啟動取樣步驟啟動取樣步驟
5、n允許ADC的時鐘輸出rCLKCON=rCLKCON|(115)n 將ADCCON暫存器的BIT0置1可以啟動轉換,當啟動轉換後,該位會被自動清除同時啟動轉換時還需要指定轉換通道n下面程式啟動通道0的取樣轉換rADCCON=0 x1|(0 x03)13獲取轉換結果獲取轉換結果 n當A/D轉換結束後,可以讀取ADCDAT暫存器的內容下面程式等待通道0的A/D轉換n實現的程式如下:while(!(rADCCON&0 x8000);/等待,直到A/D轉換結束 data=rADCDAT;/獲得轉換後的資料14int Read_Adc(unsigned char ch)A/D讀取通道函數讀取通道函數n參
6、數說明:ch:決定那個通道被選擇n 主要功能:指定某一通道(ch)進行轉換,並讀出轉換值n 該函數的程式如下:n/*nFunction name:Read_AdcnParameter :ch:ADC的通道,範圍07nDescription :讀取相應通道ch的類比轉數位的值nReturn :返回類比轉數位的值nArgument :nAutor&date:n*/nint ReadAdc(int ch)nn int i;n static int prevCh=-1;n rADCCON=(114)|(preScaler6)|(ch3);/setup channeln if(prevCh!=ch)n
7、nrADCCON=(114)|(preScaler6)|(ch3);/setup channelnfor(i=0;iLOOP;i+);/delay to set up the next channelnprevCh=ch;n n rADCCON|=0 x1;/start ADCn while(rADCCON&0 x1);/check if Enable_start is lown while(!(rADCCON&0 x8000);/check if EC(End of Conversion)flag is highn return(int)rADCDAT0&0 x3ff);n15ADC測試程式
8、測試程式void Test_Adc(void)n功能說明:初始化ADC相關暫存器,並讀ADC通道讀寫函數n主要程式如下:n/*nFunction name:TestADCnParameter :voidnDescription :讀通道0,並將讀取的值通過串列埠列印出來nReturn :voidnArgument :按ESC鍵退出實驗測試nAutor&date:n*/nvoid Test_Adc(void)nn int a0=0;/Initialize variablesn U32 rADCCON_save=rADCCON;n preScaler=ADC_FREQ;n printf(ADC c
9、onv.freq.=%dHzn,preScaler);n preScaler=GetMasterClock()/ADC_FREQ-1;/PCLK:50.7MHzn printf(PCLK/ADC_FREQ-1=%dn,preScaler);n while(getkey()!=ESC_KEY)n n a0=ReadAdc(0);n printf(AIN0:%04dn,a0);nDelay(80);n n rADCCON=rADCCON_save;n printf(nrADCCON=0 x%xn,rADCCON);n16主函數主函數Mainn功能說明:主要實現對模擬通道0的轉換,通過調節接在通道0
10、上的可調n電阻來改變模擬量的輸入,通過串列埠將獲得的資料回顯到串列埠。n主要程式如下:n/*nFunction name:MainnParameter :voidnDescription :初始化系統,串列埠,並調用ADC實驗函數nReturn :voidnArgument :nAutor&date:n*/nvoid Main(void)nnBoardInitStart();/系統初始化,MMU初始化nSystemClockInit();/系統時鐘初始化nMemCfgInit();/設置NAND FLASH的配置暫存器nPortInit();/S3C2410X的GPIO初始化nSerialSwitch(0);/選擇串列埠0nSerialChgBaud(115200);/串列傳輸速率115200nwhile(1)nnprintf(FS2410XP ADC Test,please Enter ESC to exitn);nTest_Adc();/調用ADC實驗函數nn17