(7) Mikrokontrolery MSP430: obsługa ADC

W trybach pracy pomiaru pojedynczego kanału (tryb 1, tryb 3) multiplekser wybiera kanał pomiarowy wskazany przez bit ADC10INCHx. Pozostałe kanały pomiarowe są nieużywane i dołączone do masy analogowej mikrokontrolera.

W trybach pracy pomiaru grupy kanałów (tryb 2, tryb 4) bit ADC10INCHx wybiera „najstarszy” kanał w grupie pomiarowej. Po wykonaniu pomiaru multiplekser automatycznie przełącza się na kanał o wcześniejszym numerze. Kanały pomiarowe są przełączane do momentu wykonania pomiaru napięcia na kanale numer 0 (pomiary od kanału wskazanego bitem ADC10INCHx do kanału numer 0). Schemat elektryczny układu multipleksera pokazano na rysunku 2.

 

Rys. 2. Multiplekser analogowy, moduł ochrony ESD i układ przełączający 

Rys. 2. Multiplekser analogowy, moduł ochrony ESD i układ przełączający

 

Kanały pomiarowe o numerach A0-A7 oraz A12-A15 służą do pomiaru napięcia podanego na linie wejścia/wyjścia mikrokontrolera. Żeby rozpocząć pomiar należy linię wejścia/wyjścia do której doprowadzono sygnał analogowy, ustawić w tryb pracy wejścia analogowego (funkcyjny tryb pracy linii wejścia/wyjścia). Ustawienia konfiguracyjne dla mikrokontrolera MSP430FR5739 w obudowie RHA pokazano w tabeli 4.

Tab. 4. Kanały pomiarowe (zewnętrzne)

Kanał

Port

Linia

Tryb funkcyjny

Konfiguracja (*)

A0

P1

0

 

 

 

3

 

 

PxSELC |= BITy;

P0SELx |= BITy;

P1SELx |= BITy;

A1

P1

1

A2

P1

2

A3

P1

3

A4

P1

4

A5

P1

5

A6

P2

3

A7

P2

4

***

A12

P3

0

 

 

1

 

 

 P0SELx |=  BITy;

A13

P3

1

A14

P3

2

A15

P3

3

(*) x – numer portu, y – numer linii (po starcie MSP430 bity portów PxSELC, P0SELx, P1SELx są wyzerowane)

 

Pozostałe 4 kanały pomiarowe to kanały wewnętrzne. Umożliwiają one pomiar napięcia zasilania mikrokontrolera, pomiar temperatury z wykorzystaniem wewnętrznego czujnika temperatury, oraz pomiar zewnętrznego napięcia referencyjnego. Opis funkcji kanałów pomiarowych prezentuje tabela 5.

Tab. 5. Kanały pomiarowe (wewnętrzne)

Kanał

Opis

A8

napięcie referencyjne VE(REF+)

A9

napięcie referencyjne VE(REF-)

A10

temperatura mikrokontrolera

A11

napięcie zasilania mikrokontrolera

 

Potencjały referencyjne V(R-), V(R+)

Konwersja napięcia z postaci analogowej do postaci cyfrowej odbywa się w rdzeniu SAR przy wykorzystaniu potencjałów referencyjnych V(R–), V(R+).Wynik pomiaru w formie cyfrowej NADC określa wzór 7.1.

 

gdzie:

NADC – wynik pomiaru w formacie cyfrowym,

NRES – współczynnik maksymalnej rozdzielczości przetwornika (1023 gdy 10 bitów, 255 gdy 8 bitów),

VIN – mierzone napięcie wejściowe  [V],

VR– – niższy potencjał referencyjny  [V],

VR+ – wyższy potencjał referencyjny [V].

Jeśli wartość mierzonego napięcia VIN jest większa, bądź równa wartości potencjału V(R+) wówczas wynik przyjmuje maksymalną dopuszczalną wartość NRES (1023 przy rozdzielczości przetwornika równej 10 bitów, 255 przy rozdzielczości przetwornika równej 8 bitów). W przypadku napięcia VIN mniejszego bądź równego niż potencjał V(R-) wynik pomiaru wynosi 0. Tak zdefiniowane parametry pracy, określają zakres pomiarowy [od V(R–) do V(R+) ] oraz rozdzielczość pomiarową ([ V(R+) – V(R–) ]/(NRES + 1)) przetwornika.

Moduł ADC10_B obsługuje kilka źródeł potencjałów referencyjnych: V(R–), V(R+). Źródłem potencjału V(R-) może być:

  • AVSS masa mikrokontrolera (analogowa),
  • VE(REF–) napięcie podane na linię P1.0 mikrokontrolera (dopuszczalny zakres napięcia to: od 0 V do 1,2 V).

Źródłem potencjału V(R+) może być:

  • AVCC napięcie zasilania mikrokontrolera (analogowe),
  • VE(REF+) napięcie podane na linię P1.1 mikrokontrolera (dopuszczalny poziom napięcia to: od 1,4 V do napięcia zasilania AVCC),
  • VE(REF+) BUF, napięcie zewnętrzne VE(REF+) po przejściu przez moduł bufora,
  • V(REF) napięcie wytwarzane przez wbudowany w strukturę mikrokontrolera generator napięcia REF (dostępne są 3 wartości: 1,5 V; 2,0 V oraz 2,5 V).

Źródła konfigurowane są programowo przy pomocy bitu ADC10SREFx z rejestru ADC10MCTL0. Dostępne nastawy pokazano w tabeli 6.

Tab. 6. Potencjały referencyjne

Rejestr

Bit

Opis

 

 

 

 

 

ADC10MCTL0

ADC10SREF_0

V(R+) = AVCC   V(R–) = AVSS

ADC10SREF_1

V(R+) = VREF   V(R–) = AVSS

ADC10SREF_2

V(R+) = VE(REF+) BUF   V(R–) = AVSS

ADC10SREF_3

V(R+) = VE(REF+)   V(R–) = AVSS

ADC10SREF_4

V(R+) = AVCC   V(R–) = VE(REF–)

ADC10SREF_5

V(R+) = VREF          V(R–) = VE(REF–- )

ADC10SREF_6

V(R+) = VE(REF+) BUF  V(R–) = VE(REF–)

ADC10SREF_7

V(R+) = VE(REF+)       V(R–) = VE(REF–)

 

Do pobrania

O autorze