TMS320F28027中兩種A/D采樣方式的實(shí)現(xiàn)
摘要:以TMS320F28027為代表的TI C28x Piccolo系列微處理器采用了以SOC為基礎(chǔ)的ADC,其配置方式不同于TI其他系列MCU基于Sequencer的ADC。在TMS320F28027的基礎(chǔ)上,詳細(xì)介紹了其ADC的工作原理,以及順序采樣和同步采樣兩種采砰方式的配置方法。
本文引用地址:http://m.butianyuan.cn/article/201610/307558.htm關(guān)鍵詞:TI C28x Piccolo系列微處理器:基于SOC的ADC;順序采樣;同步采樣
引言
TI C28x Piccolo系列微處理器,因其低功耗、高性能的特點(diǎn),被廣泛應(yīng)用在太陽(yáng)能逆變器、白色家電設(shè)備、混合動(dòng)力汽車電池、電力線通信和LED照明等控制領(lǐng)域。A/D轉(zhuǎn)換實(shí)現(xiàn)了模擬量到數(shù)字量的轉(zhuǎn)換,是控制應(yīng)用中必不可少的環(huán)節(jié)之一。A/D轉(zhuǎn)換的精度和速度直接關(guān)系到控制系統(tǒng)的準(zhǔn)確性和快速性。
相比于TI其他類型微處理器,TI C28x Piccolo系列內(nèi)部集成了新一代的基于SOC的ADC。此ADC的內(nèi)核包含一個(gè)12位轉(zhuǎn)換器,此轉(zhuǎn)換器由兩個(gè)采樣保持電路供源。這兩個(gè)采樣保持電路可同時(shí)或者順序采樣。對(duì)于用戶來(lái)講,可以很容易地從一個(gè)單觸發(fā)來(lái)創(chuàng)建一系列的轉(zhuǎn)換。但此ADC在寄存器沒(méi)置和配置方式上與基于Sequencer的ADC有很大的不同,主要體現(xiàn)在控制寄存器ADCCTRL的數(shù)量和功能位設(shè)置、中斷和丁作方式的配置方式等方面,更新后的寄存器設(shè)置可以參見(jiàn)TI的相關(guān)文獻(xiàn)。
1 ADC的工作原理和初始化
1.1 工作原理
對(duì)基于SOC的ADC,其核心在于對(duì)16個(gè)SOC(Start Of Conversion)的配置,單個(gè)SOC對(duì)應(yīng)單個(gè)A/D轉(zhuǎn)換過(guò)程,SOC的配置數(shù)量取決于應(yīng)用中需要A/D轉(zhuǎn)換的數(shù)目。每個(gè)SOC中都有三種配置項(xiàng):?jiǎn)?dòng)轉(zhuǎn)換的觸發(fā)源、采樣通道以及采樣窗口時(shí)間。
其中,觸發(fā)源可選擇軟件、PWM、GPIO,以及CPU定時(shí)器等多種觸發(fā)方式,采樣通道可根據(jù)采樣方式的不同選擇ADCINA1~8、ADCINB1~8共16個(gè)或8對(duì)采樣通道,采樣窗口時(shí)間也可根據(jù)需要設(shè)置。
對(duì)于單個(gè)轉(zhuǎn)換,ADC的工作過(guò)程為:在收到相應(yīng)的觸發(fā)信號(hào)后,即開(kāi)始按設(shè)置的采樣窗口時(shí)間對(duì)指定通道進(jìn)行采樣,隨后,采樣值與參考電壓進(jìn)行比較,得到轉(zhuǎn)換值。同時(shí),在轉(zhuǎn)換開(kāi)始時(shí)或轉(zhuǎn)換完成時(shí)觸發(fā)與SOC編號(hào)對(duì)應(yīng)的EOC(End Of Conversion)脈沖,標(biāo)志轉(zhuǎn)換結(jié)束。轉(zhuǎn)換的結(jié)果存儲(chǔ)在與SOC編號(hào)對(duì)應(yīng)的ADCRESULT寄存器中。
1.2 轉(zhuǎn)換結(jié)果的計(jì)算
若在初始化中選擇內(nèi)部參考,ADC將會(huì)選擇其內(nèi)部的帶隙電路產(chǎn)生參考電壓。此時(shí)ADC的轉(zhuǎn)換范圍為0~3.3 V,轉(zhuǎn)換結(jié)果的計(jì)算公式如下:
若選擇外部電壓參考,則需要從VREFHI/VREFLO引腳引入?yún)⒖茧妷?,此時(shí)ADC的轉(zhuǎn)換范同為0~VREFHI,轉(zhuǎn)換上限為參考電壓值,轉(zhuǎn)換結(jié)果的計(jì)算公式如下:
1.3 初始化和中斷設(shè)置
使用ADC時(shí),應(yīng)進(jìn)行4步初始化操作:設(shè)置ADC校準(zhǔn);內(nèi)部各電路上電;選擇內(nèi)部或外部采樣參考;打開(kāi)ADC。一般情況下ADC校準(zhǔn)可使用廠家設(shè)定值,調(diào)用函數(shù)Device cal()即可。
若選擇默認(rèn)校準(zhǔn)值和內(nèi)部參考電壓,ADC的初始化程序如下:
以上設(shè)置在TI C2000系列v129版本的頭文件DSP2802x_Adc.c中被編譯成了函數(shù)InitAdc(),可在程序中直接調(diào)用。
ADC的每次轉(zhuǎn)換完成后都可觸發(fā)中斷,若需要使用ADC中斷,則可進(jìn)行如下步驟的設(shè)置:設(shè)置中斷觸發(fā)時(shí)刻,可選擇開(kāi)始轉(zhuǎn)換時(shí)觸發(fā)或轉(zhuǎn)換結(jié)果產(chǎn)生時(shí)觸發(fā);選擇中斷編號(hào);設(shè)置中斷產(chǎn)生與中斷標(biāo)志的關(guān)系,可選擇在中斷產(chǎn)生與中斷標(biāo)志狀態(tài)無(wú)關(guān)或在存在中斷標(biāo)志時(shí)不產(chǎn)生中斷;選擇觸發(fā)中斷的EOC信號(hào)。
若需要在SOC2的轉(zhuǎn)換結(jié)果產(chǎn)生后觸發(fā)ADCINT1中斷,且在存在中斷標(biāo)志時(shí)不再產(chǎn)生中斷,配置程序如下:
在完成對(duì)ADC的初始化設(shè)置后,即可根據(jù)應(yīng)用需要配置采樣方式和單次轉(zhuǎn)換。
2 順序采樣方式的實(shí)現(xiàn)
2.1 順序采樣方式
順序采樣是最常用的采樣方式,即單次轉(zhuǎn)換按照觸發(fā)-采樣-轉(zhuǎn)換的順序進(jìn)行。順序采樣只要按需求配置SOC即可。
ADC中共有16個(gè)SOCCx,x表示編號(hào)為0~15。每個(gè)SOC可沒(méi)置由不同或相同的觸發(fā)源觸發(fā),對(duì)任意采樣通道進(jìn)行可調(diào)時(shí)間的采樣和轉(zhuǎn)換。用戶在設(shè)置好3個(gè)配置項(xiàng)后,ADC按照SOC0~SOC15的默認(rèn)優(yōu)先級(jí)進(jìn)行轉(zhuǎn)換。SOC的優(yōu)先級(jí)也可通過(guò)優(yōu)先級(jí)控制寄存器SOCPRICTL進(jìn)行設(shè)置。
順序采樣方式的時(shí)序可以參見(jiàn)TI的相關(guān)文獻(xiàn)。
在實(shí)際應(yīng)用中,通??稍O(shè)置多個(gè)SOC對(duì)同一通道進(jìn)行采樣,并對(duì)采樣結(jié)果取平均值,即可有效地消除模擬信號(hào)中高頻噪聲的影響,提高A/D轉(zhuǎn)換的精度。
若要在收到定時(shí)器Timer0的觸發(fā)信號(hào)后按照通道ADCINA4、ADCINA2、ADCINA6的順序進(jìn)行轉(zhuǎn)換,SOC的配置程序如下:
ADCINA4通道的采樣結(jié)果存儲(chǔ)在ADCRESULT0中,ADCINA2通道采樣結(jié)果存儲(chǔ)在ADCRESULT1中,ADCINA6的采樣結(jié)果存儲(chǔ)在ADCRESULT2中。
此外,需要指出的是,此類ADC的采樣通道在空閑時(shí)也可以作為普通I/O端口使用,這也是與其他系列不同的地方。
2.2 采樣和轉(zhuǎn)換時(shí)間的計(jì)算
通過(guò)ADCSOCxCTL寄存器的ACQPS位,可設(shè)置采樣窗口大小,即采樣時(shí)間。采樣時(shí)間設(shè)置的基本單位為一個(gè)時(shí)鐘周期,ACQPS可設(shè)置為6~63的任意數(shù)值,采樣時(shí)間可通過(guò)如下公式計(jì)算:
采樣時(shí)間=(ACQPS+1)×時(shí)鐘周期
轉(zhuǎn)換時(shí)間=13×時(shí)鐘周期
A/D轉(zhuǎn)換過(guò)程的總時(shí)間=(ACQPS+14)×時(shí)鐘周期
3 同步采樣方式的實(shí)現(xiàn)
在某些應(yīng)用中,為保證兩個(gè)信號(hào)的采樣間隔最小,常采用同步采樣的方式。Piccolo系列MCU的ADC內(nèi)部具有雙采樣保持電路,這使對(duì)雙通道的同步采樣成為可能。
在同步采樣模式中,偶數(shù)編號(hào)的SOCx與其下一位奇數(shù)編號(hào)的SOCx組成一個(gè)采樣對(duì),例如SOC0和SOC1、SOC2和SOC3。8位寄存器ADCSAMPLEM ODE的一位SIMULENx控制一個(gè)采樣對(duì)的使能,其編號(hào)與采樣對(duì)的偶數(shù)編號(hào)相對(duì)應(yīng),例如SIMULEN0對(duì)應(yīng)SOC0和SOC1采樣對(duì)。
同步采樣模式有以下規(guī)則:
①采樣對(duì)中任意一個(gè)SOCx的觸發(fā)都有效;
②只有編號(hào)相同的A/B通道才能實(shí)現(xiàn)一對(duì)同步采樣;
③A/B通道的信號(hào)會(huì)被同時(shí)采樣,但A通道會(huì)優(yōu)先轉(zhuǎn)換;
④A通道轉(zhuǎn)換結(jié)束后可觸發(fā)偶數(shù)編號(hào)的EOx,B通道轉(zhuǎn)換結(jié)束后可觸發(fā)奇數(shù)編號(hào)的EOCx;
⑤A通道轉(zhuǎn)換的轉(zhuǎn)換結(jié)果會(huì)被儲(chǔ)存在偶數(shù)編號(hào)的ADCRESULTx中,B通道轉(zhuǎn)換的轉(zhuǎn)換結(jié)果會(huì)被存儲(chǔ)在奇數(shù)編號(hào)的ADCRESULTx中;
⑥在進(jìn)行多對(duì)同步采樣時(shí),同樣遵守SOCx的優(yōu)先級(jí)設(shè)置。
對(duì)于PWM1.ADCSOCA觸發(fā)的同步采樣,具體的配置方式如下:
其工作過(guò)程為:在PWM1送出ADCSOCA觸發(fā)信號(hào)后,ADCINA2通道和ADCINB2通道會(huì)同時(shí)開(kāi)始采樣,采樣完成后,A通道會(huì)優(yōu)先轉(zhuǎn)換,結(jié)果存儲(chǔ)在ADCRESULT0寄存器中。同時(shí),按寄存器ADCCTL1中INTPULSEPOS位的配置,EOC0脈沖會(huì)在轉(zhuǎn)換開(kāi)始或轉(zhuǎn)換完成時(shí)觸發(fā)。隨后B通道開(kāi)始轉(zhuǎn)換,結(jié)果存儲(chǔ)在ADCRESULT1寄存器中,并按相同規(guī)律觸發(fā)EOC1脈沖。
結(jié)語(yǔ)
Piccolo系列微處理器內(nèi)置ADC具有采樣時(shí)間可調(diào)、轉(zhuǎn)換快速、準(zhǔn)確度高和配置簡(jiǎn)單的特點(diǎn)。本文詳細(xì)介紹了其初始化、中斷、觸發(fā)源和通道選擇的配置過(guò)程,以及采樣值、采樣時(shí)間等參數(shù)的計(jì)算方法,并給出了實(shí)現(xiàn)順序采樣方式和同步采樣方式的例程。通過(guò)實(shí)驗(yàn)驗(yàn)證,例程均可實(shí)現(xiàn)其功能,為該系列處理器的實(shí)際應(yīng)用奠定了良好基礎(chǔ)。
評(píng)論