LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W

Transkrypt

LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W
POLITECHNIKA WROCŁAWSKA
INSTYTUT MASZYN I NAPĘDÓW ELEKTRYCZNYCH
LABORATORIUM STEROWNIKÓW
MIKROPROCESOROWYCH
W NAPĘDZIE ELEKTRYCZNYM
Opracowanie:
mgr inż. Krzysztof P. Dyrcz
mgr inż. Zdzisław Żarczyński
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPĘDZIE ELEKTRYCZNYM
1. CEL ĆWICZENIA
Celem ćwiczenia jest poznanie 8 bitowego przetwornika analogowocyfrowego wbudowanego w mikrokontroler SAB 80C535 i zapoznanie się
z metodą pomiaru sygnału analogowego.
Podczas ćwiczenia należy napisać program w języku asemblera do
obsługi przetwornika oraz program w języku BASIC do wizualizacji mierzonego
sygnału, uruchomić programy, a także zapoznać się ze sposobem zwiększenia
rozdzielczości przetwornika do 10 bitów.
2. PRZYGOTOWANIE DO ĆWICZENIA
∗ Zapoznanie się ze strukturą wewnętrzną przetwornika analogowo-cyfrowego,
∗ Instrukcje asemblera SAB 80C535,
∗ Zintegrowane środowisko programowe asm535.
3. STANOWISKO LABORATORYJNE
∗ Sterownik Minikon z klawiaturą i wyświetlaczem,
∗ IBM PC z programem Monitor,
∗ miernik cyfrowy uniwersalny.
4. WPROWADZENIE
Przetwornik a/c jest wewnętrznym układem mikrokontrolera SAB 80C535
przeznaczonym do przetwarzania sygnałów z postaci analogowej na cyfrową 8 bitową. Istnieje jednak możliwość zwiększenia rozdzielczości przetwornika do
10 bitów dzięki programowalnemu zawężeniu zakresu pomiarowego
przetwornika.
Wejście przetwornika a/c stanowi 8-wejściowy analogowy multiplekser
umożliwiający pomiar napięciowego sygnału analogowego w 8 różnych
kanałach w zakresie 0..5V.
Czas przetwarzania przetwornika wynosi 13 cykli maszynowych. (15
cykli maszynowych dla mikrokontrolera SAB 80535).
Przetwornik a/c wyróżnia się następującymi parametrami:
• 8 kanałów analogowych AN0..AN7,
• 8-bitowy port wejść cyfrowych P6,
• 8-bitowa rozdzielczość pomiaru (10 bitowa przy programowym zawężeniu
zakresu pomiarowego),
• 16 programowalnych podzakresów pomiarowych,
• programowe wyzwalanie pojedynczego pomiaru lub serii pomiarów,
• możliwość generowania przerwania po każdym pomiarze.
Przetwornik analogowo-cyfrowy
Strona 2
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPĘDZIE ELEKTRYCZNYM
Przetwornik korzysta z 3 rejestrów specjalnych SFR:
• ADCON (adres 0D8H) - wybór kanału pomiarowego i rodzaju przetwarzania,
Rejestr ADCON
BD
CLK
-
BSY
ADM
MX2
adres 0D8H
MX1 MX0
Znaczenia poszczególnych bitów są następujące:
BD - bit używany do określenia szybkości transmisji łącza szeregowego. Zmiana
stanu tego bitu może powodować zawieszenie systemu, dlatego podczas
pracy przetwornika nie należy modyfikować jego wartości.
CLK - umożliwia uzyskanie na wyprowadzeniu procesora CLKOUT (P1.6)
sygnału o częstotliwości fCLKOUT = fGEN/12 i wypełnieniu 1/6, przy czym
fGEN jest częstotliwością zewnętrznego rezonatora kwarcowego
dołączonego do mikrokontrolera. Podobnie jak dla bitu BD nie modyfikuje
się jego wartości podczas pracy przetwornika.
BSY - wskazuje aktualny stan przetwornika. Jest znacznikiem o atrybucie tylko
do odczytu, ustawianym i kasowanym sprzętowo.
BSY=0 - przetwornik po zakończeniu przetwarzania,
BSY=1 - przetwornik w trakcie przetwarzania.
ADM - określa rodzaj przetwarzania.
ADM=1 - przetwornik w trybie pracy wielokrotnego
pomiaru.
Przetwornik
wykonuje
serię
pomiarów, aż do chwili gdy ADM=0.
ADM=0 - pomiar pojedynczy, przy czym każdy pomiar
musi być uruchamiany programowo.
MX2..MX0 - wybór numeru kanału pomiarowego
Tabela 4.1. Wybór numeru kanału pomiarowego.
MX2
0
0
0
0
1
1
1
1
MX1
0
0
1
1
0
0
1
1
MX0
0
1
0
1
0
1
0
1
Kanał
0
1
2
3
4
5
6
7
Wejście
AN0/P6.0
AN1/P6.1
AN2/P6.2
AN3/P6.3
AN4/P6.4
AN5/P6.5
AN6/P6.6
AN7/P6.7
Należy pamiętać, że wejścia AN0..AN7 są jednocześnie wejściami portu
cyfrowego P6.
Przetwornik analogowo-cyfrowy
Strona 3
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPĘDZIE ELEKTRYCZNYM
• ADDAT (adres 0D9H) - modyfikowany wynik przetwarzania,
Rejestr ADDAT
bit 7
bit 6
bit 5
MSB
bit 4
bit 3
bit 2
LSB
adres 0D9H
bit 1
bit 0
Przy czym:
MSB - najbardziej znaczący bit (Most Significant Bit),
LSB - najmniej znaczący bit (Last Significant Bit)
W rejestrze ADDAT przechowywana jest całkowita wielokrotność
poziomów kwantowania :
Ux
ADDAT =
,
1LSB
przy czym:
V
−V
1LSB = IntAREF 8 IntAGND
2
( 1LSB oznacza tu najmniejszy poziom kwantowania)
Jeżeli podczas pracy mikrokontrolera nie wykorzystujemy przetwornika
a/c, wówczas rejestr ADDAT może służyć jako rejestr ogólnego przeznaczenia.
• DAPR (adres 0DAH) - wybór zakresu przetwarzania. Wybór zakresu
rozpoczyna pomiar i przetwarzanie a/c na wybranym kanale.
Rejestr DAPR
bit 7
bit 6
bit 5
bit 4
Napięcie VIntAREF
bit 3
adres 0DAH
bit 1
bit 0
bit 2
Napięcie VIntAGND
przy czym:
Napięcie VIntAREF - górne wewnętrzne napięcie odniesienia,
Napięcie VIntAGND - dolne wewnętrzne napięcie odniesienia.
Napięcia te tworzone są przez podział różnicy napięć VAREF i VGND zgodnie ze
wzorami:
DAPR 7..4
VIntAREF = VAGND +
(VAREF - VAREF)
16
gdy DAPR7..4 > 3H
DAPR 3..0
(VAREF - VAREF)
16
gdy DAPR3..0 < 0CH
VIntAGND = VAGND +
Przetwornik analogowo-cyfrowy
Strona 4
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPĘDZIE ELEKTRYCZNYM
Wyboru podzakresu pomiarowego dokonuje się wg tabeli 2 przy
założeniu, że wartości napięć odniesienia są następujące:
VAREF = +5V,
VAGND = 0V.
Tabela 4.2. Wybór podzakresu pomiarowego.
Podzakres
pomiarowy
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DAPR7..4
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
VIntAREF
[V]
5.0
1.25
1.5625
1.875
2.1875
2.5
2.8125
3.125
3.4375
3.75
4.0625
4.375
4.6875
DAPR3..0
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
VIntAGND
[V]
0.0
0.3125
0.625
0.9375
1.25
1.5625
1.875
2.1875
2.5
2.8125
3.125
3.4375
3.75
-
Przy pomiarze na pełnym zakresie pomiarowym 0V..5V dokładność
przetwarzania przetwornika wynosi
1LSB =
VIntAREF − VIntAGND
5V − 0V
=
= 19,531 mV,
8
256
2
natomiast przy pomiarze na zakresie zawężonym do 1.25V
1LSB =
VIntAREF − VIntAGND
1,25V − 0V
=
= 4,883 mV.
8
256
2
Z powyższych obliczeń wynika prosty sposób na zwiększenie dokładności
przetwornika o dodatkowe dwa bity. Należy tylko dokonać dwóch pomiarów:
pierwszego, na pełnym zakresie pomiarowym dla określenia dwóch najbardziej
znaczących bitów wyniku oraz określenia nowego podzakresu pomiarowego,
oraz drugiego pomiaru na zawężonym podzakresie pomiarowym dla uzyskania 8
mniej znaczących bitów wyniku przetwarzania.
Przetwornik analogowo-cyfrowy
Strona 5
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPĘDZIE ELEKTRYCZNYM
Ponieważ rejestr ADDAT jest modyfikowany po każdym cyklu
pomiarowym, należy zwrócić uwagę na to, aby podczas pomiaru z dokładnością
10 bitów przed dokonaniem drugiego pomiaru na zawężonym zakresie
zapamiętać aktualną zawartość rejestru w innym, nie modyfikowanym podczas
pracy przetwornika rejestrze ogólnego przeznaczenia.
Do prawidłowej pracy przetwornika a/c wymagane jest spełnienie
następujących warunków:
− napięcia VIntAREF i VIntAGND muszą być dołączone do wyprowadzeń
mikrokontrolera. Obecność tych napięć nie jest konieczna, gdy przetwornik
nie pracuje,
− jeżeli napięcia VIntAREF i VIntAGND dołączone są do napięć zasilających
mikrokontroler VCC i VSS, to muszą spełniać warunek:
VIntAREF = VCC ± 5%,
VIntAGND = VSS ± 0.2V,
− minimalna różnica napięć (VIntAREF - VIntAGND) ≥ 1V,
− rezystancja wewnętrzna źródła mierzonego napięcia i napięcia wzorcowego
nie może być większa niż 5 kΩ.
Po każdym wykonanym pomiarze przetwornik ma możliwość
generowania przerwania. Ustawiany jest wówczas bit IADC w rejestrze IRCON,
przy czym wektor przerwania ma adres 43H.
Rejestr IRCON
EXF2 TF2
IEX6
IEX5
IEX4
IEX3
adres 0C0H
IEX2 IADC
Na rys.4.1 przedstawiono schemat blokowy przetwornika a/c.
Przetwornik analogowo-cyfrowy
Strona 6
BD
CLK
MSB
bit 6
bit 3
bit 2
Przetwornik analogowo-cyfrowy
Multiplexer
VintAREF
VGND
VAREF
Układ
próbkująco-pamiętający
(Sample&Hold)
AN0
AN7
wpis
do DAPR
VintAGND
Programowanie
podzakresu
pomiarowego
VintAREF
Przetwornik
analogowo-cyfrowy
fGEN
Rejestr programowania
podzakresu pomiarowego
DAPR
Rejestr wyniku
przetwarzania
ADDAT
BSY ADM
Rejestr sterujący
działaniem
ADCON
MX2 MX1 MX0
Port P6
wersja ACMOS
adres
0DAH
adres
0D9H
adres
0D8H
adres
0DBH
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPĘDZIE ELEKTRYCZNYM
wewnętrzna magistrala procesora
BSY
ADM
MX2
MX1
MX0
ADCON
bit 5
bit 4
bit 3
bit 2
bit 1
LSB
ADDAT
bit 1
bit 0
bit 3
bit 2
bit 1
bit 0
DAPR
VintAGND
Rys.3.1. Schemat blokowy przetwornika a/c.
Strona 7
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPĘDZIE ELEKTRYCZNYM
5. LITERATURA
1. SIEMENS, „Microcomputer Components. SAB 80515 / SAB 80C515 8 bit
single chip Microcontroller Family”. Users Manual.
2. Krzysztof P. Dyrcz, Czesław T. Kowalski, Zdzisław Żarczyński, „Podstawy
techniki mikroprocesorowej”, skrypt PWr., Wrocław 1999
3. A. Rydzewski, „Mikrokontrolery jednoukładowe rodziny MCS-51”.
Przetwornik analogowo-cyfrowy
Strona 8
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPĘDZIE ELEKTRYCZNYM
Przetwornik analogowo-cyfrowy
Strona 9
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPĘDZIE ELEKTRYCZNYM
1. WSTĘP
Najprostszym zastosowaniem przetwornika a/c jest jednokrotny pomiar
napięcia z rozdzielczością 8 bitową. Ponieważ w rejestrze ADDAT
przechowywana jest całkowita wielokrotność poziomów kwantowania, wartość
zmierzonego napięcia należy obliczyć ze wzoru:
Ux = ADDAT10 * 1LSB,
przy czym:
ADDAT10 - dziesiętna postać zawartości rejestru ADDAT.
Wynik pomiaru można wyświetlić na linijce diodowej, sterowanej
z dowolnego portu wyjścia, na przykład z portu P5. Jednak lepszym sposobem
„wizualizacji” wyniku pomiaru jest wyświetlenie go na ekranie monitora
w postaci dziesiętnej, korzystając z programu napisanego w języku BASIC.
Listing programu w języku BASIC przedstawiono poniżej:
10 CALL 00H
20 U=XBY(100H)
30 V=(U*5)/256
40 PRINT ”U = ”
50 PRINT USING (##.##),V
60 PRINT ”V”
70 INPUT ”CZY JESZCZE JEDEN POMIAR ? 0-NIE, 1-TAK”,Z
80 IF Z=1 THEN GOTO 10
90 END
przy czym:
CALL 00H - wywołanie podprogramu przetwornika a/c,
U=XBY(100H) - przypisanie zmiennej U wyniku pomiaru zawartego
w zewnętrznej pamięci RAM w komórce o adresie 100H.
Algorytm podprogramu do pomiaru napięcia, który należy napisać
w asemblerze SAB 535 jest następujący:
Przetwornik analogowo-cyfrowy
Strona 10
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPĘDZIE ELEKTRYCZNYM
Start programu
Deklaracja stałych.
Adres początku programu
org $00
Konfiguracja przetwornika.
Start pomiaru
TAK
BSY=1
NIE
Wysłanie wyniku z ADDAT do
zewn. pamięci RAM do
komórki #100
Stop programu
Rys.4.2. Algorytm programu do pomiaru 8-bitowego przetwornika a/c.
2. PRZEBIEG ĆWICZENIA
1. Zapoznać się z wyposażeniem stanowiska.
2. Przygotować moduł sterownika do pracy z przetwornikiem a/c i do
współpracy z komputerem PC.
3. Uruchomić komputer IBM PC.
4. Napisać program w języku asemblera do pomiaru napięcia z rozdzielczością 8
bitów.
5. Uruchomić i przetestować program.
6. Napisać program w języku BASIC do obsługi programu pomiarowego
asembler.
7. Uruchomić program BASIC i wyświetlić wyniki pomiaru na ekranie monitora.
Przetwornik analogowo-cyfrowy
Strona 11
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPĘDZIE ELEKTRYCZNYM
Przetwornik analogowo-cyfrowy
Strona 12
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPĘDZIE ELEKTRYCZNYM
1. WSTĘP
Jeżeli istnieje potrzeba pomiaru z dokładnością 10 bitów, to pomiaru
napięcia Ux zawartego w przedziale 0..5V należy dokonać dwukrotnie. Pierwszy
pomiar odbywa się przy pełnym zakresie pomiarowym 0..5V. Na podstawie
wyniku pomiaru dokonywany jest dobór właściwego podzakresu pomiarowego
do wykonania drugiej operacji przetwarzania a/c. Przy doborze podzakresu
należy spełnić warunki:
• VIntAREF - VIntAGND ≥ 1V,
• mierzone napięcie nie może znajdować się na granicy podzakresu, ponieważ
wynik drugiego pomiaru może zostać zafałszowany.
Sposób pomiaru z rozdzielczością 10 bitów został przedstawiony na rys. poniżej.
U
5V
pierwszy pomiar 8
bitowy na pełnym
zakresie pomiarowym
VIntAREF - VIntAGND >= 1V
Ux
VIntAREF
VIntGND
drugi pomiar 8 bitowy na
zawężonym zakresie pomiarowym
0V
Rys.4.3. Dobór zakresu pomiarowego.
Algorytm doboru podzakresu pomiarowego przedstawiony został poniżej.
Dla lepszego zrozumienia ograniczono się do 4 podzakresów pomiarowych:
0..1.25V, 1.25..2.5V, 2.5V..3.75V, 3.75..5V.
Dobór podzakresu pomiarowego dokonywany jest na podstawie analizy
dwóch najbardziej znaczących bitów wyniku uzyskanego z pierwszego pomiaru.
Jeżeli dwa najbardziej znaczące bity mają wartość 00, to wynik pomiaru
mieści się w przedziale 6 mniej znaczących bitów, czyli może przyjmować
wartości 0..64d (0..3FH), stąd mierzone napięcie znajduje się w zakresie:
5
(0..64)*
= 0..1.25V
256
Należy zatem do drugiego pomiaru wybrać zakres 0..1.25V, czyli do rejestru
DAPR wpisać wartość 01000000b = 40H.
Przetwornik analogowo-cyfrowy
Strona 13
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPĘDZIE ELEKTRYCZNYM
Jeżeli dwa najbardziej znaczące bity mają wartość 01, to wynik pomiaru
mieści się w przedziale 7 mniej znaczących bitów, czyli może przyjąć wartości
64..128d (40H..80H), a mierzone napięcie zmienia się w zakresie:
5
(64..128)*
= 1.25..2.5V,
256
do drugiego pomiaru należy zatem wybrać zakres 1.25..2.5V, czyli do rejestru
DAPR wpisać wartość 10000100b = 84H.
Jeżeli dwa najbardziej znaczące bity mają wartość 10, to wynik pomiaru
mieści się w przedziale 8 bitów, czyli przyjmuje wartości 128..192d (80H..C0H).
Mierzone napięcie przyjmuje zatem wartości w zakresie:
5
= 2.5..3.75V,
256
czyli należy wybrać zakres 2.5..3.75V wpisując do rejestru DAPR wartość
11001000b = 0C8H.
(128..192)*
W ostatnim przypadku dwa najstarsze bity mogą przyjąć wartość 11.
Wówczas wynik pomiaru mieści się w przedziale 192..255d (C0H..FFH), a
zmierzone napięcie mieści się w zakresie
5
(192..255)*
= 3.75..5V,
256
czyli należy wybrać zakres 3.75..5V wpisując do rejestru DAPR wartość
11111100b = 0FCH.
A zatem deklaracja tablicy, w której umieszczone są wartości
podzakresów pomiarowych wygląda następująco:
db #$40, #$84,#$0C8,#$0FC
Wartość mierzonego napięcia obliczana jest na podstawie obu pomiarów
wg wzoru:
A + B * 256
U=
*5,
1024
przy czym:
A - osiem bitów z drugiego pomiaru,
B - dwa najbardziej znaczące bity z pierwszego pomiaru.
B
A
256
1024
Przetwornik analogowo-cyfrowy
Strona 14
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPĘDZIE ELEKTRYCZNYM
Podobnie jak w pierwszej części ćwiczenia, wynik pomiaru należy
wyświetlić na ekranie monitora, korzystając z programu napisanego w języku
BASIC, przy czym dwa najbardziej znaczące bity z pierwszego pomiaru należy
przesłać do zewnętrznej pamięci RAM do komórki o adresie #101, a osiem bitów
z drugiego pomiaru do komórki o adresie #100.
Listing programu w języku BASIC przedstawiono poniżej:
10 CALL 00h
20 A=XBY(100H)
30 B=XBY(1O1H)
40 U=256*B+A
50 V=(U*5)/1024
60 PRINT ”U=”
70 PRINT USING (##.##),V
80 PRINT ”V”
90 INPUT ”CZY JESZCZE JEDEN POMIAR ? 0-NIE, 1-TAK”,Z
100 IF Z=1 THEN GOTO 10
110 END
przy czym:
CALL 00H - wywołanie podprogramu przetwornika a/c,
A=XBY(100H) - przypisanie zmiennej A wyniku pomiaru zawartego
w zewnętrznej pamięci RAM w komórce o adresie 100H,
B=XBY(101H) - przypisanie zmiennej B wyniku pomiaru zawartego
w zewnętrznej pamięci RAM w komórce o adresie 101H.
Algorytm podprogramu do pomiaru napięcia z rozdzielczością 10 bitów,
który należy napisać w asemblerze SAB 535 jest następujący:
Przetwornik analogowo-cyfrowy
Strona 15
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPĘDZIE ELEKTRYCZNYM
Start programu
Deklaracja stałych.
Adres początku programu
org $00
Konfiguracja przetwornika.
Start pomiaru
TAK
BSY=1
NIE
Analiza wyniku pomiaru i
określenie nowego podzakresu
pomiarowego
Zapamiętanie 2 najbardziej
znaczących bitów pomiaru w
komórce o adresie 20H
Wybór podzakresu z tablicy.
Start pomiaru
TAK
BSY=1
NIE
Przesłanie zawartości komórki
#20 do zewn. pamięci RAM do
komórki #100
Przesłanie wyniku 2 pomiaru z
ADDAT do zewn. pamięci
RAM do komórki #100
Stop programu
Rys.4.4. Algorytm programu do przetwarzania 10-bitowego przetwornika a/c.
Przetwornik analogowo-cyfrowy
Strona 16
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPĘDZIE ELEKTRYCZNYM
2. PRZEBIEG ĆWICZENIA
1. Przygotować moduł sterownika do pracy z przetwornikiem a/c i do
współpracy z komputerem PC.
2. Uruchomić komputer IBM PC.
3. Napisać program w języku asembler do pomiaru napięcia z rozdzielczością 10
bitów.
4. Uruchomić i przetestować program.
5. Zmodyfikować program BASIC.
6. Uruchomić program BASIC, wyświetlić wyniki pomiaru na ekranie monitora.
Przetwornik analogowo-cyfrowy
Strona 17

Podobne dokumenty