內(nèi)嵌閃存MCU的高性能多通道24位采集系統(tǒng)ADuC845
摘要:ADuC845是ADI公司新推出的嵌有單指令周期8052閃存MCU、帶兩路24位Δ-∑A/D、雙12位D/A以及兩個(gè)靈活脈寬調(diào)制輸出的高性能24位數(shù)據(jù)采集與處理系統(tǒng)芯片。該芯片的數(shù)據(jù)處理速度達(dá)12MIPS,且設(shè)計(jì)簡單,噪聲低,非常適用于精密儀器儀表。文中詳細(xì)介紹了該芯片的功能特點(diǎn)和工作原理,給出該芯片的應(yīng)用方法。
關(guān)鍵詞:ADuC845 數(shù)據(jù)采集 轉(zhuǎn)換器 存儲(chǔ)器
1 概述
ADuC845是ADI公司新推出的高性能24位數(shù)據(jù)采集與處理系統(tǒng),它內(nèi)部集成有兩個(gè)高分辨率的Δ-∑ADC、10/8通道輸入多路復(fù)用器、一個(gè)8位MCU和程序/數(shù)據(jù)閃速/電擦除存儲(chǔ)器。同時(shí)可提供62k字節(jié)的閃速/電擦除程序存儲(chǔ)器,4k字節(jié)閃速/電擦除數(shù)據(jù)存儲(chǔ)器和2304字節(jié)的數(shù)據(jù)RAM。
ADuC845可通過一個(gè)片內(nèi)鎖存環(huán)PLL產(chǎn)生一個(gè)12.58MHz的高頻時(shí)鐘,以使之運(yùn)行于32kHz外部晶振。該時(shí)鐘可通過一個(gè)從MCU核心時(shí)鐘工作頻率分離的可編程時(shí)鐘發(fā)送。片內(nèi)微控制器是一個(gè)優(yōu)化的單指令周期8052閃存MCU。該MCU在保持與8051指令系統(tǒng)兼容的同時(shí),具有12.58MIPS的性能。該芯片的兩個(gè)獨(dú)立的ADC(主ADC和輔助ADC)由一個(gè)輸入多路復(fù)用器,一個(gè)溫度傳感器和一個(gè)可直接測量低幅度信號的可編程增益放大器PGA組成。主、輔ADC都采用高頻“斬波”技術(shù)來提供優(yōu)良的直流(DC)失調(diào)和失調(diào)漂移指標(biāo),因而非常適合用于低溫漂且對噪聲抑制和抗電磁干擾能力要求較高的應(yīng)用場合。
ADuC845具有串行下載和調(diào)度模式,可通過EA引腳提供引腳競爭模式,同時(shí)支持Quick Start開發(fā)系統(tǒng)和低成本的軟件和硬件工具。該芯片具有52引腳塑料四方扁平封裝(MQFP)和56引腳芯片級封裝(CSP)。
2 ADuC845的性能特點(diǎn)
2.1 高分辨率Δ-∑ADC
*帶有2個(gè)獨(dú)立的10通道、24位模/數(shù)轉(zhuǎn)換器(ADC);
*24位無失碼主ADC;
*在60Hz范圍內(nèi)有20位有效分辨率(17.4位峰-峰分辨率);
*芯片的失調(diào)漂移為10nV/℃,增益漂移為0.5ppm/℃。
2.2 存儲(chǔ)器
*62k字節(jié)片內(nèi)閃速/電擦除程序存儲(chǔ)器;
*4k字節(jié)片內(nèi)閃速/電擦除數(shù)據(jù)存儲(chǔ)器;
*閃速/電擦除存儲(chǔ)器可使用100年,可重復(fù)擦寫10萬次;
*有3種閃速/電擦除程序存儲(chǔ)器安全模式;
*在線串行下載(無需外部硬件);
*帶有高速用戶下載(5秒)功能;
*帶有2304字節(jié)片內(nèi)數(shù)據(jù)RAM。
2.3 基于8051的內(nèi)核
*具有與8051兼容的指令系統(tǒng);
*高性能單指令周期內(nèi)核;
*可使用32kHz外部晶振;
*具有片內(nèi)可編程鎖相環(huán)PLL(最高時(shí)鐘頻率12.58MHz);
*有3個(gè)16位定時(shí)/計(jì)數(shù)器;
*有26條可編程輸入/輸出線;
*11個(gè)中斷源,2個(gè)優(yōu)先級;
*雙數(shù)據(jù)指針,擴(kuò)展的11位堆棧指針。
2.4 片內(nèi)外圍設(shè)備
*內(nèi)部電源復(fù)位電路;
*12位電壓輸出DAC;
*雙16位Δ-∑DAC/PWM;
*片內(nèi)溫度傳感器;
*雙激勵(lì)電流源;
*時(shí)間間隔計(jì)數(shù)器(喚醒/RTC定時(shí)器);
*UART,I2C和SPI串行接口;
*高速波特率發(fā)生器(包括115,200);
*看門狗定時(shí)器(WDT);
*電源監(jiān)視器(PSM)。
2.5 電源
*可用3V和5V電壓工作;
*正常情況下為2.3mA/3.6V(核心時(shí)鐘頻率為1.57MHz);
*掉電保持電流為20μA,可喚桓定時(shí)運(yùn)行。
3 ADuC845的引腳功能
ADuC845的引腳排列如圖1所示,其中采用56引腳封裝的管腳功能如下:
56腳(P1.0/AIN1):上電缺省設(shè)置為AIN1模擬輸入。使用AINCON時(shí),AIN1用作偽差分輸入;使用AIN2時(shí),該腳用作全差分對的正向輸入。P1.0端口無數(shù)輸出驅(qū)動(dòng)器。為把其配置為數(shù)字輸入,應(yīng)把0寫至端口值。作數(shù)字輸入時(shí),該引腳必須由外部驅(qū)動(dòng)到高電平或低電平。
1腳(P1.1/AIN2):上電缺省設(shè)置為AIN2模擬輸入。使用AINCON時(shí),AIN2用作偽差分輸入;使用AIN1時(shí),用作全差分對的負(fù)向輸入。輸入同P1.0。
2腳(P1.2/AIN3/REFIN2+):上電缺省設(shè)置為AIN3模擬輸入。使用AINCOM時(shí),AIN3用作偽差分輸入;使用AIN4時(shí),用作全差分對的正向輸入。數(shù)字輸入同P1.0。另外,該引腳亦可用作第二個(gè)外部差分參考輸入的正向輸入端。
3腳(P1.3/AIN4/REFIN2-):上電缺省設(shè)置為AIN4模擬輸入。使用AINCOM時(shí),AIN4用作偽差分輸入;使用AIN3時(shí),用作全差分對的負(fù)向輸入。數(shù)字輸入同P1.0。另外,該引腳亦可用作第二個(gè)外部差分參考輸入的負(fù)向輸入端。
4腳(AVDD):模擬電源。
5,6腳(AGND):模擬地。
7腳(REFIN-):外部差分參考輸入的負(fù)向輸入端。
8腳(REFIN+):外部差分參考輸入的正向輸入端。
9腳(P1.4/AIN5):上電缺省設(shè)置為AIN5模擬輸入。使用AINCOM時(shí),AIN5用作偽差分輸入;使用AIN6時(shí),用作全差分對的正向輸入。輸入同P1.0。
10腳(P1.5/AIN6):上電缺省設(shè)置為AIN6模擬輸入。使用AINCOM時(shí),AIN6用作偽差分輸入;使用AIN5時(shí),用作差分對的負(fù)向輸入。輸入同P1.0。
11腳(P1.6/AIN7/IEXC1):上電缺省設(shè)置為AIN7模擬輸入。使用AINCOM時(shí),AIN7用作偽差分輸入;使用AIN8時(shí),用作全差分對的正向輸入。該引腳可配置1~2個(gè)電流源。數(shù)字輸入同P1.0。
12腳(P1.7/AIN8/IEXC2):上電缺省設(shè)置為AIN8模擬輸入。使用AINCOM時(shí),AIN8用作偽差分輸入;使用AIN7時(shí),用作全差分對的負(fù)向輸入。該引腳可配置1~2個(gè)電流源。數(shù)字輸入同P1.0。
13腳(AINCOM/DAC):若選定相關(guān)的偽差分輸入,則所有的模擬輸入必須參考此引腳。該引腳亦可作為DAC的輸出引腳之一。
14腳(DAC):若DAC使能,則該引腳輸出DAC電壓。
15腳(AIN9):使用AINCOM時(shí),AIN9用作偽差分輸入;使用AIN10時(shí),用作全差分對的正向輸入。
16腳(AIN10):使用AINCOM時(shí),AIN10用作偽差分輸入;使用AIN9時(shí),用作全差分對的負(fù)向輸入。
17腳(RESET):復(fù)位輸入。當(dāng)振蕩器運(yùn)行時(shí),該引腳上長達(dá)16個(gè)主時(shí)鐘周期的高電平半使器件復(fù)位。
18~21,24~27腳(P3.0~P3.7):P3口是具有內(nèi)部上拉電阻的雙向口。當(dāng)寫1的端口3被內(nèi)部上拉至高電平時(shí),它們可用作輸入。由于有內(nèi)部上拉電阻,被外部拉至低電平的端口3引腳將提供電流。當(dāng)驅(qū)動(dòng)一個(gè)0-1的輸出轉(zhuǎn)換時(shí),上拉功能將被激活并持續(xù)2個(gè)內(nèi)部時(shí)鐘周期的指令循環(huán)。
18腳(P3.0/RED):UART串行口接收數(shù)據(jù)。
19腳(P3.1/TXD):UART串行口發(fā)送數(shù)據(jù)。
20腳(P3.2/INT0):外部中斷0,此引腳也可用作選通門,控制定時(shí)器0的輸入。
21腳(P3.3/INT1):外部中斷0,此引腳也可用作選通門,控制定時(shí)器1的輸入。
24腳(P3.4/T0):定時(shí)器/計(jì)數(shù)器0輸入。
25腳(P3.5/T1):定時(shí)器/計(jì)數(shù)器1輸入。
26腳(P3.6/WR):寫控制信號。把來自P0口的數(shù)據(jù)字節(jié)鎖存入外部數(shù)據(jù)存儲(chǔ)器。
27腳(P3.7/RD):讀控制信號。將外部數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)讀到P0口。
22,36,51腳(DVDD):數(shù)字電源。
23,37,38腳(DGND):數(shù)字地。
28腳(SCLK):I2C串行接口時(shí)鐘。作輸入口使用時(shí),除輸出邏輯低電平外,該引腳為施密特觸發(fā)輸入,且存在一個(gè)弱的內(nèi)部上拉。此引腳亦可作為數(shù)字輸出口使用,通常由軟件控制。
29腳(SDATA):I2C串行數(shù)據(jù)輸入口。作為輸入口時(shí),該引腳有一個(gè)弱的內(nèi)部上拉出現(xiàn),除非它輸出邏輯低電平。
30~33,39~42(P2.0~P2.7):P2口是具有內(nèi)部上拉電阻的雙向口。當(dāng)寫1的端口2被內(nèi)部上拉電阻拉至高電平時(shí),這些引腳可用作輸入。由于內(nèi)部上拉電阻,被外部拉至低電平的端口2引腳將提供電流。在訪問24位外部數(shù)據(jù)存儲(chǔ)器空間的過程中P2口發(fā)出中和高地址字節(jié)。
30腳(P2.0/SCLOCK):SPI串行接口時(shí)鐘。作輸入口使用時(shí),除輸出邏輯低電平外,該引腳為施密特觸發(fā)輸入,且存在一個(gè)弱的內(nèi)部上拉。
31腳(P2.1/MOSI):用于SPI接口的SPI主輸出/從輸入數(shù)據(jù)I/O引腳。
32腳(P2.3/SS/T2):SPI接口的從屬選擇輸入,該引腳有一個(gè)弱的上拉作用。該引腳能給定時(shí)器2提供時(shí)鐘輸入,此項(xiàng)功能啟動(dòng)時(shí),計(jì)數(shù)器2增加墳數(shù)以響應(yīng)T2輸入引腳出現(xiàn)的負(fù)跳變。
39腳(P2.4/T2EX):用于向定時(shí)器2提供控制輸入。此項(xiàng)功能啟動(dòng)時(shí),此引腳上出現(xiàn)的負(fù)跳變將使定時(shí)器2捕獲或重載。
40腳(P2.5/PWM0):若PWM使能,則該引腳輸出PWM0。
41腳(P2.6/PWM1):若PWM使能,則該引腳輸出PWM1。
42腳(P2.7/PWMCLK):若PWM使能,則該引腳提供外部PWM時(shí)鐘。
34腳(XTAL1):晶振反相器輸入。
35腳(XTAL2):晶振反相器輸出。
43腳(EA):外部訪問使能,邏輯輸入。當(dāng)保持高電平時(shí),此輸入使能器件從地址為0000H~F7FFH的內(nèi)部程序存儲(chǔ)器內(nèi)取回代碼。ADuC845無外部程序存儲(chǔ)器訪問功能。為了確定代碼執(zhí)行模式,該引腳在外部復(fù)位結(jié)束時(shí)起作用,或?qū)⑵渥鳛槠骷娫粗芷诘囊徊糠帧?/P>
44腳(PSEN):程序存儲(chǔ)使能引腳,邏輯輸出。除了在外部數(shù)據(jù)存儲(chǔ)訪問期間外,該腳每6個(gè)時(shí)鐘周期有效一次。而在內(nèi)部程序執(zhí)行期間,此引腳保持高電平。當(dāng)該引腳通過上電復(fù)位電阻或作為器件電源周期的一部分被拉至低電平時(shí),PSEN引腳也可用作使能下載模式。
45腳(ALE):地址鎖存使能,邏輯輸出。在外部存儲(chǔ)器訪問期間,此輸出用于把地址的低字節(jié)(適于24位數(shù)據(jù)地址空間訪問的頁字節(jié))鎖存在外部存儲(chǔ)器。除了在外部數(shù)據(jù)存儲(chǔ)器訪問期間,它每6個(gè)時(shí)鐘周期被激活一次。通過設(shè)置PCON SFR的PCON.4位,可禁止此引腳工作。
46~49,52~55腳(P0.0~P0.7):P0口是8位漏極開路雙向I/O端口。寫1的端口0引腳懸空,在此狀態(tài)下可用作高阻抗輸入。驅(qū)動(dòng)外部邏輯高電平時(shí),需在此端口接一個(gè)外部上拉電阻。在訪問外部程序和數(shù)據(jù)存儲(chǔ)器期間,P0口也是多路復(fù)用的低位地址和數(shù)據(jù)總線。
4 ADuC845的結(jié)構(gòu)原理
ADuC845是高度集成的24位數(shù)據(jù)采集系統(tǒng),該芯片主要由兩個(gè)多通道且皆可達(dá)到24位分辨率的A/D轉(zhuǎn)換器、雙D/A轉(zhuǎn)換器以及一個(gè)8位可編程微控制器組成,其內(nèi)部功能結(jié)構(gòu)如圖2所法。此外,ADuC845還內(nèi)嵌一個(gè)單指令周期的8052閃存MCU,其片內(nèi)獨(dú)立的數(shù)據(jù)閃存可提供更加安全的非易失性讀寫功能。
4.1 ADC電路
ADuC845內(nèi)含兩個(gè)10通道(MQFP封裝為0通道)24位Δ-∑ADC(主通道和輔助通道)、一個(gè)片內(nèi)可編程增益放大器和一個(gè)用于測量寬動(dòng)態(tài)范圍的低頻信號數(shù)字濾波器。它可被設(shè)置成4/5個(gè)全差分輸入通道或8/10個(gè)偽差分通道。主通道具有緩沖器和內(nèi)部緩沖禁止功能。緩沖輸入通道意味著這部分電路可處理較高內(nèi)阻的信號源,而且可在輸入通道前加入模擬RC濾波器(以便濾波噪聲和降低射頻干擾)。主通道輸入范圍為20mV~2.56之間可分為8檔,使用時(shí)可任選一檔。這些通道用于轉(zhuǎn)換直接來自傳感器的信號,且沒有外部信號條件要求。內(nèi)部緩沖禁止時(shí),可以采用外部緩沖。當(dāng)內(nèi)部緩沖器使能時(shí),必須對負(fù)輸入通道進(jìn)行100mV的補(bǔ)償,以解決緩沖器內(nèi)共模輸入范圍有限的問題。輔助通道用于接收輔助信號的輸入,此通道無緩沖器,只有一個(gè)固定有2.56V的增益范圍。
由于ADuC845的兩個(gè)A/D通道都采用Δ-∑轉(zhuǎn)換技術(shù),因而可實(shí)現(xiàn)24位無失碼的優(yōu)良性能。器件工作時(shí),先由Δ-∑調(diào)制器將輸入采樣信號轉(zhuǎn)換成數(shù)字脈沖串,脈沖串的工作周期包含了數(shù)字信息。然后采用Sinc3可編程低通濾波器對調(diào)制器的輸出數(shù)據(jù)流進(jìn)行10中抽1,以得到按可編程數(shù)據(jù)輸出率從5.35Hz~105.03Hz給出的有效數(shù)據(jù)轉(zhuǎn)換結(jié)果。ADuC845對調(diào)制器信號流有抽取使能和抽取禁止兩種操作模式。ADCMODE寄存器內(nèi)的CHOP位控制抽取操作的使能和禁止。
AD通道的設(shè)置和控制是通過專用寄存器塊(SFR)中的一組寄存器來實(shí)現(xiàn)的。其名稱以及功能如下:
ADCSTAT:狀態(tài)寄存器。保持主通道和輔助通道的一般狀態(tài),包括數(shù)據(jù)準(zhǔn)備就緒、校準(zhǔn)狀態(tài)和一些出錯(cuò)信號。
ADCMODE:模式寄存器。控制主通道和輔助通道的操作模式。
ADC0CON1:主通道控制寄存器1??刂浦魍ǖ赖呐渲茫ㄖ魍ǖ赖木彌_器、單極和雙極譯碼以及模數(shù)轉(zhuǎn)換通道的范圍配置等。
ADC0CON2:主通道控制寄存器2。用于控制主通道的配置。
ADC1CON:輔助通道控制寄存器。控制輔助通道的配置,包括輔助通道的參考選擇、通道選擇及單極和雙極譯碼。
SF:數(shù)字濾波器寄存器。通過調(diào)節(jié)器波器參數(shù)來控制主、輔通道數(shù)據(jù)的更新速率。
ICON:恒流源控制寄存器。允許用戶控制片內(nèi)不同的恒流源。
ADC0L/M/H:用于存放主通道的24位轉(zhuǎn)換結(jié)果;
ADC1L/H:用于存放輔助通道的24位轉(zhuǎn)換結(jié)果。
OF0L/M/H:用于存放主通道偏移校準(zhǔn)系數(shù);
OF1L/H:用于存放輔助通道偏移校準(zhǔn)系數(shù);
GN0L/M/H:用于存放主通道增益校準(zhǔn)系數(shù)。
GN1LH:用于存放輔助通道增益校準(zhǔn)系數(shù)。
4.2 ADuC845中的存儲(chǔ)器
ADuC845為設(shè)計(jì)者提供了2個(gè)閃速/電擦除存儲(chǔ)器陣列,即片內(nèi)62kB閃速/電擦除程序存儲(chǔ)器和片內(nèi)4kB閃速/電擦除數(shù)據(jù)存儲(chǔ)器,并具有256B通用RAM及2kB內(nèi)部XRAM。
a.閃速/電擦除程序存儲(chǔ)器
ADuC845包含一個(gè)64k字節(jié)閃速/電擦除程序存儲(chǔ)器。其中低62k字節(jié)供用戶使用,可用作程序存儲(chǔ)器或附加NV數(shù)據(jù)存儲(chǔ)器。高2k字節(jié)包含一個(gè)水久嵌入的固件,允許在線串行下載、串行調(diào)試和非嵌入性單引腳競爭。此固件也包含一個(gè)上電配置程序,該程序?qū)⒐S標(biāo)準(zhǔn)系數(shù)下載到各種標(biāo)準(zhǔn)外設(shè)內(nèi),如ADC、溫度傳感器、電流源等。這2k字節(jié)的固件隱藏在用戶代碼中,若對此空間進(jìn)行讀操作的結(jié)果為0,則用戶代碼出現(xiàn)NOP指令。在上電或硬件復(fù)位過程中,當(dāng)EA引腳接至高電平時(shí),存儲(chǔ)器默認(rèn)從內(nèi)部62kB的內(nèi)速/電擦除程序空間都代碼的執(zhí)行變得容易,無需任何外部分離的ROM器件。程序存儲(chǔ)器可使用串行下載模式、常規(guī)的第三方提供的存儲(chǔ)器編程器或用戶在用戶下載模式中定義的協(xié)議進(jìn)行在線編程。正常模式下,可用兩種方式編程,即:
(1)串行下載(在線編程)
ADuC845可方便地通過標(biāo)準(zhǔn)UART串行口下載程序代碼。如果PSEN引腳通過外部1kΩ下拉電阻被拉至低電平,則在復(fù)位和上電后,ADuC845可進(jìn)入串行下載模式。一旦處于此模式,隱藏的嵌入式下載內(nèi)核開始工作,用戶可以把代碼下載到程序存儲(chǔ)器,同時(shí)器件仍位于其目標(biāo)應(yīng)用硬件中。PC串行下載的可執(zhí)行程序是作為ADuC845 QiuckStart開發(fā)系統(tǒng)的一部分提供的。
(2)并行編程
并行編程模式與常規(guī)的第三方閃速或EEPROM器件編程完全兼容。在此模式下,P0和P2口用作外部地址總線接口,P3口用作外部數(shù)據(jù)總線接口。P1.0用作寫使能選通,P1.1~P1.4端口用作通用配置口,在并行編程期間,它可伙各種編程和擦除操作進(jìn)行配置。
ADuC845具有片內(nèi)加密特性,可提供三種安全模式。這些模式可被獨(dú)立激活,以防止程序存儲(chǔ)空間被自由讀取。三種安全模式如下:
*加鎖模式
該模式可鎖存代碼存儲(chǔ)器,禁止程序存儲(chǔ)器的并行編程,但允許在并行模式下下對此存儲(chǔ)器進(jìn)行讀操作,或者通過外部存儲(chǔ)器的MOVC命令對其進(jìn)行讀操作。在串行下載或并行編程模式下,通過啟動(dòng)“擦除代碼及數(shù)據(jù)”命令使此模式無效。
*加密模式
該模式能鎖存代碼存儲(chǔ)器,禁止程序存儲(chǔ)器的并行編程,且不允許在并行模式下讀/校驗(yàn)程序存儲(chǔ)器或通過外部存儲(chǔ)器的MOVC命令對內(nèi)部存儲(chǔ)器進(jìn)行讀操作。在串行下載或并行編程模式下,通過啟動(dòng)“擦除代碼及數(shù)據(jù)”命令可使此模式無效。
*串行安全模式
該模式禁止串行下載代碼。如果串行安全模式被激活,且試圖將存儲(chǔ)器在PSEN引腳為低電平時(shí)復(fù)位到串行下載模式,則存儲(chǔ)器將此復(fù)位僅看作正常復(fù)位,因此,它將不會(huì)進(jìn)入串行下載模式,而僅執(zhí)行一個(gè)正常復(fù)位程序。在并行編程模式下,使用“擦除代碼和數(shù)據(jù)”命令時(shí),此模式無效。
b.閃速/電擦除數(shù)據(jù)存儲(chǔ)器
閃速/電擦除數(shù)據(jù)存儲(chǔ)器容量為4kB,它被配置為1024頁,每頁4個(gè)字節(jié)。它和其它外圍設(shè)備一樣,可通過是映射到SFR空間的寄存器組與此存儲(chǔ)器空間相接。4個(gè)數(shù)據(jù)寄存器組(EDATA1~EDATA4)用于保存4B頁數(shù)據(jù)。頁尋址是通過EADRH和EADRL兩個(gè)寄存器實(shí)現(xiàn)的。ECON是一個(gè)8位控制寄存器,這可寫入9個(gè)閃速/電擦除存儲(chǔ)器訪問命令之一,以使能各種讀、寫、擦除和校驗(yàn)?zāi)J健?/P>
此存儲(chǔ)器可用作通用非易失性緩存區(qū),分別是高128RAM和低128B RAM。低128B RAM可通過直接或間接尋址訪問,而高128B RAM只能通過間接尋址訪問,原因在于它與只能通過直接尋址訪問的SFR共用同一地址空間。內(nèi)部數(shù)據(jù)存儲(chǔ)器的低128字節(jié)映射中,最低的32字節(jié)分為4個(gè)區(qū),每區(qū)含8個(gè)寄存器,編號為R0~R7。寄存器區(qū)分緊接的16字節(jié)(128位)構(gòu)成了位可尋址的存儲(chǔ)器空間塊,位地址00H~07H。堆棧可位于內(nèi)部存儲(chǔ)器地址空間的任一位置,其深度可擴(kuò)展到2048字節(jié)。復(fù)位初始化堆棧指針到07H。由于裝載堆棧前訪問或壓入地址已加1的SP,因此,裝載堆棧從08H開始,即從R0寄存器開始。若使用不止一個(gè)寄存器塊,則堆棧指針必須被初始化到RAM區(qū)而不是用于數(shù)據(jù)保存。
d.內(nèi)部XRAM
ADuC845包含一個(gè)2k字節(jié)的片內(nèi)擴(kuò)展數(shù)字存儲(chǔ)器。此存儲(chǔ)器通過MOVX指令訪問。若CFG845.0位被置位,則2k字節(jié)的內(nèi)部XRAM被映射到2k字節(jié)外部地址空間的底部,否則半對外部數(shù)據(jù)存儲(chǔ)器進(jìn)行訪問,其方式就和標(biāo)準(zhǔn)8051一樣。一旦24位DPTR溢出0007FFH,此時(shí)即便CFG845.0位被置位,系統(tǒng)仍可外部數(shù)據(jù)存儲(chǔ)器進(jìn)行訪問。當(dāng)訪問內(nèi)部XARM時(shí),P0、P2引腳及RD、WR選通在每個(gè)標(biāo)準(zhǔn)8051 MOVX指令執(zhí)行時(shí)將不被輸出,這就允許應(yīng)用將這些引腳用作標(biāo)準(zhǔn)I/O。內(nèi)部XRAM的高1792字節(jié)配置為外擴(kuò)的11位堆棧指地。缺省設(shè)置時(shí),堆棧的操作同8052一樣,還通用RAM內(nèi)從FF到00H翻轉(zhuǎn)。但在ADuC845上,通過設(shè)置CFG845.7可以使能11位的外擴(kuò)堆棧指針,這種情況下,堆棧將在RAM內(nèi)的FFH到XRAM內(nèi)的0100H之間翻轉(zhuǎn)。
4.3 串行I/O口
ADuC845具有三種串行輸入/輸出接口:通用串行異步接口、串行外設(shè)接口(SPI)和I2C串行接口。這里僅介紹后兩種。
(1) SPI串行接口
ADuC845片內(nèi)集成了一個(gè)完整的串行外設(shè)接口(SPI)。SPI是工業(yè)標(biāo)準(zhǔn)的同步串行接口,它允許8位數(shù)據(jù)同時(shí)同步地被發(fā)送和接收。需要注意的是,SPI引腳與P2引腳復(fù)用。只用SPE被置位時(shí),復(fù)用的引腳才具有SPI功能。否則,隨著SPI被清零,這些引腳將保持標(biāo)準(zhǔn)的P2口功能。該系統(tǒng)可配置為主、從兩種操作,并由標(biāo)準(zhǔn)的4引腳組成:
SCLOCK:主機(jī)的串行時(shí)鐘線,通過MOSI和MISO數(shù)據(jù)線同步傳輸和接收數(shù)據(jù)。每個(gè)SCLOCK周期傳輸和接收一個(gè)單數(shù)據(jù)位。發(fā)送/接收1B的數(shù)據(jù)需要8個(gè)SCLOCK周期。SCLOCK引腳在主模式下配置為輸出,在從模式下配置為輸入。主模式下,時(shí)鐘的波特率、極性和相位可由SPICON來設(shè)置。
MISO:主機(jī)輸入/從機(jī)輸出引腳。設(shè)計(jì)時(shí)應(yīng)將主機(jī)的MISO端口與從機(jī)的MISO端口相連以進(jìn)行高位在前的數(shù)據(jù)交換。
MOSI:主機(jī)輸出/從機(jī)輸入引腳。主機(jī)的MISO應(yīng)與從機(jī)的MISO相連以進(jìn)行高位在前的數(shù)據(jù)交換。
MOSI:主機(jī)輸出/從機(jī)輸入引腳。主機(jī)的MISO應(yīng)與從機(jī)的MISO相連以進(jìn)行高位在前的數(shù)據(jù)交換。
SS:從機(jī)選擇引腳,低電平有效。當(dāng)SS引腳為低電平時(shí),數(shù)據(jù)僅在從模式下接收和發(fā)送,這允許ADuC845用于單主機(jī)、多從機(jī)的SPI配置。
(2)I2C串行接口
ADuC845支持完全的I2C串行接口。此接口可配置為軟件主操作和硬件從操作模式。I2C接口可同時(shí)用作SPI接口,它可供用戶使用且其不與芯片上使用其它I/O口復(fù)用,這就意味著ADuC845芯片片上任何其它I/O口復(fù)用,這就意味著ADuC845芯片上的I2C接口和SPI接口可同時(shí)使用。當(dāng)使用I2C接口時(shí),由于他們都使用同一中斷程序,在有中斷產(chǎn)生時(shí),必須查詢接口以確定是哪一個(gè)接口觸發(fā)職斷服務(wù)程序請求。該接口使用如下兩個(gè)引腳:
SDATA:數(shù)據(jù)I/O;
SCLK:串行時(shí)鐘;
控制I2C接口的寄存器及其功能如下:
I2CCOM:I2C控制寄存器;
I2CADD:保存一個(gè)用于I2C接口的外設(shè)地址;
I2CADD1:保存一個(gè)用于I2C接口的外設(shè)地址;
I2CDAT:傳輸數(shù)據(jù)或讀接收到的數(shù)據(jù)。訪問I2CDAT可自動(dòng)清除任一未處理的I2C中斷和I2CCON SFR中的I2CI位。在每個(gè)中斷周期內(nèi),用戶代碼僅能訪問I2CDAT一次。
5 結(jié)束語
ADI公司的ADuC845集成了精密數(shù)據(jù)轉(zhuǎn)換器、閃存和可編程微控制器,非常適合工業(yè)和儀器儀表應(yīng)用中要求精確測量寬動(dòng)態(tài)范圍低頻信號的應(yīng)用場合,例如智能傳感器、溫度與壓力傳感器、稱重儀、便攜式儀器、電池供電系統(tǒng)、4~20mA控制環(huán)路和病人監(jiān)護(hù)系統(tǒng)等。此外,該器件在主ADC和輔助ADC都采用了ADI公司的高頻“斬波”專利技術(shù),可以提供優(yōu)良有直流(DC)失調(diào)和失調(diào)漂移指標(biāo),故其也非常適合于低溫漂且對噪聲抑制和抗電磁干擾能力要求較高的應(yīng)用場合。
評論