在設置中斷優(yōu)先級比較麻煩或者中斷固有的不可預測性不好處理的應用中,模數轉換器(ADC)工作在輪詢(xún)模式下要比工作在中斷驅動(dòng)模式下更適合。本應用筆記詳細論述了MAXQ3120微控制器的16位Σ-Δ ADC工作在輪詢(xún)模式下時(shí)需要注意的一些事項。用匯編語(yǔ)言源代碼演示了輪詢(xún)模式的實(shí)現方法。 概述 MAXQ3120是第一款集成了雙通道、16位Σ-Δ模數轉換器(ADC) (圖1)的MAXQ微控制器。該ADC使這款微控制器尤其適用于單相電表,同時(shí)也適用于任何需要高精度模數轉換的應用場(chǎng)合。對于設置中斷優(yōu)先級比較麻煩或者中斷固有的不可預測性不好處理的應用,ADC最好工作在輪詢(xún)模式下而不是中斷驅動(dòng)模式下。 圖1. ADC功能框圖 該應用筆記闡述了MAXQ3120的ADC工作在輪詢(xún)模式下時(shí)的使用情況,并討論了編程注意事項。給出了ADC的一個(gè)特定代碼實(shí)例。對MAXQ3120乘法-累加器(MAC)的用法和LCD驅動(dòng)器性能也進(jìn)行了說(shuō)明。在這個(gè)實(shí)例中,MAC完成ADC輸出的簡(jiǎn)單求和(和隨后的求平均值運算),并由LCD顯示平均轉換結果。 本文所給出的代碼實(shí)例是針對MAXQ3120編寫(xiě)并經(jīng)過(guò)測試的,但也可以在包含相似資源的其他相關(guān)MAXQ器件上運行。該例程代碼的整個(gè)開(kāi)發(fā)環(huán)境采用MAX-IDE 1.0版本和MAXQ3120評估板硬件版本B。 編程注意事項 當MAXQ3120的ADC工作在輪詢(xún)模式下時(shí),軟件設計應考慮轉換器的以下幾個(gè)特性:第一,設計者必須了解ADC控制寄存器(ADCN)中各個(gè)位的意義和用法。表1列出了該寄存器的各個(gè)位,每一位的功能說(shuō)明如表2所示。當一個(gè)ADC輸出值準備就緒時(shí),硬件將ASR1或ASR0位置1。此時(shí)軟件可以從ADC的輸出寄存器(AD1或AD0)中讀取一個(gè)帶符號的16位數值。如果在讀輸出寄存器之前完成了多次轉換,那么新的轉換結果不寫(xiě)入輸出寄存器。采樣丟失位ASL1或ASL0置位,并舍棄這些轉換結果。在附帶的軟件(參見(jiàn)下面的實(shí)例代碼部分)中,每次讀輸出寄存器之前都要測試ASR0位的狀態(tài)。在本文這種情況下,輸出是否溢出并不重要。因此忽略了采樣丟失位的狀態(tài)。同時(shí),增益設置為1,由內部帶隙提供基準電壓,在該實(shí)例中僅使能了一個(gè)模數轉換通道(0)。 軟件中另一個(gè)需考慮的問(wèn)題是ADC中各種不同模塊的建立時(shí)間。調制器、sinc3濾波器和基準帶隙緩沖器都存在建立時(shí)間。通過(guò)在程序的開(kāi)始階段啟動(dòng)ADC,并允許其連續運行,可以使這些建立時(shí)間只出現一次。軟件實(shí)例中包含一個(gè)大約1s的軟件循環(huán)延時(shí)(基于8MHz時(shí)鐘),可以減慢程序循環(huán)以及隨后的顯示刷新操作。ADC啟動(dòng)之后也加入了這一延時(shí),從而給各模塊提供了建立時(shí)間。當然這一延時(shí)比所需要的建立時(shí)間長(cháng)的多(具體規格參見(jiàn)MAXQ3120數據資料),采用這種代碼延時(shí)只是為了實(shí)現更加簡(jiǎn)單。 MAXQ3120包含一個(gè)可以在一個(gè)時(shí)鐘內實(shí)現16位 x 16位字MAC功能的硬件模塊。該性能可與許多數字信號處理器相媲美,使得MAXQ3120能夠快速執行數學(xué)計算。本應用不需要快速數學(xué)計算功能,但MAC幫助計算ADC輸出的平均值,以平滑輸出結果并使顯示的數值變化更緩慢一些。為了得到這個(gè)平均值,一個(gè)乘數取為1,將16個(gè)16位轉換結果傳送給MAC。這16個(gè)數據字的總和存放在累加器中。在完成求和運算后,該結果除以16 (移位和相加)來(lái)計算平均值。這個(gè)平均值送到LCD上進(jìn)行顯示。有關(guān)MAC性能的詳細說(shuō)明參見(jiàn)MAXQ微控制器用戶(hù)指南。 實(shí)例代碼 和本應用筆記配套的軟件包含在A(yíng)DC_Polled.zip文件中,可以進(jìn)行下載。該文件包括:源代碼文件ADC_Polled.asm,My3120kit_lcd.asm,maxq_math.asm;包含文件maxq3120x.inc;以及MAX-IDE工程文件ADC_Polled.prj。將這些文件解壓到一個(gè)公用目錄下,對該軟件進(jìn)行匯編并在MAXQ3120評估板上執行。 給MAXQ3120的ADC輸入施加一個(gè)變化的電壓,然后觀(guān)察LCD上的顯示結果,該應用非常有用并能提供更多的信息。用一個(gè)定值電阻和一個(gè)電位器可產(chǎn)生范圍合適的可變電壓。該電路的元件連接原理圖見(jiàn)圖2。MAXQ3120評估板在DB-9串行連接器附近提供了一小塊原型區域。原型區域邊沿還具有連接AVCC和AGND走線(xiàn)的過(guò)孔。加入這一簡(jiǎn)單電路后,可在模擬通道0輸入端(AN0+)施加0至0.823V電壓(最大值接近1V)。如原理圖所示,AN0-輸入接AGND,以提供一個(gè)參考電平。 圖2. 產(chǎn)生ADC輸入的分壓器電路原理圖 結束語(yǔ) MAXQ3120微控制器包括一個(gè)雙通道、16位Σ-Δ ADC,可用于所有需要高精度模數轉換的系統中。該應用筆記講述了工作在輪詢(xún)模式下時(shí)需要考慮的一些ADC特性。實(shí)例代碼演示了如何在輪詢(xún)模式下使用ADC。實(shí)例代碼還演示了包括MAC硬件和直接LCD驅動(dòng)性能在內的其他MAXQ3120特性。MAXQ3120評估板作為該軟件的平臺。通過(guò)加入由兩個(gè)常見(jiàn)元件組成的電路,用戶(hù)可將一個(gè)可變電壓加到ADC輸入端,并觀(guān)察評估板上LCD的顯示結果。 |