Fórum témák

» Több friss téma
Cikkek » Launchpad: ismerkedés az MSP430 mikrovezérlőkkel IV.
Launchpad: ismerkedés az MSP430 mikrovezérlőkkel IV.
Szerző: icserny, idő: Jan 14, 2013, Olvasva: 16045, Oldal olvasási idő: kb. 3 perc
Lapozás: OK   3 / 8

Az ADC alrendszer felépítése

Az MSP430G2xxx mikrovezérlők ADC alrendszerének felépítése az alábbi ábrán látható. Az áttekinthetőség érdekében nem tüntettünk fel minden részletet.

adc10.png

 

Az ADC10 főbb jellemzői:

  • Nyolc bemenő analóg csatorna (multiplexer), négy további konverziós csatorna a beépített hőmérőhöz, VCC/2 méréséhez, és a külső referenciákhoz
  • A konverzió sebessége > 200 ksps (kilosamples per second)
  • Monoton 10-bites átalakítás, nincs hiányzó kód
  • Mintavevő-tartó áramkör programozható mintavételi időzítéssel
  • Az ADC és a feszültségreferencia forrás  külön-külön lekapcsolhatók
  • A konverzió szoftveresen vagy a Timer_A egység kimenőjeleivel (TA0.0, TA0.1, TA0.2) indítható
  • Szoftveresen választható beépített feszültségreferencia (1.5 V vagy 2.5 V)
  • Szoftveresen kiválasztható külső vagy belső referencia
  • Választható órajel források a konverzióhoz (ADC10OSC, ACLK, MCLK, SMCLK)
  • Egycsatornás, ismételt egycsatornás, csatorna pásztázó és ismételt csatorna pásztázó üzemmódok
  • Autonóm adatátvitel vezérlés az eredmények automatikus eltárolására (DTC)

 

Az ADC10 alrendszer regiszterei

Az egyszerű ADC mérésekhez az alábbi regisztereket kell beállítani:

ADC10AE0 - Az analóg bemenetek engedélyezése. Az analóg bemeteket használatuk előtt engedélyezni kell. A mikrovezérlő adatlaplának végén, a Port Schematics részben találjuk meg azt az információt, hogy az egyes portlábak különböző funkcióit hogyan választhatjuk ki. Az analóg funkció kiválasztásához az ADC10AE0 8 bites regiszter megfelelő bitjébe '1'-et kell írni. BIT0 az AN0 (P1.0) bemenetet, BIT1 az AN1 (P1.1) bemenet engedélyezi, és így tovább...

ADC10CTL0 - vezérlő regiszter. Ebben a 16 bites regiszterben áííthatjuk be a referenciaforrás választását, a belső referenciát, az ADC mintavételezési idejét. Ebben a regiszterben engedélyezhetjük az ADC10 megszakításkérést, és ebben indíthatjuk szoftveresen a mintavételezést és konverziót az ADC10SC bit '1'-be állításával.

ADC10CTL1 - vezérlő regiszter. Ebben a 16 bites regiszterben adhatjuk meg a kiválasztott analóg csatorna sorszámát, itt választhatjuk ki a mintavételezést indító jelforrást és a konvenrzióhoz szükséges órajel forrását és annak utólagos leosztását. Ebben a regiszterben állíthatjuk be az ADC bonyolultabb funkcióit (többszörös mérés, csatornapásztázás).

ADC10MEM - ebből a 16 bites regiszterből olvashatjuk ki a konverzió eredményét, ami jobbra igazítva kerül beírásra (az alsó 10 bit tartalmazza a konverzió eredményét).

ADC10DTC0, ADC10DTC1 és ADC10SA - ezek a regiszterek csak az autonóm adatátvitellel kapcsolatos üzemmódokhoz kellenek, az egyzserű ADC méréseknél ezekkel a regiszterekkel nem foglalkozunk. 

 

Az ADC10CTL0 regiszter

