ADμC812應用中的若干問題
本文引用地址:http://www.ex-cimer.com/article/241616.htm
摘 要: ADμC812作為新一代微控制器,具有強大的功能,比以往的單片機有著更廣闊的應用前景。在實際應用中發(fā)現,芯片本身尚存在一些應注意的問題及使用時的特殊要求。本文對這些問題進行總結,以供讀者參考。
關鍵詞: 在線調試數據轉換SPI引言
ADμC812是高度集成的高精度12位數據采集系統(tǒng),其功能方框圖如圖1所示。從圖中可知,該芯片內不僅集成了可重新編程非易失性閃速/電擦除程序存儲器的高性能8位(與8051兼容)MCU,還包含了高性能的自校準8通道ADC及2通道12位DAC。
圖1 ADμC812功能方框圖如所有與8051兼容的器件一樣,對于程序和數據存儲器,ADμC812具有各自獨立的地址空間:64KB外部程序地址空間和16MB外部數據地址空間。但與其他器件不同的是,它包含了片內閃速存儲器技術,向用戶提供8KB的閃速/電擦除程序存儲器、640B的閃速/電擦除數據存儲器。
芯片集成了全部輔助功能塊以充分支持可編程的數據采集核心。這些輔助功能塊包括看門狗定時器(WDT)、電源監(jiān)視器(PSM)以及ADC DMA功能。另外,為多處理器接口和I/O擴展提供了32條可編程的I/O線、I2C兼容的SPI和標準UART串行端口。
與以往的80C51單片機不同,ADμC812具有獨特的在線調試和下載功能,由支持ADμC812的開發(fā)工具包QuickStart開發(fā)系統(tǒng)來提供。也就是說,在用戶系統(tǒng)保留ADμC812的情況下,通過開發(fā)系統(tǒng)與ADμC812的串口通信,可直接對用戶系統(tǒng)進行調試,并在調試完成后將已調試好的程序下載到ADμC812中。
雖然ADμC812具有上述各種優(yōu)良性能,但由于它是一種新型微控制器,與以往的單片機相比,在用法上有許多不同之處。因此,在進行ADμC812系統(tǒng)開發(fā)應用時,仍然有許多問題須要注意。下面,將我們在應用ADμC812開發(fā)產品時發(fā)現的一些應注意的問題及其解決辦法介紹如下。應用中存在的若干問題
1 在線調試注意事項
ADμC812與其他單片機突出不同之處在于支持它的開發(fā)系統(tǒng)不同。QuickStart開發(fā)系統(tǒng)是支持ADμC812的開發(fā)工具包,功能完善,包括下載、調試和模擬等功能。
(1) RS232接口電路
對于用戶開發(fā)系統(tǒng)來說,在線調試和下載功能最重要,也是最常使用的,但二者都需通過PC機上的串行端口與ADμC812的UART串行端口之間連接的串行端口電纜進行數據通信才能發(fā)揮作用。因此,用戶在開發(fā)應用系統(tǒng)的同時,應設計一個RS232接口電路(如圖2所示)來實現PC機與ADμC812的串口通信。
圖2 RS232接口電路由于RS232接口電路是PC機和用戶開發(fā)系統(tǒng)的唯一通路,因此,它是在線調試和下載功能實現的關鍵。在用戶系統(tǒng)的開發(fā)研制過程中,經常會出現在線通信故障問題。導致該現象發(fā)生的原因有很多,但最有可能的是接口電路工作異常所產生。要判斷RS232接口電路工作是否正常,可按以下步驟逐一檢查RS232通信是否正常。
① V+和V-引腳電壓是否足夠高(分別超過+8V和-8V)。若電壓較低,則可能ADM202芯片已損壞。
② R1IN腳是否存在±12V的脈沖信號。若存在,則說明PC機方面通信發(fā)送信號正常。
③ R1OUT腳是否存在+5V信號。若存在,則說明ADM202接收PC機信號工作正常。
④ T1IN腳是否存在+5V信號。若存在,則說明ADμC812對PC機的通信產生響應;否則是ADμC812通信存在問題,說明ADμC812工作不正常。
⑤ T1OUT腳是否存在±12V的脈沖信號。若存在,但ADμC812還無法進入在線調試狀態(tài),則說明DB9與PC機之間的串行接口電纜有問題。
(2) PSEN引腳
用戶系統(tǒng)在具備RS232接口電路之后,還需通過一個與地相連的1kΩ電阻將ADμC812的PSEN引腳拉至低電平(見參考文獻[1]、[2]),才能進入在線調試和下載狀態(tài)。因此,PSEN引腳拉低是在線調試和下載功能實現的另一關鍵所在。
值得強調的是,PSEN引腳與地之間連上1kΩ電阻并不一定就能保證PSEN為低電平。若靜電造成PSEN引腳損傷,則1kΩ電阻不能將PSEN引腳拉低。經試驗證明,在PSEN引腳損傷不嚴重時,可通過把PSEN直接對地短路將其拉至低電平;但若損傷嚴重,則即使直接接地,器件仍然不能工作。因此,在使用ADμC812時,應特別小心、謹防靜電。如焊接芯片時應將電烙鐵接地,并戴上防靜電手鐲。
由于ADμC812的調試器是在用戶系統(tǒng)復位時檢測PSEN引腳狀態(tài)的,因此,為提高通信成功幾率,可在用戶系統(tǒng)復位瞬間將PSEN引腳直接對地短路。但在ADμC812芯片進入在線調試或下載狀態(tài)之后,PSEN引腳仍應通過1kΩ電阻接地。當然,若需要在下載程序后脫機運行,應將PSEN引腳與1kΩ下拉電阻斷開,否則,ADμC812將一直保持在線調試狀態(tài)。
(3) 資源占用問題
ADμC812具有3個16位定時器/計數器,即:定時器0、定時器1和定時器2。每一個定時器/計數器包含2個8位寄存器THX和TLX(X=0,1和2)。所有3個定時器/計數器均可配置作為定時器或計數器,此功能和普通單片機相同。
由于與其他單片機不同,ADμC812具備在線調試功能,因此,芯片處于在線工作狀態(tài)下某些功能將會受到限制。這是因為在線調試時,計算機和芯片之間的通信占用一定的資源所導致。經實踐證明,定時器1就是被占用的資源之一。若用戶在線調試的程序中使用了定時器1,則無論是設斷點調試,還是單步或連續(xù)運行,都會有程序無法執(zhí)行的情況發(fā)生。但若將程序中的定時器1屏蔽掉,則程序能正常運行,實現用戶預定的功能。當然,在線調試程序時可以使用定時器0和定時器2,因它們未被占用。
雖然在線調試時,定時器1無法使用,但并不意味著用戶不能在用戶系統(tǒng)中利用該定時器。用戶可先將預定功能用定時器0實現,在調試通過之后,再改用定時器1來實現;也可直接用定時器1實現,但只能盲調,因程序必須下載后脫機運行。
2 A/D轉換器的使用問題
ADμC812內集成的ADC轉換模塊,包含了8通道、12位、單電源A/D轉換器,這些A/D轉換器是由基于電容DAC的常規(guī)逐次逼近轉換器組成的,接收的模擬輸入范圍為0至+VREF(+2.5V)。另外,此模塊還為用戶提供片內基準、校準特性,模塊內的所有部件能方便地通過3個寄存器SFR接口來設置??傊?,ADμC812的ADC模塊具有與一般ADC芯片相比擬的性能,并且操作簡單、可靠性高,采集速率可高達200kHz。
(1) 基準電壓
A/D轉換器的2.5V基準電壓既可由片內提供,也可由外部基準經VREF引腳驅動。若使用內部基準,則在VREF和CREF引腳與AGND之間都應當連接100nF電容以便去耦。這些去耦電容應放在緊靠VREF和CREF引腳處。為了達到規(guī)定的性能,建議在使用外部基準時,該基準應當在2.3V和模擬電源AVDD之間。
由于片內基準高精度、低漂移且經工廠校準,并且當ADC或DAC使能時,在VREF引腳會出現此基準電壓。因此,在進行系統(tǒng)擴展時,可將片內基準作為一個2.5V的參考電源來使用。若要把片內基準用到微轉換器之內,則應在VREF引腳上加以緩沖并應在此引腳與AGND之間連接100nF電容。
在實際應用中應當特別注意,內部VREF將保持掉電直到ADC或DAC外圍設備模塊之一被它們各自的使能位上電為止。
(2) 模擬輸入
與其他ADC芯片相比,ADμC812的ADC模塊有一個缺點,就是ADC正常工作的模擬輸入范圍為0~+2.5V;而允許輸入的電壓范圍只能為正電壓(0~+5V)。經實驗證明,若輸入的模擬電壓超過+2.5V(最大值為+5V),ADC的采樣結果為最大值(0FFFH),雖然結果不對,但并沒有影響ADμC812正常工作;但是,一旦輸入負的模擬電壓,則會影響ADμC812正常工作,表現為ADC的基準電壓(VREF=+2.5V)消失和采樣結果不正確,且若長時間輸入負電壓,將有可能損壞芯片。因此,在實際應用中,若發(fā)現啟動ADC之后VREF端無電壓,則應立即將芯片復位,并檢查模擬輸入信號的采集放大部分。在確保進入ADμC812的模擬信號在0~+2.5V范圍內之后,才能再次啟動ADC。實際應用時,應保證輸入的模擬電壓為正電平。
3并行I/O端口的使用問題
與其他單片機一樣,ADμC812也有4個通用數據端口(P0~P3)與外部器件交換數據,且除了用作通用I/O之外,某些端口還能實現外部存儲器操作。另有一些端口則與器件上外圍設備其他功能多路復用。
(1) P1口
值得注意的是,在ADμC812中端口0、2和3是雙向端口,而端口1是只輸入端口。在圖3中可以看到在P1口的電路中包括了位鎖存器和輸入緩沖器,但沒有輸出驅動器,因而P1口只能被配置為數字輸入或模擬輸入,不能用于輸出。
當P1口用作模擬輸入時,它對應于ADμC812內8通道模數轉換的輸入端口ADC0~ADC7。若在實際使用中,不須將8個通道ADC都用上,可將剩余的P1口引腳設置為數字輸入,但此時須注意,它與標準的8051單片機用作數字輸入的通用I/O口不同,認為高電平有效。因此,P1口用作數字輸入時,在檢測是否有輸入信號之前,須將0寫至對應端口,然后再判斷。這就要求系統(tǒng)在設計時,應將用作數字輸入的P1口外加1個下拉電阻,一般為幾kΩ。
圖3 P1口位鎖存器與輸入緩沖(2) P2口
如前所述,ADμC812的P2口也是雙向端口,包含輸入緩沖器、輸出鎖存器和輸出驅動器。通過與P2口相應的端口SFR,可將P2口的各端口引腳獨立地配置為數字輸入或數字輸出,以及對它們進行讀、寫訪問。這些與一般單片機P2口作通用I/O口的用法相同。
但當ADμC812接有外部數據存儲器時,P2口不僅要用于輸出中8位地址(A8~A15),還要用于輸出高8位地址(A16~A23),此用法類似于P0口。不同的是,P0口是數據和地址總線復用,而P2口是中位、高位字節(jié)地址總線復用。因此,P2口在用于外擴大容量數據存儲器時,也應通過一個鎖存器將高位字節(jié)地址鎖存,如圖4所示。
圖4 P2口地址鎖存
4 外部尋址問題
與其他單片機不同,ADμC812具有24根地址線。它可尋址的外部數據存儲器空間為16MB,此超大容量的存儲空間可滿足眾多應用領域的需求。由于外部數據存儲器空間高達16MB,只用DPTR作間址寄存器是不夠的。因此,ADμC812的數據指針是由3個8位寄存器來組成,分別是DPP(頁字節(jié)寄存器)、DPH(高位字節(jié)寄存器)和DPL(低位字節(jié)寄存器),在進行內部和外部代碼訪問或外部數據訪問時,由它們來提供存儲器地址。與其他單片機一樣,DPTR仍然是由DPH和DPL兩個寄存器來構成,且用法相同;而DPP是用于傳送A23~A16最高8位地址的寄存器,這相當于若將外部數據寄存器每64KB劃分為1頁,則不同的DPP值將對應于不同的頁,因此取名為頁寄存器。
5 SPI串口對P3口的影響
為便于MCU與各種外圍設備進行通信,ADμC812提供了三種串行I/O端口:UART接口、I2C兼容的串行接口和串行外設接口(SPI)。其中,SPI接口是工業(yè)標準的同步串行接口,它允許MCU與各種外圍設備以串行方式(8位數據同時同步地被發(fā)送和接收)進行通信。由于只須使用4條線就可與多種標準外圍器件直接接口,因此,SPI接口在串口通信方面有著廣泛的應用。
然而,我們在使用ADμC812的SPI串口進行通信時,發(fā)現它與其他芯片(具有SPI串口功能)不同,此SPI串口的使能會對P3口產生影響,其現象表現為:無論P3口實際輸入電平為何值,P3口的內部鎖存器都認定為高電平,從而程序中的JB或JNB等判斷轉移指令將失去作用。這說明,SPI串口使能將使P3口只能作為輸出口來使用。因此,在同時使用SPI串口和P3口作輸入口時,為避免錯誤發(fā)生,必須在每次P3口檢測輸入信號之前都將SPI串口禁止。結束語
ADμC812作為一種新型的微控制器,具有一般單片機所不能比擬的強大功能。它內部集成的8通道高精度ADC和雙12位DAC,使其能極有效地簡化儀器中數據采集系統(tǒng)部分,同時它所提供的三種串口通信方式,可滿足各種串行器件的接口問題。它的在線調試和下載功能可極大地方便用戶系統(tǒng)的開發(fā)研制。經過一段時間探索和應用,我們已基本掌握ADμC812的各種功能,總結出一些經驗和教訓,本文旨在為用戶提供借鑒參考。MES
參考文獻
1 Analog Devices Inc. MicroConverterTM, Multichannel 12-Bit ADC with Embedded FLASH MCU ADμC812,Ver 2.0 September 1999
2 Analog Devices Inc. ADμC812 User’s Manual,2000
3 Analog Devices Inc. MicroConverterTM,SPI Serial Port,1999
4 孫涵芳,徐愛卿.單片機原理及應用.北京:北京航空航天大學出版社,1988
評論