單片機(jī)原理與應(yīng)用_第六章_第1頁(yè)
單片機(jī)原理與應(yīng)用_第六章_第2頁(yè)
單片機(jī)原理與應(yīng)用_第六章_第3頁(yè)
單片機(jī)原理與應(yīng)用_第六章_第4頁(yè)
單片機(jī)原理與應(yīng)用_第六章_第5頁(yè)
已閱讀5頁(yè),還剩44頁(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、單片機(jī)原理與設(shè)計(jì)第6章 其他接口與模擬外設(shè)生命科學(xué)與生物工程學(xué)院生命科學(xué)與生物工程學(xué)院12位ADC(ADC0) C8051F020/1的 ADC0 子系統(tǒng)包括 一個(gè) 9 通道的可編程模擬多路選擇器(AMUX0) 一個(gè)可編程增益放大器(PGA0) 一個(gè) 100ksps、12 位分辨率的逐次逼近寄存器型 ADC(ADC中集成了跟蹤保持電路和可編程窗口檢測(cè)器) AMUX0、PGA0、數(shù)據(jù)轉(zhuǎn)換方式及窗口檢測(cè)器都可用軟件通過(guò)下圖所示的特殊功能寄存器來(lái)控制。 電壓基準(zhǔn)(以后的課程中單獨(dú)講述) ADC0 控制寄存器中的AD0EN 位被置1時(shí)ADC0 子系統(tǒng)(ADC0、跟蹤保持器和PGA0)才被允許工作。 當(dāng)

2、 AD0EN位為0時(shí),AD0C 子系統(tǒng)處于低功耗關(guān)斷方式。12 位 ADC0 功能框圖模擬多路開關(guān)和PGA AMUX 中的 8 個(gè)通道用于外部測(cè)量 第九通道在內(nèi)部被接到片內(nèi)溫度傳感器 注意,PGA0 的增益對(duì)溫度傳感器也起作用。 可以將 AMUX 輸入對(duì)編程為工作在差分或單端方式。 在系統(tǒng)復(fù)位后 AMUX 的默認(rèn)方式為單端輸入。 有兩個(gè)與 AMUX 相關(guān)的寄存器:通道選擇寄存器 AMX0SL和配置寄存器 AMX0CF PGA 對(duì) AMUX 輸出信號(hào)的放大倍數(shù)由 ADC0 配置寄存器ADC0CF(圖 5.7)中的 AMP0GN2-0 確定AMX0CF: AMUX0 配置寄存器AMUX0SL: A

3、MUX0 通道選擇寄存器ADC0CF: ADC0 配置寄存器ADC0CN: ADC0 控制寄存器ADC0CN: ADC0 控制寄存器(續(xù))當(dāng)溫度傳感器被選中 (用 AMX0SL 中的 AMX0AD3-0)時(shí),其輸出電壓(VTEMP)是 PGA的輸入;PGA 對(duì)該電壓的放大倍數(shù)由用戶編程的 PGA設(shè)置值決定。 溫度傳感器的傳輸函數(shù)如圖所示ADC的工作方式 ADC0 的最高轉(zhuǎn)換速度為 100ksps,其轉(zhuǎn)換時(shí)鐘來(lái)源于系統(tǒng)時(shí)鐘分頻,分頻值保存在寄存器 ADC0CF的 ADCSC 位。啟動(dòng)轉(zhuǎn)換 有 4 種轉(zhuǎn)換啟動(dòng)方式,由 ADC0CN中的 ADC0啟動(dòng)轉(zhuǎn)換方式位(AD0CM1,AD0CM0)的狀態(tài)決定

4、。轉(zhuǎn)換觸發(fā)源有: 1 向 ADC0CN的 AD0BUSY 位寫 1; 2 定時(shí)器 3 溢出(即定時(shí)的連續(xù)轉(zhuǎn)換) ; 3 外部 ADC 轉(zhuǎn)換啟動(dòng)信號(hào)的上升沿,CNVSTR; 4 定時(shí)器 2 溢出(即定時(shí)的連續(xù)轉(zhuǎn)換) 。 AD0BUSY 位在轉(zhuǎn)換期間被置1 ,轉(zhuǎn)換結(jié)束后復(fù)0 AD0BUSY 位的下降沿觸發(fā)一個(gè)中斷(當(dāng)被允許時(shí))并將中斷標(biāo)志 AD0INT(ADC0CN.5)置1 轉(zhuǎn)換數(shù)據(jù)被保存在 ADC數(shù)據(jù)字的 MSB 和 LSB 寄存器:ADC0H 和 ADC0L。 轉(zhuǎn)換數(shù)據(jù)在寄存器對(duì) ADC0H:ADC0L 中的存儲(chǔ)方式可以是左對(duì)齊或右對(duì)齊,由 ADC0CN寄存器中 AD0LJST 位的編程狀態(tài)

5、決定。ADC的工作方式 (續(xù)) 當(dāng)通過(guò)向 AD0BUSY 寫 1 啟動(dòng)數(shù)據(jù)轉(zhuǎn)換時(shí), 應(yīng)查詢 AD0INT 位以確定轉(zhuǎn)換何時(shí)結(jié)束 (也可以使用 ADC0 中斷) 。建議的查詢步驟如下: 1 寫0到 AD0INT; 2 向 AD0BUSY 寫1 ; 3 查詢并等待 AD0INT 變1 ; 4 處理 ADC0 數(shù)據(jù) 跟蹤方式ADC0CN 中的 AD0TM 位控制 ADC0 的跟蹤保持方式。在缺省狀態(tài),除了轉(zhuǎn)換期間之外ADC0 輸入被連續(xù)跟蹤。當(dāng) AD0TM 位為邏輯1時(shí),ADC0 工作在低功耗跟蹤保持方式。在該方式下,每次轉(zhuǎn)換之前都有 3 個(gè) SAR 時(shí)鐘的跟蹤周期(在啟動(dòng)轉(zhuǎn)換信號(hào)有效之后) 。當(dāng)C

6、NVSTR 信號(hào)用于在低功耗跟蹤保持方式啟動(dòng)轉(zhuǎn)換時(shí), ADC0 只在 CNVSTR 為低電平時(shí)跟蹤;在 CNVSTR 的上升沿開始轉(zhuǎn)換 。當(dāng)整個(gè)芯片處于低功耗待機(jī)或休眠方式時(shí),跟蹤可以被禁止(關(guān)斷) 。當(dāng) AMUX 或 PGA的設(shè)置頻繁改變時(shí),低功耗跟蹤保持方式也非常有用,可以保證建立時(shí)間需求得到滿足12 位 ADC跟蹤和轉(zhuǎn)換時(shí)序舉例建立時(shí)間要求當(dāng) ADC0 輸入配置發(fā)生改變時(shí)(AMUX 或 PGA 的選擇發(fā)生變化) ,在進(jìn)行一次精確的轉(zhuǎn)換之前需要有一個(gè)最小的跟蹤時(shí)間。 該跟蹤時(shí)間由 ADC0 模擬多路器的電阻、 ADC0采樣電容、外部信號(hào)源阻抗及所要求的轉(zhuǎn)換精度決定。附圖給出了單端和差分方式

7、下等效的 ADC0 輸入電路。注意:這兩種等效電路的時(shí)間常數(shù)完全相同。對(duì)于一個(gè)給定的建立精度(SA) ,所需要的 ADC0 建立時(shí)間可以用下列方程 估算。其中: SA 是建立精度,用一個(gè) LSB 的分?jǐn)?shù)表示(例如,建立精度 0.25 對(duì)應(yīng) 1/4 LSB) t 為所需要的建立時(shí)間,以秒為單位 RTOTAL為 ADC0 模擬多路器電阻與外部信號(hào)源電阻之和 n 為 ADC0 的分辨率,用比特表示(12)當(dāng)測(cè)量溫度傳感器的輸出時(shí),RTOTAL等于 RMUX。注意:在低功耗跟蹤方式,每次轉(zhuǎn)換需要用三個(gè) SAR 時(shí)鐘跟蹤。對(duì)于大多數(shù)應(yīng)用,三個(gè) SAR 時(shí)鐘可以滿足跟蹤需要。建立時(shí)間要求(附圖-ADC0

8、等效輸入電路)ADC0H: ADC 數(shù)據(jù)字 MSB 寄存器ADC0L: ADC0 數(shù)據(jù)字 LSB 寄存器ADC0 數(shù)據(jù)字示例ADC0 數(shù)據(jù)字示例(續(xù))ADC0 可編程窗口檢測(cè)器ADC0 可編程窗口檢測(cè)器不停地將 ADC0 輸出與用戶編程的極限值進(jìn)行比較, 并在檢測(cè)到越限條件時(shí)通知系統(tǒng)控制器。這在一個(gè)中斷驅(qū)動(dòng)的系統(tǒng)中尤其有效,既可以節(jié)省代碼空間和CPU帶寬又能提供快速響應(yīng)時(shí)間。窗口檢測(cè)器中斷標(biāo)志(ADC0CN中的AD0WINT 位)也可被用于查詢方式。參考字的高和低字節(jié)被裝入到 ADC0 下限(大于)和 ADC0 上限(小于)寄存器(ADC0GTH、ADC0GTL、ADC0LTH和 ADC0LT

9、L) 。注意,窗口檢測(cè)器標(biāo)志既可以在測(cè)量數(shù)據(jù)位于用戶編程的極限值以內(nèi)時(shí)有效,也可以在測(cè)量數(shù)據(jù)位于用戶編程的極限值以外時(shí)有效,這取決于 ADC0GTx和 ADC0LTx 寄存器的編程值。 12 位 ADC0 窗口中斷示例:右對(duì)齊的單端數(shù)據(jù)12 位 ADC0 窗口中斷示例:右對(duì)齊的差分?jǐn)?shù)據(jù)12 位 ADC0 窗口中斷示例:左對(duì)齊的單端數(shù)據(jù) 12 位 ADC0 窗口中斷示例:左對(duì)齊的差分?jǐn)?shù)據(jù)ADC1(8位ADC) ADC1 子系統(tǒng)包括 一個(gè) 8 通道的可配置模擬多路開關(guān)(AMUX1) 一個(gè)可編程增益放大器 (PGA1) 一個(gè) 500ksps、 8 位分辨率的逐次逼近寄存器型 ADC, 該 ADC中集

10、成了跟蹤保持電路(見原理框圖) 。AMUX1、PGA1 及數(shù)據(jù)轉(zhuǎn)換方式都可用軟件通過(guò)相關(guān)的特殊功能寄存器來(lái)配置。 只有當(dāng) ADC1 控制寄存器 (ADC1CN) 中的 AD1EN位被置1時(shí) ADC1 子系統(tǒng)(8 位 ADC、跟蹤保持器和 PGA)才被使能。當(dāng) AD1EN位為0時(shí),ADC1 子系統(tǒng)處于低功耗關(guān)斷方式。 ADC1 功能原理框圖 模擬多路開關(guān)和PGA ADC1 有 8 個(gè)通道用于測(cè)量,用寄存器 AMX1SL選擇通道。PGA 對(duì) AMUX 輸出信號(hào)的放大倍數(shù)由 ADC1 配置寄存器 ADC1CF中的 AMP1GN2-0 確定。PGA增益可以用軟件編程為 0.5、1、2、4。復(fù)位時(shí)的默認(rèn)

11、增益為 0.5。 注意: AIN1 引腳也作為端口 1 的 I/O引腳,當(dāng)用作 ADC1 輸入時(shí)必須被配置為模擬輸入。 為了將 AIN1 的某個(gè)引腳配置為模擬輸入,要將寄存器 P1MDIN 中的對(duì)應(yīng)位設(shè)置為0 。被選作模擬輸入的端口1引腳不進(jìn)入數(shù)字I/O交叉開關(guān)。 ADC1 的工作方式 ADC1 的最高轉(zhuǎn)換速度為 500ksps。 ADC1 的轉(zhuǎn)換時(shí)鐘 (SAR1 時(shí)鐘) 來(lái)源于系統(tǒng)時(shí)鐘分頻。由 ADC1CF 寄存器的 AD1SC 位決定(系統(tǒng)時(shí)鐘/(AD1SC+1) ,0AD1SC31) 。 ADC1 轉(zhuǎn)換時(shí)鐘頻率最大為 6 MHz。 啟動(dòng)轉(zhuǎn)換 有 5 種 A/D轉(zhuǎn)換啟動(dòng)方式,由 ADC1C

