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

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

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

Programowanie mikrokontrolerów

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

Komunikacja w mikrokontrolerach Laboratorium

Instytut Teleinformatyki

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

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

Zewnętrzne układy peryferyjne cz. 1 Wykład 12

Spis tre 1. Przedstawienie standardu 1-wire Dokumentacja układu DS18B Obsługa termometru DS18B20 w j

Laboratorium mikroinformatyki. Szeregowe magistrale synchroniczne.

Komunikacja w mikrokontrolerach Laboratorium

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

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

MIKROKONTROLERY - MAGISTRALE SZEREGOWE

OBSŁUGA INTERFEJSU 1-WIRE NA PRZYKŁADZIE DS18B20

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

Systemy wbudowane Obsługa interfejsu 1-Wire na przykładzie termometru DS18B20

16. Szeregowy interfejs SPI

Programowanie mikrokontrolerów. 8 listopada 2007

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

2.1 Porównanie procesorów

Opis czytnika TRD-80 CLASSIC ver Moduł czytnika transponderów UNIQUE z wbudowaną anteną

Magistrale szeregowe

Zegar Czasu Rzeczywistego I²C

Politechnika Białostocka Wydział Elektryczny

Komunikacja z urzadzeniami zewnętrznymi

Sprzężenie mikrokontrolera (nie tylko X51) ze światem zewnętrznym lokalne interfejsy szeregowe

Wyjście do drukarki Centronix

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

1W-H3-05(K)* Czytnik RFID 125 khz Unique. Instrukcja

MIKROPROCESORY architektura i programowanie

Hardware mikrokontrolera X51

Systemy wbudowane - wykład 7

Mikroprocesory i Mikrosterowniki Laboratorium

Układy czasowo-licznikowe w systemach mikroprocesorowych

Kod produktu: MP01105

Magistrala LIN

na w inny sposób. Można się tutaj wzorować na zmierzchowym wyłączniku światła względu na ograniczoną ilość miejsca nie

Układy transmisji przewodowej. na przykładzie USB

Wstęp: Interfejs portu równoległego 6821 i portu szeregowego 6850 firmy Motorola

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Kod produktu: MP01105T

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

WPROWADZENIE Mikrosterownik mikrokontrolery

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

TRD-MINI COMBO. Uniwersalny moduł czytnika transponderów UNIQUE - wersja OEM. Podstawowe cechy :

Mikroprocesory i Mikrosterowniki

Systemy wbudowane - wykład 8. Dla zabicia czasu Notes. I 2 C aka IIC aka TWI. Notes. Notes. Notes. Przemek Błaśkiewicz.

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Opis czytnika TRD-55 CLASSIC ver Moduł czytnika transponderów UNIQUE z zewnętrzną anteną

Analiza protokołów (4)

Analizowanie protokołów szeregowych oscyloskopami Rohde&Schwarz (2) SPI, I 2 C

MIKROKONTROLERY I MIKROPROCESORY

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Współpraca procesora ColdFire z urządzeniami peryferyjnymi

Magistrala I 2 C. - mikrokontroler A (nadajnik-master) wysyła dane do mikrokontrolera B (odbiornik-slave)

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

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

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4

Opis procedur asemblera AVR

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

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

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

2. Architektura mikrokontrolerów PIC16F8x... 13

Organizacja typowego mikroprocesora

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

Wstęp działanie i budowa nadajnika

Programowanie w językach asemblera i C

Wstęp Architektura... 13

Współpraca procesora z urządzeniami peryferyjnymi

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Konwerter 1 Wire > SPI opisany P R Ow JVerilogu

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

Architektura komputerów

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

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

Mikrokontroler AVR ATmega32 - wykład 9

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

Obsługa przetwornika ADC na mikrokontrolerze ATmega8 CEZARY KLIMASZ OBSŁUGA PRZETWORNIKA ADC NA MIKROKONTROLERZE ATMEGA8

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

2. Format danych i zaimplementowane funkcje MODBUS

1W-H3-04P (K)* *Litera K odnosi się do wersji czytnika ze wspólną katodą. Czytnik RFID 125 khz Unique. Karta produktu

