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