Systemy wbudowane - Laboratorium Informatyka studia zaoczne inżynierskie



Podobne dokumenty
Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

Architektury Komputerów - Laboratorium

Przetworniki AC i CA

Laboratorium mikroinformatyki. Szeregowe magistrale synchroniczne.

Architektury Komputerów - Laboratorium Informatyka III rok studia dzienne

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Komunikacja w mikrokontrolerach Laboratorium

Politechnika Białostocka Wydział Elektryczny

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Pracownia Transmisji Danych, Instytut Fizyki UMK, Toruń. Instrukcja do ćwiczenia nr 10. Transmisja szeregowa sieciami energetycznymi

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

Kod produktu: MP01105

Ćw. 7 Przetworniki A/C i C/A

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

Wbudowane układy komunikacyjne cz. 1 Wykład 10

Parametryzacja przetworników analogowocyfrowych

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

Laboratorium Analogowych Układów Elektronicznych Laboratorium 6

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

Kod produktu: MP01105T

Komunikacja w mikrokontrolerach Laboratorium

Instytut Teleinformatyki

Programowanie mikrokontrolerów. 8 listopada 2007

dokument DOK wersja 1.0

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

ZL2AVR. Zestaw uruchomieniowy z mikrokontrolerem ATmega8

Przetworniki cyfrowo-analogowe C-A CELE ĆWICZEŃ PODSTAWY TEORETYCZNE

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Politechnika Wrocławska, Katedra Inżynierii Biomedycznej Systemy Pomiarowo-Diagnostyczne, laboratorium

2.1 Przesył danych między procesorem a tabelą zmiennych

SML3 październik

DTR PICIO v Przeznaczenie. 2. Gabaryty. 3. Układ złącz

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Przetwornik ADC procesora sygnałowego F/C240 i DAC C240 EVM

Architektura komputerów. Układy wejścia-wyjścia komputera

Enkoder magnetyczny AS5040.

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

INSTRUKCJA instalacji interfejsu USB-RS422/485

Instrukcja do oprogramowania ENAP DEC-1

Mikroprocesory i Mikrosterowniki Laboratorium

Programowanie mikrokontrolerów 2.0

Politechnika Wrocławska

BEZDOTYKOWY CZUJNIK ULTRADŹWIĘKOWY POŁOŻENIA LINIOWEGO

Przetwarzanie A/C i C/A

Firma DAGON Leszno ul. Jackowskiego 24 tel Produkt serii DAGON Lighting

Standard transmisji równoległej LPT Centronics

1. Poznanie właściwości i zasady działania rejestrów przesuwnych. 2. Poznanie właściwości i zasady działania liczników pierścieniowych.

ZL28ARM. Zestaw uruchomieniowy dla mikrokontrolerów AT91SAM7XC

4. Karta modułu Slave

Expandery wejść MCP23S17 oraz MCP23017

MiniModbus 4DO. Moduł rozszerzający 4 wyjścia cyfrowe. Wyprodukowano dla. Instrukcja użytkownika

Układ pomiarowy CoachLab II

Tranzystory bipolarne. Podstawowe układy pracy tranzystorów.

Notatka lekcja_#3_1; na podstawie W.Kapica 2017 Strona 1

Programowalne Układy Cyfrowe Laboratorium

2. Architektura mikrokontrolerów PIC16F8x... 13

MAGISTRALE MIKROKONTROLERÓW (BSS) Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Instrukcja integracji urządzenia na magistrali Modbus RTU. wersja 1.1

Laboratorium Komputerowe Systemy Pomiarowe

Dokumentacja Techniczna. Konwerter USB/RS-232 na RS-285/422 COTER-24I COTER-24N

IMP Tester v 1.1. Dokumentacja Techniczno Ruchowa

Instrukcja obsługi czytnika MM-R32

Moduł MUU020. Przeznaczenie. Oprogramowanie i użyteczne właściwości modułu

Procedury obsługi monolitycznego przetwornika analogowo-cyfrowego AD 7865

interfejs szeregowy wyświetlaczy do systemów PLC

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

ZL16AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega8/48/88/168

Interfejsy komunikacyjne pomiary sygnałów losowych i pseudolosowych. Instrukcja do ćwiczenia laboratoryjnego

SiMod-X-(A1) Przetwornik parametrów powietrza z interfejsem RS485 (MODBUS RTU) oraz wyjściem analogowym (dotyczy wersji -A1)