12、N中的 ADC1 啟動(dòng)轉(zhuǎn)換方式位(AD1CM2-0)的編程狀態(tài)決定。轉(zhuǎn)換啟動(dòng)源有: 1. 向 ADC1CN的 AD1BUSY 位寫1 ; 2. 定時(shí)器 3 溢出(即定時(shí)的連續(xù)轉(zhuǎn)換) ; 3. 外部 ADC 轉(zhuǎn)換啟動(dòng)信號(hào) CNVSTR 的上升沿; 4. 定時(shí)器 2 溢出(即定時(shí)的連續(xù)轉(zhuǎn)換) 。 5. 向 ADC0CN的 AD0BUSY 位寫 1(用一個(gè)軟件命令啟動(dòng) ADC1 和 ADC0) 。 ADC1 的工作方式(續(xù)) AD1BUSY 位在轉(zhuǎn)換期間被置1 ,轉(zhuǎn)換結(jié)束后復(fù)0 。AD1BUSY 位的下降沿觸發(fā)一個(gè)中斷(當(dāng)被允許時(shí))并將 ADC1CN 中的中斷標(biāo)志置1 。轉(zhuǎn)換結(jié)果保存在 ADC1 的

13、數(shù)據(jù)字ADC1 中。 當(dāng)采用向 AD1BUSY 位寫1這一啟動(dòng)方式時(shí),建議通過(guò)查詢 AD1INT 來(lái)確定轉(zhuǎn)換何時(shí)完成。建議的查詢步驟如下: 1. 向 AD1INT 寫0 ; 2. 向 AD1BUSY 寫1 ; 3. 查詢并等待 AD1INT 變?yōu)? ; 4. 處理 ADC1 數(shù)據(jù)。 跟蹤方式ADC1CN 中的 AD1TM 位控制 ADC1 的跟蹤保持方式。在缺省狀態(tài),ADC1 輸入被連續(xù)跟蹤(轉(zhuǎn)換期間除外) 。當(dāng) AD1TM位被設(shè)置為邏輯1時(shí),ADC1 工作在低功耗跟蹤方式。在該方式下,每次轉(zhuǎn)換之前都要有三個(gè) SAR 時(shí)鐘的跟蹤周期(在啟動(dòng)轉(zhuǎn)換信號(hào)之后) 。當(dāng)在低功耗跟蹤方式下用 CNVSTR

