Uniwersalny zestaw uruchomieniowy ZL4PIC
Transkrypt
Uniwersalny zestaw uruchomieniowy ZL4PIC
Uniwersalny zestaw uruchomieniowy ZL4PIC Uniwersalny zestaw uruchomieniowy ZL4PIC przeznaczony jest testowania aplikacji realizowanych na bazie mikrokontrolerów PIC. Jest on przystosowany do współpracy z mikrokontrolerami PIC12F/16F w obudowach DIP8, DIP14, DIP18, DIP28 i DIP40. Budowa zestawu uruchomieniowego Schemat blokowy uniwersalnego zestawu uruchomieniowego ZL4PIC przedstawia rys. 1. Układ składa się z następujących bloków: – blok mikrokontrolera – blok składający się z mikrokontrolera PIC 16FXX (może to być układ w obudowie 8, 14, 18, 28 lub 40-nóżkowej), kwarcowego generatora sygnałów zegarowych, układu wytwarzającego sygnał zerowania MCLR, złącza programatora oraz zestawu zwór pozwalającego na skonfigurowanie zestawu do pracy z zainstalowanym mikrokontrolerem; – blok przycisków – blok składający się z czterech przycisków S1, S2, S3 i S4 dołączonych bezpośrednio do wyprowadzeń mikrokontrolera odpowiednio: RB0, RB1, RB2 i RB3; – blok diod LED – blok składający się z czterech diod LED D3, D4, D5 i D6 dołączonych bezpośrednio do wyprowadzeń mikrokontrolera odpowiednio: RA0, RA1, RA2 i RA3; diody można odłączyć od mikrokontrolera za pomocą przełączników SD2; – blok wyświetlaczy siedmiosegmentowych – blok składający się z czterech wyświetlaczy LED ze wspólną katodą połączonych w sposób umożliwiający sterowanie multipleksowane; anody segmentów dołączone są portu PORTB, natomiast katody wyświetlaczy DS1, DS2, DS3 i DS4 są dołączone do wyprowadzeń mikrokontrolera odpowiednio: RA0, RA1, RA2 i RA3; katody można odłączyć od mikrokontrolera za pomocą przełączników SD1; – blok wyświetlacza alfanumerycznego – blok umożliwiający podłączenie alfanumerycznego wyświetlacza LCD sterowanego kontrolerem HD44780 firmy Hitachi; wyprowadzenia wyświetlacza dołączone są bezpośrednio do portu PORTB; – blok konwertera poziomów – blok umożliwiający połączenie mikrokontrolera z komputerem za pomocą interfejsu RS-232C lub, stosując konwerter RS-232/USB, za pomocą interfejsu USB; – odbiornik podczerwieni ze wzmacniaczem TFMS5360 pozwalający na odbiór sygnałów pilotów zdalnego sterowania standardu RC5 na częstotliwości nośnej 36 kHz; wyjście odbiornika można podłączyć do wyprowadzenia RB0 za pomocą zwory JP2; – złącze magistrali 1-wire do podłączenia układów poprzez magistralę 1-wire, np. termometru DS1820; sygnał danych można dołączyć do wyprowadzenia RA4 za pomocą zwory JP3; – sygnalizator akustyczny – przetwornik piezoelektryczny dołączany do wyprowadzenia RA2 za pomocą zwory JP4; – potencjometr pozwalający na podanie regulowanego napięcia do przetwornika analogowocyfrowego; regulowane napięcie dołączane jest do wyprowadzenia RA0 za pomocą zwory JP1; – blok zasilania – blok dostarczający napięcie niezbędne do poprawnej pracy zestawu. Rys. 1. Schemat blokowy uniwersalnego zestawu uruchomieniowego ZL4PIC Dołączanie układów peryferyjnych do mikrokontrolera odbywa się za pomocą zwór i przełączników. Wykaz wszystkich zwór konfiguracyjnych przedstawiono w tab. 1. Szczegółowe omówienie znaczenia poszczególnych elementów konfiguracyjnych znajduje się w dalszej części dokumentu. Tabela 1. Zestawienie wszystkich zwór konfiguracyjnych na płytce zestawu uruchomieniowego ZL4PIC Zwora Układ Wyprowadzenie Zwora Układ Wyprowadzenie JP1 potencjometr RA0 JP9 JP2 odbiornik podczerwieni RB0 JP10 JP3 interfejs 1-wire RA4 JP11 TxD do modułu USB – JP4 sygnalizator RA2 JP12 RxD do modułu USB – JP5 rezonator kwarcowy (DIP14) GPIO.5 JP13 RS-232C – TxD RB2/RC7 GPIO.4 JP14 RS-232C – RxD RB1/RC6 JP6 JP7 JP8 rezonator kwarcowy (DIP18, DIP28, DIP40) RA7 RA6 programator (DIP14) GPIO.0 GPIO.1 Blok mikrokontrolera Blok mikrokontrolera pozwala na podłączenie do zestawu uruchomieniowego dowolnego mikrokontrolera PIC z serii 12FXX oraz 16FXX. Na płytce umieszczono podstawki DIP14, DIP18, DIP28 i DIP40, które pozwalają na wykorzystanie jednego z poniższych układów: – układy w obudowie 8-nóżkowej: PIC12F508/509, PIC12F629/675/683, – układy w obudowie 14-nóżkowej: PIC16F505, PIC16F630/676, PIC16F684/688, – układy w obudowie 18-nóżkowej: 16F627/628/627A/628A/648A, 16F818/819, 16F716, 16F84A, 16F87/88, – układy w obudowie 28-nóżkowej: 16F72/73/76, 16F737/767, 16F870, 16F872/873/873A/876/876A, 16F913/916, – układy w obudowie 40-nóżkowej: 16F74/77, 16F747/777, 16F871, 16F874/874A/877/877A, 16F914/917. Generator sygnału zegarowego mikrokontrolera PIC może być synchronizowany za pomocą rezonatora kwarcowego 4MHz, który podłączany jest zworkami JP5 i JP6 (do podstawki DIP14) lub JP7 i JP8 (do pozostałych podstawek). Rezonator można również odłączyć, gdy wystarczy wbudowany generator RC lub gdy w układzie potrzebne są dodatkowe wejścia/wyjścia cyfrowe ogólnego przeznaczenia. Ustawienia zworek JP5, JP6, JP7 i JP8 dla poszczególnych konfiguracji przedstawiono w tab. 2. Dołączenie rezonatora kwarcowego do podstawki DIP14 wykonuje się poprzez ustawienie zworek JP5 i JP6 w pozycji 1-2, natomiast zworek JP7 i JP8 w pozycji 2-3. Aby dołączyć rezonator do podstawek DIP18, DIP28 i DIP40 należy zworki JP5 i JP6 ustawić w pozycji 2-3, natomiast zworki JP7 i JP8 w pozycji 1-2. Tabela 2. Ustawienie zworek JP5, JP6, JP7 i JP8 dla różnych konfiguracji połączenia rezonatora kwarcowego JP5 JP6 JP7 JP8 1-2 1-2 2-3 2-3 rezonator dołączony do podstawki DIP14 2-3 2-3 1-2 1-2 rezonator dołączony do podstawek DIP18, DIP28 i DIP40 2-3 2-3 2-3 2-3 rezonator odłączony, korzystanie z wewnętrznego generatora RC pozostałe konfiguracje Efekt zabronione Programowanie układu odbywa się poprzez złącze PROG, którego styki zostały dołączone do odpowiednich wyprowadzeń mikrokontrolera. Można wykorzystać zarówno dedykowany programator (ZL12PRG lub ZL15PRG), jak również inny programator, jeżeli układ jego wyprowadzeń jest zgodny z układem wyprowadzeń na złączu PROG. Dane programujące mikrokontroler podawane są na wyprowadzenia RB6 i RB7 mikrokontrolera dla układów w obudowach 18, 28 i 40 nóżkowych, natomiast w przypadku mikrokontrolerów w obudowach 8 i 14 nóżkowych należy podać je na wyprowadzenia GPIO.0 i GPIO.1, które są równoważne wyprowadzeniom RA0 i RA1 większych mikrokontrolerów. W związku z tym istnieje możliwość dołączenia sygnałów programujących do odpowiednich końcówek w zależności od zastosowanego mikrokontrolera za pomocą zwór JP9 i JP10. Ustawienie zwór JP9 i JP10 dla różnych układów przedstawiono w tab. 3. Tabela 3. Ustawienie zworek JP9 i JP10 dla różnych układów JP9 JP10 1-2 1-2 układy w obudowach 8 i 14 nóżkowych 2-3 2-3 układy w obudowach 18, 28 i 40 nóżkowych pozostałe konfiguracje Programowane układy zabronione Blok wyświetlacza alfanumerycznego Na płytce zestawu uruchomieniowego znajduje się złącze CON4, do którego można podłączyć moduł alfanumerycznego wyświetlacza LCD sterowanego kontrolerem HD44780 firmy Hitachi lub kompatybilnym. Do złącza doprowadzone zostały niezbędne sygnały (jest to minimalny zestaw sygnałów pozwalający na prawidłowe wysterowanie wyświetlacza): – zasilanie VCC i GND; – napięcie regulacji kontrastu wyświetlacza poprzez potencjometr R25; – 4-bitowa magistrala danych (D4-D7); – 2-bitowa magistrala sterująca (RS, E). Sygnały magistrali danych D4-D7 zostały podłączone do wyprowadzeń PB4-PB7 mikrokontrolera, natomiast sygnały sterujące RS i E zostały podłączone do wyprowadzeń odpowiednio PB2 i PB3. Wyprowadzenie R/!W jest podłączone na stałe do masy (wymuszony poziom logiczny 0), przez co dane można wyłącznie wysyłać do wyświetlacza. Zastosowanie ograniczonego zestawu sygnałów jest szczególnie ważne, gdy potrzebna jest duża ilość sygnałów cyfrowych do sterowania innych układów. Wadą takiego rozwiązania jest brak możliwości odczytywania danych z wyświetlacza. Nie można w związku z tym sprawdzić, czy wyświetlacz jest gotowy na przyjęcie kolejnych danych. Aby uniknąć problemów należy przy wysyłaniu danych do wyświetlacza stosować opóźnienia, których długość można znaleźć w dokumentacji technicznej kontrolera HD44780. Dotyczy to zwłaszcza instrukcji sterujących, których czas wykonania może znacznie się różnić. Połączenia pomiędzy mikrokontrolerem a złączem wyświetlacza alfanumerycznego są wykonane na stałe i nie ma możliwości odłączenia ich za pomocą przełączników. W związku z tym w przypadku, gdy nie jest konieczne stosowanie wyświetlacza należy wyjąć go z gniazda, żeby nie zakłócał działania pozostałych bloków na płytce zestawu uruchomieniowego. Blok wyświetlaczy siedmiosegmentowych Na płytce zestawu uruchomieniowego znajdują się cztery wyświetlacze siedmiosegmentowe LED ze wspólną katodą (DS1-DS4), połączone w sposób umożliwiający realizację wyświetlania multipleksowanego. Wyświetlanie multipleksowane (inaczej zwane sekwencyjnym) polega na wyświetlaniu w jednej chwili segmentów tylko jednego wyświetlacza, przy pozostawieniu pozostałych wyświetlaczy wygaszonych. Ponieważ oko ludzkie wykazuje bezwładność (tzn. nie potrafi odróżnić szybko zmieniających się obrazów, które „zlewają się” w jeden obraz), szybkie wyświetlanie pojedynczych cyfr na oddzielnych wyświetlaczach powoduje wrażenie wyświetlania wszystkich cyfr jednocześnie. Zaletą takiego sposobu wyświetlania jest znaczące zmniejszenie ilości koniecznych sygnałów sterujących. Każdy wyświetlacz wymaga 8 sygnałów: 7 dla poszczególnych segmentów i jednego dla kropki dziesiętnej. Cztery wyświetlacze potrzebują więc 32 sygnałów sterujących. W przypadku wyświetlania multipleksowanego potrzebnych jest tylko 12 sygnałów sterujących: 8 dla segmentów i kropki oraz 4 dla wyboru wyświetlanej cyfry. Proces wyświetlania multipleksowanego wymaga ciągłego nadzorowania przez mikrokontroler (wybór wyświetlanej cyfry, opóźnienia, proces musi być nieprzerwany), co utrudnia programowanie. Sygnały sterujące segmentami wyświetlaczy dołączone są do portu PORTB, w kolejności: PB0 – „a”, PB1 – „b”, PB2 – „c”, PB3 – „d”, PB4 – „e”, PB5 – „f”, PB6 – „g”, PB7 – kropka dziesiętna. Podanie logicznej jedynki na wyprowadzenie powoduje aktywację wyświetlania danego segmentu. Sygnały włączające poszczególne wyświetlacze dołączone są do wyprowadzeń portu PORTA, w kolejności: DS1 – RA0, DS2 – RA1, DS3 – RA2, DS4 – RA3. Włączenie danego wyświetlacza następuje po podaniu logicznej jedynki na wyprowadzenie mikrokontrolera. Sygnały te można odłączyć od mikrokontrolera za pomocą zestawu włączników SD1. Blok konwertera poziomów Zadaniem bloku konwertera poziomów jest przekształcenie poziomów napięć wytwarzanych przez mikrokontroler (poziomy TTL, a więc 0V dla logicznego zera oraz 5V dla logicznej jedynki) do poziomów wymaganych przez interfejs RS-232C (10V dla logicznego zera oraz –10V dla logicznej jedynki), jak również przekształcenie poziomów napięć interfejsu RS-232C do poziomów napięć akceptowanych przez mikrokontroler. Zmiana poziomów napięć wykonywana jest przez układ scalony MAX232. Sygnały o poziomach RS-232C zostały doprowadzone do gniazda CON1, natomiast sygnały o poziomach TTL do wyprowadzeń mikrokontrolera za pomocą zwór JP13 (sygnał TxD) i JP14 (sygnał RxD). Istnieje możliwość wybrania wyprowadzeń RB1 i RB2 (układy w obudowach DIP18 np. 16F62X) lub RC6 i RC7 (układy w obudowach DIP28 i DIP40 np. 16F87X). Istnieje również możliwość połączenia mikrokontrolera z komputerem za pomocą interfejsu USB poprzez moduł konwertera RS-232C/USB dołączany do złącza CON2. Do poprawnej pracy układu konieczne jest przekierowanie sygnałów TxD i RxD do modułu za pomocą zwór JP11 i JP12. Blok przycisków i blok diod LED Na płytce zestawu znajdują się cztery przyciski S1, S2, S3 i S4 oraz cztery diody LED D3, D4, D5 i D6. Przyciski są dołączone bezpośrednio do wyprowadzeń mikrokontrolera RB0-RB3. Wciśnięcie przycisku powoduje zwarcie odpowiedniego wejścia do masy, co jest sygnalizowane pojawieniem się logicznego zera na wejściu. Do poprawnej pracy wymagane jest skonfigurowanie wejścia z rezystorem podciągającym poprzez wyzerowanie 7 bitu w rejestrze OPTION_REG (bit ! RBPU). W przeciwnym przypadku na wejściu mikrokontrolera mogą pojawiać się zakłócenia, które będą błędnie interpretowane jako naciśnięcie przycisku. Diody LED D3-D6 podłączone są wyprowadzeń RA0-RA3 przez zestaw przełączników SD2, dzięki którym można je odłączyć i wykorzystać wyprowadzenia do innych celów. Pozostałe elementy zestawu Na płytce uniwersalnego zestawu uruchomieniowego znajdują się układy peryferyjne najczęściej wykorzystywane w praktycznych aplikacjach. Odbiornik podczerwieni ze wzmacniaczem TFMS5360 pozwala na odbiór sygnałów pilotów zdalnego sterowania, nadawanych na częstotliwości nośnej 36kHz. Zdemodulowany sygnał z wyjścia układu można dołączyć do wejścia RB0 mikrokontrolera, poprzez ustawienie zwory JP2 (gdy zwora jest ustawiona w pozycji „1-2”). 1-wire jest to interfejs opracowany przez firmę Dallas Semiconductor do komunikacji z urządzeniami zewnętrznymi, wymagający tylko jednej linii danych, która stanowi również zasilanie układu. Przepustowość tego interfejsu jest niewielka, rzędu dziesiątek kbps, wystarczająca do podłączenia takich układów, jak: termometry cyfrowe, przetworniki pomiarowe, identyfikatory iButton itp. Do podłączenia urządzeń wykorzystujących interfejs 1-wire przewidziane zostało złącze CON3. Urządzenie może być podłączone zarówno w konfiguracji z dodatkowym zasilaniem (wymagane są wtedy 3 przewody) lub bez niego (wystarczą 2 przewody). Sygnał danych doprowadzany jest do wejścia RA4 mikrokontrolera, poprzez ustawienie zwory JP3 w pozycji „12”. Ustawienie zwory w pozycji „2-3” odłącza urządzenie 1-wire od wyprowadzenia RA4. Do testowania układu przetwornika analogowo-cyfrowego znajdującego się wewnątrz mikrokontrolera można wykorzystać znajdujący się na płytce potencjometr. Pozwala on na uzyskanie regulowanego napięcia w zakresie od 0 do 5V. Suwak potencjometru można dołączyć do wejścia RA0 mikrokontrolera ustawiając zworę JP1 w pozycji „1-2”. Sygnalizowanie pracy układu może być realizowane za pomocą piezoelektrycznego sygnalizatora akustycznego. Sygnalizator nie posiada wewnętrznego generatora, w związku z tym cały proces generowania dźwięku realizowany jest programowo. Sygnalizator dołącza się do wyprowadzenia RA2 ustawiając zworę JP4 w pozycji „1-2”.