Mikrokontrolery AVR techniczne aspekty programowania

Przetwornik analogowo-cyfrowy

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

UW-DAL-MAN v2 Dotyczy urządzeń z wersją firmware UW-DAL v5 lub nowszą.

JAZZ OPLC JZ20-R10 i JZ20-R16

Sprzęt i architektura komputerów

Uniwersalny zestaw uruchomieniowy ZL4PIC

1. Cel ćwiczenia. Celem ćwiczenia jest zestawienie połączenia pomiędzy dwoma sterownikami PLC za pomocą protokołu Modbus RTU.

Pomiary podstawowych wielkości elektrycznych: prawa Ohma i Kirchhoffa. Katedra Architektury Komputerów i Telekomunikacji

Hardware mikrokontrolera X51

Opis czytnika TRD-FLAT CLASSIC ver Naścienny czytnik transponderów UNIQUE w płaskiej obudowie

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Kod produktu: MP01611

TECHNIKA MIKROPROCESOROWA II

LABORATORIUM - ELEKTRONIKI Układy mikroprocesorowe cz.2

Ćwiczenie 31 Temat: Analogowe układy multiplekserów i demultiplekserów. Układ jednostki arytmetyczno-logicznej (ALU).

Magistrala I 2 C. Podstawy systemów mikroprocesorowych. Wykład nr 5 Interfejsy szeregowe c.d.

PROJECT OF FM TUNER WITH GESTURE CONTROL PROJEKT TUNERA FM STEROWANEGO GESTAMI

Wyniki (prawie)końcowe - Elektroniczne warcaby

2.1 Porównanie procesorów

RS-H0-05 (K)* Czytnik RFID MHz Mifare. Karta użytkownika

Systemy i architektura komputerów

Laboratorium Elektrycznych Systemów Inteligentnych

Architektura komputerów

STEROWNIK LAMP LED MS-1 Konwerter sygnału 0-10V. Agropian System

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH. PROCESORY OSADZONE kod kursu: ETD 7211 SEMESTR ZIMOWY 2017

Transkrypt:

Systemy wbudowane - Laboratorium Informatyka studia zaoczne inżynierskie Ćwiczenie nr 2b: Szeregowy przetwornik AC i CA Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z działaniem i sposobami obsługi przetworników AC i CA sterowanych w sposób szeregowy na przykładzie układu PCF8591. Wymagane wiadomości Budowa mikrokontrolera BasicStamp2 Zestaw edukacyjny StampInClass budowa i obsługa Język PBASIC. Przetworniki AC i CA Magistrala I2C. Warstwa fizyczna i protokół wymiany informacji. Wykorzystywany sprzęt Komputer PC z oprogramowaniem do obsługi zestawu BasicStamp. Zestaw edukacyjny StampInClass firmy Parallax Inc. wraz z niezbędnym wyposażeniem dodatkowym (przetwornik PCF8591). Literatura [1] Mielczarek W.: Szeregowe interfejsy cyfrowe. Wyd. Helion 1993 [2] Łakomy M., Zabrodzki J.: Scalone przetworniki analogowo-cyfrowe i cyfrowoanalogowe. PWN Warszawa 1985 [3] Baranowski J., Kalinowski B., Nosal Z.: Układy elektroniczne cz. III Układy i systemy cyfrowe. WNT Warszawa 1994. [4] Philips Semiconductors: PCF 8591 A/D and D/A converter Data Sheet [online]. [Dostęp 1.10 2009]. Dostępny w Internecie: http://www.nxp.com/acrobat_download/datasheets/pcf8591_6.pdf [5] Parallax Inc: BASIC Stamp Syntax and Reference Manual 2.2 [online]. [Dostęp 1.10 2009]. Dostępny w Internecie: http://www.parallax.com/portals/0/downloads/docs/prod/stamps/web-bsmv2.2.pdf 1

1. Wprowadzenie Interfejs I 2 C [1] jest interfejsem szeregowym synchronicznym. W pierwotnym opracowaniu częstotliwość pracy interfejsu wynosiła 100 khz. W obecnej chwili osiągalne są bez problemu układy I 2 C o częstotliwościach pracy 400 khz a nawet 1MHz. I 2 C w pierwotnym opracowaniu adresował do 128 urządzeń fizycznych (adres długości 7 bitów). Fizyczny interfejs magistrali I 2 C składa się z linii danych i zegarowej. Linia danych SDA służy do przesyłania danych i adresów między urządzeniem nadrzędnym a urządzeniem podrzędnym. Jest to linia dwukierunkowa. Linia zegarowa SCL zapewnia synchronizację danych przesyłanych poprzez linię SDA. Synchronizację przesyłanych danych zapewnia urządzenie nadrzędne. Dołączenie linii do magistrali jest obwarowane pewnymi warunkami. Należy do nich budowa wyjścia typu OC (otwarty kolektor lub otwarty dren). Poniżej został przedstawiony rysunek,na którym wyróżniono 4 charakterystyczne odcinki przebiegu. SDA SCL START STABILNE ZMIANA STOP DANE DANYCH Podstawowe warunki transmisji danych na magistrali I 2 C Są to: - START Warunek startu poprzedzający jakąkolwiek transmisję. Jego wykrycie przez urządzenie podrzędne rozpoczyna odbiór danych; - STABILNE DANE Pokazuje nam miejsce w trakcie przebiegu, w którym urządzenie nadrzędne musi utrzymać stabilne dane, lub urządzenie podrzędne wystawia stabilne dane do odczytu; - ZMIANA DANYCH W tej części przebiegu może zostać dokonana przez urządzenie nadrzędne zmiana danych przesyłanych do urządzeń podrzędnych lub następuje zmiana danych odczytywanych z urządzenia podrzędnego; - STOP Warunek stopu kończący transmisję do/z urządzenia podrzędnego. Urządzenia dołączone do magistrali umownie nazywamy nadrzędnymi (master) i podrzędnymi (slave). Urządzenie nadrzędne przesyła adresy, rozkazy, odbiera i wysyła dane oraz synchronizuje przesyłane dane. Urządzenia podrzędne potwierdzają przyjęcie rozkazów, adresów i danych oraz wykonują polecenia. Do magistrali może być dołączonych wiele urządzeń nadrzędnych oraz wiele urządzeń podrzędnych. Dostęp do magistrali w danym momencie może mieć tylko jedno urządzenie nadrzędne. W przypadku konfliktu urządzenia przystępują do arbitralnego rozstrzygnięcia o dostępie. Słowo transmitowanych danych ma długość 8 bitów. Każde przesłane słowo jest 2

potwierdzane przez docelowe urządzenie podrzędne. Potwierdzenie polega na przytrzymaniu na linii SDA stanu niskiego przez czas równy jednemu okresowi sygnału na linii SCL. Jeżeli urządzenie podrzędne nie potwierdzi z jakichś powodów odebrania bajtu urządzenie nadrzędne powinno wysłać warunek stopu. Jeżeli następuje koniec przesyłania danych z urządzenia podrzędnego do nadrzędnego (np. transmisja ostatniego bajtu z bieżącej strony pamięci itp.) to urządzenie podrzędne nie wystawia potwierdzenia sygnalizując, iż wystawiło właśnie ostatni bajt, który ma do wysłania. Na Rys. 1 przedstawione zostały przebiegi sygnałów generowane przez urządzenia podłączone do magistrali oraz ich wypadkowa na magistrali. Rys. 1 Przebiegi generowane na magistrali I 2 C przez współpracujące urządzenia. 1.1 Protokół transmisji. Każda transmisja rozpoczyna się od przesłania warunku startu, po którym następuje przesłanie adresu, od którego zaczynamy dokonywać operacji zapisu/odczytu. Po sekwencji rozpoczynającej następuje przesyłanie danych zakończone warunkiem stopu. Podstawowe typy przesłań zostały przedstawione na rysunku poniżej 3