adc10ctl0.png

SREFx – Referencia források kiválasztása (VDD/VSS, belső-, vagy külső referencia)

ADC10SHTx – ADC10 mintavétel ideje (4, 8, 16 vagy 64 ADC10CLK óraütés)

ADC10SR – ADC10 mintavételi sebességtartomány választás (0: 200 ksps-ig, 1: 50 ksps-ig)

REFOUT – Referencia kimenet engedélyezése (0: tiltás, 1: engedélyezés)

REFBURST – A belső referencia időszakos mód (0: folyamatos mód, 1: csak átalakításkor)

MSC – Többszörös mintavétel és konverzió mód engedélyezése. Csak pásztázó vagy ismételt mérés módban játszik szerepet!

REF2_5V – Referencia választás (0 :1.5 V, 1: 2.5 V). REFON is legyen bekapcsolva!

REFON – Belső referenciaforrás bekapcsolása (0: kikapcsolva, 1: bekapcsolva)

ADC10ON – ADC10 engedélyezése (0: kikapcsolva, 1: bekapcsolva)

ADC10IE – ADC10 interrupt engedélyezés (0: tiltva, 1: engedélyezve)

ADC10IFG – ADC10 megszakításkérő bit

ENC – A konverzió engedélyezése (0: tiltva, 1: engedélyezve)

ADC10SC – Konverzió szoftveres indítása

 

Az ADC10CTL1 regiszter

adc10ctl1.png

INCHx – Bemeneti csatorna választása ( 0 – 11)

SHSx – Mintavételt indító jelforrás választása (00: ADC10SC bit, 01: Timer_A.OUT1, 10: Timer_A.OUT0, 11: Timer_A.OUT2)

ADC10DF – ADC10 adatformátum (0: bináris, 1: 2-es komplemens)

ISSH – A mintavételezett jel invertálása (0: nincs invertálás, 1: van invertálás)

ADC10DIVx – ADC10 órajel leosztás (n = 0-7, ami 1: (n+1) arányú leosztást eredményez)

ADC10SSELx – ADC10 órajel forrás választása (00: ADC10OSC, 01: ACLK, 10: MCLK, 11: SMCLK)

CONSEQx – Konverziós mód választása (00: Egyszeri, egycsatornás konverzió, 01: Csatorna pásztázó mód, 10: Ismételt egycsatornás konverzió, 11: Ismételt csatorna pásztázó konverziós mód)

ADC10BUSY – Foglaltság jelzése (0: nem aktív, 1: mintavételezés vagy konverzió zajlik)

Az adatkonverzió képletei

A konverzió digitális értéke (NADC):

  • Végkitérés: NADC= 03FFh, ha a bemenő jel ≥ VR+ -0.5*LSB
  • Nulla: NADC = 0000h, ha a bemenő jel ≤ VR- + 0.5 LSB
  • Közbeeső értékekre: NADC= 1023 * (VIN - VR-)/(VR+ - VR-)

Ahol:

NADC a konverzió eredménye (esetünkben 0 és 1023 közötti szám)

VR+ a pozitív referencia (esetünkben 3,5 V, 2,5 V vagy 1,5 V lesz)

VR- a negatív referencia (esetünkben 0 V lesz)

VIN a bemenő feszültség, amit meg akarunk mérni

 

A mért feszültség meghatározása

Bennünket többnyire nem az érdekel hogy egy adott feszültség esetén milyen számot ad kiaz ADC, hanem megfordítva: a konverzió NADC eredményéből a VIN bemenő feszültséget kell meghatározni volt, vagy millivolt egységekben. Az NADC= 1023 * (VIN - VR-)/(VR+ - VR-) képletből kifejezve, ezt kapjuk:

VIN = (VR+ - VR-) * NADC/1023 + VR+

 

 


A cikk még nem ért véget, lapozz!
Következő: »»   3 / 8
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem