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