Uniwersalny asynchroniczny. UART Universal Asynchronous Receier- Transmiter

PL B1. AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE, Kraków, PL BUP 21/10

równoległe (w wersji 4-, 8- i 16-bitowej). Same wyświetlacze ze względu na budowę i możliwości możemy podzielić na dwie grupy:

Technika Mikroprocesorowa

Programowanie Mikrokontrolerów

Aplikacja czujnika temperatury dla modułu uniwersalnego UNIV 1.0 i procesora UNIV 1.0 (CPU)

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

Arduino dla początkujących. Kolejny krok Autor: Simon Monk. Spis treści

AVREVB1. Zestaw uruchomieniowy dla mikrokontrolerów AVR. Zestawy uruchomieniowe

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

TECHNIKA MIKROPROCESOROWA

Interface sieci RS485

MIKROPROCESORY architektura i programowanie

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

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

Transkrypt:

Magistrala I 2 C Podstawy systemów mikroprocesorowych Wykład nr 5 Interfejsy szeregowe c.d. dr Piotr Fronczak http://www.if.pw.edu.pl/~agatka/psm.html Inter-integrated circuit bus TWI Two-wire Serial Interface w proc. firmy Atmel EEPROMy, układy zegarkowe RTC, przetworniki ADC, czujniki termiczne, itd. cyfrowe przetwarzanie sygnałów w dekoderach video i procesorach audio. dodatkowe układy korzystające z magistrali mogą być dodawane lub wyłączane bez ingerencji w pozostały układ połączeń na magistrali całkowicie zintegrowany protokół eliminuje potrzebę stosowania dodatkowych układów, na przykład dekodujących adresy na magistrali połączenia na magistrali składają się z tylko dwóch przewodów, ograniczając w ten sposób liczbę ogólnych połączeń w urządzeniu. fronczak@if.pw.edu.pl Pokój 6GF Magistrala I 2 C 2 dwukierunkowe linie: dane (Serial DAta - SDA), sygnał zegara (Serial CLock - SCL) Podczas transmisji danych, sygnał na linii SDA musi być stabilny (nie moŝe się zmieniać), gdy linia SCL jest w stanie H. Zmiany linii SDA podczas stanu H linii SCL są interpretowane jako sygnały sterujące (control). Magistrala I 2 C Daje to następujące warunki na magistrali: magistrala nie zajęta (Bus Not Busy) - linie SDA i SCL w stanie H, start transmisji danych - zmiana stanu linii SDA z H na L, dokonana podczas wysokiego stanu linii SCL, stop (zatrzymanie) transmisji danych - zmiana stanu na linii SDA z L na H dokonana podczas wysokiego stanu linii SCL, dane waŝne (Data Valid) - po wystąpieniu warunku startu stan linii SDA pozostaje stabilny przy stanie H linii SCL. Zmiana danych na linii SDA moŝe nastąpić podczas stanu L linii SCL. 1

Magistrala I 2 C Magistrala I 2 C KaŜdą transmisję rozpoczyna znacznik startu a kończy znacznik stopu Ilość transmitowanych bitów pomiędzy znacznikami nie jest limitowana kaŝda porcja informacji wysyłana linią SDA ma długość 8 bitów (bajt) dane wysyłane są od najstarszego bitu do najmłodszego kaŝdy wysłany bajt musi być potwierdzony przez odbiornik urządzenie master zobowiązane jest do generowania dodatkowego taktu zegarowego dla uchwycenia bitu potwierdzenia w czasie potwierdzenia nadajnik ustawia swoje wyjście danych na H, co umoŝliwia odbiornikowi wysłanie potwierdzenia poprzez wymuszenie niskiego stanu na linii SDA jeśli odbiornik nie jest w stanie przyjąć kolejnego kompletnego bajtu, to dla poinformowania nadajnika i zwolnienia transmisji ustala stan niski na linii zegara SCL. Wznowienie transmisji moŝe nastąpić natychmiast po tym, jak odbiornik zwolni linię SCL, usuwając z niej stan niski. jeśli odbiornik slave nie potwierdził wysłanego do niego adresu własnego (na przykład z powodu wykonywania jakiejś funkcji czasu rzeczywistego) lub któregokolwiek z przesłanych później bajtów, to linię SDA powinien pozostawić w stanie wysokim, a urządzenie master powinno wysłać warunek stop. Format ramki z adresem Tryby transmisji Składa sie z 9 bitów: 7-bitowy sprzetowy adres urzadzenia slave, bit READ/WRITE: 1 oznacza odczyt z urzadzenia slave, 0 oznacza zapis do urzadzenia slave. bit potwierdzenia slave potwierdza odbiór własnego adresu, generujac sygnał ACK w dziewiatym cyklu zegara (SCL). 2