14、 信號(hào)作為轉(zhuǎn)換啟動(dòng)源時(shí),只在CNVSTR 為低電平時(shí)跟蹤,從CNVSTR 的上升沿開始轉(zhuǎn)換 。當(dāng)整個(gè)芯片處于低功耗停機(jī)或休眠方式時(shí),跟蹤被禁止。由于需要有建立時(shí)間,所以低功耗跟蹤保持方式在需要頻繁改變 AMUX 和 PGA 的場(chǎng)合也是非常有用的。ADC1 跟蹤和轉(zhuǎn)換時(shí)序舉例 建立時(shí)間要求當(dāng) ADC1 輸入配置發(fā)生改變時(shí)(AMUX 或 PGA 的選擇發(fā)生變化) ,在進(jìn)行一次精確的轉(zhuǎn)換之前需要有一個(gè)最小的跟蹤時(shí)間。該跟蹤時(shí)間由 ADC1 模擬多路開關(guān)的電阻、ADC1 采樣電容、外部信號(hào)源阻抗及所要求的轉(zhuǎn)換精度決定。附圖給出了等效的 ADC1 輸入電路。對(duì)于一個(gè)給定的建立精度(SA) ,所需要的 A

15、DC1 建立時(shí)間可以用以下方程估算。其中: SA 是建立精度,用一個(gè) LSB 的分?jǐn)?shù)表示(例如,建立精度 0.25 對(duì)應(yīng) 1/4 LSB) t 為所需要的建立時(shí)間,以秒為單位 RTOTAL為 ADC1 模擬開關(guān)電阻與外部信號(hào)源電阻之和 n 為 ADC 的分辨率,用比特表示(8) 。 注意:在 MUX選擇發(fā)生改變后,最少需要 0.8 s 的建立時(shí)間;在低功耗跟蹤方式,每次轉(zhuǎn)換需要用三個(gè) SAR時(shí)鐘跟蹤。對(duì)于大多數(shù)應(yīng)用,三個(gè) SAR 時(shí)鐘可以滿足跟蹤需要。 ADC1 等效輸入電路ADC1CF: ADC1 配置寄存器AMX1SL: AMUX 配置寄存器ADC1CN: ADC1 控制寄存器ADC1CN

