msp430_cz8.pdf

(1495 KB) Pobierz
072-075_msp430_cz8.indd
PODZESPOŁY
MSP430: mikrokontrolery,
które (prawie) nie
pobierają prądu, część 8
Komparator analogowy
Mikrokontrolery z rodziny MSP430 znane są
z dobrego wyposażenia w peryferia, w tym również
peryferia rodem ze świata analogowego. Można
tu znaleźć wzmacniacze operacyjne i komparatory
napięcia a także specjalizowane bloki zawierające
wzmacniacze operacyjne o regulowanym
wzmocnieniu. W tym odcinku cyklu omówimy
moduł Comparator A.
wzmacniacz operacyjny,
posiada wejście odwraca-
jące (–) i nieodwracające
napięcie (+) oraz pojedyn-
cze wyjście. Pod tymi po-
jęciami rozumiemy wejścia
i wyjścia elementu porów-
nującego napięcie, stano-
wiącego „serce” modułu.
Wejścia te jednak nie są
dostępne bezpośrednio na
wyprowadzeniach mikro-
kontrolera (patrz rys. 22 ).
Na zewnątrz są dostępne
sygnały: CA0 i CA1 oraz
wyjście CAOUT, od któ-
rych do wnętrza mikro-
kontrolera prowadzi wiele
multiplekserów i kluczy
analogowych. Połączenie
wejść CA0 i CA1 z wej-
ściami (+) i (–) kompara-
tora jest włączane bitami
P2CA0 , P2CA1 w rejestrze
CACTL2. Z kolei ustawie-
nie bitu CAEX w reje-
strze CACTL1 powoduje
zamianę wejść miejscami.
Bity P2CA0 i P2CA1 jed-
nocześnie przypisują wy-
prowadzeniu mikrokontro-
lera funkcje alternatywne
do wyprowadzenia por-
tu (w tym wypadku wej-
ścia komparatora). Dzieje
się tak bez dodatkowych
operacji np. na rejestrze
wyboru P1SEL . Włączenie
wyjścia CAOUT wyma-
ga natomiast dodatkowe-
go ustawienia w rejestrze
P2SEL (w mikrokontrolerze
MSP430F449 CAOUT jest
sygnałem alternatywnym
dla P2.6). Takie jak ta,
Blok ten występuje
w większości mikrokontro-
lerów serii F1xx i F4xx.
Komparator A to kompa-
rator napięcia, czyli spe-
cjalizowany wzmacniacz
operacyjny służący po-
równaniu wartości napięć
i wskazaniu w określony
sposób napięcia wyższego
(niższego).
Komparator analogo-
wy musi charakteryzować
się dużym wzmocnieniem
napięciowym i niskim na-
pięciem niezrównoważenia.
Istotnym parametrem jest
też czas reakcji i szybkość
narastania zbocza na wyj-
ściu. Poprawianie tych
parametrów odbywa się
kosztem liniowości pracy
układu i to ukierunkowa-
nie architektury jest tym,
co odróżnia komparatory
od wzmacniaczy operacyj-
nych.
Komparator wbudowany
w mikrokontroler MSP430
nie odbiega właściwościa-
mi od swych scalonych
odpowiedników, ale dzię-
ki obudowaniu wieloma
przydatnymi elementami
i świetnemu zintegrowa-
niu z innymi modułami
mikrokontrolera staje się
znakomitym narzędziem
i może znaleźć zastosowa-
nie w wielu różnorodnych
aplikacjach.
Architektura modułu
ComparatorA
Komparator A, podob-
nie jak każdy komparator
analogowy i niemal każdy
Rys. 22. Budowa modułu komparatora analogowego
drobne niekonsekwencje,
spotyka się często w mo-
dułach mikrokontrolera
MSP430, dlatego też warto
uważnie czytać dokumen-
tację.
Komparator ma wyjście
dwustanowe, dodatkowo
zaopatrzone w bramkę bu-
forującą, co właściwie jest
pewnym ograniczeniem
funkcjonalnym w stosunku
do tradycyjnych kompara-
torów. Układ posiadający
72
Elektronika Praktyczna 4/2008
153199106.024.png 153199106.025.png 153199106.026.png 153199106.027.png 153199106.001.png 153199106.002.png 153199106.003.png 153199106.004.png 153199106.005.png 153199106.006.png 153199106.007.png 153199106.008.png 153199106.009.png 153199106.010.png 153199106.011.png 153199106.012.png 153199106.013.png 153199106.014.png 153199106.015.png 153199106.016.png
 
