Warstwa fizyczna interfejsu jest zbudowana z czterech linii: SCKO, SSELO, MISOO i MOSIO. Przebieg zegarowy na linii SCKO jest używany do synchronizacji przesyłania danych. Źródłem sygnału SCK jest zawsze układ master, natomiast slave jest zawsze odbiornikiem SCK. Linie danych MISOO, MOSIO są jednokierunkowe. Linią MOSIO są przesyłane dane z układu master do układu slave. Linia MISOO jest przeznaczona do przesyłania danych z układu slave do układu master. Linia SSELO służy do detekcji aktywnego układu slave. Jeżeli do układu master trzeba dołączyć kilka układów slave, to musi on sterować dodatkową liczbą linii SSEL w zależności od tego ile jest układów slave. W trakcie transmisji może być aktywna tylko jedna linia SSEL. Linia P0.7 w LPC2148 zaprogramowana jako SSLO w trybie slave, musi przejść w stan niski przed rozpoczęciem transferu danych i pozostawać w tym stanie do jego zakończenia. Jeżeli w trakcie transmisji danych SSELO przejdzie w stan wysoki, to układ slave przechodzi w stan idle i transmisja zostaje przerwana. Gdy moduł SPI mikrokontrolera jest ustawiony w tryb master, to jego linia SSEL (P0.7) może być zaprogramowana jako wyjściowa (w trybie GPIO) do sterowania SSEL układu slave.
Tryb master
Programowanie tego trybu należy zacząć od zaprogramowania licznika SPI Counter Register poprzez określenie prędkości transmisji. W tym rejestrze musi być ustawiony bit MSTR oraz podany format transmisji: długość słowa danych (bity BitEnable oraz BITS), kolejność wysyłania bitów (bit LBSF) oraz zależność pomiędzy danymi i fazą sygnału zegarowego (bity CPHA, CPOL). Zapisanie danych do rejestru SPI Data Register rozpoczyna transmisję. Po zakończeniu przesyłania danych jest ustawiany bit SPIF w rejestrze SPI Status Register. Można również odczytać dane odebrane z SPI Data Register w sytuacji, gdy są do odczytania. Bit SPIF jest zerowany po odczytaniu SPI Status Register i wpisaniu nowej danej do SPI Data Register.
Tryb slave
Praca w tym trybie jest możliwa po wyzerowaniu bitu MSTR w rejestrze SPI Control Register. Podobnie jak w trybie master trzeba ustawić format przesyłanych danych oraz zależność pomiędzy danymi i fazą sygnału zegarowego. Dane przeznaczone do układu master są wpisywane do SPI Data Register. Wpisywanie jest możliwe przy wyzerowanym bicie SPIF. Natomiast dane są gotowe do odczytania gdy bit SPIF zostanie ustawiony.
2.3. Wyświetlacz graficzny ze sterownikiem PCD8544
Wykorzystywany w ćwiczeniu wyświetlacz graficzny (rysunek 1) jest wyposażony w sterownik PCD8544 i jest stosowany między innymi w telefonach komórkowych Nokia 5110/3310.
Rys. 4. Wykorzystywana płytka z wyświetlaczem graficznym - widok z przodu oraz z tyłu (źródło: dokumentacja modułu modLCDl, www.kamami.pl)
20