1.2 Przetwornik PCF8591 Układ PCF 8591 [4] jest scalonym przetwornikiem AC i CA sterowanym poprzez interfejs I2C. Dzięki temu układ jest zamknięty w 16 nóżkowej obudowie. Przetwornik AC pracuje w oparciu o zasadę kolejnych przybliżeń. W czasie pracy przetwornik AC wykorzystuje przetwornik CA, nie jest wiec możliwe jednoczesne korzystanie z obu przetworników. Na rysunku przedstawiono rozmieszczenie wyprowadzeń układu PCF891. Z informacji wstępnych na temat interfejsu I2C wynika, ze każdy układ podłączony do szyny powinien posiadać własny adres. Jak w większości układów podłączanych do magistrali I2C adres układu składa się z dwóch części: stałej zdefiniowanej przez producenta ustalonej na binarna wartość 1001 i części zmiennej ustalanej przez użytkownika poprzez podanie wybranych stanów logicznych na linie A1, A1, A2. W zależności od inwencji użytkownika układ może zajmować na magistrali lokalizacje adresowe 48H do 4FH Przetwornik posiada 4 konfigurowane wejścia sygnału analogowego AIN0, AIN1, AIN2, AIN3. Wyprowadzenia SDA i SCL służą do podłączenia układu do magistrali I2C. Układ może pracować z zewnętrznym sygnałem zegarowym jak i w oparciu o własny oscylator. Obsługa układu jest bardzo prosta. W trybie pracy jako przetwornik CA pierwszy wysłany do układu bajt jest traktowany jako bajt konfiguracji. Kolejne odebrane bajty są przekazywane do przetwornika i zamieniane na napięcie na wyjściu AOUT proporcjonalne do wartości wysłanego słowa. Aby korzystać z przetwornika AC należy wysłać do układu bajt konfiguracji a następnie odbierać rezultaty przetworzenia ( pierwszy odebrany bajt jest wartością przypadkową). Szczegółowe informacje na temat przetwornika i sposobu jego programowania można znaleźć w [4]. Dostępna na zajęciach (i w załączniku) biblioteka niskopoziomowych procedur obsługi magistrali I2C składa się z 4 funkcji: I2C_Start - wystawia na magistralę warunek startu, I2C_TX_Byte - wysyła na magistralę jeden bajt (wartość jest przekazywana przez zmienną i2cwork), I2C_RX_Byte - odbiera z magistrali jeden bajt (odebrany bajt jest zwracany w zmiennej i2cwork), I2C_Stop - wystawia na magistralę warunek stopu. 4

2. Wykonanie ćwiczenia Każdy zespół otrzymuje układ przetwornika, potencjometr 100kΩ, 2 rezystory 10kΩ (oznaczone paskami: brązowym, czarnym, pomarańczowym, złotym) oraz przewody. Wybrane podzespoły są umieszczone na płycie prototypowej w odpowiednich miejscach i nie należy ich z niej usuwać lub przemieszczać. 2.1 Wykonanie niezbędnych połączeń: Odłączyć zasilanie! Wykonać przewodami następujące połączenia: - podłączyć masę płytki prototypowej (VSS) do wyprowadzeń 5,6,7 (linie adresowe A0,A1,A2) oraz 8 (ujemny biegun zasilania Vss). - podłączyć napięcie zasilania (Vdd) do wyprowadzeń 16 (Vdd) i 14 (Vref) przetwornika. - podłączyć wyprowadzenie 9 (SDA) do portu P4, - przy pomocy rezystora 10kΩ (oznaczonego paskami: brązowym, czarnym, pomarańczowym, złotym) połączyć wyprowadzenie 9 (SDA) przetwornika do Vdd. - podłączyć wyprowadzenie 10 (SCL) do portu P5, - przy pomocy rezystora 10kΩ (oznaczonego paskami: brązowym, czarnym, pomarańczowym, złotym) połączyć wyprowadzenie 10 (SCL) przetwornika do Vdd. - wyprowadzenie AGND (13) przetwornika połączyć z masą (Vss). - wejście wyboru oscylatora 12 (EXT) podłączyć do Vss wybierając jako źródło sygnału zegarowego dla przetwornika wbudowany w niego wewnętrznym oscylator. Ustawić miernik uniwersalny do pracy jako woltomierz oraz wykonać dodatkowe połączenia: - za pomocą dłuższego, czerwonego przewodu z wtykiem bananowym podłączyć dodatni zacisk miernika uniwersalny do wyprowadzenia 15 (AOUT). - czarnym dłuższym przewodem z wtykiem bananowym połączyć ujemny zacisk miernika z wyprowadzeniem 13 (AGND) Zgłosić prowadzącemu gotowy układ do sprawdzenia połączeń i włączenia układu. Nie włączać samodzielnie układu, gdyż przy błędzie w połączeniach może nastąpić uszkodzenie przetwornika. 5