16、: ADC1 控制寄存器(續(xù))ADC1: ADC1 數(shù)據(jù)字寄存器12位電壓輸出DAC每個(gè) C8051F020/1/2/3 器件都有兩個(gè)片內(nèi) 12 位電壓方式數(shù)/模轉(zhuǎn)換器(DAC) 。每個(gè) DAC的輸出擺幅均為 0V 到(VREF-1LSB) ,對(duì)應(yīng)的輸入碼范圍是 0 x000 到 0 xFFF??梢杂脤?duì)應(yīng)的控制寄存器 DAC0CN和DAC1CN使能/禁止 DAC0 和 DAC1。在被禁止時(shí),DAC 的輸出保持在高阻狀態(tài),DAC 的供電電流降到 1A 或更小。每個(gè) DAC 的電壓基準(zhǔn)在 VREFD(C8051F020/2)或 VREF(C8051F021/3)引腳提供。注意:C8051F021/

17、3 的VREF引腳可以由內(nèi)部電壓基準(zhǔn)或一個(gè)外部源驅(qū)動(dòng)。 如果使用內(nèi)部電壓基準(zhǔn),為了使 DAC 輸出有效,該基準(zhǔn)必須被使能。DAC輸出更新 每個(gè) DAC 都具有靈活的輸出更新機(jī)制,允許無(wú)縫的滿度變化并支持無(wú)抖動(dòng)輸出更新,適合于波形發(fā)生器應(yīng)用。 DAC1 的操作與 DAC0 完全相同。 注意:讀 DAC0L 返回預(yù)鎖存數(shù)據(jù),所讀值是最后寫入到該寄存器的數(shù)據(jù),而不是 DAC0L 鎖存器中的值。DAC功能框圖 DAC輸出更新(續(xù)) 根據(jù)軟件命令更新輸出 在缺省方式下(DAC0CN.4:3 =00 ) ,DAC0 的輸出在寫 DAC0 數(shù)據(jù)寄存器高字節(jié)(DAC0H) 時(shí)更新。 注意: 寫 DAC0L時(shí)數(shù)

18、據(jù)被保持, 對(duì) DAC0 輸出沒有影響, 直到對(duì) DAC0H的寫操作發(fā)生。 如果向 DAC 數(shù)據(jù)寄存器寫入一個(gè) 12 位字,則 12 位的數(shù)據(jù)字被寫到低字節(jié)(DAC0L)和高字節(jié)(DAC0H)數(shù)據(jù)寄存器。在寫 DAC0H 寄存器后數(shù)據(jù)被鎖存到 DAC0。因此,如果需要 12 位分辨率,應(yīng)在寫入 DAC0L 之后寫 DAC0H。 DAC 可被用于 8 位方式,這種情況是將 DAC0L 初始化一個(gè)所希望的數(shù)值(通常為 0 x00) ,將數(shù)據(jù)只寫入 DAC0HDAC輸出更新(續(xù)) 基于定時(shí)器溢出的輸出更新 在 ADC 轉(zhuǎn)換操作中,ADC 轉(zhuǎn)換可以由定時(shí)器溢出啟動(dòng),不用處理器干預(yù)。 與之類似,DAC 的輸出更新也可以用定時(shí)器溢出事件觸發(fā)。 這一特點(diǎn)在用 DAC 產(chǎn)生一個(gè)固定采樣頻率的波形時(shí)尤其有用,可以消除中斷響應(yīng)時(shí)間不同和指令執(zhí)行時(shí)間不同對(duì) DAC 輸出時(shí)序的影響。 當(dāng) DAC0MD位(DAC0CN.4:3)被設(shè)置為01 、 10或11時(shí),對(duì)DAC 數(shù)據(jù)寄存器的寫操作被保持,直到相應(yīng)的定時(shí)器溢出事件(分別為定時(shí)器 3、定時(shí)器 4 或定時(shí)器 2)發(fā)生時(shí)DAC0H:DAC0L 的內(nèi)容才被復(fù)制到 DAC 輸入鎖存器,允許 DAC 數(shù)

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論