單片機ADC模塊-文檔資料_第1頁
單片機ADC模塊-文檔資料_第2頁
單片機ADC模塊-文檔資料_第3頁
單片機ADC模塊-文檔資料_第4頁
單片機ADC模塊-文檔資料_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、吉林大學通信工程學院吉林大學通信工程學院 10.3 A/D轉(zhuǎn)換模塊本節(jié)提要本節(jié)提要一、一、A/D轉(zhuǎn)換基礎(chǔ)知識轉(zhuǎn)換基礎(chǔ)知識二、二、ATD模塊簡介模塊簡介三、三、ATD模塊寄存器模塊寄存器四、四、ATD模塊編程范例模塊編程范例本節(jié)提要本節(jié)提要一、一、A/D轉(zhuǎn)換基礎(chǔ)知識轉(zhuǎn)換基礎(chǔ)知識二、二、ATD模塊簡介模塊簡介三、三、ATD模塊寄存器模塊寄存器四、四、ATD模塊編程范例模塊編程范例ADC概述n微控制器處理的是離散量 (數(shù)字量) ,而現(xiàn)實中往往是連續(xù)量 (模擬量)物理量如:溫度, 壓力,濕度以及速度等等n傳感器 將物理量轉(zhuǎn)換為電信號 (電壓, 電流)n需要模擬-數(shù)字轉(zhuǎn)換器將電信號轉(zhuǎn)換為數(shù)字量以供微控制

2、器處理基本概念 傳感器傳感器 控制器控制器執(zhí)行器執(zhí)行器ADC 工作原理n將輸入電壓與若干等間距的參考電壓進行比較n因此需要比較器比較器Uin Uref Uout=V+ 1Uin Uref Uout=0V 0UinUrefUout1位ADCADC 工作原理n3 個比較器可將電壓分成4 級 (以 2位來表示)Uref1Uref2Uref3Rank0Rank1Rank2Rank3Uref1Uref2Uref3Uout1Uout2Uout3Quiz1: For voltage in rank2, Uout1 = ? Uout2 = ? Uout3 = ?UmaxUminUinADC工作原理n2位ADC

3、UinUrefRRRRD0D1編碼器8位 ADC, 需要多少個比較器?ADC工作原理nFlash Converter ADC優(yōu)點: 速度極快缺點: 非常復(fù)雜n逐次逼近式A/D轉(zhuǎn)換器Uin逐次逼近寄存器D/A 轉(zhuǎn)換器結(jié)果UrefADC工作原理逐次逼近式轉(zhuǎn)換器轉(zhuǎn)換過程 ( 4位 )SA-ADC 完成一次轉(zhuǎn)換至少需要 n 個時鐘周期ADC工作原理n必須進行采樣保持以避免輸入電壓在轉(zhuǎn)換期間發(fā)生變化UinADC工作原理n 逐次逼近式轉(zhuǎn)換器( SA-ADC )非??毂容^復(fù)雜n SA-ADC在單片機中較為常見單片機中常見典型為8-12位具有多個多路復(fù)用的模擬通道SA-ADC通道選擇寄存器ADC 參數(shù)n轉(zhuǎn)換位

4、數(shù)(Bits)分辨率 = 2-n (8bits = 0.39%)n轉(zhuǎn)換速度(Speed)由工作時鐘頻率和轉(zhuǎn)換位數(shù)確定n轉(zhuǎn)換范圍(Range)05V, 010V, -5V+5V. Etc.n轉(zhuǎn)換通道數(shù)(Channels)Distinguish the channel and converter本節(jié)提要本節(jié)提要一、一、A/D轉(zhuǎn)換基礎(chǔ)知識轉(zhuǎn)換基礎(chǔ)知識二、二、ATD模塊簡介模塊簡介三、三、ATD模塊寄存器模塊寄存器四、四、ATD模塊編程范例模塊編程范例 8/10/12位可選 轉(zhuǎn)換速度較高,10位精度,單次轉(zhuǎn)換時間為7usec 采樣時間可編程設(shè)置 多種轉(zhuǎn)換模式:數(shù)據(jù)對齊方式、單次/連續(xù)轉(zhuǎn)換、 轉(zhuǎn)換結(jié)果比

5、較 外觸發(fā)控制 轉(zhuǎn)換結(jié)束可產(chǎn)生中斷 可用于8個模擬輸入通道的模擬輸入多路轉(zhuǎn)換器. 模擬/數(shù)字輸入引腳復(fù)用 18 轉(zhuǎn)換序列長度. 多通道掃描S12單片機ADC特性2, 4, 8, 16 ClocksAlways2 Clocks轉(zhuǎn)換時間計算舉例: (假設(shè)A/D 時鐘為2MHz,10位精度 )轉(zhuǎn)換時間 = Initial Sample Time + Programmed Sample Time + Resolution Period = 2 + 2 + 10 = 14 A/D Clocks = 7uSecS12單片機ADC轉(zhuǎn)換時間S12單片機ADC模塊框圖ADC 引腳可用于數(shù)字輸入ADC 結(jié)果寄存器

6、模擬輸入通道參考電壓本節(jié)提要本節(jié)提要一、一、A/D轉(zhuǎn)換基礎(chǔ)知識轉(zhuǎn)換基礎(chǔ)知識二、二、ATD模塊簡介模塊簡介三、三、ATD模塊寄存器模塊寄存器四、四、ATD模塊編程范例模塊編程范例ATD 模塊寄存器n 共27個寄存器控制寄存器(ATDCTL0ATDCTL5,6個)狀態(tài)寄存器(ATDSTAT0ATDSTAT1,2個 )比較使能寄存器(ATDCMPE, 1個)比較方式寄存器(ATDCMPHT , 1個,)轉(zhuǎn)換輸入使能寄存器(ATDDIEN , 1個)轉(zhuǎn)換結(jié)果寄存器(ATDDR0ATDDR15,16個)其中: 8位寄存器: ATDCTL0ATDCTL5, ATDSTAT0 16位寄存器:其余ATD Re

7、gisters 1/12ATD Control Register 0 (ATDCTL0)WRAP3-0 - Wrap Around Channel Select 0 = ReservedX = 多通道轉(zhuǎn)換模式 從ANx回繞到AN0 1x 15 僅在ATDCTL5的MULT=1時有效ATD Registers 2/12SRES1:0 - A/D Resolution SelectATD Control Register 1 (ATDCTL1)ETRIGSEL - External Trigger Source Select S12XS此位無效ETRIGCH3:0 - External Trigg

8、er Channel SelectSMP_DIS - Discharge Before Sampling Bit 0=No discharge 1 = discharge 注:寫ATDCTL1會終止當前轉(zhuǎn)換序列ATD Registers 3/12ATD Control Register 2 (ATDCTL2)AFFC - ATD Fast Flag Clear All0 = 向CCFn 標志位寫1則清零1 =讀ATD轉(zhuǎn)換結(jié)果寄存器則CCFn 標志位清零(當比較功能被禁止) 寫ATD轉(zhuǎn)換結(jié)果寄存器則CCFn 標志位清零(當比較功能被使能)ICLKSTP - Internal Clock in S

9、top Mode Bit0 = 停止模式下,停止當前轉(zhuǎn)換,退出停止模式后ATD轉(zhuǎn)換自動重新開始1 = 停止模式下,可繼續(xù)使用內(nèi)部時鐘進行ATD轉(zhuǎn)換ETRIGLE - External Trigger Level/Edge ControlETRIGP - External Trigger PolarityETRIGE - External Trigger Mode Enable0 = 禁止外部觸發(fā)信號1 = 使能外部觸發(fā)信號ASCIE- ATD Sequence Complete Interrupt Enable0 = 禁止ATD轉(zhuǎn)換序列結(jié)束中斷1 = 使能ATD轉(zhuǎn)換序列結(jié)束中斷ACMPIE -

