Marek Wnuk Interfejs SPI materiały pomocnicze 2002 1 Interfejs SPI SPI (Serial Peripheral Interface) jest przeznaczony do komunikacji pomiedzy mikrokontrolerami i urz adzeniami zewnetrznymi w małych systemach mikrokomputerowych. Przesyłanie danych odbywa sie przy pomocy szeregowej transmisji synchronicznej wykorzystuj acej trzy linie: SCK (Serial ClocK) - zegar synchronizuj acy transmisje, MOSI (Master Out / Slave In) - dane od jednostki nadrzednej do podporz adkowanej, MISO (Master In / Slave Out) - dane od jednostki podporz adkowanej do nadrzednej. Interfejs SPI jest stosowany przez firme Motorola od pocz atku lat 80-tych (pocz awszy od mikrokontrolerów MC6805), inne firmy stosuja dla niego własne nazwy (np. National Semiconductor - MICROWIRE). W nowych rodzinach mikrokontrolerów został rozwiniety do postaci kolejkowej (QSPI - Queued Serial Peripheral Interface), w której można wstepnie ustawić do 16 zadań i zainicjować ich wykonanie (również w trybie cyklicznego powtarzania), co uwalnia procesor od konieczności śledzenia przebiegu transmisji pojedynczych słów. Oprócz wymienionych sygnałów QSPI zawiera cztery linie o charakterze adresów, które w jednostce nadrzednej (Master) mog a być ustawiane niezależnie dla każdego zadania w kolejce. Pozwala to na cykliczn a obsługe kilku jednostek podporz adkowanych (do 15 w przypadku zastosowania dekoderów adresowych, lub do 4 w przypadku wybierania liniowego). Jednostka podporz adkowana jest wyposażona w wejście wybieraj ace (CS - Chip Select), zazwyczaj aktywne w stanie niskim, choć nie jest to regulowane standardem. Trójstanowe wyjście danych jednostki podporz adkowanej (MISO) jest wł aczane tylko przy atywnym stanie linii wyboru (CS), co pozwala na równoczesn a prace wielu układów na magistrali QSPI. Urz adzeniami zewnetrznymi przył aczanymi przez intrfejs SPI s a najcześciej przetworniki analogowo cyfrowe i cyfrowo analogowe, sterowniki wyświetlaczy alfanumerycznych, pamieci EEPROM, zegary czasu rzeczywistego, układy wejść i wyjść bitowych. W interfejs SPI s a również wyposażone liczne mikrokontrolery innych rodzin (np. NeuronCHIP firmy ECHELON), co pozwala na łatw a wymiane danych i sterowania w niezbyt rozległych konstrukcjach. 2 Laboratoryjne moduły QSPI Moduły laboratoryjne służ a zarówno do zapoznawania sie ze specyfik a sprzetu i oprogramowania pracuj acego z QSPI, jak i do badania przydatności poszczególnych elementów i technik w konkretnych zastosowaniach. Tablica 1: Zł acze interfejsu QSPI (J1) GND 10 9 MOSI MISO 8 7 SCK PCS3 6 5 PCS2 PCS1 4 3 PCS0 VCC 2 1 GND 1
Standaryzacje zapewnia zł acze J1 (tab. 1) zawieraj ace sygnały QSPI oraz zasilanie +5V, pozwalaj ace unikn ać dodatkowych żródeł zasilania dla układów zewnetrznych. W przyjetym rozwi azaniu jednostka nadrzedna dostarcza zasilania dla magistrali. Linie wyboru układów (PCS[3..0]) s a na poszczególnych modułach wybierane przy pomocy zwory J2 (rys. 1). PCS0 PCS2 1 2 3 4 5 6 PCS1 PCS3 SEL Rysunek 1: Zwora do wyboru adresu układu (J2) Przyjeto konwencje wybiernia liniowego, co pozwala na przył aczenie do magistrali czterech urz adzeń podporz adkowanych. 2.1 Przetwornik analogowo cyfrowy TLC541 TLC541 jest 8 bitowym przetwornikiem analogowo cyfrowym, wyposażonym w 12 kanałowy multiplekser wejściowy. Współpracuje z mikrokontrolerami różnych typów przez interfejs szeregowy SPI. Jest bezpośrednim zamiennikiem przetworników MC145040 (Motorola) i ADC0811 (National Semiconductor). TLC540 jest jego wersj a o zwiekszonej szybkości dzialania, natomiast 10 bitowe przetworniki TLC1540/TLC1541 s a z nim w pełni zgodne sprzetowo (wyprowadzenia i sygnały). Tablica 2: Zwora napiecia odniesienia (J4) Źródło odniesienia Poł aczenia wewnetrzne 1 2, 4 6 zewnetrzne 2: REF+, 4: GND, 6: REF- Moduł przetwornika analogowo cyfrowego (schemat QSPI-2) zawiera opisane wcześniej zł acze QSPI (J1) oraz zwore J2 do wyboru adresu na magistrali. Zalecane jest poł aczenie J2: 2 4, co odpowiada wybieraniu przetwornika stanem niskim linii PCS1. Przetwornik wymaga dostarczenia zewnetrznego sygnału zegarowego SYSCLK, który w opisywanym module jest generowany i formowany na dwóch bramkach Schmitta 74HCT132. Analogowe sygnały wejściowe przetwornika (wejścia AIN[9..0] multipleksera) wyprowadzono na zł acze J5 (tab. 3). Napiecie na wejściu AIN10 pochodzi z regulowanego dzielnika (P1) wł aczonego pomiedzy ujemny a dodatni biegun napiecia odniesienia, co ułatwia testowanie pracy przewornika i jego oprogramowania. Napiecie odniesienia dla przetwornika może pochodzić z zasilania układu lub być dostarczone z zewn atrz. Do jego wyboru służy zwora J4 (tab. 2). W drugim przypadku piny 2, 4 i 6 zwory J4 służ a jako zł acze zewnetrznego napiecia odniesienia. Dokładne dane techniczne przetwornika TLC541 znajduje sie w dodatku. Zamieszczono przykładowe oprogramowanie w jezyku C pozwalaj ace obsługiwać przetwornik przył aczony przez QSPI do mikrokontrolera MC68332, którego pakiet opisano dalej. 2
Tablica 3: Zł acze wejść analogowych (J5) REF 1 2 AIN0 REF 3 4 AIN1 REF 5 6 AIN2 REF 7 8 AIN3 REF 9 10 AIN4 REF 11 12 AIN5 REF 13 14 AIN6 REF 15 16 AIN7 REF 17 18 AIN8 REF 19 20 AIN9 3 Pakiet mikrokontrolera MC68332 Opisywany pakiet laboratoryjny (schemat M332-1) zawiera: mikrokontroler MC68332A, 256k statycznej pamieci RAM, 256k pamieci EPROM, asynchroniczny interfejs szeregowy RS232C (J14, DCE), zł acze interfejsu QSPI - Queued Serial Peripheral Interface (J8 tab. 6). interfejs wyświetlacza ciekłokrystalicznego LCD (J11 tab. 4), Przył aczenie zewnetrznego terminala (lub komputera wyposażonego w zł acze szeregowe) jest możliwe dzieki zł aczu J14 i dodatkowemu zł aczu DCE (zł acze J14 jest typu DTE Data Terminal Equipment). Tablica 4: Zł acze wyświetlacza LCD (J11) GND 1 2 VCC CV 3 4 RS R W 5 6 E D0 7 8 D1 D2 9 10 D3 D4 11 12 D5 D6 13 14 D7 Typowy wyświetlacz alfanumeryczny LCD wyposażony w sterownik HD44780A00 firmy Hitachi można przył aczyć do zł acza J11. Tablica 5: Zł acze sygnałów TPU (J7) GND 1 2 VCC T P0 3 4 T P1 T P2 5 6 T P3 T P4 7 8 T P5 T P6 9 10 T P7 T P8 11 12 T P9 TP10 13 14 T P11 TP12 15 16 T P13 TP14 17 18 T P15 T 2CLK 19 20 CST PU Zasoby mikrokontrolera s a dostepne na zł aczach J7 (sygnały TPU - Time Processor Unit tab. 5), J8 (magistrala QSPI - Queued Serial Peripheral Interface tab. 6) i J10 (wybrane sygnały steruj ace i wejścia przerwań tab. 7). 3
Tablica 6: Zł acze interfejsu QSPI (J8) GND 1 2 PCS0 GND 3 4 PCS3 VCC 5 6 PCS2 MOSI 7 8 PCS1 SCK 9 10 MISO Tablica 7: Zł acze sygnałów MC68332 (J10) GND 1 2 VCC GND 3 4 VCC GND 5 6 VCC GND 7 8 VCC GALOUT 1 9 10 GALIN1 CS3 11 12 CS4 CS5 13 14 DSACK0 DSACK1 15 16 AV EC RMC 17 18 DS AS 19 20 SIZ0 SIZ1 21 22 R W MODCLK 23 24 IRQ1 IRQ2 25 26 IRQ3 IRQ4 27 28 IRQ5 IRQ6 29 30 IRQ7 BERR 31 32 HALT RESET 33 34 CLKOUT Przy braku bateryjnego podtrzymywania zawartości pamieci RAM, nie jest stosowany układ U11 (MAX691). W jego podstawce umieszczono przycisk RESET i wykonano poł aczenia niezbedne do poprawnej pracy pakietu bez tego układu. Zł acze J9 jest przystosowane do kabla taśmowego 8 żyłowego. 10 żyłowe wersje interfejsów należy wł aczać tak, by styki 1 i 2 ich kabla taśmowego nie były wykorzystane. 4
4 Przykład: czujnik zbliżeniowy Przykładowy czujnik zbliżeniowy (rys. 4) składa sie z fototranzystora (SFH800) i podczerwonej diody LED (LD274). Analogowy sygnał wyjściowy z emitera fototranzystora, pracuj acego w układzie OC, jest doprowadzony na wejście AIN0 przetwornika TLC541 przez zł acze J5. Dioda LED może być wł aczana przez tranzystor BC338 sterowany sygnałem PCS3 (zł acze J2 modułu przetwornika). Odpowiednie zworki (J4.1 J4.2 i J4.5 J4.6) powoduj a podanie GND i VCC jako napieć odniesienia dla przetwornika i dostarczaj a napiecia zasilaj ace czujnik. AIN0 GND PCS3 REF- J5 2 1 J2 6 J4 6 red 1 2 3 4 5 5k1 11k SFH300 BC338 GND 5 6 k11 GND VCC 4 3 7 8 LD274 REF+ 2 9 VCC 1 10 Rysunek 2: Czujnik zbliżeniowy 5
6
ADC J1 J2 J5 J4 P1 TLC541 HCT132 Rysunek 3: Przetwornik analogowo cyfrowy TLC541 7
ADC J1 J2 74HCT132 J4 P1 TLC541 J5 Rysunek 4: Przetwornik analogowo cyfrowy TLC541 (montaż próbny) 8
J11 74HCT245 74HCT245 RAM E(U) RAM O(L) 691 EPROM E(U) EPROM O(L) J14 J9 J8 MC68332A J7 232 DCE J10 16L8 Rysunek 5: Pakiet mikrokontrolera MC68332 (WAN) 9
Rysunek 6: Pakiet uruchomieniowy (EVB 332) Rysunek 7: Moduł mikrokontrolera MC68332 (BCC) 10