2.2 Badanie charakterystyki przetwornika CA Aby sporządzić charakterystykę przetwornika, należy w oparciu o udostępnione niskopoziomowe procedury obsługi magistrali I 2 C oraz dokumentację układu PCF 8591 przygotować odpowiedni program sterujący przetwornikiem CA. Biblioteka niskopoziomowych procedur obsługi magistrali I2C składa się z 4 funkcji: I2C_Start - wystawia na magistralę warunek startu, I2C_TX_Byte - wysyła na magistralę jeden bajt (wartość jest przekazywana przez I2C_RX_Byte I2C_Stop zmienną i2cwork), - odbiera z magistrali jeden bajt (odebrany bajt jest zwracany w zmiennej i2cwork), - wystawia na magistralę warunek stopu. Przed rozpoczęciem korzystania z przetwornika PCF8591 należy ustalić: - wartość bajtu adresującego przetwornik - wartość bajtu konfiguracyjnego przetwornika Zgodnie z Fig. 4 str. 5 dokumentacji przetwornika [4], cztery najstarsze bity bajtu adresującego są na stałe ustalone przez producenta na wartość 1001. Trzy kolejne bity zależą od wartości logicznych podanych na wejścia A2-A0 przetwornika. W przyjętej konfiguracji wejścia A2-A0 są połączone z Vss, co ustala stan tych wejść na 000. Najmłodszy bit określa kierunek transmisji: 0 dla zapisu do przetwornika, 1 dla odczytu z przetwornika. W tej części ćwiczenia jedyną wykonywaną operacją będzie zapis danych do przetwornika, zatem wartość tego bitu pozostanie przez cały czas zerem. Wartość bajtu konfiguracyjnego przetwornika można wyznaczyć na podstawie rysunku 5 str. 6 dokumentacji do układu PCF8591 [4]. Należy ustawić następujące parametry pracy przetwornika: - korzystać z zerowego kanału przetwornika AC (AIN0), - wyzerowany bit autoinkrementacji, - wejścia przetwornika A/C skonfigurowane jako 4 pojedyncze (single ended) wejścia, - odblokowany przetwornik C/A. Aby wykonać cykl przetworzenia jednej wartości cyfrowej na postać analogową należy: - wystawić przy pomocy procedury I2C_Start warunek startu, - przy pomocy procedury I2C_TX_Byte wysłać na magistralę wyznaczony wcześniej bajt adresujący. Wysłanie tego baju powoduje zaadresowanie przetwornika. Wysyłane od tej pory na magistrale dane będą przeznaczone wyłącznie dla zaadresowanego układu, aż do wysłania warunku stopu. Przykładowe wywołanie procedury I2C_TX_Byte wysyłające na magistralę I 2 C bajt o wartości szesnastkowej 55 HEX może w języku PBASIC przyjąć następującą postać (użyta w przykładzie wartość nie jest poprawnym adresem przetwornika na magistrali I 2 C, służy jedynie pokazaniu sposobu wywołania procedury I2C_TX_Byte): 6

