關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
SOC單片機(jī)原理與應(yīng)用
本書(shū)以C8051F020為例介紹了SOC型的單片機(jī)原理及應(yīng)用, 該系列單片機(jī)具有與MCS51完全兼容的指令內(nèi)核和豐富的外設(shè)接口及片內(nèi)資源。書(shū)中詳細(xì)敘述了該單片機(jī)的基本結(jié)構(gòu)、指令系統(tǒng)及用C51語(yǔ)言對(duì)片內(nèi)資源的編程方法、C8051F單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)方法及實(shí)驗(yàn)項(xiàng)目等方面的內(nèi)容。本書(shū)附有習(xí)題、實(shí)驗(yàn)題、應(yīng)用實(shí)例及程序源碼, 以供讀者練習(xí)。
第二版重點(diǎn)修改了有關(guān)知識(shí)點(diǎn)的敘述,盡量實(shí)用和簡(jiǎn)潔,刪除了部分不經(jīng)常用的器件的敘述,增加了部分實(shí)用項(xiàng)目的關(guān)鍵技術(shù)例程及解讀,對(duì)TI公司具有無(wú)線通信功能的51單片機(jī)進(jìn)行了簡(jiǎn)單的介紹。書(shū)中C51的介紹著重在與標(biāo)準(zhǔn)C語(yǔ)言的不同之處,讀者應(yīng)該在具備一定C語(yǔ)言編程知識(shí)的基礎(chǔ)上閱讀本書(shū)內(nèi)容。書(shū)中大部分章節(jié)附有習(xí)題,以供讀者練習(xí)。本書(shū)附件提供教學(xué)用PPT、實(shí)驗(yàn)的源代碼的電子文檔,供讀者參考。
單片微型計(jì)算機(jī)簡(jiǎn)稱(chēng)單片機(jī),是典型的嵌入式微控制器。隨著電子技術(shù)的飛速發(fā)展,目前的單片機(jī)已經(jīng)集成了A/D、D/A轉(zhuǎn)換器,存儲(chǔ)器,I2C,CAN、SPI總線接口及一些專(zhuān)用外設(shè),形成了SoC(System on Chip)型的單片機(jī),或稱(chēng)為系統(tǒng)級(jí)芯片,也有稱(chēng)片上系統(tǒng),在工業(yè)控制、機(jī)電一體化、通信終端、智能儀表、家用電器等諸多領(lǐng)域中得到了廣泛應(yīng)用,已成為傳統(tǒng)機(jī)電設(shè)備進(jìn)化為智能化機(jī)電設(shè)備的重要手段。因此高等理工科院校師生和工程技術(shù)人員了解和掌握SoC型的單片機(jī)原理和應(yīng)用技術(shù)是十分必要的。
目前單片機(jī)已經(jīng)形成很多種類(lèi),C8051F系列單片機(jī)就是一種典型的SoC型單片機(jī),原是Cygnal公司的產(chǎn)品,該公司于2003年并入Silicon Laboratories公司。C8051F系列單片機(jī)具有與MCS51完全兼容的指令內(nèi)核,采用流水線處理(pipe line)技術(shù),不再區(qū)分時(shí)鐘周期和機(jī)器周期,能在執(zhí)行指令期間預(yù)處理下一條指令,提高了指令執(zhí)行效率。而且大部分C8051F單片機(jī)具備控制系統(tǒng)所需的模擬和數(shù)字外設(shè),包括看門(mén)狗、ADC、DAC、電壓比較器、電壓基準(zhǔn)輸出、定時(shí)器、PWM、定時(shí)器捕捉和方波輸出等,并具備多種總線接口,包括UART、SPI、SMBUS(與I2C兼容)總線以及CAN總線等。C8051F系列單片機(jī)采用Flash ROM技術(shù),集成JTAG,支持在線編程和調(diào)試。C8051F系列單片機(jī)諸多特點(diǎn)和優(yōu)越性,使其廣受單片機(jī)系統(tǒng)設(shè)計(jì)工程師青睞,成為很多測(cè)控系統(tǒng)設(shè)計(jì)的首選機(jī)型。
本書(shū)以C8051F020為講述對(duì)象,是因?yàn)樵搯纹瑱C(jī)為C8051F系列單片機(jī)中功能較全、*具有代表性的一款。熟悉了C8051F020單片機(jī)工作原理和編程方法后,可較快地對(duì)C8051F系列的其他單片機(jī)上手編程。事實(shí)上,模擬和數(shù)字外設(shè)以及各種總線具有共性,因而本書(shū)也可作為其他廠商單片機(jī)的參考資料,書(shū)中例程稍加修改,即可應(yīng)用于其他單片機(jī)。而且本書(shū)大部分代碼采用C51語(yǔ)言編寫(xiě),這也是單片機(jī)應(yīng)用的發(fā)展方向,同時(shí)增強(qiáng)了程序的可讀性和可移植性。
書(shū)中對(duì)于C51的介紹著重在與標(biāo)準(zhǔn)C語(yǔ)言的不同之處,讀者應(yīng)該在具備一定C語(yǔ)言編程知識(shí)的基礎(chǔ)上閱讀本書(shū)內(nèi)容。書(shū)中大部分章節(jié)附有習(xí)題,以供讀者練習(xí)。本書(shū)配套提供教學(xué)用PPT、實(shí)驗(yàn)的源代碼的電子文檔(請(qǐng)?jiān)L問(wèn)清華大學(xué)出版社網(wǎng)站獲取),供讀者參考。
此次再版重點(diǎn)修改了有關(guān)知識(shí)點(diǎn)的敘述,盡量實(shí)用和簡(jiǎn)潔,刪除了部分不經(jīng)常用的器件的敘述,增加了部分實(shí)用項(xiàng)目的關(guān)鍵技術(shù)例程及解讀,對(duì)TI公司具有無(wú)線通信功能的51單片機(jī)進(jìn)行了簡(jiǎn)單的介紹。
本書(shū)由鮑可進(jìn)擔(dān)任主編,書(shū)中第1章、第2章、第5章由鮑可進(jìn)編寫(xiě),第4章由趙念強(qiáng)編寫(xiě),第3章由趙念強(qiáng)、申屠浩編寫(xiě)、第6章由申屠浩、趙念強(qiáng)編寫(xiě)、第7章由陳向益、鮑可進(jìn)編寫(xiě)、第8章由陳向益編寫(xiě),鮑可進(jìn)對(duì)全書(shū)進(jìn)行了修改并統(tǒng)稿。
在編寫(xiě)過(guò)程中,我們參考了有關(guān)書(shū)刊、資料,在此對(duì)有關(guān)作者一并表示感謝。
由于水平有限,書(shū)中不妥之處在所難免,懇請(qǐng)讀者批評(píng)指正。
編者
2016年9月
第1章概述
1.1單片機(jī)的發(fā)展概況
1.1.1單片機(jī)的發(fā)展歷史
1.1.2典型的8位單片機(jī)產(chǎn)品
1.2單片機(jī)的應(yīng)用及發(fā)展趨勢(shì)
1.2.1單片機(jī)的應(yīng)用
1.2.2單片機(jī)的發(fā)展趨勢(shì)
習(xí)題1
第2章SoC單片機(jī)的結(jié)構(gòu)與原理
2.1C8051F系列單片機(jī)總體結(jié)構(gòu)
2.1.1C8051F系列單片機(jī)簡(jiǎn)介
2.1.2CIP51內(nèi)核
2.1.3C8051F020單片機(jī)的片上資源
2.2C8051F020存儲(chǔ)器組織
2.2.1程序存儲(chǔ)器
2.2.2內(nèi)部數(shù)據(jù)存儲(chǔ)器
2.2.3特殊功能寄存器
2.2.4位尋址區(qū)
2.2.5外部RAM和片內(nèi)XRAM
2.3中斷系統(tǒng)
2.3.1中斷概念
2.3.2C8051F中斷系統(tǒng)
2.4端口輸入/輸出
2.4.1優(yōu)先權(quán)交叉開(kāi)關(guān)譯碼器
2.4.2端口0~3的I/O初始化
2.4.3端口4~7
2.4.4端口特殊功能寄存器
2.4.5交叉開(kāi)關(guān)引腳分配示例
2.4.6片上資源配置工具Config的應(yīng)用
2.5電源管理方式
2.5.1空閑方式
2.5.2停機(jī)方式
2.6復(fù)位與時(shí)鐘
2.6.1復(fù)位源
2.6.2上電/掉電復(fù)位
2.6.3外部復(fù)位
2.6.4內(nèi)部復(fù)位
2.6.5系統(tǒng)時(shí)鐘
習(xí)題2
第3章51單片機(jī)編程語(yǔ)言
3.1單片機(jī)的編程語(yǔ)言概述
3.2CIP51指令介紹
3.2.1尋址方式
3.2.251指令集
3.3匯編語(yǔ)言
3.3.1偽指令
3.3.2順序程序設(shè)計(jì)
3.3.3分支程序設(shè)計(jì)
3.3.4循環(huán)程序設(shè)計(jì)
3.3.5子程序設(shè)計(jì)
3.4C51語(yǔ)言
3.4.1C51關(guān)鍵字
3.4.2C51變量定義
3.4.3C51數(shù)據(jù)類(lèi)型
3.4.4C51指針類(lèi)型
3.4.5C51函數(shù)定義
3.4.6C51程序設(shè)計(jì)的注意事項(xiàng)
習(xí)題 3
第4章SoC單片機(jī)的片內(nèi)功能部件
4.1定時(shí)器/計(jì)數(shù)器
4.1.1定時(shí)器/計(jì)數(shù)器的一般結(jié)構(gòu)和工作原理
4.1.2定時(shí)器/計(jì)數(shù)器T0和T1
4.1.3定時(shí)器/計(jì)數(shù)器T2和T4
4.1.4定時(shí)器T3
4.2可編程計(jì)數(shù)器陣列
4.2.1PCA0交叉開(kāi)關(guān)配置
4.2.2PCA0的特殊功能寄存器
4.2.3PCA0定時(shí)器/計(jì)數(shù)器
4.2.4PCA0捕捉/比較模塊
4.2.5PCA0應(yīng)用舉例
4.3UART通信接口
4.3.1串行通信及基礎(chǔ)知識(shí)
4.3.2串行接口的組成和特性
4.3.3串行接口的工作方式
4.3.4波特率設(shè)計(jì)
4.3.5串行口應(yīng)用編程
4.3.6多機(jī)通信原理及應(yīng)用
習(xí)題4
第5章模/數(shù)和數(shù)/模轉(zhuǎn)換器
5.1模/數(shù)轉(zhuǎn)換器
5.1.1模數(shù)轉(zhuǎn)換原理和性能指標(biāo)
5.1.2C8051F020的ADC0功能結(jié)構(gòu)
5.1.3模擬多路選擇器和PGA
5.1.4ADC的工作方式
5.1.5ADC0 可編程窗口檢測(cè)器
5.1.6ADC1(8位ADC)
5.1.7模數(shù)轉(zhuǎn)換舉例
5.2數(shù)/模轉(zhuǎn)換器
5.2.1數(shù)模轉(zhuǎn)換原理及性能指標(biāo)
5.2.2C8051F020的DAC功能
第5章
模/數(shù)和數(shù)/模轉(zhuǎn)換器
A/D轉(zhuǎn)換器簡(jiǎn)寫(xiě)為ADC(Analog to Digital Converter),是一種能把模擬量轉(zhuǎn)換成相應(yīng)的數(shù)字量的電子器件。D/A轉(zhuǎn)換器簡(jiǎn)寫(xiě)為DAC(Digital To Analog Converter),與A/D轉(zhuǎn)換器相反,它能把數(shù)字量轉(zhuǎn)換成相應(yīng)的模擬量。在單片機(jī)控制系統(tǒng)中,經(jīng)常需要用到A/D和D/A轉(zhuǎn)換器。它們的功能及其在實(shí)時(shí)控制系統(tǒng)中的地位如圖51所示。由圖可見(jiàn),被控實(shí)體的過(guò)程信號(hào)可以是電量(如電流、電壓等),也可以是非電量(如溫度、壓力、傳速等),其數(shù)值是隨時(shí)間連續(xù)變化的。各種模擬量都可以通過(guò)變送器或傳感器變換成相應(yīng)的數(shù)字量送給單片機(jī)。單片機(jī)對(duì)過(guò)程信息進(jìn)行運(yùn)算和處理,把過(guò)程信息進(jìn)行當(dāng)?shù)仫@示或打印等,同時(shí)將處理后的數(shù)字量送給D/A轉(zhuǎn)換器,轉(zhuǎn)換成相應(yīng)的模擬量去對(duì)被控系統(tǒng)進(jìn)行控制和調(diào)整,使系統(tǒng)處于*佳工作狀態(tài)。
圖51單片機(jī)實(shí)時(shí)控制系統(tǒng)示意圖
上述分析表明: A/D轉(zhuǎn)換器在單片機(jī)控制系統(tǒng)中主要用于數(shù)據(jù)采集,向單片機(jī)提供被控對(duì)象的各種實(shí)時(shí)參數(shù),以便單片機(jī)對(duì)被控對(duì)象進(jìn)行監(jiān)視和控制決策; D/A轉(zhuǎn)換器用于模擬控制,通過(guò)機(jī)械或電氣手段對(duì)被控對(duì)象進(jìn)行調(diào)整和控制。因此,A/D、D/A轉(zhuǎn)換器是架設(shè)在單片機(jī)和被控實(shí)體之間的橋梁,在單片機(jī)控制系統(tǒng)占有極其重要的地位。
C8051F020是混合信號(hào)型單片機(jī),在片內(nèi)集成了模/數(shù)(A/D)和數(shù)/模(D/A)轉(zhuǎn)換電路。下面分別進(jìn)行敘述。
5.1模/數(shù)轉(zhuǎn)換器
A/D是將模擬量轉(zhuǎn)換成數(shù)字量的器件。模擬量可以是電壓、電流等電信號(hào),也可以是聲、光、壓力、濕度、溫度等隨時(shí)間連續(xù)變化的非電的物理量。非電的模擬量可通過(guò)合適的傳感器(如光電傳感器、壓力傳感器、溫度傳感器)轉(zhuǎn)換成電信號(hào)。
C8051F020片內(nèi)包含一個(gè)9通道的12位的模數(shù)轉(zhuǎn)換器ADC0和8通道8位的模數(shù)轉(zhuǎn)換器ADC1。
5.1.1模數(shù)轉(zhuǎn)換原理和性能指標(biāo)
1. 轉(zhuǎn)換原理
A/D轉(zhuǎn)換器的種類(lèi)很多,根據(jù)轉(zhuǎn)換原理可以分計(jì)數(shù)式、并行式、雙積分式、逐次逼近式等。計(jì)數(shù)式A/D轉(zhuǎn)換器結(jié)構(gòu)簡(jiǎn)單,但轉(zhuǎn)換速度也很慢,所以很少采用。并行A/D轉(zhuǎn)換器的轉(zhuǎn)換速度*快,但因結(jié)構(gòu)復(fù)雜而造價(jià)較高,只用于那些轉(zhuǎn)換速度極高的場(chǎng)合。雙積分式A/D轉(zhuǎn)換器抗干擾能力強(qiáng),轉(zhuǎn)換精度也很高,但速度不夠理想,常用于數(shù)字式測(cè)量?jī)x表中。計(jì)算機(jī)中廣泛采用逐次逼近式A/D轉(zhuǎn)換器作為接口電路,它的結(jié)構(gòu)不太復(fù)雜,轉(zhuǎn)換速度也較高。下面僅對(duì)逐次逼近式和雙積分式A/D轉(zhuǎn)換器的轉(zhuǎn)換原理作簡(jiǎn)單介紹。
圖52逐次逼近式A/D原理框圖
1) 逐次逼近式A/D轉(zhuǎn)換器
逐次逼近式A/D也稱(chēng)逐次比較法A/D。它由結(jié)果寄存器、D/A、比較器和置位控制邏輯等部件組成,原理框圖如圖52所示。
這種A/D采用對(duì)分搜索法逐次比較、逐步逼近的原理來(lái)轉(zhuǎn)換,整個(gè)轉(zhuǎn)換過(guò)程是個(gè)“試探”過(guò)程?刂七壿嬒戎1結(jié)果寄存器*高位Dn-1然后經(jīng)D/A轉(zhuǎn)換得到一個(gè)占整個(gè)量程一半的模擬電壓Vs,比較器將此Vs和模擬輸入電壓Vx比較,若Vx>Vs則保留此位Dn-1(為1),否則清0Dn-1位。然后控制邏輯置1結(jié)果寄存器次高位Dn-2,連同Dn-1一起送D/A轉(zhuǎn)換,得到的Vs再和Vx比較,以決定Dn-2位保留為1還是清0,以此類(lèi)推。*后,控制邏輯置1結(jié)果寄存器*低位D0,然后將Dn-1、Dn-2、……、D0一起送D/A轉(zhuǎn)換。轉(zhuǎn)換得到的結(jié)果Vs和Vx比較,決定D0位保留為1還是清0。
至此,結(jié)果寄存器的狀態(tài)便是與輸入的模擬量Vx對(duì)應(yīng)的數(shù)字量。
2) 雙積分式的A/D轉(zhuǎn)換器
雙積分式也稱(chēng)二重積分式,其實(shí)質(zhì)是測(cè)量和比較兩個(gè)積分的時(shí)間,它的工作原理如圖53所示,一個(gè)是對(duì)模擬輸入電壓積分的時(shí)間T0,此時(shí)間往往是固定的; 另一個(gè)是以充電后的電壓為初值,對(duì)參考電源Vref反向積分,積分電容被放電至零所需的時(shí)間Ti(Vref與Vi符號(hào)相反)。反向積分的斜率是固定的。模擬輸入電壓Vi與參考電壓Vref之比,等于上述兩個(gè)時(shí)間之比。由于Vref、T0固定,而放電時(shí)間Ti可以測(cè)出,因而可計(jì)算出模擬輸入電壓的大小。
圖53雙積分式A/D轉(zhuǎn)換器工作原理圖
由于T0、Vref為已知的固定常數(shù),因此反向積分時(shí)間Ti與輸入模擬電壓Vi在T0時(shí)間內(nèi)的平均值成正比。輸入電壓Vi愈高,VA愈大,Ti就愈長(zhǎng)。在Ti開(kāi)始時(shí)刻,控制邏輯同時(shí)打開(kāi)計(jì)數(shù)器的控制門(mén)開(kāi)始計(jì)數(shù),直到積分器恢復(fù)到零電平時(shí),計(jì)數(shù)停止。則計(jì)數(shù)器所計(jì)出的數(shù)字即正比于輸入電壓Vi在T0時(shí)間內(nèi)的平均值,于是完成了一次A/D轉(zhuǎn)換。
由于雙積分型A/D轉(zhuǎn)換是測(cè)量輸入電壓Vi在T0時(shí)間內(nèi)的平均值,所以對(duì)常態(tài)干擾(串模干擾)有很強(qiáng)的抑制作用,尤其對(duì)正負(fù)波形對(duì)稱(chēng)的干擾信號(hào),抑制效果更好。
雙積分型的A/D轉(zhuǎn)換器具有電路簡(jiǎn)單、抗干擾能力強(qiáng)、精度高等優(yōu)點(diǎn)。但轉(zhuǎn)換速度比較慢,常用的A/D轉(zhuǎn)換芯片的轉(zhuǎn)換時(shí)間為毫秒級(jí)。例如12位的積分型A/D芯片ADCET12BC,其轉(zhuǎn)換時(shí)間為1ms。因此適用于模擬信號(hào)變化緩慢,采樣速率要求較低,而對(duì)精度要求較高,或現(xiàn)場(chǎng)干擾較嚴(yán)重的場(chǎng)合。例如常在數(shù)字電壓表中采用該芯片進(jìn)行A/D采樣。
2. 性能指標(biāo)
衡量A/D性能的主要參數(shù)是:
1) 分辨率(resolution)
分辨率是指輸出的數(shù)字量變化一個(gè)相鄰的值所對(duì)應(yīng)的輸入模擬量的變化值; 取決于輸出數(shù)字量的二進(jìn)制位數(shù)。一個(gè)n位的A/D轉(zhuǎn)換器所能分辨的*小輸入模擬增量定義為滿量程值的2-n倍。例如,滿量程為10V的8位A/D芯片的分辨率為10V×2-8=39mV; 而16位的A/D是10V×2-16=153μV。
2) 滿刻度誤差(full scale error)
滿刻度誤差也稱(chēng)增益誤差,即輸出全1時(shí)輸入電壓與理想輸入量之差。
3) 轉(zhuǎn)換速率(conversion rate)
轉(zhuǎn)換速度是指完成一次A/D轉(zhuǎn)換所需時(shí)間的倒數(shù),是一個(gè)很重要的指標(biāo)。A/D轉(zhuǎn)換器型號(hào)不同,轉(zhuǎn)換速度差別很大。選用A/D轉(zhuǎn)換器型號(hào)視應(yīng)用需求而定,在被控系統(tǒng)的時(shí)間允許的情況下,應(yīng)盡量選用便宜的逐次比較型A/D轉(zhuǎn)換器。
4) 轉(zhuǎn)換精度(conversion accuracy)
A/D轉(zhuǎn)換器的轉(zhuǎn)換精度由模擬誤差和數(shù)字誤差組成。模擬誤差是比較器、解碼網(wǎng)絡(luò)中的電阻值以及基準(zhǔn)電壓波動(dòng)等引起的誤差,數(shù)字誤差主要包括丟失碼誤差和量化誤差,前者屬于非固定誤差,由器件質(zhì)量決定,后者和A/D輸出數(shù)字量的位數(shù)有關(guān),位數(shù)越多,誤差越小。
5.1.2C8051F020的ADC0功能結(jié)構(gòu)
C8051F020的ADC0子系統(tǒng)就是一個(gè)100ksps、12位分辨率的逐次逼近寄存器型ADC。ADC0的*高轉(zhuǎn)換速度為100ksps,其轉(zhuǎn)換時(shí)鐘來(lái)源于系統(tǒng)時(shí)鐘分頻,分頻值保存在寄存器ADC0CF的ADCSC位。C8051F020的ADC0子系統(tǒng)功能框圖如圖54所示,它包括一個(gè)9通道的可編程模擬多路選擇器(AMUX0)、一個(gè)可編程增益放大器(PGA0)和一個(gè)100ksps、12位分辨率的逐次逼近寄存器型ADC,ADC中集成了跟蹤保持電路和可編程窗口檢測(cè)器。AMUX0、PGA0、數(shù)據(jù)轉(zhuǎn)換方式及窗口檢測(cè)器都可用軟件通過(guò)特殊功能寄存器來(lái)控制。ADC0所使用的電壓基準(zhǔn)將在5.3節(jié)專(zhuān)門(mén)介紹。只有當(dāng)ADC0控制寄存器中的AD0EN位被置1時(shí)ADC0子系統(tǒng)(ADC0、跟蹤保持器和PGA0)才被允許工作。當(dāng)AD0EN位為0時(shí),AD0C子系統(tǒng)處于低功耗關(guān)斷方式。
圖54ADC0子系統(tǒng)功能框圖
從ADC0的功能框圖可以看出,ADC0的運(yùn)行主要與圖上標(biāo)的10個(gè)SFR有關(guān)。8個(gè)外部輸入的模擬量可以通過(guò)配置寄存器AMX0CF設(shè)定為單端輸入或雙端輸入; 8個(gè)外部輸入的模擬量和一個(gè)內(nèi)部溫度傳感器量通過(guò)通道選擇寄存器AMX0SL設(shè)定在某一時(shí)刻通過(guò)多路選擇器; 從多路選擇器出來(lái)的模擬量通過(guò)配置寄存器ADC0CF設(shè)定ADC轉(zhuǎn)換速度和對(duì)模擬量的放大倍數(shù); 由控制寄存器ADC0CN對(duì)ADC進(jìn)行模擬量轉(zhuǎn)換的啟動(dòng)、啟動(dòng)方式、采樣保持、轉(zhuǎn)換結(jié)束、數(shù)字量格式等進(jìn)行設(shè)定; 12位的轉(zhuǎn)換好的數(shù)字量存放在數(shù)據(jù)字寄存器ADC0H、ADC0L中; ADC0中提供了可編程窗口檢測(cè)器,通過(guò)上下限寄存器ADC0GTH、ADC0GTL、ADC0LTH、ADC0LTL設(shè)定所需要的比較極限值。
在進(jìn)行模擬量轉(zhuǎn)換前設(shè)定好以上SFR,CPU就按設(shè)定好的模式在模擬量轉(zhuǎn)換好時(shí)用指令讀出數(shù)據(jù)寄存器中的數(shù)字量或在中斷服務(wù)程序中讀取數(shù)字量,然后再進(jìn)行下一次的轉(zhuǎn)換。ADC0的電氣特性見(jiàn)附錄C。
5.1.3模擬多路選擇器和PGA
模擬多路選擇器AMUX(Analog Multiplexer)中的8個(gè)通道用于外部測(cè)量,而第九通道在內(nèi)部被接到片內(nèi)溫度傳感器。這9個(gè)模擬通道通過(guò)通道選擇寄存器AMX0SL和配置寄存器AMX0CF進(jìn)行選擇和配置,可以將AMUX輸入對(duì)編程為工作在差分或單端方式。這就允許用戶(hù)對(duì)每個(gè)通道選擇*佳的測(cè)量技術(shù),甚至可以在測(cè)量過(guò)程中改變方式。在系統(tǒng)復(fù)位后AMUX的默認(rèn)方式為單端輸入。表51給出了每種配置下各通道的功能。
配置寄存器AMX0CF的格式如下:
其中,各位的含義如下:
位7~4——未使用。讀= 0000b; 寫(xiě)=忽略。
位3(AIN67IC)——AIN6、AIN7輸入對(duì)配置位。
0: AIN6和AIN7為獨(dú)立的單端輸入。
1: AIN6和AIN7為(分別為)+、-差分輸入對(duì)。
位2(AIN45IC)——AIN4、AIN5輸入對(duì)配置位。
0: AIN4和AIN5為獨(dú)立的單端輸入。
1: AIN4、AIN5為(分別為)+、-差分輸入對(duì)。
位1(AIN23IC)——AIN2、AIN3輸入對(duì)配置位。
0: AIN2和AIN3為獨(dú)立的單端輸入。
1: AIN2、AIN3為(分別為)+、-差分輸入對(duì)。
位0(AIN01IC)——AIN0、AIN1輸入對(duì)配置位。
0: AIN0和AIN1為獨(dú)立的單端輸入。
1: AIN0、AIN1為(分別為)+、-差分輸入對(duì)。
注: 對(duì)于被配置成差分輸入的通道,ADC0數(shù)據(jù)字格式為2的補(bǔ)碼。
通道選擇寄存器AMX0SL的格式如下:
其中,各位的含義如下:
位7~4——未使用。讀= 0000b; 寫(xiě)=忽略。
位3~0(AMX0AD3~0)——AMUX0地址位。
0000~1111,根據(jù)表51選擇ADC輸入的通道。
表51模擬通道配置
AMX0AD30
000000010010001101000101011001111xxx
AMX0CF
位3~0
0000AIN0AIN1AIN2AIN3AIN4AIN5AIN6AIN7溫度傳感器
0001+ (AIN0)
- (AIN1)AIN2AIN3AIN4AIN5AIN6AIN7溫度傳感器
0010AIN0AIN1+ (AIN2)
- (AIN3)AIN4AIN5AIN6AIN7溫度傳感器
0011+ (AIN0)
- (AIN1)+ (AIN2)
- (AIN3)
AIN4AIN5AIN6AIN7溫度傳感器
0100AIN0AIN1AIN2AIN3+ (AIN4)
- (AIN5)AIN6AIN7溫度傳感器
0101+ (AIN0)
- (AIN1)AIN2AIN3+ (AIN4)
- (AIN5)AIN6AIN7溫度傳感器
0110AIN0AIN1+ (AIN2)
- (AIN3)+ (AIN4)
- (AIN5)AIN6AIN7溫度傳感器
0111+ (AIN0)
- (AIN1)+ (AIN2)
- (AIN3)+ (AIN4)
- (AIN5)AIN6AIN7溫度傳感器
1000AIN0AIN1AIN2AIN3AIN4AIN5+ (AIN6)
- (AIN7)溫度傳感器
1001+ (AIN0)
- (AIN1)AIN2AIN3AIN4AIN5+ (AIN6)
- (AIN7)溫度傳感器
1010AIN0AIN1+ (AIN2)
- (AIN3)AIN4AIN5+ (AIN6)
- (AIN7)溫度傳感器
1011+ (AIN0)
- (AIN1)+ (AIN2)
- (AIN3)AIN4AIN5+ (AIN6)
- (AIN7)溫度傳感器
1100AIN0AIN1AIN2AIN3+ (AIN4)
- (AIN5)+ (AIN6)
- (AIN7)溫度傳感器
1101+ (AIN0)
- (AIN1)AIN2AIN3+ (AIN4)
- (AIN5)+ (AIN6)
- (AIN7)溫度傳感器
1110AIN0AIN1+ (AIN2)
- (AIN3)+ (AIN4)
- (AIN5)+ (AIN6)
- (AIN7)溫度傳感器
1111+ (AIN0)
- (AIN1)+ (AIN2)
- (AIN3)+ (AIN4)
- (AIN5)+ (AIN6)
- (AIN7)溫度傳感器
在表51中可看出,從多路選擇器出來(lái)的哪一個(gè)通道和單端或差分輸入由通道選擇寄存器AMX0SL和配置寄存器AMX0CF進(jìn)行選擇和配置,表左邊的垂直方向表示配置寄存器AMX0CF低4位值,指出各通道的單端還是差分輸入,表上邊的水平方向表示通道選擇寄存器AMX0SL的低4位,選擇9路輸入的中的某一路。
PGA(Programmable Gain Amplifier)即可編程增益放大器,它對(duì)AMUX輸出信號(hào)的放大倍數(shù)由ADC0配置寄存器ADC0CF中的AMP0GN2~0確定。PGA增益可以用軟件編程為0.5、1、2、4、8或16,復(fù)位后的默認(rèn)增益為1。注意,PGA0的增益對(duì)溫度傳感器也起作用。
配置寄存器ADC0CF的格式如下:
其中,各位的含義如下:
位7~3 (AD0SC4~0)——ADC0 SAR轉(zhuǎn)換時(shí)鐘周期控制位。
SAR轉(zhuǎn)換時(shí)鐘來(lái)源于系統(tǒng)時(shí)鐘,由下面的方程給出
AD0SC=SYSCLKCLKSAR0-1
其中AD0SC表示AD0SC4~0中保持的數(shù)值,CLKSAR0表示所需要的ADC0 SAR時(shí)鐘(注: ADC0 SAR時(shí)鐘應(yīng)小于或等于2.5MHz)。
位2~0 (AMP0GN2~0)——ADC0內(nèi)部放大器增益(PGA)。
000: 增益= 1
001: 增益= 2
010: 增益= 4
011: 增益= 8
10x: 增益= 16
11x: 增益= 0.5
5.1.4ADC的工作方式
1. 轉(zhuǎn)換過(guò)程
ADC0的轉(zhuǎn)換過(guò)程由控制寄存器ADC0CN來(lái)設(shè)置和控制的。
控制寄存器ADC0CN的格式如下:
其中,各位的含義如下:
位7 (AD0EN)——ADC0使能位。
0: ADC0禁止。ADC0處于低耗停機(jī)狀態(tài)。
1: ADC0使能。ADC0處于活動(dòng)狀態(tài),并準(zhǔn)備轉(zhuǎn)換數(shù)據(jù)。
位6 (AD0TM)——ADC跟蹤方式位。
0: 當(dāng)ADC被使能時(shí),除了轉(zhuǎn)換期間之外一直處于跟蹤方式。
1: 由AD0CM1~0定義跟蹤方式。
位5 (AD0INT)——ADC0轉(zhuǎn)換結(jié)束中斷標(biāo)志。該標(biāo)志必須用軟件清0。
0: 從*后一次將該位清0后,ADC0還沒(méi)有完成一次數(shù)據(jù)轉(zhuǎn)換。
1: ADC完成了一次數(shù)據(jù)轉(zhuǎn)換。
位4 (AD0BUSY)——ADC0忙標(biāo)志位。
讀:
0: ADC0轉(zhuǎn)換結(jié)束或當(dāng)前沒(méi)有正在進(jìn)行的數(shù)據(jù)轉(zhuǎn)換。AD0INT在AD0BUSY的下降沿被置1。
1: ADC0正在進(jìn)行轉(zhuǎn)換。
……
你還可能感興趣
我要評(píng)論
|