w w w. e p . c o m . p l
ELEKTRONIKA PRAKTYCZNA •
NA CD M.IN.: KATALOG FIRMY NATIONAL SEMICONDUCTOR, NAJNOWSZE WERSJE BASCOMA
Miêdzynarodowy magazyn elektroników konstruktorów
3/2003
●
marzec
●
15 zł 50 gr
(w tym 7% VAT)
3/2003 • marzec
▲ Dekoder dźwięku dookólnego SRS Dźwięk dookólny nieodłącznie kojarzy się nam z zespołem wielu głośników rozstawionych w pomieszczeniu zazwyczaj w wymyślny sposób. O tym, że dźwięk sprawiający wrażenie dookólnego można uzyskać w warunkach domowych na zwykłym, dwuczęś− ciowym zestawie głośnikowym przekonają się Czytelnicy artykułu ze str. 27.
▲ „Inteligentne” tylne światło do roweru z sygnalizacją stopu
▲
Interesujący i bardzo praktyczny projekt naszego Czytelnika przedsta− wiamy na str. 93.
Uniwersalny nadajnik RC5/SIRC 8−pinowe mikrokontrolery potrafią bardzo wiele! Niedowiarków zapraszamy na str. 37.
Lampowy analizator widma Projekt dla tych, którzy kochają użytecz− ne starocie. Str. 41.
▲
Autorouter Specctra ▲
▲
Ciekawostki z niedostępnego dla większości elektroników świata przedstawiamy na str. 68.
VFM − wirtualny miernik częstotliwości Nasi wschodni sąsiedzi też się znają na elektro− nice − zapraszamy na str. 33!
AVT Nixie Clock
Prosty, lecz praktyczny układ w dobie rosnącej popularności USB. Str. 75.
▲
▲ Automatyczny włącznik USB
Mimo, że to tylko zegar, wzbudził spore zaintereso− wanie wśród Czytelników. Nie jesteśmy pewni, czy z powodu zastosowanych wyświetlaczy, czy sposobu sterowania... Str. 46.
JuPIC − programator mikrokontrolerów PIC współpracujący z programem MPLAB ▲
▲
Programator, którego budowę przedstawiamy na str. 21, odbiega od tanich i przez to popular− nych na rynku programa− torów dla mikrokontrole− rów PIC − współpracuje bowiem z MPLAB−em!
Protel DXP − przełom na rynku narzędzi EDA dla elektroników Możliwości nowego Protela przed− stawiamy w artykule na str. 51.
6
Elektronika Praktyczna 3/2003
Nr 3 (123) marzec 2003
Projekty Yampp−7 − kieszonkowy odtwarzacz MP3, część 1 ............. 14 JuPIC − programator mikrokontrolerów PIC współpracujący z programem MPLAB ............................................................... 21 Dekoder dźwięku dookólnego SRS, część 1 ......................... 27 VFM − wirtualny miernik częstotliwości ................................... 33
▲ ADAM−6000 − najnowsza seria zdalnych modułów kontrolno−pomiarowych firmy Advantech Pomysłom firmy Advantech nie ma końca: w artykule ze str. 133 przedstawiamy moduły z nowej rodziny ADAM.
Uniwersalny nadajnik RC5/SIRC, część 1 .............................. 37 Lampowy analizator widma ................................................... 41 AVT Nixie Clock − VHDL i lampy, część 2 .............................. 46
Miniprojekty Automatyczny włącznik USB ................................................... 75
Programy Protel DXP − przełom na rynku narzędzi EDA dla elektroników, część 1 ........................................................ 51 Autorouter Specctra, część 2 ................................................. 68
Kurs Podstawy projektowania systemów mikroprocesorowych, część 1 ................................................ 83 Język C dla mikrokontrolerów 8051, część 10 ...................... 86 CRC doda Ci pewności, część 3 ........................................... 89
Automatyka ADAM−6000 − najnowsza seria zdalnych modułów kontrolno− pomiarowych firmy Advantech ........................................... 133 Nowoczesne zasilacze do układów automatyki ............... 137 Wonderware InTouch krok po kroku − kurs obsługi, część 3 ....................................................................... 140
Mikrokontrolery Nitron ▲ HC08 i tylko 8 wyprowadzeń? Tak! Motorola doceniła także rynek niewielkich aplikacji, o czym można się przekonać na str. 62.
Podzespoły Mikrokontrolery Nitron .............................................................. 62
Sprzęt UprogHS 84 − nowa generacja programatorów Uprog ...... 58
Projekty Czytelników
UprogHS 84 − nowa genera− cja programatorów Uprog Nowy programator z szybko powiększającej się rodziny UprogHS przedstawiamy na str. 58.
„Inteligentne” tylne światło do roweru z sygnalizacją stopu ................................................................. 93
Z kraju i ze świata ........................................................ 119 Biblioteka EP ................................................................. 129
▲
Kramik+Rynek ................................................................ 97 Listy ................................................................................. 103 Ekspresowy Informator Elektroniczny ..................... 115 Wykaz reklamodawców ............................................ 118
Elektronika Praktyczna 3/2003
7
Yampp−7 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 Compact Flash lub MultiMedia Card, co powoduje, øe jest to urz¹dzenie na wskroú nowoczesne. Rekomendacje: prezentowany w artykule odtwarzacz to kolejny krok w miniaturyzacji odtwarzaczy MP3, wiÍc polecamy jego opis przede wszystkim fanom empetrÛjkowych nagraÒ, ktÛrzy nie lubi¹ siÍ rozstawaÊ ze swoimi nagraniami.
14
Odtwarzacz ma wymiary jedynie 80 x 56 x 25 mm i jako ürÛd³o plikÛw MP3 wykorzystuje kartÍ pamiÍci Compact Flash lub MultiMedia Card. W†kaødym megabajcie pojemnoúci karty moøna ìupakowaÊî minutÍ muzyki (przy strumieniu danych 128 kbd). Oznacza to, øe na karcie o†pojemnoúci 64 MB moøemy zmieúciÊ oko³o godziny muzyki. Odtwarzacz obs³uguje praktycznie wszystkie dostÍpne na rynku karty, pocz¹wszy od ma³ych - 16-megabajtowych, a†skoÒczywszy na najwiÍkszych obecnie dostÍpnych kartach CF o†pojemnoúci 512 MB, na ktÛrych moøna zapisaÊ 8†godzin muzyki skompresowanej w†dobrej jakoúci! Do sterowania odtwarzaczem s³uø¹ cztery przyciski, a†informacje wyúwietlane s¹ na graficznym wyúwietlaczu LCD. Wyjúcie audio zastosowanego dekodera MP3 VS1001 jest przystosowane do bezpoúredniego sterowania s³uchawkami. Ca³oúÊ jest zasilana z†wbudowanego akumulatora litowo-jonowego (lub Ni-Mh) o†napiÍciu 3,6 V, ktÛry pozwala (przy pojemnoúci wynosz¹cej oko³o 1000 mAh) na ponad 15 godzin ci¹g³ego s³uchania muzyki. Do zarz¹dzania zawartoúci¹ karty pa-
miÍci Flash s³uøy interfejs USB umoøliwiaj¹cy ³atw¹ i†szybk¹ wymianÍ zgromadzonych utworÛw oraz ³atwe i†szybkie uaktualnianie oprogramowania bez koniecznoúci otwierania obudowy odtwarzacza. Jednoczeúnie, poprzez z³¹cze USB odbywa siÍ ³adowanie wbudowanego w†odtwarzacz akumulatora wystarczy pod³¹czyÊ kabel USB i†po oko³o 2†godzinach akumulator zostanie na³adowany. Ca³oúÊ przeznaczona jest do zamkniÍcia w†obudowie typu ìma³a mydelniczkaî, produkowanej przez w³osk¹ firmÍ Teko S.p.A, o†oznaczeniu katalogowym 10007.9 (http://www.teko.it/ENCLOSURES/ soap1.html), dostÍpnej miÍdzy innymi w†Elfie.
Moøliwoúci i†obs³uga yamppa-7 Yamppa-7 moøemy wykonaÊ w†dwÛch wersjach: wyposaøonej w†wyúwietlacz LCD lub w†wersji bez wyúwietlacza. Do uproszczonej wersji zawsze moøemy do³oøyÊ wyúwietlacz LCD, co wymaga jedynie wykonania odpowiedniego otworu w†obudowie, przymocowania wyúwietlacza, pod³¹czenia go do odpowiedniego z³¹cza na p³ytce drukowanej yamppa
Elektronika Praktyczna 3/2003
Yampp−7
Rys. 1. Schemat blokowy odtwarzacza
oraz wymiany oprogramowania systemowego. Podczas odtwarzania wyúwietlane s¹ informacje o†bieø¹cej playliúcie, nazwie i†wykonawcy utworu, linijka ukazuj¹ca postÍp w†odtwarzaniu danego utworu, ogÛlny i†aktualny czas trwania utworu (lub czas do jego zakoÒczenia), bieø¹cy numer oraz liczba utworÛw w†aktualnej playliúcie, a takøe status odtwarzacza. W†linii statusu wyúwietlane s¹ ikony informuj¹ce o†aktualnych ustawieniach trybu Random, Repeat, Loudness, o†blokadzie klawiszy, stanie akumulatora oraz o†ustawionym poziomie g³oúnoúci. Liczba dostÍpnych funkcji steruj¹cych prac¹ tego odtwarzacza jest zbliøona do dostÍpnych u†jego wiÍkszego ìbrataî, czyli yamppa-3/usb. Ze wzglÍdu na to, øe sterowanie prac¹ odtwarzacza odbywa siÍ jedynie za pomoc¹ czterech przyciskÛw, naleøa³o im przypisaÊ po kilka rÛønych funkcji, w†zaleønoúci od stanu urz¹dzenia, jak rÛwnieø od tego czy dany klawisz zostanie przyciúniÍty na krÛtko, czy przytrzymany d³uøej. W†oprogramowaniu dla wersji bez wyúwietlacza LCD zdefiniowano nieco odmienny uk³ad funkcji na poszczegÛlnych klawiszach, co w†tym przypadku u³atwia jego obs³ugÍ. WyrÛøniamy trzy tryby, w†ktÛrych moøe siÍ znajdowaÊ odtwarzacz. Tryb Stop - czyli gotowoúci, tryb Play - czyli podczas odtwarzania utworu oraz tryb obs³ugi Menu, ktÛry wystÍpuje jedynie w†odtwarzaczach wyposaøonych w†wyúwietlacz LCD. DostÍpne w†nim funkcje i†sposÛb poruszania siÍ po menu s¹ jednakowe, niezaleønie od tego czy
Elektronika Praktyczna 3/2003
menu wywo³ano podczas odtwarzania utworu, czy teø gdy odtwarzanie jest zatrzymane. Podczas odtwarzania dwa gÛrne przyciski znajduj¹ce siÍ w†s¹siedztwie gniazdka s³uchawkowego s³uø¹ do zmiany utworu na poprzedni lub nastÍpny, a†w†przypadku ich d³uøszego przytrzymania - do regulacji poziomu g³oúnoúci odtwarzania. W†dalszej czÍúci opisu bÍd¹ one nazwane klawiszami UpDown, przy czym Down znajduje siÍ bliøej gniazdka s³uchawkowego. Dodatkowo, jednoczesne przyciúniÍcie klawiszy Up i†Down na czas oko³o†1†sekundy powoduje zablokowanie lub odblokowanie klawiatury, co zapobiega przypadkowym zmianom ustawieÒ w†przypadku noszenia odtwarzacza w†kieszeni. Z†boku odtwarzacza, poniøej gniazda USB, znajduje siÍ klawisz Play, ktÛry przyciúniÍty na krÛtko podczas odtwarzania w³¹cza i†wy³¹cza funkcjÍ Pause, a†przyciúniÍty d³uøej s³uøy do szybkiego przewijania utworu do przodu. Poniøej klawisza Play mamy ostatni z†dostÍpnych przyciskÛw, czyli przycisk Stop, ktÛry po d³uøszym przyciúniÍciu pozwala na uaktywnienie trybu Menu w†odtwarzaczach wyposaøonych w†wyúwietlacz LCD. W†wersji bez LCD d³uøsze przyciúniÍcie klawisza Stop podczas odtwarzania utworu powoduje przejúcie do nastÍpnej playlisty. Dla u³atwienia orientacji, zmianie playlisty towarzyszy s³yszalny w†s³uchawkach krÛtki düwiÍk, ktÛry w†przypadku przejúcia na playlistÍ Total - zawieraj¹c¹ wszystkie utwory zawarte na karcie - ma inn¹ wysokoúÊ niø w†pozosta³ych przypadkach.
W†trybie Stop krÛtkie przyciúniÍcie klawisza Up s³uøy do wyboru funkcji Loudness, a†klawisza Down do w³¹czenia/wy³¹czenia trybu Random. D³uøsze przyciúniÍcie klawisza Up umoøliwia w³¹czenie lub wy³¹czenie automatycznego blokowania klawiatury po okreúlonym czasie bezczynnoúci klawiszy podczas odtwarzania. Jeúli w odtwarzaczu jest wyúwietlacz LCD, to aktualny stan funkcji tych klawiszy jest wyúwietlany w†linii statusu, a†w†przypadku braku wyúwietlacza potwierdzany krÛtkim düwiÍkiem, przy czym wyøszy düwiÍk oznacza za³¹czenie danej funkcji. W†odtwarzaczu posiadaj¹cym LCD, d³uøsze naciúniÍcie klawisza Down uruchamia procedurÍ regulacji kontrastu wyúwietlacza. Regulujemy go za pomoc¹ klawiszy UpDown i†zapamiÍtujemy, naciskaj¹c klawisz Stop. Klawisz Play naciúniÍty na krÛtko w†trybie gotowoúci uruchamia odtwarzanie, a†naciúniÍty d³uøej w†wersji wyposaøonej w†LCD powoduje wy³¹czenie zasilania odtwarzacza, a†w†wersji bez wyúwietlacza zmianÍ trybu Repeat, ktÛry ma cztery programy dzia³ania: odtworzenie pojedynczej playlisty, odtwarzanie kolejno wszystkich playlist, powtarzanie ìw†kÛ³koî jednej playlisty lub powtarzanie jednego utworu. Numer programu sygnalizowany jest na wyúwietlaczu odpowiedni¹ ikonk¹, a†w†wersji bez wyúwietlacza potwierdzany seri¹ od 1†do 4†düwiÍkÛw. Ostatecznie, d³uøsze przytrzymanie klawisza Stop wy³¹cza odtwarzacz bez LCD lub wywo³uje menu w†wersji z†wyúwietlaczem. Po uaktywnieniu trybu Menu dostajemy spis wszystkich dostÍpnych funkcji. Klawiszami Up-Down wybieramy interesuj¹c¹ nas funkcjÍ i†potwierdzamy klawiszem Play lub wychodzimy z†menu bez dokonywania zmian, naciskaj¹c klawisz Stop. Jeúli zatwierdzimy dan¹ funkcjÍ klawiszem Play, to dopÛki na
15
Yampp−7 wyúwietlaczu widoczne jest menu niu w komputerze PC dostarczo- na zasilanie ca³oúci napiÍciem nych przez producenta - firmÍ 3,6†V, nie jest wymagany øaden lub nie jest widoczny pasek postÍpu FTDI - sterownikÛw, uk³ad konwerter poziomÛw dla sygnaodtwarzania moøemy spowodowaÊ FT8U245 jest widziany jako szyb- ³Ûw podawanych do uk³adu IC2. kolejn¹ zmianÍ wybranej funkcji, ki wirtualny port komunikacyjny Konieczne jest natomiast zastosoczyli np. trzykrotne zatwierdzenie COM. Takie podejúcie wymaga wanie niskonapiÍciowej wersji przejúcia do nastÍpnej playlisty. uøycia dedykowanej aplikacji uru- mikrokontrolera IC1 oznaczonej Ca³a ta ìklawiszologiaî wydaje chomionej na komputerze i†s³uø¹- sufiksem ìLî. NapiÍcie wymagasiÍ byÊ doúÊ skomplikowana, lecz cej do przygotowania i†transmisji ne do ³adowania akumulatora jest po krÛtkim okresie uøytkowania poprzez port COM wszelkich da- pobierane ze z³¹cza USB, a†proces yamppa okazuje siÍ, øe wcale tak ³adowania ogniwa Li-Ion jest nie jest, a†liczba dostÍpnych USB dostępne jak nigdy dotychczas kontrolowany przez specjafunkcji rekompensuje pocz¹tlizowan¹ ³adowark͆IC5 kowe k³opoty. Oczywiúcie, MAX1811. Jeúli zamiast akumulazastosowanie wyúwietlacza LCD nych maj¹cych trafiÊ do karty znacznie u³atwia obs³ugÍ, ponie- pamiÍci odtwarzacza. RolÍ tej ap- tora Li-Ion zastosujemy trzy akulikacji pe³ni yamppLink opisany mulatorki Ni-Mh, to rolÍ ³adowarwaø wiÍkszoúÊ funkcji jest dostÍpdok³adniej w†artykule poúwiÍco- ki pe³ni uk³ad z³oøony z†diody D1 nych z†poziomu menu. Dla u³atnym yamppowi-3/USB (EP1/2003). i†rezystorÛw R2 i†R3. Wyjaúnienia wienia obs³ugi odtwarzacza pomoøe wymagaÊ rola rezystocz¹tkuj¹cym uøytkownikom, rÛw†R11, R13 i†R16. Rezystor R11 w†tab. 1 i†2 podano zestawienie Budowa i†dzia³anie umoøliwia podwÛjne wykorzystafunkcji poszczegÛlnych klawiszy. yamppa-7 Podobnie jak jego wiÍkszy brat, Schemat blokowy odtwarzacza nie linii portu PD0 mikrokontroyampp-7 obs³uguje, stworzony spepokazano na rys. 1, a†schemat lera, jako wejúcia dla sygna³u cjalnie dla potrzeb yamppÛw, nowy elektryczny na rys. 2. ìSercemî DREQ (ø¹danie danych) z†uk³adu format dysku nazwany YADL uk³adu jest mikrokontroler jedno- VS1001 oraz jako wyjúcia sygna³u D/C dla wyúwietlacza LCD. DzielYampp Advanced Disk Layout, ktÛuk³adowy IC1 - ATmega161L firrego zalety przedstawi³em w†artykumy Atmel. Jest on odpowiedzial- nik napiÍcia z³oøony z†rezystorÛw le poúwiÍconym yamppowi-3/usb. ny za odczyt i†zapis danych na R13 i†R16 s³uøy do kontroli stanu kartÍ pamiÍci Flash, przekazywa- roz³adowania akumulatora. Podaje nie strumienia MPEG do dekodera on napiÍcie proporcjonalne do Interfejs USB napiÍcia zasilania na jedno IC2 - VS1001, za obs³ugÍ klawiDo przesy³ania plikÛw MP3 do szy, wyúwietlacza LCD oraz inter- z†wejúÊ komparatora analogowego pamiÍci yamppa-7 uøyto coraz fejsu USB w†postaci uk³adu IC6, zawartego wewn¹trz mikrokontrobardziej popularnego interfejsu wraz z†dekoderem adresowym IC4 lera IC1, ktÛre porÛwnywane jest szeregowego USB. W†przypadku - 74HC00D. Interfejs USB jest z†wewnÍtrznym napiÍciem odnieyamppa-7 pozwala on na przesysienia. Podczas obs³ugi uk³adu widziany przez procesor jako ko³anie danych z†prÍdkoúci¹ 250...300 kilobajtÛw na sekundÍ. mÛrka zewnÍtrznej pamiÍci RAM dekodera IC2 to samo wyprowao†adresie 8000h. Ca³oúÊ zasilana dzenie mikrokontrolera s³uøy jako Jest ona ograniczona szybkoúci¹ jest napiÍciem 3,6†V otrzymywa- wyjúcie sygna³u Chip Select dla dzia³ania mikrokontrolera i†czasem zapisu do pamiÍci Flash. nym z†akumulatorka pod³¹czone- uk³adu IC2, a†obecnoúÊ rezystogo do zaciskÛw BAT. Ze wzglÍdu rÛw R13 i†R16 nie ma wp³ywu Dodatkowo, dziÍki moøliwoúci samoprogramowania siÍ procesora ATmega161, moøliwa jest wymiaTab. 1. Funkcje przycisków w odtwarzaczu bez wyświetlacza LCD na g³Ûwnego oprogramowania odTryb Czas SW1 SW2 SW3 SW4 twarzacza poprzez ³¹cze USB bez pracy przyciśnięcia koniecznoúci otwierania obudowy PLAY Krótko Play/Pauza Stop Następny Poprzedni utwór utwór i†pod³¹czania interfejsu programuj¹cego. Do tego celu potrzebny Długo Szybkie Następna Głośniej Ciszej przewijanie Playlista jest jedynie krÛtki program bootSTOP Krótko Play −− Loudness Random loadera umieszczony pod koniec Długo Tryb Repeat Wyłączenie Autoblokada −− dostÍpnej pamiÍci programu proyamppa klaw. cesora (jednorazowo podczas uruchamiania yamppa). Zastosowany w†roli interfejsuTab. 2. Funkcje przycisków w odtwarzaczu z wyświetlaczem LCD konwertera uk³ad FT8U245BM jest Tryb Czas SW1 SW2 SW3 SW4 kompletnym i†prostym w†uøyciu pracy przyciśnięcia sprzÍgiem pomiÍdzy magistral¹ PLAY Krótko Play/Pauza Stop Następny Poprzedni mikrokontrolera a z³¹czem USB utwór utwór i†posiada wewn¹trz wszystkie bloDługo Szybkie Menu Głośniej Ciszej ki potrzebne do nawi¹zania, synprzewijanie chronizacji i†kontroli komunikacji STOP Krótko Play −− Loudness * Random * z†komputerem PC oraz dwa odDługo Wyłączenie Menu Autoblokada Kontrast dzielne bufory FIFO na wysy³ane yamppa klaw.* LCD * i†odbierane dane. Po zainstalowa* − dostępne również z poziomu Menu
16
Elektronika Praktyczna 3/2003
Yampp−7
Rys. 2. Schemat elektryczny yamppa−7
Elektronika Praktyczna 3/2003
17
Yampp−7 Tab. 3. Zestawienie typów wyświetlaczy oraz modeli telefonów, które można wykorzystać przy budowie yamppa−7 Typ LCD
Modele telefonów
Liczba wyprowadzeń
Komentarz
LPH−7366 lub LPH−7666
N5110, N5150, N6110, N6150
9
Wyprowadzenia na gumce przewo− dzącej, posiada plastikową matówkę do podświetlania diodami LED
LPH−7677 lub LPH−7690 LPH−7779
N3210, N6210
8
N3310, N3330, N5510
8
ECM−A−1091
N8210, N8250
9
na jego poziomy. Z³¹cze J2 s³uøy do pod³¹czenia graficznego wyúwietlacza LCD stosowanego w†wiÍkszoúci telefonÛw komÛrkowych firmy Nokia. SposÛb pod³¹czenia podany bÍdzie w†dalszej czÍúci artyku³u. Jednoczeúnie z³¹cze J2 s³uøy do pod³¹czenia kabla wymaganego do zaprogramowania mikrokontrolera programem bootloadera.
Karty pamiÍci Karta pamiÍciowa Compact Flash w³oøona do z³¹cza J1 komunikuje siÍ z†mikrokontrolerem w†trybie bardzo podobnym jak w†interfejsie ATA stosowanym miÍdzy innymi w†twardych dyskach, lecz moøe pracowaÊ w†trybie 8-bitowym, co znacznie upraszcza jej pod³¹czenie do mikrokontrolera. Z†tego powodu rejestry karty mog¹ byÊ widziane przez procesor jako fragment zewnÍtrznej pamiÍci RAM adresowanej sygna³ami linii A8...A11 i†uaktywnianej niskim poziomem na linii A15 - czyli o†adresach pomiÍdzy 1000h a†1F00h. Jeúli zamiast karty CF jest zastosowana karta MultiMedia Card, to zamiast z³¹cza J1 wykorzystywane jest z³¹cze X3, a†karta MMC komunikuje siÍ z†procesorem, wykorzystuj¹c magistralÍ SPI oraz sygna³ A14 bÍd¹cy sygna³em zezwolenia na komunikacjÍ dla pamiÍci MMC.
Wy³¹cznik zasilania W†yamppie-7 nie zastosowano w³¹cznika w†jego klasycznej postaci. Wykorzystano natomiast moøliwoúÊ przejúcia w†stan uúpienia wiÍkszoúci elementÛw wchodz¹cych w†sk³ad yamppa - czyli de-
Wyprowadzenia na złoconych stykach. Najlepszy wybór Jak LPH−7366
kodera VS1001, interfejsu USB, karty pamiÍci i†wreszcie g³Ûwnego mikrokontrolera ATmega161L. W†stanie uúpienia yampp pobiera z†akumulatora pr¹d o†natÍøeniu oko³o 1,5 mA, a†po wyjÍciu karty pamiÍci - kilkadziesi¹t mikroamperÛw. Umoøliwia to czuwanie ìwy³¹czonegoî yamppa przez okres oko³o miesi¹ca bez wyjmowania karty pamiÍci. Przy d³uøszych przerwach w†uøytkowaniu odtwarzacza zalecane jest wyjÍcie karty. Przejúcie z†trybu uúpienia w†tryb pracy nastÍpuje po naciúniÍciu i†dwusekundowym przytrzymaniu klawisza Play, co powoduje podanie na nÛøkÍ ICP procesora poziomu niskiego oraz wygenerowanie przerwania ìwybudzaj¹cegoî procesor z†trybu sleep. Wy³¹czenie odtwarzacza, czyli przejúcie w†stan uúpienia nastÍpuje automatycznie po 2†minutach bezczynnoúci, czyli pozostawania w†stanie Stop lub - w†zaleønoúci od wersji programu - po d³uøszym naciúniÍciu klawisza Play lub Stop w†czasie, gdy odtwarzacz pozostaje w†trybie gotowoúci. Jeúli podczas pracy odtwarzacza napiÍcie na akumulatorze osi¹gnie minimaln¹ dopuszczaln¹†wartoúÊ (oko³o 3†V), zostanie to zasygnalizowane krÛtkim düwiÍkiem, wyúwietleniem ikonki przekreúlonej baterii, a†po up³ywie 10 minut odtwarzacz sam siÍ wy³¹czy. Podczas tych 10 minut bÍdzie s³yszalny co minutÍ krÛtki düwiÍk informuj¹cy o†krytycznym stanie akumulatora zasilaj¹cego. PrÛba ponownego za³¹czenia odtwarzacza z†roz³adowanym akumulatorem koÒczy siÍ komunikatem Low Battery!, potrÛjnym düwiÍkiem
Tab. 4. Rozkład wyprowadzeń wyświetlaczy Numer styku: Dla 8−stykowych: Dla 9−stykowych:
18
1
2
3
4
5
6
7
8
9
VDD VDD
SCLK SCLK
SDIN SDIN
D/C D/C
SCE SCE
GND OSC
VOUT GND
RES VOUT
− RES
WYKAZ ELEMENTÓW Rezystory (SMD rozmiar 0805) R1, R6: 10kΩ R2, R3: 100Ω* R4: 1MΩ R5, R11: 4,7kΩ R7: 1,5kΩ R10: 2,2kΩ R12: 470Ω R13: 33kΩ R14, R15: 27Ω R16: 51kΩ Kondensatory C1, C6, C7: 100nF/C0805 C9...C11: 100nF/C0805 C2...C5: 33pF/C0805 C8: 10µF/16V ELNA_RV2_4 C14: 10µF/16V tantal C6032 C15: 1µF/16V tantal C3528 C12, C13: 100µF/10V ELNA_RV2_63 Półprzewodniki D1: BAS32 SOD80* T2: BC817 SOT23 IC1: ATmega161L TQFP44 IC2: VS1001K SOIC−28 IC4: 74HC00D SO14 IC5: MAX1811 SO8** IC6: FT8U245BM QFP32 Różne Q1: 4,000MHz HC49U−V niskoprofilowy Q2: 12,288MHz HC49U−V niskoprofilowy Q3: 6,00MHz 3−końcówkowy rezonator ceramiczny J1: gniazdo karty Compact Flash J2: szpilkowe, kątowe 2*5pin, rozstaw 2mm X1: gniazdo mini−jack 3,5mm X2: złącze USB−B (787780) X3: gniazdo karty MultiMedia Card SW1...SW4: kątowy przycisk ALPS typu SKHHLQ * Montować w przypadku użycia akumulatora Ni−Mh ** Montować w przypadku użycia akumulatora Li−Ion
oraz natychmiastowym wy³¹czeniem. Ostatecznie, jeúli pozostawimy odtwarzacz w†stanie pauzy na 15 minut, to teø nast¹pi jego automatyczne wy³¹czenie.
Akumulator Do zasilania yamppa-7 moøna wykorzystaÊ kilka typÛw akumulatorÛw ³atwo dostÍpnych, poniewaø s¹ one wykorzystywane do zasilania telefonÛw komÛrkowych.
Elektronika Praktyczna 3/2003
Yampp−7 Najlepiej jest uøyÊ akumulatora litowo-jonowego o†pojemnoúci w†zakresie od 600 do 1200 mAh, stosowanych w†telefonach Nokia 3310 (950...1200 mAh), Motorola V3688 (600 mAh) lub innych Motorolach z†serii L, P†lub V. Waøne jest, aby gruboúÊ zastosowanego akumulatorka nie przekracza³a 8,5 mm, poniewaø powstan¹ k³opoty ze zmieszczeniem go w†obudowie yamppa. Jeúli nie znajdziemy odpowiedniego akumulatora typu Li-Ion, to moøemy zastosowaÊ zestaw trzech akumulatorkÛw Ni-Mh o†wielkoúci baterii R3. Naleøy pamiÍtaÊ, øe stosuj¹c akumulator Li-Ion, musimy zamontowaÊ uk³ad IC5 i†nie montowaÊ elementÛw D1, R2, R3. Natomiast przy zastosowaniu akumulatorkÛw Ni-Mh nie montujemy uk³adu IC5, a†wlutowujemy D1, R2 i†R3.
Wyúwietlacz LCD Zestawienie typÛw wyúwietlaczy oraz modeli telefonÛw, ktÛre moøna wykorzystaÊ przy budowie
Elektronika Praktyczna 3/2003
yamppa-7 podano w†tab. 3. Jeúli chcemy, øeby wyúwietlacz by³ widoczny w†ciemnoúci, moøemy go podúwietliÊ. Dwa moøliwe do wykonania sposoby podúwietlenia opiszÍ pÛüniej, a†teraz zajmÍ siÍ pod³¹czeniem samego wyúwietlacza. 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 w†postaci gumy przewodz¹cej poci¹ga za sob¹ koniecznoúÊ wykonania p³ytki drukowanej z†polami kontaktowymi 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. NastÍpnie przewody prowadz¹ce od wyúwietlacza pod³¹czamy kolejno do pierwszych 8†stykÛw z³¹cza J2. Jeúli stosujemy wyúwietlacz o†9†wyprowadzeniach, to styk numer 6†(OSC) wyúwietlacza naleøy po³¹czyÊ ze stykiem numer 1†(VDD), a†pozosta³e styki pod³¹czyÊ tak samo jak przy zastosowaniu wyúwietlacza 8-wyprowadzeniowego. Rozk³ad wyprowadzeÒ poszczegÛlnych wyúwietlaczy podano w†tab. 4 przy za³oøeniu, øe patrz¹c na wyúwietlacz od strony wyprowadzeÒ i†maj¹c†wyprowadzenia u†gÛry wyúwietlacza, styk numer 1†znajduje siÍ po lewej stronie z³¹cza. Romuald Bia³y http://www.yamppsoft.prv.pl Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/marzec03.htm oraz na p³ycie CD-EP3/2003B w katalogu PCB.
19
P
R
O J
E
K JuPIC T Y
JuPIC Programator mikrokontrolerów PIC współpracujący z programem MPLAB AVT−5100
Konstruktorzy s¹ bez w¹tpienia ludümi rÛwnie leniwymi, jak wszyscy inni. St¹d pomys³ tworzenia dla nich, a zw³aszcza dla programistÛw, zintegrowanych narzÍdzi projektowych. W†artykule przedstawiamy projekt programatora mikrokontrolerÛw PIC, ktÛry doskonale ìwtapiaî siÍ w†úrodowisko MPLAB, dziÍki czemu przygotowanie oprogramowania mikrokontrolerÛw moøna zrealizowaÊ za pomoc¹ jednego tylko programu. Rekomendacje: doskona³e narzÍdzie przystosowane do bezpoúredniej wspÛ³pracy ze úrodowiskiem MPLAB. Idealne rozwi¹zanie dla projektantÛw†korzystaj¹cych z†mikrokontrolerÛw PIC firmy Microchip.
Elektronika Praktyczna 3/2003
Od kilku lat jesteúmy úwiadkami ogromnego postÍpu w†dziedzinie elektroniki cyfrowej i†niezast¹pionych w†niej mikroprocesorÛw i†mikrokontrolerÛw. StopieÒ z³oøonoúci tych uk³adÛw†wzrasta w†szybkim tempie, powoduj¹c koniecznoúÊ przyswajania coraz to nowej wiedzy. Najszybszym sposobem na osi¹gniÍcie tego celu jest wykorzystanie programÛw interaktywnych, poúrednicz¹cych miÍdzy uøytkownikiem a†urz¹dzeniem. Kaøda firma chc¹ca wejúÊ na rynek ze swoimi mikrokontrolerami udostÍpnia zazwyczaj specjalne oprogramowanie, ktÛre umoøliwia korzystanie z†oferowanych uk³adÛw. Obserwuj¹c rynek mikrokontrolerÛw jednouk³adowych, moøna zauwaøyÊ, iø coraz wiÍksza liczba producentÛw udostÍpnia darmowe oprogramowanie, serwis informacyjny oraz dokumentacjÍ techniczn¹, chc¹c przyci¹gn¹Ê do swoich produktÛw jak najwiÍksz¹ grupÍ uøytkownikÛw. Jedn¹ z†firm, ktÛra wysz³a naprzeciw tym wymaganiom, jest firma Microchip produkuj¹ca mikrokontrolery rodziny PICmicro.
Przedstawiony w†niniejszym artykule programator JuPIC powsta³ jako czÍúÊ pracy dyplomowej wykonywanej na Politechnice ål¹skiej i†jest wynikiem wielotygodniowej pracy nad protoko³em komunikacyjnym. Programator jest przeznaczony do programowania mikrokontrolerÛw serii ìFî z†pamiÍci¹ typu Flash: PIC16F627, PIC16F628, PIC16F83, PIC16F84, PIC16F84A, PIC16F870, PIC16F871, PIC16F872, PIC16F873, PIC16F874, PIC16F876, PIC16F877, a†takøe PIC12F675 i†PIC16F629. WspÛ³pracuje on ze zintegrowanym úrodowiskiem uruchomieniowym MPLAB IDE firmy Microchip i obs³uguje protokÛ³ komunikacyjny zgodny z†protoko³em oryginalnego programatora PICSTART Plus (opracowanego przez firmÍ Microchip). Tym samym moøliwe jest wykorzystanie potÍønych moøliwoúci jakie daje oprogramowanie MPLAB pracuj¹ce w†úrodowisku graficznym Windows. Firma Microchip rozpowszechnia ten program jako freeware i†moøna go pobraÊ ze strony internetowej http://www.micro-
21
JuPIC chip.com/1010/pline/tools/picmicro/devenv/mplabi/index.htm. Najnowsza wersja oprogramowania nosi oznaczenie 6.10. MPLAB i†pozwala na zapisywanie, monitorowanie i†optymalizacjÍ aplikacji PICmicro. Zawiera wbudowany edytor tekstu, symulator, kompilator, obs³ugÍ projektÛw†oraz programator. Program z†wbudowanymi wieloma funkcjami pozwala m.in. na: - tworzenie i†edycjÍ plikÛw ürÛd³owych, - grupowanie plikÛw w†projekty, - wyszukiwanie b³ÍdÛw kodu, - asemblacjÍ, kompilacjÍ i†linkowanie kodu ürÛd³owego, - wyznaczanie zaleønoúci czasowych, - podgl¹danie zmiennych w†czasie pracy programu, - symulacjÍ dzia³ania programu, - komunikacjÍ z†urz¹dzeniem PICSTART Plus (JuPIC), - rozwi¹zywanie problemÛw z†wykorzystaniem podrÍcznej pomocy, - debugowanie za pomoc¹ protoko³u ICD. Programator JuPIC zbudowany zosta³ w†oparciu o†mikrokontroler PIC16F628, ktÛry obecnie zdobywa coraz wiÍksz¹ popularnoúÊ ze wzglÍdu na swoj¹ funkcjonalnoúÊ. Programator w†po³¹czeniu z†programem MPLAB tworzy niezwykle sprawne i†profesjonalne narzÍdzie programisty. FunkcjonalnoúÊ tego zestawu powoduje, øe moøe byÊ przeznaczony do ma³ych i†úrednich zastosowaÒ, a†polecany jest zarÛwno dla uøytkownikÛw pocz¹tkuj¹cych, jak i†zaawansowanych.
Opis uk³adu Schemat programatora przedstawiono na rys. 1. Sk³ada siÍ on ze: stabilizatora +5V, translatora poziomÛw MAX232, klucza napiÍciowego i†mikrokontrolera PIC16F628, ktÛry jest taktowany sygna³em zegarowym o czÍstotliwoúci ustalonej przez rezonator kwarcowy 11059200Hz. Praca mikrokontrolera polega na obs³udze protoko³u komunikacyjnego pomiÍdzy programatorem a†programem MPLAB oraz na wytworzeniu odpowiedniego przebiegu programuj¹cego na wyjúciach programuj¹cych (sygna³y DATA, CLOCK, MCLR, LVP). ProtokÛ³ programuj¹cy nie jest udo-
22
Rys. 1. Schemat elektryczny układu
Elektronika Praktyczna 3/2003
JuPIC
Rys. 2. Sposób dołączenia mikrokontrolera do złącza ICSP
stÍpniany w†dokumentacji technicznej firmy Microchip, a†jego opis wykracza poza ramy niniejszego artyku³u, dlatego nie zostanie tu przedstawiony. Do zasilania programatora zalecane jest zastosowanie zasilacza stabilizowanego 12...14 V†o†wydajnoúci ok. 250 mA. Zasilacz zbudowany zosta³ w†oparciu o†stabilizator 7805 (US). Szeregowo w³¹czona dioda DZ zabezpiecza przed nieprawid³owym pod³¹czeniem zasilacza zewnÍtrznego. Obs³uga programatora JuPIC przebiega identycznie jak wspomnianego juø programatora PICSTART Plus. Elementem sprzÍgaj¹cym programator z†komputerem jest konwerter poziomÛw napiÍÊ MAX232 (U2), co wynika z†faktu, øe porty mikrokontrolera pracuj¹ w†standardzie TTL. Przetwornik pracuje z†czterema liniami RS232: TXD, RXD, RTS, CTS, przez ktÛre uk³ad moøe nawi¹zaÊ transmisjÍ typu handshaking. Wykorzystuj¹c uk³ad MAX232, otrzymujemy na liniach napiÍcia o wartoúciach zbliøonych do standardu RS232. JuPIC ³¹czy siÍ z†komputerem poprzez szeregowe ³¹cze RS232C kablem typu ìmodemî (straight through), ktÛry jest takøe wykorzystywany przy ³¹czeniu oryginalnego programatora PICSTART Plus. Siedmioøy³owy kabel ³¹cz¹cy jest zakoÒczony mÍs-
kim gniazdem DB-9 od strony programatora i†øeÒskim DB-9 lub DB-25 od strony komputera. W†tab. 1 przedstawiono wykaz sygna³Ûw uøywanych przez programator oraz opis wyprowadzeÒ ³¹cz. Klucze tranzystorowe (T1...T3) zapewniaj¹ przy³¹czenie jednego z†trzech poziomÛw napiÍÊ na wejúcie MCLR: VSS = 0V, VDD = 5V oraz VPP = 12 V, zapewniaj¹c†tym samym wymagane funkcje protoko³u ICSP. Sygna³ steruj¹cy sk³ada siÍ z†dwÛch bitÛw, ktÛrych kombinacje wartoúci oznaczaj¹ odpowiednie napiÍcia wyjúciowe. SposÛb kodowania zestawiono w†tab. 2. Po podaniu na wyjúcia RA0 i†RA1 stanu ì0î zatkane zostaj¹ wszystkie tranzystory i†na wyjúciu pojawi siÍ potencja³ VDD (R7 pra- Rys. 3. Rozmieszczenie elementów na cuje jako pull-up). Po podaniu na płytce programatora rys. 2 przedstawiono sposÛb przywyjúcie RA1 stanu ì1î zostaje ³¹czania uk³adu zewnÍtrznego. wysterowany tranzystor T3 i†na wyjúciu otrzymujemy poziom VSS, niezaleønie od stanu na wyjúciu Funkcje programatora RA0. Natomiast po podaniu na Programator posiada szereg wyjúcie RA1 stanu ì0î, a†na funkcji i†usprawnieÒ rozszerzaj¹wyjúcie RA0 stanu ì1î powoducych jego moøliwoúci: jemy zatkanie tranzystora T3 i†wy- Uk³ad ma przycisk kasowania, sterowanie tranzystorÛw T1 i†T2, ktÛrym bez pod³¹czania prograco spowoduje wyst¹pienie na wyjmatora do komputera moøna úciu napiÍcia programuj¹cego VPP. wyzerowaÊ pamiÍÊ mikrokontrolera (takøe Code Protection). W†ten sposÛb uzyskujemy moøAby wykasowaÊ pamiÍÊ, naleøy liwoúÊ podawania wszystkich ponacisn¹Ê i†przytrzymaÊ klawisz trzebnych napiÍÊ na wejúcie ERASE przez 2†sekundy - dioda MCLR mikrokontrolera. LED zasygnalizuje wyzerowanie mikrokontrolera. Programowanie - Wprowadzono diodÍ sygnalizaw†systemie ICSP cyjn¹ LED, ktÛra sygnalizuje Programator zosta³ wyposaøony aktualne stany programatora: w†dodatkowe z³¹cze s³uøace do - dwa podwÛjne krÛtkie b³yski programowania zgodne z†protokodiody - za³¹czenie zasilania ³em ICSP. Otrzymano w†ten spoi†inicjacja programatora, sÛb tzw. ìokno na úwiatî, umoø- dioda úwieci úwiat³em ci¹g³ym liwiaj¹c przy³¹czanie do progra- programator gotowy do pracy, matora JuPIC dowolnie wybranego - dioda pulsuje rÛwnomiernie zewnÍtrznego systemu mikroproszybko - nawi¹zywana jest cesorowego. Jedynym warunkiem komunikacja z†programem tego przy³¹czenia jest zachowanie MPLAB IDE, standardu ³¹cza oraz zgodnoúÊ protoko³Ûw programuj¹cych. Na
Tab. 1. Opis wyprowadzeń złącz komputera i programatora JuPIC DB−25 Żeński
DB−9 Żeński
Sygnał
Kierunek PC <−> JuPIC
DB−9 Męski
Sygnał
2 3 20 7 6 4 5
3 2 4 5 6 7 8
TX RX DTR GND DSR RTS CTS
−> <− −> − <− −> <−
3 2 4 5 6 7 8
RX TX Data Ready GND pull up +5V CTS RTS
Elektronika Praktyczna 3/2003
Rys. 4. W ten sposób włącza się tryb SAFE
23
JuPIC
Rys. 5. Sposób dołączenia programowanego mikrokontrolera do programatora pracującego w trybie SAFE
-
-
-
-
- dioda pulsuje rÛwnomiernie wolno - programator jest w†trakcie wymiany danych z†programem MPLAB IDE (zapis/odczyt), - dioda gaúnie - reakcja na przyciúniÍcie klawisza, - 3†krÛtkie b³yski diody - mikrokontroler zosta³ wykasowany, - dioda okresowo nadaje 3†krÛtkie b³yski - zawieszenie programatora, naruszenie struktury programu, konieczna wymiana oprogramowania. Wprowadzono z³¹cze ICSP, czyli moøliwoúÊ programowania w†systemie (na p³ytce) bez koniecznoúci wyjmowania mikrokontrolera z†uruchamianego urz¹dzenia. Wprowadzono moøliwoúÊ programowania mikrokontrolerÛw w†trybie LVP. Wyprowadzono podstawkÍ DIP18, ktÛra umoøliwia programowanie mikrokontrolera bez koniecznoúci pod³¹czania przewodÛw. Do podstawki moøna w³oøyÊ mikrokontrolery, ktÛre maj¹ kompatybilne wyjúcia z†uk³adem PIC16F628. Wyprowadzono zworki konfiguracyjne, ktÛre pozwalaj¹ przystosowaÊ programator do w³asnych potrzeb. Procedury programuj¹ce zosta³y poddane optymalizacji, co po-
Rys. 7. Sposób dołączenia programowanego mikrokontrole− ra do programatora pracującego w trybie VCC
woduje przyspieszenie programowania mikrokontrolerÛw. ZawartoúÊ kaødej komÛrki przed zaprogramowaniem jest porÛwnywana z†wartoúci¹, ktÛra ma byÊ do niej wpisana i†jeúli jest taka sama, operacja zapisu jest pomijana.
Montaø i†uruchomienie Programator zmontowano na dwustronnej p³ytce drukowanej, ktÛrej schemat montaøowy przedstawiono na rys. 3. Montaø przeprowadzamy typowo, rozpoczynaj¹c od elementÛw najniøszych, a†koÒcz¹c na wlutowaniu z³¹cza RS232. Na koÒcu, po zmontowaniu p³ytki, naleøy w³oøyÊ uk³ady scalone do wlutowanych wczeúniej podstawek. Programator po w³¹czeniu zasilania jest gotowy do pracy i†nie wymaga uruchamiania, natomiast wymagane jest zapoznanie siÍ z†trybami pracy, jakie uk³ad udostÍpnia i†odpowiednie skonfigurowanie zworek.
Konfiguracja programatora Programowanie moøe odbywaÊ siÍ dwoma sposobami: - napiÍciem wysokim HVP (12...14†V) - zworka ìLVP ONî roz³¹czona, - napiÍciem niskim LVP (5 V) zworka ìLVP ONî zwarta (funkcja ìdzia³aî tylko dla mikrokontrolerÛw posiadaj¹cych tryb LVP). Moøliwe s¹ rÛwnieø 4†tryby pracy ze wzglÍdu na zasilanie uk³adu: Tab. 2. Sposób kodowania napięcia programującego RA0 RA1
Rys. 6. W ten sposób włącza się tryb VCC
24
0 − 1
0 1 0
Napięcie
Funkcja
VDD VSS VPP
Praca Reset Programowanie
1. Tryb SAFE - bezpieczny Uaktywnienie trybu nastÍpuje po za³¹czeniu zworki ìSAFEî (rys. 4). Tryb ten pozwala na programowanie mikrokontrolera najbezpieczniejszym sposobem. NapiÍcie na wyprowadzenia mikrokontrolera jest podawane przez klucz T4 za³¹czany tylko podczas jego programowania (zapis/odczyt), natomiast po operacji wymiany danych jest odcinane. Zalecane jest, aby w†tym trybie nie zasilaÊ ze z³¹cza ICSP øadnego uk³adu zewnÍtrznego (rys. 5). 2. Tryb VCC - z†bezpoúrednim zasilaniem Uaktywnienie trybu nastÍpuje po za³¹czeniu zworki ìVCCî (rys. 6). Tryb ten pozwala bezpoúrednio zasilaÊ programowany mikrokontroler napiÍciem 5†V, podawanym z†zasilacza umieszczonego na p³ytce (rys. 7). NapiÍcie jest podawane ca³y czas na wyprowadzenia mikrokontrolera i†dlatego naleøy zachowaÊ ostroønoúÊ podczas jego wk³adania lub wyjmowania z†podstawki. Jeúli mikrokontroler jest programowany nie w†podstawce, lecz poprzez z³¹cze zewnÍtrzne ICSP, napiÍcie podawane jest rÛwnieø na przy³¹czony uk³ad. W†ten sposÛb moøna wykorzystaÊ zasilacz programatora do zasilania uk³adu programowanego. Jedynym ograniczeniem jest tu wydajnoúÊ pr¹dowa stabilizatora i†maksymalny pr¹d zaTab. 3. Rozmieszczenie wyprowadzeń złącza ICSP zaproponowane przez firmę Microchip Styk
Funkcja
Port
1 2 3 4 5 6
MCLR VCC GND DATA CLOCK LVP
MCLR VDD VSS RB7 RB6 RB3/4
Elektronika Praktyczna 3/2003
JuPIC
Rys. 8. W ten sposób włącza się zależny tryb pracy (bez zasilacza)
bezpieczaj¹cej diody szeregowej, dlatego naleøy wzi¹Ê ten fakt pod uwagÍ, aby nie spaliÊ elementÛw†zasilacza na p³ytce. 3. Tryb zaleøny - bez zasilacza Uaktywnienie trybu nastÍpuje po za³¹czeniu zworki ìVCCî i†ìLVP ONî (rys. 8). Tryb ten pozwala na pracÍ programatora bez w³asnego zasilania. NapiÍcie niezbÍdne do pracy programatora (5 V) jest podawane bezpoúrednio z†uk³adu programowanego przez z³¹cze ICSP (rys. 9). W†tej konfiguracji moøliwa jest tylko praca z†mikrokontrolerami, ktÛre mog¹ byÊ programowane niskim napiÍciem (LVP). Podczas pracy w†tym trybie nie wolno pod³¹czaÊ zasilania do programatora, poniewaø moøe ulec uszkodzeniu stabilizator. 4. Tryb niezaleøny - z†podwÛjnym zasilaniem Uaktywnienie trybu nastÍpuje po roz³¹czeniu zworki ìSAFEî i†ìVCCî (rys. 10). Tryb ten pozwala na podawanie zasilania z†dwÛch rÛønych ürÛde³. Programator zasilany jest z†w³asnego stabilizatora, natomiast programowany mikrokontroler jest zasilany ze z³¹cza ICSP. Instalacja programatora przebiega nastÍpuj¹co: - programator umieszczamy na stabilnym, nieprzewodz¹cym pod³oøu, - pod³¹czamy przewÛd RS232 do komputera i†programatora, - pod³¹czamy zasilacz do sieci, a†nastÍpnie przewÛd zasilania 12V do programatora,
Rys. 10. W ten sposób włącza się niezależny tryb pracy
Elektronika Praktyczna 3/2003
Rys. 9. Sposób dołączenia programowanego mikrokontrolera do programatora pracującego w trybie zależnym
- umieszczamy programowany mikrokontroler w†podstawce lub pod³¹czamy przewÛd programowania ICSP, - uruchamiamy na komputerze program MPLAB IDE, - uaktywniamy programator, wybieraj¹c z†menu PICSTART Plus funkcjÍ Enable Programmer w†programie MPLAB IDE pojawi siÍ okno inicjacji programatora, po czym otrzymamy aktywny interfejs uøytkownika; programator JuPIC przedstawia siÍ w†wersji 2.30.00 (rys. 11). Po kompilacji przygotowanego projektu otrzymujemy kod wynikowy w†postaci pliku typu Intel HEX, ktÛry moøemy wprowadziÊ do programowanego mikrokontrolera (Program). Na panelu programatora (rys. 12) dostÍpne s¹ takøe funkcje odczytu (Read) i†weryfikacji (Verify) kodu, moøna rÛwnieø spraw-
Rys. 11. W taki sposób widziany jest JuPIC przez MPLAB
Rys. 12. Widok panelu obsługi programatora w MPLAB
dziÊ, czy pod³¹czony mikrokontroler ma skasowan¹ pamiÍÊ programu (Blank). Dodatkowo, od wersji programu MPLAB 5.70 wprowadzono przycisk kasowania mikrokontrolera (Erase Flash Device). Adam Jurkiewicz Stanis³aw Pietraszek Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/marzec03.htm oraz na p³ycie CD-EP3/2003B w katalogu PCB.
WYKAZ ELEMENTÓW Rezystory R1, R7, R9, R10: 10kΩ R2, R3, R4: 2kΩ R5: 100Ω R6: 1kΩ R8: 4,7kΩ Kondensatory C1, C3: 100µF/25V C2, C4, CB1, CB2: 100nF C5, C6, C7, C8: 10µF/25V CP1: 220pF CX1, CX2: 22pF Półprzewodniki U1: PIC16F628 (zaprogramowany) U2: MAX232 US: 7805 D1: 1N4148 DZ: 1N4007 LED czerwona T1, T3: BC238 T2, T4: BC307 Różne XTAL: kwarc 11,0592MHz JZ: złącze zasilania SW1: microswitch J1: złącze RS żeńskie J3: podstawka precyzyjna 18 pin J4: złącze 6 pin do druku JP1: zworka 2 pin JP2: zworka 3 pin
25
Dekoder dźwięku P R dookólnego O J E K TSRS Y
Dekoder dźwięku dookólnego SRS, część 1 Surround na dwóch głośnikach AVT−5105
W reklamach moøna wyczytaÊ, øe efekt düwiÍku dookÛlnego uzyskuje siÍ wy³¹cznie poprzez zastosowanie n->∞†zestawÛw g³oúnikowych. My, maj¹c silne oparcie w†kilkuletnich doúwiadczeniach firmy SRS Labs, twierdzimy, øe doskona³y efekt dookÛlny moøna osi¹gn¹Ê za pomoc¹ dwÛch zestawÛw g³oúnikowych zasilanych z†klasycznego wzmacniacza stereofonicznego. Rekomendacje: procesor wzbogacaj¹cy brzmienie przez znaczne poszerzenie bazy ods³uchowej, ktÛry moøe wspÛ³pracowaÊ z†kaødym domowym zestawem stereofonicznym audio.
Elektronika Praktyczna 3/2003
Czy moøna sobie wyobraziÊ, jak wygl¹da³by dzisiaj úwiat, gdyby nie wynalazek Edisona pozwalaj¹cy na zarejestrowanie, a†potem odtworzenie düwiÍku? Pewnie niewielu CzytelnikÛw zdaje sobie sprawÍ, s³uchaj¹c swoich (doskona³ych technicznie) ulubionych nagraÒ, jak wiele siÍ zmieni³o od tamtego czasu. Mechaniczne urz¹dzenie Edisona by³o ci¹gle udoskonalane tak, by osi¹gn¹Ê jeden cel: jak najwierniej zapisaÊ i†odtworzyÊ düwiÍk. Po osi¹gniÍciu doskona³ej - jak na lata 60. - jakoúci nagraÒ monofonicznych pojawi³ siÍ system stereo poprawiaj¹cy radykalnie jakoúÊ düwiÍku ods³uchiwanych nagraÒ. Systemem stereofonicznego odtwarzania düwiÍku umoøliwia³ bowiem mniej lub bardziej precyzyjn¹ lokalizacjÍ w†p³aszczyünie przed s³uchaczem instrumentÛw, solistÛw czy aktorÛw. Nagrania stereo by³y znacznie bliøsze ludzkiej percepcji düwiÍku i†z†tego powodu ten system jest ci¹gle podstawowym stosowanym w†technice nagraÒ audio, w†audycjach radiowych FM i†przesy³aniu düwiÍku w†przekazach telewizyjnych. Mimo ogromnej popularnoúci stereofonii, nie zaprzestano prac nad lepszymi sposobami odtwarzania düwiÍku. Cz³owiek przecieø rozpoznaje, czy ürÛd³o düwiÍku jest
ulokowane z†przodu, z†boku, czy z†ty³u lub z†gÛry - inaczej mÛwi¹c, s³yszy przestrzennie. Najwierniejsze odtwarzanie düwiÍku to odtwarzanie przestrzenne. Dlatego powsta³y systemy pozwalaj¹ce na takie odtwarzanie. Pocz¹tkowo by³a to droga aparatura zaprojektowana na potrzeby przemys³u filmowego. AtrakcyjnoúÊ ods³uchu przestrzennego sk³oni³a konstruktorÛw do opracowania coraz taÒszych i†prostszych w†zastosowaniu urz¹dzeÒ. Dzisiaj, jednym z†najbardziej znanych jest system firmy Dolby. Jednak polityka licencyjna firmy praktycznie uniemoøliwia zakup scalonych dekoderÛw przez odbiorcÛw, ktÛrzy nie uzyskali licencji. ZawÍøa to kr¹g odbiorcÛw do najwiÍkszych firm mog¹cych sobie pozwoliÊ na zakupienie licencji. W†proponowanym w artykule dekoderze zosta³ zastosowany scalony procesor odtwarzania düwiÍku przestrzennego systemu SRS.
Co to jest SRS? System dwukana³owego düwiÍku przestrzennego SRS powsta³ w†laboratoriach firmy SRS Labs, Inc. SRS, czyli Sound Retrieval System, tworzy przestrzenne brzmienie z†dowolnego ürÛd³a düwiÍku za pomoc¹ standardowego wzmacniacza wspÛ³pracuj¹cego
27
Dekoder dźwięku dookólnego SRS
Rys. 1. Schemat elektryczny procesora SRS
28
Elektronika Praktyczna 3/2003
Dekoder dźwięku dookólnego SRS z†ucha do mÛzgu pozwala na okreúz†dwoma zestawami g³oúnikowymi. Tab. 1. Podstawowe parametry lenie kierunku i†rodzaju düwiÍku. Niezaleønie od tego, czy sygna³ jest i właściwości procesora SRS: Nagrania wykonane za pomoc¹ monofoniczny, stereofoniczny, czy Procesor charakteryzuje się: zakodowany jako dookÛlny (sur- mikrofonÛw nie mog¹ zarejestro✗ Trzema przełączanymi wejściami stereo. ✗ Niezależnym dla każdego wejścia waÊ kierunku pochodzenia düwiÍround sound), system SRS rozszeprogramowanym tłumieniem poziomu ku tak, jak robi to ludzkie ucho. rza przestrzeÒ akustyczn¹ materia³u sygnału wejściowego. Jednak nawet w†tak zarejestrowaaudio, wywo³uj¹c wraøenie realne✗ Regulacją wzmocnienia z możliwością nych nagraniach sygna³ reprezengo düwiÍku przestrzennego. ustawienia balansu. tuj¹cy przestrzeÒ jest obecny, ale SRS zosta³ stworzony przez ✗ Regulacją barwy (tonów niskich, średnich i wysokich). jest niwelowany przez tradycyjne Arnolda Klaymana po latach ba✗ Dźwiękiem przestrzennym SRS. daÒ nad fizjologicznymi w³aúci- systemy reprodukcji düwiÍku. ✗ Dźwiękiem surround. woúciami odbierania wraøeÒ s³u- Oryginalna przestrzennoúÊ i†dyna✗ Funkcją Voice Canceller (karaoke). mika nagraÒ zostaje w nich zachowych przez ludzkie ucho. Wy✗ Możliwością zaprogramowania przez użytkownika czterech banków ustawień fa³szowana lub zupe³nie zatarta. korzystanie wynikÛw tych badaÒ efektu. Wszystkie ustawienia zapisywane SRS analizuje stale zmieniaj¹c¹ umoøliwi³o opracowanie unikalnej w nieulotnej pamięci EEPROM. siÍ funkcjÍ HRTF w†uk³adzie ludzmetody odzyskiwania przestrzeni ✗ Możliwością zaprogramowania wszystkich w†nagraniach i†odtwarzania trÛj- kiego systemu s³yszenia i†odtwaprzewidzianych przez producenta ustawień rza w³aúciwe sk³adowe czÍstotliwymiarowego pola brzmieniowego. układu TDA7466. ✗ Wszystkie informacje wyświetlane na woúciowe oraz proporcje bezpoW†tradycyjnym systemie stereo wyświetlaczu alfanumerycznym 2x20 úrednich i†odbitych fal düwiÍkodoúÊ krytyczne jest ustawienie znaków. wych. Przez rozdzielenie sygna³u g³oúnikÛw i†pozycja s³uchacza ✗ Ustawienia i regulacje są dokonywane za wzglÍdem nich. PrzesuniÍcie siÍ stereo na rÛøne sk³adowe jest pomocą 5−przyciskowej klawiatury. moøliwe wyizolowanie i†odtwopoza obszar bazy stereofonicznej rzenie informacji o†przestrzennoú- konanego z†tym uk³adem pokazapowoduje utratÍ lub znaczne poci düwiÍku. SRS oddziela te ingorszenie jakoúci ods³uchu stereono na rys. 1. Zastosowana w†nim formacje i†odpowiednio przetwa- konfiguracja uk³adowa TDA7466 fonicznego. W†systemie SRS pozycja s³uchacza nie jest jest identyczna z†proponokrytyczna i†moøe siÍ on wan¹ w†nocie aplikacyjnej Zastosowanie procesora SRS w klasycznym poruszaÊ po pomieszczeproducenta. Sygna³y kana³u stereofonicznym torze audio powoduje niu bez utraty wraøenia lewego i†prawego z†prze³¹czrozszerzenie bazy stereofonicznej poza ściśle ods³uchu przestrzennego. nika wejúÊ s¹ podawane określony obszar ulokowany między System SRS nie wyprzez kondensatory C1 i†C2 głośnikami reprodukującymi sygnały kanału maga specjalnego kodona wyprowadzenia 36 i†38 lewego i prawego. Zastosowany sposób wania i†dekodowania syguk³adu U1. Kondensatory obróbki dźwięku pozwala wytworzyć na³u, nie polega takøe na C3...C8 s¹ elementami zeprzestrzeń akustyczną o właściwościach sztucznym wytwarzaniu zbliżonych do klasycznych rozwiązań surround, wnÍtrznymi uk³adu suropÛünieÒ i†manipulowaround. ZewnÍtrzne obwody ale bez konieczności stosowania dużej liczby niu faz¹ oryginalnego syguk³adu SRS zbudowane s¹ zestawów głośnikowych. na³u düwiÍkowego. Jak to z†rezystorÛw R5...R10 i†konjuø zosta³o powiedziane, densatorÛw C21...C23. Do SRS bazuje na charaktewewnÍtrznych obwodÛw rerystycznym dla ludzkiego gulatorÛw tonÛw do³¹czone ucha odbieraniu wraøeÒ s¹ kondensatory C9...C13 s³uchowych. Kiedy fala dla kana³u lewego düwiÍkowa przychodzi i†C16....C20 dla kana³u praz†przodu g³owy s³uchawego oraz rezystory R1, R2 cza, to ma³øowina odbija (kana³ lewy) i†R3, R4 (kana³ wiele sk³adowych czÍstotprawy). rza za pomoc¹ opatentowanej meliwoúciowych z†daleka od kana³u Sterownik procesora zosta³ zbutody polegaj¹cej na korekcji od- dowany w†oparciu o†mikrokontrousznego. DüwiÍk pochodz¹cy z†boku powiedzi czÍstotliwoúciowej za nie jest odbijany przez ma³øowinÍ ler PIC16F76 (U2). Jest to uk³ad pomoc¹ specyficznej krzywej. tak jak düwiÍk pochodz¹cy z†przodu z†duø¹ pamiÍci¹ programu typu g³owy. Wszystkie informacje odbieFlash (8 ks³Ûw 14-bitowych). Ma rane przez ucho s¹ przesy³ane do teø stosunkowo duø¹ pamiÍÊ daProcesor SRS mÛzgu i†tam interpretowane. Sygna³ nych (368 bajtÛw). Zastosowanie Pomys³ firmy SRS Labs okaza³ przestrzenny wytworzony przez ma³mikrokontrolera z†duø¹ pamiÍci¹ siÍ na tyle atrakcyjny, øe wielu øowinÍ i†przesy³any do mÛzgu jest pozwoli³o na umieszczenie w†niej producentÛw scalonych uk³adÛw nazywany HRTF (Head - Related audio uruchomi³o produkcjÍ scadoúÊ rozbudowanego programu steTransfer Function.) Poniewaø za- lonych procesorÛw systemu SRS. ruj¹cego procesorem. ZewnÍtrzne leøny od poziomu i†kierunku düwiÍelementy oscylatora to kondensaW†opisywanym projekcie kompletku sygna³ HRTF faluje wokÛ³ ma³tory C27 i†C28 oraz rezonator X1. nego procesora SRS ze sterowniøowiny, to sygna³ akustyczny w†kaMa on doúÊ ma³¹ czÍstotliwoúÊ kiem zosta³ wykorzystany uk³ad nale usznym ci¹gle siÍ zmienia. TDA7466 firmy STMicroelectrorezonansow¹ wynosz¹c¹ ok. Ci¹g³y nap³yw informacji przesy³any 2†MHz. Poniewaø oprogramowanie nics. Schemat procesora SRS wy-
Elektronika Praktyczna 3/2003
29
Dekoder dźwięku dookólnego SRS nie narzuca jakichú szczegÛlnych wymagaÒ dotycz¹cych prÍdkoúci mikrokontrolera, to ma³a czÍstotliwoúÊ taktowania spowodowa³a zmniejszenie poboru pr¹du i†zminimalizowanie ewentualnych zak³ÛceÒ wnoszonych przez sterownik do czÍúci analogowej procesora. MoøliwoúÊ ewentualnego przeniesienia zak³ÛceÒ cyfrowych do czÍúci analogowej procesora zosta³a uwzglÍdniona przez producenta TDA7466. Masa analogowa zosta³a oddzielona od masy cyfrowej interfejsu steruj¹cego magistrali I2C. Obie te masy powinny byÊ po³¹czone w†jednym punkcie moøliwie blisko ürÛd³a zasilania. Do linii portu PORTA zosta³ do³¹czony przez magistralÍ 4-bitow¹ wyúwietlacz alfanumeryczny o†organizacji 2x20 znakÛw. Styki klawiatury steruj¹cej do³¹czone s¹ bezpoúrednio do wyprowadzeÒ RB0...RB4 (skonfigurowanych jako linie wejúciowe) portu PORTB. PrzyciúniÍcie klawisza powoduje wymuszenie na linii poziomu niskiego. Linie PORTB maj¹ w³¹czone wewnÍtrzne podci¹ganie do plusa zasilania (wymuszenie poziomu wysokiego na niepod³¹czonej linii wejúciowej). Linia SDA magistrali I2C pod³¹czona jest do wyprowadzenia RC4/SDI/SDA, a†linia SCL do wyprowadzenia RC3/ SCK/SCL. Rezystory R13 i†R14 realizuj¹ wymagane przez specyfikacjÍ magistrali podci¹ganie linii SDA i†SCL do plusa zasilania. Wyprowadzenia RC5...RC7 portu PORTC steruj¹ prze³¹cznikiem sygna³u wejúciowego. Do magistrali I2C do³¹czona jest, oprÛcz U1, pamiÍÊ EEPROM 24C04 (U3). W†tej pamiÍci przechowywane s¹
30
wszystkie ustawienia i†regulacje procesora. Prze³¹cznik wejúÊ umoøliwia do³¹czenie do TDA7466 trzech rÛønych ürÛde³ sygna³u akustycznego. Pojawienie siÍ poziomu wysokiego na wyprowadzeniu RC5 powoduje, øe tranzystor T1 wchodzi w nasycenie i wysterowuje cewkÍ przekaünika Prz1. Rezystor R15 ogranicza pr¹d bazy tranzystora. Sygna³ akustyczny z†wejúÊ We1_L i†We1_P jest podawany przez zwarte styki przekaünika na wejúcie sygna³u U1. Analogicznie zostaj¹ prze³¹czone sygna³y z†wejúÊ 2†i†3. Program sterownika ustawia takie stany na liniach RC5...RC7, øe nie jest moøliwe wysterowanie jednoczeúnie wiÍcej niø jednego przekaünika. Øeby unikn¹Ê stukÛw w†czasie prze³¹czania wejúÊ, jest programowo w³¹czane maksymalne t³umienie wejúcia U1. Uk³ad zasilania dostarcza stabilizowanego napiÍcia +9V do zasilania U1 i†przekaünikÛw prze³¹cznika wejúÊ oraz +5V do zasilania sterownika z†wyúwietlaczem i†pamiÍci¹ EEPROM. NapiÍcie sta³e lub przemienne o†wartoúci ok. 14V podawane jest na mostek prostowniczy M1. Kondensator C29 filtruje tÍtnienia w†przypadku zasilania pr¹dem przemiennym. Stabilizator 7809 (U4) dostarcza stabilizowanego napiÍcia +9V, a†stabilizator 7805 napiÍcia +5V. Tomasz Jab³oñski, AVT
[email protected] Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/marzec03.htm oraz na p³ycie CD-EP3/2003B w katalogu PCB.
WYKAZ ELEMENTÓW Płytka główna Rezystory R1, R4, R12...R14, R18: 2,7kΩ R2, R3: 5,6kΩ R5: 47,5kΩ R6: 130kΩ R7: 32,4kΩ R8: 1,5kΩ R9: 1kΩ R10: 4,42kΩ R11: 3,74kΩ R15...R17: 3,3kΩ Kondensatory C1, C2: 220nF C3, C9, C20: 5,6nF C4: 680nF C5, C12, C13, C16, C17, C26, C30...C32, C34: 100nF C6, C21: 4,7nF C7, C8, C11, C18: 22nF C10, C19: 18nF C14, C15: 2,2µF C22, C23: 470nF C24: 1,2nF C25: 22µF C27, C28: 33pF C29: 2200µF /16V C33: 10µF/16V Półprzewodniki D1...D3: BAV21 (1N4148) M1: 1A/100V T1...T3: BC237 U1: TDA7466 U2: PIC16F76 zaprogramowany U3: 24C04 U5: 7805 U6: 7809 Różne Rezonator kwarcowy 2MHz Przekaźniki Prz1...Prz3 MEISEI M4− 12H (ZETTLER AZ822−2C−12DSE) Złącza do druku cinch 8 szt. Płytka drukowana wyświetlacza W1; wyświetlacz alfanumeryczny 2x20znaków SW1...SW5: mikroprzyciski
Elektronika Praktyczna 3/2003
VFM − Wirtualny P miernik R O częstotliwości J E K T Y
VFM Wirtualny miernik częstotliwości AVT−5103 Specjalizowane przyrz¹dy pomiarowe, zw³aszcza renomowanych producentÛw, pozostaj¹ na ogÛ³ w†sferze marzeÒ zwyk³ego úmiertelnika. Nie naleøy jednak za³amywaÊ r¹k - Polak przecieø potrafi. Moøe np. kupiÊ tani miernik ìnonameî lub wykonaÊ przyrz¹d wirtualny wykorzystuj¹cy stoj¹cy na biurku komputer PC. Drugie rozwi¹zanie jest o†tyle atrakcyjne, øe moøna je zrealizowaÊ robi¹c przy okazji porz¹dek w†szufladzie. Rekomendacje: przyrz¹d polecamy tym Czytelnikom, ktÛrzy chc¹ wzbogaciÊ moøliwoúci swojego PC-ta o†funkcje pomiarowe przydatne w†laboratorium elektronicznym.
Jak siÍ okazuje, nie tylko Polak potrafi. Potrafi teø Ukrainiec. W†artykule opisujemy projekt miernika czÍstotliwoúci opracowany przez ukraiÒskiego inøyniera Jurija Kolokolowa. Na wstÍpie trzeba jednak wyjaúniÊ, øe opisywany miernik jest produktem czÍúciowo komercyjnym i†wykonanie go w†pe³nej konfiguracji bÍdzie siÍ wi¹za³o z†poniesieniem pewnych kosztÛw licencyjnych, o†czym napiszemy dalej.
Zanim kupisz, wyprÛbuj Miernik czÍstotliwoúci sk³ada siÍ z†niewielkiego interfejsu z†mikrokontrolerem AVR i†specjalizowanego oprogramowania (VFM) na komputer PC. Rol¹ interfejsu jest przetworzenie sygna³u z punktu pomiarowego i†przekazywanie danych do komputera poprzez port szeregowy. Pozosta³e operacje, czyli odpowiednie obliczenia i†zobrazowanie wynikÛw wykonuje program VFM, ktÛry jest dostÍpny w†wersji dla Windows 95...2000. Podczas prÛb stwier-
Elektronika Praktyczna 3/2003
dzono, øe program spisuje siÍ dobrze takøe z†Windows XP. Za pomoc¹ tego zestawu moøna: 1. MierzyÊ czÍstotliwoúÊ sygna³u analogowego (0,1...250 kHz) lub cyfrowego (0,1...5 MHz), z†czasami pomiaru (otwarcia bramki): 1†ms, 10 ms, 100 ms, 1†s, 10 s. 2. MierzyÊ okres sygna³u analogowego lub cyfrowego (10 µs...†10s z†rozdzielczoúci¹ 0,1µs) czas pomiaru jest rÛwny 1, 10, 100, 1000 cykli sygna³u. 3. MierzyÊ czas trwania impulsu (od zbocza narastaj¹cego do opadaj¹cego lub od zbocza opadaj¹cego do narastaj¹cego) (10 µs...10 s†z†rozdzielczoúci¹ 0,1 µs). 4. ZliczaÊ impulsy. 5. WykonaÊ autokalibracjÍ. Aby nie kupowaÊ przys³owiowego ìkota w†workuî, warto przed zakupem zorientowaÊ siÍ w†moøliwoúciach przyrz¹du. W†tym celu moøna pobraÊ ze strony http:// home.skif.net/~yukol/purchase.htm bezp³atne oprogramowanie dla komputera (2,1 MB, publiku-
33
VFM − Wirtualny miernik częstotliwości jemy je takøe na CD-EP3/ 2002B) oraz demonstracyjny program dla mikrokontrolera (6 kB). Jest w†nim zaimplementowana jedynie pierwsza opcja z†wymienionych. Odblokowanie pozosta³ych wymaga dokonania wp³aty na konto autora. Na jego internetowej stronie moøna znaleüÊ stosowny formularz. Po spe³nieniu zawartych w†nim wymagaÒ autor udostÍpnia pe³ny program dla mikrokontrolera. Koszt jedynie 8,95†USD. Oryginalna p³ytka zosta³a zaprojektowana z†myúl¹ o†umieszczeniu jej w†obudowie wtyku DB-25 z†elementami SMD (w³¹cznie z†mikrokontrolerem). Rysunki ze schematem ideowym, mozaik¹ po³¹czeÒ oraz rozmieszczeniem elementÛw zosta³y zamieszczone na internetowej stronie czÍstoúciomierza. Uk³ad interfejsu proponowany przez nas (montaø przewlekany), jest ³atwiejszy w†wykonaniu, bo p³ytka drukowana jest nieco wiÍksza. Schemat elektryczny interfejsu pokazano na rys. 1. Do po³¹czenia przyrz¹du z†komputerem jest wykorzystywany kabel do transmisji szeregowej typu modem-modem. Od strony czÍstoúciomierza musi byÊ zakoÒczony wtykiem 25-stykowym, zaú od strony komputera z³¹czem zaleønym od posiadanego w†komputerze. Po³¹czenia dla DB-9 przedstawiono na rys. 2.
Przygotowanie do pracy
Rys. 1. Schemat elektryczny miernika
34
Przed przyst¹pieniem do pracy z†czÍstoúciomierzem naleøy zainstalowaÊ w†komputerze úci¹gniÍty z†Internetu program VFM. Chociaø pobieranie pliku vfm.zip nie stwarza øadnych problemÛw, to z†instalacj¹ by³y pewne
Rys. 2. Rozmieszczenie styków w gniazdach RS232, sposób połączenia sygnałów
k³opoty. Szczerze mÛwi¹c na øadnym, dostÍpnym komputerze siÍ to nie powiod³o. InstalacjÍ rozpoczyna siÍ, uruchamiaj¹c program setup.exe i†od tego momentu proces odbywa siÍ automatycznie. Niestety podczas instalacji wystÍpowa³ b³¹d uniemoøliwiaj¹cy pomyúlne jej dokoÒczenie. Jednak jeúli na naszym komputerze znajduj¹ siÍ juø zainstalowane wczeúniej przy innej okazji - biblioteki, to jest szansa, øe program VFM da siÍ uruchomiÊ. Trzeba go jedynie rozpakowaÊ ìrÍcznieî z†pliku vfm.cab. Do tego celu moøna wykorzystaÊ program WinZip lub WinRAR. Uk³ad interfejsu czÍstoúciomierza jest zasilany bezpoúrednio z†portu szeregowego. Jest to moøliwe dziÍki po³¹czeniu linii sygna³owych RTS i†DTR poprzez diody D2 i†D3 oraz wysterowaniu ich z†komputera do poziomu wysokiego (wyzerowanie obu linii). Dba o†to program VFM. Stosunkowo niewielki pr¹d pobierany przez mikrokontroler pozwala na takie rozwi¹zanie. NapiÍcie na nÛøce zasilaj¹cej mikrokontrolera jest jednak silnie zak³Ûcone (rys. 3). Wyraünie widaÊ zak³Ûcenia przedostaj¹ce siÍ do zasilania podczas transmisji. Jeúli bÍdzie to powodowa³o nieprawid³owe dzia³anie objawiaj¹ce siÍ np. zrywaniem transmisji, moøna do³¹czyÊ kondensator elektrolityczny o†pojemnoúci min. 100 µF bezpoúrednio do wyprowadzeÒ zasilaj¹cych uk³ad U1 (20 - plus i†10 - minus). Na p³ytce nie przewidziano na
Elektronika Praktyczna 3/2003
VFM − Wirtualny miernik częstotliwości
Rys. 3. Wygląd sygnału na linii zasilającej mikrokontroler
niego miejsca. Jeúli i†to nie pomoøe, trzeba nasz czÍstoúciomierz zasiliÊ z†zewnÍtrznego zasilacza. Aby nie wprowadzaÊ dodatkowych po³¹czeÒ z†p³ytk¹ interfejsu, zosta³o do tego celu przewidziane niewykorzystywane wyprowadzenie z³¹cza DB-25 (styk 13 - plus zasilania). MasÍ (minus zasilania) do³¹czamy do styku 7. ZewnÍtrzne zasilanie bÍdzie potrzebne tak czy inaczej, jeúli bÍdziemy chcieli samodzielnie programowaÊ mikrokontroler za pomoc¹ programatora ISP. Interfejs wirtualnego czÍstoúciomierza komunikuje siÍ z†komputerem w†obydwie strony. W†standardzie RS232 do transmisji danych s¹ stosowane bipolarne impulsy napiÍciowe. NajczÍúciej do wytworzenia ujemnego napiÍcia wykorzystuje siÍ popularny uk³ad MAX232, lecz na schemacie elektrycznym interfejsu nie widzimy go. Do zapewnienia odpowiednich poziomÛw napiÍcia na liniach transmisyjnych s³uø¹ tranzystory T1 i†T2 wraz z†s¹siednimi elementami. Stanowi spoczynkowemu linii od strony uk³adu (logiczne ì1î) odpowiada napiÍcie -3...-25†V†(mark) od strony interfejsu RS232. Stanowi logicznemu ì0î odpowiada od strony RS232 napiÍcie +3...+25 V†(space). Rozwaømy przypadek, w†ktÛrym komputer ìnas³uchujeî, a†mikrokontroler interfejsu czÍstoúciomierza wysy³a dane. Trzeba w†tym miejscu zaznaczyÊ, øe czÍstoúciomierz nie wykorzystuje transmisji dupleksowej, przyjÍcie powyøszego za³oøenia jest zatem zasadne. Wyjúcie TXD komputera pozostaje w†spoczynku, tym samym na wyprowadzeniu 2†gniazda GN1 wystÍpuje napiÍcie ujemne. Jeúli mik-
Elektronika Praktyczna 3/2003
Rys. 4. Wygląd okna programu VFM
rokontroler bÍdzie wysy³a³ bit o†wartoúci ì1î, to tranzystor T1 bÍdzie zatkany, a†na wyprowadzeniu 3†gniazda GN1 wyst¹pi napiÍcie ujemne ìpobieraneî z†wyprowadzenia 2†GN1. Jak wiemy odpowiada to logicznej jedynce. Gdy wysy³any bit bÍdzie mia³ wartoúci ì0î, tranzystor T1 zostanie w³¹czony i napiÍcie na wyprowadzeniu 2 GN1 bÍdzie mia³o wartoúÊ blisk¹ +5 V. WartoúÊ ta mieúci siÍ w†przedziale przewidzianym dla stanu ì0î (space). W†drug¹ stronÍ sprawa wygl¹da znacznie proúciej. Tranzystor T2 zamienia polaryzacjÍ sygna³u odbieranego z†interfejsu RS232 i†jednoczeúnie ogranicza poziom napiÍcia do wartoúci z†przedzia³u 0...+5 V, akceptowanej przez mikrokontroler.
Pomiary Przed przyst¹pieniem do wykonywania pomiarÛw naleøy wskazaÊ w†programie VFM (widok okna dzia³aj¹cego programu pokazano na rys. 4) port szeregowy, przez ktÛry bÍdzie prowadzona komunikacja miÍdzy czÍstoúciomierzem a†komputerem. W†tym celu naleøy wybraÊ polecenie Options z†menu Options, a†nastÍpnie wybraÊ z†rozwijanej listy odpowiedni port. W†dolnej czÍúci okna znajduje siÍ pole, w†ktÛrym okreúla siÍ czas pomiÍdzy kolejnymi pomiarami. Minimalna i†moim zdaniem optymalna wartoúÊ to 1†sekunda. NastÍpn¹ czynnoúci¹, jak¹ powinno siÍ wykonaÊ przed rozpoczÍciem pomiarÛw, jest kalibracja przyrz¹du. Po naciúniÍciu przycisku ekranowego Calibration (z symbolem trÛjk¹ta), a†nastÍpnie przycisku Cyclical Mode (dwie zaokr¹glone strza³ki), powinna zostaÊ wyúwietlona wartoúÊ czÍstot-
liwoúci 10 MHz, ktÛrej odpowiada okres 0,1 µs. Jest to wartoúÊ wyúwietlana bez podawania sygna³u na wejúcie przyrz¹du. Jeúli wynik bÍdzie raø¹co rÛøni³ siÍ od wartoúci wzorcowej, moøe to úwiadczyÊ o†nieprawid³owym dzia³aniu uk³adu. Trzeba wÛwczas sprawdziÊ, czy zosta³ wlutowany odpowiedni rezonator kwarcowy (8 MHz) i†czy oscylator mikrokontrolera pracuje prawid³owo. Bezpoúrednio przed przyst¹pieniem do pomiarÛw zasadniczych trzeba zdecydowaÊ, jaki rodzaj sygna³u mierzymy (analogowy czy cyfrowy). S³uø¹ do tego klawisze Digital i†Analog. Od tego wyboru zaleøy, ktÛra procedura pomiarowa i†komponenty mikrokontrolera zostan¹ wykorzystane. W†przypadku sygna³u cyfrowego bÍd¹ to tylko timery/liczniki. Mierz¹c sygna³ analogowy, do pomiaru dodatkowo bÍdzie ìzaprzÍgniÍtyî komparator analogowy zaimplementowany w†strukturze mikrokontrolera. Niestety, w†drugim przypadku zakres pomiarowy zostanie zwÍøony. Teraz moøna doprowadziÊ mierzony sygna³ do wejúcia interfejsu czÍstoúciomierza i†wybraÊ odpowiedni zakres pomiarowy. Pierwszym pomiarem (jedynym w†wersji demonstracyjnej) jest pomiar czÍstotliwoúci. NajczÍúciej bÍdziemy stosowaÊ tryb cykliczny, w†ktÛrym stan wyúwietlacza jest odúwieøany w†sposÛb ci¹g³y z†ustalon¹ czÍstotliwoúci¹. Po wybraniu rodzaju pomiaru - w†tym przypadku bÍdzie to naciúniÍcie klawisza Frequency measurement (z literk¹ ìFî) - inicjujemy pomiar przez wciúniÍcie klawisza Cyclical Mode. Od tej chwili na wyúwietlaczu powinna pojawiaÊ siÍ ak-
35
VFM − Wirtualny miernik częstotliwości
Rys. 5. Wpływ regulacji składowej stałej mierzonego sygnału na wynik pomiaru
tualna czÍstotliwoúÊ mierzonego sygna³u. Bardzo istotne jest prawid³owe ustawienie suwaka Level podczas pomiaru analogowego. Za jego pomoc¹ wybiera siÍ napiÍcie odniesienia dla komparatora. Jest ono wytwarzane przez drabinkÍ R-2R do³¹czon¹ do portu PB2...PB4 mikrokontrolera. Drabinka pe³ni rolÍ prostego, 3-bitowego przetwornika cyfrowo-analogowego. Stosuj¹c zasadÍ superpozycji i†zak³adaj¹c, øe wyjúcia poszczegÛlnych portÛw mikrokontrolera na poziomie niskim stanowi¹ idealne zwarcie do masy, moøna wykazaÊ, øe napiÍcie na wyjúciu drabinki bÍdzie siÍ zmienia³o proporcjonalnie do stanu binarnego wyjúÊ PB2...PB4, przy czym najmniej znacz¹cym jest bit PB4. Wyjúcia PB2...PB4 s¹ bezpoúrednim odzwierciedleniem stanu suwaka Level. Poziom odniesienia komparatora powinien byÊ tak ustawiony, aby liczba przeciÍÊ prostej odpowiadaj¹cej napiÍciu odniesienia z†krzyw¹ napiÍcia mierzonego w†ci¹gu okresu by³a rÛwna dok³adnie 2. Na rys. 5 odpowiadaj¹ temu tylko przypadki ìBî i†ìDî. Z†tego wzglÍdu podczas pomiarÛw napiÍÊ bez sk³adowej sta³ej, najbezpieczniej jest ustawiÊ suwak w†pozycji ì0î. Nieprawid³owe ustawienie suwaka moøe powodowaÊ, øe na wyúwietlaczu bÍdzie wyúwietlana wartoúÊ zero lub wartoúÊ niezgodna z†rzeczywist¹. Zmniejsza to nieznacznie komfort pracy, gdyø nie zawsze jesteúmy pewni, øe wyúwietlane wyniki s¹ poprawne. Czasami (zw³aszcza podczas pomiaru okresu przebiegu) prowadzi to do irytuj¹cego zawieszania siÍ transmisji, a†nieumiejÍtne wyjúcie z†tej sytuacji koÒczy siÍ zawieszeniem programu VFM i†koniecznoúci¹ zakoÒczenia zadania syste-
36
mu Windows. Jeúli wiÍc pojawi siÍ komunikat ìConnection Errorî,†naleøy przerwaÊ transmisjÍ, zwalniaj¹c przycisk Cyclical Mode i†bezzw³ocznie usun¹Ê przyczynÍ powstania b³Ídu. Niekiedy niezbÍdne jest ponowne okreúlenie portu komunikacyjnego. Drugim pomiarem, alternatywnym w†stosunku do omÛwionego wyøej, jest pomiar okresu przebiegu. Rozpoczynamy go, naciskaj¹c przycisk Period measurement (z†literk¹ ìTî). W†obydwu trybach pomiarowych, na wirtualnym wyúwietlaczu przyrz¹du jest wyúwietlana zarÛwno czÍstotliwoúÊ, jak i†okres mierzonego sygna³u. Z†tego wzglÍdu ten tryb pomiarowy wydaje siÍ byÊ zdublowaniem omawianego wczeúniej i†w†zasadzie zbÍdnym. NastÍpny tryb - Interval measurement s³uøy do pomiaru czasu trwania impulsu i†moøe byÊ przydatny w†praktyce. Kszta³t impulsu wybieramy jednym z†dwÛch klawiszy znajduj¹cych siÍ w†lewej dolnej czÍúci panela czÍstoúciomierza. Pomiar czasu trwania impulsu w†przypadku sygna³u cyfrowego nie budzi øadnych w¹tpliwoúci. W†tym trybie moøna rÛwnieø mierzyÊ sygna³ analogowy. SzerokoúÊ impulsu jest wtedy okreúlona jako czas pomiÍdzy kolejnymi przeciÍciami poziomu odniesienia komparatora z†sygna³em mierzonym. Odpowiadaj¹ temu chwile t1 i†t2 na rys. 5. Wirtualny czÍstoúciomierz moøe byÊ zastosowany w†roli licznika impulsÛw doprowadzonych do wejúcia. Stan licznika jest odúwieøany w†odstÍpach czasu ustawionych w†opcjach programu, co przy ma³ej czÍstotliwoúci impulsÛw wejúciowych jest nieco myl¹ce. Spodziewamy siÍ bowiem zmodyfikowania wskazaÒ natychmiast po wyst¹pieniu impulsu. Ten tryb pomiarowy wybiera siÍ klawiszem Scoring of number of pulses (ze znakiem S).
A†wiÍc warto, czy nie? Mamy juø mniej wiÍcej pe³ny obraz moøliwoúci wirtualnego czÍstoúciomierza. Pora podejmowaÊ decyzje o†jego zrobieniu (kupieniu). Nie chcia³bym niczego sugerowaÊ. DziwiÍ siÍ, jak przez d³ugie lata praktyki w elektronice mog-
WYKAZ ELEMENTÓW Rezystory R1: 100Ω R2, R3, R5...9: 20kΩ R4, R17: 1kΩ R10...13: 200kΩ R14...16: 100kΩ Kondensatory C1, C5, C6: 100nF C2, C3: 30pF C4: 470pF Półprzewodniki D1...4: 1N4148 D5...9: C4V7 T1: BC557 T2: BC547 U1: AT90S2313 Różne J100: gniazdo DSUB−25 (żeńskie) Rezonator kwarcowy 10MHz Łączówka ARK2 (3,5mm)
³em obywaÊ siÍ bez czÍstoúciomierza w†swoim laboratorium. Do zakupu gotowego przyrz¹du zniechÍca³y ceny, a†do zrobienia w³asnym sumptem brakowa³o czasu i†chÍci. Jeúli ktoú z†CzytelnikÛw znajduje siÍ w†podobnej sytuacji, to ma teraz okazjÍ do szybkiego i†taniego wykonania przyrz¹du, ktÛremu trochÍ brakuje do miana sprzÍtu ìprofesjonalnegoî, ale w†wielu amatorskich pracach moøe okazaÊ siÍ przydatny. Pierwsze spostrzeøenie, jakie nasunͳo mi siÍ po wykonaniu kilku prÛb, jest takie, øe czÍstoúciomierz ma trochÍ za ma³y zakres pomiarowy. ByÊ moøe Jurij juø nad tym pracuje. NastÍpna sprawa to zawieszanie siÍ transmisji w†przypadku z³ych nastaw miernika. MyúlÍ, øe jest to b³¹d w†programie, ktÛry powinien byÊ usuniÍty. Po nabraniu pewnej wprawy moøna jednak takich sytuacji unikaÊ. Niew¹tpliw¹ zalet¹ czÍstoúciomierza jest jego niewielki koszt i†³atwoúÊ montaøu. Jaros³aw Doliñski, AVT
[email protected] Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/marzec03.htm oraz na p³ycie CD-EP3/2003B w katalogu PCB.
Elektronika Praktyczna 3/2003
Uniwersalny P Rnadajnik O J ERC5/SIRC K T Y
Uniwersalny nadajnik RC5/SIRC, część 1 AVT−5104 Nadajnik zdalnego sterowania kojarzy nam siÍ zazwyczaj z†pude³kiem z†wieloma klawiszami. Opisy takich nadajnikÛw by³y niejednokrotnie publikowane na ³amach EP. Nadajnik prezentowany w†artykule ma nieco odmienn¹ budowÍ, gdyø nie posiada ani jednego przycisku, a†moøe wygenerowaÊ dowolny kod w†standardzie RC5 oraz SIRC. Rekomendacje: przyrz¹d szczegÛlnie przydatny do prac serwisowych przy naprawie odbiornikÛw telewizyjnych, magnetowidÛw, odtwarzaczy DVD i†sprzÍtu audio. Przyda siÍ takøe wszystkim fanom eksperymentÛw†ze zdalnym sterowaniem w†dwÛch najbardziej popularnych standardach kodowania.
Elektronika Praktyczna 3/2003
Nadajnik wspÛ³pracuje z†komputerem poprzez port szeregowy RS232. DziÍki takiemu rozwi¹zaniu ma niewielkie wymiary, a†umoøliwia wys³anie dowolnej komendy za pomoc¹ klawiatury komputera lub odpowiedniego oprogramowania. DziÍki temu jest moøliwe sterowanie urz¹dzeniami znajduj¹cymi siÍ w†innych pomieszczeniach, poniewaø komunikacja pomiÍdzy komputerem a†nadajnikiem odbywa siÍ poprzez interfejs RS232, co pozwala na oddalenie nadajnika od komputera nawet o†kilkanaúcie metrÛw. Wys³anie komendy odbywa siÍ za pomoc¹ znakÛw ASCII, wiÍc obs³uga nadajnika moøe byÊ wykonywana przez dowolny program terminalowy - na przyk³ad HyperTerminal - w†ktÛry wyposaøony jest kaødy system Windows. Obs³uga dwÛch systemÛw kodowania informacji umoøliwia sterowanie prac¹ wiÍkszoúci urz¹dzeÒ elektronicznych. Bardzo popularny system RC5 jest stosowany przez wiele firm, miÍdzy innymi przez firmÍ Philips, a†system SIRC g³Ûwnie przez firmÍ Sony. W†systemie RC5 sygna³y nadawane s¹ z†sygna³em noúnym o†czÍstotliwoúci 36 kHz, a†w†systemie SIRC czÍstotliwoúÊ ta wynosi 40 kHz. Zastosowanie w†nadajniku mikrokontrolera umoøliwia ³atwe dobranie tej czÍstotliwoúci w†zaleønoúci od systemu, w†ktÛrym jest wysy³ana komenda. Prze³¹czanie pomiÍdzy systemami
dokonuje siÍ poprzez naciúniÍcie jednego klawisza. Jeúli kolejne komendy bÍd¹ wysy³ane w†tym samym systemie, to nie trzeba ponownie wybieraÊ systemu. RÛwnieø powtÛrzenie tej samej komendy nie wymaga ponownego jej wpisywania, gdyø znajduje siÍ w†pamiÍci i†wystarczy tylko ponowne jej zatwierdzenie. Poniewaø sposÛb transmisji danych w†obydwu systemach jest rÛøny, wiÍc dla obu systemÛw zosta³y opracowane odmienne procedury. SposÛb kodowania danych dla systemu RC5 przedstawiono na rys. 1.
Tajniki RC5 W†tym systemie kaødy rozkaz sk³ada siÍ z†14 bitÛw. RozpoczÍcie transmisji nastÍpuje po dwÛch bitach startu (S1, S2) - obydwa bity maj¹ wartoúÊ ì1î. NastÍpnie wysy³any jest bit kontrolny (CB). Bit kontrolny pozwala okreúliÊ, czy naciúniÍty przycisk na pilocie jest przytrzymywany, czy zosta³ naciúniÍty ponownie. Gdy przycisk jest przytrzymywany, to wysy³ane s¹ kolejne sygna³y i†bit ten ma tak¹ sam¹ wartoúÊ. Jeúli przycisk zosta³ zwolniony i†ponownie naciúniÍty, to bit kontrolny zmieni stan na przeciwny. NastÍpnie jest wysy³any adres urz¹dzenia, do ktÛrego jest skierowana komenda. Adres ten sk³ada siÍ z†piÍciu bitÛw, co pozwala wybraÊ 32 urz¹dzenia. W†nastÍpnym etapie wysy³anych jest 6
37
Uniwersalny nadajnik RC5/SIRC
Rys. 1. Przebiegi czasowe sygnałów podczas wysyłania rozkazu w systemie RC5
bitÛw komendy, co umoøliwia wys³anie 64 rÛønych poleceÒ. Kaødy zakodowany bit w†tym systemie trwa 1,776 ms i†sk³ada siÍ z†dwÛch czÍúci - 888 µs przerwy (poziom niski) i†888 µs impulsu (poziom wysoki). Czy wys³any bit jest jedynk¹, czy zerem okreúla pierwsza czÍúÊ kodowanego bitu - jest zerem lub jedynk¹. Jeúli ta czÍúÊ bitu jest jedynk¹, to poprzez diody nadawcze emitowany jest sygna³ o†czÍstotliwoúci 36 kHz, jeøeli czÍúÊ bitu jest zerem, to øaden sygna³ nie jest emitowany. Aby wys³aÊ bit, interpretowany przez odbiornik jako ì1î, naleøy przez pierwsze 888 µs wy³¹czyÊ diodÍ nadawcz¹, a†przez 888 µs wysterowaÊ j¹ sygna³em o†czÍstotliwoúci 36 kHz. W†przypadku wysy³ania logicznego ì0î, jest odwrotnie, przez pierwsze 888 µs naleøy sterowaÊ diodÍ nadawcz¹ sygna³em o†czÍstotliwoúci 36kHz, a†przez nastÍpne 888 µs pozostawiÊ diodÍ wy³¹czon¹. W†ten sposÛb naleøy wys³aÊ wszystkie bity transmitowanego rozkazu.
Tajniki SIRC SposÛb kodowania w†systemie SIRC jest przedstawiony na rys. 2. Kaødy rozkaz sk³ada siÍ z†jed-
nego bitu startu i†12 bitÛw danych. Moøna wybraÊ 32 urz¹dzenia i†128 komend. Po wys³aniu bitu startu nastÍpuje przerwa o†d³ugoúci 0,6 ms, nastÍpnie wysy³ane jest siedem bitÛw komendy, poczynaj¹c od bitu najmniej znacz¹cego. Po wys³aniu komendy wysy³ane jest piÍÊ bitÛw adresu urz¹dzenia. SposÛb kodowania stanÛw logicznych polega na tym, øe†dla zera logicznego transmitowany jest przebieg o†czÍstotliwoúci 40 kHz przez czas 0,6 ms, a†dla jedynki logicznej przez czas 1,2 ms. Dodatkowo, pomiÍdzy kolejnymi bitami nastÍpuje przerwa w†transmisji o†czasie 0,6 ms. Ze wzglÍdu na zrÛønicowany czas trwania stanu zera logicznego i†jedynki, wys³anie ca³ego pakietu danych nie zajmuje za kaødym razem tyle samo czasu. Jest on zaleøny od wartoúci poszczegÛlnych bitÛw adresu urz¹dzenia i†komendy.
Budowa i†dzia³anie nadajnika Schemat elektryczny nadajnika przedstawiono na rys. 3. Sk³ada siÍ on zaledwie z†kilku elementÛw, gdyø wszystkie niezbÍdne funkcje pe³ni uk³ad US1. Uk³ad ten jest mikroprocesorem z†we-
wnÍtrzn¹ pamiÍci¹ Flash o†pojemnoúci 1k x†14 b. DziÍki zastosowaniu mikrokontrolera, wszystkie operacje zwi¹zane z†odbieraniem i†wysy³aniem danych s¹ wykonywane programowo, w†zwi¹zku z†czym nie ma potrzeby stosowania dodatkowych uk³adÛw. Do procesora do³¹czono zewnÍtrzny rezonator kwarcowy o†czÍstotliwoúci 20†MHz, wskutek czego cykl maszynowy wynosi tylko 200 ns. Pozwala to na bardzo dok³adne ustalenie czÍstotliwoúci generowanych sygna³Ûw noúnych potrzebnych do wysy³ania sygna³Ûw zdalnego sterowania. Wejúcie procesora przeznaczone do zerowania (!MCLR) nie zosta³o wykorzystane, poniewaø sygna³ zerowania po w³¹czeniu zasilania jest generowany wewn¹trz mikrokontrolera. Jako nadajniki promieniowania podczerwonego pracuj¹ diody D2 i†D3. Diody te s¹ sterowane przez procesor za pomoc¹ wzmacniacza zbudowanego z†tranzystora T1. Rezystor R1 ogranicza pr¹d p³yn¹cy przez diody, a†R2 pr¹d bazy tranzystora T1. Do sygnalizacji pracy nadajnika zastosowano diodÍ D4. Po kaødym wys³aniu komendy dioda b³yúnie. RÛwnoczeúnie sygna³ zasilaj¹cy diodÍ D4 jest doprowadzony, poprzez rezystor R5, do z³¹cza CON2. Po³¹czenie to sprawia, øe†po wys³aniu wybranej komendy, jej numer zostanie wys³any z†powrotem do komputera i†bÍdzie moøna sprawdziÊ, czy komenda zosta³a wpisana prawid³owo. Komunikacja z†komputerem odbywa siÍ z†prÍdkoúci¹ 9600 bd. Wysy³ane dane do komputera nie s¹ dopasowane napiÍciowo do norm standardu RS232, gdyø stanowi ì0î odpowiada 0†V, a†stanowi ì1î napiÍcie 5†V. Uk³ady obs³uguj¹ce porty szeregowe
Rys. 2. Przebiegi czasowe podczas wysyłania rozkazu w systemie SIRC
38
Elektronika Praktyczna 3/2003
Uniwersalny nadajnik RC5/SIRC w†komputerach rozpoznaj¹ prawid³owo tak okreúlone stany logiczne. Sygna³y z komputera do mikrokontrolera rÛwnieø nie s¹ dopasowane napiÍciowo, ale do zabezpieczenia procesora wystarczy ograniczyÊ pr¹d wejúciowy przez rezystor szeregowy R4. Na wyjúciu portu szeregowego komputera wystÍpuj¹ napiÍcia +12 V†lub -12 V. Zastosowanie rezystora R4 w†po³¹czeniu z†wewnÍtrznymi diodami zabezpieczaj¹cymi, zawartymi wewn¹trz procesora, powoduje, øe napiÍcie wiÍksze od VCC+0,4V jest zwierane do plusa, a†napiÍcie mniejsze od GND-0,4V jest zwierane do masy, w†konsekwencji na wejúciu procesora wystÍpuj¹ bezpieczne wartoúci napiÍÊ: -0,4V lub 5,4V. Takie sprzÍøenie nadajnika z†portem szeregowym znacznie uproúci³o jego budowÍ. Do stabilizowania napiÍcia zasilaj¹cego zastosowano uk³ad US2, ktÛry wraz z†kondensatorami C1...C3 dostarcza odfiltrowanego napiÍcia o†wartoúci 5V.
Rys. 3. Schemat elektryczny uniwersalnego nadajnika RC5/SIRC
Transmisja danych w†podczerwieni polega na odebraniu przez procesor cyfr kodu, przetworzeniu tych cyfr na kod systemu RC5 lub SIRC i†odpowiednim wysterowaniem tranzystora steruj¹cego diodami nadawczymi. Po wys³aniu
List. 1. Procedury służące do wysłania dowolnego kodu w systemie RC5 //************************************************************************// // wysyla logicze zero f=36kHz kwarc 20MHz // //************************************************************************// stan_0() {int i; led_ir=0; //wylacz diode for(i=32;i>0;i-) //powtorz 32 razy {led_ir=1; delay_us(13); //stan wysoki 13us delay_cycles(4); //+800ns=13,8us led_ir=0; delay_us(13); //stan niski 13us delay_cycles(1); //+200ns=13,2us+3cykle=13,8us } //13,2+(3*200)=13,8us delay_us(875); //875+13=888us } //************************************************************************// //************************************************************************// // wysyla logiczna jedynke f=36kHz kwarc 20MHz // //************************************************************************// stan_1() {int i; led_ir=0; delay_us(888); for(i=32;i>0;i-) //powtorz 32 razy {led_ir=1; //zapal diode delay_us(13); //czekaj 13us delay_cycles(4); //+800ns=13,8us led_ir=0; //zgas diode delay_us(13); //stan niski 13us+3cykle przez licznik delay_cycles(1); //+200ns+600ns=13,8us } //razem 2*13,8=27,6us=36,2khz } //************************************************************************// //************************************************************************// // Wysyla podana sekwencje w rc5 // // toggle=1 // // address 0-31 // // command 0-63 // //************************************************************************// RC5_send(int address, int command) { int ii; address|=0b11100000; command<<=2; for(ii=0;ii<=7;ii++) //wysyla address+2bity startu =1, { //+ togglebit=1 address<<=1; //przesun w lewo o jeden if(bit_test(status,0)) stan_1(); //jesli c=1 to stan_1() else stan_0(); //jesli 0 to stan_0() } for(ii=0;ii<=5;ii++) //wysyla 5bitow command { command<<=1; //przesun w lewo o jeden if(bit_test(status,0)) stan_1(); //jesli c=1 to stan_1() else stan_0(); //jesli 0 to stan_0() } } //************************************************************************//
Elektronika Praktyczna 3/2003
podanego kodu do komputera zostaje wys³ana zwrotna informacja, jaki kod zosta³ wyemitowany. Jak wczeúniej wspomniano, obydwa systemy kodowania informacji rÛøni¹ siÍ miÍdzy sob¹. Do ich obs³ugi trzeba wiÍc zastosowaÊ rÛøne procedury. Na list. 1 przedstawiono procedury wysy³ania danych w†systemie RC5, przy zastosowaniu rezonatora kwarcowego o†czÍstotliwoúci 20 MHz. G³Ûwn¹ procedur¹ jest procedura RC5_send(int address, int command). Przyk³adowo, aby wys³aÊ do urz¹dzenia o†numerze 10 komendÍ o†numerze 36, naleøy wywo³aÊ tÍ procedurÍ z†parametrem: RC5_send(10,36), w†wyniku czego zostan¹ wys³ane wszystkie bity rozkazu. Procedura ta do³¹cza bity startu i†bit kontrolny, tworz¹c pe³n¹ ramkÍ danych zgodn¹ z†wymaganiami RC5. WartoúÊ parametru adresu urz¹dzenia musi zawieraÊ siÍ w†przedziale 0...31, a†parametr komendy w†0...63. Procedura RC5_send sprawdza wszystkie bity otrzymanych parametrÛw i†w†zaleønoúci od tego, czy sprawdzany bit jest jedynka, czy zerem, zostaje wykonana procedura stan_1() lub stan_0(). Sprawdzenie stanu bitu polega na przesuniÍciu w†lewo ca³ego bajtu, wtedy najstarszy bit znajdzie siÍ w†rejestrze STATUS jako bit C i†dopiero wtedy moøna sprawdziÊ stan tego bitu. Taka operacja jest wykonywana dla wszystkich bitÛw adresu urz¹dzenia lub komendy. W†systemie RC5 najpierw jest wysy³any adres urz¹-
39
Uniwersalny nadajnik RC5/SIRC dzenia poczynaj¹c od najstarszego bitu, a†nastÍpnie numer komendy rÛwnieø od bitu najstarszego. Procedury stan_0() i†stan_1() odpowiednio steruj¹ diodami nadawczymi, zgodnie z†wymaganiami standardu - czas trwania bitu 1,788 ms, czÍstotliwoúÊ 36 kHz. Wys³anie jedynki logicznej (procedura stan_1()) powoduje wy³¹czenie diody nadawczej na 888 µs, a†nastÍpnie przez kolejne 888 µs dioda jest sterowana sygna³em o†czÍstotliwoúci 36 kHz. Wys³anie zera logicznego (procedura stan_0()) powoduje natomiast przez pierwsze 888 µs sterowanie diody sygna³em o†czÍstotliwoúci 36kHz, a†przez kolejne 888 µs dioda jest wy³¹czona.
Do transmisji w†systemie SIRC stosowane s¹ procedury przedstawione na list. 2. G³Ûwn¹ procedur¹ jest procedura Sony_send(int address, int command). Podobnie jak w†przypadku wysy³ania danych w†systemie RC5, procedurÍ naleøy wywo³aÊ z†parametrami okreúlaj¹cym adres urz¹dzenia i†komendÍ. Dla standardu SIRC adres urz¹dzenia moøe zawieraÊ siÍ w†przedziale 0...31, a†komenda w†0...127. Po wywo³aniu tej procedury nastÍpuje wys³anie bitu startu, a†nastÍpnie komendy i†adresu urz¹dzenia. Procedura wysy³a pe³na ramkÍ danych wraz z†przerwami pomiÍdzy kolejnymi bitami. W†systemie SIRC w†pierwszej kolejnoúci wysy³any jest
List. 2. Procedury służące do wysyłania danych w systemie SIRC //************************************************************************// //wysyla logicze zero f=40kHz,kwarc 20MHz // //stan1 nadawanie przez 0,6ms // //dla f=40kHz cykl=25uS, dla 0,6ms trzeba powtorzyc 24razy //************************************************************************// sony_stan_0() {int i; led_ir=0; for(i=24;i>0;i-) {led_ir=1; delay_us(12); delay_cycles(2); led_ir=0; delay_us(12); }
//
//zgas diode //powtorz 24razy //zapal diode //zapal na 12us //+400ns =12,4us //zgas diode //zgas na 12us +600ns=12,6us
} //************************************************************************// //************************************************************************// //wysyla logiczna jedynke f=40kHz,kwarc 20MHz // //stan1 nadawanie przez 1,2ms // //dla f=40kHz cykl=25uS, dla 1,2ms trzeba powtorzyc 48razy //************************************************************************// sony_stan_1() {int i; led_ir=0; //zgas diode for(i=48;i>0;i-) //powtorz 48 razy {led_ir=1; //zapal diode delay_us(12); //na 12us delay_cycles(2); //+400ns=12,4ns led_ir=0; //zgas diode delay_us(12); //na 12us+3cykle=12,6us } } //************************************************************************// //************************************************************************// //opozninienie pomiedzy bitami 600us // //************************************************************************// sony_delay() { led_ir=0; delay_us(599); } //************************************************************************// //************************************************************************// //************************************************************************// // wysyla kod podany jako parametr // //address-adres urzadzenia 0-31, command-komenda 0-127 // //************************************************************************// sony_send(int address, int command) { int ii; sony_stan_1(); //bit startu I \_2,4ms sony_stan_1(); //bit startu II/ sony_delay(); //delay 0,6ms for(ii=0;ii<=6;ii++) //wysyla 7 bitow command { command>>=1; //przesun w prawo if(bit_test(status,0)) sony_stan_1(); //jeśli 1 to sony_stan_1() else sony_stan_0(); //jeśli 0 to sony_stan_0() sony_delay(); //przerwa miedzy bitami } for(ii=0;ii<=4;ii++) //wysyla 5 bitow adresu { address>>=1; //przesun w prawo if(bit_test(status,0)) sony_stan_1(); //jeśli 1 to sony_stan_1() else sony_stan_0(); //jeśli 0 to sony_stan_0() sony_delay(); //przerwa miedzy bitami } } //************************************************************************//
40
//
WYKAZ ELEMENTÓW Rezystory R1: 4,7Ω R2: 1kΩ R3: 330Ω R4: 22kΩ R5: 220Ω Kondensatory C1, C2: 47µF/16V C3: 100nF C4, C5: 30pF Półprzewodniki D1: 1N4007 D2, D3: dowolna dioda nadawcza w podczerwieni D3: LED 5mm czerwona T1: BC337−25 US1: PIC12F629 zaprogramowany US2: LM7805 Różne CON1: ARK2(3,5mm) CON2: DB9 żeńskie X1: rezonator kwarcowy 20MHz Podstawka DIP8
numer komendy, poczynaj¹c od najm³odszego bitu, a†nastÍpnie adres urz¹dzenia, rÛwnieø od najm³odszego bitu. Podobnie jak w†przypadku systemu RC5, sprawdzane s¹ wszystkie bity adresu i†komendy, i†w†zaleønoúci od ich wartoúci wykonywane s¹ procedury: sony_stan_1() - dla jedynki logicznej i†sony_stan_0() - dla zera logicznego. Kodowanie jedynki logicznej polega na wysy³aniu przebiegu o†czÍstotliwoúci 40 kHz przez czas 1,2 ms. Realizuje to procedura sony_stan_1(). Poniewaø okres sygna³u o†czÍstotliwoúci 40 kHz wynosi 25 µs, to do odliczenia czasu 1,2 ms naleøy wykonaÊ 48 b³yúniÍÊ diod¹ nadawcz¹. Podczas wysy³ania logicznego zera dioda musi b³yskaÊ przez 0,6 ms. Realizuje to procedura sony_stan_0() - w czasie 0,6 ms dioda b³yúnie 24 razy. PomiÍdzy kolejnymi bitami musi byÊ przerwa w†transmisji wynosz¹ca 0,6 ms. Jest ona realizowana przez procedurÍ sony_delay(). Krzysztof P³awsiuk, AVT
[email protected] Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/marzec03.htm oraz na p³ycie CD-EP3/2003B w katalogu PCB.
Elektronika Praktyczna 3/2003
Lampowy P R analizator O J E Kwidma T Y
Lampowy analizator widma
Gdy otrzyma³em propozycjÍ skonstruowania lampowego analizatora widma, w†pierwszej chwili uzna³em, øe pomys³ jest po prostu szalony. Jednak po namyúle doszed³em do wniosku, øe warto podj¹Ê ten temat. Moøna bowiem przy okazji pokazaÊ nieco inne niø obecnie popularne aplikacje lamp. Zastosowanie lamp nie koÒczy siÍ bowiem na wzmacniaczu czy odbiorniku radiowym. Prezentowany analizator jest w†pe³ni lampowy - wskaünikami poziomÛw s¹ takøe lampy. Rekomendacje: kolejny projekt przygotowany dla fanÛw uk³adÛw lampowych. Analizator jest ³atwy w†wykonaniu, a†prezentuje siÍ niezwykle efektownie. Moøe byÊ doskona³ym uzupe³nieniem kaødego zestawu audio.
Elektronika Praktyczna 3/2003
Najpierw zajmiemy siÍ bliøej lampami, ktÛre niegdyú by³y nazywane ìokiem magicznymî. Oko magiczne powsta³p w†drugiej po³owie lat 30. ubieg³ego stulecia. Opracowa³a je firma RCA. By³y stosowane w†odbiornikach radiowych jako wskaüniki dostrojenia odbiornika do ø¹danej d³ugoúci fali. W†odbiornikach o†prostej konstrukcji - jak opisywany w†EP12/ 2002 - strojenie odbywa siÍ ìna s³uchî i†daje to dobre wyniki. Maksymaln¹ g³oúnoúÊ audycji uzyskuje siÍ przy optymalnym dostrojeniu, a†wiÍc wtedy, gdy odbiornik jest dostrojony do wierzcho³ka krzywej rezonansowej obwodu strojonego. Jednak pod koniec lat 20. pojawi³y siÍ odbiorniki o†wiele bardziej z³oøone, wyposaøone miÍdzy innymi w†obwody ARW (automatycznej regulacji wzmocnienia). W†przypadku, gdy sygna³ odbieranej stacji jest s³aby, ARW powoduje zwiÍkszenie wzmocnienia wzmacniacza poúredniej czÍstotliwoúci, a†przy silnym sygnale zmniejszenie tego wzmocnienia, aby w†obu przypadkach g³oúnoúÊ audycji by³a zbliøona. Takie rozwi¹zanie ma jednak pewn¹ wadÍ. Za³Ûømy, øe odbierana jest ìsilnaî stacja, ale odbiornik ìpracujeî gdzieú na zboczu krzywej rezonansowej obwodu strojenia. Sygna³ wejúciowy wzmacniacza p.cz. jest s³aby, a†wiÍc ARW zwiÍksza jego wzmocnienie. Tym samym przy strojeniu nie wystÍpuje aø tak wyraünie s³yszalne
zwiÍkszenie g³oúnoúci, jak w†prostym odbiorniku bez ARW. Optymalne dostrojenie jest wiÍc utrudnione, a†tylko wtedy jakoúÊ audycji jest najlepsza. W tym celu przyda³by siÍ optyczny wskaünik strojenia, ktÛry wskazywa³by najlepsze dostrojenie. Pocz¹tkowo rolÍ takiego wskaünika pe³ni³ czu³y miliamperomierz, w³¹czony w†anodÍ lampy detekcyjnej. Jednakøe miliamperomierz by³ doúÊ kosztownym przyrz¹dem i†zamiast niego zaczÍto stosowaÊ lampy neonowe. Jednak one teø nie zdoby³y wielkiej popularnoúci, gdyø by³y ma³o czu³e. W†koÒcu skonstruowano specjaln¹ lampÍ wskaünikow¹ magiczne oko.
Rys. 1. Podstawowy układ pracy magicznego oka
41
Lampowy analizator widma
Rys. 2. Schemat blokowy lampowego analizatora widma
Oko magiczne przypomina trochÍ lampÍ oscyloskopow¹. Posiada katodÍ, siatkÍ steruj¹c¹, anodÍ, elektrody odchylaj¹ce i†úwiec¹cy ekran (rys. 1). NapiÍcie steruj¹ce podaje siÍ miÍdzy siatkÍ a†katodÍ. Anoda po³¹czona jest z†elektrod¹ (elektrodami) odchylaj¹c¹. W†obwÛd anody w³¹czony jest opornik obci¹øenia, a wiÍc lampa pracuje jak triodowy wzmacniacz oporowy, steruj¹cy elektrodÍ odchylaj¹c¹. Ekran znajduje siÍ pod sta³ym dodatnim wysokim potencja³em, zwykle 200...250 V. Na ekranie wyúwietlany jest znak o†zmieniaj¹cym siÍ kszta³cie, np. wycinek ko³a, pÛ³kola, prostok¹t. Znak zmienia wymiary przy zmianie potencja³u na siatce. Przy pe³nym wysterowaniu úwieci ca³a powierzchnia ekranu. Magiczne oka znalaz³y takøe zastosowanie w†magnetofonach szpulowych, w†ktÛrych wskazywa³y poziom wysterowania. Opracowano takøe kilka typÛw wskaünikÛw specjalnie przeznaczonych do odbiornikÛw UKFFM. By³y to wskaüniki podwÛjne, gdyø wskazywa³y takøe dostrojenie na ìzeroî charakterystyki dyskryminatora.
42
Oka magiczne stosowano takøe w†amatorskim sprzÍcie pomiarowym (np. mostki RLC), w†ktÛrych s³uøy³y jako wskaüniki rÛwnowagi zamiast galwanometrÛw.
Opis uk³adu Lampowy analizator widma pracuje analogicznie jak wspÛ³czesny pÛ³przewodnikowy. Jego schemat blokowy przedstawiono na rys. 2. Sygna³ stereofoniczny, doprowadzony do wejúcia uk³adu, zostaje wzmocniony i†zsumowany. Tak otrzymany sygna³ monofoniczny jest kierowany do zespo³u amplifiltrÛw (amplifiltr jest selektywnym wzmacniaczem). Do wyjúÊ amplifiltrÛw do³¹czone s¹ lampy wskaünikowe, z†ktÛrych kaøda wskazuje poziom sygna³u w†okreúlonym przedziale czÍstotliwoúci. Jako lampy wskaünikowe pracuj¹ magiczne oka. Aby zmniejszyÊ koszt wykonania analizatora, liczba zastosowanych wskaünikÛw jest ograniczona do czterech. Mimo ma³ej liczby wskaünikÛw, uk³ad analizuje ca³e s³yszalne pasmo czÍstotliwoúci. Dlatego amplifiltr steruj¹cy prac¹ wskaünika tonÛw niskich jest dolnoprzepustowy,
dwa amplifiltry tonÛw úrednich s¹ úrodkowoprzepustowe, a†amplifiltr tonÛw wysokich jest gÛrnoprzepustowy. Poniewaø nie zaleøy nam na duøej selektywnoúci amplifiltrÛw, to ich uk³ady mog¹ byÊ bardzo proste - nie zawieraj¹ indukcyjnoúci. Schemat elektryczny przedstawiono na rys. 3. Potencjometr P1 umoøliwia regulacjÍ czu³oúci ca³ego uk³adu. We wzmacniaczu wejúciowym-sumatorze pracuje lampa V1. Anody obu po³Ûwek tej lampy s¹ po³¹czone ze sob¹, dlatego przez kondensator C5 przechodzi sygna³ wzmocniony, bÍd¹cy sum¹ sygna³Ûw z†obydwu kana³Ûw. Sygna³ jest podawany na cztery amplifiltry o†charakterystykach czÍstotliwoúciowych pokazanych na rys. 4. Lampa V2 pracuje w†uk³adzie amplifiltru dolnoprzepustowego (zakres czÍstotliwoúci <160 Hz). Obcinanie wyøszych czÍstotliwoúci zapewnia filtr z³oøony z†elementÛw C15, C16, R12 (filtr typu Π). Wzmocniony sygna³ wyjúciowy amplifiltru jest kierowany na siatkÍ lampy wskaünikowej V6. Lampa V3 pracuje w†uk³adzie amplifiltru úrodkowoprzepustowego (maksimum wzmocnienia przy ok. 500 Hz). Zastosowano tu inne rozwi¹zanie uk³adu wzmacniacza selektywnego - zamiast filtru typu Π zastosowano ma³e wartoúci pojemnoúci sprzÍgaj¹cych C7 i†C12, nieprzepuszczaj¹cych sygna³Ûw o†ma³ej czÍstotliwoúci. Sygna³y o†wyøszych czÍstotliwoúciach s¹ zwierane do masy przez kondensatory C17 i†C21. Ten amplifiltr steruje lampÍ V7. Lampa V4 pracuje w†uk³adzie drugiego amplifiltru úrodkowoprzepustowego (maksimum wzmocnienia przy ok. 2†kHz), steruj¹cego lampÍ V8. Nie rÛøni siÍ budow¹ od omÛwionego poprzednio amplifiltru z†lamp¹ V3 (poza wartoúciami pojemnoúci kondensatorÛw). Wyjaúnienia wymaga jedynie zastosowanie kondensatorÛw C23 i†C24. OtÛø w†obwodach katod lamp wzmacniaj¹cych (w tym takøe V3) znajduj¹ siÍ rezystory, ktÛrych zadaniem jest ustalenie odpowiednich wartoúci wstÍpnych ujemnych potencja³Ûw siatek. Rezystory te wprowadzaj¹ ujemne pr¹dowe sprzÍøe-
Elektronika Praktyczna 3/2003
Lampowy analizator widma
Rys. 3. Schemat elektryczny analizatora
Elektronika Praktyczna 3/2003
43
Lampowy analizator widma
Rys. 4. Charakterystyki przenoszenia amplifiltrów z układu modelowego
nym) a†nie zmiennym? OtÛø wydaje siÍ celowe, aby czas reakcji wskaünikÛw na poziom sygna³u by³ krÛtki, a†nic siÍ z³ego nie stanie, jeøeli pop³ynie pr¹d siatki przy dodatnich pÛ³okresach napiÍcia steruj¹cego. Uk³ad zasilacza sk³ada siÍ z: transformatora sieciowego Tr1, mostka prostowniczego PR1, 2†kondensatorÛw (C10 i†C27) oraz rezystora (R33). Transformator Tr1 powinien dostarczaÊ napiÍcie anodowe o†wartoúci 180 VAC przy pr¹dzie 50†mA i†napiÍcie øarzenia 6,3 VAC przy pr¹dzie 2,8 A. Lampa ECC82 moøe pracowaÊ przy napiÍciu øarzenia 6,3 lub 12,6 V. Poniewaø przyjÍliúmy, øe bÍdzie pracowa³a przy napiÍciu 6,3 V, to napiÍcie øarzenia naleøy podaÊ na wyprowadzenie 9 i†zwarte ze sob¹ 4†i†5.
Wszystkie amplifiltry powinny nie zwrotne, powoduj¹ce znaczny mieÊ tak¹ sam¹ dobroÊ, aby b³¹d spadek wzmocnienia. W†tym amwskazaÒ poziomu sygna³u by³ w Montaø i†uruchomienie plifiltrze trzeba by³o nieco ìpodposzczegÛlnych pasmach czÍstotbiÊî wzmocnienie dla wyøszych Uk³ad zmontowano na wygiÍtej czÍstotliwoúci i†tak¹ funkcjÍ liwoúci podobny. Do wyrÛwnania w † ì U î o c y n k o w a n e j b l a s z e tych dobroci przewidziane s¹ o†gruboúci 1,5 mm, wysokoúci 60 spe³niaj¹ kondensatory C23 4†potencjometry montaøowe: P2, i†C24, ktÛre bocznikuj¹ w³aúnie mm, szerokoúci 250 mm i†d³ugoúdla wyøszych czÍstotliwoúci re- P3, P4, P5. Aby ca³y ekran oka ci 400 mm. Transformator sieciozystory R10 i†R23. DziÍki temu magicznego - lampy EM84 - siÍ wy jest zaekranowany obudow¹ úwieci³ (aby listki siÍ zesz³y), od zasilacza komputera. Doprowauzyskano korzystniejszy kszta³t napiÍcie na siatce steruj¹cej dzenia do siatek lamp powinny charakterystyki amplitudowopowinno wynosiÊ oko³o -20 V. byÊ ekranowane. czÍstotliwoúciowej amplifiltru. Nasuwa siÍ pytanie: dlaUrz¹dzenia lampowe zaczego zbocznikowano silane s¹ wysokimi napiÍSmaczki z przeszłości odpowiednimi kondensaciami, zwykle o†wartoúci Na zdjęciu z lewej strony torami takøe katody obu ponad 200 V, dlatego wypokazano magiczne oko 6E5 po³Ûwek lampy V1? magana jest jak najdalej z ekranem znajdującym się Lampa V1 pracuje japosuniÍta ostroønoúÊ i†pow górnej części szklanej bańki. ko wzmacniacz-sumator, rz¹dek przy montaøu. Na zdjęciu poniżej pokazano steruj¹cy prac¹ wszystPotencjalnym zagroøetuner AFT11 firmy Pioneer, kich czterech amplifiltniem jest takøe wysoka który pomimo nowoczesnego rÛw. Zaleøy nam wiÍc temperatura lamp podczas wyglądu (płyta czołowa na tym, aby lampa pracy. Dlatego niedopuszzapewnia³a duøe wzmocczalne jest stosowanie obunienie w†doúÊ szerokim dÛw plastikowych. Urz¹zakresie czÍstotliwoúci dzeniu naleøy zapewniÊ akustycznych. Dlatego dobre odprowadzanie ciepw†obwodach jej katod ³a. Nie zalecam wymuszoznajduj¹ siÍ kondensatonego ch³odzenia wiatrakary elektrolityczne C3 mi, gdyø wprowadzaj¹ niez drapanego aluminium) jest i†C4 o†znacznej pojempoø¹dane drgania. Godnym noúci, likwiduj¹ce ujem- zbudowany na lampach i wyposażono go w aż polecenia jest umieszczadwa magiczne oka. ne sprzÍøenie zwrotne nie lamp na zewn¹trz takøe dla ma³ych czÍsobudowy. £adnie wygl¹daDla lampy EM 800 napiÍcie to j¹, a†ciep³o jest dobrze odprowatotliwoúci. Pozosta³ jeszcze amplifiltr gÛr- wynosi oko³o -10 V. dzane. Dociekliwi mog¹ zapytaÊ, dlanoprzepustowy (czÍstotliwoúci poDo montaøu naleøy uøywaÊ wyøej 3...4 kHz) z†lamp¹ V5. czego w†obwodach siatek wskaü- przewodÛw o†odpowiedniej izolanikÛw V7, V8, V9, V10 nie cji i†úrednicy. Najgrubsze powinZastosowano bardzo ma³e wartoúci pojemnoúci sprzÍgaj¹cych C9 zastosowano diod prostowniczych, ny byÊ przewody øarzenia - p³yaby lampy by³y sterowane tylko n¹cy pr¹d ma natÍøenie nawet do i†C14. Z†wyjúcia amplifiltra jest napiÍciem wyprostowanym (ujem- kilku amperÛw. sterowana lampa wskaünikowa V9.
44
Elektronika Praktyczna 3/2003
Lampowy analizator widma
Rys. 5. Wyprowadzenia lamp zastosowanych w projekcie
Przy uruchomieniu analizatora pomocny by³by generator spe³niaj¹cy funkcjÍ ürÛd³a akustycznego sygna³u sinusoidalnego. Potencjometr P1 ustawiamy w†skrajnym prawym po³oøeniu, co zapewni maksymaln¹ czu³oúÊ uk³adu. Jeøeli nie pope³niliúmy b³ÍdÛw montaøowych, urz¹dzenie bÍdzie dzia³aÊ prawid³owo zaraz po w³¹czeniu i†nagrzaniu. NiezbÍdne jest jedynie wyregulowanie dobroci amplifiltrÛw. Po nagrzaniu powinny úwieciÊ siÍ wszystkie oka magiczne. Wyúwietlane listki powinny byÊ krÛtkie (3...4 mm). Podajemy sygna³ z†generatora akustycznego. Zmieniamy p³ynnie czÍstotliwoúÊ generatora (w zakresie 40...15000 Hz) - powinny kolejno reagowaÊ wszystkie wskaüniki. Maksymalne wartoúci sygna³u powinny wystÍpowaÊ przy oko³o 400 Hz dla drugiego i†oko³o 2†kHz dla trzeciego filtru. Naleøy znaleüÊ maksima dla drugiego filtru i†potencjometr P3 ustawiÊ tak, by úwiec¹cy listek wskaünika mia³ d³ugoúÊ np. 11 mm. Znajdujemy maksimum dla trzeciego filtru i†teø ustalamy (potencjometrem P4) d³ugoúÊ listkÛw na 11 mm. Podobnie postÍpujemy dla
Elektronika Praktyczna 3/2003
amplifiltrÛw pierwszego i†czwartego (za pomoc¹ P2, P5) na kraÒcach pasma, to jest dla oko³o 50 Hz i†oko³o 15 kHz. Potencjometrem P1 moøna regulowaÊ czu³oúÊ ca³ego uk³adu, gdyø ürÛd³em sygna³u mog¹ byÊ rÛøne urz¹dzenia. Jeúli ürÛd³em sygna³u bÍdzie np. CD, warto zamontowaÊ 4†gniazda chinch, aby sygna³ moøna by³o podaÊ do wzmacniacza bez koniecznoúci stosowania rozga³Íziaczy. Zastosowane lampy ECC82 s¹ obecnie produkowane. Natomiast wskaüniki EM84 s¹ czÍsto oferowane w†internetowych portalach aukcyjnych, a†moøna je zast¹piÊ takøe wskaünikami: EM800, EM87, EM83, EM80, EM81, EM34, EM4, 6E5C itd. NiektÛre maj¹ inny kszta³t úwiec¹cej czÍúci (ekranu) niø EM84. RÛøni¹ siÍ takøe kolejnoúci¹ wyprowadzenia elektrod i†czu³oúci¹. Karty katalogowe niektÛrych z†tych lamp publikujemy na p³ycie CD-EP3/2003B. Na koniec naleøy dodaÊ, øe w†takim uk³adzie jak prezentowany w†artykule, nie warto dodawaÊ kolejnych lamp wskaünikowych (zawÍøaÊ pasmo), gdyø trudno bÍdzie ìwcisn¹Êî kolejny filtr miÍdzy juø istniej¹ce i†wskazania dwÛch s¹siaduj¹cych lamp bÍd¹ bardzo podobne. ZwiÍkszanie liczby kana³Ûw ma sens dopiero po zastosowaniu znacznie bardziej rozbudowanych uk³adÛw amplifiltrÛw, co poci¹gnͳoby jednak za sob¹ koniecznoúÊ zastosowania wiÍkszej liczby lamp. Aleksander Zawada
[email protected]
WYKAZ ELEMENTÓW Rezystory R1, R2: 5,1kΩ/0,6W R3, R17: 47kΩ/0,6W R4...R7, R18...R20: 100kΩ/0,6W R8...R11, R21...R24: 10kΩ/0,6W R12: 56kΩ/0,6W R13...R16: 470kΩ/0,6W R25...R28: 1MΩ/0,6W R29...R32: 510kΩ/0,6W R33: 2,2kΩ/8W Potencjometry P1: 2x1MΩ logarytmiczny P2: 220kΩ montażowy P3...P5: 1MΩ montażowy Kondensatory C1, C2, C5: 100nF/400V C3, C4: 47µF/25V C6, C11, C15: 47nF/400V C7, C12: 560pF/500V ceramiczny C8, C13: 68pF/500V ceramiczny C9, C14: 15pF/500V ceramiczny C10: 22µF/400V C16, C20: 10nF/400V C19: 22nF/400V C17, C21: 6,8nF/400V C18, C22, C23, C24: 1nF/400V C26: 3,3nF/400V C27: 100µF/400V Lampy V1...V5: ECC82 V6...V9: EM84 lub inne według opisu Różne 2 gniazda chinch (albo 4) Tr1: transformator wg opisu 9 podstawek pod lampy typu noval PR1: mostek prostowniczy 1A/400V B: bezpiecznik 500mAT W: włącznik sieciowy
45
AVTR Nixie P O J Clock E K
T
Y
VHDL i lampy, część 2
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.
46
Montaø zegara P³ytka drukowana zegara jest jednoczeúnie jego baz¹ mechaniczn¹, na ktÛrej znajduj¹ siÍ wszystkie elementy elektroniczne, prze³¹czniki, transformator, a†takøe lampy Nixie oraz pomocnicza p³ytka drukowana, na ktÛrej s¹ zamontowane dwie neonÛwki spe³niaj¹ce rolÍ dwukropka. Ze wzglÍdu na duø¹ úrednicÍ szklanych baniek lamp wymiary p³ytki s¹ doúÊ znaczne (305 x†102 mm), ale jak pokaza³a praktyka, wygoda wynikaj¹ca ze zintegrowania wszystkich elementÛw zegara na jednej p³ytce rekompensuje doúÊ wysoki koszt wykonania takiej p³ytki. Schemat montaøowy p³ytki g³Ûwnej pokazano na rys. 8. W†urz¹dzeniu zastosowano dwa uk³ady scalone przystosowane do montaøu powierzchniowego - U1 oraz stabilizator napiÍcia 3,3 V†U3. O†ile montaø stabilizatora nie sprawi øadnej trudnoúci przeciÍtnie wyposaøonemu elektronikowi, to do montaøu uk³adu U1 jest niezbÍdna lutownica z†cienkim grotem oraz taúma rozlutownicza Wick. Moøna takøe podj¹Ê prÛbÍ zamontowania tego uk³adu w†wyspecjalizowanej firmie zajmuj¹cej
siÍ montaøem elementÛw SMD, ale ze wzglÍdu na trudn¹ dostÍpnoúÊ i†wysok¹ cenÍ takiej us³ugi zachÍcam do podjÍcia prÛby samodzielnego przylutowania uk³adu. Zaczynamy od posmarowania spodniej czÍúci obudowy uk³adu U1 odrobin¹ nieprzewodz¹cego kleju (doskonale sprawdzi³ siÍ butapren). NastÍpnie k³adziemy uk³ad na miejscu dla niego przeznaczonym, zwracaj¹c oczywiúcie uwagÍ na w³aúciw¹ orientacjÍ pierwszego wyprowadzenia uk³adu. Delikatnymi ruchami naleøy moøliwie dok³adnie umieúciÊ wyprowadzenia uk³adu na polach lutowniczych, na co przez kilka minut pozwala elastycznoúÊ kleju zastosowanego do przymocowania uk³adu. Teraz naleøy odczekaÊ co najmniej godzinÍ, co spowoduje, øe klej przestanie byÊ elastyczny, a†obudowa uk³adu trwale przymocowana do p³ytki drukowanej. W†zaleønoúci od úrednicy grota posiadanej lutownicy moøna zastosowaÊ dwa sposoby lutowania wyprowadzeÒ: - jeøeli grot jest ìgrubyî (úrednica koÒca wiÍksza niø 1,2 mm) najlepiej jest delikatnie przygrzewaÊ i†jednoczeúnie dociskaÊ
Elektronika Praktyczna 3/2003
AVT Nixie Clock
Rys. 9. Sposób wykonania podstawek do lamp
Rys. 8. Rozmieszczenie elementów na płytce drukowanej (widok zmniejszony do 80%)
Elektronika Praktyczna 3/2003
do pÛl lutowniczych po kolei grupy po kilka wyprowadzeÒ (ich liczba zaleøy od úrednicy/szerokoúci grota) - ale bez podawania dodatkowego topnika! Jeøeli wyprowadzenia uk³adu zostan¹ dobrze rozgrzane i†dociúniÍte, cyna znajduj¹ca siÍ na polach lutowniczych zwi¹øe siÍ z†nimi zapewniaj¹c dobre przewodzenie pr¹du. - jeøeli mamy do dyspozycji ìchudyî grot i†oczywiúcie wprawn¹ rÍkÍ moøna podj¹Ê ryzyko podania odrobiny dodatkowego topnika. ZwiÍkszy to prawdopodobieÒstwo dok³adnego i†trwa³ego przylutowania wyprowadzeÒ, ale grozi powstaniem zwarÊ pomiÍdzy s¹siednimi wyprowadzeniami uk³adu. Lekarstwem na to jest miedziana taúma rozlutownicza (np. Wick), za pomoc¹ ktÛrej moøna odci¹gn¹Ê nadmiar cyny, co w†wiÍkszoúci przypadkÛw spowoduje usuniÍcie zwarÊ. Kolejnym krokiem montaøowym jest wlutowanie w†p³ytkÍ drukowan¹ gniazdek ze sprÍøystymi stykami (FAS901), ktÛre
Rys. 10. Rozmieszczenie elementów na płytce drukowanej „dwukropka”
spe³niaj¹ rolÍ podstawki dla lamp Nixie. Poniewaø lampy s¹ montowane od strony ìlutowaniaî (czyli przeciwnej niø pozosta³e elementy), to gniazdka naleøy wlutowaÊ otworami od strony ìlutowaniaî, jak to pokazano na rys. 9. Ze wzglÍdÛw oszczÍdnoúciowych gniazdka naleøy wlutowaÊ wy³¹cznie pod te wyprowadzenia lamp, ktÛre s¹ wykorzystywane w†aplikacji. Nie dotyczy to lampy L1 (s¹ na niej wyúwietlane dziesi¹tki godzin), ktÛrej zaledwie trzy wyprowadzenia s¹ wykorzystywane. Aby zapewniÊ jej odpowiedni¹ stabilnoúÊ mechaniczn¹ naleøy zwiÍkszyÊ liczbÍ gniazd, przy czym sensowne minimum zapewnia takie ich rozmieszczenie, jak w†przypadku lampy L3 (s¹ na niej wyúwietlane dziesi¹tki minut). Od strony ìlutowaniaî montowane jest takøe gniazdo J1, ktÛre s³uøy do zamontowania p³ytki drukowanej z†dwiema neonÛwka-
Rys. 11. Widok okna konfiguracji programatora Uprog HS48 w trybie JTAG
47
AVT Nixie Clock
O JTAG−u słów kilka
Rys. 12. Widok okna konfiguracji programu iMPACT
mi (LP1 i†LP2, wkrÍcone w†oprawki), ktÛre spe³niaj¹ rolÍ dwukropka sygnalizuj¹cego odmierzanie czasu. Schemat montaøowy tej p³ytki pokazano na rys. 10. Montaø pozosta³ych elementÛw nie sprawi øadnych trudnoúci Czytelnikom z†choÊby niewielkim doúwiadczeniem, nie bÍdziemy siÍ wobec tego nim zajmowaÊ.
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 (konfigurowania) 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 poniżej. 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ść “operowa− nia” na układach dowolnie wybranych z całego łańcucha.
Uruchomienie zegara Uk³ad U1 jest wyposaøony w†pamiÍÊ konfiguracji typu Flash, ktÛr¹ moøna wielokrotnie reprogramowaÊ w†systemie za pomoc¹ wbudowanego w†uk³ad interfejsu JTAG. Korzystanie z†niego bardzo przypomina programowanie w†systemie mikrokontrolerÛw PIC lub AVR, a†do jego przeprowadzenia jest potrzebny ma³o skomplikowany interfejs portu drukarkowego, ktÛry opisaliúmy w†EP4/2001. Przeprowadzi³em takøe prÛby programowania uk³adu U1 za pomoc¹ programatora uniwersalnego UprogHS 48, ktÛry jest przystosowany do programowania w†systemie uk³adÛw wyposaøonych w†interfejs JTAG, co wymaga jedynie zastosowania 6-øy³owego kabla po³¹czeniowego, ktÛrego koÒcÛwki s¹ z†jednej strony zaciskane w†podstawce ZIF48 (rys. 11). Poniewaø projekt dla uk³adu U1 powsta³ w†oparciu o†bezp³atne narzÍdzie WebPack ISE, za pomoc¹ ktÛrego nie moøna wygenerowaÊ bezpoúrednio pliku w†formacie JAM-STAPL/SVF (ktÛre to formaty akceptuje UprogHS 48), trzeba dokonaÊ konwersji pliku wynikowego w†formacie JEDEC na SVF lub JAM-STAPL. Do tego celu s³uøy program iMPACT (rys. 12), ktÛry naleøy prze³¹czyÊ w†tryb pracy File Mode (w menu opcja Mode). Format pliku wynikowego moøna wybraÊ w†menu: Output>SVF File lub Out-
48
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.
put>STAPL File - w†naszym przypadku obydwa formaty s¹ rÛwnowaøne. Na fot. 13 pokazano ulokowanie z³¹cza JTAG na p³ytce zegara. Jak widaÊ, wszystkie sygna³y z³¹cza J2 zosta³y wyraünie opisane na p³ytce, co u³atwia do³¹czenie przewodÛw. Z†lewej strony tego z³¹cza widaÊ takøe jumper oznaczony 12/24H, za pomoc¹ ktÛrego moøna zmieniaÊ tryb zliczania czasu przez zegar. Programowanie uk³adu U1 niesie ze sob¹ pewne niebezpieczeÒstwo, poniewaø zegar nie jest odizolowany galwanicznie od sieci energetycznej. W†przypadku wiÍkszoúci klasycznych komputerÛw PC, ich obudowy w†przypadku üle wykonanej instalacji elektrycznej takøe mog¹ znaleüÊ siÍ na potencjale sieci, co grozi poraøeniem oraz uszkodzeniem zarÛwno
komputera, jak i†elementÛw zastosowanych w†zegarze. Zagroøenia tego nie moøna bagatelizowaÊ, dlatego gor¹co zachÍcam do zastosowania do zasilania zegara (lub PC) transformatora bezpieczeÒstwa 220 VAC/220 VAC, moøna pokusiÊ siÍ takøe o†zast¹pienie go UPS-em, ewentualnie zamiast komputera stacjonarnego moøna zastosowaÊ notebooka zasilanego podczas programowania z†wbudowanej baterii. Zaprogramowanie uk³adu U1 jest w†zasadzie jedyn¹ czynnoúci¹, jak¹ trzeba wykonaÊ podczas uruchamiania zegara. W†zaleønoúci od parametrÛw zastosowanego kwarcu X1 moøe okazaÊ siÍ konieczne zmodyfikowanie pojemnoúci kondensatora C7 - czÍstotliwoúÊ pracy generatora z†tranzystorem T30 powinna byÊ moøliwie bliska 32,768 kHz.
Elektronika Praktyczna 3/2003
AVT Nixie Clock List. 3. Opis połączeń pomiędzy elementami projektu 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 zegar is port ( jm: inout std_logic_vector(9 downto 0); dzm: inout std_logic_vector(5 downto 0); dzh: inout std_logic_vector(2 downto 1); jh: inout std_logic_vector(9 downto 0); ster_dk, szybko_wy, wolno_wy: out std_logic; clk_ref, res, mode, clk_set, res_a, set_a: in std_logic ); end zegar; architecture behavioral of zegar is component licznik_jm port ( clk: in std_logic; clk_o: out std_logic; res: in std_logic; outp: inout std_logic_vector(9 downto 0) ); end component licznik_jm; component licznik_dzm port ( clk: in std_logic; clk_o: out std_logic; res: in std_logic; outp: inout std_logic_vector(5 downto 0) ); end component licznik_dzm; component licznik_h port ( clk: in std_logic; res, mode: in std_logic; outp_j: inout std_logic_vector(9 downto 0); outp_dz: inout std_logic_vector(2 downto 1) ); end component licznik_h; component mux_2_1 port ( in0, in1, a : in std_logic; out_mux: out std_logic ); end component mux_2_1; component presk port ( szybko, wolno, wy_1_min, wy_1Hz, wy_4Hz: out std_logic; res, clk: in std_logic ); end component presk; signal a, d, clk_a, clk_min, clk_min_set: std_logic; signal clk_0, clk_1, int_1Hz, int_4Hz, nie_clk_a: std_logic; begin licz_j_minut: licznik_jm port map ( clk => clk_min_set, clk_o => clk_0, res => res, outp => jm ); licz_d_minut: licznik_dzm port map ( clk => clk_0, clk_o => clk_1, res => res, outp => dzm ); licz_h: licznik_h port map ( clk => clk_1, res => res, mode => mode, outp_j => jh, outp_dz => dzh ); mux_czasu: mux_2_1 port map ( in0 => clk_min, in1 => clk_set, a => a, out_mux => clk_min_set ); mux_dwukropka: mux_2_1 port map ( in0 => int_1Hz, in1 => int_4Hz, a => a, out_mux => ster_dk );
K³opoty z†generatorem Wykona³em dwa egzemplarze zegara, podczas uruchamiania ktÛrych okaza³o siÍ, øe generator sygna³u wzorcowego jest bardzo czu³y na parametry oscylatora kwarcowego X1. Praktycznie w†obydwu przypadkach konieczne by³o wyselekcjonowanie kwarcu, ktÛry wzbudza³ generator. Aby unikn¹Ê problemÛw podczas uruchamiania powsta³ znacznie stabilniejszy generator, ktÛrego schemat elektryczny pokazano na rys. 14. Jest to - jak widaÊ - klasyczny generator z†niebuforowanym uk³adem CMOS typu 4069. Sygna³ z†wyjúcia generatora jest buforowany przez inwerter U1B, a†pozosta³e inwertery nie s¹ wykorzystywane i†maj¹ wejúcia zwarte do masy. Do regulacji czÍstotliwoúci pracy generatora s³uøy trymer C3. Schemat montaøowy generatora oraz†sposÛb zainstalowania na p³ytce drukowanej (za pomoc¹ piÍciu pojedynczych szpilek ìgold-pinî o†d³ugoúci 17 mm) pokazano na rys. 15. W†przypadku zastosowania generatora z†rys. 14 na p³ytce g³Ûwnej nie montujemy elementÛw: T30, R39, R40, R41, X1, C7 i†C9.
Modyfikacje U1 Dzia³anie uk³adu U1 (ìsercaî zegara) zosta³o opisane w†jÍzyku VHDL (komplet ürÛde³ opublikowaliúmy na CD-EP2/2003B). DziÍki zastosowaniu niezwykle elastycznego uk³adu PLD, ktÛrego dzia³anie jest modelowane za pomoc¹ jÍzyka opisu sprzÍtu, kaødy z†CzytelnikÛw moøe samodzielnie zmodyfikowaÊ jego dzia³anie lub zwiÍkszyÊ moøliwoúci zegara. PokaøÍ teraz prosty
Fot. 13. Umieszczenie złącza JTAG na płytce zegara
przyk³ad modyfikacji opisu, co spowoduje zmianÍ sposobu sygnalizowania prze³¹czenia zegara w†tryb ustawiania czasu. W†modelowych egzemplarzach podczas normalnego zliczania czasu dwukropek miga z†czÍstotliwoúci¹ 1†Hz, natomiast po prze³¹czeniu w†tryb ustawiania czasu zaczyna³ migaÊ z†czÍstotliwoúci¹ 4†Hz (zgodnie ze schematem blokowym z†rys. 6†- EP2/2003). Za prze³¹czanie sygna³u steruj¹cego dwukropkiem odpowiada multiplekser mux_dwukropka (list. 3). ZwrÛÊmy uwagÍ na poniøszy fragment tego listingu: mux_dwukropka: mux_2_1 port map ( in0 => int_1Hz, in1 => int_4Hz, a => a, out_mux => ster_dk );
Wejúciu in1 multilpeksera jest przypisany sygna³ o†nazwie int_4Hz, pobierany z†wyjúcia clk_4_Hz preskalera czÍstotliwoúci wzorcowej. ProponujÍ zmieniÊ sposÛb sygnalizowania prze³¹cze-
preskaler: presk port map ( szybko => szybko_wy, wolno => wolno_wy, wy_1_min => clk_min, res => res, clk => clk_ref, wy_1Hz => int_1Hz, wy_4Hz => int_4Hz ); -- przerzutnik D adresujacy multipleksery -- wybor trybu pracy: uwstawianie/czas d_ff: process (clk_a, res) begin if res = ‘1’ then a <= ‘0’; elsif clk_a = ‘1’ and clk_a’event then a <= d; end if; d <= not a; end process d_ff; -- przerzutnik RS likwidujacy drgania stykow clk_a <= ‘0’ when res_a = ‘1’ else ‘1’ when set_a = ‘1’ else clk_a; nie_clk_a <= ‘1’ when res_a = ‘1’ else ‘0’ when set_a = ‘1’ else clk_a; end behavioral;
Elektronika Praktyczna 3/2003
Rys. 14. Schemat elektryczny zmodyfikowanego generatora wzorcowego
49
AVT Nixie Clock
Rys. 15. Sposób montażu generatora wzorcowego
nia w†tryb ustawiania - zamiast szybkiego migania dwukropek bÍdzie siÍ úwieci³ na sta³e. Wymaga to wprowadzenia jednej zmiany w†opisie sposobu przy³¹czenia multipleksera mux_dwukropka, jak to pokazano na listingu poniøej: mux_dwukropka: mux_2_1 port map ( in0 => int_1Hz, in1 => '1', -- ^Tu wprowadzono zmiane! a => a, out_mux => ster_dk );
niach zasilaj¹cych specjalnego d³awika odk³Ûcaj¹cego (rys. 16), ktÛry zosta³ wymontowany ze starego zasilacza z†PC. Cech¹ charakterystyczn¹ tego d³awika jest to, øe ma dwa uzwojenia nawiniÍte wspÛ³bieønie i†symetrycznie na jednym rdzeniu, co znakomicie likwiduje zak³Ûcenia impulsowe. Alternatywnym wyjúciem moøe byÊ zastosowanie gniazda sieciowego z†wbudowanym filtrem LC (dostÍpne m.in. w†Elfie i†TME). Piotr Zbysiñski, AVT
[email protected]
Kaøda wprowadzona zmiana wymaga oczywiúcie ponownego skompilowania opisu i†zaprogramowania uk³adu U1.
W†artykule wykorzystano zdjÍcia i†informacje pochodz¹ce ze stron:
Likwidacja zak³ÛceÒ Podczas eksploatacji zegara w†warunkach domowych wp³yw zak³ÛceÒ wystÍpuj¹cych w†sieci energetycznej na jego dzia³anie by³ trudny do wychwycenia. Smutna prawda objawi³a siÍ po przeprowadzeniu kilku prÛb w†úrodowisku semi-przemys³owym, gdzie do linii zasilaj¹cych s¹ do³¹czone silniki duøej mocy, lampy sodowe i†úwietlÛwki z†zap³onnikami bimetalicznymi, a†takøe impulsowe regulatory mocy. Zak³Ûcenia wystÍpuj¹ce w†liniach zasilaj¹cych powodowa³y, øe zegar doúÊ zmienia³ swoje ustawienia, czÍsto uk³ad U1 ìzawiesza³ siÍî. Okaza³o siÍ, øe doskona³ym lekarstwem na problemy tego typu by³o zastosowanie w†li-
50
- http://www.webx.dk/oz2cpu/index.htm, - http://www.arttec.net/art/Relevators.html, - http://www.amug.org/~jthomas/ieeenix.html, - http://w1.871.telia.com/~u87127080/ ind/z560m.htm, - http://www.mif.pg.gda.pl/homepages/ frank/sheets/084/z/Z560M.pdf.
Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/marzec03.htm oraz na p³ycie CD-EP3/2003B w katalogu PCB.
Rys. 16. Sposób włączeani dławika odkłócającego w linię zasilania
Elektronika Praktyczna 3/2003
P R O G R A M Y
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 powsta³a na bazie wieloletnich doúwiadczeÒ firmy i†³¹czy najlepsze cechy wszystkich poprzednich edycji tego znanego elektronikom programu. Protel DXP posiada wiele nowych cech, niespotykanych dot¹d wúrÛd narzÍdzi tej klasy, a†maj¹cych istotny wp³yw na sprawnoúÊ i†wygodÍ projektowania. W†cyklu artyku³Ûw, ktÛry w³aúnie rozpoczynamy, postaram siÍ opisaÊ moøliwoúci tego naprawdÍ potÍønego narzÍdzia.
Elektronika Praktyczna 3/2003
Na wstÍpie trzeba zaznaczyÊ, øe program jest nadal intensywnie rozwijany. Poprawki, zmiany i†nowe funkcje wprowadzane przez firmÍ Altium s¹ udostÍpniane za poúrednictwem Internetu w†formie plikÛw Service Pack. Od daty oficjalnej premiery, ktÛra odby³a siÍ 29 lipca 2002, program doczeka³ siÍ juø drugiego Service Packa. Jest to o†tyle istotne, øe czÍúÊ funkcji, o†ktÛrych dalej wspomnimy, zosta³a zaimplementowana dopiero w†najnowszej edycji - Protel DXP Service Pack 2. Informacja o†wersji programu jest dostÍpna z†poziomu menu po wybraniu Help>About rys. 1.
Ze wzglÍdu na to, øe Protel DXP jest bardzo rozbudowanym narzÍdziem, trudno by by³o opisaÊ wszystkie jego moøliwoúci w†kilku artyku³ach. Na szczÍúcie dostÍpna jest wersja demonstracyjna programu pozwalaj¹ca poznaÊ moøliwoúci programu, ktÛra dzia³a przez 30 dni. Moøna j¹ úci¹gn¹Ê ze stron producenta www.protel.com lub otrzymaÊ na p³ycie CD.
TrochÍ historii Zanim przejdziemy do konkretÛw, warto cofn¹Ê siÍ o†kilka lat i†zapoznaÊ z†losami programu od
51
P R O G R A M Y
jego pocz¹tkÛw, poniewaø mia³y one wp³yw na kszta³t dzisiejszej wersji. Ma³o kto pamiÍta, øe historia Protela zaczyna siÍ jeszcze w†czasach DOS-a od programu Autotrax. Znam osoby, ktÛre jeszcze do dzisiaj korzystaj¹ z†programÛw Autotrax i†Schematic dla DOS-a - pierwszych produktÛw firmy Protel International. Autotrax, jak na Ûwczesne czasy, by³ znakomitym i†przyjemnym w†obs³udze narzÍdziem. Wystarczy wspomnieÊ, øe jeszcze w†po³owie lat dziewiÍÊdziesi¹tych cieszy³ siÍ w†Polsce sporym zainteresowaniem. Wraz z†nastaniem epoki Windows dostrzeøono zalety úrodowiska graficznego, ktÛre w†istotny sposÛb u³atwia³o pracÍ z†programami i†otwiera³o przed uøytkownikami nowe moøliwoúci. W³aúnie wtedy firma Protel zdecydowa³a postawiÊ na Windows i†jako pierwsza na úwiecie opracowa³a profesjonalny pakiet oprogramowania dla elektronikÛw pracuj¹cy w†tym úrodowisku. Tak powsta³a pierwsza wersja oprogramowania Protel dla Windows. Jednolity i†³atwy w obs³udze graficzny interfejs uøytkownika oraz moøliwoúÊ jednoczesnego uruchamiania kilku aplikacji powodowa³y, øe z†programami pracowa³o siÍ ³atwiej i†efektywniej. W†czasach, kiedy konkurencja nadal oferowa³a nieprzyjazne dla uøytkownika programy dla DOS-a, Protel rozwija³ siÍ konsekwentnie w†kierunku dogodnego i†³atwego w†obs³udze, zintegrowanego systemu EDA dla Windows. Kolejny znacz¹cy prze³om nast¹pi³ w†momencie przejúcia z†wersji 2.x do 3.x. Wtedy do Protela wprowadzono innowacyjne rozwi¹zanie nazwane EDA/Client - pierwowzÛr dzisiejszego úrodowiska Design Explorer. EDA/Client by³a to plat-
forma, ktÛra po³¹czy³a wszystkie sk³adniki pakietu w†ca³oúÊ, daj¹c jednolity interfejs uøytkownika i†dogodne mechanizmy wymiany danych pomiÍdzy poszczegÛlnymi edytorami - czÍúciami sk³adowymi systemu. Od tego momentu Protel zmieni³ siÍ z†kilku osobnych programÛw w†pakiet zintegrowany. To innowacyjne rozwi¹zanie przyczyni³o siÍ do dalszej poprawy komfortu i†efektywnoúci pracy, a†jednoczeúnie umocni³o pozycjÍ rynkow¹ Protela. Platforma EDA/Client da³a podstawÍ do rozbudowy pakietu o†nowe modu³y. Do dwÛch podstawowych sk³adnikÛw Protela, tj. Advanced Schematic oraz Advanced PCB, zosta³y do³¹czone kolejno: dobrej klasy auotorouter nazwany Advanced Route, symulator analogowo-cyfrowy Advanced SIM oraz niezbyt w†Polsce popularny Advanced PLD. Taki zestaw zintegrowanych narzÍdzi juø wtedy tworzy³ z†pakietu Protel jednolit¹ i†kompletn¹ platformÍ do projektowania PCB. Kolejne lata przynios³y nowe, coraz doskonalsze wersje. W†1998 roku pojawi³ siÍ Protel 98, funkcjonalnie niewiele zmieniony, ale dostosowany do specyfiki nowych, 32-bitowych systemÛw Windows. Wiosn¹ 1999 roku pojawi³a siÍ kolejna wersja - Protel 99, ktÛra w†ci¹gu kilku miesiÍcy zosta³a zast¹piona znacznie udoskonalon¹ Protel 99 SE. Moøliwoúci tego narzÍdzia s¹ zapewne wielu Czytelnikom znane, zarÛwno z†wczeúniejszych publikacji, jak i†z†racji duøej popularnoúci tego programu. Protel 99SE rozwijany przez kilka lat, doczeka³ siÍ wielu poprawek, z†ktÛrych najnowsza (i juø ostatnia) wersja jest oznaczona Service Pack 6. RÛwnoczeúnie trwa³y prace nad nastÍpc¹ tego programu. Protel po debiucie na gie³dzie zakoÒczonym sukcesem, rozpocz¹³ dynamiczn¹ ekspansjÍ rynkow¹, d¹ø¹c do rozszerzenia swojej oferty w†taki sposÛb, aby zaspokoiÊ wszystkie potrzeby projektanta-elektronika. W†krÛtkim czasie Protel przej¹³ kilka firm. Wszed³ w†posiadanie m.in. konkurencyjnego P-CAD-a, programu Circuit Maker, edytora CAMtastic! oraz pakietu Peak FPGA firmy Accolade. W†lecie 2001 nast¹pi³o przejÍcie firmy Tasking - úwiatowego lidera w†dziedzinie narzÍdzi programis-
Rys. 2
Rys. 3
Rys. 1
52
Elektronika Praktyczna 3/2003
P R O G R A M Y
Rys. 4
Rys. 5
tycznych dla procesorÛw i†mikrokontrolerÛw jednouk³adowych, od popularnego 8051 pocz¹wszy, a†skoÒczywszy na najnowszych procesorach sygna³owych i†mikrokontrolerach 32-bitowych. Nied³ugo po przejÍciu Taskinga, nast¹pi³a zmiana nazwy firmy Protel International na obecn¹ Altium. W†ten sposÛb stara nazwa pozosta³a nadal, ale juø tylko jako wyrÛønik sztandarowego produktu - programu Protel. Zachowano takøe marki pozosta³ych narzÍdzi, skupionych w†poszerzonej ofercie Altium. Wieloletnie doúwiadczenia, przemyúlana i†konsekwentnie realizowana strategia oraz nowe technologie pozyskane w†wyniku przejÍcia kilku firm nie pozosta³y bez wp³ywu na kszta³t najnowszych produktÛw firmy Altium - programÛw Protel DXP i†nVisage DXP.
tycji w†nowe systemy operacyjne, a†czÍsto rÛwnieø w†lepszy sprzÍt. Jednak s¹ to inwestycje, ktÛre warto ponieúÊ, poniewaø gwarantuj¹ komfort, duø¹ wydajnoúÊ i†bezpieczeÒstwo pracy. Inna powaøna wada nowego Protela to spore wymagania sprzÍtowe. Wprawdzie minimum zosta³o okreúlone na poziomie Windows 2000 Professional, Pentium 500 MHz, 128 MB RAM, 620 MB przestrzeni dyskowej i†grafika o†rozdzielczoúci 1024x786, ale te dane naleøy traktowaÊ jako prawdziwe minimum niezapewniaj¹ce komfortu pracy. Optymalna konfiguracja systemu powinna zawieraÊ Windows XP (Home lub Professional), procesor z†zegarem o†czÍstotliwoúci min. 1,2 GHz, 512 MB RAM, 620 MB przestrzeni dyskowej i†grafikÍ o†rozdzielczoúci 1280x1024 z†32 MB pamiÍci. Dla pe³nego komfortu wskazany jest rÛwnieø drugi monitor - Protel DXP obs³uguje bowiem konfiguracje wielomonitorowe. Naleøy rÛwnieø zaznaczyÊ, øe zapotrzebowanie programu na pamiÍÊ operacyjn¹ roúnie w†miarÍ wzrostu wielkoúci i†skomplikowania projektu. Przy wiÍkszych projektach, a†szczegÛlnie podczas korzystania z†automatycznego prowadzenia úcieøek, nawet 1†GB pamiÍci RAM nie bÍdzie przesad¹. Jeúli zapotrzebowanie na RAM przerasta iloúÊ dostÍpnej pamiÍci, system wykorzystuje pamiÍÊ wirtualn¹ i†program nadal dzia³a, jednak znacznie wolniej. Jeúli jednak weümiemy pod uwagÍ, jak ogromne moøliwoúci oferuje Protel DXP, to jego wymagania sprzÍtowe stan¹ siÍ zrozumia³e. Mamy do czynienia z†aplikacj¹, ktÛra ³¹czy w†sobie zaawansowany hierarchiczny edytor schematÛw, symulator analogowo-cyfrowy klasy SPICE 3f5, pe³ny zestaw narzÍdzi do projektowania FPGA z†symulacj¹ i†syntez¹ VHDL w³¹cznie, rozbudowan¹ analizÍ sygna³ow¹ obwodÛw, potÍøny edytor PCB sterowany regu³ami, najnowszy au-
Czym wyrÛønia siÍ Protel DXP? Protel DXP jest systemem nowoczesnym pod kaødym wzglÍdem. Jest to program przystaj¹cy do aktualnych trendÛw w†elektronice, wymagaÒ i†potrzeb projektantÛw oraz moøliwoúci wspÛ³czesnych komputerÛw i†najnowszych systemÛw operacyjnych. To obecnie jedyny system projektowy EDA, zaprojektowany specjalnie pod k¹tem wykorzystania zalet najnowszych wersji Windows 2000 Professional oraz Windows XP. Wi¹øe siÍ to niestety z†pewnymi niedogodnoúciami. Przede wszystkim, program nie zainstaluje siÍ na øadnej ìdomowejî wersji okienek - Windows 95, 98 i†Millenium, odpada rÛwnieø stabilny, ale doúÊ stary Windows NT 4. Moøe siÍ nie podobaÊ taki stan rzeczy, ale jest to rozwi¹zanie s³uszne. Nie od dziú wiadomo, øe Windows 9x to systemy przystosowane do zastosowaÒ domowych, gdzie wydajnoúÊ i†stabilnoúÊ ma znaczenie drugorzÍdne. Znacznie lepszym úrodowiskiem, z†za³oøenia opracowanym do zastosowaÒ profesjonalnych, jest Windows NT i†jego nastÍpcy tj. Windows 2000 oraz najnowszy Windows XP. Dlatego w³aúnie moøliwoúÊ instalowania nowego Protela DXP zosta³a ograniczona do tej platformy systemowej. To doúÊ odwaøne i†ryzykowne posuniÍcie ze strony producenta, poniewaø zawÍøa kr¹g potencjalnych uøytkownikÛw lub zmusza ich do inwes-
54
Elektronika Praktyczna 3/2003
P R O G R A M Y torouter topologiczny Situs zintegrowany z†PCB, edytor CAM z†ca³¹ gam¹ moøliwoúci generowania plikÛw produkcyjnych oraz wiele narzÍdzi do weryfikacji projektu i†tworzenia rÛønorodnych zestawieÒ i†raportÛw. Do tego dochodzi potÍøny mechanizm synchronizacji, ktÛry dba o†zachowanie spÛjnoúci projektu i†wymianÍ informacji pomiÍdzy poszczegÛlnymi modu³ami. DziÍki temu, uøytkownik ma w†zasiÍgu rÍki ca³y zestaw narzÍdzi potrzebnych do wykonania projektu elektronicznego, a†praca z†programem jest naturalna i†efektywna.
Wprowadzenie, czyli rzut oka na interfejs uøytkownika Uwaøni Czytelnicy zwrÛcili na pewno uwagÍ na nazwÍ nVisage, ktÛra pojawi³a siÍ juø w†artykule. nVisage DXP to nazwa programu, ktÛry realizuje pewn¹ czÍúÊ funkcji dostÍpnych w†pe³nym Protelu DXP, okreúlanych czÍsto terminem design entry. Obejmuje on, oprÛcz edytorÛw schematÛw i†VHDL, szereg narzÍdzi do analizy, symulacji i†przygotowania projektu do dalszej implementacji, np. na p³ycie PCB za pomoc¹ programu Protel. Wszystko to, co oferuje nVisage, jest dostÍpne rÛwnieø w†Protelu, a†rÛønice omÛwimy dalej. ZarÛwno nVisage, jak i†Protel s¹ úrodowiskami zorientowanymi na projekt, wyposaøonymi w†nowe narzÍdzia do zarz¹dzania i†poruszania siÍ po nim. Wspomagaj¹ rÛwnieø zaawansowane funkcje, takie jak np. projektowanie wariantowe, projektowanie urz¹dzeÒ wielokana³owych, zarz¹dzanie wersjami oraz pracÍ grupow¹. RÛwnieø interfejs uøytkownika zosta³ przeprojektowany w†stosunku do wersji znanych z†Protela 99SE. Zapewne dziÍki temu ma wiÍksz¹ funkcjonalnoúÊ i†lepsze wykorzystanie przestrzeni roboczej. Nowe elementy, takie jak panele, mog¹ byÊ dowolnie przemieszczane i†ustawione w†kilku trybach pracy. Automatyczne ìprzyciemnianieî p³ywaj¹cych paneli oraz paskÛw narzÍdziowych podczas wykonywania operacji edycyjnych, obs³uga dwÛch monitorÛw, dostosowywanie interfejsu metod¹ ìkliknij i†przeci¹gnijî, wszystko to powoduje, øe proces projektowania jest bardziej wydajny i†przyjemny. Na rys. 2 pokazano wygl¹d g³Ûwnego okna programu z†widoczn¹ pust¹ przestrzenia robocz¹ oraz kilkoma elementami interfejsu uøytkownika. Rzucaj¹ siÍ w†oczy charakterystyczne, duøe ikony rozmieszczone w†g³Ûwnym oknie programu. Za ich pomoc¹ moøemy uruchomiÊ podstawowe zadania, jak np. tworzenie nowego projektu lub zarz¹dzanie licencjami, otworzyÊ istniej¹cy projekt b¹dü
56
dokument lub skorzystaÊ z†kilku wariantÛw wbudowanej pomocy lub dokumentacji. Z†lewej strony widaÊ zakotwiczony panel z†widokiem projektÛw, u†gÛry niewielkie menu oraz pasek narzÍdziowy, a†na dole charakterystyczne dla Protela dwie linie statusu, ktÛre podczas pracy wyúwietlaj¹ komunikaty programu. ProszÍ zwrÛciÊ uwagÍ, øe menu i†paski narzÍdziowe dostosowuj¹ siÍ do kontekstu oraz aktywnego edytora. Na pokazanej ilustracji widaÊ, øe øaden dokument nie jest aktualnie otwarty, wiÍc niewielkie menu i†pasek narzÍdziowy obejmuj¹ tylko podstawowy zestaw funkcji. Na rys. 3†pokazano okno z†otwartym dokumentem PCB. WidaÊ, øe liczba pozycji menu i†paskÛw narzÍdziowych wzros³a, dostosowuj¹c siÍ do potrzeb edytora PCB. WidaÊ rÛwnieø nowy panel PCB po lewej stronie okna, u³atwiaj¹cy nawigacjÍ po dokumencie. Duøa liczba rÛønych elementÛw interfejsu uøytkownika moøe przeszkadzaÊ, dlatego kaødy z†nich moøna wy³¹czyÊ, zyskuj¹c wiÍksz¹ przestrzeÒ na edytowany dokument.
nVisage i†Protel RÛønice pomiÍdzy nVisage i†Protelem wynikaj¹ z†odmiennego przeznaczenia tych narzÍdzi. nVisage naleøy traktowaÊ jako narzÍdzie dla projektanta, ktÛry opracowuje urz¹dzenie, ale nie zajmuje siÍ jego implementacj¹ na p³ycie. Zawiera wiÍc wszystkie funkcje potrzebne do rysowania schematÛw i†ich analizy, a†takøe pewne narzÍdzia zwi¹zane z†PCB - takie, ktÛrych moøe potrzebowaÊ inøynier projektant. Te narzÍdzia to: transfer informacji ze schematu do PCB, rozmieszczanie elementÛw, definiowanie regu³ projektowych, drukowanie oraz analiza sygna³owa obwodu. Protel zawiera wszystkie cechy programu nVisage plus narzÍdzia znane z†Protela PCB oraz programy potrzebne do weryfikacji i†generowania wszelkiego rodzaju plikÛw wyjúciowych dla wytwÛrni, czyli programy z†zakresu okreúlanego skrÛtem CAM.
Wielowymiarowe podejúcie do projektowania nVisage DXP i†Protel DXP s¹ úrodowiskami projektowymi, ktÛre cechuj¹ siÍ wielowymiarowym podejúciem do procesu projektowania. Oznacza to, øe projekt moøemy wykonaÊ na wiele sposobÛw, korzystaj¹c z†wielu narzÍdzi oferowanych przez program. Przyk³adowo, projekt uk³adu logicznego w strukturze FPGA moøemy wykonaÊ zarÛwno w†formie schematu, jak i†opisu w†jÍzyku VHDL, a nastÍpnie zrealizowaÊ wybieraj¹c jedn¹ z†wielu platform implementacyjnych, np. firm Xilinx lub Altera.
Protel DXP daje nam do dyspozycji ca³¹ gamÍ narzÍdzi potrzebnych do wykonania projektu od pocz¹tku do koÒca. Wyobraümy sobie, øe projektujemy bardzo z³oøony system, sk³adaj¹cy siÍ zarÛwno z†czÍúci analogowej, jak i†cyfrowej, w†ktÛrym wykorzystamy rÛwnieø uk³ad programowalny FPGA. Juø na wstÍpie mamy do dyspozycji moøliwoúÊ projektowania w†formie schematÛw, jak i†jÍzyka opisu sprzÍtu VHDL. Tworz¹c schematy moøemy korzystaÊ z†rÛønorodnych bibliotek elementÛw, rÛwnieø pochodz¹cych z†innych programÛw, jak np. OrCAD-a. Moøemy rÛwnieø importowaÊ, w†ca³oúci lub w†czÍúci, projekty wykonane za pomoc¹ innych programÛw, jak np. OrCAD-a, PCAD-a. Mamy do dyspozycji ca³¹ gamÍ moøliwoúci analizy, np. za pomoc¹ symulatora analogowo-cyfrowego, analizatora sygna³owego, symulatora opisÛw VHDL, nie wspominaj¹c o†bieø¹cej weryfikacji poprawnoúci sk³adni jÍzyka czy b³ÍdÛw ìrysunkowychî w†schematach. Przygotowane projekty moøna implementowaÊ zarÛwno na p³ytÍ PCB, jak i†do uk³adu programowalnego FPGA. Do tego wszystkiego jest dostÍpna ca³a gama moøliwych do wygenerowania raportÛw, zestawieÒ czy plikÛw wyjúciowych CAM. Podstaw¹ kaødego projektu w†programach nVisage i†Protel jest plik projektu. £¹czy on wszystkie elementy sk³adowe, w†tym schematy ürÛd³owe i†tekstowe pliki VHDL, listy po³¹czeÒ (netlists), dowolne biblioteki lub modele, ktÛre projektant chce zachowaÊ w†projekcie, p³yty PCB i†inne dokumenty. Plik projektu przechowuje takøe niektÛre ustawienia, takie jak np. konfiguracja weryfikacji b³ÍdÛw, po³¹czenia pomiÍdzy arkuszami schematÛw, plan oznaczeÒ elementÛw w†projektach wielokana³owych. Aktualnie programy nVisage i†Protel obs³uguj¹ trzy typy projektÛw: projekty typu FPGA (uk³ady programowalne), projekty typu PCB (p³yty drukowane) oraz tzw. Library Package, czyli pliki nowych zintegrowanych bibliotek ( rys. 3). Powi¹zane projekty typu PCB i†FPGA, np. tworz¹ce razem jedno urz¹dzenie, mog¹ byÊ po³¹czone w†grupÍ (Project Group), daj¹c¹ ³atwy dostÍp do wszystkich plikÛw powi¹zanych z†danym urz¹dzeniem. Kiedy do projektu jest dodawany jakiú dokument, ³¹cze do niego zostaje zapisane w†pliku projektu. Dokumenty mog¹ znajdowaÊ siÍ gdziekolwiek na dysku lub w†sieci - nie musz¹ znajdowaÊ siÍ w†tym samym folderze, co plik projektu. Dodanie do aktywnego projektu nowego dokumentu wymaga klikniÍcia prawym przyciskiem myszy na dowolnym dokumencie w†projekcie, a†nastÍpnie wy-
Rys. 6 brania polecenia New z†p³ywaj¹cego menu Project . Zwracam uwagÍ, øe w†ten sposÛb tylko dodajemy dokument do projektu. Jeúli chcemy, aby arkusz schematu sta³ siÍ czÍúci¹ hierarchii, naleøy wstawiÊ symbol arkusza na schemacie nadrzÍdnym i†wype³niÊ jego pole Filename nazw¹ pliku arkusza podrzÍdnego. W Protelu DXP wystÍpuje istotna rÛønica w†znaczeniu projektu w†stosunku do Protela 99, w†ktÛrym mieliúmy do czynienia z†baz¹ danych projektu zachowuj¹cej wszystkie dokumenty sk³adowe. DostÍp do poszczegÛlnych plikÛw by³ moøliwy tylko z†poziomu programu Design Explorer, ktÛry potrafi³ otworzyÊ lub wyeksportowaÊ dany dokument na zewn¹trz bazy danych. To rozwi¹zanie, pozwalaj¹ce wprawdzie utrzymaÊ porz¹dek i†spÛjnoúÊ projektu, by³o doúÊ uci¹øliwe w†praktyce i†zawodne w†przypadku uszkodzenia struktury bazy projektu, problemÛw ze sterownikami itp. Protel DXP odchodzi od takiej formy przechowywania projektu i†daje pe³n¹ swobodÍ w†wyborze lokalizacji i†dostÍpu do poszczegÛlnych dokumentÛw wchodz¹cych w†sk³ad projektu. W†pliku projektu DXP przechowywane s¹ tylko ³¹cza do dokumentÛw sk³adowych, pozwalaj¹c uøytkownikowi zarz¹dzaÊ ca³oúci¹, ale nie ograniczaj¹c bezpoúredniego dostÍpu do poszczegÛlnych plikÛw. Takie rozwi¹zanie ma jeszcze jedn¹ zaletÍ. Te same dokumenty mog¹ wchodziÊ w†sk³ad rÛønych projektÛw. Jeúli mamy np. arkusz schematu zawieraj¹cy gotowy blok zasilacza, moøemy go ìpodpi¹Êî do kilku rÛønych projektÛw, bez koniecznoúci powielania dokumentu w†rÛønych miejscach na dysku.
Kilka trybÛw tworzenia schematÛw ZarÛwno nVisage, jak i†Protel DXP tworz¹ wszechstronny i†w†pe³ni zintegrowany system projektowania PCB i†uk³adÛw PLD. Projekt moøe byÊ przygotowany w†formie schematu lub po³¹czenia schematÛw i†opisu w†jÍzyku VHDL. Podobnie jak w†poprzednich wersjach Protela, edytor schematÛw obs³uguje projekty hierarchiczne. Daje moøliwoúÊ tworzenia struktury z†gÛry na dÛ³ oraz z†do³u do gÛry, przy uøyciu diagramÛw blokowych symbolizuj¹cych po³¹czenia pomiÍdzy arku-
Elektronika Praktyczna 3/2003
P R O G R A M Y
szami w†hierarchii - kaødy blok reprezentuje indywidualny arkusz schematu (rys. 5). Poza tradycyjnym modelem projektu, nVisage i†Protel obs³uguj¹ rÛwnieø ìprawdziweî projekty wielokana³owe. W†odrÛønieniu od innych programÛw, ktÛre sp³aszczaj¹ hierarchiÍ i†powielaj¹ arkusze podczas konstruowania wielu kana³Ûw, nVisage i†Protel ca³y czas zachowuj¹ hierarchiÍ projektu. Hierarchia pro-
Elektronika Praktyczna 3/2003
jektu zostaje zachowana rÛwnieø w†przypadku kilkustopniowego zagnieødøenia, co pozwala na tworzenie kana³Ûw wewn¹trz innych kana³Ûw. Poniewaø system zachowuje hierarchiÍ kana³Ûw, moøemy edytowaÊ dowolny kana³ w†dowolnym czasie lub zmieniaÊ liczbÍ kana³Ûw, bez koniecznoúci rÍcznego aktualizowania zmian bezpoúrednio w†kaødej instancji danego kana³u. Wszystkie
potrzebne zmiany, dla kaødej instancji danego kana³u, s¹ propagowane automatycznie podczas kompilacji projektu. Ta cecha programu znakomicie u³atwia pracÍ, pozwalaj¹c projektantowi skupiÊ siÍ na istocie zagadnienia, a†nie na rÍcznym nanoszeniu tych samych zmian w†kilku miejscach projektu. Nawet w†tak banalnym przypadku, jak dwa kana³y stereofonicznego wzmacniacza audio, wspomaganie projektowania wielokana³owego znacznie u³atwia pracÍ. Wprowadzaj¹c zmianÍ na schemacie, robimy to tylko raz - drugi kana³ bÍdzie identyczny za spraw¹ mechanizmÛw wbudowanych w†program. Warto jeszcze wspomnieÊ, øe DXP obs³uguje doskonale import projektÛw i†bibliotek z†programu Orcad Capture V7 i†V9. Potrafi rÛwnieø wyeksportowaÊ projekt w†formacie Orcada V7. Obok wielu cech przydatnych w†przypadku projektowania PCB, nVisage i†Protel DXP daj¹ ca³kiem nowe moøliwoúci w†zakresie projektowania uk³adÛw PLD. Wbudowany zestaw narzÍdzi pozwala wykonaÊ projekt uk³adu logicznego od pocz¹tku do koÒca. W†przypadku projektÛw uk³adÛw PLD moøemy dowolnie
mieszaÊ schematy z†plikami ürÛd³owymi VHDL - program daje pe³n¹ elastycznoúÊ w†tym zakresie. nVisage i†Protel dostarczane s¹ z†kompletnym zestawem gotowych makr i†bibliotek elementÛw schematowych dla wielu rodzin uk³adÛw FPGA firm Xilinx i†Altera. Program wyposaøono takøe w†edytor VHDL posiadaj¹cy wszystkie narzÍdzia u³atwiaj¹ce edycjÍ opisu, m.in. takie jak podúwietlanie sk³adni czy automatyczne wstawianie akapitÛw. nVisage i†Protel posiadaj¹ rÛwnieø bogaty asortyment narzÍdzi nawigacyjnych, obs³uguj¹cych mieszane projekty sk³adaj¹ce siÍ ze schematÛw i†plikÛw VHDL. Za pomoc¹ panela Navigator moøemy siÍ ³atwo przemieszczaÊ w†ramach ca³ej struktury z³oøonej z†czÍúci VHDL i†schematÛw, a†za pomoc¹ przeszukiwania skroúnego (cross-probing) pomiÍdzy arkuszami schematÛw i†kodem w†jÍzyku VHDL (rys. 6). Grzegorz Witek, Evatronix
Dodatkowe informacje Dodatkowe informacje mo¿na uzyskaæ w firmie Evatronix, www.evatronix.com.pl.
57
S P R Z Ę T
Nowa generacja programatorów Uprog
UprogHS 84 to najnowszy programator uniwersalny z†rodziny Uprog. Jest to urz¹dzenie wielofunkcyjne, ³¹cz¹ce cechy uniwersalnego programatora, testera uk³adÛw†cyfrowych, analizatora stanÛw logicznych, a†takøe emulatora pamiÍci. Programator UprogHS 84 jest kolejnym opracowaniem firmy RK-System, ktÛra rozwija swoj¹ ofertÍ programatorÛw uniwersalnych. Pod tym wzglÍdem RK-System moøe konkurowaÊ z†najlepszymi producentami zachodnimi. UprogHS 84 jest z†za³oøenia przeznaczony dla klientÛw wymagaj¹cych, stawiaj¹cych na ³atwoúÊ obs³ugi, funkcjonalnoúÊ, a†takøe dla tych, ktÛrzy potrzebuj¹ szybkiego przyrz¹du o†duøej uniwersalnoúci. Po³¹czenie czterech funkcji w†jednym urz¹dzeniu zdecydowanie poszerza zakres jego zastosowaÒ. Nie jest to juø klasyczny programator, ktÛrego rola sprowadza siÍ wy³¹cznie do programowania czy kasowania okreúlonej gamy uk³adÛw. UprogHS 84 to takøe doskona³y analizator sta-
Rys. 1
58
nÛw logicznych, emulator pamiÍci oraz tester uk³adÛw cyfrowych. Jest to niemal ìkombajnî narzÍdziowy niezbÍdny w†laboratorium techniki cyfrowej.
Budowa mechaniczna Wygl¹d zewnÍtrzny UprogHS 84 odbiega nieco od wygl¹du typowych programatorÛw dostÍpnych na rynku. Wynika to z†jego nieco innej konstrukcji mechanicznej. UprogHS 84 sk³ada si͆z†dwÛch czÍúci: modu³u g³Ûwnego oraz wymiennych nak³adek (p³yt czo³owych), ktÛre mog¹ byÊ ³atwo wymieniane, w†zaleønoúci od aktualnych potrzeb uøytkownika. W†wykonaniu standardowym UprogHS 84 wyposaøono w†nak³adkÍ zawieraj¹c¹ dwie podstawki: ZIF48 oraz uniwersalne gniazdo PLCC84 pozwalaj¹ce na obs³ugÍ uk³adÛw w†obudowach PLCC20, PLCC28, PLCC32, PLCC44, PLCC52, PLCC68 i†PLCC84. Opcjonalnie dostÍpna jest nak³adka z†podstawk¹ ZIF48 oraz uniwersaln¹ podstawk¹ SOIC/TSOP44 umoøliwiaj¹c¹ programowanie uk³adÛw scalonych w†obudowach SOIC z†liczb¹ koÒcÛwek 44 lub
mniej oraz wiÍkszoúci uk³adÛw w†obudowach TSOP typu II (raster 1,27 mm) z†liczb¹ koÒcÛwek 44 i†mniej. Dla uk³adÛw w†innych typach obudÛw producent dostarcza odpowiednie adaptery. Konstrukcja UprogHS 84 umoøliwia rÛwnieø wykorzystanie go jako programatora przemys³owego (gang programmer). W†takim przypadku nak³adka moøe zawieraÊ 8†podstawek dowolnego typu, co zapewnia jednoczesne programowanie do oúmiu sztuk uk³adÛw. Zmiana nak³adki z†ZIF/ PLCC na ZIF/SOIC/TSOP lub inn¹ oúmiopodstawkow¹ jest bardzo ³atwa i†polega na odkrÍceniu 4 úrub mocuj¹cych, znajduj¹cych siÍ w†spodniej czÍúci bazy i†roz³¹czeniu obu modu-
Rys. 2
Elektronika Praktyczna 3/2003
S P R Z Ę T
Rys. 3 ³Ûw. W†wykonaniu standardowym (baza + nak³adka ZIF48/PLCC84) UprogHS 84 ma wymiary 20x18,5x4,5 cm i†waøy nieco ponad 3†kg. Solidna metalowa obudowa zapewnia ochronÍ przed ewentualnymi wy³adowaniami elektrostatycznymi, jednoczeúnie pozytywnie wp³ywaj¹c na trwa³oúÊ programatora. Na wymiennej nak³adce, bÍd¹cej jednoczeúnie p³yt¹ czo³ow¹, oprÛcz dwÛch niezaleønych podstawek znajduj¹ siÍ cztery diody LED, z†ktÛrych dwie sygnalizuj¹ w³¹czenie zasilania oraz status urz¹dzenia, a†dwie pozosta³e wskazuj¹ aktywn¹ podstawkÍ. Nak³adki niezaleønie od typu s¹ wyposaøone w†przycisk Auto Run wykorzystywany do sterowania prac¹ programatora w†trybie automatycznym.
Cechy uøytkowe Podstawowym czynnikiem decyduj¹cym o†duøej elastycznoúci programatora UprogHS 84 jest budowa jego czÍúci uk³adowej. Zastosowanie specjalizowanego procesora steruj¹cego, zintegrowanego w†FPGA (podobnie jak w†modelu UprogHS 48), pozwoli³o na uzyskanie duøej szybkoúci dzia³ania tego programatora. Osiemdziesi¹t cztery uniwersalne sterowniki, tzw. pin-drivery, pozwalaj¹ na ca³kowicie dowolne, programowe sterowanie funkcjami, jakie maj¹ byÊ realizowane przez poszczegÛlne wyprowadzenia podstawek. Co za tym idzie, kaøde wyprowadzenie uk³adu, zarÛwno w†48-stykowej podstawce ZIF, jak i†84-stykowej PLCC, moøe byʆpod³¹czane do napiÍcia zasilaj¹cego, masy, napiÍcia programuj¹cego lub zegara, w†zaleønoúci od aktualnie obs³ugiwanego uk³adu. Urz¹dzenie pozwala na pracÍ z†uk³adami o†napiÍciu zasilania 1,8†V...8 V, a†biblioteka obejmuje prawie 7000 rÛønego rodzaju uk³adÛw, w†tym: EPROM, EEPROM, Flash, GAL, PAL, PALCE, PLD,
60
CPLD oraz szerok¹ gamÍ mikrokontrolerÛw rÛønych producentÛw. Prezentowany programator moøe takøe programowaÊ uk³ady po zamontowaniu w†uk³adzie docelowym, za pomoc¹ interfejsÛw SPI i†JTAG. Sygna³y niezbÍdne do zaprogramowania uk³adu s¹ wyprowadzane wÛwczas bezpoúrednio z†podstawki programatora, zgodnie ze wskazÛwkami pojawiaj¹cymi siÍ w†oknie programu steruj¹cego jego prac¹. Programator wyposaøono we wszelkie udogodnienia zwi¹zane z†programowaniem pojedynczych i†krÛtkich serii uk³adÛw. Oprogramowanie steruj¹ce zapewnia rÛwnieø automatyczn¹ detekcjÍ wymiany programowanego uk³adu. Jak wspomnieliúmy, UprogHS 84 oprÛcz typowych operacji zwi¹zanych z†programowaniem uk³adÛw moøe byÊ rÛwnieø wykorzystywany do innych celÛw zwi¹zanych z†uruchamianiem czy testowaniem uk³adÛw†elektronicznych. W†wykonaniu standardowym posiada bowiem funkcjÍ emulatora pamiÍci 8-bitowych o†pojemnoúci do 128 kB (opcjonalnie 512 kB) i†czasie dostÍpu 10 ns. Ponadto moøna rozszerzyÊ moøliwoúci UprogHS 84 o†funkcjÍ emulatora pamiÍci 16-bitowych o†pojemnoúci do 64 kB (opcjonalnie 256 kB) i†czasie dostÍpu 70 ns. Sygna³y emuluj¹ce wyprowadzane s¹ bezpoúrednio z†podstawki ZIF programatora i†przekazywane do uk³adu docelowego za pomoc¹ kabla zakoÒczonego podstawk¹ emulacyjn¹, ktÛry jest dostarczany jako standardowy element zestawu. Korzystanie z†funkcji zwi¹zanych z†emulacj¹ pamiÍci nie wymaga do³¹czania øadnych dodatkowych kart†czy przejúciÛwek. Kolejn¹ funkcj¹, o†ktÛr¹ poszerzyÊ moøna moøliwoúci UprogHS 84, jest oúmiokana³owy analizator stanÛw logicznych Ulogic o†czÍstotliwoúci prÛbkowania do 100 MHz i†buforze o†pojemnoúci 128 kB (opcjonalnie 512 kB). RÛwnieø w†tym przypadku programator nie wymaga do³¹czania øadnych czynnych elementÛw poúrednicz¹cych. Sygna³y zbierane z†testowanego urz¹dzenia przekazywane s¹ do programatora poprzez podstawkÍ ZIF za pomoc¹ przewodÛw zakoÒczonych klipsami, ktÛre s¹ dostarczane przez producenta w†przypadku zakupienia opcji analizatora. Dokupienie ktÛrejú z†opcji dodatkowych po zakupie programatora nie wi¹øe siÍ z†koniecznoúci¹ przekazania
go z†powrotem do producenta. Opcje przewidziane jako dodatkowe s¹ aktywowane zdalnie. Nie dotyczy to opcji rozszerzenia RAM-u Uproga - w†tym przypadku jest niezbÍdna wizyta w†serwisie producenta. Wykorzystanie specjalizowanego procesora steruj¹cego opartego na FPGA, ktÛrego j¹dro oraz peryferie poddawane s¹ dynamicznej modyfikacji w†trakcie pracy urz¹dzenia i†dopasowywane automatycznie w†zaleønoúci od aktualnie wykonywanej funkcji, pozwala zaimplementowaÊ dowolne interfejsy (np. RS232), ktÛre mog¹ byÊ do³¹czane do wybranych koÒcÛwek podstawki.
Oprogramowanie Obs³ugÍ programatora zapewnia program dla Windows 95/95/2000/XP/NT, z†przejrzyúcie zaprojektowanym interfejsem graficznym. Jest on wyposaøony we wszystkie funkcje spotykane w†profesjonalnych programatorach uniwersalnych oraz kilka przydatnych funkcji dodatkowych podnosz¹cych funkcjonalnoúÊ urz¹dzenia. DostÍp do funkcji programatora realizowany jest wy³¹cznie za pomoc¹ ikon i†przyciskÛw znajduj¹cych siÍ w†obszarze g³Ûwnego okna programu oraz komend w rozwijanym menu kontekstowym dostÍpnych ìpodî prawym przyciskiem myszki. Status poleceÒ, komunikaty o†b³Ídach i†inne informacje prezentowane s¹ na pasku operation Status (rys. 1). U³atwieniem dla uøytkownikÛw, ktÛrzy pracuj¹ z†kilkoma rÛønymi uk³adami, bÍdzie lista podrÍczna zawieraj¹ca do dziesiÍciu uk³adÛw, ktÛre s¹ zapamiÍtywane i†wyúwietlane w†kolumnie Devices znajduj¹cej siÍ po prawej stronie g³Ûwnego okna programu. Kaødy znajduj¹cy siÍ tam uk³ad ma przypisany w³asny bufor. Do odszukania uk³adu w†zasobach bibliotecznych s³uøy okno Select Device (rys. 2). Wyúwietlane uk³ady moøna filtrowaÊ poprzez wybranie typu i†producenta, moøna rÛwnieø przeszu-
Rys. 4
Elektronika Praktyczna 3/2003
S P R Z Ę T
Rys. 5 kiwaÊ bibliotekÍ na podstawie fragmentu nazwy uk³adu. Do bufora moøna ³adowaÊ dane (z offsetem lub bez niego) w†wielu formatach: hex, bin, jed, jam, svf, rom i†txt. Plik za³adowany do pamiÍci prezentowany jest w†obszarze g³Ûwnego okna programu w†postaci HEX i†ASCII. Jedn¹ z†dodatkowych funkcji, jakie ma oprogramowanie steruj¹ce programatorem UprogHS 84, jest tzw. Operation Recorder. Stanowi on rodzaj archiwizera umoøliwiaj¹cego gromadzenie informacji dotycz¹cych poszczegÛlnych operacji (za³adowanie pliku, dodanie/usuniÍcie uk³adu, operacje na uk³adzie), jakie s¹ wykonywane przez uøytkownika. ZawartoúÊ okna rejestratora moøna zapamiÍtaÊ na dysku. Programator umoøliwia wykorzystanie wszelkich dodatkowych zasobÛw programowanych uk³adÛw, takich jak np. fuse bits czy lock bits, jak rÛwnieø niezaleøny dostÍp†do pamiÍci programu i†pamiÍci danych.
Zastosowane rozwi¹zania sprzÍtowe pozwalaj¹ testowaÊ poprawnoúÊ styku pomiÍdzy wyprowadzeniami programowanego uk³adu a†podstawk¹ programatora. Weryfikacja jest automatycznie przeprowadzana przed kaødym wykonaniem operacji na uk³adzie. Brak styku o†odpowiedniej jakoúci jest sygnalizowany odpowiednim komunikatem, a†wyprowadzenia bez kontaktu s¹ wskazywane w†oknie Check pin connection (rys. 3). UprogHS 84 tak jak i†jego poprzednicy - ma moøliwoúÊ automatycznej detekcji typu uk³adu umieszczonego w†podstawce (dla uk³adÛw, ktÛre posiadaj¹ wewnÍtrzny identyfikator, czyli m.in. pamiÍci EPROM, Flash) oraz moøliwoúÊ automatycznego wykonywania okreúlonych przez uøytkownika operacji zwi¹zanych z†programowaniem (tryb Autorun). W trybie testera cyfrowego moøliwe jest podanie na wyprowadzenia testowanego uk³adu dowolnej kombinacji sygna³Ûw wejúciowych, ktÛra jest definiowana w†oknie testera (rys. 4). Po podaniu odpowiedniej sekwencji i†klikniÍciu w†rysunek podstawki, wybrane s¹ do³¹czane do uk³adu i†jednoczeúnie jest odczytywany i†wyúwietlany†stan†pozosta³ych†koÒcÛwek. Szybki emulator pamiÍci (czas dostÍpu ok. 10 ns), rÛwnieø dostÍpny w†standardzie, pozwala emulowaÊ 8-bitowe pamiÍci o†pojemnoúci do 128†kB lub (opcjonalnie) 512 kB. Oprogramo-
Krótka historia sukcesu Firma RK−System powstała w 1996 roku. W początkowym okresie działalności firma skupiała się na dystrybucji mikroprocesorowych narzędzi uruchomieniowych przeznaczonych dla elektroników i programistów. W kolejnych latach nastąpił szybki rozwój firmy, który zaowocował opracowaniem własnych rozwiązań narzędziowych dla procesorów 8051 (płyty prototypowe), a także przenośnych systemów do wyważania elementów wirujących oraz pomiaru drgań. W 2001 roku w ofercie firmy pojawił się pierwszy własny programator uniwersalny − Uprog 48, który jest protoplastą kolejnych opracowań: Uprog 40EN, Uprog 48EN, Uprog HS 48 (pojawiły się w sprzedaży w 2002 roku) oraz Uprog HS 84 (jest dostępny od początku roku 2003). Na zdjęciu prezentujemy zespół projektantów firmy RK−System.
Elektronika Praktyczna 3/2003
wanie odpowiedzialne za dzia³anie funkcji emulatora daje moøliwoúÊ zerowania systemu mikroprocesorowego po za³adowaniu danych do pamiÍci wewnÍtrznej programatora. Za niewielk¹ dop³at¹ UprogHS 84 moøe realizowaÊ funkcje emulatora pamiÍci 16-bitowych o†pojemnoúci 64 kB (lub 256 kB) i†czasie dostÍpu 70 ns, a†takøe 8kana³owego analizatora stanÛw logicznych o†maksymalnej czÍstotliwoúci prÛbkowania 100 MHz i†pamiÍci bufora 128 kB lub 512 kB. Oprogramowanie steruj¹ce prac¹ analizatora Ulogic (rys. 5) ma wbudowane wszystkie funkcje, w†jakie powinno byÊ wyposaøony tego typu urz¹dzenie, w†zwi¹zku z†czym nie ustÍpuje ono moøliwoúciami klasycznym analizatorom stanÛw logicznych. DostÍpne s¹ wszelkie udogodnienia zwi¹zane z†rÛønymi sposobami taktowania (wewnÍtrzny, zewnÍtrzny), wyzwalania (zboczem, poziomem sygna³u, kombinacj¹ typÛw), obserwacji zmian sygna³Ûw tuø przed momentem wyzwolenia (pre-trigger) czy rejestracj¹ danych na dysku komputera itd.
Podsumowanie Zaproponowana przez producenta modu³owa konstrukcja sprzÍtowej czÍúci programatora UprogHS 84 zapewnia duøe moøliwoúci jego rozbudowy, w†zaleønoúci od potrzeb uøytkownika. Jest to rozwi¹zanie szczegÛlnie interesuj¹ce dla tych, ktÛrzy programuj¹ duøo uk³adÛw lub korzystaj¹ z†uk³adÛw w†obudowach rÛønych typÛw. Opcjonalne 8-podstawkowe modu³y sprawiaj¹, øe UprogHS 84 moøe byÊ wykorzystywany jako programator semiprzemys³owy, a†dostÍpnoúÊ modu³Ûw typu dual z†podstawkami ZIF48 i†PLCC84 lub SOIC/TSOP44 pozwala dobraÊ ich zestaw w†zaleønoúci od tego, jakie obudowy s¹ najczÍúciej wykorzystywane. Bardzo interesuj¹c¹ cech¹ programatora UprogHS 84 jest ³atwoúÊ uzupe³niania listy obs³ugiwanych nowych uk³adÛw, co wymaga wy³¹cznie aktualizacji oprogramowania, bez koniecznoúci wprowadzania jakichkolwiek zmian w†czÍúci sprzÍtowej. Nasuwa siÍ podsumowanie: dobre, bo polskie! RK Dodatkowe informacje Ceny netto UprogHS84: - z podstawk¹ 48DIP 84UNV PLCC .......... 7000 z³ - z podstawk¹ 48DIP 44UNV SOIC/TSOP ..... 6500 z³ - z podstawk¹ GANG do pamiêci .............. 6500 z³ Dodatkowe informacje: RK-System, tel. (22) 72430-39, (22) 755-69-83, www.rk-system.com.pl.
61
P O D Z E S P O Ł Y
Elektronicy pod¹øaj¹c za naturalnymi odruchami chc¹ sobie uproúciÊ (i potaniÊ) øycie, w†zwi¹zku z†czym zastosowanie w†projektach mikroprocesorowych znajduj¹ przede wszystkim uk³ady wyposaøone w†pamiÍÊ Flash, oczywiúcie programowan¹ w†systemie...
Ten oczywisty fakt zauwaøy³a Motorola, w†wyniku czego pod koniec zesz³ego roku do sprzedaøy trafi³y nowe mikrokontrolery z†rodziny HC08, ktÛre potwierdzaj¹ pod-tytu³ow¹ tezÍ: tylko Flash! Nowa rodzina mikrokontrolerÛw, ktÛrej producent nada³ nazwÍ handlow¹ Nitron, wykorzystuje sprawdzony i†doúÊ popularny rdzeÒ HC08, ktÛry zosta³ ìobudowanyî bardzo atrakcyjnym zestawem peryferiÛw (rys. 1), wúrÛd ktÛrych warto zwrÛciÊ szczegÛln¹ uwagÍ na dwa elastyczne, 16-bitowe programowane timery (z moøliwoúci¹ skonfigurowania ich m.in. jako generatory PWM), 4-kana³owy przetwornik A/C o†rozdzielczoúci 8†bitÛw, a†takøe wbudowany generator taktuj¹cy. Generator moøe pracowaÊ bez øadnych elementÛw zewnÍtrznych, a†kalibracjÍ jego czÍstotliwoúci moøe przeprowadziÊ samodzielnie uøytkownik za pomoc¹ specjalnego rejestru 8-bitowego pozwala to osi¹gn¹Ê dok³adnoúÊ
czÍstotliwoúci generowanego przebiegu na poziomie ok. ±5%. Wbudowanie kompletnego generatora taktuj¹cego w†mikrokontrolery Nitron by³o konieczne, poniewaø producent oferuje tylko dwa warianty obudÛw: 8- i†16-wyprowadzeniowe (tab. 1). PoúwiÍcenie dwÛch z†nich na do³¹czenie zewnÍtrznego kwarcu mog³oby uniemoøliwiÊ zastosowanie mikrokontrolera w†wielu aplikacjach.
Wszystkie mikrokontrolery z†rodziny Nitron wyposaøono w†pamiÍÊ Flash o†pojemnoúci 1,5 lub 4†kB, ktÛra moøe byÊ programowana w†po zainstalowaniu programowanego uk³adu systemie. PamiÍʆFlash moøe byÊ programowana w†pe³nym zakresie dopuszczanych przez producenta napiÍÊ zasilania (2,7...5,5 V), dziÍki czemu jej reprogramowanie jest moøliwe takøe w†sprzÍcie zasilanym bateryjnie. PamiÍÊ moøna
Rys. 1
62
Elektronika Praktyczna 3/2003
P O D Z E S P O Ł Y
Za miesiąc konkurs! Czytelników chcących zdobyć zestawy ewaluacyjne przygotowane przez firmy: Future i Spoerle zapraszamy za miesiąc. W kwietniowej EP ogłosimy konkurs, w którym nagrodami będzie 6 zestawów startowych (po trzy od każdego dystrybutora).
Rys. 2 programowaÊ w†jednym z†dwÛch trybÛw: standardowym (programowanie sektora trwa 4†ms) lub szybkim (programowanie sektora trwa zaledwie 1†ms). Korzystanie z†trybu szybkiego obniøa øywotnoúÊ pamiÍci Flash do 1000 cykli kasowanie/zapis, natomiast korzystanie z†trybu standardowego pozwala reprogramowaÊ j¹ co najmniej 10000 razy. Do programowania pamiÍci Flash w†systemie konieczny jest prosty adapter (jego schemat wraz ze sposobem do³¹czenia do mikrokontroler w†obudowie 8-wyprowadzeniowej pokazano na rys. 2), ktÛry poúredniczy pomiÍdzy mikrokontrolerem i†portem RS232 komputera, z†ktÛrego jest ³adowane oprogramowanie. RdzeÒ mikrokontrolerÛw prezentowanych w†artykule moøe byÊ taktowany sygna³em zegarowym o†czÍstotliwoúci do 8†MHz (w przypadku zasilania napiÍciem 5†V) lub 4†MHz (dla napiÍÊ o†niøszej wartoúci).
Oczekiwana zmiana taktyki W świetle dotychczasowych działań Motoroli, która z ogromnym uporem skupiała swoje działania na mikrokont− rolerach z pamięcią EPROM− OTP, zaskakująco brzmią słowa Paula Grimme (wiceprezesa i dyrektora naczelnego Oddziału Mikrokontrolerów 8/16− bitowych Motoroli), który podczas premiery rodziny Nitron powiedział, że: „(...) nie ma sukcesu na rynku bez mikrokontrolerów Flash”. Chciałoby się powiedzieć „witamy w klubie”!
Elektronika Praktyczna 3/2003
W†pierwszym przypadku cykl maszynowy trwa zaledwie 125 ns, dziÍki czemu wypadkowa wydajnoúÊ rdzenia jest znacznie wyøsza niø sugeruje niepozorna czÍstotliwoúÊ taktowania. Osi¹gniÍcie maksymalnych czÍstotliwoúci taktowania wymaga do³¹czenia do generatora elementÛw zewnÍtrznych (rezonatora kwarcowego lub rezystora), w†przypadku taktowania rdzenia wewnÍtrznym sygna³em zegarowym jego maksymalna czÍstotliwoúÊ wynosi 3,2 MHz. Wszystkie mikrokontrolery Nitron spe³niaj¹ wymagania temperaturowe standardu przemys³owego co oznacza, øe mog¹ pracowaÊ w†zakresie temperatur otoczenia -40...+85oC, dostÍpne s¹ takøe wersje przystosowane do pracy w†otoczeniu o†temperaturze dochodz¹cej do +105 lub +125oC.
WyprodukowaÊ - to jedno, sprzedaÊ - drugie
ni producenci mikrokontrolerÛw maj¹ w†swojej ofercie szerok¹ gamÍ uk³adÛw z†pamiÍci¹ Flash, co niew¹tpliwie spowodowa³o odchodzenie konstruktorÛw od starszych wersji mikrokontrolerÛw HC08, ktÛre wyposaøano w†pamiÍÊ EPROM-OTP. Dystrybutorzy firmy Motorola podjÍli trudne zadanie wypromowania NitronÛw, jak pokazuj¹ dwa znane nam przyk³ady - w†sposÛb bardzo niestandardowy. Firma Future przygotowa³a zestaw ewaluacyjny (fot. 3) sk³adaj¹cy siÍ z†niewielkiej p³ytki z†mikrokontrolerem QT4, kabla RS232, 9woltowej baterii s³uø¹cej do zasilania mikrokontrolera, p³yty CD-ROM oraz... metalowej puszki, dok³adnie takiej, w†jakiej s¹ sprzedawane farby i†lakiery. Nieco inaczej promuje Nitrony firma Spoerle - przygotowa³a ona bowiem zestaw ìszkockiî, ktÛrego podstawowe elementy s¹ identyczne z†uprzednio opisanymi. Jego szczegÛlnym atutem, nadaj¹cym atrybut wysublimowanej ìszkockoúciî jest miniaturowa buteleczka whisky (fot. 4).
Darmowe narzÍdzia
Niezaprzeczalne zalety mikrokontrolerÛw Nitron przyÊmiewa nieco fakt, øe pojawi³y siÍ one na rynku doúÊ pÛüno. Praktycznie wszyscy in-
Jednoczeúnie z†wprowadzeniem do sprzedaøy NitronÛw Motorola zadba³a o†udostÍpnienie doskona³ego narzÍdzia wspomagaj¹cego tworzenie aplikacji, ktÛre nosi nazwÍ
Tab. 1. Zestawienie podstawowych parametrów mikrokontrolerów HC08 Nitron Typ
Pojemność pamięci RAM [B]
Pojemność pamięci Flash [kB]
Timer
I/O
A/C
Obudowy
68HC908QT1
128
1,5
do 6
−
SOIC/DIP8
68HC908QT2
128
1,5
68HC908QT4
128
4
68HC908QY1
128
1,5
68HC908QY2
128
1,5
68HC908QY4
128
4
2−CH, 16−bit I/C, O/C lub PWM 2−CH, 16−bit I/C, O/C lub PWM 2−CH, 16−bit I/C, O/C lub PWM 2−CH, 16−bit I/C, O/C lub PWM 2−CH, 16−bit I/C, O/C lub PWM 2−CH, 16−bit I/C, O/C lub PWM
do 6 4 kanały, 8−bit do 6 4 kanały, 8−bit do 14 − do 14 4 kanały, 8−bit do 14 4 kanały, 8−bit
SOIC/DIP8 SOIC/DIP8 SOIC/DIP/ TSSOP16 SOIC/DIP/ TSSOP16 SOIC/DIP/ TSSOP16
63
P O D Z E S P O Ł Y bezp³atnym) narzÍdziem jest HC08 Development Tool Suite 4K Lite firmy Cosmic, ktÛry jest kompletnym úrodowiskiem programisty, w†ktÛrym zintegrowano wszelkie niezbÍdne narzÍdzia do pisania, kompilacji i†debugowania programu. Obydwa programy moøna úci¹gn¹Ê z†internetowej firmy Motorola, publikujemy je takøe na CD-EP3/2003B.
Podsumowanie
Fot. 3 Code Warrior. Jest to kompletne, bezp³atne úrodowisko programisty zintegrowane z†kompilatorem asemblera i†C, praktycznie bez øadnych ograniczeÒ (rozmiar kodu wynikowego nie moøe byÊ wiÍkszy niø 4†kB) w†przypadku przygotowywania projektÛw na mikrokontrolery Nitron (Code Warriora opisaliúmy w†EP2/2003). Alternatywnym (takøe
64
Mikrokontrolery Nitron wydaj¹ siÍ byÊ atrakcyjn¹ alternatyw¹ zarÛwno dla uøytkownikÛw dotychczas dostÍpnych wersji mikrokontrolerÛw HC08, jak i†dla konstruktorÛw korzystaj¹cych z†mikrokontrolerÛw oferowanych przez innych producentÛw. Ich atutem jest bogate wyposaøenie, duøa wydajnoúÊ jednostki centralnej, ³atwoúÊ programowania w†systemie, a†takøe niska cena. Niebagateln¹ zalet¹ NitronÛw jest takøe kompatybilnoúÊ z†wczeúniejszymi wersjami mikrokontrolerÛw HC08, co pozwala korzystaÊ z†do-
Fot. 4 stÍpnych bibliotek programowych bez koniecznoúci wprowadzania w†nich zmian. Andrzej Gawryluk, AVT Dodatkowe informacje Dodatkowe informacje s¹ dostêpne w Internecie pod adresem: www.motorola.com/semiconductors. Oprogramowanie narzêdziowe firm: Metrowerks oraz Cosmic publikujemy na CD-EP3/2003B. Zestawy ewaluacyjne udostêpni³y firmy; - Future Electronics Polska Sp. z o. o., tel.: (22) 618-9202, fax: (22) 618-80-50,
[email protected], - Spoerle Electronic Polska Sp. z o. o., tel. (22) 85690-90, fax: (22) 851-61-36, www.spoerle.com.
Elektronika Praktyczna 3/2003
R E K L A M A
Narzędzia w rękach elektroników O†ile r¹czki lutownicze do montaøu i†demontaøu elementÛw, opisane w†poprzednim numerze EP, naleø¹ do grona narzÍdzi termicznych, to pozosta³e narzÍdzia rÍczne uøywane przez elektronikÛw maj¹ przeznaczenie czysto mechaniczne: ciÍcie, giÍcie, kszta³towanie wyprowadzeÒ, przytrzymywanie i†pozycjonowanie elementÛw, zdejmowanie izolacji, przykrÍcanie i†odkrÍcanie úrub (wkrÍtÛw), czyszczenie itp. W†konsekwencji, oprÛcz stawianych tym narzÍdziom wymagaÒ zwi¹zanych z†ich prawid³owym dzia³aniem, a†takøe dogodnoúci¹ i†precyzj¹ operowania, pojawiaj¹ siÍ nowe problemy zwi¹zane z†przenoszeniem si³y. W†przypadku obcinaczek waøne jest, by ciÍcie by³o dokonane jednym, pewnym ruchem i†nast¹pi³o dok³adnie w†przewidzianym miejscu, a†koÒcÛwka ciÍtego przewodu lub wyprowadzenia elementu mia³a ø¹dan¹ geometriÍ. Dlatego ukszta³towanie i†wymiary czÍúci roboczych tych narzÍdzi s¹ tak rÛønorodne (fot. 1...8), a†ich budowa umoøliwia swobodne pos³ugiwanie siÍ nimi jedn¹ d³oni¹ (chodzi o†³atwoúÊ zmiany chwytu bez ryzyka upuszczenia obcinaczek i†zachowanie pe³nej kontroli nad ciÍciem). Ostrza musz¹ byÊ wykonane z†materia³u o†duøej odpornoúci na obci¹øenia i†odpowiednio wysokiej trwa³oúci.
Fot. 1
Elektronika Praktyczna 3/2003
część 2
Nawet tak proste narzÍdzia i†dlatego czÍsto niedoceniane, jak pÍsety i†obcinaczki, s¹ obecnie produkowane w†sposÛb prawie tak skomplikowany, jak na przyk³ad uk³ady scalone. Wynika to z†szybko rosn¹cych wymagaÒ stawianych tym narzÍdziom. Coraz doskonalsza technologia pozwala na wytwarzanie doskonalszych wyrobÛw. Niebagatelne znaczenie w†osi¹gniÍciu ø¹danych w†tym zakresie w³aúciwoúci ma technologia obrÛbki materia³Ûw, z†ktÛrych jest wykonane ostrze. Chromowa stal ³oøyskowa jest kuta dla uzyskania prawid³owej struktury wewnÍtrznej, a†nastÍpnie obrabiana na sterowanych numerycznie szlifierkach i†indukcyjnie hartowana. Taka w³aúnie, jak widaÊ doúÊ skomplikowana, technologia pozwala uzyskaÊ odpowiednie warunki produkcji narzÍdzi, gwarantuj¹ce uzyskanie wymaganych parametrÛw mechanicznych i†precyzyjnej geometrii ostrzy. Budowa obcinaczek musi uwzglÍdniaÊ gruboúci (úrednice) i†rodzaj (twardoúÊ) ciÍtych materia³Ûw, a†takøe warunki przestrzenne pracy (np. dostÍp do elementÛw wycinanych z†p³ytek o†duøym zagÍszczeniu). Moøliwe jest wyposaøenie obcinaczek w†element przytrzymuj¹cy odciÍty fragment materia³u, co skutecznie zapobiega ewentualnym zwarciom. Dla zapewnienia precyzji i†komfortu pracy, niektÛre obcinaczki s¹ wyposaøone w†sprÍøynÍ powrotn¹ o†odpowiedniej charakterystyce dobranej tak, by w†momencie ciÍcia znacz¹co mala³ opÛr (fot. 2). Ergonomiczne rÍkojeúci maj¹ duø¹ powierzchniÍ kontaktu z†d³oni¹, aby rÛwnomiernie rozk³adaÊ si³y, ich kszta³ty s¹ zaokr¹glone, a†uøyte materia³y zapewniaj¹ progresywn¹ twardoúÊ (miÍkkie pokrycie, mocny rdzeÒ) i†dobr¹ przyczepnoúÊ. CzÍsto wymaga siÍ spe³nienia warunkÛw zwi¹zanych z†ochron¹ antystatyczn¹, czasem potrzebne s¹ rÍkojeúci izolowane, do pracy pod napiÍciem.
Takie same warunki, odnoúnie pewnoúci dzia³ania oraz bezpieczeÒstwa i†komfortu uøytkowania, musz¹ spe³niaÊ szczypce. Jest to bardzo liczna grupa narzÍdzi, wúrÛd ktÛrych szczegÛlnie interesuj¹ce s¹ szczypce specjalne o†rÛønym przeznaczeniu, np. do kszta³towania wyprowadzeÒ elementÛw przewlekanych (niektÛre umoøliwiaj¹ jednoczesne obciÍcie zbÍdnego fragmentu wyprowadzenia w†úciúle okreúlonym miejscu). W†ofertach wiod¹cych producentÛw, takich jak Piergiacomi czy Lindström, moøna znaleüÊ dziesi¹tki wzorÛw narzÍdzi z†powyøszych grup. Do kolejnej grupy popularnych narzÍdzi rÍcznych uøywanych przez elektronikÛw naleø¹ wkrÍtaki pracuj¹ce w†warunkach, gdzie mog¹ wystÍpowaÊ duøe si³y dociskania narzÍdzia do ³ba wkrÍta, aby nie ìwyskakiwa³oî z†wyciÍcia oraz si³y pozwalaj¹ce uzyskaÊ odpowiedni moment na koÒcÛwce wkrÍtaka. WkrÍtak (firmy Lindström), w†ktÛrego budowie uwzglÍdniono wszelkie wymogi funkcjonalne i†ergonomiczne, przedstawiono na fot. 3. Naleøy zwrÛciÊ uwagÍ na proporcje wymiarÛw rÍkojeúci oraz fakturÍ materia³u pokrywaj¹cego jej powierzchniÍ. Szybkie i†precyzyjne operowanie wkrÍtakiem, ale teø moøliwoúÊ uøycia znacznych si³
Fot. 2
65
R E K L A M A
Fot. 3 (szeúciok¹tny pierúcieÒ u†nasady rÍkojeúci pozwala na zwiÍkszenie momentu przez zastosowanie klucza) to praktyczne efekty wypracowanych rozwi¹zaÒ. Barwne elementy informuj¹ o†przeznaczeniu wkrÍtaka, tj. wskazuj¹ na rodzaj koÒcÛwki. Nie zapomniano o†otworze do wieszania oraz zachowaniu p³askiego fragmentu na rÍkojeúci, zapobiegaj¹cego toczeniu siÍ po pochy³ych powierzchniach. Bardzo czÍsto, zarÛwno podczas montaøu, jak i†demontaøu elementÛw i†uk³adÛw elektronicznych, trzeba siÍgn¹Ê po pÍsetÍ. Poniewaø jest to narzÍdzie uøywane do czynnoúci precyzyjnych, przeprowadzanych niejednokrotnie w†warunkach trudnego dostÍpu do obszaru roboczego, jest wysoce poø¹dane, by umoøliwia³o pewny chwyt i†swobodÍ manipulowania bez ryzyka uszkodzenia elementu (obawiaj¹c siÍ upuszczenia czÍúci, co moøe oznaczaÊ jej d³ugotrwa³e poszukiwanie np. we wnÍtrzu naprawianego urz¹dzenia, instynktownie zwiÍkszamy si³Í nacisku na element). Dlatego w†ofertach renomowanych producentÛw pÍsety s¹ obecne w†liczbie co najmniej kilkudziesiÍciu modeli, rÛøni¹cych siÍ wymiarami i†kszta³tami koÒcÛwek, rodzajem powierzchni roboczej, materia³ami uøytymi do budowy i†masywnoúci¹ wykonania (fot. 4). CzÍúÊ pÍset posiada mechanizm samozaciskowy. WiÍkszoúÊ ma w³aú-
Fot. 4
Elektronika Praktyczna 3/2003
ciwoúci antymagnetyczne i†jest kwasoodporna. Naleøy wspomnieÊ takøe o†pÍsetach pneumatycznych (np. firmy PACE), ktÛre mog¹ wspÛ³pracowaÊ ze stacjami lutowniczymi wyposaøonymi w†kompresor. SzczegÛlnie ciekawe i†praktyczne jest zintegrowanie takiej pÍsety z†g³owic¹ do demontaøu - po roztopieniu spoiwa moøna uruchomiÊ kompresor i†podnieúÊ wylutowywany uk³ad bez uøywania dodatkowych narzÍdzi. Przygotowanie przewodÛw do montaøu takøe wymaga zastosowania specjalnych narzÍdzi umoøliwiaj¹cych sprawne zdejmowanie izolacji z†zachowaniem powtarzalnoúci wymiarÛw wzd³uønych oraz co znacznie trudniejsze - poprzecznych. Przyrz¹dy do zdejmowania izolacji z†pojedynczych przewodÛw, przewodÛw sieciowych, koncentrycznych, kynarÛw, przewodÛw izolowanych emali¹, a†takøe noøe do zdejmowania izolacji z†koÒcÛwek lub dowolnych fragmentÛw przewodÛw telekomunikacyjnych i†energetycznych - stosowne narzÍdzie do kaødego zadania znajdziemy np. w†katalogu Piergiacomi. Wiele czynnoúci technologicznych zwi¹zanych z†produkcj¹ b¹dü naprawami urz¹dzeÒ elektronicznych wymaga czyszczenia niektÛrych komponentÛw (np. powierzchni regenerowanych uk³adÛw BGA) i†p³yt obwodÛw drukowanych z†pozosta³oúci rÛønych substancji, jak topniki, kleje czy t³uszcze. Stosowane w†takich przypadkach úrodki chemiczne powinny byÊ aplikowane jedynie w†miejscach zanieczyszczonych i†tylko w†niezbÍdnych iloúciach. Interesuj¹cy sposÛb na realizacjÍ tych postulatÛw znajdziemy w†ofercie firmy Micro Care, producenta preparatÛw chemicznych do zastosowaÒ w†elektronice. Jest to dozownik, ktÛry umoøliwia nanosze-
Fot. 5 nie ø¹danych iloúci úrodka dok³adnie w†zadane miejsce i†jednoczesne czyszczenie mechaniczne za pomoc¹ jednej z†wymiennych koÒcÛwek szczoteczek (fot. 5). Podczas czyszczenia uzupe³nia siÍ iloúÊ preparatu stosownie do potrzeb, bez koniecznoúci kaødorazowego siÍgania po pojemnik i†odstawiania go. Lepszy komfort pracy, oszczÍdnoúÊ czasu i†preparatÛw (do 50%) to ewidentne korzyúci zwi¹zane ze stosowaniem dozownika. Przedstawione powyøej i†w†poprzednim numerze EP narzÍdzia powsta³y w†wyniku wieloletnich badaÒ i†doúwiadczeÒ. Spe³niaj¹ surowe kryteria wynikaj¹ce z†profesjonalnych zastosowaÒ, zapewniaj¹c pewne i†sprawne przeprowadzanie czynnoúci, przy zachowaniu bezpieczeÒstwa i†komfortu uøytkowania. Ich nieod³¹czn¹ cech¹ jest trwa³oúÊ. Trzeba jednak pamiÍtaÊ, øe do pe³nego wykorzystania ich walorÛw niezbÍdne jest uøywanie zgodnie z†przeznaczeniem. Pomoc w†optymalnym wykorzystaniu bogatej oferty rynkowej i†w³aúciwy dobÛr narzÍdzi zapewni autoryzowany przedstawiciel producentÛw wiod¹cych w†tej branøy. Marek Kalasiñski Dodatkowe informacje Artyku³ powsta³ na bazie materia³ów udostêpnionych przez firmê Renex, tel./fax: (54) 231-1005, 411-25-55, www.renex.com.pl.
67
P R O G R A M Y
część 2 W†drugim artykule na temat autoroutera Specctra postaramy siÍ przybliøyÊ jej úrodowisko GUI, opisaÊ Zanim rozpoczniemy prezentacjÍ interfejsu uøytkownika Specctry, kilka s³Ûw na temat uruchamiania tego programu. Specctra moøe stanowiÊ rozszerzenie kaødego systemu do projektowania PCB, zapewniaj¹c funkcje zwi¹zane z†interaktywnym i†automatycznym rozmieszczaniem elementÛw oraz wytyczaniem úcieøek. Poniewaø zazwyczaj kaødy system PCB zapisuje informacje w†swoim w³asnym, unikalnym formacie, przed przejúciem do Specctry konieczne jest dokonanie odpowiedniej konwersji (rys. 1). Podobnie rzecz siÍ ma podczas przekazywania danych w†kierunku odwrotnym, czyli z†autoroutera do edytora PCB. Ze wzglÍdu na siln¹ pozycjÍ Specctry na rynku, w³aúciwie wszyscy producenci systemÛw do projektowania PCB staraj¹ siÍ wyposaøaÊ swoje produkty w†odpowiednie konwertery s³uø¹ce do wymiany danych z†zewnÍtrznym autorouterem. NiektÛre z†nich posiadaj¹ nawet wbudowane funkcje s³uø¹ce do wymiany danych do i†ze Specctry, a†nawet do automatycznego wywo³ywania tego programu z†poziomu w³asnego GUI. Pliki czytane i†zapisywane przez SpecctrÍ s¹ plikami ìczystoî tekstowymi, wiÍc jest moøliwe ich przegl¹danie za pomoc¹ zwyk³ego windowsowego Notatnika. Najwaøniejsze z†nich to: Design file (.dsn) - tworzony przez translator podczas konwersji pliku z†edytora PCB do Specctry. Zawiera
Rys. 1
68
wszystkie niezbÍdne informacje s³uø¹ce do prawid³owej interpretacji projektu przez autorouter, takie jak: kszta³t i†wymiary p³ytki, definicje warstw, definicje padÛw, dane elementÛw, lista po³¹czeÒ oraz regu³y projektowe narzucone przez uøytkownika w†edytorze PCB. Session file (.ses) - tworzony przez autorouter. Zawiera wskaünik do oryginalnego pliku projektu (.dsn), historiÍ poprzednich sesji, w†tym informacje dotycz¹ce rozmieszczenia elementÛw na p³ytce i†wytyczonych úcieøkach. Routes file (.rte) - tworzony przez autorouter zawiera informacje dotycz¹ce po³¹czeÒ wykonanych przez SpecctrÍ. ZbiÛr moøe byÊ konwertowany i†przekazywany z†powrotem do systemu PCB uøytkownika, moøe rÛwnieø byÊ czytany przez autorouter. Wires file (.w) - tworzony przez autorouter, zawiera informacje o†wytyczonych po³¹czeniach. Plik moøe byÊ czytany jedynie przez autorouter. W†przypadku systemÛw PCB ze zintegrowanym odwo³aniem do Specctry konwersja i†przekazanie projektu do Specctry odbywa siÍ automatycznie po uøyciu odpowiedniego polecenia bezpoúrednio w†module PCB. W†przypadku uruchamiania Specctry jako niezaleønej aplikacji konieczne jest wskazanie pliku projektu, z†ktÛrym chcemy aktualnie pracowaÊ. Moøe to byÊ plik typu
zadania plikÛw wykorzystywanych przez autorouter, powiemy teø kilka s³Ûw na temat sposobÛw sterowania prac¹ autoroutera.
*.dsn, *.ses lub *.cct. Odpowiednie okno pozwalaj¹ce na wskazanie úcieøki dostÍpu tego pliku pokazano na rys. 2. Uruchamiaj¹c projekt moøemy jednoczeúnie wskazaÊ pliki zawieraj¹ce informacje o†operacjach, ktÛre zosta³y juø wykonane w†poprzednich sesjach dotycz¹ce np. rozmieszczeniu elementÛw czy po³¹czeniach wytyczonych na okreúlonym etapie projektowania, oraz do tzw. pliku DO, ktÛrego rolÍ opiszemy w†dalszej czÍúci artyku³u. G³Ûwne okno programu (rys. 3), zawiera typowy dla Windows pasek menu pozwalaj¹cy na dostÍp do poszczegÛlnych funkcji autoroutera oraz pasek narzÍdzi w†postaci ikon umoøliwiaj¹cy szybki dostÍp do podstawowych poleceÒ programu. Centraln¹ czÍúÊ okna stanowi obszar roboczy, w†ramach ktÛrego projekt jest wizualizowany i†gdzie dokonywana jest jego ìobrÛbkaî. Poniøej obszaru roboczego znajduje siÍ pasek poleceÒ zawieraj¹cy pole s³uø¹ce do wprowadzania komend steruj¹cych bezpoúrednio z†klawiatury (wiÍcej o†tym za chwilÍ) oraz pe³ni¹cy role informacyjne. Doln¹ czÍúÊ g³Ûwnego okna programu stanowi tzw. output window. W†postaci tekstowej prezentowane s¹ tu szczegÛ³owe dane dotycz¹ce wszystkich czynnoúci (wydanych poleceÒ, wykonanych operacji) jakie mia³y miejsce w†danej sesji (³¹cznie z†ich wynikiem), informacje odnoúnie ewentualnych b³ÍdÛw jakie pojawi³y siÍ podczas pracy oraz raporty koÒcowe dotycz¹ce np. rezultatÛw routingu - rys. 4. Dzia-
Elektronika Praktyczna 3/2003
P R O G R A M Y
Rys. 2 ³anie Specctry moøe byÊ kontrolowane na trzy sposoby: - bezpoúrednio z†poziomu interfejsu graficznego GUI, czyli w†sposÛb typowy dla wiÍkszoúci programÛw windowsowych, - poprzez podawanie odpowiednich komend z†klawiatury, - za pomoc¹ pliku DO. W†artykule skupimy siÍ na pierwszym z†wyøej wspomnianych sposobÛw kontrolowania autoroutera, ktÛry sprowadza siÍ do projektowania przy wykorzystaniu interfejsu graficznego Specctry. Naleøy tutaj dodaÊ, øe dzia³anie autoroutera moøna rÛwnieø bardzo precyzyjnie kontrolowaÊ za pomoc¹ poleceÒ wydawanych w†wewnÍtrznym jÍzyku Specctry, ktÛre mog¹ byÊ wydawane pojedynczo z†wiersza poleceÒ programu lub sekwencyjnie za pomoc¹ pliku DO. Wszystkie trzy metody mog¹ byÊ dowolnie przeplatane (³¹czone) podczas pojedynczej sesji. W†przypadku sterowania prac¹ programu z†klawiatury, polecenia wpisywane s¹ po prostu
Rys. 3
70
w†wierszu poleceÒ, ktÛry znajduje siÍ w†úrodkowej czÍúci okna g³Ûwnego - rys. 5. Oczywiúcie wykorzystywanie tej metody sterowania autorouterem uwarunkowane jest znajomoúci¹ znaczenia poszczegÛlnych komend. W†przypadku sterowania Specctr¹ za pomoc¹ pliku DO konieczna jest rÛwnieø znajomoúÊ sk³adni jÍzyka Specctry. DO file jest zwyk³ym plikiem tekstowym, ktÛry zawiera ci¹g okreúlonych przez uøytkownika poleceÒ steruj¹cych. Przyk³ad jego zawartoúci pokazano na rys. 6. Kaøda linia pliku zawiera pojedyncz¹ komendÍ. Polecenia wykonywane s¹ sekwencyjnie - kolejno od pocz¹tku do koÒca pliku. Niesie to za sob¹ koniecznoúÊ przemyúlenia kolejnoúci wykonywania poszczegÛlnych operacji. W†przypadku natrafienia na b³Ídy sk³adni, ktÛre z†takich czy innych wzglÍdÛw zaistniej¹ w†pliku DO, dzia³anie routera zostaje wstrzymane. Dodajmy jeszcze, øe wykonanie poleceÒ zawartych w†omawianym pliku moøe byÊ wyegzekwowane na dowolnym etapie projektowania (w dowolnym momencie sesji) lub juø w†trakcie uruchamiania Specctry. W†tym drugim przypadku w†omawianym wczeúniej oknie Startup (rys. 2) naleøy po prostu wskazaÊ odpowiedni¹ úcieøkÍ dostÍpu do DO file. Korzyúci p³yn¹ce ze stosowania pliku DO to moøliwoúÊ pe³nej automatyzacji dzia³ania autoroutera, bardzo precyzyjna kontrola pracy programu oraz
Rys. 4 moøliwoúÊ ponownego wykorzystania procedury (lub jej czÍúci) zawartej w†pliku podczas pracy nad kolejnym projektem. Najprostszym i†najczÍúciej stosowanym sterowania prac¹ autoroutera jest wykorzystanie jego interfejsu graficznego. Specctra nie odbiega tutaj zasadniczo od innych aplikacji przeznaczonych dla Windows. Sprawne pos³ugiwanie siÍ programem wymaga oczywiúcie zaznajomienia siÍ ze znaczeniem poszczegÛlnych funkcji i†okien, ktÛrych ze wzglÍdu na rozbudowane moøliwoúci Specctry nie jest wcale ma³o. Aplikacja moøe pracowaÊ w†dwÛch trybach g³Ûwnych: Place Mode oraz Route Mode. Jak ³atwo siÍ domyúleÊ Place Mode s³uøy do projektowania p³ytki pod k¹tem rozmieszczenia elementÛw, natomiast w†trybie Route Mode mamy moøliwoúÊ wytyczania po³¹czeÒ elektrycznych. W†zaleønoúci od tego w†jakim trybie aktualnie znajduje siÍ Specctra, zmienia siÍ nieco wygl¹d g³Ûwnego okna programu, w†ktÛrym wizualizowany jest projekt. Dotyczy to przede wszystkim funkcji jakie dostÍpne s¹ w†menu g³Ûwnym oraz ikon znajduj¹cych siÍ powyøej obszaru roboczego. Wynika to oczywiúcie z†faktu, øe zestaw funkcji dostÍpnych podczas rozmieszczania elementÛw rÛøni siÍ od tego jaki mamy do dyspozycji w†trakcie wytyczania úcieøek. Procedura uk³adania elementÛw na projektowanej p³ytce jest identyczna dla wszystkich programÛw wspomagaj¹cych projektowanie i†sk³ada siÍ z†czterech podstawowych etapÛw: ustalenia regu³ projektowych, rozmieszczenia elementÛw krytycznych, rozmieszczenia elementÛw duøych (o duøej liczbie wyprowadzeÒ) oraz rozmieszczenia elementÛw ma³ych (o ma³ej liczbie wyprowadzeÒ). Ustalenie zasad odnoúnie rozmieszczania elementÛw jest pierwszym krokiem, ktÛry naleøy wykonaÊ zanim przyst¹pimy do w³aúciwych prac projektowych. Specctra kontroluje bowiem wyniki naszych ìposuniÍÊî zarÛwno podczas interaktywnego jak i†automatycznego uk³adania komponentÛw
Elektronika Praktyczna 3/2003
P R O G R A M Y
Rys. 5 i†sygnalizuje ewentualne przekroczenia zadanych wczeúniej regu³. Autorouter zapewnia obszerny zestaw zasad projektowych zwi¹zanych z†rozmieszczaniem elementÛw. Podstawowe z†nich umoøliwiaj¹ kontrolÍ odleg³oúci miÍdzy komponentami, kontrolÍ rozk³adu elementÛw na poszczegÛlne warstwy p³ytki czy kontrolÍ orientacji komponentÛw. Moøemy jednak okreúlaÊ rÛwnieø bardziej zaawansowane regu³y pozwalaj¹ce na kontrolÍ rozmieszania elementÛw na przyk³ad ze wzglÍdu na koniecznoúÊ pod³¹czenia do konkretnej úcieøki zasilaj¹cej czy teø od innych uwarunkowaÒ takich jak np. wysokoúÊ komponentu. Zestaw regu³ moøe byÊ ponadto specyfikowany na rÛønych poziomach zgodnie z†hierarchi¹ narzucon¹ przez twÛrcÛw Specctry. Regu³y z†wyøszego poziomu ìnadpisuj¹î te, ktÛre plasuj¹ siÍ niøej w†hierarchii nawet jeúli fizycznie dotycz¹ one tego samego obiektu. To znaczy, øe po ustawieniu na przyk³ad global spacing na 0,25 cala dla wszystkich elementÛw i†0,8 cala dla wybranej grupy z†nich, autoruter zastosuje odstÍpy 0,8 cala ale tylko na obszarze na ktÛrym znajduje siÍ wybrana grupa elementÛw. Hierarchia poziomÛw na ktÛrych stosowane mog¹ byÊ regu³y projektowe dotycz¹ce rozmieszczenia elementÛw wygl¹da w†Specctrze w†nastÍpuj¹cy sposÛb: - image_image - zestaw regu³ pomiÍdzy okreúlonymi obrazami (footprintami) elementÛw (najwyøszy poziom w†hierarchii), - family_family - zestaw regu³ pomiÍdzy rodzinami (grupami) elementÛw, - room_image_set - zestaw regu³ dla grupy footprints o†podobnych w³aúciwoúciach (np. z†duø¹ liczb¹ wyprowadzeÒ, z†ma³¹ liczb¹ wyprowadzeÒ), ktÛre bÍd¹ stosowane na okreúlonym obszarze p³ytki,
- room - zestaw regu³, ktÛre bÍd¹ stosowane na okreúlonym przez uøytkownika obszarze p³ytki niezaleønie od rodzaju elementÛw jakie siÍ na nim znajd¹, - super cluster - zestaw regu³ dla grupy komponentÛw, ktÛre po³¹czone s¹ w†tzw. super cluster i†traktowane przez autorouter jako jeden odrÍbny element, - component - zestaw regu³ dla okreúlonego elementu, - image - zestaw regu³ dla okreúlonego footprintu. PojÍcia image i†component s¹ pojÍciami odrÍbnymi. Component okreúla konkretnie ten a†nie inny element projektu. Image oznacza widok typu obudowy (footprint), ktÛry moøe byÊ wspÛlny dla kilku rÛønych elementÛw, - image_set - zestaw regu³ dla grupy footprints o†podobnych w³aúciwoúciach, - pcb - globalny zestaw regu³ stosowany dla projektu (najniøszy poziom w†hierarchii). RK Dodatkowe informacje Wiêcej informacji mo¿na uzyskaæ w firmie RKSystem, www.rk-system.com.pl.
Rys. 6
Elektronika Praktyczna 3/2003
71
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 1000.
Automatyczny włącznik USB W†EP6/02 opisaliúmy prosty w³¹cznik monitora komputerowego. W†artykule prezentujemy bardziej rozbudowan¹ wersjÍ takiego w³¹cznika umoøliwia on w³¹czenie wraz z†uruchamianym komputerem czterech dodatkowych urz¹dzeÒ. Przeznaczony jest do zastosowania w†systemach komputerowych (komputer, monitor, drukarka, skaner itd.).
Informacja o†w³¹czeniu komputera jest pobierana ze z³¹cza USB. Z³¹cze takie jest dostÍpne w†kaødym nowoczesnym komputerze. Z³¹cze to oprÛcz komunikacji moøe rÛwnieø dostarczaÊ napiÍcie zasilaj¹ce dla do³¹czonych urz¹dzeÒ. NapiÍcie to ma wartoúÊ 5†V, a†maksymalny pobierany pr¹d moøe wynosiÊ 500 mA. Do zasilania w³¹cznika zosta³o wykorzystane to w³aúnie napiÍcie. Na rys. 1 przedstawiono schemat elektryczny w³¹cznika. G³Ûwnym elementem jest uk³ad US1. Jest to oúmiobitowy rejestr przesuwaj¹cy z†szeregowym wejúciem i†rÛwnoleg³ymi wyjúciami. Stany logiczne wystÍpuj¹ce na wejúciach ìAî i†ìBî s¹ przekazywane do wyjúÊ Q0...Q7 w†takt sygna³u zegarowego podawanego na wejúcie ìCLKî. Do zerowania rejestru po w³¹czeniu zasilania zastosowano uk³ad DS1811, bÍd¹cy scalonym generatorem sygna³u zerowania. Po wystÍpieniu zera logicznego
na we j úc i u M R, wyj úc i a Q0...Q7 zostaj¹ wyzerowane uniemoøliwiaj¹c w³¹czenie ktÛregokolwiek z†triakÛw. W†celu sekwencyjnego za³¹czania triakÛw niezbÍdny jest generator, ktÛry wykonany zosta³ z†dwÛch inwerterÛw zawartych w†uk³adzie US3. Pozosta³e inwertery zosta³y wykorzystane do odwrÛcenia poziomu i†wzmocnienia pr¹dowego sygna³Ûw wyjúciowych uk³adu US1. Z†wyjúÊ inwerterÛw s¹ poprzez rezystory R3...R6 zasi-
lane diody optotriakÛw X1...X4 oraz diody úwiec¹ce D1...D4. Diody úwiec¹ce zastosowano w†celu optycznej sygnalizacji stanu odpowiednich wyjúÊ w³¹cznika. Jeøeli úwieci siÍ dioda úwiec¹ca, to na odpowiednim z³¹czu CON4...CON7 jest dostÍpne napiÍcie 220V s³uø¹ce do zasilania do³¹czonego urz¹dzenia. Zastosowane optotriaki zapewniaj¹ izolacjÍ galwaniczn¹ miÍdzy obwodami steruj¹cym i†wykonawczymi w³¹cznika. DziÍki temu komputer jest ca³kowicie odizolowany od za³¹czanego napiÍcia sieci.
Rys. 1
Elektronika Praktyczna 3/2003
75
M I N I P R O J E K T Y
Rys. 2
Przebiegi czasowe charakteryzuj¹ce dzia³anie w³¹cznika przedstawiono na rys. 2. Po w³¹czeniu zasilania nastÍpuje wyzerowanie wszystkich wyjúÊ uk³adu US1. Generator rozpoczyna generowanie przebiegu prostok¹tnego o†czÍstotliwoúci oko³o 0,5 Hz. Wejúcia danych rejestru przesuwaj¹cego s¹ do³¹czone do plusa zasilania, wiÍc w†takt impulsÛw zegarowych na wyjúciach Q0...Q7 pojawiaj¹ siÍ kolejno jedynki logiczne. Wraz ze zmian¹ stanu tych wyjúÊ zostaje za³¹czane zasilanie urz¹dzeÒ do³¹czonych do z³¹czy CON4...CON7. Triaki s¹ za³¹czane z†ìprzerw¹î jednego bitu rejestru przesuwaj¹cego (z co drugiego wyjúcia), dziÍki czemu czÍstotliwoúÊ generatora jest dodatkowo dzielona przez dwa i†urz¹dzenia s¹ za³¹czane w†odstÍpach oko³o piÍciosekundowych. Po oúmiu impulsach zegarowych rejestr wyjúciowy uk³adu 74LS164 jest zape³niony jedynkami i†wszystkie do³¹czone urz¹dzenia s¹ w³¹czone. Pracuj¹cy dalej generator powoduje przepisywanie ìjedynekî z†wejúÊ danych uk³adu US1 na wyjúcia Q0...Q7. Nie daje to jednak øadnego efek-
76
tu, gdyø wpis jedynki do rejestru zawieraj¹cego same jedynki zasilania optotriakÛw nie zmienia. Stan taki trwa do momentu wy³¹czenia zasilania. Po kaødorazowym w³¹czeniu zasilania procedura bÍdzie siÍ powtarza³a. Po wy³¹czeniu komputera zaniknie napiÍcie zasilaj¹ce port USB, a†tym samym wszystkie urz¹dzenia zostan¹ automatycznie wy³¹czone. Montaø uk³adu naleøy zacz¹Ê od wlutowania rezystorÛw, nastÍpnie podstawek pod uk³ady scalone i†optotriaki. Kolejno montujemy triaki, ktÛrych koÒcÛwki naleøy zagi¹Ê pod k¹tem 90o tak, aby by³o moøliwe wlutowanie ich na leø¹co. Na koÒcu montujemy kondensatory, diody i†z³¹cza. Po prawid³owym zmontowaniu uruchamiamy uk³ad. W†tym celu potrzebny jest kabel USB typu A-B. Jedn¹ wtyczkÍ kabla wk³adamy w†z³¹cze USB, a†drug¹ do gniazda w³¹cznika. Po oko³o piÍciu sekundach od w³¹czenia komputera powinna zaúwieciÊ siÍ dioda D1, a†w†odstÍpach piÍciosekundowych bÍd¹ zapala³y siÍ kolejne diody. Jeøeli zosta³y zapalone diody, to
w³¹cznik pracuje prawid³owo i†procedura uruchomienia zosta³a zakoÒczona. W³¹cznik posiada dodatkowe z³¹cze USB typu ìBî umoøliwiaj¹ce pod³¹czenie urz¹dzenia pracuj¹cego z†wykorzystaniem portu USB. DziÍki temu w³¹cznik nie blokuje portu, a†wykorzystuje tylko napiÍcie zasilania, umoøliwiaj¹c jednoczesn¹ pracÍ w³¹cznika i†innego urz¹dzenia na tym samym porcie. Jeøeli w³¹cznik pracuje prawid³owo, moøemy przyst¹piÊ do pod³¹czenia sterowanych urz¹dzeÒ. W†tym celu do z³¹cza CON3 pod³¹czamy napiÍcie 220V. Do z³¹czy CON4...CON7 pod³¹czamy urz¹dzenia odbiorcze. Do jednego wyjúcia nie naleøy pod³¹czaÊ odbiornikÛw o†mocy wiÍkszej niø 200W, gdyø triaki pracuj¹ce bez radiatorÛw mog¹ ulec uszkodzeniu. Naleøy zachowaÊ szczegÛln¹ ostroønoúÊ przy pod³¹czaniu napiÍcia zasilania 220V oraz urz¹dzeÒ wyjúciowych, ze wzglÍdu na niebezpieczeÒstwo poraøenia. Krzysztof P³awsiuk, AVT
[email protected]
WYKAZ ELEMENTÓW Rezystory R1, R2: 1MΩ R3...R14: 220Ω Kondensatory C1: 1µF polipropylenowy C2: 100µF/16V C3: 100nF Półprzewodniki D1...D4: dioda LED 3mm US1: 74LS164 US2: DS1813 US3: 74HC04 X1...X4: MOC3042 Q1...Q4: BT138−600 Różne CON1: gniazdo USB typ “B” CON2: gniazdo USB typ “A” CON3...CON7: ARK2 (5mm) B1: gniazdo bezpiecznika + bezpiecznik 2A Podstawki DIL14 − 2 szt. Podstawki DIL6 − 4 szt.
P³ytka drukowana jest dostÍpna w AVT - oznaczenie AVT-1356. Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: ht t p: //ww w.e p.c o m.pl/?pdf/ marzec03.htm oraz na p³ycie CD-EP3/2003 w katalogu PCB.
Rys. 3
Elektronika Praktyczna 3/2003
K U R S
Podstawy projektowania systemów mikroprocesorowych, część 1 Dlaczego '51 i†dlaczego Atmel? Odpowiedü jest prosta: ze wzglÍdu na wbudowan¹ pamiÍÊ Flash, nisk¹ cenÍ i†³atw¹ dostÍpnoúÊ s¹ to mikrokontrolery bardzo popularne, a†ze wzglÍdu na duø¹ popularnoúÊ ³atwo jest znaleüÊ tanie, czÍsto bezp³atne, programy narzÍdziowe. Umoøliwia to amatorom-elektronikom realizacjÍ kompleksowych projektÛw bez ponoszenia jakichkolwiek kosztÛw. Co wiÍcej, gwarantowana przez producenta minimalna liczba cykli zapisu przekracza 1000, co w†zupe³noúci wystarcza do przygotowania, przetestowania i†wprowadzenia poprawek do dowolnie skomplikowanego programu - nie ma wiÍc koniecznoúci kupowania emulatora sprzÍtowego. Zapewne niektÛrzy Czytelnicy stwierdz¹, øe s¹ lepsze, szybsze, nowoczeúniejsze konstrukcje (np. rodzina AVR Atmela, PIC-e, czy inne) i†bÍd¹ mieli trochÍ racji, jednak w†wiÍkszoúci typowych zastosowaÒ nie jest potrzebna ani zawrotna moc obliczeniowa, ani rozbudowane peryferie wbudowane w†mikrokontroler potrzebny jest tani uk³ad, ³atwy do kupienia w†sklepie elektronicznym w†ma³ym mieúcie, dobrze opisany i†prosty w†programowaniu. Na rynku wydawniczym, w†czasopismach i†w†publikacjach elektronicznych jest dostÍpnych wiele informacji na temat mikrokontrolerÛw rodziny '51, ich parametrÛw, budowy wewnÍtrznej, dzia³ania uk³adÛw peryferyjnych i†zasad programowania. Brakuje pozycji w†przystÍpny sposÛb przekazuj¹cej praktyczne informacje dotycz¹ce projektowania uk³adÛw elektronicznych wykorzystuj¹cych mikrokontrolery. ChoÊ w†tym artykule i†cyklu nastÍpnych skoncentrujemy siÍ na najprostszych mikrokontrolerach rodziny '51 firmy Atmel (AT89Cx051, AT89C51, AT89C52), to podane tutaj informacje przydadz¹ siÍ rÛwnieø (poza wykorzystaniem specyficznych cech wymienionych procesorÛw) przy realizacji projektÛw, w†ktÛrych zastosujemy procesor z†rodziny AVR, PIC, uk³ady Motoroli czy innych producentÛw. Pokaøemy najprostsz¹ drogÍ prowadz¹c¹ do realizacji konkretnego celu, przedstawimy najczÍúciej pope³niane b³Ídy i†sposoby ich unikania, omÛwimy wspÛ³pracÍ mik-
Rozpoczynamy cykl artyku³Ûw, w†ktÛrych zostan¹ przedstawione najwaøniejsze zagadnienia zwi¹zane z†projektowaniem systemÛw mikroprocesorowych. Na modelowy mikrokontroler wybraliúmy atmelowskie wersje 8051, ktÛre ciesz¹ siÍ bardzo duøym powodzeniem wúrÛd projektantÛw w†naszym kraju. rokontrolera z†uk³adami analogowymi, ilustruj¹c wszystko schematami i†w†razie potrzeby przyk³adowymi procedurami w†asemblerze. W†realiach obecnej elektroniki, zw³aszcza cyfrowej, bez mikroprocesorÛw ani rusz, dlatego najwyøsza pora, aby zapoznaÊ siÍ z†niezbyt trudn¹ sztuk¹ praktycznego projektowania urz¹dzeÒ wykorzystuj¹cych mikrokontrolery, ktÛra otwiera drogÍ nowym zastosowaniom niedostÍpnym lub trudnym w†realizacji przy uøyciu ìzwyk³ychî uk³adÛw cyfrowych TTL czy CMOS i†pozwala na realizacjÍ elastycznych rozwi¹zaÒ dziÍki po³¹czeniu i†wspÛ³pracy uk³adÛw sprzÍtowych i†programu. Zatem zaczynamy...
Bez pr¹du ani rusz, czyli zasilanie mikrokontrolera Waøn¹, lecz niejednokrotnie lekcewaøon¹ spraw¹ jest zasilanie mikrokontrolera. CzÍsto w³aúnie niefortunne rozwi¹zanie obwodÛw zasilania jest przyczyn¹ niestabilnej pracy, objawiaj¹cej siÍ niekontrolowanym zerowaniem uk³adu lub generacj¹ zak³ÛceÒ na szynach zasilania i†wp³ywaj¹cych na pracÍ innych podzespo³Ûw wspÛ³pracuj¹cych z†mikrokontrolerem. Mikrokontrolery AT89C5x mog¹ byÊ zasilane napiÍciem 5†V†±20%, natomiast uk³ady AT89Cx051 umoøliwiaj¹ zasilanie ze ürÛd³a o†napiÍciu od 2,7 do 6†V. Najbardziej popularnym rozwi¹zaniem jest zasilanie mikrokontrolera napiÍciem 5†V†i†zastosowanie stabilizatora scalonego w†uk³adzie jak na rys. 1. Naleøy pamiÍtaÊ, øe uk³ady stabilizatorÛw serii 78xx potrzebuj¹ do prawid³owej pracy napiÍcia wejúciowego o†oko³o 3†V wyøszego niø napiÍcie wyjúciowe, co dla uk³adu 7805 daje minimaln¹ wartoúÊ napiÍcia wejúciowego oko³o 8†V. Jeøeli napiÍcie na wejúciu bÍdzie niøsze, spowoduje to
takøe spadek napiÍcia wyjúciowego, zmniejszy siÍ t³umienie tÍtnieÒ zasilania i†stabilizator - ogÛlnie mÛwi¹c - przestanie pe³niÊ swoj¹ funkcjÍ (choÊ mikrokontroler i†uk³ady wspÛ³pracuj¹ce ci¹gle mog¹ dzia³aÊ - nie bÍdzie to jednak praca pewna). Kondensatory C1 i†C2 powinny byÊ umieszczone jak najbliøej wyprowadzeÒ stabilizatora - zapobiegaj¹ one jego wzbudzeniu. W†pobliøu wyprowadzeÒ zasilania mikrokontrolera, jak i†kaødego innego uk³adu cyfrowego, musz¹ byÊ umieszczone kondensatory blokuj¹ce zasilanie (C4, C5) zapobiegaj¹ce zak³Ûcaj¹cemu dzia³aniu uk³adÛw na szynÍ zasilania i†zabezpieczaj¹ce inne elementy przed zak³Ûceniami przenoszonymi t¹ szyn¹. PojemnoúÊ kondensatora C3 nie powinna byÊ zbyt duøa (dla systemÛw pobieraj¹cych kilkanaúcie...kilkadziesi¹t mA kondensator C3 jest zbyteczny), duøo waøniejsza jest wartoúÊ pojemnoúci C†przed stabilizatorem, daj¹ca odpowiedni zapas energii redukuj¹cy tÍtnienia sieci. Ze stabilizatora 7805 moøna uzyskaÊ pr¹d o†maksymalnym natÍøeniu 1†A, co jest wartoúci¹ ca³kowicie wystarczaj¹c¹ dla wiÍkszoúci aplikacji. Waøn¹ spraw¹ jest moc tracona w†stabilizatorze, ktÛra przy napiÍciu zasilaj¹cym rzÍdu 12 V†i†wyøszym (max. 24 V), zmusza nas do stosowania radiatora, czasem o†doúÊ pokaünych rozmiarach. PobÛr pr¹du przez mikrokontroler jest zaleøny od napiÍcia zasilania oraz od czÍstotliwoúci taktowania. Producent podaje pobÛr pr¹du dla czÍstotliwoúci oscylatora 12 MHz, ktÛry dla uk³adÛw 89C5x wynosi 25 mA, a†dla uk³adÛw 89Cx051 wynosi 5,5 mA przy zasilaniu 3†V†i†15 mA przy 6†V. Z†tego powodu ìma³eî Atmele s¹ bardzo atrakcyjn¹ propozycj¹ dla aplikacji z†zasilaniem bate-
Rys. 1
Elektronika Praktyczna 3/2003
83
K U R S List. 1. ORG 0000H LJMP POCZATEK ;(procedury obsługi przerwań) POCZATEK: CLR P1.3 MOV A,P1 ANL A,#0F0h SWAP A MOV R7,A
;włączenie podtrzymania zasilania ;odczyt stanu klawiszy ;wyzerowanie niepotrzebnych bitów ;zamiana części bajtu ; otrzymujemy w rejestrze R7 stan klawiszy: ;bit 0 - stan klawisza P1 (0-wciśnięty) ;bit 1 - stan klawisza P2 (0-wciśnięty) ;bit 2 - stan klawisza P3 (0-wciśnięty) ;bit 3 - stan klawisza P4 (0-wciśnięty)
;(inicjalizacja liczników, zerowanie zmiennych, itp.) ;(właściwa część programu)
SETB P1.3 SJMP $
;wyłączenie podtrzymania po wykonaniu programu ;pozostań w pętli (ewentualne oczekiwanie na puszczenie ;długo trzymanego klawisza, mimo wyłączenia tranzystorów ;dopiero po jego puszczeniu wyłączy się zasilanie)
ryjnym lub wymagaj¹cych bateryjnego zasilania awaryjnego. Na rys. 2 przedstawiono jeden z†wielu moøliwych wariantÛw rezerwowego zasilania mikrokontrolera. Jako ürÛd³o rezerwowe zastosowano akumulatorek 3,6 V. Dobrze w†tej roli sprawdzaj¹ siÍ akumulatorki NiCd 3,6 V/60 mAh, stosowane dawniej w†p³ytach g³Ûwnych komputerÛw PC. Moøna rÛwnieø zastosowaÊ akumulatorki wykorzystywane w†s³uchawkach telefonÛw bezprzewodowych, posiadaj¹ one wiÍksz¹ pojemnoúÊ, lecz s¹ droøsze. Dioda D2 powinna byÊ diod¹ Schottky'ego, ze wzglÍdu na niøszy niø w†standardowych diodach spadek napiÍcia na z³¹czu, D1 moøe byÊ zwyk³¹ diod¹ krzemow¹ - stanowi ona zabezpieczenie przed zasilaniem ca³ego urz¹dzenia ze ürÛd³a rezerwowego. Rezystor R1 dobieramy w†celu uzyskania poø¹danego pr¹du ³adowania akumulatorka - naleøy przy tym pamiÍtaÊ, øe akumulatorek bÍdzie do³adowywany przez ca³y czas pracy zasilania g³Ûwnego, wiÍc naleøy ograniczyÊ pr¹d ³adowania do wartoúci dla niego bezpiecznej. Dla rezystora R1
Rys. 2
84
o†wartoúci 47 kΩ maksymalny pr¹d ³adowania przy roz³adowanym akumulatorku osi¹ga 0,05 mA, co daje nam ponad miesi¹c czasu potrzebny do pe³nego na³adowania. Taka wartoúÊ pr¹du nie zagraøa nawet w†pe³ni na³adowanemu akumulatorkowi. Jeøeli przewiduje siÍ czÍstsze przerwy w†zasilaniu (ze wzglÍdu np. na przenoszenie urz¹dzenia), warto zastosowaÊ wiÍksze pr¹dy ³adowania, niezbÍdne do uzupe³niania zuøytej energii. WÛwczas dioda D1 powinna byÊ diod¹ krzemow¹, co przy zasilaniu 5†V†ograniczy maksymalne napiÍcie na akumulatorku do bezpiecznej wartoúci oko³o 4,4 V†bez koniecznoúci ograniczania pr¹du ³adowania, gdy akumulatorek zostanie w†pe³ni na³adowany. Zastosowany kondensator C2 blokuje zasilanie, natomiast C1 jest odpowiedzialny za stabiln¹ pracÍ w†momentach wy³¹czania, a†zw³aszcza w³¹czania zasilania g³Ûwnego. Kondensator C1 powinien mieÊ pojemnoúÊ kilka razy wiÍksz¹ niø kondensator obwodu zerowania mikrokontrolera (C3, R2). Spowodowane jest to tym, øe przy braku C1 po pojawie-
niu siÍ napiÍcia g³Ûwnego nast¹pi do³adowanie kondensatora C3 od napiÍcia zapewnianego przez obwÛd rezerwowy do wartoúci 4,4...4,7 V†(w zaleønoúci od typu D1). Przy niskim napiÍciu akumulatorka rezerwowego istnieje moøliwoúÊ, øe przep³yw pr¹du przez obwÛd C3 i†R2 (oraz wewnÍtrzny rezystor mikroprocesora) wywo³a spadek napiÍcia na R2, ktÛry moøe wyzerowaÊ mikrokontroler. ObecnoúÊ C1 oraz rezystancja dynamiczna diody D1 ograniczaj¹ prÍdkoúÊ narastania napiÍcia, a†co za tym idzie wartoúÊ pr¹du do³adowuj¹cego C2, zatem napiÍcie na R2 nie osi¹gnie wartoúci groø¹cej wyzerowaniem mikrokontrolera. Opisany uk³ad nie jest zalecany do pracy z†mikrokontrolerami AT89C5x, poniewaø w†przypadku tych uk³adÛw naleøa³oby zastosowaÊ akumulatorek o†napiÍciu 4,8 V†- pojemnoúÊ akumulatorka 3,6 V†nigdy nie bÍdzie ca³kowicie wykorzystana, gdyø ìduøeî Atmele nie dzia³aj¹ przy tak niskich napiÍciach jak ìma³eî. W†praktyce czÍsto wykorzystywane s¹ urz¹dzenia, ktÛre zasilane powinny byÊ tylko w†chwili zaistnienia odpowiedniego zdarzenia zewnÍtrznego - najczÍúciej wciúniÍcia przycisku (np. nadajniki zdalnego sterowania, itp.), gdy przez pozosta³y czas uk³ad pozostaje bezczynny, co przy zasilaniu bateryjnym jest czystym marnotrawstwem. Na rys. 3 pokazano fragment schematu przyk³adowego urz¹dzenia, ktÛrego zasilanie jest w³¹czane tylko na czas obs³ugi wciúniÍcia przycisku. WciúniÍcie ktÛregokolwiek z†przyciskÛw powoduje do³¹czenie ujemnego bieguna zasilania do masy urz¹dzenia. Po rozpoczÍciu pracy przez mikrokontroler, pierwsz¹ instrukcj¹ jest wyzerowanie linii portu P1.3, co powoduje w³¹czenie tranzystora T2 i†podanie napiÍcia na bazÍ T1. NastÍpuje w³¹czenie T1 i†podtrzymanie zasilania mimo zwolnienia naciúniÍtego przycisku. Po wykonaniu programu odpowiedzialnego za obs³ugÍ naciúniÍcia konkretnego przycisku mikroprocesor ustawia liniÍ P1.3, powoduj¹c zatkanie T2 i†T1, i†od³¹czenie zasilania. ObwÛd zasilania mikrokontrolera
Rys. 3
Elektronika Praktyczna 3/2003
K U R S i†pozosta³ych uk³adÛw nie powinien posiadaÊ filtruj¹cych kondensatorÛw elektrolitycznych o†pojemnoúciach powyøej 10 µF, gdyø wyd³uø¹ one czas w³¹czania i†mog¹ spowodowaÊ trudnoúci z†wy³¹czeniem (uk³ad moøe siÍ ìzatrzasn¹Êî ze wzglÍdu na niestabiln¹ pracÍ mikrokontrolera przy powolnym opadaniu napiÍcia zasilania). PewnoúÊ dzia³ania uk³adu zwiÍkszy dodanie dodatkowego obci¹øenia w†postaci rezystora (np. 330 Ω) pod³¹czonego miÍdzy szynami Vcc i†GND mikrokontrolera - spowoduje to jednak wzrost poboru pr¹du podczas dzia³ania urz¹dzenia. Wad¹ przedstawionego rozwi¹zania jest koniecznoúÊ przytrzymania przycisku tak d³ugo, jak trwa czas zerowania mikroprocesora, plus czas potrzebny na wykonanie rozkazÛw odpowiedzialnych za w³¹czenie podtrzymania i†odczyt wyprowadzeÒ poszczegÛlnych klawiszy (okreúlenie, ktÛry klawisz zosta³ naciúniÍty) - dlatego te czÍúci programu powinny byÊ jednymi z†pierwszych rozkazÛw. Moøna to zrealizowaÊ w†sposÛb pokazany na list. 1. Niew¹tpliw¹ zalet¹ tej metody jest praktycznie zerowy pobÛr pr¹du, gdy uk³ad jest nieaktywny. Zmniejszanie poboru mocy moøna dokonaÊ na drodze zmniejszania czÍstotliwoúci taktowania, ktÛra niemal liniowo wp³ywa na pobÛr pr¹du, duøy zysk
Elektronika Praktyczna 3/2003
energii osi¹gniemy takøe, obniøaj¹c napiÍcie zasilania. Jest to jednak moøliwe tylko w†uk³adach AT89Cx051, ze wzglÍdu na szeroki zakres napiÍÊ zasilaj¹cych - uk³ady AT89C5x przestaj¹ poprawnie pracowaÊ juø przy napiÍciu zasilania rzÍdu 3,5 V. NiektÛre egzemplarze uk³adÛw AT89Cx051 pracuj¹ poprawnie juø od napiÍcia rzÍdu 1,8...1,9 V, co z†powodzeniem pozwala na zasilanie ich z†dwÛch akumulatorkÛw Ni-Cd (2,4 V) lub dwÛch zwyk³ych ogniw cynkowych czy alkalicznych (3 V). Jeszcze wiÍksze obniøenie napiÍcia zasilania moøliwe jest po wprowadzeniu mikrokontrolera w†tryb Power Down (przez ustawienie bitu PD rejestru PCON), co pozwala na obniøenie napiÍcia zasilania zarÛwno ìduøychî, jak i†ìma³ychî Atmeli do wartoúci 2†V†(gwarantowane przez producenta), a†praktycznie nawet do 1,2...1,3 V. Niestety procesor w†takim stanie nie pracuje, podtrzymywana jest jedynie zawartoúÊ wewnÍtrznej pamiÍci danych i†rejestrÛw SFR. PowrÛt do normalnej pracy moøliwy jest tylko przez generacjÍ sygna³u RESET (po uprzednim przywrÛceniu pe³nego napiÍcia zasilania). Wejúcie w†stan Power Down powinno nast¹piÊ zatem przed zanikiem napiÍcia zasilania. Realizacja uk³adu wykrywania zaniku g³Ûwnego napiÍcia zasilania jest bardzo pros-
ta - wystarcza do³¹czenie ktÛregokolwiek wyprowadzenia dowolnego portu mikrokontrolera do linii zasilania g³Ûwnego przez rezystor rzÍdu 1†do 10 kΩ (na rys. 2†- rezystor R3). W†chwili zaniku napiÍcia g³Ûwnego na linii zasilania pojawi siÍ potencja³ bliski masy (ze wzglÍdu na do³¹czone inne odbiorniki), co spowoduje wprowadzenie linii portu w†stan niski - wykrycie stanu niskiego oznacza brak zasilania i†koniecznoúÊ podjÍcia okreúlonych dzia³aÒ, np. wejúcie w†stan Power Down. Wyjúcie z†tego stanu jest moøliwe wy³¹cznie po naciúniÍciu przycisku P1 (rys. 2.). Moøliwe jest rÛwnieø wejúcie w†tryb pracy Idle (uúpienie), ktÛry rÛwnieø zatrzymuje pracÍ mikrokontrolera, dzia³aj¹ jednak przerwania i†generator sygna³u zegarowego. Wyjúcie z†trybu Idle nastÍpuje w†momencie nadejúcia zg³oszenia dowolnego przerwania (lub sygna³u RESET) - umoøliwia to realizacjÍ wielu zadaÒ, np. realizacjÍ zegara czasu rzeczywistego pobieraj¹cego z†zasilania rezerwowego pr¹d duøo mniejszy niø przy normalnej pracy. Moøliwy jest teø powrÛt do normalnej pracy przy do³¹czeniu do linii przerwaÒ zewnÍtrznych obwodu wykrywaj¹cego powrÛt g³Ûwnego napiÍcia zasilania (generuj¹cego na wyjúciu stan 0†po pojawieniu siÍ napiÍcia). Pawe³ Hadam
85
K U R S
WiÍkszoúÊ urz¹dzeÒ wykonanych na mikrokontrolerach
część 10
wymaga zastosowania jakiegoú interfejsu zapewniaj¹cego komunikacjÍ z†uøytkownikiem. W†poprzednich odcinkach kursu zajmowaliúmy siÍ prezentacj¹ wynikÛw przy pomocy wyúwietlacza LED czy LCD. Czasami jednak trzeba rÛwnieø wprowadziÊ pewne parametry - na przyk³ad wartoúÊ czasu, napiÍcia itp. Moøna to zrobiÊ na wiele sposobÛw, lecz jeden z†nich przyj¹³ siÍ wiele lat temu i†krÛluje do dziú - klawiatura.
Obsługa klawiatury w C, część 1 Ten odcinek w†ca³oúci poúwiÍcony bÍdzie obs³udze pojedynczych klawiszy, klawiatur, zawrzemy w†nim przegl¹d najczÍúciej stosowanych rozwi¹zaÒ. Zaczniemy od prostych metod wykrywania naciúniÍcia pojedynczego klawisza, poprzez proste klawiatury wielostykowe, przedstawimy takøe zagadnienia obs³ugi klawiatur matrycowych, a†takøe dzia³aj¹cych z†wykorzystaniem przerwaÒ.
Testowanie stanu pojedynczego przycisku Na pocz¹tek zajmiemy siÍ testowaniem stanu pojedynczego przycisku. Wbrew pozorom nie jest to zadanie ³atwe, mimo iø tak moøe siÍ wydawaÊ na pocz¹tku. Program musi uwzglÍdniÊ fizyczne w³aúciwoúci styku, zabezpieczyÊ siÍ przed przypadkowym jego wciúniÍciem lub zewnÍtrznym zak³Ûceniem. Na podstawie obs³ugi pojedynczego przycisku omÛwimy podstawowe zasady odczytu stanu prze³¹cznika. Funkcje omawiane dalej bÍd¹ tylko rozwiniÍciem omawianej tutaj funkcji podstawowej. Na rys. 1 pokazano sposÛb pod³¹czenia klawisza wykorzystywany
Rys. 1. Podłączenie pojedynczego klawisza do mikrokontrolera wykorzystywane w przykładzie 1
86
w†przyk³adzie. Pojedynczy przycisk pod³¹czony zosta³ do portu P1.2 mikrokontrolera z†rodziny 8051 (AT89C2051). Ty moøesz zrobiÊ to tak samo, moøesz rÛwnieø wykorzystaÊ inn¹ liniÍ portu. ZwrÛÊ tylko uwagÍ na to, czy nie ma przypadkiem koniecznoúci do³¹czenia do tej linii rezystora pullup. Potrzebne informacje moøna znaleüÊ w†dokumentacji mikrokontrolera. W†przyk³adzie uøywa³em AT89C2051, ktÛry posiada wewnÍtrzny rezystor pullup do³¹czony do linii P1.2. Przycisk pod³¹czy³em w†taki sposÛb, aby w†momencie jego naciúniÍcia linia portu P1.2 zwierana by³a do masy. Dlaczego? OtÛø w†ìnormalnejî sytuacji, gdy port pracuje jako wejúciowy, linia ta jest pod³¹czona do dodatniego napiÍcia zasilania przez rezystor pullup. W†konsekwencji mikrokontroler sprawdzaj¹c stan bitu P1.2 odczyta stan wysoki. Moøna go zmieniÊ (pamiÍtajmy, øe linia pracuje jako wejúciowa) podaj¹c stan niski, tak aby zmieni³ siÍ potencja³ wymuszany przez rezystor. Podanie stanu niskiego odpowiada zwarciu linii P1.2 do masy. To jeden z†powodÛw. Drugi, to mog¹ce pojawiÊ siÍ zak³Ûcenia. W†przyjÍtej konfiguracji znacznie ³atwiej je wyeliminowaÊ, poniewaø impedancja linii w†stanie niskim jest wielokrotnie mniejsza niø w†stanie wysokim. Tyle o†pod³¹czeniu, teraz warto by wspomnieÊ o†w³aúciwoúciach fizycznych stykÛw prze³¹cznika. Podczas zwierania stykÛw prze³¹cznika, moøe pojawiÊ siÍ ich drganie, co zilustrowano na rys. 2. Jak ³atwo zauwaøyÊ, stan niski na wejúciu portu pojawi siÍ co najmniej kilkakrotnie i†jeúli mikrokontroler bÍdzie wystarczaj¹co szybki, a†zadanie klawisza polegaÊ ma np. na zwiÍkszeniu jakiegoú parametru wartoúci o†1†przy jego naciúniÍciu, to moøe siÍ okazaÊ, øe pojedyncze naciúniÍcie
klawisza owocuje przyrostem wartoúci zmiennej o†kilka czy nawet kilkanaúcie krokÛw. We wspÛ³czeúnie produkowanych miniaturowych prze³¹cznikach zjawisko drgania stykÛw zosta³o prawie ca³kowicie wyeliminowane, jednak jego wystÍpowanie zaleøeÊ bÍdzie od konstrukcji mechanicznej prze³¹cznika - poniewaø tej nigdy nie moøemy byÊ pewni, lepiej siÍ przed nim zabezpieczyÊ. Lekarstwem na to zjawisko jest prosty zabieg: reakcja na wciúniÍty klawisz (czy to opadaj¹ce zbocze, czy poziom niski sygna³u), odczekanie przez czas 20...50 ms i†ponowny odczyt stanu portu. Jeúli nie zmieni³ siÍ on, to oznacza, øe klawisz nadal jest wciúniÍty i†uøytkownik oczekuje reakcji na wciúniÍcie przycisku. Jeúli odczytany stan jest wysoki, to oznaczaÊ moøe, øe albo odebrano zak³Ûcenie, albo przypadkowo naciúniÍto klawisz. TÍ prost¹ zasadÍ dzia³ania wykorzystuje program umieszczony na list. 1. Stan klawisza sygnalizowany jest przez bit 3†portu P1. Bit ten przyjmuje poziom logiczny niski, gdy klawisz jest wciúniÍty.
Rys. 2. Typowy przebieg sygnału na wejściu mikrokontrolera po naciśnięciu przycisku
Elektronika Praktyczna 3/2003
K U R S List. 1. Prosty program odczytujący stan klawisza podłączonego do P1.2 /* prosty program demonstracyjny “odczyt pojedynczego klawisza” klawisz włączony pomiędzy masę a port P1.2, stan aktywny = L; rezonator kwarcowy 8MHz */ #include
//dołączenie definicji rejestrów mikrokontrolera
sbit PortKey = P1^2; sbit Active = P1^3;
//definicja bitu portu klawisza //port przyjmuje stan niski, gdy klawisz //jest wciśnięty
//opóźnienie około 1 milisekundy dla kwarcu 8MHz void Delay(unsigned int time) { unsigned int j; while (time >= 1) //wykonanie pętli FOR zajmuje około 1 msek. { //pętla jest powtarzana TIME razy for (j=0; j<65; j++); time--; } } //funkcja - reakcja na naciśnięcie klawisza //tylko ustawienie stanu portu wyjściowego void KeyPressed(void) { Active = 0; } //funkcja - reakcja, gdy klawisz nie jest wciśnięty //tylko ustawienie stanu portu wyjściowego void KeyNotPressed(void) { Active = 1; } //początek programu głównego void main(void) { while (1) //pętla nieskończona { if (!PortKey) { Delay(20); //opóźnienie 20ms if (!PortKey) //ponowny odczyt klawisz i podjęcie akcji, { //jeśli nadal wciśnięty KeyPressed(); while (!PortKey); //oczekiwanie na zwolnienie klawisza } } KeyNotPressed(); //akcja, gdy klawisz nie jest wciśnięty } }
Pocz¹tek programu zawiera deklaracje bitÛw portu: bit 2†pracuje jako wejúciowy - do niego jest pod³¹czony klawisz, bit 3†pracuje jako wyjúciowy - jego stan zmienia siÍ w†zaleønoúci od stanu klawisza. Funkcja void KeyPressed() zawiera polecenia wykonywane w†sytuacji, gdy klawisz jest wciúniÍty i†odwrotnie: funkcja void KeyNotPressed() zawiera polecenia wykonywane, gdy klawisz jest zwolniony. W³aúciwy odczyt klawisza zosta³ zdefiniowany w†programie g³Ûwnym i†sprowadza siÍ do testowania stanu pojedynczego bitu portu przy pomocy polecenia if (jeúli). Wyraøenie if (!PortKey) oznacza: jeúli zmienna PortKey ma wartoúÊ ìnie zeroî, to wykonaj polecenia zawarte pomiÍdzy nawiasami klamrowymi. Czyli: odczekaj 20 milisekund, odczytaj ponownie stan bitu portu. Jeúli nadal jest on rÛwny stanowi niskiemu, to wykonaj funkcjÍ odpowiadaj¹-
Elektronika Praktyczna 3/2003
c¹ wciúniÍtemu klawiszowi. Zadaniem pÍtli while (!PortKey) jest oczekiwanie aø klawisz zostanie zwolniony. while (1) //pętla nieskończona, { //w niej odczyt klawisza if (!PortKey) { Delay(20); //opóźnienie 20ms if (!PortKey) //ponowny odczyt klawisz //i podjęcie akcji, { KeyPressed(); //jeśli nadal wciśnięty while (!PortKey); //oczekiwanie na zwolnienie //klawisza } } KeyNotPressed(); //akcja, gdy klawisz nie jest //wciśnięty }
Zaznaczam - jest to jedna z†najprostszych moøliwych funkcji obs³ugi klawisza. W†wiÍkszoúci sytuacji jest wystarczy, ma jednak tÍ wadÍ, øe po jego wciúniÍciu oczekuje na zwolnienie blokuj¹c tym samym wykonywanie innych zadaÒ, o†ile nie s¹ one obs³ugiwane przez przerwania.
Funkcja ìautorepeatî klawisza Kaødy uøytkownik komputera PC zna funkcjÍ ìautorepeatî klawiatury. Polega ona na powtarzaniu kodu wciúniÍtego klawisza. Zrealizujemy tak¹ funkcjÍ w†programie dla mikrokontrolera. Ustalmy najpierw metodÍ. Wydaje mi siÍ, øe spoúrÛd wielu sposobÛw obs³ugi klawiszy, najbardziej naturalnymi s¹: 1. Po wciúniÍciu jednokrotne wys³anie kodu wciúniÍtego klawisza, brak reakcji jeúli klawisz nie zosta³ zwolniony. 2. Po wciúniÍciu wys³anie kodu klawisza i†jeúli nie zosta³ on zwolniony powtarzanie kodu klawisza co pewien ustalony odstÍp czasu. 3. Po wciúniÍciu wys³anie kodu klawisza i†jeúli nie zosta³ on zwolniony - powtarzanie kodu klawisza pocz¹tkowo wolno a†po wykonaniu pewnej liczby powtÛrzeÒ - znacznie szybciej. W†tym odcinku kursu wykonamy program, ktÛry zrealizuje w†praktyce dzia³anie klawiatury w†sposÛb numer 3. Z†racji tego, øe liczba klawiszy nie ma wiÍkszego znaczenia dla zrozumienia zasady dzia³ania, zanim przejdziemy do bardziej zaawansowanych rozwi¹zaÒ, pos³uøymy siÍ (podobnie jak poprzednio) rozwi¹zaniem wykorzystuj¹cym pojedynczy przycisk. Tu jedna uwaga: to tylko propozycja rozwi¹zania. Pisz¹c programy czÍsto zauwaøysz, øe jeden problem moøna rozwi¹zaÊ na kilka moøliwych sposobÛw. Aby funkcja automatycznego powtarzania naciúniÍtego klawisza mog³a dzia³aÊ, nie wolno zatrzymywaÊ programu i†oczekiwaÊ na zmianÍ stanu przycisku. Mikrokontroler musi nieprzerwanie (nie bierz tego dos³ownie) wykonywaÊ program sprawdzaj¹c stan klawisza i†sprawdzaj¹c warunki dla funkcji ìautorepeatî. W†zwi¹zku z†tym nie wolno nam uøyÊ konstrukcji while (!PortKey) z†poprzedniego przyk³adu. Trzeba zastosowaÊ zupe³nie inn¹ metodÍ: program przyk³adowy liczy liczbÍ cykli odczytu stanu przycisku i†w†zaleønoúci od jej wartoúci podejmuje odpowiedni¹ akcjÍ.
87
K U R S List. 2. Program odczytuje stan klawisza podłączonego do P1.2 wyposażony w rozbudowaną funkcję “autorepeat” /* prosty program demonstracyjny “odczyt pojedynczego klawisza” z funkcją automatycznego powtarzania. klawisz włączony pomiędzy masę a port P1.2, stan aktywny = L; rezonator kwarcowy 8MHz */ #include
//dołączenie definicji rejestrów mikrokontrolera
#define Time_1 #define Time_2 #define Time_3
//time 1 = około 15 ms //około 1,5 sekundy //po 20 wykonaniach pętli dla Time_2
900 9000 9020
unsigned int Counter = 0; sbit PortKey = P1^2; sbit Active = P1^3;
//deklaracja zmiennej licznika //definicja bitu portu klawisza //port przyjmuje stan niski, gdy klawisz //jest wciśnięty
//opóźnienie około 1 milisekundy dla kwarcu 8MHz void Delay(unsigned int time) { unsigned int j; while (time >= 1) { for (j=0; j<65; j++); time-; }
//wykonanie pętli FOR zajmuje około 1 msek. //pętla jest powtarzana TIME razy
//czy licznik jest większy //od warunku dla { //wolniejszego autorepeat? KeyPressed(); //tak - wykonaj //fragment kodu Delay(500); //dłuższe opóźnienie } else if (Counter == Time_1) //czy licznik osiągnął wartość, //gdy uznajemy klawisz { //za wciśnięty? KeyPressed(); //tak - wykonaj //fragment kodu } } else Counter = 0; //zeruj licznik, jeśli zwolniono //klawisz
} //funkcja - reakcja na naciśnięcie klawisza //tylko ustawienie stanu portu wyjściowego void KeyPressed(void) { Active = Ćounter; } //funkcja - reakcja, gdy klawisz nie jest wciśnięty //tylko ustawienie stanu portu wyjściowego void KeyNotPressed(void) { Active = 1; } //początek programu głównego void main(void) { while (1) //pętla nieskończona { if (!PortKey) { Counter++; //tak, zwiększ licznik if (Counter > Time_3) //czy licznik większy od warunku dla { //szybszego autorepeat? KeyPressed(); //tak - wykonaj fragment kodu Counter-; Delay(100); //krótsze opóźnienie } else; if (Counter > Time_2) //czy licznik większy od warunku dla { //wolniejszego autorepeat? KeyPressed(); //tak - wykonaj fragment kodu Delay(500); //dłuższe opóźnienie } else; if (Counter == Time_1) //czy licznik osiągnął wartość, gdy { //uznajemy klawisz za wciśnięty? KeyPressed(); //tak - wykonaj fragment kodu } } else; { Counter = 0; KeyNotPressed(); }
//licznik jest zerowanym, gdy klawisz //zostaje zwolniony
} }
Oto czÍúÊ programu napisanego w†jÍzyku C, w†ktÛrym pozostawi³em tylko naprawdÍ niezbÍdne fragmenty kodu ürÛd³owego: if (!PortKey) //czy naciśnięto klawisz? { Counter++; //tak, zwiększ licznik if (Counter > Time_3)
88
//czy licznik jest większy //od warunku dla { //szybszego autorepeat? KeyPressed(); //tak - wykonaj //fragment kodu Counter-; Delay(100); //krótsze opóźnienie } else if (Counter > Time_2)
Na pocz¹tku program sprawdza stan klawisza. Jeúli jest on wciúniÍty, to wartoúÊ zmiennej Counter zwiÍkszana jest o†1†i†rozpatrywana przez konstrukcjÍ if. W†przeciwnym przypadku zmiennej nadawana jest wartoúÊ 0. Zadaniem if jest zdecydowanie jaka akcja zostanie podjÍta w†zaleønoúci od wartoúci zmiennej Counter. Sta³a Time_1 to iloúÊ pojedynczych operacji odczytu bitu przycisku, po ktÛrej uznaje go za wciúniÍty. Jej wartoúÊ w†g³Ûwnej mierze zaleøy od szybkoúci mikrokontrolera i†musi byÊ dobrana indywidualnie dla budowanego uk³adu. Sta³a Time_2, to iloúÊ przebiegÛw cykli odczytu, dla ktÛrej uznajÍ warunek dla ìwolniejszegoî powtarzania za spe³niony. Wykonywany jest wÛwczas fragment programu zawieraj¹cy instrukcjÍ Delay(500) powoduj¹c¹ przerwÍ ok. 0,5 sekundy pomiÍdzy powtÛrzeniami odczytu klawisza. Jeúli wartoúÊ zmiennej Counter osi¹gnie wartoúÊ sta³ej Time_3, to wykonywany jest fragment programu z†instrukcj¹ Delay(100): czas pomiÍdzy powtÛrzeniami akcji w³aúciwej dla wciúniÍtego przycisku jest piÍciokrotnie krÛtszy. Instrukcja Counter- s³uøy do zabezpieczenia przed przekroczeniem wartoúci dopuszczalnej dla danego typu zmiennej Counter. Do automatycznego powtarzania kodu klawisza wrÛcimy jeszcze przy okazji budowy menu. W†tym momencie, proponujÍ wykorzystaÊ program z†list. 2 aby zobaczyÊ jak nastawy wartoúci Time_1, Time_2 i†Time_3 wp³ywaj¹ na pracÍ programu wykonywanego przez mikrokontroler. Jacek Bogusz, AVT [email protected]
Elektronika Praktyczna 3/2003
K U R S
CRC doda Ci pewności, część 3 Jesteúmy juø po pierwszych przymiarkach do napisania w³asnego programu licz¹cego CRC. Cel wydaje siÍ byÊ coraz bliøej, ale drogi jakby zaczynaj¹ siÍ rozchodziÊ. Na szczÍúcie kaøda jest dobra. Dociekliwie bÍdziemy sprawdzaÊ wszystkie tak, by pÛüniej kaødy mÛg³ wybraÊ najodpowiedniejsz¹ dla siebie. Metoda maglowanej tablicy Poprzedni odcinek zakoÒczyliúmy napisaniem jednolinijkowego wyraøenia obliczaj¹cego CRC. Jak na pocz¹tek ca³kiem nieüle. Niby dopiero zaczynamy, a†juø potrafimy stworzyÊ tak zwiÍz³y kod. Przypomnijmy wiÍc: unsigned long r; ... r=0; while(len--) r=((r<<8) | *pMsg++) ^ tab[(unsigned char)((r>>24) & 0xff)];
Jest jednak pewien problem. Jak widaÊ powyøsza pÍtla operuje na danych bÍd¹cych kolejnymi bajtami pobieranej wiadomoúci. Chc¹c wykorzystaÊ tak napisany program naleøy dopisaÊ na koÒcu wiadomoúci (dope³niÊ j¹) W/8 bajtÛw o†wartoúci zero. W†praktyce moøe to stanowiÊ niedogodnoúÊ lub nie, zaleøy od konkretnych rozwi¹zaÒ. Jeúli blok danych jest przechwytywany przez inny fragment programu, moøemy siÍ spodziewaÊ nawet sporych k³opotÛw. Jednym z†moøliwych rozwi¹zaÒ bÍdzie dopisanie poniøszej linii (bÍdzie ona wykonywana po wyjúciu z†pÍtli obliczeniowej z†przyk³adu pokazanego wczeúniej): for (i=0; i> 24) & 0xFF];
LiniÍ tÍ bÍdzie moøna pÛüniej zmodyfikowaÊ tak, øeby unikn¹Ê koniecznoúci wczytywania zerowych bajtÛw lub w†sposÛb jawny dopisywaÊ zera jak wyøej. Dla objaúnienia zamys³u jeszcze raz pos³uøymy siÍ rysunkiem znanym z†czÍúci 2, ktÛry dla wygody powtarzamy poniøej (rys. 5). Zauwaømy jeszcze dwa fakty: KoÒcÛwka - zerowe bajty (bÍdzie ich W/4) pojawiaj¹ce siÍ na koÒcu pobieranej wiadomoúci bÍd¹ ìwpychaneî do rejestru z†prawej strony, ale ich zerowa wartoúÊ nie bÍdzie mia³a øadnego wp³ywu na wynik obliczeÒ. Wynika to z†tego, øe jak pamiÍtamy XOR-owanie z†zerami nie zmienia bajtu wejúciowego. Tak wiÍc, funkcja podstawowa wyliczaj¹ca bajty zerowe generuje wyniki wykorzystywane w†kolejnym cyklu obliczeÒ, co powoduje, øe po ich zakoÒczeniu wszystkie przesy³ane dane ìprzejd¹î przez rejestr. Nag³Ûwek - jeúli po zainicjowaniu rejestr bÍdzie mia³ zerow¹ wartoúÊ, to
cztery pocz¹tkowe iteracje pÍtli s¹ rÛwnoznaczne z†przesuniÍciem czterech pierwszych bajtÛw wiadomoúci. Wynika to z†faktu, øe pierwsze 32 bity steruj¹ce (pobierane kolejno z†rejestru) maj¹c wartoúÊ zerow¹, s¹ ca³kowicie bez wp³ywu na wynik XOR-owania. Co wiÍcej, nawet jeúli wartoúÊ pocz¹tkowa rejestru nie jest zerowa, to pierwsze cztery bajty iteracji omawianego algorytmu dadz¹ rÛwnieø jednoznaczny efekt przesuniÍcia pierwszych czterech bajtÛw wiadomoúci i†XOR-owania ich z†pewn¹ sta³¹ wartoúci¹ (bÍd¹c¹ funkcj¹ pocz¹tkowego stanu rejestru). Powyøsze fakty po³¹czone z†przemiennoúci¹ operacji XOR ((A†⊕†B)†⊕†C†= A†⊕†(B†⊕†C)) oznaczaj¹, øe bajty wiadomoúci nie wymagaj¹ przeskoku o†W/4 bajtÛw rejestru, nie bÍd¹ wiÍc przez niego przepuszczane. Zamiast tego bÍd¹ XOR-owane z†najstarszym bajtem rejestru zanim zostan¹ uøyte do indeksowania tablicy. Na tej podstawie moøemy juø zmodyfikowaÊ nasz algorytm. Jego graficzna interpretacja jest przedstawiona na rys. 6, a†komentarz do rysunku poniøej: 1. PrzesuÒ rejestr o†jeden bajt w†lewo, czytaj¹c nowy bajt wiadomoúci. 2. XOR-uj najstarszy bajt, wysuniÍty w³aúnie z†rejestru z†nastÍpnym bajtem wiadomoúci, otrzymuj¹c indeks tablicy (z†przedzia³u od 0†do 255). 3. XOR-uj rejestr z†pobran¹ z†tablicy dan¹. 4. Idü do pkt. 1, jeúli nie wykorzysta³eú wszystkich bajtÛw wiadomoúci. Rejestr dla powyøszego algorytmu musi byÊ zainicjowany tak¹ sam¹ wartoúci¹ jak w†omawianym poprzednio z†tym, øe wartoúÊ pocz¹tkowa musi byÊ powtÛrzona w†tablicy czterokrotnie. Jeúli w†poprzedniej metodzie by³y wykorzystywane 0, tak samo naleøy je stosowaÊ w†tablicach tworzonych dla nowego algorytmu. Moøna wiÍc powiedzieÊ, øe obie wersje algorytmÛw bÍd¹ takie same, dadz¹ identyczny wynik. Zapis w†jÍzyku C†bÍdzie wiÍc dobrze nam znany: unsigned long r; ... r=0; while(len--) r=((r<<8) ^ tab[(unsigned char)(r>>24) ^ *pMsg++];
W†powyøszym kodzie ³atwo znajdujemy tablicow¹ implementacjÍ obliczania CRC. Maska 0xff moøe byÊ stosowana i†w†tym przypadku dla zachowania kompatybilnoúci, jakkolwiek podstawowa pÍt-
la wygl¹da jak wyøej. Zastosowan¹ tu metodÍ bÍdziemy nazywaÊ bezpoúrednim algorytmem tablicowym.
OdwrÛcona metoda tablicowa Wydaje siÍ, øe powyøsza metoda jest juø ca³kowicie zoptymalizowana. Czy na pewno? Zaleøy jak na to patrzeÊ. Jeúli uwzglÍdnimy pewne cechy fizycznych uk³adÛw stosowanych do realizacji transmisji danych, to szybko dojdziemy do wniosku, øe nie powiedzieliúmy jeszcze ostatniego s³owa. Mimo, øe znaleüliúmy siÍ na granicy rozumienia tematu sprÛbujemy wprowadziÊ kolejny stopieÒ komplikacji. Potrzebna nam bÍdzie do tego definicja: o†pewnej danej (rejestrze) bÍdziemy mÛwiÊ, øe jest odwrÛcona, jeúli jej bity stanowi¹ odbicie lustrzane wzglÍdem úrodka. Na przyk³ad ci¹g 0101 jest 4-bitowym odbiciem ci¹gu 1010. Ci¹g 0011 jest odbiciem 1100. I†jeszcze nieco bardziej skomplikowany przyk³ad: 0111-0101-1010-1111-0010-0101-10111100 to odbicie 0011-1101-1010-01001111-0101-1010-1110. Po co to wszystko? OtÛø wprowadzenie odwrÛconej metody tablicowej moøe znacznie u³atwiÊ sprzÍtowe obliczanie CRC w†systemach transmisji danych. Jak wiemy wiÍkszoúÊ uk³adÛw UART wysy³a dane w†liniÍ pocz¹wszy od najm³odszego bitu w†bajcie do najstarszego, tymczasem we wczeúniejszych rozwaøaniach zawsze rozpoczynaliúmy analizÍ od bitu najstarszego. Oczywiúcie procesor poradzi sobie z†takim problemem, i†tak bÍdzie odczytywa³ dane bajtami z†bufora UART-u. S¹ jednak urz¹dzenia, w†ktÛrych kontrola CRC jest realizowana sprzÍtowo on-line przez specjalizowane uk³ady. Odbywa siÍ to na poziomie strumienia danych - bit po bicie. Na potrzeby takich w³aúnie uk³adÛw opracowano
Bezpieczna wymiana danych w systemach mikroprocesorowych Elektronika Praktyczna 3/2003
89
K U R S
Rys. 5
Rys. 6
Rys. 7
odwrÛcon¹ metodÍ tablicow¹. Rozpatruje siÍ w†niej ci¹g bajtÛw taki sam jak w†metodach poprzednich, ale bity w†kaødym bajcie s¹ odwrÛcone: bit 7†staje siÍ bitem 0, bit 6†bitem 1, itd. Tym razem dane s¹ przesuwane w†rejestrze nie w†lewo, lecz w†prawo. WartoúÊ pocz¹tkowa rejestru jest taka sama jak w†poprzedniej metodzie, przy czym poszczegÛlne bity s¹ odwrÛcone zgodnie z†powyøszym opisem. OdwrÛcone s¹ teø dane zapisane w†tablicy. Jedynie dane pozostaj¹ bez zmian. Do obliczeÒ pobierane s¹ bity w†kolejnoúci nadchodzenia (czyli od bitu najm³odszego do najstarszego). ZasadÍ dzia³ania algorytmu ilustruje rys. 7. Zauwaømy, øe i†w†tym przypadku strumieÒ danych nie musi byÊ przepuszczany przez rejestr. No i†jeszcze jeden szczegÛ³. Po zakoÒczeniu obliczeÒ w†rejestrze znajduje siÍ obliczona wartoúÊ CRC... oczywiúcie odwrÛcona. Powyøszy algorytm bÍdziemy nazywali tablicowym algorytmem odwrÛconym. Oczywiúcie nasuwa siÍ spostrzeøenie, øe przecieø moøna odpowiednio odwrÛciÊ bity przed przes³aniem ich do UARTu, bez koniecznoúci opracowywania dodatkowych algorytmÛw. Nie zawsze jest to jednak moøliwe, choÊby z†uwagi na zachowanie kompatybilnoúci z†innymi systemami. Poza tym, wbrew pozorom
nie jest to teø zadanie ³atwe do wykonania dla procesorÛw. Na ogÛ³ nie posiadaj¹ one odpowiedniego rozkazu i†w†takiej sytuacji musia³yby wykonywaÊ ìkawa³ekî bardziej z³oøonego programu. Dodatkowe angaøowanie procesora do takich dzia³aÒ w†przypadku stosowania duøych prÍdkoúci transmisji mog³oby byÊ nie do przyjÍcia.
CRC16 standard: 1-1000-0000-0000-0101 CRC reversed: 1-0100-0000-0000-0011 ZwrÛÊmy uwagÍ na to, øe zosta³y odwrÛcone ca³e generatory w³¹cznie z†domyúlnym bitem o†wartoúci ì1î na najstarszej pozycji, a†nie tylko W†dolnych bitÛw. Jest to znacz¹ca rÛønica. W†opisywanym wczeúniej tablicowym algorytmie odwrÛconym stosowany generator by³ identyczny z†tym, jaki wykorzystywaliúmy w†metodzie nieodwrÛconej. W†zwi¹zku z†tym musimy pamiÍtaÊ, øe odwrÛcony algorytm tablicowy nie jest odpowiednikiem algorytmu z†odwrÛconym generatorem. Czy to juø wszystko? Jeúli chodzi o†algorytmy, to moøna powiedzieÊ, øe tak. Pozosta³o jeszcze kilka zagadnieÒ ogÛlnych i†d³ugo oczekiwane zapewne przyk³ady, przyk³ady, przyk³ady. Na razie g³owa chyba nam jednak uros³a i†trzeba jej daÊ odpocz¹Ê. Do nastÍpnego miesi¹ca! Jaros³aw Doliñski, AVT [email protected]
90
Metoda odwrÛconego generatora Nie, nie, to jeszcze nie koniec. W†nadziei, øe wprowadzanie nowych udziwnieÒ moøe skutkowaÊ nieoczekiwanymi efektami koÒcowymi, tym razem zastosujemy trochÍ niejasn¹ na ìpierwszy rzut okaî zmianÍ. BÍdzie ona polega³a na odwrÛceniu wielomianu generuj¹cego. Jeúli wartoúÊ G=11101 by³a dobra, to 10111 rÛwnieø powinna siÍ sprawdziÊ i†okazuje siÍ w†praktyce, øe jest to s³uszne za³oøenie. Powyøszy pomys³ znalaz³ uznanie w†organizacji zajmuj¹cej siÍ standaryzacj¹ zagadnieÒ zwi¹zanych z†transmisj¹ danych - CCITT, ktÛra do ìlegalnychî generatorÛw zaliczy³a rÛwnieø generatory odwrÛcone. Dla unikniÍcia zamieszania s¹ one oficjalnie nazywane reversed. Mamy wiÍc np.: X25 standard: 1-0001-0000-0010-0001 X25 reversed: 1-0000-1000-0001-0001 oraz
[1] Artyku³ powsta³ na podstawie publikacji ìA painless guide to CRC error detection algorithmsî, Ross N. Williams. Moøna j¹ znaleüÊ pod adresem http://www.riccibitti.com/crcguide.htm. [2] Tanenbaum, A.S., ìComputer Networksî, Prentice Hall, 1981, ISBN: 013-164699-0.
Elektronika Praktyczna 3/2003
PROJEKTY CZYTELNIKÓ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.
„Inteligentne” tylne światło do roweru z sygnalizacją stopu
Mikrokontrolery sta³y siÍ tak tanie, øe moøna je bez uszczuplania kieszeni stosowaÊ prawie do wszystkiego. ChoÊby jako ìinteligentneî sterowniki oúwietlenia do roweru.
Projekt
108 Uk³ad, ktÛry prezentujÍ, ma wiele zalet w†porÛwnaniu z typowymi (czytaj: sklepowymi) gadøetami tego rodzaju. WúrÛd najwaøniejszych moøna wymieniÊ: 1. 6 efektÛw b³yskania diod LED wraz z†funkcj¹ sygnalizowania zatrzymania, co zwiÍksza bezpieczeÒstwo rowerzysty. 2. W³¹czanie, wy³¹czanie i†zmiana efektu nastÍpuje za
pomoc¹ jednego przycisku. Po wy³¹czeniu, chociaø w†úwiate³ku jest bateria, nie pobiera ona pr¹du. Moim celem by³o udoskonalenie posiadanej tylnej lampki rowerowej. Przed przebudow¹ mia³a 5 diod úwiec¹cych, ktÛre miga³y podczas jazdy, a†po wciúniÍciu hamulca zapala³y siÍ wszystkie naraz. Wykorzysta³em z†niej tylko obudowÍ i†czujnik na linkÍ
hamulcow¹. Pomimo øe uk³ad jest prosty (schemat elektryczny pokazano na rys. 1), godnym uwagi jest sposÛb sterowania funkcjami i†w³¹czaniem za pomoc¹ jednego przycisku. W uk³adzie zastosowano mikrokontroler AT89C2051, w†ktÛrego pamiÍci znajduje siÍ program pokazany na list. 1. WydajnoúÊ pr¹dowa portÛw mikrokontrolera jest na
Rys. 1
Elektronika Praktyczna 3/2003
93
PROJEKTY CZYTELNIKÓW List. 1. Program sterujący pracą mikrokontrolera w sterowniku lampy ; Program został napisany przez Piotra Andryszczaka. ; Pracuje z kwarcem ok. 12MHz. Poszczególne efekty ; zostały napisane tak (za pomocą “clr” i ”setb”), ; aby można było łatwiej je modyfikować. CPU atmel.def org 00h ajmp start org 03h ajmp przycisk org 13h ajmp stop START: mov P1,#FFh mov P3,#FFh mov R2,#00 nop nop nop mov A,P3 jb Acc.3,dalej mov P1,#FFh clr P1.1 clr P1.0 clr P1.4 mov B,#5 acall op clr P1.2 clr P1.3
; Jesli STOP spowodowal wlaczenie ; zasilania to diody wyswietlaja: ;.***. ***** ; Czas opoznienia
aa: ajmp aa przycisk: inc R2 reti dalej: mov IE,#10000101b mov IP,#00000101b setb IT0 setb IT1 clr P3.0 efekt1: mov P1,#FFh cjne R2,#1,efekt2 clr P1.2 acall opz clr P1.1 acall opz clr P1.0 acall opz clr P1.4 acall opz clr P1.3 acall opz cjne R2,#1,efekt2 setb P1.2 acall opz setb P1.1 acall opz setb P1.0 acall opz setb P1.4 acall opz setb P1.3 acall opz ajmp efekt1 efekt2: mov P1,#FFh cjne R2,#2,efekt3 clr P1.2 clr P1.3 mov B,#2 acall op setb P1.2 setb P1.3 clr P1.1 clr P1.4 acall opz cjne R2,#2,efekt3 acall opz setb P1.1 setb P1.4 clr P1.0 mov B,#2 acall op setb P1.0 ajmp efekt2 efekt3: cjne R2,#3,efekt4 mov P1,#00h acall opz mov P1,#FFh acall opz cjne R2,#3,efekt4 mov B,#2 acall op ajmp efekt3 efekt4: mov P1,#FFh
94
; *.... **... ***.. ****. ***** ;.****..***...**....*.....
; *...*.*.*...*..
; *****.....
cjne R2,#4,efekt5 clr P1.2 mov B,#2 acall op setb P1.2 clr P1.3 mov B,#2 acall op setb P1.3 cjne R2,#4,efekt5 clr P1.1 mov B,#2 acall op setb P1.1 clr P1.4 mov B,#2 acall op setb P1.4 clr P1.0 mov B,#2 acall op setb P1.0 ajmp efekt4 efekt5: mov P1,#FFh cjne R2,#5,efekt6 clr P1.2 clr P1.1 mov B,#3 acall op setb P1.2 setb P1.1 cjne R2,#5,efekt6 clr P1.4 clr P1.3 mov B,#3 acall op setb P1.4 setb P1.3 ajmp efekt5 efekt6: mov P1,#FFh cjne R2,#6,wylacz clr P1.2 acall opz setb P1.2 clr P1.1 acall opz setb P1.1 clr P1.0 acall opz setb P1.0 clr P1.4 acall opz setb P1.4 cjne R2,#6,wylacz clr P1.3 acall opz setb P1.3 clr P1.4 acall opz setb P1.4 clr P1.0 acall opz setb P1.0 clr P1.1 acall opz setb P1.1 ajmp efekt6 wylacz: setb P3.0 stop: push B mov P1,#FFh acall opz clr P1.1 clr P1.0 clr P1.4 mov B,#5 acall op clr P1.2 clr P1.3 stopx: mov A,P3 jnb Acc.3,stopx acall opz mov P1,#FFh acall opz pop B reti opz: mov B,#1 op: mov R0,#FFh op1: mov R1,#FFh op1x: nop djnz R1,op1x djnz R0,op1 djnz B,op ret
;LED 1
;LED 5
;LED 2
;LED 4
;LED 3
; **......**
; *.....*.....*.....*.....* ;...*...*...*... ;LED 1
;LED 2
;LED 3
;LED 4
;LED 5
;LED 4
;LED 3
;LED 2
; wylaczenie ukladu ;.***. *****
; Opoznienie dla kwarcu ok. 12MHz ; Dla kwarcu 32,768kHz wpisac 00h
; *........*.*......*...*.. END
Elektronika Elektronika Praktyczna Praktyczna 3/2003 2/98
PROJEKTY CZYTELNIKÓW tyle duøa, øe moøemy bezpoúrednio sterowaÊ diodami úwiec¹cymi. Ma³y pobÛr pr¹du przy duøej intensywnoúci úwiecenia uzyska³em dziÍki zastosowaniu diod firmy Kingbright o†oznaczeniu L793SRC-F.
Opis uk³adu Po w³oøeniu baterii (2xR6) do pojemnika uk³ad pozostaje wy³¹czony, aø do momentu, gdy naciúniemy hamulec w†rowerze lub przycisk w³¹czaj¹cy. Gdy to nast¹pi, tranzystory T1 i†T2 zaczynaj¹ przewodziÊ, do³¹czaj¹c ujemny biegun zasilania do wyprowadzenia GND mikrokon-
Elektronika Praktyczna 3/2003
trolera. Wtedy, po wyzerowaniu, mikrokontroler sprawdza, czy jest naciúniÍty przycisk (co jest rozpoznawane przez sprawdzenie poziomu napiÍcia na wyprowadzeniu P3.2). Jeúli nie, oznacza to, øe za³¹czenie nast¹pi³o na skutek naciúniÍcia hamulca i†maj¹ siÍ zaúwieciÊ wszystkie diody. NastÍpuje to dwustopniowo: najpierw úwiec¹ siÍ diody 2, 3, 4, a†po chwili dwie skrajne, czyli 1†i†5. åwiec¹ do momentu puszczenia hamulca tranzystory przestaj¹ przewodziÊ i†zasilanie jest odcinane od uk³adu. Jeøeli za³¹czenie zasilania nast¹pi³o przyciskiem do³¹czonym do wy-
prowadzenia P3.2 portu, to na wyprowadzeniu P3.0 tego portu wystÍpuje poziom niski (wpisywane jest ì0î) podtrzymuj¹cy za³¹czone tranzystory nawet po jego puszczeniu. Jednoczeúnie wyúwietlany bÍdzie efekt numer 1. Jeøeli teraz wciúniemy ponownie przycisk, uk³ad przejdzie do wyúwietlania kolejnego efektu, a†jeúli jest to ostatni z†listy, to na wyprowadzenie P3.0 wpisana zostanie jedynka i†uk³ad wy³¹czy siÍ. Po wciúniÍciu hamulca w†czasie normalnej pracy diody úwiec¹ siÍ, jak juø wczeúniej wspomniano. Piotr Andryszczak
WYKAZ ELEMENTÓW Rezystory R1: 51kΩ R2: 4,7kΩ R3...R7: 75Ω Kondensatory C1, C2: 100nF C3, C7: 220nF C4, C5: 30pF C6: 470µF/16V Półprzewodniki D1...D3: 1N4148 D4...D8: diody LED (najlepiej Kingbright typ L−793SRC−F) T1: BC557 T2: BC547 U1: AT89C2051 (zaprogramowany)
95
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.
Józef Kalisz: „Podstawy elektroniki cyfrowej”, WKŁ 2002
Rzadko zdarza siÍ, aby ksi¹øka techniczna z tej dziedziny doøywa³a czterech wydaÒ. Prezentowana ksi¹øka dowodzi, øe jest to jednak moøliwe i†pomimo 12-letniej historii (pierwsze wydanie ukaza³o siÍ w†1991 roku) treúÊ ksi¹øki nad¹øa za szybkim rozwojem wspÛ³czesnej elektroniki. Wymaga³o to oczywiúcie wykonania przez autora ogromnej pracy, ale - jeøeli wolno nam oceniaÊ - zosta³a ona wykonana dobrze i z†korzyúci¹ dla czytelnikÛw. Na ponad 600 stronach autor zawar³ przejrzyste kompendium wiedzy o†wspÛ³czesnej technice cyfrowej, pocz¹wszy od podstaw matematycznych, istotnych dla zrozumienia teorii uk³adÛw logicznych, przez przedstawienie zagadnieÒ technologicznych i†dog³Íbne (z punktu widzenia praktyka) omÛwienie rozwi¹zaÒ charakteryzuj¹cych rÛøne rodziny uk³adÛw cyfrowych, aø po prezentacjÍ jÍzykÛw opisu sprzÍtu (HDL) i†przybliøenie zagadnieÒ zwi¹zanych z†przesy³aniem szybkozmiennych sygna³Ûw cyfrowych. Sporo? To jeszcze nie wszystko! Nie jest
moøliwe w†tym miejscu wymienienie wszystkich zagadnieÒ poruszanych w†ksi¹øce, ale bez wiÍkszego ryzyka moøna stwierdziÊ, øe jest to publikacja zarÛwno dla startuj¹cych w†dziedzinie (³¹cznie z†fanami mikrokontrolerÛw), jak i†studentÛw oraz inøynierÛw. Prezentowany w†ksi¹øce materia³ zosta³ pogrupowany w†trzynastu rozdzia³ach o†wyraünie rozdzielonej tematyce, dziÍki czemu czytelnicy chc¹cy zg³ÍbiÊ na przyk³ad zjawisko hazardu znajd¹ w†jednym miejscu odpowiedzi na wiÍkszoúÊ drÍcz¹cych ich pytaÒ. Niezwykle sympatycznym akcentem w†ksi¹øce s¹ krÛtkie wtrÍty historyczne, dziÍki ktÛrym czytelnicy mog¹ poznaÊ - oczywiúcie w†duøym skrÛcie - historiÍ rozwoju niektÛrych dziedzin elektroniki. PamiÍÊ o†korzeniach szybko ginie pod presj¹ wspÛ³czesnoúci, a†dziÍki takim inicjatywom m³odsze pokolenia elektronikÛw maj¹ szansÍ - przy okazji przyswajania sobie najnowszej wiedzy - poznaÊ takøe nieco jej pod³oøe historyczne. Na koniec nieco dziegciu. Sporo kontrowersji wzbudzi³a w†redakcji zaskakuj¹ca prÛba zast¹pienia - utrwalonego juø przyjÍtego w†ìelektronicznym úwiatkuî - s³owa ìFlashî, okreúlaj¹cego pewnego rodzaju nieulotne pamiÍci reprogramowalne, okreúleniem ìpamiÍci b³yskawiczneî, zw³aszcza w†odniesieniu do aplikacji, w†ktÛrych pamiÍci te pracuj¹ jako noú-
niki masowe danych cyfrowych. ByÊ moøe autor wprowadzi³ nowe okreúlenie pod presj¹ zaleceÒ Rady JÍzyka Polskiego, ale nie rokujemy duøej szansy przyjÍcia go jako standardu. Wydaje siÍ byÊ nieprawdopodobne, øe na tak niewielu stronach moøna zmieúciÊ dobrze opracowane podstawy wiedzy na tak wiele rÛønorodnych tematÛw, ale z†ca³¹ pewnoúci¹ autorowi to siÍ uda³o i†za to piÍÊ lutownic!
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
Bruce Eckel: ìThinking in C++. Edycja polskaî, Helion 2002, 642 str.
JÍzyk C++ jest jednym z†najczÍúciej stosowanych jÍzykÛw programowania. Wynika to przede wszystkim
Elektronika Praktyczna 3/2003
z†olbrzymich moøliwoúci i†elastycznoúci jÍzyka C++, jednak wykorzystanie tego potencja³u nie jest ³atwe. JÍzyk C++ jest trudny do opanowania, jednak ksi¹øka ìThinking in C++î sprawia, øe zadanie to staje siÍ wykonalne niemal dla kaødego. W ksi¹øce znajduje siÍ kompletny kurs programowania w†jÍzyku
C++. Co wiÍcej, kurs ten jest prowadzony w†sposÛb bardzo przystÍpny - czytelnik nie powinien poczuÊ siÍ ìzgniecionyî (i zniechÍcony) zbyt wielk¹ liczb¹ nowych pojÍÊ. Stawiaj¹cych pierwsze kroki w†programowaniu obiektowym z†pewnoúci¹ zainteresuje rozdzia³ poúwiÍcony metodologii programowania. W†kaødym rozdziale zawarte s¹ Êwiczenia,
129
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Ê
daleka od doskona³oúci
ktÛrych samodzielne wykonanie jest chyba najlepszym sposobem nauki. ìThinking in C++. Edycja polskaî jest, naszym zdaniem, jednym z†najlepszych podrÍcznikÛw do nauki programowania w†jÍzyku C++. PrzystÍpuj¹c do lektury ksi¹øki bardzo pomocna bÍdzie znajomoúÊ jakiegoú†jÍzyka proceduralnego (najlepiej jÍzyka C). Ze strony internetowej wydawnictwa Helion moøna pobraÊ kod ürÛd³owy przyk³adÛw zawartych w†ksi¹øce oraz ksi¹økÍ w†jÍzyku angielskim w†formacie html. Mimo miÍkkiej oprawy ìThinking in C++î otrzymuje piÍÊ lutownic.
ZespÛ³ autorÛw: ìUk³ady elektroniczneî, Wydawnictwo Politechniki PoznaÒskiej 2002
Typowy podrÍcznik akademicki, zawieraj¹cy duø¹ dawkÍ teorii, ale... ³atwy w†czytaniu i†kompleksowo, choÊ niezbyt dog³Íbnie, poruszaj¹cy szerok¹ tematykÍ. W†ksi¹øce moøna znaleüÊ informacje zarÛwno o†elementach elektronicznych, uk³adach analogowych, a†takøe elementarz techniki cyfrowej. Ze wzglÍdu na specyfikÍ prowadzonego wyk³adu, ksi¹økÍ polecamy przede wszystkim studentom wydzia³Ûw elektroniki, a†takøe tym elektronikom, ktÛrzy odkryli luki w†teoretycznych podstawach swojej wiedzy. Niew¹tpliw¹ zalet¹ ksi¹øki - pomimo jej silnie teoretycznej orientacji - jest przyjazne podejúcie autorÛw do czytelnikÛw z†natury
130
rzeczy nie bardzo lubi¹cych ìpusteî rozwaøania teoretyczne. Zdecydowan¹ wiÍkszoúÊ teorii pokazano na prostych przyk³adach, ktÛre w†wiÍkszoúci przypadkÛw rozjaúniaj¹ w¹tpliwoúci czytaj¹cego.
ZespÛ³ autorÛw: ìPrzetwarzanie sygna³Ûw przy uøyciu procesorÛw sygna³owychî, Wydawnictwo Politechniki PoznaÒskiej 2000
O†cyfrowym przetwarzaniu sygna³Ûw (DSP) mÛwi siÍ i†pisze duøo, ale zazwyczaj niewiele siÍ wie. Wynika to w†znacznym stopniu z†faktu,
nie warto kupowaÊ
øe DSP to dziedzina trudna, wymagaj¹ca dobrej znajomoúci kilku specyficznych dziedzin nauki (matematyki) i†techniki (technika cyfrowa). Ksi¹øka napisana przez wyk³adowcÛw z†Politechniki PoznaÒskiej przedstawion¹ tezÍ potwierdza, jednoczeúnie daj¹c nadziejÍ, øe elektronicy zainteresowani t¹ dziedzin¹ bÍd¹ mieli sk¹d zaczerpn¹Ê niezbÍdnej wiedzy o†podstawach, a†to dziÍki sensownie przygotowanemu kursowi. Niestety, nie jest on ³atwy do przejúcia, poniewaø autorzy bardzo dog³Íbnie przedstawiaj¹ zagadnienia teoretyczne, z†jednej strony zapewniaj¹c czytelnikom uniwersalne podstawy wiedzy o†DSP, z†drugiej strony pozostawiaj¹c bez odpowiedzi pytania typu ìjak za pomoc¹ trzech klikniÍÊ myszk¹ zbudowaÊ dekoder surroundî. Co prawda s¹ juø dostÍpne ìbascomyî dla DSP, ale rozumienie elementarnych regu³ rz¹dz¹cych tym ìmagicznymî úwiatem z†pewnoúci¹ nie zaszkodzi. Jedyn¹ niedoskona³oúci¹ prezentowanej publikacji jest to, øe autorzy odwo³uj¹ siÍ do nieco archaicznych procesorÛw DSP, a†co gorsza skupiaj¹ siÍ wy³¹cznie na ofercie firmy Texas Instruments. Jest to co prawda rynkowy lider, ale niez³e procesory sygna³owe produkuj¹ takøe inni producenci, depcz¹cy TI po piÍtach. Reasumuj¹c: ksi¹øka z†pewnoúci¹ nie dla kaødego, ale z†zaspokoi wymagania studentÛw i†inøynierÛw pragn¹cych dog³Íbnie zrozumieÊ, co teø w†tym DSP piszczy.
Elektronika Praktyczna 3/2003
A U T O M A T Y K A
Najnowsza seria zdalnych modułów kontrolno−pomiarowych firmy Advantech
Advantech jest firm¹ znan¹ na naszym rynku od dobrych kilku lat. Jest ona producentem m.in. zdalnie sterowanych systemÛw pomiarowych rodziny ADAM. Dotychczas produkowane uk³ady serii 4000 i†5000 s¹ wyposaøone w†standardowe interfejsy szeregowe RS-232/485. A†jak jest w†przypadku najnowszej serii? Interfejsy szeregowe RS-232/422/ 485, mimo swej bardzo d³ugiej historii, s¹ nadal stosowane w†przemyúle do komunikacji ze sprzÍtem pomiarowym i†wykonawczym, miÍdzy innymi ze wzglÍdu na ³atwoúÊ implementacji rÛønych protoko³Ûw komunikacyjnych. Nie oznacza to jednak, øe interfejsy RS-232/485 s¹ pozbawione wad. Ze wzglÍdu na doúÊ restrykcyjne ograniczenia odleg³oúci pomiÍdzy komunikuj¹cymi siÍ urz¹dzeniami, a†takøe†relatywnie niskiej dopuszczalnej prÍdkoúci transmisji, s¹ one wypierane przez interfejsy nowych generacji o†duøo wiÍkszych moøliwoúciach. Zgodnie z†tym trendem, firma Advantech wprowadzi³a na rynek rodzinÍ modu³Ûw kontrolno-pomiarowych serii ADAM-6000 wyposaøonych w†wewnÍtrzny interfejs sieciowy Ethernet 10/100 Mbd, komunikuj¹cych siÍ z†jednostkami nadrzÍdnymi systemÛw nadzoru i†sterowania za pomoc¹ standardowego protoko³u Modbus/TCP. Jak dot¹d, w†nowej rodzinie (ktÛra bÍdzie ca³y czas poszerzana) moøemy znaleüÊ kilka modu³Ûw komunikacyjnych i†modu³Ûw wejúÊ/wyjúÊ, ktÛrych krÛtkie charakterystyki zawarto w†tab. 1. W†tych modu³ach kaøde z†wejúÊ cyfrowych moøe pracowaÊ takøe jako wejúcie licznikowe (w trybie zwyk³ego zliczania impulsÛw lub pomiaru czÍstotliwoúci) lub zatrzaskowe (zapamiÍtywanie chwilowego pojawienia siÍ poziomu niskiego lub wysokiego), a†kaøde z†wyjúÊ cyfrowych moøna skonfigurowaÊ jako wyjúcie impulsowe
Elektronika Praktyczna 3/2003
(o regulowanym wype³nieniu i†ewentualnie zadanej liczbie generowanych impulsÛw) lub wyjúcie opÛüniaj¹ce o†zadanej zw³oce czasowej. Podobnie jak modu³y z†serii ADAM-4000/5000, modu³y nowej generacji s¹ wyposaøone w†uchwyt do montaøu na szynie DIN i†mog¹ byÊ zasilane napiÍciem sta³ym o†wartoúci 10...30 VDC.
Pierwsze kroki - konfiguracja Wykorzystane modu³y wejúÊ/wyjúÊ w†budowanym systemie automatyki i/lub pomiarÛw powinny byÊ oczywiúcie wczeúniej skonfigurowane.
Wraz z†modu³ami dostarczane jest wiÍc odpowiednie oprogramowanie umoøliwiaj¹ce przeprowadzenie takiej konfiguracji urz¹dzeÒ, a†takøe podstawowej diagnostyki poprawnoúci ich
dzia³ania. Program ten (rys. 1) wyszukuje wszystkie modu³y wejúÊ/wyjúÊ serii ADAM-6000 w³¹czone do sieci lokalnej i†pozwala na ustalenie ich podstawowych parametrÛw sieciowych (w³asny adres IP i†maska podsieci, adres IP domyúlnej bramy wyjúciowej umoøliwiaj¹cy zastosowanie modu³Ûw w†sieciach rozleg³ych), parametrÛw wejúÊ i†wyjúÊ (oprÛcz wspomnianej juø dowolnoúci wykorzystania wejúÊ i†wyjúÊ cyfrowych, w†przypadku modu³u wejúÊ analogowych istnieje miÍdzy innymi moøliwoúÊ ustalenia zakresu pomiarowego dla kaøde-
133
A U T O M A T Y K A
Rys. 1 go z†kana³Ûw, przypisania progÛw alarmowych oraz oczywiúcie ewentualnej kalibracji), a†nawet upgrade'owania oprogramowania wewnÍtrznego (firmware) modu³u.
ìW³¹cz/wy³¹cz/zmierzî Internet Explorerem? Po przeprowadzeniu konfiguracji modu³y s¹ gotowe do pracy. DziÍki wbudowanemu miniaturowemu serwerowi WWW, dysponuj¹c standardow¹ przegl¹dark¹ internetow¹ moøemy uzyskaÊ dostÍp do modu³u†praktycznie z†dowolnego miejsca na úwiecie (oczywiúcie pod warunkiem w³¹czenia go do ogÛlnoúwiatowej sieci Internet). Wystarczy jedynie w†pole adresowe przegl¹darki internetowej wpisaÊ adres IP modu³u (rys. 2), po czym na ekranie komputera ukaøe siÍ strona WWW z†wynikami odczytu stanÛw wejúÊ (cyfrowych, analogowych, licznikowych), moøna takøe (oczywiúcie po podaniu prawid³owego has³a dostÍpu) zdalnie zmieniÊ stany wyjúÊ!
Modbus/TCP - w³aúciwoúci protoko³u Podstawowymi za³oøeniami przyjÍtymi przy projektowaniu modu³Ûw by³y: umoøliwienie ich wykorzystania w†sieci Internet oraz umoøliwienie wspÛ³pracy z†popularnymi programami SCADA (Supervisory Control and Data Acquisition). Dlatego do komunikacji z†modu³ami wybrano jeden z†najpopularniejszych protoko³Ûw Modbus/TCP.
Tab. 1. Zestawienie dostępnych wersji modułów z rodziny ADAM6000 Typ modułu
Funkcja
ADAM−6510 ADAM−6520 ADAM−6521
HUB 4−portowy 10Mbps Switch 5−portowy 10/100Mbps Switch 5−portowy 10/100Mbps z wejściem światłowodowym Moduł I/O: 8xAI+2xDO Moduł I/O: 2xDI+6xDO Moduł I/O: 12xDI+2xDO+2xCounter Moduł I/O: 6xDI+6xRelay
ADAM−6017 ADAM−6050 ADAM−6051 ADAM−6060
134
ProtokÛ³ ten (we wszystkich stosowanych obecnie implementacjach ASCII/RTU/TCP) jest powszechnie wykorzystywany do komunikacji pomiÍdzy urz¹dzeniami systemÛw automatyki oraz nadzoru i/lub sterowania pracuj¹cymi na komputerach PC z†urz¹dzeniami pomiarowymi i†wykonawczymi. Opracowany pierwotnie przez firmÍ Modicon zosta³ zaakceptowany przez wiÍkszoúÊ znanych producentÛw sterownikÛw przemys³owych i†sprzÍtu pomiarowego. Modbus naleøy do rodziny protoko³Ûw typu master-slave, w†ktÛrych tylko jedno urz¹dzenie (jednostka nadrzÍdna master) moøe inicjowaÊ transakcje, a†pozosta³e (jednostki podrzÍdne slave) odpowiadaj¹ jedynie na zdalne zapytania mastera. Transakcja sk³ada siÍ z†polecenia (query) wysy³anego z†jednostki master do slave oraz odpowiedzi (response) przesy³anej zwrotnie, zawieraj¹cej ø¹dane dane lub potwierdzenie realizacji polecenia (wyj¹tkiem s¹ wiadomoúci rozg³oszeniowe broadcast przeznaczone dla wszystkich jednostek podrzÍdnych w†sieci, na ktÛre jednostki slave nie przesy³aj¹ øadnej odpowiedzi). Przesy³ane w†obydwie strony wiadomoúci s¹ w†postaci ramek (umieszczanych w†przypadku implementacji TCP w†pakietach) o†úciúle okreúlonych polach (rys. 3). W†implementacji TCP/IP zrezygnowano z†pola adresowego (w odwo³aniach Modbus/TCP adres urz¹dzeÒ, do ktÛrych kierowane jest zapytanie, jednoznacznie okreúla juø przy samym nawi¹zywaniu po³¹czenia docelowy adres IP) i†sumy kontrolnej. Wprowadzono natomiast rozszerzony nag³Ûwek MBAP (Modbus Application Protocol Header) zawieraj¹cy cztery pola: - identyfikator transakcji (2 bajty) wykorzystywany przez urz¹dzenie master do prawid³owego kojarzenia odpowiedzi uzyskiwanych na jego kolejne zapytania (wartoúÊ ta zostaje ustalona i†umieszczona w†ramce zapytania przez jednostkÍ master, a†nastÍpnie skopiowana i†umieszczona w†ramce odpowiedzi przez jednostkÍ slave), - identyfikator protoko³u (2 bajty) pole to ma zawsze wartoúÊ 0†odpowiadaj¹c¹ oznaczeniu protoko³u Modbus, - rozmiar wiadomoúci (2 bajty) - liczba pozosta³ych bajtÛw wiadomoúci (poczynaj¹c od pola identyfikatora urz¹dzenia. Pole to zosta³o wprowadzone ze wzglÍdu na moøliwoúÊ dzielenia pojedynczej wiadomoúci na oddzielne pakiety TCP/IP), - identyfikator urz¹dzenia (1 bajt) maj¹cy znaczenie np. w†przypadku
Tab. 2. Najczęściej wykorzystywane funkcje w protokole Modbus Kod
Opis
0x01 0x02 0x03 0x04 0x05 0x06 0x08 0x0F 0x10
Read Coils Read Discrete inputs Read Holding Registers Read Input Register Write Single Coil Write Single Register Loopback Diagnostic Write Multiple Coils Write Multiple Registers
komunikacji z†urz¹dzeniami Modbus wyposaøonymi w†interfejs szeregowy za pomoc¹ bram (gateways). NajczÍúciej wykorzystywane funkcje (spoúrÛd wielu dostÍpnych úciúle zdefiniowanych w†standardzie) przedstawiono w†tab. 2. Ich wykorzystanie pozwala na pe³n¹ obs³ugÍ urz¹dzeÒ pomiarowych i†steruj¹cych w†zakresie wymaganym przez aplikacje pomiarowo-kontrolne. Ostatnie z†pÛl ramki DATA - wykorzystywane jest w†przypadku zapytaÒ wysy³anych przez jednostkÍ master do przekazywania dodatkowych parametrÛw funkcji (czyli na przyk³ad liczba odczytywanych rejestrÛw oraz adres pocz¹tkowy), natomiast w†przypadku odpowiedzi generowanych przez jednostkÍ slave - do przekazywania ø¹danych przez jednostkÍ nadrzÍdn¹ danych (czyli np. zawartoúÊ odczytywanych rejestrÛw).
Piszemy w³asne oprogramowanie Na podstawie znajomoúci sk³adni protoko³u Modbus w†implementacji TCP/IP oraz mapy adresÛw rejestrÛw, jesteúmy w†stanie doúÊ ³atwo przygotowaÊ w³asne oprogramowanie do komunikacji z†urz¹dzeniami, chociaøby w†oparciu o†wbudowan¹ w†wiÍkszoúÊ systemÛw operacyjnych obs³ugÍ gniazd.
Rys. 2
Elektronika Praktyczna 3/2003
A U T O M A T Y K A
Rys. 3 Na przyk³ad, odczytanie zawartoúci 32-bitowego licznika CNT01 w†module ADAM-6051 (wejúcie cyfrowe DI0 pracuj¹ce w†trybie zliczania impulsÛw) wymaga nawi¹zania po³¹czenia z†urz¹dzeniem na porcie 502 (jest to port standardowo wykorzystywany do komunikacji w†protokole Modbus/TCP) i†wys³ania pojedynczego dwunastobajtowego pakietu o†zawartoúci: 41-42-0000-00-06-FF-03-00-00-00-02 (czyli ø¹dania odczytu dwÛch 16-bitowych rejestrÛw pocz¹wszy od adresu 40001). W†odpowiedzi (za³Ûømy, øe licznik zliczy³ do chwili otrzymania zapytania przez modu³ 1216 impulsÛw) powinniúmy otrzymaÊ pakiet o†zawartoúci: 41-42-00-00-00-07-FF-03-04-04-C0-00-00 (czyli przekazanie zawartoúci rejestrÛw w†postaci czterech bajtÛw). Pisanie oprogramowania w†oparciu o†bezpoúredni¹ obs³ugÍ gniazd nie jest oczywiúcie jedynym moøliwym rozwi¹zaniem. Na przyk³ad, producent modu³Ûw pomiarowych Adam-6000 firma Advantech - dostarcza wraz z†urz¹dzeniami pakiet bibliotek DLL oraz kontrolki ActiveX udostÍpniaj¹ce funkcje nawi¹zywania i†zamykania po³¹czeÒ TCP/IP oraz odczytu i†zapisu poszczegÛlnych bitÛw, jak i†ca³ych rejestrÛw†(nie wymagaj¹ce od uøytkownika znajomoúci obs³ugi gniazd).
I†jeszcze kamera... Seria ADAM-6000 zawiera nie tylko modu³y kontrolno-pomiarowe. Producent wprowadzi³ do niej takøe modu³ kamery internetowej ADAM-6090 (fot. 4). Kamera jest wyposaøona w†interfejs sieciowy 10/100 Base-T (opcjonalnie takøe w†kartÍ sieciow¹ bezprzewodow¹ zgodn¹ ze standardem IEEE 802.11b). Za jej pomoc¹ moøna uzyskaÊ obraz o†rozdzielczoúci od 160x320 do 640x480 pikseli, przy
czÍstotliwoúci odúwieøania w†zakresie od 1†do 20 klatek na sekundÍ. Wbudowana sprzÍtowa kompresja JPEG umoøliwia wybÛr jednego spoúrÛd piÍciu dostÍpnych poziomÛw†kompresji obrazu, ktÛry ogl¹daÊ moøna chociaøby za pomoc¹ zwyk³ej przegl¹darki internetowej (w dwÛch dostÍpnych trybach - ActiveX lub Java) lub za pomoc¹ dostarczanego wraz z†urz¹dzeniem oprogramowania IPView. Za pomoc¹ wyøej wymienionej przegl¹darki przeprowadzana jest takøe konfiguracja urz¹dzenia pozwalaj¹ca na przypisanie podstawowych parametrÛw dotycz¹cych interfejsu sieciowego, uzyskiwanego obrazu oraz kontroli dostÍpu do urz¹dzenia (istnieje bowiem moøliwoúÊ zdefiniowania do 64 uøytkownikÛw z†dostÍpem chronionym has³em). Dodatkowo, kamera zosta³a wyposaøona takøe w†wejúcia/wyjúcia cyfrowe umoøliwiaj¹ce miÍdzy innymi wyzwalanie automatycznego wysy³ania pod wskazany adres wiadomoúci e-mail z†aktualnym obrazem.
Podsumowanie Modu³y serii ADAM-6000 stanowi¹ kontynuacjÍ dotychczasowych dokonaÒ producenta w†dziedzinie rozproszonych systemÛw kontrolno-pomiarowych. PorÛwnuj¹c listÍ dostÍpnych w†rodzinie modu³Ûw†wejúÊwyjúÊ, nietrudno spostrzec wyraüne podobieÒstwo do modu³Ûw wystÍpuj¹cych w†rodzinie 4000, bÍd¹cej jej†pierwowzorem. Jednak dziÍki zastosowaniu interfejsu sieciowego Ethernet, obs³udze standardowego protoko³u Modbus oraz wbudowanemu serwerowi WWW, wydaj¹ siÍ byÊ obecnie urz¹dzeniami bardziej uniwersalnymi i†o†znacznie szerszym wachlarzu zastosowaÒ. Jacek Bonecki Elmark Automatyka Sp. z o.o. [email protected]
Dodatkowe informacje W artykule wykorzystano informacje zamieszczone w dokumentacji technicznej „modbus messaging on TCP/IP implementation guide” dostêpnej w internecie pod adresem http://www.modbus.org.
Fot. 4
Elektronika Praktyczna 3/2003
Dystrybutorem sprzêtu pomiarowego Advantech jest firma Elmark Automatyka Sp. z o.o, www.elmark.com.pl.
135
A U T O M A T Y K A
Nowoczesne zasilacze do układów automatyki W†ofercie firmy Omron znajduje siÍ rodzina zasilaczy impulsowych o†mocy wyjúciowej 5...960†W, ktÛrych budowa i†parametry zosta³y úciúle dostosowane do wymagaÒ stawianych przez systemy automatycznej regulacji, nadzoru i†sterowania. Producent pogrupowa³ je w†rodziny, ktÛrych krÛtkie charakterystyki przedstawiamy poniøej. Wszystkie prezentowane rodziny zasilaczy spe³niaj¹ ostre wymagania norm EMC/EMI, a†takøe norm bezpieczeÒstwa.
S8PS Jest to rodzina zasilaczy o†mocy wyjúciowej od 50 do 600 W, przystosowanych do zasilania napiÍciem zmiennym z†przedzia³u 85...240 VAC. Ich sprawnoúÊ energetyczna wynosi (w zaleønoúci od modelu) od 75 do 87%, a†napiÍcia wyjúciowe mog¹ mieÊ jedn¹ z†nastÍpuj¹cych wartoúci: 5†V, 12†V†lub 24 V. Zasilacze s¹ dostarczane w†obudowach typu open frame oraz zamkniÍtych, zaopatrzonych w zatrzaski do montaøu bezpoúrednio na szynie DIN. Za-
Fot. 1
Elektronika Praktyczna 3/2003
silacze o†mocy do 300 W†s¹ praktycznie bezobs³ugowe, poniewaø s¹ ch³odzone grawitacyjnie. Modele o†mocy 600 W†wyposaøono w†wentylatory zwiÍkszaj¹ce skutecznoúÊ ch³odzenia, co wymusza ich okresow¹ obs³ugÍ. Wszystkie zasilacze wyposaøono w†zabezpieczenia zapobiegaj¹ce chwilowym przetÍøeniom (z ìpodciÍt¹î charakterystyk¹ zadzia³ania) oraz zabezpieczenie przed przepiÍciami na wejúciach. Wersje o†mocy 600 W†wyposaøono takøe w†zabezpieczenie termiczne, ktÛre zapobiega zbytniemu wzrostowi temperatury we wnÍtrzu zasilacza.
S8TS S¹ to zasilacze o†mocy wyjúciowej od 60 do 240 W†o†doúÊ niezwyk³ej budowie, pozwalaj¹cej za pomoc¹ zaledwie trzech modeli osi¹gn¹Ê szerok¹ gamÍ napiÍÊ i†mocy wyjúciowych. Jest to moøliwe dziÍki zastosowaniu w†zasilaczach specjalnych z³¹cz, za pomoc¹ ktÛrych zasilacze s¹ ze sob¹ ³¹czone elektrycznie po zamontowaniu na szynie DIN (fot. 1). W†zaleønoúci od sposobu po³¹czenia
Zasilanie urz¹dzeÒ jest zagadnieniem doúÊ czÍsto lekcewaøonym, zw³aszcza przez mniej doúwiadczonych automatykÛw. Zamiast zbieraÊ - czÍsto bolesne - doúwiadczenia, moøna po prostu zastosowaÊ w†projektowanym systemie dobrej jakoúci specjalizowane zasilacze, ktÛre rozwi¹zuj¹ wiÍkszoúÊ problemÛw na jakie automatycy napotykaj¹ ìw terenieî.
zasilaczy s¹ stosowane z³¹cza rÛønych typÛw (fot. 2). Budowa zasilaczy S8TS pozwala na rÛwnoleg³e ³¹czenie ze sob¹ ich wyjúÊ (maksimum piÍÊ), moøna takøe w†prosty sposÛb tworzyÊ systemy bezpiecznego zasilania (tzw. zasilanie redundantne) - uszkodzony zasilacz sygnalizuje awariÍ zapaleniem czerwonej diody LED (fot. 3). Standardowym wyposaøeniem prezentowanych zasilaczy s¹ zabezpieczenia przed przepiÍciem na wejúciu, przetÍøeniem na wyj-
Fot. 2
137
A U T O M A T Y K A
Fot. 3 úciu, a†zbyt niskie napiÍcie wejúciowe jest sygnalizowane zmian¹ stanu na specjalnym wyjúciu. Zalecany przez producenta zakres napiÍcia wejúciowego mieúci siÍ w†przedziale 85...246 VAC. Do pracy ìgrupowejî w†rodzinie S8TS nie s¹ przystosowane zasilacze o†napiÍciu wyjúciowym 5†V, pozosta³e wersje (napiÍcia wyjúciowe 12 i†24 VDC) s¹ dostÍpne w†dwÛch wariantach.
S8VS TÍ rodzinÍ zasilaczy charakteryzuje moc wyjúciowa od 60 do 240 W, przy napiÍciu wyjúciowym rÛwnym zawsze 24 VDC. NapiÍcie wejúciowe, podobnie jak w†przypadku wczeúniej opisanych zasilaczy, powinno siÍ mieúciÊ w†zakresie 85...246 VAC. W†ramach rodziny S8VS s¹ dostÍpne zarÛwno modele o†wygl¹dzie ìklasycznymî jak i†wyposaøone w†3-cyfrowy wyúwietlacz LED oraz 1- lub 3-przyciskow¹ klawiaturÍ (fot. 4). Za pomoc¹ diod úwiec¹cych jest sygnalizowany tryb pracy wyúwietlacza, na ktÛrym moøna odczytaÊ wartoúÊ napiÍcia wyjúciowego, natÍøenie pr¹du p³yn¹cego przez obci¹øenie, maksymalny pr¹d p³yn¹cy przez obci¹øenie, przewidywany czas pracy zasilacza do niezbÍdnego przegl¹du, zliczany i†wyúwietlany jest takøe ca³kowity czas pracy. Ponadto, na wyúwietlaczu s¹ sygnalizowane rÛøne (takøe predefiniowane przez uøytkownika) alarmy, w†tym wykrycie zbyt niskiego napiÍcia na wejúciu, czy zbyt wysoka temperatura wewn¹trz zasilacza. NiektÛre modele wyposaøono w†wyjúcia alarmowe, natomiast
138
wszystkie maj¹ wyjúcia zabezpieczone przed przetÍøeniem i†wbudowane zabezpieczenia przeciwprzepiÍciowe na wejúciach.
S82K W†ramach tej rodziny s¹ dostÍpne zasilacze o†mocach wyjúciowych od 3†aø do 240 W. S¹ one przystosowane do montaøu na szynach DIN, a†ich standardowym wyposaøeniem jest wyjúcie sygnalizacji zbyt niskiego napiÍcia na wyjúciu, niektÛre maj¹ takøe na panelu czo³owym wskaünik spadku napiÍcia. Wszystkie zasilacze mog¹ byÊ zasilane napiÍciem zmiennym o†wartoúci 85...264 VAC, a†modele o†mocach 3†W, 7,5
W†i†15 W†takøe napiÍciem sta³ym o†wartoúci 90...350 V. Za wyj¹tkiem niektÛrych zasilaczy o†mocy 7,5 W, wszystkie pozosta³e maj¹ pojedyncze wyjúcie, na ktÛrym wystÍpuje napiÍcie 5, 12 lub 24 VDC. W†przypadku wyjúcia symetrycznego moøliwe s¹ dwa napiÍcia: ±12 VDC lub ±15 VDC. Obwody wyjúciowe niektÛrych zasilaczy przystosowano do ³¹czenia rÛwnoleg³ego (wzrasta wydajnoúÊ pr¹dowa) lub szeregowego (zwiÍksza siÍ napiÍcie wyjúciowe). Producent oferuje w†ramach prezentowanej rodziny zasilacze wyposaøone w†aktywny korektor wspÛ³czynnika mocy, a†takøe pozbawione go, co prawdopodobnie ma istotny wp³yw na ich cenÍ. Wszystkie zasilacze wyposaøono natomiast w†filtr, dziÍki ktÛremu spe³niaj¹ one wszelkie typowe normy zwi¹zane z†zak³Ûceniami i†kompatybilnoúci¹ elektromagnetyczn¹. Andrzej Gawryluk, AVT Dodatkowe informacje Artyku³ powsta³ na podstawie materia³ów udostêpnionych przez firmê Omron, tel. (22) 645-78-60, www.omron.com.pl.
Fot. 4
Elektronika Praktyczna 3/2003
A U T O M A T Y K A
W cyklu artyku³Ûw publikowanych na ³amach EP zaprezentujemy moøliwoúci oprogramowania wizualizacyjnego (SCADA) Wonderware InTouch. W†tej czÍúci pokaøemy w†jaki sposÛb jest konfigurowane oprogramowanie komunikacyjne. Demonstracyjn¹, polskojÍzyczn¹ wersjÍ oprogramowania InTouch 7.11 PL zamieúciliúmy na p³ycie CD-EP1/2003B.
Kurs obs³ugi, czêœæ 3 Konfiguracja programu komunikacyjnego Konfiguracja programu komunikacyjnego, ktÛry z†jednej strony komunikuje siÍ z†urz¹dzeniami np. sterownikami, a†z†drugiej strony z†aplikacj¹ wizualizacyjn¹, jest kolejnym etapem projektowania aplikacji. W†tym przypadku nie posiadaj¹c rzeczywistego sterownika, moøna wykorzystaÊ program komunikacyjny, ktÛry bÍdzie symulowa³ jego pracÍ. Program ten nazywa siÍ DDE Server Simulator (Simulate) i†naleøy go uruchomiÊ wybieraj¹c z†menu START\Programy\Wonderware FactorySuite\InTouch\DDE Server Simulator. Pojawi siÍ okno konfiguracyjne (rys. 39), w†ktÛrym naleøy wybraÊ Configure\Topic Definition (rys. 40), w†ktÛrym jest definiowany kana³ komunikacyjny (Topic), przez ktÛry aplikacja wizualizacyjna bÍdzie pobiera³a/przesy³a³a informacje z/do sterownika. W†oknie Topic Definition naleøy wybraÊ przycisk New, co umoøliwia zdefiniowanie nowego Topic a (okno pokazano na rys. 41). W†polu Topic Name wpisujemy PLC1 - jest to dok³adnie taka sama nazwa, ktÛra zosta³a wpisana w†polu Nazwa te-
matu, przy definicji Nazwy dostÍpu w†programie InTouch. Kolejnym definiowanym parametrem jest Update Interval, ktÛry okreúla jak czÍsto program komunikacyjny bÍdzie powiadamiaÊ aplikacjÍ wizualizacyjn¹ InTouch o†zmianach wartoúci zmiennych. W†tym polu wpisujemy wartoúÊ 100, co oznacza, øe co 100 milisekund informacje o†zmianach wartoúci zmiennych bÍd¹ przesy³ane pomiÍdzy programem komunikacyjnym a†aplikacj¹ wizualizacyjn¹. Pozosta³e parametry pozostawiamy bez zmian. Po zakoÒczeniu wprowadzania parametrÛw naciskamy przycisk OK, co spowoduje zakoÒczenie konfigurowania Topica w†programie komunikacyjnym. NastÍpnie potwierdzamy zachowanie konfiguracji programu za pomoc¹ przycisku OK. NaciúniÍcie przycisku Done koÒczy definiowanie parametrÛw programu komunikacyjnego, ktÛrego na tym etapie nie naleøy jeszcze zamykaÊ. Teraz wracamy do programu WindowMaker i†w†wskazujemy w†menu Plik\WindowViewer..., co powoduje uruchomienie zaprojektowanej aplikacji. Po chwili pojawi siÍ
Rys. 41 okno programu WindowViewer, w†ktÛrym zostanie wyúwietlone zaprojektowane okno. Jeøeli nie jest ono widoczne na ekranie, naleøy wejúÊ do menu Plik\OtwÛrz okno... i†wskazaÊ okno do otwarcia. Teraz moøemy przeúledziÊ przebieg monitorowanego procesu. Po nape³nieniu zbiornika powinien on zostaÊ samoczynnie oprÛøniony i†nape³nianie zostanie powtÛrzone. W†dowolnym momencie moøna nacisn¹Ê przycisk Start (Uruchomiony/ Zatrzymany), w†celu zatrzymania procesu i†jego ponownego uruchomienia (od pocz¹tku). W†tym momencie projektowanie aplikacji wizualizacyjnej InTouch zosta³o zakoÒczone. Oczywiúcie aplikacje moøna rozbudowywaÊ o†kolejne elementy graficzne, czy teø funkcje np. kreúlenie trendÛw, wyúwietlanie alarmÛw, tworzenie raportÛw itp. Wszystko zaleøy od inwencji projektanta. Marcin Legutek, Astor [email protected] Dodatkowe informacje
Rys. 39
140
Rys. 40
Ewaluacyjnê wersjê programu InTouch 7.11 PL zamieœciliœmy na CD-EP1/2003B.
Elektronika Praktyczna 3/2003