PCF8591przetwornik AC

Transkrypt

PCF8591przetwornik AC
Politechnika
Białostocka
Wydział Elektryczny
Katedra Automatyki i Elektroniki
Instrukcja
do ćwiczeń laboratoryjnych z przedmiotu:
SYSTEMY CYFROWE 1
SZEREGOWE PRZETWORNIKI A/C - C/A
Ćwiczenie 5
Opracował: dr inŜ. Wojciech Wojtkowski
w. woj tk o ws k i @ we. p b. ed u .p l
BIAŁYSTOK 2009
Spis treści instrukcji:
1.
Cel i zakres ćwiczenia laboratoryjnego
.............................................................................................
2
2.
Przetwornik A/C C/A PCF8591
.............................................................................................
2
Adres
.............................................................................................
3
Bajt sterujący
.............................................................................................
4
Konwersja D/A
.............................................................................................
6
Konwersja A/D
.............................................................................................
7
Napięcie referencyjne
.............................................................................................
9
3.
Zagadnienia do przygotowania
.............................................................................................
12
4.
Wymagania BHP
.............................................................................................
12
5.
Sprawozdanie
.............................................................................................
13
6.
Przykładowe zadania
.............................................................................................
13
7.
Literatura
.............................................................................................
14
1. CEL I ZAKRES ĆWICZENIA LABORATORYJNEGO
Celem ćwiczenia jest poznanie problematyki związanej z wykorzystaniem przetworników
A/C oraz C/A z interfejsem szeregowym w systemach cyfrowych. W ramach ćwiczenia
studenci projektują wybrane układy mikroprocesorowe wykorzystujące przetworniki A/C i
C/A z interfejsem I2C. Oprócz badania przetworników studenci poznają magistralę I2C
stosowaną powszechnie w wielu cyfrowych czujnikach (takŜe wielkości nieelektrycznych)
oraz specjalizowanych
układach peryferyjnych systemów cyfrowych (głównie do
komunikacji lokalnej).
Zakres ćwiczenia obejmuje:
•
Poznanie zasad obsługi magistrali I2C.
•
Projektowanie
układów
mikroprocesorowych
współpracujących
z
przetwornikami A/C oraz C/A.
Szczegółowy zakres ćwiczenia ustala prowadzący.
2. PRZETWORNIK A/C C/A PCF8591
Układ PCF8591 jest 8-mio bitowym układem akwizycji danych posiadającym 4 analogowe
wejścia, jedno analogowe wyjście, interfejs szeregowy I2C. Adres urządzenia jest ustawiany
sprzętowo poprzez trzy końcówki, co umoŜliwia jednoczesne podłączenie do jednej magistrali
2
8 takich przetworników. Adres, sterowanie i dane są przesyłane do i z układu poprzez I2C. W
układzie jest blok multipleksera sygnału analogowego, 8-bit A/D przetwornik, 8-bitowy
przetwornik D/A (Rys. 1). Maksymalna szybkość konwersji jest ograniczona tylko transmisją
I2C.
Rys. 1. Schemat blokowy PCF8591
Adres
KaŜdy układ PCF8591 dołączony do magistrali, jest aktywowany gdy na magistrali I2C
pojawi się jego adres. Adres układu składa się ze stałej części będącej jakby identyfikatorem
typu układu oraz z części ustawianej sprzętowo poprzez odpowiednie podłączenie trzech
pinów adresowych. Adres na magistrali I2C zawsze musi być przesłany zaraz po sekwencji
START. Ostatni bit adresu jest znacznikiem zapisu/odczytu i określa rodzaj dalszej
komunikacji (rys. 2).
Rys. 2. Bajt adresu
3
Bajt sterujący
Drugi bajt przesłany do PCF8591 jest umieszczany w control register i jest wykorzystany
do sterowania funkcjami układu. Starszy półbajt jest wykorzystany do aktywacji analogowego
wyjscia, i do programowania analogowych wejść. Młodszy półbajt jest wykorzystany do
definiuje numer kanału wejściowego oraz pozwala na włączenie autoinkrementacji kanałów
po kaŜdej konwersji A/D (Rys. 3). Wyjscie analogowe naleŜy wyłączyć jeśli jest nieuŜywane
co pozwala na zmniejszenie konsumpcji energii. Po resecie „Power-on” wszystkie bity słowa
kontrolnego sa ustawiane na zero. Wyjście analogowe znajduje się wtedy w stanie wysokiej
impedancji.
4
Rys. 3. Słowo sterujące
5
Konwersja D/A
Trzeci bajt wysłany do PCF8591 jest umieszczany w rejestrze danych DAC oraz jest
poddawany konwersji na wartość analogową przy uŜyciu wbudowanego w układ
przetwornika D/A. Wewnętrzny konwerter D/A składa się z dzielnika rezystorowego (256
odczepów) podłączonego do zewnętrznego źródła napięcia referencyjnego. Specjalny dekoder
powoduje podłączenie odpowiedniego odczepu dzielnika rezystorowego do wyjścia
analogowego. Napięcie wyjściowe analogowe jest buforowane. Napięcie to jest trzymane, aŜ
nastąpi nowa konwersja D/A. Wewnętrzny przetwornik D/A jest takŜe wykorzystywany
podczas konwersji A/D metoda kolejnych przybliŜeń. Aby umoŜliwić wykorzystanie
przetwornika D/A w procesie przetwarzania A/D, układ jest wyposaŜony w S/H (sample and
hold). Układ ten utrzymuje napięcie wyjściowe, gdy przetwornik D/A jest wykorzystany do
konwersji A/D. Napięcie wyjściowe po konwersji moŜna obliczyć z formuły podanej na
rysunku 4.
Rys. 4. Obliczanie napięcia wyjściowego
6
Rys. 5. Sekwencja konwersji D/A
Konwersja A/D
Konwersja A/D jest wykonywana metodą kolejnych przybliŜeń. Wbudowany przetwornik
D/A i wbudowany komparator są uŜywane w czasie konwersji A/D. Konwersja A/D jest
zawsze rozpoczynana poprzez przesłanie do układu adresu do odczytu (read mode).
Konwersja A/D jest zapoczątkowana poprzez zbocze opadające pulsu taktującego
potwierdzenie przesłanego bajtu i jest wykonywana w trakcie gdy na magistralę
transmitowana jest wartość ostatniej konwersji (opóźnienie jednobajtowe) (Rys. 6). Za
kaŜdym razem gdy opadające zbocze pulsu zegarowego odpowiadającemu potwierdzeniu
transmisji wyzwoli konwersje, napięcie wejściowe jest zachowywane w układzie S/H i
następnie jest konwertowane na liczbe 8-mio bitową (Rys. 7). Sample napięcia z wejść
róŜnicowych są konwertowane na 8-io bitową liczbę w kodzie U2 (Rys. 8). Wynik konwersji
jest złoŜony do rejestru konwersji A/D (ADC DATA REGISTER) i tam czeka na transmisję.
Jeśli autoinkrementacja jest włączona, wybierany jest następny kanał.
Pierwszy bajt transmitowany w trybie odczytu (READ) zawiera liczbę dwójkową
odpowiadająca wartości napięcia wejściowego z ostatniej konwersji A/D. Po resecie po
załączeniu zasilania, pierwszy bajt transmitowany w trybie READ zawiera liczbę $80h.
Maksymalna szybkość przetwarzania A/D jest ograniczona aktualną szybkością transmisji
I2C.
7
Rys. 6. Sekwencja konwersji A/D
Rys. 7. Charakterystyka konwersji A/D dla wejścia pojedynczego
8
Rys. 8. Charakterystyka konwersji A/D dla wejścia róŜnicowego
Napięcie referencyjne
Jest potrzebne zarówno do konwersji D/A jak i A/D. Powinno to być stabilne zewnętrzne
źródło napięcia referencyjnego lub ostatecznie napięcie z dzielnika rezystorowego
podłączonego do zasilania podłączone pomiędzy końcówki VREF i AGND. Pin AGND
powinien być podłączony do analogowej masy systemu, i moŜe mieć offset DC w stosunku
do VSS.
Do
wejścia napięcia
referencyjnego
(VREF,
AGND) moŜna podłączyć sygnał
wolnozmienny i uzyskać układ mnoŜący jedno-kwadrantowy. MoŜna takŜe zbudować jedno
lub dwu-kwadrantowy dzielnik. Napięcie wejściowe jest wtedy dzielone przez napięcie
referencyjne. Rezultat jest konwertowany na kod binarny. W tym przypadku napięcie
referencyjne musi być stałe podczas cyklu konwersji.
Oscylator
Wbudowany oscylator generuje sygnał zegarowy (CLOCK) potrzebny do konwersji. Gdy
ten oscylator jest wykorzystany, pin EXT musi być podłączony do VSS. Na końcówce OSC
jest wyjście oscylatora.
9
Jeśli EXT jest połączone z VDD, wyjście oscylatora jest w stanie wysokiej impedancji, co
pozwala na doprowadzenie zewnętrznego sygnału zegarowego do pinu OSC.
Komunikacja I2C
Magistrala I2C jest dwukierunkową 2-liniową magistralą słuŜącą do komunikacji pomiędzy
róŜnymi układami scalonymi. Dwie linie to SDA – serial data oraz SCL – serial clock. Obie
linie musza być podłączone do plusa zasilania przez rezystory podciągające. Transmisja
danych moŜe być zainicjowana wyłącznie wtedy, gdy magistrala nie jest zajęta. Jeden bit
informacji jest transmitowany podczas jednego impulsu zegarowego. Stan (informacja) na
linii SDA musi być stabilna podczas stanu wysokiego na linii zegarowej (podczas trwania
impulsu zegarowego). Jeśli się zmieni stan linii danych w czasie trwania impulsu
zegarowego, będzie to zinterpretowane jako sygnał sterujący. START to jest zmiana z H na L
na SDA w czasie H na SCL. STOP jest to zmiana z L na H w czasie trwania H na SCL.
Rys. 9. Transfer jednego bitu informacji
Rys. 10. Definicja startu i stopu transmisji
10
Rys. 11. Konfiguracja systemu
Jeśli obie linie (data i clock) pozostają w stanie wysokim, magistrala nie jest zajęta.
Urządzenie generujące wiadomość jest nadajnikiem, urządzenie odbierające informację jest
odbiornikiem. Ale nadajnik moŜe być sługa. Urządzenie które steruje wiadomością to master.
Urządzenie kontrolowane przez master to slave.
Potwierdzenie
Rys. 12. Potwierdzenie na magistrali I2C
Liczba bajtów wysyłana pomiędzy startem transmisji i stopem transmisji nie jest
ograniczona. KaŜdy bajt złozony z 8-iu bitów jest zakończony przez jeden bit potwierdzenia.
Bit potwierdzenia polega na tym, Ŝe przez nadajnik jest wymuszony wysoki poziom (po
transmisji pełnego bajtu) w czasie którego master generuje dodatkowy impuls zegara,
natomiast slave odbiornik który jest aktualnie zaadresowany (odbiera informację) ściąga SDA
na zero. Aktywny odbiornik musi wygenerować potwierdzenie po odebraniu kaŜdego bajtu.
TakŜe master musi wygenerować potwierdzenie po odbiorze kaŜdego bajtu informacji
wygenerowanego przez slave – nadajnik. Urządzenie potwierdzające wystawia zero na SDA
podczas dodatkowego pulsu zegarowego (acknowledge clock pulse). Linia SDA musi być
stabilna w stanie L podczas impulsu zegarowego potwierdzającego. Master musi
zasygnalizować koniec transmisji dla nadajnika poprzez nie wygenerowanie potwierdzenia na
11
końcu ostatniego odebranego bajtu wysłanego przez slave - transmiter. W tym przypadku
transmiter musi zostawić SDA w H aby umoŜliwić dla master wygenerowanie sygnału STOP.
Protokoły konwersji
START-ADDRESS- bit zapis/odczyt ustala kierunek dalszej jedno lub wielobajtowej
transmisji. W trybie zapisu (WRITE) transmisja danych jest zakańczana przez bit STOP (P)
lub START (S) następnej transmisji (Rys. 13).
Rys. 13. Protokół konwersji D/A (WRITE MODE)
Rys. 14. Protokół konwersji A/D (READ MODE)
3. ZAGADNIENIA DO PRZYGOTOWANIA
Przed przystąpieniem do wykonania ćwiczenia, student powinien:
•
zapoznać się z instrukcją,
•
zapoznać się z dokumentacją układów serii pcf8591 (dostępna na stronie PhilipsSemiconductors),
•
opracować rozwiązanie co najmniej dwóch z zadań podanych na końcu instrukcji.
4. WYMAGANIA BHP
Warunkiem przystąpienia do praktycznej realizacji ćwiczenia jest zapoznanie się z
obowiązującą w laboratorium instrukcją BHP oraz przestrzeganie zasad w niej zawartych.
12
Konieczne jest
takŜe
zapoznanie z
ogólnymi
zasadami
pracy przy stanowisku
komputerowym. Instrukcje BHP powinny być podane studentom podczas pierwszych zajęć
laboratoryjnych i dostępne do wglądu w Laboratorium.
5. SPRAWOZDANIE
Sprawozdanie z ćwiczenia powinno zawierać:
•
stronę tytułowa zgodnie z obowiązującym wzorem,
•
cel i zakres ćwiczenia,
•
opis stanowiska badawczego,
•
opis przebiegu ćwiczenia z wyszczególnieniem wykonywanych czynności,
•
algorytm rozwiązania danego problemu,
•
schematy układów, programy w asemblerze (lub w języku wyŜszego poziomu) z
komentarzami,
•
komentarze i wnioski
Na ocenę sprawozdania będą miały wpływ następujące elementy:
•
zgodność zawartości z instrukcją,
•
algorytm rozwiązania problemu,
•
wnioski i uwagi,
•
terminowość i ogólna estetyka
Sprawozdanie powinno być wykonane i oddane na zakończenie ćwiczenia, najpóźniej na
zajęciach następnych. Sprawozdania oddane później będą oceniane niŜej.
6. PRZYKŁADOWE ZADANIA:
Z1. Odczytać adres I2C przetwornika PCF8591 i wyświetlić na wyświetlaczu
alfanumerycznym LCD. Sprawdzić wpływ zworek adresujących na adres urządzenia.
Z2. Zrealizować układ mierzący napięcie wejściowe w zakresie 0-2,5V z odczytem na
wyświetlaczu alfanumerycznym LCD. Układ powinien wyświetlać wartość napięcia z
pełną moŜliwą do uzyskania w tym układzie dokładnością.
Z3. Zaprojektować i uruchomić układ generujący napięcie piłokształtne z maksymalną
dostępną rozdzielczością i o maksymalnej moŜliwej do uzyskania częstotliwości.
Rezultat działania sprawdzić oscyloskopem.
13
Z4. Zaprojektować układ do automatycznego zdejmowania charakterystyki statycznej diody
półprzewodnikowej w zakresie przewodzenia. Układ powinien wyświetlać
charakterystykę w formie tabeli punkt po punkcie. Zaproponować rozwiązanie
rozszerzenia funkcjonalności o transfer danych do komputera PC w celu dalszej analizy
i wizualizacji.
Z5. Skonfigurować i uruchomić system z min. dwoma przetwornikami PCF8591 i
wyświetlić na wyświetlaczu alfanumerycznym wartości z min. 8 kanałów wejściowych
jednocześnie. (W przypadku wyświetlacza 1x16 naleŜy wyświetlić szesnastkowo kaŜdy
bajt bez spacji).
7. Literatura:
L1. Paweł Hadam: Projektowanie systemów mikroprocesorowych, BTC, 2004r.
L2. B. Zieliński: Układy mikroprocesorowe, przykłady rozwiązań, Gliwice, Helion, 2002r.
L3. Internet - specyfikacja I2C - www.nxp.com
L4. Internet - nota katalogowa PCF8591 - www.nxp.com
14