Sprawozdanie - mikrokontrolery i mikroprocesory cz. II

Nasza ocena:

3
Pobrań: 21
Wyświetleń: 1120
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Sprawozdanie - mikrokontrolery i mikroprocesory cz. II - strona 1

Fragment notatki:

Zadanie dotyczy obsługi magistrali I2C.

SPRAWOZDANIE Z MIKROKONTROLERÓW I MIKROPROCESORÓW
TEMAT: ZESTAW EDUKACYJNY BASIC STAMP 2 - OBSŁUGA MAGISTRALI I2C
WPROWADZENIE
Magistrala I2C jest to synchroniczna magistrala szeregowa, czyli dane są przesyłane bit po bicie synchronicznie z przesyłanym dodatkowo sygnałem zegarowym. Składa się z dwóch linii: zegara i danych. Można do niej podłączyć wiele urządzeń wyposażonych w interfejs I2S. Każda nowa transmisja rozpoczyna się wygenerowaniem przez układ nadrzędny specjalnej sekwencji, po której wysyłany jest adres urządzenia docelowego. Jeśli dla danego urządzenia adres jest zgodny, wysyła on jeden bit potwierdzenia w dziewiątym cyklu zegara. Sygnał zegarowy jest zawsze generowany przez urządzenie nadrzędne. Adresowanie 7 - bitowe polega na wysyłaniu zaraz po warunku startu danej 8 - bitowej, przy czym 7 pierwszych bitów to jest adres urządzenia podrzędnego, ósmy bit decyduje o kierunku transmisji. Jeśli ten bit jest wyzerowany oznacza, że do układu podrzędnego będą zapisywane dane, w przeciwnym wypadku odczytywane. Najprostszą operacją dostępną do tej pamięci jest zapis. Aby można było zapisać jeden bajt nadajnik musi między innymi:
- wygenerować sekwencję startu
- wysłać bajt - 7 bitów adresu i bit R/W=0
- zbadać ACK
- wysłać bajt danej
- wygenerować sekwencję stopu
W celu odczytania pojedynczego bajta urządzenie nadrzędne musi między innymi:
- wygenerować sekwencję startu
- wysłać bajt - 7 bitów adresu i bit R/W = 0
- zbadać ACK
- wygenerować sekwencję startu (powtórnego)
- odebrać bajt danej
- odbiornik nadrzędny nie ma wystawiać ACK
- wygenerować sekwencję stopu
ZADANIE DO WYKONANIA
Należy napisać program, który dokonuje zapisu oraz odczytu dowolnego ciągu znaków wprowadzanych poprzez łącze szeregowe RS232. W oknie terminala mają się wyświetlić dostępne opcje, sposób wpisywania i odczytu tekstów z pamięci EEPROM. Ciąg zapisanych znaków w pamięci powinien zaczynać się od adresu 0, a koniec oznaczony bajtem o wartości 0. WYKONANIE
{$STAMP BS2} SHIFTOUT SDA, SCL, MSBFIRST, {$PBASIC 2.5} [I2C_data]
SHIFTIF SDA, SCL, MSBPRE,
SDA CON 0 [ack\1]
SCL CON 1 RETURN
ack VAR Bit I2C_RCV:
I2C_DATA VAR Byte SHIFTIN SDA, SCL, MSBPRE,
i VAR Byte [I2C_data]
wybor VAR Nib SHIFTOUT SDA, SCL, MSBFIRST,
tekst VAR Byte [0\1]
adres VAR Byte RETURN
... zobacz całą notatkę



Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz