Rys 2. Schemat obwodów wejściowo/wyjściowych urządzeń w magistrali I2C

Podobne dokumenty
Wykład 2. Interfejsy I 2 C, OneWire, I 2 S

Urządzenia do bezprzerwowego zasilania UPS CES GX RACK. 10 kva. Wersja U/CES_GXR_10.0/J/v01. Praca równoległa

Elementy cyfrowe i układy logiczne

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD

PERSON Kraków

Bazy danych. Andrzej Łachwa, UJ, /15

Programator pamięci EEPROM

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

Budowa systemów komputerowych

Sterownik Silnika Krokowego GS 600

Spis procedur i programów

Instrukcja obsługi panelu operacyjnego XV100 w SZR-MAX-1SX

Moduł GSM generacja 1

Harmonogramowanie projektów Zarządzanie czasem

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56

Systemy wbudowane Mikrokontrolery

Automatyka. Etymologicznie automatyka pochodzi od grec.

DTR.ZL APLISENS PRODUKCJA PRZETWORNIKÓW CIŚNIENIA I APARATURY POMIAROWEJ INSTRUKCJA OBSŁUGI (DOKUMENTACJA TECHNICZNO-RUCHOWA)

Systemy mikroprocesorowe - projekt

STEROWNIK PRZEPŁYWOMIERZA Z WYŚWIETLACZEM LED NA SZYNĘ DIN SPR1

Tester pilotów 315/433/868 MHz

Instrukcja obsługi zamka. bibi-z50. (zamek autonomiczny z czytnikiem identyfikatora Mifare)

VLAN Ethernet. być konfigurowane w dowolnym systemie operacyjnym do ćwiczenia nr 6. Od ćwiczenia 7 należy pracować ć w systemie Linux.

HiTiN Sp. z o. o. Przekaźnik kontroli temperatury RTT 4/2 DTR Katowice, ul. Szopienicka 62 C tel/fax.: + 48 (32)

Kurs obsªugi interfejsu I2C.

Podstawowe definicje

1 Jeżeli od momentu złożenia w ARR, odpisu z KRS lub zaświadczenia o wpisie do ewidencji działalności

AUTOMATYKA CHŁODNICZA I KLIMATYZACYJNA

Siemens IO-Link. Smart TIA integration of sensors and actuators

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Radiowy miernik opadów Nr art Przekaz danych następuje na częstotliwości 433 MHz, bez konieczności instalowania przewodów.

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

PRZEPISY KLASYFIKACJI I BUDOWY STATKÓW MORSKICH

INSTRUKCJA OBSŁUGI URZĄDZENIA: HC8201

PRZEMYSŁOWY ODTWARZACZ PLIKÓW MP3 i WAV

tel/fax lub NIP Regon

INSTRUKCJA TERMOSTATU

API transakcyjne BitMarket.pl

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład:

INSTRUKCJA RUCHU I EKSPLOATACJI SIECI DYSTRYBUCYJNEJ

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania).

ANALOGOWE UKŁADY SCALONE

Proces certyfikacji ISO 9001:2015. Wydanie normy ISO 9001:2015 dotyczące systemów zarządzania jakością obowiązuje od 15 września 2015 roku.

( 5 4 ) Sposób i urządzenie do sterowania dźwigiem, zwłaszcza towarowym,

Projekt i etapy jego realizacji*

KB-01. Sterownika silnika krokowego bipolarnego dwufazowego INSTRUKCJA OBSŁUGI. 9. Eksploatacja sterownika KB-01:

PX319. Driver LED 1x2A/48V INSTRUKCJA OBSŁUGI

2004 Heden Media. Wszelkie prawa zastrzeżone. Wirtualne laboratorium z napędów i sterowania pneumatycznego. Minimalne wymagania

Tester pilotów 315/433/868 MHz MHz

Adapter USB do CB32. MDH-SYSTEM ul. Bajkowa 5, Lublin tel./fax lub kom e mail: info@mdh-system.pl

Ćwiczenie 7 Liczniki binarne i binarne systemy liczbowe.

Spis zawartości Lp. Str. Zastosowanie Budowa wzmacniacza RS485 Dane techniczne Schemat elektryczny

Karta adaptacyjna GSM

CZYTNIK ZBLIŻENIOWY RFID-UR80D

Sieci komputerowe. Definicja. Elementy

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