i2cwork = $55 GOSUB I2C_TX_Byte - sprawdzić stan bitu potwierdzenia przechowywany w zmiennej i2cack. Jeśli jest on równy 0 przetwornik został poprawnie zaadresowany i można wysyłać kolejne bajty. Jeśli ma on wartość 1 oznacza to prawdopodobne błędy w montażu lub w działaniu układu. W takiej sytuacji należy poprosić o pomoc prowadzącego. - przy pomocy procedury I2C_TX_Byte wysłać przez magistralę I 2 C wyznaczony wcześniej bajt konfiguracji przetwornika oraz sprawdzić stan bitu i2cack potwierdzającego poprawny odbiór danej. - przy pomocy procedury I2C_TX_Byte wysłać na magistralę wartość przeznaczoną do przetworzenia na postać analogową oraz sprawdzić stan bitu i2cack potwierdzającego poprawny odbiór danej. (w celu łatwej oceny poprawności działania zmontowanego układu, proponuje się, aby przy pierwszym uruchomieniu przetwornika, jako danej mającej zostać zamienioną na postać analogową użyć wartości 128 (80H). Poprawnie działający układ przetwornika powinien na wyjściu analogowym wystawić napięcie równe połowie wartości napięcia referencyjnego podawanego na wejście VREF przetwornika. W układzie badanym w trakcie ćwiczenia oznacza to pojawienie się na wyjściu AOUT napięcia około 2.5V), - przy pomocy procedury I2C_TX_Byte wysłać na magistralę po raz drugi tę samą wartość przeznaczoną do przetworzenia na postać analogową (wynika to z opisanego w dokumentacji sposobu działania przetwornika), - wystawić przy pomocy procedury I2C_Stop warunek stopu, kończąc wymianę danych z przetwornikiem. Zaobserwować na woltomierzu, jaka wartość napięcia ustaliła się na wyjściu AOUT przetwornika. Po stwierdzeniu, że układ działa poprawnie przeprowadzić serie pomiarów, które pozwolą sporządzić charakterystykę przetwornika. Powtarzając opisaną wcześniej procedurę należy powtórzyć, aby uzyskać wartości napięć dla: - pierwszych 16 wartości słowa wejściowego (00-0F), - wartości ze środka zakresu przetwarzania (7E-81) - wartości z końca zakresu przetwornika (F8-FF) Wyniki pomiarów zanotować. (Można również przygotować program, który pozwoli na automatyczną Na podstawie tych pomiarów wyznaczyć podstawowe parametry przetwornika: - zakres przetwarzania - rozdzielczość. Sporządzić wykres charakterystyki Uwy(n). Po zakończeniu pomiarów nie rozmontowywać układu. Po modyfikacjach zostanie on wykorzystany w dalszej części zajęć. 7

2.3 Badanie charakterystyki przetwornika AC Odłączyć zasilanie! Potencjometr Przetwornik PCF 8591 Rys. 2 Rozmieszczenie wybranych elementów na płycie prototypowej. Przetwornik PCF8591 oraz potencjometr wieloobrotowy o wartości 10 kω zostały umieszczone w płytce prototypowej w sposób przedstawiony na Rys. 2. Takie rozmieszczenie sprawia, że wyjście suwaka potencjometru jest podłączone do wejścia AIN0 przetwornika. Potencjometr ma działać w konfiguracji regulowanego dzielnika napięcia. Będzie służył do zadawania na wejście analogowe AIN0 przetwornika PCF8591 różnych wartości napięcia z przedziału <0,Vref>. Oznaczenia wyprowadzeń potencjometru przedstawiono na Rys. 3. Skrajne wyprowadzenia potencjometru podłączyć odpowiednio do masy (Vss) i zasilania (Vdd). Suwak potencjometru (wyprowadzenie środkowe) podłączyć do wyprowadzenia 1(AIN0) układu przetwornika. Dłuższy, czerwony przewód miernika uniwersalnego podłączyć do wyprowadzenia 1 (AIN0) przetwornika. 2 1 3 Czarny przewód miernika pozostawić podłączony do wyprowadzenia 13 (AGND). 1 2 3 Rys. 3 Oznaczenie wyprowadzeń potencjometru Zgłosić prowadzącemu gotowy układ do sprawdzenia połączeń i włączenia układu. Korzystając z dołączonej biblioteki obsługi magistrali I 2 C obsłużyć przetwornik AC. Przed rozpoczęciem przetwarzania A/C przetwornik powinien otrzymać odpowiedni baj konfiguracyjny. Właściwa również dla tej części ćwiczenia wartość tego bajtu została ustalona w części ćwiczenia związanej z przetwarzaniem C/A. Może zatem zostać wykorzystana. Wysłanie bajtu konfiguracyjnego wykonuje się w sposób identyczny jak w części związanej z przetwarzaniem CA. Można wykorzystać używany wcześniej program, ograniczając jego działanie do wysłania na magistralę I 2 C bajtu adresującego 8

przetwornik oraz bajtu konfiguracji. Po ich wysłaniu można zakończyć komunikację wystawiając na magistralę warunek stopu. W procesie przetwarzania A/C mikrokontroler musi odbierać od przetwornika dane będące wynikiem przetworzenia analogowej wartości napięcia podanego na wejście przetwornika na wartość cyfrową. Zgodnie ze specyfikacją magistrali I2C, urządzenie, z którego odczytywane są dane jest widoczne na magistrali pod innym adresem (najmłodszy bit bajtu adresowego jest ustawiony na wartość 1). Należy zatem w podobny sposób jak przy przetwarzaniu C/A wyznaczyć ten adres, pamiętając przy tym o ustawieniu najmłodszego bitu na 1. Prawidłowa sekwencja uruchamiająca przetwornik PCF8591 do pracy w trybie A/C może wyglądać następująco: - wystawienie warunku startu (I2C_Start), - wysłanie bajtu adresującego dla ustawienia konfiguracji przetwornika (I2C_TX_Byte), - wysłanie bajtu konfiguracji przetwornika (I2C_TX_Byte), - wystawienie warunku stopu (I2C_Stop), - wystawienie warunku startu (I2C_Start), - wysłanie bajtu adresującego (innego niż wcześniej dla zapisu) dla odczytu danej z przetwornika (I2C_TX_Byte), - odczyt danej z przetwornika procedurą I2C_RX_Byte (wartość odczytanej danej zostanie umieszczona w zmiennej i2cwork) - ponowny odczyt danej z przetwornika procedurą I2C_RX_Byte zgodnie z dokumentacją przetwornika, proces przetwarzania jest wyzwalany operacją odczytu danej z przetwornika. Zatem dopiero druga odczytana wartość jest poprawnym wynikiem przetworzenia napięcia wejściowego na wartość cyfrową. - wyświetlenie lub wykorzystanie w inny sposób uzyskanej danej z przetwornika Otrzymaną z przetwornika daną można wyświetlić na konsoli komputera, umieszczając w programie instrukcję: DEBUG "Wartosc przetworzona ", DEC i2cwork,cr - kolejny odczyt wartości z przetwornika. - wystawienie warunku stopu (I2C_Stop) kończącego pracę przetwornika. Zmieniając położenie potencjometru zarejestrować około 20 punktów pomiarowych w całym zakresie zmian napięcia wejściowego. Aby usprawnić pomiary można zapętlić program tak, aby wykonywał sekwencyjny odczyt wyzwalając automatycznie kolejne cykle przetwarzania. Obliczyć teoretyczną wartość napięcia odpowiadającą zmianie wartości słowa wyjściowego o 1 bit. Na tej podstawie postarać się doświadczalnie wychwycić zmianę napięcia na wejściu odpowiadającą różnicy na pozycji najmłodszego bitu. Określić zakres i rozdzielczość przetwornika. Z uzyskanych danych sporządzić wykres charakterystyki przetwornika. 9

Załącznik procedury obsługi programowej emulacji interfejsu I 2 C dla BS2 ' i2c.bs2 ' procedury obslugi emulacji programowej magistrali i2c ' dla BasicStamp 2 '{$STAMP BS2} '{$PBASIC 2.5} ' -----[ I/O Definitions ]------------------------------------------------- SDA PIN 4 ' I2C serial data line SCL PIN 5 ' I2C serial clock line ' -----[ Constants ]------------------------------------------------------- Ack CON 0 ' jest bit podwierdzenia Nak CON 1 ' brak bitu potwierdzenia ' -----[ Variables ]------------------------------------------------------- i2cwork VAR Byte ' zmienna robocza dla procedur nadawania i odbioru i2cack VAR Bit ' bit Ack (potwierdzenie z urzadzenia) ' ------------------------------------------------------------------------- 'ponizej umieszczamy wlasny program 'wysylany lub odbierany bajt z i2c przekazywany jest przez zmienna i2cwork END ' -----[ Niskopoziomowe procedury magistrali I2C]-------------------------- ' *** Warunek Startu *** I2C_Start: INPUT SDA INPUT SCL LOW SDA Clock_Hold: DO : LOOP UNTIL (SCL = 1) ' czekamy na zwolnienie zegara RETURN ' *** Wysłanie bajtu na magistrale *** I2C_TX_Byte: SHIFTOUT SDA, SCL, MSBFIRST, [i2cwork\8] ' wysłanie bajtu do odbiorcy SHIFTIN SDA, SCL, MSBPRE, [i2cack\1] ' odbiór bitu potwierdzenia RETURN ' *** Odbiór bajtu z magistrali*** I2C_RX_Byte_Nak: i2cack = Nak ' brak Ack = high GOTO I2C_RX I2C_RX_Byte: i2cack = Ack ' jest Ack = low I2C_RX: SHIFTIN SDA, SCL, MSBPRE, [i2cwork\8] ' odbior bajtu od nadawcy SHIFTOUT SDA, SCL, LSBFIRST, [i2cack\1] ' wystawienie potwierdzenia ' ack lub nak RETURN ' *** Warunek Stopu *** I2C_Stop: LOW SDA INPUT SCL INPUT SDA RETURN ' -----[ Koniec I2C.BS2]--------------------------------------------------- 10