Magistrala TWI w mikroprocesorach AVR Magistrala TWI w mikroprocesorach AVR Mikrokontrolery ATmega16 i ATmega32 maja wbudowany moduł Two-Wire Serial Interface (TWI), który: realizuje komunikację I 2 C, zwalnia programistę z konieczności implementacji tej komunikacji na poziomie sygnałów na liniach SCL i SDA. Gdy moduł TWI jest włączony, sygnał SCL jest wyprowadzony na pin PC0, a sygnał SDA jest wyprowadzony na pin PC1. Mozna aktywować (rejestr PORTC) wewnętrzne rezystory podciągające na pinach PC0 i PC1 i w pewnych warunkach uŝywać ich zamiast rezystorów zewnętrznych. Jeśli mikrokontroler pracuje w trybie slave: nie generuje sygnału na SCL, częstotliwość zegara systemowego musi być co najmniej 16 razy większa niŝ częstotliwość sygnałów na linii SCL. Jeśli mikrokontroler pracuje w trybie master: częstotliwość na linii SCL wynosi clk częstotliwość zegara systemowego, TWBR wartość rejestru TWBR, TWPS wartości bitów preskalera. Rejestr TWCR Rejestr TWCR TWINT: jest ustawiany sprzętowo po zakończeniu operacji na magistrali I 2 C (ale nie po sygnale STOP!), nigdy nie jest automatycznie zerowany, jego wyzerowanie (przez wpisanie jedynki) inicjuje kolejną operację na magistrali. TWEA: ustawienie powoduje automatyczne generowanie sygnału ACK, gdy: urządzenie odczyta własny adres w trybie slave, urządzenie otrzyma bajt danych w trybie odbioru. TWSTA: ustawienie na jeden powoduje przełaczenie w tryb master: dopóki szyna jest zajęta, mikrokontroler czeka na sygnał STOP następnie generuje sygnał START, bit musi zostać wyzerowany programowo (w zwykły sposób). TWSTO: w trybie master ustawienie na jeden powoduje wygenerowanie sygnału STOP i automatyczne wyzerowanie bitu, w trybie slave przełacza SCL i SDA do stanu wysokiej rezystancji. 3

Rejestr TWCR Rejestr TWSR TWWC: ustawiany przy próbie zapisu do TWDR, gdy TWINT jest w stanie niskim, zerowany po zapisie do TWDR, gdy TWINT jest w stanie wysokim TWEN: ustawienie powoduje uaktywnienie interfejsu I 2 C i odłączenie wyprowadzeń PC0, PC1 od portu C TWIE: włącza przerwanie. Przerwanie jest aktywne tak długo, jak długo TWINT jest ustawiony Bity 7 do 3 kod błędu, zaleŝny od trybu pracy, szczegóły w dokumentacji Bity 1, 0 bity preskalera. Rejestr TWAR Jeśli mikrokontroler pracuje w trybie slave, zawiera adres mikrokontrolera. Adresy postaci 0 i 1111xxx są zarezerwowane i nie naleŝy ich uŝywać. Bit 0 jest ustawiany, gdy mikrokontroler ma reagować na tzw. General Call, czyli adres 0. Two-Wire Data Register Rejestr TWDR W trybie nadawania zawiera następne dane (lub adres) do wysłania. W trybie odbioru zawiera ostatnio odebrane dane (lub adres). MoŜna do niego pisać, gdy TWINT zostanie sprzętowo ustawiony na jedynkę. // procedura transmisji sygnału START void twistart(void) TWCR = (1<<TWINT) (1<<TWSTA) (1<<TWEN); while (!(TWCR & (1<<TWINT))); // procedura transmisji sygnału STOP void twistop(void) TWCR = (1<<TWINT) (1<<TWEN) (1<<TWSTO); while ((TWCR & (1<<TWSTO))); // procedura transmisji bajtu danych void twiwrite(uint8_t bajt) TWDR = bajt; TWCR = (1<<TWINT) (1<<TWEN); while (!(TWCR & (1<<TWINT))); //procedura odczytu bajtu danych uint8_t twiread(uint8_t ack) TWCR = (1 << TWINT) (1 << TWEN) (ack << TWEA)); while (!(TWCR & (1<<TWINT))); return TWDR; 4