10、 Internal Clock in Stop Mode Bit0 = 禁止比較中斷1 = 使能比較中斷注:寫ATDCTL2會終止當前轉(zhuǎn)換序列ATD Registers 4/12ATD Control Register 3 (ATDCTL3)DJM - Result Register Data Justification0=Left justified data in the result registers1=Right justified data in the result registersS8C, S4C,S2C, S1C - Conversion Sequence LengthFI

11、FO - Result Register FIFO Mode0=Conversion results are placed in the corresponding result register up to the selected sequence length.1=Conversion results are placed in consecutive result registers (wrap around at end).FRZ1:0 - Background Debug Freeze Enable注:寫ATDCTL3會終止當前轉(zhuǎn)換序列ATD Registers 5/12設(shè)置預(yù)分頻

12、因子時,0.25MHzAEDCLK 8.3MHzATD Control Register 4 (ATDCTL4)SMP2:0 - Sample Time SelectPRS4:0 - ATD Clock PrescalerDivide By 25-Bit Modulus Counter PrescalerPRS0-PRS4SYSTEM CLOCKA/D Clock采樣時間長,采樣點電平更準確的逼近外部信號電平注:寫ATDCTL4會終止當前轉(zhuǎn)換序列ATD啟動:啟動:寫ATDCTL5會終止當前轉(zhuǎn)換序列,并開始新一次轉(zhuǎn)換此后,若外部觸發(fā)信號每次滿足觸發(fā)條件都會開始一次ATD轉(zhuǎn)換 ATD Regist

13、ers 6/12ATD Control Register 5 (ATDCTL5)SC - Special Channel Conversion0=Special channel conversions disabled1=Special channel conversions enabledSCAN - Continuous Conversion Sequence Mode 0=Single conversion sequence1=Continuous conversion sequences (scan mode)MULT - Multi-Channel Sample 0=Sample o

14、nly one channel1=Sample across several channelsCD,CC,CB,CA - Analog Input Channel Select Code單通道,單次轉(zhuǎn)換單通道,單次轉(zhuǎn)換多通道,單次轉(zhuǎn)換多通道,單次轉(zhuǎn)換單通道,序列轉(zhuǎn)換模式單通道,序列轉(zhuǎn)換模式多通道,序列轉(zhuǎn)換模式多通道,序列轉(zhuǎn)換模式特殊通道測試模式特殊通道測試模式ADC 工作方式ATD Registers 7/12ATD Status Register 0 (ATDSTAT0)SCF - Sequence Complete Flag0=Conversion sequence not complet

15、ed1=Conversion sequence has completedETORF - External Trigger Overrun Flag0=No External trigger over run error has occurred1=External trigger over run error has occurredFIFOR- Result Register Over Run Flag0=No over run has occurred1=Overrun condition exists (result register has been written while as

16、sociated CCFx flag was still set)CC3:0 - Conversion Counter 當前轉(zhuǎn)換結(jié)果將寫入的結(jié)果寄存器編號 例如: CC3:0=0110, 轉(zhuǎn)換結(jié)果寫入第6個結(jié)果寄存器先入先出模式下,不被初始化,當計數(shù)到最大值回最小值非先入先出模式下,轉(zhuǎn)換開始和結(jié)束時被初始化為0兩種模式下終止ATD轉(zhuǎn)換或開始新ATD轉(zhuǎn)換均被清零ATD Registers 8/12ATD Compare Enable Register (ATDCMPE)CMPE15:0 - Compare Enable for Conversion Number n (n= 15, 14, 13

17、, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) of a Sequence0=No automatic compare1= Automatic compare of results for conversion n of a sequence is enabled對一個序列中第n次ATD轉(zhuǎn)換結(jié)果進行比較,除CMPEn=1,還要完成如下設(shè)置:將比較閾值寫入ATDDRn寫ATDCPMHT的CMPHTn位選擇比較方法注:寫ATDCMPE會終止當前轉(zhuǎn)換序列ATD Registers 9/12ATD Status Register 2 (ATDSTAT2)CCF1

18、5:0 - Conversion Complete Flag n (n= 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)0=Conversion number n not completed or successfully compared1=If (CMPEn=0): Conversion number n has completed. Result is ready in ATDDRn. If (CMPEn=1): Compare for conversion result number n with compare value