PODZESPOŁY
Elektronika Praktyczna 4/2008
73
153199106.017.png
PODZESPOŁY
Tab. 4. Rejestry konfiguracyjne modułu komparatora analogowego ComparatorA
Nazwa rejestru Funkcja rejestru Adres
CACTL1 Konfiguracyjny 0x59h
CAEX CARSEL CAREFx CAON CAIES CAIE CAIFG
CACTL2 Konfiguracyjny 0x5A
P2CA1 P2CA0 CAF CAOUT
CAPD Odłączanie portów I/O 0x5C
CAPD7 CAPD6 CAPD5 CAPD4 CAPD3 CAPD2 CAP1 CAPD0
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
su włączenia komparato-
ra – moduł pobiera ok.
50 mA, dlatego warto wy-
łączać go, jeśli nie jest
używany.
Stan wyjścia kompara-
tora jest reprezentowany
przez bit CAOUT w re-
jestrze CACTL2. W chwi-
li zmiany stanu wyjścia
komparatora, tj. wystą-
pienia zbocza o kierun-
ku wyznaczonym przez
bit CAIES , ustawiana jest
flaga CAIFG w rejestrze
CACTL1, a jeśli ustawiony
jest bit przyzwolenia na
przerwanie CAIE , nastąpi
przejście do obsługi prze-
rwania o wektorze COM-
PARATORA_VECTOR (adres
wektora 0xFFF6).
Wyjście komparatora
jest sprzężone z modułem
licznika TimerA i może
generować impuls wyzwa-
lający operacje pomiaru
czasu przez wbudowane
w TimerA rejestry kompa-
rujące (capture/compare).
Poza strukturą modu-
łu, a dokładnie w modu-
łach portów I/O (dotyczy
to portów P1 i P2) wpro-
wadzono jeszcze klucze
umożliwiające całkowite
odłączenie bufora wejścio-
wego portu od wyprowa-
dzenia zewnętrznego. Ma
to związek ze zjawiskiem
obserwowanym w ukła-
dach CMOS, gdy napięcie
wejściowe jest zbliżone
do 0,5 V CC . W takim wy-
padku obydwa tranzystory
MOS pary komplementar-
nej są częściowo otwarte,
co zwiększa pobór prądu
w sposób niekontrolowany.
Odłączenie wyprowadzeń
CA0, CA1 i CAOUT wyko-
nuje się z użyciem bitów
sterujących w rejestrze
CAPD.
List. 10. Listing programu realizującego komparator napięcia
P1DIR |= BIT0; // P1.0 jako wyjscie
CAPD |= 0x08; // Disconnect port pins
CACTL1 = CARSEL + CAREF0 + CAON; // 0.25 Vcc do (–) komparatora
CACTL2 = P2CA0; // P1.6 – wejście (+) komparatora
while (1) // test dzialania komparatora
{ // sygnal z P1.0 jest zapetlony na wejscie
// komparatora
if ((CAOUT & CACTL2))
{
P1OUT &=~ BIT0; // jesli CAOUT = 1 to P1.0 = 0 (inwersja)
delay();
}
else
{
P1OUT |= BIT0; // jesli CAOUT = 0 to P1.0 = 1 (inwersja)
delay();
}
wyjście zdolne do przyj-
mowania stanów innych
niż logiczne „0” i logiczne
„1”, miałby zapewne szer-
sze zastosowania (np. jako
prosty wzmacniacz ope-
racyjny), ale komparatora
wbudowanego w MSP430
nie można w ten sposób
użyć. Bramka wyjściowa
ma możliwość negowania
sygnału wyjścia. Sterowa-
nie inwertera sprzężono
ze sterowaniem multiplek-
serem przełączającym wej-
ścia (+) i (–) komparatora
i jest również realizowane
przez bit CAEX . Mecha-
nizm przełączania wejść
i negacji wyjścia służy do
eliminacji wpływu na-
pięcia niezrównoważenia
(potrafi być duże – do
30 mV) na wynik pracy
komparatora, poprzez pro-
ste zanegowanie wyjścia
komparatora. Mechanizmu
tego łatwo używa się przy
wielokrotnym porównaniu
powtarzającego się sygnału
(ale tylko wtedy, gdy ma
on zawsze tę samą po-
stać), gdzie dwukrotne wy-
konanie porównania, każ-
dorazowo z innym usta-
wieniem, daje podstawy
do korekcji (np. poprzez
uśrednienie). Trzeba też
pamiętać, że prawidłowe
porównanie napięć zacho-
dzi tylko pod warunkiem
utrzymania ich wartości
poniżej Vcc–1 [V]. Nie
oznacza to, że na wejścia
nigdy nie należy podawać
napięć o wyższych war-
tościach. Napięcia mogą
być wyższe, jeśli porów-
nywanie ich wartości nie
jest potrzebne. Komparator
charakteryzuje się pętlą
histerezy wejścia o szero-
kości ok. 1 mV. Na wyj-
ściu umieszczono dodatko-
wy blok filtru RC o stałej
czasowej ok. 2 ms, włącza-
ny bitem CAF (CACTL2) .
Ponadto moduł kompa-
ratora posiada zintegrowa-
ne źródło napięcia odnie-
sienia o przełączalnej war-
tości napięcia. Może to
być napięcie proporcjonal-
ne do napięcia zasilania
(0,5 V CC dla ustawienia
CAREF =[1,0] lub 0,25 V CC
dla [0,1]) lub napięcie
o bezwzględnej wartości
ok. 500 mV (dla CARE-
F =[1,1]). Źródłem napię-
cia referencyjnego jest
proste złącze półprzewod-
nikowe, dlatego parame-
try stabilizacji względem
napięcia zasilania i stabil-
ności temperaturowej są
kiepskie. Mimo to można
go użyć jako odniesienie,
np. do pomiaru własnego
napięcia zasilania, co daje
przyzwoite efekty. Napię-
cie referencyjne kierowane
jest do wyprowadzeń CA0
lub CA1, w zależności od
ustawienia bitu CARSEL .
Moduł komparatora
włącza się bitem CAON .
Warto poświęcić nieco
uwagi ograniczeniu cza-
Rys. 23. Schemat połączeń dla komparatora napięcia
Eksperyment pierwszy
– komparator napięcia
Wszystkie opisane po-
niżej eksperymenty wyko-
nano z życiem płytki ewa-
luacyjnej Demo449 (opis
w EP 12/2007). Pierwszy
eksperyment pozwala użyć
komparatora w tradycyj-
74
Elektronika Praktyczna 4/2008
153199106.018.png 153199106.019.png 153199106.020.png 153199106.021.png 153199106.022.png
PODZESPOŁY
ny sposób, jako układu
porównującego wartości
dwóch napięć. W tym wy-
padku porównywane jest
napięcie podane na wej-
ście CA0 działające jako
wejście (+) komparatora
z podanym na wejście (–)
napięciem referencyjnym.
Konfiguracja komparato-
ra obejmuje wybór rodzaju
referencji i miejsca jej do-
łączenia (bit CARSEL ) oraz
włączenie komparatora. Po-
tem następuje połączenie
wejścia (+) z wyprowadze-
niem CA0.
Operacja przypisania
wyprowadzenia powinna
właściwie być wykonywa-
na jako pierwsza. Nale-
ży unikać pozostawienia
wejścia komparatora bez
podłączenia do obwodów
zewnętrznych, by uniknąć
jego niekontrolowanego
przełączania, jednak w tak
prostym eksperymencie
nie ma to większego zna-
czenia.
Kolejny fragment pro-
gramu ustala stan portu
P1.0 w zależności od wy-
niku komparacji. Po uru-
chomieniu programu nale-
ży na wyprowadzenie P1.6
(CA0) podać napięcie np.
potencjometru, by zaobser-
wować zmiany stanu linii
P1.0 (oraz stan sygnału
CAOUT w debuggerze). Do
portu P1.0 można dołą-
czyć diodę LED by obser-
wować działanie kompa-
ratora. Dodatkowo sygnał
portu P1.0 można podłą-
czyć bezpośrednio do P1.6
(CA0). W takim wypadku
do obserwacji działania
komparatora nie jest po-
trzebne podanie napięcia
z potencjometru – układ
będzie się samoczynnie
przełączał.
List. 11. Listing programu generatora napięć odniesienia
Init_sys();
CAPD |= 0x08; // Disconnect port pins
CACTL2 = P2CA0; // P1.6 = +comp
while (1)
{
CACTL1 = 0x00; //
_BIS_SR(LPM0_bits);
CACTL1 = CAREF0 + CAON; // 0.25*Vcc
_BIS_SR(LPM0_bits);
CACTL1 = CAREF1 + CAON; // 0.5*Vcc
_BIS_SR(LPM0_bits);
CACTL1 = CAREF1 + CAREF0 + CAON; // 0.5V
_BIS_SR(LPM0_bits);
}
#pragma vector=BASICTIMER_VECTOR
__interrupt void Basic (void)
{
_BIC_SR_IRQ(LPM0_bits); // Clear LPM0 bits from 0(SR)
}
Rys. 24. Schemat połączeń dla generatora napięcia od-
niesienia.
klicznie zmienia napię-
cie uzyskując przebieg
schodkowy. Ponownie, do
uruchomienia układu po-
trzebne są dwie proste
operacje.
Warto zwrócić uwagę
na kontrukcję pętli while ,
w której umieszczono sze-
reg poleceń wprowadzenia
trybu obniżonego poboru
mocy (tutaj LPM0). W po-
łączeniu z cyklicznym
przerwaniem od zegara
Basic Timer , stanowią one
elegancką i energooszczęd-
ną alternatywę pętli ocze-
kiwania.
Mariusz Kaczor
Contrans TI
Eksperyment drugi
– napięcia odniesienia
Drugi przykład pokazu-
je, jak użyć wbudowane-
go w moduł komparatora
źródła referencyjnego jako
źródła napięcia odnie-
sienia dla zewnętrznych
układów ( rys. 24 ).
Przykładowy program
( list. 11 ) pozwala wypro-
wadzić napięcie referen-
cyjne na wyprowadzenia
P1.6 (CA0) a potem cy-
Moduł ComparatorA+
W mikrokontrolerach serii MSP430F2xx moduł komparatora napięcia został unowocześniony. Najbardziej
widoczna zmiana w nowym module, nazwanym ComparatorA+ , to zwiększenie liczby wejść komparatora do
7 i wprowadzenie dwóch multiplekserów, z których jeden może wybrać dowolne wejście z zakresu CA0 do
CA2, natomiast drugi dowolne wejście z zakresu CA0 do CA7. Przyniosło to zmiany w sposobie sterowania
komparatorem przez rejestr konfiguracyjny CACTL2. Bity P2CAO i P2CA4 sterują binarnie wyborem wejścia
dla pierwszej grupy, a bity P2CA1, P2CA2 i P2CA3 wybierają wejście z drugiej grupy. Poza tym wprowadzono
możliwość zwarcia wejść komparatora (bit CASHORT). Zachowano możliwość zamiany miejscami połączeń
wyprowadzeń (+) i (–) z użyciem bitu CAEX. Parametry takie jak napięcie niezrównoważenia, czy precyzja
referencji nie uległy zmianie.
Tab. Rejestry konfiguracyjne modułu komparatora analogowego ComparatorA+
Nazwa rejestru Funkcja rejestru adres
CACTL2 konfiguracyjny 0x5A
CASHORT P2CA4 P2CA3 P2CA2 P2CA1 P2CA0 CAF CAOUT
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
eMeSpEk 430
Czytelników zainteresowanych mikrokontrolerami MSP430 zachęcamy do udziału w konkursie (piszemy o nim
na str. 8) i odwiedzenia targów Automaticon 2008, podczas których będzie można otrzymać komputerek
z mikrokontrolerem MSP430F1232 (egzemplarz modelowy widoczny na zdjęciu obok).
Oprócz mikrokontrolera wyposażonego w 8 kB + 256 B pamięci Flash i 256 B pamięci RAM, komputerek
wyposażono w dwa źródła sygnałów zegarowych, dwa mikroprzełączniki, interfejs RS232, złącze JTAG,
złącze USB (do zasilania), stabilizator napięcia 3,3 V, głośnik piezoceramiczny, gniazdo baterii 3 V oraz
złącze wyświetlacza LCD 2 x16 znaków ze sterownikiem 44780. Wszystkie linie I/O wyprowadzono na złącza
szpilkowe.
Opis budowy komputerka wraz ze szczegółowym wykazem nagród publikujemy na stronie 73.
Elektronika Praktyczna 4/2008
75
153199106.023.png
Zgłoś jeśli naruszono regulamin