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