OŚWIETLENIE PRZESZKLONEJ KLATKI SCHODOWEJ

Sterownik nagrzewnicy elektrycznej HE

PoniŜej przedstawiono przykład komunikacji pomiędzy CPU224XP a CPU314C-2 DP. UŜyty sprzęt:

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

ZL11ARM. Uniwersalna płyta bazowa

Wtedy wystarczy wybrać właściwego Taga z listy.

Logowanie do mobilnego systemu CUI i autoryzacja kodami SMS

Generalnie przeznaczony jest do obsługi systemów klimatyzacyjnych i chłodniczych.

linkprog programator USB

Rada Unii Europejskiej Bruksela, 21 czerwca 2016 r. (OR. en)

Śrubka zamykająca Uchwyt ścienny Przycisk kontrolny Lampka kontrolna

Media Organizer v1.0b

Badanie bezszczotkowego silnika prądu stałego z magnesami trwałymi (BLDCM)

Pomiar mocy pobieranej przez napędy pamięci zewnętrznych komputera. Piotr Jacoń K-2 I PRACOWNIA FIZYCZNA

ROZPORZĄDZENIE KOMISJI (UE) NR

1.3 Budowa. Najwa niejsze cz ci sk adowe elektrozaworu to:

enova Workflow Obieg faktury kosztowej