19、in ATDDRn, using compare operator CMPGTn is true. (No result available in ATDDRn)出現(xiàn)以下任一情況,CCFn被清零:寫ATDCTL5當AFFC=0,向CCFn寫1當AFFC=1,且CMPEn=1,寫ATDDRnATD Registers 10/12ATD Input Enable Register (ATDDIEN)IEN15:0 - ATD Digital Input Enable on channel x (x= 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1

20、, 0)0=Disable digital input buffer to ANx pin1=Enable digital input buffer on ANx pin通用I/O口AD口與ATD模塊的模擬輸入引腳復(fù)用將某個模擬輸入引腳作為通用輸入引腳使用時,必須將對應(yīng)IEN位置位ATD Registers 11/12ATD Compare Higher Than Register (ATDCMPHT)CMPHT15:0 - Compare Operation Higher Than Enable for conversion number n (n= 15, 14, , 2, 1, 0) o

21、f a Sequence0= If result of conversion n is lower or same than compare value in ATDDRn, this is flagged in ATDSTAT21= If result of conversion n is higher than compare value in ATDDRn, this is flagged in ATDSTAT2注:寫ATDCMPHT會終止當前轉(zhuǎn)換序列ATD Registers 12/12- data formatATD Conversion Result Registers (ATDD

22、Rn)ATDDR0ATDDR15關(guān)閉比較操作時,ATD轉(zhuǎn)換結(jié)果寫入ATDDRn 要寫入的ATDDRn的編號由ATDSTAT0的CC3CC0轉(zhuǎn)換計數(shù)給出 轉(zhuǎn)換結(jié)果在ATDDRn中的放置位置與轉(zhuǎn)換精度和結(jié)果對齊方式有關(guān)使能比較功能時,ATD轉(zhuǎn)換結(jié)果和比較閾值都總是12位,與SRES1:0(ATDCTL1)無關(guān)DJM=0 左對齊DJM=1 右對齊轉(zhuǎn)換結(jié)果不放入結(jié)果寄存器,比較完成后丟失本節(jié)提要本節(jié)提要一、一、A/D轉(zhuǎn)換基礎(chǔ)知識轉(zhuǎn)換基礎(chǔ)知識二、二、ATD模塊簡介模塊簡介三、三、ATD模塊寄存器模塊寄存器四、四、ATD模塊編程范例模塊編程范例ATD模塊編程范例 ATD模塊編程方法 ATD模塊編程范例AT

23、D初始化:先寫除ATD0CTL5外的控制寄存器,再寫ATD0CTL5完成初始化,并啟動轉(zhuǎn)換;ATD結(jié)果讀?。和ㄟ^查詢ATD0STAT0中的SCF位或采用中斷方式,確定轉(zhuǎn)換完成,讀取相關(guān)結(jié)果寄存器取得ATD轉(zhuǎn)換結(jié)果。 任務(wù):分別對特殊通道VRH、VRL和(VRH+VRL)/2進行 ATD轉(zhuǎn)換ATD模塊編程范例(續(xù)1)/*/ *S12X128 ATD模塊范例程序*/*#include /* common defines and macros */#include /SCI相關(guān)函數(shù)/SCI初始化函數(shù)void SCI_init(void);void SCISendChar(char c1);void

24、SCISendString(char * pc2);void SCISendHex(char c1);unsigned char dtoa(char c1);/ATD相關(guān)函數(shù)/ATD初始化函數(shù)void ATD_init(void) ;ATD模塊編程范例(續(xù)2)/*主程序*/void main(void) SCI_init();ATD_init();ATD0CTL5=0 x45; /單次轉(zhuǎn)換,單通道,選擇特殊通道VRLwhile(!(ATD0STAT0&0 x80); /查詢ATD是否完成SCISendString(VRL=);SCISendHex(ATD0DR0H);SCISendString(rn);ATD0CTL5=0 x44; /單次轉(zhuǎn)換,單通道,選擇特殊通道VRHwhile(!(ATD0STAT0&0 x80);/查詢A

溫馨提示

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

評論

0/150

提交評論