Magistrala 1Wire Do całkowitej komunikacji uŝywana jest tylko jedna linia danych. Dodatkowo, odbiornik moŝe być zasilany bezpośrednio z linii danych (zasilanie pasoŝytnicze). Kondensator ładowany bezpośrednio z linii danych uŝywany jest do zasilania odbiornika. Stosunkowo niewielka przepustowość transmisji danych - standardowo 16 kbps. 1-Wire jest podobne do interfejsu I²C, ale z uwagi na pojedynczą linię komunikacyjną jest zarówno wolniejsze, jak i tańsze. Termometry cyfrowe, instrumenty metrologiczne, sterowniki ładowania akumulatorów, zamki elektroniczne, itd. jeden układ nadrzędny (master) i wiele urządzeń podrzędnych (slave) Inicjalizacja KaŜda transmisja rozpoczyna się sekwencją inicjalizacyjną zawierajacą impuls resetu RESET PULSE wysyłany z Mastera, po którym następuje impuls przedstawienia się PRESENCE PULSE wysyłany przez Slave. Master wysyła reset przez ustawienie linii danych w stan niski przez minimum 480µs. Po tym zabiegu Master zwalnia magistralę i przechodzi w tryb odbiornika. Kiedy magistrala jest zwolniona, rezystor podciąga linię 1-Wire do stanu wysokiego. Kiedy Slave wykryje narastające zbocze, odczeka 15-60µs, a następnie wyśle impuls PRESENCE PULSE, poprzez ustawienie magistrali w stanie niskim przez 60-240µs. KaŜde urządzenie 1-Wire posiada unikalny 64 bitowy numer identyfikacyjny zapisany w ROMie: 8 bitowy kod typu układu 48 bitowy numer seryjny W standardzie zestaw komend ROM: Komendy 8 bitowa suma kontrolna obliczona na podstawie 56 pierwszych bitów. Komendy READ ROM przydatne, gdy jeden układ Slave odczytuje jego 64 bitowy identyfikator. SKIP ROM gdy jeden układ Slave, wystarczy by go zaadresować, gdy wiele układów Slave adresuje wszystkie układy (np. by rozpocząć pomiar na kilku sensorach jednocześnie). MATCH ROM adresuje konkretny układ Slave. Po komendzie wysyłany jest na magistralę 64 bitowy identyfikator. SEARCH ROM wyszukuje identyfikatory wszystkich układów na magistrali skomplikowany proces (dokumentacja). Oprócz uniwersalnych komend ROM, komendy specyficzne dla danego układu. 5

Przykład: komendy sterujące termometrem cyfrowym DS18B20 Zapis bitu Aby zapisać 1 do układu slave, po ustawieniu magistrali w stan niski, Master powinien zwolnić magistralę w przeciagu 15µs. Kiedy magistrala jest zwolniona, rezystor podciąga linię danych do stanu wysokiego. Aby zapisać 0, po ustawieniu magistrali w stan niski, Master powinien kontynuować trzymanie magistrali w stanie niskim, przez okres najmniej 60µs. Odczyt bitu Inicjowane przez układ Master, przez ustawienie magistrali 1-Wire w stan niski przez minimum 1µs a następnie zwolnienie magistrali. Po inicjacji układ Slave zaczyna generować dane na magistralę (zera lub jedynki). Zera transmitowane są przez ustawienie magistrali w stanie niskim, zaś jedynki poprzez podciagniecie jej do stanu wysokiego. 6

7