Implant ślimakowy wszczepiany jest w ślimak ucha wewnętrznego (przeczytaj artykuł Budowa ucha

PODRĘCZNIK UŻYTKOWNIKA

(86) Data i numer zgłoszenia międzynarodowego: , PCT/DE02/ (87) Data i numer publikacji zgłoszenia międzynarodowego:

Chęciny, dnia... NIP b/ nazwa przedsiębiorcy: ( jeżeli działalność będzie wykonywana pod nazwą )...

TABLICA SYNOPTYCZNA CA-64 PTSA

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Sieci komputerowe cel

ZASADY WYPEŁNIANIA ANKIETY 2. ZATRUDNIENIE NA CZĘŚĆ ETATU LUB PRZEZ CZĘŚĆ OKRESU OCENY

REGULAMIN FINANSOWANIA ZE ŚRODKÓW FUNDUSZU PRACY KOSZTÓW STUDIÓW PODYPLOMOWYCH

Architektura komputerów

REGULAMIN PRZEPROWADZANIA OCEN OKRESOWYCH PRACOWNIKÓW NIEBĘDĄCYCH NAUCZYCIELAMI AKADEMICKIMI SZKOŁY GŁÓWNEJ HANDLOWEJ W WARSZAWIE

Instrukcja obsługi i montażu radiowego czujnika zewnętrznego i analogowego radiowego układu zdalnej obsługi

INSTRUKCJA OBS UGI

HERCULES DJCONTROLWAVE I DJUCED DJW PIERWSZE KROKI

Generator obrazu transakcji fiskalnych, FG-40

Wiedza niepewna i wnioskowanie (c.d.)

Instrukcja instalacji programu Plantator oraz transferu pliku danych z/do PC kolektor danych PT-20

Procedura uzyskiwania awansu zawodowego na stopień nauczyciela mianowanego przez nauczycieli szkół i placówek

Opis ogólny AL154SAV5.HT

Ogólna charakterystyka kontraktów terminowych

Multiplekser, dekoder, demultiplekser, koder.

INFORMATOR TECHNICZNY GE FANUC. Rezerwacja w sterownikach programowalnych GE Fanuc. Standby Redundancy najprostszy system rezerwacji

Obsługa centrali: Krótkie przerwy w tonie zgłoszenia informujące o. Przerwa 100ms

Ćwiczenia z S Podstawy sterowania napędem SINAMICS G110 za pośrednictwem protokołu USS przy wykorzystaniu sterownika S

Rodzaje i metody kalkulacji

Transkrypt:

Temat: Magistrala I2C na przykładzie zegara czasu rzeczywistego PCF8583. 1.Opis magistrali I2C Oznaczenie nazwy magistrali, wywodzi się od słów Inter Integrated Circuit (w wolnym tłumaczeniu: połączenia miedzy układami scalonymi). Komunikacja w tej magistrali odbywa się za pomocą dwóch linii: SDA i SCL. Wyróżnia się dwie klasy urządzeń: -urządzenia nadzorcze, -urządzenia podległe. W razie potrzeby jedno z urządzeń podległych może stać się nadzorcą (po otrzymaniu kontroli nad magistralą). 1.1.Ogólny schemat magistrali I2C. Rysunek nr 1. przedstawia ogólną strukturę magistrali I2C. Rys 1. Schemat poglądowy magistrali I2C w połączeniu z mikrokontrolerem 80C51 Do magistrali podłączono w charakterze urządzenia nadrzędnego (master) układ 80C51. Jako elementy podrzędne (slave) podłączono: -dwa układy 24C02 (pamięć EEPROM), -układ zegara czasu rzeczywistego PCF8583. Ilość urządzeń podłączonych do magistrali jest ograniczona wielkością pola adresowego (w systemach z 7 bitową magistralą jest ich 127). W systemie w jednej chwili może być tylko jedno urządzenie nadzorujące transmisję. Proces przejmowania magistrali jest ściśle sprecyzowany. Wymagane jest aby wszystkie urządzenia pracujące z magistralą przestrzegały tego algorytmu. Opisany on zostanie w dalszej części. 1.2.Zasada pracy magistrali Każde z urządzeń na magistrali ma podobny interfejs elektryczny, przedstawiony on jest rysunku nr 2. Rys 2. Schemat obwodów wejściowo/wyjściowych urządzeń w magistrali I2C

Tylko w jednym miejscu magistrala jest podciągnięta za pomocą rezystorów do zasilania (pull-up). Dzięki takiemu zabiegowi możliwe jest przejęcie magistrali przez urządzenia chcące nadać coś innym urządzeniom. Schemat podany na rysunku nie zawsze jest w taki sposób implementowany w fizycznych układach pokazano wyłącznie ideę rozwiązań. Urządzenia nieaktywne (np. podrzędne) aby umożliwić innym elementom pracę z magistralą ustawiają swoje wyjścia w stan open-drain. Między innymi mikrokontrolery mają możliwość ustawienia wyjść w stan wysokiej impedancji. W systemie STRC51 układ scalony 80C51 ustawia swoje wyjścia w stan 1 dzięki czemu zwalnia magistralę. Nie jest to pełne zwolnienie magistrali, ale w większości zastosowań wystarcza. 1.3.Format danych przekazywanych przez magistralę. Ramkę z danymi rozpoczyna sekwencja startowa. Po zwolnieniu magistrali (wszystkie urządzenia włączają wyjścia skojarzone z magistralą w stan wysokiej impedancji), urządzenie inicjujące wyminę przeciąga linię SDA w stan niski. Po sprawdzeniu czy linia SDA jest w stanie niskim przeciąga linię SCL w stan niski. Jeżeli przeciąganie nie da rezultatu istnieje przesłanka iż urządzenie nie udało się przejąć kontroli nad magistralą i należy odrzucić na jakiś czas próby korzystania z magistrali. Sekwencje startową (ang. start condition) pokazuje rysunek nr 3. Rys. 3. Sekwencja startowa wymiany informacji magistrali I2C. Rys. 4. Sekwencja końcowa wymiany informacji magistrali I2C. Po pomyślnym przejęciu magistrali, może zostać przeprowadzona transmisja danych. Wymianę danych kończy sekwencja końcowa (stop condition) pokazana na rysunku nr 4. Po każdej wymianie danych na magistrali, wszystkie urządzenia muszą zwolnić magistralę. Niespełnienie tego warunku może doprowadzić do jej zablokowania z brakiem możliwości wymiany danych (nie istnieją mechanizmy odblokowywania magistrali po przekroczeniu czasu). Podczas wymiany danych stan linii SDA może być zmieniany podczas gdy linia SCL jest w stanie niskim sekwencje podano na rysunku nr 5. Rys. 5. Sekwencja wymiany informacji (jeden bit) magistrali I2C. Szerokość impulsu zatrzaskującego zależna jest od wersji magistrali i określone są dwie częstotliwości z jakimi pracuje magistrala f=100khz i f=400khz (układy scalone PCF8583 pracują z f=100khz). W przypadku używania systemu STRC51, istotne jest aby szerokość sygnału strob (impuls 0-1-0 na SCL) nie był zbyt mała.

Zapewnienie odpowiedniego czasu można osiągnąć przez wstawianie krótkich opóźnień np.: _asm nop _endasm; 1.4.Przebieg transmisji miedzy urządzeniami Podczas transmisji dane przekazywane są w ramach bajtów od najstarszego do najmłodszego bitu. Inicjacją oraz kontrolą transmisji zajmuje się urządzenie nadrzędne. Po wysłaniu sekwencji startowej następuje transmisja adresu urządzenia podrzędnego (slave). Rysunek nr 6. przedstawia przykład sekwencji. Rys. 6. Sekwencja wymiany informacji (sekwencja bajtów) magistrali I2C. Tak zrealizowana transmisja, umożliwia zapisanie w urządzeniu podrzędnym danych transmitowanych przez nadzorcę. Urządzenie podrzędne odbiera dane i odpowiednio potwierdza je - co zaznaczono na rysunku. Aby umożliwić urządzeniom podrzędnym potwierdzenie, magistrala zostaje na ten czas zwolniona (SDA=1). Podczas odczytywania danych z urządzenia podrzędnego transmisja jest bardziej skomplikowana co pokazano na rysunku nr 7. Rys. 7. Sekwencja odczytu informacji magistrali I2C. Podany tu proces odczytywania składa się z dwóch faz: -adresowanie urządzenia (między sekwencjami startowymi S), -odczyt danych (zakończony sekwencja końcową K). Istnieje także możliwość odczytu sekwencyjnego kiedy to najpierw w jednej sesji wysyłamy do urządzenia podrzędnego informacje skąd będziemy czytać, kończymy transfer sekwencja końca. A w następnej sesji adresujemy urządzenie i tylko czytamy dane. Taki model pracy jest korzystny gdy chcemy czytać z urządzenia podrzędnego tylko małe ilości danych, ale kolejno ułożone w pamięci urządzenia.

2.Opis układu PCF8583 Układ PCF8583 jest zegarem czasu rzeczywistego z wbudowaną pamięcią RAM. Układ ten komunikuje się z otoczeniem za pomocą linii SDA, SCL. Rysunek nr 8. przedstawia ogólny schemat układu. Rys. 8 Schemat ogólny układu PCF8583 Wejście X1 i wyjście X2 są podłączane do rezonatora kwarcowego. Sterownik oscylatora wraz z układem dzielników wypracowują stabilny sygnał o częstotliwości 100Hz. Tym sygnałem synchronizowany jest układ liczników czasu. Układ interfejsu I2C, ma za zadanie utrzymywać komunikację z otoczeniem. Wejście A0, służy określeniu adresu fizycznego urządzenia na magistrali I2C. Ponieważ wejście to jest jedno bitowe, na magistrali mogą znajdować się tylko dwa układy PCF8583 aby zapewnić komunikację bez błędów. Adres (ang. slave adres) pod jakim układ ten jest widoczny to: 0x50 dla A0=0 (w STRC51 jest to ten adres), 0x51 dla A0=1. Obraz układ licznika jest zbiorem pól do których można odwołać się za pośrednictwem magistrali I2C. Tabela przedstawia mapę pamięci licznika (dla zegarowego modelu pracy). Lokacja (hex) starsza cześć bajtu młodsza część bajtu 00 Słowo sterujące/stanu 01 Setki sekund 1/10s 1/100s 02 Sekundy 10s 1s 03 Minuty Pole 10min 1min licznika 04 czasu Godziny 10godz. 1godz. 05 Rok/dzien Patrz opis 06 Dzień tygodnia/miesiac Patrz opis 07 Timer (Znaczenie jak Rok/dzień) 08 Pole Sterowanie alarmem 09 ustawień Setki sekund alarmu 1/10s 1/100s 0a Sekundy 10s 1s 0b Minuty 10min 1min 0c Godziny 10godz 1godz 0d Rok/Dzień (jak w polu zegara)

0e Miesiące patrz opis 0f Timer (Znaczenie jak Rok/dzień) 10-255 Wolny obszar (pozostawiony dla programisty) 2.1.Zawartość słowa sterującego/stanu. Słowo sterujące pracą układu PCF8583 znajduje się pod adresem 0x00. Po włączeniu zasilania, ustawienie tego pola ma wartość 0x00. Należy zwrócić uwagę, iż w STRC51, układ ten ma bateryjne podtrzymywania napięcia zasilania, procedurę kasowania układu można wykonywać przez odcięcie napięcia z zasilacza i wyjęciu baterii na czas większy niż 10s. Poszczególne pola opisuje tabela: MSB Zatrzymanie procesu zliczania: 0-liczenie 1-zatrzymanie Zatrzaśnięcie ostatniego naliczenia: 0-liczenie 1-pamiętanie i trzymanie danych Tryb pracy: 00-tryb zegara podstawa 32768Hz (ustawiać w STRC51) 01-tryb zegara podstawa 50Hz 10-zliczanie zdarzeń (bez podziału imp. wejściowych) 11-test Flaga maskowania: 0-zawartość lokacji 05 i 06 nie zamaskowana 1-data i miesiąc czytane bezpośrednio Włączenie 0- niedozwolone 1-dozwolone Flaga alarmu, informująca o zaistnieniu zdarzenia alarm (pole zmieniane z wypełnieniem 50% co minutę) LSB Flaga timera, informująca o zaistnieniu zdarzenia timer (pole zmieniane z wypełnieniem 50% co sekundę) 2.2.Zawartość pól zegara Pola układu w większości są zapisywane w formacie BCD. Tabela przedstawia format pola godzin. Format: 0-24h, 1-12h Flaga: 0-AM, 1-PM Dziesiątki godzin (0,1,2) Jedności godzin 0,...,9 Pole opisu roku/daty. Rok 0,1,2,3. Jeżeli zamaskowane to odczytana wartość zawsze 0 Dziesiątki dni 0,1,2,3 Jedności dni 0,..,9 Format pola dzień tygodnia/ miesiąc. Dzień tygodnia 0,...,6. Jeżeli zamaskowane to odczytana wartość zawsze 0 Dziesiątki miesięcy Jedności miesięcy 0,..,9 2.3.Zawartość rejestru sterowania alarmem. Mechanizm sterowania wyjściem INT (jest dość skomplikowany) wymaga poprawnego ustawienia rejestru alarmu oraz słowa sterującego. Warto wspomnieć że w STRC51 istnieje możliwość podłączenia wyjścia INT do wejścia INT0 w procesorze, w ten sposób generować faktycznie przerwania. Stanem po włączeniu zasilania jest wartość 0x00. Format rejestru alarmu. 7 6 5 4 3 2 1 0 MSB Zezwolenie na generowanie przerwania od 0- nie generuje się przerwań 1- generuje się przerwania Zezwolenie na alarm od Timera: 0-nie generuje się alarmu od timera 1-generuje się alarm od timera Funkcjonowanie 00-nie generuje się alarmu od zegara 01-alarm może działać codziennie 10-alaram działa w wyznaczony dzień tygodnia 11-alarm zadziała w określony dzień Zezwolenie na generowanie przerwania od 0- nie generuje się przerwań 1- generuje się przerwania Funkcje Timera: 000-timer nie pracuje lub zlicza: 001-setne części sekundy 010-sekundy 011-minuty 100-godziny 101-dni 110-nie używane 111-test LSB

Wybór dnia tygodnia gdy alarm zadziała określa poniższy rejestr (lokacja 0x0E). MSB LSB - Dzień nr. 6 Dzień nr. 5 Dzień nr. 4 Dzień nr. 3 Dzień nr. 2 Dzień nr. 1 Dzień nr. 0 Ogólny schemat działania systemu alarmów przedstawia rysunek nr.9. Rys. 9 Schemat działania mechanizmu alarmu w układzie PCF8583 3.Interfejs w języku C Deklaracja linii w STRC51 jest bardzo uproszczona (komunikacja prowadzona jest tylko po dwóch liniach): sbit at 0x90 SDA; sbit at 0x91 SCL; Aby wysterować linię SDA należy umieścić kodzie: SDA=1; //ustawia linię w stan "1" albo SDA=0; //ustawia linię w stan "0" Podobnie sprawa wygląda z linią SCL:

SCL=1; //ustawia linię w stan "1" albo SCL=0; //ustawia linię w stan "0" Aby odczytać stan linii należy wykonać następującą operacje (podano przykład dla linii SDA, większości przypadków nie potrzeba aby 80C51 czytało stan linii SCL poza stanem przejęcia magistrali): SDA=1; //ustawienie w stan umożliwiający przeciągnięcie linii w //stan "0" przez urządzenie slave udelay(); //drobne opóźnienie (patrz opis w p.1.3) if(sda==0){... //kod wykonywany gdy linia ma stan "0" }else{... //kod wykonywany gdy linia ma stan "1" }