2/2003 luty 15 zł 50 gr (w tym 7% VAT)

Wielkość: px
Rozpocząć pokaz od strony:

Download "2/2003 luty 15 zł 50 gr (w tym 7% VAT)"

Transkrypt

1 ELEKTRONIKA PRAKTYCZNA Miêdzynarodowy magazyn elektroników konstruktorów NA CD: KATALOG FIRMY ATMEL, PROGRAMY DO PROJEKTOWANIA PCB (M.IN. PROTEL DXP Z SP2) 2/2003 luty 15 zł 50 gr (w tym 7% VAT) 2/2003 luty

2 A U T O M A T Y K A Konkurs dla automatyków tyków Elmark Automatyka Sp. z o.o. - autoryzowany przedstawiciel firmy Unitronics na PolskÍ - oraz Elektronika Praktyczna og³aszaj¹ konkurs, w ktûrym g³ûwnymi nagrodami s¹ trzy sterowniki serii M90. Naleøy wymyúliê aplikacjí dla sterownika rodziny M90 i napisaê program realizuj¹cy przedstawione poniøej za³oøenia. Przygotowany opis aplikacji naleøy przes³aê do firmy Elmark Automatyka do dnia 10/03/2003. RozstrzygniÍcie konkursu nast¹pi w dniu 20/03/2003, a o wynikach laureaci zostan¹ powiadomieni telefonicznie. Rozdanie nagrûd odbídzie sií na targach Automaticon 2003 na stoisku firmy Elmark Automatyka. Pomoc do konkursu 2: pos³ugiwanie sií programem narzídziowym wspomagaj¹cym tworzenie programûw dzia³ania sterownika Przygotowywanie przyk³adowego programu w jízyku drabinkowym zaczynamy od elementûw porûwnuj¹cych i cewki ustawiaj¹cej SET. Wybieramy z zak³adki ìfunkcje porûwnaòî blok porûwnaò A=B i umieszczamy go w polu programu drabinkowego. Pojawi sií okienko argumentu operandu i adresu zmiennej. Wybieramy SI2, co odpowiada aktualnemu wyúwietlaczowi ekranu HMI. NastÍpnie - po zatwierdzeniu - pojawi sií okienko zmiennej B. Wybieramy # (oznaczaj¹ce wartoúê sta³¹), wpisujemy liczbí 3 i zatwierdzamy. Tak samo postípujemy z drugim bloczkiem, z tym, øe jako wartoúê A wybieramy MI4, co odpowiada np. nazwie z listy, jak¹ moøemy stworzyê wpisuj¹c odpowiednie komunikaty Program narzędziowy jest dostępny na stronie: literatura.htm, firma Elmark wysyła go także drogą tradycyjną po zgłoszeniu na e mail sterowniki@elmark.com.pl z dopiskiem Konkurs. w polu tekstowym, a jako wartoúê sta³¹ liczbí 10. Teraz umieszczamy w programie cewkí wyjúciow¹ ustawiaj¹c¹ SET, wybierzemy MB 10 i moøemy wpisaê opis. Mamy w tej chwili gotowy jeden szczebel programu, ktûry moøna zinterpretowaê nastípuj¹co: jeøeli aktualnie wyúwietlanym komunikatem jest komunikat trzeci (czyli SI2 ma wartoúê 3) oraz wartoúê zmiennej MI4 wynosi 10, to bit MB10 bídzie ustawiony na jeden. Cewka ustawiaj¹ca SET ma za zadanie pozostawienie bitu MB10 nawet po zmianie komunikatu na inny (rys. 1). Aby zmieniê wartoúê bitu MB10 na zero, naleøy wykorzystaê cewkí zeruj¹c¹ typu RESET. Oczywiúcie moøna kopiowaê poszczegûlne szczeble programu, co istotnie skraca czas pisania programu. W tym celu klikamy lewym klawiszem myszki i przeci¹gamy w ramki czíúê szczebla, ktûr¹ chcemy skopiowaê, a nastípnie wciskamy wklej i wskazujemy kursorem myszki miejsce, w ktûre ma byê wklejona czíúê skopiowana programu. NastÍpna czíúê programu (rys. 2) bídzie zawiera³a styk normalnie ot- Rys. 1 Rys. 2 Rys

3 A U T O M A T Y K A warty, ktûry po przyjíciu wartoúci rûwnej jeden ustawia cewkí wyjúciow¹ MB20 (np. maszyna moøe byê w³¹czona). Jeøeli wyúwietlanym komunikatem jest komunikat trzeci i bit MB20 ma wartoúê jeden, wûwczas bit MB7 musi przyj¹ê wartoúê jeden i nastípuje skok do komunikatu numer 3. W tym celu bídzie nam potrzebny blok porûwnuj¹cy, styk normalnie otwarty, styk wykrywaj¹cy zbocze narastaj¹ce (Positive Rise), blok zegara i cewka wyjúciowa. Interpretacja drugiej czíúci programu jest nastípuj¹ca: jeøeli aktualnym komunikatem jest komunikat trzeci (SI2 ma wartoúê 3) oraz maszyna moøe zostaê uruchomiona (MB20 ma wartoúê jeden), wûwczas w³¹czany jest zegar 7, ktûry zacznie odliczaê czas 4 sekund. Jeøeli zegar 7 odliczy zadany czas, wûwczas bit MB7 zostanie ustawiony na jedynkí. Teraz musimy zaimplementowaê warunek sprawdzaj¹cy, kiedy jest wyúwietlany komunikat drugi i bit MB20 nie jest jedynk¹. WÛwczas bit MB8 musi przyj¹ê wartoúê jeden i nast¹pi skok do komunikatu pierwszego (rys. 3). Do tego celu bídzie nam potrzebny blok porûwnaò, styk normalnie zwarty, zegar, styk wykrywaj¹cy narastaj¹ce zbocze oraz cewka wyjúciowa. TÍ czíúê programu moøemy zinterpretowaê nastípuj¹co: jeøeli aktualnie wyúwietlanym komunikatem jest komunikat trzeci (SI2 ma wartoúê 3) i bit MB20 ma wartoúê 0, wûwczas zostanie w³¹czony zegar 8. Kiedy zegar odliczy zadany czas, ustawia bit MB8 na jeden. Jeøeli nie by³oby opûünieò, to wtedy operator mûg³by nie zd¹øyê zobaczyê komunikatu (ktûry pojawia³by sií w zaleønoúci od tego czy warunek zosta³ spe³niony, czy nie), ktûry pojawia sií po wpisaniu prawid³owego numeru identyfikacyjnego. W tych dwûch krûtkich przyk³adach zosta³y przedstawione podstawowe moøliwoúci, jakie posiadaj¹ sterowniki serii M90/91. Nie zosta³y opisane moøliwoúci komunikacji GSM, ³¹czenia w sieê poprzez port CANbus czy moøliwoúci wizualizacji poprzez OPC Server z systemami nadrzídnymi typu SCADA oraz aplikacjami systemu operacyjnego Windows (np. Excel). Dodatkowe informacje Wiêcej informacji dotycz¹cych konkursu na stronie: konkurs.htm, a tak e w firmie Elmark Automatyka Sp. z o.o., tel. (22) , com.pl/unitronics/, sterowniki@elmark.com.pl. Regulamin konkursu: 1. Korzystaj¹c z dokumentacji i programu narzêdziowego (mo na œci¹gn¹æ z Internetu), nale y przygotowaæ projekt aplikacji, do której mo na wykorzystaæ sterownik rodziny M90 z programem realizuj¹cym przyjête za³o enia. 2. Projekt powinien zawieraæ: - opis aplikacji (charakterystyka obiektu, typ zastosowanego sterownika i schemat po³¹czeñ sprzêtowych), - program zapewniaj¹cy sterowanie obiektem oraz interfejs operatora. 3. Termin nap³ywania zg³oszeñ 10/03/ Rozstrzygniêcie konkursu nast¹pi w dniu 20/03/2003. Nazwiska laureatów zostan¹ umieszczone na stronie a oni powiadomieni telefonicznie. 5. Rozdanie nagród 1/04/2003 na targach Automaticon o godz na stoisku Elmark Automatyka. 6. Nagroda: trzy pierwsze miejsca s¹ nagradzane sterownikiem serii M Informacje o oprogramowaniu mo na znaleÿæ na stronie WWW ( elmark.com.pl/unitronics/literatura.htm) lub wyœlemy poczt¹ (nale y przys³aæ adres na sterowniki@elmark.com.pl). 8. Projekty nale y kierowaæ do Elmark Automatyka Sp. z o.o. ul. Radna 12/5, Warszawa z dopiskiem Konkurs lub em: sterowniki@elmark.com.pl. 9. Elmark Automatyka Sp. z o.o. zastrzega sobie prawo do wykorzystania nades³anych prac w materia³ach techniczno-handlowych. 137

4 A U T O M A T Y K A Wskaźniki pomiarowe firmy Omron Ostatnio wprowadzon¹ do sprzedaøy nowoúci¹ Omrona jest rodzina wskaünikûw panelowych K3MA, w ramach ktûrej s¹ dostípne trzy modu³y: - K3MA-J - nazywany w nomenklaturze producenta wskaünikiem procesowym, spe³nia rolí uniwersalnego monitora wszystkich standardowych sygna³ûw analogowych (pítle pr¹dowe 0-20 i 4-20 ma, wejúcie napiíciowe 0-5/1-5/±5 V i ±10 V) wystípuj¹cych w systemach automatyki. - K3MA-L - wyspecjalizowany modu³ wskaünika temperatury, na wejúciu ktûrego zastosowano uniwersalny modu³ dopasowuj¹cy zakres i charakterystykí przetwarzania do do³¹czanych czuj- nikûw (termopary K, J, T, E, L, U, N, R, S, B oraz czujniki rezystancyjne Pt100/Pt1000). - K3MA-F - modu³ przeznaczony do pomiaru czístotliwoúci i okresu impulsûw podawanych na wejúcie. Obwody wejúciowe tego modu³u s¹ przystosowane do wspû³pracy z czujnikami wyposaøonymi w wyjúcia napiíciowe, stykowe, a takøe tranzystorowe: NPN i PNP. Wszystkie prezentowane modu- ³y wyposaøono w wyúwietlacz LCD (4- lub 5-cyfrowy, wyúwietlane znaki maj¹ wysokoúê 14,2 mm), ktûrego kolor podúwietlenia moøe sií zmieniaê, w zaleønoúci od wyúwietlanej wartoúci. Progi prze³¹czania moøna oczywiúcie zaprogramowaê. OprÛcz symboli cyfr s³uø¹cych do wyúwietlania wartoúci úledzonego parametru, na wyúwietlaczach znajduje sií dodatkowa (mniejsza cyfra) wskazuj¹ca poziom zag³íbienia w menu konfiguracyjnym oraz kilka dodatkowych wskaünikûw, m.in. dla wartoúci maksymalnej, minimalnej i sygnalizacji przekroczenia ustalonych progûw komparacji). NadzÛr nad przebiegiem rûønego rodzaju procesûw wymaga zastosowania odpowiednich czujnikûw i urz¹dzeò prezentuj¹cych wyniki pomiarûw. W ofercie firmy Omron pojawi³a sií nowa rodzina wskaünikûw panelowych, ktûre oprûcz nowoczesnej budowy charakteryzuje znaczna elastycznoúê, uzyskana oczywiúcie dziíki ca³kowitemu ich zelektronizowaniu. Na p³ycie czo³owej (o wymiarach 48 x 96 mm), oprûcz wyúwietlacza, znajduje sií takøe 5- przyciskowa klawiatura, za pomoc¹ ktûrej uøytkownik moøe ustawiê konfigurowalne parametry pracy modu³ûw. Jakkolwiek z ze- 133

5 A U T O M A T Y K A wn¹trz s¹ one niemaløe identyczne, to sposûb konfiguracji kaødego z nich przebiega nieco inaczej, ze wzglídu na szereg specyficznych parametrûw wynikaj¹cych z charakteru docelowych aplikacji kaødego z modu³ûw. Kolejn¹ wspûln¹, niezwykle cenn¹, cech¹ paneli czo³owych Tab. 1. Odporność obudów urządzeń na ingerencje z zewnątrz oznaczana za pomocą kodów IP Znaczenie cyfry x w kodzie IP xy, która określa współczynnik zabezpieczenia przed możliwością penetracji wnętrza obudowy przez elementy stałe Cyfra Opis 0 Nie zabezpieczona 1 Zabezpieczenie przed elementami o średnicy 50 mm (np. ręka) 2 Zabezpieczenie przed elementami o średnicy 12,5 mm (np. palec) 3 Zabezpieczenie przed elementami o średnicy 2,5 mm (np. wkrętak) 4 Zabezpieczenie przed elementami o średnicy 1,0 mm (np. przewód) 5 Zabezpieczenie przed kurzem zewnętrznym, który może zmniejszać bezpieczeństwo pracy urządzenia 6 Zabezpieczenie przed kurzem przenikającym do wnętrza obudowy, który może zmniejszać bezpieczeństwo pracy urządzenia Znaczenie cyfry y w kodzie IP xy, która określa współczynnik zabezpieczenia przed możliwością penetracji wnętrza obudowy przez wodę i inne ciecze Cyfra Opis 0 Nie zabezpieczona 1 Spadające pionowo krople nie wywołują zaburzeń w pracy urządzenia 2 Krople, które spadają pionowo nie zaburzają pracy urządzenia odchylonego od położenia roboczego o ±15 o 3 Ciecz napylona pod dowolnym kątem (mniejszym niż 60 o w stosunku do pionu) na obudowę nie wywołuje zaburzeń w pracy urządzenia 4 Ciecz nachlapywana na obudowę z dowolnej strony nie wywołuje zaburzeń w pracy urządzenia 5 Ciecz natryskiwana na obudowę z dowolnej strony nie wywołuje zaburzeń w pracy urządzenia 6 Ciecz nachlapywana pod znacznym ciśnieniem na obudowę z dowolnej strony nie wywołuje zaburzeń w pracy urządzenia 7 Krótkotrwałe zanurzenie urządzenia w cieczy (czas i ciśnienie jest zestandardyzowane) nie powoduje zaburzeń w jego pracy 8 Krótkotrwałe zanurzenie urządzenia w cieczy (czas zanurzenia i ciśnienie podlega negocjacji pomiędzy producentem i odbiorcą, ale warunki muszą być znacznie trudniejsze niż w punkcie 7) nie powoduje zaburzeń w jego pracy wszystkich prezentowanych modu³ûw jest ich wysoka odpornoúê na zalanie i ingerencjí mechaniczn¹ z zewn¹trz - spe³niaj¹ one bowiem zalecenia normy IP66 (tab. 1). Pozosta³a czíúê obudowy (przy standardowym montaøu ulokowana za panelem montaøowym) ma klasí odpornoúci IP20. Modu³y K3MA-J i K3MA-F wyposaøono w dwa przekaüniki ze stykami SPST (NO - Normal Open), za pomoc¹ ktûrych moøna sterowaê urz¹dzenia zewnítrzne. Progi za³¹czenia i wy³¹czenia stykûw przekaünikûw s¹ programowane, tak wiíc wskaüniki mog¹ spe³niaê rolí prostych regulatorûw. Jest to o tyle ³atwe, øe styki przekaünikûw moøna obci¹øaê pr¹dem 5A przy napiíciu zasilania 250 VAC lub 30 VDC. Modu³ K3MA-L wyposaøono w jeden przekaünik o takich samych jak podano parametrach elektrycznych. DziÍki zastosowaniu w modu- ³ach mikrokontrolerûw, moøliwoúci obrûbki wyúwietlanych wynikûw s¹ bardzo duøe, m.in.: moøliwe jest programowe uúrednianie wynikûw, skalowanie wyúwietlanych wynikûw, a takøe ustalanie histerezy analogowych interfejsûw wejúciowych. Modu³y maj¹ wbudowane zasilacze przystosowane do wspû³pracy ze ürûd³ami o napiíciach VAC lub 24 VAC. WewnÍtrzny stabilizator napiícia zasilaj¹cego w module K3MA-F zaprojektowano w taki sposûb, aby mûg³ on zasiliê do³¹czany z zewn¹trz czujnik czístotliwoúci. Maksymalna obci¹øalnoúê pr¹dowa tego wyjúcia wynosi 40 ma. Jak ³atwo oceniê (pomocne bídzie zbiorcze zestawienie cech uøytkowych modu³ûw przedstawione w tab. 2), s¹ one atrakcyjn¹ alternatyw¹ dla samodzielnie budowanych paneli nadzorczych zw³aszcza, øe sugerowana cena sprzedaøy modu³ûw serii K3MA jest atrakcyjna. Andrzej Gawryluk, AVT Dodatkowe informacje Artyku³ powsta³ na podstawie materia³ów udostêpnionych przez firmê Omron, tel. (22) , Tab. 2. Zestawienie podstawowych funkcji i parametrów modułów z serii K3MA x Parametr K3MA J K3MA L K3MA F Funkcja Wskaźnik procesowy Wskaźnik temperatury Wskaźnik częstotliwości/ okresu Rodzaj wejścia 0 20/4 20 ma Pt100, Pt100, Styk beznapięciowy lub 0 5/1 5/±5/10 V termopary: K, J, T, do 30 Hz, NPN/PNP E, L, U, N, R, S, B lub napięcie do 5 khz Zakres wskazań Okres 250 ms 500 ms próbkowania Dokładność ±0,1% skali ±0,5% wartości wskazania ±0,1% skali pomiaru ±1 cyfra ( o C) lub ±1 cyfra ±1 cyfra ( o C) Wyjścia 2 x przekaźnik przekaźnik SPDT 2 x przekaźnik SPST NO 5A/250VAC/30VDC SPST NO 5A/250VAC/30VDC 5A/250VAC/30VDC Zasilanie VAC/24 VAC/VDC (50/60 Hz) Wymiary 48 (W) x 96 (S) x 80 (G) mm Funkcje Programowany kolor Programowany kolor Programowany kolor dodatkowe wyświetlacza, uśrednianie wyświetlacza, uśrednianie wyświetlacza, uśrednianie wyników, przełączanie wyników, przełączanie wyników, przełączanie wyjść porównujących, wyjść porównujących, wyjść porównujących, programowana histereza, programowana histereza, programowana histereza, skalowanie wyniku, przesunięcie charakterystyki automatyczne zerowanie, wymuszanie wskazania temperaturowej czujnika. kompensacja załączania. zerowego poniżej określonej wartości, zerowanie wskazań 134

6 B I B L I O T E K A E P W Bibliotece EP prezentujemy książki dotyczące zagadnień związanych z różnymi dziedzinami techniki, jednak zawsze przydatne w pracy elektronika lub pomocne w uprawianiu elektronicznego hobby. Nasza opinia jest oczywiście subiektywna, ale wynika z wieloletniego doświadczenia zawodowego i chyba jest zgodna z oczekiwaniami tych, którzy chcą z książek korzystać, a nie przyozdabiać nimi półki. Aby nie marnować miejsca w EP, nie będziemy publikować recenzji książek ocenianych na jedną lub dwie lutownice. Przyjęliśmy szeroką skalę ocen, aby ułatwić Czytelnikom orientację w potencjalnej przydatności książki. Uwaga! Większość prezentowanych książek można zamówić w Dziale Handlowym AVT (patrz str. 131). Chcemy w ten sposób udostępnić je Czytelnikom EP. James M. Sibigtroth: Zrozumieć małe mikrokontrolery, BTC 2003 Polska edycja popularnej na úwiecie, g³ûwnie wúrûd fanûw mikrokontrolerûw firmy Motorola, ksi¹øki ìunderstanding small microcontrollersî. W odrûønieniu od pierwowzoru, polsk¹ edycjí ìopakowanoî w tward¹ ok³adkí, co zdecydowanie przed³uøa øywotnoúê ksi¹øki. W swoim czasie by³a to jedna z pierwszych publikacji wprowadzaj¹ca czytelnikûw mniej wprawnych w technice cyfrowej w magiczny úwiat mikrokontrolerûw, a nie bídzie chyba przesad¹ stwierdzenie, øe jest to pierwsza ksi¹øka tego typu na naszym rynku wydawniczym. ìtego typuî oznacza, øe jest to ksi¹øka przede wszystkim dla pocz¹tkuj¹cych elektronikûw, ktûrzy nie wiedz¹ jak dzia³a mikrokontroler i jak sií go programuje, dla tych, ktûrzy nie wiedz¹ co to jest przerwanie, jak dzia- ³a timer i jak konfiguruje sií porty wejúcia-wyjúcia. Jest to ksi¹øka takøe dla tych, ktûrzy nie znaj¹ najczíúciej stosowanych w systemach cyfrowych systemûw kodowania liczb, nie wiedz¹ czym w rzeczywistoúci rûøni sií ì0î od ì1î, a takøe co to jest i do czego s³uøy mnemonik, czym sií rûøni kod maszynowy od programu... Moøna by tak wymieniaê w nieskoòczonoúê, ale taka w³aúnie jest ta ksi¹øka: autor przedstawia w niej skomplikowan¹ tematykí od podstaw, udzielaj¹c odpowiedzi na 99% pytaò, jakie zadaj¹ sobie pocz¹tkuj¹cy elektronicy, pragn¹cy rozpocz¹ê samodzieln¹ przygodí z mikrokontrolerami. Autor - pracownik Motoroli - swûj wyk³ad opar³ na jednej z najstarszych (ci¹gle obecnych na rynku) rodzin mikrokontrolerûw 68HC05. Nie oznacza to jednak, øe jest to ksi¹øka wy³¹cznie o mikrokontrolerach z rodziny HC05 - zawarte w niej informacje zosta³y podane w sposûb uniwersalny, pozwalaj¹cy przede wszystkim zrozumieê prezentowane zagadnienia, a odniesienia do konkretnych rozwi¹zaò sprzítowych s³uø¹ w zdecydowanej wiíkszoúci przypadkûw za ich ilustracjí. Tak wiíc, niezaleønie od tego, jakimi mikrokontrolerami chcesz sií Czytelniku zaj¹ê w przysz³oúci, juø teraz moøesz ìzrozumieê ma³e mikrokontroleryî korzystaj¹c z tej lekko napisanej ksi¹øki. Pewne w¹tpliwoúci wzbudziê moøe nasza ocena ksi¹øki: 4 lutownice. Odj¹- ³em punkt za wyczuwaln¹ w treúci ìamerykaòskoúêî (cûø dziwnego, autor jest Amerykaninem), ktûrej to cechy nie uwaøam za zaletí. Andrzej Gawryluk Praca zbiorowa, ìuk³ady steruj¹ce w zasilaczach i przetwornicach - aplikacje i dane techniczne, czíúê 1î, Wies³aw Haligowski 2002 Jest to publikacja o ambicjach ìkatalogowychî, w ktûrej autorzy zgromadzili noty aplikacyjne oraz podstawowe dane katalogowe kilkudziesiíciu typûw sterownikûw zasilaczy impulsowych, scalonych przetwornic DC/DC oraz stabilizatorûw liniowych. Zdecydowana wiíkszoúê materia³ûw zawartych w ksi¹øce dotyczy uk³adûw stosowanych w zasilaczach monitorûw, telewizorûw, magnetowidûw i temu podobnego sprzítu, co precyzyjnie definuje grupí jej odbiorcûw. Uniwersalnoúci ksi¹øce odbiera fakt, øe znaczna czíúê prezentowanych w niej uk³adûw nie zosta³a w ogûle opisana (zamieszczono tylko schemat aplikacyjny - czísto uproszczony, zdarzaj¹ sií takøe same schematy blokowe, ktûre w szczegûlnych przypadkach nie nios¹ informacji niezbídnych serwisantowi). Nie podano takøe parametrûw elektrycznych wiíkszoúci uk³adûw, co znacznie zmniejsza praktyczne walory publikacji. Jest to o tyle dziwne, øe po krûtkiej weryfikacji obecnoúci not katalogowych kilku bardziej interesuj¹cych typûw na stronach producentûw, okaza³o sií, øe s¹ one dostípne. Wystarczy³o zatem siígn¹ê po nie i wyekstrahowaê najwaøniejsze dla prac serwisowych parametry. Czemu tak sií nie sta³o? 129

7 B I B L I O T E K A E P Legenda: ksi¹øka wybitna, polecamy! ksi¹øka o duøych walorach praktycznych, polecamy! moøe sií przydaê Tim Parker i Karanijt S. Sjyan" ìtcp/ip - KsiÍga ekspertaî, Helion 2002 daleka od doskona³oúci nie warto kupowaê Drugie wydanie jednej z najlepszych ksi¹øek poúwiíconych protoko³owi TCP/IP. Zamiarem autorûw by³o przygotowanie solidnego podrícznika dla uøytkownikûw komputerûw osobistych specjalizuj¹cych sií w konfiguracji systemûw sieciowych TCP/IP, ale zawarte w 44 rozdzia³ach (na blisko 1000 stron!) informacje przydadz¹ sií takøe tym projektantom systemûw mikroprocesorowych, ktûrzy zamierzaj¹ samodzielnie tworzyê programowe implementacje stosûw TCP/IP lub korzystaj¹ ze sprzítowych stosûw TCP/IP, jak choêby s³awny ichip firmy Seiko. Warto! Waldemar Nawrocki: ìkomputerowe systemy pomiaroweî, WK 2002 typu, przy czym autor oprûcz niezbídnej dawki teorii umieúci³ w nim kilka przyk³adowych schematûw elektrycznych omawianych rozwi¹zaò, co u³atwia odbiûr wyk³adu elektronikom. W ostatnim rozdziale zgromadzono z kolei szereg informacji o ìkasetowychî systemach pomiarowych (CAMAC, VXI i PXI), a takøe zastosowaniach interfejsu Centronics jako uniwersalnego portu I/O. Szereg interesuj¹cych informacji na poziomie podstawowym znalaz³o sií takøe we wprowadzaj¹cym rozdziale ksi¹øki, gdzie autor skrûtowo przedstawia podstawowe cechy interfejsûw USB i IEEE-1394 oraz cechy typowych magistral stosowanych w komputerach PC. Reasumuj¹c: dobrze napisany podrícznik, zawieraj¹cy najwaøniejsze informacje praktyczne o podstawowych interfejsach szeregowych oraz o wielu innych, w tym bardzo nowoczesnych, rozwi¹zaniach komunikacyjnych. Swoista monografia prezentuj¹ca rûønego rodzaju interfejsy stosowane w systemach pomiarowych wykorzystuj¹cych komputery osobiste. NajwiÍkszy nacisk autor po³oøy³ na omûwienie interfejsu IEEE-488 (IEC-625), ktûry jest nadal doúê czísto stosowany w systemach pomiarowych. Jeden rozdzia³ zawiera zbiûr informacji o najpopularniejszych interfejsach szeregowych RS232/422/ 449/485/530, nieco miejsca poúwiícono takøe na skrûtowe omûwienie magistral: Profi- Bus, CAN oraz MicroLAN (firmy Dallas). Bardzo interesuj¹ce informacje zawiera rozdzia³ poúwiícony bezprzewodowym systemom komunikacyjnym, w ktûrym to znajduje sií szereg przydatnych informacji o zastosowaniach GSM/GPRS, interfejsûw IrDA i Bluetooth oraz klasycznych radiomodemûw do komunikacji pomiídzy urz¹dzeniami tworz¹cymi system pomiarowy. Ca³y drugi rozdzia³ ksi¹øki zajmuje omûwienie zasad dzia³ania przetwornikûw A/C i C/A rûznego 130

8 P R O J E K T Y C Z Y T E L N I K Ó W Dział Projekty Czytelników zawiera opisy projektów nadesłanych do redakcji EP przez Czytelników. Redakcja nie bierze odpowiedzialności za prawidłowe działanie opisywanych układów, gdyż nie testujemy ich laboratoryjnie, chociaż sprawdzamy poprawność konstrukcji. Prosimy o nadsyłanie własnych projektów z modelami (do zwrotu). Do artykułu należy dołączyć podpisane oświadczenie, że artykuł jest własnym opracowaniem autora i nie był dotychczas nigdzie publikowany. Honorarium za publikację w tym dziale wynosi 250, zł (brutto) za 1 stronę w EP. Przysyłanych tekstów nie zwracamy. Redakcja zastrzega sobie prawo do dokonywania skrótów. Prosty programator mikrokontrolerów AT89Cx051/AT89C5x Projekt 107 Na rynku dostípnych jest wiele programatorûw uniwersalnych (drogich) i specjalizowanych dla danej grupy uk³adûw (taòszych). Taki w³aúnie tani, lecz funkcjonalny programator przedstawiamy w artykule. Niew¹tpliw¹ zalet¹ mikrokontrolerûw zgodnych programowo z 8051, jest mnogoúê dostípnego kodu ürûd³owego. Stwarza to moøliwoúê ³atwego wyprûbowania swoich si³ m.in. w asemblerze. Zapewne wielu elektronikûw pragní³oby takøe do³¹czyê do grona uøytkownikûw Bascoma 8051, jednak barier¹ dla nich jest cena narzídzi sprzítowych (uk³ady PCF8574A s¹ stosunkowo drogie). S³uszn¹ alternatyw¹ w takim wypadku jest zbudowanie w³asnego programatora, ktûrego koszt wykonania bídzie ograniczony do minimum. Od takiego programatora wymagana jest tylko jedna cecha - ma kasowaê i zapisywaê pamiíê Flash uk³adu. Nie musi on ustawiaê øadnych dodatkowych opcji w programowanym uk³adzie, gdyø ma s³uøyê on do celûw ìlaboratoryjnychî, a nie komercyjnych (choê moøna go stosowaê i tutaj). Okazuje sií, øe w Internecie opisûw takich programatorûw jest wiele. Jednak albo ich oprogramowanie pozostawia wiele do øyczenia albo moj¹ drobne, acz istotne b³ídy w schemacie. Budowa i dzia³anie Postanowi³em wiíc zaprojektowaê w³asny programator, ktûry bídzie domyúlnie programowa³ uk³ady AT89Cx051, a po zastosowaniu dodatkowej p³ytki, takøe AT89C5x. Zak³adam, øe rozpoczynaj¹cy przygodí z mikrokontrolerami dysponuj¹ zazwyczaj komputerem, wiíc sterowanie prac¹ Rys. 1 93

9 P R O J E K T Y C Z Y T E L N I K Ó W Rys. 2 programatora zosta³o przerzucone na PC-ta. Program do jego obs³ugi zosta³ napisany w Turbo Pascalu i jest dostípny na p³ycie CD-EP2/2003. Schemat elektryczny programatora pokazano na rys. 1. Programator jest wykrywany automatycznie przez oprogramowania za spraw¹ po³¹czenia wyprowadzeò 13 i 14 z³¹cza drukarkowego. Owo z³¹cze ma tí zaletí, øe nie potrzeba nam dodatkowego kabla do portu rûwnoleg³ego - wystarczy od³¹czyê go od drukarki. Program sprawdza rûwnieø, czy programowany uk³ad jest w³oøony do programatora (linia ACK), a w przypadku braku odpowiedniego napiícia programuj¹cego rûwnieø informuje o b³ídzie. Tranzystor T1, sterowany sygna³em DSL ustala, czy uk³ad bídzie kasowany czy programowany. Tranzystor T2, sterowany sygna³em ALF w³¹cza napiície programuj¹ce. Dioda D1 zabezpiecza programowany uk³ad przed uszkodzeniem w przypadku, gdy pod³¹czymy odwrotnie spolaryzowane napiície zasilania. WÛwczas co najwyøej wzroúnie temperatura stabilizatora U2. Rezystor R1 wraz z kondensatorem C1 stanowi uk³ad ca³kuj¹cy dla sygna³u ìzegarowegoî. Jest on niezbídny gdy stosujemy d³ugi przewûd po³¹czeniowy. W praktyce okaza³o sií jednak, øe R1 w wiíkszoúci przypadkûw powinien byê zwarty. Zworka JP1 pozwala wybraê ürûd³o sygna³u zegarowego. Kiedy programujemy powinniúmy wybraê pozycjí 1-2, zaú jeúli chcemy ìna szybkoî sprawdziê poprawnoúê naszego prostego programu (np. generatora) po zaprogramowaniu uk³adu, naleøy wybraê pozycjí 2-3. Kiedy chcemy programowaê uk³ad AT89Cx51 za pomoc¹ omûwionego dalej adaptera dla ìduøychî '51 (drugiej p³ytki) powinniúmy ustawiê dwie zworki na pozycjach 1-2 oraz 3-4. Zworka JP2 pozwala wybraê napiície programuj¹ce dla ìwiíkszychî '51, a takøe sterowaê sygna³em zeruj¹cym mikrokontrolera. W pozycji 1-2 ustalamy napiície 12 V, zaú V. Gdy zdejmiemy zworkí (ustawimy j¹ prostopadle) napiície wyniesie 0. ProcedurÍ programowania omûwií dalej. Dane 8-bitowe s¹ przesy- ³ane do uk³adu bezpoúrednio z portu (D0...D7) podobnie jak sygna³ programuj¹cy (INI). W celu programowania AT89C55 należy dodać dwie ścież ki dla linii A14 oraz A15. W tym celu należy połączyć: 8 wyprowadzenie 74LS93 (U10) z 10 wyprowadzeniem AT89C5x (U4), 11 wyprowadzenie 74LS93 (U10) z 11 wyprowadzeniem AT89C5x (U4). W adapterze dla uk³adûw AT89C5x (schemat elektryczny na rys. 2) wewnítrzny licznik adresu uk³adûw AT89x051 zosta³ zast¹piony przez liczniki U9 i U10, co pozwala adresowaê pamiíê o 16-bitowym adresie (moøna go w razie potrzeby wykorzystaê do programowania innych uk³adûw, np. pamiíci EP- ROM). Uk³ady te s¹ zerowane poprzez tranzystor T3 w czasie, gdy nie ma øadnego napiícia programuj¹cego. Najlepszym rozwi¹zaniem jest umieszczenie w miejsce T3 tranzystora MOSFET (z kana- ³em typu N) i usuniície rezystora R7. Wtedy uk³ad zeruj¹cy nie bídzie obniøa³ napiícia programuj¹cego. Montaø i uruchomienie Podstawowa p³ytka programatora zosta³a zaprojektowana jako jednowarstwowa. Jej wzûr zamieszczamy wraz z oprogramowaniem na CD- EP3/2003. Montaø programatora naleøy rozpocz¹ê od oúmiu zwor. Najlepiej od razu rûwnieø zewrzeê takøe wyprowadzenia rezystora R1. NastÍpnie wlutowujemy kolejno podstawki pod uk³adu scalone, stabilizator, rezonator kwarcowy. ObudowÍ tego ostatniego, w celu ograniczenia liczby harmonicznych, warto po³¹czyê z mas¹, co jest moøliwe, gdy zamontujemy go na leø¹co. Jeúli wykonaliúmy te czynnoúci, zabieramy sií do montaøu elementûw dyskretnych. Na koòcu wlutowujemy goldpiny (do jumperûw - JP2 k¹towe - i zasilania) oraz z³¹cze drukarkowe, od ktûrego naleøy wczeúniej odkríciê plastikow¹ czíúê lub zwiíkszyê w niej odleg³oúê nûøek pomiídzy rzídami. Uruchomienie rozpoczynamy od pod³¹czenia napiícia zasilania (12 V, stabilizowane) i sprawdzenia poprawnoúci napiíê w podstawce do programowania uk³adu. NastÍpnie moøemy zabraê sií do pierwszego programowania. Druga p³ytka - adaptera dla AT89C5x - pomimo wszelkich prûb minimalizacji, zosta³a zaprojektowana jako dwustronna. Wybra³em kompromis w liczbie przelotek dla tych osûb, ktûre bíd¹ wykonywa³y j¹ jako dwuwarstwow¹ oraz dla osûb, ktûre wykonaj¹ j¹ jako jednostronn¹, a resztí po³¹czeò wykonaj¹ przewodami (np. kynarem úcieøki sygna³owe i jakimú grubszym úcieøki zasilania). Montaø tej p³ytki rozpoczynamy od podstawek uk³adûw, poza U3. NastÍpnie wlutowujemy elementy dyskretne. Teraz zabieramy sií za U3 i wlutowujemy od spodu p³ytki dwa rzídy 10-nÛøkowych goldpinûw (dla druku jednostronnego wpuszczamy je w p³ytkí tylko w niewielkim stopniu). Po tej operacji osoby wykonuj¹ce p³ytkí jednostronn¹ powinny zabraê sií za po³¹czenia przewodowe (z gûrnej warstwy druku dwustronnego). Goldpiny nie bíd¹ nam 94 2/98

10 P R O J E K T Y C Z Y T E L N I K Ó W Rys. 3 niestety pasowa³y do podstawki precyzyjnej w p³ytce bazowej. Musimy wykonaê prost¹ przejúciûwkí - czyli uøyê dwûch jednorzídowych podstawek precyzyjnych. One bíd¹ juø nam pasowa³y. Ewentualnie, zamiast tego ca- ³ego ìzamieszaniaî wokû³ U3, moøemy uøyê kabla (taúmy) z wtykiem emulacyjnym. Uruchomienie drugiej p³ytki polega na prawid³owym wpiíciu U3 do podstawki U1, a nastípnie zmierzeniu w podstawkach napiíê zasilaj¹cych (uwaga na licznik U10, ktûry ma napiície zasilania na nûøkach 5 i 10). Jeúli s¹ poprawne, to moøemy umieúciê w nich uk³ady scalone. Jeúli nie, naleøy dok³adnie przeanalizowaê po³¹czenia. Teraz wystarczy uruchomiê program i w³oøyê w podstawkí uk³ad do zaprogramowania. Obs³uga programatora Programowanie uk³adu nie jest zbyt skomplikowane. Najpierw przedstawií procedurí programowania mikrokontrolerûw AT89Cx051: 1. Pod³¹czamy do programatora wymagane zasilanie oraz przewûd od drukarki. 2. Ustawiamy jumper JP1 na pozycji 1-2 (clock), a JP2 2-3 (5 V). 3. Uruchamiamy program My_x051 z nazw¹ pliku binarnego, ktûrego zawartoúê chcemy umieúciê w programowanym uk³adzie, jako parametr. 4. Wk³adamy uk³ad do podstawki. 5. Przestawiamy jumper JP2 na pozycjí 1-2 (12 V). 6. Wciskamy ENTER. 7. Po zakoòczeniu programu przestawiamy jumper JP2 z powrotem na pozycjí 2-3 (5 V). 8. Od³¹czamy zasilanie (niekoniecznie) i (starannie) wyjmujemy zaprogramowany uk³ad. P³ytkÍ bazow¹ moøemy wykorzystaê takøe jako prost¹ p³ytkí uruchomieniow¹: 1. Pod³¹czamy do programatora wymagane zasilanie, ale bez przewodu od drukarki. 2. Ustawiamy jumper JP1 na pozycji 2-3 (xtal), a JP2 2-3 (5 V - reset on). 3. Wk³adamy uk³ad AT89Cx051 do podstawki. 4. Zdejmujemy JP2 (reset off) - od tej pory nasz program jest wykonywany. 5. Program restartujemy zak³adaj¹c ponownie JP2 na pozycjí 2-3 (5 V). 6. Od³¹czamy zasilanie i wyjmujemy zaprogramowany uk³ad. Programowanie mikrokontrolerûw AT89C5x przeprowadza sií nastípuj¹co: 1. Ustawiamy dwie zworki JP1 na pozycjach 1-2 (clock) i 3-4 (xtal), a JP2 na pozycjí 2-3 (5V). 2. Wpinamy (poprawnie!) adapter AT89C5x do p³ytki bazowej. 3. Pod³¹czamy do programatora wymagane zasilanie oraz przewûd od drukarki. 4. Uruchamiamy program My_x051 z nazw¹ pliku binarnego, ktûrego zawartoúê chcemy umieúciê w programowanym uk³adzie, jako parametr. 5. Wk³adamy programowany uk³ad do podstawki. 6. Jeúli mamy wersjí wysokonapiíciow¹ uk³adu (12 V zamiast 5 V), przestawiamy jumper JP2 na pozycjí 1-2 (12 V). 7. Wykonujemy punkty 6, 7 i 8 dla AT89Cx051. Oprogramowanie steruj¹ce programatora bídzie wci¹ø rozwijane tak, aby nie wymaga³o szybkiego CPU (w tej chwili czas mierzony jest bardzo dok³adnie, zajmuj¹c przy tym znaczny czas procesora). DostÍpna jest takøe wersja przystosowana do pracy ìpod opiek¹î systemem Windows (rys. 3). Nowe wersje pojawi¹ sií na stronie autora: nopsoft.republika.pl. Uwagi koòcowe WiÍkszoúÊ kompilatorûw generuje jedynie pliki hex. Aby mûc je wykorzystaê w naszym programatorze, musimy je przekonwertowaê do pliku bin. Moøemy to uczyniê z ³atwoúci¹ stosuj¹c np. program hex2bin (zamieszczamy go na CD-EP2/2003) i podaj¹c jako parametr nazwí pliku hex. Pliki tego formatu generuje takøe Bascom 8051, ale naleøy je najpierw od niego ìwykraúêî. Na pocz¹tku wybieramy z menu Options>Compiler>Output i zaznaczamy pola Binary File i HEX File (w razie potrzeby Old Intel HEX File). NastÍpnie przechodzimy do Options>Programmer>Other. W polu Programmer wybieramy External Programmer, odznaczamy opcje Auto Flash i Auto Verify, a w Program wskazujemy program edycyjny notepad i zaznaczamy Use HEX File. W okno Parameter wpisujemy {file}, a w Mode wybieramy Go to application directory and run. Jeúli potrzebujemy danych w formacie bin to odznaczamy opcjí Use HEX File. Po skompilowaniu programu wybieramy Run Programmer i moøemy z poziomu notatnika zapisaê plik bin, a nastípnie przejúê do DOS-u i zaprogramowaê nasz uk³ad. DOS-em nie musimy sií jednak w Bascomie przejmowaê. Gdy nie chcemy stosowaê powyøszej, doúê d³ugiej metody, wystarczy wybraê jako programator urz¹dzenie o nazwie BlowIT Programmer (dostípny na pewno w wersji Bascom i ) - prezentowany programator jest z nim kompatybilny. NastÍpnie wybieramy odpowiedni port LPT (LPT-address) w zak³adce Parallel (programator nie zostanie wykryty automatycznie), ustawiamy Port Delay np. na 5 i odznaczamy pozosta³e pola. Od tej pory moøemy programowaê z poziomu Bascom-a uk³ady do 4 kb pamiíci Flash. Pozostaje jeszcze dodaê, øe trzeba prawid³owo wybraê ustawienie zworek: JP1 w pozycji 1-2 (dla AT89C5x dodatkowo w 3-4), JP2 dla AT89Cx051 w pozycji 1-2, a dla AT89C5x w zaleønoúci od wersji (5/ 12 V). Przypominam o moøliwoúci sprawdzenia dzia³ania prostego programu w programatorze (po od³¹czeniu kabla LPT). Naleøy tylko ustawiê odpowiednio zworki. Jako przyk³adowy program testowy proponují (Bascom): WYKAZ ELEMENTÓW Rezystory R1: 1kΩ lub zwora (patrz opis) R2...R4, R6: 10kΩ R5: 2kΩ R7: 10kΩ lub zwora (patrz opis) R8: 5,1kΩ Kondensatory C1: 1nF C2, C3: pF C4, C9: 100nF C5, C6, C7: 10µF/10V Półprzewodniki U2: 7805 U9: CMOS 4040 U10: 74LS93 D1: 1N4148 T1, T2: BC547B T3: BC547B lub MOSFET N BS170, BS109 (patrz opis) Różne U1: podstawka precyzyjna DIP20 U3: dwa goldpin y oraz dwie podstawki precyzyjne jednorzędowe U4: podstawka precyzyjna DIP40 U9: podstawka DIL16 U10: podstawka DIL14 Q1: rezonator kwarcowy MHz JP1: goldpin z dwoma jumperami JP2: goldpin z jumperem J1: 36 nóżkowe złącze drukarkowe (żeńskie) J2: goldpin Do cpl p1.7 Wait 1 cpl p1.6 Loop a dla assemblera: loop1: CPL P1.7 MOV A,#5 ;zależnie od częstotli- ;wości rezonatora ;kwarcowego loop2: PUSH ACC CLR A loop3: MOV B,#0 DJNZ B,$ DJNZ ACC,loop3 POP ACC DJNZ ACC,loop2 CPL P1.6 SJMP loop1 Pozostaje juø tylko uruchomiê i sprawdziê woltomierzem lub sond¹ logiczn¹ czy zmieniaj¹ sií stany wyprowadzeò 18 i 19 uk³adu AT89Cx051. Janusz U ycki nopsoft@skrzynka.pl 95

11 K U R S CRC doda Ci pewności, część 2 Kontynuujemy omawianie metody obliczania CRC (Cyclic Redundancy Codes). W pierwszej czíúci artyku³u zapoznaliúmy sií z podstawami arytmetyki stosowanej do tego celu. Bazuj¹c na tej wiedzy, postaramy sií uchwyciê istotí metody obliczania CRC. Po sporej dawce teorii z poprzedniego odcinka, Czytelnicy zapewne spragnieni s¹ bardziej praktycznych ÊwiczeÒ. Wiemy jednak, øe nie od razu KrakÛw zbudowano. Nie uda nam sií jeszcze stworzyê gotowej procedury, ktûr¹ bídzie moøna wykorzystaê we w³asnym programie, jakkolwiek mam nadziejí, øe przyk³ady zawarte w tym odcinku znacznie zbliø¹ nas do celu. Przed przyst¹pieniem do kolejnych ÊwiczeÒ proponují szybciutko przypomnieê sobie samodzielnie na czym polega dzielenie w arytmetyce CRC. W dalszych rozwaøaniach dzielnik ilorazu bídziemy nazywaê wielomianem generuj¹cym lub krûtko generatorem. W terminologii angielskiej stosuje sií rûwnieø okreúlenie poly. Jego znaczenie jest bardzo istotne we wszystkich algorytmach obliczaj¹cych CRC. Jak sií okaøe, szczegûlnie waøny bídzie stopieò tego wielomianu. Jest on okreúlony przez pozycjí najstarszego wspû³czynnika o wartoúci 1. Na przyk³ad wielomian jest stopnia 4 (ozn. W=4), nie 5, bo pozycja najstarszej jedynki jest rûwna 4 (liczymy od zera). BÍdziemy go uøywaê w dalszych obliczeniach. W praktyce wykorzystuje sií najczíúciej wielomiany stopnia 16 lub 32, co u³atwia implementacjí algorytmûw w programach komputerowych. Maj¹c wybrany generator sprûbujmy jeszcze raz podzieliê przez niego wielomian reprezentuj¹cy pewn¹ transmitowan¹ wiadomoúê (obliczenia w arytmetyce CRC). Przed przyst¹pieniem do obliczeò zastosujemy jednak ma³y trik polegaj¹cy na dopisaniu na koòcu wiadomoúci takiej liczby zer, ktûra odpowiada stopniowi generatora, czyli w naszym przypadku 4: wiadomoúê oryginalna: generator: wiadomoúê przygotowana do obliczeò: Wykonajmy teraz dzielenie (kropki u³atwiaj¹ podpisywanie cyfr): : = ===== == ==1110 Reszta z dzielenia (suma kontrolna) Sam wynik dzia³ania (iloraz) jest dla naszych celûw zupe³nie nieistotny, moøemy go ca³kowicie zignorowaê. Najwaøniejsza jest reszta z dzielenia stanowi¹ca obliczon¹ sumí kontroln¹. Zazwyczaj jest ona zapisywana do przesy- ³anej wiadomoúci (tak jak w powyøszym przyk³adzie zrobiliúmy z zerami) i utworzony w ten sposûb zmodyfikowany komunikat jest nastípnie transmitowany. W omawianym przypadku wysy³ana wiadomoúê mia³aby postaê: Na drugim koòcu toru transmisyjnego odbiornik ma do wyboru dwie moøliwoúci: 1. OdseparowaÊ wiadomoúê od sumy kontrolnej. ObliczyÊ sumí kontroln¹ po wczeúniejszym dopisaniu W zer na koòcu wiadomoúci, a nastípnie porûwnaê obie sumy. 2. ObliczaÊ sumí w biegu (bez dopisywania zer) i sprawdziê, czy obliczona suma bídzie rûwna zero. Obie powyøsze metody s¹ rûwnowaøne. W dalszej czíúci artyku³u skupimy sií na metodzie 2, gdyø z matematycznego punktu widzenia jest nieznacznie prostsza. WybÛr generatora WybÛr odpowiedniego generatora to temat, ktûry nadawa³by sií bardziej na prací doktorsk¹ niø na krûtki artyku³ w EP. Rozwi¹zanie pewnych zagadnieò wymagaj¹ stosowania nie³atwego aparatu matematycznego. Nie bídziemy wiíc wnikaê w szczegû³y. Transmitowan¹ wiadomoúê oznaczymy liter¹ T. Za³Ûømy, øe T jest wielokrotnoúci¹ generatora. Zauwaømy, øe: - W ostatnich bitûw wiadomoúci T to reszta z dzielenia T przez generator, - po drugie - dodawanie jest w arytmetyce CRC rûwnowaøne odejmowaniu, tak wiíc dodaj¹c resztí z dzielenia odk³adamy tí wartoúê do nastípnego mnoøenia. Jeúli teraz przesy³ana wiadomoúê ulegnie przek³amaniu w odbiorniku otrzymamy T E, gdzie E jest wektorem b³ídu. ZwrÛÊmy uwagí na to, øe sumowanie jest prowadzone w arytmetyce CRC (odpowiada np. operacji XOR). Teraz odebrana informacja poddawana jest operacji dzielenia T E przez G. Podczas gdy T mod G jest rûwne 0, to (T E) mod G = E mod G. Tak wiíc rozmiar wybranego przez nas generatora bídzie mia³ istotny wp³yw na detekcjí b³ídûw. Przyjmijmy na wiarí, øe b³ídy bíd¹ce wielokrotnoúci¹ generatora pozostan¹ nie wykryte. Naszym zadaniem jest znalezienie takiego wielomianu G, aby jego stopieò by³ jak najmniejszy, gwarantuj¹c przy tym odpowiednio wysokie prawdopodobieòstwo wykrycia b³ídu w zaszumionym torze transmisyjnym. Popatrzmy teraz z jakimi rodzajami b³ídûw moøemy sií spotkaê. B³Ídy pojedyncze MÛwi¹c o b³ídzie pojedynczym mamy na myúli przyk³adowo E= Taka klasa b³ídûw bídzie na pewno wykryta, gdy co najmniej dwa bity generatora G bíd¹ rûwne 1. Gdybyúmy wykonywali mnoøenie G polegaj¹ce (jak pamiítamy) na operacji przesuwania i dodawania pewnej sta³ej wartoúci z ustawionym w tym przypadku tylko jednym bitem, nie by³o by wiíc moøliwe skonstruowanie takiej liczby, w ktûrej tylko jeden bit by³by ustawiony. Zawsze pozostan¹ dwa ostatnie bity. B³Ídy podwûjne Dla wykrycia wszystkich b³ídûw typu (E posiada dwa bity o wartoúci 1) wybieramy G, ktûre nie bídzie wielokrotnoúci¹ 11, 101, 1001, 10001, , itd. Przyjmijmy to na wiarí. B³Ídy z nieparzyst¹ liczb¹ bitûw Wykrycie takich b³ídûw jest moøliwe przez wybranie G z parzyst¹ liczbí bitûw. Zauwaømy, øe mnoøenie CRC jest Bezpieczna wymiana danych w systemach mikroprocesorowych 89

12 K U R S Rys. 1 niczym innym, jak wielokrotnym XORowaniem pewnej sta³ej z odpowiednimi przesuniíciami. PamiÍtamy rûwnieø, øe XOR-owanie to w gruncie rzeczy zwyk³e prze³¹czanie bitûw. Bior¹c to pod uwagí, jeúli bídziemy XOR-owaÊ liczbí z parzyst¹ liczb¹ jedynek zawsze w wyniku obliczeò zostanie nieparzysta liczba jedynek. Na przyk³ad weümy E=111 i sprûbujmy prze³¹czyê wszystkie trzy bity przez powtarzanie XOR-owania z liczb¹ 11, przesuwaj¹c j¹ po kaødym kroku. Otrzymamy E=E XOR 011 (w pierwszym kroku) i E=E XOR 110 (w drugim kroku). Jak widaê sztuka sií nie uda³a, jedna jedynka pozosta³a niezmieniona. B³Ídy typu burst B³¹d burst to ci¹g jedynek poprzedzony i zakoòczony ci¹giem zer: E= Powyøsz¹ zaleønoúê moøna zapisaê inaczej: E=( )( ), gdzie wystípuje z zer w lewej czíúci i n jedynek w prawej. Do wykrycia b³ídu tego typu wystarczy ustawiê najm³odszy bit G na 1. Lewa czíúê E nie moøe byê czynnikiem G. DopÛty, dopûki G bídzie d³uøsze niø prawa czíúê E, b³¹d bídzie wykrywany. WiÍcej informacji na ten temat moøna znaleüê w [1]. Bior¹c pod uwagí powyøsze zaleønoúci wybrano kilka generatorûw, ktûre s¹ powszechnie stosowane w praktyce: 16-bitowe: (16,12,5,0) - standard X25 (16,15,2,0) - tzw. CRC bitowe: (32,26,23,22,16,12,11,10,8,7,5,4,2,1,0) - Ethernet Bezpoúrednia implementacja CRC Ufff, podk³ad teoretyczny mamy juø za sob¹, moøemy powoli przechodziê do praktyki. Zajmiemy sií teraz konkretnymi algorytmami obliczania CRC. Jak wynika z konkluzji poprzedniego podrozdzia³u, CRC nie jest jednoznacznie wyliczan¹ sum¹ kontroln¹. W zaleønoúci od wymaganego stopnia ochrony danych, stosowanego medium transmisyjnego, moøliwoúci obliczeniowych urz¹dzeò nadawczo-odbiorczych stosuje sií rûøne algorytmy. Na pocz¹tek zaczniemy od chyba najprostszego z najprostszych, bez wykorzystywania øadnych trikûw, dzia³aj¹cego jednak bardzo wolno. W dalszej czíúci artyku³u bídziemy go stopniowo komplikowaê i usprawniaê. PamiÍtamy o tym, øe obliczenia CRC opieraj¹ sií na operacji dzielenia. NiektÛre procesory uwzglídniaj¹ w swojej liúcie rozkazûw to dzia³anie. Nie bídzie ono jednak wykorzystywane, gdyø jak pamiítamy nasze dzielenie jest oparte nie na arytmetyce klasycznej, lecz na arytmetyce CRC. Ponadto dzielna, ktûr¹ jest transmitowany blok, moøe osi¹gaê bardzo duøe rozmiary. W kolejnych przyk³adach bídziemy Rys. 2 rozpatrywaê transmitowan¹ wiadomoúê jako ci¹g bajtûw. Najstarszy bit (MSB - Most Significant Bit) znajduje sií na pozycji 7 kaødego bajtu. Gdybyúmy potraktowali wiadomoúê jako ci¹g bitûw, to najstarszy bit wiadomoúci odpowiada³by pierwszemu bitowi rûønemu od zera w pierwszym bajcie, licz¹c od najstarszej pozycji. Teraz juø moøemy naszkicowaê algorytm dzielenia CRC. Dla ustalenia uwagi przyjmiemy, øe W=4, a jako generator wybierzemy G= Do wykonania dzielenia bídziemy potrzebowaê 4- bitowego rejestru (rys. 1). PamiÍtamy oczywiúcie, øe wiadomoúê koòczy W zerowych bitûw. Algorytm bídzie wiíc nastípuj¹cy (zapiszemy go w postaci pseudoprogramu): Wyzeruj wszystkie bity rejestru. Dopisz W zerowych bitów do przesyłanej wiadomości. while(jest więcej bitów do pobrania) { Przesuń rejestr w lewo o jedną pozycję, wczytując następny bit wiadomości na pozycję 0. If(wychodzący bit ma wartość 1) { Bitwychodzący_Rejestr= Bitwychodzący_Rejestr XOR Generator } } gdzie: wyraøenie Bitwychodz¹cy_Rejestr to s³owo, w ktûrym najstarszy bit ma wartoúê bitu wychodz¹cego z rejestru, a za nim nastípuj¹ bity reprezentuj¹ce wartoúê rejestru. Po zakoòczeniu pítli, rejestr zawiera resztí z dzielenia. Uwaga praktyczna: warunek w instrukcji IF moøna sprawdzaê testuj¹c najstarszy bit rejestru przed wykonaniem przesuniícia. Powyøszy algorytm bídziemy nazywaê SIMPLE. Graficzn¹ ilustracjí wykonania tego algorytmu przedstawiono na rys. 2. Dane odpowiadaj¹ przyk³adowi przedstawionemu na pocz¹tku artyku³u. Mamy wiíc: T= , G=10011, czyli W=4. ProponujÍ teraz samodzielne przeêwiczyê algorytm na innym przyk³adzie. Moøna przy tym zmieniê generator i wartoúê W, od ktûrej algorytm nie zaleøy. Implementacja oparta na tablicy Przedstawiony powyøej algorytm SIMPLE by³ doúê dobrym przyk³adem bezpoúredniego prze³oøenia teorii w praktykí. Wykorzystuj¹c go moøna juø bez trudu napisaê program z przeznaczeniem na konkretny procesor. BÍdzie on oczywiúcie dzia³a³, ale nie zadowoli chyba jego uøytkownika. Jego szybkoúê dzia- ³ania nie bídzie najwiíksza - zauwaømy, øe obrûbka pojedynczego bitu wymaga wykonania jednego obrotu pítli. Ale ìpierwsze koty za p³otyî, doúwiadczenie juø jakieú mamy. Pomyúlmy wiíc co zrobiê, øeby zwiíkszyê wydajnoúê. Pierwszym pomys- ³em jaki sam sií nasuwa bídzie przejúcie z obrûbki bitowej na - nazwijmy to na razie - wiícej niø bitow¹. Naturalnymi moøliwoúciami s¹ tu: pû³bajt (nibble) (4 bity), bajt (8 bitûw), s³owo (16 bitûw), d³ugie s³owo (32 bity) lub wiícej (jeúli bídziemy potrafili obs³uøyê). My wybierzemy wariant 8-bitowy. Dla niego istnieje juø wiele opracowanych algorytmûw, ponadto bídzie sií úwietnie nadawa³ dla ma³ych mikroprocesorûw (mikrokontrolerûw). Na uøytek nastípnych rozwaøaò zmienimy teø doúê drastycznie stopieò generatora z W=4, na W=32. PamiÍtamy, øe generator taki bídzie mia³ d³ugoúê 33 bity (pierwszy bit zawsze rûwny 1 i 32 bity ìaktywneî). Wyd³uøy sií teø do 32 bitûw rejestr stosowany do obliczeò (rys. 3). Nazwijmy teraz bity najstarszego bajtu (numer 3) naszego rejestru. BÍd¹ to t7 (MSB) t6...t0 (LSB). Przyjmijmy teø, øe 8 najstarszych ìaktywnychî bitûw generatora bídzie mia³o oznaczenia: g7 Rys. 3 90

13 K U R S g6...g0. Tak jak by³o w algorytmie SIMP- LE, bit t7 (nazwijmy go bitem szczytowym) bídzie okreúla³, czy generator ma byê XOR-owany z rejestrem w nastípnej iteracji. Nast¹pi to, gdy bit ten bídzie mia³ wartoúê 1. Moøna wiíc zapisaê, øe najstarszy bit w nastípnej iteracji bídzie mia³ wartoúê: t6 t7 * g7, co wyjaúnia poniøsza interpretacja pisemna: t6 t5 t4 t3 t2 t1 t0?? t7 * (g7 g6 g5 g4 g3 g2 g1 g0) Zauwaømy, øe do obliczania nowej wartoúci bitu szczytowego (MSB) drugiej iteracji, potrzebne s¹ dwa najstarsze bity w najstarszym bajcie rejestru. Dla trzeciej iteracji bíd¹ to trzy bity (t7, t6 i t5), itd. OgÛlnie dla k-tej iteracji potrzebnych jest k bitûw rejestru. Wykorzystamy to pûüniej. Rozwaømy przypadek, w ktûrym bídziemy wykorzystywaê 8 bitûw rejestru do obliczania bitu szczytowego dla nastípnych 8 iteracji. Za³Ûømy, øe bídziemy prowadziê 8 nastípnych iteracji wykorzystuj¹c obliczone wartoúci (ktûre moøemy zapisywaê w pojedynczym rejestrze i obracaê w celu wy³uskiwania kaødego bitu). Znowu musimy zauwaøyê trzy sytuacje: - Najstarszy bajt rejestru nie ma teraz znaczenia. Nie jest istotne ile razy i z jakim przesuniíciem generator jest XOR-owany dla 8 bitûw szczytowych, wszystkie bíd¹ przesuniíte na zewn¹trz podczas nastípnych 8 iteracji. - Pozosta³e bity bíd¹ przesuniíte o jedn¹ pozycjí w lewo, a bajty z prawej strony bíd¹ przesuniíte na nastípn¹ pozycjí. - Na czas operacji, rejestr bídzie podlega³ serii operacji XOR-owania z bitami steruj¹cymi obliczonymi wczeúniej. Teraz rozpatrzmy efekt XOR-owania Rys. 4 rejestru sta³¹ wartoúci¹ z rûønymi przesuniíciami. Na przyk³ad: Rejestr Wynik powyøszego dzia³ania moøemy uzyskaê na drodze wielokrotnego XORowania poszczegûlnych sk³adnikûw z rejestrem, lub jednokrotnego wykonania tej operacji z wartoúci¹ sta³¹ rûwn¹ sumie (XOR) poszczegûlnych sk³adnikûw. ¹cz¹c ca³¹ zdobyt¹ powyøej wiedzí w ca- ³oúÊ moøemy napisaê szkic algorytmu: While(są dane w ciągu wejściowym) { Zapamiętaj tymczasowo najstarszy bajt rejestru (będzie to bajt sterujący) Sumuj cały generator z różnymi przesunięciami XOR-ując z rejestrem odpowiednio z rejestrem sterującym Przesuń rejestr w lewo o jeden bajt, wczytując na najmłodszą pozycję kolejny bajt wiadomości XOR-uj zsumowany generator z rejestrem } Jak na razie nie specjalnie widaê, øeby algorytm ten by³ w czymú lepszy niø SIMPLE. Jeúli jednak g³íboko go przemyúlimy, dojdziemy do wniosku, øe wiíkszoúê obliczeò moøe byê wykonana wczeúniej, a wyniki mog¹ byê zapisane w odpowiedniej tablicy. Jeúli wykorzystamy to b³yskotliwe spostrzeøenie, algorytm moøna uproúciê do postaci: While(są dane w ciągu wejściowym) { Top = bajt szczytowy rejestru Rejestr = (Rejestr << 8) następny_bajt_wiadomości Rejestr = Rejestr XOR Tablica[Top] } Nie twierdzí, by powyøsze rozwaøania by³y proste. S¹ jednak waøne, ich zrozumienie pozwala bowiem poj¹ê ideí konstruowania tablicowych algorytmûw obliczania CRC. Graficzn¹ interpretacjí dzia³ania algorytmu przedstawiono na rys. 4. Moøemy jeszcze raz skomentowaê ten rysunek opisem s³ownym: 1. PrzesuÒ rejestr o jeden bajt w lewo, dopisuj¹c na najm³odszej pozycji kolejny bajt wiadomoúci 2. Wykorzystaj wychodz¹cy z rejestru bajt do indeksowania tablicy (256 wartoúci 32-bitowych (dla generatora o W=32 jaki stosowaliúmy w przyk³adzie). 3. XOR-uj dane z tablicy z rejestrem. 4. Idü do pkt. 1, jeúli nie wykorzysta³eú wszystkich bajtûw wiadomoúci. Teraz juø moøna zrobiê pierwsz¹ przymiarkí do napisania programu w jakimú konkretnym jízyku. BÍdzie nim oczywiúcie C. Fragment takiego programu przedstawiono poniøej: unsigned long r; unsigned char t;... r=0; while(len--) { t=(unsigned char)((r>>24) & 0xff); r=(r<<8) *pmsg++; r^=tab[t]; } Zmienna len okreúla liczbí bajtûw wiadomoúci, *Msg jest wskaünikiem na bajt wiadomoúci, ktûry bídzie pobierany do obliczeò, r to nasz rejestr, t jest zmienn¹ tymczasow¹, a tab obliczon¹ wczeúniej tablic¹. Moc jízyka C polega na bardzo zwiíz³ym zapisywaniu wyraøeò (co nie zawsze jest wystarczaj¹co zrozumia³e i przez co jízyk ten nie cieszy sií popularnoúci¹ wúrûd pocz¹tkuj¹cych programistûw), moøna wiíc nasze obliczenia uproúciê do jednej linijki: r=0; while(len--) r=((r<<8) *pmsg++) ^ tab[(unsigned char)((r>>24) & 0xff)]; Zastosowany tu algorytm bídziemy nazywaê TABLICOWYM. Charakteryzuje sií on duø¹ wydajnoúci¹, nie wymaga wielkich mocy obliczeniowych procesora. Jego najwiíksz¹ wad¹ jest zajmowanie pamiíci przez tablice i to, øe dla ìpostronnegoî obserwatora moøe byê zupe³nie nieczytelny. Trudno znaleüê w nim ca³¹, nie ma³¹ jak sií mogliúmy przekonaê teorií. Ale to jeszcze nie koniec. WiÍcej w nastípnym odcinku. Jaros³aw Doliñski, AVT jaroslaw.dolinski@ep.com.pl [1] Artyku³ powsta³ na podstawie publikacji ìa painless guide to CRC error detection algorithmsî, Ross N. Williams. Moøna j¹ znaleüê pod adresem [2] Tanenbaum, A.S., ìcomputer Networksî, Prentice Hall, 1981, ISBN:

14 K U R S WiÍkszoúÊ kompilatorûw jízyka C oferuje szereg rûønych modeli pamiíci. KtÛry z nich wybraê? Jakie kryteria wyboru stosowaê? Jaki wp³yw ma zastosowany model kompilacji na optymalizacjí kodu wynikowego oraz czas wykonywania programu przez mikrokontroler? Podstawy: fizyczne lokalizacje segmentûw pamiíci Prawdopodobnie najbardziej irytuj¹cym podczas pisania programûw dla mikrokontrolerûw 8051 i pochodnych jest fakt, øe posiadaj¹ one kilka rûønych obszarûw pamiíci zaczynaj¹cych sií od tego samego adresu. Inne mikrokontrolery, dla przyk³adu z rodziny 68HC11, maj¹ ci¹g³¹ przestrzeò adresow¹, w ktûrej poszczegûlne obszary pamiíci umieszczone s¹ kolejno jeden za drugim, w zaleønoúci od tego, czy istniej¹ w danym mikrokontrolerze, czy teø nie. Jest to zgodne z konfiguracj¹ pojedynczego obszaru pamiíci wed³ug za³oøeò von Neumana. W mikrokontrolerze 8051 pamiíê podzielono na kilka czíúci dostípnych na rûøne sposoby. Aby dobrze zrozumieê zasady uøycia poszczegûlnych rodzajûw pamiíci i modeli kompilacji, musimy przyjrzeê sií bliøej temu podzia³owi i miejscom fizycznej lokalizacji komûrek pamiíci. Pierwszy z segmentûw nazywa sií DATA. Mowa tu o wewnítrznej pamiíci RAM mikrokontrolera zwanej segmentem danych. Zaczyna sií on od adresu 0x00 i koòczy pod adresem 0x7F (127 dziesiítnie). G³Ûwne przeznaczenie tego segmentu pamiíci to przechowywanie zmiennych wykorzystywanych przez program w czasie pracy. Obszar ten dostípny jest jako adresowany bezpoúrednio. Znajd¹ tu zastosowanie instrukcje asemblera z grupy MOV A,n - MOV n,a. Od adresu 0x80 umieszczony jest tak zwany rejestr funkcji specjalnych SFR (Special Function Register), ktûry rûwnieø moøe byê adresowany bezpoúrednio. Powyøej adresu 0x80, do adresu 0xFF, rozci¹ga sií czíúê drugiego obszaru pamiíci RAM, zwanego IDATA, ktûry moøe byê adresowany wy³¹czenie poúrednio. Znajduj¹ tu zastosowanie instrukcje z grupy MOV A,@Ri (i=0 lub i=1). Standardowe wersje mikrokontrolerûw 8051 s¹ wyposaøone w 128 bajtûw pamiíci DATA. Dodatkowy segment IDATA pojawi³ sií w momencie wprowadzenia do sprzedaøy mikrokontrolerûw z rodziny Segment ten nie jest czíúci¹ pamiíci DATA. Rozci¹ga sií od adresu 0x00 do 0xFF i moøe byê adresowany wy³¹cznie poúrednio. Z zwi¹zku z tym dobrze jest stosowaê go nie w celu zapamiítywania zmiennych, ale z przeznaczeniem na stos mikrokontrolera. Jednostka centralna bídzie wtedy uøywa³a tego segmentu, adresuj¹c go za poúrednictwem wskaünika stosu. Oczywiúcie pisz¹c programy w jízyku C, trudno jest wywrzeê wp³yw na to, do czego kompilator bídzie wykorzystywa³ obszar IDATA. Jest to moøliwe tylko poprzez zmianí parametrûw linkera, jednak wymaga to gruntownej wiedzy na temat zasad funkcjonowania kompilatora oraz daleko posuniítej ostroønoúci przy wprowadzaniu zmian. Opisan¹ tutaj zasadí naleøy stosowaê podczas pisania programûw w asemblerze, natomiast w przypadku C zalecam zdaê sií na autorûw kompilatora, chyba øe jakieú specjalne powody zmuszaj¹ do innego podejúcia. Obszar IDATA nak³ada sií na obszar rejestru SFR. Jawnie widaê tu pewn¹ sprzecznoúê: IDATA dziel¹cy wspûlnie przestrzeò adresow¹ z SFR moøe byê adresowany tylko poúrednio, natomiast do SFR maj¹ dostíp instrukcje adresowania bezpoúredniego! Aby by³o ciekawiej, obydwa te segmenty znajduj¹ sií w obszarze wewnítrznej pamiíci RAM mikrokontrolera. Czyli patrz¹c na to od strony programisty to do jakiego obszaru pamiíci zapisywane czy z jakiego odczytywane s¹ dane, zaleøy od sposobu w jaki zostanie zaadresowany ten sam obszar pamiíci. Ten sam w znaczeniu fizycznie wpisywanego adresu, nie zaú segmentu pamiíci mikrokontrolera. Pomoøe to zrozumieê poniøszy fragment programu asemblerowego: MOV 0A0H,#dana;zapis do obszaru ;SFR, w tym przypadku do P2 ;(równoznaczny zapis to część 9 Konfiguracje pamięci mikrokontrolera 8051 dla programów napisanych w języku C, część 1 ;MOV P2,#dana) MOV R0,#0A0H ;zapis do obszaru ;IDATA (nie do P2!) Pierwsza linia przyk³adowego programu zapisuje dane do obszaru SFR, w tym przypadku jest to port P2. Druga i trzecia linia, mimo øe powoduj¹ zapis bajtu pod ten sam adres, to jednak uøywane jest adresowanie poúrednie (adresowanie za pomoc¹ rejestru R0) i bajt zostaje zapisany w segmencie IDATA, a nie jak poprzednio w SFR. Warto o tym pamiítaê, tworz¹c w³asne aplikacje. Trzeci segment pamiíci, nazywany CODE, rûwnieø rozpoczyna sií od adresu 0x0000, ale zarezerwowany jest na pamiíê programu. Typowo obszar ten zajmuje adresy od 0x0000 do 0xFFFF (65536 bajtûw) i jeúli uøywany jest mikrokontroler 8031, to segment ten w ca³oúci pod³¹czany jest z zewn¹trz w postaci dodatkowego uk³adu pamiíci ROM. NiektÛre mikrokontrolery, np. 8051, posiadaj¹ jednak wewnítrzn¹ pamiíê ROM, pe³ni¹c¹ tí sam¹ rolí. Segment pamiíci programu dostípny jest przez instrukcje wykorzystuj¹ce do adresowania licznik rozkazûw PC oraz 16-bitowy rejestr DPTR. Oczywiúcie w segmencie CODE mog¹ byê przechowywane wy³¹cznie wartoúci sta³e, takie jak tablice danych, a przede wszystkim instrukcje programu wykonywanego przez mikrokontroler. Czwarty segment pamiíci, nazywany XDATA (czasami moøna sií spotkaê z okreúleniem XRAM), rûwnieø znajduje sií poza mikrokontrolerem. Zaczyna sií od adresu 0x0000 i tak, jak segment CODE, koòczy sií pod adresem 0xFFFF. Jedna uwaga: omawiaj¹c przestrzeò adresow¹ pamiíci CODE czy XDATA, opisují moøliwoúê jej fizycznego rozszerzenia, a nie przymus zajmowania ca³ego dostípnego obszaru przez dane urz¹dzenie (uk³ad) pod³¹czone w tej przestrzeni adresowej. W zestawie rozkazûw 8051 moøna znaleüê tylko jedn¹ metodí dostípu do 85

15 K U R S Rys. 1 ca³ego segmentu XDATA za pomoc¹ pojedynczego rozkazu. S³uø¹ do tego instrukcje wykorzystuj¹ce do adresowania rejestr DPTR. Niemniej jednak ca- ³y obszar XDATA (od adresu 0x0000 do 0xFFFF) moøe byê teø dostípny w trybie stronicowania. Do adresowania pamiíci w obszarze 256-bajtowej strony jest tu uøywany oúmiobitowy rejestr R0 lub R1. W tym przypadku starsz¹ czíúê adresu (numer strony) trzeba ustawiê ìrícznieî np. poprzez wpisanie odpowiedniej wartoúci do P2. Trzeba przy tym pamiítaê, øe P2 nie bierze aktywnego udzia³u podczas takiego adresowania (nie pe³ni funkcji szyny systemowej). RÛwnie dobrze moøe byê wykorzystany inny rejestr lub nawet tylko jego czíúê. Obszar ten nazywany jest PDATA (rys. 1). Pojawia sií pytanie: w jaki sposûb jednostka centralna mikrokontrolera 8051 rozrûønia fizycznie inne i o innym przeznaczeniu obszary pamiíci? W jaki sposûb kod instrukcji programu pobierany jest spod adresu CODE:0x0000, zamiast DATA:0x00? Odpowiedü tkwi w budowie mikrokontrolera. Gdy CPU ø¹da dostípu do segmentu DATA, za³¹czany jest wewnítrzny RAM przez wewnítrzny sygna³ odczytu READ - odpowiednik tego sygna³u wyprowadzany na zewn¹trz (wyprowadzenie READ mikrokontrolera) nie zmienia sií. Odczyt i zapis bajtu z wykorzystaniem akumulatora w trybie adresowania bezpoúredniego moøna uzyskaê za pomoc¹ poleceò: MOV A,40H ;odczyt bajtu spod adresu 0x40 MOV 40H,A ;zapis bajtu pod adres 0x40 Jest to podstawowy tryb dla modelu pamiíci SMALL. Odczyt bajtu z wykorzystaniem trybu adresowania poúredniego z segmentu IDATA za poúrednictwem akumulatora i rejestru R0 wygl¹da nastípuj¹co: MOV R0,#0A0H ;odczyt bajtu z segmentu IDATA ;znajdującego się pod adresem MOV A,@R0 ;0xA0 do akumulatora Ten tryb adresowania uøywany jest do dostípu do poúrednio adresowanych komûrek pamiíci IDATA leø¹cych powyøej 0x80 i jest alternatywn¹ metod¹ dostípu do danych leø¹cych poniøej tego adresu. W obríbie segmentu DATA znajduje sií rûwnieø obszar nazywany BDATA. Jest to szesnaúcie bajtûw (128 bitûw) zajmuj¹cych przestrzeò adresow¹ od 0x20 do 0x2F w obszarze adresowania bezpoúredniego. Specjaln¹ cech¹ tego obszaru jest to, øe oprûcz instrukcji MOV maj¹ zastosowanie rûwnieø instrukcje operuj¹ce na pojedynczych bitach i wykorzystuj¹ce specjalny tryb adresowania pojedynczych bitûw. ZewnÍtrzna pamiíê ROM (segment CODE) nie jest za³¹czana podczas dostípu do RAM czy XDATA (XRAM). Jej wyborem steruje sygna³ PSEN (Program Store Enable) - zmiana poziomu wyprowadzenia PSEN na niski uaktywnia pamiíê programu. Nazwa wyprowadzenia sygna³u jest jednoczeúnie sugesti¹, øe g³ûwn¹ rol¹ pamiíci ROM jest przechowywanie instrukcji programu. Pewn¹ ciekawostkí stanowi fakt, øe jeúli mikrokontroler posiada wewnítrzn¹ pamiíê ROM (FLASH, EP- ROM), to w cyklu dostípu do tej pamiíci stan zewnítrznego, wyprowadzenia PSEN nie zmienia sií dot¹d, aø przekroczony zostanie obszar adresowania wewnítrznego ROM. Po tym fakcie mikrokontroler wykonuje normalny cykl dostípu do zewnítrznej pamiíci programu wyprowadzaj¹c przez porty P0 i P2 adresy oraz pobieraj¹c instrukcje do wykonania z zewnítrznej pamiíci ROM. W takiej sytuacji, jeúli zewnítrzna pamiíê ROM jest ulokowana od adresu 0x0000, to bajty leø¹ce poniøej koòca adresu wewnítrznej pamiíci ROM (na przyk³ad dla 4 kb bídzie to adres 0x1000) nie bíd¹ dostípne. Pod³¹czone do mikrokontrolera z zewn¹trz segmenty XDATA oraz CODE nie s¹ ze sob¹ w konflikcie. Ich rozdzia³ jest przeprowadzany przez zewnítrzne sygna³y steruj¹ce. Jak wczeúniej wspomnia³em, dostíp do obszaru CODE aktywowany jest za pomoc¹ PSEN. DostÍpem do obszaru XDATA steruj¹ zewnítrzne sygna³y READ (odczyt) i WRITE (zapis). Wyprowadzenie PSEN nie bierze udzia- ³u w cyklu dostípu do danych zawartych w segmencie XDATA. Aby odrûøniê polecenia dostípu do danych zawartych w segmencie XDATA od pozosta³ych, wprowadzono specjalne instrukcje zawieraj¹ce w swej nazwie literí X: MOV DPTR,#08000H ;zapamiętaj daną zawartą ;w akumulatorze pod adresem MOVX A,@DPTR ;0x8000 w pamięci XDATA Ten alternatywny tryb dostípu do pamiíci XDATA jest podstawowym dla modelu COMPACT. Zauwaø, øe jeúli Port 2 pod³¹czony jest do starszych linii adresowych, moøe on pracowaê jako prze³¹czany przez aplikacjí kontroler stron pamiíci. Istotn¹ do zapamiítania informacj¹ jest to, øe wyprowadzenie PSEN przyjmuje stan niski, jeúli pobierany jest kod instrukcji, natomiast wyprowadzenia READ i WRITE podczas wykonywania przez CPU rozkazu MOVX. Litera X w symbolu polecenia jízyka asembler mikrokontrolera 8051 oznacza rozkaz zwi¹zany z urz¹dzeniem pod³¹czonym z zewn¹trz, aktywowanym za pomoc¹ READ lub WRITE. DostÍpne modele pamiíci Pisz¹c program dla mikrokontrolera 8051, pierwsza decyzja, ktûr¹ musisz podj¹ê to taka, jaki model pamiíci wybierzesz. Podczas gdy programista komputera PC dokonuje wyboru pomiídzy modelami TINY, SMALL, MEDIUM, COMPACT, LAR- GE i HUGE, aby kontrolowaê jak uøywane s¹ segmenty pamiíci RAM komputera PC, programista 8051 planuj¹cy swoj¹ aplikacjí musi podj¹ê decyzjí na podstawie tego, gdzie znajduj¹ sií dane niezbídne podczas pracy mikrokontrolera. Popularnie uøywane kompilatory Keil i Raisonance aktualnie obs³uguj¹ nastípuj¹ce konfiguracje pamiíci: 1. ROM - najwiíkszy rozmiar zbioru obiektu, ktûry moøe powstaê po kompilacji, to 64kB, jakkolwiek znacznie wiíksze rozmiary pamiíci ROM (do 1 MB - kompilator Keil, do 4 MB - kompilator Raisonance) mog¹ byê obs³ugiwane w trybie prze³¹czanych bankûw pamiíci (BANKED) opisanym w dalszej czíúci artyku³u. Zmienne mog¹ byê deklarowane przy uøyciu s³owa kluczowego code umieszczaj¹cego je w pamiíci progra- 86

16 K U R S Tab. 1. Nazwa segmentu Zalecany do... Nie zalecany do... pamięci DATA Często używanych danych Zmiennych tablicowych i struktur Rozmiar 128 bajtów, wymagających szybkiego dostępu. zawierających więcej niż kilka domyślny dla modelu Procedur obsługi przerwań, które kilkanaście bajtów. SMALL powinny być wykonywane bardzo szybko, powinny używać obszaru DATA, poprzez lokalną deklarację funkcji jako stosującej model SMALL. Często wywoływanych podprogra mów pobierających czy przekazu jących dużą liczbę parametrów. Stosu funkcji typu re entrant. IDATA Zmiennych tablicowych i struktur Dużych tablic i struktur oraz 128 lub 256 bajtów, o ograniczonym do około 32 baj zmiennych z wymaganym krótkim nie jest przypisany tów rozmiarze. czasem dostępu. do żadnego z modeli Uwaga: suma rozmiarów struktur kompilacji i zmiennych tablicowych nie powinna przekraczać 64 bajtów. Stosu mikrokontrolera (lokowany jest on w obszarze IDATA i adreso wany pośrednio przy pomocy SP). CODE Stałe programu. Zmiennych... To jest ROM, więc 64kB Duże tablice konwersji nie mogą być tu zapisywane PLUS oczywiście instrukcje żadne zmienne. programu! PDATA Funkcji obsługi przerwań o niezbyt Dużych tablic i struktur o rozmia 256 bajtów, krytycznym czasie wykonywania. rze przekraczającym 256 bajtów obszar domyślny Zmiennych typu char, niedużych Bardzo często używanych danych dla modelu COMPACT tablic i struktur o wymaganym oraz zmiennych wykorzystywa krótkim czasie dostępu. nych przez procedury obsługi Doskonała do zmiennych, które przerwań muszą być monitorowane w czasie Zapamiętywania zmiennych typu rzeczywistym podczas uruchamia single, float, double itp. nia programu przy pomocy ICE. XDATA Dużych tablic i struktur o rozmiarze Bardzo często używanych danych. do 64kB, powyżej 256 bajtów. Zmiennych wykorzystywanych domyślny dla modelu Zmiennych o niezbyt krytycznym przez procedury obsługi LARGE czasie dostępu. przerwań. Zmiennych rzadko używanych. Zapamiętywania zmiennych typu Doskonała do zmiennych, które single, float, double itp. muszą być monitorowane w czasie rzeczywistym podczas uruchamia nia programu przy pomocy ICE. mu mikrokontrolera. Nazwa zmienne jest tu myl¹ca, poniewaø zadeklarowana, na przyk³ad tablica moøe pe³niê rolí wzorca - nigdy zaú zmiennej. 2. RAM - dostípne s¹ trzy modele pamiíci: SMALL, COMPACT i LARGE: - SMALL - wszystkie zmienne zostaj¹ umieszczone w wewnítrznej pamiíci mikrokontrolera - COMPACT - zmienne zostaj¹ zapamiítane w segmencie pamiíci PDA- TA, adresowanej przez port P0 (z bankami prze³¹czanymi przez P2). Uøywany jest tryb adresowania poúredniego. WewnÍtrzne rejestry mikrokontrolera s¹ w dalszym ci¹gu uøywane do przechowywania lokalnych zmiennych i parametrûw. - LARGE - zmienne i parametry przechowywane s¹ w zewnítrznej pamiíci adresowanej za WewnÍtrzne rejestry mikrokontrolera w dalszym ci¹gu uøywane s¹ do przechowywania zmiennych i parametrûw. - BANKED (prze³¹czane banki pamiíci) - program moøe zajmowaê do 1 MB - kompilator Keil lub 4 MB - kompilator Raisonance. PamiÍÊ prze³¹czana jest w formie ìstronî o rozmiarze 64kB kaøda za pomoc¹ innych niø w³aúciwe dla P0 i P1 wyprowadzeò mikrokontrolera albo teø za pomoc¹ zatrzaskûw latch umieszczonych w przestrzeni adresowej, powyøej adresu 0xFFFF. Kaødy 64 kb blok pamiíci programu musi posiadaê ustawiony tak zwany blok wspûlny (COMMON AREA) dla biblioteki funkcji prze- ³¹czaj¹cej banki pamiíci. Firma Raisonance wprowadzi³a do swojego kompilatora dodatkowy model pamiíci TINY, ktûry jest identyczny z modelem SMALL z t¹ rûønic¹, øe podczas kompilowania programu generowane s¹ instrukcje ACALL i AJMP, zamiast LCALL i LJMP. Limituje to rozmiar obszaru pamiíci programu do 2 kb i jest uøyteczne szczegûlnie dla mikrokontrolerûw, ktûre nie obs³uguj¹ lub nie potrzebuj¹ instrukcji LCALL i LJMP, czyli maj¹cych do 2 kb pamiíci ROM w swojej strukturze (AT89C2051, 87C751 itp.) oraz nieposiadaj¹cych na zewn¹trz wyprowadzeò PSEN, READ i WRITE. W Keilu moøna korzystaê z dyrektywy ROM, np. #PRAGMA ROM(SMALL) spowoduje uøywanie wy³¹cznie rozkazûw ACALL i AJMP. Moøliwe jest rûwnieø ³¹czenie poszczegûlnych modeli pamiíci tak, aby zmusiê kompilator do lokowania zmiennych i danych w okreúlonych segmentach pamiíci, pod okreúlonym adresem. WybÛr najlepszego modelu pamiíci Model TINY nie nastrícza øadnych trudnoúci przy wyborze. Stosuje sií go raczej do bardzo ma³ych programûw. Dla wiíkszoúci aplikacji wykonywanych dla mikrokontrolera 8051 wystarczaj¹cy jest model SMALL. Stosuj¹c go moøna rûwnieø uøywaê zewnítrznej pamiíci znajduj¹cej sií w segmencie PDATA. DostÍp do niej uzyskuje sií za pomoc¹ instrukcji MOVX A,@Ri i SMALL - pamiíê RAM, 128 bajtûw Uøywaj¹c modelu SMALL, naleøy zredukowaê do minimum liczbí zmiennych globalnych uøywanych w programie. Pozwoli to linkerowi na nak³adkowanie funkcji w taki sposûb, aby aplikacja pracowa³a efektywnie. W przypadku mikrokontrolerûw z serii 8052/8032 deklaracje zmiennych w przestrzeni IDATA powyøej adresu 0x80 mog¹ pozwoliê aplikacji na uzyskanie dodatkowej przestrzeni do przechowywania zmiennych. Naleøy jednak pamiítaê, øe obszar ten uøywany jest rûwnieø na stos mikrokontrolera. Model SMALL moøna takøe stosowaê przy kompilacji nawet bardzo duøych programûw, umieszczaj¹c obiekty duøe i takie, do ktûrych nie jest wymagany bardzo szybki dostíp, w zewnítrznej pamiíci RAM. Dobrze jest tam rûwnieø ulokowaê zmienne, ktûre musz¹ byê dostípne w czasie rzeczywistym podczas uruchamiania urz¹dzenia z mikrokontrolerem przy pomocy emulatora, poniewaø emulatory (takie jak produkowane przez Hitex albo Raisonance) maj¹ bezpoúredni dostíp do tego segmentu pa- 87

17 K U R S List. 1. #pragma COMPACT /* model SMALL */ void SmallFunc() small { printf( %s\n, Hello! ); } /* model LARGE */ void LargeFunc() large { printf( %s\n, Hello! ); } /* program główny */ void main() { SmallFUnc(); LargeFunc(); } miíci. Ten model najlepszy jest rûwnieø dla aplikacji o krytycznym czasie wykonywania, jako øe gwarantuje on najszybszy dostíp do zmiennych i parametrûw przez funkcje, podczas gdy duøe obszary danych mog¹ zostaê umieszczone poza uk³adem mikrokontrolera. COMPACT - pamiíê RAM 256 bajtûw poza uk³adem, 128 lub 256 bajtûw w uk³adzie COMPACT to model pamiíci dostosowany do programûw, gdzie dla przyk³adu wewnítrzny RAM mikrokontrolera przeznaczony jest na zmienne systemu operacyjnego. Model ten jest rzadko uøywany dla ca³ego programu. Najbardziej uøyteczna kombinacja to jego po³¹czenie z modelem SMALL uøywanym lokalnie dla procedur obs³ugi przerwaò. COMPACT stosuje sií przede wszystkim do programûw zawieraj¹cych duø¹ liczbí zmiennych, ktûre nie wymagaj¹ krûtkiego czasu dostípu. Odbywa sií on bowiem za pomoc¹ instrukcji MOVX A,@Ri wykorzystuj¹cej tryb adresowania poúredniego przy pomocy rejestru R0 lub R1. COMPACT moøe byê rûwnieø bardzo uøyteczny dla aplikacji wymagaj¹cych stosu o duøym rozmiarze, co moøe oznaczaê koniecznoúê umieszczenia go w zewnítrznej pamiíci RAM poza uk³adem mikrokontrolera. LARGE - pamiíê RAM do 64kB poza uk³adem, 128 lub 256 bajtûw w uk³adzie Model LARGE pozwala na niezbyt szybki dostíp do bardzo duøego obszaru pamiíci RAM i jest przypuszczalnie naj³atwiejszy w stosowaniu. Podobnie jak poprzednio, niezbyt czísto uøywa sií go w niezaleønie - najczíúciej jest stosowany w po³¹czeniu z modelem SMALL. Tak jak List. 2. #pragma COMPACT void fast_func() SMALL {... kod... } w COMPACT, nadal uøywane s¹ rejestry mikrokontrolera. WybÛr optymalnego segmentu dla danych Podsumowuj¹c: mikrokontroler 8051 oferuje piíê segmentûw pamiíci dostípnych dla danych, z ktûrych kaødy ma swoje pewne specyficzne cechy. W tab. 1 przedstawiamy kilka wskazûwek, u³atwiaj¹cych dobûr modelu do aplikacji. Uwagi dotycz¹ce stosowania modelu COMPACT PrzestrzeÒ XDATA jest adresowana przez DPTR, ktûry umieszcza po- ³Ûwki 16-bitowego adresu w portach P0 i P2. Model COMPACT uøywa rûwnieø R0 jako 8-bitowego wskaünika, ktûry umieszcza adres w tylko w porcie P0...P2. Jest on pod pe³n¹ kontrol¹ uøytkownika i poniewaø jego wyprowadzenia po³¹czone s¹ z liniami adresowymi uk³adu pamiíci, pe³ni rolí prze³¹cznika jej stron. Kompilator nie posiada informacji na temat stanu portu P2 i dopûki uøytkownik nie ustawi jego wartoúci bídzie ona niezdefiniowana, zazwyczaj rûwna 0xFF. Domyúlnym dla zmiennych modelu COMPACT jest obszar PDATA adresowany za pomoc¹ R0. Linker ³¹czy zmienne XDATA oraz PDATA i umieszcza te ulokowane w obszarze PDATA od adresu 0x00. Niekoniecznie jest to intencj¹ programisty - czasami zmienne mog¹ znajdowaê na ktûrejú z kolejnych stron pamiíci. Kompilator jednak uøywaj¹c jako domyúlnego segmentu PDATA adresuje go za poúrednictwem R0 nie ustawiaj¹c tym samym wartoúci portu P2 odpowiedniej dla poø¹danej strony pamiíci RAM. Tak wiíc w rezultacie program COMPACT nie bídzie pracowa³ poprawnie. Kiedy uøywa sií kompilatora Keil bardzo waøne jest aby wartoúê PPA- GE zawart¹ w zbiorze startup.a51 ustawiê na znan¹ wartoúê - dobrym wyborem jest 0x00. Sta³a PPAGEE- NABLE musi byê ustawiona na ì1î aby w³¹czyê tryb stronicowania pamiíci. Zaniedbanie tych nastaw zaowocuje bardzo niebezpiecznymi wynikami, jako øe dane bíd¹ lokowane w zaleønoúci od przypadkowej wartoúci portu P2. Kompilator Raisonance ustawia port P2 i zezwala na tryb stronicowania automatycznie. Podczas pracy linkera parametr PDATA(ADDR) musi byê ustawiony aby powiedzieê linkerowi pod jakim adresem znajduje sií obszar PDATA. WybÛr modelu pamiíci Model pamiíci, zarûwno dla narzídzi firmy Keil jak i Raisonance, wybiera sií przy pomocy polecenia #pragma umieszczonego w pierwszej linii programu. Format polecenia jest nastípuj¹cy: #pragma <Model Pamięci> np. #pragma LARGE Domyúlnie uøywany jest model SMALL i jak wspomniano wczeúniej, moøe on mieê zastosowanie rûwnieø do ca³kiem sporych programûw, zapewniaj¹c pe³n¹ funkcjonalnoúê segmentûw PDATA i XDATA dla danych o niezbyt krytycznym czasie dostípu. Kompilatory C pozwalaj¹ rûwnieø na lokalne definiowanie modeli pamiíci przyporz¹dkowanych do indywidualnych funkcji. Konsekwencj¹ tego jest fakt, øe w obríbie pojedynczego modu³u, funkcje mog¹ zostaê zadeklarowane jako SMALL, COMPACT lub LARGE (list. 1). Program napisany w jízyku C moøe zawieraê wszystkie mniej waøne funkcje skompilowane jako COMPACT oraz funkcje krytyczne pod wzglídem czasu wykonywania (np. obs³ugi przerwaò) skompilowane jako SMALL. Moøe to jednak w po³¹czeniu z uøyciem polecenia #pragma doprowadziê do niezamierzonych efektûw pracy linkera, do komunikatûw typu MUL- TIPLE PUBLIC DEFINTION (wielokrotna definicja funkcji). PowÛd jest taki, øe podczas kompilowanie modu³ûw jako COMPACT kompilator tworzy odniesienia do biblioteki funkcji w³aúciwej dla tego modelu a funkcje kompilowane z wykorzystaniem modelu SMALL bíd¹ korzysta³y z biblioteki funkcji dla SMALL. Podczas pracy linkera, dla przyk³adu dwie definicje putchar() pochodz¹ce z dwûch rûønych bibliotek mog¹ zostaê odnalezione. Rozwi¹zaniem jest ustawienie jednego globalnego modelu i nastípnie uøycie atrybutu SMALL opisywanego w poprzedniej sekcji do ustawienia modelu pamiíci lokalnie (list. 2). Jacek Bogusz, AVT jacek.bogusz@ep.com.pl èrûd³o: Embedded Systems Academy 88

18 M I N I P R O J E K T Y PIC'n'roll, czyli muzyczne fantazje na PIC ach O uniwersalnoúci mikrokontrolerûw nie trzeba nikogo przekonywaê. Jak sií jednak okazuje, pomys³owe zastosowanie tych uk³adûw daje czasami zaskakuj¹ce efekty. Rekomendacje: projekt zainteresuje z pewnoúci¹ wszystkich fanûw mikrokontrolerûw, ktûrzy chc¹ poznaê ich nieodkryte moøliwoúci. Autorem prezentowanego projektu jest Amerykanin Vardan Antonyan z firmy HTC. Za pomoc¹ przemyúlanego programu przygotowanego na mikrokontroler PIC12C508 ìprzeistoczy³î go w odtwarzarkí melodii, ktûrych binarne zapisy s¹ przechowywane w taniej, nieulotnej pamiíci EEPROM. Schemat elektryczny proponowanego rozwi¹zania pokazano na rys. 1. Uk³ad U2 to w istocie standardowy PIC12C508, w ktûrego pamiíci znajduje sií odpowiedni program, udostípniony przez Vardana bezp³atnie (publikujemy go na CD-EP2/2003B). W nomenklaturze przyjítej przez Vardana, tak zaprogramowany PIC12C508 nosi oznaczenie HTC751. Do³¹czona do mikrokontrolera pamiíê EEPROM (U1) z interfejsem I 2 C spe³nia rolí pamiíci melodii, ktûrych moøe byê maksymalnie 4. Odtwarzan¹ melodií wybiera sií za pomoc¹ jumperûw JP1 i JP2. W urz¹dzeniu moøna zastosowaê pamiíci kompatybilne z 24C01/02/08/16, co wi¹øe sií oczywiúcie z rûønymi maksymalnymi czasami odtwarzania (kaødy bajt s³uøy do przechowania pojedynczej nuty). Tranzystory T1 i T2 spe³niaj¹ rolí wzmacniacza mocy, dziíki ktûremu sterowany jest g³oúnik. Uk³ad HTC751 moøe odtwarzaê düwiíki w zakresie trzech oktaw (rys. 2), przy czym czas trwania kaødego düwiíku moøna swobodnie programowaê (moøliwy jest jeden z czterech standardowych czasûw - szczegû³y znajduj¹ sií w dokumentacji zamieszczonej na CD-EP2/2003B). Autor projektu przygotowa³ bezp³atny program narzídziowy MelodyCompiler (rys. 3), za pomoc¹ ktûrego moøna wygodnie przygotowywaê w³asne melodie do odtwarzania i kompilowaê je do postaci akceptowanej przez HTC751. Do prezentowanego projektu nie przygotowaliúmy p³ytki drukowanej, a egzemplarz modelowy zosta³ sprawdzony na niewielkiej p³ytce prototypowej. Andrzej Gawryluk, AVT WYKAZ ELEMENTÓW Rys. 1 Rezystory R1: 10kΩ R2, R3: 100kΩ R4: 1kΩ Kondensatory C1: 100nF C2: 10µF/10V C3: 47µF/10V Półprzewodniki T1: BC547 T2: BC557 U1: 24C01/02/04/08/16 U2: PIC12C508 (zaprogramowany) Różne Gl: głośnik 8Ω JP1, JP2: jumpery+goldpiny 2x1 S1: włącznik chwilowy P³ytka drukowana jest dostípna w AVT - oznaczenie AVT Rys. 2 Rys. 3 Wzory p³ytek drukowanych w formacie PDF s¹ dostípne w Internecie pod adresem: luty03.htm oraz na p³ycie CD-EP2/2003 w katalogu PCB. 80

19 M I N I P R O J E K T Y Wspólną cechą układów opisywanych w dziale "Miniprojekty" jest łatwość ich praktycznej realizacji. Zmontowanie układu nie zabiera zwykle więcej niż dwa, trzy kwadranse, a można go uruchomić w ciągu kilkunastu minut. Układy z Miniprojektów mogą być skomplikowane funkcjonalnie, lecz łatwe w montażu i uruchamianiu, gdyż ich złożoność i inteligencja jest zawarta w układach scalonych. Wszystkie układy opisywane w tym dziale są wykonywane i badane w laboratorium AVT. Większość z nich znajduje się w ofercie kitów AVT, w wyodrębnionej serii Miniprojekty o numeracji zaczynającej się od kanałowy termometr na Game Port Prezentowany w artykule projekt jest przyk³adem interesuj¹cego wykorzystania fragmentu moøliwoúci komputera PC: jako 4-kana³owego termometru-rejestratora z moøliwoúci¹ programowania alarmûw. Rekomendacje: dla wszystkich uøytkownikûw PC (takøe tych nie lubi¹cych lutownicy), ktûrzy chc¹ za jego pomoc¹ monitorowaê temperaturí w maksimum czterech rûønych punktach odleg³ych od komputera do 12 metrûw. Rys. 1 Autorem projektu jest Igor Cesko, ktûry sam swoj¹ rolí w jego opracowaniu okreúla skromnie: programista. Rzeczywiúcie, dziíki zastosowaniu jako czujnikûw temperatury nowoczesnych (i ma³o w Polsce znanych!) uk³adûw SMT160 firmy Smartec, zadanie projektanta sprowadza sií do napisania oprogramowania odczytuj¹cego z uk³adu przetworzony do postaci cyfrowej wynik pomiaru temperatury i wyúwietlaj¹cego go na ekranie monitora. Zadanie wydawa³oby sií doúê proste, ale do tej pory nikt nie podj¹³ sií jego tak skutecznej realizacji... Drugim problemem, jaki musia³ rozwi¹zaê projektant urz¹dzenia by³ wybûr portu dla komunikacji oprogramowania z czujnikami temperatury. Igor rozwi¹za³ to w sposûb niebanalny, wybra³ bowiem rzadko wykorzystywany Game Port, z ktûrego jest pobierane rûwnieø zasilanie dla czujnikûw. Schemat elektryczny ilustruj¹cy sposûb do³¹czenia czujnikûw do Game Portu pokazano na rys. 1. Autor zastrzega, øe maksymalna d³ugoúê przewodûw ³¹cz¹cych czujniki z Game Portem nie powinna przekraczaê 10 metrûw, ale z przeprowadzonych przez nas prûb wynika, øe stabilny odczyt moøna uzyskaê na odleg³oúê 12 metrûw pod warunkiem zastosowania do doprowadzenia zasilania przewodûw o úrednicy wiíkszej niø 0,6 mm. Oprogramowanie odpowiadaj¹ce za odczyt i wyúwietlanie temperatur zosta³o napisane w bardzo profesjonalny sposûb, a zaimplementowane w nim funkcje powoduj¹, øe urz¹dzenie jest niezwykle uøyteczne, choêby do úledzenia temperatur rûønych elementûw komputera. I tak: - Program GamePortTemp nie wymaga instalacji, rozpoczyna on prací od razu po uruchomieniu. Jak sprawdziliúmy bez trudu radzi sobie z prac¹ takøe w tak wymagaj¹cych úrodowiskach jak Win NT/XP/2000. Jego g³ûwne okno jest niepozorne (rys. 2), ale moøna w nim ustawiê podstawowe parametry pracy pomiarûw, takie jak: odstíp pomiídzy kolejnymi pomiarami, czas integracji przetwornika A/C wbudowanego w do³¹czone czujniki oraz liczbí ostatnich pomiarûw, ktûrych wyniki s¹ uúredniane przez program. - KlikniÍcie prawym przyciskiem w oknie pokazanym na rys. 2 powoduje wyúwietlenie dodatkowych opcji (rys. 2), z ktûrych najciekawsze kryj¹ sií w Options. OprÛcz moøliwoúci skalibrowania wynikûw pomiarûw odczytywanych na wyjúciach uk³adûw SMT160, uøytkownik moøe zadaê dla kaødego czujnika progi temperatur (dolny i gûrny - rys. 4), ktûrych przekroczenie jest sygnalizowane wyúwietleniem okna z komunikatem alarmowym oraz wymûwieniem przez program (niezbídna karta düwiíkowa) wartoúci temperatury powoduj¹cej alarm. WYKAZ ELEMENTÓW SMT czujniki temperatury (1...4 szt.), dostępne w Elfie, numer katalogowy DB15M klasyczny wtyk męski (dwurzędowy) Bezpieczniki 63 ma (1...2 szt.) Wzory p³ytek drukowanych w formacie PDF s¹ dostípne w Internecie pod adresem: luty03.htm oraz na p³ycie CD-EP2/2003 w katalogu PCB. Rys. 2 Program moøna skonfigurowaê takøe w taki sposûb, aby wyniki pomiarûw wraz ze znacznikami czasu (odczytywanymi z zegara RTC komputera) by³y rejestrowane w pliku w lubianym przez Excela formacie CSV. DziÍki temu przygotowanie graficznych raportûw ilustruj¹cych zmiany temperatury jest bardzo proste. Andrzej Gawryluk, AVT Oprogramowanie i opis oprogramowania (w jízyku czeskim) publikujemy na CD- EP2/2003B, s¹ one dostípne takøe w Internecie pod adresami: sk/downloads/gameport- Temp.zip oraz cesko.host.sk/gameport- Temp.htm. Rys. 3 Rys. 4 79

20 P R O G R A M Y Czy znamy mikrokontrolery firmy Motorola? Zapewne kaødy, kto ma jakiekolwiek zwi¹zki z technik¹ mikroprocesorow¹ s³ysza³ o nich. Z sondaøy nie wynika, øeby produkty Motoroli cieszy³y sií szczegûln¹ popularnoúci¹ wúrûd polskich konstruktorûw, nie mniej jednak ci, ktûrzy je stosuj¹ s¹ do nich na pewno bardzo przywi¹zani. To dla nich wspû³pracuj¹ca z Motorol¹ firma Metrowerks stworzy³a bardzo wydajne narzídzie do pisania i uruchamiania programûw. To prawdziwy kodowy ìwojownikî, ktûry z ca³¹ swoj¹ niema³¹ moc¹ bídzie zwalcza³ b³ídy pope³nione przez programistí. Pe³na nazwa produktu to CodeWarrior Integrated Development Environment (IDE). Mamy wiíc do czynienia z kompletnym, zintegrowanym úrodowiskiem, do ktûrego naleø¹: - Menedøer projektu (Project Manager) - to segment zbieraj¹cy wszystkie elementy sk³adowe projektu, czyli pliki ürûd³owe poszczegûlnych modu³ûw, pliki nag³ûwkowe, inicjuj¹ce i konfiguracyjne dla kompilatora i linkera. Wszystkie s¹ widoczne w jednym oknie, mog¹ wiíc byê ³atwo tworzone i poprawiane. - Edytor kodu ürûd³owego (Source Code Editor) - specjalny edytor, w ktûrym moøna wykonywaê wymienione wyøej Nie musisz płacić! Motorola wspólnie z firmą Metrowerks udostępnia bezpłatną wersję CodeWarrio ra, która umożliwia kompilację progra mów pisanych w asemblerze oraz w C (wyłącznie w przypadku kompilacji na mikrokontrolery z rodziny Nitron czyli najnowsze wersje HC08). prace edycyjne z kaødym plikiem ürûd- ³owym wchodz¹cym w sk³ad projektu. Dysponuje oczywiúcie takimi mechanizmami jak wyszukiwanie i zamiana okreúlonych fragmentûw tekstu w jednym lub wielu plikach. Wygodn¹ opcj¹ podczas koniecznoúci jednoczesnego kontrolowania wielu miejsc programu jest podzia³ okna na kilka czíúci. W kaødej z nich mog¹ byê umieszczone ø¹dane fragmenty tekstu. Edytor umoøliwia ³atwe przechodzenie pomiídzy plikiem ürûd³owym i zwi¹zanymi z nim plikami interfejsowymi (rys. 1), wstawianie zak³adek jednoczeúnie w wielu miejscach tekstu. Programiúci, ktûrzy tworz¹ programy modu³owe, doceni¹ zapewne moøliwoúê wykonania natychmiastowego skoku do tekstu ürûd³owego wskazanej procedury, nawet jeúli jest Tylko ten, kto kiedykolwiek napisa³ choêby niewielki programik wie, øe aby z kilku tajemniczych znaczkûw, symboli i skrûtûw przemieni³ sií w funkcjonalny program dzia³aj¹cy w jakimú mikroprocesorze, trzeba z nim stoczyê czísto ciíøk¹ i zazwyczaj nierûwn¹ walkí. NierÛwn¹, bo przeciwnik jest bezwzglídny i w dodatku wirtualny. To kod pisanego programu, ktûry wydaje sií drwiê z kaødego, nawet najmniejszego b³ídu programisty. Jednak cz³owiek zawsze d¹øy³ do panowania nad úwiatem. W pracowniach Metrowerks stworzono do tej walki specjalnego wojownika. ona umieszczona w innym pliku ürûd- ³owym. Tekst jest wyúwietlany w oknie edytora w kolorach, z wyrûønianiem s³ûw kluczowych. Najlepiej wygl¹da, gdy zastosuje sií proporcjonaln¹ czcionkí np. Courier New. DostÍpne opcje konfiguracji edytora zadowol¹ nawet najbardziej wybrednych. - Przegl¹darka (Browser) - to okno, w ktûrym dokonuje sií uruchamiania programu. Widoczne s¹ zarûwno niskopoziomowe rozkazy mikrokontrolera jak i instrukcje jízyka wysokiego poziomu (np. C). RÛwnieø wykonanie programu moøe przebiegaê na niskim lub wysokim poziomie. W kaødej chwili widoczne s¹ aktualne wartoúci zmiennych programu i rejestrûw mikrokontrolera. Rys. 1 Rys. 2 77

21 P R O G R A M Y Juø z powyøszych charakterystyk wynika, øe CodeWarrior umoøliwia komfortow¹ prací na profesjonalnym poziomie. Dodajmy do tego, øe programista ma do dyspozycji kompilator jízyka C/C++ generuj¹cego bardzo efektywny kod. Gdyby jednak zachodzi³a potrzeba jego ìrícznegoî optymalizowania np. pod wzglídem szybkoúci dzia³ania lub zajítoúci pamiíci programu, to z pomoc¹ przychodzi Macro Asembler. Program moøe byê przy tym napisany w ca³oúci w asemblerze, mog¹ byê takøe dokonywane tylko wstawki asemblerowe w programie pisanym w jízyku C. Jeúli mûwimy juø o optymalizacji, to nie bez znaczenia bídzie podkreúlenie ìumiejítnoúciî linkowania tylko niezbídnych (faktycznie uøywanych) obiektûw do koòcowego programu wykonywalnego. Jest on generowany w formatach: Motorola S-Records, Intel Hex lub binarnym. Ci¹g³¹ rozbudowí w³asnego zaplecza programowego u³atwi na pewno Libmaker - narzídzie do tworzenia w³asnych bibliotek. Uruchamianie programu na etapie symulacji przebiega w czasie rzeczywistym z uwzglídnieniem urz¹dzeò peryferyjnych i bez wzglídu na jízyk w ktûrym jest napisany program (asembler, C, C++). Piszemy program Tworzenie w³asnego projektu za pomoc¹ CodeWarrior a w zasadzie nie rûøni sií niczym specjalnym od podobnych programûw wielokrotnie juø opisywanych na ³amach EP. Nie bídziemy wiíc zbyt g³íboko wchodziê w szczegû³y. Tworzenie koòcowego programu uøytkowego dla wybranego mikrokontrolera przebiega w kilku etapach. Na wstípie programista musi zorganizowaê sobie warsztat pracy, czyli okreúliê projekty (projects) i podprojekty - tzw. cele (targets). DziÍki temu CodeWarrior zadba o prawid³ow¹ organizacjí plikûw i ustawieò wykorzystywanych do kreowania programu. Projekt, to plik zawieraj¹cy jeden lub wiícej podprojektûw. Podprojekt natomiast to kolekcja plikûw z kodami ürûd³owymi wykorzystywanych modu- ³Ûw, bibliotek, ustawieò, a takøe inne projekty. Elementy podprojektûw okreúlaj¹, jak ma byê utworzony program dla konkretnego procesora lub systemu operacyjnego. Jest to doúê zaawansowana technika, stwarzaj¹ca jednak bardzo szerokie moøliwoúci dla pojedynczego programisty lub ich zespo³ûw. W projekcie moøna umieszczaê rûwnieø pliki dokumentuj¹ce, ktûre zazwyczaj s¹ plikami tekstowymi, ale nie tylko. Dopuszczalne jest rûwnieø stosowanie np. popularnego formatu PDF. Techniki manipulowania plikami - tworzenie nowych, kopiowanie, grupowanie w folderach, kasowanie, itp. Bez problemów Aby otrzymać bezpłatną wersję CodeWarriora wystarczy wypełnić kupon zgłoszeniowy znajdujący się na stronie internetowej firmy Motorola pod adresem: s¹ bardzo intuicyjne. S³uø¹ do tego specjalne okna (rys. 1). Utworzenie projektu przebiega w trzech etapach: - Budowanie projektu (Building a Project). - Wykonanie projektu (Making a Project). - Symulacja i debugowanie projektu (Simulating and Debugging a Project). Pierwszy etap polega na podaniu nazw projektu, okreúleniu lokalizacji plikûw, ustaleniu wykorzystywanych jízykûw programowania, przygotowaniu wersji ürûd³owych poszczegûlnych modu³ûw. W drugim etapie dokonuje sií kompilacji i linkowania. Podczas tworzenia rozbudowanych projektûw programista najczíúciej koncentruje sií na kolejnym uruchamianiu poszczegûlnych modu³ûw. CodeWarrior pozwala mu na kompilowanie jedynie wybranych, dziíki czemu nie marnuje sií czasu na wielokrotne powtarzanie tych samych operacji. DoúÊ ciekaw¹ moøliwoúci¹, o ktûrej warto wspomnieê jest disasemblowanie bibliotek. Po wstípnym wyczyszczeniu programu z b³ídûw formalnych moøna przyst¹piê do nastípnej fazy walki z programem, w ktûrej kodowy wojownik znowu odda nam nieocenion¹ przys³ugí. Ten etap jest najprzyjemniejszy dla programisty, bo powoli, krok po kroku, pozwala weryfikowaê przyjíte za³oøenia ogûlne, zastosowane algorytmy, sztuczki programowe, itp. Dzia³ania te mog¹ juø byê wykonywane na ìøywym organizmieî. Po uruchomieniu debugera ukazuj¹ nam sií liczne okna przydatne do wykrywania b³ídûw logicznych programu (rys. 2). Widzimy wiíc wersjí ürûd³ow¹ (najczíúciej bídzie to jízyk C) oraz aktualnie wykonywany fragment programu na poziomie asemblera. Mamy przegl¹d pamiíci, rejestrûw, stanu urz¹dzeò peryferyjnych wykorzystywanych w systemie, historií wykonanych operacji, liczne okna inspekcyjne. Na tym etapie uruchamiamy program krokowo lub w sposûb ci¹g³y, zarûwno na poziomie jízyka C, jak i kodu procesora. Proces debugowania przebiega w bardzo precyzyjnie okreúlonym úrodowisku. Jest to na pewno zaleta, ale i wada jednoczeúnie, gdyø niedoúwiadczonemu programiúcie odpowiednie skonfigurowanie programu moøe przysporzyê sporo problemûw. Niestety w artykule nie ma miejsca na dok³adne przedstawienie wszystkich zagadnieò. Wszyscy s¹ zadowoleni NajrÛøniejsi malkontenci trafiaj¹ sií doúê czísto. Wydaje mi sií jednak, øe trudno bídzie znaleüê kogoú, kto by³by niezadowolony z CodeWarrior a. Nie jest to narzídzie ³atwe do opanowania, co pocz¹tkowo moøe zniechícaê uøytkownikûw do jego stosowania, ale teø nie s³uøy ono do tworzenia kolejnych wersji mikroprocesorowych pipkûw-dríczycieli lecz bardzo wyrafinowanego oprogramowania. Jest to narzídzie w pe³ni profesjonalne, dzia³aj¹ce na rûønorodnych platformach sprzítowych i systemach operacyjnych, obs³uguj¹ce bogat¹ listí mikrokontrolerûw, a takøe procesorûw sygna³owych Motoroli. Wszystko jest znakomicie udokumentowane (sam podrícznik jízyka C/C++, to blisko 700-stronicowa ksi¹øka w wersji elektronicznej). Zaznajamianiu sií ìwojownikiemî bíd¹ pomagaê animowane tutoriale, a zagubiony uøytkownik w kaødej chwili moøe liczyê na wsparcie techniczne dostípne poprzez wszystkie powszechnie stosowane úrodki komunikacji. Najúwieøsze informacje o produktach firmy Metrowerks moøna znaleüê na stronie firmowej: Jaros³aw Doliñski, AVT jaroslaw.dolinski@ep.com.pl 78

22 S P R Z Ę T Programatory Uprog 40/48 Programatory opracowane i produkowane przez firmí RK-System kilkukrotnie prezentowaliúmy na ³amach EP. Ich producent nie spocz¹³ na laurach i regularnie rozszerza listí obs³ugiwanych uk³adûw, zwiíksza takøe moøliwoúci funkcjonalne programatorûw. Ostatnio wprowadzone udoskonalenia zachíci³y nas do powtûrnego przedstawienia tych urz¹dzeò, ktûre mog³yby byê powodem do dumy w ofercie niejednego rynkowego potentata. Fot. 1 TwÛrcy programatorûw Uprog od samego pocz¹tku stawiali na zoptymalizowanie szybkoúci ich pracy. St¹d rekordowe czasy programowania pamiíci Flash i EEPROM, ktûre przek³adaj¹ sií na duøy komfort pracy z programatorem. Rodzina programatorûw Uprog sk³ada sií z nastípuj¹cych modeli: UprogHS 48 (fot. 1), sztandarowy w ofercie producenta, szybki programator z 48-stykow¹ podstawk¹ ZIF. Komunikuje sií on z komputerem poprzez interfejs rûwnoleg³y, z maksymaln¹ szybkoúci¹ (w trybie EPP) dochodz¹c¹ do 800 kb/s. Moøliwoúci programatora s¹ bardzo duøe, poniewaø zastosowane w nim rozwi¹zania umoøliwiaj¹ niezaleøne podawanie na dowolne wyprowadzenie napiíê o wartoúci programowanej w przedziale 0 V do 30 V, a takøe potencja³u masy, napiícia zasilania b¹dü sygna³u zegarowego o ustalanych parametrach. Taka budowa programatora pozwala uaktualniaê listí obs³ugiwanych Rekordowe czasy Według danych producenta, czas programowania pamięci Flash firmy Macronix typ MX29F040 (512 kb) wynosi zaledwie 5 s, a odczyt około 1,5 s. Czas programowania mikrokontrolera ATmega323 (32 kb) nie przekracza (via SPI) 10 s, a odczyt zabiera zaledwie 4 s. uk³adûw poprzez prost¹ wymianí oprogramowania steruj¹cego (na PC), bez koniecznoúci modyfikowania samego programatora. Za pomoc¹ Uproga moøna programowaê uk³ady zasilane napiíciami z przedzia³u od 1,8 V do 8 V. OprÛcz funkcji programatora urz¹dzenie moøe spe³niaê rolí 8-kana³owego analizatora stanûw logicznych o czístotliwoúci prûbkowania do 100 MHz, oraz emulatora 8-bitowych i 16-bitowych pamiíci o czasie dostípu (odpowiednio): 10 ns/70 ns. Wiadomość z ostatniej chwili: jest już dostępna nowa wersja programatora Uprog HS84 W odróżnieniu od poprzednich programatorów rodziny Uprog, nowy model jest standardowo wyposażony w dwa gniazda ZIF48 oraz uniwersalne gniazdo PLCC84 lub SOIC/TSOP44 (w zależności od wymagań użytkownika). Ponadto Uprog HS84 może pracować jako ośmiopodstawkowy programator przemysłowowy w konfiguracji na przykład 8 x ZIF48, co pozwala na szybkie programowanie dużych partii układów. Górna płyta obudowy programatora jest wy mienna, co pozwala na szybką i łatwą jej wymianę. Dzięki temu standardowe podstawki ZIF48 oraz PLCC84 (lub alter natywnie SOIC/TSOP44) mogą być zastąpione adapter typu gangpod wyposażony w 8 podstawek dowolnego typu. Podstawowe cechy użytkowe i wyposażenie nowego programatora: Dwie podstawki uniwersalne ZIF48 oraz PLCC84 (ewentualnie SOIC/TSOP44) zapewniające pełną uniwersalność, fun kcjonalność i wysoki komfort pracy z urządzeniem (wyposażenie standardowe). Możliwość zastąpienia górnej płyty programatora gangpodem przemysłowym, wyposażonym w 8 podstawek dowolne go typu (gangpody można dokupić w dowolnym momencie). Programator obsługuje około 7000 typów układów, a ich lista jest cały czas rozszerzana. Funkcja emulatora pamięci 8 bitowych o pojemności do 128 kb (10 ns) z możliwością rozszerzenia do 512 kb (w standardzie). Funkcja emulatora pamięci 16 bitowych o pojemności do 64 kb (70 ns) z możliwością rozszerzenia do 256 kb (opcja). Funkcja 8 kanałowego analizatora stanów logicznych 100 MHz (opcja). Każde wyprowadzenie ma możliwość niezależnego wysterowania przez VPP: V, V ZZ : 1,8...8 V, CLK: 244 Hz...8 MHz. Każde wyprowadzenie może również pełnić funkcję nadajnika lub odbiornika linii szeregowej RS232 o prędkości transmisji od 300 bd do 115 kbd. Komunikacja z komputerem PC poprzez port równoległy (tryby: ECP, EPP, SPP). Oprogramowanie pracujące pod Windows 95/98/ME/2000/NT/XP. Rodziny obsługiwanych układów: pamięci EPROM, EEPROM, Flash, układy PLD: GAL, PAL, PALCE, szeroka gama układów CPLD, mikrokontrolery 8 i 16 bitowe. Umożliwia programowanie w układzie docelowym (JTAG, SPI). Funkcja automatycznego rozpoznawania pamięci EPROM lub Flash. Posiada możliwość testowania cyfrowych układów scalonych. Przycisk AUTO RUN pozwala na programowanie dużej ilości układów bez użycia kla wiatury komputera lub myszy. Umożliwia sprawdzenie jakości styku wszystkich nóżek układu przed zaprogramowaniem. Akceptuje następujące formaty danych: HEX, BIN, Text, JED, JAM (STAPL), SVF, ROM, POF. Analizator stanûw logicznych (rys. 2) wyposaøono w pamiíê prûbek o pojemnoúci 128/512 kb. Pomimo jej relatywnie duøej pojemnoúci maksymalny czas przesy³ania danych nie przekracza 4 sekund (w przypadku pamiíci 512 kb). RejestracjÍ sygna³ûw w pamiíci moøna zainicjowaê poprzez synchronizacjí: zboczem, poziomem sygna³u lub kombinacj¹ logiczn¹ wielu sygna³ûw (funkcje logiczne AND lub OR). Bufor moøe byê dzielony przez uøytkownika na dwie czíúci: Pre-trigger i Post-trigger (rys. 3), dziíki czemu obserwacja stanûw monitorowanych linii przed wyzwoleniem rejestracji jest rûwnieø moøliwa. Sygna³ prûbkuj¹cy moøna pobieraê zarûwno z wewnítrznego generatora, jak i zewnítrznego ürûd³a sygna³u TTL. Interesuj¹c¹ i bardzo uøyteczn¹ funkcj¹ zaimplementowan¹ w programatorze jest takøe tester uk³adûw cyfrowych, za pomoc¹ ktûrego moøna weryfikowaê sposûb dzia- ³ania praktycznie dowolnych uk³adûw kombinacyjnych i sekwencyjnych. Budowa programatora pozwala na podanie na dowolne wyprowadzenie testowanego uk³adu ustalonej przez uøytkownika kombinacji sygna³ûw wejúciowych, przy czym moøliwe s¹ nastípuj¹ce stany: ì0î, ì1î, Vcc, CLK i GND. Po podaniu sekwencji testowej na wybrane wyprowadzenia uk³adu, odczytywane i wyúwietlane s¹ stany pozosta³ych. Przed rozpoczíciem operacji na uk³adzie w³oøonym do podstawki, programator sprawdza jakoúê styku pomiídzy wyprowadzeniami uk³adu i zaciskami podstawki. Zapobiega to moøliwoúci uszkodzenia programowanego uk³adu lub driverûw wbudowanych w programator. Rys. 2 74

23 S P R Z Ę T Rys. 3 Uprog 48 jest z zewn¹trz niemaløe identyczny ze swoim m³odszym bratem, natomiast funkcjonalnie jest to uproszczona wersja programatora HS. Uprog 48 - oprûcz swojej podstawowej funkcji moøe spe³niaê takøe rolí testera uk³adûw cyfrowych. Uprog 40 umoøliwia programowanie uk³adûw o maksymalnej liczbie wyprowadzeò wynosz¹cej 40. Poza tym jego w³aúciwoúci funkcjonalne s¹ identyczne z Uprogiem 48. Uprog 48 Memories Only jest wyspecjalizowanym programatorem pamiíci z 48- stykow¹ podstawk¹ ZIF. Uprog 40 Memories Only - odpowiednik Uproga 48 Memories Only z 40-stykow¹ podstawk¹ ZIF. Oprogramowanie Producent programatorûw zada³ sobie sporo trudu, aby przygotowaê niebanalne (w obs³udze i wygl¹dzie - rys. 4) oprogramowanie steruj¹cego jego prac¹. Szybko moøna sií przekonaê, øe jego twûrcy doskonale znaj¹ specyfikí pracy z programatorami, w zwi¹zku z czym zadbali o maksymalnie wysoki komfort pracy. Nie bez znaczenia dla wygody obs³ugi jest takøe fakt, øe wszystkie wersje programatorûw s¹ obs³ugiwane za pomoc¹ tak samo wygl¹daj¹cego oprogramowania. Oprogramowanie steruj¹ce jest dostípne wy³¹cznie w wersji angielskiej, ale bior¹c pod uwagí nasze prounijne d¹øenia, moøna to potraktowaê jako zaletí. Nie tylko DIP/DIL Standardowo producent wyposaøa programatory w podstawki ZIF dla uk³adûw w obudowach DIL. Programowanie uk³adûw dostípnych w innych obudowach jest moøliwe po zastosowaniu adapterûw, ktûre sk³adaj¹ sií z prostych przelotek pin-topin. W ofercie producenta znajduje sií kilka wersji adapterûw, dla obudûw: SOIC, PLCC32, PLCC44, TSOP itp. DziÍki przemyúlanej budowie programatora, konstruktorzy korzystaj¹cy z uk³adûw wyposaøonych w interfejs JTAG (IEE- E1149.1) mog¹ w wielu przypadkach zrezygnowaê z koniecznoúci instalowania programowanego/testowanego uk³adu w podstawce - za pomoc¹ ³atwego w wykonaniu kabla moøna je programowaê i reprogramowaê juø zainstalowaniu w systemie (ISP), co - przynajmniej moim zdaniem - radykalnie zwiíksza walory uøytkowe urz¹dzenia. Podsumowanie KilkumiesiÍczne testy programatora Uprog 48HS prowadzone w redakcyjnym laboratorium dowiod³y, øe pomimo krût- Rys. 4 kiej obecnoúci na rynku, jest to rozwi¹zanie dojrza³e konstrukcyjnie. SzybkoúÊ rozwoju listy obs³ugiwanych uk³adûw sugeruje, øe fani nowoczesnych uk³adûw nie bíd¹ musieli d³ugo czekaê na moøliwoúê ich programowania za pomoc¹ Uproga. Pozytywny wizerunek urz¹dzenia uzupe³nia estetyczna i ergonomiczna obudowa, ktûrej solidne wykonanie pozwala na korzystanie z programatora bez obaw w typowych warunkach laboratoryjnych. Andrzej Gawryluk, AVT Dodatkowe informacje Programator do testów udostêpni³a firma RK- SYSTEM, ul. Che³moñskiego 30, Grodzisk Mazowiecki, tel. (22) , 76

24 P O D Z E S P O Ł Y Szybki jak 51 Mikrokontrolery firmy Cygnal, czêœæ 2 NarzÍdzia Cygnal zadba³ o uøytkownikûw produkowanych przez siebie mikrokontrolerûw wprowadzaj¹c do sprzedaøy zestawy ewaluacyjne (fot. 6), ktûre oprûcz bogatego wyposaøenia (w ich sk³ad wchodzi m.in. interfejs RS232<- >JTAG) charakteryzuj¹ sií przystípn¹ cen¹ (do wiíkszoúci rodzin mikrokontrolerûw ok. 99 USD netto). W artykule przedstawiamy jedn¹ z ciekawszych moøliwoúci przyspieszenia pracy systemûw z mikrokontrolerami '51. Tab. 2. Zestawienie wyposażenia dostępnych wariantów mikrokontrolerów firmy Cygnal Interfejsy szeregowe Przetwornik C/A Oznaczenie Pojemność Pojemność SMBus/ SPI UART Inne Timery PCA Stabilność Liczba Roz Częstotli Liczba Roz Liczba Kompa pamięci pamięci /I2C (16 b) wbudowa cyfro dziel wość prze wejść dziel wyjść rator Flash RAM nego gene wych czość twarzania analo czość [B] [B] ratora I/O A/C (khz) gowych C8051F000 32k / 100/ 8/ C8051F001 32k / 100/ 8/ C8051F002 32k / 100/ 4/ C8051F005 32k / 100/ 8/ C8051F006 32k / 100/ 8/ C8051F007 32k / 100/ 4/ C8051F010 32k / 100/ 8/ C8051F011 32k / 100/ 8/ C8051F012 32k / 100/ 4/ C8051F015 32k / 100/ 8/ C8051F016 32k / 100/ 8/ C8051F017 32k / 100/ 4/ C8051F018 16k / 100/ 8/ 2 C8051F019 16k / 100/ 8 2 C8051F020 64k /8 100/500 8/ C8051F021 64k /8 100/500 8/ C8051F022 64k /8 100/500 8/ C8051F023 64k /8 100/500 8/ C8051F040 64k CAN /8 100/500 12/ C8051F041 64k CAN /8 100/500 12/ C8051F042 64k CAN /8 100/500 12/ C8051F043 64k CAN /8 100/500 12/ C8051F060 64k CAN / / C8051F061 64k CAN / /200 2/ C8051F062 64k CAN / /200 2/ C8051F063 64k CAN / /200 2/ C8051F k /8 100/500 8/ C8051F k /8 100/500 8/ C8051F k /8 100/500 8/ C8051F k /8 100/500 8/ C8051F k /8 100/500 8/ C8051F k /8 100/500 8/ C8051F k /8 100/500 8/ C8051F k /8 100/500 8/ C8051F206 8k / 100/ 32/ 2 C8051F220 8k / 100/ 32/ 2 C8051F221 8k / 100/ 22/ 2 C8051F226 8k / 100/ 32/ 2 C8051F230 8k / / / 2 C8051F231 8k / / / 2 C8051F236 8k / / / 2 C8051F300 8k / 500/ 8/ 1 C8051F301 8k / / / 1 C8051F302 8k / 500/ 8/ 1 C8051F303 8k / / / 1 Elektronika Praktyczna 1/

25 P O D Z E S P O Ł Y Tab. 2. Zestawienie wyposażenia dostępnych wariantów mikrokontrolerów firmy Cygnal cd. Interfejsy szeregowe Przetwornik C/A Oznaczenie Pojemność Pojemność SMBus/ SPI UART Inne Timery PCA Stabilność Liczba Roz Częstotli Liczba Roz Liczba Kompa pamięci pamięci /I2C (16 b) wbudowa cyfro dziel wość prze wejść dziel wyjść rator Flash RAM nego gene wych czość twarzania analo czość [B] [B] ratora I/O A/C (khz) gowych C8051F304 4k / / / 1 C8051F305 2k / / / 1 C8051F310 16k / 200/ 21/ 2 C8051F311 16k / 200/ 17/ 2 C8051F320 16k USB 4 0, / 200/ 17/ 2 C8051F321 16k USB 4 0, / 200/ 13/ 2 C8051F330 8k / 200/ 16/ C8051F331 8k / / / 1 72 Elektronika Praktyczna 1/2003

26 P O D Z E S P O Ł Y O JTAG u słów kilka Najpopularniejszy obecnie interfejs wykorzystywany do testowania i programowania (konfigurowania) w systemie układów znany pod akronimem JTAG, powstał w końcu lat 80. Prace prowadzone przez Joint Test Action Group miały na celu opracowanie systemu umożliwiającego testowanie złożonych modułów cyfrowych po ich zmontowaniu na płytkach drukowanych. Twórcy interfejsu JTAG założyli, że nie ma potrzeby szczegółowego testowania wewnętrznych fragmentów układów, o których poprawną pracę powinien zadbać projektant na etapie projektowania struktury logicznej. Testowanie funkcjonalne, z małymi wyjątkami, ograniczono do weryfikacji stanów logicznych w komórkach wejściowych i wyjściowych testowanych układów. Stąd właśnie BST, skrótowa nazwa najważniejszej cechy i funkcji interfejsu JTAG, która jest akronimem od Boundary Scan Testing, co należy rozumieć jako testowanie metodą ścieżki krawędziowej. Duża elastyczność i łatwość stosowania interfejsu JTAG, możliwość łatwego, praktycznie nieograniczo nego zwiększania jego funkcjonalności i powszechne uznanie jakim cieszył się na rynku spowodowały, że komitet normalizacyjny IEEE przyjął w 1990 roku normę IEEE , w której zdefiniowano jego strukturę i sposób sterowania. Typowe dla JTAG a procesy, tzn. testowanie i programowanie (konfigurowanie) układów z interfejsem JTAG przebiegają w podobny sposób. Najważniejsza różnica pomiędzy nimi polega na wykorzystaniu podczas testowania rejestrów ścieżki krawędziowej, a podczas programowania (konfiguro wania) rejestrów ISP. Twórcy interfejsu JTAG przewidzieli możliwość jednoczesnego programowania lub testowania wielu układów. W takim przypadku należy je połączyć kaskadowo w łańcuch BST (ścieżki krawędziowej), jak to pokazano na rys. 1. Każdy układ z interfejsem zgodnym ze standardem JTAG musi być wyposażony w 1 bitowy rejestr obejściowy (bypass). To właśnie dzięki temu rejestrowi istnieje możliwość operowania na układach dowolnie wybranych z całego łańcucha. Fot. 6 Podstawowe oprogramowanie narzídziowe, czyli: Code Wizard (program u³atwiaj¹cy konfigurowanie peryferiûw mikrokontrolerûw zarûwno w jízyku C jaki i w asemblerze - rys. 7), úrodowisko projektowe Keil (wersja ewaluacyjna z ograniczeniami dla programûw pisanych w C) oraz program FlashUtil s³uø¹cy do programowania pamiíci Flash. Rys. 7 Podsumowanie Mikrokontrolery prezentowane w artykule s¹ kolejnym przyk³adem pod- waøaj¹cym popularne stwierdzenia, øe rdzeò '51 jest przestarza³y. Projektanci z firmy Cygnal dowiedli, øe wprowadzenie unowoczeúnieò w budowie rdzenia mikrokontrolera i wyposaøenie go w dopracowane modu- ³y peryferyjne pozwala korzystaê programistom z dotychczasowego dorobku bez ryzyka utkniícia w historycznej ìniszyî. Piotr Zbysiñski, AVT piotr.zbysinski@ep.com.pl Dodatkowe informacje Dodatkowe materia³y i informacje mo na znaleÿæ na internetowej stronie producenta: Styk fizyczny interfejsu JTAG składa się z zaledwie 4 lub 5 pojedynczych, jednokierunkowych linii sygnałowych. Ciężar realizacji algorytmów sterujących wymianą informacji w łańcuchu JTAG jest rozłożony pomiędzy program sterujący pracą interfejsu oraz blok TAP wraz z elementami towarzyszącymi, w które wyposażono układy ISP. Dzięki temu typowe programatory konfiguratory układów programowanych w systemie zawierają zazwyczaj tylko bufory zabezpieczające przed uszkodzeniem wyjścia portu równoległego komputera (LPT). Niektórzy producenci oferują także konwertery RS232< >JTAG oraz nowocześniejsze konwertery USB< >JTAG, których jedną z zalet jest możliwość pracy plug&play. Elektronika Praktyczna 1/

27 S P R Z Ę T NieliniowoúÊ charakterystyki wejúciowej wiíkszoúci zasilaczy urz¹dzeò elektronicznych wynika z ich budowy, ktûra jest oparta zazwyczaj na przetwornicy impulsowej AC/DC. Taki sposûb przetwarzania energii - oprûcz wielu zalet - ma tí wadí, øe nastípuje zniekszta³cenie sinusoidalnego przebiegu pr¹du zasilaj¹cego, co powoduje wprowadzanie do sieci sygna³ûw harmonicznych czístotliwoúci podstawowej. WystÍpowanie sygna³ûw o czístotliwoúciach harmonicznych jest przyczyn¹ niepoø¹danych zjawisk, jak np.: przegrzewania przewodu neutralnego, zadzia³ania zabezpieczeò, pogorszenia warunkûw pracy transformatora zasilaj¹cego itd. Nie wolno lekcewaøyê tych sygna³ûw i stosowaê w miarí posiadanych moøliwoúci úrodki, ktûre z³agodz¹ skutki ich obecnoúci. Aby dokonaê prawid³owej diagnozy i zapobiec kolejnym, niekiedy bardzo kosztownym ze wzglídu na konsekwencje zdarzeniom, naleøy w pierwszej kolejnoúci poznaê zjawisko, a nastípnie na podstawie uzyskanych informacji dobraê w³aú- Fot. 1 Fot. 2 ciwe úrodki zapobiegawcze. Analizator i rejestrator parametrûw sieci elektrycznej jest bardzo przydatny podczas pierwszej fazy takich dzia- ³aÒ. W artykule opisano dwa najnowsze przyrz¹dy tego typu z oferty w³oskiej firmy HT Italia - Energytest 2020E (fot. 1) oraz Skylab 9032 (fot. 2). Duøe moøliwoúci funkcjonalne obu przyrz¹dûw pozwalaj¹ traktowaê je jako mierniki parametrûw sieci, oscyloskopy, analizatory harmonicznych, rejestratory parametrûw sieci lub rejestratory anomalii napiíciowych (tylko Skylab 9032). Oba przyrz¹dy s³uø¹ do pomiarûw parametrûw zarûwno w instalacjach jednofazowych, jak i trûjfazowych. Miernik parametrûw sieci Wyboru parametrûw dokonuje sií prze³¹cznikiem obrotowym. Operator ma do wyboru nastípuj¹ce pomiary: Pomiar napiíê Zakres mierzonych parametrûw zaleøy od tego czy kontrolowana jest instalacja jedno-, czy trûjfazowa (rys. 3). Firmy nadzoruj¹ce funkcjonowanie duøych sieci komputerowych borykaj¹ sií z zak³ûceniami pracy odbiornikûw energii elektrycznej (komputerûw, UPS-Ûw itp.) oraz nieprawid³owym dzia³aniem zabezpieczeò w sieci zasilaj¹cej. W wielu przypadkach jest to spowodowane do³¹czonymi do instalacji elektrycznej urz¹dzeniami elektronicznymi, ktûre stanowi¹ dla niej obci¹øenie nieliniowe. W instalacji jednofazowej s¹ jednoczeúnie w czasie rzeczywistym mierzone i wyúwietlane: wartoúê skuteczna napiícia zmiennego dla przebiegûw odkszta³conych (tzw. True RMS), wartoúê szczytowa napiícia, wspû³czynnik ca³kowitych zniekszta³ceò harmonicznych dla napiícia T hdv oraz czístotliwoúê. W instalacji trûjfazowej mierzone i wyúwietlane s¹: wartoúci skuteczne napiíê True RMS dla wszystkich faz, wartoúci skuteczne napiíê miídzyfazowych True RMS oraz czístotliwoúê sieci. Dodatkowo na ekranie jest wyúwietlana informacja o kierunku wirowania faz. Miernikami moøna mierzyê napiícia zarûwno w sieci trûjfazowej trûjprzewodowej, jak i czteroprzewodowej (z przewodem neutralnym). Pomiar pr¹dûw Zakres mierzonych parametrûw, podobnie jak dla pomiaru napiíê, zaleøy od tego czy kontrolowana jest instalacja jedno-, czy trûjfazowa. W instalacji jednofazowej s¹ jednoczeúnie w czasie rzeczywistym mierzone i wyúwietlane: wartoúê skuteczna pr¹du zmiennego True RMS, wartoúê szczytow¹ pr¹du, wspû³czynnik ca³kowitych zniekszta³ceò harmonicznych dla pr¹du T hdi oraz czístotliwoúê. 65

28 S P R Z Ę T W instalacji trûjfazowej mierzone i wyúwietlane s¹: wartoúci skuteczne pr¹dûw True RMS we wszystkich fazach, wartoúê skuteczna pr¹du True RMS w przewodzie neutralnym oraz czístotliwoúê sieci. Miernikami moøna przeprowadzaê pomiary pr¹dûw zarûwno w sieci trûjfazowej trûjprzewodowej, jak i czteroprzewodowej (z przewodem neutralnym). Pomiar mocy Zakres mierzonych parametrûw, rûwnieø w tym przypadku, zaleøy od tego czy kontrolowana jest instalacja jedno-, czy trûjfazowa. Podczas pomiaru parametrûw w instalacji jednofazowej jednoczeúnie, w czasie rzeczywistym s¹ mierzone i wyúwietlane wartoúci skuteczne True RMS napiícia i pr¹du zmiennego, wartoúê mocy czynnej, mocy biernej, mocy pozornej, wspû³czynnika mocy cosφ oraz wspû³czynnika mocy obliczonego na podstawie k¹ta przesuniícia fazowego. Dla sieci trûjfazowej s¹ mierzone te same parametry jak w sieci jednofazowej, lecz dotycz¹ce kaødej z trzech faz oraz dodatkowo: ca³kowita moc czynna, ca³kowita moc bierna, ca³kowita moc pozorna, ca³kowity wspû³czynnik mocy cosφ, ca³kowity wspû³czynnik mocy obliczony na podstawie k¹tûw przesuniíê fazowych oraz informacja o kierunku wirowania faz. Miernikami moøna przeprowadzaê pomiary mocy zarûwno w sieci trûjfazowej trûjprzewodowej, jak i czteroprzewodowej (z przewodem neutralnym). Rys. 4. Widoki ekranów z informa cją o szczytowym zapotrzebowa niu na energię Pomiar energii Podczas pomiarûw energii w instalacji jednofazowej jednoczeúnie, w czasie rzeczywistym, s¹ mierzone i wyúwietlane: Rys. 3. Widoki ekranów przy pomiarze napięcia w układzie jednofazowym, trójfa wartoúê energii czynnej, energii biernej zowym trójprzewodowym oraz trójfazo wym czteroprzewodowym o charakterze pojemnoúciowym, energii biernej o charakterze indukcyjnym, mocy czynnej, mocy biernej, mocy pozornej, wspû³czynnika mocy cosφ oraz wspû³czynnika mocy obliczonego na podstawie k¹ta przesuniícia fazowego. Dla sieci trûjfazowej s¹ mierzone te same parametry jak w sieci jednofazowej, lecz dotycz¹ce kaødej z trzech faz oraz dodatkowo: ca³kowita energia czynna, ca³kowita energia bierna o charakterze pojemnoúciowym, ca³kowita energia bierna o charakterze indukcyjnym, ca³kowita moc czynna, ca³kowita Podczas przetwarzania AC/DC następuje zniekształcanie sinusoidalnego przebiegu prądu zasilające go, w następstwie czego do sieci wprowadzane są sygnały harmoniczne częstotliwości podstawowej. moc bierna, ca³kowita moc pozorna, ca³kowity wspû³czynnik mocy cosφ oraz ca³kowity wspû³czynnik mocy obliczony na podstawie k¹tûw przesuniíê fazowych. Miernikami moøna przeprowadzaê pomiary energii zarûwno w sieci trûjfazowej trûjprzewodowej, jak i czteroprzewodowej (z przewodem neutralnym). Jeøeli przyrz¹dy s¹ do³¹czone do sieci trûjfazowej i znajduj¹ sií w trybie rejestrowania parametrûw sieci, wûwczas moøna wywo³aê na ekran informacje o szczytowym zapotrzebowaniu na energií w okresie od pocz¹tku bieø¹cej rejestracji (rys. 4). Wyúwietlana jest maksymalna wartoúê úrednia ca³kowitej mocy czynnej lub pozornej w okresie uúredniania, czas i data zarejestrowania wartoúci maksymalnej oraz wartoúê ca³kowitej energii czynnej lub pozornej zmierzonej od pocz¹tku bieø¹cej rejestracji. Podstawowe parametry sieci moøna úledziê w czasie rzeczywistym na komputerze, korzystaj¹c z programu Toplink (rys. 5). Rys. 5. Widok ekranu programu Toplink podczas kontroli parametrów sieci Oscyloskop Operator podczas pomiaru napiíê, pr¹dûw oraz mocy moøe skorzystaê z dodatkowej funkcji przyrz¹du - oscyloskopu. W tym trybie moøna obserwowaê w czasie rzeczywistym kszta³t przebiegu napiícia i/lub pr¹du w wybranej fazie (rys. 6). Przyrz¹dy wyúwietlaj¹ przebieg z rozdzielczoúci¹ 128 prûbek na okres. Przebieg jest odúwieøany z czístotliwoúci¹ jeden raz na piíê sekund. DziÍki tej funkcji moøna zgrubnie analizowaê na bieø¹co przebieg sygna³u oraz obserwowaê przesuniície fazowe. Przebiegi pr¹dûw i napiíê moøna rûwnieø úledziê w czasie rzeczywistym na komputerze, korzystaj¹c z programu Toplink (rys. 7). Analizator harmonicznych Podczas pomiaru napiícia lub pr¹du przyrz¹dy umoøliwiaj¹ obserwacjí i pomiar harmonicznych zawartych w sygnale. W tym trybie pracy mierniki przeprowadzaj¹ szybk¹ analizí Fouriera (FFT), a na ekranie w czasie rzeczywistym wyúwietlany jest histogram (wykres s³upkowy) informuj¹cy o procentowej zawartoúci poszczegûlnych harmonicznych w sygnale (rys. 8). Analiza zawartoúci harmonicznych jest przeprowadzana do 49. harmonicznej. Jeøeli do wejúê miernikûw jednoczeúnie doprowadzano napiície Rys. 6. Widoki ekranów oscyloskopu przy pomiarze napięcia w układzie jednofazo wym, trójfazowym trójprzewodowym, trójfazowym czteroprzewodowym 66

29 S P R Z Ę T Rys. 8. Widoki ekranów z histogramem w ukła dzie jednofazowym, trójfazowym trójprzewodo wym, trójfazowym czteroprzewodowym Rys. 7. Widok ekranu programu Toplink z prze biegami prądu i napięcia i pr¹d, wûwczas na ekranie przyrz¹dûw mog¹ pojawiê sií ujemne wartoúci harmonicznych. Oznacza to, øe napiície zawiera sk³adowe generowane przez obci¹øenie. Pierwsza kolumna histogramu (h 00 ) informuje o sk³adowej sta³ej sygna³u, natomiast ostatnia kolumna zawiera dane o T hd - wspû³czynniku ca³kowitych zniekszta³ceò harmonicznych (uwzglídniaj¹cym 40 harmonicznych zgodnie z norm¹ PN-EN50160) danego przebiegu. ZawartoúÊ harmonicznych w sygnale moøna úledziê w czasie rzeczywistym na komputerze, korzystaj¹c z programu Toplink. Rejestrator parametrûw sieci Energytest 2020E oraz Skylab 9032 wyposaøono w pamiíê wynikûw pomiarûw oraz dwukierunkowy interfejs transmisji szeregowej RS232. Skonfigurowanie procesu rejestracji moøna przeprowadzaê zarûwno z poziomu miernika, jak i komputera. Natomiast analizí zarejestrowanych danych wykonuje sií na komputerze po uprzednim przes³aniu danych z pamiíci miernika na twardy dysk komputera. W sk³ad wyposaøenia standardowego przyrz¹du wchodzi oprogramowanie TopLink z opisami w jízyku polskim, ktûre obs³uguje transmisjí danych zarûwno uprzednio zapisanych w pamiíci przyrz¹du, jak i kontrolowanych w czasie rzeczywistym. Oprogramowanie umoøliwia rûwnieø sterowanie miernikiem z poziomu komputera (rys. 9). Przyrz¹dy jednoczeúnie rejestruj¹ do 64 parametrûw sieci: napiícia, pr¹dy, zwi¹zane z nimi harmoniczne - do 49 w³¹cznie, moce czynne, bierne i pozorne, energie czynne i bierne, wartoúci wspû³czynnika mocy cosφ oraz wspû³czynnika mocy obliczonego na podstawie k¹tûw przesuniíê fazowych. Mierniki moøna skonfigurowaê tak, øe bíd¹ przygotowane na stan tzw. kogeneracji. Oznacza to, øe obci¹øenie podczas trwania pomiaru moøe generowaê lub pobieraê energií. W zwi¹zku z powyøszym, przyrz¹dy bíd¹ rejestrowa³y w czasie moc i energií zarûwno generowan¹, jak i pobieran¹. Operator moøe wybraê te spoúrûd parametrûw systemu elektrycznego, ktûre zamierza rejestrowaê. Wyboru moøe dokonaê z poziomu miernika lub komputera. Pe³ny cykl pomiarowy wynosi 60 ms (dla instalacji trûjfazowej) lub 20 ms (dla instalacji jednofazowej). Podczas jednego cyklu przyrz¹dy rejestruj¹ wszystkie wybrane parametry, prûbkowane z czístotliwoúci¹ 6400 Hz, aby zapewniê wymagan¹ dok³adnoúê pomiaru. Odpowiada to 128 punktom na 20 ms. Magazynowanie wszystkich danych wymaga- ³oby pamiíci o ogromnej pojemnoúci. Z tego powodu w przyrz¹dach zastosowano metodí zapisu, ktûra znacznie zmniejsza objítoúê pamiítanej informacji. Metoda ta polega na uúrednianiu rejestrowanych parametrûw w czasie nazywanym okresem uúredniania. Operator definiuje czas trwania okresu uúredniania, wybieraj¹c jedn¹ z dostípnych wartoúci z zakresu od 5 do 3600 s. NastÍpnie analizowane s¹ dane zgromadzone w okresie uúredniania oraz wyszukiwane i obliczane dla kaødego parametru wartoúci: minimalna, maksymalna oraz úrednia. W³aúnie te informacje natychmiast po up³yniíciu kaødego kolejnego okresu uúredniania s¹ zapisywane w pamiíci przyrz¹du. Taka metoda kompresji danych zapewnia znaczne wyd³uøenie czasu rejestrowania parametrûw - w najbardziej skrajnym wariancie jest moøliwy ci¹g³y zapis wartoúci mierzonej przez 1000 dni. Rejestrator anomalii napiíciowych Jedn¹ z funkcji rejestratora parametrûw systemûw elektrycznych, spotykan¹ w autonomicznych urz¹dzeniach, jest rejestracja anomalii napiíciowych. Jest to cecha, ktûr¹ posiada wy³¹cznie Skylab Operator moøe uruchomiê tí funkcjí, rejestruj¹c rûwnoczeúnie wybrane parametry elektryczne systemu. Tab. 1. Wybrane parametry Energytest 2020E oraz Skylab 9032 Parametr Zakres pomiarowy Dokładność Napięcie zmienne i stałe 600V ±(0,5% + 2 cyfry) Anomalie napięciowe 600V ±(0,5% + 2 cyfry) (tylko Skylab 9032) ±10ms Prąd zmienny 1000A (opcjonalnie 3000A) ±(0,5% + 2 cyfry) Moc czynna 999,9MW ±(1,0% + 2 cyfry) Moc bierna 999,9MVAR ±(1,0% + 2 cyfry) Moc pozorna 999,9MVA ±(1,0% + 2 cyfry) Energia czynna 999,9MWh ±(1,0% + 2 cyfry) Energia bierna 999,9MWARh ±(1,0% + 2 cyfry) Cos ϕ do 0,20 0,6 o od 0,20 do 0,50 0,7 o od 0,50 do 0,80 1 o Harmoniczne do 25 ±(5% + 2 cyfry) od 26 do 33 ±(10% + 2 cyfry) od 34 do 49 ±(15% + 2 cyfry) 68

30 S P R Z Ę T Rys. 9. Przykład ekranu programu Toplink podczas ustalania parametrów rejestracji wczeúniej, posiadaj¹ w standardowym wyposaøeniu trzy przek³adniki pr¹dowe 1000A - elastyczne (tzw. flexi) dla Skylaba 9032 lub standardowe dla Energytesta 2020E, zestaw przewodûw do pomiaru napiíê oraz solidny futera³. Kaødy miernik jest wyposaøony w indywidualne úwiadectwo potwierdzaj¹ce sprawdzenie wykonane przez laboratorium (z wdroøonym ISO9001) akredytowane przez w³oski urz¹d miar. åwiadectwo potwier- W pierwszej kolejnoúci ustalane s¹ wartoúci progowe napiícia. Przyrz¹d rozpoznaje jako anomalií wszystkie te zjawiska, podczas ktûrych wartoúê skuteczna napiícia wykracza poza ustalone wartoúci progowe przez okres d³uøszy od 10 ms. Dla kaødego zdarzenia miernik podaje informacjí o kierunku zmiany (przepiície lub spadek), datí, czas rozpoczícia, czas trwania zjawiska z rozdzielczoúci¹ do jednej setnej sekundy oraz minimaln¹ lub maksymaln¹ wartoúê napiícia podczas zjawiska (rys. 10). Przyrz¹dy oprûcz oprogramowania Toplink oraz zasilacza sieciowego, o ktûrych wspomniano Rys. 10. Przykład ekranu progra mu Toplink podczas wyświetlania informacji o anomaliach napięcio wych dza zgodnoúê parametrûw przyrz¹du z podanymi w instrukcji obs³ugi. Mierniki uzyska³y certyfikat typu G³Ûwnego UrzÍdu Miar w Warszawie. Dokument ten pozwala na okresow¹ weryfikacjí parametrûw (tzw. uwierzytelnienie) przez jednostki terenowe GUM. Przyrz¹dy posiadaj¹ wysok¹ dok³adnoúê, dziíki czemu spe³niaj¹ wymagania norm PN-EN61036 ìliczniki statyczne energii czynnej pr¹du przemiennegoî (klasa 2) oraz IEC1268 (klasa 3) i mog¹ byê rûwnieø uøywane do weryfikowania wskazaò licznikûw energii elektrycznej. Tomasz Koczorowicz Tomtronix Dodatkowe informacje Dystrybutorem przyrz¹dów prezentowanych w artykule jest Tomtronix, tel. (42) , 70

31 P R O G R A M Y część 1 Projektowanie p³ytek drukowanych do produkowanych obecnie uk³adûw elektronicznych jest zadaniem niezwykle z³oøonym. Aby sprostaê wysokim wymaganiom dotycz¹cym jakoúci i niezawodnoúci danego urz¹dzenia oraz prostoty jego montaøu podczas produkcji, powszechnie stosuje sií specjalistyczne oprogramowanie wspomagaj¹ce projektowanie obwodûw drukowanych. MoøliwoúÊ zastosowania techniki komputerowej w fazie tworzenia projektu nowego urz¹dzenia pozwala nie tylko na znaczne skrûcenie czasu potrzebnego na jego opracowanie, ale takøe na wyeliminowanie ewentualnych b³ídûw konstrukcyjnych juø w fazie tworzenia projektu. Jednym z podstawowych czynnikûw wp³ywaj¹cych na jakoúê i parametry nowoczesnych urz¹dzeò elektronicznych jest prawid³owo zaprojektowana p³ytka drukowana. Dotyczy to szczegûlnie uk³adûw z sygna- ³ami o wysokich czístotliwoúciach, w ktûrych mozaika úcieøek p³ytki bezpoúrednio wp³ywa na parametry ca³ego uk³adu. Podczas projektowania tego rodzaju p³ytek drukowanych niejednokrotnie waøne jest okreúlenie rezystancji i pojemnoúci úcieøek, rezystancji izolacji miídzy úcieøkami, rûwnoleg³oúci úcieøek na tej samej warstwie i miídzy warstwami, minimalna i maksymalna d³ugoúê úcieøek, minimalne i maksymalne czasy propagacji, pojemnoúci pasoøytnicze, impedancje úcieøek czy ekranowanie úcieøek sygna³owych. Na rynku dostípnych jest kilka licz¹cych sií programûw wspomagaj¹cych projektowanie obwodûw drukowanych PCB. WiÍkszoúÊ z nich zawiera zwykle modu³ edytora PCB, ktûry wraz z do³¹czonymi bibliotekami umoøliwia ìwstípn¹ obrûbkíî projektowanej p³ytki oraz modu³ routera pozwalaj¹cego na ríczne i automatyczne wytyczenie po³¹czeò (úcieøek) pomiídzy poszczegûlnymi elementami elektronicznymi uk³adu. Jak to zwykle bywa, moøliwoúci poszczegûlnych programûw oraz funkcje w jakie s¹ one wyposaøone s¹ doúê zrûønicowane. G³Ûwnym modu³em, ktûrego parametry decyduj¹ zwykle o ìsileî programu jest modu³ autoroutera. W tym i kilku kolejnych artyku- ³ach zaprezentujemy moøliwoúci autoroutera Specctra firmy Cadence Design Systems. Moøna powiedzieê, øe program ten naleøy do klasycznych w swoim rodzaju i w³aúciwie od czasu ukazania sií, aø do dzisiaj jest najlepszym autorouterem dostípnym na rynku. Elektronik projektuj¹cy uk³ady elektroniczne ma dziú do wyboru wiele narzídzi wspomagaj¹cych jego prací. Na kaødym etapie realizacji projektu - moøe z wyj¹tkiem przygotowania koncepcji, ktûra rodzi sií w g³owie inøyniera - a wiíc rysowania schematu, symulacji blokûw funkcjonalnych i projektowania odpowiedniego obwodu drukowanego, jest wykorzystywany komputer. Najbardziej ømudnym etapem pracy, w ktûrym zastosowanie techniki komputerowej jest nieodzowne, jest projektowanie p³ytki drukowanej. Specctra jest obecnie dostarczana przez koncern Cadence, ale nie jest on twórcą tego oprogramowa nia. Powstało ono bowiem w firmie CCTech, założonej w 1989 roku przez dwóch inżynierów: Davida Chyana oraz Johna Coopera. W 1997 roku firma CCTech została wchłonięta przez koncern Cadence Design Systems. Rys. 1. Specctra główne okno programu 59

32 P R O G R A M Y Rys. 2. System Grid Mapped (z lewej) oraz ShapeBased (z pra wej). Jak widać, aplikacja Grid Mapped musi analizować 72 punkty, aby zobrazować 12 obiektów Wprowadzenie Autorouter Specctra (rys. 1) jest aktualnie najlepszym autorouterem wykorzystywanym w profesjonalnych systemach do projektowania p³ytek drukowanych. Decyduj¹ o tym ogromne moøliwoúci tego programu. Specctra, z za³oøenia przeznaczona do tworzenia gísto upakowanych p³ytek drukowanych, wymagaj¹cych zachowania regu³ projektowych odpowiednich dla uk³adûw wysokoczístotliwoúciowych, oparta jest na technologii shape-based pozwalaj¹cej na uzyskanie maksymalnej skutecznoúci i uøytecznoúci w sensie maksymalnego wykorzystania trasowanego obszaru. Idea technologii shape-based opiera sií na zasadzie traktowania wszystkich elementûw, ktûre maj¹ wyst¹piê na tworzonym druku, takich jak pady SMD, pady przelotowe, úcieøki, obszary miedzi itd., jako bazowych kszta³tûw geometrycznych (rys. 2), co pozwala na osi¹gniície bardzo wysokiego stopnia kompletacji úcieøek w bardzo gísto upakowanych drukach. W przeciwieòstwie do routerûw rastrowych, Specctra angaøuje wiíc w trakcie pracy o wiele mniej pamiíci, co zdecydowanie poprawia prídkoúê dzia³ania programu. Poniewaø Specctra ³¹czy regu³y projektowe z kszta³tami geometrycznymi (kaødy obiekt-kszta³t moøe byê zwi¹zany z zestawem regu³ narzucaj¹cych routerowi przymusy zwi¹zane np. z odstípami, orientacj¹ obiektûw czy szerokoúci¹ úcieøek i parametrami, takimi jak: zaleønoúci czasowe, szumy, przes³uchy itp.), nie trzeba rícznie stosowaê tych regu³, tak jak w starych routerach rastrowych. Dodatkowym atutem Specctry jest Podstawą nowatorskiej technologii shape based jest traktowanie wszystkich elementów, które mają wystąpić na tworzonym druku, jako bazowych kształtów geometrycznych, co pozwala na osiągnięcie bardzo wysokiego stopnia kompletacji ścieżek w bardzo gęsto upakowanych drukach. moøliwoúê trasowania úcieøek niezaleønie od rastra (siatki), co rûwnieø poprawia parametry programu dotycz¹ce zuøycia pamiíci, szybkoúci i stopnia kompletacji úcieøek. WiÍkszoúÊ klasycznych autorouterûw grid-based prûbuje wykonaê wszystkie po³¹czenia, nie pozwalaj¹c podczas kolejnych przejúê na powstawanie krzyøowaò úcieøek oraz konfliktûw zwi¹zanych z zachowaniem zadanych odstípûw (np. úcieøka - úcieøka czy úcieøka - element). Specctra podczas pracy uøywa metody kolejnych przybliøeò (adaptive routing). W pierwszym przejúciu program prûbuje wytyczyê wszystkie úcieøki niezaleønie od ich krzyøowaò i konfliktûw dystansowych. W kaødym kolejnym przejúciu nastípuje redukcja wystípuj¹cych konfliktûw. W drodze do uzyskania 100% kompletacji, autorouter wykorzystuje algorytmy push-and-shove oraz rip-up-and-retry. Oznacza to, øe w przypadku napotkania problemu, koliduj¹ca úcieøka jest najpierw odsuwana w bok, tak aby moøliwe by³o wytyczenie aktualnie prowadzonej, a jeøeli to nie daje pozytywnych rezultatûw, koliduj¹ca úcieøka jest zrywana i wytyczana w innym miejscu. W kaødym przejúciu gromadzone s¹ dodatkowo informacje odnoúnie obszarûw, na ktûrych wystípuj¹ jeszcze konflikty, oraz o poszczegûlnych konfliktach. Informacje te s¹ dziedziczone i przekazywane do kolejnej fazy (przejúcia) w celu uzyskania 100% sukcesu. W wariancie podstawowym Specctra jest kompletnym systemem do automatycznego i interaktywnego wytyczania po³¹czeò na p³ytkach drukowanych i w zaleønoúci od wersji umoøliwia projektowanie p³ytek 6- lub 256-warstwowych z nielimitowan¹ liczb¹ wyprowadzeò. Wariant podstawowy zawiera trzy podmodu³y: autorouter, interactive route editor oraz interactive placement editor. Autorouter zachowuje i stosuje w trakcie dzia³ania wszystkie podstawowe regu³y, ktûre mog¹ byê oczywiúcie narzucane przez uøytkownika, takie jak szerokoúê úcieøek, odstípy pomiídzy úcieøkami oraz inne odstípy jakie maj¹ byê zachowane na etapie routowania, klasy úcieøek itd. PoszczegÛlne regu³y mog¹ byê stosowane w odniesieniu do ca³ej p³ytki lub okreúlonych jej obszarûw. Wariant podstawowy Specctry pozwala rûwnieø na automatyczne wstípne odprowadzanie úcieøek od gísto upakowanych elementûw typu SMD (fanout), przy czym projektant ma moøliwoúê okreúlania d³ugoúci i kierunku odprowadzeò, oraz na automatyczne wytyczanie úcieøek poprzez obszary, ktûre poprzednio by³y routowane rícznie. Interactive route editor podobnie jak autorouter dzia³a w technologii shape-based i umoøliwia manualne wytyczanie úcieøek i przejúê miídzy warstwami. RÍczne trasowanie po- ³¹czeÒ wsparte jest dodatkowymi funkcjami, ktûre maj¹ za zadanie przyspieszyê i u³atwiê proces projektowania w trybie interactive. Na przyk³ad funkcja plowing powoduje automatyczne odsuwanie ìprzeszkadzaj¹cychî úcieøek na bok, umoøliwiaj¹c u³oøenie aktualnie prowadzonej. Odsuwana úcieøka lub ca³y segment moøe byê rûwnieø pchana przed kursorem w przypadku prostopad³ego najazdu kursorem. Funkcja shoving powoduje natomiast przesuwanie pojedynczych úcieøek lub ca³ych segmentûw ³¹cznie z przelotkami i przerzucanie ich przez przeszkody, np. inne úcieøki, przelotki czy wyprowadzenia. Interactive placement editor pozwala na ríczne rozmieszczanie elementûw na p³ytce, umoøliwiaj¹c w ten sposûb planowanie i modyfikacjí druku pod k¹tem umiejscowienia elementûw. Oprogramowanie posiada odpowiednie funkcje wspieraj¹ce ten etap projektowania. Jedn¹ z nich jest funkcja guided place. Jej dzia³anie polega na wskazywaniu uøytkownikowi najlepszej Rys. 3. Zastosowanie przelotek pod padami SMD (z prawej) 60

33 P R O G R A M Y Rys. 4. Przelotka w technologii tradycyjnej through hole oraz Microvia (po prawej) lokalizacji dla kaødego z elementûw, pocz¹wszy od tego, ktûry ma najwiíksz¹ gístoúê po³¹czeò. Analiza, na podstawie ktûrej funkcja rozmieszcza komponenty, przeprowadzana jest zgodnie z regu³ami i parametrami narzuconymi dla danego projektu. Uøytkownik moøe zaakceptowaê po³oøenie elementu(-ûw) lub odrzuciê rezultat dzia³ania guided place i umieúciê dany element w dowolnym miejscu na p³ytce wy³¹cznie rícznie. Interactive placement editor umoøliwia rûwnieø wykonywanie wszystkich podstawowych operacji typu przerzucanie, obracanie, szeregowanie czy popychanie komponentûw. Elementy moøemy przenosiê w dowolne miejsce p³ytki indywidualnie lub grupami. Moøliwe jest takøe umieszczanie elementûw na p³ytce na podstawie wspû³rzídnych X, Y i kotwiczenie ich w razie koniecznoúci. Specctra pozwala rûwnieø na definiowanie i narzucanie parametrûw termicznych, mechanicznych, itp. dla okreúlonych przez uøytkownika obszarûw p³ytki. Funkcja density pozwala na zweryfikowanie poprawnoúci rozmieszczenia elementûw na p³ytce pod k¹tem gístoúci po³¹czeò w danym obszarze, z jak¹ bídzie musia³ poradziê sobie autorouter. ìwzmocnieniaî Dodatkowe modu³y, ktûrymi moøe byê ìwzmocnionyî podstawowy autorouter (AR6U lub AR256U), pozwalaj¹ na znaczne zwiíkszenie jego moøliwoúci pod wzglídem efektywnoúci dzia³ania programu, zw³aszcza dla projektûw o duøym stopniu z³oøonoúci, ktûre wymagaj¹ Obecnie Specctra dostępna jest w dwóch wersjach handlowych: 6U (sześć warstw i nielimitowana liczba wyprowadzeń) i 256U (256 warstw i nielimitowana liczba wyprowadzeń). spe³nienia zaawansowanych regu³ projektowych. Modu³ AD - Advanced Rules - zawiera bogaty zestaw regu³ pozwalaj¹cych na kompleksow¹ kontrolí parametrûw elektrycznych projektu. Moøna w nim zadawaê szczegû³owe zasady dla poszczegûlnych sk³adowych, takich jak warstwy, przelotki (rys. 3), úcieøki, grupy úcieøek, komponenty itp. DostÍpne s¹ tu zaawansowane funkcje pozwalaj¹ce np. na kontrolí impedancji na poszczegûlnych warstwach p³ytki, kontrolí szerokoúci úcieøek i przes³uchûw pomiídzy nimi. Modu³ Advanced Rules zawiera obecnie wszystkie w³aúciwoúci, ktûre udostípniane by³y poprzednio w module Hybrid. Chodzi miídzy innymi o moøliwoúê tworzenia przelotek zaúlepionych i zagrzebanych oraz pod elementami SMD, moøliwoúê definiowania odstípûw izolacyjnych pomiídzy tego typu przelotkami (znajduj¹cymi sií na tej samej lub rûønych warstwach). Modu³ HP - High Performance - zawiera zestaw zaawansowanych funkcji niezbídnych przy projektowaniu uk³adûw wysokoczístotliwoúciowych. Opcje te dostípne s¹ zarûwno dla autoroutera, jak rûwnieø interactive route editora. MoøliwoúÊ ustalania maksymalnej, minimalnej d³ugoúci úcieøki (-ek) oraz d³ugoúci preferowanej pozwala na kontrolí parametrûw czasowych uk³adu. Podobnie jest z kontrol¹ przes³uchûw pomiídzy úcieøkami (znajduj¹cymi sií na tej samej lub rûønych warstwach), ktûra moøe odbywaê sií na podstawie okreúlonych, zdefiniowanych przez uøytkownika, regu³ projektowych. RÛwnoleg³oúÊ wybranych par úcieøek, odstíp miídzy nimi, ekranowanie (wylewki miedzi) kontrolowane s¹ automatycznie w trakcie dzia³ania autoroutera. Interactive Route Editor obs³uguje routowanie wybranych úcieøek w postaci magistral (z definiowalnym odstípem pomiídzy úcieøkami w magistrali), a takøe automatyczne wytyczanie pojedynczych úcieøek. Specctra wzbogacona o modu³ HP wyúwietla w tym trybie zestaw informacji dotycz¹cych d³ugoúci úcieøek, sygnalizuj¹c ewentualne przekroczenia zadanych wczeúniej parametrûw itp. Odbywa sií to on-line, czyli w trakcie wytyczenia po³¹czenia. Modu³ DF - Design for Manufacturing - s³uøy do optymalizacji projektu pod k¹tem wdroøenia go do Specctra dostępna jest w dwóch wersjach. Obydwie wersje (6U i 256U) mogą być dodatkowo wzmacniane następującymi modułami: AD (Advanced Rules), AP (Autoplace ment), DM (Design for Manufacturing), HP (High Performance) oraz MV (Microvia). produkcji oraz na etapie testowania. DostÍpna jest na przyk³ad bardzo przydatna funkcja mitter pozwalaj¹ca na prowadzenie úcieøek pod k¹tem 45 o oraz ìzaginanieî úcieøek wytyczonych wczeúniej. Poza tym modu³ zapewnia automatyczne dopasowanie (maksymalizacjí) odstípûw: úcieøka-úcieøka oraz úcieøka-obiekt, na dostípnej wolnej przestrzeni w danym miejscu p³ytki, minimalizacjí liczby przelotek oraz automatyczne generowanie punktûw testowych na podstawie zadanych parametrûw. Modu³ MV - Microvia - dostarcza zestaw funkcji pozwalaj¹cych na wykorzystanie technologii Matsushita ALIVH microvia. Technologia Microvia pozwala na znaczne zoptymalizowanie skomplikowanych, kilkuwarstwowych p³ytek zawieraj¹cych np. wielowyprowadzeniowe elementy elektroniczne w obudowach BGA (rys. 4). Wykorzystuj¹c ten modu³, moøemy tworzyê ca³e tablice lub szeregi przelotek usytuowanych bezpoúrednio w padach SMD (pod padami), co oczywiúcie zwiíksza skutecznoúê dzia³ania autoroutera. Przelotki ìúlepeî i ìzagrzebaneî mog¹ byê dodatkowo umiejscowione w tej samej lokalizacji X, Y na rûønych warstwach p³ytki i obs³ugiwane przez wzmocnion¹ w tym module funkcjí fanout. Modu³ AP - Autoplace Option - pozwala na automatyczne rozmieszczanie elementûw na p³ytce bez koniecznoúci podawania ich wspû³rzídnych i skomplikowanej procedury wprowadzania regu³ dla komponentûw o rûønych rozmiarach. Modu³ pozwala na automatyczne rozmieszczanie wybranych komponentûw przy rícznym ustawianiu innych i odwrotnie. RK Dodatkowe informacje Wiêcej informacji mo na uzyskaæ w firmie RK- System, 62

34 R E K L A M A Narzędzia w rękach elektroników część 1 Z punktu widzenia profesjonalisty, ta sama czynnoúê jest postrzegana zupe³nie inaczej: nie jako wyzwanie pozwalaj¹ce sií dowartoúciowaê i nie jako sposûb uzyskania oszczídnoúci, ale jako realne ürûd- ³o utrzymania. Taka perspektywa wymusza zaostrzenie kryteriûw oceny - naprawa musi byê nie tylko skuteczna, ale szybka. EfektywnoúÊ jest przecieø, obok jakoúci, jednym z najwaøniejszych parametrûw profesjonalnego dzia³ania. Rzetelna wiedza, umiejítnoúci, doúwiadczenia pracownika i odpowiednie narzídzia bíd¹ce w jego dyspozycji, to niezbídny ìzestawî úrodkûw profesjonalnej roboty. Zastosowanie w danej sytuacji w³aúciwego narzídzia o odpowiedniej jakoúci moøe usprawniê prací w sposûb wrícz spektakularny. Uøywanie narzídzi nieoptymalnych, a tym bardziej nieodpowiednich dla danej czynnoúci, istotnie wyd³uøa drogí do celu i znacznie zwiíksza ryzyko zaistnienia uszkodzeò elementûw lub podzespo³ûw oraz zranieò pracownika. Jeúli chodzi o klasyczne narzídzia ríczne stosowane w elektronice najczíúciej, to moøna je podzieliê na stosunkowo niewiele grup. S¹ one jednak bardzo licznie reprezentowane przez konstrukcje o rûønorodnych kszta³tach, proporcjach, wymiarach okreúlaj¹cych ich konkretne cechy uøytkowe i wyznaczaj¹cych niejednokrotnie bardzo specjalistyczne przeznaczenie. R¹czki lu- Fot. 1 Jeúli niefachowiec musi naprawiê jakiú niezbyt skomplikowany sprzít domowy czy urz¹dzenie, zazwyczaj pos³uguje sií przypadkowymi narzídziami, wspieraj¹c je wyobraüni¹ i odrobin¹ manualnych zdolnoúci. Liczba podjítych prûb i zuøyty czas nie maj¹ wûwczas specjalnego znaczenia - waøne, øe zamierzony efekt zostanie w koòcu osi¹gniíty. townicze do montaøu i demontaøu elementûw i uk³adûw elektronicznych, szczypce, obcinaczki, písety, wkrítaki, przyrz¹dy do obrûbki izolacji przewodûw wyczerpuj¹ zwykle listí wyposaøenia przeznaczonego do czynnoúci manualnych na stanowisku elektronika. S¹ to narzídzia delikatne - zw³aszcza w porûwnaniu z takimi jak pi³y czy klucze hydrauliczne - nie wymagaj¹ od operatora uøywania znacznych si³, tylko precyzji. WymÛg ten powinien byê spe³niony w moøliwie najszerszym zakresie pozycji pracy. Poniewaø dostíp do pola roboczego bywa niejednokrotnie utrudniony, np. ze wzglídu na ciasn¹ zabudowí przestrzeni wewn¹trz naprawianego urz¹dzenia, to narzídzie powinno byê bardzo elastyczne pod wzglídem moøliwoúci zmiany chwytu, przy zachowaniu pe³nej kontroli nad przeprowadzanymi czynnoúciami. Potocznie rzecz ujmuj¹c - narzídzie powinno byê poríczne. Øeby spe³niê ten postulat, naleøy odpowiednio dobraê wymiary, kszta³ty i proporcje narzídzia, a takøe jego masí i wywaøenie. Duøo uwagi trzeba teø poúwiíciê ríkojeúci. Waøne jest jej dostosowanie do budowy i kinematyki d³oni, zagwarantowanie pewnego i komfortowego chwytu nawet w niekorzystnych warunkach (np. przy obecnoúci brudu, t³uszczûw itp.), zapobieøenie szkodliwemu oddzia³ywaniu wibracji, wyeliminowanie wp³ywu niskich b¹dü wysokich temperatur, minimalizacja ryzyka zranieò oraz oddalenie negatywnych skutkûw zwi¹zanych z d³ugotrwa³ym uøywaniem narzídzia. Ponadto naleøy wykorzystaê naturalne cechy zwi¹zane z budow¹ narzídzia do lepszej organizacji stanowiska pracy i utrzymania na nim porz¹dku, np. otwûr w ríkojeúci wkrítaka umoøliwi odwieszanie go w wyznaczonym miejscu. W fazie projektowania naleøy przewidzieê teø ewentualne k³opoty: przyk³adowy wkrítak od³oøony na pochy³y blat bídzie sií toczy³ ku krawídzi. Spadnie lub nie, ale z pewnoúci¹ odwrûci uwagí pracownika od przeprowadzanej w tym czasie czynnoúci, co moøe prowadziê do znacznych szkûd. W powyøszym przypadku rada jest oczywiúcie prosta, pokazuje on jednak, øe producent musi mieê wiedzí na temat wszelkich uwarunkowaò zwi¹zanych z uøytkowaniem narzídzi, ktûre wytwarza. Dlatego wiod¹ce firmy prowadz¹ systematyczne i szeroko zakrojone badania, obejmuj¹ce takøe d³ugotrwa³e testy w rzeczywistych warunkach produkcyjnych lub serwisowych. Uniwersalne r¹czki lutownicze, oferowane zazwyczaj z duø¹ liczb¹ rûønych koòcûwek umoøliwiaj¹cych montaø i demontaø, zarûwno ele- Fot. 2 57

35 R E K L A M A Fot. 3 mentûw przewlekanych, jak i SMD, oraz r¹czki specjalizowane (takøe wyposaøane w wiele koòcûwek, dedykowanych np. konkretnym typom obudûw uk³adûw scalonych), pozwalaj¹ce istotnie zwiíkszyê tempo pracy bez szkody dla bezpieczeòstwa komponentûw i komfortu pracownika - to asortyment niezbídny do dokonania wyboru optymalnego dla danego zastosowania. Przyk³adem takiej rûønorodnej oferty s¹ produkty firmy PACE, opisywane niedawno na ³amach Elektroniki Praktycznej. Znane s¹ walory ergonomiczne r¹czek tego producenta, a wynikaj¹ one z przyjícia surowych kryteriûw, z ktûrych czíúê jest stosowana wobec narzídzi chirurgicznych. Jak r¹czka PA- CE ìleøy w d³oniî, ilustruje fot. 1. Podczas demontaøu elementûw lub uk³adûw elektronicznych czísto zachodzi potrzeba usuwania roztopionego spoiwa za pomoc¹ odsysacza. R¹czka, ktûra oprûcz roztopienia, umoøliwia odessanie cyny, w oczywisty sposûb usprawnia prací. Juø úrednio zaawansowane stacjonarne urz¹dzenia lutownicze s¹ wyposaøane w kompresor, ktûrego zadaniem jest wytworzenie podciúnienia o wymaganej wartoúci. R¹czka jest po³¹czona ze stacj¹ dwoma przewodami: zasilaj¹cym i pneumatycznym. Jedynym urz¹dzeniem skupiaj¹cym w jednej obudowie r¹czkí, obwody steruj¹ce i kompresor jest rozlutownica Dic Den-On SC7000. Ta wyj¹tkowa zwartoúê i mobilnoúê, czyni¹ j¹ szczegûlnie przydatn¹ podczas prac serwisowych (fot. 2). Operowanie lutownic¹ moøe byê w pewnych warunkach znacznie utrudnione ze wzglídu na obecnoúê przewodu zasilaj¹cego, ograniczaj¹cego ìmanewrowoúêî i zwi¹zane z ni¹ moøliwoúci sprawnego dzia³ania w miejscach szczegûlnie niedostípnych, zw³aszcza gdy operator musi przyj¹ê niewygodn¹ i niestabiln¹ postawí, np. kiedy konieczna jest szybka inter- Fot. 4 wencja serwisowa w warunkach terenowych. Wtedy nieocenionym narzídziem jest lutownica gazowa, gwarantuj¹ca utrzymanie najwaøniejszych parametrûw na poziomie koniecznym dla w pe³ni profesjonalnego dzia³ania, oferuj¹ca teø spor¹ elastycznoúê zastosowaò dziíki wymiennym koòcûwkom, ktûrymi s¹: groty, dysze do wydmuchu gor¹cego powietrza, ìgor¹cy nûøî, koòcûwka do obkurczania koszulek termokurczliwych. Taki zestaw (Portasol Super-Pro) przedstawiono na fot. 3. Gdy brakuje zasilania energi¹ elektryczn¹, lutownica gazowa staje sií wrícz niezast¹piona (fot. 4). O ile domen¹ dzia³ania r¹czek lutowniczych do montaøu i demontaøu jest proces termiczny, to pozosta³e narzídzia ríczne uøywane przez elektronikûw wype³niaj¹ zadania natury mechanicznej: ciície, giície, kszta³towanie wyprowadzeò, przytrzymywanie, pozycjonowanie, zdejmowanie izolacji, przykrícanie i odkrícanie wkrítûw i úrub, czyszczenie itd. NajczÍúciej uøywanym i najliczniej reprezentowanym w ofertach handlowych narzídziom, takim jak: obcinaczki, szczypce, wkrítaki i písety, bídzie poúwiícona nastípna czíúê artyku³u. Marek Kalasiñski Dodatkowe informacje Artyku³ powsta³ na bazie materia³ów udostêpnionych przez firmê Renex, tel./fax: (54) , , 58

36 P O D Z E S P O Ł Y SoC jak to się robi w praktyce? O problemach, jakie staj¹ przed projektantem uk³adûw SoC (System-on-a-Chip), a zw³aszcza o trudnoúciach w znalezieniu gotowych komponentûw, ktûre oszczídz¹ trudu wykonywania ca³ej pracy projektowej od pocz¹tku, pozwalaj¹c oprzeê sií na sprawdzonych i wyprûbowanych rozwi¹zaniach, pisaliúmy w EP10/ Lekarstwem na bol¹czki tego typu jest dzia³alnoúê firm zajmuj¹cych sií dostarczaniem wirtualnych komponentûw. Jedn¹ z takich firm jest Evatronix S.A. W artykule przedstawimy dwa wirtualne komponenty opracowane przez inøynierûw z tej firmy. WúrÛd prezentowanych komponentûw s¹: oúmiobitowy O rûønych wariantach uk³adûw SoC piszemy w EP od d³uøszego czasu. SzczegÛlnie jasn¹ przysz³oúê moøna wrûøyê implementacjom ìsystemûwî na krzemie w uk³adach PLD i ASIC, poniewaø coraz wiíksze grono producentûw tworzy wirtualne komponenty, dziíki ktûrym realizacja nawet bardzo skomplikowanego projektu jest stosunkowo ³atwa. mikrokontroler oraz wspû³pracuj¹cy z nim zmiennoprzecinkowy uk³ad arytmetyczny. R szybki mikrokontroler 8- bitowy Dla aplikacji wymagaj¹cych popularnego, elastycznego i przy tym wydajnego mikro- kontrolera oúmiobitowego firma Evatronix S.A. opracowa³a modu³ szybkiego mikrokontrolera, oznaczony symbolem R Jest on funkcjonalnie w pe³ni zgodny z intelowskim pierwowzorem 80C31, dziíki czemu mog¹ z niego korzystaê szerokie rzesze konstruktorûw zaznajomionych z t¹ popular- 51

37 P O D Z E S P O Ł Y Wirtualny komponent co to jest? Wszyscy bez wyjątku producenci wirtualnych komponentów dostarczają je na rynek w postaci syntezowalnych opisów w językach HDL (Hardware Description Language). Po ich skompilowaniu za pomocą łatwo dostępnych programów narzędziowych EDA, odpowiednio są konfigurowane docelowe (już krzemowe) układy PLD. n¹ architektur¹. Litera R w nazwie komponentu oznacza, øe j¹dro mikrokontrolera R80515 zawiera rozwi¹zania zapoøyczone z architektury RISC. W R80515 zastosowano m.in. przetwarzanie potokowe, zredukowano liczbí cykli potrzebnych do wykonywania rozkazûw, zaimplementowano takøe sprzítow¹ realizacjí funkcji arytmetycznych oraz sterownik pamiíci mog¹cy wspû³pracowaê z pamiíciami synchronicznymi i asynchronicznymi. Schemat blokowy mikrokontrolera R80515 pokazano na rys. 1. RdzeÒ mikrokontrolera, oznaczony na rys. 1 øû³tym prostok¹tem, sk³ada sií z jednostki sterowania (Control_unit) zawieraj¹cej dekoder rozkazûw, jednostki wykonawczej (ALU) realizuj¹cej oúmiobitowe operacje arytmetyczne, logiczne i rotacje, oraz jednostki sterowania pamiíci¹ (Ram_control), mog¹cej obs³uøyê przestrzeò wewnítrznej pamiíci danych siígaj¹c¹ 256 bajtûw oraz zewnítrzne pamiíci danych i programu siígaj¹ce 64 kb kaøda. Dodatkowo w rdzeniu procesora zaimplementowana jest jednostka sterowania rejestrami (Ram_sfr_control). Poza rdzeniem znajduje sií szesnastobitowy uk³ad arytmetyczny (MDU) operuj¹cy na liczbach ca³kowitych, ktûry realizuje miídzy innymi operacje mnoøenia i dzielenia, a takøe operacje logiczne. RÛwnieø poza rdzeniem znajduje sií uk³ad przerwaò (Isr) obs³uguj¹cy trzynaúcie ürûde³ przerwaò zorganizowanych w cztery priorytety uprzywilejowania, oraz uk³ad watchdog (Watchdog_timer) czuwaj¹cy nad prawid³owym wykonywaniem programu. Mikrokontroler posiada wbudowane porty wejúê i wyjúê rûwnoleg- ³ych i szeregowych. Blok portûw rûwnoleg³ych (Ports) obs³uguje cztery rûwnoleg³e dwukierunkowe porty wejúcia wyjúcia, stosowane rûwnieø do dostípu do zewnítrznej pamiíci, w trybie multipleksowania magistrali adresowej. Porty szeregowe realizowane s¹ przez dwa uk³ady obs³ugi portûw szeregowych (Serial_0 i Serial_1), mog¹ce pracowaê dwukierunkowo (full duplex). Port pierwszy i drugi mog¹ pracowaê w trybie UART z ramk¹ oúmiobitow¹ oraz dziewiíciobitow¹. Dodatkowo port pierwszy moøe pracowaê w trybie synchronicznym. Uzupe³nieniem dostípnych peryferiûw zaimplementowanych w komponencie s¹ trzy szesnastobitowe uk³ady czasowo-licznikowe (Timer_0_1, Timer_2), pracuj¹ce (oprûcz trybûw znanych z klasycznego 8051) dodatkowo w trybie generowania sygna³u PWM (Compare), oraz w trybie pomiaru szerokoúci impulsu (Capture). Komponent R80515 moøe pracowaê w trybie obniøonego poboru mocy lub w trybie ca³kowitego wy³¹czenia poboru mocy. Tryby te (IDLE i STOP) s¹ sterowane przez jednostkí PMU. DziÍki elastycznoúci cechuj¹cej technologií wirtualnych komponentûw, klient nabywaj¹cy R80515 moøe zmodyfikowaê jego podstawowe w³aúciwoúci. Przyk³adowo, magistrale adresowe zamiast magistral danych mog¹ byê wspû³dzielone z wyjúciami portûw lub teø mog¹ byê wyprowadzone osobno. RÛwnieø porty szeregowe zamiast korzystaê z wyprowadzeò portu trzeciego mog¹ byê wyprowadzone osobno. Istnieje moøliwoúê ³atwej modyfikacji cyklu dostípu do pamiíci programu i danych w celu dostosowania Rys. 1 Sposoby kodowania wirtualnych komponentów Najczęściej wirtualne komponenty są opisywane za pomocą języków: VHDL, Verilog, spotykane są także opisy w postaci list połączeń EDIF. procesora do rûønych uk³adûw pamiíci i wejúcia wyjúcia. Badania oraz testy aplikacyjne przeprowadzona przez Dzia³ Klienta WewnÍtrznego firmy Evatronix S.A., bazuj¹ce na porûwnaniu wynikûw otrzymanych z testûw Dhrystone 1.1 dla oryginalnego 80C31 i R80515 wykaza³y 6,8- krotn¹ przewagí wydajnoúciow¹ komponentu nad orygina- ³em. Wyniki otrzymano dla tej samej czístotliwoúci taktowania, na tym samym systemie uruchomieniowym Evix Board 3, kompiluj¹c kod testu kompilatorem firmy Tasking. Otrzymane wyniki w teúcie Dhrystone 1.1 dla procesora Intel 80C51 taktowanego zegarem 12 MHz to 198 Dhrystone/s, natomiast taktowany tym samym zegarem procesor R80515 osi¹ga 1353 (tysi¹c trzysta piíêdziesi¹t trzy) Dhrystone/s. Dla porûwnania, system IBM PC/ AT taktowany zegarem 6 MHz uzyskuje w tym samym teúcie skompilowanym kompilatorem C firmy Microsoft wynik 1388 Dhrystone/s. Moøliwoúci R80515 choê imponuj¹ce pod wzglídem przetwarzania sta³oprzecinkowego mog¹ nie zadowalaê uøytkownika planuj¹cego zastosowaê ten procesor do intensywnego przetwarzania zmiennoprzecinkowego. W sukurs przychodzi modu³ sta³oprzecinkowej arytmetyki szesnastobitowej (MDU), zgodny ze standardem Siemens 80C515. WiÍkszoúÊ nowoczesnych kompilatorûw jízyka C potrafi wykorzystaê obecnoúê tego modu³u, w celu przyúpieszenia realizacji obliczeò numerycznych. Przyúpieszenie dzia³aò zmiennoprzecinkowych zbadano przy pomocy testu Whetstone A001. Wyniki jakie otrzymano dla 8051 przy 6 MHz wynios³y 11,3 Whetstone/s, natomiast przy tym samym zegarze dla R80515 otrzymano 88 Whetstone/s. RÛønice pomiídzy wartoú- 52

38 P O D Z E S P O Ł Y Korzyści wynikające ze stosowania wirtualnych peryferiów Projektant układu SoC korzystający z wirtualnych peryferiów buduje swój projekt niemal klasycznie: bierze z półki gotowe komponenty (wirtualne), łączy je za pomocą specjalnego edytora w funkcjonalną całość, następnie kompiluje w wyniku czego otrzymuje w krótkim czasie pełnowartościowy układ o specyficznych funkcjach. ci¹ wspû³czynnika przyúpieszenia wykonywania testu sta³oprzecinkowego (6,8 raza) i testu zmiennoprzecinkowego (7,8 raza) naleøy t³umaczyê odmiennym charakterem kodu programu testowego. Kod testu Whetstone zawiera bowiem w stosunku do kodu testu Dhrystone wiícej rozkazûw realizowanych w jednym cyklu rozkazowym. Rozkazy takie dziíki poprawionej architekturze R80515 realizowane s¹ w jednym takcie zegarowym. Im wiícej takich krûtkich jednobajtowych rozkazûw zawiera program tym wiíksze jest przyúpieszenie uzyskiwane przez R80515 wzglídem klasycznego mikrokontrolera. Ostatnim, ale nie mniej waønym, czynnikiem wp³ywaj¹cym na koòcow¹ wydajnoúê uk³adu jest technologia, w ktûrej zostanie on fizycznie zaimplementowany. WspÛ³czesne uk³ady FPGA i ASIC pozwalaj¹ taktowaê wirtualny komponent zegarami rzídu setek MHz, co w sposûb oczywisty wp³ywa na uzyskiwane rezultaty. SprzÍtowa akceleracja obliczeò zmiennoprzecinkowych Istnieje wiele zastosowaò wymagaj¹cych po³¹czenia ³atwoúci stosowania operacji na pojedynczych bitach z wysok¹ wydajnoúci¹ zmiennoprzecinkow¹. Z tego w³aúnie powodu komponent R80515 wyposaøono w specjalny 32-bitowy zmiennoprzecinkowy modu³ (dostípny takøe w postaci osobnego komponentu) AddMull 32, realizuj¹cy sprzítowo mnoøenie, dodawanie i odejmowanie. Realizuje on szybkie obliczenia zmiennoprzecinkowe, operuj¹c na liczbach formatu zmiennoprzecinkowego pojedynczej precyzji (32 bity). Obliczenia wykonywane s¹ poprzez zapis argumentûw wybranego dzia³ania arytmetycznego do odpowiednich rejestrûw komponentu oraz kodu okreúlaj¹cego rodzaj dzia³ania do rejestru steruj¹cego. W przypadku wspû³pracy z rdzeniem komponentu R80515 rejestry uk³adu AddMull s¹ zamapowane w obszarze rejestrûw specjalnych (SFR). Komponent jest taktowany zegarem procesora, a wykonanie kaødego z dzia- ³aÒ zajmuje piíê cykli zegarowych, wobec czego po zapisie s³owa steruj¹cego procesor moøe realizowaê inne zadania. Po piíciu taktach od rozpoczícia obliczeò procesor moøe pobraê wynik dzia³ania z rejestru wyjúciowego AddMull. AddMull 32 wykonuje nastípuj¹ce operacje zmiennoprzecinkowe: dodawanie, odejmowanie, mnoøenie, mnoøenie i dodawanie w jednej operacji oraz mnoøenie i odejmowanie w jednej operacji. Zestaw dzia³aò oraz rejestrûw komponentu AddMull 32 dobrano w taki sposûb, aby umoøliwiê optymalne wykorzystanie go do obliczeò numerycznych. Znakomit¹ wiíkszoúê spotykanych w nauce i technice funkcji matematycznych moøna przybliøyê w wybranym przedziale przy pomocy wielomianu przekszta³conego dla optymalizacji schematem Hoernera. Tak przekszta³cony wielomian sk³ada sií z kilku wykonywanych cyklicznie operacji mnoøenia dwûch argumentûw i nastípnie dodawania lub odejmowania od otrzymanego wyniku trzeciego argumentu. Przyk³adowo poniøej przed- 53

39 P O D Z E S P O Ł Y stawiono wielomian aproksymuj¹cy funkcjí sinus w przedziale od 0 do π/2: sin(x) = (((((x 2 * a11 + a9) * X 2 + a7) * x 2 + a5)* x 2 + a3)* x 2 + a1)*x a11 = -2,052108e-8 a9 = 2,557319e-6 a7 = -0, a5 = 0, a3 = -0, a1 = 1,; Definiuj¹c rejestry komponentu AddMull 32 tak, aby rejestr wynikowy mnoøenia by³ jednoczeúnie jednym ze argumentûw dodawania redukuje sií liczbí przes³aò danych podczas wyliczania przedstawionego wielomianu. Moøna pokusiê sií o porûwnanie wydajnoúci kontrolera R80515 wspû³pracuj¹cego z komponentem AddMull 32, realizuj¹cego przedstawiony powyøej algorytm, a wydajnoúci¹ kontrolera pozbawionego wsparcia sprzítowego, na ktûrym realizowany jest algorytm funkcji sinus zaimplementowany w jednym z popularnych narzídzi programistycznych. Za³Ûømy przy tym, øe dane do obliczeò znajduj¹ w pamiíci zewnítrznej systemu. Pobranie bajtu z pamiíci zewnítrznej do rejestru roboczego procesora trwa dwa cykle rozkazowe, skopiowanie z rejestru roboczego do rejestru specjalnego SFR jednego bajtu potrwa jeden cykl zegarowy. W celu obliczenia podanego wielomianu naleøy wykonaê dziesiíê operacji transferu trzydziestodwubitowej danej pomiídzy pamiíci¹ zewnítrzn¹ a przestrzeni¹ SFR, kaødy taki transfer trwa dwanaúcie cykli rozkazowych. Naleøy przyj¹ê przy tym øe obliczona wartoúê X 2 przechowywana bídzie w rejestrach roboczych kontrolera i stamt¹d pobierana do obliczeò. Opera- Wirtualnie nie musi oznaczać drogo Wirtualne komponenty dostarczane są na rynek w postaci syntetyzowalnego kodu źródłowego w języku opisu sprzętu HDL lub w postaci zsyntetyzowanych netlist. Tylko przypadku zakupu kodu HDL jest możliwe dokonywanie zmian w wirtualnym komponencie, natomiast co ważne zakup netlisty jest znacznie mniej kosztowny (nawet o 50%) niż kupno wersji źródłowej. Z netlisty można zrobić użytek dzięki bezpłatnym narzędziom programowym, wersję źródłową syntetyzować można tylko przy użyciu drogiego oprogramowania do syntezy. Zazwyczaj z wersji źródłowej korzystają producenci układów ASIC, netlista jest wystarczającym rozwiązaniem dla projektantów urządzeń i rozwiązań elektronicznych. Przykładowe implementacje R80515 Dzięki zastosowaniu dość uniwersalnego sposobu opisu R80515 (język VHDL) mikrokontroler można łatwo zaimplementować w układach PLD różnych producentów. I tak przykładowo, w przypadku układu XCV200E niezbędne było 2108 komórek Slice, a maksymalna częstotliwość taktowania wyniosła 40 MHz. W przypadku zastosowania jako układ docelowy EPA20K200C projekt zajął 3928 makrokomórek i 5 bloków ESB, a maksymalna częstotliwość taktowania wynosi 30,7 MHz. cji transferu wartoúci X 2 pomiídzy rejestrami roboczymi a SFR bídzie piíê, kaøda z nich potrwa cztery cykle. Operacji mnoøenia wykonanych zostanie siedem, natomiast operacji dodawania piíê. Kaøda taka operacja trwa szeúê cykli rozkazowych (w tym jeden na zapis s³owa steruj¹cego do rejestru AddMull i piíê rozkazûw NOP poúwiíconych na taktowanie AddMull podczas wyliczania). Ostatecznie otrzymujemy 212 cykli rozkazowych potrzebnych na wyliczenie wartoúci funkcji sinus przez komponent AddMull 32. Dla porûwnania, przytaczaj¹c za dokumentacj¹ kompilatora firmy Keil, procesor obliczaj¹c funkcjí sinus zapisan¹ w jízyku C potrzebuje od 1422 do 3048 (úrednio 2519) cykli rozkazowych. Widoczne jest na tym przyk³adzie, øe uøywaj¹c tylko i wy³¹cznie uk³adu sprzítowego mnoøenia i dodawania liczb zmiennoprzecinkowych moøna znacznie przyúpieszyê nawet z³oøone obliczenia numeryczne, bez potrzeby wyposaøania systemu w komplety koprocesor numeryczny lub zmiennoprzecinkowy procesor DSP. Podsumowanie Wirtualne komponenty naleø¹ do standardowego zestawu narzídzi wspû³czesnego projektanta systemûw cyfrowych. Producenci oferuj¹ w tej postaci bardzo wiele blokûw funkcjonalnych, pocz¹wszy od mikroprocesorûw i mikrokontrolerûw, poprzez wirtualne odpowiedniki klasycznych peryferiûw stosowanych w systemach mikroprocesorowych, aø po zaawansowane modu³y komunikacyjne. Jak na razie, korzystanie z nich przez niewielkie firmy jest utrudnione, poniewaø w przypadku realizacji projektûw niskonak³adowych cena komponentûw doúê istotnie wp³ywa na koòcow¹ cení wyrobu. Taka jest jednak przysz³oúê elektroniki - za kilka lat uk³ady nie daj¹ce sií programowaê prawdopodobnie ca³kowicie zagin¹... Tomasz Jakóbiec, wspó³praca: Miros³aw Bandzerewicz Dodatkowe informacje Dodatkowe informacje mo na znaleÿæ na stronie 54

40 Mówiący woltomierz, część 2 AVT 5097 Mówiący P R O J woltomierz E K T Y W drugiej czíúci artyku³u przedstawiamy sposûb montaøu, uruchomienia i programowania woltomierza. Wymagana jest od uøytkownika odrobina cierpliwoúci i znajomoúê dzia³ania woltomierza. Rekomendacje: o mûwi¹cych przyrz¹dach pomiarowych marzyli do niedawna przede wszystkim niepe³nosprawni, ale mog¹ je szybko polubiê wszyscy elektronicy. Montaø i uruchomienie Montaø woltomierza rozpoczynamy od wlutowania w p³ytkí drukowan¹ (jej schemat montaøowy pokazano na rys. 4) rezystorûw. NastÍpnie montujemy podstawki pod uk³ady scalone. W kolejnym etapie montujemy kondensatory, potencjometr PR1 i z³¹cza CON1...CON4 oraz zworki JP1...JP5. Po wlutowaniu wszystkich elementûw naleøy wyskalowaê woltomierz. W tym celu trzeba w³oøyê w podstawki wszystkie uk³ady scalone i usun¹ê zworki JP1...JP4. W zaleønoúci od tego czy chcemy, aby masa woltomierza by³a jednoczeúnie mas¹ ürûd³a mierzonego napiícia, czy nie, zwieramy lub rozwieramy zworkí JP5. Jeúli masa woltomierza ma byê mas¹ ürûd³a mierzonego napiícia, to zworkí JP5 naleøy zewrzeê. Zwarcie tej zworki powoduje do³¹czenie do masy ujemnego wejúcia przetwornika A/C. NastÍpnie naleøy ustawiê napiície odniesienia przetwornika na wartoúê rûwn¹ 1 V. Do tego celu s³uøy potencjometr PR1, ktûry jest dzielnikiem napiícia otrzymanego w wyniku stabilizacji poprzez diodí D1. NapiÍcie to ma wartoúê 1,23 V, wiíc na wejúcie odnie- sienia naleøy podaê czíúê tego napiícia. W celu precyzyjnego ustawienia napiícia odniesienia naleøy pomiídzy masí a suwak potencjometru PR1 (lub wyprowadzenie 2 US2) w³¹czyê inny woltomierz i potencjometrem ustawiê wskazanie rûwne 1 V. Do pomiaru napiícia odniesienia naleøy zastosowaê woltomierz jak najwyøszej klasy, gdyø od tego zaleøy dok³adnoúê wykonywania pomiarûw przez zbudowany woltomierz. Po tej czynnoúci woltomierz jest przygotowany do pracy - uk³ad przetwornika pracuje poprawnie. Naleøy wiíc zaprogramowaê parametry ìwyúwietlaniaî (odtwarzania komunikatûw) mierzonego napiícia. Do zasilania woltomierza moøna zastosowaê dowolny zasilacz niestabilizowany o napiíciu wyjúciowym wynosz¹cym oko³o 9 V i maksymalnym pr¹dzie oko³o 200 ma. Programowanie Poniewaø prezentowany woltomierz nie posiada wyúwietlacza, a wyniki pomiarûw przedstawiane s¹ w postaci komunikatûw g³oso- 47

41 Mówiący woltomierz Rys. 4. Schemat montażowy płytki drukowanej woltomierza wych, komunikaty te naleøy zapisaê w pamiíci uk³adu ISD2560. Spis niezbídnych komunikatûw zamieszczono w tab.2. Aby wprowadziê procesor w tryb nagrywania komunikatûw, naleøy odpowiednio ustawiê zworki JP1...JP4. Spis wszystkich trybûw pracy woltomierza w zaleønoúci od ustawienia zworek konfiguracyjnych przedstawiono w tab. 3. Stan ì0î oznacza zwarcie zworki, stan ì1î rozwarcie, a stan ìxî oznacza stan dowolny. Nagrywanie komunikatûw przeprowadza sií tylko raz, podczas Tab. 2. Spis komunikatów zawartych w pamięci układu ISD2560 L.p. Komunikat L.p. Komunikat 1 Zero 25 Sześćdziesiąt 2 Jeden 26 Siedemdziesiąt 3 Dwa 27 Osiemdziesiąt 4 Trzy 28 Dziewięćdziesiąt 5 Cztery 29 Sto 6 Pięć 30 Dwieście 7 Sześć 31 Trzysta 8 Siedem 32 Czterysta 9 Osiem 33 Pięćset 10 Dziewięć 34 Sześćset 11 Dziesięć 35 Siedemset 12 Jedenaście 36 Osiemset 13 Dwanaście 37 Dziewięćset 14 Trzynaście 38 Tysiąc 15 Czternaście 39 Dwa tysiące 16 Piętnaście 40 Wolt 17 Szesnaście 41 Wolty 18 Siedemnaście 42 I 19 Osiemnaście 43 Miliwolt 20 Dziewiętnaście 44 Miliwolty 21 Dwadzieścia 45 Minus 22 Trzydzieści 46 Zakres 23 Czterdzieści 47 Zakres przekroczony 24 Pięćdziesiąt uruchamiania woltomierza. Aby przejúê do trybu nagrywania komunikatûw, naleøy, przy wy³¹czonym zasilaniu, zgodnie z tabel¹ zewrzeê zworki JP1 i JP3. Dodatkowo jako zworkí JP4, na czas programowania moøna zastosowaê przycisk monostabilny (przedstawiony na schemacie elektrycznym jako opcjonalny). Przycisk ten znacznie u³atwia programowanie, gdyø wielokrotne zwieranie i rozwieranie zworki jest doúê k³opotliwe. Jeúli przygotowaliúmy procesor do nagrywania, to w³¹czamy zasilanie i rozpoczynamy nagrywanie komunikatûw. Nagrywanie komunikatu przeprowadza sií przy zwarciu zworki JP4 (dodatkowego przycisku) - trwa ono przez ca³y czas zwarcia tego przycisku. Zwolnienie przycisku powoduje zakoòczenie nagrywania danego komunikatu. Dla zapisania komunikatu naleøy wiíc wykonaê sekwencjí czynnoúci: nacisn¹ê przycisk (JP4), wypo- wiedzieê odpowiedni komunikat i zwolniê przycisk. Procesor zwiíksza zawartoúê licznika nagranych komunikatûw i oczekuje na kolejny zapis. Proces ten naleøy powtûrzyê dla wszystkich komunikatûw zawartych w tab. 2. Po ostatnim komunikacie procesor przechodzi w stan oczekiwania na ponowne w³¹czenie zasilania. Nie moøna wiíc nagraê wiíkszej liczby komunikatûw, niø zawarto w tab. 2. Woltomierz nie ma øadnej sygnalizacji przekroczenia maksymalnego czasu nagrania dla uk³adu ISD2560, nie stanowi to jednak istotnego ograniczenia, gdyø czas niezbídnych komunikatûw wynosi zaledwie oko³o 40 sekund. Po nagraniu wszystkich komunikatûw wy³¹czamy zasilanie i moøemy przejúê do sprawdzenia poprawnoúci nagranych komunikatûw. W tym celu naleøy zewrzeê zworki JP1 i JP4 (zgodnie z tab. 3) i w³¹czyê zasilanie. NastÍpnie rozwieramy zworkí JP4 (dodatkowy przycisk). Po tych czynnoúciach kaødorazowe naciúniície przycisku (JP4) bídzie powodowa³o odtworzenie kolejnego komunikatu zawartego w pamiíci uk³adu ISD2560. Po odtworzeniu ostatniego komunikatu procesor przestanie reagowaê na naciskanie przycisku i bídzie oczekiwa³ na wy³¹czenie zasilania. Jeúli odtworzone komunikaty s¹ zgodne z zawartymi w tab. 2, to procedura zapisu komunikatûw zosta³a zakoòczona. W przeciwnym przypadku proces nagrywania naleøy powtûrzyê. Teraz woltomierz jest gotowy do pracy. Pomimo tego, øe uk³ad ICL7135 wykonuje oko³o trzech Tab. 3. Tryby pracy woltomierza w zależności od ustawienia zworek JP1...JP4 L.p JP1 JP2 JP3 JP4 Realizowane funkcje Tryb programowania parametrów Nagrywanie komunikatów Odtwarzanie komunikatów Ustawianie czasu przerwy pomiędzy kolejnymi pomiarami Tryb wypowiadania komunikatów 4 1 X 0 0 Zakres 2V 5 1 X 1 0 Zakres 20V 6 1 X 0 1 Zakres 200V 7 1 X 1 1 Zakres 2000V X X Mierzone napięcie jest wypowiadane przez cały czas włączenia woltomierza X X Jeśli pięć pomiarów napięcia daje taką samą wartość, to wypowiadanie wartości napięcia zostaje wstrzymane do momentu, aż napięcie zmieni wartość 48

42 Mówiący woltomierz pomiarûw na sekundí, to ze wzglídu na czas potrzebny na wypowiedzenie (ìwyúwietlanieî) wyniku pomiaru, powtarzane jest ono co kilka sekund. Oprogramowanie steruj¹ce odtwarzaniem komunikatûw umoøliwia indywidualne ustalenie czasu przerwy pomiídzy kolejnymi komunikatami. Czas ten moøna zmieniaê zaleønie od potrzeb w zakresie s. Po wypowiedzeniu wartoúci napiícia moøe wiíc nast¹piê wypowiedzenie kolejnego wyniku lub przerwa o okreúlonym czasie trwania. W zaprogramowanym procesorze czas ten jest ustalony na 1 sekundí. Aby go zmieniê, naleøy, przy wy³¹czonym napiíciu, zewrzeê zworki JP1 i JP2, a nastípnie w³¹czyê zasilanie. Po tej czynnoúci procesor oczekuje na zwarcie zworki JP4 (dodatkowy przycisk). NaciúniÍcie przycisku rozpoczyna odliczanie czasu, czas jest odliczany do momentu zwolnienia przycisku. Jeúli przycisk by³ naciúniíty d³uøej niø 60 sekund, to zostanie zapisana maksymalna wartoúê, czyli 60 sekund. Czas, przez ktûry przycisk by³ naciúniíty, zostaje zapisany w wewnítrznej pamiíci EEPROM (dziíki temu zapisana wartoúê bídzie pamiítana rûwnieø po zaniku napiícia zasilania) i od tej pory kolejne pomiary napiícia bíd¹ dokonywane w zaprogramowanych odstípach czasowych. Po ustaleniu wymaganego czasu powtarzania komunikatu moøna wy³¹czyê zasilanie i woltomierz jest gotowy do uøytkowania. Obs³uga Woltomierz umoøliwia wypowiadanie mierzonego napiícia w czterech zakresach. Zakres jest wybierany poprzez odpowiednie ustawienie zworek JP3 i JP4 (patrz tab. 3). Ustawienie danego zakresu powoduje, øe mierzone napiície, pomimo iø przez ca³y czas zawiera sií w zakresie 2 V, to jest wypowiadane w inny sposûb. Zakres ten moøe byê zmieniany w dowolnym czasie, ale jeúli zostanie zmieniony, to zostanie wypowiedziany aktualny zakres pomiarowy. Jeúli stan zworek zmienimy w czasie wypowiadania komunikatu, to zostanie on dokoòczony i dopiero wtedy otrzymamy informacjí o nowym zakresie pomiarowym. Przyk³adowe komunikaty wypowiadane przez woltomierz dla rûønych zakresûw pomiarowych przedstawiono w tab. 4. Jak widaê, woltomierz potrafi ìodczytaêî napiície w zakresie od -1999,9 V do 1999,9 V. Oprogramowanie zawarte w mikrokontrolerze nie obs³uguje odmiany jednostek przez przypadki (dla uproszczenia oprogramowania). RozrÛønia tylko liczbí pojedyncz¹ i mnog¹. Dodatkowo w wypowiadanym komunikacie pomijane s¹ nieznacz¹ce zera, co wp³ywa na skrûcenie czasu wypowiadania wartoúci mierzonego napiícia. Dodatkow¹ funkcj¹, dostípn¹ w czasie ìodczytywaniaî mierzonego napiícia, jest moøliwoúê automatycznego wy³¹czenia woltomierza, jeúli mierzone napiície nie bídzie ulega³o zmianie. Jeúli zworka JP2 bídzie zwarta, a piíê kolejnych pomiarûw bídzie mia³o tak¹ sam¹ wartoúê, to wypowiadanie wartoúci napiícia zostanie wstrzymane. Przez ca³y czas napiície bídzie jednak nadal mierzone i porûwnywane z poprzedni¹ wartoúci¹. Jeúli ulegnie zmianie, to wypowiadanie komunikatûw zostanie przywrûcone. Funkcja ta jest szczegûlnie przydatna, gdy do wejúcia woltomierza nie bídzie do³¹czone napiície, gdyø przy braku napiícia zbídne jest jego wypowiadanie. Jeøeli jednak Tab.4. Przykłady wypowiadanych komunikatów przez woltomierz dla wszystkich zakresów pomiarowych, dla charakterystycznych napięć wejściowych Uwe Ua/c Wypowiadany komunikat Zakres 2V (JP3=0, JP4=0) rozdzielczość 1mV (dzielnik wejściowy 1:1) 2,700V 2,700V Zakres przekroczony 1,350V 1,350V Minus jeden wolt i trzysta pięćdziesiąt miliwoltów 0V 0,000V Zero woltów 0,253V 0,253V Dwieście pięćdziesiąt trzy miliwolty 0,500V 0,500V Pięćset miliwoltów 1,005V 1,005V Jeden wolt i pięć miliwoltów 1,956V 1,956V Jeden wolt i dziewięćset pięćdziesiąt sześć miliwoltów 2,500V 2, 500V Zakres przekroczony Zakres 20V (JP3=1, JP4=0) rozdzielczość 1mV (dzielnik wejściowy 1:10) 27,000V 2,700V Zakres przekroczony 13,547V 1,3547V Minus trzynaście woltów i pięćset czterdzieści siedem miliwoltów 0V 0,0000V Zero woltów 0,253V 0,0253V Dwieście pięćdziesiąt trzy miliwolty 5,000V 0,0500V Pięć woltów 10,023V 1,0023V Dziesięć woltów i dwadzieścia trzy miliwolty 10,405V 1,0405V Dziesięć woltów i czterysta pięć miliwoltów 19,568V 1,9568V Dziewiętnaście woltów i pięćset sześćdziesiąt osiem miliwoltów 25,000V 2,500V Zakres przekroczony Zakres 200V (JP3=0, JP4=1) rozdzielczość 10mV (dzielnik wejściowy 1:100) 270,00V 2,700V Zakres przekroczony 13,50V 1,350V Trzynaście woltów i pięćset miliwoltów 0V 0,0000V Zero woltów 25,34V 0,2534V Dwadzieścia pięć woltów i trzysta czterdzieści miliwoltów 50,04V 0,5004V Pięćdziesiąt woltów i czterdzieści miliwoltów 100,00V 1,0000V Sto woltów 104,50V 1,0050V Sto cztery wolty i pięćset miliwoltów 195,62V 1,9562V Sto dziewięćdziesiąt pięć woltów i sześćset dwadzieścia miliwoltów 250,00V 2,5000V Zakres przekroczony Zakres 2000V (JP3=1, JP4=1) rozdzielczość 100mV (dzielnik wejściowy 1:1000) 2700,0V 2,7000V Zakres przekroczony 1350,0V 1,3500V Minus tysiąc trzysta pięćdziesiąt woltów 0V 0,0000V Zero woltów 0,2V 0,0002V Dwieście miliwoltów 5,4V 0,0054V Pięć woltów i czterysta miliwoltów 10,6V 0,0106V Dziesięć woltów i sześćset miliwoltów 100,5V 0,1005V Sto woltów i pięćset miliwoltów 1956,9V 1,9569V Tysiąc dziewięćset pięćdziesiąt sześć woltów i dziewięćset miliwoltów 2, 500V 2,5000V Zakres przekroczony 49

43 Mówiący woltomierz chcemy, aby wartoúê napiícia by- ³a wypowiadana przez ca³y czas, to zworka JP2 musi byê rozwarta. Jeøeli woltomierz ma s³uøyê do pomiaru napiícia tylko w jednym zakresie, to naleøy go wybraê za pomoc¹ zworek JP3 i JP4, a na wejúciu przetwornika zastosowaê odpowiedni dzielnik napiícia. Jeúli zakresy maj¹ byê zmieniane, to warto zastosowaê prze³¹cznik, ktûry bídzie dostarcza³ do wejúcia uk³adu ICL7135 napiície podzielone w odpowiednim stopniu i automatycznie zmienia³ zakres pomiarowy woltomierza. Przyk³ad takiego uk³adu wejúciowego jest przedstawiony na rys. 5. Mierzone napiície podawane jest na dzielnik zbudowany z rezystorûw R1...R4. Prze- ³¹cznik S1A pozwala wybraê stopieò podzia³u napiícia wejúciowego przed podaniem na wejúcie przetwornika ICL7135. Dzielnik ten umoøliwia podzia³ napiícia w nastípuj¹cym stosunku: 1:1, 1:10, 1:100, 1:1000. Moøliwy jest wiíc pomiar napiícia w zakresie ,9 V. Drugi sprzíøony styk prze³¹cznika S (S1B) zmienia zakres woltomierza. Styk ten ustawia zero na jednym z czterech wyjúê, w zaleønoúci od wybranego zakresu. Poniewaø ustawianie zakresu pomiarowego w woltomierzu przeprowadza sií za pomoc¹ dwûch wyprowadzeò, konieczne sta³o sií zastosowanie prostego transkodera Rys. 5. Przykładowy sposób wykonania dzielnika wejściowego wraz z automatyczną zmianą zakresu pomiarowego wypowiadanych komunikatów kodu 1-z-czterech na kod binarny. Do tego celu zosta³y wykorzystane dwie diody D1 i D2. W ten sposûb moøna zbudowaê w pe³ni funkcjonalny czterozakresowy woltomierz o duøej dok³adnoúci wykonywanych pomiarûw. Podczas uøytkowania woltomierza naleøy pamiítaê, aby napiície podawane na wejúcie przetwornika nie przekroczy³o wartoúci ±5V, gdyø przekroczenie tej wartoúci moøe spowodowaê jego uszkodzenie. Krzysztof P³awsiuk, AVT Wzory p³ytek drukowanych w formacie PDF s¹ dostípne w Internecie pod adresem: oraz na p³ycie CD-EP2/2003B w katalogu PCB. 50

44 Bezprzewodowy regulator P R O J temperatury E K T Y Bezprzewodowy regulator temperatury, część 2 AVT 5094 Powszechnie dostípne radiowe modu³y nadawczoodbiorcze umoøliwiaj¹ stosowanie ³¹czy bezprzewodowych takøe w ìprzyziemnychî aplikacjach. Jedn¹ z nich jest zdalna regulacja temperatury. W prezentowanym projekcie zastosowano do tego celu bezprzewodowy modu³ wykonawczy. W drugiej czíúci artyku³u opisujemy programowanie tego regulatora. Rekomendacje: uk³ad moøe zast¹piê przestarza³e regulatory temperatury z wyjúciami przekaünikowymi. Moøe byê z powodzeniem stosowany do sterowania ogrzewaniem elektrycznym lub wodnym w domach. Programowanie i obs³uga Po w³¹czeniu zasilania na wyúwietlaczu pojawi sií nastípuj¹cy napis: WartoúÊ temperatury bídzie z pewnoúci¹ inna, ale format wyúwietlania bídzie w³aúnie taki. Menu programowania sk³ada sií z trzech procedur, sposûb programowania poszczegûlnych parametrûw jest przedstawiony poniøej. 1. Programowanie czasu Aby wejúê w opcje programowania naleøy nacisn¹ê klawisz OK na oko³o 3 sekundy, po tym czasie wykonywana jest procedura zmiany parametrûw. Pierwszym domyúlnym parametrem jest zmiana czasu, na wyúwietlaczu pojawi sií napis: W tym celu wybieramy opcjí Czas i zatwierdzamy klawiszem OK. Na wyúwietlaczu pojawi sií napis: Pozycja minut zastanie podkreúlona, sygnalizuj¹c, øe wszelkie operacje dotycz¹ w³aúnie tego parametru. Przy nastawie czasu moøemy zmieniê jedynie minuty i godziny, sekundy s¹ automatycznie zerowane w momencie zapisu nowego czasu. Cyfry umieszczone po dwukropku wskazuj¹ wartoúê minut, a litery gg wskazuj¹, øe na tej pozycji bíd¹ ustawiane godziny. Ale na pocz¹tek zmieniamy wartoúê minut poprzez naciskanie klawisza UP lub DOWN, po ustawieniu odpowiedniej liczby minut naciskamy klawisz OK. W tym momencie zamiast liter gg zostanie wyúwietlona liczba godzin(rûwnieø podkreúlona). Aby zatwierdziê wybûr ponownie naciskamy klawisz OK. W dowolnej chwili moøemy wyjúê z menu naciskaj¹c klawisz ESC. Klawiszami UP i DOWN moøemy poruszaê sií po opcjach, czyli: Czas, Temperatura, zmiana godzin dnia i nocy. Zawsze przy pierwszym uruchomieniu naleøy ustawiê czas. Tak samo jak w przypadku ustawiania minut klawiszami UP i DOWN zmieniamy wartoúê godzin i zatwierdzamy klawiszem OK. Ustawiony czas zostanie zapisany jako nowa wartoúê minut i godzin, a na wyúwietlaczu pojawi sií napis: 43

45 Bezprzewodowy regulator temperatury Zegar pracuje z nowymi nastawami czasu, a program g³ûwny powrûci do menu wyboru regulowanych parametrûw. W dowolnej chwili ustawianie czasu moøna przerwaê naciskaj¹c klawisz ESC, a wykonane zmiany minut, czy godzin nie zostan¹ zapisane, gdyø wszystkie zmiany wartoúci czasu dokonywane s¹ na zastípczych komûrkach pamiíci. Dlatego w czasie zmiany parametrûw czas jest nadal odliczany, dopiero klawiszem OK dokonujemy przepisania wartoúci czasu do w³aúciwych komûrek odliczaj¹cych czas. Jeúli nie chcemy zapisaê wprowadzonych zmian naleøy nacisn¹ê klawisz ESC, zmiany nie zostan¹ zapisane, a na wyúwietlaczu pojawi sií napis: i przechodzimy ponownie do g³ûwnego menu zmiany parametrûw, bez zapisania øadnych zmian w aktualnym czasie. 2. Programowanie temperatury Prezentowany termostat umoøliwia utrzymywanie zadanej temperatury oddzielnie dla dnia i nocy. Aby wejúê w tryb programowania, w menu programowania klawiszem UP lub DOWN wybieramy opcjí: i zatwierdzamy klawiszem OK. Na wyúwietlaczu pojawi sií napis: z podkreúlon¹ wartoúci¹ temperatury. Klawiszami UP lub DOWN ustawiamy ø¹dan¹ wartoúê temperatury dziennej w zakresie o C i zatwierdzamy klawiszem OK. Po tej czynnoúci automatycznie przechodzimy do ustawiania temperatury nocnej. Na wyúwietlaczu pojawi sií napis: tak jak w przypadku temperatury dziennej klawiszami UP lub DOWN ustawiamy ø¹dana wartoúê temperatury nocnej i zatwierdzamy klawiszem OK. Na wyúwietlaczu pojawi sií napis: i program przejdzie do g³ûwnego menu nastaw parametrûw. Tak jak w przypadku ustawiania czasu w dowolnej chwili moøemy wycofaê sií z wprowadzonych zmian naciskaj¹c klawisz ESC, gdyø dokonywane zmiany parametrûw rûwnieø s¹ realizowane na zastípczych komûrkach. Jednak po potwierdzeniu zmian klawiszem OK, nowe wartoúci temperatur zostaj¹ zapisane w wewnítrznej nieulotnej pamiíci procesora i pozostaj¹ tam nawet po wy- ³¹czeniu zasilania, jedynie ponowne programowanie temperatury moøe zmieniê ich wartoúê. 3. Ustawianie pory dnia i nocy Poniewaø prezentowany termostat umoøliwia nadzorowanie niezaleønie temperatury dziennej i nocnej, naleøy zdefiniowaê, jakie godziny bíd¹ traktowane jako dzieò i bídzie utrzymywana temperatura dzienna, a jakie jako noc, gdzie bídzie utrzymywana temperatura nocna. Do tego celu s³uøy procedura wywo³ywana z menu o nazwie: Wybieramy j¹ w menu zmiany parametrûw i zatwierdzamy klawiszem OK, na wyúwietlaczu pojawi sií napis: cyfra ì7î bídzie podkreúlona, klawiszami UP i DOWN ustawiamy odpowiednia godziní od ktûrej zaczyna sií dzieò i zatwierdzamy klawiszem OK, po tej czynnoúci przechodzimy do ustawienia godziny koòcz¹cej porí dnia. W przedstawionym przyk³adzie dzieò bídzie traktowany od godziny 7 00 do 18 59, od godziny dla termostatu zapada noc. Analogicznie noc bídzie trwa³a od godziny do godziny 6 59, od 7 00 jest juø dzieò. Po zatwierdzeniu obydwu nastaw klawiszem OK, na wyúwietlaczu pojawi¹ sií godziny dla nocy, wyliczone na podstawie ustawionych wczeúniej godzin dla dnia. Dla ustawionych godzin dnia od 7 do 19, godziny dla nocy bíd¹ nastípuj¹ce: Jeúli pocz¹tek dnia bídzie godzin¹ pûüniejsz¹ niø koniec, to dzieò bídzie liczony w godzinach zawieraj¹cych pomiídzy nimi, na przyk³ad, jeúli dzieò bídzie sií rozpoczyna³ o godzinie 8 00, a koòczy³ o 7 00, to dniem bíd¹ godziny od 8 00 do i od 0 00 do W takim przypadku noc bídzie trwa³a jedynie od godziny 7 00 do Po zatwierdzeniu nastaw klawiszem OK, wartoúci godzin dnia i nocy zostan¹ zapisane w pamiíci i jak w przypadku innych regulowanych parametrûw zostan¹ nie zmienione nawet po wy³¹czeniu zasilania. Po zapisaniu wszystkich parametrûw termostat jest gotowy do pracy. Na wyúwietlaczu jest wyúwietlana aktualna godzina, na bieø¹co mierzona temperatura z dok³adnoúci¹ do 0,1 o C oraz stan przekaünika w module wykonawczym. Przyk³adowe wskazania maj¹ postaê: Na ostatniej pozycji wyúwietlacza jest przedstawiony styk zwarty, sygnalizuj¹cy, øe temperatura mierzona jest mniejsza od zaprogramowanej i naleøy w³¹czyê grzejnik, aby ogrzaê pomieszczenie. Jeúli temperatura przekroczy wartoúê nastawion¹, to nast¹pi wy³¹czenie przekaünika w module wykonawczym, wyúwietlacz bídzie wskazywa³: Styk rozwarty wskazuje, øe przekaünik jest wy³¹czony. Aby nie powodowaê zbyt czístego w³¹czania i wy³¹czania przekaünika termostat ma histerezí. Jeúli nastawiona temperatura ma wartoúê 23 o C, a temperatura w pomieszczeniu wynosi 20 o C, to nastípuje za³¹czenie przekaünika, przekaünik ten bídzie za³¹czony do momentu, gdy temperatura przekroczy wartoúê 24 o C. Gdyby przekaünik zosta³ wy³¹czony po osi¹gniíciu temperatury 23 o C, to bardzo szybko temperatura spad³aby poniøej tej wartoúci i przekaünik musia³by zostaê ponownie za³¹czony. DziÍki takiej histerezie przekaünik nie jest za³¹czany w przypadku niewielkiego obniøenia temperatury. Podobnie jest w przypadku, gdy temperatura panuj¹ca w pomieszczeniu jest wiíksza od nastawionej. Jeúli nastawiona temperatura ma wartoúê 23 o C, a wystípuj¹ca w pomieszczeniu 25 o C, to przekaünik bídzie roz³¹czony, do momentu osi¹gniícia poziomu 22 o C. W dowolnym momencie moøna sprawdziê nastawione temperatury dla dnia i nocy bez potrzeby wchodzenia w menu programowania. W czasie normalnej pracy termostatu naciúniecie klawisza UP spowoduje wyúwietlenie przez czas oko³o dwûch sekund temperatury dziennej, a naciúniície klawisza DOWN wyúwietlenie temperatury nocnej. 44

46 Bezprzewodowy regulator temperatury OprÛcz automatycznego sterowania na podstawie wartoúci temperatury, termostat umoøliwia ríczne sterowanie przekaünikiem modu³u wykonawczego. Przejúcia pomiídzy trybem rícznym i automatycznym dokonuje sií poprzez naciúniecie klawisza ESC przez czas oko³o 3 sekund. Jeúli termostat znajdowa³ sií w trybie pracy automatycznej, to naciúniície klawisza ESC spowoduje przejúcie do pracy rícznej. Ten fakt zostanie zasygnalizowany na wyúwietlaczu w postaci pojawienia sií przycisku zamiast styku na ostatniej pozycji wyúwietlacza: Jeúli przekaünik jest wy³¹czony, to bídzie wyúwietlany symbol wyciúniítego przycisku. Od tej pory termostat jedynie wyúwietla wartoúê temperatury, lecz nie porûwnuje jej z nastawion¹ i nie ma moøliwoúci automatycznej zmiany stanu przekaünika. Zmiany stanu przekaünika dokonuje sií przez krûtkotrwa³e naciúniície klawisza OK, kaødorazowe jego naciúniície zmienia stan przekaünika na przeciwny. Jeúli przekaünik jest w³¹czony, to wyúwietlacz, bídzie wygl¹da³ nastípuj¹co: Symbol wciúniítego klawisza na ostatniej pozycji wyúwietlacza informuje, øe przekaünik jest za³¹czony. Praca ríczna umoøliwia wiíc ca³kowite wy³¹czenie przekaünika lub jego w³¹czenie, niezaleønie od temperatury zadanej i mierzonej. Aby ponownie powrûciê do pracy automatycznej naleøy nacisn¹ê klawisz ESC na czas wiíkszy niø 3 sekundy, na wyúwietlaczu zamiast przycisku pojawi sií symbol styku, informuj¹cy o pracy automatycznej. Komunikacja modu³u steruj¹cego z uk³adem wykonawczym nie jest prowadzona przez ca³y czas, lecz jest nawi¹zywana co dziesiíê sekund. Po kaødym dziesiíciosekundowym odcinku czasu na wejúcie EN uk³adu US2 (na p³ytce sterownika) jest podawane zero przez dwie sekundy. Logiczne zero na wejúciu ìenî powoduje uruchomienie transmisji, przez nadajnik jest wysy³any kod ustawiony przy pomocy wejúê adresowych A0...A7 oraz sygna³y wejúê danych D1...D4 uk³adu HT-12E. W zaleønoúci od stanu na wejúciu D1, przekaünik modu³u wykonawczego jest za³¹czany lub wy³¹czany. Po up³ywie dwûch sekund transmisja radiowa zostaje przerwana, by po oko³o 10 sekundach zosta³a ponownie w³¹czona. DziÍki cyklicznym wysy³aniu informacji o stanie przekaünika b³¹d powsta³y na skutek zak³ûceò zostanie po dziesiíciu sekundach skorygowany przez wys³anie kolejnej informacji o jego stanie. W czasie, gdy termostat pracuje w trybie rícznym wysy³anie sygna- ³u radiowego nastípuje tylko po naciúniíciu klawisza OK, ktûry powoduje zmianí stanu przekaünika. Krzysztof P³awsiuk, AVT krzysztof.plawsiuk@ep.com.pl Wzory p³ytek drukowanych w formacie PDF s¹ dostípne w Internecie pod adresem: oraz na p³ycie CD-EP2/2003B w katalogu PCB. 45

47 Yampp 3/USB, część 3 P R O Yampp 3/USB J E K T Y Graficzny wyświetlacz LCD w Yamppie 3/USB Ciek³okrystaliczne wyúwietlacze graficzne s¹ coraz czíúciej stosowane w konstrukcjach amatorskich. Moøna je bowiem wymontowaê z tanich, uøywanych telefonûw komûrkowych. W artykule opisujemy sposûb wykorzystania wyúwietlacza graficznego z telefonu Nokia w Yamppie. Rekomendacje: nowoczesny odtwarzacz dla fanûw empetrûjkowych nagraò, doskonale dostosowany do wspû³pracy z programowymi odtwarzaczami stosowanymi w PC. Jak wczeúniej wspomnia³em, do yamppa-3/usb zamiast wyúwietlacza alfanumerycznego moøna pod³¹czyê graficzny wyúwietlacz LCD. Oprogramowanie systemowe umoøliwia obs³ugí wyúwietlaczy wykorzystywanych w wiíkszoúci telefonûw komûrkowych firmy Nokia. S¹ to wyúwietlacze o wymiarach oko³o 40x35 mm (pole widoczne 30x23 mm), o organizacji 84x48 pikseli i maj¹ wbudowany kontroler PCD8544 firmy Philips. W tab. 1 zawarto zestawienie typûw wyúwietlaczy oraz modeli telefonûw, ktûre moøna wykorzystaê w yamppie. KrÛtka charakterystyka kontrolera PCD8544 jest jednouk³adowym kontrolerem graficznej matrycy LCD, zawieraj¹cym szeregowy interfejs wejúciowy, pamiíê RAM wraz z licznikami oraz uk³adami adresowania kolumn i wierszy, drivery kolumn i wierszy, generator zegarowy oraz uk³ad wytwarzania napiíê zasilaj¹cych matryce LCD wraz z automatyczn¹ kompensacj¹ temperaturow¹ ustawienia kontrastu. Moøna go zasilaê napiíciem o wartoúci od 2,7 do 3,3V. Charakteryzuje sií niskim poborem pr¹du oraz minimaln¹ liczb¹ elementûw zewnítrznych potrzebnych do jego prawid³owej pracy. Na rys. 6 przedstawiono schemat blokowy uk³adu PCD8544. PamiÍÊ RAM kontrolera jest zorganizowana tak, aby umoøliwiê wyúwietlenie 6 linii tekstu po 14 znakûw w kaødej. Ze wzglídu na brak wbudowanego generatora znakûw, wzory zdefiniowanych czcionek musz¹ byê umieszczone w pamiíci mikrokontrolera, a do wyúwietlacza wysy³ane s¹ dane powoduj¹ce bezpoúrednie odwzorowywanie znakûw przez ìzapalenieî lub ìzgaszenieî pikseli wyúwietlacza. Dane do sterownika wprowadzane s¹ szeregowo poprzez wejúcie SDIN, w takt sygna³u zegarowego podanego na wejúcie SCLK. Sygna³ SCE jest sygna³em zezwolenia na przyjmowanie danych do rejestrûw, a sygna³ D/C s³uøy do wyboru trybu wprowadzania danych lub komend. Sygna³y SDIN, SCLK i SCE s¹ zgodne z sygna³ami popularnego standardu magistrali szeregowej SPI, co u³atwia pod³¹czenie wyúwietlacza do mikrokontrolera posiadaj¹cego taki interfejs - a zastosowany w yamppie Atmega161 do takich naleøy. 39

48 Yampp 3/USB Rys. 6. Schemat blokowy układu PCD8544 OprÛcz magistrali SPI, do wyúwietlacza naleøy doprowadziê sygna³ D/C, sygna³ Reset, napiície zasilania oraz do wyprowadzenia VOUT (VLCD) pod³¹czyê kondensator filtruj¹cy napiície zasilaj¹ce matrycí. Naleøy podkreúliê, øe do prawid³owej pracy wyúwietlacza niezbídne jest podanie sygna³u RESET po za³¹czeniu zasilania. Maksymalna prídkoúê przesy³ania danych do wyúwietlacza jest duøa i wynosi 4Mb/s (yampp wysy³a dane z prídkoúci¹ oko³o 2 Mb/s). Pe³na specyfikacja tego kontrolera dostípna jest na p³ycie CD-EP2/ 2003 lub w Internecie pod adresem Pod³¹czenie wyúwietlacza graficznego do yamppa Jednoczesna praca dekodera MP3 oraz wyúwietlacza, pod³¹czonych do tej samej magistrali SPI, jest moøliwa ze wzglídu na zastosowanie oddzielnych sygna³ûw aktywuj¹cych zapis danych do dekodera - sygna³y MP3 i BSYNC oraz wyúwietlacza - czyli sygna³ LCD_E do³¹czony do wejúcia SCE wyúwietlacza. Znajduj¹cy sií wewn¹trz dekodera bufor dla strumienia MPEG umoøliwia bezproblemow¹ obs³ugí wyúwietlacza, nie powoduj¹c øadnych przerw w procesie dekodowania. Poniewaø yampp by³ pierwotnie przystosowany do wyúwietlaczy alfanumerycznych, nie posiada specjalnego z³¹cza do pod- ³¹czenia graficznego ekranu LCD, aczkolwiek niewykluczone jest, øe nowe wersje p³ytek drukowanych tego odtwarzacza bíd¹ takie z³¹cze posiadaê. Na razie musimy wiíc poradziê sobie inaczej. Istniej¹ dwa sposoby pod³¹czenia wyúwietlacza. Pierwszy - prostszy - polega na bezpoúrednim przylutowaniu przewodûw z wyúwietlacza w odpowiednie punkty p³ytki yamppa, jak pokazano na rys. 7. Magistrala SPI oraz sygna³ RESET s¹ pod- ³¹czone do wyúwietlacza w tym samym miejscu co dekoder MP3, czyli za konwerterem poziomûw IC6. Sygna³ SCE doprowadzony jest poprzez jedn¹, niewykorzystan¹ wczeúniej, bramkí uk³adu IC6, a odpowiedni poziom sygna- ³u D/C zapewnia dodatkowy rezystor podci¹gaj¹cy oraz dioda pod³¹czona do nûøki 8 uk³adu IC1. W tym przypadku wyúwietlacz zasilany jest napiíciem 3,3 V pochodz¹cym ze stabilizatora IC5. Dodatkowo naleøy po³¹czyê przewodem wyprowadzenie numer 26 procesora IC1 z nûøk¹ 9 uk³adu IC6, a pomiídzy wyprowadzenie sygna³u RESET yamppa (wyprowadzenie 4 uk³adu IC1) a masí wlutowaê dodatkowy kondensator 100 nf, ewentualnie zastosowaê scalony uk³ad zeruj¹cy (np. DS1813). Niestety, ten sposûb pod³¹czenia ogranicza dopuszczaln¹ d³ugoúê przewodûw ³¹cz¹cych LCD z p³ytk¹ yamppa do oko³o cm. Na rys. 8 pokazano alternatywny sposûb pod³¹czenia wyúwietlacza do istniej¹cych na p³ytce yamppa z³¹cz: J1 (z³¹cze programuj¹ce) oraz J2 (z³¹cze wyúwietlacza) z moøliwoúci¹ zastosowania nieco d³uøszych przewodûw po³¹czeniowych. Jego wad¹ jest koniecznoúê wykonania dodatkowej p³ytki konwertera poziomûw, znajduj¹cej sií w pobliøu wyúwietlacza. W sk³ad tego konwertera wchodzi uk³ad 74LVC245 - taki sam jak uk³ad U6 zastosowany na p³ytce yamppa - oraz stabilizator napiícia 3,3 V w postaci szeregowego rezystora i diody Zenera. Ten sposûb pod³¹czenia rûwnieø wymaga dodania kondensatora 100nF lub scalonego uk³adu generuj¹cego sygna³ RESET. Jeøeli zastosujemy wyúwietlacz typu LPH-7779, to pod³¹czenie do niego przewodûw nie stwarza øadnego problemu, poniewaø moøna je przylutowaê wprost do z³oconych stykûw wyúwietlacza. Zastosowanie wyúwietlacza z wyprowadzeniami dostosowanymi do gumy przewodz¹cej poci¹ga za sob¹ koniecznoúê wykonania p³ytki drukowanej z polami kon- Tab. 1 Typ LCD Modele Liczba wy Komentarz telefonów prowadzeń LPH 7366 lub LPH 7666 N5110, N5150, 9 Wyprowadzenia na gumce N6110, N6150 przewodzącej, posiada plastikową matówkę do podświetlania diodami LED LPH 7677 lub LPH 7690 N3210, N LPH 7779 N3310, N3330, 8 Wyprowadzenia na złoconych N5510 stykach. Najlepszy wybór ECM A 1091 N8210, N Jak LPH

49 Yampp 3/USB Tab. 2 Numer styku: Dla 8 stykowych: VDD SCLK SDIN D/C SCE GND VOUT RES Dla 9 stykowych: VDD SCLK SDIN D/C SCE OSC GND VOUT RES Rys. 7. Schemat dołączenia wyświetlacza LCD do płytki yamppa taktowymi lub wykorzystania fragmentu p³ytki z uszkodzonego telefonu komûrkowego - po odpowiednim przyciíciu i przylutowaniu przewodûw do istniej¹cych úcieøek b¹dü przelotek. Wykonanie takiej p³ytki we w³asnym zakresie wymaga trochí precyzji i cierpliwoúci, poniewaø odleg- ³oúÊ pomiídzy poszczegûlnymi stykami wyúwietlacza wynosi 1 mm, a wymagana szerokoúê úcieøki pola stykowego oko³o 0,4 mm. Rozk³ad wyprowadzeò poszczegûlnych wyúwietlaczy podano w tab. 2. Jeøeli patrzymy na wyúwietlacz od strony wyprowadzeò i mamy wyprowadzenia u gûry wyúwietlacza, to styk numer 1 znajduje sií po lewej stronie z³¹cza. W przypadku zastosowania wyúwietlaczy z 9-stykowym z³¹czem wyprowadzenie OSC (styk 6) naleøy po³¹czyê z VDD (styk 1). Uruchomienie oraz konfiguracja Po wykonaniu niezbídnych modyfikacji i po³¹czeò do wyúwietlacza, moøemy przyst¹piê do konfiguracji oprogramowania oraz do uruchomienia odtwarzacza. Najpierw musimy za³adowaê do procesora tablicí generatora znakûw dla graficznego wyúwietlacza, ktûra ze wzglídu na obszernoúê jest umiejscowiona na samym koòcu pamiíci Flash procesora - za programem bootloadera. W tym celu wykorzystamy specjalny program loadera, ktûry po za³adowaniu go do procesora przepisze tablicí znakûw w odpowiednie miejsce pamiíci Flash mikrokontrolera. Najpierw pod³¹czamy do yamppa kabel USB i uruchamiamy yampplinka. Jeúli w pamiíci yamppa nie ma poprzedniej wersji oprogramowania, czyli zawiera ona jedynie bootloader, to naleøy go uaktywniê przez naciúniície i przytrzymanie klawisza STOP na klawiaturze lokalnej oraz naciúniície przycisku RESET na p³ytce yamppa. NastÍpnie z menu Actions programu yampplink wybieramy Update Firmware i ³adujemy do yamppa plik o nazwie chargen_loader.bin, znajduj¹cy sií wewn¹trz folderu y3u_graph_lcd pakietu oprogramowania systemowego. Jeúli wszystko przebieg³o pomyúlnie oraz wyúwietlacz zosta³ pod³¹czony prawid³owo, to po sekundach powinniúmy zobaczyê na wyúwietlaczu LCD komunikat úwiadcz¹cy o jego prawid³owym dzia³aniu (oraz instrukcjí w jízyku angielskim o dalszym postípowaniu). adowanie generatora znakûw wykonujemy Rys. 8. Alternatywny sposób dołączenia wyświetlacza LCD do płytki yamppa tylko raz i podobnie jak w przypadku bootloadera, nie ma koniecznoúci jego powtarzania przy okazji wymiany oprogramowania czy innych zmian w konfiguracji yamppa, chyba øe skorzystamy z programowania poprzez interfejs SPI, co powoduje wykasowanie ca³ej zawartoúci pamiíci Flash mikrokontrolera. Teraz moøna za³adowaê w³aúciwe oprogramowanie, ale wczeúniej trzeba dokonaê odpowiednich modyfikacji wewn¹trz pliku Constants.h. Poprzez zmianí komentarzy naleøy ustawiê rodzaj wyúwietlacza na 7, czyli wyúwietlacz graficzny, zapisaê zmodyfikowany plik oraz skompilowaê ca³oúê za pomoc¹ kompilatora GCC. NastÍpnie ponownie z menu Actions programu yampplink wybieramy Update Firmware i ³adujemy do yamppa otrzymany w wyniku kompilacji plik yampp3_usb.bin. Nie musimy przy tym restartowaê yamppa, poniewaø po wyúwietleniu komunikatu o poprawnej pracy wyúwietlacza, yampp automatycznie przechodzi do procedury oczekiwania na wgranie oprogramowania, czyli do bootloadera. Po za³adowaniu w³aúciwego oprogramowania, yampp powinien podj¹ê normaln¹ prací, wyúwietlaj¹c dane na do³¹czonym wyúwietlaczu graficznym. Na fot. 9 przedstawiono pracuj¹cego yamppa 3/USB, z pod³¹czonym (wed³ug pierwszej metody) graficznym wyúwietlaczem LCD typu LPH Plik Constants.h zawiera jeszcze kilka dodatkowych ustawieò odnosz¹cych sií do wyúwietlaczy graficznych. I tak po kolei. Polecenie GRAPHICS_LCD_CONTRAST ustawia odpowiedni kontrast wyúwietlacza, przy czym im wiíksza wartoúê, tym wiíkszy kontrast. UsuniÍcie komentarza z linii LCD_NEGATIV spowoduje, øe wyúwietlane bíd¹ jasne znaki na ciemnym tle, a usuniície komentarza z linii ALT_BAR_STYLE spowoduje zmianí wygl¹du paska postípu odtwarzania. 41

50 Yampp 3/USB Fot. 9. Yampp z wyświetlaczem typu LPH 7366 Dodatkowe moøliwoúci Zastosowanie graficznego wyúwietlacza poci¹ga za sob¹ kilka dodatkowych moøliwoúci. Po pierwsze, mamy moøliwoúê wgrania dowolnego obrazka, czyli graficznego loga, pojawiaj¹cego sií na wyúwietlaczu podczas uruchamiania yamppa oraz w trybie STOP (fot. 10). W tym celu naleøy przygotowaê sobie dowoln¹ czarnobia³¹ bitmapí o rozmiarach 84x32 pikseli (plik o d³ugoúci 446 bajtûw), po czym naleøy j¹ wgraê do yamppa 3/USB za pomoc¹ programu yampplink, wybieraj¹c z menu Actions funkcjí Write Logo to EEPROM. YamppLink musi byê w stanie Connected. Istnieje rûwnieø moøliwoúê wgrania loga o rozmiarach 84x40 pikseli, lecz na razie yampplink nie obs³uguje jeszcze ³adowania tego typu obrazkûw. Kolejna moøliwoúê to prawid³owe wyúwietlanie zestawu znakûw diakrytycznych, czyli np. polskich ìogonkûwî. Katalog Lang, znajduj¹cy sií wewn¹trz pakietu oprogramowania, zawiera definicje polskich znakûw narodowych w postaci pliku PO- LISH.BIN, ktûry moøe zostaê za- ³adowany na dysk yamppa w specjalnie do tego celu przeznaczone miejsce formatu YADL. Niestety, w obecnej wersji program yampplink nie udostípnia jeszcze tej funkcji, lecz nie jest wykluczone, øe wkrûtce bídzie dostípna jego nowsza wersja, Fot. 10. Logo yamppa wyświetlane podczas uruchamiania oraz w trybie STOP obs³uguj¹ca opisan¹ funkcjí. Z mojej strony mogí tylko dodaê, øe Ûw plik musi byê za- ³adowany do sektora o numerze 4 na dysku yamppa. S¹dzÍ, øe ten artyku³ u³atwi Czytelnikom zbudowanie swojego w³asnego odtwarzacza MP3, a jego budowa i uøytkowanie bídzie ürûd³em wielkiej satysfakcji. Romuald Bia³y 42

51 Gra w kółko i krzyżyk AVT 5101 P Gra R w O kółko J E i krzyżyk K T Y Przedstawiamy ³atwy w wykonaniu uk³ad elektronicznej wersji jednej z najpopularniejszych gier towarzyskich: kû³ko i krzyøyk. Rekomendacje: grí polecamy szczegûlnie uczniom i studentom, ktûrym pomoøe ona zabiê lekcyjn¹ (wyk³adow¹) nudí, a takøe wszystkim fanom dobrej rozrywki. Pocz¹tkowo planowa³em wykonanie kolejnego wcielenia gry w koúci, ale po przemyúleniu uzna³em, øe temat jest tak wyeksploatowany, øe zapewne niewielu CzytelnikÛw poúwiíci³oby uwagí takiemu opracowaniu. O dziwo nigdy nie spotka³em sií z elektroniczn¹ wersj¹ popularnej towarzyskiej gry w kû³ko i krzyøyk. Pierwszym odruchem by³a chíê zastosowania wyúwietlacza graficznego, lecz koszt wykonania takiej zabawki by³yby nieporûwnywalnie duøe w stosunku do przydatnoúci. Poniewaø w grze mamy do postawienia tylko dwa moøliwe symbole, najprostszym rozwi¹zaniem okaza³o sií uøycie matrycy 3x3 diod dwukolorowych wraz z zestawem przyciskûw. Program umoøliwia grí w dwûjkí oraz z urz¹dzeniem. Mamy do wyboru 3 poziomy trudnoúci. Gramy do 3 zwyciístw, remisy nie daj¹ punktûw nikomu. ZachÍcam wszystkich do wykonania tej øe gry - na pewno uchroni nas przed stosem pokreúlonych kartek i zapewni rozrywkí np. na nudnych lekcjach czy wyk³adach. Opis dzia³ania Uk³ad sterowania sprowadza sií do nieúmiertelnego procesora 89C4051, szeúciu inwerterûw s³uø¹cych za bufory wyjúciowe oraz 3 tranzystorûw. Na rys. 1 pokazano schemat elektryczny urz¹dzenia. Mikrokontroler pracuje w typowej dla siebie aplikacji. Kondensator C1 ³aduje sií po w³¹czeniu zasilania, zapewniaj¹c zerowanie mikrokontrolera. Do zasilania ca³oúci s³uøy miniaturowy stabilizator napiícia 78L05. Uk³ad zosta³ przewidziany do zasilania z baterii 9 V. Bliøszego omûwienia wymaga czíúê steruj¹ca diodami LED i przyciskami. Matryca jest sterowana multipleksowo co oznacza, øe tylko jedna kolumna LED-Ûw jest zapalona w danym momencie. Jednoczeúnie podczas ìprzemiataniaî matrycy diod, skanowana jest klawiatura. Procesor podaje stany 0 na bazy kolejnych tranzystorûw w³¹czaj¹c kolumní trzech diod. NastÍpnie z drugiej strony poprzez inwertery zapewniaj¹ce odpowiednio duø¹ wydajnoúê pr¹dow¹ (porty procesora w stanie 1 maj¹ j¹ bardzo ma³¹) zapalane s¹ wybrane diody. Ca³y cykl powtarza sií na tyle czísto, øe mamy wraøenie ci¹g³ego úwiecenia wszystkich LED-Ûw. Gdy na bazie danego tranzystora wystípuje 0 i w danej kolumnie naciúniíty jest przycisk zaczyna przewodziê dioda i port mikrokontrolera jest zwierany do masy. Diody s¹ niezbídne, aby naciúniecie przycisku nie zwiera³o linii na sta³e 33

52 Gra w kółko i krzyżyk Rys. 1. Schemat elektryczny gry do ì+î zasilania, gdy nie jest ona wybrana. Oporniki podci¹gaj¹ce R12...R14 dodano profilaktycznie, aby unikn¹ê zak³ûceò. Z kolei R15...R16 s¹ wymagane do poprawnej pracy uk³adu jeúli zastosujemy inwertery w wersji CMOS (porty P1.0 i P1.1 s¹ typu otwarty kolektor). Na p³ytce drukowanej zamiast 5 rezystorûw zastosowano R-Pack. Rezystory R1...R6 ograniczaj¹ pr¹d diod do ok. 10 ma, co zapewnia wystarczaj¹c¹ jasnoúê i maksymalny pobûr pr¹du z baterii ok. 30 ma. Dodatkowym osprzítem jest przetwornik piezoceramiczny z wbudowanym generatorem oraz dwie diody úwiec¹ce - czerwona i zielona, ktûre wskazuj¹ gracza. Zamiast buzzera moøna zastosowaê membraní piezo, lecz generowany düwiík jest niskiej jakoúci z powodu cyklicznie wywo³ywanej procedury odúwieøania matrycy. Odpowiednio zmodyfikowane wersje programûw moøna znaleüê na p³ycie CD-EP2/2003B. Dzia³anie programu, obs³uga gry Oprogramowanie powsta³o w Bascom ie Ca³kowita wielkoúê kodu to ok bajtûw. Jest to doúê duøo, ale wynika to po czíúci ze s³abych optymalizacji niektûrych funkcji przez kompilator i braku obs³ugi zmiennych tablicowych dwuwymiarowych, ktûre znacznie u³atwi³y by np. sprawdzanie czy ktûryú z graczy stworzy³ linií. Zaraz po uruchomieniu jest sprawdzane, czy ktûryú z klawiszy nie jest wciúniíty. Jeúli tak, to zostaje ca³kowicie wy³¹czony buzzer, co umoøliwia nam granie nie zwracaj¹c na siebie uwagi ci¹g³ym pikaniem. Do wyboru grí w jednym z dwûch trybûw: single player oraz dual player. Aby zmieniê bieø¹cy tryb pracy naleøy nacisn¹ê przycisk pod diod¹ w dolnym 34

53 Gra w kółko i krzyżyk Rys. 2. Konfiguracja gry lewym rogu, a nastípnie przycisk przeciwleg³y w celu rozpoczícia rozgrywki (rys. 2). Gdy gramy z urz¹dzeniem musimy wybraê stopieò trudnoúci gry. Øeby to zrobiê naciskamy jeden z przyciskûw w úrodkowej kolumnie (rys. 3). Sztuczna ìinteligencjaî naszej zabawki jest stosunkowo ograniczona: - tryb bardzo ³atwy: program sprawdza tylko czy moøe zrobiê ruch tworz¹cy linií, jeúli nie - losuje, - tryb ³atwy: jw., sprawdza czy moøe zablokowaê zwyciístwo przeciwnika, jeúli tak to losuje czy ma to zrobiê, - tryb normalny: jw., zawsze blokuje kombinacje przeciwnika umoøliwiaj¹ce wygran¹. Po wybraniu ustawieò zaczyna sií rozgrywka. Zawsze pierwszy jest gracz czerwony. Migaj¹ca dioda ponad polem gry informuje ktûry gracz musi teraz wykonaê ruch. Przyk³adowa pole gry pokazano na rys. 4. W takim wypadku, po wybraniu przez czerwonego gracza pola w gûrnym prawym rogu, zwyciíska kombinacja mignie 3 razy i program przedstawi nam punktacjí, jak przyk³adowo pokazano to na rys. 5. Remis jest sygnalizowany 3 pikniíciami i nikomu nie jest przyznawany punkt. W lewej kolumnie znajduje sií punktacja gracza zielonego, a w prawej czerwonego. Teraz naciúniecie dowolnego przycisku spowoduje przejúcie do nastíp- Rys. 3. Wybór stopnia trudności gry nej partii. ZawszÍ partií rozpoczyna zwyciízca z poprzedniej. Gdy wyst¹pi³ remis gracz inicjuj¹cy jest losowany. Jeúli ktûryú gracz wygra³ po raz 3, to po wyúwietleniu wyniku ca³e pole zapali sií na kolor gracza i mignie 3 razy. Naciúniecie dowolnego klawisza spowoduje powrût do menu wyboru trybu gry. Oprogramowanie wykorzystuje do odúwieøania wyúwietlacza wewnítrzny timer procesora Nie bídí przytacza³ ca³ego programu, ale procedura wyúwietlaj¹ca (list. 1) jest o tyle godna uwagi, øe uzupe³ni wiedzie o dzia- ³aniu sprzítu. W programie najwaøniejsz¹ rolí pe³ni¹ dwie zmienne tablicowe L(x) oraz S(x). Zawieraj¹ one informacje o tym, ktûre diody maj¹ byê zapalone (L) oraz ktûre przyciski s¹ naciúniíte. Ca³a procedura jest ujíta w warunku IF sprawdzaj¹cym ile razy zosta³o wywo³ane przerwanie. S³uøy to zmniejszeniu czístotliwoúci skanowania. NastÍpnie, w zaleønoúci od wartoúci zmiennej refresh, program przepisuje zawartoúê tablicy L(x) do tablicy TL(x). Jest to przydatne gdy nasza sztuczna ìinteligencjaî sprawdza rûøne moøliwe kombinacje - poprzez wy³¹czenie przepisywania na ekranie nie bídzie widaê ìúmieciî. Wszystkie wyjúcia przechodz¹ w stan nieaktywny. NastÍpnie program w zaleønoúci od zawartoúci zmiennych Pl1 i Pl2 zapala diody umieszczone ponad polem gry. Wewn¹trz warunku jest umieszczona swego rodzaju pítla, dziíki ktûrej stan diody jest negowany po ok. 200 odúwieøeniach - zapewnia to migotanie z czístotliwoúci¹ ok. 1 Hz. Kolejny warunek sprawdza, czy nie przekroczyliúmy dopuszczalnej wartoúci licznika kolumn. W zaleønoúci od kolumny zmiennym v1, v2, v3 oraz vcol przypisywane s¹ odpowiednie wartoúci. Zmienne vx zawieraj¹ numery pozycji z tablicy do wyúwietlenia, a vcol wartoúê steruj¹c¹ tranzystorami kolumn. W wartoúciach tablicy L(x) bit 0 steruje diod¹ zielon¹, a bit 1 czerwon¹. Wartoúci s¹ przepisywane na odpowiednie wyprowadzenia portu P1. NastÍpnie w³¹czany jest tranzystor kolumny (odpowiednia wartoúê w vcol). Rys. 4. Wygląd przykładowego pola gry Dalej program sprawdza, czy ktûryú z przyciskûw nie jest wciúniíty. Jeúli tak - ustawia odpowiedni element tablicy S(x) na 1. Pewnym problemem by³o wykrycie, czy gracz u³oøy³ zwyciísk¹ kombinacjí, poniewaø Bascom nie List. 1. Procedura obsługująca wyświetlanie matrycowe Scan: Incr Tim If Tim = 3 Then Tim = 0 If Refresh = 1 Then For Rtemp = 1 To 9 Tl(rtemp) = L(rtemp) Next Rtemp End If P1 = P1 Or &B P3 = P3 Or &B If Pl1 = 1 Then Incr Tim1 If Tim1 = 250 Then P1.7 = Not P1.7 Tim1 = 0 End If Else P1.7 = 1 End If If Pl2 = 1 Then Incr Tim2 If Tim2 = 250 Then P1.6 = Not P1.6 Tim2 = 0 End If Else P1.6 = 1 End If If Col = 4 Then Col = 1 Select Case Col Case 1: V1 = 1 V2 = 2 V3 = 3 Vcol = &B Case 2: V1 = 4 V2 = 5 V3 = 6 Vcol = &B Case 3: V1 = 7 V2 = 8 V3 = 9 Vcol = &B End Select P1.0 = Not Tl(v1).0 P1.1 = Not Tl(v2).0 P1.2 = Not Tl(v3).0 P1.3 = Not Tl(v1).1 P1.4 = Not Tl(v2).1 P1.5 = Not Tl(v3).1 P3.0 = 0 P3.1 = 0 P3.2 = 0 P3 = P3 Or Vcol Temp = P3 And &B Select Case Temp Case &B : S(v1) = 1 Case &B : S(v2) = 1 Case &B : S(v3) = 1 Case Else: S(v1) = 0 S(v2) = 0 S(v3) = 0 End Select Incr Col End If Return 35

54 Gra w kółko i krzyżyk Rys. 5. W ten sposób jest sygnalizowana punktacja gry pozwala na tworzenie tablic dwuwymiarowych. Postanowi³em wiíc zastosowaê sprawdzanie wszystkich moøliwy kombinacji. ZachÍcam zainteresowanych do przejrzenia ca³ego programu - do úci¹gniícia z Internetu, dostípny jest takøe na p³ycie CD-EP2/2003B. Ma³ego wyjaúnienia wymaga jeszcze procedura obs³ugi buzzera, ktûr¹ przedstawiono na list. 2. Zmienna beepoff zostaje ustawiona, gdy przytrzymamy przy starcie jakiú klawisz (patrz wy- Rys. 6. Rozmieszczenie elementów na płytce drukowanej List. 2. Procedura obsługi sygnalizatora akustycznego Sub Beep() If Beepoff = 0 Then For Beepx = 1 To 20 P3.7 = 0 Delay P3.7 = 1 Delay Next Beepx End If End Sub øej). PÍtla for tworzy prosty generator o czístotliwoúci teoretycznie 5 khz (opûünienie delay - ok. 100 µs), lecz jest to w praktyce znacznie mniej, poniewaø praca jest przerywana przez procedurí odúwieøania wyúwietlacza i dochodz¹ opûünienia pítli. W przypadku zastosowania gotowego generatora z przetwornikiem piezoceramicznym procedura upraszcza sií do postaci pokazanej na list. 3. Montaø i uruchomienie Urz¹dzenie zmontowano na p³ytce drukowanej o wymiarach ok. 70 x 80 mm, ktûrej schemat montaøowy pokazano na rys. 6. Jest ona przystosowana do obudowy KM33B (waøne - wersja bez litery B w oznaczeniu ma maskownicí do g³oúnika i nie nadaje sií do naszego uk³adu). W obudowie przewidziano miejsce na baterií 9V. Pewien problem stanowi to, øe standardowo p³ytka jest znacznie odsuniíta od przedniej úcianki obudowy - naleøy zastosowaê mikro- WYKAZ ELEMENTÓW Rezystory R1...R6: 68Ω R7, R8: 100Ω R9, R10, R11: 1kΩ R12...R16: 10kΩ Kondensatory C1: 1µF/16V C2, C3: 33pF C4: 10µF/16V C5, C6: 100nF Półprzewodniki D1...D9: 1N4148 DL1...DL9, LED11: LED czerwona LED10: LED zielona T1...T3: BC556 U1: AT89CX051 (zaprogramowany) U2: SN7404N U3: 78L05 Różne B1: BUZZER X1: 12MHz S1...S9: SW PB List. 3. Procedura obsługi generatora akustycznego Sub Beep() If Beepoff = 0 Then P3.7 = 0 Waitms 10 P3.7 = 1 End If End Sub prze³¹czniki z przyciskami o d³ugoúci 9 mm, diody wlutowaê tak aby by³y na rûwni z ì³epkamiî przyciskûw. Po dopasowaniu otworûw w przedniej úciance, musimy przyci¹ê ko³ki wewn¹trz obudowy i dobraê odpowiednio d³ugie wkríty do skrícenia ca³oúci. Øeby p³ytka nie spada³a do wnítrza obudowy moøna zastosowaê odpowiedniej d³ugoúci tulejki dystansowe lub ìna drodzeî wkríta wstawiê uciíte fragmenty ko³kûw. Uk³ad po z³oøeniu i zaprogramowaniu procesora dzia³a od razu (w zaleønoúci od zastosowanego kondensatora C1 moøe startowaê dopiero po np. sekundzie). Micha³ Wysocki mwsoft@satkabel.com.pl Wzory p³ytek drukowanych w formacie PDF s¹ dostípne w Internecie pod adresem: oraz na p³ycie CD-EP2/2003B w katalogu PCB. 36

55 Detektor ruchu z głosowym automatem P R O informacyjnym J E K T Y Detektor ruchu z głosowym automatem informacyjnym AVT 5099 Prezentowany w artykule uk³ad umoøliwia, po stwierdzeniu poruszaj¹cych sií osûb (obiektûw) miídzy czujnikami, odtworzenie komunikatu g³osowego. Rekomendacje: detektor moøna zastosowaê np. w sklepie, biurze lub w domu - jako gadøet zaskakuj¹cy odwiedzaj¹cych nas goúci. Komunikat g³osowy jest zapisany w specjalizowanym uk³adzie, dziíki czemu ca³y proces nagrywania i odtwarzania jest wykonywany przez ten uk³ad. Co z kolei przyczyni³o sií do znacznego ograniczenia liczby niezbídnych elementûw. Do wykrywania przemieszczania sií osûb zastosowano czujniki reaguj¹ce na úwiat³o podczerwone. Zastosowanie dwûch odbiornikûw úwiat- ³a podczerwonego umoøliwi³o w prosty sposûb wykonaê czujnik przemieszczania sií z okreúleniem kierunku. DziÍki temu, w zaleønoúci od kierunku poruszania sií osoby przechodz¹cej, wypowiadany komunikat moøe byê rûøny. Dlatego prezentowany uk³ad doskonale nadaje sií na przyk³ad do sklepu, gdzie wchodz¹cym klientom moøe mûwiê ìdzie DOBRYî, a wychodz¹cym ìdo WIDZENIAî. Maksymalna d³ugoúê kaødego komunikatu wynosi 10 sekund, moøna wiíc nagraê d³uøszy komunikat powitalny lub poøegnalny. Uk³ad moøe rûwnieø znaleüê zastosowanie w domu, gdyø nagranie zabawnego komunikatu na pewno dostarczy dobrej zabawy przychodz¹cym w odwiedziny goúciom. Automat informuj¹cy zosta³ wyposaøony we wzmacniacz z cyfrow¹ regulacj¹ poziomu g³oúnoúci, przez co g³oúnoúê odtwarzanych komunikatûw moøna komfortowo regulowaê za pomoc¹ dwûch przyciskûw. Budowa i zasada dzia³ania Schemat elektryczny automatu informacyjnego przedstawiono na rys. 1. Urz¹dzenie sk³ada sií z trzech p³ytek: p³ytki sterownika, p³ytki diod nadawczych oraz p³ytki odbiornikûw podczerwieni. P³ytka sterownika sk³ada sií z modu³u sterowania diodami nadawczymi zbudowanego przy pomocy uk³adûw US5 i US6. Uk³ad US6 wytwarza przebieg prostok¹tny o czístotliwoúci oko³o 36 khz, czístotliwoúê t¹ moøna precyzyjnie dostroiê przy pomocy potencjometru PR1. Przebieg ten stanowi sygna³ noúny do sterowania diod nadawczych D1 i D2 na p³ytce diod. Generowany przez uk³ad US6 jest modulowany przez drugi generator zbudowany przy uøyciu uk³adu US5. Sygna³ o czístotliwoúci oko³o 700 Hz z wyjúcia tego uk³adu jest kierowany na wejúcie zeruj¹ce uk³adu US6, w efekcie czego diody nadawcze s¹ sterowane ìpaczkamiî impulsûw o czístotliwoúci noúnej. Tak uformowany sygna³ jest kierowany do z³¹cza CON2, poprzez rezystor szeregowy R3. Rezystor ten ogranicza pr¹d p³yn¹cy przez diody do wartoúci zaledwie kilku miliamper, ze wzglídu na niewielka odleg³oúê diod nadawczych i odbiornikûw taka wartoúê pr¹du jest w zupe³noúci wystarczaj¹ca. 27

56 Detektor ruchu z głosowym automatem informacyjnym Rys. 1. Schemat elektryczny automatu informującego Przebiegi czasowe w charakterystycznych punktach uk³adu przedstawiono na rys. 2. Wysy³any przez diody D1 i D2 (na p³ytce diod) sygna³ úwietlny jest nastípnie odbierany przez dwa odbiorniki úwiat³a podczerwonego, uk³ady US1 i US2 na p³ytce odbiornikûw. Uk³ad TSOP1736 zawiera w swojej strukturze kompletny odbiornik úwiat³a podczerwonego wraz wzmacniaczem i filtrem, przez co na jego wyjúciu otrzymywany jest cyfrowy sygna³ reprezentuj¹cy úwiat³o padaj¹ce na jego strukturí. Zastosowana wersja uk³adu jest dostrojona do czístotliwoúci 36 khz i z tak¹ czístotliwoúci¹ s¹ sterowane diody nadawcze, aby zapewniê jak najwiíksze dopasowanie. W naszym przypadku po oúwietleniu diodami nadawczymi, na wyjúciach obydwu uk³adûw pojawi sií przebieg prostok¹tny o czístotliwoúci rûwnej czístotliwoúci moduluj¹cej úwieceniem diod, czyli oko³o 700 Hz. Sygna³y te trafiaj¹ nastípnie na wejúcia dwûch multiwibratorûw monostabilnych zawartych wewn¹trz uk³adu US3. Uk³ady TSOP1736 posiadaj¹ wewnítrzne rezystory podci¹gaj¹ce, ale ze wzglídu na znaczne oddalenia uk³adûw TSOP1736 od p³ytki sterownika, w celu eliminacji zak³ûceò zosta³y zastosowano dodatkowe rezystory R7 i R8. Uk³ady multiwibratorûw reaguj¹ na zbocze opadaj¹ce sygna³u wejúciowego z moøliwoúci¹ ponownego wyzwolenia. Zastosowanie uk³adu US3 powoduje wiíc wyd³uøanie przebiegûw pojawiaj¹cych sií na wyjúciach odbiornikûw TSOP1736, co sprawia, øe w czasie gdy odbiorniki s¹ oúwietlone, to na wyjúciach ìqî obydwu uk³adûw panuje stan wysoki, a na wyjúciach ìnotqî stany niskie powoduj¹ce úwiecenie diod D2 i D3. Diody te zosta³y zastosowane w celu wizualnej sygnalizacji poprawnoúci transmisji úwietlnej pomiídzy diodami nadawczymi i odbiornikami. Sygnalizacja ta bídzie przydatna przy uruchamianiu uk³adu. Sygna³ z wyjúcia ìqî multiwibratora US3B trafia bezpoúrednio na wejúcie wyzwalanie komunikatu uk³adu US1. Natomiast z wyjúcia multiwibratora US3A sygna³ przechodzi przez zworkí JP1. Zworka ta s³uøy do prze³¹czania pomiídzy trybem odtwarzania i nagrywania, szczegû³owo zostanie opisana przy opisie programowania. W celu przedstawienia zasady dzia³ania detektora zostaje przyjíte, øe zworka JP1 znajduje sií w pozycji 1-2, przez co sygna³ z wyjúcia ìqî uk³adu US3A trafia na wejúcie adresowe 28

57 Detektor ruchu z głosowym automatem informacyjnym Rys. 2. Przebiegi czasowe w charakterystycznych punktach układu ìa6î uk³adu US1. Uk³ad US1 jest jednouk³adow¹ pamiíci¹ düwiíku o czasie nagrania 20sekund. Uk³ad ten pracuje w standardowej aplikacji z zewnítrznym mikrofonem MK i zewnítrznym wzmacniaczem - uk³adem US2. Do zasilania mikrofonu zastosowano rezystory R14...R17 i kondensator C16. Kondensatory C13 i C14 oddzielaj¹ sk³adowa sta³¹ od wejúcia wzmacniacza wejúciowego zawartego wewn¹trz uk³adu US1. Dioda úwiec¹ca D4 s³uøy do sygnalizacji stanu nagrywania oraz koòca komunikatu podczas odtwarzania. Zworka JP3 umoøliwia wprowadzenie uk³adu w stan zapisu. Poniewaø wzmacniacz zawarty w uk³adzie ISD1420 posiada niewielk¹ moc, zastosowano dodatkowy wzmacniacz o mocy 0,8 W. Zastosowany uk³ad TDA8551 oprûcz stopnia wzmacniacza zawiera wejúciowy regulator poziomu düwiíku oraz wejúcie umoøliwiaj¹ce sterowanie poborem mocy przez ten uk³ad. Do sterowania trybem pracy s³uøy wejúcie oznaczone jako ìmodeî, jeúli na tym wejúciu panuje stan wysoki, to uk³ad znajduje sií w trybie ìstandbyî i pobiera pr¹du o natíøeniu zaledwie 10 µa. Podanie na to wejúcie napiícia o wartoúci odpowiadaj¹cej po³owie napiícia zasilania prze³¹czy uk³ad w stan ìmuteî i wzmacniacz bídzie pracowa³, ale düwiík bídzie wyciszony. Ostatnim trybem pracy jest tryb aktywny, ktûry jest w³¹czany po podaniu na wejúcie ìmodeî stanu niskiego, ten tryb jest wykorzystywany w przedstawionym uk³adzie. Zrezygnowano z prze³¹czania uk³adu w tryb czuwania jeúli nie jest wypowiadany komunikat, gdyø ca³y uk³ad i tak musi byê zasilany z zasilacza i oszczídzanie pobieranego pr¹du nie jest niezbídne. FunkcjÍ t¹ moøna wykorzystaê jeúli wzmacniacz pracowa³by w uk³adzie zasilanym bateryjnie. Do zmiany poziomu g³oúnoúci s³uø¹ dwa przyciski SW1 i SW2, przycisk SW1 powoduje zwiíkszenie poziomu g³osu, a przycisk SW2 jego zmniejszenie. Uk³ad ISD1420 jest skonfigurowany do pracy adresowej, przez co odtwarzanie komunikatu rozpoczyna sií od adresu podanego na wejúcia adresowe A0...A7. Poniewaø w przedstawionym uk³adzie wypowiadane s¹ tylko dwa komunikaty, jego pamiíê zosta³a podzielona na dwa obszary 10 sekundowe. Wszystkie wejúcia adresowe, oprûcz A6 s¹ zwarte do masy, podanie wiíc na wejúcie A6 stanu niskiego powoduje odtwarzanie komunikatu zapisanego od adresu rûwnego zero, jeúli zaú na wejúcie A6 zostanie podany stan wysoki, to bídzie odtworzony komunikat zapisany od adresu odpowiadaj¹cego po³owie pamiíci uk³adu, czyli oko³o 10sekund. WybÛr odpowiedniego komunikatu jest dokonywany w zaleønoúci od kierunku przemieszczania sií osoby. Na rys. 3 przedstawiono stany na wyjúciach ìqî multiwibratorûw zawartych w uk³adzie US3 podczas przemieszczania sií osoby w dwûch kierunkach(podczas wchodzenia i wychodzenia). Jak juø wczeúniej wspomniano po oúwietleniu odbiornikûw TSOP1736 na wyjúciach ìqî obydwu multiwibratorûw panuj¹ stany wysokie. W momencie przechodzenia osoby wi¹zka úwiat³a zostanie przerwana i na tych wyjúciach pojawi¹ sií stany niskie. Ze wzglídu na to, ze zarûwno diody nadawcze, jak i odbiorniki umieszczone s¹ obok siebie odbiorniki nie zastan¹ przes³oniíte jednoczeúnie lecz z pewnym opûünieniem. O tym ktûry odbiornik zostanie przes³oniíty pûüniej decyduje kierunek przemieszczania sií osoby. W kaødym przypadku stan niski na wyjúciu ìqî uk³adu US3B spowoduje wyzwolenie komunikatu, a stan na wyjúciu ìqî US3A decyduje o tym, ktûry komunikat zostanie odtworzony. Jak wynika z rys. 3 podczas wchodzenia, w momencie wyzwolenia odtwarzania komunikatu(pojawienie sií stanu niskiego na wyjúciu US3B), na wejúciu adresowym ìa6î uk³adu ISD1420 panuje stan niski podany z wyjúcia uk³adu US3A. Dlatego w takim przypadku zostanie odtworzony komunikat rozpoczynaj¹cy sií od pocz¹tku pamiíci. W drugim przypadku (podczas wychodzenia), w momencie wyzwolenia odtwarzania komunikatu na wejúciu adresowym ìa6î panuje jeszcze stan wysoki, gdyø ten odbiornik zosta³ przys³oniíty pûüniej i nast¹pi odtworzenie drugiego komunikatu. Rys. 3. Przebiegi czasowe na wyjściach multiwibratorów w czasie wejścia i wyjścia 29

58 Detektor Bezprzewodowy ruchu z regulator głosowym temperatury automatem informacyjnym Rys. 4. Schemat montażowy płytek drukowanych W ten sposûb uk³ad dok³adnie wie, w jakim kierunku przemieszcza sií przechodz¹ca osoba i wybiera odpowiedni komunikat. Do zasilania modu³u steruj¹cego automatem informuj¹cym zastosowano uk³ad stabilizatora monolitycznego typu LM7805, ktûry dostarcza napiícia rûwnego 5V do wszystkich uk³adûw. Do poprawienia parametrûw tego napiícia zarûwno na jego wejúciu jak i wyjúciu zastosowany kondensatory wyg³adzaj¹ce. Dioda D1 zabezpiecza przed odwrotn¹ polaryzacj¹ napiícia zasilania. Montaø i uruchomienie Schematy montaøowe p³ytek drukowanych pokazano na rys. 4. Montaø rozpoczynamy od p³ytki sterownika, elementy montujemy poczynaj¹c od tych, o najmniejszych gabarytach, czyli rezystory, podstawki pod uk³ady scalone, kondensatory i z³¹cza. Przy montaøu uk³adu US2 naleøy zachowaê szczegûln¹ ostroønoúê, gdyø umieszczony w obudowie SO8 uk³ad wymaga duøej precyzji podczas lutowania. Nie naleøy rûwnieø zbyt d³ugo przytrzymywaê rozgrzanego grotu lutownicy przy wyprowadzeniach tego uk³adu, aby nie uleg³ uszkodzeniu z powodu przegrzania. Ze wzglídu na niewielk¹ liczbí wyprowadzeò montaø tego uk³adu moøna jednak Rys. 5. Sposób zamontowania diod nadawczych i odbiorników w drzwiach wykonaê przy uøyciu lutownicy transformatorowej. Przyciski SW1 i SW2 umieszczone s¹ poza p³ytk¹ i montowane s¹ na odcinku przewodu czteroøy³owego, ktûry z jednej strony naleøy przylutowaê do z³¹cza CON4, a z drugiej do wspomnianych przyciskûw. Po zmontowaniu p³ytki g³ûwnej moøna przyst¹piê do montaøu elementûw na p³ytkach diod nadawczych i odbiornikûw. P³ytka diod nadawczych sk³ada sií z tylko trzech elementûw, wiíc ich montaø nie sprawi trudnoúci. Montaø elementûw na p³ytce odbiornikûw rozpoczynamy od uk³adûw US1 i US2. Przed wlutowaniem naleøy ich wyprowadzenia zagi¹ê pod k¹tem 90 o, tak aby moøna by³o u³oøyê je na leø¹co, nastípnie montujemy kondensator C1 i z³¹cze CON1. Po zmontowaniu wszystkich modu³ûw moøna przyst¹piê do zamontowania czujnikûw w futrynie drzwi. Na rys. 5 przestawiono sposûb umieszczenia diod nadawczych i odbiornikûw podczerwieni. Obydwa modu³y naleøy umieúciê dok³adnie na przeciw siebie i na takiej samej wysokoúci (oko³o 90 cm). P³ytki diod i odbiornikûw wymiarami dopasowanie s¹ do obudowy typu Z43 (obudowy nie wchodz¹ w sk³ad zestawu), moøna wiíc je przymocowaê bezpoúrednio do futryny przy pomocy wkrítûw lub wmontowaê w obudowy. Jeúli zostan¹ zastosowane obudowy, to naleøy wykonaê w nich odpowiednie otwory, aby úwiat³o emitowane przez diody nadawcza trafia³o bez przeszkûd do odbiornikûw. Jeúli p³ytki czujnikûw zosta³y zamontowane, naleøy po³¹czyê je z p³ytka g³ûwn¹, w tym celu z³¹cze CON1 na p³ytce diod nadawczych naleøy po³¹czyê przewodem dwuøy³owym ze z³¹czem CON2 na p³ytce g³ûwnej. P³ytkÍ odbiornikûw ³¹czymy (z³¹cze CON1) z p³ytk¹ g³ûwn¹ (z³¹cze CON3) przy pomocy przewodu czteroøy³owego. Naleøy pamiítaê, aby zastosowane przewody nie przekracza³y d³ugoúci oko³o trzech metrûw. Po pod³¹czeniu wszystkich p³ytek do z³¹cza CON5 na g³ûwnej p³ytce pod³¹czamy g³oúnik, a do z³¹cza CON1 napiície zasilania o wartoúci oko³o 9 V. Zastosowany zasilacz powinien mieê wydajnoúê pr¹dow¹ minimum 200 ma. Jeúli montaø wszystkich modu³ûw zosta³ wykonany prawid³owo, to po pod³¹czaniu zasilania powinny zapaliê sií diody D2 i D3 na p³ytce g³ûwnej. Jeúli tak nie jest, to naleøy potencjometrem PR1 zmieniê czístotliwoúê sterowania diod nadawczych, tak aby zapali³y sií obydwie diody D2, D3. Jeúli regulacja nie czístotliwoúci nie powoduje ich zapalenia, to úwiadczy 30

59 Detektor ruchu z głosowym automatem informacyjnym to o tym, øe uk³ad lub po³¹czenia poszczegûlnych p³ytek s¹ wykonane b³ídnie i naleøy ponownie przeúledziê wszystkie po³¹czenia. Jeøeli jednak diody sií zaúwieci³y, to ca³y uk³ad dzia³a poprawnie i moøna przejúê do nagrania odpowiednich komunikatûw. W tym celu zworkí JP1 naleøy ustawiê w pozycji 2-3, a zworkí JP2 w pozycji 1-2. W ten sposûb zostanie ustawiony adres pierwszego komunikatu, nastípnie naleøy zewrzeê zworkí JP3 i rozpocznie sií jego nagrywanie, nagrywanie bídzie trwa³o aø do rozwarcia tej zworki. W czasie nagrywanie bídzie sií úwieci³a dioda D4. Naleøy pamiítaê, aby czas nagrywania pierwszego komunikatu nie przekroczy³ 10 sekund. Przyk³adowy komunikat moøe mieê postaê: ìdzie DOB- RYî. W celu nagrania drugiego komunikatu naleøy zworkí JP2 przestawiê w pozycjí 2-3, co spowoduje ustawienie adresu drugiego komunikatu. Tak jak wczeúniej nagrywanie rozpoczynamy zwarciem zworki JP3, w tym przypadku nie jest konieczne kontrolowanie d³ugoúci nagrywanego komunikatu, poniewaø po przekroczeniu maksymalnego czasu nagrania uk³ad ISD1420 sam przerwie proces nagrywania, co objawi sií samoczynnym zgaszeniem diody D4. Drugi komunikat moøe byê nastípuj¹cy: ìdo WIDZENIAî. Po zakoòczeniu nagrywania prze³¹czamy zworkí JP1 w pozycjí 1-2, w ten sposûb wybûr nagranych komunikatûw bídzie odbywa³ sií automatycznie. Od tej pory przejúcie pomiídzy czujnikami bídzie objawia³o sií WYKAZ ELEMENTÓW Płytka główna Rezystory R1, R4: 4,7kΩ R2: 27kΩ R3, R10, R11: 470Ω R5: 12kΩ R6, R9: 39kΩ R7, R8, R16, R17: 10kΩ R12: 100kΩ R13, R14: 1kΩ R15: 5,1kΩ R18: 470kΩ PR1: potencjometr montażowy 10kΩ Kondensatory C1, C4, C16: 220µF/16V C2, C3, C9...C14, C19: 100nF C5...C7: 47nF C8: 1nF C15: 4,7µF/16V C17: 330nF C18: 100µF/16V Półprzewodniki D1: 1N4007 D2, D4: LED 5mm czerwona D3: LED 5mm zielona US1: ISD 1420 US2: TDA8551 SMD US3: CD4538 US4: LM7805 US5, US6: NE555 Różne CON1, CON5: ARK2(5mm) CON2: goldpin 1x2 męski CON3, CON4: goldpin 1x4 męski JP1, JP2: goldpin 1x3 +Jumper JP3: goldpin 1x2+Jumper MK: mikrofon pojemnościowy SW1, SW2: mikrowłącznik Głośnik 1W/8Ω Płytka odbiorników C1: 4,7µF/16V tantalowy US1, US2: TSOP1736 CON1: goldpin 1x4 męski kątowy Płytka diod nadawczych D1, D2: dioda nadawcza podczerwieni CON1: goldpin 1x2 męski kątowy wypowiedzeniem odpowiedniego komunikatu, w momencie przerwania wi¹zki úwiat³a zostan¹ zgaszone diody D2 i D3. Do ustalenia poziomu g³oúnoúci tych komunikatûw s³uø¹ przyciski SW1 i SW2. Jeúli odtwarzanie komunikatûw nie bídzie prawid³owe, na przyk³ad przy wchodzeniu bídzie wypowiadany komunikat ìdo WI- DZENIAî, to naleøy jeszcze raz przeprowadziê procedurí nagrywania, lecz odpowiednie komunikaty zapisaê w odwrotnej kolejnoúci. Sytuacja b³ídnie wypowiadanych komunikatûw bídzie wystípowa³a w przypadku umieszczenia w nieprawid³owej kolejnoúci odbiornikûw TSOP1736, co z kolei zaleøy od tego, po ktûrej stronie futryny zosta³y umieszczone. Aby naprawiê b³ídne wypowiadanie komunikatûw moøna rûwnieø zamieniê miejscami diody nadawcze i odbiorniki, ale znacznie proúciej jest nagraê komunikaty w odwrotnej kolejnoúci. Krzysztof P³awsiuk, AVT krzysztof.plawsiuk@ep.com.pl Wzory p³ytek drukowanych w formacie PDF s¹ dostípne w Internecie pod adresem: oraz na p³ycie CD-EP2/2003B w katalogu PCB. 31

60 Konwerter USB< >RS485 z separacją P R O J galwaniczną E K T Y Konwerter USB< >RS485 z separacją galwaniczną AVT 5098 Przedstawiamy kolejn¹ aplikacjí interfejsu USB, ktûry - dziíki uk³adom firmy FTDI - moøna ³atwo zastosowaê w dowolnym, takøe samodzielnie budowanym urz¹dzeniu. Rekomendacje: projekt szczegûlnie interesuj¹cy dla tych, ktûrzy musz¹ korzystaê z kablowej transmisji danych na znaczne odleg³oúci (np. do tworzenia minisieci), a takøe automatykûw wykorzystuj¹cych w swoich systemach interfejs RS485. Konwerter USB<->RS485 jest kolejnym projektem zrealizowanym z uøyciem uk³adu FT8u232. Zastosowa³em w nim starsz¹ wersjí (oznaczon¹ sufiksem AM), poniewaø jej udoskonalon¹ odmianí (oznaczon¹ sufiksem BM) firma FTDI wprowadzi³a juø w trakcie wykonywania p³ytki drukowanej. Na szczíúcie producent zapewnia utrzymanie dostaw wersji AM - w³aúnie dla potrzeb juø opracowanych rozwi¹zaò. Nie ma wiíc potrzeby natychmiastowej aktualizacji projektu. Opisywanej w EP10/2002 aplikacji Ft8u232 (by³ to konwerter RS232C) moøna by³o zarzuciê powielanie rozwi¹zaò tanich i powszechnie dostípnych na rynku wyposaøenia komputerowego. Jednak jej celem by³o przede wszystkim samodzielne przetestowanie uk³adu i poznanie jego moøliwoúci. Projekt prezentowany w tym artykule moøe staê sií korzystn¹ cenowo alternatyw¹ dla innych rozwi¹zaò przy kompletowaniu elektronicznego warsztatu. RS485 - dla przypomnienia ProtokÛ³ transmisji szeregowej RS485 by³ juø niejednokrotnie opisywany na ³amach EP (³¹cznie z konwerterami RS232<->RS485). Nie ma wiíc potrzeby jego szczegû³owego objaúniania. W skrûcie - dla odúwieøenia wiedzy - przyto- czymy tylko podstawowe cechy tego interfejsu: - Zamiast sygna³u niesymetrycznego (napiície wzglídem masy stosowanego w RS232C), uøywany jest sygna³ symetryczny (napiície rûønicowe w parze przewodûw), znacznie bardziej odporny na wszelkiego rodzaju zak³ûcenia. W zwi¹zku z tym moøliwe jest realizowanie po³¹czeò na znacznie wiíksze odleg³oúci i osi¹ganie duøo wiíkszych szybkoúci transmisji. - Transmisja moøe mieê charakter pû³dupleksowy (nadawanie i odbiûr naprzemiennie po jednej parze przewodûw) albo pe³nodupleksowy (nadawanie i odbiûr jednoczesne z uøyciem dwûch par przewodûw). - Do linii moøe byê do³¹czonych wiele nadajnikûw/odbiornikûw (w przypadku pû³dupleksu s¹ to prze³¹czane uk³ady nadawczoodbiorcze). Nie ma jednak øadnego mechanizmu samoczynnie zapobiegaj¹cego konfliktom przy jednoczesnym uruchomieniu dwûch lub wiícej nadajnikûw. Zadanie to spoczywa na odpowiednio opracowanym protokole komunikacji. Moøe on byê rûøny dla rûønych zastosowaò. Najbardziej popularny i najprostszy jest model master-slave: jeden z uk³adûw pe³ni rolí nadrzídn¹ i kolejno wywo³uje pozosta³e uk³ady, czekaj¹c na ich odpo- 23

61 Konwerter USB< >RS485 z separacją galwaniczną Rys. 1. Schemat blokowy izolowanego interfejsu RS485 typu MAX1480 wiedü. Taki system czísto spotykamy w rozwi¹zaniach akwizycji danych pomiarowych obs³ugiwanych przez centralny komputer PC. - Tor transmisyjny nie posiada wydzielonej linii sygna³u zegarowego - transmisja przebiega w sposûb asynchroniczny, przy zastosowaniu takich samych formatûw ramek jak w przypadku RS232C. - Dla sygna³u rûønicowego nie jest wymagane po³¹czenie mas oddalonych urz¹dzeò. Obwody wejúciowo-wyjúciowe interfejsu linii ìtoleruj¹î znaczny poziom napiícia wspûlnego w parze rûønicowej. Jednak s¹ przypadki wystípowania znacznie wyøszych niø dopuszczalne rûønic napiícia pomiídzy potencja³ami mas. Moøe to wyst¹piê np. przy po³¹czeniu urz¹dzeò zasilanych z rûønych faz sieci energetycznej, umieszczonych w osobnych, niezaleønie uziemionych budynkach itp. W takich przypadkach naleøy stosowaê interfejsy izolowane. Kilka s³ûw o zastosowanym uk³adzie interfejsu W projekcie zastosowa³em galwanicznie izolowany interfejs RS485. Nawet jeúli nie bídziemy sií do³¹czaê do rozleg³ej sieci z duø¹ rûønic¹ miídzy potencja- ³ami mas, uøywanie konwertera przy rozmaitych pracach warsztatowych wi¹øe sií zawsze z ryzykiem naraøenia portu komputera na uszkodzenie (wiíksze wartoúci napiíê, przepiícia przy rozmaitych prze³¹czeniach itp.), co zazwyczaj poci¹ga za sob¹ znaczne koszty i k³opoty. Aby jak najbardziej uproúciê uk³ad, wybra³em scalony konwerter MAX1480. Jego schemat blokowy przedstawiono na rys. 1. W jednej obudowie uk³adu zawarto znane z rozwi¹zaò tradycyjnych obwody: - przetwornicí napiícia DC/DC (MAX845, transformator, diody prostownicze), - blok interfejsu RS485 (MAX487), - separatory sygna³ûw zbudowane w oparciu o szybkie transoptory. Uk³ad MAX1480 jest przeznaczony do ³¹cznoúci pû³dupleksowej, ktûr¹ zazwyczaj stosujemy we w³asnych systemach mikroprocesorowych oraz w amatorskich, niewielkich sieciach akwizycji danych i sterowania. Jest on produkowany w 3 odmianach: A, B, C. Wersja A zapewnia najwiíksz¹ szybkoúê przesy³u - 2,5 Mb/s i duø¹ szybkoúê prze³¹czania nadawanie/odbiûr (200 ns). Wersja B (uøyta w prototypie) jest przystosowana do linii transmisyjnych gorszej jakoúci. DziÍki ograniczeniu stromoúci zboczy przebiegûw malej¹ generowane zak³ûcenia, a zw³aszcza odbicia zwi¹zane z niedopasowaniem linii. NastÍpuje to kosztem ograniczenia maksymalnej szybkoúci transmisji (250 kb/s) i prze³¹czania (35 µs). Wersja ta jest najbardziej dogodna w zastosowaniach warsztatowych i eksperymentalnych. WersjÍ C dobieramy w szczegûlnym przypadku, gdy przy ograniczonej szybkoúci transmisji (250 kb/s) zaleøy nam na przyspieszonym (500 ns) prze³¹czaniu nadajnik/odbiornik. PoszczegÛlne wersje uk³adûw zachowuj¹ zgodnoúê wyprowadzeò, moøna wiíc zastosowaê na p³ytce dowolny, zgodny z potrzebami. Inne s¹ jednak wymagane wartoúci rezystorûw zewnítrznych dla kaødej wersji uk³adu - sama wymiana uk³adu w podstawce nie wystarczy wiíc dla uzyskania innej szybkoúci pracy. Jeszcze s³owo o kosztach. Cena uk³adu MAX1480 moøe wydawaê sií wygûrowana, jednak gdy policzymy ³¹czn¹ wartoúê elementûw niezbídnych do dyskretnej realizacji takich uk³adûw, to okaøe sií, øe inwestycja jest bardzo op³acalna - nie uwzglídniaj¹c nawet uproszczenia p³ytki i montaøu. Budowa konwertera Schemat konwertera przedstawiono na rys. 2. Pod³¹czenie do magistrali USB oraz podstawowe otoczenie uk³adu Ft8u232AM jest identyczne jak w konwerterze RS232 (EP10/2002), nie bídziemy wiíc go ponownie opisywaê. Jedyna istotniejsza rûønica to zasilenie obwodu zerowania powielacza czístotliwoúci (R8, C12) z g³ûwnego wejúcia zeruj¹cego, a nie napiíciem zasilania (co zawsze zapewnia wymagane przez uk³ad opûünienie startu powielacza w stosunku do momentu uruchomienia oscylatora). Nowoúci pojawiaj¹ sií w opisie wspû³pracy z MAX1480. Prze³¹czanie nadawanie/ odbiûr Specjalnie dla potrzeb pû³dupleksowej transmisji RS485, uk³ad Ft8u232 wyposaøono w wyjúcie TXDEN. Przyjmuje ono poziom wysoki, jeúli w buforze nadajnika znajduj¹ sií niewys³ane jeszcze znaki (bajty). U³atwia to programow¹ obs³ugí transmisji, zw³aszcza w aspekcie wykrycia koòca nadawania. Obs³uga sesji komunikacyjnej RS485 z poziomu mastera przebiega nastípuj¹co: - prze³¹czenie interfejsu na nadawanie, - wys³anie komunikatu zaadresowanego do okreúlonego uk³adu slave, - prze³¹czenie interfejsu na odbiûr, - przyjície i interpretacja odpowiedzi, ewentualnie zg³oszenie przekroczenia czasu oczekiwania (timeout) w przypadku jej braku. Gdy masterem jest komputer PC, pojawiaj¹ sií czísto problemy z prze³¹czeniem kierunku. Wynika to z nie w pe³ni spûjnej wspû³pracy systemowego sterownika (w przypadku systemu Windows) z nowoczesnymi UART-ami, wyposaøonymi we w³asny bufor FI- FO. Od strony programowej wys³anie pakietu danych jest zakoòczone w momencie przes³ania ostatnich bajtûw do UART-a. Jeúli 24

62 Konwerter USB< >RS485 z separacją galwaniczną Rys. 2. Schemat izolowanego konwertera USB< >RS485 w tym momencie zostaje wydana komenda prze³¹czenia kierunku (uøywa sií do tego zazwyczaj jednej z linii kontrolnych RTS lub DTR), to moøe sií zdarzyê, øe wy³¹czymy nadajnik RS485 przed ca³kowitym oprûønieniem sprzítowego bufora UART-a - wys³any pakiet danych bídzie niekompletny. W przypadku konwertera zagroøenie jest podwûjne, bo wysy³ane dane s¹ dodatkowo buforowane w samym Ft8u232. TXDEN zabezpiecza przed tak¹ nieprawid³owoúci¹ dzia³ania, utrzymuj¹c tryb nadawania aø do zakoòczenia wysy³ania ostatniego bajtu z bufora. Naleøy jednakøe pamiítaê (informuje o tym producent w nocie aplikacyjnej), øe mechanizm ten nie jest do koòca dopracowany: czasami moøe wystípowaê ìobcinanieî ostatniego bitu stopu. Usterka ta zosta³a usuniíta w wersji BM, natomiast w przypadku AM zaleca sií stosowanie dodatkowego obwodu opûüniaj¹cego RC na wyjúciu TXDEN. Na schemacie nie jest on zaznaczony, ale p³ytka drukowana jest przystosowana do wlutowania dodatkowych elementûw (pomiídzy TXDEN a bramk¹ U3A). Inny aspekt prze³¹czania kierunku wi¹øe sií z zastosowaniem uk³adu MAX1480B. Nie moøemy w tym przypadku polegaê jedynie na samoczynnym w³¹czeniu nadajnika w momencie nape³nienia bufora nadawczego. Czas reakcji prze³¹cznika kierunku jest znaczny i przy wiíkszych szybkoúciach transmisji moøemy utraciê pocz¹tek komunikatu. Dlatego przewidziano takøe oddzielne sterowanie kierunkiem za pomoc¹ linii DTR w celu odpowiednio wczesnego prze³¹czenia interfejsu. Sygna³y DTR i TXDEN s¹ zsumowane w bramkach US3A i B, co pozwala na ich kontrolí programow¹, a jednoczeúnie samoczynnie zapewnia prawid³owe zakoòczenie nadawania, nawet jeúli wy³¹czymy DTR zbyt szybko. 25

63 Konwerter USB< >RS485 z separacją galwaniczną Linie TxD oraz RxD W zwi¹zku z zastosowaniem transoptorûw, konieczne jest odpowiednie dopasowanie poziomûw napiíê w linii RxD. Dla linii TxD sprawa jest prosta - poziom aktywny (niski) powoduje zapalenie diody LED transoptora nadawczego do³¹czonego do linii przez rezystor R20 (wydajnoúê pr¹dowa wyjúê Ft8u232 jest do tego celu wystarczaj¹ca). Natomiast sygna³ RxD wymaga odwrûcenia fazy za pomoc¹ bramki U3C (dla poziomu nieaktywnego linii odbiorczej transoptor odbiornika jest w³¹czony i na jego wyjúciu (RD) wystípuje poziom niski, z kolei poziom aktywny linii powoduje wy³¹czenie transoptora i rezystor R19 wymusza poziom wysoki - odwrotnie niø dla standardowego UART-u). Zasilanie Konwerter jest przewidziany do zasilania z magistrali USB, co radykalnie zwiíksza dogodnoúê jego uøytkowania. Wi¹øe sií z tym jednak koniecznoúê zapewnienia wydajnoúci pr¹dowej powyøej 100 ma gwarantowanej przez USB oraz zastosowania dodatkowych obwodûw wy³¹czaj¹cych. Uk³ad MAX 1480 posiada wejúcie shutdown powoduj¹ce praktycznie wy³¹czenie uk³adu (pobûr pr¹du spada do 0,2 µa). Jednak w wersji A obwûd shutdown nie odcina zasilania szybkich transoptorûw separuj¹cych (pobieraj¹cych ok. 10 ma). Dlatego zastosowano dodatkowy tranzystor MOSFET-P do wy³¹czania zasilania VCC4 i VCC5. Ten system wy³¹czenia interfejsu dzia³a podczas: - zerowania (niski poziom podany przez R8 z RESET na RCCLK i bramkí U3D), - enumeracji (wyjúcie USBEN przyjmuje poziom wysoki po zakoòczeniu konfigurowania Ft8u232 przez hosta - zanim to nast¹pi bramka U3D otrzymuje poziom niski, podtrzymywany dodatkowo przez do³¹czenie rezystora R22 do masy, ze wzglídu na wysok¹ impedancjí USBEN podczas zerowania), - trybu uúpienia (zamiast wyjúcia SLEEP zosta³o wykorzystane wyprowadzenie RCCLK, ktûre w tym przypadku pracuje jako wyjúcie wymuszaj¹ce poziom niski). Jednoczeúnie naleøy pamiítaê, øe: - konwerter musi byê pod³¹czany wy³¹cznie do huba posiadaj¹cego w³asne zasilanie (w przeciwnym przypadku nie otrzyma wiícej niø 100 ma), - w uk³adzie nie moøemy tym razem pomin¹ê pamiíci EEP- ROM - w deskryptorze urz¹dzenia musimy wpisaê maksymaln¹ wartoúê pobieranego pr¹du. Do³¹czenie konwertera do linii transmisyjnej Od strony linii uk³ad zawiera tylko kilka elementûw. Poza rezystorami zasilania transoptorûw separuj¹cych s¹ to: - R14 - rezystor ograniczaj¹cy pr¹d w przypadku zwarcia przewodu sygna³owego z ekranem, - Z1, Z2 - transile ma³ej mocy (nazwa handlowa Transguard) eliminuj¹ce przepiícia szpilkowe, - R23 - terminator linii. Montaø terminatorûw zaleøy od przestrzennej konfiguracji naszej sieci. Powinny one byê wstawione na koòcach linii transmisyjnej, w celu eliminacji (poprzez dopasowanie impedancji falowej) odbiê sygna³u. Wlutujemy go wiíc, jeúli komputer z pod³¹czonym konwerterem bídzie skrajnym elementem sieci. Przy zastosowaniu MAX1480B i uøyciu niewielkich szybkoúci (np. typowych w uk³adach z mikrokontrolerami: lub baud), moøna prûbowaê zestawiê po³¹czenie w ogûle bez terminatorûw. Jerzy Sczesiul, AVT jerzy.szczesiul@ep.com.pl Wzory p³ytek drukowanych w formacie PDF s¹ dostípne w Internecie pod adresem: oraz na p³ycie CD-EP2/2003B w katalogu PCB. WYKAZ ELEMENTÓW Rezystory R1, R2: 10R 0805 R3: 1,5kΩ 1206 R4, R6: 220Ω 1206 R5: 470Ω 1206 R7, R8, R11, R13, R22: 100kΩ 1206 R9: 10kΩ 1206 R10, R16: 2,2kΩ 1206 (R16 dla MAX1480B) R12: 470kΩ 1206 R14: 100Ω 1206 R15, R19: 3kΩ 1206 (dla MAX 1480B) R17, R20: 200Ω 1206 R18: 510Ω (dla MAX 1480B) R23: 120Ω 0,5W przewlekany Wartości rezystorów R15, R16, R18 i R19 zależą od typu MAX1480. W przypadku stosowania wersji A lub C należy wlutować rezystory zgodnie z notą katalogową. Kondensatory C1, C13: 10nF 0805 C2, C3, C4, C10, C12: 100nF 1206 C9: tantalowy 47 µf/10v 7343 C11: 33nF 1206 Półprzewodniki D1, D2: diody LED Q1: PNP bipolarny SMD np. BC857 Q2: MOSFET P SMD np. BSP171 jego parametry znacznie przekraczają potrzeby, ale dzięki temu otrzymujemy bardzo małą rezystancję przewodzenia. U1: Ft8u232AM U2: MAX1480B U3: 74HC132 (odmiana HC jest istotna ze względu na wymaganą dla zasilania transoptorów wydajność prądową wyjść) U4: 93C46 Z1, Z2: transile Transguard 18V 1206 Różne J1: gniazdo USB typu B ZAC1: zacisk śrubowy do druku ew. podstawka precyzyjna DIL 28/600 Obwód opóźniający RC nieuwzględniony na schemacie R21: 2,2kΩ 1206 R24: 47nF 1206 (na płytce błędnie opisany jako rezystor). Wartości te zostały przyjęte szacunkowo być może dokładniejszy test konwertera wykaże konieczność ich zmiany. 26

64 AVT P R Nixie O J Clock E K T Y VHDL i lampy, część 1 No tak, Elektronika Praktyczna wzií³a sií za ìodgrzewanie kotletûwî, pomyúl¹ pewnie ci spoúrûd naszych CzytelnikÛw, ktûrzy pamiítaj¹ polsk¹ elektronikí z koòca lat 80. Akceleracja, jakiej jesteúmy poddawani przez ostatnich 12 lat - chodzi g³ûwnie o dostíp do nowoczesnych podzespo³ûw - spowodowa³a, øe jeszcze niedawno traktowane pogardliwie lampy Nixie nabra³y wyj¹tkowego ìsmakuî. Pomys³em na ich zastosowanie dzielimy sií z Wami w artykule. Rekomendacje: projekt z popularnego na Zachodzie gatunku "Vintage Electronics", czyli chwytaj¹ce za serce (i zazwyczaj oko) praktyczne starocie. O tyle dopasowany do EP-owskiej doktryny nad¹øania za nowoúciami, øe ca³a czíúê cyfrowa zosta³a opisana w VHDL-u. Nasta³y nieco zwariowane czasy. Z jednej strony s¹ powszechnie dostípne uk³ady scalone w miniaturowych obudowach CSP (Chip Scale Package), z drugiej do mody wracaj¹ lampy, niew¹tpliwie element z minionej epoki. DziÍki narzídziom takim jak Bascom, w wielu aplikacjach AVR-ek zastípuje timer 555 lub realizuje bardziej skomplikowane zadania, ale jednoczeúnie elektronicy zafascynowani ìlampowymî brzmieniem buduj¹ wzmacniacze m.cz. (na ogû³ o fatalnych - jak wykazuj¹ pomiary - parametrach). Nie brakuje takøe zwolennikûw tunerûw FM budowanych na lampach w czystym uk³adzie heterodynowym. Powstaj¹ takøe nowe ìlampoweî fankluby, jak choêby TVBulbs z miasta Aurelia w Australii, ktûrego cz³onkowie uznali, øe najlepsz¹ jakoúê obrazu TV moøna uzyskaê jedynie w lampowych odbiornikach telewizyjnych... Mody ìlampoweî docieraj¹ do naszego kraju z pewnym opûünieniem w stosunku do Zachodu, czego przyczyn¹ jest prawdopodobnie nasze stosunkowo pûüne wkroczenie w úwiat nowoczesnej elektroniki. O tym, øe spore grono naszych CzytelnikÛw jest zainteresowanych t¹ tematyk¹, dowodz¹ zarûwno wyniki naszej internetowej ankiety, jak i listowe reakcje na projekty publikowane ostatnio w EP (lampowy equalizer czy teø odbiornik kryszta³kowy ze wzmacniaczem lampowym). Traktuj¹c entuzjastyczne listy jako zachítí do przybliøania fascynuj¹cych moøliwoúci lamp rûønego rodzaju, przygotowa³em projekt o niezaprzeczalnych walorach uøytkowych i estetycznych, a przy tym sporych - takøe dla CzytelnikÛw niezbyt zainteresowanych lampami - walorach edukacyjnych. Przyjemne z poøytecznym Podczas przeszukiwania internetowych zasobûw przypadkowo (bo przecieø nie interesuj¹ mnie lampy) natkn¹³em sií na kilkanaúcie kolekcji zdjíê i co najmniej kilkadziesi¹t opisûw projektûw zegarûw, ktûrych moøliwoúci funkcjonalne nie by³y zazwyczaj osza- ³amiaj¹ce, ale zamiast wyúwietlaczy LED lub energooszczídnych LCD, zastosowano w nich mniej- 14

65 AVT Nixie Clock Rys. 1. Schemat elektryczny sterownika zegara sze lub wiíksze lampy! Takie zegary musz¹ mieê duøe wymiary, do zasilania wymagaj¹ relatywnie wysokich napiíê i z tego powodu do ich wykonania niezbídne s¹ doúê specyficzne elementy. Pobieraj¹ duøo energii, zazwyczaj maj¹ jeszcze kilka innych wad, ale zastosowano w nich wyúwietlacze lampowe! To wystarczy, aby sií nimi zainteresowaê. Po prostu prezentuj¹ sií efektownie, s¹ ³adne. Podgl¹dniÍte rozwi¹zania uk³adûw zegarowych zafascynowa³y mnie do tego stopnia, øe postanowi³em zaprojektowaê i wykonaê taki zegar, przy czym - tu sií k³aniaj¹ walory edukacyjne projektu - zamiast klasycznych rozwi¹zaò ìdyskretnychî na uk³adach CMOS lub TTL, postanowi- ³em przygotowaê mieszankí nowoczesnoúci z retro: wyúwietlacze Nixie sterowane (oczywiúcie poprzez bufory napiíciowe) przez nowoczesny uk³ad PLD produkowany przez firmí Xilinx, w ktûrym zaimplementowano zegar opisany w jízyku VHDL. Zastosowanie uk³adu programowalnego - wbrew obiegowym pogl¹dom - nie wi¹øe sií ze wzrostem kosztu wykonania zegara, a dziíki moøliwoúci programowania uk³adu w systemie i dostípnym bezp³atnym narzídziom do kompilacji opisûw w VHDL (WebPack ISE oraz WebFitter firmy Xilinx - z tego drugiego moøna korzystaê zdalnie przez Internet!) elastycznoúê tak przygotowanego projektu jest bardzo duøa. Opis uk³adu Zegar sk³ada sií z trzech zasadniczych czíúci, ktûrych schematy przedstawiono kolejno na rys : sterownika zegara, zespo³u wyúwietlaczy i zespo³u kluczy tranzystorowych. Sterownik zegara jest zintegrowany z preskalerem czístotliwoúci wzorcowej. Sygna³ podstawy czasu jest wytwarzany w generatorze kwarcowym zbudowanym z tranzystora T30 i elementûw biernych 15

66 AVT Nixie Clock R39, R40, R41, C7, C9 i X1 (czístotliwoúê rezonansowa kwarcu wynosi 2 15 Hz = 32,768 khz). OprÛcz generatora, na zewn¹trz uk³adu U1 znajduje sií stosunkowo niewiele elementûw, co wynika ze zintegrowania w jego wnítrzu wszystkich blokûw funkcjonalnych zegara. Dzia³anie uk³adu U1 omûwimy w dalszej czíúci artyku³u. Prze³¹cznik S1 s³uøy do w³¹czania trybu szybkiego ustawiania, S2 do w³¹czania trybu wolnego ustawiania, natomiast S3 s³uøy do prze³¹czania trybu pracy zegara pomiídzy zliczaniem czasu i ustawianiem. Poniewaø w uk³adzie U1 zaimplementowano uk³ady synchroniczne (liczniki), przed rozpoczíciem pracy wymaga on zerowania. RolÍ uk³adu automatycznie zeruj¹cego wszystkie wbudowane w U1 bloki synchroniczne spe³nia do³¹czony do globalnego wejúcia zeruj¹cego U1 obwûd rûøniczkuj¹cy C3, R26. Na rys. 1 zamieszczono takøe schemat elektryczny zasilacza dostarczaj¹cego napiície anodowe 220 VDC dla wyúwietlaczy Nixie oraz stabilizowane napiícia +5 VDC - U2 (zasilanie generatora i programatora ISP) i +3,3 VDC - U3 (zasilanie uk³adu U1). W obydwu liniach zasilaj¹cych zastosowano kondensatory filtruj¹ce, przy czym ich ³¹czna pojemnoúê (nie licz¹c kondensatora pierwszego filtru títnieò C11) jest niezbyt duøa, ale wystarczaj¹ca dziíki bardzo ma³emu poborowi pr¹du przez uk³ad U1. PamiÍÊ konfiguracji zastosowana w uk³adzie U1 jest typu Flash, dziíki czemu jej zawartoúê moøna modyfikowaê po zamontowaniu uk³adu w systemie. Do tego celu s³uøy wyspecjalizowany interfejs JTAG, ktûrego linie sygna³owe zosta³y doprowadzone do z³¹cza J2 widocznego na schemacie pokazanym na rys. 1. Pomimo tego, øe U1 jest zasilany napiíciem o wartoúci 3,3 V, wszystkie jego linie I/O (w tym takøe linie interfejsu JTAG) mog¹ wspû³pracowaê (w obydwie strony!) ze standardowymi uk³adami cyfrowymi zasilanymi napiíciem 5 V. Dlatego teø, do stykûw 1 i 2 z³¹cza J2 doprowadzono napiície o tej wartoúci, ktûre moøna wykorzystaê do zasilenia programatora ISP (opis budowy takiego programatora opublikowaliúmy w EP4/2001, moøna go znaleüê takøe w Internecie pod adresem: archiwum/pdf/2001/04/80.pdf). Uwaøni Czytelnicy zarzuc¹ mi po analizie schematu zasilacza pewnie niekonsekwencjí, poniewaø pomimo zastosowania transformatora Tr1, zasilanie zegara Rys. 2. Schemat elektryczny bloku wyświetlania Historia Nixie Wyświetlacz Nixie opracowali w 1952 roku dwaj bracia, węgierscy emigranci zamieszkali w Stanach Zjednoczonych George i Zoltan Haydu. Byli oni właścicielami firmy produkującej lampy elektronowe i inne elementy stosowane w ówczesnych urządze niach elektronicznych, głównie do zastosowań militarnych (m.in. pierwsze alianckie radary, stosowane podczas bitwy o Wielką Brytanię, były budowane z wykorzystaniem podzespołów produkowanych przez braci Haydu). W 1953 roku prawa do produkcji wyświetlaczy Nixie zakupiła firma Burroughs Corp., jeden z największych wówczas producen tów biurowych maszyn liczących. Nad projektem wdrożenia wyświetlaczy do masowej produkcji czuwał Saul Kuchinsky, który nadał mu nazwę Numerical Indicator experimental 1, czyli w skrócie NIX 1. Już w 1954 w prasie fachowej nadano nowemu produktowi firmy Burroughs nazwę Nixie, która aż do dzisiaj nieodłącznie kojarzy się ze znakami jarzącymi się na pomarań czowo w szklanej bańce. Panowanie lamp Nixie na świecie trwało aż do początku lat 70, kiedy to bardzo szybko zostały wyparte przez 7 segmentowe wyświetlacze LED. Nieco dłużej stosowane były w naszym kraju (i pozostałych, należących do Bloku Wschodniego), co było objawem technologicznego zacofania krajowego przemysłu elektronicznego. Jeszcze w drugiej połowie lat 80 warszawska firma Meratronik produkowała laboratoryjne multimetry (m.in. V 543, V 560) wyposażone w wyświetlacze Nixie produkowane m.in. przez wrocławski Dolam. 16

67 AVT Nixie Clock Rys. 3. Schemat elektryczny bloku wzmacniaczy wysokonapięciowych nie jest odizolowane od sieci energetycznej. Dzieje sií tak dlatego, øe napiíciem anodowym jest napiície uzyskane przez wyprostowanie za pomoc¹ mostka Graetza M2 napiícia podawanego wprost z sieci energetycznej. Czyli prosty wniosek: albo transformator Tr1 jest nadmiarowy, albo brakuje transformatora w obwodzie zasilania anod wyúwietlaczy. Wbrew pozorom takie rozwi¹zanie nie jest wynikiem b³ídu konstrukcyjnego, ale kompromisu pomiídzy ³atwoúci¹ uruchomienia i bezpieczeòstwem pracy wykonawcy zegara a moøliwoúciami samodzielnego wykonania (lub zdobycia inn¹ drog¹) odpowiedniego transformatora. SzczegÛ³y zostan¹ omûwione w dalszej czíúci artyku³u. ZespÛ³ wyúwietlaczy na lampach Nixie jest kolejnym blokiem, ktûrego schemat przedstawiono na rys. 2. W anody lamp L1...L4 w³¹czono rezystory ograniczaj¹ce pr¹d p³yn¹cy przez lampí do ok. 3,4 ma. Nie jest konieczne rûwnoleg³e ³¹czenie par rezystorûw: R17 i R18, R19 i R36, R37 i R38, a takøe R44 i R45, gdyø moøna zastosowaê pojedyncze rezystory o rezystancji ok kω i mocy co najmniej 0,3 W. Na rys. 2 zamieszczono w ramce narysowanej lini¹ przerywan¹ dwie neonûwki do³¹czone do z³¹cza J5. S³uø¹ one do wyúwietlania dwukropka i s¹ umieszczone na osobnej p³ytce drukowanej, zamontowanej prostopadle do p³yty bazowej. Katody lamp L1...L4 i obydwie neonûwki s¹ sterowane przez wysokonapiíciowe tranzystory, po³¹czone jak to pokazano na schemacie elektrycznym zespo³u kluczy tranzystorowych. ZespÛ³ kluczy (rys. 3) zawiera tranzystory T1...T29 pracuj¹ce w konfiguracji kluczy emiterowych z obci¹øeniami w postaci lamp i neonûwek (T29) w³¹czonymi w obwody kolektorûw. Zastosowane w modelowym egzemplarzu tranzystory KSP42 (úcis³y odpowiednik MPSA42) s¹ przystosowane do pracy z napiíciem U ceo o wartoúci do 300 V, a maksymalny pr¹d kolektora moøe wynosiê do 500 ma. Spe³niaj¹ wiíc z naddatkiem wymagania stawiane przez aplikacjí, ale ich niska cena i dostípnoúê na rynku spowodowa³y, øe wybrano je do prezentowanego uk³adu. Co to jest Nixie? Nixie jest tzw. zimną lampą, ponieważ do jej działania nie jest konieczne podgrzewanie katody. Zatopione w szklanej bańce katody mają kształty wyświetlanych symboli. Są one otoczone anodą, która ma perforację od strony czołowej (lub są zwrócone katodami do strony czołowej ), zapewniającą odpowiednią widoczność wyświetlanych znaków. Ponieważ podczas produkcji z wnętrza lampy jest usuwane powietrze, a w jego miejsce wprowadzany jest gaz szlachetny (neon) o niewielkim ciśnieniu, to po przyłożeniu odpowiednio dużego napięcia pomiędzy anodę i katodę gaz ten ulega jonizacji wokół katody i świeci, czyniąc widocznym wybrany znak. Z punktu widzenia elektryczne go lampę Nixie można porównać z zespołem neonówek z jedną elektrodą wyprowadzoną wspólnie. Ich liczba odpowiada liczbie wyświetlanych znaków. 17

68 AVT Nixie Clock 3,3V vs 5V Zastosowanie w projekcie układu zasilanego napięciem 3,3 V ma tylko jedną przyczynę: był on znacznie tańszy od odpowiednika w klasycznej wersji zasilanej napięciem 5 V. Dzięki pełnej kompatybilności linii wejściowych i wyjściowych układu XC9572 z układami TTL i CMOS zasilanymi napięciem 5 V, korzystanie z niego w aplikacjach z mieszanymi napięciami zasilającymi nie jest kłopotliwe. Rys. 4. Schemat blokowy ilustrujący wewnętrzną budowę układu XC9572XL U1 od úrodka Jak wczeúniej wspomnia³em, ìsercemî prezentowanego zegara jest uk³ad programowalny CPLD (Complex Programmable Logic Device). Zastosowany uk³ad naleøy do rodziny XC9500XL, ktûra jest zmodernizowan¹ wersj¹ znanych od lat uk³adûw rodziny XC9500, przystosowanych do pracy niskonapiíciowej. BudowÍ wewnítrzn¹ uk³adu XC9572XL pokazano na rys. 4. W strukturze uk³adu zintegrowano duøe (jak na potrzeby projektu, wykorzystano bowiem 51 spoúrûd 72 dostípnych mak- rokomûrek) zasoby logiczne, w tym aø 72 makrokomûrki o niezwykle duøych moøliwoúciach konfiguracyjnych. MakrokomÛrki s¹ pogrupowane w bloki po 18. KomunikacjÍ pomiídzy nimi umoøliwia programowana matryca po³¹czeniowa. BudowÍ pojedynczej makrokomûrki uk³adu XC9572XL pokazano na rys. 5. Schemat blokowy uk³adu zegara zaimplementowanego w uk³adzie U1 pokazano na rys. 6. W uk³adzie zrealizowano wszystkie bloki niezbídne do dzia³ania zegara, w tym takøe preskaler czístotliwoúci wzorcowej. Opisy wszystkich blokûw widocznych na rys. 6 przygotowano w jízyku VHDL, a dwa najciekawsze omûwimy nieco bardziej szczegû³owo. Liczniki czasu, ze wzglídu na specyficzny sposûb sterowania wyúwietlaczy Nixie (dekodowanie 1 z n), zosta³y opisane jako liczniki Johnsona (z kr¹ø¹c¹ jedynk¹). Opis licznikûw jednostek i dziesi¹tek minut jest doúê prosty (list. 1), poniewaø nie ma koniecznoúci rícznego przypisywania stanûw wyjúê okreúlonej liczbie zliczonych impulsûw. Nieco wiícej pracy wymaga³o przygotowanie opisu licznika godzin (jednostek i dziesi¹tek, list. 2), poniewaø ten blok List. 1. Opis działania licznika dziesiątek minut w języku VHDL library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity licznik_dzm is Port ( clk: in std_logic; clk_o: out std_logic; res: in std_logic; outp: inout std_logic_vector(5 downto 0) ); end licznik_dzm; architecture beh of licznik_dzm is signal din: std_logic; begin process (clk, res) begin if res = '1' then outp <= "000001"; elsif clk'event and clk = '1' then outp <= outp(4 downto 0) & outp(5); end if; end process; clk_o <= not outp(5); end beh; Rys. 5. Uproszczony schemat budowy makrokomórki w układzie XC9572XL 18

69 AVT Nixie Clock List. 2. Opis działania licznika godzin (jednostek i dziesiątek) w języku VHDL library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity licznik_h is Port ( clk: in std_logic; res, mode: in std_logic; - mode=0 -> 24h outp_j: inout std_logic_vector(9 downto 0); outp_dz: inout std_logic_vector(2 downto 1) ); end licznik_h; architecture beh of licznik_h is signal stan: std_logic_vector(11 downto 0); constant godzina_0: std_logic_vector(11 downto 0):= " "; constant godzina_1: std_logic_vector(11 downto 0):= " "; constant godzina_2: std_logic_vector(11 downto 0):= " "; constant godzina_3: std_logic_vector(11 downto 0):= " "; constant godzina_4: std_logic_vector(11 downto 0):= " "; constant godzina_5: std_logic_vector(11 downto 0):= " "; constant godzina_6: std_logic_vector(11 downto 0):= " "; constant godzina_7: std_logic_vector(11 downto 0):= " "; constant godzina_8: std_logic_vector(11 downto 0):= " "; constant godzina_9: std_logic_vector(11 downto 0):= " "; constant godzina_10: std_logic_vector(11 downto 0):= " "; constant godzina_11: std_logic_vector(11 downto 0):= " "; constant godzina_12: std_logic_vector(11 downto 0):= " "; constant godzina_13: std_logic_vector(11 downto 0):= " "; constant godzina_14: std_logic_vector(11 downto 0):= " "; constant godzina_15: std_logic_vector(11 downto 0):= " "; constant godzina_16: std_logic_vector(11 downto 0):= " "; constant godzina_17: std_logic_vector(11 downto 0):= " "; constant godzina_18: std_logic_vector(11 downto 0):= " "; constant godzina_19: std_logic_vector(11 downto 0):= " "; constant godzina_20: std_logic_vector(11 downto 0):= " "; constant godzina_21: std_logic_vector(11 downto 0):= " "; constant godzina_22: std_logic_vector(11 downto 0):= " "; constant godzina_23: std_logic_vector(11 downto 0):= " "; begin process (clk, res) begin if res = '1' and mode = '0' then stan <= godzina_0; elsif res = '1' and mode = '1' then stan <= godzina_12; elsif clk'event and clk = '1' then if mode = '0' then case stan is when godzina_0 => stan <= godzina_1; when godzina_1 => stan <= godzina_2; when godzina_2 => stan <= godzina_3; when godzina_3 => stan <= godzina_4; when godzina_4 => stan <= godzina_5; when godzina_5 => stan <= godzina_6; when godzina_6 => stan <= godzina_7; when godzina_7 => stan <= godzina_8; when godzina_8 => stan <= godzina_9; when godzina_9 => stan <= godzina_10; when godzina_10 => stan <= godzina_11; when godzina_11 => stan <= godzina_12; when godzina_12 => stan <= godzina_13; when godzina_13 => stan <= godzina_14; when godzina_14 => stan <= godzina_15; when godzina_15 => stan <= godzina_16; when godzina_16 => stan <= godzina_17; when godzina_17 => stan <= godzina_18; when godzina_18 => stan <= godzina_19; when godzina_19 => stan <= godzina_20; when godzina_20 => stan <= godzina_21; when godzina_21 => stan <= godzina_22; when godzina_22 => stan <= godzina_23; when godzina_23 => stan <= godzina_0; when others => stan <= godzina_0; end case; elsif mode = '1' then case stan is when godzina_12 => stan <= godzina_1; when godzina_1 => stan <= godzina_2; when godzina_2 => stan <= godzina_3; when godzina_3 => stan <= godzina_4; when godzina_4 => stan <= godzina_5; when godzina_5 => stan <= godzina_6; when godzina_6 => stan <= godzina_7; when godzina_7 => stan <= godzina_8; when godzina_8 => stan <= godzina_9; when godzina_9 => stan <= godzina_10; when godzina_10 => stan <= godzina_11; when godzina_11 => stan <= godzina_12; when others => stan <= godzina_12; end case; end if; end if; outp_j <= stan(9 downto 0); outp_dz <= stan(11 downto 10); end process; end beh; sk³ada sií z dwûch po³¹czonych szeregowo licznikûw Johnsona o modyfikowanym trybie zliczania (12/24 godziny - s³uøy do tego celu wejúcie mode). Z tego powodu najprostszym sposobem jego opisu by³o zdefiniowanie stanûw wyjúê wraz z przypisaniem wartoúci odpowiadaj¹cych okreúlonym godzinom (za pomoc¹ przypisaò constant). Naleøy pamiítaê, øe przedstawione sposoby opisu s¹ jednymi z wielu moøliwych i dziíki elastycznoúci jízyka VHDL WYKAZ ELEMENTÓW Rezystory R1...R16, R20...R25, R27...R33: 20kΩ R17...R19, R36...R38, R44, R45: 47kΩ R26: 1kΩ R34, R35: 24kΩ R39: 3,3MΩ R40: 300kΩ R41: 68kΩ R42, R43: 4,7kΩ Kondensatory C1, C4...C6, C10, C12, C14, C17: 100nF C2, C8: 10µF/10V C3: 4,7µF/10V C7, C9: 30pF C11: 1000µF/16V C13, C16: 47µF C15: 10nF Lampy L1...L4: Z5680M lub podobne LP1, LP2: neonówki E10 220V z podstawkami (np. Elfa ) Półprzewodniki U1: XC9572XL 10TQ100C (zaprogramowany) U2: 78L05 U3: REG103 3,3 M1, M2: np. W04G mostki prostownicze 500mA/400V T1...T29: MPSA42/KSP42 lub podobny T30: 2N3904 Różne J1: gniazdo dla wtyków goldpin 6x1 J2: listwa goldpin 6x1 J3: ARK2 J4: listwa goldpin 3x1 J5: kątowa listwa goldpin 6x1 X1: kwarc 32,768 khz F1: 63mAT S1, S2, S3: przełaczniki Digitast Tr1: TEZ0,5/D 9V (Breve Tufvassons) praktycznie kaødy projektant moøe opracowaê w³asne wersje wszystkich blokûw funkcjonalnych. Pliki ürûd³owe wraz z kompletnym opisem projektu udostípniamy na p³ycie CD-EP2/2003 oraz na naszej stronie internetowej w dziale Download. Opis zegara w VHDL-u zosta³ skompilowany za pomoc¹ bezp³atnego kompilatora WebPack ISE (wersja 4.2 WP2) udostípnianego przez firmí Xilinx w Internecie 19

70 AVT Nixie Clock Rys. 6. Schemat blokowy zegara (U1 po skonfigurowaniu) ( download.htm). åci¹gniície programu jest moøliwe po uprzednim zarejestrowaniu sií uøytkownika za pomoc¹ specjalnego formularza na stronie internetowej firmy Xilinx. Oprogramowanie WebPack ISE publikowaliúmy takøe na p³ytach CD-EP11/2002B i 12/2002B. Alternatywnym sposobem skompilowania opisu i implementacji projektu jest skorzystanie z bezp³atnego zdalnego oprogramowania WebFitter, ktûre z punktu widzenia uøytkownika dzia³a (oczywiúcie przy za³oøeniu, øe ma on sta³y dostíp do Internetu) w sposûb rûwnie wygodny, co instalowany lokalnie WebPack ISE. Jak sprawdzi³em, wyniki kompilacji za pomoc¹ kaødego z wymienionych narzídzi s¹ takie Jak działa Nixie? Do zasilania lamp Nixie niezbędne jest źródło napięcia stałego o wartości V (zależnie od typu lampy). Napięcie to (nazywane napięciem zapłonowym) musi być przyłożone pomiędzy anodę i katodę, powodując zjonizowanie gazu wokół tej ostatniej i w konsekwencji wyświetlenie znaku o kształcie odpowiadającym kształtowi katody. Po zjonizowaniu gazu wewnątrz lampy ( zapaleniu znaku) napięcie pomiędzy anodą i katodą spada do wartości roboczej, co wymusza konieczność włączenia w szereg z którąś z elektrod (zazwyczaj anodą) rezystora ograniczającego prąd do wartości przewidzianej w danych katalogowych. Jonizacja gazu powoduje także, że lampa zachowuje się jak stabilizator napięcia pomiędzy anodą i katodą. Napięcie to jest nazywane roboczym, a jego wartość jest mniejsza zazwyczaj o ok % od wartości napięcia zapłonowego. Wygaszenie gazu wokół katody jest możliwe po zmniejszeniu wartości napięcia przyłożonego pomiędzy anodę i katodę poniżej napięcia podtrzymania. same, w zwi¹zku z czym nie ma powodu, aby szczegûlnie polecaê ktûreú z nich. Przypisanie sygna³ûw do wyprowadzeò I/O uk³adu XC9572XL w obudowie TQFP100 pokazano na rys. 7. Rozmieszczenie sygna- ³Ûw zosta³o narzucone podczas projektowania za pomoc¹ pliku wymuszeò uøytkownika (User Constraint File), ktûry jest akceptowany przez obydwa wspomniane narzídzia EDA. O Nixie s³ûw kilka Niew¹tpliwym atutem wizualnym prezentowanego zegara s¹ zastosowane w roli wyúwietlaczy lampy Nixie. WysokoúÊ znakûw wyúwietlanych przez lampy Z5680M wynosi 50 mm, co (wed³ug danych katalogowych dostípnych m.in. pod adresem: Z560M.pdf) zapewnia ich widocznoúê z odleg³oúci do 30 metrûw. Lampy te produkowa³a m.in. wschodnioniemiecka fabryka RFT, ale ich odpowiedniki by³y wytwarzane takøe przez wiele innych firm. Niestety, obecnie nie jest ³atwo takie lampy kupiê, a ze wzglídu na rosn¹c¹ wúrûd amatorûw lamp popularnoúê Nixie na Zachodzie, ich ceny s¹ doúê wygûrowane (od ok. 20 EUR za sztukí + koszty wysy³ki). Po 20

71 AVT Nixie Clock d³ugich poszukiwaniach kupi³em lampy na internetowej gie³dzie e- Bay i po trzech tygodniach odebra³em paczkí z Australii. Nie by³oby to szczegûlnie frapuj¹ce, gdyby nie fakt, øe te w³aúnie lampy wyprodukowano w NRD. O tym, øe nie tylko lampy kosztuj¹, boleúnie przekonaj¹ sií takøe Czytelnicy poszukuj¹cy wysokonapiíciowych sterownikûw lamp Nixie z rodziny TTL: 7441 oraz Jedynie firma dystrybucyjna Mouser ma je w ci¹g³ej sprzedaøy. Uk³ady dostípne pod oznaczeniem NTE71414 przy zakupie 100 szt. kosztuj¹ 6,36 USD kaødy. Zdecydowanie rozs¹dniej i bardziej ekonomicznie jest zastosowaê tranzystory MPSA42/ KSP42, ktûre podczas zbierania elementûw do modelowego egzemplarza by³y dostípne po ok. 0,6 PLN brutto. Piotr Zbysiñski, AVT piotr.zbysinski@ep.com.pl W artykule wykorzystano zdjícia i informacje pochodz¹ce ze stron: ind/z560m.htm, - frank/sheets/084/z/z560m.pdf. Wzory p³ytek drukowanych w formacie PDF s¹ dostípne w Internecie pod adresem: oraz na p³ycie CD-EP2/2003B w katalogu PCB. Rys. 7. Przypisanie sygnałów do wyprowadzeń układu U1 21

72 Mówiący woltomierz Niebanalny pomysł, jeszcze bardziej niebanalne zastosowania, ale prosta realizacja to w skrócie projekt prezentowany na str. 47. Wirtualne peryferia Nadchodzi era programowanego świata, w którego tworzeniu niezwykle pomocne są wirtualne peryferia, o których piszemy na str. 51. Analizatory i rejestratory parametrów sieci zasilającej Jeszcze niedawno mówienie o jakości sieci elektroenergetycznej budziło zdziwienie, nawet u bardziej doświadczonych elektro ników. Silne trendy normalizacyjne wywarły w końcu także na parametry dostarczanej energii, w czym pomagają takie przyrządy pomiarowe, jak prezentowane w artykule na str. 65. Bezprzewodowy regulator temperatury Termostat prezentowany na str. 43 zapewnia dzięki przemyślanej konstrukcji wysoki komfort użytko wania. Detektor ruchu z głosowym automatem informacyjnym W artykule na str. 27 przed stawiamy niezwykle komer cyjny projekt automat witający i żegnający miłym (miejmy nadzieję) głosem klientów sklepu, przychodni lekarskiej, czy też pubu. Konwerter USB< >RS485 z separacją galwaniczną Układy interfejsowe firmy FTDI wywołały rewolucję dostęp do PC poprzez USB stał się dzięki nim banalnie łatwy. Jak dowodzi tego projekt prezen towany na str. 23, za ich pomocą można rozwiązać całkiem niebanalne proble my... Yampp 3/USB Kodowy wojownik Wojny przynajmniej klasycznie rozumiane wychodzą z mody, ale nie oznacza to, że każdy z nas jakichś wojenek nie toczy. Jedną z bardziej wojowniczych grup są programiści, toczący regularne potyczki z pisanymi przez siebie programa mi. Firma Metrowerks przygotowała uni wersalnego wojownika, który ułatwi nam wojnę z kodem programu... Str. 77. W ostatniej części artykułu przedstawiamy sposób dołączenia do Yamppa graficznego wyświetlacza z telefonu komórkowego. Str

73 Nr 2 (122) luty 2003 Wskaźniki pomiarowe firmy Omron Kolejne nowości z oferty firmy Omron przedstawiamy w arty kule na str Projekty AVT Niexie Clock VHDL i lampy, część Konwerter USB< >RS485 z separacją galwaniczną Detektor ruchu z głosowym automatem informacyjnym Gra w kółko i krzyżyk Yampp 3/USB, część Bezprzewodowy regulator temperatury, część Mówiący woltomierz, część Miniprojekty 4 kanałowy termometr na Game Port PIC'n'roll, czyli muzyczne fantazje na PIC ach Programy Autorouter Specctra, część Kodowy wojownik Kurs Język C dla mikrokontrolerów 8051, część CRC doda Ci pewności, część Automatyka Wskaźniki pomiarowe firmy Omron Konkurs dla automatyków Wonderware InTouch krok po kroku kurs obsługi, część Konkurs dla automatyków Na str. 136 publikujemy drugą część artykułu konkursowego szczególnie polecamy go miłoś nikom systemów automatyki! Szybki jak '51 Drugą część artykułu prezentu jącego ultra szybkie 51 znaj dziecie na str. 71. Podzespoły Wirtualne peryferia SoC jak to się robi w praktyce? Szybki jak '51, część Sprzęt Analizatory i rejestratory parametrów sieci zasilającej Programator na miarę Projekty Czytelników Prosty programator mikrokontrolerów AT89Cx051/AT89C5x Z kraju i ze świata Biblioteka EP Kramik+Rynek Listy Ekspresowy Informator Elektroniczny Wykaz reklamodawców

74 A U T O M A T Y K A W cyklu artyku³ûw publikowanych na ³amach EP zamierzamy zaprezentowaê moøliwoúci oprogramowania wizualizacyjnego (SCADA) Wonderware InTouch. Na p³ycie CD-EP1/2003B zamieúciliúmy demonstracyjn¹, polskojízyczn¹ wersjí oprogramowania InTouch 7.11 PL. Kurs obs³ugi, czêœæ 2 W cyklu artyku³ûw pokaøemy krokpo-kroku, jak za pomoc¹ InTouch 7.11 PL moøna zaprojektowaê przyk³adow¹ aplikacjí, ktûra bídzie symulowaê proces produkcji mleka czekoladowego. Zaprojektowana aplikacja wizualizacyjna bídzie komunikowaê sií z symulatorem programu komunikacyjnego, w ktûrym jest realizowany algorytm pracy zbiornika do produkcji mleka czekoladowego. W rzeczywistych wdroøeniach program komunikacyjny wymienia dane bezpoúrednio ze sterownikami i urz¹dzeniami. Rys. 23 ca informacjí np. liczbow¹ (Discrete, Integer, Real) lub tekstow¹ (Message). WartoúÊ ta moøe byê obliczana przez sam¹ aplikacjí wizualizacyjn¹ (zmienne Memory) lub pobrana z innej aplikacji np. programu komunikacyjnego (I/O Server), ktûry bezpoúrednio komunikuje sií z urz¹dzeniami np. sterownikami PLC. Zmienne, ktûre przechowuj¹ informacje pobrane z innych aplikacji s¹ zmiennymi typu zewnítrznego (zmienne I/O). Teraz wracamy do naszego projektu: zaznaczamy gûrny zawûr (mleka - rys. 23) i naciskamy Enter lub dwukrotnie kilkamy lewym przyciskiem myszy zaznaczony obiekt. Pojawia sií okno Po³¹czeÒ animacyjnych, w ktûrym moøna wybraê, co za poúrednictwem wskazanego obiektu moøna bídzie zrealizowaê - te opcje znajduj¹ sií w ca³ej grupie Po³¹cz dotykowe (rys. 24) lub co sií bídzie zmienia³o w narysowanym obiekcie - pozosta³e opcje. Za³Ûømy, øe wymagana jest zmiana koloru zaworu i linii ruroci¹gu, w zaleønoúci od wartoúci úledzonej zmiennej. Aby moøna by³o tak¹ funkcjonalnoúê zdefiniowaê, naleøy w oknie po³¹czeò animacyjnych z grupy Kolor wype³nienia wybraê przycisk Dyskretny. Pojawi sií okno dialogowe pokazane na rys. 25, w ktûrego polu Wyraøenie naleøy wpisaê nazwí zmiennej ZawÛr_mleka. W celu zdefiniowania koloru, jaki zawûr bídzie przyjmowa³ gdy zmienna ZawÛr_mleka przyjmie wartoúê 0 lub 1, naleøy wskazaê mysz¹ okienko dla stanu 0,FA³SZ,WY, a potem okienko dla stanu 1,PRAWDA,W. W obu przypadkach pojawi sií dostípna paleta kolorûw, na ktûrej naleøy wskazaê wybrany kolor. Po wybraniu kolorûw naleøy nacisn¹ê przycisk OK. Poniewaø na liúcie zmiennych programu InTouch nie ma zdefiniowanej zmiennej o nazwie ZawÛr_mleka, dlatego program zapyta sií, czy tak¹ zmienn¹ zdefiniowaê. Naleøy wtedy klikn¹ê przycisk OK i zdefiniowaê zmienn¹ w oknie, ktûre pokazujemy na rys. 26. Aby zdefiniowaê zmienn¹, naleøy w polu Zmienna wpisaê nazwí zmiennej (pole to zosta³o automatycznie wype³nione przez InToucha). NastÍpnie wybieramy typ zmiennej naciskaj¹c przycisk Typ... i zaznaczamy na liúcie typ I/O Discrete. Teraz klikamy przycisk Nazwa dostípu..., a nastípnie przycisk Dodaj... W tym miejscu zostanie okreúlone, do jakiej aplikacji zewnítrznej bídzie siíga³ InTouch, w celu pobrania informacji, Oøywianie grafiki Po utworzeniu obiektu lub elementu graficznego moøe on zostaê oøywiony przez przypisanie do niego po³¹czeò animacyjnych. Po³¹czenia animacyjne powoduj¹ zmianí wygl¹du obiektu, ktûry odzwierciedla zmiany wartoúci zmiennej. Na przyk³ad, pompa moøe mieê kolor czerwony, gdy jest wy³¹czona, a zielony podczas pracy. Pompa jako obiekt moøe pe³niê rûwnieø rolí wy³¹cznika przyciskowego, ktûry umoøliwia jej wy³¹czanie i w³¹czanie z poziomu ekranu. Ten oraz wiele innych efektûw animacyjnych moøna uzyskaê definiuj¹c odpowiednie po³¹czenia animacyjne dla wybranego elementu lub obiektu. NiektÛre po³¹czenia animacyjne umoøliwiaj¹ wykorzystanie (poza samymi zmiennymi) wyraøeò logicznych do obliczania wartoúci zmiennych, uaktywniania lub wy³¹czania innych po³¹czeò animacyjnych, itp. Na przyk³ad, jeøeli element graficzny ma byê widoczny tylko wtedy, gdy poziom cieczy w zbiorniku przekracza wartoúê 400, wyraøenie logiczne po³¹czenia animacyjnego odpowiedzialnego za widocznoúê tego obiektu bídzie wygl¹daê nastípuj¹co: poziom_zbiornika > 400, gdzie poziom_zbiornika jest zmienn¹ reprezentuj¹c¹ tí wartoúê. A wiíc co to jest zmienna w aplikacji wizualizacyjnej? Zmienna (punkt, bramka) - jest to struktura przechowuj¹ktûra bídzie przypisana do zmiennej ZawÛr_mleka. Okno Nowa nazwa dostípu zawiera nastípuj¹ce informacje (rys. 27): Nazwa dostípu - czyli jaka nazwa ma zostaê przypisana definiowanej nazwie dostípu. Moøe to byê dowolna nazwa, np. PLC1. Nazwa komputera - jest to pole, w ktûrym naleøy wpisaê nazwí sieciow¹ komputera, ale tylko w takim przypadku gdy program z ktûrym InTouch ma sií komunikowaê, bídzie pracowa³ (zosta³ zainstalowany) na innym komputerze. W naszym przypadku program, z ktûrym In- Touch bídzie komunikowa³ sií, jest zainstalowany na tym samym komputerze co InTouch, wiíc tego pola nie wype³niamy! Nazwa aplikacji - jest to pole, w ktûrym naleøy wpisaê nazwí aplikacji z ktûr¹ InTouch, bídzie sií komunikowa³. W tym polu wpisujemy SIMULATE. Jest to nazwa pliku, ktûry uruchamia program SI- MULATE, ktûry jest symulatorem programu komunikacyjnego. Ten program, jako symulator rzeczywistego po³¹czenia ze sterownikiem, pozwoli na pokazanie idei ko- Rys. 24 Rys. 25 Rys

75 A U T O M A T Y K A Rys. 27 munikacji z zewnítrznymi urz¹dzeniami, bez koniecznoúci posiada takich urz¹dzeò. PamiÍtajmy, øe w polu Nazwa aplikacji nigdy nie naleøy wpisywaê rozszerzenia pliku ani úcieøki dostípu do pliku! Nazwa tematu - w tym polu, naleøy wpisaê nazwí tematu, czyli kana³u komunikacyjnego, przez ktûry program komunikacyjny ³¹czy sií i wymienia informacje z sterownikami. PamiÍtajmy, øe zawsze istnieje koniecznoúê zdefiniowania w programie komunikacyjnym tematu. W przypadku InToucha, rûwnieø taki temat (kana³ komunikacyjny) trzeba wskazaê, aby InTouch wiedzia³, o ktûry temat ma sií pytaê w programie komunikacyjnym. Tak wiíc, w polu Nazwa tematu wpisujemy PLC. RÛwnieø taki temat bídziemy musieli zdefiniowaê w symulatorze programu komunikacyjnego SIMULA- TE, ale zostanie to zrealizowane pûüniej. Po wype³nieniu wszystkich pûl w definiowanej nazwie dostípu, naciskamy przycisk OK, w celu zatwierdzenia definicji. Pojawi sií znowu okno do definiowania zmiennej, ale juø z przypisan¹ do zmiennej ZawÛr_mleka, nazw¹ dostípu PLC1. Pozosta³o do wype³nienia pole Element. W tym polu naleøy wskazaê o co InTouch ma sií dok³adnie odpytywaê program komunikacyjny. W przypadku symulatora programu komunikacyjnego SIMULATE, w jego logice zdefiniowane s¹ juø Elementy, o ktûre moøna sií odpytaê. Wpisujemy wiíc w polu Element: wartoúê V1 (rys. 28). Naleøy pamiítaê, øe w kaødym rzeczywistym programie komunikacyjnym takie Elementy wystípuj¹ i s¹ one inne dla rûønych rodzajûw sterownikûw. Wynika to z rûønej notacji, przyjítej przez producentûw programûw komunikacyjnych. Rys. 28 Wype³nienie pola Element zakoòczy- ³o definiowanie zmiennej. Teraz pozostaje zapisaê zmiany przyciskiem Zapisz i wyjúê z okna definicji zmiennej za poúrednictwem przycisku Zamknij. Pojawi sií okno Kolor wype³nienia - wyraøenie dyskretne, w ktûrym naleøy wybraê dolny przycisk OK. W ten sposûb na ekranie pozostanie okno po³¹czeò animacyjnych, w ktûrym naleøy tym razem wybraê z grupy Kolor linii przycisk Dyskretny (rys. 29). Pojawi sií okno dialogowe uzaleøniaj¹ce kolor linii obiektu graficznego od wartoúci zmiennej dyskretnej. W polu Wyraøenie naleøy wpisaê nazwí zmiennej, ale zamiast wpisywaê nazwí zmiennej rícznie, moøna dwukrotnie klikn¹ê lewym przyciskiem myszy w pole Wyraøenie. Wtedy pojawi sií przegl¹darka zmiennych, z ktûrej naleøy wskazaê zdefiniowan¹ wczeúniej zmienn¹ o nazwie ZawÛr_mleka (rys. 30). Po wyborze zmiennej ZawÛr_mleka z listy zmiennych, naleøy nacisn¹ê przycisk OK, a potem zamkn¹ê okno po³¹czeò animacyjnych gûrnym przyciskiem OK. Teraz naleøy zaznaczyê narysowany na oknie obiekt graficzny reprezentuj¹cy zawûr syropu i nacisn¹ê Enter lub na zaznaczonym obiekcie klikn¹ê dwukrotnie lewym przyciskiem myszy. Pojawi sií okno Po³¹czeÒ animacyjnych, w ktûrym z grupy Kolor wype³nienia naleøy wybraê przycisk Dyskretny (rys. 31). Pojawi sií kolejne okno dialogowe. W polu Wyraøenie naleøy usun¹ê nazwí zmiennej ZawÛr_mleka i wpisaê nazwí zmiennej ZawÛr_syropu. W celu zdefiniowania koloru, jaki zawûr bídzie przyjmowa³ gdy zmienna ZawÛr_syropu bídzie przyjmowa³a wartoúê 0 lub 1, naleøy wskazaê mysz¹ okienko dla stanu 0,FA³SZ,WY, a potem okienko dla stanu 1,PRAWDA,W. W obu przypadkach pojawi sií dostípna paleta kolorûw, w ktûrej naleøy wskazaê wybrany kolor. Po wybraniu kolorûw naleøy nacisn¹ê przycisk OK. Poniewaø na liúcie zmiennych InToucha nie ma zdefiniowanej zmiennej o nazwie ZawÛr_syropu, dlatego InTouch zapyta sií, czy tak¹ zmienn¹ zdefiniowaê. NastÍpnie klikamy przycisk OK i definiujemy zmienn¹ w kolejnym oknie. Wybieraj¹c przycisk Typ... naleøy na liúcie wskazaê typ I/O Discrete. ZwrÛÊmy uwagí na to, øe nazwa dostípu PLC1 zosta³a przypisana automatycznie. Zmieniamy w polu Element: V1 na V2 - jest to Element w programie SIMULATE, ktûry odpowiada za otwieranie i zamykanie zaworu syropu (rys. 32). Teraz pozostaje zapisaê zmiany przyciskiem Zapisz i wyjúê z okna definicji zmiennej za poúrednictwem przycisku Zamknij. Pojawi sií okno Kolor wype³nienia - wyraøenie dyskretne, w ktûrym naleøy wybraê dolny przycisk OK. W ten sposûb na ekranie pozostanie okno Po³¹czeÒ animacyjnych, w ktûrym naleøy tym razem wybraê z grupy Kolor linii przycisk Dyskretny (rys. 33). Pojawi sií okno dialogowe uzaleøniaj¹cego kolor linii obiektu graficznego od wartoúci zmiennej dyskretnej. W polu Wyraøenie naleøy wpisaê nazwí zmiennej, ale zamiast wpisywaê nazwí zmiennej rícznie, moøna dwukrotnie klikn¹ê lewym przyciskiem myszy w pole Wyraøenie. Wtedy pojawi sií przegl¹darka zmiennych, w ktûrej naleøy wskazaê zdefiniowan¹ wczeúniej zmienn¹ o nazwie ZawÛr_syropu (rys. 34). Po wyborze zmiennej ZawÛr_syropu z listy zmiennych, naleøy nacisn¹ê przycisk OK, a potem zamkn¹ê okno Po³¹czeÒ animacyjnych gûrnym przyciskiem OK. Kolejnym etapem tworzenia aplikacji jest przygotowanie animacji zbiornika, ktûry bídzie pokazywa³ iloúê wyprodukowanego mleka czekoladowego. W tym celu naleøy zaznaczyê narysowany na oknie obiekt graficzny reprezentuj¹cy zbiornik i nacisn¹ê Enter lub na zaznaczonym obiekcie klikn¹ê dwukrotnie lewym przyciskiem myszy. Ponownie pojawi sií okno Po³¹czeÒ animacyjnych, w ktûrym z grupy Wype³nienie naleøy wybraê przycisk Pionowe (rys. 35). Pojawi sií okno dialogowe pokazane na rys. 36. W polu Wyraøenie naleøy wpisaê nazwí zmiennej Poziom_zbiornika, w polu Wart. przy maks. wype³nieniu wartoúê 1000, a w polu Wart. przy min. wype³nieniu cyfrí 0. Z kolei w polu Maks. wype³nienie (%) wprowadziê naleøy wartoúê 100, a w polu Min. wype³nienie (%) wartoúê 0. Wprowadzone parametry liczbowe oznaczaj¹, øe naryso- Rys. 30 Rys. 31 Rys. 32 Rys. 29 Rys

76 A U T O M A T Y K A Rys. 34 Rys. 35 Rys. 36 Rys. 37 Rys. 38 wany zbiornik bídzie maksymalnie pokazywa³ wartoúê 1000 jednostek, ktûra reprezentuje 100%, a minimalnie 0, czyli 0%. W momencie gdy pojawi sií wartoúê np. 500, to wtedy zbiornik bídzie wype³niony do po³owy (50%). Z kolei parametr Kierunek okreúla, w ktûrym kierunku obiekt bídzie wype³niany mlekiem czekoladowym - zaznaczamy Do gûry. Do ustalenia pozostaje jeszcze kolor t³a obiektu. Po klikniíciu na prostok¹t obok napisu Kolor t³a:, moøna wybraê kolor t³a zbiornika, z dostípnej w programie palety kolorûw. Po wybraniu koloru naleøy nacisn¹ê przycisk OK. Poniewaø na liúcie zmiennych InToucha nie ma zdefiniowanej zmiennej o nazwie Poziom_zbiornika, dlatego InTouch zapyta sií, czy tak¹ zmienn¹ zdefiniowaê. Naleøy potwierdziê za pomoc¹ klikniícia w przycisk OK i zdefiniowaê zmienn¹ w oknie pokazanym na rys. 37. Aby zdefiniowaê now¹ zmienn¹, naleøy w polu Zmienna wpisaê nazwí zmiennej (pole to zosta³o automatycznie wype³nione przez InToucha). NastÍpnie wybieramy typ zmiennej naciskaj¹c przycisk Typ... i zaznaczyê na liúcie typ I/O Integer. NastÍpnie zmieniamy parametry Min. inø. na 0, Maks. inø. na 1000, Min I/O na 0, a Maks. I/O na Pola te umoøliwiaj¹ wykorzystanie skalowania (Konwersja). DostÍpne s¹ dwie konwersje: Liniowa i Pierwiastkowa. Pola Min. I/O oraz Maks. I/O okreúlaj¹ odpowiednio najmniejsz¹ i najwiíksz¹ wartoúê ktûr¹ bídzie moøna odczytaê/zapisaê z/do sterownika, natomiast pola Min. inø. oraz Maks. inø. - wartoúê minimaln¹ i maksymaln¹ po przeskalowaniu, czyli tak¹, jaka zostanie pokazana w aplikacji wizualizacyjnej. Na przyk³ad, jeøeli wiadomo, øe zmienna bídzie reprezentowa- ³a wartoúci odczytywane ze sterownika z zakresu od -100 (Min. I/O) do (Maks. I/O), a chcemy je przedstawiê w aplikacji wizualizacyjnej jako wartoúci z zakresu od 0 do 100, to wtedy w polu Min. inø. naleøy wpisaê wartoúê 0, a w polu Maks. inø. wartoúê 100 i wskazaê w grupie Konwersja, parametr Liniowa. W projektowanej aplikacji nie ma potrzeby korzystania z konwersji, a wiíc powyøsze pola naleøy wype³niê wed³ug przytoczonych wskazûwek. Naciskamy przycisk Nazwa dostípu i wskazaê PLC1, jako zdefiniowan¹ nazwí dostípu, do ktûrej bídzie przypisana zmienna Poziom_zbiornika, a z kolei w polu Element naleøy wpisaê L1. Jest to element zdefiniowany w programie SI- MULATE, ktûry reprezentuje iloúê wyprodukowanego mleka czekoladowego. Teraz pozostaje zapisaê zmiany przyciskiem Zapisz i wyjúê z okna definicji zmiennej za poúrednictwem przycisku Zamknij oraz zamkn¹ê okno Po³¹czeÒ animacyjnych gûrnym przyciskiem OK. W podobny sposûb s¹ konfigurowane kolejne obiekty graficzne - czyli tekst #, znajduj¹cy sií poniøej prostok¹ta. Symbol ten bídzie wyúwietlaê wartoúê liczbow¹ znajduj¹cego sií w zbiorniku wyprodukowanego mleka czekoladowego. Aby mûg³ on realizowaê takie zadanie, naleøy go odpowiednio skonfigurowaê. W tym celu naleøy zaznaczyê symbol # w oknie i nacisn¹ê Enter lub na zaznaczonym obiekcie klikn¹ê dwukrotnie lewym przyciskiem myszy. Pojawi sií okno Po³¹czeÒ animacyjnych, w ktûrym z grupy Wyúwietlanie wartoúci naleøy wybraê przycisk Analogowe. W polu Wyraøenie kolejnego wyúwietlonego okna naleøy wpisaê nazwí zmiennej, ktûrej wartoúê bídzie wyúwietlana, ale zamiast wpisywaê nazwí zmiennej rícznie, dwukrotnie klikamy lewym przyciskiem myszy w pole Wyraøenie. Wtedy pojawi sií przegl¹darka zmiennych, z ktûrej naleøy wskazaê zdefiniowan¹ wczeúniej zmienn¹ o nazwie Poziom_zbiornika. Po wyborze zmiennej Poziom_zbiornika z listy zmiennych, naleøy nacisn¹ê przycisk OK, a potem zamkn¹ê okno Po³¹czeÒ animacyjnych gûrnym przyciskiem OK. Ostatnim obiektem graficznym, ktûry naleøy skonfigurowaê jest przycisk z napisem Start. Obiekt ten jest inny, niø definiowane wczeúniej, gdyø za jego pomoc¹ bídzie moøna wprowadzaê wartoúci 1 lub 0 odpowiadaj¹ce uruchomieniu lub zatrzymaniu procesu produkcji mleka czekoladowego. Aby skonfigurowaê przycisk, naleøy zaznaczyê przycisk w oknie edycyjnym i nacisn¹ê Enter lub na zaznaczonym obiekcie klikn¹ê dwukrotnie lewym przyciskiem myszy. Pojawi sií okno Po³¹czeÒ animacyjnych, w ktûrym z grupy Przyciski naleøy wybraê przycisk Dyskretny (rys. 38). Pojawi sií okno dialogowe, w ktûrym w polu Zmienna wpisujemy nazwí zmiennej Start. Z grupy SposÛb dzia³ania wybieramy Prze³¹czanie. Spowoduje to, øe po pierwszym naciúniíciu przycisku, stan zmiennej zostanie ustawiony na 1, a po kolejnym naciúniíciu, stan zmiennej przyjmie wartoúê 0. Zmiany zapisujemy poprze klikniície klawisza OK. Podobnie jak we wczeúniejszych przypadkach InTouch zapyta sií, czy zdefiniowan¹ zmienn¹ zapisaê. NastÍpnie, poprzez klikniície przycisku Typ... naleøy wybraê z listy zmiennych typ I/O Discrete. Z kolei, wybieraj¹c przycisk Nazwa dostípu, przypisujemy do zmiennej Start nazwí dostípu PLC1, a nastípnie zaznaczamy opcjí Uøyj nazwy zmiennej jako nazwy elementu, w celu wykorzystania w polu Element nazwy zmiennej, a wiíc Start. Teraz pozostaje zapisaê zmiany przyciskiem Zapisz i wyjúê z okna definicji zmiennej za poúrednictwem przycisku Zamknij. Pojawi sií okno Przycisk - wartoúê dyskretna, w ktûrym naleøy wybraê dolny przycisk OK. W ten sposûb na ekranie pozostanie okno po³¹czeò animacyjnych, w ktûrym naleøy tym razem wybraê z grupy Wyúwietlanie wartoúci przycisk Dyskretne. Pojawi sií okno dialogowe, w ktûrym w polu Wyraøenie naleøy wpisaê nazwí zmiennej Start lub dwukrotnie klikaj¹c lewym przyciskiem myszy w pole Wyraøenie, wskazaê zmienn¹ w przegl¹darce zmiennych. Pozostaje jeszcze wype³niê pola Gdy prawdziwe oraz Gdy fa³szywe, w ktûrych naleøy wpisaê tekst lub wartoúê liczbow¹, ktûra bídzie wyúwietlana, gdy zmienna Start przyjmie wartoúê 1 (Gdy prawdziwe) lub 0 (Gdy fa³szywe). W polu Gdy prawdziwe wpisujemy tekst Uruchomiony, natomiast w polu Gdy fa³szywe tekst Zatrzymany. Po wpisaniu tekstûw w odpowiednie pola, zamykamy okno Po³¹czeÒ animacyjnych gûrnym przyciskiem OK. Skonfigurowanie przycisku Start zakoòczy³o etap projektowania aplikacji. Jedynie co pozosta³o do zrealizowania, to konfiguracja programu komunikacyjnego (program WindowMaker pozostawiamy uruchomiony). Marcin Legutek, Astor ML@astor.com.pl Dodatkowe informacje Ewaluacyjnê wersjê programu InTouch 7.11 PL zamieœciliœmy na CD-EP1/2003B. 140

Klocki RS485, część 4

Klocki RS485, część 4 P R O Klocki J E K RS485 T Y Klocki RS485, część 4 W czwartej, przedostatniej czíúci artyku³u przedstawiamy dwie karty wejúê: cyfrowych i analogowych. DziÍki nim, system zaprezentowany w cyklu artyku³ûw

Bardziej szczegółowo

Programator mikrokontrolerów PIC współpracujący z programem MPLAB AVT 5100

Programator mikrokontrolerów PIC współpracujący z programem MPLAB AVT 5100 Programator mikrokontrolerów PIC współpracujący z programem MPLAB AVT 5100 P R O J E K JuPIC T Y Konstruktorzy s¹ bez w¹tpienia ludümi rûwnie leniwymi, jak wszyscy inni. St¹d pomys³ tworzenia dla nich,

Bardziej szczegółowo

Dekoder dzia³a podobnie jak w telefonach komûrkowych: wyúwietla

Dekoder dzia³a podobnie jak w telefonach komûrkowych: wyúwietla do / z µc Dekoder CLIP AVT 5004 P R O Dekoder J E K CLIP T Y Identyfikacja numeru abonenta dzwoni¹cego CLIP (ang. Calling Line Identification Presentation), ogûlnie dostípna w sieciach komûrkowych oraz

Bardziej szczegółowo

Funkcje bezpieczeństwa

Funkcje bezpieczeństwa 42 Funkcje bezpieczeństwa w systemie Teleco Michał Sikora Jednym z podstawowych zadaò systemûw automatyki budynku jest zwiíkszenie bezpieczeòstwa zarûwno osûb, jak i samego obiektu. W artykule przedstawione

Bardziej szczegółowo

ANALOGOWE UKŁADY SCALONE

ANALOGOWE UKŁADY SCALONE ANALOGOWE UKŁADY SCALONE Ćwiczenie to ma na celu zapoznanie z przedstawicielami najważniejszych typów analogowych układów scalonych. Będą to: wzmacniacz operacyjny µa 741, obecnie chyba najbardziej rozpowszechniony

Bardziej szczegółowo

Wprowadzenie Znajdü Wyszukaj

Wprowadzenie Znajdü Wyszukaj Wprowadzenie W ostatnim czasie ukaza a sií na rynku kolejna wersja jednego z najpopularniejszych systemûw operacyjnych dla komputerûw osobistych klasy PC. Mowa tu oczywiúcie o systemie firmy Microsoft

Bardziej szczegółowo

Układ do automatycznego wzywania Pogotowia Ratunkowego

Układ do automatycznego wzywania Pogotowia Ratunkowego Układ do automatycznego wzywania Pogotowia P R O Ratunkowego J E K T Y Układ do automatycznego wzywania Pogotowia Ratunkowego AVT 999 ØyczÍ wszystkim Czytelnikom, aby zbudowany przez nich uk³ad nigdy nie

Bardziej szczegółowo

Programowany zegar ze zdalnym sterowaniem

Programowany zegar ze zdalnym sterowaniem Dział Projekty Czytelników zawiera opisy projektów nadesłanych do redakcji EP przez Czytelników. Redakcja nie bierze odpowiedzialności za prawidłowe działanie opisywanych układów, gdyż nie testujemy ich

Bardziej szczegółowo

Mikroprocesorowy regulator temperatury z czujnikiem Pt100

Mikroprocesorowy regulator temperatury z czujnikiem Pt100 Dział "Projekty Czytelników" zawiera opisy projektów nadesłanych do redakcji EP przez Czytelników. Redakcja nie bierze odpowiedzialności za prawidłowe działanie opisywanych układów, gdyż nie testujemy

Bardziej szczegółowo

PRZEMYSŁOWY ODTWARZACZ PLIKÓW MP3 i WAV

PRZEMYSŁOWY ODTWARZACZ PLIKÓW MP3 i WAV INDUSTRIAL MP3/WAV imp3_wav AUTOMATYKA PRZEMYSŁOWA PRZEMYSŁOWY ODTWARZACZ PLIKÓW MP3 i WAV ZASTOSOWANIE: - systemy powiadamiania głosowego w przemyśle (linie technologiczne, maszyny) - systemy ostrzegania,

Bardziej szczegółowo

Interfejs graficznych wyświetlaczy LCD

Interfejs graficznych wyświetlaczy LCD Interfejs graficznych wyświetlaczy LCD AVT 5093 Interfejs graficznych P R wyświetlaczy O J E K T LCDY Sterowanie graficznym wyúwietlaczem LCD jest dosyê k³opotliwe, szczegûlnie gdy wyúwietlacz nie ma wbudowanego

Bardziej szczegółowo

Zestaw edukacyjny dla mikrokontrolerów ST62

Zestaw edukacyjny dla mikrokontrolerów ST62 Zestaw edukacyjny dla mikrokontrolerów P R O J E K ST62 T Y Zestaw edukacyjny dla mikrokontrolerów ST62 AVT 5072 ZachÍceni duøym zainteresowaniem jakim cieszy³ sií program ST-Realizer oraz opublikowany

Bardziej szczegółowo

Bezpiecznik topikowy jest jedynym

Bezpiecznik topikowy jest jedynym 60 Bezpieczniki prądu stałego urządzenia fotowoltaiczne PV Roman Kłopocki Artyku przedstawia niektûre aspekty dzia ania bezpiecznikûw topikowych w obwodach prπdu sta ego. Zaprezentowano takøe kilka przyk

Bardziej szczegółowo

Sprzętowy emulator procesorów AVR

Sprzętowy emulator procesorów AVR Sprzętowy emulator procesorów AVR AVT 5039 Sprzętowy emulator P R procesorów O J E K AVR T Y Wzrastaj¹ca z dnia na dzieò popularnoúê procesorûw RISC z rodziny AVR, produkowanych przez firmí ATMEL, spowodowa³a

Bardziej szczegółowo

Klocki RS485, część 3

Klocki RS485, część 3 Klocki P R O RS485 J E K T Y, część 3 W trzeciej czíúci artyku³u przedstawiamy dwie karty wyjúê cyfrowych, za pomoc¹ ktûrych w systemie RS485 moøna sterowaê prac¹ urz¹dzeò zasilanych napiíciami o wartoúci

Bardziej szczegółowo

O autorze... 9 Wprowadzenie... 11

O autorze... 9 Wprowadzenie... 11 Spis tre ci O autorze... 9 Wprowadzenie... 11 Rozdzia 1. Sterownik przemys owy... 15 Sterownik S7-1200... 15 Budowa zewn trzna... 16 Budowa wewn trzna... 19 Cykl programu oraz tryby pracy... 21 Zestaw

Bardziej szczegółowo

6 wiczenia z jízyka Visual Basic

6 wiczenia z jízyka Visual Basic Wprowadzenie Pisanie programûw komputerowych nie jest rzeczπ trudnπ. Oczywiúcie tworzenie duøych systemûw realizujπcych skomplikowane zadania wymaga dobrej wiedzy informatycznej i doúwiadczenia. Jednak

Bardziej szczegółowo

Wykład 2. Budowa komputera. W teorii i w praktyce

Wykład 2. Budowa komputera. W teorii i w praktyce Wykład 2 Budowa komputera W teorii i w praktyce Generacje komputerów 0 oparte o przekaźniki i elementy mechaniczne (np. Z3), 1 budowane na lampach elektronowych (np. XYZ), 2 budowane na tranzystorach (np.

Bardziej szczegółowo

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej 3.1 Informacje ogólne Program WAAK 1.0 służy do wizualizacji algorytmów arytmetyki komputerowej. Oczywiście istnieje wiele narzędzi

Bardziej szczegółowo

E-TRONIX Sterownik Uniwersalny SU 1.2

E-TRONIX Sterownik Uniwersalny SU 1.2 Obudowa. Obudowa umożliwia montaż sterownika na szynie DIN. Na panelu sterownika znajduje się wyświetlacz LCD 16x2, sygnalizacja LED stanu wejść cyfrowych (LED IN) i wyjść logicznych (LED OUT) oraz klawiatura

Bardziej szczegółowo

12 kanałowy regulator mocy sterowany sygnałem DMX512

12 kanałowy regulator mocy sterowany sygnałem DMX512 12 kanałowy regulator mocy sterowany P R sygnałem O J E DMX512 K T Y 12 kanałowy regulator mocy sterowany sygnałem DMX512 Opis dotyczy zestawu regulatorûw duøej mocy, ktûre mog¹ byê wykorzystane w duøych

Bardziej szczegółowo

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC ZL4PIC uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC (v.1.0) ZL4PIC Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC 1 Zestaw jest przeznaczony dla elektroników zajmujących się aplikacjami

Bardziej szczegółowo

Pomiar mocy pobieranej przez napędy pamięci zewnętrznych komputera. Piotr Jacoń K-2 I PRACOWNIA FIZYCZNA 25. 01. 2010

Pomiar mocy pobieranej przez napędy pamięci zewnętrznych komputera. Piotr Jacoń K-2 I PRACOWNIA FIZYCZNA 25. 01. 2010 Pomiar mocy pobieranej przez napędy pamięci zewnętrznych komputera. Piotr Jacoń K-2 I PRACOWNIA FIZYCZNA 25. 01. 2010 I. Cel ćwiczenia: Poznanie poprzez samodzielny pomiar, parametrów elektrycznych zasilania

Bardziej szczegółowo

Tester samochodowych sond lambda

Tester samochodowych sond lambda Tester samochodowych P R O sond J E lambda K T Y Tester samochodowych sond lambda Elektroniczny analizator składu mieszanki AVT 520 Przyrz¹d opisany w artykule s³uøy do oceny sprawnoúci sondy lambda oraz

Bardziej szczegółowo

AVT 5032. Radiowy pilot do PC

AVT 5032. Radiowy pilot do PC AVT 5032 P Radiowy R O J pilot E K do T PCY Pilot do PC, opracowany w redakcyjnym laboratorium, cieszy sií wúrûd naszych CzytelnikÛw zaskakuj¹co duøym powodzeniem. Okaza³o sií, øe obszar moøliwych zastosowaò

Bardziej szczegółowo

MIKROKONTROLERY I MIKROPROCESORY

MIKROKONTROLERY I MIKROPROCESORY PLAN... work in progress 1. Mikrokontrolery i mikroprocesory - architektura systemów mikroprocesorów ( 8051, AVR, ARM) - pamięci - rejestry - tryby adresowania - repertuar instrukcji - urządzenia we/wy

Bardziej szczegółowo

HiTiN Sp. z o. o. Przekaźnik kontroli temperatury RTT 4/2 DTR. 40 432 Katowice, ul. Szopienicka 62 C tel/fax.: + 48 (32) 353 41 31. www.hitin.

HiTiN Sp. z o. o. Przekaźnik kontroli temperatury RTT 4/2 DTR. 40 432 Katowice, ul. Szopienicka 62 C tel/fax.: + 48 (32) 353 41 31. www.hitin. HiTiN Sp. z o. o. 40 432 Katowice, ul. Szopienicka 62 C tel/fax.: + 48 (32) 353 41 31 www.hitin.pl Przekaźnik kontroli temperatury RTT 4/2 DTR Katowice, 1999 r. 1 1. Wstęp. Przekaźnik elektroniczny RTT-4/2

Bardziej szczegółowo

Wstęp...9. 1. Architektura... 13

Wstęp...9. 1. Architektura... 13 Spis treści 3 Wstęp...9 1. Architektura... 13 1.1. Schemat blokowy...14 1.2. Pamięć programu...15 1.3. Cykl maszynowy...16 1.4. Licznik rozkazów...17 1.5. Stos...18 1.6. Modyfikowanie i odtwarzanie zawartości

Bardziej szczegółowo

raceboard-s Szybki start

raceboard-s Szybki start raceboard-s Szybki start Więcej na : http://raceboard.simracing.pl Kontakt: raceboard@simracing.pl Data aktualizacji: 2011-11-15 Wstęp Dziękujemy za wybór naszego produktu z serii raceboard, przykładamy

Bardziej szczegółowo

dokument DOK 02-05-12 wersja 1.0 www.arskam.com

dokument DOK 02-05-12 wersja 1.0 www.arskam.com ARS3-RA v.1.0 mikro kod sterownika 8 Linii I/O ze zdalną transmisją kanałem radiowym lub poprzez port UART. Kod przeznaczony dla sprzętu opartego o projekt referencyjny DOK 01-05-12. Opis programowania

Bardziej szczegółowo

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład:

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład: Sieci komputerowe Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład: korzystania ze wspólnych urządzeo, np.

Bardziej szczegółowo

Modułowy programowalny przekaźnik czasowy firmy Aniro.

Modułowy programowalny przekaźnik czasowy firmy Aniro. Modułowy programowalny przekaźnik czasowy firmy Aniro. Rynek sterowników programowalnych Sterowniki programowalne PLC od wielu lat są podstawowymi systemami stosowanymi w praktyce przemysłowej i stały

Bardziej szczegółowo

ABONENCKA CENTRALA TELEFONICZNA SIGMA. Instalacja sterownika USB

ABONENCKA CENTRALA TELEFONICZNA SIGMA. Instalacja sterownika USB ABONENCKA CENTRALA TELEFONICZNA SIGMA Instalacja sterownika USB 1 SIGMA PLATAN Sp. z o.o. 81-855 SOPOT, ul. Platanowa 2 tel. (0-58) 555-88-00, fax (0-58) 555-88-01 www.platan.pl e-mail: platan@platan.pl

Bardziej szczegółowo

Przyk ad konfiguracja MRP przy pomocy IO kontrolera Simatic S7-300 i switchy Scalance X

Przyk ad konfiguracja MRP przy pomocy IO kontrolera Simatic S7-300 i switchy Scalance X Przyk ad konfiguracja MRP przy pomocy IO kontrolera Simatic S7-300 i switchy Scalance X Konfiguracj MRP (Media Redundancy Protocol) mo na przeprowadzi r cznie, lub za pomoc kontrolera Simatic S7. (Np.

Bardziej szczegółowo

Wykład 2. Interfejsy I 2 C, OneWire, I 2 S

Wykład 2. Interfejsy I 2 C, OneWire, I 2 S Wykład 2 Interfejsy I 2 C, OneWire, I 2 S Interfejs I 2 C I 2 C Inter-Integrated Circuit Cechy: - szeregowa, dwukierunkowa magistrala służąca do przesyłania danych w urządzeniach elektronicznych - opracowana

Bardziej szczegółowo

Jak zaprogramować procesor i. wgrać firmwar-e do yampp3usb. Copyright SOFT COM sp. z o. o.

Jak zaprogramować procesor i. wgrać firmwar-e do yampp3usb. Copyright SOFT COM sp. z o. o. Jak zaprogramować procesor i wgrać firmwar-e do yampp3usb Spis treści: 1 Programowanie za pomocą programu PonyProg2000.... 3 1.1 Zaprogramowanie mikrokontrolera... 3 1.2 Ustawienia bitów konfiguracji...

Bardziej szczegółowo

Asynchroniczny konwerter RS232< >Midi

Asynchroniczny konwerter RS232< >Midi Asynchroniczny konwerter P R O RS232< >Midi J E K T Y Asynchroniczny konwerter RS232< >Midi AVT 842 W artykule prezentujemy uk³ad, ktûry umoøliwia wspû³prací standardowych interfejsûw RS232 i MIDI. Rys.

Bardziej szczegółowo

Lokalizatory 3M Dynatel tworzπ

Lokalizatory 3M Dynatel tworzπ 120 Lokalizatory 3M Dynatel LokalizatorÛw 3M Dynatel moøna uøywaê do trasowania kabli i rur, wykrywania uszkodzeò pow ok kabli, dokonywania dok adnych pomiarûw g Íbokoúci, wykrywania sond, lokalizacji

Bardziej szczegółowo

Generalnie przeznaczony jest do obsługi systemów klimatyzacyjnych i chłodniczych.

Generalnie przeznaczony jest do obsługi systemów klimatyzacyjnych i chłodniczych. SYSTEM MONITORINGU FIRMY CAREL Generalnie przeznaczony jest do obsługi systemów klimatyzacyjnych i chłodniczych. Korzyści systemu 1. Możliwość kontroli parametrów pracy urządzeń sterowanych regulatorami

Bardziej szczegółowo

2. Architektura mikrokontrolerów PIC16F8x... 13

2. Architektura mikrokontrolerów PIC16F8x... 13 Spis treści 3 Spis treœci 1. Informacje wstępne... 9 2. Architektura mikrokontrolerów PIC16F8x... 13 2.1. Budowa wewnętrzna mikrokontrolerów PIC16F8x... 14 2.2. Napięcie zasilania... 17 2.3. Generator

Bardziej szczegółowo

3/2003 marzec 15 zł 50 gr (w tym 7% VAT)

3/2003 marzec 15 zł 50 gr (w tym 7% VAT) ELEKTRONIKA PRAKTYCZNA Miêdzynarodowy magazyn elektroników konstruktorów www.ep.com.pl NA CD M.IN.: KATALOG FIRMY NATIONAL SEMICONDUCTOR, NAJNOWSZE WERSJE BASCOMA 3/2003 marzec 15 zł 50 gr (w tym 7% VAT)

Bardziej szczegółowo

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI AEK Zakład Projektowy Os. Wł. Jagiełły 7/25 60-694 POZNAŃ tel/fax (061) 4256534, kom. 601 593650 www.aek.com.pl biuro@aek.com.pl REJESTRATOR RES800 INSTRUKCJA OBSŁUGI Wersja 1 Poznań 2011 REJESTRATOR RES800

Bardziej szczegółowo

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD 1. Wprowadzenie DuŜa grupa sterowników mikroprocesorowych wymaga obsługi przycisków, które umoŝliwiają uŝytkownikowi uruchamianie

Bardziej szczegółowo

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro 1. Cel ćwiczenia Celem ćwiczenia jest zaprojektowanie sterowania układem pozycjonowania z wykorzystaniem sterownika VersaMax Micro oraz silnika krokowego. Do algorytmu pozycjonowania wykorzystać licznik

Bardziej szczegółowo

Mikroprocesorowy regulator temperatury RTSZ-2 Oprogramowanie wersja 1.1. Instrukcja obsługi

Mikroprocesorowy regulator temperatury RTSZ-2 Oprogramowanie wersja 1.1. Instrukcja obsługi Mikroprocesorowy regulator temperatury RTSZ-2 Oprogramowanie wersja 1.1 Instrukcja obsługi Parametry techniczne mikroprocesorowego regulatora temperatury RTSZ-2 Cyfrowy pomiar temperatury w zakresie od

Bardziej szczegółowo

Firma Wobit opracowuje i produkuje

Firma Wobit opracowuje i produkuje 78 firmy, ludzie, produkty Sterowniki mikrokrokowe silnikûw krokowych Witold Ober Na rynku dostípnych jest wiele napídûw úredniej wielkoúci. Jednak bardzo wyraünie kszta tuje sií zapotrzebowanie na ma

Bardziej szczegółowo

Selektor linii telewizyjnych

Selektor linii telewizyjnych Selektor P R linii O telewizyjnych J E K T Y Selektor linii telewizyjnych kit AVT 323 Przedstawiamy, od dawna zapowiadane, urz¹dzenie niezbídne w serwisie telewizyjnym, przydatne takøe w szkolnych laboratoriach.

Bardziej szczegółowo

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej Struktura stanowiska laboratoryjnego Na rysunku 1.1 pokazano strukturę stanowiska laboratoryjnego Z80 z interfejsem częstościomierza- czasomierz PFL 21/22. Rys.1.1. Struktura stanowiska. Interfejs częstościomierza

Bardziej szczegółowo

ZL4PIC uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC (v.1.0) Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

ZL4PIC uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC (v.1.0) Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC 1 ZL4PIC Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC Zestaw jest przeznaczony dla elektroników zajmujących się aplikacjami mikrokontrolerów PIC. Jest on przystosowany do współpracy z mikrokontrolerami

Bardziej szczegółowo

Adapter USB do CB32. MDH-SYSTEM ul. Bajkowa 5, Lublin tel./fax.81-444-62-85 lub kom.693-865-235 e mail: info@mdh-system.pl

Adapter USB do CB32. MDH-SYSTEM ul. Bajkowa 5, Lublin tel./fax.81-444-62-85 lub kom.693-865-235 e mail: info@mdh-system.pl MDH System Strona 1 MDH-SYSTEM ul. Bajkowa 5, Lublin tel./fax.81-444-62-85 lub kom.693-865-235 e mail: info@mdh-system.pl Adapter USB do CB32 Produkt z kategorii: Elmes Cena: 42.00 zł z VAT (34.15 zł netto)

Bardziej szczegółowo

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC ZL4PIC uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC (v.1.0) ZL4PIC Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC 1 Zestaw jest przeznaczony dla elektroników zajmujących się aplikacjami

Bardziej szczegółowo

ZL11ARM. Uniwersalna płyta bazowa

ZL11ARM. Uniwersalna płyta bazowa ZL11ARM Uniwersalna płyta bazowa dla modułów diparm ZL11ARM to uniwersalna płyta bazowa dla modułów diparm (np. ZL12ARM i ZL19ARM) z mikrokontrolerami wyposażonymi w rdzenie ARM produkowanymi przez różnych

Bardziej szczegółowo

Przełom na rynku narzędzi EDA

Przełom na rynku narzędzi EDA Przełom na rynku narzędzi EDA dla elektroników, część 1 W drugiej po³owie ubieg³ego roku pojawi³o sií nowe, sztandarowe narzídzie dla elektronikûw - program Protel DXP firmy Altium. Jego najnowsza wersja

Bardziej szczegółowo

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

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu. Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu. Maciek Słomka 4 czerwca 2006 1 Celprojektu. Celem projektu było zbudowanie modułu umożliwiającego wizualizację stanu czujników

Bardziej szczegółowo

Pracownia komputerowa. Dariusz Wardecki, wyk. VIII

Pracownia komputerowa. Dariusz Wardecki, wyk. VIII Pracownia komputerowa Dariusz Wardecki, wyk. VIII Powtórzenie Podaj wartość liczby przy następującej reprezentacji zmiennoprzecinkowej (Kc = 7) Z C C C C M M M 1 0 1 1 1 1 1 0-1.75 (dec) Rafa J. Wysocki

Bardziej szczegółowo

Edytor schematów, część 2

Edytor schematów, część 2 Profesjonalny system wspomagający projektowanie układów elektronicznych W drugiej czíúci artyku³u kontynuujemy prezentacjí moøliwoúci edytora schematûw - programu CAPTURE. Opiszemy znaczenie kolejnych

Bardziej szczegółowo

Na ³amach Elektroniki Praktycznej (EP 10/97) zosta³ opisany generator funkcyjny, ktûry moim zdaniem jest przyrz¹dem w zasadzie

Na ³amach Elektroniki Praktycznej (EP 10/97) zosta³ opisany generator funkcyjny, ktûry moim zdaniem jest przyrz¹dem w zasadzie Tani P generator R O J E funkcyjny K T Y Generator funkcyjny AVT 823 Generator funkcyjny jest podstawowym wyposaøeniem laboratorium elektronicznego. Jest niezbídny podczas wykonywania wielu prac zwi¹zanych

Bardziej szczegółowo

Generator obrazu transakcji fiskalnych, FG-40

Generator obrazu transakcji fiskalnych, FG-40 MDH System Strona 1 MDH-SYSTEM ul. Bajkowa 5, Lublin tel./fax.81-444-62-85 lub kom.693-865-235 e mail: info@mdh-system.pl Generator obrazu transakcji fiskalnych, FG-40 Produkt z kategorii: Specjalizowane

Bardziej szczegółowo

CoDeSys 3 programowanie w języku drabinkowym LD

CoDeSys 3 programowanie w języku drabinkowym LD Notatka Aplikacyjna NA 03004PL Spis treści 1. Wstęp... 2 1.1. Wymagania programowe... 2 2. Tworzenie projektu i dodawanie programu w LD... 3 3. Organizacja okien dla języka LD... 5 4. Składnia języka LD

Bardziej szczegółowo

PERSON Kraków 2002.11.27

PERSON Kraków 2002.11.27 PERSON Kraków 2002.11.27 SPIS TREŚCI 1 INSTALACJA...2 2 PRACA Z PROGRAMEM...3 3. ZAKOŃCZENIE PRACY...4 1 1 Instalacja Aplikacja Person pracuje w połączeniu z czytnikiem personalizacyjnym Mifare firmy ASEC

Bardziej szczegółowo

Systemy wbudowane Mikrokontrolery

Systemy wbudowane Mikrokontrolery Systemy wbudowane Mikrokontrolery Budowa i cechy mikrokontrolerów Architektura mikrokontrolerów rodziny AVR 1 Czym jest mikrokontroler? Mikrokontroler jest systemem komputerowym implementowanym w pojedynczym

Bardziej szczegółowo

Kieszonkowy odtwarzacz MP3,

Kieszonkowy odtwarzacz MP3, P R O J E K T Y Yampp 7 Kieszonkowy odtwarzacz MP3, część 1 Przedstawiamy kolejny odtwarzacz MP3, tym razem zaprojektowany jako przenoúny. W Yamppie-7 zastosowano do pamiítania nagraò karty pamiíciowe

Bardziej szczegółowo

DTR.ZL-24-08 APLISENS PRODUKCJA PRZETWORNIKÓW CIŚNIENIA I APARATURY POMIAROWEJ INSTRUKCJA OBSŁUGI (DOKUMENTACJA TECHNICZNO-RUCHOWA)

DTR.ZL-24-08 APLISENS PRODUKCJA PRZETWORNIKÓW CIŚNIENIA I APARATURY POMIAROWEJ INSTRUKCJA OBSŁUGI (DOKUMENTACJA TECHNICZNO-RUCHOWA) DTR.ZL-24-08 APLISENS PRODUKCJA PRZETWORNIKÓW CIŚNIENIA I APARATURY POMIAROWEJ INSTRUKCJA OBSŁUGI (DOKUMENTACJA TECHNICZNO-RUCHOWA) ZASILACZ SIECIOWY TYPU ZL-24-08 WARSZAWA, KWIECIEŃ 2008. APLISENS S.A.,

Bardziej szczegółowo

CZYTNIK ZBLIŻENIOWY RFID-UR80D

CZYTNIK ZBLIŻENIOWY RFID-UR80D CZYTNIK ZBLIŻENIOWY RFID-UR80D Dziękujemy za wybór naszego produktu. Niniejsza instrukcja pomoże państwu w prawidłowym podłączeniu urządzenia, uruchomieniu, oraz umożliwi prawidłowe z niego korzystanie.

Bardziej szczegółowo

OPTIMA PC v2.2.1. Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA 255 2011 ELFON. Instrukcja obsługi. Rev 1

OPTIMA PC v2.2.1. Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA 255 2011 ELFON. Instrukcja obsługi. Rev 1 OPTIMA PC v2.2.1 Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA 255 Instrukcja obsługi Rev 1 2011 ELFON Wprowadzenie OPTIMA PC jest programem, który w wygodny sposób umożliwia konfigurację

Bardziej szczegółowo

Instrukcja obsługi programatora AVR Prog USB v2

Instrukcja obsługi programatora AVR Prog USB v2 Instrukcja obsługi programatora AVR Prog USB v2 Instrukcja obsługi programatora AVR Prog USB v2, STK500 v2 www.and-tech.pl Strona 1 Zawartość Instrukcja obsługi programatora AVR Prog USB v2, STK500 v2

Bardziej szczegółowo

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy: LITEcompLPC1114 Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Bezpłatny zestaw dla Czytelników książki Mikrokontrolery LPC1100. Pierwsze kroki LITEcompLPC1114 jest doskonałą platformą mikrokontrolerową

Bardziej szczegółowo

Segmenty rynku sterowników. Segmenty rynku sterowników. Segmenty rynku sterowników. Typy budowy sterowników. Typy budowy sterowników

Segmenty rynku sterowników. Segmenty rynku sterowników. Segmenty rynku sterowników. Typy budowy sterowników. Typy budowy sterowników Segmenty rynku sterowników Segmenty rynku sterowników Klasy sterowników Sterowniki mikro Sterowniki małe Sterowniki średnie Sterowniki duŝe Sterowniki bardzo duŝe Sterowniki firmy Siemens Logo! Rodzina

Bardziej szczegółowo

LITEcomp. Zestaw uruchomieniowy z mikrokontrolerem ST7FLITE19

LITEcomp. Zestaw uruchomieniowy z mikrokontrolerem ST7FLITE19 LITEcomp Zestaw uruchomieniowy z mikrokontrolerem ST7FLITE19 Moduł LITEcomp to miniaturowy komputer wykonany na bazie mikrokontrolera z rodziny ST7FLITE1x. Wyposażono go w podstawowe peryferia, dzięki

Bardziej szczegółowo

Programator procesorow AVR do kompilatora BASCOM AVR (zgodny z STK200)

Programator procesorow AVR do kompilatora BASCOM AVR (zgodny z STK200) 1 z 5 2009-01-11 12:07 Wstecz Strona główna Programator procesorow AVR do kompilatora BASCOM AVR (zgodny z STK200) Widok płytek drukowanych jest tutaj Jest to banalnie prosty układ programatora procesorów

Bardziej szczegółowo

System bezstykowej kontroli dostępu

System bezstykowej kontroli dostępu System P R O bezstykowej J E K T kontroli Y dostępu System bezstykowej kontroli dostępu kit AVT 886 Mamy nadziejí, øe ten projekt i artyku³ spodoba sií Czytelnikom zainteresowanym systemami kontroli dostípu.

Bardziej szczegółowo

INSTRUKCJA OBS UGI AR780

INSTRUKCJA OBS UGI AR780 APAR - BIURO HANDLOWE 02-699 Warszawa, ul. K³obucka 8 pawilon 119 Tel. (0-22) 853-48-56, 853-49-30, 607-98-95 Fax (0-22) 607-99-50 E-mail: handel@apar.pl Internet: www.apar.pl R Rok za³o enia 1985 INSTRUKCJA

Bardziej szczegółowo

WPROWADZENIE Mikrosterownik mikrokontrolery

WPROWADZENIE Mikrosterownik mikrokontrolery WPROWADZENIE Mikrosterownik (cyfrowy) jest to moduł elektroniczny zawierający wszystkie środki niezbędne do realizacji wymaganych procedur sterowania przy pomocy metod komputerowych. Platformy budowy mikrosterowników:

Bardziej szczegółowo

Parametryzacja przetworników analogowocyfrowych

Parametryzacja przetworników analogowocyfrowych Parametryzacja przetworników analogowocyfrowych wersja: 05.2015 1. Cel ćwiczenia Celem ćwiczenia jest zaprezentowanie istoty działania przetworników analogowo-cyfrowych (ADC analog-to-digital converter),

Bardziej szczegółowo

ZL25ARM. Płyta bazowa dla modułów diparm z mikrokontrolerami STR912. [rdzeń ARM966E-S]

ZL25ARM. Płyta bazowa dla modułów diparm z mikrokontrolerami STR912. [rdzeń ARM966E-S] ZL25ARM Płyta bazowa dla modułów diparm z mikrokontrolerami STR912 [rdzeń ARM966E-S] ZL25ARM to płyta bazowa umożliwiająca wykonywanie różnorodnych eksperymentów z mikrokontrolerami STR912 (ARM966E-S).

Bardziej szczegółowo

Pamięci EEPROM w systemach mikroprocesorowych, część 2

Pamięci EEPROM w systemach mikroprocesorowych, część 2 Pamięci EEPROM w systemach mikroprocesorowych, część 2 Tym artyku³em koòczymy prezentacjí sposobûw programowania szeregowych pamiíci EEPROM. Poniewaø najwiíksz¹ popularnoúci¹ ciesz¹ sií wúrûd uøytkownikûw

Bardziej szczegółowo

Karta adaptacyjna GSM

Karta adaptacyjna GSM Proste zamontowanie karty adaptacyjnej GSM Karta adaptacyjna GSM Zainstalowanie karty SIM w karcie adaptacyjnej mini SIM Skrócona instrukcja obsługi Zainstalowanie karty SIM w karcie adaptacyjnej mini

Bardziej szczegółowo

2.1 INFORMACJE OGÓLNE O SERII NX

2.1 INFORMACJE OGÓLNE O SERII NX ASTOR KATALOG SYSTEMÓW STEROWANIA HORNER APG 2.1 INFORMACJE OGÓLNE O SERII NX Wyświetlacz graficzny, monochromatyczny o rozmiarach 240 x 128 lub 128 x 64 piksele. 256 kb pamięci programu. 2 porty szeregowe.

Bardziej szczegółowo

Spis procedur i programów

Spis procedur i programów Spis procedur i programów Przykład 1.1. Szablon programu.................................... 10 Przykład 2.1. Dodawanie liczby jednobajtowej do trzybajtowej....................15 Przykład 2.2. Dodawanie

Bardziej szczegółowo

Kaøda przerwa w zasilaniu stanowi

Kaøda przerwa w zasilaniu stanowi 52 Gwarantowane zasilanie odbiorników energii elektrycznej Andrzej Baranecki, Tadeusz P³atek, Marek Niewiadomski Rosnπca iloúê nieliniowych odbiornikûw energii elektrycznej (komputery, sprzít RTV, regulowane

Bardziej szczegółowo

Instrukcja obsługi programatora AVR Prog USB v2

Instrukcja obsługi programatora AVR Prog USB v2 Instrukcja obsługi programatora AVR Prog USB v2 Strona 1 Spis treści 1. Instalacja...3 2. Instalacja sterowników w trybie HID....3 3. Programowanie w trybie HID...4 4. Instalacja w trybie COM....5 5. Programowanie

Bardziej szczegółowo

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET PoniŜszy dokument zawiera opis konfiguracji programu STEP7 dla sterowników SIMATIC S7 300/S7 400, w celu stworzenia komunikacji między dwoma stacjami S7 300 za pomocą sieci Industrial Ethernet, protokołu

Bardziej szczegółowo

INSTRUKCJA OBS UGI www.elstat.pl

INSTRUKCJA OBS UGI www.elstat.pl INSTRUKCJA OBS UGI 1. CHARAKTERYSTYKA REGULATORA Regulator temperatury przeznaczony do wspó pracy z czujnikami rezystancyjnymi PTC, Pt100, Pt1000 oraz termoparami J lub K. Wybór zakresu i typu czujnika

Bardziej szczegółowo

Sterownik Silnika Krokowego GS 600

Sterownik Silnika Krokowego GS 600 Sterownik Silnika Krokowego GS 600 Spis Treści 1. Informacje podstawowe... 3 2. Pierwsze uruchomienie... 5 2.1. Podłączenie zasilania... 5 2.2. Podłączenie silnika... 6 2.3. Złącza sterujące... 8 2.4.

Bardziej szczegółowo

MOD Xmega explore z ATXmega256A3BU. sklep.modulowo.pl akademia.modulowo.pl zestawy.modulowo.pl app.modulowo.pl blog.modulowo.

MOD Xmega explore z ATXmega256A3BU. sklep.modulowo.pl akademia.modulowo.pl zestawy.modulowo.pl app.modulowo.pl blog.modulowo. MOD - 11 Xmega explore z ATXmega256A3BU Sklep firmowy: Kursy i instrukcje: Dokumentacje techniczne: Aplikacje i projekty: Aktualności: sklep.modulowo.pl akademia.modulowo.pl zestawy.modulowo.pl app.modulowo.pl

Bardziej szczegółowo

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q LABORAORIUM PROCESORY SYGAŁOWE W AUOMAYCE PRZEMYSŁOWEJ Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q 1. Zasady arytmetyki stałoprzecinkowej. Kody stałopozycyjne mają ustalone

Bardziej szczegółowo

Programator procesorów rodziny AVR AVR-T910

Programator procesorów rodziny AVR AVR-T910 Programator procesorów rodziny AVR AVR-T910 Instrukcja obsługi Opis urządzenia AVR-T910 jest urządzeniem przeznaczonym do programowania mikrokontrolerów rodziny AVR firmy ATMEL. Programator podłączany

Bardziej szczegółowo

Telewizja cyfrowa i standard MPEG2

Telewizja cyfrowa i standard MPEG2 Telewizja cyfrowa i standard MPEG2 Czym jest telewizja cyfrowa, dlaczego powstaje wokû³ niej tyle zamieszania, co oznacza skrût MPEG2? Przeczytaj poniøszy artyku³, a poznasz odpowiedzi na te pytania. Rys.

Bardziej szczegółowo

Komuniukacja Komputer-Komputer

Komuniukacja Komputer-Komputer Komuniukacja Komputer-Komputer Komunikacja komputer-komputer prowadzi do powstania sieci komputerowych LAN sieci lokalne (do 1 km) WAN sieci rozleg e (powy ej 1 km) Internet Sie Intranet ograniczony Internet

Bardziej szczegółowo

Program SMS4 Monitor

Program SMS4 Monitor Program SMS4 Monitor INSTRUKCJA OBSŁUGI Wersja 1.0 Spis treci 1. Opis ogólny... 2 2. Instalacja i wymagania programu... 2 3. Ustawienia programu... 2 4. Opis wskaników w oknie aplikacji... 3 5. Opcje uruchomienia

Bardziej szczegółowo

Instrukcja obsługi programatora AVR Prog USB v2

Instrukcja obsługi programatora AVR Prog USB v2 Instrukcja obsługi programatora AVR Prog USB v2 Instrukcja obsługi programatora AVR Prog USB v2, STK500 v2 Strona 1 Zawartość 1. Instalacja... 3 2. Instalacja sterowników w trybie HID.... 3 3. Programowanie

Bardziej szczegółowo

Opis ogólny AL154SAV5.HT8 -----------------------------------------------------------------------------------------------

Opis ogólny AL154SAV5.HT8 ----------------------------------------------------------------------------------------------- 1. OPIS INTERFEJSU POMIAROWEGO AL154SAV5.HT8 Przyrząd umożliwia pomiar, przesłanie do komputera oraz zapamiętanie w wewnętrznej pamięci interfejsu wartości chwilowych lub średnich pomierzonych z wybraną

Bardziej szczegółowo

Konwerter RS 232 / Centronics typ KSR

Konwerter RS 232 / Centronics typ KSR W i t o l d J u r e c z k o 44-151 Gliwice, ul. Daszyñskiego 560 Regon: 271215331 NIP: 631-010-66-35 Internet: www.yuko.com.pl e-mail: yuko@yuko.com.pl tel./ fax : (+48) (32) 230-89-49 telefony wewnêtrzne,

Bardziej szczegółowo

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego Arytmetyka cyfrowa Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego (binarnego). Zapis binarny - to system liczenia

Bardziej szczegółowo

Klocki RS485, część 2

Klocki RS485, część 2 P R O Klocki J E K RS485 T Y Klocki RS485, część 2 W drugiej czíúci artyku³u przedstawiamy dwie karty wyjúciowe, za pomoc¹ ktûrych moøna sterowaê rûønorodnymi urz¹dzeniami zewnítrznymi. Elementami wykonawczymi

Bardziej szczegółowo

Immobilizer z zabezpieczeniem przed porwaniem samochodu

Immobilizer z zabezpieczeniem przed porwaniem samochodu Immobilizer z zabezpieczeniem przed porwaniem P R O J samochodu E K T Y Immobilizer z zabezpieczeniem przed porwaniem samochodu AVT 5038 Kolejny uk³ad, ktûrego zadaniem jest zabezpieczenie naszego samochodu.

Bardziej szczegółowo

ZL8AVR. Płyta bazowa dla modułów dipavr

ZL8AVR. Płyta bazowa dla modułów dipavr ZL8AVR Płyta bazowa dla modułów dipavr Zestaw ZL8AVR to płyta bazowa dla modułów dipavr (np. ZL7AVR z mikrokontrolerem ATmega128 lub ZL12AVR z mikrokontrolerem ATmega16. Wyposażono ją w wiele klasycznych

Bardziej szczegółowo

Karta katalogowa JAZZ OPLC JZ20-R31

Karta katalogowa JAZZ OPLC JZ20-R31 Karta katalogowa JAZZ OPLC JZ20-R31 W tym dokumencie znajduje się specyfikacja Unitronics Jazz Micro-OPLC JZ20-R31. Dodatkowe informacje znajdują się na płycie instalacyjnej CD Unitronics i w bibliotece

Bardziej szczegółowo

Karta dźwiękowa USB z nagrywaniem i analogowymi oraz cyfrowymi we/wy

Karta dźwiękowa USB z nagrywaniem i analogowymi oraz cyfrowymi we/wy Karta P R dźwiękowa O J E K USB T Yz nagrywaniem i analogowymi oraz cyfrowymi we/wy Karta dźwiękowa USB z nagrywaniem i analogowymi oraz cyfrowymi we/wy AVT 509 W interfejs USB wyposaøone s¹ wszystkie

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI PROGRAMU DO ODCZYTU PAMIĘCI FISKALNEJ DATECS OPF

INSTRUKCJA OBSŁUGI PROGRAMU DO ODCZYTU PAMIĘCI FISKALNEJ DATECS OPF INSTRUKCJA OBSŁUGI PROGRAMU DO ODCZYTU PAMIĘCI FISKALNEJ DATECS OPF Wersja: 0.0.0.3 Październik 2012 SPIS TREŚCI: 1. Wstęp 2. Wymagania sprzętowe, instalacja. 3. Opis współpracy komputera z kasą 4. Konfiguracja

Bardziej szczegółowo