帶24位A/D轉(zhuǎn)換的51單片機MSC1210及其應(yīng)用
無論是功能,還是性能,德州儀器(TI)的MSC1210單片機都達到了混合信號處理的顛峰,它集成了一個增強型8051內(nèi)核,有8路24位低功耗(4mW)Δ-∑ A/D轉(zhuǎn)換;21個中斷源;16位PWM;全雙工UART(并兼容有SPI功能);停止方式電流小于1μA;比標準8051內(nèi)核執(zhí)行速度快3倍且全兼容;片內(nèi)集成32K字節(jié)FLASH,而且FLASH可定義為程序分區(qū)與數(shù)據(jù)存儲分區(qū),給設(shè)計帶來非常大的靈活性;片內(nèi)SRAM也多達1.2K字節(jié);采用 TQFP64小型封裝。由于具有如此高的模擬和數(shù)字集成度,對各種要求小體積、高集成度和精確測量而言,MCS1210實為理想的整合選擇。圖一是 MSC1210的較為詳細框圖。
圖一 MSC1210的詳細框圖
MSC1210特性介紹
模擬特性:
24位無丟失碼A/D 轉(zhuǎn)換,在10Hz采樣頻率下轉(zhuǎn)換可得到22位有效轉(zhuǎn)換結(jié)果,且轉(zhuǎn)換噪音只有75nV,轉(zhuǎn)換模塊耗電<4mW;
可選緩沖輸入且輸入增益可調(diào),調(diào)節(jié)范圍為1~128;
片內(nèi)帶有精確的轉(zhuǎn)換用參考電壓,精度為0.2%,溫漂為5ppm / ℃;
8路差分或單端輸入通道;
在片偏移、增益表度,且漂移在0.02PPM/°C與0.5PPM/°C內(nèi)。
數(shù)字特性:
8051完全兼容;
高速內(nèi)核,每個指令周期只需4個時鐘周期,在33MHz晶體驅(qū)動下,單周期指令的執(zhí)行時間為121nS;雙數(shù)據(jù)指針,可更加快數(shù)據(jù)傳送;
高達32K FLASH存儲器,F(xiàn)LASH存儲器可分區(qū)為程序存儲器與數(shù)據(jù)存儲器,F(xiàn)LASH存儲器可在系統(tǒng)串行編程,可加密,達1M次擦寫周期,;
1280K SRAM型數(shù)據(jù)存儲器;
2KB 啟動ROM;
34條I/O口線;
額外的32位累加器;
3個16位定時/計數(shù)器,一個系統(tǒng)時鐘,一個可編程看門狗定時器;
全雙工UART,帶DMA主、從方式SPI;
16位PWM;
多種能量控制方式,可耗電 < 1mA的空閑方式,可耗電<1 uA的停機模式,且各個模塊的供電可以控制,低電壓檢測;
21個中斷源,可提供系統(tǒng)的靈活實時控制;
表一給出了MSC1210的大致特性。
FLASH存儲器的使用
MSC1210系列單片機的片內(nèi)存儲器4K到32K字節(jié)不等。其中MSC1210Y5的存儲器最大,有32K字節(jié)。而所有的存儲器可以通過控制位來定義用于程序存儲的大小與用于數(shù)據(jù)存儲的大小。用于程序存儲的FLASH只能通過CPU的取指令操作自動訪問、以及用 MOVC 指令進行表格查詢時用戶訪問。用于數(shù)據(jù)存儲的FLASH可以片外RAM的方式用MOVX指令任意讀寫。由于FLASH 的這種特性,可將程序使用剩余的FLASH定義為數(shù)據(jù)存儲使用,而不需要擴展數(shù)據(jù)存儲器,對于節(jié)省空間以及提高系統(tǒng)可靠性很有意義。硬件配置寄存器0 (HCR0)的低3位將定義FLASH存儲器的劃分,表二與表三反映了不同F(xiàn)LASH容量器件的程序存儲器與數(shù)據(jù)存儲器的劃分情況。
舉例說明:(使用MSC1210Y5)
MOV HCR0,#02H ;劃分32K FLASH中的各16K 為程序空間與數(shù)據(jù)空間。
……
MOV DPTR,#400H ;400H為數(shù)據(jù)存儲器的第一字節(jié)
MOVX @DPTR,ADRESH ;保存轉(zhuǎn)換結(jié)果的高字節(jié)到400H單元
INC DPTR ;401H為數(shù)據(jù)存儲器的第二字節(jié)
MOVX @DPTR,ADRESM ;保存轉(zhuǎn)換結(jié)果的中間字節(jié)到401H單元
INC DPTR ;402H為數(shù)據(jù)存儲器的第三字節(jié)
MOVX @DPTR,ADRESL ;保存轉(zhuǎn)換結(jié)果的低字節(jié)到402H單元
……
在由HCR0的低3位定義了FLASH存儲器的劃分之后,程序存儲器的起始地址依然是0000H,但結(jié)束地址由劃分的尺寸決定(見表三);數(shù)據(jù)存儲器的起始地址由0400H開始,不是0000H,結(jié)束地址由劃分的尺寸決定(見表三)。在使用時,要注意數(shù)據(jù)存儲器的讀寫地址不要超出范圍。
24位模數(shù)轉(zhuǎn)換及其使用方法
MSC1210內(nèi)帶8路24位模數(shù)轉(zhuǎn)換器,由輸入多路器、可編程增益放大器、調(diào)節(jié)器、數(shù)字濾波器、參考穩(wěn)壓源等組成。
1 輸入多路器
輸入多路器將切換多路模擬輸入信號到輸入緩沖器。共有9路輸入信號,其中一路為片內(nèi)溫度傳感器信號,每路輸入可設(shè)置單極性輸入與差分輸入。片內(nèi)配置有模擬輸入緩沖,當不使用輸入緩沖時, 輸入阻抗為5M歐姆,當使用模擬輸入緩沖時,輸入阻抗由時鐘頻率與增益決定:
由寄存器ADMUX選擇輸入通道以及相應(yīng)通道的極性。該寄存器絕對地址是0D7H,默認值是01。該寄存器的8位含義如下:
將表四與表五結(jié)合起來就可以選擇每一個輸入通道的輸入是正極性還是負極性、或是差分輸入(如果正負極性都選擇,就是差分輸入)。
2 可編程增益放大器與參考電壓
可編程增益放大器能設(shè)定增益為1、2、4、8、16、32、64、128 。使用可編程增益放大器能非常有效地改善轉(zhuǎn)換結(jié)果。當5V為滿刻度時,設(shè)增益為1,則ADC可分辨出1uV;當40mV為滿刻度,增益為128時,可分辨 75nV??梢娍删幊淘鲆娣糯笃髟诟纳妻D(zhuǎn)換分辨率上非常有用。寄存器ADCON0的低3位決定增益的大小。默認值是1。該寄存器同時也決定參考電壓的選擇,第5位為1將使能內(nèi)部參考電壓發(fā)生器,第4位將決定參考電壓是2.5V還是1.5V。該寄存器默認值為30H,表示增益為1,使用內(nèi)部2.5V 參考電壓。
轉(zhuǎn)換結(jié)果將使用3個寄存器暫存:ADRESH(高字節(jié))、ADRESM(中字節(jié))、ADRESL(低字節(jié))。可以定時采樣,定時得到轉(zhuǎn)換結(jié)果。
4 A/D轉(zhuǎn)換舉例
下面的程序?qū)崿F(xiàn)輸入通道1的正極性模擬轉(zhuǎn)換,并將轉(zhuǎn)換結(jié)果送顯示緩存顯示。
void main(void)
{
PDCON &= 0x0f7; //打開轉(zhuǎn)換器
ACLK = 30; // 設(shè)置ACLK頻率
ADCON0=0x30; //選擇片內(nèi)參考電壓
ADMUX=0x1; //選擇第一通道正極性
while(1)
{
disbuffer[7] = (ADRESH>>4)&0XF; //使用6只數(shù)碼管十六進制顯示轉(zhuǎn)換結(jié)果
disbuffer[6]=ADRESH&0XF;
disbuffer[5] = (ADRESM>>4)&0XF;
disbuffer[4]=ADRESM&0XF;
disbuffer[3] = (ADRESL>>4)&0XF;
disbuffer[2]=ADRESL&0XF;
disp();
}
}
總結(jié)
通過實際運用,可以發(fā)現(xiàn)TI的帶24位A/D轉(zhuǎn)換的51內(nèi)核混合器件MSC1210的確具有很高的性能、很高的集成度、很大的靈活性。尤其值得一提的是片內(nèi)FLASH的靈活運用,省去了擴展數(shù)據(jù)存儲器需要的地址鎖存器與SRAM,以及大面積的印刷板空間;帶可編程增益放大的24位A/D轉(zhuǎn)換器可以實現(xiàn)非常高精度的模數(shù)轉(zhuǎn)換。