




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、PIC24系列單片機馀理9開發(fā)by Zeng2012-6-9PIC24系列單片機馀理9開發(fā)by Zeng2012-6-9笫6章A/D轉換器及編程6. 1概述P1C24系列單片機內部集成了訶采集多路模擬信號的模數(shù)轉換器,即ADC模塊。PIC24F芯片的ADC為10位,P1C24H的ADC為12位.兩者的匸作原理和編程羞本一樣。本章主耍介紹PIC24F的A/D轉換器,其主耍技術特性如下:逐次遍近型(SAR)A/D轉換,轉換位數(shù)或分辨率為10位,轉換速度最高可達500ksps:垠參可£16路模擬輸入通道.由多路模擬開關切換:冇采樣/保持電路(S/H):具仃外部參易電壓輸入引腳:右口動通道掃
2、描轉換模式;冇多種轉換觸發(fā)源供用戶編程選擇:16個轉換結果緩沖器,4種數(shù)據(jù)存儲格式:町在CPU休眠和空閑模式K匸作。AN15AVddAVssVre“VrefANOAN1AN2AN3AN4AN5AN6AN7AN8AN9AN10AN11AN12AN13AN14圖6-1 10位A/D轉換器框圖圖6-1給出了 10位A/D轉換器的基本原理柜圖。64pin. 80pin和lOOpin的芯片仃16 路模擬輸入通道,引腳的標號為AN0AN15。兩個弓腳VREF+和VRE&用于連接外部 參考電壓可在軟件控制廠 選擇芯片的供電電壓(AVDD/AVSS)或VREF+/VREF引腳上的電壓作為A/D參考電壓
3、.設輸入電爪為Ux,轉換成數(shù)字杲Nx» 10位A/D轉換器的一般表達式如卜:M=1O23* Ux<Vr.-Vr .Vr Vk若選擇AVDD作為參考電壓:Nx=1023* Ux Ux<AVDD AVDD在硬件設il時,應注意輸入通道的電壓值不能人J: A/D的參考電壓.否則會影響其它 通道的轉換。各輸入通道的模擬電爪通過16選1的多路丿|咲(MUX A或MUXB)連接到采樣保持 器(S/H)的輸入端,采樣保持器乂稱為S/H通道或CH0圖中.A/D轉換器的輸入Ux是 采樣保持器的輸dLl> W此在A/D的轉換期間.進彳j通道切換或在兩個MUXZ間切換,均不 會影響A/D
4、轉換。因為只冇一個S/H和一個A/D轉換器,所以不能多個輸入通道同時采樣和轉換,只能 通過多路開關切換.逐個對輸入通道進行采樣和傳換這種多通道顧序釆樣、轉換方式對大 務數(shù)山用沒右問題.但對于嚴格要求參通道同步采樣的某些應用場合,可能會帶來通道間的 相位差(時間差)問題.需要在硬件上或軟件中進行修正.進行A/D轉換的主要步驟可簡單地歸納為:切換輸入通道、采樣保持、啟動A/D轉換, 待A/D轉換完畢后讀取轉換結果。圖62示意了進行-次A/D轉換的基木時序。采樣時間足 S/H接通模擬輸入引腳并且采集到信號所花的時間。為確保S/H電路為A/D轉換提供所 需的粘度,采樣時間應大于等于手冊中的雖小值(75
5、0ns) »PIC2-1系列芯片提供了多種方法來控制采樣和A/D的轉換.采樣和轉換觸發(fā)器源可以從 務種皺件源中選笊 也可以在軟件中用指令進行(即所謂的手動方式)控制。便用口動采樣 和轉換觸發(fā)方式,則無需軟件的干預即可進行連續(xù)不停的轉換。PIC21系列的A/D模塊右®個采樣/轉換結柬時,或附W個通道完成采樣/轉換結束時 產生中斷。同時A/D轉換結果口動存儲在片內的16個字數(shù)據(jù)緩沖器中(ADC1BUF0 ADC1BITF).該緩沖器被映射到片內的數(shù)據(jù)空間中。10位的轉換結果町以使用4種16位輸 出格式中的任意-種進行存儲。實現(xiàn)上述這些功能,關鍵足要理解A/D模塊的結構,并且需要
6、正確地設置A/D模塊的控 剖寄存器:AD1C0N1 AD1C0M3, AD1PCFG, AD1CHS 和 AD1CSSL。1 :A/D5FW1 C3 RriHl采樣時間A/D轉換時間i L,S/H連接到輸入通道引 腳進行采樣輸入從CH0斯開.S H保持轉換完成.結果送緩沖寄存器.信號,啟動A/D轉換產生中斷(若允許中斷)圖6-2進行一次A/D轉換的族木時序6. 2控制寄存器和其它外設模塊-樣,A/D模塊的控制寄存器管理著模塊的匸作。模塊佝6個控制寄 存器。AD1C0N1. AD1C0N2和AD1C0X3控制A/D模塊的總體操作這包括:使能模塊、配 置A/D的時鐘M參占電壓源、選擇采樣和轉換觸發(fā)
7、器,次及F動控制采樣/轉換序列AD1CHS 為輸入通道選擇寄存器用于選擇要連接到S/H放大器的輸入通道:AD1PCFG為A/D端口 配置寄存器.用于將I/O引腳配置為模擬倍號輸入:AD1CSSL足輸入扌I描選擇寄存器,用于選擇順序M描通道。單片機W用程序設計中的關鍵匸作z,就是按功能要求止確地配置這些控制寄存器, 止其在程序控制卜進行所期望的A/D轉換對鬥垃用程序設計者仃必要詳細了解乞控制寄存 器的功能。6. 2. 1 控制寄存器1 AD1CON1表61所列為控制寄存器AD1CON1的各位域結構和定義。該寄存器七耍負貴A/D模 塊的開啟/關閉轉換數(shù)據(jù)的格式、A/D轉換的啟動方式和工作狀態(tài)等關鍵
8、參數(shù).衣6-1 : AD1CON1 : A/D拄制寄存器1以位功能定義RV-0U-0R/W0U-0U-0U-UR/W0R/W-0ADON未用ADSIDL未用未川耒用FORM<1:0>bit 15bit 8R/W-0R/W0R/W0U-0U-0RAA/-0 R/W-0. HCS R/C-O.HCSSSRC<2:0>未用未用ASAMSAMPDONEbit 7bit 0其中:U二未用(讀為0) tR=可讀,可寫.-n二上電復位值,HCS=由珂件清0/ 91bit 15ADONA/D模塊運行控制位:1 =對動A/D樓塊0 =停止A/D模塊bit 13ADSIDL空閑(IDLE)
9、模式停止位:1二進入空閑模式時A/D模塊停止工作0 =在空閑模式下A/D模塊繼續(xù)工作bit 9-8FORM<1:O>數(shù)據(jù)輸出恪武選擇11 =帶符號小數(shù)(sddd dddd ddOO 0000) 范曲為 一0.50040.49910 =小數(shù)(dddd dddd ddOO 0000) 范由為0.00 0.99901 =帶符號整數(shù)(ssss sssd dddd dddd) 范圍為 一512+51100 整安(0000 OOdd dddd dddd ) r范圍為 01023bit 7-5SSRC<2:0>門動扎/D轉換源選擇:111 =內部計數(shù)器結束采樣并啟動轉換("
10、動轉換) 110,101» 100, 011 =保留010= Timer 3PL配時結束采樣“轉換001= INTO引腳產牛冇效電平時,結束采樣并燈動轉換000=沽零SAMP位時結束釆樣并啟動轉換bit 2ASAMA/D采樣自動啟動位:讓在上次轉換完成后立即開始采樣,同時SAMP位fl動置1 0= SAMP位置1時開始采樣bit 1SAMPA/D采樣使能位:1= A D模塊的采樣/保持器(S/H;進行采樣0=丸D模塊的采樣/保持器(S/H;保持采樣結果當ASAM = 0時.向該位打入1將啟動采樣|當SSRC<2:0> = 000時.向該位寫入0將 結束釆樣并啟動轉換bit
11、 0DONEA/D轉換狀態(tài)位:1= A. D轉換(隊列)己完成0= A/D轉換(隊列)未完成在啟動斯的轉換時該位fl動淸狽也可軟件清拿清寒該位不影響止在進行的仃 何操作。其余位未用讀為0復位時,AD0N位(AD1CON1<15>)為"0“ A/D虞塊被禁止。若用八程序未用A/D轉 換,可使用復位的默認狀態(tài),以降低小片機功耗.若用戶程序需使用A/D轉換.應置ADON 位(AD1CON1<15>)為 T oP1C24系列單片機馀理9開發(fā)by Zeng2012-6.9位ASAM和位SAMP管理看S/H的采樣過程。若ASAM位=“1J則只要A/D轉換完畢就 立即進行采
12、樣(勺SAMP位的設置無關),同時置SAMP泣為寂1” .這種方式為門動采樣若 ASAM位=©,則為所謂的手動采樣方式。在手動采樣方式匚 置SAMP位為 T - S/H 對輸入的信號采樣:將SAMP位清“0” S/HI析開英輸入信號.保持采樣結果。垃然.這種 方式下用戶只要對SAMP位進行操作,便可靈活地控制采樣與保持。采樣完成后,應啟動A/D轉換。PIC24F提供仃4種啟動A/D轉換的方式,由位域 SSRC<2:0>的賦值確宦。對于自動轉換方式(SSRC2:O>=“111”),釆樣時間由寄存屢AD1C0X3 中的設置值(131個A/D的時鐘周期Tad)所確定,采樣
13、完畢硬件自動啟動A/D轉換.另 外3種結束采樣且啟動A/D轉換的方式為:定時器Timer3發(fā)生匹配時.INTO引腳產生有 效電平和淸零SAMP位。對于它們的編程將在卜面的應用例程屮給予進一步說明FORM<1:O>位選擇轉換結果的存儲格式(結果緩沖器ADCIBUFx 4*)。例如,設輸入電爪 = 1V,參考電壓為3. 3V,轉換結果的4種存儲格式分別為:無符號整數(shù)格式:N0=1023*l/3. 3=310=0x136帶符號整數(shù)格式:'1=1023*(1-1. 65)/3. 3=-201=3xFF37 補碼表示無符號小數(shù)格式:N2= (1023*1/3. 3)«6=0
14、x lD80常符號小數(shù)格式:N3= (1023*(1-1. 65)/3. 3)«6=OxCDCO 補碼農示由上可見,當選擇用小數(shù)存儲格式時,其結果為相應整數(shù)格式右移6位所得.因小數(shù)格 式的數(shù)據(jù)比冇效位也是10位.故K接使用小數(shù)格式數(shù)抑町能帶來額外的轉換誤差.建議用 戶編程采用無符號整數(shù)格式或帶符號整數(shù)格式.例如初始化為:A/D模塊OFF, FORM: 00-整數(shù)格式,SSRC:1U-采樣nTAD后啟動轉 換,ASAM:O-SAMP位啟動采樣,SAMP:O « A/D控制寄存器1的賦值語句為:AD1C0N1 =0x00E0;6.2.2控制寄存器2 AD1C0N2農62所列為控
15、制寄存器AD1CON2的各位域結構和定義。該寄存器主要是設置A/D 的參考電爪.輸入通道扔描.每次中斷的轉換通道數(shù)等關鍵參數(shù)。?<6-2 : AD1CON2 : A/D控制奇存器2族位功能定義RA/VPR/W0RM/-0U-0U-0RW-0U-0U-0VCFG<2:0>未用未用CSCNA未用未用bit 15bit 8R-0U-0R/W0R/W -0R/W -0RM/-0R/W-0R/W -0BUFS未用SMPI<3:0>BUFMALTSbit 7bit 0其中:U二未用(讀為0兒R=町讀.歸可寫.-n二上電復位值bit 15-13VCFG<2:0>參舌
16、電壓尸置廣Vr+Vr000AVddAVss001外前VREF+引腳AVss010AVdd外部Vref -引腳Oil外前VREF+引腳外SfVREF-引腳lxxAVddAVssbit 10CSCNA打描輸入迭擇位:1=打描輸入:。二不扌1描輸入(掃描是礙自與CHO相連的冬路斤關MUX A的輸入角道)bit 7BUFS緩沖器填充狀念位:1 = A/D lijiJiE在填充ADC1BUF8-ADC1BUFF,此時可讀取ADC1BUF0-ADC1BUF7 中 的數(shù)據(jù)0= A D 半前正在填允ADC1BUF0-ADC1BUF7.此時町讀取ADC1BUF8-ADC1BUFF 中 的數(shù)據(jù)bit 5-2SMP
17、I<3:0>毎次中斷所采樣/轉換的通道數(shù)選擇:1111=金每組序列第16個采樣/轉換序列的轉換完成時產生中*1110=金每組序列第15個采樣/轉換序列的轉換完成時產生屮斷0001=在每組序列第2個采樣/轉換序列的轉換完成時產生中斷0000=在毎個采樣/犧換毋列的轉換完成時產生屮斷bit 1BUFM緩沖器模式選擇位:1=緩沖器配置為兩個8字緩沖器(ADC1BLT0-ADC1BUF7和 ADC1BUF8-ADC1BUFF)0=緩沖器配匱為一個16字緩沖器(ADC1BVF0-ADC1BVFF)bit 0ALTS交件輸入采樣模式選擇位:1 =對于第一次采樣.使川Ml*X A輸入?yún)⒙烽_關設然
18、后対于所創(chuàng)續(xù)采 樣.在MUX B和HVX A輸入多路開關設迓之間交祎0 =始終使用MUX A輸入篡埒開關設置其余位未用讀為0A/D轉換器的參考電JE±VCFG<2:0>位選擇。如果沒仃特殊要求,可選擇AVDD_AVSS < ADlC0N2bits. VCFG=0;或ADlC02bits. VCFG=4;).這樣可省出VREF+和 VREF引腳作 I/O用若使用外部參考電壓,VREF+和VREF都不能是負電壓。乞輸入通道的模擬電爪 也不能是負電壓。CSCNA位(ADlC02<10>)直“1”為掃描輸入方式.在打描輸入方式時,總是使用爹路 開關MUX A來切
19、換模擬輸入通道.并冃通道選擇寄存器AD1CHS屮的通道選擇位 CH0SA<3:0>不起作用,由AD1CSSL寄存器指定的通道進行順序采樣.掃描輸入方式的工 作過程是:對AD1CSSL寄存器屮的為的位所對應的n個模擬通道,從編號小到編號 大的輸入ANx逐一進行采樣、轉換和存儲,育到n個模擬通道的“扔描”完成.若位域 SMPI<3:0>設置的通道數(shù)等丁AD1CSSL寄存器中定義的模擬通道數(shù)n.則每“掃描”轉換- 次這n個通道后產生屮斷.供用門在屮斷服務中讀取這n個轉換結果。顯然,對于多路模擬 信號的采集,用這種方式編程尤為介適.位域SMPI的另一個作用是(與扌寸描輸入方式無
20、關),J設置值決定了轉換結果隊列的 存儲順序。為敘述方便記結果緩沖器為ADCBUFti,!, 1,15o若SMPI = n>則第1個轉換值”于ADCBUFEO,第i個轉換值存于ADCBUFi-l/ft到第n+1個轉換值存于ADCBUFLn 然后又從ADCBUFO開始存儲周而復始。默認情況F (位ALTS (ADlC0N2<0>= “0”),A/D轉換器便用多路開關MUX A切換所 選的輸入通道。也可將位ALTS置r” 用于模塊在連續(xù)采樣期間由MUX A和MUX B的設 置進行輪換采樣.6. 2. 3控制寄存器3 AD1C0N3表6-3控制寄存器AD1C0X3備位的功能和定義.
21、該寄存器主要是設置A/D的時鐘源、 時鐘的速率和采樣時間。龍6-3 : AD1CON3 : A/D控制寄存器3兒位功能定義PIC24系列單片機馀理9開發(fā) by Zeng2012-6-9R7W-0U-0U-0R/W£R/W£R/W-0R/W0R/W-0ADRC未用未用SAMC<4:0>bit 15bit 8R/w-0RA/V-0R/W-0R/W-0R/W0R/W0RA/V-0R/W0ADCS<7:0>bit 7bit 0其中:U二未用(讀為0兒R二町阻 V二對寫 -n二上電復位值bit 15ADRCA/D轉換齋的時鐘療選杼位:1 = A/D橫塊的內託R
22、C時鐘0 =單片機的系統(tǒng)時鐘bit 12-8SAMC<4:0>自動采樣時間i殳置位:11111 = 31 Tad00001 = 1 Tad00000 = 0 Tad (不推薦)bit 7-0ADCS <7:0>A/D轉換時鐘選擇位*11111111= 128 Tcy11111110= 127 TcyOOOOOCOl = Tcy00000000 = Tcy/2(Tcylilfi 令時忡的周期)其余位未用讀為0PIC24芯片的A/D轉換器為逐次逼近型(SAR)。id A/D轉換器的時鐘周期為Tad. SAR 完成一次A/D轉換需要12個A/D時鐘周期(12 Tad). A/
23、D轉換器的時鐘可以是A/D模塊內 的RC振蕩器時鐘(位ADRC=十),RC時鐘的周期典型值為250ns:也可以選擇由指令時 鐘Fey分頻后獲得(位ADRC="(r )分頻數(shù)由位域AD3S <7:0>的取值確定.并且要滿足Tad N 75 ns。實際應用中,-般多用拆令時鐘源。下而的式(6-1)和式(6-2)給出Tad 與位域ADCS取值以及指令周期TeyZ間的關系:Tad = Tcy* (ADCS+ 1)/2(6-1)ADCS= (2*TAD/Tcy) -1(6-2)例如役系統(tǒng)時鐘Fosc = 32M,指令周期Tcy = 2/32M=62. 5 ns:取Tad=156 n
24、s,則由 式(62)可算得:ADCS=2*156/62. 5-1 = 3. 992,取 ADCS = 4.置 ADCS 位域的 C30 語句可為:ADlC0N3bits. ADCS=4;位域SAMC<4:0>冬用于白動轉換方式的采樣時間設置。A/D模塊內仃 個5位的采樣時間 定時器,位域SAMC<4:0>就是該定時器的初值在門厲轉換方式(AD1C0N1的SSRC<2:0> = “111”)時無論何種方式心動采樣,也就圧心動了采樣時何定時器,便其對A/D的時鐘 脈沖作減計數(shù)。當采樣時間定時器的值等于零時.采樣/保持器(S/H)停止采樣進入保持, 同時啟動A/D
25、轉換。6. 2. 4 A/D輸入通道選擇寄存器AD1CHS寄存器AD1CHS用J:多路開關MUX A或MUX B選并輸入通道(AN0AX15) lj CH0 (即 采樣/保持器S/H的輸入)的正端接通以及CH0的負端所接通的量(AN1或Vr)。表6-4列 出了輸入通道選擇寄存器AD1CHS的位結構和定義。龍6T : AD1CHS : A/D輸入通道選擇奮存器并位功能宦義R7W-0U-0U-0U-0R/W£R/W-0R/W -0R/W0CHONB未用未用未用CH0SB<3:0>bit 15bit SR/w-0U-0U-0U-0R/W0RM/-0R/W-0R/W0CHONA未
26、用未用CH0SA<3:0>bit 7bit 0其中:U=未用(讀為0) tR=iiJ瀆.»=可寫.-n =上電復位值bit 15CHONB多珞開關MUX B的旬輸入選樣位:1 = CHO的負輸入(即S川的皿)畀AN1 O=CHO的負輸入為Vrbit 11-8CH0SB<3:0>多胳開關MUXB的通道切換選樣(按通到60的正端v.nn): 1111 =CHO正夠入為AN151110 = CHO正輸入為AN141101二CHO正輸入為AN130001 =CHO正輸入為AN10000 =CHO正痢入為ANObit 7CHONA多胳片關MUX A的負諭入選擇位:1二C
27、HO的負輸入(即S/H的WL)為AN1 0二CHO的負輸入為Vbit 3-0CH0SA<3:0>多路開關MUXA的通道切換選擇(接通到CHO的正端mn): 1111 =CHO正諭入為AN151110= CHO正輸入為AN141101二CHO正輸入為AN130001 =CHO正豹入為AN10000 =CHO正輸入為ANO其余位未用讀為0對“掃描輸入”轉換方式(CSCNA位(AD1CON2<10>)為 T )位域CH0SA<3:0>不起 作用用八只需定義好CH0NA位(一般用復位默認值CHON A =),通道的選擇由模塊自行切換.無需用戶編程選擇。6. 2. 5
28、 A/D端口配置寄存器AD1PCFGA/D端【配置寄存器AD1PCFG用于將16個與模擬輸入端SI用的I/O引腳定義成模擬 量輸入,或數(shù)字I/O.寄存器的bilO對應ANO、bit 1對應AN1.,依此類推。當引腳的模擬通道ANx對應的AD1PCEG寄存器的PCFGx位被消零時,引腳配置為 模擬彊輸入.對應的端11 RBx的數(shù)字輸入緩沖器被禁此 若讀PORTB寄存器時.對用的 引腳讀為 7:用作模擬輸入的端口引腳還必須將其輸入輸出方向寄存器TRISB対應的位 置“1”,指定為輸入。AD1PCFG寄存器的PCFGx位置“1”時,對應的引腳配置成數(shù)字I/O,其多路開關的 模擬輸入連接到AVSS.
29、AD1PCFG寄存器在器件復位時淸零與RB端I復用A/D輸入 引腳為模擬量輸入。如果與A/D通道ANx對應的I/O引腳的方向配置為數(shù)字輸IB (方向寄存器TRISB的 相W位清零人但引腳配遣為模擬輸入(ADIPCFGvxxO)則轉換的是該輸出I的數(shù)字輸 岀電平(VOH或VOL)。也就足說,對于配置成數(shù)字I/O的通道,亦可進行A/D轉換。 若轉換的通道為數(shù)字輸入則轉換的是引腳AVSS的電爪值:若其為數(shù)字輸出,則轉換的是 該輸出口的電斥值當然這樣做沒冇實際意義.農6-5 : AD1PCFG : A/D輔口趾置寄巨豎*位功能定義RM-0RAA/-0R/W0R/W0R/WOR/W-0R/W0RAA/-
30、0PCFG15PCFG14PCFG13PCFG12PCFG11PCFG10PCFG9| PCFG8bit 15R/w-0FVW-0R/W0R/W-0R/W0fVW-0FVW-0bit 8RA/V-0PCFG7PCFG6PCFG5PCFG4PCFG3PCFG2PCFG1| PCFGObit 7bit 0其中:,肥可瀆,也町寫上電復位值模擬輸入引昉配置位:bit 15-0PCFG<15:0> I =引腳配置尺數(shù)TU/0.相應的多陷JF關輸入埔接AVss0二引腳配直成模擬嵋入6. 2.6 MUX A的掃描通道選擇寄存器AD1CSSL掃描通道選擇寄存器AD1CSSL用于設置模擬輸入通道是否
31、加入扌I描隊列。若位CSSLx (x=015)置“1” 則對應的模擬輸入通道ANx (x=015)加入打描隊列°前面已指明,若控制寄存器AD1C0N2的位CSCNA為“1”,A/D為掃描輸入方式,使用 多路開關MI-XA對擇寄存器AD1CSSL指定的通道進疔順序采樣。采樣的順厚是山編兮小通 道到編號大通道。例如,設ADlCSS = Ob0010011001010010t打描采樣6個通道,順序為: AN1 -AN4->AN6-AN9-AN10AN13但需注意的是,若AD1CSSL寄存器所定義的打描通道數(shù)人于位域SMPI<3:0> (AD1CON2<5:2>
32、)所設査的通道數(shù)(毎次屮斷所采樣/轉換的通道數(shù)). 則不會采樣超過的那部分通道。例如.仍設ADlCSS = Ob0010011001010010.打描采樣6個 通道,若 ADlC0N2bits. SMPI=4,則不會采樣 AN13。AD1CSSL的位只用來指定接通采樣保持器(S/H)的止輸入端(VinH)的模擬通道,采樣 保持器的負輸入端(VinL)仍由選擇位CHONA(AD1CHS<7»的賦值確定。1 = ”序扌描C通道0二不掃描該通道掃描只對多路開關MUXA的輸入通道進行.如果同時將交替輸入采樣模式選擇位ALTS (ADlC0N2<0>)置“1” ,則仍為MUX
33、 A和MUX B Z間交替采樣.這時,將由AD1CSSL寄 存器指宦的-組打描輸入通道和由位域CH0SB<3:0> (AD1CHS<11:8>)指定的某個輸入通道 Z間交替采樣。RA/V£R/W0R/W0R/W0R/WOR/W0R/W0R/W0CSSL15CSSL14CSSL13CSSL12CSSL11CSSL10CSSL9CSSL8bit 15R/w-0R/W-0R/W0R/W -0R/W0R/W0R/W-0bit SR/W -0CSSL7CSSL6CSSL5CSSL4CSSL3CSSL2CSSL1CSSLO農66 : AD1CSSL:扌I描通道選擇寄存器b
34、it 7b it 0其中二可讀.W=可寫.-n =上電復位值 bZ57 |cSSL<15:0>Wd輸入通道朋選擇位:6. 3 A/D結果緩沖器A/D模塊包含一個16字的雙端口 RAM (稱為ADC1BUF),用于存儲A/D的轉換 結果.這16個緩沖器單元稱為ADC1BUFO-ADC1BUFF. A/D結果緩沖器是只讀的每 個單元均映射到數(shù)據(jù)存儲空間,可單獨訪問.P1C24系列單片機馀理9開發(fā) by Zeng2012-6.96.4 A/D模塊的編程般步驟和要點6.4.1 A/D模塊配置的初始化在進行A/D轉換Z前需對模塊進行配置,U卩初始先A/D模塊的族控制寄存器。初始化 工作一般包
35、含以卜內容:1. 選擇參考電爪源,一般町取芯片的模擬電壓引腳AVDD/AVSS。2. 設置A/D的時鐘Tad。一般用指令時鐘源,設置好分頻系數(shù),需滿足Tad N 75 ns .3. 出置模擬通道引腳。將AD1PCFG寄存器中所對應模擬通道的位消“0”,并且RB 口的方向寄存器TRISB相應的位置 T o4. 選擇采樣、轉換觸發(fā)控制方式。5. 若采用扔描輸入方式,需定義好打描通道和n動采樣時間采樣時間應大于等于芯 片的最小值(750ns) o 一般,掃描通道數(shù)n等于SMPI (AD1CON2<5:2>) +1。6. 設世數(shù)據(jù)輸出格式,以及數(shù)據(jù)緩沖器模式(16個數(shù)抑:緩沖器或2組每組8
36、個緩沖器)。7. 打開 A/D 模塊:將位 ADON (AD1CON1<15>)直 “1” .8. 若使用中斷,需設置每次中斷所采集的通道數(shù)、A/D中斷優(yōu)先級和使能A/D中斷。根據(jù)PIC24芯片的手冊提示,當 位ADON (AD1CON1<15>)為時,不要寫SSRC、 ASAM. BUFS SMPI. BUFM和ALTS這些位以及AD1C0N3和AD1CSSL寄«器。否則町能產生 不確定的轉換數(shù)據(jù).因此在初始化AD1C0N1時.可將位ADO送“0” 全部初始化完成后 再將位ADON置“1” o6.4. 2采樣和轉換控制1. 手動采樣、轉換所謂“手動”是指在程
37、序中用軟件氏接操作控制寄存器來啟動采樣/保持器(S/H)對其 輸入端采樣和A/D轉換。從表6 1知.當ASAM位(AD1CO12)為零時,廿將SAMP位 (AD1CON1<1> )置“ 1 ”則啟動S/H采樣。啟動S/H采樣后,根據(jù)位域 SSRC<2:O>(AD1CON1<7:5»的設置可冇如下4種方法結束采樣,S/H進入保持.同時啟動 A/D轉換:(1) SSRC<2:O>=111:當采樣定時器減至0時結束采樣。采樣時間等位域SAMC<4:0>(AD1CON3<12:8>)的值乘以A/D的時鐘周期Tad。(2) SS
38、RC<2:0>=000:消零SAMP位時結束采樣。采樣時間等于SAMP位置“1”到SAMP 位淸“0”的間隔時間.(3) SSRC<2:0> = 010:采樣時間等于SAMP位置“1”到定時器Timer3發(fā)生匹配時結 束采樣。若將SAMP位置“1 ”的同時啟動Timer3,則采樣時間等于Timer3的定時 時間.(4) SSRC<2:0>=001: INTO引腳產牛仃效跳變時結束采樣采樣時間等于SAMP位置到INTO引腳產生有效跳變的間隔時何。中斷控制寄存器2中的INTOEP位 (INTC0N2<0>)定義外部中斷INTO觸發(fā)沿極件:1=卜跳沿中
39、斷> 0 =上升沿中 斷。2. 門動采樣、轉換2;: ASAM位(AD1CON12>) S 1-則A/D轉換雄在轉換完成后芯片fl動將SAMP位 (AD1CON1<1>)就1 啟動S/H采樣。結束采樣(S/H進入保持)1丄同時啟動A/D轉換號上 而的手動采樣、轉換相同.無論是于動還是門動采樣,只要結束采樣,則同時啟動A/D轉換.經(jīng)過12個Tad時鐘脈沖.A/D轉換完成.轉換的數(shù)據(jù)按位域FORM<1:O>(AD1CON1<9:8»定義的格式送結果緩沖 酩 同時標志位DONE(AD1CON1<O>)置“1” 控制寄存器AD1C0N2中
40、的每次中斷的采樣/轉換的通道數(shù),即位域SMPI<3:0> (AD1CON2<5:2>)的設置值決定了轉換結果隊列的何噸序。/;: SMPI3:0>= "0000”,每 次的轉換結果存于寄存器ADC1BUF0屮。若SMPI<3:0>= u0001M 則第一次轉換結果存于 寄存器ADC1BUF0中,第二次轉換結果存J: ADC1BUF1屮,第三次轉換結果心ADC1BUF0 中,o設SMPI<3:0>=n,第一次轉換結果存于寄存器ADC1BUF0中.第i次轉換結果存 干ADCIBUFiT中,直到第nT次轉換結果存于ADClBUFn中:然
41、后又從頭開始,周而復始.注意,對于參通道的A/D轉換(非打描方式),在采樣Z前用戶需編程切換通道,例如 改變AD1CHS寄存器屮的位域CH0SA<3:0>的值,便*路開關MUXA接通相應的模擬以;輸入3. 掃描輸入方式采樣.轉換CSCNA位(ADlC0N2<10>)置“1”為掃描輸入方式.所謂“扌I描輸入”方式的功能是, A/D模塊使用多路開關MUXA自動地順序切換輸入通道.進行采樣.轉換和存儲。顯然,對 多通道數(shù)據(jù)采集這種方式的編程簡單.轉換效率高。采用“掃描輸入”方式”需設置好打描 通道選擇寄存器AD1CSSL.采樣時間(位域SAMC (AD1CON3<12:
42、8>)和每次中斷的采樣/ 轉換通道次數(shù)(位域SMPI (AD1CON2<5:2>) > 般取每次中斷的采樣/轉換通道;掃描通道數(shù).即位域SMPI + 1等于AD1CSSL屮為“1”的個數(shù)m這樣.每“掃描” 一次這 r個輸入通道便產生一次中斷,用戶在中斷服務程序屮讀取ADC 1BUF0 - ADC I BUFn-1寄 存器屮這n個轉換結果即可。在掃描方式卜將自動采樣位ASAM (AD1C0門<2>)置“就 進入了 描輸入”方式的采樣和轉換,直到位ASAM清“0”為止 “打描輸入”方式的具 體編程請參見例6 7。6.5 A/D模塊的編程應用實例以卜示例屮未作初始
43、化的寄存器均用其復位值.例6 1:單通道手動采樣,手動轉換。卜面C程序段對A/D模塊初始化:通道AN2/RB2 作為模擬輸入端,參考電壓用AVDD_AVSS不扌訂描輸入,使用多路開關MUXA采用系統(tǒng)時鐘.;刈采樣.動心動轉換。本例和丿二血的例枳均設置了一個whiled)死循環(huán)以便演示 這種方式卜的A/D轉換過程.用戶可根據(jù)實際情況作相應修改例中延時程序Delayusdnt n) 采用行內匯編編丐圖6 3足這種工作模式卜的采樣、轉換工作過程示意圖。Delayus(lO);ADlCONlbits. SAMP=O; while (lADICOXIbits.DONE); ADCValue ADC1BU
44、F0;延時lOus結束采樣、心動轉換等待A/D轉換完轉換結果送變吊ADCValueint ADCValue;int main ( void ) ADlPCFG=OxFFFB;通道AN2作為模擬輸入端ADlCONl=OxOOOO;位ADON=0; SSRC<2: 0>=0:位SAMP=O結束采樣同時啟動A/D轉換位ASAM=O:手動采樣AD1CON2=O;ADlC0N3bits. ADCS=4;參考電爪:AVDD.AVSS>不掃描.使用MUX A.位域SMPI = O /A/D的時鐘周期Tad = 2. 5*Tcy, Tcy是指令時鐘周期AD1CHS= 0x0002; ADlC
45、ONlbits. ADON=1; while (1)/CH0SA<3:0>=2: MUX A 接通 AN2使能A/D模塊循環(huán) ADlCONlbits. SAMP=1;啟動采樣同時使DONE標志淸零(ADlCONlbits. DOXE=O)PIC24系列單片機馀理9開發(fā)by Zeng2012-6.9void Delayus(int n) for(; n!=0; n)asm ( "repeat #10"); asm ( "nop");SAMP1TsanpDO7Fj-Tiutiv TconvADC1BUH)1數(shù)據(jù)更新數(shù)據(jù)更新執(zhí)行指令!執(zhí)行指令i執(zhí)行
46、折令執(zhí)行描令1SAMP=1.J.S AMP=O SAMP=1SAMP=OTsampt采樣時間(木例為Delayus(lO)的延時時間八 Tconv, A/D的轉換時間(12個T.g)圖6-3例6-1的A/D轉換工作時宇例62:單通道口動采樣,手動轉換。本例初始億置ASAM位為“1”,其余與例61 相同.在這種匸作模式卜只要A/D轉換一完成就自動立即啟動采樣.采樣標志位SAMP(AD1C0NK1)由硬件置T.轉換完標志DONE(AD1CON1<O>)在啟動A/D轉換時自動清“0” , 用八也可以在讀取轉換結果后用指令請P' o圖6_4示意了這種匸作模式卜的單通道采樣、 轉換工
47、作過程int ADCValue;int main ( void ) ADlPCFG=OxFFFB;通道AN2作為模擬輸入端ADlCONl=0x0004;位ADON=O, SSRC<2:0>=0:位SAMP=O結束采樣同時啟動A/D轉換位ASAM = 1:自動采樣AD1CON2=0;ADlC0N3bits. ADCS=4;參考電壓:AVDD_AVSS不掃描.使用MUX A,位域SMPI = O /A/D的時鐘周期TAD = 2.5*Tcy, Tcy是指令時鐘周期AD1CHS= 0x0002;ADlCONlbits. ADON = 1 while (1) Delayus(lO);/CH
48、0SA<3:0>=2: MUX A 接通 AN2 ;/使能A/D模塊循環(huán)/延時10usADlCONlbits. SAMP = 0;/結束采樣、啟動轉換while (lADICOXIbits.DONE); 等待A/D轉換完 ADCValue= ADC1BUF0;/轉換結果送變量 ADCValueSAMPiTsanipTsanpJTsanpjiDONPccTconvTconv94ADC1BUH)數(shù)據(jù)更新數(shù)撫更新執(zhí)行指令ADON=1執(zhí)行折令 SAMP=O執(zhí)行指令 SAMP=O執(zhí)行折令 SAMP=OTsantp:采樣時間(木例為Delayus(lO)的延時時間):Tconvt A/D的轉換
49、時間(12個T©)圖6-4例6-2的A/D轉換丁作時序例6 3:巾通道手動啟動采樣一硬件延時N*TADfl動啟動轉換。上述兩例的采樣時間 長短均由指令控制.這種方式只適合一些簡單的W用場合。從編程和轉換效率占 -般更 希望采樣時間可自動控制.PIC24的A/D模塊提供了這種方式o若初始化控制寄存器AD1C0M 的位域SSRC<2:0> = 7,位域SAMC (AD1CON3<12:8> ) =* 則在啟動采樣后,經(jīng)、個Tad時鐘 周期,S/H進入保持同時啟動A/D轉換。本例設N=5, TXD = 2.5*Tcy;若指令時鐘為16MHz- 則采樣時間=5*2.5
50、*O.O625us.約為0.78uso圖6 5示意了這種丁作模式卜的采樣、轉換工作 過程。int ADC'alue;int main ( void ) ADlPCFG=OxFFFB: ADlCONl=OxOOOO; ADlCONlbits. SSRC=7; AD1CON2=0;ADlC0N3bits. ADCS=4; ADlC0N3bits. SAMC=5;/通道AN2作為模擬輸入端位ADON = 0:位ASAM=O:手動采樣/SSRC<2:0>=7: «更件延時N*Tad參考電壓:AVDD.AVSS,不打描,使用MUX A,位域SMPI=0 /A/D的時鐘周期T
51、AD = 2.5*Tcy> Tcy是指令時鐘周期 /N=5ADlCHS=0x0002;/CH0SA<3:0>=2: MUX A 接通 AN2ADlCONlbits. ADON=1; 使能A/D模塊whiled)/循環(huán) Delayus(lO);延時lOusADlCONlbits. SAMP = 1; 啟動采樣 while(!ADlCONlbits. DONE);等待A/D轉換立ADCValue= ADC1BLT0;轉換結果送變量 ADCValueSAMPjTsampL TsanpJIIX )X1 卜TconvTconvADC1BUH)數(shù)據(jù)更新數(shù)據(jù)更新執(zhí)行折令執(zhí)fj描令ISAMP
52、二1SAMP=1Tsamp:采樣時間二N*Tad: Tconvz A/D的轉換時何(12個Tw)圖6-5例6-3的A/D轉換工作時宇例6-4:單通道口動采樣一硬件延時N*Tad 自動啟動轉換。這種方式只要啟動采樣后 (置ASAM位為“或使能A/D模塊).采樣一轉換過程連續(xù)不斷進行,直到ASAM位淸縱0” 為止。本例每隔10ms S AS AM位為 T ,連續(xù)采樣轉換8次申請中斷(位域SMPI=7) 在A/D 的屮斷服務程序中停止自動采樣.并將8個A/D值(ADC1BUF0ADC1BUF7)取平均送變杲 ADCValueoint ADCValue; int main ( void ) ADlPC
53、FG=OxFFFB; ADlCONlbits. SSRC=7; AD1CON2=O;通道AN2作為模擬輸入端/ SSRC<2:0>=7:件延時N拿Tm參考電壓:AVDD_AVSS,不扌T描,使用MUX AADlCON2bits. SMPI=7;ADlCON3bits. ADCS=1;ADlCON3bits. SAMC=5;/毎轉換8次產生屮斷/ A/D的時鐘周期TAo = 2.5*Tcy, Tcy足指令時鐘周期 /N=5ADlCHS=0x0002;SRbits. IPL=3;/CH0SA<3:0>=2: MUX A 接通 AX2/置CPU優(yōu)先級為3IPC3bits. A
54、D1IP=5;IFSObits. AD1IF=O;/逍A/D的優(yōu)先級5清A/D中斷標志IECObits. AD1IE=1; ADlCONlbits. ADON=1; whiled) Delayus(10000);允許A/D中斷/使能A/D模塊/循環(huán)/延時10msADlCONlbits. ASAM=1; / 啟動自動采樣/= ADC1 中斷服務程序=:=void _attribute_(_interrupt_, no_auto_psv) _ADC1 Interrupt (void) int n, *BufPtr;IFSObits. AD1IF=O;清中斷標志ADlCONlbits. ASAM=O
55、;/停止自動采樣BufPtr=&ADClBVFO;/指針指向ADBUF0單元for (n=0, ADCVralue=O;n<8; n+) ADCValue* = *BufPtr; BufPvr+ ; 求8次轉換值的和 ADCValue= ADCValue»3;/求平均值關J: “門動采樣一破件延時N仃動心動轉換”運行方式的進-步分析說明。初看 尼來程序實現(xiàn)了每隔10ms連續(xù)采集8次數(shù)據(jù)的功能,其實不然。在程序的A/D模塊ISR中,雖 然清ASAM位(ADlCONlbits.ASAM = 0)町以停止自動采胳但是并不能立即停止采樣和轉換. 實際上當每一輪(即每10ms.記為第k輪)A/D轉換完第8次數(shù)據(jù)申請中斷的同時也立即啟動了 采樣(自動采樣:A/D轉換完立即開始采樣)。雖然在A/D的ISR屮清了ASAM位.因采樣時間 (。更件延時N叮ad) E1JA/D模塊門己控制.故并不
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農業(yè)產業(yè)園區(qū)投資合作協(xié)議
- 建筑工程玻璃貼膜合同
- 股權激勵保密協(xié)議書
- 公關攝影師聘用合同
- 合伙美容院合同
- 財產分割離婚協(xié)議
- 工業(yè)互聯(lián)網(wǎng)平臺建設與優(yōu)化方案
- 裝修施工安全合同協(xié)議書
- 醫(yī)院大樓裝修工程承包協(xié)議書
- 以車抵押借款合同
- 《事故汽車常用零部件修復與更換判別規(guī)范》
- 2024-2030年中國酒類流通行業(yè)發(fā)展動態(tài)及投資盈利預測研究報告
- 物業(yè)管理如何實現(xiàn)降本增效
- DL-T825-2021電能計量裝置安裝接線規(guī)則
- 信息科技重大版 七年級下冊 互聯(lián)網(wǎng)應用與創(chuàng)新 第一單元單元教學設計 互聯(lián)網(wǎng)創(chuàng)新應用
- 2024年興業(yè)銀行股份有限公司校園招聘考試試題及參考答案
- 2024智慧城市城市交通基礎設施智能監(jiān)測技術要求
- 2024年湖南環(huán)境生物職業(yè)技術學院單招職業(yè)適應性測試題庫及參考答案
- 專題06 壓強計算(壓強與浮力結合題)-上海市2024年中考復習資料匯編(培優(yōu)專用)【解析版】
- 湖北省崇陽縣浪口溫泉地熱田地熱資源開發(fā)利用與生態(tài)復綠方案
- 《工程建設標準強制性條文電力工程部分2023年版》
評論
0/150
提交評論