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