elektronika praktyczna 2003


m NA CD: RENESANS (ex-HITACHI), OPROGRAMOWANIE CIMPLICITY DLA PLC
I 6/2003 czerwiec
15 zł 50 gr (wtym7%vAT)
DIKODEfl-SJEgp^NiK^^Ę^IE^TOWĘGgyWYSWIETLACZA LCD W VHDL
i
8 '^T
GIRDBR - WSPÓŁPRACA Z NADAJNIKIEM RC5T TURY W AKWARIUM
EmiiSi
MM" IS
TATNIK PRAKTYKA:
i PŁYTKI U KOWANE
AUTOMATYKA: /
KAMEHA TERMOGRA'FICZNA V-' CZUJNIKI ZBLIŻENIOWE A STEROWNIKI PLC VERSAM PROGRAMOWALNA KARTA LICZNIKOWA APC|-T?1LO-"^
L I O T E K A E P
Mikrokontrolery
805i
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
"lutownice , Przyjęlismy szeroką skalę ocen, aby ułatwić Czy te I ni kom orientację w potencjaln ej przydatności książki,
Uwaga! Większość prezentowanych książek można zamówić w Dziale Handlowym AVT (patrz str, 125), Chcemy w ten sposób udostępnić je Czytelnikom EP,
Tomasz Starecki, "Mikrokontrolery 8051 w praktyce", BTC 2002
KI*KS mlMlooa cjach róznego typu. Szczególnie
interesujące są: obsługa klawiatur różnego typu, sterowanie wielocyf-rowych wyświetlaczy LED oraz al-fanumerycznych LCD, omówienie sposobu korzystania z interfejsu UART oraz jego programowa implementacja, przykłady zastosowania interfejsów SPI, PC oraz 1-Wire, a także sposoby sterowania ibciążeń za-
220V. Wszystkie przykłady zilust-wasemblerze '51 (są one dostęp-
wa). Ponadto autor pokazał sposoby dołączenia do mikrokontrolerów '51 zewnętrznej pamięci danych i zewnętrznych peryferii (dzięki
czemu początkujący projektanci Uzupełnieniem treści książki
mogą się zorientować, jak się bu- jest indeks haseł oraz 6 dodat-duje prawdziwe systemy mikropro- ków, w których znajdują forr
tu ą>i'iikt\tCi
z pewnością doskonale znane Czytelnikom EP, napisał on bowiem promowaną przez nas kilka lat przez mikrokontrol temu książkę "Mikrokontrolery silanych napięci jednoukładowe rodziny 51", któr "" """
do dziś. Była to bowiem pierw sza na rynku wydawniczym książ ka kompleksowo prezentująca ca łą ówczesną rodzinę mikrokontro lerów '51, ze szczegółowym opi sem ich peryferii, rejestrów spe cjalnych i wszelkich innych szcze gólnych cech, które są istotne dl konstruktorów urządzeń i progra
re).
y jj
acje przydatne podc
orąc pod uwagę dobrą opinię Równie interesujący jest roz- nawania i - później - posługiwa-
tamtej książki, przed autorem sta- dział 9, w którym znajdują się nia się mi kro kontrolerami. Szcze-
nęło trudne zadanie przygotowania opisy (sprzętowych i programo- gólnie interesujące wydają mi się
publikacji o równie wysokim po- wych) narzędzi u ruch o mieni o- dodatki, w których znajdują się
ziomie, lecz inaczej traktującej te- wych, ze szczególnym uwzględ- tablice kodów ASCII oraz kodów
ma tykę '51. Poważną zmianę już nieniem tych, które są dostępne
na pierwszy rzut oka sugeruje ty- bezpłatnie (podano wiele adresów
tuł nowej książki, a biorąc pod intern et owych).
uwagę dotychczasowe publikacje Autor poważnie podszedł do
Wydawnictwa BTC z cyklu "W projektów przykładowych, ponie-
praktyce", mogłem się spodziewać waż specjalnie na potrzeby książ-
sporych atrakcji. I tak jest w rze- ki przygotował zestaw sprzętowy
czywistości: oprócz "klasycznych- z mi kro kontrolerem AT89S8252 (z
nieśmiertelnych" informacji o bu- pamięcią programu typu Flash
dowie rdzenia '51, organizacji pa- ISP), który jest otoczony podsta- książka o silnej orientacji na końmi ęci danych i programu, działa- wowymi peryferiami. Na tym struktorów, którzy chcą szybko niu układu obsługi przerwań czy właśnie zestawie były testowane i bezboleśnie - od strony prak-' """ " ' ' wszystkie programy, co dobrze tycznej - poznać możliwości i taj-wróży tym czytelnikom książki, niki mikrokontrolerów z rodziny którzy będą chcieli z nich sko- '51, której żywotność dorównuje rzystać. Jest to tym łatwiejsze, ze popularności.
rejestrach SFR (będących zr siowym powtórzeniem infc z poprzedniej książki), i
laków wykorzystywanych prz sterownik wyświetlacza LCD, schematy blokowe wielu nietypowych mikrokontrolerów '51, wy-
w różnych obudowach, a także skrócony przegląd wybranych wersji '51.
także wiele zupełnie nowych in- w książce opis
formacji. I tak, szczególną uwagę prosty programa
praktyków przyciągnie z pewnością cą którego mo
dziesiąty rozdział książki, w któ- zawartość pami
rym znajdują się przykłady wyko- ra zastosowaneg
takż ISP,
bardzo pomo- modyfikować irkokontrole-
Mikołaj Andrus
Elektronika Praktyczna 6/2003
IBLIOTEKA EP
Metody i układy
arytmetyki
komputerowej
książka o dużych walorach praktycznych, polecamy!
Andrzej Maczyński, "Sterowniki i zmiennoprzecinkowych za pomoc: programowalne PLC. Budowa układów cyfrowych, w tym przed.
systemu i podstawy wszystkim mikroprocesorów. Tak więc
zentowanej książki, w jaki sposób re
nie liczb kodowanych na rosnę sposo Jest to specyficzna książka, spełnia- by), jakich zabiegów należy dokonać, niki
ich, ^ pre
y g
,,wokół radiokomu- eguły rządzące propa-
i przewodnika dla początkujących po (przede wszystkim czasochłonne) wy- przeznaczył także na 'pokazanie możli-
równików PLC, ich peryferii i progra- a także z czego wynikają granice wy- dzeń radiowych. Przedstawione zostały
mowaniu (jeżyk drabinkowy), a także dajności cyfrowych systemów oblicze- kody stosowane podczas łączności roż-
oprogramowaniu wspomagającemu pro- niowych. W dodatku znalazły się opi- nego typu (w tym profesjonalnych),
jektowanie kompletnych systemów regu- sy standardów IEEE754/B54, a także różnego typu anteny i systemy anteno-
lacji, sterowania i wizualizacji przebie- polsko-angielski słownik terminów. we, nieco miejsca poświęcono także

dzięki któremu ni os na dosc szybko w nie] tematyka nie ]est zbyt wdzięcz- dodatkiem do ksiąski
z pewnością część Czytelników uzna to tych naszych Czytel
za wadę książki - jest dość szczegóło- Łukasz Komsta, "Krótkofalarstwo mują się łącznością we przywiązanie jej treści do urządzeń i radiokomunikacja - poradnik''
firmy GE Fanuc, której dystrybutorem WKiŁ 2001 jest wydawca książki - firma Astor. Z jednej strony dość łatwo można odnieść swoje pomysły do konkretnych urządzeń, zaś z drugiej reklama wciska
]est mapa (w po-
ików, którzy zaj- di
Janusz Biernat, "Metody i układy arytmetyki komputerowej", Oficyna Wydawnicza Politechniki Wroclawskiej 2001
Książka o niezwykłej wartoś nych | programistów. Autor
vryluk domosci o krótkofalarstwie i radio komu-nikacji, wśród których szczególnie przydatne jest przybliżenie funkcjonowania służb radiokomunikacyjnych oraz
dzaje emisji radiowej. Czytelnicy nie-
nać, z kolei czytelnicy zainteresowani
podstawami prawnymi działania stac]i
radiowych znajdą w niej wykaz odpo-
użyt- wiednich aktów prawnych. Słowo
imbit- "poradnik" w tytule sugeruje komplet-
awarł ność zawartej w książce wiedzy ele-
Krótkofalarstwo
i radiokomunikacja
Poradnik

Elektronika Praktyczna 6/2003
AUTOMATYKAl
Kamera termograjiczna
Jok wiadomo wszystkie ciała o temperaturzi powyżej 0 K emitują promieniowanie podczerwone. Czy można ten fakt wykorzystać w jakiś sposób? Odpowiedź wydaje się oczywista - do budowy termometrów. Musimy tylko wymyślić odpowiednią metodę pomiai^i temperatury. Łatw^o pow^iedziec "tylko". Zagadnienie bynajmniej nie jest takie
Jes
' twierdził, że nie jest cesów technologicznych. Ka-możliwy szybki pomiar długofalowego mera termograficzna tymcza-promieniowania podczerwonego bez sem może być wykorzysty-specjalnych detektorów chłodzonych wana w diagnostyce przewyższę stanowisko wpływało dość is- utrudnionego dostępu do totnie na przebieg prac konstrukcyjnych obiektu lub w miejscach nienadających który prowadzi rów
gie w eksploatacji. Jedni
pr i
środowisko i tp.) Ś Dzięki niej rowania swoich obiektów. Kai i prowadzić zarówno pomiary V-20 połączona z Internetem um
p "wydawały si
szczeg
Tak
szczególnie bliska
y pokonani
Polakom, bo t ykonają detektor podczerwieni pracu
iągłe. W pierwszym przypadku zainteresowana instytucja
że zlecić jedynie wykonanie odpo-wiednich pomiarów producentowi,
/icie bezobsł cią jest prz jej zdalneg< oprócz dany
ność schłod tury ok. mi Celsjusza. Je
i det
ydziestu kilku stopni liewątpliwie dużo łat-
kud^ie^ięcTu^opni^^Tprzyp^dku detektorów chłodzonych kriogenicznie.
Dziś kamera termowizyjna V-20 produkowana przez firmę VIGO System SA, pracująca na tej zasadzie, jest już normalnym produktem handlowym, zdobywającym rynki nie tylko krajowe. Doczekała się nawet już drugiej generacji. Jest przy tym tania (jak na aparaturę tego typu) j niezawodna, Alter-natywnymi przyrządami dla kamer ter-
du ]ednak na punktową metodę pomia-ru przegrywają z kamerami wszędzie tam, gdzie istotny jest pomiar rozkła-
Elektronika Praktyczna 6/2003
AUTOMATYKA
peratura detektora, minimalna i maksymalna tempeiatuia piacy, liczba wyko-nanych skanów, numer seryjny itd.).
przeprowadzić autokalibrację. Wszyst-
wane w wewnętrznej pamięci Flash.
Kamera V-2 0 jest oryginalnym produktem firmy VIGO System SA, począwszy od opracowania konstrukcji

mego detektora),
nie danych, zape
uzyskanie bardzo wysokich rozdzielczości pomiarów (8, 12 lub 16 bitów). Ka-
nym lub szybkim. Czas tworzenia obrazu za pomocą kamery V-20 typowo
we wszelkiego rodzaju badaniach
jak również zawężenie obszaru skanowania pozwala na badanie niektórych procesów o większe] prędkości zmian.
Rys. 2. Wykres liniowy rozkładu -temperatur wzdłuż prostej (a), histogram rozkładu temperatur z z całej powierzchni termogramu histogram rozkładu temperatur wzdłuż wybranej prostej (c)
ję wyn ików . Jedn
z met od jest dołąc; mpu tera p<
przez in terfe js USB i wysw netla nie wi
nikóv a jeg ile w
kach tei yych r nogłoby adku
L 1 ^go Ś A-zlJd
1 L przed
1 1 1 1 palm top. Ma n<
1 1 1 idziar ly dl

Seria V-20E ol io t i io
Typ kamery k i o
Rozdzielczość przestrzenna sygnałowa Dl 11 i
Zakres mierzonychtemperatur uzgodniony podzakres zn przedziału: -10... 500C
Zakres spektralny 3...5u.mlub8...12u.m
Rozdzielczość term iczna NETD w D30 ? C 0,05C...10C wnzależności od modelu
Dokładność pomiaru 5% (10% dlamodeluE10)
Kątskanowaniawnpoziomie 30
Kąt skanowania wnpionie 30
opcja makro: po miar zn odległości 45 mm) 0,3mndoregulowanyelektron,czn,e
Liczbalinii maks.240
Liczba punktów w n linii maks.240
Czas tworzenia obrazu 4...25S
wybranej linii 2,3...7,2ms
Izas między kolejnymi skanami 33...104ms
Detektor HgCdTe chłodzony termoelektrycznie
Temperatura otoczenia -10...30C(zależnieodzakresu)
Wymiary 280x112x162 mm
Waga 4,5 kg
Zasilanie 220 VAC lub 24/12 VDC lub akumulatorów e
Rys. 3. Przykładowe palety bar
w ter
iach
uchwyt, Na ekranie palrntopa jest umożliwia natychmiastową obróbkę
tak szybko, jak w tradycyjnej kamerze
celowanie obiektywu w odpowiedni punkt, Aby ułatwić tę czynność, zasto-
laserowy. Jego plamka wyznacaa punkt leżący na osi optycznej kamery. Dość wydaje się rf


Elektronika Praktyczna 6/2003
AUTOMATYKAi
Rozkład temperatury na tranzystorz
? 39-41
Ś 37-39
Ś 35-37
Ś 33-39
? 31-33
D29J1
Ś 27-291
Ś 25-2?!
Rys. 4. Rozkład temper
-Es
i histogramy rozkładu temperatur (rys. 2b i 2c). Te ostatnie odnoszą się do całej powierzchni obrazu lub tylko do
obiektu. Gdyby proponowane w progra-mie typy^ wykresów nie odpowiadały
skorzystać np. 2 programu Excel po wcześniejszym wyeksportowaniu do niego danych. Program Therm V-20 potrafi tez eksportować dane w formacie .oijrjp.
brać najbardziej odpowiednią paletę
i filtrem wyświetlania - przykłady przedstawiono na rys. 3a, 3b i 3c. Podczas przesuwania kursora w obrębie okna roboczego widać natychmiast
ek-
i dokładność pomiaru jest iksza niż w przypadku detek-
Podczas tworzenia obrazu skanowany ts
będzie tylko zaznaczony fragment, d
zapisywane na karcie pamięciowej Kamera to nie wszystko
MMC o pojemności do 256 Mp. Urnoż- Można powiedzieć, że bezpośredn
mogramow, a zastosowanie portu USP niejszego opracowania wyników pomi.
zapewnia w razie konieczności szybki rowych. Dalsze czynności będą prow,
wanego punktu. Rozdzielczość termiczna wynosi 0,05C.
Można powiedzieć, że kamera V-20 jest produktem unikatowym. Sprzęt tego typu jest produkowany przez niewielu wytwórców światowych. Cieszy
dzin
c fat
śród r
msfer
V-20 zdobyła nagród na różnego rodzaju tar-
mery V-20 są bard Detektory pode;

erą, Użytkoł
3 firmy VIGO System.

tektor jednoelementowy. takie przyczynia się do ob tu całego urządzer' ' ' "
. de- cą programu Ther zanie przygotowana niema kosz- kumentacja prac po
ż
każdy z 57600 punktów ne wyników, W jej skład wchodzą: pliki
składa]ących Eię na obraz powsta]e tekstowe z opisami pomiarów, zd]ęcia
w identycznych warunkach, Zastosowa- mierzonych obiektów (tradycyjne - wy-
nie pojedynczego detektora niesie ze konane np. aparatem cyfrowym), zestaw
V-20 może być Jarosław Doliński automatycznie do- jaroslaw.dolinski@ep.com.pl
iarowych, obejmu-arycz-
Elektronika Praktyczna 6/2003
^^^^^F ^^^^H ^^VH HM Ś Ś Ś ^K Ś ^^^^H H^^V Ś Ś ^^^^H ^
firmy Omron
W takich właśnie aplikacjach są stosowane zbliżeniowe czujniki indukcyjne, które doskonale nadają się do wykrywania elementów (np. fragmentów maszyn) wykonanych z materiałów ferromagnetycznych. Jednym z producentów czujników tego typu jest japońska firma Omion, w ofercie której znajduje się wiele ich wariantów o charakterystykach przystosowanych do aplikacji różnego typu. Ze względu na zasadę działania czujniki indukcyjne chaiakteiyzu-
2bIbzo
/ Stalnlsn zewne(S 8303}
Mosiądz
Mmtirun 1
1 MMf-l-----------
ją się różną czułością dla różnych metali, czego przykłady pokazano na rys. 1 i 2.
Dość interesującą rodziną czujników w ofercie Omiona są czujniki z rodziny E2A, które -dzięki wykorzystaniu wieloletnich doświadczeń i nowoczesnych technologii - mają mniejsze wymiary od większości czujników produkowanych dotychczas, charakteryzując się przy tym dwukrotnie większym zasięgiem nominalnym.
Żelazo
/
A- Stalrtsn lZMTWfS US303)

Ir -MBdz-
i
Rys, 1, Charakterystyka czułości czujnika E2A o średnicy 8 mm dla różnych metali
Rys, 2, Charakterystyka czułości czujnika E2A o średnicy 30 mm dla różnych metali
Typowym zadaniem
stawianym wielu systemom
automatyki jest nadzór pracy
maszyn i urządzeń, w których z natury rzeczy
jest wiele elementów
ruchomych, których położenie
trzeba kontrolować.
Czujniki E2A są produkowane w szerokiej gamie obudów (o standardowych średnicach gwintu: M8, M12, M18 oraz M30), w wersjach z wyprowadzonym kablem lub ze specjalnym, 3- lub 4-stykowym złączem. Przy wyprowadzeniu kabla (lub przy złączu) znajduje się optyczny wskaźnik zadziałania czujnika wykonany na diodzie LED (żółtej). W zależności od zastosowania, czujniki mogą mieć ekranowane lub nieco wysunięte z metalowej obudowy
wpływ na zasięg ich' działania i stromość charakterystyki czułoś-
omRon
Elektronika Praktyczna 6/2003
AUTOMATYKAl
E2A M30
- -
\
/ \ | E2A-M1S
1 V
1 > \\ E2Ar M12
V -^E2> -SOS
// \y i
I 11/ \x\ \
-30 -20
Rys, 3, Charakterystyki czułości
z głowico; ekranowanq
W zależności od wymagań docelowej aplikacji można stosować czujniki z wyjściami typu NC (Norma! Close) lub NO (Norma! Open) z tranzystorami NPN lub PNP (rys. 5). Niezależnie od typu wyjścia, czujnik jest dołączany do systemu za pomocą trzech przewodów, z których dwa służą do doprowadzenia zasilania (10...32 VDC/10 mA), natomiast trzeci przekazuje sygnał z wyjścia czujnika. Maksymalne natężenie prądu wpływającego/wypływającego z wyjścia czujnika nie może przekraczać 200 mA. Należy pamiętać, że w obwodach wyjściowych czuj-
-60-40 -30 -20 -10 O 10 20 30 40
Rys, 4, Charakterystyki czułości czujników o różnych średnicach zgłowicq nieekranowanq
ników znajdują się zabezpieczenia antypizepięciowe oraz diody zabezpieczające przed odwróconą polaryzacją napięcia (za wyjątkiem czujników o średnicy obudowy 8 mm), a rolę bezpiecznika
wo połączone: wyjściowa rezystancja tranzystora oraz dioda zabezpieczająca. Przed nieprawidłową polaryzacją napięcia zasilania chroni wewnętrzne obwody czujnika specjalne zabezpieczenie, dzięki czemu zminimalizowano ryzyko jego elektrycznego uszkodzenia.
Wszystkie czujniki z rodziny E2A spełniają rozszerzone (zamiast 30-minutowego testu w tem-
Rys, 5, Budowa obwodów wyjściowych i zasilania czujników z wyjściem z tranzystorem pnp (a) i npn (b)
ny test w 20 cyklach: 1 godzina w temperaturze 80C/l godzina w temperaturze 0C, przy czasie zmiany cyklu zaledwie 2 minuty) wymagania szczelnościowe IP6 7 (opisane w EP12/2002). Dodatkowo producent przeprowadza szokowy test termiczny, którym poddawane są wszystkie produkowane czujniki. Andrzej Gawryluk, AVT
Ś A ykut K sta odstaw ia tów
udo ępnio ny hp zez irmęO Tiron, tel. 22)
645 78-60 w vw.o mro .COlTI.p .
Ś I B L I O T E K A EP
Uwaga! Uj-j-.^^ h>=_=,it_., __,i._.,i., ., ^"i- m_, j^j" .. ^, j . ..."
Chcemy w ten sposób udostępr t
Friedrich L. Bauer, "Senreiy Kryptografii", Heiion 2003
łym - jak na publikacje tego typu
t oś ci ową pozycję beletrystyczną.
Zgodnie z tytułem, większą część książki autor poświęcił objaśnianiu i przybliżaniu tajników
kryptoanalizy, w tym nowoczes-
Jest to książka niezwykła: eru- nych algorytmów RSA, DES
dycja autora doskonale współgra i IDEA. Niezwykle interesująca
z przejrzystym wykładem, dzięki jest także prezentacja metod kryp-
czemu czytelnicy bez trudu mogą toanalizy (oczywiście także wzbo-
zagłębić się w tajniki kryptografii, gaconych o podbudowę historycz-
która jest dziedziną na wskroś ną), zwłaszcza że autor zwrócił
przesiąkniętą - zazwyczaj nielubia- w tej części książki uwagę na
ną - matematyką. Książkę podzie- zjawiska zazwyczaj ignorowane,
łono na dwie części, z których jak np. wpływ "czynnika ludzkie-
bezpośrednio związanym z metoda- formacji czy wpływ specyficznych
mi i algorytmami kryptograficzny- cech języka (a raczej jego statys-
mi, natomiast drugą kryptoanali- tyki), w którym zapisana jest ory- Autor nie pominął w swoim
zie. Jak się okazuje, mogą to być ginalna wiadomość na jakość opracowaniu dorobku polskich ma-
zagadnienia fascynujące nie tylko szyfrowania za pomocą niektórych tematyków, którzy przysłużyli się
dla matematyków (połowę prezen- algorytmów. złamaniu mocnego kryptograficznie
towanej książki - liczy ona ponad Prezentowana książka, w odróż- algorytmu słynnej niemieckiej
500 stron - przeczytałem w ciągu nieniu od większości poświęco- Enigmy, co jest dla nas miłym
trzech wieczorów), ajest to moim nych tej tematyce dostępnych na akcentem (w słynnym brytyjskim
zdaniem zasługa dojrzałego podej- rynku, nie ma ambicji być filmie o Enigmie to właśnie Bry-
ścia autora do prezentowanych za- "suchym" podręcznikiem akade- tyjczycy "złamali" Enigmę).
gadnień. Dojrzałość ta polega mickim, stąd ogromna liczba ilu- Niebagatelnym atutem książki
m.in. na przedstawieniu historii stracji (także kolorowych zdjęć), jest doskonała szata graficzna, wy-
nych przykładach, które krok po także do mniej wprawnych czytel- bardzo dobre tłumaczenie. Zasłu-
kroku pokazują drogę jej rozwoju ników (sprawdziłem!) - dobrane żonę 5 lutownic!
i ewolucję pomysłów, na których przykłady, a także ograniczanie Andrzej Gowryluk
opierano metody ukrywania prze- "czystej" matematyki do sensów-
syłanych wiadomości. Rys histo- nego minimum. Tak podana wie- ^r^T^T^r^r
|y>
ryczny został pokazany
wyk-

lakuje!
Jacek Majewski, Krzysztof Kardach, "Programowanie mikro kontrolerów z serii 8x51 w języku C", Oficyna Wydawnicza Politechniki Wrocławskiej 2002, zawiera CD-ROM

p I =i _. "......, ' Doty- zmyślą o studentach Wydziału Elekt-
- * ^i tr>gramów pisanych roniki Politechniki Wrocławskiej jako
i i [rawia sporo prób- pomoc do przedmiotu "Podstawy mik-
tl H14 m. Inwestowanie roprocesorow". Krótki wstęp poświę-
l u i- 1HZ U jest coraz bardziej cony przybliieniu architektury inikro-
uzj i hn iih i niH rai różnorodność kontrolerów '51 (ze szczególnym
mili 1 litr Ihi i mikroprocesorów do- uwzględnieniem TB9C51RD2 firmy At-
"tępnych na rynku powoduje, ie nie mel) oraz jego programowaniu (łącz-
jest możliwe poznanie asemblerow każ- nie z obsługą kompilatora), a także
dej z dostępnych rodzin, a programy prezentacja proslego zestawu ewalua-
napisane w C (zwłaszcza ANSI C) są cyjnego, przyg . ; wpraw-
Elektronika Praktyczna 7/2003
IBLIOTEKA EP
Programowanie
mikrokontrolerów
z serii 8x51 w Języku c
książka wybitna, polecamy!
książka o dużych walorach praktycznych, polecamy!
/Ś//
daleka od doskonałość
sie. z dalszą częścią książki. Poświę-działy) przedstawieniu przykładów
a zwłaszcza programowej obsługi typo- Z punktu widzenia elektroników
wych peryferii wbudowanych w mik- w książce brakuje infonn^r Ś: ^;--
rokontrolery '51 oraz wybranych pe- wych modułach Eluetooi
ryferii zewnętrznych. Książka jest OEM) - bo wwiększos
stron) i - niestety - klejona, co powo- interfejs są stosowane gotowe moduły
Do książki jest dołączany CD-ROM zawierający przykładowe programy, op-
na] popularnie] szych mi kro kontrolerów i inne materiały przydatne podczw re-
Mikolaj Andrus
Brent A. Miller, Chatschik Bisdikian, "Uwolnij się od kabli - Bluetooth", Helion 2003
Eluetooth wchodzi do naszej codzienności małymi kroczkami, ale
ten "pochód" znacznie przyspieszyć, Jest to bardzo przystępny opis "technologicznych" tajników systemu Eluetooth, który ze względu na swo-
Plug&PU !:.wa-
.lofile Eez wątpi*
także tym spośród cz, .
raz klasycznym działania Eluetooth.
Elektronika Praktyczna 7/2003
AUTOMATYKA
Enkodery i czujniki do detekcji drogi firmy Baumer
Systemy pozycjonujące są coraz częściej stosowane we współczesnych urządzeniach elektronicznych i systemach automatyki. Jednym z największych producentów enkoderów - najważniejszych elementów w systemach pozycjonowania -jest firma Baumer, której fragment oferty przedstawiamy w artykule.
Produkowane przez firmę Baumer czujniki do pomiaru przesunięć kątowych, można podzielić ze względu na zasadę działania na optyczne i magnetyczne, a ze względu na sposób wyprowadzania informacji na przyrostowe (inkrementalne) i absolutne.
Najczęściej używane są optyczne czujniki przyrostowe. W uproszczeniu składają się one z nadajnika i odbiornika światła oraz wirującej między nimi tarczy z napylonymi zasłonkami. Baumer produkuje takie enkodery o średnicach korpusu od 18 do 92 mm, o średnicach wałka od 4 do 12 mm lub z otworem pod wałek od 4 do 27 mm. Liczba impulsów na obrót może wynosić, w zależności od typu, od 10 do 72000.
Najmniejsze enkodery o średnicy 18 mm (z wałkiem lub bez) mają zastosowanie w różnego rodzaju sprzęcie elektronicznym jak plotery, rejestratory itp. Ze względu na bardzo małą obudowę, zastosowano w nich nieco inny sposób przekazywania informacji o obrocie. W klasycznym enkoderze nadajnik światła znajduje się po drugiej stronie tarczy niż odbiornik.
W enkoderach serii BSM i BHM nadajnik i odbiornik znajduje się po jednej stronie tarczy. Zastosowano tarczę o zmienionej zasadzie działania, która nie przepuszcza promieniowania, a odbija padającego promienie na zasadzie podobnej jak w płycie CD-ROM. Część elektroniczną, wraz z elementami optycznymi zintegrowano w pojedynczej strukturze ASIC.
Oprócz czujników przyrostowych Baumer produkuje całą gamę enkoderów absolutnych, także wieloob-rotowych, których asortyment poszerzono ostatnio o nowe konstrukcje, działające zarówno na zasadzie optycznej jak i magnetycznej.
Na szczególną uwagę zasługują te ostatnie, ponieważ posiadają kilka unikalnych cech. Przykładem enkodera absolutnego jest enkoder serii MagRes. Zasada działania jest prosta: miniaturowy magnes zamontowany w wirniku oddziałuje na magnetorezystory umieszczone na płytce z elektroniką. Sygnał z mag-netorezystorów jest obrabiany w procesorze DSP, a następnie przetwarzany na postać zrozumiałą dla urządzeń współpracujących (rys. 1). Wyeliminowane szklanej tarczy wpłynęło korzystnie na wytrzymałość mechaniczną. Nieco zmodyfikowana wersja MagRes Kit Set nie posiada wirnika łożyskowanego w korpusie enkodera (rys. 2). Wirnik wraz z magnesem jest montowany na zewnątrz i oddziałuje poprzez szczelinę powietrzną i aluminiową obudowę na magnetorezystory. Uzyskano w ten sposób następujące cenne własności: wysoki stopień szczelności IP68 od strony wirnika, redukcję wpływu temperatury na układy elektroniczne enkodera (wałek, na którym jest zamontowany wirnik może mieć wysoką temperaturę), brak konieczności stosowania sprzęgieł, wysoka odpor-Sygnał wyjściowy
Elektronika Praktyczna 7/2003
AUTOMATYKA
Fot. 2
ność na wibracje, niewielkie wymiary - średnica 42
mm, wysokość 15,5 mm.
Firma Baumer ciągle poszerza zakres produkcji en-koderów absolutnych, również wieloobrotowych. Do nowych rozwiązań należą wymienione wcześniej MagRes oraz oparte na zasadzie optycznej enkodery serii Procoder i Dignalizer. Podstawowe dane dotyczące rozdzielczości i dokładności odczytu kąta przedstawiono w tab. 1. Enkodery wielo- i jednoobro-towe komunikują się ze światem zewnętrznym za pomocą protokołów takich jak SSI, CANopen, Profibus lub DeviceNet.
W aplikacjach służących do pomiaru prędkości i kierunku obrotów przekładni zębatych można zastosować całą gamę produktów Baumer Electric. Są to czujniki zbudowane na magnetorezystorach lub na czujnikach Halla. W pierwszej grupie czujników pole magnetyczne magnesu trwałego jest zaburzane przez przesuwające się zęby przekładni, co wprowadzą zmianę wartości rezystancji elementów mostka pomiarowego. Niestety, w wielu przypadkach, obecność magnesu nie jest wskazana ze względu na szybkie przyklejanie się do niego opiłków metalu. W takim przypadku można zastosować czujniki wykorzystujące zjawisko Halla (czujniki IHRM, MHRM). Dodatkową ich zaletą jest to, że czujniki wraz z częścią czołową są wykonane ze stali nierdzewnej i można bez obaw stosować przy dość wysokich temperaturach i ciśnieniach, np. wewnątrz korpusów silników spalinowych itp.
Innym rozwiązaniem bezstykowego pomiaru przesunięć jest pomiar za pomocą czujnika współpracującego z taśmą bądź pierścieniem magnetycznym. Aktualnie dostępne są czujniki MDFK współpracujące z pierścieniem oraz MLFKwspółpracującez elastyczną taśmą magnetyczną o dowolnej długości. Takie rozwiązanie pozwala relatywnie tanio i łatwo zbudować system pomiaru drogi lub prędkości np. dla bram przesuwnych, obrabiarek, suwnic itp. Czujniki te do-
Typ erirodera Rrctefcaoceee ndotmit 1 fta ttiśnt eee Ś^^Śihii odcryti Po cttamnawe cedy
Mag R es 12 b t/obr. 30 bl ą0,5 Enk dermagne-
ANop '5bit n) Z 1|

SSI)
13 b + 0,05 Fnko
modu owa budowa
b s cover)
Dignalizer 15-1S )it/obr. 3li bi ą0,005 Enko er optyczny,
jiednoi
)it/obr. )rotoi /)
,,," brotowy) koni uracia przez SSI,
stępne są zarówno z wyjściami typu push-pull, jaki i komplementarnymi RS422, co pozwala na stosowanie w silnie zakłóconych środowiskach.
Pomimo niewielkich rozmiarów (45 x 15 x 8,5 mm), własności prezentowanych czujników są dobre: temperatura pracy mieści się w przedziale -25 do +85C, obudowa ma stopień ochrony IP67. Maksymalna liczba impulsów na obrót (dla pierścienia o 32 parach biegunów) wynosi 256 lub 512, a dla taśmy magnetycznej 8 impulsów przypada na 2 mm drogi. Maksymalna częstotliwość wyjściowa wynosi 160 kHz, a w najnowszej wersji nawet 3,2 MHz. Szczelina powietrzna pomiędzy rotorem a czujnikiem może wynosić maksymalnie 0,5 mm bez pogorszenia dokładności, a pomiędzy taśmą a czujnikiem aż 1 mm. Wyeliminowanie części ruchomych w czujniku podwyższa trwałość całego wyrobu.
Ostatnim charakterystycznym produktem są magnetyczne czujniki kąta, które mogą być wykorzystane jako bezstykowe potencjometry. Zewnętrznie nie różnią się od czujnika indukcyjnego, jednak mają tę cenną właściwość, że napięcie na wyjściu zmienia się w zależności od kąta przebiegu linii pola magnetycznego powstałego z miniaturowego magnesu zamocowanego na rotorze. Istnieją dwie wersje: z sygnałem proporcjonalnym do kąta ą80 oraz z dwoma sygnałami sinusoidalnymi przesuniętymi w fazie. Czujniki te mogą być wykorzystywane do odczytu małych kątów układów mechanicznych, gdzie ze względu na dokładność nie jest konieczne stosowanie drogich en-koderów absolutnych, np. czujniki z wyjściem liniowym są stosowane w modernizowanych czeskich tramwajach do detekcji położenia dźwigni przyspieszenia. Tomasz Śliwakowski, Amtek
Dysttybutorem firmy Baumer jest Amtek spo!. sr.o., te!. (22) 874-02-34, amtek@amtek.pl, www.amtek.cz.
Elektronika Praktyczna 7/2003
PROGRAMY
Najnowszą wersję LabView można bez trudu zakwalifikować do grona awangardowych narzędzi, które kreuje nowe trendy i wyznacza szlaki, którymi z pewnością podążą także inni producenci. O kilku najbardziej spektakularnych nowościach wprowadzonych do LabView 7 piszemy w artykule.
LabView
łający LabYie
pomocą tego
programu zaawansow, anej aplikacji
służące i do gromadź1 enia, obróbki
i prezentacji danych nie wymaga
zbyt długiego czasu, a użytkownik
ją tworzący nie musi byc wysokiej
klasy programistą, zni ijącym tajniki
API "na wylot". Po v
w roku 2000 do spn Śedaży wersji
LabView 6i, która cha rakteryzowała
się obsługą różnych t [ystemów sie-
ciowych (w tym oczyv wiście szeroko
rozumianego Interneti u), wydawało
się, że w następnych i wersjach trud-
no będzie coś radykał] nię udoskona-
lic, ale...
LabView i rekonfigurowalny
sprzęt
Jedną z bardziej spi ektakularnych
nych do LV
7 jest moduł LabView FPGA, który
odpowiada za współp racę z wyspe-
cjalizowanymi kartan li PXI-7831R
zawierającymi rekoi lfigurowalne
układy FPGA (fot. l). W środowis-
ku LabView zintegrow 'ano kompila-
tor języka opisu sprz ętu (z nieofi-
wvnika, że
Do czego służy i co może LabView?
LabView jest pakiet oprogramowania służący do projektowania graficznych
aplikacji do akwizycji, obróbki i prezentacji danych. Jest to narzędzie zapewniające elastyczność porównywalną z r
układu FPGA za pomocq LabV ^Ś/iodzy o układach programował
Elektronika Praktyczna 7/2003
PROGRAMY
Elektronika Praktyczna 7/2003 127
PROGRAMY
Fot. 2. LabView 7 PDA pozwala budować oprogramowanie do akwizycji, obróbki i prezentacji danych na ekranach palmtopów
VHDL) oraz edytor schematów z bibliotekami zawierającymi prede-finiowane bloki funkcjonalne różnego typu. Użytkownik pakietu nie musi znać zasad projektowania i konfiguracji układów FPGA, wszystkie problemy "niskiego poziomu" rozwiązuje za niego system projektowy. Projektowanie konfiguracji FPGA sprowadza się do wyłącznie narysowania schematu (przykład pokazano na fot. l), podobnie jak ma to miejsce w pozostałych modułach LabView. Wiele wskazuje na to, że w LabView 7 FPGA zintegrowano kompilator ISE firmy Xilinx (jednoczesna praca ISE i LV7 FPGA na jednym komputerze nie jest możliwa).
Zastosowanie rekonfigurowalnego sprzętu pozwala wykorzystać pojedynczą kartę jako np. programowany generator sygnałów wyzwalających, konfigurowanych przez użytkownika modułów decyzyjnych, a także jako bardzo elastyczne liczniki, timery, interfejsy enkoderów, generatory PWM i innych sygnałów cyfrowych, sprzętowe interfejsy szeregowe itp. Kartę wyposażono w 96 programowanych linii I/O (zgodnych ze standardem TTL), a zasto-
sowany układ FPGA ma 11520 kon-figurowalnych bloków logicznych (co odpowiada ok. 1 min bramek przeliczeniowych). W układzie FPGA zintegrowano także 16 kB szybkiej pamięci SRAM, którą można powiększyć (kosztem rekonfigu-rowalnych zasobów wewnętrznych) do 80 kB. Standardowo układ FPGA jest taktowany sygnałem zegarowym o częstotliwości 40 MHz (jest źródło o dokładności ą100 ppm), ale dopuszczalne jest także stosowanie sygnałów zegarowych
0 częstotliwościach 80/120/160 lub 200 MHz.
Oprócz rekonfigurowalnej części cyfrowej, karta PXI-783lR zawiera także przetworniki A/C (8 kanałów, rozdzielczość 16 bitów, czas konwersji 4,3 |is) i C/A (8 wyjść, rozdzielczość 16 bitów, czas konwersji 1 |is), co pozwala traktować ją jako uniwersalny interfejs I/O.
LabView i PDA
Drugą nowością, na którą chcieliśmy zwrócić uwagę, jest możliwość współpracy LabView 7 z komputerami klasy palmtop (PDA - Per-sonal Digital Assistant - fot. 2). W tym celu opracowano zmodyfikowaną funkcjonalnie wersję pakietu, która nosi oznaczenie LabView PDA. Jednym z jej elementów charakterystycznych jest obsługa interfejsów komunikacyjnych Bluetooth oraz IrDA oraz łatwość budowania zdalnych, wirtualnych przyrządów
1 terminali do akwizycji i prezentacji danych. Oczywiście LV 7 PDA pozwala także na tworzenie samodzielnych aplikacji dla PDA, jedynym warunkiem jest wyposażenie ich w system operacyjny PalmOS lub PocketOS.
Za miesiąc...
Przedstawione w artykule dwie nowości zawarte w najnowszej wersji LabView uznaliśmy za najbardziej spektakularne z punktu widzenia elektroników i dlatego przedstawiliśmy je jako pierwsze. Pozostałymi nowościami zintegrowanymi w LabView 7 zajmiemy się za miesiąc. Andrzej Gawry luk, AVT
LV 7 Eval na CD-EP
Za miesiąc, na płycie CD-EP8/2003 opublikujemy najnowszą wersję ewaluacyjną pakietu LabView 7.
128
Elektronika Praktyczna 7/2003
PROJEKTY
Wzmacniacz semi-surround do komputera część 1
AVT-516
PROJEKT Z OKŁADKI
Wszyscy lubimy
uszlachetniać nasze
komputery, zwłaszcza że
spędzamy przy nich bardzo
dużo czasu. Powodzenie
wcześniejszych wersji
wzmacniaczy do PC zachęciło
nas do opracowania
unowocześnionej, znacznie
bardziej efektownej wersji
takiego urządzenia,
o możliwościach adekwatnych
do współczesnych wymagań
u żytko wnikó w.
Rekomendacje: projekt
polecamy wszystkim
użytkownikom PC,
a zwłaszcza tym, którzy
dbają o jego multimedialne
walory użytkowe.
Prezentowany wzmacniacz
może być także doskonałym
elementem nowoczesnej
stylizacji komputera -
z użyciem lamp
fl u ore scen cyjn ych
i podświetlanych wentylatorów.
Komputery od początku swojego istnienia, oprócz poważnych zastosowań w instytutach badawczych lub w armii, służyły również do zabawy. Prawdopodobnie znudzeni lub znużeni programiści dla odprężenia zaczęli tworzyć początkowo prymitywne, a z czasem coraz doskonalsze gry. Pewnie do dzisiaj bawiłyby wąskie grono informatycznych guru, gdyby nie zawrotny postęp mikroelektroniki i powstanie w latach 70. ubiegłego stulecia tak zwanych komputerów domowych. Entuzjaści tych wspaniałych maszyn, w wolnych chwilach od programowania w Basicu, również zabawiali się grami wyrobu własnego lub powstających już wtedy małych firm parających się rozrywką komputerową. Kto dzisiaj pamięta te wszystkie "trójwymiarowe" i "wielokolorowe" wspaniałości ładowane z magnetofonu MK232 do komputera Spectium 48k (extended\). Rosnące zapotrzebowanie na tego typu wyroby spowodowało, że sprawą zajęli się specjaliści od wielkich pieniędzy,
marketingu, reklamy i z zabawek komputerowych zapaleńców powstał potężny rynek domowej in-f oim a ty c zne j r o zrywki.
Dzisiaj nie ulega wątpliwości, że komputer PC stał się domowym centrum rozrywki. Oprócz coraz doskonalszych gier, możliwe jest oglądanie telewizji, odtwarzanie filmów w doskonałej jakości zapewnianej przez DVD, odtwarzanie plików audio MP3, odtwarzanie klasycznych płyt CD. Są to tylko niektóre bardziej znane możliwości multimedialne komputera. Podłączenie do Inter-netu znacznie poszerzyło jego "rozrywkowe" możliwości.
Żeby cyfrowe urządzenie mogło nas bawić w naszym analogowym świecie, musi być wyposażone w analogowe peryferia. Od-
Cechy i funkcje wzmacniacza:
4-4-kanałowy wzmacniacz mocy,
Śf moc wyjściowa 12 W/2 Q/THD=10%,
4-regulacja wzmocnienia, balansu inbarwy
tonu (basy intony wysokie), 4-wbudowany przetwornik C/A dla DC/DVD
(interfejs SPDIF), Śf kontrola temperatury wewnątrz komputera.
14
Elektronika Praktyczna 7/2003
Wzmacniacz semi-surround do komputera PC
twarzanie obrazu dobrej jakości nie jest problemem, bo każdy komputer jest teraz wyposażany w monitory o dużej rozdzielczości i sporej częstotliwości odświeżania. Sygnał wizyjny wytwarzany przez niektóre karty graficzne można też podłączyć do dowolnego telewizora. Z dźwiękiem nie jest już tak dobrze. Co prawda standardowe karty dźwiękowe są już od dawna montowane seryjnie do PC-tów, ale często dźwięk jest odtwarzany przez parę tanich głośniczków. Cały czar wyrafinowanego cyfrowego dźwięku pryska. Oczywiście można się podłączyć do domowego zestawu hi-fi, ale nie zawsze jest to możliwe, a najczęściej jest bardzo kłopotliwe. Najlepszym, najbardziej funkcjonalnym rozwiązaniem byłoby wyposażenie komputera we własny, stosunkowo dobrej jakości wzmacniacz mocy.
Prezentowana tutaj konstrukcja wzmacniacza jest tak pomyślana, by można ją było umieścić w obudowie PC-ta w miejscu przeznaczonym na dodatkowy twardy dysk lub napęd CD i jest w pewnym sensie następcą kitu AVT-491. Ma czterokanałowy wzmacniacz, a więc umożliwia odtwarzanie dźwięku przestrzennego. Poza tym, wzmacniacz został wyposażony w cyfrowe wejście pozwalające na odtwarzanie płyt CD z lepszą jakością, niż to mogą zapewnić tory audio większości popularnych napędów CD. Sterowanie wszystkimi funkcjami odbywa się za pomocą impulsatora, a komunikaty są wyświetlane na bardzo czytelnym wyświetlaczu VFD. Zamiast tego wyświetlacza można zamiennie stosować "zwykły" wyświetlacz LCD o organizacji 1x16 znaków.
Opis układu
Schemat wzmacniacza pokazano na rys. 1. W torze audio zastosowano stereofoniczny procesor audio BH3857 firmy Rohm (układy Ul i U2). Schemat blokowy tego układu pokazano na rys. 2. Można go wykorzystać do regulacji wzmocnienia, tonów niskich (bass) i tonów wysokich [treble), ma także wbudowane dwa niezależne układy poszerzania bazy stereofonicznej [surround). Istnieje też możliwość sterowania czterema dwustanowymi wyjścia-
mi typu open collector. Wyjścia te mogą na przykład sterować przełącznikiem wejść lub układami sygnalizacji stanu pracy wzmacniacza.
Analogowe sygnały audio są podłączane przez złącza typu ciuch na cztery wejścia oznaczone IN1...IN4. Pierwsza para sygnałów ze złącz INI i IN2 jest podawana przez kondensatory Cl5, Cl 6 na wejścia Inl i In2 procesora audio Ul. Na te same wejścia Ul mogą przychodzić sygnały z wyjścia przetwornika C/A (układ U4). Wybór źródła sygnału jest dokonywany przez styki przekaźnika PRZl. Druga para sygnałów ze złącz IN3, IN4 jest podawana przez kondensatory C40 i C41 na wejścia Inl i In2 drugiego procesora audio - układu U2. Sygnały z wejść Inl i In2 są podawane na wejściowe wzmacniacze. Wzmocnienie takiego wzmacniacza można regulować przez dobór rezystancji: dla wejścia Inl rezystor R5, a dla wejścia In2 rezystor R4 (procesor Ul). Dla procesora U2 są to rezystory: RIO (wejście Inl) i R9 (wejście In2). Wzmocnienie można obliczyć z zależności: G=(R+20k)/R. Można w ten sposób dobrać wzmocnienie całego toru do poziomu sygnału wejściowego. Trzeba przy tym pamiętać, że zbyt duże wzmocnienie spowoduje przesterowanie wejść układów surround lub regulatorów barwy dźwięku i powstanie zniekształceń. W modelowym wzmacniaczu rezystory R4, R5, R9, RIO mają wartość 47 kQ.
W pierwszym procesorze Ul kondensatory Cl i C2 (torl) oraz C6 i C7 (tor2) są elementami zewnętrznymi aktywnego filtru regulacji tonów niskich (basów). Kondensatory C3 (torl) i C8 (tor2) są podłączone do układu regulacji tonów wysokich.
W układzie surroundl pracują elementy: C4, C9, CIO, Cli, C5, Rl i R2. Sygnał wyjściowy z toru 1 podawany jest na wejście wzmacniacza mocy przez kondensator C17, a z toru 2 przez kondensator C18. Niewykorzystywane wejścia regulacji wzmocnienia, tonów niskich i tonów wysokich są zablokowane kondensatorami: C20...C22. Konfiguracja włączenia drugiego procesora U2 jest dokładną kopią aplikacji układu Ul.
Układ BH3857 jest zasilany napięciem +8 V w stosunku do masy analogowej A_GND. Dla wszystkich analogowych sygnałów audio odniesieniem jest również masa analogowa A_GND. Cyfrowy interfejs sterujący ma swoją odrębną masę cyfrową D_GND. Obie te masy nie są w układzie ze sobą połączone. Takie rozwiązanie jest stosowane, żeby zakłócenia z toru cyfrowego nie przedostawały się do toru analogowego poprzez wspólną masę.
Mikrokontroler U6 steruje wszystkimi ustawieniami procesora audio przez szeregowy interfejs cyfrowy (trzy linie: danych DATA, zegarowa CK i zapisu LATCH). Można również zamiennie regulować wzmocnienie i barwę tonów napięciem stałym przyłożonym na specjalnie do tego przeznaczone wyprowadzenia VC, TC i BC. Format danych przesyłanych przez interfejs szeregowy pokazano na rys. 3.
W trakcie pojedynczej transmisji przesyłane są 32 bity (pierwszy najmniej znaczący). Prawidłowe dane muszą się pojawić na linii DATA, kiedy na linii zegarowej CK jest poziom niski. Narastające zbocze na linii CK wpisuje daną do bufora wejściowego układu BH3857. Po przesłaniu wszystkich 3 2 bitów, narastające zbocze na linii LATCH wpisuje odebrane dane z bufora wejściowego do układów sterujących procesora. Znaczenie poszczególnych bitów opisano w tab. 1.
Wzmocnienie (a właściwie tłumienie) sygnału można regulować w 256 krokach (rozdzielczość 8 bitów). W opisywanym tutaj wzmacniaczu cały zakres regulacji został podzielony na 54 przedziały i regulacja odbywa się w 54 krokach od -84 dB do 0 dB. Barwa tonu może być regulowana w 32 krokach (6
Tab. 1. Funkcje bitów słowa sterującego układu BH3857
y danych Fmkcja
DO.. D7 Sterowanie głośnością
D8.. D12 Sterowanie tonami wysokimi
D13 ..D17 Sterowanie tonami niskimi
D18 D19 Włączanie/wyłączanie efektu surround
D20 ..D23 Sterowanie stanami portów wyjściowych PORT1.....PORT4
D24 ..D31 Wybór układu inparzystość
Elektronika Praktyczna 7/2003
15
Wzmacniacz semi-surround do komputera PC
Rys. 1. Schemat elektryczny wzmacniacza
16
Elektronika Praktyczna 7/2003
Wzmacniacz semi-surround do komputera PC
TREBLE
MATRIX SURROUND1
4ol fsol f38l [37! fael [35! [34! [33! faal [31! [ot! [29! f2sl [27! fael [25! fai
TONĘ
BASS
S 2
_5J L6
3 2! S! g
z ^ o. z o M
E <^
I S B,
s! S ż
m
Rys. 2. Schemat blokowy procesora audio BH3857
bitów). Tutaj zakres regulacji został podzielony na 17 przedziałów (od -15 dB do +15 dB).
Bity D18 i D19 służą do włączania odpowiednio efektu sur-roundl i surround2. Efekt jest włączony, gdy bit jest zerem. Wartości bitów D20...D23 są przepisywane na wyjścia cyfrowe PORT1...PORT4. Do końcowych bitów D24...D31 {chip select and parity) słowa danych trzeba wpisać 11101010 binarnie.
Z wyjść procesorów Ul i U2 sygnał analogowy podawany jest na wejścia wzmacniacza mocy TDA8562Q - układ U3. Jest to scalony czterokanałowy wzmacniacz klasy B. Każdy z kanałów może dostarczyć mocy 12 W przy obciążeniu 2 O, i zniekształceniach THD na poziomie 10%. Z praktycznego punktu widzenia TDA8562Q ma kilka istotnych zalet. Po pierwsze, wymaga bardzo niewielu elementów zewnętrznych i zadowala się pojedynczym napięciem zasilającym o wartości ok. 14 V (6...18 V). Układ ma wbudowane zabezpieczenia przeciwzwarciowe (zwarcie wyjść do masy i do plusa zasilania). Po wykryciu takiego zwarcia pobierana jest stosunkowo niewielka moc. Jeżeli
wymienimy jeszcze zabezpieczenie przed odwrotnym podłączeniem zasilania, udarami elektrostatycznymi i przed przegrzaniem układu, to wydaje się, że zniszczenie tego elementu jest dość trudne. Stan zwarcia, przestero-wania lub przegrzania jest sygnalizowany na specjalnym wyjściu diagnostycznym. Układ TDA8562Q można wprowadzić w stan oczekiwania ze znacząco obniżonym poborem mocy [stand-by) lub w stan wyciszenia [mute).
We wzmacniaczu układ końcówki mocy pracuje w typowej aplikacji podanej przez producenta. Sygnały z procesorów audio Ul i U2 są podawane na wejścia wzmacniacza przez kondensatory: C15, C16 i C40, C41 (separacja składowej stałej). Wyjściowy sygnał przez kondensatory C48...C51 dołączony jest do łączówek OUT1...OUT4. Do tych łączówek podłączane są głośniki. Wejście MODĘ jest sterowane przez obwód z elementów: T3, R24...R26 i C76, wymuszający na krótki czas stan MUTE po włączeniu zasilania wzmacniacza. W ten sposób są eliminowane ewentualne stuki w głośnikach mogące się pojawić po włączeniu zasilania.
LATCH
Rys. 3. Przebiegi czasowe przy przesyłaniu danych do układu BH3857
Cyfrowy sygnał audio z napędu CD-ROM jest podłączany do wejścia D_IN (rys. 1). Przez kondensator C59 jest on podawany na wejście układu odbiornika CS8412 (U5). Tam jest wzmacniany i de-kodowany w taki sposób, że na wyjściu U5 otrzymywane są trzy sygnały: SCK, SDATA i FSYNC. Linią SDATA przesyłane są ramki zawierające kolejne próbki sygnału audio dla kanału lewego i prawego. Linią SCK przesyłany jest sygnał zegarowy określający prędkość transferu danych przesyłanych linią SDATA. W strumieniu danych są kolejno przesyłane zakodowane próbki dla kanału lewego i prawego. O tym, którego kanału dane są w danej chwili przesyłane, decyduje poziom na linii FSYNC.
Dane przesyłane liniami SDATA, SCK i FSYNC muszą być przetworzone na sygnał analogowy przez przetwornik C/A. Tę rolę spełnia układ PCM710U. Jest to kompletny scalony przetwornik C/A o możliwościach dekodowa-nia sygnału cyfrowego w kilku formatach. Tryb pracy PCM1710U może być wybierany za pomocą szeregowego interfejsu sterującego - linie: MC (CLK), ML (STROBE) i MD (DATA) - lub poprzez ustawienie odpowiednich stanów na wejściach sterujących DMl, DM2 i DSD (interfejs równoległy). Podanie na wejście MODĘ poziomu wysokiego wymusza tryb pracy interfejsu szeregowego. Poziom niski na MODĘ to tryb równoległy. W naszym rozwiązaniu został wykorzystany interfejs równoległy, w którym dane wejściowe mogą mieć standardowy 16-bito-wy format. Wymusza to zaprogramowanie układu CS8412 tak, by jego dane wyjściowe miały taki właśnie format (wejścia MO, M2 i M3 poziom wysoki, a wejście Ml poziom niski). Sygnały analogowe z wyjść VOUTL i VOUTR przetwornika są filtrowane w układzie filtru dolnoprzepustowego -elementy: R16, C57 i R15, C54 -i przez styki przekaźnika PRZl mogą być podawane na wejście procesora Ul.
Pracą wzmacniacza steruje sterownik zbudowany w oparciu o mikrokontroler PIC16F76 - układ U6. Do linii portu PORTA dołączony jest wyświetlacz VFD lub
Elektronika Praktyczna 7/2003
17
Wzmacniacz semi-surround do komputera PC
Tab. 2. Podłączenie magistral układów U1 i U2 do wyprowadzeń mikrokontrolera
Unia interfejsu Unia portu
Utfad Ul
DATA RB2
CK RBO
LATCH RB1
UMad U2
DATA RC6
CK RC5
LATCH RC7
opcjonalnie LCD. Potencjometr Pl służy do ustawiania kontrastu wyświetlacza LCD. Rezystor R22 jest podłączony do wejścia zerowania mikrokontrolera, a rezystor R21 wymusza poziom wysoki na wyprowadzeniu RA4 [open collec-tor). Rodzaj obsługiwanego wyświetlacza wybierany jest zworką ZW podłączoną do wyprowadzenia RB7. Zwarcie tej zworki i wymuszenie poziomu niskiego na RB7 powoduje, że program sterujący obsługuje wyświetlacz LCD. Jeżeli ZW nie jest zwarta, to na RB7 jest poziom wysoki i obsługiwany jest wyświetlacz VFD. Wyprowadzenie RC3 jest dołączone do linii SCL, a wyprowadzenie RC4 do linii SDA interfejsu PC. Rezystory R13 i R14 realizują wymagane przez standard PC podciąganie linii SCL i SDA do plusa zasilania.
Podłączenie linii magistral sterujących układami Ul i U2 pokazano w tab. 2.
Do linii RB3 i RB4 (skonfigurowanych jako wejściowe) podłączone są styki zwierane podczas obrotu impulsatora, a do linii RB5 styk zwierany po naciśnięciu ośki impulsatora. Wszystkie linie portu PORTB (skonfigurowane jako wejściowe) mają włączone podciąganie do plusa zasilania przez wewnętrzne rezystory mikrokontrolera. Wyprowadzenie RCO steruje przełącznikiem wejścia układu Ul zbudowanym z tranzystora T2 i przekaźnika PRZl. Ustawienie
es
poziomu wysokiego na RCO powoduje wejście w nasycenie T2 i zadziałanie przekaźnika PRZl. Rezystor R12 ogranicza prąd bazy. Trójkolorowa dioda LED wykorzystywana jest do sygnalizacji trybu pracy wzmacniacza. W trybie CD-ROM dioda świeci na niebiesko - wyprowadzenie RCl jest na wysokim poziomie napięcia, a RB5 na niskim. W trybie Quadro dioda świeci na zielono: RCl jest na poziomie niskim, a RB7 na wysokim.
Układ U7 jest szeregową pamięcią EEPROM zapisywana i odczytywaną przez magistralę PC. W tej pamięci są zapisywane wszystkie ustawienia sterownika wzmacniacza.
Układ zasilania podzielono na dwie części. Wzmacniacz mocy U3 jest zasilany niestabilizowa-nym źródłem napięcia zbudowanym z elementów Ml, C63, C64, C65 i C77. Napięcie przemienne do tego układu podłączane jest do zacisków złącza 12 VAC. Wszystkie pozostałe układy zasilane są napięciem z oddzielnego transformatora (lub oddzielnego uzwojenia). Napięcie to podawane jest na złącze 10 VAC. Stabilizator U10 dostarcza napięcia +8V do zasilania procesorów Ul i U2. Układ U8 dostarcza napięcia +5V do części cyfrowej: sterownika, wyświetlacza i obwodów cyfrowych układów U4 i U5. Wyprowadzenie VD+ układu U5 jest zasilane przez dodatkowy filtr złożony z elementów: C60...C62 i rezystora R20. Część analogowa układów U4 i U5 zasilana jest ze stabilizatora U9. Układ zasilania ma rozdzielone masy: analogową i cyfrową. Masy te łączą się w jednym punkcie w okolicy kondensatorów C64 i C65.
Jak wiadomo, wzmacniacz może być wyposażony w dwa typy wyświetlacza: VFD lub LCD. Alfanumeryczny wyświetlacz LCD jest ogólnie znany i był wielokrotnie opisywany, dlatego nie będzie-
LSB
DATA
Rys. 4. Przebiegi czasowe na magistrali w czasie przesyłania danych do wyświetlacza VFD
WYKAZ ELEMENTÓW
Płytka główna Rezystory
RL R2, Ró, R7: 27kQ
R3, R8, R23, R24, R26: 10kO
R4, R5, R9, RIO: 47kQ
Rl 1, R17: lkn
R12: 3,3kn
R13, R14, R22, R29, R21: 2,7kQ
R15, R16: 5Ó0O
R18: 75Q
R19: 4,7kn
R20: 10O
R25: lOOka
Kondensatory
CL C2, C6, C7, C24, C25, C29,
C30: 68nF
C3, C8, C26, C31: lOnF
C4, C9, C27, C32: lnF
C5, C28, C60, C62, C67, C68,
C71...C74: lOOnF
C10...C23, C33...C46, C55, C56,
C61, C70: 10p.F/16V
C47: 100jiF/25V
C48...C51: 1000^F/16V
C52, C53: 33pF
C54, C57: 2,7nF
C58, C59, C75: 47nF
C63, C64, C6Ó: 4700^F/25V
C65: 100|iF/25V
C76: 47^F/25V
Półprzewodniki
Ml: 5A/100V
M2: 1A/1OOV
T1...T3: BC237
Dl: BAV21
D2: LED trójkolorowa
UL U2: BH3857AFV
U3: TDA8562Q
U4: PCM1710U
U5: CS8414
Uó: PIC16F76 zaprogramowany
U7: 24C04
U8, U9: 7805
U10: 7808
Różne
Rezonator Xl 2MHz
Przekaźnik M4-12h
Płytka drukowana
Goldpiny kątowe
Goldpiny proste
Płytka czołowa Rezystory
R27, R28: 470O
Pl: 4,7kn
Różne
Impulsator Piher
Wyświetlacz Wl zależnie od wersji
Wl VFD 1x16 znaków
W2 LCD 1x16 znaków
18
Elektronika Praktyczna 7/2003
Wzmacniacz semi-surround do komputera PC
my się nim zajmować. Wyświetlacze alfanumeryczne VFD [Vac-cum Fluorescent Dispaly) charakteryzują się dużym kontrastem i dużą jasnością świecenia. We wzmacniaczu został zastosowany wyświetlacz CU165ECPB o organizacji 1x16 znaków. Jest to kompletny moduł zasilany napięciem +5 V i wyposażony w sterownik. Wszystkie napięcia potrzebne do prawidłowej pracy lampy fluorescencyjnej są wytwarzane przez specjalną przetwornicę umieszczoną na płytce modułu. Wbudowany w moduł sterownik pozwala na sterowanie wyświetlaczem za pomocą prostego trójprzewodowego interfejsu szeregowego. Linia SDA-TA jest linią danych, SCK to linia zegarowa. Po ustawieniu poziomu niskiego na linii !CS można przesyłać dane do wyświetlacza. Przebiegi czasowe występujące na magistrali w czasie przesyłania danych pokazano na rys. 4. Sygnały na liniach SDATA, SCK i !CS mają poziomy TTL.
Sterownik wzmacniacza, oprócz funkcji sterowania parametrami toru audio, ma do wykonania jeszcze jedną funkcję. Wbudowany w obudowę komputera układ z mikrokontrolerem może mierzyć temperaturę we wnętrzu obudowy lub temperaturę procesora. Do tego pomiaru wykorzystany został układ TCN75 firmy Microchip. Jest to scalony czujnik temperatury z magistralą PC [slave). Płytka z tym układem jest podłączana do sterownika przez złącze magistrali PC. Z TCN75 można odczytywać temperaturę z rozdzielczością 0,5C z zakresu -55...+125C. Oprócz tego układ można zaprogramować do pracy w dwu trybach: komparatora temperatury i zgłaszania przerwania.
Jeżeli TCN75 jest zaprogramowany do pracy w trybie komparatora temperatury, to na wyprowadzeniu INT/CMPTR występuje stan aktywny po osiągnięciu temperatury Tset i pozostaje taki, aż
temperatura spadnie poniżej temperatury Thyst.
W trybie zgłaszania przerwania na wyprowadzeniu INT/CMPTR wystąpi stan aktywny po przekroczeniu temperatury Tset i pozostaje na nim, nawet jeżeli temperatura spadnie poniżej Thyst. Wyjście INT/CMPTR staje się nieaktywne po odczytaniu dowolnego rejestru układu TCN75 przez magistralę PC. Stan aktywny (poziom wysoki lub niski) jest programowany w rejestrze konfiguracji CONFIG.
Układ termometru TCN75 może zostać wykorzystany jeszcze w jednym równie pożytecznym celu, ale o tym w kolejnej części artykułu.
Tomasz Jabłoński, AVT tomasz.jablonski@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lipiecO3.htm oraz na płycie CD-EP7/2003B w katalogu PCB.
Elektronika Praktyczna 7/2003
19
PROJEKTY
Tester samochodowych sond lambda
Elektroniczny analizator składu mieszanki AVT-520
Przyrząd opisany
w artykule służy do oceny
sprawności sondy lambda
oraz analizy składu mieszanki
pa Ii wo wo-p o wi etrzn ej
zasilającej silnik
samochodowy. Dzięki
zastosowaniu mikrokontrolera
można było w prostym
układzie zaimplementować
oprócz miernika aktualnej
wartości napięcia sondy,
także uśrednianie tej wartości
w czasie, w celu bardziej
wiarygodnej oceny składu
mieszanki.
Rekomendacje: projekt
polecamy wszystkim
użytkownikom samochodów,
którzy lubią samodzielnie
wykonywać prace serwisowe,
oraz tym pośród Czytelników,
których interesują nowinki
z zakresu techniki
sam och o do wej.
Na początek o sondach lambda
Czytelnikom, którzy nie znają zasady działania sondy, pokrótce ją przedstawię. Sonda lambda (nazywana także czujnikiem tlenu) jest ogniwem galwanoelekt-rycznym z elektrolitem w stanie stałym - tzw. ogniwem Nernsta. Służy ona w samochodzie do pomiaru stężenia tlenu w spalinach. Parametr ten używany jest przez jednostkę sterującą pracą silnika do ustalenia właściwego składu mieszanki paliw owo-po-wietiznej. Budowę sondy pokazano na rys. 1.
Jeżeli stężenie tlenu po obu stronach sondy jest jednakowe, wytwarza ona napięcie z przedziału 0... 1 V. Na rys. 2 pokazano charakterystykę roboczą czujnika. Aby działał prawidłowo, jego temperatura musi przekraczać 300C. Niektóre sondy posiadają grzałki w celu szybszego osiągnięcia założonej temperatury pracy. Istnieje kilka typów sond lambda - od jednoprzewodowych
do czteroprzewodowych. We wszystkich rodzajach występuje jeden przewód sygnałowy. Pozostałe służą do podłączenia masy oraz grzałki. Mieszanka ma skład prawidłowy, jeżeli współczynnik lambda wynosi 1, co odpowiada napięciu mierzonemu na sondzie o wartości 0,46 V. W praktyce sterownik silnika tak ustala skład mieszanki, aby wartość współczynnika lambda oscylowała wokół 1. Objawia się to cyklicznymi zmianami napięcia na sondzie. Za prawidłowo wyregulowaną mieszankę przyjmuje się stan, w którym wartość napięcia na sondzie zmienia się w przedziale od 0,1...0,2 V (mieszanka uboga) do 0,8...0,9 V (mieszanka bogata) z częstotliwością ok. 0,5...1 Hz (rys. 3).
Elektronika Praktyczna 7/2003
21
Tester samochodowych sond lambda
połączenie z masą
sygnał pomiarowy
elektrolit stały (tlenek cyrkonu)'
platynowe elektrody
spaliny
Rys. 1. Budowa sondy lambda
Współczynnik lambda mierzony jedną sondą dla silnika wie-locylindrowego ma wartość średnią dla wszystkich cylindrów. Ponieważ mierzone stężenie tlenu odnosi się do ładunku spalonego wcześniej, wynik pomiaru w stosunku do spalonej mieszanki jest opóźniony. Opóźnienie to jest zależne od prędkości obrotowej i wynosi ok. 20 ms + 4 jc/co.
Tyle informacji tytułem wstępu na temat budowy i zasady działania samej sondy lambda.
Zasada działania testera
Teraz zajmijmy się testerem i analizatorem - dwa w jednym. Możliwości przyrządu są następujące:
- monitorowanie napięcia na sondzie w czasie rzeczywistym,
- badanie odpowiedzi jednostki sterującej na symulację mieszanki bogatej lub ubogiej,
- uśrednianie napięcia sondy w czasie, w celu łatwiejszej i precyzyjniejszej oceny aktualnych ustawień składu mieszanki.
Istnieją dwie możliwości włączenie testera w układ pomiarowy sondy: pierwsza polega na podłączeniu się równolegle do sondy przewodem "sonda", bez przerywania jej połączenia ze sterownikiem silnika (rys. 4a), druga - na przerwaniu tego obwodu i "wpięciu się" szeregowo pomiędzy sondę a komputer (rys. 4b). W tym przypadku wykorzystujemy oprócz przewodu "sonda" także przewód "komputer". Po włączeniu zasilania aktywuje się pomiar napięcia w czasie rzeczywistym. Wyświetlacz diodowy jest odświeżany w tym trybie 200 razy na sekundę, co umożliwia wizualizację wszystkich zmian napięcia wytwarzanego przez sondę. W trybie tym dostępna jest także opcja symulacji składu mieszanki. Do jej przeprowadzenia wymagane jest odłączenie sondy od komputera i wpięcie się testerem szeregowo w ten obwód tak, jak pokazano na rys. 4b. Wymuszenia dokonujemy za pomocą przycisków S2 - "BOGATA" i S3 - "UBOGA". Sterownik silnika (oczywiście sprawny) będzie starał się przeciwdziałać tym stanom. Jeśli wymuszeniem było napięcie symulujące mieszankę bogatą, powinien ją zubożyć, jeśli zaś ubogą - wzbogacić. Widoczne będzie to na wyświetlaczu. Przyciskiem Sl - "Aver-age" - włączamy funkcję uśredniania, co sygnalizowane jest za-
paleniem się diody "Average". W tym trybie wyświetlacz uaktualniany jest co 4 s średnią z 800 pomiarów wykonywanych w tym czasie. Taki czas akwizycji i wyświetlania danych został przyjęty z uwagi na małą częstotliwość zmian napięcia na sondzie. Uśrednianie pozwala na dokładniejsze oszacowanie stanu wyregulowania składu mieszanki. W trybie tym nie jest dostępna opcja symulacji składu mieszanki. Tester posiada także sygnalizację dźwiękową stanów wskazujących na uszkodzenie sondy, takich jak przekroczenie wartości 1,1 V oraz zbyt długie (powyżej 4 sekund) pozostawanie napięcia sondy w przedziale 0,4...0,6 V. Ponieważ czujnik poprawnie pracuje w temperaturze powyżej 300C, aby wykonać wiarygodne pomiary, należy po uruchomieniu zimnego silnika odczekać od kilku do kilkunastu minut, w zależności od zastosowanej w samochodzie sondy.
Budowa testera
Schemat elektryczny układu pomiarowego przedstawiono na rys. 5, zaś układu wyświetlania na rys. 6. "Sercem" testera jest procesor ATtiny26. Jest to jeden z nowszych "małych" procesorów firmy Atmel. Na swoim wyposażeniu posiada dwa ośmiobitowe timery/liczniki (z tego jeden ma możliwość pracy w trybie PWM), interfejs transmisji szeregowej USI, komparator analogowy, programowany watchdog oraz najbardziej dla nas istotny 10-bitowy przetwornik A/C. Wykorzystany on
mV
1000 800 600 400 200
0
0,8 0,9 1 1,1 1,2
Lambda
Rys. 2. Obszar "a" - mieszanka bogata, obszar "b" - mieszanka uboga
4 a to 4 b to

i
Sonda lambda
Sonda lambda
Rys. 4. Sposób włączenia testera w obwód pomiarowy: równolegle (a), szeregowo (b)
Elektronika Praktyczna 7/2003
Tester samochodowych sond lambda
został do pomiaru napięcia sondy. Sondę lambda podłącza się do styku 6 gniazda J2. Stąd napięcie podawane jest poprzez rezystor RIO na wejście 3 układu U4A oraz przez styki przekaźnika Kl na styk 4 gniazda J2. Wyprowadzenie to służy do podłączenia sterownika silnika w wersji z rys. 4b. Przekaźnik służy do przerwania obwodu sonda-komputer oraz podania na złącze podłączone do komputera napięcia symulującego wystąpienie mieszanki ubogiej lub bogatej. Następuje to po przyciśnięciu przycisku S2 (bogata) lub S3 (uboga). Układ U4A pracuje w konfiguracji wzmacniacza nie-odwracającego. O wzmocnieniu tego układu decydują rezystory R18, R19. Ze względu na brak możliwości płynnej regulacji wzmocnienia tego stopnia, w celu zapewnienia dostatecznej dokładności rezystory te powinny być co najmniej 1%. Dioda D7 zabezpiecza układ przed nadmiernie dużym napięciem wejściowym. Wzmocnione napięcie sondy jest, poprzez rezystor Rll, doprowadzone do wzmacniacza U4B pracującego, w połączeniu z diodą
Napięcie [V]
0,8...0,9 (bogata)
0,1. ..0,2 (uboga)
Czas [s]
Okres (1 ...2)
Rys. 3. Charakterystyczny cykl pracy sondy dla prawidłowej mieszanki
D4, jako ogranicznik aktywny. Zabezpiecza on procesor Ul przed przekroczeniem na jego wejściu dopuszczalnego napięcia (w tym przypadku napięcia zasilania Ul). Wartością zadaną w ograniczniku jest napięcie podłączone do wejścia 5 układu U4B. Podawane jest ono z wyjścia stabilizatora U2 zasilającego mikrokontroler, co gwarantuje ograniczenie napięcia wejściowego Ul na odpowiednim poziomie. Obwód R14, C5 chroni układ Ul przed nagłymi zmianami wartości napięcia wejściowego wywołanymi przypadkowymi sygnałami zakłócającymi. Dioda D5 stanowi dodatkowe zabezpiecze-
nie wejścia układu Ul w przypadku uszkodzenia U4. Układ Ul steruje także przekaźnikiem Kl oraz kluczami analogowymi U3A, U3B zawartymi w układzie 4066. Służą one do podawania poprzez przekaźnik napięcia symulującego mieszankę bogatą lub ubogą. Wartość tego napięcia dla mieszanki bogatej wynosi ok. 0,8 V i jest wyznaczana poprzez dzielnik Rl, R6, a dla mieszanki ubogiej ok. 0,2 V ustalana dzielnikiem R2, R9. Rezystory R7, R8 wraz z diodą Zenera D2 mają na celu zabezpieczenie testera w przypadku niespodziewanego pojawienia się nadmiernie dużego napięcia
VDD
-w
D1 Q1Q
VCC
ui
ADC6/AIN11PA7 QND ADC5WIN0PA6 VCC ADC4)PA5 ADC3)PA4 AREF]PA3
ADC21PA2 AGND ADC1JPA1 AVCC
ADCSOJPAO
PB7(ADC1OEESET)
PB6(ADCe/IMT0m) PB6(ADC8/XTAL2) PB4PB1(MTSO/DO/OC1A PBO{MOSI/DI/SDA/OCA1)
DB 1N4148
Rys. 5. Schemat elektryczny sterownika
Elektronika Praktyczna 7/2003
23
Tester samochodowych sond lambda
UG 74HC595
Płytka sterująca
SER 00
01
SRCLK os
8RCLR 03
04
RCLK 05
E OB
07
UB 74HC5B5
Ó|S2 O|S3
SRCLK SRCLR
RCLK
E
Average Bogata Uboga
R21 1k
C=3-to.2V
0.2V
D10/* R22 W------cb-'0,3V
0,3V
D11/* R23
0,45V
R25 1k
0,5V
LI
O,BV
D15.*, R27
0,7V
D16,, R28
O,SV
D17,*. H29
o,ev
D18/* R30
IV
D1B/* R31
R32
Awrage
0,45V
0,6V
O,BV
Averags
Rys. 6. Schemat elektryczny wyświetlacza
na złączu podłączonym do sterownika silnika (np. uszkodzenie sterownika lub zwarcie w instalacji) oraz sterownika, w przypadku uszkodzenia testera. Do wyprowadzenia 4 (PB3) układu Ul - poprzez elementy R16 i Q2 - podłączony jest przetwornik piezoce-ramiczny służący do sygnalizacji akustycznej stanów mogących wskazywać na uszkodzenie sondy. Elementy D6, R15 i C9 wymuszają sygnał zerowania procesora po włączeniu zasilania. Sygnał zegarowy kontrolera stabilizowany jest za pomocą zewnętrznego kwarcu Yl. Kondensatory C6 i C7 umożliwiają pewny start wewnętrznego generatora układu. Procesor steruje także (w sposób szeregowy) modułem wyświetlania zbudowanym na układach U5, U6 typu 74HC595, które sterują trzynastoma diodami świecącymi. Dwanaście z nich ustawionych jest w postaci linijki i służy do wizualizacji wartości napięcia sondy
lambda, natomiast dioda D20 sygnalizuje włączenie funkcji uśredniania.
Tester zasilany jest bezpośrednio z instalacji elektrycznej samochodu. Dioda Dl zabezpiecza układ przed odwrotnym podłączeniem napięcia. Część analogowa (układ U4) zasilana jest napięciem nie stabilizowanym pobieranym z miejsca oznaczonego na schemacie "+12V". Napięcie w tym miejscu może wahać się w granicach od 12 do 15 V. Napięcie dla części cyfrowej układu stabilizowane jest przez 5-woltowy stabilizator U2.
Program dla procesora został napisany w języku C i skompilowany za pomocą kompilatora Co-deVisionAVR v 1.23.7. Wersję ewaluacyjną tego programu (ograniczenie do 2 kB kodu) można ściągnąć ze strony www.hpinfo-tech.ro/cvavre.zip.
Tester może być używany do aut napędzanych benzyną oraz
WYKAZ ELEMENTÓW
Płytka sterownika Rezystory
Rl: 15kQ
R2: 15,4kQ/l%
R3: 4,7Q
R4, R5: 10Q
R6: 2,7kQ
R7, R8: 200O
R9: 680O
RIO: 2kQ
Rl 1: 10kO
R12: 4,7kn
R13: 42kQ
R14: lkn
R15: 6,8kn
R16: 47kQ
R17: lMii
R18: 2,2kn/l%
R19: 6,8kn/l%
Kondensatory
Cl: 100^F/25V
C2: 10^F/25V
C3...C5: lOOnF
C6, C7: 20pF
C8: 10^F/16V
C9: 47n.F/16V
Półprzewodniki
Dl: GIG
D2: C2V7
D3, D4, D6: 1N4148
D5: BAS32
D7: C5V1
Ql: BC337-16
Q2: BC337-16
Ul: ATINY26L zaprogramowany
U2: 78L05
U3: 40Ó6BF
U4: LM358
Różne
BUZZER1: BUZZER
Jl: Złączka
J2: Złączka
J3: Złączka
Kl: 12V
Yl: 8,0MHZ
Płytka wyświetlacza Rezystory
R20...R32: lkn Półprzewodniki
Dli, D13, D20: dioda LED 3mm
żółta
D12, D16...D19: dioda LED 3mm
zielona
D8...D10, D14, D15: dioda LED
3mm czerwona
U5, Uó: 74HC595
Różne
JP1: złączka "Płytka sterująca"
Sl: przycisk "Average"
S2: przycisk "Bogata"
S3: przycisk "Uboga"
Elektronika Praktyczna 7/2003
Tester samochodowych sond lambda
R15
Rys. 7. Schemat montażowy płytki sterownika
Rys. 8. Schemat montażowy płytki wyświetlacza
przy zamontowanej instalacji gazowej. Jak wiadomo, przy zasilaniu silnika benzyną kontrolę nad składem mieszanki sprawuje komputer. Z tego powodu jakiekolwiek wykryte nieprawidłowości zakończyć się muszą wizytą w serwisie bądź w zakładzie specjalistycznym dysponującym odpowiednią aparaturą do odczytu ustawień jednostki centralnej. Tak samo jest z instalacjami gazowymi wyposażonymi w sterownik mikroprocesorowy. Przy prostszych instalacjach gazowych (bez sterownika) jest możliwa, na podstawie wskazań testera oraz przy podstawowej znajomości budowy instalacji gazowej, samodzielna korekcja składu mieszanki gazu i powietrza. Rafał Szulc
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lipiecO3.htm oraz na płycie CD-EP7/2003B w katalogu PCB.
Elektronika Praktyczna 7/2003
25
PROJEKTY
Pr89AT - programator mikrokontrolerów '51
z pamięcią Flash
AVT-518
Opisany w artykule
programator charakteryzuje się
prostotą wykonania, niskim
kosztem, łatwym w obsłudze
programem sterującym dla
Windows, dużymi
możliwościami (programuje
większość mikrokontrolerów
'51 firmy Atmel
w obudowach DIP20/40), jest
sterowany przez interfejs
szeregowy oraz przystosowany
do zasilania z portów
komputera.
Rekomendacje: idealne
narzędzie dla projektantów
systemów mikroprocesorowych
stosujących w swoich
projektach głównie
flashowe '51.
PiS9AT w wersji 2.2 umożliwia programowanie następujących mikrokontrolerów:
/wnobudowachDIP40:89C51,C52,C55(bez
WD), /wnobudowachDIP20:89C1051,C2051
iDC4051.
OO0OO0OOOOOO
oooooooooo
0090000000
ooooooooooooooooooao
Prezentowany programator jest przeznaczony do programowania układów w obudowach DIP40 (jak np.: 89C51, 89C52, 89C55 w wersjach 5 V lub 12 V) i innych, zgodnych z tym standardem programowania, oraz w obudowach DIP20 (jak np.: 89CxO51).
"Sercem" programatora jestmik-rokontioler Ul AT89C51 (schemat elektryczny pokazano na rys. 1). Ustawia on, po odczytaniu rozkazu z portu szeregowego wysłanego przez komputer, odpowiednie adresy, dane i poziomy napięć programujących oraz sygnałów sterujących. Komunikacja z komputerem odbywa się z maksymalną prędkością, jaką pozwala uzyskać UART, czyli 115200 b/s. Układ U2 dopasowuje poziomy TTL interfejsu szeregowego do poziomów zgodnych ze standardem RS232. Dobrze jest zastosować układ MAX232A w szybszej wersji, ale przy krótkich przewodach nie ma to większego znaczenia. Na dwóch bramkach NAND U 3 wykonano prosty generator przebiegu prostokątnego o częstotliwości ok. 20 kHz, który wraz z tranzystorem przełączającym Tl (2N2369), dławikiem Li, diodą Dl i kondensatorem C2 spełnia rolę przetwornicy napięcia z 5 na 16 V. Napięcie z przetwornicy jest stabilizowane
za pomocą diody Zenera D2. Tranzystory T2 i T3 służą do przełączania napięcia programującego podawanego na wejścia Vpp, które może przyjmować jedną z wartości:
- 0,2 V - tranzystor T3 nasycony, co odpowiada zeru logicznemu,
- 4 V - tranzystor T2 nasycony, a T3 zablokowany, co odpowiada stanowi logicznemu "1",
- 12 V- T2 iT3 zablokowane, co umożliwia uzyskanie napięcia pr o gram o w ania Vpp.
Uwaga! Tranzystory T2 i T3 powinny mieć możliwie duży współczynnik wzmocnienia (przynajmniej 250). W innym przypadku tranzystory mogą się nie nasycić i programator nie będzie działać poprawnie!
Napięcie zasilania programatora powinno mieć wartość 5 V. Można je pobierać bezpośrednio z jednego z portów komputera (rys. 2): portu klawiatury PS/2, USB lub GamePortu. Najprościej jest podłączyć się do portu USB, ale w starszych komputerach tego portu nie było, więc w takich przypadkach proponuję wykorzystać port joysticka. W ostateczności, gdy nie mamy do dyspozycji portu USB ani portu joysticka, można pobrać zasilanie z portu klawiatury wykonując prostą przejściówkę.
26
Elektronika Praktyczna 7/2003
Pr89AT - programator mikrokontrolerow '51 z pamięciq Flash
Rys. 1. Schemat elektryczny programatora
Montaż i uruchomienie
Na rys. 3 przedstawiono schemat montażowy płytki programatora. Rezystory podciągające R7...R14 znajdują się pod podstawką mikrokontrolera, podobnie jak kondensator C3. Rezysto-
rów tych można nie wlutowywać, bez nich również programator działa poprawnie, ale dla pewności lepiej je tam umieścić. Dla programowanych układów proponuję zastosować podstawki precyzyjne lub ZIF. Styki zwykłych
podstawek dość szybko zużywają się i nie zapewniają styku o odpowiedniej jakości.
Uruchomienie należy rozpocząć od przetwornicy. Przetwornica nieobciążona (bez diody stabilizacyjnej D2 12V) powinna na wyjściu dawać około 16 V lub więcej. Jeżeli napięcie jest niższe, należy zmienić częstotliwość generatora poprzez zmianę pojemności kondensatora Cl do uzyskania odpowiedniego napięcia. Jeżeli to nie pomoże, należy zmienić dławik Li.
Następnie należy wlutować pozostałe elementy i sprawdzić czy sterując tranzystorami T2, T3 otrzymujemy odpowiednie napięcia odpowiadające zeru logicznemu, jedynce i napięciu programo-
wania.
Oprogramowanie
Na potrzeby programatora opracowałem program sterujący dla Windows. Program korzysta ze standardowej biblioteki API i współpracuje z przejściówkami USB->RS232.
Instalacja programu odbywa się automatycznie za pomocą programu InstallSchield Express, który łatwo przeprowadzi nas przez instalację. Po zainstalowaniu kli-kamy na ikonkę Pr89AT i uruchamiamy program. Po uruchomieniu pokaże się okno, jak na rys. 4a.
Aby otworzyć plik HEX, klika-my na ikonkę odczyt i wybieramy plik. Gdy wybierzemy plik w dolnym oknie, to pojawi się zawartość pliku w kodzie szesnastko-
Rys. 2. Schemat podłączenia programatora do gniazd PC, z których można pobierać napięcie zasilające
Elektronika Praktyczna 7/2003
27
Pr89AT - programator mikrokontrolerow '51 z pamięcig Flash
ci 2 Gi~ro O-rUT-o enO
Rys. 3. Schemat monażowy płytki programatora
wym oraz w kodzie ASCII (rys. 4b). Aby zapisać na dysku zawartość bufora (np. z zawartością pamięci odczytaną z mikiokontro-lera), klikamy na ikonkę zapisz i zapisujemy dane w pliku o podanej nazwie i lokalizacji. Żeby przyspieszyć odczyt, wystarczy kliknąć na plik HEX w dowolnym menedżerze plików, a program uruchomi się automatycznie i załaduje dane. Wymaga to jednak wcześniejszego ustawienia w Windows domyślnego programu dla plików HEX. Program sterujący pracą programatora nie odczytuje plików BIN, ale łatwo je można konwertować na postać HEX za pomocą ogólnie dostępnych programów (np. ii ttp:/fwww.ep.com .plfftpf bin2hex.exe, http://www.ep.com.pl/ ftp fh ex2bin. exe).
Kolejne ikonki znajdujące się w menu umożliawiają szybkie programowanie, odczytywanie i peł-
a)

W \ \- \" ajw myjK3nle ComZ

htm
ną blokadę programowanego układu. W pasku Main znajduje się wywołanie dodatkowych funkcji: kasowanie pamięci, weryfikacja jej zawartości, odczyt sygnatur, blokady, wybór układu czy wybór numeru portu COM. Jeżeli w oknie wyboru układu ustawimy Automatycznie, to programator pobierze informacje o programowanym mikiokontiolerze z jego sygnatury. W razie uszkodzenia sygnatury, co ma często miejsce przy pracy z "małymi" '51, należy ręcznie podać typ układu.
Pr o gram ator opr ócz ukł a do w, które wymieniono na liście programu, może programować także mikrokontiolery innych producentów (Philipsa, Winbonda). W takim przypadku należy wybrać ręcznie Inny układ. Maksymalny obszar pamięci, jaki może zaprogramować Pr89AT, wynosi 32 kB. Ograniczenie wynika z potrzeby
b)


V A

Oi4O CidlClłTOlKiMti: IDB4 DDJ-IM.BOJtJD.D: _^_
Rys. 4. Okno programu PrS9AT po uruchomieniu (a), po wczytaniu pliku HEX (b)
WYKAZ ELEMENTÓW
Rezystory
Rl: 220^
R2, R4...RÓ: lkn
R3: l,5kn
R7...R14: 10kn
Kondensatory
Cl, C3: 220nF
C2: 100^F/25V
C4...C7: 22^F/1ÓV
CS: 22O^F/1ÓV
C9: lOOnF
C10...C13: 30pF
Półprzewodniki
Dl: MBR10Ó0, 1N5S19 lub inna
dioda Schottky'ego min. 40V/
lOOmA
D2: 12V
D3: 3,ÓV
Tl: 2N23Ó9
T2, T3: BC527-III
Ul: ATS9C51 zaprogramowany
U2: MAX232
U3: 7400
Różne
LI: 4,7mF
Zl: DB9-F
Xl: 3,ÓSÓ4MHz
X2: 12MHz
P2: podstawka precyzyjna DIP20
Pl: podstawka precyzyjna DIP40
maksymalnego uproszczenia budowy programatora, a liczba portów I/O zastosowanego mikiokon-tiolera jest o jeden za mała. Szkoda, bo mógłby zostać pokryty cały standardowy dla '51 obszar pamięci programu do 64 kB i byłoby wówczas możliwe programowanie min. '51 w wersjach RD2.
Podczas zapisu do pamięci Flash programator od razu weryfikuje, czy nastąpiło poprawne zapisanie. Daje nam to gwarancję, źe programowanie przebiega poprawnie. Marek Kopeć
Wzory płytek drukowanych w formacie PDF są dostępne w Jnternecie pod adresem: http://www.ep.cont.pl/ ?pdf/lipiecO3 Jttm oraz na płycie CD-EP7/2003B w katalogu PCB.
28
Elektronika Praktyczna 7/2003
PROJEKTY
Radiowy system zdalnego sterowania z kanałem zwrotnym, część 1
AVT-517
W skład prezentowanego
systemu wchodzi nadajnik
i odbiornik, które pozwalają
sterować dwoma
serwomechanizmami i dwoma
wyjściami typu włącz/wyłącz.
Możliwa jest praca z kanałem
zwrotnym, którym przesyłane
są dane z odbiornika do
nadajnika.
Rekomendacje: zestaw
przydatny do dwukierunkowej
tran smisji danych n a
relatywnie duże odległości
w nie licencjonowanym paśmie
433 MHz. Może spełniać rolę
systemu zdalnego sterowania
modeli lub medium
transmisyjnego w lokalnych
systemach telemetrycznych.
Najprostszy sposób sterowania na odległość pracą jakiegoś urządzenia polega na połączeniu go ze stanowiskiem operatora za pomocą kabla. Gdy nie jest to możliwe, najwygodniej jest użyć łączy bezprzewodowych, z których największą popularnością cieszą się łącza radiowe. Radiową transmisję danych można wykorzystać także do zdalnego sterowania modeli samolotów, łodzi lub innych pojazdów. Oprócz wymaganej niezawodności i możliwie dużego zasięgu, istnieje jeszcze jedno ograniczenie związane z wykonaniem radiowej aparatury do zdalnego sterowania /transmisji danych - jej koszt. Prezentowany w artykule zestaw można zbudować stosunkowo tanio, a jego najważniejsze parametry są następujące: - obsługuje 2 niezależne kanały do sterowania serwomechanizmami,
- obsługuje 2 niezależnie przełączane wyjścia typu włącz/wyłącz,
- praca z kanałem zwrotnym z możliwością przekazywania do nadajnika m.in. informacji o stanie jednego wejścia typu włącz/ wyłącz odbiornika,
- kontrola i sygnalizacja poziomu napięcia zasilania zarówno nadajnika, jak i odbiornika,
- zasilanie nadajnika 4,5...9 V/33 mA,
- zasilanie odbiornika 4,5...9 V/15 mA (ze względu na zasilanie serwomechanizmów zalecane 4,8...6 V),
- transmisja radiowa w paśmie 433 MHz z mocą nadajników 10 mW,
- cyfrowo kodowana transmisja danych sterujących.
Najważniejszym elementem prezentowanego systemu jest pół-dupleksowy radiomodem, który wykonano na układzie CC 1000 firmy Chipcon. Ze względu na łatwość zastosowania i stosunko-
Elektronika Praktyczna 7/2003
Radiowy system zdalnego sterowania z kanałem zwrotnym
PCLK
PDATA
PALE
Rys. 1. Przebiegi czasowe sygnałów przy zapisie danych do rejestru wewnętrznego
wo niską cenę użyto gotowego modułu z tym układem CC1000PP - produkowanego przez firmę Soyter.
Zintegrowany transceiver CC1OOOPP
Zastosowanie jako kompletnego toru radiowego gotowego modułu wynika z chęci uproszczenia pracy konstruktorów. Dzięki temu, mamy "z głowy" konieczność optymalizowania i wykonywania płytki drukowanej pod kątem wymogów stawianych urządzeniom pracującym w paśmie 433 MHz. Niewłaściwe poprowadzenie ścieżek czy powierzchni masy powoduje katastrofalne pogorszenie czułości i efektywnej mocy nadajnika, co oznacza zmniejszenie zasięgu. Kłopotliwe jest także zdobycie w ilościach detalicznych i montaż miniaturowych elementów SMD. Moduł CC1000PP ma niewielkie wymiary (28 x 21 mm) i byłoby niezwykle trudno w warunkach amatorskich samodzielnie wlutować użyte do jego budowy miniaturowe elementy.
Moduł umożliwia dwukierunkową transmisję danych. Przełączanie pomiędzy nadawaniem i odbiorem odbywa się programowo. Dzięki temu można było w łatwy sposób stworzyć kanał zwrotny, którym przesyłane są dodatkowe informacje do operatora.
Do komunikacji z modułem używanych jest 5 linii pogrupowanych w dwa interfejsy różniące się funkcjami. Wyprowadzenia PALE, PDATA i PCLK służą do programowania trybu pracy, co wiąże się z zapisem lub odczytem zawartości wewnętrznych rejestrów układu CCI000. Za pomocą tych linii można np. zaprogramować częstotliwość pracy, zmienić tryb pracy (nadawanie - odbiór), ustawić moc wyjściową w trybie nadawania, przeprowadzić kalibrację itd.
Na rys. 1 pokazano przebiegi czasowe sygnałów na wymienionych wyprowadzeniach podczas zapisu danych do jednego z rejestrów wewnętrznych układu. Dane przesyłane są linią PDATA i taktowane opadającym zboczem impulsu zegarowego linii PCLK. Najpierw, przy niskim poziomie linii PALE, transmitowany jest 7-bito-wy adres wewnętrznego rejestru układu CCI000. Poziom wysoki ostatniego, ósmego bitu oznacza, że chodzi o operację zapisu. Następnie poziom na linii PALE zmienia się na wysoki i transmitowanych jest 8 bitów danych wpisywanych do wybranego wcześniej rejestru.
Linie DCLK i DIO tworzą drugi interfejs używany do wysyłania i odbioru danych przesyłanych drogą radiową. Do przesyłania bitów danych wykorzystywana jest linia DIO, natomiast na DCLK pojawiają się generowane przez CCI000 impulsy zegara synchro-nizujące transfer każdego bitu. W przypadku gdy moduł pracuje jako nadajnik, kolejny bit danych podawanych szeregowo na linię DIO powinien pojawić się przed narastającym zboczem impulsu zegarowego. Gdy moduł pracuje jako odbiornik, dane na linii DIO zmieniają kierunek. Wtedy zbocze narastające impulsu zegarowego określa moment, gdy z linii danych można odczytać kolejny bit odbieranych danych.
Część operatorska -nadajnik
Ta część zestawu służy operatorowi m.in. do sterowania serwomechanizmami po stronie odbiorczej. Schemat elektryczny układu przedstawiono na rys. 2. Ze względu na przeznaczenie, schemat można podzielić na trzy funkcjonalne części: przetworniki położenia, elementy sterujące i sygnalizacyjne oraz układy dopasowujące.
Przetworniki położenia
Do sterowania położeniem serwomechanizmów służą operatorowi dwa potencjometry dołączane do gniazd JP5 i JP6. Zmianie położenia pokręteł potencjometrów powinien odpowiadać analogiczny ruch serwomechanizmów. Ponieważ transmisja danych odbywa się w sposób cyfrowy, położenie suwaków potencjometrów powinno być zakodowane w ten właśnie sposób. Służą do tego celu układy U2 i U3 (popularne układy czasowe typu 555). Pracują one jako generatory pojedynczego impulsu o regulowanym czasie trwania zależnym od oporności potencjometrów dołączonych do gniazd JP5 i JP6. Proces zamiany informacji o pozycji potencjometrów na postać cyfrową przebiega następująco. Najpierw procesor wytwarza na wyjściu 14 impuls wyzwalający dla obu generatorów. Impuls ten podawany jest na wejścia TRIG U2 i U3. Powoduje to pojawienie się na ich wyjściach Q impulsu
0 czasie trwania zależnym od pojemności stałego kondensatora (C10 dla U3 i C8 dla U2) i oporności potencjometru sterującego. Impulsy podawane są na wyprowadzenia 7 i 11 procesora. Narastające zbocza impulsów z wyjść Q układów czasowych uruchamiają wewnętrzne programowe liczniki procesora, natomiast zbocza opadające tych impulsów zatrzymują pracę liczników. W ten sposób czas trwania impulsu może być zliczony przez licznik i zamieniony na liczbę z przedziału 0...255, proporcjonalną do położenia suwaka potencjometru sterującego.
Zastosowane w prototypie potencjometry sterujące mają oporność 2,2 kQ i w połączeniu z kondensatorami C8 dla kanału pierwszego i C10 dla kanału 2 pozwalają wytwarzać impulsy na wyjściach Q o czasie trwania od
1 ms do 2,2 ms. Można zastosować potencjometry o innej oporności, co wiąże się z dobraniem wartości kondensatorów C8, C10 oraz oporników korekcyjnych PR2 i PR3 tak, aby przy ustalonych skrajnych położeniach potencjometrów generowane były impulsy o czasach trwania 1 ms i 2,2 ms. Należy sko-
30
Elektronika Praktyczna 7/2003
Radiowy system zdalnego sterowania z kanałem zwrotnym
iii ż iife
mm
O. a_
Rys. 2. Schemat elektryczny nadajnika
Elektronika Praktyczna 7/2003
31
Radiowy system zdalnego sterowania z kanałem zwrotnym
Uz
IP3

J4k7 i 2 3



T1 BC848
JP4

J4k7
2 3


BCB48
T3 BC848
JP5
T4 BC848
UZ
Rys. 3. Schemat elektryczny odbiornika
rzystać ze wzoru na obliczenie
czasu trwania impulsu:
TQ =l,l(Rx * Cx), gdzie:
TQ - czas trwania impulsu na wyjściach Q układów U2 i U3 w sekundach
Rx - sumaryczna oporność potencjometrów i oporników korekcyjnych w [Q]
Cx - pojemność kondensatorów C8 i CIO w [F]
Elementy sterujące i sygnalizacyjne
Oprócz przetworników położenia, układ wyposażono w gniazda dla przełączników sterujących dwoma wyjściami włącz/wyłącz oraz przełącznikiem włączającym kanał zwrotny. Znajdują się one na złączu JP4. Wyjścia włącz/wyłącz przyjmują po stronie odbiorczej poziom odpowiadający stanowi logicznemu, jaki wymuszą przełączniki dołączone do JP4-3 i 5. Z kolei przełącznik dołączony do JP4-7 włącza lub wyłącza kanał zwrotny. Jeżeli zewrze on to wyprowadzenie do masy, nadajnik sterujący, każdorazowo po wysłaniu dro-
gą radiową danych do części odbiorczej, będzie przełączał się na odbiór i oczekiwał transmisji zwrotnej z odbiornika. Wyłącznik dołączony pomiędzy JP4-1 i 2 będzie uaktywniał buczek sygnalizujący stany awaryjne.
Do gniazda JP3 dołączane są diody sygnalizacyjne. Dioda LED dołączona do JP3-1 i 2 informuje
0 stanie wejścia włącz/wyłącz odbiornika (jeżeli kanał zwrotny jest włączony), natomiast LED JP3-3
1 4 sygnalizuje niski poziom napięcia zasilania.
Do grupy elementów sygnalizacyjnych można zaliczyć także układ detekcji poziomu napięcia zasilającego. Opornik R2 i źródło napięcia odniesienia Dl wytwarzają stabilne napięcie o wartości 1,2V podawane na wejście 13 mikrokontrolera. W mikrokontrole-rach AT90S2313 jest to wejście odwracające wewnętrznego komparatora. Do wejścia nieodwraca-jącego podawane jest napięcie z suwaka potencjometru PRl i jego wielkość jest proporcjonalna do wartości napięcia zasilania Uz.
Jeżeli napięcie zasilania spadnie poniżej ustalonego potencjometrem progu, wewnętrzny komparator umożliwi procesorowi wykrycie tego faktu i poinformowanie operatora poprzez zaświecenie diody LED.
Układy dopasowujące
Zarówno moduł transceivera, jak i procesor są zasilane stabilizowanym napięciem +3V wytwarzanym przez układ U4. Dla umożliwienia procesorowi współpracy z innymi układami zasilanymi napięciem Uz potrzebne są stopnie dopasowujące poziomy napięć. Służą do tego tranzystory Tl, T2 i T3.
Część odbiorcza
Na rys. 3 przedstawiono schemat części odbiorczej sterującej dołączonymi serwomechanizmami. Niektóre fragmenty tego układu są identyczne jak w części nadawczej układu. Dotyczy to procesora, połączonego z nim modułu trans-ceivera i układu detekcji niskiego poziomu zasilania. Pozostałe obwody związane z tranzystorami
32
Elektronika Praktyczna 7/2003
Radiowy system zdalnego sterowania z kanałem zwrotnym
Tl-5 pełnią funkcję obwodów wejścia/wyjścia. I tak do złącz JP3 i JP4 dołączane są serwomechanizmy. Do gniazda JP5-1 i 2 doprowadzone zostały wyprowadzenia przełączników włącz/wyłącz. Są one typu otwarty kolektor. Z kolei do JP3-3 dołączone jest wejście włącz/wyłącz odbiornika. Jeżeli zostanie podany na nie poziom wysoki napięcia, odpowiednia dioda sygnalizacyjna nadajnika z o stani e zapal ona.
S terów ani e s er w om e chanizm a-mi odbywa się poprzez wygenerowanie co pewien czas dodatniego impulsu. Serwomechanizm obróci się w lewo, jeśli impuls będzie krótszy, a w przeciwną stronę, jeśli się wydłuży. Kąt obrotu zależy od czasu trwania impulsu, a ten z kolei od zakodowanych cyfrowo i przesłanych drogą radiową danych sterujących. Do prób z prototypem użyte z o stały s erw om e chanizm y firmy HITEC HS300 i HS322. Wymagają one pojawiania się impulsów co 20 ms. Skrajnym położeniom serwomechanizmów odpowiadają czasy 0,9 ms i 2,1 ms. Impulsy o czasach zawartych pomiędzy tymi wartościami ustawiają serwomechanizmy w położeniach pośrednich.
Opis działania zestawu nadajnik-odbiornik
Ponieważ większość spraw związanych z funkcjonowaniem układu została już poruszona podczas omawiania schematów ideowych nadajnika i odbiornika, teraz ograniczę się jedynie do krótkiego opisu współdziałania nadajnika i odbiornika.
Po włączeniu zasilania odbiornik automatycznie ustawia obydwa serwomechanizmy w pozycjach neutralnych, wyjścia włącz/ wyłącz są wyłączone, a moduł
i procesor przechodzą w tryb odbioru danych.
Nadajnik po włączeniu odczytuje położenie potencjometrów sterujących, korzystając z przetworników położenia. Następnie odczytywany jest stan przełączników sterujących wyjściami włącz/ wyłącz odbiornika i stan przełącznika załączającego kanał zwrotny. Formowane są bajty danych i następuje ich wysyłanie do odbiornika. Jeżeli kanał zwrotny nie jest aktywny, nadajnik po zakończeniu transmisji ponownie sprawdza położenie potencjometrów, przełączników i wykonuje kolejną transmisję w nieprzerwanej pętli odczytów i transmisji.
Jeżeli kanał zwrotny jest włączony po zakończeniu transmisji, nadajnik przechodzi na nasłuch i oczekuje odpowiedzi z odbiornika. Jeżeli odpowiedź nie pojawi się przez ok. 100 ms i fakt ten powtórzy się podczas kolejnych trzech transmisji, nadajnik sygnalizuje brak kanału zwrotnego migotaniem diody dołączonej do JP3-3 i 4. Jeżeli odpowiedź pojawi się, jest ona dekodowana. Zależnie od stanu wejścia włącz/wyłącz odbiornika, dioda dołączona do JP3-1 i 2 jest zapalana lub gaszona. Jednocześnie, jeżeli w informacji przesyłanej kanałem zwrotnym ustawiony zostanie bit niskiego napięcia zasilania odbiornika, dioda dołączona do JP3-3 i 4 będzie się świeciła tak długo, jak długo ten bit będzie aktywny.
Odbiornik po odebraniu transmisji dekoduje dane i zmienia parametry impulsów sterujących serwomechanizmami. Wyjścia włącz/wyłącz ustawiane są w stan zgodny z przesłanymi z nadajnika danymi. Jeżeli w transmisji ustawiony jest bit kanału zwrotnego, odbiornik odczytuje poziom wejścia włącz/wyłącz i poziom swojego napięcia zasilania. Następnie formowany jest bajt odpowiedzi i wysyłany, po czym odbiornik wraca do trybu nasłuchu. Ryszard Szymaniak, AVT ryszard.szymaniak@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdj/lipie cO3 Jttm oraz na płycie CD-EP7/2003B w katalogu PCB.
WYKAZ ELEMENTÓW
Nadajnik Rezystory
PR1: potencjometr montażowy
10kn
PR2, PR3: potencjometr
montażowy 2,2kn
Rl: 4,7ft
R2, R3: 22kn
R4...R9, R12...R14: 10kn
RIO, Rl 1: 470ft
Kondensatory
CE1: lCąiF/16V
CE2: 1^F/1ÓV
Cl, C2: 27pF
C3...C10: lOOnF
Półprzewodniki
Ul: zaprogramowany AT90S2313
Dl: źródło napięcia odniesienia
1,2V LM3S5
U2, U3: LMC555
U4: stabilizator 3V (lub dowolny
inny w obudowie TO-92A, np.
LP2950-3)
T1...T3: BC547
Różne
Xl: kwarc 3,53MHz
Bl: sygnalizator akustyczny
MOD1: CC1000PP - moduł
radiowy na pasmo 433MHz
Podstawka DIP20
Listwy złqcza dla modułu
2x ó(gold pin)
Odbiornik Rezystory
PR1: 10kn
Rl: 20kn SMD120Ó
R2: 4,7ft SMD120Ó
R3, R5: 4,7kft SMD120Ó
R4, RÓ...R10: lOkft SMD120Ó
Rl 1: 22kft SMD120Ó
Kondensatory
Cl, C2: 27pF SMD120Ó
C3...CÓ: lOOnF SMD120Ó
CE1: lCąiF/16V
CE2: 1^F/1ÓV
Półprzewodniki
U2: AT90S2313 zaprogramowany
T1...T5: BCS4S SMD
MOD1: CC1000PP - moduł
radiowy na pasmo 433MHz
D1L źródło napięcia odniesienia
1,2V LM3S5
Ul: stabilizator 3V (lub dowolny
inny w obudowie TO-92A, np.
LP2950-3)
Różne
Xl: 3.53MHZ
Podstawka DIP20
Listwy złqcza dla modułu
2x ó(gold pin)
Elektronika Praktyczna 7/2003
33
PROJEKTY
"Klocki" RS485, część 2
W drugiej części ańykuiu
przedstawiamy dwie karty
wyjściowe, za pomocą których
można sterować różnorodnymi
urządzeniami zewnętrznymi-
Elementami wykonawczymi
w jednej z nich są
przekaźniki
elektromechaniczne, w drugiej
triaki, których bramki są
zasilane przez nowoczesne
optotriaki.
Rekomendacje: zabawę
w klocki RS485 polecamy
szczególnie tym Czytelnikom,
którzy muszą przesłać dane
cyfrowe na duże odległości,
z relatywnie dużą prędkością.
Klocki RS485 to:
- AVT-530 - konwerter RS232<->RS485,
- AVT-531 -kartaprzekaźników,
- AVT-532-kartatriaków,
- AVT-533 - kart a wyjść cyfrowych (aktywne GND),
- AVT-534 - kart a wyjść cyfrowych (aktywne VCC),
- AVT-535 - kartawejść cyfrowych,
- AVT-536-8-wejściowakartawejść analogowych,
- AVT-537-4-cyfrowy wyświetlacz LED,
- AVT-538 - 32-znakowy wyświetlacz LCD.
Karta wyjść
przekaźnikowych
AVT-531
K ar ta wyj ść pr zeka źniko wy ch zawiera osiem przekaźników o obciążalności styków równej 10 A. Może służyć do załączania odbiorników zasilanych przemiennym lub stałym np. 220 V (AC), 12 V (DC). Przekaźniki posiadają jeden styk przełączny, co umożliwia zasilanie dołączonego urządzenia, gdy cewka przekaźnika jest zasilana (NO) lub gdy przekaźnik jest w spoczynku (NC). Układy sterujące są odseparowane galwanicznie od układów wykonawczych. Karta umożliwia komunikację dwustronną, dzięki czemu można sprawdzić stan wszyst-ki ch pr zeka źnikó w .
Budowa
Schemat elektryczny karty przekaźników jest przedstawiony na rys. 5. Głównym elementem jest mikroprocesor PIC16F84A, który odpowiada za odbiór oraz nadawanie danych poprzez interfejs RS485 oraz - w zależności od odebranych danych - odpowiednio steruje przekaźnikami. Procesor pracuje z zewnętrznym oscylato-rem o częstotliwości 4 MHz. Do zerowania procesora zastosowano specjalizowany układ DS1813 (US3). Przekaźnikami steruje mik-rokontioler za pośrednictwem wzmacniaczy tranzystorowych zawartych w układzie ULN2803A (US4). Układ ten zawiera osiem tranzystorów z rezystorami bazo-
wymi, dzięki którym można sterować nimi bezpośrednio z wyjść mikiokontrolera. Dodatkowo obwód kolektorowy każdego tranzystora jest zabezpieczony za pomocą diod przed uszkodzeniem wywołanym przepięciami, które w przypadku sterowania cewek przekaźników występują. Diody te zwierają napięcia wyższe niż napięcie panujące na wejściu COM. Jako przekaźniki wykonawcze zastosowano przekaźniki typu RM96P o jednym styku przełącznym i maksymalnym przełączanym prądzie równym 10 A. Przekaźniki umożliwiają załączanie odbiorników zasilanych zarówno napięciem przemiennym, jak i stałym. Do sygnalizacji załączenia przekaźnika zastosowano diody świecące D1...D8. Dioda zostaje zapalona w momencie załączenia przekaźnika. Rezystory R1...R8 ograniczają prąd płynący przez te diody.
Za konwersję sygnałów pojawiających się w linii transmisyjnej na standard TTL odpowiada układ MAX485 (US2). Dokonuje on również konwersji z poziomów TTL na poziomy RS485. W czasie spoczynku układ ten znajduje się w trybie odbiornika, ponieważ na wejściach DE i !RE panuje poziom niski wymuszony przez wyjście procesora. Przełączenie w tryb nadawania układu MAX485 następuje tylko na czas wysyłania danych przez kartę, a następnie zostaje przywrócony tryb odbioru, aby nie blokować linii transmisyjnej. Dodatkowy rezystor Rll od-
Elektronika Praktyczna 7/2003
35
"Klocki" RS485
o , o
B Z 1
co ...
1


o , o
L z i
...
1
V

O , O
L Z 1
...
1
T

O , O
L Z L
...
DON 1
T

O , O
E Z 1.
...
SOIS 1
T

o , o
E z
,_ ...
jor* 1
T

u
ZV CL
91 Li 8L
HOO GN9 81/10 8NI ZNI 9NI SNI łNI LNI ZNI
Zi/10
aino
9U1O fcl/10
eino
Zi/IO
uno
tNI
n
00
n
o o
powiada za dopasowanie linii i powinien być zamontowany tylko w jednym module, najbardziej oddalonym od nadajnika (konwertera RS2 32<->RS485, AVT-5 30, EP6/2003). O jego montażu należy jednak zdecydować po podłączeniu wszystkich modułów, gdyż podczas testów okazał się zbędny. Zworka JPl służy do zmiany podstawowego adresu, pod którym będzie zgłaszała się karta przekaźników. Natomiast zworka JP2 umożliwia powrót do podstawowego adresu urządzenia. Rezystory R9 i RIO służą jako rezystory podciągające wejścia RA3 i RA4 do plusa zasilania. Opis zmiany podstawowego adresu karty przekaźników zostanie przedstawiony
mmmmmaia] cc ir rz cc tr. a. cc

o go
ftl 10 * 10 tO
o 9 >
S 55
m <
Rys. 5. Schemat elektryczny karty przekaźników z interfejsem RS485
36
Elektronika Praktyczna 7/2003
"Klocki" RS485
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
o o o o o o o o o o o o o o o o o o o o o o o o

6. Rozmieszczenie elementów na płytce karty przekaźników
w kolejnej części artykułu, gdyż dla wszystkich modułów przebiega w taki sam sposób.
Do stabilizacji napięcia zasilającego zastosowano monolityczny stabilizator typu LM7805. Do filtracji napięcia zastosowano kondensatory C1...C4.
Montaż
Karta przekaźników została zmontowana na płytce jednostronnej, dlatego było konieczne umieszczenie dwóch zworek (rozmieszcze-
WYKAZ ELEMENTÓW
Rezystory
R1...R8: lkn
R9,R10: 10kO
Rll*: 120O
Kondensatory
Cl: 470^F/25V
C2, C4: lOOnF
C3: 100^F/16V
C5, Có: 30pF
C7: 47^F/16V
C8: lOOnF
Półprzewodniki
D1...D8: diody świecące 5 mm
US1: PIC16F84A zaprogramowany
US2: MAX485
US3: DS1813
US4: ULN2803A
US5: LM7805
Różne
JP1, JP2: goldpin 1x2 + zworka
CON1...CON8: ARK3(5mm)
CON9, CON10: ARK2(5mm)
P1...P8: RM96P-12V
Podstawki DIP8-lszt., DIP18-2szt.
nie elementów na płytce przedstawiono na rys. 6). Montaż elementów należy zacząć od wykonania tych właśnie zworek srebrzanką o średnicy 0,5 mm. Następnie należy wlutować rezystory (bez rezystora Rll), podstawki pod układy scalone i kondensatory. Stabilizator napięcia (US5) należy zamontować
na leżąco, dlatego wcześniej trzeba zagiąć jego wyprowadzenia pod kątem 90. W kolejnym etapie należy wlutować przekaźniki P1...P8, złącza CON1...CON10 i zworki JPl i JP2. Diody świecące należy zamontować na samym końcu, aby dopasować wysokość ich zamontowania do ewentualnej obudowy. Po prawidłowym zmontowaniu układu można przejść do sprawdzenia jego funkcjonowania. W tym celu do złącza CON9 należy podłączyć napięcia zasilania o wartości około 12 V. Należy przy tym zwrócić szczególną uwagę na polaryzację przyłożonego napięcia, gdyż karta nie posiada zabezpieczenia przed odwrotną polaryzacją.
Do złącza CON10 należy podłączyć przewody wspólnej dla wszystkich modułów magistrali, zwracając
Tab. 2. Zestawienie wszystkich komend umożliwiających sterowanie kartą przekaźników
Polecenie Foimat polecenia Reakcja karty przekaYhicdw
Załączenie jednego przekaźnika ESC 1 w n 1 enter n-numer przekaźnika (1...8) Załączenie przekaźnika onnumerze "n" n=1...8 (odpowiednio ^przekaźnik 1, 2=przekaźnik 2nitd.)
Przykład: ESC 1w31 enter włącza przekaźnik numer 3n
Wyłączenie jednego przekaźnika ESC iwnOenter n-numer przekaźnika (1...8) Wyłączenie przekaźnika onnumerze "n" n=1...8 (odpowiednio ^przekaźnik 1, 2=przekaźnik 2nitd.)
Przykład: ESC 1w4 0enter wyłącza przekaźnik numer 4
Ustawienie stanów wszystkich przekaźników jednocześnie ESC 1wa Sis2s3s4s5s6s7s8 enter s1...s8 mogą być równe ODlub 1 ?(ASCII) Ustawia stany dla wszystkich przekaźników jednocześnie. Parametry s1...s8 odpowiadają stanom odpowiednich przekaźników (s1 odpowiada stanowi przekaźnika P1, s2 stanowi przekaźnika P2, itd.). Parametr "s" równy 1 (ASCII) powoduje załączenie, anrówny O(ASCII) wyłączenie przekaźnika.
Przykład: ESC 1wa11110000 enter włącza przekaźniki onnumerach 1...4 inwyłącza przekaźniki onnumerach 4...8.
Odczyt stanu jednego przekaźnika ESC 1rn enter n-numer przekaźnika (1...8) Zwraca informację onstanie wskazanego wnparametrze "n" przekaźnika. Jeśli przekaźnik jest włączony, to zwraca 1 (ASCII), jeśli wyłączony, to O(ASCII)
Przykład: ESC 1 r 5 enter odczytuje stan przekaźnika onnumerze 5
Odczyt stanów wszystkich przekaźników ESC 1 r a enter Zwraca informację onstanie wszystkich przekaźników, do modułu sterującego wysyłane jest 8nznaków. Jeśli przekaźnik jest włączony, to zwraca 1 (ASCII), jeśli wyłączony, to O(ASCII).
Przykład: ESC 1 r a enter odczytuje stany wszystkich przekaźników
Elektronika Praktyczna 7/2003
37
"Klocki" RS485
Rys. 7. Schemat elektryczny karty triaków z interfejsem RS485
Elektronika Praktyczna 7/2003
"Klocki" RS485
przy tym uwagę na sposób ich podłączenia (A do A, B do B).
Obsługa karty przekaźników
Karta przekaźników posiada adres odpowiadający cyfrze "1" (w kodzie ASCII), dlatego jakiekolwiek działania jej dotyczące mogą być wykonane po podaniu tego adresu. Stan przekaźników może być zmieniany pojedynczo, niezależnie dla każdego przekaźnika lub grupowo po podaniu w jednym pakiecie danych ustawienia stanów wszystkich przekaźników. Możliwy jest także odczyt stanu dowolnego przekaźnika, jak również wszystkich jednocześnie. Każda komenda rozpoczyna się od znaku ESC (klawisz Escape na klawiaturze), następnie należy podać adres karty i rozkaz, jaki ma być wykonany. Zestaw wszystkich komend umożliwiających sterowaniem kartą przekaźników oraz przykładowe polecenia i reakcję na nie karty przedstawiono w tab. 2.
Karta wyjść
optoizolowanych
AVT-532
Karta triaków może być zastosowana do sterowania urządzeniami zasilanymi napięciem 220 VAC. Rolę elementów wykonawczych spełnia osiem triaków sterowanych poprzez transoptory zapewniające galwaniczną separację od sieci energetycznej urządzeń dołączonych do magistrali RS485. Kartę
wyposażono w zasilacz, dzięki któremu nie trzeba stosować dodatkowego napięcia stałego do zasilania układów sterujących. Układy sterujące są odizolowane galwanicznie od układów wykonawczych poprzez zastosowanie optot-riaków. Karta umożliwia komunikację dwukierunkową, dzięki czemu można sprawdzić stan wszystkich triaków.
Budowa
Schemat elektryczny karty triaków przedstawiono na rys. 7. Jej głównym elementem jest mikro-kontroler PIC16F84A, który odpowiada za odbiór i nadawanie danych poprzez magistralę RS485 oraz steruje triakami zgodnie z odebranymi poleceniami. Procesor jest taktowany sygnałem zegarowym o częstotliwości stabilizowanej za pomocą zewnętrznego rezonatora o częstotliwości 4 MHz. Do zerowania mikrokontrolera zastosowano specjalizowany układ DS1813 (US3). Bramki triaków są sterowane przez optotriaki, wskutek czego uzyskano izolację galwaniczna układów wykonawczych od układów sterujących, a ponadto prąd wymagany do sterowania triakiem wynosi w takim przypadku zaledwie kilka miliamperów. Ponieważ porty procesora mogą być obciążane prądem o wartości wynoszącej maksymalnie 25 mA, to optotriaki są sterowane bezpośrednio z portu PB bez dodatkowych wzmacniaczy. Rezystory
R19...R26 ograniczają prąd płynący przez diody op to triaków. Dodatkowe diody świecące włączone szeregowo w obwodach sterowania optotriakami służą do sygnalizacji świetlnej stanu triaka, a tym samym urządzenia do niego podłączonego. Zastosowane triaki mogą przewodzić prądy o maksymalnej wartości równej 12 A.
Za konwersję sygnałów pojawiających się w linii transmisyjnej na standard TTL odpowiada układ MAX485 (US2), dokonuje on również konwersji z poziomów TTL na poziomy RS485. Podczas spoczynku układ ten znajduje się w trybie odbiornika, ponieważ na wejściach DE i !RE panuje poziom niski wymuszony przez wyjście procesora. Przełączenie w tryb nadawania układu MAX485 następuje tylko na czas wysyłania danych przez kartę triaków, a następnie zostaje przywrócony tryb odbioru, aby nie blokować linii transmisyjnej.
Dodatkowy rezystor R służy do dopasowania linii i powinien być zamontowany jedynie w jednym module, najbardziej oddalonym od nadajnika (konwertera RS232<->RS485).O jego montażu należy jednak zdecydować po podłączeniu wszystkich modułów, gdyż w czasie testów okazał się zbędny. Zwor-ka JPl służy do zmiany podstawowego adresu, pod którym będzie zgłaszała się karta przekaźników. Natomiast zworka JP2 umożliwia powrót do podstawowego adresu
?
CDN2
C0N3
C0H4
CDN5
C0N6
C0N7
CDN8
C0N9
Q2 Q3
ooolIoo5
o-TRIT-o o-TRST-o o-TRTT-o o-TWT-o o-IRlTl-o o-lRl3l-o o-HU5l-o o-lRl71-o
o-TRTT-o o-TRBT-o o-n%T-o o-lffIBl-o o-IRHl-o o-lffHl-o o-lffIEl-o o-łRISl-o
ooo ooo ooo ooo ooo ooo ooo ooo
usss !nanuu
a
Rys. 8. Rozmieszczenie elementów na płytce karty triaków
Elektronika Praktyczna 7/2003
39
"Klocki" RS485
urządzenia. Rezystory Rl i R2 służą jako rezystory podciągające wejścia RA3 i RA4 do plusa zasilania. Opis zmiany podstawowego adresu karty triaków zostanie przedstawiony w dalszej części artykułu, gdyż dla wszystkich modułów przebiega w taki sam sposób.
Do zasilania układów zastosowano zasilacz wykonany z użyciem transformatora T, mostka prostowniczego Gl i scalonego stabilizatora US4. Do filtracji napięcia zastosowano kondensatory C1...C4.
Montaż
Schemat montażowy płytki op-totriaków pokazano na rys. 8. Montaż elementów należy rozpocząć od rezystorów (bez rezystora R), następnie należy wlutować podstawki pod układy scalone i kondensatory. Kolejno należy wlutować optotriaki Ul.. ,U8, triaki Ql. ,.Q8, złącza CON1...CON10. Na samym końcu należy zamontować transformator T i diody świecące D1...D8 dopasowując ich wysokość do potrzeb. Jako bezpiecznik Bl należy zastosować bezpiecznik o wartości zależnej od mocy pobieranej przez od-
biorniki dołączone do triaków. Jeśli triaki będą sterowały żarówkami, to bezpiecznik może mieć wartość 2 A. W przypadku sterowania urządzeniami o mocy większej niż 200 W na jeden kanał, dodatkowo należy zastosować radiator dla triaków. Radiator taki może być wykonany z blachy aluminiowej, należy jednak odizolować obudowę triaka od ra-diatora za pomocą podkładek i tulejek izolacyjnych.
Napięcie zasilające (220 VAC) należy podłączyć do złącza CONl, a urządzenia odbiorcze do złączy CON2...CON9. Przy wykonywaniu okablowania należy zachować szczególną uwagę ze względu na kontakt z niebezpiecznym dla życia napięciem 220 VAC. Przy dużych prądach przełączanych należy dodatkowo wzmocnić ścieżki doprowadzające wspólne zasilanie do triaków i do złączy CON2...CON9, przez przylutowanie do nich drutu miedzianego o przekroju około 1 mm2. Do złącza CON10 należy podłączyć przewody wspólnej dla wszystkich modułów magistrali, zwracając przy tym uwagę na sposób podłączenie (A do A, B do B).
Tab. 3. Zestawienie wszystkich komend umożliwiających sterowanie kartą triaków
Rodzaj komendy Wydana komenda Reakcja karty triaków
Załączenie jednego triaka ESC 2 w n 1 enter n-numer triaka (1...8) Załączenie przekaźnika onnumerze "n" n=1...8 (odpowiednio 1=triak 1, 2=triak 2nitd.)
Przykład: ESC 2 w 31 enter włącza triak numer 3n
Wyłączenie jednego triaka ESC 2wn0enter n-numer triaka (1...8) Wyłączenie triaka onnumerze "n" n=1...8 (odpowiednio 1= triak 1, 2= triak 2nitd.)
Przykład: ESC 2w40enter wyłącza triak numer 4
Ustawienie stanów wszystkich triaków jednocześnie ESC 2 w a Sis2s3s4s5s6s7s8 enler s1...s8 mogą być równe On lub 1n(ASCII) Ustawia stany dla wszystkich triaków jednocześnie. Parametry s1...s8 odpowiadają stanom odpowiednich triaków (s1 odpowiada stanowi triaka Q1, s2 stanowi triaka Q2, itd.). Parametr "s" równy 1 (ASCII) powoduje załączenie, anrówny O(ASCII) wyłączenie triaka.
Przykład: ESC 2wa 1111OOOO enter Włącza triaki onnumerach 1...4 inwyłącza triaki onnumerach 4...8.
Odczyt stanu jednego triaka ESC 2rnenter n-numer triaka (1...8) Zwraca informację onstanie wskazanego wnparametrze "n" triaka. Jeśli przekaźnik jest włączony, to zwraca 1 (ASCII), jeśli wyłączony, to O(ASCII)
Przykład: ESC 2 r5 enter odczytuje stan triaka onnumerze 5
Odczyt stanów wszystkich triaków ESC 2 r a enter Zwraca informację onstanie wszystkich triaków, do modułu sterującego wysyłane jest 8nznaków. Jeśli triak jest włączony, to zwraca 1 (ASCII), jeśli wyłączony, to O(ASCII).
Przykład: ESC 2 ra enter odczytuje stany wszystkich triaków
WYKAZ ELEMENTÓW
Rezystory
RL R2: 10kO
R3...R18: 220O
R19...R26: 150O
R: 120R według opisu
Kondensatory
Cl: lOOnF
C2: 1000|iF/lóV
C3: lOĄiF/ló
C4: lOOnF
C5: 47^F/1ÓV
Có: lOOnF
C7, C8: 30pF
Półprzewodniki
D1...D8: LED 5mm
U1...U8: MOC3042
Q1...Q8: BT138-Ó00
Gl: mostek prostowniczy 1A/4OOV
US1: PIC16F84A zaprogramowany
US2: MAX485
US3: DS1813
US4: LM7805
Różne
Bl: bezpiecznik 2A
CON1...CON10: ARK2(5mm)
JP1, JP2: goldpin 1x2 + zworka
Gniazdo bezpiecznika do druku
Transformator TS2/14
Podstawki DIP8-lszt., DIP18-lszt.
Obsługa karty triaków
Karta triaków posiada adres odpowiadające kodowi znaku "2" (w kodzie ASCII), dlatego jakiekolwiek działania jej dotyczące mogą być wykonane po podaniu tego adresu. Stan triaków może być zmieniany pojedynczo, niezależnie dla każdego triaka lub grupowo po podaniu w jednym pakiecie danych ustawiających stany wszystkich triaków. Możliwy jest także odczyt stanu dowolnego triaka, jak również wszystkich jednocześnie. Każda komenda rozpoczyna się od znaku ESC (klawisz Escape na klawiaturze), następnie należy podać adres karty i rozkaz, jaki ma być wykonany. Zestaw wszystkich komend umożliwiających sterowaniem kartą triaków oraz przykładowe polecenia i reakcję karty na nie przedstawiono w tab. 3. Krzysztof Pławsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lipiecO3.htm oraz na płycie CD-EP7/2003B w katalogu PCB.
40
Elektronika Praktyczna 7/2003
PROJEKTY
Akwizycja danych
przez Ethernet x
Zdalny moduł pomiarowy, część 2
W drugiej części ańykuiu
przedstawiamy trudniejszą dla
elektroników część systemu
zdalnej akwizycji danych -
programowanie sieciowe.
R ekom en da ej e:
prezentujemy system
pomiarowy o ogromnych
walorach poznawczych - autor
zintegrował w nim bowiem
zaawansowany system pomiaru
temperatury i jednocześnie
pokazał, w jaki sposób
wyniki pomiarów udostępnić
za pomocą Ethernetu.
Oprogramowanie współpracujące ze zdalnym termometrem
Poniższe opisy dotyczą Windows 98SE - instalacje pod 2000/ NT/XP będą wymagały zastosowania instrukcji dostarczanych razem z pakietami.
Program komunikacyjny PT1OOO.EXE
Program komunikacyjny (napisany w bezpłatnym Delphi 6 PE -kody źródłowe są dostępne w materiałach pomocniczych na płycie CD-EP7/2003) realizuje następujące zadania:
- wysyła co pewien czas zapytanie do oddalonego termometru,
- wykrywa i sygnalizuje brak odpowiedzi,
- prawidłową odpowiedź dekoduje i otrzymaną wartość temperatury zapisuje wraz z czasem wykonania pomiaru do tabeli MySql,
- pozwala na wybór używanego portu szeregowego,
- pozwala na okresowe wyłączenie portu w celu jego wykorzys-
tania przez inną aplikację bez wychodzenia z programu, - wyświetla informacyjną ikonę w obszarze podajnika [tray) -w opisie (hint) ikony można odczytać ostatnią wartość temperatury.
Przy tym odczycie nie jest potrzebny żaden interfejs ekranowy - wyświetlamy zatem (komendą w kontekstowym menu ikony) tylko proste okienko dialogowe wyboru i czasowego wyłączenia portu szeregowego.
Do obsługi portu szeregowego z podłączonym poprzez adapter op-toizolacyjny układem modemu sieciowego ST7537 służy komponent TRsPort. Natomiast komunikację z bazą danych umożliwia moduł mysąl.pas dostarczający funkcje API MySQL pozwalające na bezpośrednie odwołania do bazy. Delphi w wersji Personal Edition nie posiada (w odróżnieniu od edycji profesjonalnych) żadnych komponentów wspomagających programowanie baz o dano we - jednak w naszym zastosowaniu (gdy uży-
Elektronika Praktyczna 7/2003
41
Akwizycja danych przez Ethernet - zdalny moduł pomiarowy
warny tylko niewielkiej liczby danych) nie jest to przeszkodą, gdyż funkcje API MySQL są w zupełności wystarczające. Wszystkie szczegóły zainteresowani znajdą w kodzie źródłowym.
Serwer bazo dano wy MySQL
Aby PT1OOO.EXE mógł wykonywać zapisy do tabeli, musimy mieć uruchomiony serwer MySQL udostępniający swoje funkcje. Przez długi czas zarówno MySQL, jak i Apache były praktycznie domeną użytkowników Linuksa. Teraz sytuacja radykalnie się zmieniła - bez problemu możemy stosować te znakomite i bezpłatne narzędzia również w środowisku Windows. Na firmowej stronie MySQL znajdziemy gotowy "okienkowy" instalator, który praktycznie samodzielnie umieści serwer na naszym dysku. W folderze [docs] znajdziemy też pełną dokumentację, która pozwoli na wyjaśnienie wszelkich niejasności. Przed uruchomieniem serwera należy sprawdzić, czy w naszej maszynie mamy zainstalowany protokół TCP/IP (dotyczy to tylko komputerów bez dostępu do In-ternetu). W razie potrzeby w oknie konfiguracji otoczenia sieciowego dodajemy protokół. Do kontroli nad serwerem najlepiej użyć dostarczonego razem z pakietem programu winmysqladmin.exe (w folderze [bin]), który oprócz wielu użytkowych informacji oferuje także sprawne uruchamianie i zatrzymywanie, przygotowanie i edycję pliku startowego.ini oraz umieszczenie wpisu w menu Autostań.
Po udanym zainstalowaniu i uruchomieniu serwera przygotowujemy niewielką bazę danych, w której będą przechowywane informacje przekazywane przez PT1OOO.EXE. Do tego celu możemy użyć dowolnego klienta MySQL - nawet najprostszego konsolowego mysql.exe dostarczanego z pakietem, który jednak wymaga znajomości składni poleceń SQL. Warto więc wyszukać w sieci jakieś dogodniejsze narzędzie - bardzo sympatyczny w użyciu jest m.in. klient phpMyAdmin ze strony http://www.phpwizard.net/pro-jects/phpMyAdmin, który jednak wymaga uruchomienia najpierw serwera http z następnego punktu.
Nasza mała baza nazywa się Pogoda i zawiera tylko jedną tabelę meteo z polami:
- Czas typu DATETIME,
- Tempout typu FLOAT.
Możemy oczywiście użyć innych nazw, ale musi być zachowana zgodność z kodem odwołań do bazy w PT1OOO.EXE.
Ostatnim zabiegiem koniecznym do właściwej współpracy programów jest udostępnienie biblioteki Libmysql.dll zawierającej funkcje API i dostarczonej razem z pakietem w podkatalogu [lib\opt]. Kopiujemy ją albo do foldera z plikiem PT1OOO.EXE, albo - lepiej - do domyślnego foldera [windows\system].
Serwer http Apache
Apache również oferuje na firmowej stronie gotowy instalator dla Windows. Mamy obecnie do wyboru najnowszą wersję serii 2 oraz starszą 1.3.27. W naszym przykładzie użyta została starsza wersja - w zupełności wystarczająca dla bardzo niewielkich wymagań testowego układu. Po instalacji mamy od razu serwer wstępnie skonfigurowany, ze stroną startową witryny ustawioną na folder [htdocs] oraz z ułatwiającymi pracę wpisami do Menu Start. Wstępnie uruchamiamy serwer jako aplikację konsolową (z pozycji menu Start>Programy>Apa-che>Stań Apache in Console). Jeśli teraz w przeglądarce WWW wpiszemy adres localhost (albo "cyfrowo" http://127.0.0.1), powinna się otworzyć powitalna strona Apache. Pracę Apache'a w konsoli kończymy sekwencją ctrl+c.
Jeśli chcemy, aby serwer startował samoczynnie razem z systemem , mamy do wyb oru dwie możliwości:
1.Umieścić skrót w folderze Autostań, co jest o tyle niewygodne, że przy wyłączaniu systemu trzeba konsolę Apache'a ręcznie zamykać.
2.Zainstalować Apache'a jako usługę [service). W domowych Windows 9x opcja ta ma charakter eksperymentalny i działanie nie jest gwarantowane. W testowym układzie udało się uruchomić w ten sposób wersję 1.3.22 pod W98SE, ale wersja 2.0 już odmawiała współpracy.
Instalacja usługi jest wykonywana w konsoli DOS-owej komendą apache -i -n nazwa_uslugi. Po wykonaniu znajdziemy odpowiedni wpis w rejestrze HKEY_LO-CAL_MA CHINE/Software/Micro-soft/Windows/CurrentVersion/Run-Services.
Pod W9x zalety usługi są ograniczone - sprowadzają się praktycznie do ukrycia procesu przed użytkownikiem. Pracę usługi możemy jednak nadal w razie potrzeby kontrolować komendami konsolowymi apache -n nazwa_uslugi -k stań/restart/stop/shutdown, co może być przydatne np. przy zmianach konfiguracji.
Jeśli chcemy umieścić naszą witrynę w miejscu odpowiedniejszym niż domyślne [htdocs], zakładamy oddzielny folder, np. c:\webroot, w którym umieszczamy kod własnej strony powitalnej jako plik index.html (jest to domyślny plik otwierany przez przeglądarkę po połączeniu się z witryną). Wtedy jednak musimy w konfiguracji httpd.conf zaktualizować wpis DocumentRoot (w naszym przypadku DocumentRoot "c:/webroot" - uwaga na uniksowy slash) i zaraz potem ustawić dla naszego foldera uprawnienia dostępu (sekcja Directory "c:/webroot" >....., zawartość możemy pozostawić domyślną).
Należy zaznaczyć, że Apache'a nie należy używać pod W9x jako serwera internetowego. Te systemy zupełnie się do tego nie nadają ze względu na brak zabezpieczeń i niską stabilność. Natomiast z powodzeniem można wykonywać rozmaite testy w małych bezpiecznych sieciach, domowej lub niewielkiej firmowej (jak w prezentowanym przykładzie).
PHP4
Język php służy do pisania skryptów wykonywanych po stronie serwera http. Ze względu na swoje zalety i przystępność (wynikającą z przejęcia wielu elementów C) zdobył szerokie uznanie i szybko się rozpowszechnił. Oczywiście serwer musi być wyposażony w oprogramowanie wykonawcze dla skryptów. Współpraca Apache'a z PHP może się odbywać w dwojaki sposób: - tak jak w przypadku skryptów CGI moduł wykonawczy php.exe
42
Elektronika Praktyczna 7/2003
Akwizycja danych przez Ethernet - zdalny moduł pomiarowy
M .*. O
o
OURA
k* (lltlil I
V
DBK
ŚJ ***Ś!!
Testowy układ pomiaru temperatury zewnętrzne) w i nt ran ecie.
Pcm* p* bWDMnv co *fc* hhm.
*WdtiKnlKT pomiarowy oparty o kotftt WT TO An**0fl Dirit*ł. P>twn* MC (AD 7WJ12- M Hrtrt SPI)
n PC iipwthMcy pTrtidowinlt urynfcu
U tai, Jj
Rys. S. Wyglqd testowej strony w oknie przeglqdarki WWW
jest traktowany jako zewnętrzny program i uruchamiany oddzielnie dla każdego pliku,
- php może być zintegrowane z Apache'em poprzez dynamicznie ładowaną bibliotekę funkcji [php4ts.dll), co znacznie przyśpiesza wykonywanie programu.
Gotowy instalator dla Windows konfiguruje wszystko tylko dla pierwszego przypadku. Dlatego wykonujemy instalację oraz konfigurację ręcznie:
- plik zip z pakietem php rozpakowujemy do wybranego folderu, np. c:\php,
- do folderu [Windo ws\ System] kopiujemy potrzebne biblioteki: główną php4ts.dll, odpowiadającą za współpracę z Apache'em php4apache.dll z podkatalogu [sapi] oraz biblioteki wbudowanych rozszerzeń z podkatalogu [dli] (jeśli jakieś biblioteki już są, to nadpisujemy je nowymi tylko wtedy, gdy coś nie zechce funkcjonować - każdorazowo wykonując przed zmianą kopię zapasową poprzedniej wersji),
- do folderu [Windows] kopiujemy plik php.ini-dist jako php.ini,
- w php.ini (sekcja Path and di-rectories) dopisujemy ścieżki do naszego foldera ze stroną WWW (doc_root = "c.fwebroot") oraz do foldera z bibliotekami dodatkowych rozszerzeń php {exten-sion_dir = "c:fphpfextensions").
Teraz dodatkowo musimy poinformować Apache'a o możliwości korzystania z php. Wykonujemy to, edytując plik httpd.conf: - dopisujemy (można na końcu) instrukcje ładowania modułu:
LoadModule php4_module c:f php isapiiphp4apache.dll Ad-dModuIe mod_php4.c - informujemy serwer, które pliki powinny być poddane "obróbce" PHP - znajdujemy i odkomento-wujemy linię (ew. dopisujemy jeśli brak):
AddType application/x-httpd-php php .ph tml
(tylko w plikach z podanymi rozszerzeniami będą wykonywane skrypty, możemy do swoich testów dodać też dla uproszcze-niaJitm/ - w normalnej pracy serwera jest to błąd, gdyż powoduje stratę czasu na analizę plików z założenia bez skryptów, natomiast przy próbach umożliwi dopisywanie skryptów do istniejącego kodu html bez zmiany rozszerzeń plików na .php). Jeżeli A pachę był uruchomiony, musimy go zatrzymać. Ponowne uruchomienie w konsoli powinno powiadomić nas o prawidłowym skonfigurowaniu (np. Apa-che/1.3.22 (Win32) PHP/4.1.0 run-ning...). Jeśli serwer "nie przyjął" PHP, musimy sprawdzić wszystko jeszcze raz i ewentualnie zajrzeć
List. 1. Listing opisu przykładowej strony w jeżyku HTML


bgcolor="Lilyer">CzaL ostatniego poiniaru
<'Ś
$link = inysql_connect("localhost" jnysql_select_db (" Pogoda") ; $qllery = "3ELECT * FROM meteo" ;
or die("Wrong"
$row^mysql_fetch_array print (substr($row[0], 6, 2) .
1/".substr($row[0],4,2) ."/".substr($row[0],0,4J . [0],8,2) ."; "r?ub?tr($row[0],10, 2)) ;

bgcolor="?ilver">TeitLperatura zewn$trzna
<'Ś
prmtf ( -Ś>

.lf
trC"

Elektronika Praktyczna 7/2003
43
Akwizycja danych przez Ethernet - zdalny moduł pomiarowy
do bogatych, dostarczanych z pakietami manuali. Na koniec wykonujemy ostatni prosty test działania php, lokując na stronie odnośnik do jakiegoś zupełnie prostego pliku -php zawierającego krótki skrypt (np. echo "Php is OK"; albo Phpinfo();).
Wyświetlenie wartości temperatury
Teraz możemy użyć zainstalowanych narzędzi do wyświetlania na naszej stronie wartości temperatury oraz czasu pomiaru, lokowanych w tabeli meteo przez PT1OOO.EXE. Cały opis html tes-
towej strony znajduje się w materiałach pomocniczych na płycie CD-EP7/2 00 3 (wygląd strony przedstawiono na rys. 8). Zwróćmy uwagę na ustawienie odświeżania tabelki z wartościami na czas zgodny z częstotliwością odczytu termometru. Opis przygotowany w HTML dla prezentowanej strony pokazano na list. 1.
Na koniec jeszcze ogólna uwaga. Czytelnicy obeznani z tematyką sieciową z pewnością nie będą zachwyceni maksymalnie uproszczonym sposobem przedstawienia oprogramowania. Jednak artykuł absolutnie nie pretenduje do rangi
samouczka dla webmasterów i początkujących administratorów. Miał za zadanie prezentację możliwości połączenia w funkcjonalną całość pozornie bardzo odległych technik w ramach prostego, ale sprawdzonego i działającego przykładu -jednocześnie nie wykraczając za bardzo poza sferę elektroniki. Jerzy Szczesiul, AVT jerzy.szczesiul@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lipiecO3.htm oraz na płycie CD-EP7/2003B w katalogu PCB.
44
Elektronika Praktyczna 7/2003
PROJEKTY
PHANTOM
Dekoder część 2
Dźwięk dookólny jest coraz
częściej słyszalny w sprzęcie
audio powszechnego użytku.
Nie ozn acza to jedn ak, że
użytkownicy wiedzą, i mają
gdzie się dowiedzieć, jak
działają dekodery surround
i jakimi m ożliwościami
dysp on u ją. Mamy n adzieję, że
prezen towany projekt dekodera
pomoże w wyjaśnieniu
związanych z tym
wątpliwości.
Rekomendacje: projekt
polecamy wszystkim
audiofilom eksperymentującym
z dźwiękiem, którym n ie
wystarczają standardowe
dekodery surround.
surround,
Linia opóźniająca
Dekoder wyposażono w analogową linię opóźniającą zbudowaną na układzie scalonym MN3207, której schemat pokazano na rys. 8. Układ ten ma w swej strukturze 1024 tranzystory polowe, które odpowiednio taktowane dwoma przebiegami prostokątnymi o częstotliwości około 40 kHz przenoszą sygały z wejścia układu, kolejno poprzez wszystkie tranzystory, na komplementarne wyjścia. W efekcie daje to opóźnienie sygnału analogowego o około 12 ms. Przebieg prostokątny jest generowany przez układ scalony MN3102. Przed linią opóźniającą i za nią zostały umieszczone filtry dolno-przepustowe o częstotliwości granicznej około 12 kHz. Linia opóźniająca jest bardzo wrażliwa na przesterowanie, dlatego filtr na wejściu tłumi sygnał o połowę, a filtr wyjściowy wzmacnia sygnał dwa razy. W sumie daje to wzmocnienie całej linii zbliżone do jedności. Opóźnieniu poddawany jest (jeśli linia opóźniająca jest programowo włączona) sygnał surround tylnych kanałów, we wszystkich trybach pracy z wyjątkiem trybu DIRECT. Włączenie linii opóźniającej uzasadnione jest w następujących przypadkach:
- jeśli słuchacz znajduje się bliżej tylnych głośników - linia opóźniająca przesuwa pozorne położenie głośników tylnych o około 4 m,
- podczas oglądania filmów źródło podstawowych dźwięków jest wtedy lokalizowane przed słuchaczem.
Włączenie linii opóźniającej przy słuchaniu muzyki jest dyskusyjne. Moim zdaniem, jeśli słuchacz znajduje się w równej odległości od wszystkich głośników, linia opóźniająca przy słuchaniu muzyki nie jest potrzebna. Podczas oglądania filmów powinna być zawsze włączona.
Układ autobalansu
Układ U6 (NE5 70 - rys. 9) wzmacnia sygnały lewego i prawego kanału tak, aby na jego wyjściu poziomy średnie tych sygnałów były równe. Wzmocnienie w danym kanale jest proporcjonalne do prądu wpływającego na wejście prostownika (R_INA, R_INB). Prąd ten jest natomiast proporcjonalny do napięcia zmiennego występującego na wyjściu drugiego kanału. Potencjometrem PRl należy nastawić wzmocnienie spoczynkowe (przy małych sygnałach wejściowych) układu NE570 na zbliżone do jedności. Tranzystory Tl i T2 tworzą wzmacniacz różnicowy. W wyniku takiego połączenia, gdy wzmocnienie jednego kanału rośnie, to drugiego naleje i odwrotnie. Układy U9C i U9D pracują jako prostowniki "idealne". Na wyjściu układu U6 znajduje się filtr "wycinający" składowe sygnału o częstotliwości od 120 Hz do 8kHz. Filtr został włączony pomiędzy dwa wyjścia, ponieważ dalej sygnały są podawane na wzmacniacz różnicowy. Łatwiej było zbudować jeden filtr pomiędzy dwoma wyjściami niż dwa identyczne filtry pomiędzy danym wyjściem a masą. Wzmacniacz U5B wytwarza sygnał różnicowy sygnałów wyjściowych z układu U6. Rezystory R35...R38 powinny być rezystorami precyzyjnymi lub dobieranymi.
Obwody pomocnicze
Na rys. 10 pokazano schemat elektryczny bloku sterowania kluczami analogowymi (U15), układy korekcji barwy tonu (U14A, U14B) oraz zespół multiplekserów analogowych (E3B, E3C). Dekoder jest sterowany przez magistralę I2C, za pośrednictwem układu U15 i wewnętrznych rejestrów TDA7429S.
Adres układu TDA7429S jest równy 80H (128), natomiast ukła-
Elektronika Praktyczna 7/2003
45
PHANTOM - dekoder surround
o
(SCO
du PCF8574A 70H (112). Układ TDA7429S posiada w swojej strukturze 10 rejestrów (subadresy 0...9). Do tego układu wysyłane są zawsze 3 bajty:
- adres układu - 80H,
- subadres rejestru - 0...9,
- bajt danych.
Układ PCF8574A ma jeden rejestr używany w naszym układzie jako wyjściowy. Do tego układu wysyłane są zawsze 2 bajty:
- adres układu - 70H,
- bajt danych.
W tab. 2 i 3 podano, w zapisie heksadecymalnym, poszczególne kombinacje wartości bitów. Jeśli dany bajt steruje jednocześnie kilkoma parametrami, to poszczególne kombinacje bitów należy zsumować.
Przykład: Żeby ustawić fazę sygnału wynoszącą 180, włączyć regulację barwy tonu, wyłączyć opóźnienie, włączyć miksowanie sygnału REAR z kanałami przednimi, wykorzystać sygnał z układu AUTOBALANS oraz podać na wejścia VAR zdekodowa-ne sygnały tylnych kanałów, to otrzymujemy bajt:
CO
+ 00 + 10
+ 08
+ 00
+ 00
8688
E8
Po zsumowaniu wszystkich liczb otrzymujemy wartość E8H, którą należy wysłać pod adres 70H.
Na rys. 11 zamieszczono schemat elektryczny zasilacza oraz okablowania gniazd. Dekoder wymaga zasilania: +12 V/50 mA, +5 V/5 mA, -12 VI 10 mA.
Montaż
i uruchomienie
Dekoder został zmontowany na dwuwarstwowej płytce drukowanej, której schemat montażowy pokazano na rys. 12. Zastosowano elementy przewlekane oraz do montażu powierzchniowego (SMD). Wszystkie elementy SMD znajdują się na spodniej
. Schemat elektryczny linii opóźniającej stronie płytki. Montaż naj-
lepiej rozpocząć od zamontowania rezystorów SMD o wymiarze 1206 (3,2x1,6 mm) oraz kondensatorów SMD 100 nF, o takim samym rozmiarze obudowy. Następnie montujemy elementy przewlekane po właściwej stronie "elementów". Montaż można rozpocząć od wlutowania podstawek pod układy scalone (jeśli zamierzamy montować układy scalone w podstawkach). Następnie montujemy rezystory 0,125 W, diody BAVP, drabinki diod, kondensatory ceramiczne, kondensatory MKT oraz kondensatory elektrolityczne. Po zamontowaniu wszystkich elementów biernych należy wlutować scalone stabilizatory napięć ą8 V (U10, U12). Po wlutowaniu stabilizatorów podłączamy do złącza LZZ stabilizowane napięcia zasilające +12 i -12 V. Po podłączeniu zasilania należy sprawdzić napięcia zasilania wszystkich układów scalonych. Następnie można podłączyć do złącza LZl napięcie +5V i sprawdzić napięcia zasilania układów U15 i U16.
Po sprawdzeniu napięć zasilających montujemy tranzystory
1 układy scalone. Montujemy tylko jeden z układów E3 (CD4052) albo U13 (DG409). Układ U3 (TDA7429S) jest zasilany napięciem +8 V i dostarcza napięcie referencyjne +4 V. Napięcie referencyjne polaryzuje większość wzmacniaczy operacyjnych. Dlatego składowa stała sygnałów przetwarzanych przez dekoder wynosi +4 V.
Po zamontowaniu wszystkich elementów i załączeniu zasilania, możemy sprawdzić oscyloskopem częstotliwość sygnałów prostokątnych na wyprowadzeniach 2 i 6 układu U8 - powinna wynosić około 48 kHz, a jego amplituda około 8 V. Jeśli nie mamy oscyloskopu, możemy sprawdzić składową stałą na wyprowadzeniach
2 i 6, której wartość powinna wynosić około 4 V. Suwak potencjometru PRl ustawiamy w położeniu środkowym. Następnie zakładamy, zgodnie ze schematem, zworki: na polu JPl łączymy punkty 1 z 3 oraz 2 z 4, na polu JP2 łączymy punkty 1 z 2 oraz
3 z 4, dla zworki Zl łączymy punkty 1 z 2.
W celu uruchamienia dekodera należy podłączyć go do kompu-
46
Elektronika Praktyczna 7/2003
PHANTOM - dekoder surround
Tab. 2. Funkcje i adresy rejestrów układu TDA7429S o adresie bazowym 80H
Sub- Nazwa Bity sterupce Sub- Nazwa Bity sterupce Sub- Nazwa Bity stenjj1ce
adres rejestru bit <7> zawsze adres rejestru bit <7> zawsze adres rejestru bit <7> zawsze
równy 0 równy 0 równy 0
0 INPUT <6> REARIN- 3 BASS <4x3x2x1xO> 5 SPEAKER <6><5><4>
ATTENUATION REAROUT pins BASS Rear Lelt <3x2x1xO> RL
00 - pins active 10 = -14 dB (SPEAKER 00 = OndB
- wn naszym deko- 11 = -12 dB ATTENUATION 01 = -1 dB
derze zawsze 12 = -10 dB "L") 02 = -2 dB
to ustawienie!
40 - pins no active 16 = -2 dB 3F = -63 dB
<5x4> <3x2x1xO> 17 = OndB 40 = -64 dB
Input ATTENUATION 1F= OndB
00 = 0,0 dB 1E = +2 dB 4F = -79 dB
01 = - 0,5 dB 1D = +4 dB 50 - MUTE
6 SPEAKER <6><5><4>
30 = -31,5 dB 1A = +10 dB Rear Right <3>2<1xO> RR
1 Surround <6x5><4><3> Etiect 19 = +12 dB (SPEAKER tak samo
& Out SurR 18 = +14 dB ATTENUATION jak dla
& Eleiect 00 = -6,0 dB "R") rejestru 5
ctrl 08 = -7,0 dB 4 MIDDLE <7x6><5><4> 7 SPEAKER <6><5><4>
& TREBLE TREBLE Front Lelt <3>2<1xO> FL
78 = -21,0 dB <2> Rear Out 00 = -14 dB 10 = -12 dB (AUX ATTENUATION tak samo jak dla
00 - Out = VAR 20 = -10 dB "L") rejestru 5
U4 UUt r IX <1x0> Modę 60 = -2 dB 8 SPEKER <6><5><4>
Surround 70 = OndB Front Right <3>2<1xO> FR
00 - Simulated F0 = OndB (AUX tak samo
01 - Musie E0 = +2 dB ATTENUATION jak dla
02 - Stereo DO = +4 dB "R") rejestru 5
03 - Movie 9 INPUT & FRONT <6><5> Front Right
2 Phase shiit <7x6> Ph. Sh. 4 A0 = +10 dB OUT 00 - 3BAND
resistors 00 - 1k3 Hz 90 = +12 dB 20 - SURR
40 - 1k1 Hz 80 = +14 dB 40 - REAR
80 - 880 Hz <3x2x1xO> 60 - FIX
CO - 400 Hz MIDDLE <4><3> Front Lelt
<5x4> Ph. Sh. 3 00 = -14 dB 00 - 3BAND
00 - 600 Hz 01 = -12 dB 08 - SURR
10 - 520 Hz 02 = -10 dB 10 - REAR
20 - 400 Hz 18 - FIX
30 - 185 Hz 06 = -2 dB <2><1> Input
<3x2> Ph. Sh. 2 07 = OndB muliplexer
00 - 5k6 Hz 0F = OndB 00 - IN2
04 - 4k6 Hz 0E = +2 dB 02 - IN3
08 - 4k2 Hz OD = +4 dB 04 - (IN4)
0C - 1k9 Hz 06 - IN1
<1x0> Ph. Sh. 1 OA = +10 dB
00 - 140 Hz 09 = +12 dB
01 - 110 Hz 08 = +14 dB
02 - 90 Hz
03 - 43 Hz
tera. Podłączenie należy wykonać zgodnie ze schematem 6, jeśli zamierzamy użyć programu DE-KODER24.EXE (udostępniamy go na płycie CD-EP7/2003B). Można również zastosować inny program służący do obsługi I2C-Bus i wtedy będzie potrzebny odpowiedni interfejs. Podłączenie dekodera do komputera lub zestawu audio wykonujemy zawsze przy wyjętych wtyczkach z sieci zasilającej. Zakładając, że dołączyliśmy dekoder do komputera poprzez odpowiedni interfejs, uruchamiamy program DEKODER24.EXE (widok jego okna pokazano na rys. 13). Program ten może być również przydatny podczas uruchamiania płytki dekodera. Połączenie kom-
putera z płytką dekodera wymaga zastosowania układu dopasowującego sygnały magistrali I2C do RS23 2 (schemat publikujemy na płycie CD-EP7/2003B oraz na naszej stronie internetowej). W tym samym katalogu, w którym znajduje się program DEKO-DER24.EXE, należy również umieścić plik PRTCOM.DLL.
Przyciskami SetSDA i ClrSDA możemy zmieniać stan linii SDA, sprawdzając go przyciskiem RdSDA oraz badając napięcie na nóżce 15 układu Ul5. Podobnie można sprawdzić poprawność sterowania linii SCL, naciskając przyciski SetSCL i ClrSCL i obserwując napięcie na wyprowadzeniu 14 układu U15.
Po sprawdzeniu prawidłowości komunikacji na magistrali I2C, ponownie wyłączamy zasilanie wszystkich urządzeń i wyjmujemy wtyczki z gniazdek sieciowych. Do dekodera podłączamy zestaw audio. Na jedno lub więcej z wejść należy doprowadzić sygnał akustyczny z odtwarzacza CD lub DVD albo z karty dźwiękowej komputera. Wyjścia dekodera podłączamy do dwóch wzmacniaczy stereo, na wejścia LINE_IN lub/i AUX karty dźwiękowej w komputerze. Można do wyjść dekodera podłączyć głośnikowe zestawy komputerowe wyposażone we własne wzmacniacze. Można również podłączyć wyjścia kanałów przednich do wzmacniacza stereo,
Elektronika Praktyczna 7/2003
47
PHANTOM - dekoder surround
AUTOJNR
CE7 22^/10
AUTO_INL
CE6 22^/10
CE13C 4jj7 Ś
U6 NE570
R63 33k2
D9 BAVP
-W-
CE16

CE19 470M/16
K
13
R_CAPA VCC H_CAPB
R_INA
GLINA
INVA
RES_R3A
OUTA
TDHTA
R_INB GLINB INVB RES_R3B OIHB GND TDHTB
16
15
14
12
R62 33k2
_C30 "470n
R72 5k6
1R20 Jik
+5V
,CE15
Ś4jj7
Ś CE23 '100|j/6
VCC
C42 lOn
_C31 "470n
R21 1k
AUTO_OUTR
AUTO_OUTL
Rys. 9. Schemat elektryczny układu autobalansu
a wyjścia kanałów tylnych do komputerowego zestawu głośnikowego (typu 2.0 lub 2.1). Po wykonaniu połączeń między wszystkimi urządzeniami możemy podłączyć wtyczki zasilające i włączyć wszystkie urządzenia.
Po wybraniu odpowiedniego wejścia powinniśmy usłyszeć dźwięk w kanałach przednich. Programowo możemy zmieniać tryb pracy dekodera: Stereo, Mo-vie, Simulated, Musie, Autobalan-ce. W poszczególnych trybach zmienia się charakter dźwięku generowanego przez kanały tylne. Jeśli zaznaczymy pole Front MIX, to charakter brzmienia również będzie się zmieniał w kanałach przednich. Gdy po wybraniu trybu Autobalance nie pojawi się czysty dźwięk w kanałach tylnych, należy sprawdzić połączenia na polu krosowym JPl.
W dowolnym trybie pracy -poza trybem Stereo - można załączyć linię opóźniającą przez zaznaczenie pola DELAY lOms. Jeśli linia opóźniająca działa prawi-
dłowo, powinniśmy usłyszeć nie-zniekształcony, oddalony pozornie
0 około 3...4 m dźwięk w tylnych głośnikach. Jeśli dźwięk jest silnie zniekształcony lub nie ma go wcale, należy sprawdzić prawidłowość montażu układów U9A, U8, Uli oraz U9B. Układy U9A
1 U9B pracują w układzie filtrów dolnoprzepustowych o częstotli-
wości granicznej około 12 kHz. Układ Uli jest generatorem dwóch przebiegów prostokątnych o częstotliwości około 48 kHz, przesuniętych w fazie o pół okresu (wyprowadzenia 2 i 4). Układ U8 jest analogową linią opóźniającą. Układ ten wymaga odpowiedniej wartości składowej stałej na nóżce 3 (AUDIOJN). Dlatego rezystory
Tab. 3. Funkcje i adresy rejestrów układu PCF8574A o adresie bazowym 70H
Aktywne biy Nazwa Działanie poszczegókrych kombragi btów
<7><6> Faza surround 00 - 0 40 - 90 80 - 180 CO - 180
<5> Barwa tonu - tył 00 - barwa tonu zał. (On) 20 - barwa tonu wył. (Off)
<4> Opóźnienie (DELAY) 00 - opóźnienie zał. (Delay On) 10 - opóźnienie wył. (Delay Off)
<3> Miksowanie sygnału REAR znprzednimi kanałami 00 - MIX Off 08 - MIX On
2 Funkcja końcówki LP układu TDA7429S 00 - wejście znukładu AUTOBALANS 04 - filtr sygnału REAR ZDTDA7429S
<1><0> Wejście VAR 00 - zdekodowane tylne kanały (Surround) 01 - bezpośrednie tylne kanały (Rear Direct) 02 - bezpośrednie tylne kanały znbarwą tonu (Rear BT Direct) 03 - przednie kanały (Bass out)
48
Elektronika Praktyczna 7/2003
PHANTOM - dekoder surround
+12V
Po zaznaczeniu pola Rear Tonę powinna się zmienić barwa tonu w kanałach tylnych. Odpowiedzialny jest za to układ U5B. Układ U5A odpowiedzialny jest za fazę kanałów tylnych. Pole Phase rear pozwala ustawić fazę tych kanałów na 0/90 lub 180 stopni.
Powyższe rozważania dotyczyły ustawienia wyjść L/R Rear w pozycji REAR, dla której kanały tylne odtwarzają dźwięk dookólny wytwarzany w sposób analogowy z kanałów przednich. W położeniach IN1_R_D, IN_R_T w kanałach tylnych jest odtwarzany dźwięk doprowadzony bezpośrednio z zewnątrz. Dla położenia IN_R_T barwa tonu jest korygowana niezależnie w każdym z kanałów przez wzmacniacze U14A i U14B. Dla położeń 3BAND i FIX w kanałach tylnych są odtwarzane sygnały kanałów przednich.
Tryby pracy dekodera
Kompletny dekoder może pracować w dwóch dodatkowych trybach:
AUTOBALANS - w tym trybie pracy sygnał różnicowy jest generowany poza układem scalonym TDA7429S, a przesuwniki fazowe i regulacja EFFECT nie są wykorzystywane. Nie należy jednak mylić tego trybu pracy z funkcją autobalans w niektórych scalonych dekoderach DOLBY, w których funkcja autobalans pozwala na zrównoważenie w zakresie kilku decybeli kanałów L i R na samym wejściu. W tym dekoderze autobalans w zasadzie pracuje jako VCA (wzmacniacz sterowany napięciowo). W układzie NE570 znajdują się dwa pseudo VCA (po jednym dla kanału L i R). Wzmacniacz różnicowy, zbudowany na dwóch
U10 LM78L0B
74HC05
Rys. 10. Schemat elektryczny bloku sterowania kluczami analogowymi (U 15), układu korekcji barwy tonu(U14A, U14B) oraz zespołu multiplekserów analogowych (E3B, E3C)
-C6 "IMn
-DZ3 ŚC9V1
R73 i R74 powinny być rezystorami precyzyjnymi lub odpowiednio dobrane. Na wejściu AUDIO_IN (wyprowadzenie 3) powinno występować napięcie równe 0,572,
a na pinie VGG (wyprowadzenie 4) napięcie równe 0,938 napięcia zasilania układu U8.
D14 1N400+
iCE21
Ti6V
ce =1O0n
es
100nz
CE24 100|j 16V
i'.
DZ2 C9V1
U12 LM7908T
Rys. 11. Schemat elektryczny zasilacza
Elektronika Praktyczna 7/2003
49
PHANTOM - dekoder surround
Rys. 12. Schemat montażowy płytki drukowanej dekodera
tranzystorach p-n-p (Tl, T2), na podstawie pomiaru amplitud napięć wyjściowych z układu NE570 tak steruje wzmocnieniem wzmacniaczy VCA, aby napięcia te były równe. Podobny układ jest stosowany w dekoderach DOLBY PRO LOGIC IL
Jeśli na wejściu dekodera pojawi się sygnał tylko w jednym z kanałów (np. lewym), to układ AUTOBALANS będzie starał się wyrównać poziom obydwu kanałów i w efekcie kanał lewy zostanie stłumiony do poziomu około -20dB, a kanał prawy wzmocniony do poziomu około +6dB. Daje to bardzo pozytywny efekt, ponieważ sygnał w kanałach tylnych pojawi się na poziomie około -20dB (w idealnym dekoderze nie pojawiłby się wcale). Gdyby układ AUTOBALANS został wyłączony (praca w trybie MUSIC lub MO-VIE), to w kanałach tylnych pojawiłby się sygnał na poziomie około -3dB (a w idealnym deko-
Rys. 13. Widok okna programu DEKODER24.EXE
derze nie powinien pojawić się wcale). Uogólniając, można powiedzieć, że w trybach pracy MUSIC i MOVIE przesłuchy między kanałami wynoszą około -3dB, a tylko w trybie AUTOBALANS zostają zredukowane do poziomu -20dB. Tryb AUTOBALANS nadaje się znakomicie do odtwarzania dźwięku zakodowanego w systemie DOLBY SURROUND.
DIRECT - w tym trybie pracy cały dekoder pracuje jako przed-wzmacniacz czterokanałowy. W głośnikach przednich możliwa jest regulacja barwy dźwięku w trzech zakresach (basy, średnie, wysokie), w głośnikach tylnych można włączyć podbicie (na stałym poziomie) tonów niskich i wysokich. Na wejście (tylko numer 1) należy podać cztery sygnały np. z DVD.
Fazy głośników
Fazy wszystkich czterech głośników powinny być zgodne. W dekoderze fazę tylnych głośników należy wybrać najlepiej na 180 lub 90. Faza 90 ma zastosowanie tylko w przypadku, gdy tylne głośniki nie posiadają "prawdziwego" wzmacniacza, lecz wykorzystywane są komputerowe głośniczki z subwooferem (zestaw 2.1). Najłatwiej fazy głośników sprawdzić w trybie MUSIC dekodera. Na wejście prawego lub lewego kanału dekodera należy podać
sygnał testowy (z generatora lub z komputera). Jeśli głośniki mają prawidłowe fazy, to faza kanału lewego przedniego (LF) będzie zgodna z fazą kanału lewego tylnego (LR) i dźwięk z tych głośników będzie się sumować, dając prawidłową lokalizację źródła dźwięku z lewej strony - głośnik prawy tylny (KR) będzie odtwarzał w tym momencie dźwięk w fazie przeciwnej, który powinien się odejmować od dźwięku generowanego przez lewe głośniki (LF i LR). Jeśli głośniki tylne mają nieprawidłowe fazy, to dźwięk usłyszymy "po przekątnej" - sygnał z głośnika lewego przedniego zsumuje się z sygnałem głośnika prawego tylnego. Powyższe rozważania dotyczą zgodności faz przód-tył.
Zakładam, że występuje zgodność faz lewy-prawy dla obydwu par głośników (przednich i tylnych) . Na płytce dekodera pole krosowe JP2 pozwala zamienić miejscami kanały LR i RR - powoduje to jednoczesne odwrócenie faz tylnych głośników, ale tylko dla pracy w analogowych trybach surround. W trybie DIRECT pole krosowe JP2 nie bierze udziału. Zbyszko Przybył
Wzory płytek drukowanych w formacie PDF są dostępne w Jnternecie pod adresem: http://www.ep.cont.pl/ ?pdf/lipiecO3 Jttm oraz na płycie CD-EP7/2003B w katalogu PCB.
50
Elektronika Praktyczna 7/2003
NOTATNIK PRAKTYKA
Prototyp w godzinę
- precyzja niemal przemysłowa
Płytki drukowane w domu, część 2
Termotransfer - metoda "kredowa"
W pierwszej części artykułu wspomniałem o wadzie nierozłącznie związanej ze stosowaniem folii termotransferowej, polegające] na mechanicznym uszkadzaniu rysunku mozaiki występującym podczas odrywania folii. Powstaje zatem pytanie, czy można usunąć nośnik w inny sposób, np. przez rozpuszczenie? W tym właśnie kryje się idea prostej modyfikacji polegającej na zastąpieniu poliestrowej folii... papierem. Mając gotowy projekt, należy go wydrukować lub skopiować na kserografie na gładkim, powlekanym papierze kredowym. Po naprasowaniu wzoru mozaiki na płytkę drukowaną, płytkę wraz z maską umieszcza się na
kilka minut w ciepłej wodzie. Kredowa powłoka nie ulega wprawdzie rozpuszczeniu, ale pod wpływem wody mięknie, po czym daje się usunąć w sposób niezagrażający całości mozaiki.
Nie potrafię jednoznacznie określić, komu należy przypisać autorstwo tego pomysłu. Po raz pierwszy zetknąłem się z nim ponad rok temu na liście dyskusyjnej avt.ep.elektronika. Efekty wstępnych testów okazały się na tyle interesujące, że postanowiłem zająć się tym tematem znacznie dokładniej. Przedstawione w artykule wyniki i szczegółowy sposób postępowania są rezultatem licznych prób mających na celu zdobycie wprawy i dopracowanie technologii.
W drugiej części artykułu przedstawiamy
opis metody "żelazkowej", która jest jedną
z najlepiej rokujących w warunkach
amatorskich. Jak się przekonacie, możliwe
do osiągnięcia wyniki są - przy odrobinie
wprawy - niewiarygodnie dobre.
Papier
Od papieru stosowanego jako nośnik w metodzie termotransferowej oczekujemy spełnienia kilku warunków: gładkości powierzchni, rozpuszczalności powłoki i odporności na temperaturę. Chropowatość rzutuje przede wszystkim na precyzję odwzorowania krawędzi. W praktyce można
przyjąć, że błędy spowodowane nierównością powierzchni powinny być mniejsze niż nieuniknione błędy wprowadzane przez raster drukarki. Spośród kilku przetestowanych gatunków papieru wybrałem do prób Papier kredowy do prac dyplomowych o gramaturze 115 g/m2 produkowany przez UNI-PAP Strzegom (cena ok. 15 zł/
Elektronika Praktyczna 7/2003
51
NOTATNIK PRAKTYKA
Rys. 5. Poclziciłka testowo wykorzystana do określenia stopnia deformacji papieru (widok zmniejszony do 60%)
100 ark.]. Charakteryzuje się on gładkim licem i odpornością na deformacje, a zarazem jest na tyle elastyczny, że bez problemu przechodzi przez układ prowadzenia arkusza w drukarce. Niektórzy uczestnicy pl.misc.elektronika propagują również konkurencyjny wariant, polegający na wykorzystaniu cienkiego papieru klasy LWC używanego powszechnie do druku czasopism (w tym również Elektroniki Praktycznej]. Skrót LWC pochodzi od angielskiej nazwy LightWeight Coated paper i oznacza papier o gramaturze rzędu 70 g/m2 powleczony gładką warstwą złożoną m.in. z węglanu wapnia (kredy], glinki kaolinowej i lateksu. Teimo-gazeioiransfer - taka bowiem żartobliwa nazwa przylgnęła do tego wariantu metody, posiada niezaprzeczalne zalety. Dzięki mniejszej grubości, a także nieco innym własnościom powłoki, pozostałości papieru LWC są znacznie łatwiejsze do usunięcia z powierzchni laminatu. Zarazem wiąże się to jednak z pewnymi niedogodnościami:
- Pozostałości kredy wypełniające mikroporowate nieszczelności w warstwie tonera chronią przed nadtrawia-niem płaszczyzn miedzi. Delikatne pokrycie papieru LWC zmywa się niemal bez śladu, odsłaniając ew. nieszczelności w nadruku.
- Niewielka gramatura papieru sprzyja deformacji podczas prasowania, co może utrudniać utrzymanie powtarzalnych wymiarów całej płytki.
- W kserograficznych punktach usługowych znacznie łatwiej
będzie uzyskać kopię na czystej kartce papieru kredowego niż na kolorowej reklamie wyciętej z jednego z popularnych czasopism kobiecych. Aczkolwiek, jak wykazuje dotychczasowa praktyka, wydruk na zadrukowanym papierze LWC nie powoduje zauważalnej szkody dla mechanizmów drukarki. Bardzo istotną cechą papieru odróżniającą go od folii z tworzyw sztucznych jest jego hig-roskopijnośc. Kartka papieru przechowywana w normalnych warunkach mieszkaniowych zawsze zawiera pewien procent wody. Poddana utrwalaniu termicznemu w drukarce a następnie nagrzewaniu podczas prasowania ulega szybkiemu wysuszeniu, co powoduje zmianę wymiarów (skurcz] i to na dodatek różniący się wielkością w dwóch prostopadłych kierunkach. Seria prób polegająca na pomiarze przetransferowanej po działki testowej (rys. 5] o rozmiarach 100x100 mm wykazała, że skurcz papieru (o gramaturze 115 g/m2] pobranego bezpośrednio ,,z półki" może przekraczać 0,5 mm/100 mm. Jest to wystarczająco dużo, aby uzyskana odchyłka wymiarów uniemożliwiła zgranie warstw płytki dwustronnej lub np. swobodne osadzenie 40-pi-nowego gniazda IDC. Prosty zabieg sprowadzający się do kil-kudziesięciosekundowego suszenia arkusza na stoliku grzewczym, bezpośrednio przed wydrukiem, pozwolił na zredukowanie skurczu do wartości mniejszej niż 0,2 mm/100 mm, czyli akceptowalnej w warunkach amatorskich.
Fot. ó. Ścieżki ómils nachylone pod kqtem ó,3 do osi rastra - wydruk na papierze i odwzorowanie w miedzi. Widoczne schodki powstały w wyniku rasteryzacji z rozdzielczością (a) 300 dpi i (b) Ó00 dpi. Zaznaczone linie symbolizują krawędzie ścieżek zawartych w projekcie
Drukarka
O możliwości wykorzystania danej drukarki (lub kserokopiarki] do wykorzystania w metodzie transferowej decydują rodzaj i ilość nakładanego tonera oraz rozdzielczość i jakość d ru ku.
Oceniając przydatność wydruku, należy zwrocie szczególną uwagę na jednolitość (szczelność] krycia dużych płaszczyzn oraz ilość nałożonego tonera. Wydrukowane ścieżki powinny byc wyczuwalne w dotyku jako nieznaczne zgrubienia na powierzchni papieru. Niemal wszystkie próby prezentowane w artykule zostały wykonane na drukarce laserowej HP LaserJet 4+ o roz-
dzielczości 600 dpi (z alternatywnym tonerem firmowanym przez Esselte]. Pozytywne wyniki, potwierdzające możliwość transferu tonera i jego odporność na trawienie, uzyskałem również z wydrukami z drukarek HP LaserJet 2200 (1200 dpi], Lexmark Optra E310 oraz kopiarkami Minolta (laser] i Canon NP5060 iNP6612. Od innych osób otrzymałem również pozytywne opinie dotyczące kilku drukarek z serii HP (HPIII, HP4Si, HP5L, HP6P] oraz OkiPage BW.
Drukarka laserowa jest urządzeniem rastrowym, a to oznacza, że wydrukowane krawędzie ścieżek pionowych lub poziomych są "przyciągane" do
Fot. 7. Wbrew potocznej nazwie metody, żelazko służy nie do prasowania, a jako gorgey stolik podgrzewający od spodu płytkę laminatu. Optymalna temperatura płyty wynosi ok. 155...1ÓOC
52
Elektronika Praktyczna 7/2003
NOTATNIK PRAKTYKA
Fot. 8. Przykładanie maski do powierzchni gorącego laminatu. Alternatywnie można przytwierdzić maskę na zimno, skrawkami samoprzylepnego papieru. Należy zwrócić baczng uwagę, aby w pierwszych sekundach nagrzewania nie nastąpiło przesunięcie i rozmazanie przenoszonego obrazu
siatki rastra, natomiast krawędzie ścieżek ukośnych mają w rzeczywistości postać linii schodkowej, Zakres rozdzielczości popularnych obecnie drukarek laserowych rozciąga się od 300 dpi (punktów na cal] w najstarszych urządzeniach do 1200 dpi.
Zęby uzmysłowić sobie znaczenie tego parametru, wyraźmy wielkość jednego punktu rastra w jednostkach rnils. Otóż rozdzielczość 300 dpi -odpowiada ok. 3,3 mils, 600 dpi - ok. 1,7 mils, a 1200 dpi to ok. 0,83 mils. Na fot. 6 możemy zobaczyć mikroskopowe zdjęcie ukośnych ścieżek o szerokości 6 mils wydrukowanych na papierze, a następnie wytrawionych w miedzi. Próbki zostały wykonane w dwóch rozdzielczościach: 300 dpi (a] oraz 600 dpi (b).
Uzyskane efekty prowadzą do wniosku, że do wytwarzania precyzyjnych PCB, nawet w warunkach amatorskich, należy sięgnąć po drukarkę o rozdzielczości co najmniej 600 dpi. Ilość nanoszonego tonera wymaga dobrania w drodze eksperymentu. W testowej drukarce HP4+ najlepsze wyni-
ki osiągałem, ustawiając dawkowanie tonera na 1 lub 2 stopień w skali 1...5.
Wydruk
Zagadnieniem, na które zwraca się szczególną uwagę we wszystkich opisach wytwarzania PCB, jest prawidłowa orientacja masek odpowiadających poszczególnym warstwom projektu. Wydruki poszczególnych warstw wykonane bez modyfikacji, bezpośrednio z programu CAD, mają taką samą orientację jak na ekranie, tzn. warstwy górne [TopLaysr, TopOvsrlay) są widoczne tak jak na rzeczywistej płytce, natomiast warstwy dolne [Bot-tornLayer, Bottorn Ovsilay) jako prześwitujące przez płaszczyznę laminatu. Przykładając maskę do płytki, musimy ją ułożyć tonerem do powierzchni miedzi. Zatem warstwy górne wymagają wydrukowania w odbiciu lustrzanym [rniiioi). Natomiast wydruki warstw dolnych podłożone pod płytkę już przylegają tonerem do miedzi, czyli nie wymagają odbicia lustrzanego (tab. 2].
Zwróćmy uwagę, że tradycyjny podział na "stronę elemen-
Tab. 2. Orientacja wydruków poszczególnych warstw płytki drukowanej
Warstwa Przeznaczenie OriertaqawydnJoj
Top Gverlay Górny opis elementów lustrzana
Top Layer Górna mozaika połączeń (ComponentSide -strona elementów) lustrzana
Bottom Layer Dolnamozaikapołączeń (Solder Side - strona lutowania) prosta
B ottom Gverlay Dolny opis elementów prosta
Elektronika Praktyczna 7/2003
53
NOTATNIK PRAKTYKA
Fot. 9. Nojwygoclniejszym sposobem prasowania okazało się użycie dwóch, ciasno zwiniętych, szmacianych tamponów. Jednym przytrzymujemy gorqcq płytkę, a drugim pocieramy papier miejsce obok miejsca, dociskając toner do powierzchni miedzi
tów" i "stronę lutowania" mający rację bytu w przypadku montażu przewlekanego traci sens w przypadku płytek obłożonych dwustronnie elementami SMD.
Laminat
Wymagania jakościowe i zasady przygotowania powierzchni laminatu (zmatowienie i odtłuszczenie] nie różnią się od opisanych przy okazji omawiania metody fotolitograficznej. Metoda termo transferowa jest jednak bardziej wrażliwa na obecność rys i wgłębień na powierzchni laminatu, które mogą uniemożliwić dociśnięcie tonera i skutkujących np. nieprzewidzianymi przewężeniami ścieżek. Kupując laminat, należy również zwrocie uwagę na splot tkaniny szklanej (osnowy] widoczny jako siateczka wgłębień na powierzchni miedzi. Zbyt głęboki relief występujący w miernej jakości laminatach może znacznie utrudnić precyzyjny transfer drobnych elementów projektu.
Przy amatorskim zakupie niewielkich ilości laminatu z przypadkowych źródeł zazwyczaj zwraca się uwagę jedynie na rodzaj podłoża (najczęściej
będzie to laminat papierowo-fe-nolowy np. FR-2, szklano-epok-sydowy np. FR-4 lub kompozytowy np. CEM-1], przyjmując milczące założenie, że grubość folii miedzianej wynosi typowo 35 |Xm. Istotnie jest to grubość standardowa, stosowana powszechnie do wytwarzania jedno- i dwustronnych płytek drukowanych metodami sub-traktywnymi (bez metalizacji otworów]. Należy jednak zdawać sobie sprawę, że w technologiach przemysłowych używa się także folii miedzianej o innych grubościach i takie laminaty również można napotkać w sklepach elektronicznych. Folie o grubości większej niż standardowa (70 |lm i 105 |lm] znajdują zastosowanie w płytkach o podwyższonej obciążalności prądowej, natomiast laminaty z cienkimi foliami (12 |lm, 17,5 |Xm] są materiałem stosowanym m.in. do wytwarzania płytek metalizowanych wykonywanych metodą póładdytywną, w której następuje elektrolityczne osadzenie dodatkowej warstwy miedzi. Wyjaśnijmy przy okazji, dlaczego grubość folii miedzianej przybiera tak nietypowe wartości. Otóż podstawowy laminat pokryty folią 35 |lm
Tab. 3. Zestawienie typowych grubości miedzi i odpowiadające im orientacyjne wartości rezystancji powierzchniowej
Cttmse Oj PaAiiefzchnowa rrasaCu (oz/sq_ft) Rezystancja powiefzcłncANa (@25C)
12 Lim 1/3
17,5 Lim 1/2 1,0 mnO
35 Lim 1 0,5 mnO
70 Lim 2 0,25 mnO
105 Lim 3
Cu w krajach anglosaskich jest określany jako jednolitej owy, czyli zawierający miedź o masie jednej uncji na stopę kwadratową lozfsą.ft (gęstość miedzi pCu = 8,96 g/cm3, 1 oz. = 28,3495 g, 1 ft = 0,3048 m]. Analogicznie - foliom cieńszym od standardowej odpowiadają oznaczenia 1/3 oz. i 1/2 oz., a foliom grubym 2 oz. i 3oz. Z grubością warstwy miedzi bezpośrednio wiąże się jej rezystancja powierzchniowa, a co za tym idzie dopuszczalna obciążalność prądowa ścieżek oraz głębokość pod trawi eń powodujących zwężenie ścieżek poniżej ich nominalnej szerokości. W tab. 3 zestawiono typowe grubości miedzi i odpowiadające im orientacyjne wartości rezystancji powierzchniowej uzyskiwane na gotowych płytkach.
Żelazko, prasowanie
Przenoszenie rysunku stanowi etap najtrudniejszy a zarazem najbardziej zależny od zdobytej wprawy. W czasie przenoszenia powierzchnia tonera musi zostać nadtopiona, a następnie dokładnie dociśnięta na całej powierzchni płytki. Wbrew potocznej nazwie metody, żelazko wcale nie najlepiej nadaje się do prasowania. Praktykowane niekiedy dociskanie maski do laminatu gorącą stopką żelazka jest obarczone dwoma wadami:
- Przyklejenie tonera wymaga dosyć silnego docisku i co ważniejsze docierającego równomiernie do każdego miejsca na płytce. Podczas nagrzewania, laminat łatwo ulega deformacji, co znacznie utrudnia jednolite przyklejenie maski na całej powierzchni.
- Podłoże laminatu posiada pewną pojemność cieplną. Po
przyłożeniu żelazka od strony papieru następuje szybkie mięknięcie tonera, podczas gdy powierzchnia miedzi wciąż pozostaje zimna. W moim odczuciu sytuacja taka sprzyja przypadkowym przesunięciom maski i rozmazywaniu przenoszonego rysunku.
Na podstawie własnych doświadczeń mogę stwierdzić, że znacznie lepsze wyniki daje odwrócenie żelazka stopką do góry i potraktowanie go jako gorącego stolika nagrzewającego płytkę od spodu, czyli od strony laminatu. Wszystkie próby zostały wykonane z użyciem prowizorycznej, ale zarazem dosyć skutecznej konstrukcji widocznej na fot. 7. Płyta z grubej blachy mosiężnej, dociśnięta śrubami do obrzeża stopki żelazka, zwiększa powierzchnię pola roboczego i jednocześnie ma za zadanie ujednolicać rozkład temperatur na jej powierzchni. Tanie żelazko dalekowschodniej "marki"
0 mocy grzałki 1200 W, z regulatorem ustawionym na maksimum, zapewnia utrzymanie centralnej strefy stolika w temperaturze ok. 155...16OC. Niestety, ze względu na zbyt małą przewodność cieplną mosiądzu
1 niewielką grubość płyty, rozkład temperatur uzyskany na prototypowym stoliku jest daleki od optymalnego, dlatego następna wersja stolika zostanie wyposażona w płytę miedzianą lub aluminiową o grubości co najmniej 10 mm.
Papier z wydrukiem układamy tonerem do dołu na oczyszczonej powierzchni miedzi i przytwierdzamy na krawędzi skrawkami papieru samoprzylepnego. Należy pamiętać o przycięciu papieru z zachowaniem co najmniej 10
Fot. 10. Krytyczny punkt metody, zależny od nabytej wprawy. Uplastyczniony toner rozlewa się na powierzchni miedzi w stopniu proporcjonalnym do temperatury stolika i nacisku tamponu. Oba fragmenty widoczne na zdjęciu pochodzg zjednej płytki, a finalna różnica szerokości ścieżek zależy wy-łgeznie od czasu i siły prasowania
54
Elektronika Praktyczna 7/2003
NOTATNIK PRAKTYKA
Fot. 11. Wporównoniu z fotolitografią wymogonio odnośnie czystości sq nieporównywalnie mniejsze, mimo to nie należy ich lekceważyć. Na zdjęciu - spustoszenia w rysunku ścieżek (ó mlls) spowodowane przez włos pozostawiony między płytką a papierem
mm marginesu od obrysu projektu, co pozwoli na wyeliminowanie błędów występujących zazwyczaj na krawędziach arkusza. Dokładne ustalenie pozycji papieru ma zasadnicze znaczenie przy wykonywaniu płytek dwustronnych, a także w przypadku niewielkiego nadmiaru laminatu. W praktyce, przy wykonywaniu płytek jednostronnych upraszczałem sobie pracę kładąc papier dopiero na nagrzany laminat (fot. 8). Ponieważ toner szybko przykleja się do gorącej płytki, to po zdobyciu pewnego doświadczenia można nie obawiać się rozmazania przenoszonego obrazu.
Najwygodniejszym sposobem prasowania okazało się użycie dw och, ciasno zw i n i ę ty c h , szmacianych tamponów (fot. 9). Jednym z nich przyciskamy papier i gorącą płytkę do stolika, natomiast drugim pocieramy miejsce obok miejsca, dociskając toner do powierzchni miedzi. W miarę prasowania, niewidoczny początkowo rysunek ścieżek zaczyna przebijać przez papier tworząc zauważalny relief na jego powierzchni. Czas prasowania i siła docisku są parametrami, których niestety nie da się określić z góry i trzeba je ustalić metodą prób i błędów, stopniowo dochodząc do wprawy. Orientacyjnie można przyjąć, że całość operacji na stoliku zamyka się w czasie ok. 1...3 minut. Weźmy pod uwagę, że uplastyczniony toner rozpływa się na powierzchni miedzi w stopniu proporcjonalnym do temperatury stolika i nacisku tamponu. Oba fragmenty pokazane na fot. 10 pochodzą z tej samej płytki testowej i celowo różnią się czasem i siłą użytą podczas prasowania.
Metoda termo transferowa, w porównaniu z fotolitografią nie stawia prawie żadnych wymagań odnośnie czystości pomieszczenia, dzięki temu całkowicie wystarczają jej warunki panujące w mieszkaniu lub pokoju biurowym. Jedynym momentem wymagającym szczególnej staranności jest przykładanie papieru do płytki. Należy zwrocie uwagę, aby nie pozostawić pomiędzy nimi zanieczyszczeń (włos, ziarno piasku itp.] mogących uniemożliwić równomierne dociśnięcie papieru (fot. 11).
U suw an ie p ap ieru
Mając za sobą prasowanie, zdejmujemy płytkę ze stolika i pozwalamy jej ostygnąć. W tym czasie przygotowujemy kąpiel złożoną z ciepłej wody z dodatkiem kilku kropel detergentu (np. płynu do mycia naczyń]. Domieszka detergentu zmniejsza napięcie powierzchniowe i ułatwia penetrację wody i dzięki temu wspomaga nasiąkanie papieru. Mięknięcie można także przyspieszyć, zarysowując paznokciami jego górną powierzchnię. Zazwyczaj po upływie 5...10 minut warstwa celulozy daje się oddzie-
Fot. 12. Resztki powłoki kredowej działajq jak maska chroniąca przez dostępem kąpieli trawiącej i powodują występowanie zwarć. Przy myciu należy zwrócić szczególną uwagę na oczyszczenie wąskich odstępów między ścieżkami i otworów służących do centrowania wiertła
Elektronika Praktyczna 7/2003
55
NOTATNIK PRAKTYKA
Fot. 13. Do usuwania resztek powłoki kredowej można użyć szczoteczki do zębów, a najlepiej - opuszka własnego palca. Prawidłowo nałożony toner mocno przylega do miedzi i wytrzymuje bez uszczerbku nawet energiczne pocieranie
lic, pozostawiając na płytce resztki powłoki kredowej przyklejone do powierzchni tonera, Usuwanie resztek kredy jest najbardziej pracochłonnym (trwa nawet do 10 minut] etapem procesu, a jednocześnie staranność z jaką się je wykona decyduje o braku zwarć pomiędzy ścieżkami (fot. 12). Do usunięcia powłoki można posłużyć się np. szczoteczką do zębów, aczkolwiek w praktyce najskuteczniejsze okazały się strumień ciepłej wody i opuszek palca.
Warstwa tonera zaskakująco mocno przylega do powierzchni miedzi i wytrzymuje nawet energiczne pocieranie, bez obawy oderwania ścieżek (fot. 13). Zauważyłem przy tym, że wymywanie kredy zachodzi oporniej, jeżeli papier został wcześniej poddany szybkiemu suszeniu na żelazku. Szybkim
sposobem na pozbycie się całej kredy może być jej wytrawienie, np. przez przetarcie płytki tamponem nasyconym 10% kwasem octowym. Niestety usuwając mostki spomiędzy ścieżek zmywamy jednocześnie powłokę uszczelniającą mikropory w warstwie tonera. Ten sam problem dotyczy wariantu polegającego na wykorzystaniu papieru LWC. Łatwość usuwania kredowej powłoki zostaje okupiona ryzykiem naruszenia zasłoniętych płaszczyzn miedzi i wytrawiania mikroskopijnych kraterów w jej powierzchni. Marek Dzwonnik, AVT marek.dzwonnik@ep.com.pl
Za miesiąc, w ostatnie} części artyk.ti.hj., dokończymy opis postępowania a także przedstawimy możliwości i ograniczenia przezeniowanej technologii.
56
Elektronika Praktyczna 7/2003
NA CD: KATALOG MITSUMI, PROTEL DXP Z SP2, AYR-STUDIO+, SPICE LT
k '
g Międzynarodowy magazyn elektroników konstruktorów
7/2003
lipiec
15 zł 50 gr (w tym 7% vat)
9771640 769039 07>
PRICE: B EUR
PROGRAMY
Aułoroułer
W przypadku Sp9cctry rouiing, csyli "wytyesanie ścieżek pomiędzy posscse-gólnymi 9l9m9ntami elektronicsnyrni składającymi się na pro]9ktowany obwód drukowany, odbywa się sgodnie s przyjętymi wcseśniej zasadami i regu-łami proJ9ktowymi. Należy w tym rniej-scu prsypornnieć, że ni9 wssystkie s pol9C9ń związanych s kontrolą pracy rouiera dostępn9 są s poziomu inter-f9Jsu graficsnego. Csęść bardsiej zaawansowanych możliwości, w któr9 wyposażono Sp9cctrę fi to zarówno na 9tapi9 rouiingu, jak i placemeniu) jest dostępna J9dyni9 s wierssa pol9C9ń tego programu i wykonywana na podsta-wi9 odpowi9dnich kom9nd zadawanych bespośrednio s klawiatury bądź wprowadzana w odpowi9dni sposób sa pomocą pliku .DO, o którym wspo-mni9liśmy w drugi9J csęści artykułu. Ni9si9 to sa sobą koniecsność sapos-nania się se składnią jęsyka, ale gwa-rantuJ9 jednocseśnie całkowitą kontrolę nad rouierem.
G9n9ralni9 rouiowanie proJ9ktu, nie-sależnie od tego, esy st9ruJ9my Spec-etrą s posiomu int9rf9Jsu graficsn9go, pol9C9ń wydawanych w jęsyku Spec-etry, esy też pliku .DO, składa się s trs9ch 9tapów: prerouiingu ffunkcJ9 swiąsan9 s prerouiingiem opisywaliśmy w poprs9dni9J csęści artykułu), właści-W9go rouiingu oras posirouiingu. Rou-ting (General Purpose Rouiing} w prsy-padku Sp9cctry składa się s kilku kolej-no następujących po sobi9 fas. Na po-csątku (w pi9rwssych kol9Jnych 5 prsej-ściachi ścieżki są wytyesane najkrótssy-mi możliwymi trasami s sachowani9m narsuconych wcs9Śni9J ki9runków i limitów, prsy esym są ignorowan9 konflikty (rys* 10) pol9gając9 na powstawaniu ni9doswolonych prs9cięć ści9Ż9k, jak równi9Ż ni9 są bian9 pod uwagę
Rys. 10. W ten sposób sygnalizowano jest niezgodność zpredefiniowanymi regułami projektowymi
błędy pol9gając9 na ni9dotrsymaniu odstępów. Na tym 9tapi9 podesas każd9go kol9Jn9go prs9Jścia wssystki9 połącs9nia są srywan9, a następni9 ponowni9 kładzione sgodni9 s t9chniką rip-up and reiry. Po wykonaniu pi9rwssych pięciu prs9Jść strat9gia dsiałania Sp9cctry ulega smiani9 - program próbuJ9 ponowne-go ułoŻ9nia ści9Ż9k, któr9 powodują konflikty, natomiast wssystki9 posostał9 ni9 podl9gają srywaniu. Od ssóst9go prs9Jścia poprs9s każd9 kol9Jn9 C9l9m autorout9ra jest wy9liminowani9 wssyst-kich istni9Jących J9sscs9 konfliktów i ciągła poprawa ogóln9go wyniku rou-iowania, aż do usyskania 100% poprawnych połącs9ń.
W prsypadku saawansowanych, gęsto upakowanych druków, licsba prs9Jść moŻ9 prs9krocsyć 100. Podesas każde-go prs9Jścia jest monitorowany współ-esynnik r9dukcji konfliktów, któr9 po-sostały J9sscs9 do roswiąsania. Jeżeli sostani9 sar9J9strowana sytuacja, że podesas kilku kol9Jnych prs9Jść współ-esynnik ten jest mały, autorout9r auto-matycsni9 smi9nia połoŻ9ni9 już ułożonych ści9Ż9k i ponawia próbę ich wy-tycsania.
Sp9cctra umożliwia Śl9ds9ni9 postępu pracy rout9ra w sposób ciągły, s możliwością rejestracji wssystkich kroków, jakie sostały wykonane w każdej sesji. Na podstawie informacji, które są wyświetlane w oknie Ouipui Win-dow, użytkownik już w poesątkowej fasie Touiowania projektu może s prawie 100% prawdopodobieństwem prsewi-dsieć ewentualne "kłopoty" s prawidłowym połącseniem elementów. Jest to bardso pomocne w prsypadkach, gdy płytka drukowana jest skomplikowana, a wytyesanie połącseń trwa długo. Dobrym wykładnikiem ssans, jakie mamy na usyskanie 100% połącseń, jest stosunek wssystkich konfliktów fkrsy-żowań ścieżek oras konfliktów odległościowych) prsy padających na ilość wssystkich połącseń projektu. Jeżeli po pierwssym prsejściu routera licsba konfliktów jest pięć rasy więkssa od licsby wssystkich połącseń, jest bardso prawdopodobne, że wystąpią problemy s prawidłowym wykonaniem projektu.
Oprócs wy tycsania ścieżek dla wssystkich połącseń snajdujących się w projekcie, Specctra umożliwia ułożenie ścieżki dla konkretnego połącsenia lub wybranej grupy połącseń. Połącsenia do "poprowadsenia" możemy sasna-
Projektowanie mozaiki
ścieżek na płytce drukowanej
to proces złożony nie tyłko
ze wzgłędu na konieczność
odpowiedniego połączenia
ełementów ełektronicznych za
pomocą ścieżek, które
musimy zmieścić na zwykłe
ograniczonej powierzchni
druku. Współczesne projekty
narzucają bowiem szereg
innych wymagań. Podczas
projektowania płytek
drukowanych niejednokrotnie
staje się ważne okreśłenie
rezystancji i pojemności
ścieżek, przesłuchów
pomiędzy nimi czy też
imp edancji ch arakterystyczn ej
ścieżki w przypadku
układów wiełkiej
częstotłiwości. Konstrukcja
mozaiki ścieżek wpływa
bowiem bezpośrednio na
parametry ełektryczne całego
urządzenia.
esać bespośrednio sa pomocą mysski fco jest wygodne w prsypadku grupy połącseń).
Oprócs prowadsenia ścieżek w sposób automatyesny, Specctra umożliwia oesy-wiście wytyesanie ścieżek ręcsnie (rys* 11). Po prsejściu do trybu interaktywnego możemy sarówno wytyesać nowe ścieżki jak i modyfikować istniejące. Dostępne operacje to tworsenie, edycja,
ft
Rys. 11. Podczas ręcznego prowadzenia ścieżki kolidujgce zniq ścieżki sq automatycznie załamywane podczas "najazdu"
58
Elektronika Praktyczna 7/2003
PROGRAMY
b)

m i
m ę f

f+* p pp li
p } pp
*


,

Rys. 12. Rezultat działania funkcji MITER przed (a) oraz po (b) wykonaniu polecenia MITER
przesuwani9, kopiowanie, ucinanie lub kasowanie określonych ścieżek lub ich segmentów. Podobnej obróbce możemy poddawać przelotki, wy lewki miedzi i inne elementy projektu np. obszary zabronione. Ponadto Specctra umożliwia edycje, topologii połączeń, zmianę atrybutów poszczególnych elementów projektu, takich jak przelotki, segmenty ścieżek fich szerokość) itd.
Metodę, działania routera w odniesieniu do wybranych funkcji w trybie interaktywnym możemy modyfikować, korzystając z seiupu. Edycji mogą podlegać reguły projektowe oraz inne parametry. W przypadku ręcznego wytyczania ścieżek Specctra przewiduje szereg udogodnień. Podczas prowadzenia ścieżki są automatycznie obrazowane dopuszczalne kierunki, w których może być ułożony dany segment, on-line kontrolowane jest zachowanie przyjętych reguł projektowych, kolidujące ścieżki są automatycznie odsuwane lub załamywane (podobnie dzieje się np. w przypadku przesuwania ścieżki). Odsuwane ścieżki rnogą automatycznie przeskakiwać przez przeszkody tj. kolidujące elementy projektu. W przypadku braku możliwości ułożenia ścieżki na danej warstwie przewidziano opcję automatycznego lub ręcznego dodawania prze-lotek, a także opcję automatycznego łączenia wskazanej ścieżki. Funkcja automatycznego kończenia danej ścieżki jest
bardzo wygodna jeśli np. obróbki ręcznej wymaga jedynie jej określony fragment. W trybie interaktywnym możemy również prowadzić jednocześnie dwie ścieżki fgrupy ścieżek), także w przypadku, gdy znajdują się one na różnych warstwach płytki (Tandem Layer Fair), jak również dodawać ścieżki typu floa-iing tzn. niemające powiązania elektrycznego z żadnym z elementów projektu. Ilość funkcji wspomagających ręczny tryb projektowania jest w przypadku Specctry bardzo szeroka. Tak jak w przypadku wytyczania ścieżek w sposób automatyczny, tak i w trybie intra-ktywnym Specctra kontroluje on-line wszystkie posunięcia projektanta. Tak więc np. wytyczając ręcznie ścieżkę, dla której określono parametr maksymalnej długości, jesteśmy informowani jeśli długość ta jest przekraczana. Wszystkie przekroczenia reguł projektowych pomiędzy obiektami rouiowanymi, takimi jak ścieżki, przelotki, wyprowadzenia elementów, obszary zabronione, obszary miedzi itd. mogą być sygnalizowane graficznie.
Kolejną grupą funkcji, jakie udostępnia Specctra, są funkcje związane z pos-irouiingiem projektu, czyli jego optymalizacją pod kątem jakościowym i technologicznym. Podstawowe funkcje posirou-iera to:
CRITIC - funkcja eliminująca zbędne załamania ścieżek. Jej działanie jest
zbliżone do CLEAN, z tym że w tym przypadku ścieżki nie są zrywane i prowadzone od nowa, a jedynie optymalizowane także pod kątem optymalizacji odprowadzeń od przelotek i wyprowadzeń.
SHIELD - funkcja powodująca ułożenie ścieżek ekranujących.
FILTER ROUTING - funkcja używana w przypadku, gdy wynik działania au-toroutera nie kończy się 100% sukcesem nawet w wypadku wykonania dużej liczby przejść i konieczne jest ręczne wytyczenie określonego połączenia lub połączeń. Rezultat działania funkcji to zerwanie ścieżek, dla których istnieją konflikty i pozostawienie ich jako un-rouied.
CENTER WIRES - funkcja optymalizująca położenie ścieżek biegnących pomiędzy dwoma sąsiadującymi ze sobą wyprowadzeniami danego elementu.
SPREAD WIRES - funkcja powodująca równomierne rozprzestrzenienie ścieżek na dostępnym obszarze.
TESPOINTS - funkcja dodająca punkty testowe do kontroli produkcji druku oraz testowania zmontowanych obwodów PCE.
MITER - funkcja tworząca ścięcia narożników ścieżek lub ich zaokrąglenia zgodnie z zadanymi parametrami (rys. 12).
Ostatnią grupą narzędzi, jakie udostępnia Specctra, są rozbudowane funkcje raportujące. Pozwalają one na uzyskanie szczegółowych informacji o poszczególnych elementach fizycznych składających się na projektowany obwód PCE, jak również o wszelkich obiektach definiowanych przez użytkownika w trakcie projektowania płytki. Informacje te prezentowane są w postaci tekstowej i w mogą być zachowane na dysku komputera. RK
Dodatkowe iiformacje
Więcej informacji można uzyskać w firmie RK-System, www.rk-system.com.pl.
60
Elektronika Praktyczna 7/2003
Częstościomierz analogowy
Nieco sentymentalny miniprojekt, który może spełniać pożytecznq rolę w domowej pracowni poczqtkujqcego elektronika. Słr. 71.
Tester samochodowych sond lambda
Coś dla miłośników samochodowych "wnętrzności" - cyfrowy tester jednego z ekologicznie najważniejszych elementów współczesnych samochodów -sond lambda. Słr. 21.
Pr89AT - programator ^ mikrokontrolerów '51 z pamięciq Flash
Na słr. 26 przedstawiamy opis budowy równoległego programatora mikrokontrolerów '51 z pamięciq Flash.
Zabezpieczenie linii telefonicznej
Kolejny wariant detektora pirackich podłq-czeh do linii telefonicznej. Słr. 72. ^
Radiowy system zdalnego sterowania
Pierwszq część opisu budowy dwukierunkowej aparatury do zdalnego sterowania pracujqcej w nielicencjonowanym paśmie ISM przedstawiamy na słr. 29.

Programowanie telefonów > komórkowych Nokia
Pierwszq część artykułu o programo waniu telefonów firmy Nokia przedstawiamy na słr. 68.
Phantom - dekoder surround A
Drugq, ostatniq już, część opisu tego interesujq-cego urzqdzenia przedstawiamy na słr. 45.
Akwizycja danych przez Internet
Tajniki budowy i działania przykładowego systemu pomiarowego, przystosowanego do transmisji zgromadzonych danych przez Internet przedstawiamy
na słr. 41

"Klocki" RS485 ą
Drugq część cyklu - opisy kart: przekaźnikowej i optotriakowej -przedstawiamy na słr. 35.
Programowalny sterownik zegarowy
O tym, jak efektywnym narzędziem jest Bascom mogq przekonać się Czytelnicy projektu przedstawionego na słr. 87.
Elektronika Praktyczna 7/2003
^
LabView 7
Możliwości najnowszej wersji LabYiew przedstawiamy w artykule na słr. 126.
Płytki drukowane w domu
Drugq część artykułu poświęciliśmy przybliżeniu technologii "żelazkowej", która zasłużenie robi karierę także wśród profesjonalistów, którym zależy na błyskawicznym wykonaniu wysokiej jakości płytek prototypowych. Słr. 51.
MTS-51 - zestaw do nauki mikrokontrolera '51
Nauka przez ćwiczenia - wyraźnie takie przesłanie towarzyszyło twórcom zestawu prezentowanego w artykule na słr. 61. w
IKA
Nr 7(127)
lipiec 2003
Wzmacniacz semi-surround do komputera PC, część 1 .... 14 Tester samochodowych sond lambda.................................21
Pr89AT - programator mikrokontrolerów '51
z pamięciq Flash....................................................................... 26
Radiowy system zdalnego sterowania
z kanałem zwrotnym, część 1.................................................29
"Klocki" RS485, część 2............................................................35
Akwizycja danych przez Ethernet -zdalny moduł pomiarowy, część 2.................................................................41
PHANTOM - dekoder surround, część 2................................45
Miniprojekty
Częstości orni erz analogowy...................................................71
Zabezpieczenie linii telefonicznej ..........................................72
Notatki iTPrakFyka^^^^^^^^^^^^^^^^^^^l
Płytki drukowane w domu, część 2.......................................51
Programy]
Autorouter Specctra, część ó.................................................
Protel DXP - przełom na rynku narzędzi EDA
dla elektroników, część 5........................................................65
Nowości w pakiecie LabYiew 7, część 1............................ 126
Sprzęt j
i
MTS-51 -zestaw do nauki mikrokontrolera '51 .....................61
Kurs
Programowanie telefonów komórkowych, część
Obsługa timerów w mikrokontrolerach AVR, część 1.........77
Sterowanie graficznych wyświetlaczy z telefonów komórkowych firmy Nokia, część 3.......................................80
Podstawy projektowania systemów
mikroprocesorowych, część 5................................................83
Automatyka
Enkodery i czujniki do detekcji drogi firmy Baumer........... 123
Projekty Czytelników
Programowany sterownik zegarowy.....................................87
Z kraju i ze świata........................................................111
Tiotełca
Kramik+Rynek................................................................91
Listy...................................................................................97
Ekspresowy Informator Elektroniczny.....................107
Wykaz reklamodawców............................................1 lćfl
Elektronika Praktyczna 7/2003
MTS
Zestaw do nauki mikrokontrolera '51
Trzeba obiektywnie przysnąć, że MCS-51 to rodzina układów bardzo przyjazna dla użytkownika, łatwa do nauczenia i świetnie wyposażona w narzędzia zarówno programowe, jak i sprzętowe. Można oczywiście polemizować, czy przyjęta koncepcja jednostki centralnej jest dobra i czy odpowiada dzisiejszym wymaganiom? Czy w dobie tak szybkich zmian, jakie obserwujemy w elektronice, rdzeń mikrokontrolera opracowany kilkanaście lat temu nie jest już muzealnym zabytkiem?
Pojawiające się co pewien czas nowe mutacje 51-ki świadczą o tym, śe powyższe wątpliwości nie znajdują uzasadnienia, a rodzina ma się całkiem nieźle (dowody na to przedstawiamy w artykule opublikowanym na wkładce On/Off Linę - tylko w EPo/oL).
Na początku ery mi kro kont role rów konstruktorzy wykorzystujący je byli nie wiadomo jakimi specami. Dzisiaj można nie znać na pamięć serii układów TTL czy CMOS, ale bez znajomości choćby jednego mikrokontrolera trudno zabierać się nawet za najprostsze projekty. Choć w zakresie literatury technicznej wciągu ostatnich lat bardzo wiele się u nas zmieniło na korzyść, to - jak wiadomo - skuteczność nauczania znacznie się zwiększa, jeśli do nauki wykorzystuje się ćwiczenia praktyczne. Specjalnie dla tych, którzy dzisiaj nie mają jeszcze zielonego pojęcia, co to jest mikrokontroler, na dalekim Tajwanie opracowano trenażer MTS-51. Nie jest to klasyczny starter kit, do jakich jesteśmy przyzwyczajeni. Raczej trudno dołączyć do niego własny fragment systemu, ale chyba też nie taka była intencja projektantów. Zamysłem było jak najpełniejsze zaprezentowanie architektury mikrokontrolera i sposobów dołączania typowych układów peryferyjnych, z jakimi spotykamy się na co dzień, stąd ich bogactwo w zestawie (fot. 1).
Dość oryginalnie wygląda płyta czołowa zestawu. Jest to po prostu płytka drukowana, do której przylutowano poszczególne elementy. Zamiast typowej soldermaski zastosowano farbę , która maskuje ścieżki na płytce, a na
niej nałożono opisy wyjaśniające funkcje poszczególnych elementów. Trenażer jest wyposażony we wbudowany zasilacz sieciowy.
Dokumentacja
Do zestawu dołączono pokaźnych rozmiarów książkę, która w swej pierwszej części jest źródłem wiedzy na temat architektury mi kro kontrole rów '51, w drugiej natomiast dokładnie opisuje sam zestaw MTS-51. W części teoretycznej zapoznajemy się z podstawowymi pojęciami związanymi z techniką mikroprocesorową. Dowiadujemy się co to jest ALU, CPU, czym różnią się pamięci ROM, PROM, EPROM, EEPROM, RAM, poznajemy zasadę działania układów we/wy oraz systemu przerwań. Dalej dowiadujemy się, jak powyższe komponenty są implementowane w konkretnych układach rodziny MCS-51. Można zauważyć, że opisy zamieszczone w podręczniku są zredagowane nieco inaczej niż odpowiadające im noty katalogowe. Użyte sformułowania zostały dobrane z myślą o tym, że będą je czytać ludzie
^^^^^^m SPRZĘT
Parafrazując popularne
powiedzenie, chciałoby się
rzec: "51-ka wiecznie żywa".
Wciąż znajdują się chętni
do wykorzystywania jej
w swoich projektach, wciąż
nie brak chętnych do
wkraczania w świat
mikrokontrolerów poprzez
poznawanie właśnie tej
rodziny. Jeśli już się uczyć,
to najlepiej na błędach.
Dysponując opisanym
poniżej zestawem,
można ich bezpiecznie
popełniać bez liku.
z praktycznie zerowym poziomem wiedzy. Poszczególne fragmenty tekstu są bogato ilustrowane tabelami i rysunkami. Tam, gdzie jest to potrzebne, przedstawiane są algorytmy procedur w postaci graficznej. Pod koniec pierwszej części podręcznika zamieszczono listę rozkazów mikrokontrolera '51, zilustrowaną przykładowym programem w asemblerze. Zawarto również krótki opis makroasemblera X805l oraz linkera LINK4. Dość dokładnie opisane są też formaty plików wynikowych. hex, w szczególności różnice pomiędzy typami Intel, Extended Intel, Tektronix, S19, S28 i S37. Kolejne rozdziały dotyczą zestawu MTS-51.

Wygląd zestawu MTS-51
Elektronika Praktyczna 7/2003
61
SPRZĘT
Rys. 2. Okno programu WinISP
Poszczególne bloki funkcjonalne zestawu omówiono indywidualnie, do każdego opisu dołączono odpowiedni schemat ideowy. Zaprezentowano tu również program wykorzystywany do programowania mi kro kontrolera - WinISP. Kolejną część dokumentacji stanowią dokładne opisy kilkunastu ćwiczeń praktycznych, jakie można przeprowadzić w oparciu o zestaw MTS-51. Po krótkim wstępie ogólnym do każdego tematu, podano sposób skonfigurowania przełączników i zworek, a następnie dokładnie opisano przebieg ćwiczenia. Całość jest uzupełniona podaniem wersji źródłowych programów, które można również znaleźć na załączonym CD-ROM-ie.
Programowanie mikrokontrolera
W zestawie MTS-51 zastosowano mik-rokontroler P89C51RD+ firmy Philips. Posiada on wewnętrzną pamięć programu typu Flash, dzięki czemu stało się możliwe programowanie go w systemie. Czynność ta jest bardzo prosta, nie wymaga ciągłego przekładania układu z systemu uruchamianego do programatora, mimo że przewidziano specjalną podstawkę typu ZIP, niewymagającą używania siły podczas demontażu. Jej zastosowanie wynika więc raczej ze stworzeniem możliwości wymiany typu mikrokontrolera. Przed przystąpieniem do programowania należy za pomocą specjalnej zworki ustawić odpowiednie napięcie programujące (5 lub 12 V), połączyć zestaw z komputerem poprzez port szeregowy, uruchomić program WinISP i wcisnąć przycisk przełączający zestaw w tryb pracy ISP. Następnie w parametrach programu określa się typ układu, numer portu komunikacyjnego, zakres programowanych adresów, a także częstotliwość taktowania mikrokontrolera (rys* 2). Za pomocą tego programu można także ustawić bity zabezpieczające, do nauki nie będą one jednak potrzebne.
Kolejną czynnością jest załadowanie programu wynikowego, który będzie zapisany w pamięci Flash. Użytkownik oprócz wersji źródłowych dostaje na CD-ROM-ie przygotowane przez producenta do każdego ćwiczenia pliki wyniko-~wf.hex. Nie jest więc konieczne kompi-
lowanie programów przed użyciem. Po załadowaniu programu wyświetlane są jego adresy początku i końca. Odpowiedni obszar pamięci Flash powinien być wykasowany przed przystąpieniem do programowania. Służy do tego klawisz Erase Błock. Jeśli warunek ten jest spełniony, wystarczy wcisnąć klawisz Program Pań, aby po kilku sekundach uzyskać gotowy do testów mikrokontro-ler. Program WinISP umożliwia ponadto ręczne modyfikowanie zawartości bufora, w tym zapełnianie go podanym wzorcem. Po zakończeniu programowania należy ponownie przełączyć zestaw w normalny tryb pracy, odpowiednio dla uruchamianego programu skonfigurować wszystkie przełączniki i zworki i wyzerować system przyciskiem Peset. Jeśli wszystkie powyższe czynności zostały wykonane prawidłowo, to mikro-kontroler powinien od tego momentu rozpocząć wykonywanie zapisanego w jego pamięci programu. Na własne pomysły z pewnością przyjdzie czas, na początku warto zapoznać się z gotowymi propozycjami eksperymentów.
Ćwiczenia
Przygotowane przez producenta zestawu eksperymenty mają na celu wszechstronne zademonstrowanie możliwości mikro kontrolerów rodziny MCS-51. Prezentacja jest oparta na obsłudze typowych urządzeń peryferyjnych, dając tym samym gotowe rozwiązania dla praktyków. Na ogół jeden eksperyment jest podzielony na kilka ćwiczeń, co pozwala na stopniowe nabywanie umiejętności przez ucznia. Poniżej zapoznamy się pokrótce z programem kursu. Sterowanie diodami LED
Pierwsze ćwiczenia mają na celu nauczenie korzystania z portów we/wy. Najprostszym i najbardziej efektownym przykładem jest oczywiście mruganie diodami świecącymi. Mamy więc efekt ,.biegnącego punktu". Przy okazji uczymy się tworzyć pętle wytracania czasu. W kolejnych ćwiczeniach sposób zapalania LED-ów ulega modyfikacjom. Poznajemy też technikę wykorzystywania tablic przechowujących szablon wyświetlania (lookup tahle). Sterowanie wyświetlaczem 7-segmeniowym
W kolejnym ćwiczeniu zaznajamiamy się z techniką wyświetlania informacji na 7-segmentowym wyświetlaczu cyfrowym. Do dyspozycji są dwie pary wyświetlaczy. Uczymy się przy okazji tworzyć dwucyfrowy licznik rewersyjny. Sterowanie wskaźnikiem matrycowym 8x8 LED
Tym razem poprzeczka została nieznacznie podniesiona. Wykorzystujemy już jednocześnie dwa porty PO i P2. Uzyskujemy bardzo efektowne wrażenia wizualne. Wyświetlacz matrycowy umożliwia wyświetlanie pięknych znaków alfanumerycznych. Po nabraniu wprawy będziemy
mogli projektować własną semigrafikę. Przydaje się nabyta wcześniej umiejętność wykorzystywania tablic lookup. Pod koniec ćwiczeń jesteśmy już prawie gotowi do zaprojektowania własnej tablicy świetlnej z przesuwającymi się napisami. Obsługa klawiatury matrycowej 4x4
Do klasycznego otoczenia mikrokontrolera dochodzi zewnętrzny enkoder 74C922. Jest to specjalizowany układ przeznaczony do obsługi klawiatury matrycowej. Potrafi on wykryć wciśnięcie klawisza, a fakt ten sygnalizuje mikro kontroler owi generując przerwanie. Przekraczamy więc kolejny stopień wtajemniczenia. Reakcją na naciśnięcie klawisza jest zapalenie odpowiadającego mu LED-a lub cyfry na wyświetlaczu. Sterowanie silnikiem krokowym
To już nie przelewki. Postawione przed nami zadania stają się coraz trudniejsze. Niewątpliwie zadaniem takim jest sterowanie 4-fazowym silnikiem krokowym. Uczymy się obracać jego oś w dwie strony, wykonywać określoną liczbę obrotów, regulujemy też prędkość obrotów silnika. Wykorzystywanie pońu szeregowego
Przeprowadzamy dość dziwny eksperyment. Wysyłamy dane z wewnętrznego portu szeregowego fUART) zaimple-mentowanego w mikrokontrolerze, a odbieramy w rejestrze przesuwającym 74164. Wyjścia równoległe tego układu sterują LED-ami. Podobny przebieg ma kolejne ćwiczenie. Równoległe dane są w nim wysyłane z rejestru 74165 i odbierane przez UART. Transopioiy jako elementy sterujące
Do dyspozycji mamy dwa transopto-ry. Próbujemy poprzez nie sterować kierunkiem obrotów silnika krokowego, zliczać impulsy, itp. Obsługa iimerów mikrokonirolera w różnych trybach
Podobnie jak w pierwszym ćwiczeniu zapalamy LED-y. Tym razem jednak czas świecenia wyznacza wewnętrzny układ czasowy mikrokontrolera. W dalszej części budujemy generator przebiegu prostokątnego o ustalonej częstotliwości równej 1 kHz. Następny stopień wtajemniczenia obejmuje generację przebiegów na wyprowadzeniach P2.0 do P2.3. Kolejne ich częstotliwości pozostają w stosunku 1:2.
Rys. 3. Okno programu ^Vi$lon/51
62
Elektronika Praktyczna 7/2003
SPRZĘT
Rys. 4. Okno programu dScope-251/51
Śpiewać każdy może
Niekoniecznie śpiewać, ale grać na pewno. Niestety proponowany instrument robi to "trochę gorzej", fałszuje bowiem niemiłosiernie. Do odtwarzania dźwięków wykorzystuje zwykły buzzer, go może być pewnym usprawiedliwieniem problemów. Podbudowa teoretyczna jest za to bardzo naukowa. Wyświetlacz alfan umeryczny
To hasło spędza sen z powiek niejednemu elektronikowi. Korzystając z zestawu, uczymy się obsługiwać wyświetlacz alfanumeryczny LCD 20x2, wykorzystując 8-bitową magistralę danych. Początkowo napisy pojawiają się statycznie, by
w kolejnych krokach mrugać i przesuwać się po ekranie. Na koniec, wykorzystując nabyte wcześniej umiejętności, budujemy elektroniczny stoper pracujący z dokładnością do 0,01 s. Systemy wieloprocesorowe
To brzmi dumnie. W rzeczywistości chodzi o sprzęgnięcie dwóch zestawów poprzez port szeregowy.
Narzędzia programowe
Powyższe ćwiczenia można - jak wiemy - przeprowadzić w oparciu o przygotowane fabrycznie pliki.iiex. Prawdziwy konstruktor, choćby początkujący, będzie z pewnością próbował dołożyć do nich własną inwencję twórczą. Jest to możliwe, gdyś do zestawu dołączono ewalu-acyjne wersje programów ^Vision/5l (rys. 3) oraz dScope-251/51 (rys. 4) firmy Keil. Pozwalają one na tworzenie kodu wynikowego do 2 kP, zarówno w asernblerze, jak i w języku C. Debu-gger dScope-251/51 przydaje się do testowania na sucho programu przed zapisaniem go w pamięci mikrokontrolera.
Ocena
Zestaw MTS-51 to świetny zestaw edukacyjny. Pędzie na pewno dużą pomocą dydaktyczną w szkolnych
i uczelnianych pracowniach systemów mikroprocesorowych. Dobrze napisana książka będąca zarówno źródłem wiedzy ogólnej, jak i instrukcją obsługi ma niestety jedną wadę. Po kilku otwarciach rozsypuje się na pojedyncze kartki - już myślałem, że jest to tylko nasza ,,narodowa" specjalność. Szkoda też, śe nie opracowano polskiej wersji językowej podręcznika.
Płyta czołowa zestawu, choć zaprojektowana bardzo ergonomicznie, również nie jest pozbawiona drobnego błędu. Gniazdo krawędziowe portu szeregowego nie jest - jakby sugerowała to nazwa - wyprowadzone na krawędź płytki, w wyniku czego po włożeniu wtyku zostaje dość poważnie odkształcone. Mimo drobnych niedociągnięć, zestaw stwarza bardzo dobre wrażenie ogólne. Uczniowie będą zachwyceni tym, że mogą mrugać lampkami, wyświetlać ruchome napisy i sterować obrotami silnika. Jarosław Doliński, AVT jaroslaw.dolinski@ep.com.pl
Dodatkowe infoimacje
Cena kompletnego zestawu: 2900 zt netto.
Zestaw do testów udostępniła redakcji firma DN.tel. (22) 641-15-47, mvw.ndn.com.pl.
64
Elektronika Praktyczna 7/2003
PROGRAMY
Protel BH
Przełom na rynku narzędzi EDA dla elektroników, część 5
Wśród nowych cech Protela DXP nie sposób pominąć
modułu do automatycznego prowadzenia połączeń.
Zaimplementowany w Protelu DXP autorouter topologiczny
nowej generacji - Situs firmy Altium - wnosi nową jakość
w zakresie automatycznego prowadzenia ścieżek na płycie.
Pełna integracja z edytorem PCB ułatwia pracę i eliminuje
problemy, jakie zwykle występują przy wymianie danych
z innymi programami.

Auto ro uter top ol og ic zn y Si tu s
Stworzony od początku przez Altium autorouter nowe] generacji znalazł zastosowanie po raz pierwszy w pakiecie Protel DXP. W programie tym wykorzystano przestrzenną analizę, topologiczną, która zapewnia znacznie lepsze efekty w trasowaniu ścieżek, niż osiągane przez narzędzia bazujące na tradycyjnych algorytmach. Autorouter topologiczny jest pozbawiony wielu ograniczeń występujących w tradycyjnych narzędziach. Nieregularne kształty elementów, różne wielkości rastra wyprowadzeń, obudowy wyposażone w setki wyprowadzeń to cechy nowoczesnych obwodów drukowanych, z którymi nie radzi sobie większośó programów starszej generacji. Natomiast Situs sprawdza się doskonale nawet w przypadku obwodów, w których stosujemy obudowy elementów w różnych technologiach, także z różnym rozstawem wyprowadzeń oraz elementy obrócone pod dowolnym kątem.
W przeciwieństwie do starszych wersji Protela i wielu innych narzędzi, teraz autorouter radzi sobie dobrze ze skomplikowanymi obwodami, obsługując wszystkie technologie obudów do montażu powierzchniowego, m.in. takie jak BGA, QFP i LCC. Łączenie wyprowadzeń skomplikowanych elementów powierzchniowych wspomagają polecenia z menu Auto Tlouie>Fanoui (rys. 1], których zachowanie jest kontrolowane przez odpowiednie reguły projektowe z sekcji Fanoui Conirol.
Autorouter jest ściśle zintegrowany ze środowiskiem DXP i dostępny wprost z menu edytora PCB. Automatyczne prowadzenie ścieżek możemy uruchomió dla całej płyty lub fragmentu obwodu. Jak widaó na rys. 1, możemy poprowadzió ścieżki dla danej sieci [Net], wybranego połączenia [Conntec-tion), elementu [Component] oraz fragmentu wewnątrz wyznaczonego okna [Area] lub zdefiniowanego wcześniej obszaru [Room).
Situs przestrzega wszystkich reguł projektowych, elektrycznych oraz związanych z prowadzeniem połączeń. Respektuje m.in. takie szczegóły jak style przelotek oraz ślepe i zagrzebane przelotki.
Sposób konfiguracji autoroutera Situs jest odmienny od znanych we wcześniejszych wersjach Protela. Program jest dostarczany z zestawem gotowych strategii prowadzenia połączeń, każda dostosowana do specyficznych sytuacji. Situs wybiera automatycznie, zależnie od ilości warstw zdefiniowanych w projekcie, domyślną strategię dla płyt dwuwarstwowych (Dsfault 2 Laysr Board) lub domyślną strategię dla druków wielowarstwowych [Dsfault Multi Laysr Board}. Przed uruchomieniem autoroutera możemy również ręcznie wybraó jedną z kilku pre-definiowanych strategii lub stworzyó własną (rys. 2).
Domyślne strategie nie mogą byó modyfikowane, natomiast możemy je kopiowaó dowolną ilośó razy i na ich podstawie tworzyó i edytowaó własne strategie.
Rys. 1. Autorouter uruchomiomy i konfigu-rujemy w menu Auto Route wprost z edytora PCB
Optymalna konfiguracja strategii jest uzależniona od charakteru obwodu drukowanego. Prowadzenie ścieżek dla każdej strategii odbywa się w kilku przejściach. Trudno pole ció idealną konfigurację dla każdego rodzaju płyty, dlatego zaleca się wybór jednej z domyślnych strategii i eksperymentowanie z dodawaniem, usuwaniem i zmianą kolejności poszczególnych przejśó. Przykładową konfigurację autoroutera dla domyślnej strategii wielowarstwowej pokazano na rys. 3.
Prowadzenie ścieżek z kontrolą impedancji
Protel DXP wspomaga projektowanie obwodów drukowanych, dla których istotnym parametrem ścieżek jest ich impedancja charakterystyczna. Służy do tego specjalny tryb prowadzenia ścieżki, w którym zamiast stałej szerokości, program utrzymuje zadaną impedancję połączenia, dobierając automatycznie parametry geometryczne ścieżki.
Prowadzenie ścieżek w taki sposób, żeby spełniały założenia określonej impedancji, wymaga skonfigurowania parametrów fizycznych laminatu takich jak właściwości materiału, gru-bośó izolacji i miedzi, rozmieszczenia warstw zasilających względem sygnałowych, a także doboru odpowiedniej szerokości ścieżek.
Kontrolę tego procesu umożliwia Laysr Stack Manager, który zawiera wbudowany kalkulator impedancji ścieżek. Równania, jakimi posługuje się program do obliczania impedancji, możemy zobaczyó, a także zmo-dyfikowaó, klikając przycisk Impedance Gal-culation w oknie Layer Stack Manager. Pojawia się okienko Impedance Formuła Fdi-tor pokazane na rys. 4.
Kalkulator impedancji pracuje w zgodzie z regułami projektowymi Routing Width, kiedy są one skonfigurowane w trybie Cha-racteristic Impedance Driven Width. W tym trybie szerokośó połączenia wymagana na każdej warstwie jest obliczana na podstawie
Rys. 2. Dostępne sq predetiniowone strategie prowadzenia ścieżek
Rys. 3. Widok okna konfiguracji strategii autoroutera Situs
Elektronika Praktyczna 7/2003
65
PROGRAMY
Rys. 4. Okno Smpedanco Formuła Edttor pozwala podejrzeć i edytowoć równania, którymi posługuje się kalkulator impedan-cji połqczeri programu Protel
określone] irnpedancji, z wykorzystaniem odpowiednich równań oraz parametrów fizycznych zdefiniowanych dla stosu warstw. Ważne jest, żeby parametry stosu warstw (laminatu] były prawidłowo zdefiniowane. Tylko wtedy możemy osiągnąć realistyczne wyniki. Jeżeli prowadzimy połączenia, dla których mamy zdefiniowane reguły na im-pedancje., szerokość ścieżki jest ustawiana automatycznie na wymaganą dla danej warstwy, tak aby spełnić kryterium określonej impedancji.
Nowy sposób określania zasięgu reguł projektowych PCB
Reguły projektowe definiują wszystkie wymagania projektu, w tym takie jak odstępy izolacyjne, szerokości ścieżek, style łączenia warstw zasilających, parametry prze-
Rys. 5. Widok okno edytora reguł projektowych zwybranq regułq określajqcq impedancję połqczeri dla jednej z sieci
lotek i wiele innych. Każda reguła ma swćj zasięg, ktćry określa dokładnie, czego reguła dotyczy - na przykład wszystkich obiektów na płycie, wszystkich obiektów należących do określonej sieci (iys. 5] czy wszystkich obiektów posiadających określoną obudowę.. Zamiast używać stałych, predefiniowanych ustawień zasięgu reguł projektowych, Protel DXP wykorzystuje zapytania do określania, których obiektów dotyczy dana reguła. Wbudowany język zapytań daje pełną swobodę i nieograniczone możliwości definiowania zakresu działania każdej reguły (iys. 6). Zasięg reguły możemy określić na kilka sposobów, przykładowo:
- Używając predefiniowanych opcji dostępnych w oknie dialogowym każdej reguły, takich jak Net, Net Class, Layer oraz Net and Layer. Zaznaczając jedną z nich, a następnie wybierając parametr z listy rozwijanej, budujemy automatycznie zapytanie.
- Za pomocą narzędzia Query Builder - wybieramy z listy poszczególne składniki zapytania i budujemy szybko nawet złożone kwerendy, a program pomaga uniknąć błędów w składni.
- Używając narzędzia Query Helper, które zawiera wszystkie dostępne słowa kluczowe, każde opatrzone krótkim opisem. Naciskając Fl, kiedy kursor znajduje się w środku słowa kluczowego, uzyskujemy jego szczegółowy opis oraz przykłady stosowania.
Zastosowanie języka zapytań, znanego bardziej z baz danych, może wydawać się trochę dziwne w odniesieniu do programu służącego do projektowania. Jednak, jeśli uświadomimy sobie, że wszystkie obiekty oraz informacje zgromadzone w projekcie stanowią szczególny przypadek bazy danych, wtedy wprowadzenie języka zapytań wydaje się rozwiązaniem naturalnym. Filtrowanie informacji za pomocą zapytań daje nieograniczone możliwości, a jedyna wada takiego rozwiązania to potencjalna trudność w sprawnym posługiwaniu się tą techniką. Jednak mając do dyspozycji w programie wsparcie w postaci narzędzi takich jak wspomniane wcześniej Query Helper i Que-ry Builder, możemy tworzyć dowolnie złożone zapytania, nie znając nawet składni języka ani słów kluczowych.
Również opanowanie techniki tworzenia zapytań nie jest zadaniem ponad siły, a daje większą swobodę posługiwania się tym narzędziem. Wystarczy wiedzieć, że zapyta-
Rys. ó. Przykładowo reguła dotyczqca wszystkich elementów w obudowie typu IDC40P
Rys. 7. Najwyższq rangę posiada reguła Width_], której nadano priorytet równy 1
nie to kombinacja słów kluczowych, identyfikatorów obiektów i wartości, które połączone operacjami matematycznymi tworzą równanie - regułę, która jest analizowana przez program i stosowana do każdego obiektu. Obiekty spełniające regułę tworzą zbiór odpowiadający zapytaniu.
Aby system reguł był jeszcze bardziej elastyczny, oprócz zakresu działania możemy definiować priorytet każdej reguły. Priorytet określa porządek, w jakim są stosowane poszczególne reguły i ma szczególne znaczenie w przypadku, kiedy zakresy działania kilku reguł pokrywają się częściowo. W takim przypadku zastosowanie ma reguła o najwyższym priorytecie.
Priorytety reguł są widoczne w głównym oknie dialogowym Design Ruies, pokazanym na ilustracji poniżej. Najwyższy priorytet jest oznaczony liczbą 1 (iys. 7). Grzegorz Witek, Evatronix
Dodatkowe informacje
Dodatkowe informacje można uzyskać w firmie EvatroniK, www.evatronix.com.pl
Elektronika Praktyczna 7/2003
KURS
Opis protokołu Mbus v2 dla telefonów Nokia 3210, 33xx, 3410, 51 xx, 61 xx, 62xx, 7110, 82xx, 9110, 9210
Programowanie telefonów komórkowych, część 1
Transmisja w standardzie Mbus odbywa się jednoprzewodowo, tzn. przesył danych do i z telefonu odbywa się jedną linią komunikacyjną. Dane przesyłane są w postaci ramek, w których poszczególne bajty mają ściśle określone znaczenie. Transmisja zestawu ramek jest zabezpieczona przed błędami. Ostatnie miejsce w ramce zarezerwowane jest dla sumy kontrolnej, która obliczana jest specjalnym algorytmem.
W protokole Mbus wyróżniamy 2 podstawowe typy ramek:
- ramki danych,
- ramki potwierdzenia.
Komunikacja z telefonem odbywa się według poniższego schematu:
- wysyłamy ramkę danych,
- telefon odpowiada nam ramką potwierdzenia oraz ramką z pakietem informacji,
Programowani e telefon ów kom orkowych j est z jedn ej strony "sztuką m agiczn ą", n atomi ast z drugi ej m ożn a je przeprowadzić za pomocą dowolnego komputera i odpowiedniego oprogramowania. Podstawą jest zn aj om ość protokołu Mbus, który prze dstawiamy w artykule.
- wysyłamy ramkę potwierdzającą odbiór danych z telefonu.
Ramka danych
Format ramki danych wysyłanej do telefonu ID - 00 - Type - Type2 - LenMin - LenMax - Type3 - Błock -
Seq - CheckSum
Format ramki danych otrzymywanej z telefonu ID - Type - 00 - Type2 - LenMin - LenMax - Type3 - Błock -
Seq - CheckSum
Funkcje poszczególnych pól w ramkach wysyłanych i otrzymanych opisano w tab. 1.
Tab.1. Funkcje pól w ramkach wysyłanych i otrzymanych
Poaygawnamce Znaczenie Opis
ID Typ transmisji 0x1C - IR/Fbus 0x1 E-Serial Fbus 0x1 F - Serial Mbus
Type Rodzaj transmisji 0x1 D-TE Mbus 0x10 - TE Mbus (sen/ice soft) -wykorzystując ten rodzaj transmisji, należy wpierw wprowadzić telefon wntryb serwisowy
Type2 Typ ramki 0x40 - Ramka danych 0x7F - Ramka potwierdzająca
LenMin 0x00
Len Max Długość ramki Liczba bajtówwnprzedziale: [Błock....Checksum]
Type3 Kierunek danych 0x00, 0x01 - ramka danych do telefonu 0x01,0x01 - ramka danych zntelefonu
Błock Blok danych Jestto najbardziej znaczący obszarwncałej ramce. Znajdują się tu bajty będące rozkazami dla telefonu oraz dane. Chcąc odczytać wartość określonego parametru, wntym bloku należy wstawić jedynie wartość rozkazu odpowiedzialnego za jego pobranie.
Seq Numer sekwencji Pole to zawiera numer sekwencji ramki. Numer sekwencji jest zwiększany przy kolejnej ramce wysyłanej do telefonu, pod warunkiem żennie przeprowadzamy retransmisji znpowodu błędów.
Checksum Suma kontrolna Suma kontrolna niesie informację onpoprawności ramki danych. Jeśli nie zostanie ona prawidłowo obliczona, telefon odrzuci ramkę inprzerwie komunikację. Suma kontrolna obliczana jest ze wszystkich bajtów wchodzących wnskład ramki za pomocą funkcji X0R.
Ramka danych w Mbus I
Standardowe parametry
transmisji są następujące:
prędkość 9600 bd, ramka
składa się z 8 bitów danych,
1 bitu stopu, bez parzysto-
^^^^^^h ści. ^^^J
Jeśli chcemy zmienić wartości ustawień telefonu, to po określonym rozkazie występują jeszcze bajty danych z nowymi wartościami dla określonego parametru.
W ramkach danych otrzymywanych z telefonu w tym bloku znajduje się kod rozkazu, który był wcześniej wysyłany, oraz wartości parametru, którego dany rozkaz dotyczy.
Ramki potwierdzenia
Po wysłaniu odpowiednio zbudowanej ramki danych, telefon odpowiada ramką potwierdzenia, oznaczającą poprawne odebranie danych, a następnie prześle nam w odpowiedzi ramkę danych. Odbiór danych musimy potwierdzić, wysyłając ramkę potwierdzenia o określonym formacie.
Format ramki potwierdzenia otrzymywanej z telefonu: ID - Type - 00 - 7F - Seq2 -Checksum
W ramce potwierdzającej, którą otrzymujemy z telefonu, komórka Seq2 przyj
68
Elektronika Praktyczna 7/2003
KURS
1N414S
Do PC
-w' +
1M414S
7605 -IN
OUT-
QND
MAX232
VCC
T1IN T1OUT T2IN T20UT
R1OUT R1IN R2OUT R2IN
GND
VEE
16
AA.
7
4k7<
Rys. 1. Schemat elektryczny standardowego interfejsu Mbus
rnuje wartość pola Seq z ramki, którą wcześniej wysyłaliśmy framka danych).
Forma i ramki potwierdzenia wysyłanej do telefonu
ID - 00 - Type - 7F - Seq2 - Checksum
Tryb testowy
Czynności opisane poniżej można wykonać wyłącznie po wcześniejszym wprowadzeniu telefonu w tryb testowy, tzw. TEST MODĘ. W tym trybie telefon jest przygotowany jedynie do wykonywania operacji testowych. Odbieranie połączeń przychodzących, a także wykonywanie połączeń nie jest możliwe. Telefon powróci do normalnego trybu pracy po wyzerowaniu lub wyłączeniu i ponownym włączeniu. Aby wprowadzić telefon w tryb testowy, należy wysłać ramkę, z rozkazem przełączenia w TEST MODĘ fkod 0x64, 0x02).
Przełączenie w tryb testowy wymaga wysłania ramki danych pokazanej poniżej:
1F 00 10 40 00 04 00 01 64 02 31 ID
Telefon potwierdza przyjęcie ramki poprzez wysłanie ramki:
Tab. 2. Parametry możliwe do odczytania z telefonu oraz odpowiadające im kody rozkazów
Parametr do pobrania Rozkaz binarny
MSID 0xB4, 0x45, 0xF9
MCU SWChecksum OxCS, 0x02
COBBA OxCS, 0x0 D
DSP internal (ROM) OxCS, 0x09
HW OxCS, 0x05
ASIC Sys 0xCS, 0x0C
Locks irrfo 0xSA, 0x00
Praduct serial number 0xCA, 0x03
Product code 0xCA, 0x04
Manutacter Month 0xCC, 0x02
Ustawienia profilu 0x6A
1F 10 00 7F 31 41
Następnie telefon przesyła odpowiedź:
1F- 10- 00 -40-00- 0C- 01 -01 -64- 02-01 -45-OD 01 01 01 1B 58 02 2C
Odebranie danych należy potwierdzić za pomocą ramki:
1F 00 10 7F 09 79
Najlepiej przeprowadzić retransmisję w celu uzyskania pewności, że telefon przełączył się w tryb testowy!
Prezentację budowy ramek komunikacyjnych mamy już za sobą, możemy więc przystąpić do "zabawy" z telefonem.
Informacje o telefonie
Aby uzyskać jakiekolwiek informacje od telefonu na temat jego parametrów, należy wysłać ramkę z rozkazem ich podania. W zależności od parametru, na temat którego chcemy uzyskać informacje, należy posłużyć się rozkazem odpowiedzialnym za ich pobranie. Każdemu rozkazowi przyporządkowany jest inny parametr.
Sumy kontrolne
Liczenie sum kontrolnych ramek przesyłanych przez
magistralę Mbus ułatwi
program udostępniony przez
autora artykułu, który
publikujemy na płycie
CD-EP5/2003B.
tumy luarraliwj &* prnTnkflłu *hu*
Elektronika Praktyczna 7/2003
69
KURS
1M4146
7805
|------<~6ND~>
Rys. 2. Schemat uproszczonego interfejsu Mbus (dla modeli Nokia 8210 i 8850)
Przykłady
Wysyłamy ramkę z rozkazem podania wersji, daty powstania oraz wersji modelu
1F 00 10 40 00 04 00 01 C8 01 01 32
Telefon potwierdza przyjęcie ramki z poleceniem
1F-10-00-7F-01-71 Następnie przesyła odpowiedź:
00 25 01 01 C8 01 -36-2E-30-30-0A-30- ' -?D-3Q-3Q-QA-4E-S3-
35-35-35-35-35-35-35-35-35-35-35-35-
35-38-00-03-AC
Transmisję kończy potwierdzenie odebrania danych z telefonu:
1F 00 10 7F OB 7B
Po konwersji odebranego kodu na znaki ASCII otrzymamy numer IMEI:
1F10 00
00-56-20-33 2D 31
4S-?D-38-0A-?8-63-?9-?O-4E-4D-50 - 2E - 00 03 - 84
Transmisję kończy potwierdzenie odebrania danych z telefonu
1F-00-10-/F-0A-/A
Odebrane dane są zapisane są w kodzie szesnastko-wym. Po konwersji kodu na znaki ASCII otrzymamy np.:
_V 06,00_03-10-00_N3E-S_
Zmiana IMEI i innych parametrów telefonu
Modyfikację IMEI
W*H*T0W ^^B ,W*L* ^^^
il^ (T
2-y
i Ś Ś^'#^^i*
oraz
szeregu innych
parametrów
umożliwia
program Nokia
Tester, który
publikujemy
na CD-EP7/
2003B.
Uzyskanie numeru IMEI wymaga wysłania ramki z danymi pokazanymi poniżej: 1F 00 10 40 00 04 00 01 CC 01 -02-85
Telefon potwierdza jej poprawne przyjęcie:
1F10 00 7F 02 72
Następnie przesyła odpowiedź:
1F 10 00 40 00 15 01 01 CC 01 00 35
Przedstawiony powyżej IMEI został celowo zmieniony w telefonie na potrzeby artykułu. W rzeczywistości taka wartości nie jest prawidłowa. ICaśdy telefon ma swój niepowtarzalny IMEI, który nie powinien być nikomu udostępniany. W niektórych krajach zmiana IMEI w telefonach jest prawnie zabroniona.
Odczytanie kodu zabezpieczającego wymaga wysłania ramki pokazanej poniżej: 1F 00 10 40 00 04 00 01 6E 01 -03-26
Telefon potwierdza jej poprawny odbiór za pomocą ramki:
1F 10 00 7F 03 73
Następnie telefon przesyła odpowiedź zawierającą kod zabezpieczający fw zapisie szesnastkowym): 1F-10-00-40-00-OB-01-01-6E-01-01-31-
3? 33 34 3^ 00 05 1E Transmisję kończy potwierdzenie odbioru danych:
1F 00 10 7F 0C 7C
Po konwersji odebranego kodu na znaki ASCII otrzymujemy:
12345
Uzyskanie informacji o zainstalowanym w telefonie pakiecie językowym wymaga przesłania do telefonu następującej ramki danych:
1F 00 10 40 00 04 00 01 C& 12 04 94
Telefon potwierdza jej przyjęcie za pomocą ramki pokazanej poniżej:
1F 10 00 7F 04 74
Następnie przesyła odpowiedź:
1F 10 00 40 00 07 01 01 C8 12 00 42
00 - 09 - D9
Transmisję kończy potwierdzenie odbioru danych:
1F 00 10 7F OD 7D
Po konwersji odebranego kodu na znak ASCII otrzymamy: E - litera ta oznacza w przypadku Nokii 3210 następujące dostępne języki: angielski, niemiecki, francuski, grecki, bułgarski, węgierski, rumuński, polski, czeski, słowacki, chorwacki, serbski, słoweński, rosyjski, estoński, litewski, łotewski, arabski, hebrajski. W tab. 2 zestawiono niektóre parametry, które mośna odczytać z telefonu oraz odpowiadające im kody rozkazów.
Do odczytywania i modyfikacji parametrów telefonów jest niezbędne specjalne oprogramowanie oraz łatwy w wykonaniu interfejs, którego dwa warianty przedstawiono na iy& 1 i 2. Oprogramowanie sterujące, w tym edytor podstawowych parametrów telefonów, publikujemy na CD-EP7/2OO3E.
Marcin Czerniawski SimKom@wp.pl
Pragnę gorąco podziękować mojej dziewczynie Agnieszce za duchowe wsparcie podczas zdobywanie informacji na temat protokołu oraz podczas pisania artykułu. Bez jej pomocy artykuł nigdy by nie powstał.
70
Elektronika Praktyczna 7/2003
MINIPROJEKTY
Wspólną cechą układów opisywanych w dziale "Miniprojekty" jest łatwość Ich praktyczne] 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 scaionych, 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,
Częstościomierz analogowy
Me od dziś
wiadomo, że z 555
można zrobić wszystko -
jeden z przykładów
przed sta wiamy
w artykule.
R ekom en da ej e:
prościutki przyrząd
laboratoryjny, za
pomocą którego można
wykonać całkiem
poważne pomiary.
W częstościomierzu zastosowano popularny timer NE555, co uczyniło konstrukcję miernika prostą i bardzo tanią. Na rys. 1 przedstawiono schemat elektryczny układu.
Prezentowany częstościomierz ma za zadanie przetworzenie częstotliwości wejściowej na napięcie, którego wartość średnia jest wskazywana przez miernik magnetoelekt-ryczny. Timer 555 pracuje tutaj jako przerzutnik monosta-bilny, wyzwalany impulsami wejściowymi. Wypełnienie impulsów wyjściowych zależy od stosunku czasu trwania impulsu wyjściowego do okresu wyzwalania. Zależność ta jest liniowa i dlatego możemy wykorzystać ją do pomiaru częstotliwości.
Miernik ma dwa wejścia: jedno służy do pomiaru sygnałów prostokątnych o poziomach TTL, drugie do pomiaru sygnałów sinusoidalnych. Sygnały sinusoidalne są odpowiednio formowane we
wzmacniaczu wejściowym, złożonym z tranzystorów Tl i T2.
Mały pobór prądu przez miernik kwalifikuje go do zasilania bateryjnego. Za jego pomocą można mierzyć częstotliwości w zakresie od 20 Hz do 200 kHz, w czterech zakresach pomiarowych przełączanych z w orkami ZW1...ZW4. Ze względu na niewielki pobór prądu miernik może być z powodzeniem zasilany z baterii 9V.
Miernik wykonano na jednostronnej płytce drukowanej, której schemat montażowy pokazano na rys. 2. Układ po prawidłowym zmontowaniu i włączeniu zasilania za-
Rys. 1
.ca J_C4 J_cs .
'47n ~T4fl7~T470p
.ci
"WEJ
Rys. 2
czyna pracować od razu, wymaga jedynie wyska-lowania. W tym celu powinniśmy posiadać generator sygnału o częstotliwości 20 Hz...200 kHz oraz miernik częstotliwości. Za pomocą zworek (jumperów lub innych przełączników) wybieramy zakres, na
którym przeprowadzimy regulację, następnie do wejścia pomiarowego przykładamy sygnał o maksymalnej częstotliwości odpowiadającej danemu zakresowi. Równolegle z generatorem, na wejście możemy kontrolnie podłączyć cyfrowy miernik częstotliwości. Potencjometrem danego zakresu, obserwując wskazania miernika wychy-łowego, ustawiamy wskazówkę na maksimum wskazań. Tak samo postępujemy podczas regulacji na pozostałych podzakresach. Krzysztof Górski, AVT krzysztof.gorski@ep.com.pl
WYKAZ ELEMENTÓW
Rezystory
Rl: lOkO R2...R4: lOOkO R5: 33kO P0T1...4: lOOkO P0T5; 1KD Kondensatory CL C2: lnF C3: 47nF C4: 4,7nF CS: 470pF CÓ: 5ópF C7: 10nF C8, C9: lOOnF CIO: 1OO^F/1ÓV Cli: 22O^F/1ÓV Półprzewodniki Tl: BC327 T2: BC547 US1: NE555 US2: 78L05
Płytka drukowana jest dostępna w A VT - oznaczenie AVT-1369.
Wzory płytek drukowanych w formacie PDF są dostępne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl IipiecQ3.htm oraz na płycie CD-EP7/2003 w katalogu PCB.
Elektronika Praktyczna 7/2003
71
MINIPROJEKTY
Zabezpieczenie linii telefonicznej
W artykule
przedstawiono prosty
w wykonaniu, lecz
skuteczny układ mogący
być jednocześnie
"obrońcą" użytkownika
telefonu stacjonarnego
i "dręczycielem"
potencjalnych piratów
telefonicznych.
Po dsta wo wym
przezn a czeniem
urządzenia jest
zabezpieczenie linii
telefonicznej przed
piratami.
R ekom en da ej e:
urządzenie przydatne
tym użytkownikom
telefonów, którzy chcą
zapewnić
bezpieczeństwo swoim rachunkom...
Na rys. 1 przedstawiono schemat elektryczny urządzenia. Jego konstrukcję można podzielić na trzy bloki funkcjonalne: blok linii, blok zasilania i generator sygnału akustycznego.
Blok linii z blokiem zasilania umożliwia bezpośred-
Tl w stan przewodzenia, co powoduje zablokowanie tranzystora T2 i odcięcie zasilania generatora. Po obniżeniu się napięcia na
Rys. 1
nie podłączenie urządzenia do linii telefonicznej oraz zasilanie generatora. Generator zbudowano na timerze NE555 pracującym w trybie astabil-nym. Jest on źródłem zakłócającego sygnału akustycznego-
Po podłączeniu urządzenia do linii telefonicznej będącej w stanie spoczynku (napięcie 48...60 V), dioda Zenera Dl zaczyna przewodzić wprowadzając tranzystor
Rys. 2
linii telefonicznej poniżej napięcia Zenera diody Dl, dioda ta przestaje przewodzić, a kondensator Cl przez chwilę podtrzymuje przewodzenie Tl. Odblokowany tranzystor T2 włącza zasilanie generatora USl, który zaczyna wysyłać w linię akustyczny sygnał zakłócający. Dodatkowo do wyjścia generatora możemy dołączyć słuchawkę, która umożliwia monitorowanie linii telefonicznej.
Układ zmontowano na jednostronnej płytce drukowanej, na której umieszczono wszystkie elementy układu. Schemat montażowy przedstawiono na rys. 2. Uruchomienie układu ogranicza się praktycznie do sprawdzenia poprawności montażu i podłączenia linii telefonicznej.
Prezentowane urządzenie może być z powodzeniem wykonany przez każdego początkującego elektronika amatora.
Krzysztof Górski, AVT krzysztof.gorski@ep.com.pl
WYKAZ ELEMENTÓW
Rezystory
Rl, R4: 47kO
R2: 100kQ
R3: 100O
R5: lOkO
Kondensatory
Cl: 1O^F/Ó3V
C2, C3: lOOnF
C4: 47nF
Półprzewodniki
Dl: C15V
D2: C4V7
Ml: l^A/lOOY
Tl: MSPA42
T2: MSPA44
USl: NE555
Różne
Złgcze śrubowe ARK
Płytka drukowana jest dostępna w A VT - oznaczenie AYT-1368.
Wzory pfyiek drukowanych w formacie PDF są dostępne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl IipiecQ3.htm oraz na płycie CD-EP7/2003 w katalogu PCB.
72
Elektronika Praktyczna 7/2003
KURS
Celem tego artykułu jest opis funkcjonowania oraz sposobów konfiguracji i wykorzystania timerów w mikrokontrolerach z rodziny AVR. Rozpoczynając od ogólnego opisu, poprzez przykładowe programy, postaram się wytłumaczyć jak wykorzystać timer wbudowany w strukturę mikrokontrol era AVR dla własnych potrzeb. W przykładach programów posługiwałem się mikrokontrolerem AT90S8535.
Obsługa timerów Trudno jest znaleźć polski odpowiednik słowa "timer". Większość konstruktorów, którzy mieli już do czynienia z mikrokontrolerami, doskonale wiedzą jakie funkcje może on spełniać. Pozwólcie więc, że będę się tym słowem posługiwał bez poszukiwania jego odpowiednika w naszym ojczystym języku.
Timer to prosty układ liczący, najczęściej o rozdzielczości 8 lub 16 bitów. Niech nie zwiedzie nas jednak prostota jego budowy - z każdym ti-merem związany jest bowiem szereg różnych zmiennych (najczęściej są to bity rejestru kontrolnego) wpływających na to w jaki sposób będzie on pracował. Często istnieją więc możliwości nastaw kierunku zliczania (w górę lub w dół) oraz wyboru źródła impulsów zegarowych - czy to z otoczenia mikrokontrolera, czy też z wewnętrznego generatora zegarowego lub dołączonego rezonatora kwarcowego (AVR). Programista - elektronik najczęściej używa timera bądź to do zliczania impulsów, bądź to do pomiaru czasu ich trwania albo też do budowy tak zwanego generatora PWM. Będzie o tym mowa w dalszej części artykułu.
Najczęściej, jeśli timer wykorzystywany jest do pomiaru czasu trwania impulsu, to jako wzorzec wykorzystuje się wewnętrzny generator zegarowy lub wzorcowy, zewnętrzny sygnał od-
niesienia. Prowadzi to nas do wniosku, że czas trwania impulsu może być mierzony z dokładnością do czasu trwania impulsów wzorcowych. Stanowią one swego rodzaju jednostkę pomiarową. Najważniejszą jednak cechą timera jest ta, że może on funkcjonować niezależnie od reszty procesów obsługiwanych przez jednostkę centralną mikrokontrolera (abstrahując od konfiguracji bitów kontrolujących pracę timera, która musi być wykonana przez CPU).
Struktury współczesnych mikrokon-trolerów wyposażane są w 2 lub 3 układy timerów. Mikrokontrolery rodziny AVR (AT90 i ATmega) są wyposażone w dwa timery 8-bitowe i jeden 16-bitowy. W większości zastosowań większe możliwości oferuje timer 16-bitowy, jednak dla wielu aplikacji rozdzielczość 8-bitowa jest wystarczająca. Jest ona też bardziej dopasowana do architektury rdzenia (który jest 8-bitowy) i przez to umożliwia znacznie szybsze wykonywanie operacji arytmetycznych czy porównań ze stałymi lub zmiennymi używanymi przez daną aplikację.
Ze względu na swoją elastyczność, timery mikrokontrolerów AVR mogą być wykorzystywane dla różnych celów. Dalsza część tekstu ma na celu przybliżenie tych zastosowań oraz wytłumaczenie w jaki sposób niezależne układy funkcjonalne komuniku-
Tabela 1. Nastawy bitów preskalera
TCCRx Synchroniczny TimerO i Timer 1 PcKo,i=zegarsyst. Synchioniczry/Asynchroniczny Timer 2 pck2 =zegarsyst/zegarzewn.
Bit 2 Bit 1 Bito
0 0 0 0n(Timer0/1 zatrzymany) On (Ti mer 2n zatrzymany)
0 0 1 PCK (zegar systemowy) Pck2 (zegar systemowy lub asynchroniczny)
0 1 0 Pck/8 Pck2/8
0 1 1 Pck/64 PCK2/32
1 0 0 Pck/256 PCK2/64
1 0 1 Pck/1024 PCK2/128
1 1 0 PCK opadające zbocze na wypr.Tx PCK2/256
1 1 1 PCK narastające zbocze na wypr.Tx PCK2/1024
ją się z CPU mikrokontrolera oraz jak mogą być przezeń wykorzystane.
Sygnalizacja zdarzeń
CPU mikrokontrolera AVR może monitorować do 3 zdarzeń powodowanych przez każdy z timerów. Zdarzenia te są sygnalizowane przez ustawienie odpowiednich bitów statusu (tak zwanych flag) w rejestrze TIMSK [Timer Interrupt Mask). Tak więc kontrola stanu timera sprowadza się do testowania przez CPU mikrokontrolera maksymalnie 3 bitów sygnalizujących stan timera. Bitami tymi są: Timer Overflow (przepełnienie timera)
Ustawienie tego bitu informuje, że timer osiągnął wartość maksymalną i zostanie wyzerowany w następnym cyklu zegarowym. Jak wcześniej wspomniałem, AVR wyposażony jest w dwa timery 8-bitowe oraz jeden 16-bitowy. W praktyce oznacza to dwa timery mogące liczyć do wartości OxFF oraz jeden liczący do OxFFFF. Przepełnienie sygnalizowane jest przy pomocy bitu noszącego nazwę Timer Overflow Flag (TOVx) w rejestrze TIFR [Timer Interrupt Flag Register). Compare Match (spełniony warunek porównania)
W przypadku, gdy nie jest konieczne monitorowanie stanu flagi przepełnienia, może być używane przerwanie typu COMPARE MATCH wywoływane, gdy wartość zapamiętana w rejestrze OCRx [Output Compare Register) zgadza się ze zliczoną przez timer. Wskazanie przez timer wartości identycznej z zapisaną w rejestrze OCRx powoduje ustawienie właściwego bitu OCFx [Output Compare Flag) w rejestrze TIFR. Timer może być również skonfigurowany w taki sposób, aby jednocześnie z ustawieniem flagi OCFx wartość rejestru liczącego timera była zerowana. Istnieje również możliwość wyboru takiego trybu pracy, dzięki któremu automatycznie, w momencie
Elektronika Praktyczna 7/2003
77
KURS
T0SC1
AS2
CS10 CS11 CS12
zegar tlmera 2
zegar tlmera 1
zegardmeraO
Rys. 1. Poglądowy schemat połączeń pomiędzy preskalerem i multiplekserem dla Timerów 0 i 1 (a) oraz 2 (b)
Uwagi:
1. Preskaler pracuje nieprzerwanie - również podczaswprowadzanianastawtimerów. Wnprzy-padkach gdy wymagane jest bardzo dokładne odmierzanie czasu, należy samemu zadbać onto, aby ti mer został zatrzymany inpreskaler zaczął podział
od wartości 0. Wnmikrokontrolerach nie przeprowadzających zerowania preskalera może ono zostać przeprowadzone przezdetekcje, przepełnienia preskalera przez aplikację oraz inicjalizacjęn rejestru TCNTx po tym zdarzeniu.
2. Wnnowszych mikrokontrolerach posiadających preskaler dzielony pomiędzy kilka timerów, przeprowadzenie sekwencji resetwntaki sam sposób wpływa na wszystkie podłączone urządzenia, inicjując je in przeprowadzając odliczanie od wartości 0.
spełnienia warunku porównania, odpowiednim wyprowadzeniom mikro-kontrolera może zostać przypisany stan niski, wysoki lub zanegowany. Funkcja ta jest bardzo użyteczna podczas budowy generatorów sygnału prostokątnego o różnej częstotliwości. Oferując szeroki zakres generowanych częstotliwości umożliwia na przykład budowę prostych przetworników cyfrowo - analogowych, jakkolwiek do tego zastosowania bardziej właściwym wydaje się wykorzystanie trybu generatora o modulowanej szerokości impulsu (PWM). Input Capture (przechwyt wartości)
Mikrokontrolery AVR posiadają wejście nazywane Input Capture (IC). Zmiana stanu na tym wejściu powoduje, że aktualna wartość timera jest odczytywana i zapamiętywana w rejestrze ICRx [Input Capture Register). Jednocześnie ustawiana jest flaga ICFx [Input Capture Flag) w rejestrze TIFR. Funkcja ta najczęściej wykorzystywana jest do pomiaru czasu trwania impulsu.
Każdy z wyżej wymienionych bitów może wywoływać odpowiedni wektor przerwania. Przerwaniami oraz ich obsługą zajmiemy się w dalszej części artykułu.
Kontrola stanu timera
Są trzy podstawowe metody kontrolowania zdarzeń generowanych przez timer a tym samym powodowania reakcji mikrokontrolera w zależności od stanu timera:
1. Kontrolowanie stanów bitów statusu (flag) w czasie pracy programu poprzez ich testowanie metodą odpytywania [pooling - odpytywanie) i podejmowanie akcji odpowiedniej dla danej ich kombinacji.
2. Odpowiednie ustawienie rejestru kontrolującego przerwania a następnie automatyczne przerywanie pracy programu głównego i wykonywanie programów obsług przerwań.
3. Sprzętowa i całkowicie automatyczna zmiana stanu odpowiedniego wyprowadzenia mikrokontrolera.
Kontrola statusu flag korzysta z faktu, że wewnętrzne układy mikrokontrolera ustawiają określone bity powodujące przejście do procedury obsługi przerwania o ile ta nie została zabroniona. Oczywiście warunkiem korzystania z tej metody jest wyłączenie obsługi przerwania, bo inaczej odpytywanie nie miałoby sensu. Kontrola stanu bitów flag, jakkolwiek chyba najłatwiejsza do wykonania, jest jednocześnie mało efektywną bo zajmuje czas mikrokontrolera. Należy również liczyć się z pewnym opóźnieniem przy podejmowaniu akcji, ponieważ CPU zanim zacznie kontrolować stan flag, może być zaangażowane w realizację zupełnie innej części kodu związanej z obsługą całkowicie innych funkcji mikrokontrolera.
Poniższy fragment programu w asem-blerze ilustruje użycie tej metody wykorzystanej do kontroli Timera 0:
loop: ;główna pętla programu
in rl6,TIFR
;załadowanie rejestru TIFR
;do rl6
sbrs rl6,TOV0 ;omiń następną instrukcję, ;jeśli bit 0 w r16 jest ;ustawiony
rjmp loop
;wykonaj skok do początku ;pętli głównej programu ;jeśli bit przepełnienia ;Timera 0 nie był ustawiony
event:
;tu rozpoczyna się obsługa ; zdarzenia "przepełnienie ;Timera 0"
Linie te powinny być umieszczone w pętli głównej wykonywanego programu a stan flag musi być kontrolowany tak często, jako tylko jest to możliwe.
Najlepszym - moim zdaniem - sposobem kontroli stanu timera jest wykorzystanie systemu przerwań. Jak wcześniej wspomniałem, określone zdarzenia związane ze stanem timera powodują ustawianie flag w rejestrze TIMSK. Powodem ustawienia flagi może być przepełnienie rejestru liczącego, spełnienie warunku porównania czy też zakończenie działania przez funkcję pomiaru czasu trwania impulsu związaną z wejściem ICP. Tyle gwoli przypomnienia. O ile wykonywanie funkcji obsług przerwań jest
78
Elektronika Praktyczna 7/2003
dozwolone, CPU mikrokontrolera przerywa wykonywanie bieżącego programu lub wychodzi ze stanu uśpienia i wykonuje skok pod ściśle określony adres związany z danym powodem przerwania. Jednocześnie zapamiętany zostaje stan licznika rozkazów tak, że jest możliwe jego odtworzenie w momencie powrotu do programu głównego.
Jest to metoda bardzo efektywna -oszczędza czas mikrokontrolera angażując CPU tylko wówczas, gdy to jest naprawdę potrzebne, chociaż nastręcza pewne trudności przy implementacji. Program główny jest bowiem przerywany w momencie, który trudno przewidzieć i to programista musi zadbać o to, aby przy wejściu do procedury obsługi przerwania i po jej opuszczeniu program nadal wykonywany był normalnie. Odpowiednie przerwania załączane są przez nastawy bitów w rejestrze TIMSK [Timer Interrupt Mask).
Poniższy przykład w asemblerze ilustruje w jaki sposób włączyć procedurę obsługi przerwania na skutek przepełnienia Timera 2:
ldi rl6,1<out TIMSK/rl6 ;zezwolenie na
;przerwanie Output
;Compare Timera 2 sei ;zezwolenie na
;przyjmowanie przerwań
Tryby pracy, w które wyposażono Timer 1 i Timer 2 umożliwiają również nastawy akcji wykonywanych w sposób sprzętowy, bez konieczności wykonywania żadnego podprogra-mu. Odpowiednie wyprowadzenie mikrokontrolera może zostać skonfigurowane w taki sposób, aby było ustawiane, zerowane bądź też negowane w momencie spełnienia warunku porównania. W stosunku do dwóch poprzednich rozwiązań ten tryb nie angażuje w żaden sposób CPU mikrokontrolera. Poniższy przykład ilustruje ten sposób konfiguracji z wykorzystaniem Timera 2:
ldi rl6, (1COM20) I (lCS20) out TCCR2/rl6 ;0C2 negowany po spełnieniu ;warunku compare/match
;zegar = zegar systemowy ldi rl6,32
out 0CR2,rl6 ;ustawienie ;porównywanej wartości na 32
Poziom logiczny wyprowadzenia OC2 jest negowany w momencie spełnienia warunku porównania (gdy licznik Timera 2 osiągnie wartość dzie-
siętną 3 2). Zawiera on też sposób ustawienia wartości porównywanej. Konfiguracja timera jest dokonywana przy pomocy ustawienia bitów COMxO
1 COMxl w rejestrze TCCRx - w przypadku użycia Timera 2 są to bity COM20 i C0M21 w rejestrze TCCR2.
Należy jednak pamiętać o tym, że wybór trybu pracy timera nie wpływa na ustawienie kierunku linii portu właściwej dla OC2. Aby zezwolić na ustawianie wartości wyprowadzenia OC2, odpowiedni bit konfiguracji kierunku bitu portu musi być ustawiony w taki sposób aby wyprowadzenie to pracowało jako wyjściowe.
Opcje nastaw zegara
Generator zegarowy AVR zawiera preskaler podłączony do multipleksera. Preskaler to dzielnik częstotliwości zegara. Został on zaimplementowa-ny jako licznik z kilkoma wyjściami o różnych stopniach podziału. W przypadku AT90S8535 jest to 10-bitowy licznik używany do wytworzenia czterech (w przypadku Timera
2 sześciu) różnych częstotliwości taktujących timery, wynikających z po-
^^^^^^^^^H KURS
działu częstotliwości generatora zegarowego. Multiplekser używany jest do wyboru która z czterech (sześciu) częstotliwości używana jest jako podstawa czasu timera. Alternatywnie multiplekser może być użyty do ominięcia preskalera oraz konfiguracji zewnętrznego wyprowadzenia jako wejściowego dla timera.
Timery 0 i 1 są timerami synchronicznymi i używają zegara systemowego CPU jako źródła sygnału zegarowego. Asynchroniczny Timer 2 wymaga własnego preskalera co czyni go niezależnym od zegara systemowego. Na rys. 1 pokazano połączenia pomiędzy preskalerem i multiplekserem. Danych na temat konkretnej konfiguracji dla danego mikrokontrolera AVR należy szukać w jego karcie katalogowej. W tab. 1 zawarto listę możliwych nastaw preskalera. I tu również należy odwołać się do danych zawartych w konkretnej karcie katalogowej, gdzie prawdopodobnie będą one opisane dokładniej i powiązane z konkretnym modelem mikrokontrolera. Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Elektronika Praktyczna 7/2003
79
KURS
Sterowanie graficznych wyświetlaczy
z telefonów komórkowych firmy Nokia, część 3
W ostatniej części cyklu przedstawiamy procedury umożliwiające wyświetlanie na wyświetlaczu graficznym znaków alfanumerycznych, bargrafów, prostych grafik oraz linii. Z myślą o najbardziej niecierpliwych Czytelnikach przedstawiamy także sposób sterowania wyświetlacza za pomocą komputera PC z zainstalowanym odpowiednim oprogramowaniem.
Pisanie na ekranie
Jeśli mamy już za sobą procedurę ini-cjalizacji wyświetlacza, możemy przystąpić do wyświetlania informacji. Zaczniemy od wyświetlania tekstów. Jak już wcześniej sygnalizowałem, do tego celu będzie potrzebny tzw. generator znaków. W przypadku mikrokontrolerów będzie to po prostu obszar pamięci ROM (Flash) mik-rokontrolera z zapisanymi wzorcami poszczególnych znaków ASCII. Stosując znaki o wielkości 5x7 pikseli, zapisanie jednego znaku będzie wymagało 5 bajtów pamięci. Aby poszczególne znaki były od siebie oddzielone, należy dodać jeszcze jeden - 6 bajt. Zakładając możliwość wyświetlania znaków ASCII o kodach od Odo 127, potrzebujemy 128*6 = 768 bajtów pamięci Flash. Znaki o kodach poniżej 32 (32 to spacja) mogą być wykorzystane do wyświetlania dodatkowych symboli lub semigrafiki. W tym miejscu wyjaśnię, dlaczego warto stosować generator zawierający 6 bajtów na znak, zamiast 5 bajtów i automatycznego dodawania przerwy po każdym znaku. Otóż możemy
tworzyć znaki semigraficzne większe niż wielkość jednego znaku - poprzez składanie ich z kilku znaków. Jeśli zastosujemy metodę automatycznego dodawania przerwy, to wtedy taka semigrafika będzie poprzedzielana przerwami. Jeśli jednak nie zamierzamy wykorzystywać semigrafiki, to zmieniając generator znaków można w ten sposób oszczędzić 128 bajtów pamięci.
Jeśli wyświetlacz został zainicjowany w trybie adresowania poziomego, wyświetlenie jednego znaku na ekranie polega na obliczeniu adresu, pod którym znajduje się jego wzorzec w generatorze znaków, a następnie na pobraniu 6 bajtów z obszaru generatora i wysłaniu ich na wyświetlacz poprzez SPI. To wszystko. Proste, prawda?
No dobrze, ale to tylko jeden znak -powiecie. Nie szkodzi, po wysłaniu tego znaku wyświetlacz jest gotowy do przyjęcia kolejnych 6 bajtów tworzących następny znak tekstu. Jego pozycję będą wyznaczały liczniki wierszy i kolumn wyświetlacza, które zgodnie z rys. 3, przy adresowaniu poziomym automatycznie
List. 2. Przykład procedury umożliwiajgcej wyświetlanie znaków alfanumerycznych
zdefiniowanych w pliku ASCII.DEF na graficznym LCD
lcd_data: i wyświetlenie znaku o kodzie w R24
push r30 ; zachowaj rej estr Z - potrzebne aby
push r31 i łatwiej wyświetlać stringi
sbi DC_PORT,DC_PIN ; ustawienie trybu DATA
ldi r25,6 i 6 bajtów/znak
mul r24 r25 ; oblicz offset w generatorze znaków
ldi r30 Io8(ASCIITAB) i adres generatora znaków
ldi r31 hi8(ASCIITAB)
add r30 rO i dodaj offset
adc r31 rl
LCD_CHAR_1: lpm r24,Z+ i załaduj bajt z generatora
rcall lcd_wr ; wyślij przez SPI (procedura z listingu 1)
dec r25 i zmniejsz licznik bajtów
brnę LCD_CHAR_1 ; kolejny bajt
pop r31
pop r30
ret i koniec
lcd_gotoXY: i R22 = pozycja X, R24 = pozycja Y
cbi DC_PORT,DC_PIN ; ustawienie trybu COMMAND
ori r24,0x40 ; dodaj kod komendy "Set Y address"
rcall lcd_wr i wyślij do LCD
ldi r24,6
mulr24,r22 i pomnóż pozycję X przez 6
mov r24, rO
ori r24,0x80 ; dodaj kod komendy "Set X address"
rcall lcd_wr
sbi DC_PORT,DC_PIN ; przywrócenie trybu DATA
ret ; koniec
ASCIITAB:
#include "ascii.def" i dołączenie generatora znaków z zewnętrznego pliku.
wskażą na kolejną pozycję znaku lub -jeśli dotrzemy do końca linii - automatycznie przeniosą nas do następnej linii. Pozostaje jeszcze jedna przydatna funkcja gotoXY, umożliwiająca rozpoczęcie wyświetlania danych w określonym miejscu wyświetlacza. Jej realizacja jest również bardzo prosta, bo wystarczy wymaganą pozycję X znaku pomnożyć przez 6, i komendą Set X address wysłać do licznika kolumn, a wymaganą pozycję Y wpisać bezpośrednio do licznika wierszy komendą Set Y address. Na list. 2 przedstawiono przykład owych procedur. Jest to oczywiście jeden z wielu możliwych sposobów wypisywania tekstów na wyświetlaczu - w miarę ubogi w możliwości, lecz jednocześnie jeden z najprostszych i wymagający niewielu zasobów procesora, a w szczególności zapotrzebowania na pamięć RAM. Zawartość przykładowego generatora znaków znajduje się na CD-EP7/ 2OO3B - plik ASCII.DEF. Jest on zapisany w formacie pseudodefinicji asemblera używanego przez kompilator AVR-GCC.
Wyświetlanie bitniap
Kolejną możliwością, jaką daje nam graficzny wyświetlacz, jest wyświetlanie obrazków w postaci bitmap lub animacji składających się z sekwencji następujących po sobie obrazków. Wyświetlanie pełno-ekranowych lub zajmujących całą wysokość ekranu najlepiej jest przeprowadzić w trybie adresowania pionowego. Jeśli chcemy, żeby obrazek zajmował fragment ekranu, lecz miał pełną szerokość, to lepiej jest zastosować adresowanie poziome. Samo wyświetlenie obrazka jest banalne, bo po ustawieniu wymaganej pozycji poprzez zapis liczników kolumn i wierszy wystarczy wysłać przygotowane wcześniej dane bitmapy poprzez SPI prosto do pamięci obrazu kontrolera. Ze względu na objętość kodu preferowane jest tutaj wcześniejsze przekonwertowanie standardowej bitmapy, tak aby uzyskać plik, który wysyłamy do LCD bez jakichkolwiek modyfikacji. Sposób konwersji zależy od wybranego trybu adresowania.
Przy wyborze adresowania pionowego można przekonwertować obrazek, robiąc jego odbicie lustrzane i obrót o 90 stopni w lewo. Tak zapisanej bitmapy niestety nadal nie można wysłać bezpośrednio, ponieważ posiada ona nagłówek charakterystyczny dla plików BMP oraz 86*8 bajtów danych zamiast spodziewanych 84*6. Wiec z każdych 8 bajtów opisujących jedną kolumnę, począwszy od offsetu 0x3e (początek właściwych danych), wysyłamy tylko 6 bajtów, pomijając następne 2.
Przy wyborze adresowania poziomego przekształcenie bitmapy w prawidłowy ciąg danych jest nieco bardziej skomplikowane. Nie będę dokładnie opisywał algorytmu, lecz posłużę się gotowym programem, który napisałem swego czasu w Turbo Pascalu na własne potrzeby, a który wraz z źródłami znajduje się na
80
Elektronika Praktyczna 7/2003
KURS
List. 3. Proceduro wysyłająca plik graficzny na LCD
lcd_lmage; ; wyświetlenie obrazka na lcd
cbl DC_PORT,DC_PIN
ldl r24,0X40 ; zeruj licznik kolumn (pozycja x=0)
rcall lcd_wr
ldl r24,0X80 ; zeruj licznik wierszy (pozycja y=OJ
rcall lcd_wr
sbl DC_PORT,DC_PIN
Idir21, 252 tu wstawiamy ilość bajtów / 2 do wysłania
W zależności od wysokości obrazka
8->42, 16->84, 24->126, 32->168, 40->210
ldl r30,loS(IMAGE) adres danych obrazka w pamięci FLASH
ldl r31,hl8(IMAGE)
3ENDIMG;
LPMr2 4, 2 pobierz bajt z flash
rcall lcd_wr Wyślij bajt do LCD
adiw r30,l zwiększ adres
LPMr2 4, 2 pobierz bajt z flash
rcall lcd_wr Wyślij bajt do LCD
adiw r30,l zwiększ adres
dec r21 Zmniejsz licznik
brnę 3ENDIMG
ret
IMAGE;
ttlnclude "IMAGE.DAT" ; zawartość obrazka
CD-EP7/2003B. Aby przekonwertować bit-mapę o rozmiarach 84 piksele w poziomie i 8, 16, 24, 32, 40 lub 48 pikseli w pionie wystarczy uruchomić program bnipcQriv.exe, podając jako parametr nazwę pliku do konwersji. Pamiętajmy, że jest to program DOS-owy, więc długość nazwy pliku nie może przekraczać 8 znaków + 3 znaki rozszerzenia. W wyniku działania programu otrzymamy plik binarny oul.bin, który można załadować prosto do pamięci wyświetlacza. Przykładową procedurę wysyłającą tak przygotowany plik pokazano na list. 3. Na początku zerowane są liczniki kolumn i wierszy poprzez wysłanie do kontrolera komend 0x40 i 0x80 (przy niskim poziomie na D/C), co oznacza, że będziemy wyświetlać obraz począwszy od lewego górnego rogu ekranu. Następnie do licznika pętli wpisujemy potrzebną liczbę bajtów do wysłania podzieloną przez 2, a to ze względu na to, aby licznik mógł się zmieścić w pojedynczym 8-bitowym rejestrze, Dalej do rejestru Z (R31:R30) wpisujemy adres komórki pamięci Flash, od którego rozpoczynają się dane obrazka. No i pozostała już tylko pętla pobierająca kolejne bajty z pamięci Flash i wysyłająca je do LCD poprzez interfejs SPI. W każdym obiegu pętli wysyłane są 2 bajty oraz zwiększany jest wskaźnik danych - rejestr Z. Jeśli chcielibyśmy wysyłać obrazek z pamięci RAM, zamiast z pamięci Flash, wystarczy instrukcję LPM r24, Z zamienić na LD r24, Z+;
oraz pominąć instrukcję adiw r30,l
ponieważ można tu wykorzystać automatyczne zwiększanie wskaźnika w instrukcji LD r24,Z+,
BargrafyT czyli paski postępu
Kolejnym elementem, który możemy wyświetlić na naszym LCD, jest pasek postępu pokazujący procent wykonania jakiejś operacji. Pasek ten będzie umieszczony na wyświetlaczu poziomo, podobnie jak jedna linijka tekstu, więc będziemy pracować w trybie adresowania
poziomego. Ta procedura jest równie prosta jak poprzednie. Najpierw musimy określić miejsce, gdzie będzie się zaczynał nasz pasek postępu, czyli standardowo zapisać dane do liczników kolumn i wierszy. Następnie wywołujemy pokazaną na list. 4 procedurę lcd_bar, podając w rejestrze R24 stopień zapełnienia (długość zapełnionego paska w pikse-lach), a w rejestrze R22 ogólną długość całego bargrafu. Uaktualnienie pozycji paska polega na kolejnym wywołaniu tej procedury ze zmienioną zawartością rejestru R24 wraz z wcześniejszym ustawieniem pozycji paska na taką jak za pierwszym razem.
Zapalanie pojedynczych pikseli i rysowanie linii
Niestety w tym miejscu kończy się wszystko co krótkie, łatwe i przyjemne, a zaczynają się prawdziwe "schody". I to z dwóch powodów. Po pierwsze, aby zapalić pojedynczy piksel, musimy zmienić jeden bit z bajtu od-wzorowującego 8 pionowych pikseli, a nie możemy odczytać z pamięci wideo wyświetlacza poprzedniej jego zawartości. Jedynym wyjściem z sytuacji jest przechowywanie w pamięci RAM sterującego mikro kontrolera kopii zawartości
Ust. 4. Procedura odpowiadająca za wyświetlenie bargrafu
Wyświetlenie paska postępu
pamięci wideo wyświetlacza, operowanie na jego zawartości i późniejsza aktualizacja zawartości pamięci wideo wyświetlacza. Kopia pamięci wideo zajmuje dość dużo miejsca - 504 bajty pamięci RAM mikro kontrolera - czyli prawie całą dostępną wewnętrzną pamięć mikrokontro-lera AT90S8515 lub połowę pamięci z ATmegaS czy ATmegal61. Oczywiście podłączając do naszego mikrokontrlera zewnętrzną pamięć RAM lub stosując jeden z wyższych modeli ATmega posiadający 2 lub 4 kB wewnętrznego RAM-u, pozbywamy się tego kłopotu.
Pozostaje drugi problem, czyli ilość i czasochłonność wymaganych do tego celu obliczeń. Do datkowo synchronizacja zawartości kopii pamięci wideo z zawartością pamięci kontrolera wyświetlacza jest również czasochłonna przy założeniu każdorazowej aktualizacji zawartości całego wyświetlacza lub skomplikowana przy próbie wybiórczej aktualizacji fragmentów pamięci wideo. Najlepszym wyjściem z omawianej sytuacji będzie napisanie odpowiednich procedur w języku wyższego poziomu, czyli np. w C.
Uniwersalny sterownik LCD z Nokii
Jeden z członków forum dyskusyjnego poświęconemu odtwarzaczom MP3 yarnpp napisał swoją wersję uniwersalnego sterownika wyświetlaczy LCD z Nokii, posiadającą możliwość zapalania i gaszenia pojedynczych pikseli, rysowania linii oraz wyświetlania znaków i całych stringów. Program ten przeznaczony jest do skompilowania bezpłat-
LCD test Ronuald Biały.
lcd_bar;
moy r2 5,r2 4
ldl r24,obOlllllll sbl DC_PORT,DC_PIN rcall lcd_wr
LCD_BAR_2; ldl r2 4,ObOlOlllOl
tst r25
brnę LCD_BAR_1
ldl r24,ObOlOOOOOl
mc r25 LCD_EAR_1 ; dec r25
rcall lcd_wr
dec r22 brnę LCD_BAR_2
ldl r24,ObOlllllll rjmp lcd_wr
Wygląd początku paska ustaw tryb wysyłania danych narysuj początek bargrafu
; wygląd zapełnionego fragmentu paska sprawdź czy rysujemy zapełniony skok jeśli tak
załaduj wygląd pustego paska korekta r25
znmiej sz licznik zapełnionych Wyślij R24 do LCD Zmniejsz licznik długości paska pętla
Wygląd końca paska
wyślij do LCD i wyjdź z procedury
Elektronika Praktyczna 7/2003
81
KURS
nyrn kompilatorem AVR-GCC i przeznaczony dla mikro kontrolera ATmegaS. Oczywiście może zostać zaadaptowany do umieszczenia w innym typie mikro-kontrolera AVR, byle by posiadał odpowiednią ilość pamięci RAM. Kod źródłowy tego sterownika publikujemy na CD-EP7/2003B.
Postaram się pokrótce przedstawić jego możliwości i sposób wywoływania zawartych w nim funkcji. Sterownik składa się z pliku nagłówkowego No-JciaLCD.h, zawierającego deklaracje kilku wymaganych stałych, definicję sposobu podłączenia wyświetlacza do mikrokont-rolera - czyli deklarację wykorzystanych pinów mikrokontrolera, oraz prototypy dostępnych funkcji. Właściwy kod programu znajduje się w pliku NokiaLCD.c i zawiera wszystkie procedury niezbędne do obsługi wyświetlacza wraz z inicjali-zacją i obsługą interfejsu SPI oraz tablicę generatora znaków.
Oto opis dostępnych funkcji sterownika:
- Lcdlnit () - służy ona do zainicjowania interfejsu SPI mikrokontrolera oraz podłączonego wyświetlacza. Po zakończeniu działania tej funkcji wyświetlacz ma odpowiednio ustawione rejestry wewnętrzne, znajduje się w trybie adresowania poziomego - ponieważ wszystkie funkcje korzystają właśnie z tego trybu. Inicjalizacja zeruje zawartość cienia pamięci wideo jak również i sam wideo-RAM wyświetlacza. Powinna być uruchomiona jako jedna z pierwszych funkcji całego programu, ponieważ ustawia funkcje pinów mikrokontrolera oraz podaje prawidłowy sygnał RESET do wyświetlacza.
- LcdClear () - wy zerowanie zawartości cienia pamięci wideo. Aby wyczyścić również zawartość wyświetlacza, należy po LcdClsar() wywołać funkcję LcdUpdatel).
- LcdUpdate () - powoduje aktualizację zawartości pamięci wideo wyświetlacza zgodnie z zawartością cienia w mikro-kontrolerze. Aktualizowany jest tylko obszar, w którym były dokonane jakiekolwiek zmiany od czasu poprzedniej aktualizacji.
- LcdContrast (byte contrast) - ustawienie kontrastu wyświetlacza. Wartość bajtu contrast musi zawierać się pomiędzy 0x00 a 0x7f, lecz jak napisałem wcześniej, użyteczny zakres wynosi od 0x20 do 0x58.
- LcdGotoXY (byte x, byte y) - ustawienie pozycji wyświetlania na LCD.
List. 5. Proceduro obsługi programowego interfejsu SR nopisono wosemblerze 8C61
; Pl,4 -> 3CE
; Pl,5 -> MISO - nieużywany dla LCD
; Pl,6 -> MClSI czyli 3DIN Wyświetlacza
; Pl,7 -> 3CLK
LCD_WR; CLR Pl ,4 &CE = L
M0VR2, #0SH licznik, S bitów do wysłania Z ACC
SPIŁ; RLCA przesuń bit do carry
MOV Pl ,6,C wystaw carry na pm Plr& (3DAT)
SETĘ Pl,7 3CLK = L
NOP
CLR Pl .7 3CKL = L
MOVC, Pl -5 Pobranie bitu z magistrali - zbędne
W przypadku współpracy z LCD
DJTJS R2.SPIL zmniejsz licznik i wróć do pętli
SETĘ P1.4 3CE = H
RET
Rys. 10
Koordynaty bazowane są na czcionce
0 podstawowej wielkości, czyli zakres X wynosi od 1 do 14, a zakres Y od
1 do 6. Funkcja ta nie zmienia zawartości liczników kolumn i wierszy, a jedynie ustawia odpowiedni offset aktualnego adresu w kopii pamięci wideo.
- LcdChr (LcdPont Size size, byte ch) - wyświetlenie znaku ASCII o wielkości określonej parametrem size w miejscu aktualnej pozycji wyświetlania. Mamy do dyspozycji dwie wielkości czcionki. Standardową 5x7 punktów, którą określa stała FONT_1X lub wartość 1, oraz podwójnej wielkości, pogrubioną czcionkę oznaczoną stałą FONT_2X lub wartością 2. Funkcja ta automatycznie zwiększa aktualną pozycję wyświetlania. Aby zobaczyć zmiany, musimy po niej wywołać funkcję LcdUpdatel).
- LcdStr(LcdPontSize size, byte *dataPtr) - wyświetlenie stringu z pamięci RAM mikrokontrolera zaczynającego się od adresu dataPtr. Pozostałe parametry jak dla funkcji LcdChr.
- LcdPixel(byte x, byte y, LcdPi-xelMode modę) - wyświetlenie pojedynczego piksela. Parametry X i Y określają pozycję na wyświetlaczu, a modę oznacza tryb pracy. Wartość X musi się mieścić w przedziale od 0 do 83, a Y w przedziale od 0 do 47. W zależności od trybu, piksel na danej pozycji może zostać zapalony, zgaszony lub zmieniony - czyli jeśli był wcześniej zapalony, to zostanie zgaszony i na odwrót. Stałe opisujące tryb to odpowiednio PIXEL_ON, PI-XEL_OFF i PIXEL_XOR. Aby zobaczyć zmiany, musimy po niej wywołać funkcję LcdUpdaiel).
- LcdLine (byte xl, byte yl, byte x2, byte y2, LcdPixelMode modę) narysowanie linii zaczynającej się w punkcie o współrzędnych xl,yl i kończącej się w punkcie o współrzędnych x2,y2. Dopuszczalne wartości pozycji, jak również tryb modę - tak jak dla funkcji LcdPixsl. Aby zobaczyć zmiany musimy po niej wywołać funkcję LcdUpdatel).
Pozostałe funkcje widoczne wewnątrz pliku NokiaLcd.c są wewnętrznymi funkcjami sterownika.
Nokia LCD + PC? Czemu nie!
Zapewne wielu Czytelników zainteresowanych wykorzystaniem opisanych wyświetlaczy będzie chciało szybko
sprawdzić jego działanie bez wcześniejszego budowania i oprogramowywania całego systemu opartego na mikrokont-rolerze. Jest na to prosta, a przy tym skuteczna metoda. Podłącz swój wyświetlacz bezpośrednio do złącza drukarkowego w swoim PC. No prawie bezpośrednio, ponieważ sygnały logiczne na złączu LPT komputera są zgodne ze standardem TTL 5V, a wyświetlacz potrzebuje napięć o wartości 3,3 V. Konieczny będzie więc konwerter poziomów zbudowany na przykład w oparciu
0 układ 74LVC245 (jego schemat publikujemy na CD-EP7/2003B, w programie Parallel to SPI). Do tego odpowiednie oprogramowanie, zasilacz 3,3 V i już możemy podziwiać działający wyświetlacz.
Na CD-EP7/200 3B publikujemy program napisany przez kolejnego użytkownika forum dotyczącego yainppa (to naprawdę jest kopalnia wiedzy], umożliwiający sterowanie takim wyświetlaczem z poziomu aplikacji MS Windows (rys. 10). Program ten nie posiada zbyt rozbudowanych funkcji, lecz pozwala na zainicjowanie wyświetlacza, regulowanie kontrastu, ustawienie odpowiedniego trybu, wyświetlanie tekstów oraz konwersję
1 wyświetlanie obrazków. Dodatkowo pozwala on na tworzenie, edycję i zapisywanie wzorów czcionek generatora znaków w postaci definicji db do późniejszego wykorzystania we własnych programach. Kolejną możliwością tego programu jest sterowanie podłączonego w podobny sposób dekodera MP3, jakim jest układ VSl001, a więc odtwarzanie plików MP3. Schemat podłączenia wyświetlacza LCD lub VSl001 uzyskamy po wybraniu z menu View opcji Sche-znatics....
Na zakończenie, życząc wszystkim Czytelnikom udanych eksperymentów z opisywanymi wyświetlaczami, przedstawiam zapowiedzianą wcześniej procedurę obsługi programowego interfejsu SPI napisaną w asemblerze mikrokontrolera z rodziny 8051 - czyli np. na tzw. "małego" AT89C2051 (list. 5). Bajt do wysłania ładujemy do akumulatora i wywołujemy funkcję przez ACALL LCD_WR. Jeśli zastosujemy ją do obsługi innego układu komunikującego się poprzez SPI, to po powrocie w akumulatorze otrzymamy bajt odczytany z tego układu. Ponieważ kontroler naszego LCD nie ma takiej możliwości, zawartość akumulatora możemy zignorować lub nawet usunąć instrukcję M0V C,P1.5.
Romuald Biały
82
Elektronika Praktyczna 7/2003
KURS
Podstawy projektowania systemów mikroprocesorowych, część 5
Schemat układu wykorzystującego tę zasadę sterowania wyświetlaczami siedmiosegmentowymi pokazano na rys. 19. W układzie tym wykorzystano wyświetlacze ze wspólną anodą, których odpowiadające sobie katody połączono wspólnie z odpowiednim wyprowadzeniem mikrokontrolera. Rezystory ograniczające prąd mają mniejsze wartości niż w układach z wyświetlaniem statycznym w związku z koniecznością zapewnienia odpowiednio dużego prądu średniego (tutaj V4 natężenia prądu świecącego wyświetlacza) gwarantującego pożądaną jasność świecenia - im więcej grup diod byłoby sterowanych, tym rezystory te powinny
Miesiąc temu zapowiedzieliśmy pokazanie multipleksowego sposobu sterowania za pomocą mikrokontrolera '51 wyświetlaczy LED, Obietnicy dotrzymujemy - zapraszamy do lektury!
wyświetlacza nie była mniejsza niż 30...40 Hz (aby przekroczyć możliwości rejestrowania zmian przez ludzkie oko), a najlepiej oscylowała w okolicach 100 Hz, co pozwoli na wyświetlanie pozbawione efektu migotania znanego z ekranów monitorów i telewizorów. Dalsze zwiększanie częstotliwości odświeżania nie poprawia już jakości wyświetlanej informacji, powoduje za to wzrost ilości zakłóceń radioelektrycznych generowanych przez wyświetlacz oraz niepotrzebnie marnuje moc obliczeniową mikrokontrolera. Warto zauważyć, że w takim układzie można łatwo sterować jasnością świecenia poszczególnych wyświetlaczy - wystarczy dobrać odpowiednio czasy trwania świecenia danego wyświetlacza - im dłuższy ten czas, tym jaśniejsze świecenie. Czytelnicy zaznajomieni z urządzeniami wykonywanymi np. w technice TTL zauważą, że brak pomiędzy wyprowadzeniami mikrokontrolera a wyświetlaczem ukła-
mieć mniejszą wartość, nie należy jednak przekraczać dopuszczalnego prądu linii portu. Anody wyświetlaczy dołączono oddzielnie do plusa zasilania za pośrednictwem tranzystorów-kluczy sterowanych przez mikro-kontroler. Układ ten działa według następującego algorytmu (dla jednego wyświetlacza):
- ustawienie stanów linii portu Pl odpowiadających informacji wyświetlanej przez wyświetlacz Wl (kod odpowiadający kształtowi wyświetlanego znaku),
- włączenie wyświetlacza 1 (P3.3=0),
- odczekanie czasu, w trakcie którego wyświetlacz świeci,
- wyłączenie wyświetlacza 1 (P3.3=l).
Powyższe kroki należy powtórzyć jeszcze trzykrotnie (dla wyświetlaczy W2, W3 i W4), a następnie rozpocząć cykl od początku (od wyświetlacza Wl). Czas trwania pojedynczego cyklu powinien być tak dobrany, aby częstotliwość zapalania pojedynczego
+9 <: V
PJ.Ria r Tl h h TS k T4
[\ |\ \


w --------------. H1...HB 3C O0..M0 P1.T------------------------------1=1------------------*-------- W 8 a w* 8 W4 8
psi pi.a PU T
Rys. 19. Schemat 4-cyfrowego wyświetlacza LED sterowanego multipleksowo wprost z programowym generowaniem kształtu wyświetlanego znaku
Elektronika Praktyczna 7/2003
83
KURS
List. 1, Przykładowy program sterujący działaniem 4-cyfrowego wyświetlacza LED
; komórki pamięci od adresu 0 3 0h do 0 3 3h zawierają kombinację stanów i segmentów wyświetlacza: 0 - oznacza segment zapalony
MOV Pl,030H iprzesłanie danej do portu Pl
CLR P3.3 ;włączenie pierwszego wyświetlacza
LCALL CZEKAJ ;wywołanie procedury opóźniaj ącej
SETB P3.3 iWyłączenie pierwszego wyświetlacza
MOV Pl,031H iprzesłanie danej do portu Pl
CLR P3.2 ;włączenie drugiego wyświetlacza
LCALL CZEKAJ ;wywołanie procedury opóźniaj ącej
SETB P3.2 iWyłączenie drugiego wyświetlacza
MOV Pl,032H iprzesłanie danej do portu Pl
CLR P3.1 ;włączenie trzeciego wyświetlacza
LCALL CZEKAJ ;wywołanie procedury opóźniaj ącej
SETB P3.1 iWyłączenie trzeciego wyświetlacza
MOV Pl,033H iprzesłanie danej do portu Pl
CLR P3.0 ; włączenie czwartego wyświetlacza
LCALL CZEKAJ ;wywołanie procedury opóźniaj ącej
SETB P3.0 iWyłączenie czwartego wyświetlacza
i koniec podprogramu wyświetlającego
List. 2. Procedura realizująca opóźnienie wykorzystywane przez program z list. 1
CZEKAJ:
MOV R6,#0FFH DJHZ R6,$
i ustawienie początkowej wartości rejestru
i pozostanie w pętli do chwili wyzerowania R6
du dekodera, np. BCD/7-segmento-wego wykorzystywanego w urządzeniach zbudowanych z klasycznych układów cyfrowych. Zgodnie z regułą maksymalnego upraszczania sprzętu operację dekodowania informacji wykonuje tutaj mikro-kontroler. Pozwala to jednocześnie na zmniejszenie komplikacji układu, jak i na większą liczbę możliwych do wyświetlenia znaków. Przykładowy program sterujący działaniem wyświetlacza zgodnego ze schematem z rys. 19 przedstawiono na list. 1. Procedurę realizującą opóźnienie pokazano na list. 2.
Powyższa procedura opóźniająca dla systemu taktowanego częstotliwością 12 MHz zapewnia
częstotliwość odświeżania wyświetlacza około 480 Hz. Wydawać się może, że jest to wartość zbyt duża, jednak należy uwzględnić fakt, że oprócz obsługi wyświetlania w głównej pętli programowej będą wykonywane też inne zadania powierzone mikrokontrolerowi, co spowoduje obniżenie częstotliwości odświeżania. W zależności od konfiguracji programu wartość opóźnienia może być dobrana w celu uzyskania określonych parametrów odświeżania. Dobrym sposobem jest również umieszczenie obsługi wyświetlacza w podpro-gramie obsługi przerwania licznikowego. Sytuację taką przedstawiono na list. 3.
a P1.0 b P1.1 c P1.2 d P1.3 e P1.4 f P1.5 g P1.6 h P1.7 wartość (hex) wartość z zapaloną kropką (hex)
0 0 0 0 0 0 0 1 1 OCOH 040H
1 1 0 0 1 1 1 1 1 0F9H 079H
2 0 0 1 0 0 1 0 1 0A4H 024H
3 0 0 0 0 1 1 0 1 OBOH 030H
4 1 0 0 1 1 0 0 1 099H 019H
5 0 1 0 0 1 0 0 1 092H 012H
6 0 1 0 0 0 0 0 1 082H 002H
7 0 0 0 1 1 1 1 1 0F8H 078H
8 0 0 0 0 0 0 0 1 OBOH 000H
9 0 0 0 0 1 0 0 1 090H 01OH
Rys. 20. Sposób tworzenia kształtów wyświetlanych znaków
Program ten zapewnia dla częstotliwości taktowania 12 MHz odświeżanie wyświetlacza z częstotliwością około 60 Hz. Częstotliwość ta jest niezależna od sposobu działania programu głównego, co pozwala na precyzyjne jej określenie.
W obu przypadkach założono, że dane przeznaczone do wyświetlenia zostały już odpowiednio przygotowane za pomocą innego podprogramu. W zasadzie nic nie stoi na przeszkodzie, aby na wyświetlaczu zapalić dowolną kombinację segmentów - najczęściej jednak chcemy, aby wyświetlacz siedmiosegmentowy wyświetlał cyfry - odpowiednie przekodowanie umożliwi nam program pokazany na list. 4.
Przedstawiony program korzysta z tablicy, w której zapisano stan poszczególnych wyprowadzeń portu Pl koniecznych do uzyskania na wyświetlaczu siedmiosegmento-wym odpowiednich cyfr. Podane wartości liczbowe odpowiadają sytuacji, w której wyprowadzenia segmentów wyświetlacza (a, b, c, d, itd.) podłączone są kolejno do linii portu Pl.O, Pl.l do Pl.6. Wyprowadzenie kropki wyświetlacza (oznaczane jako h lub dp) dołączone jest do linii Pl.7. Oczywiście nic nie stoi na przeszkodzie, aby linie mikrokontrolera były połączone z innymi segmentami wyświetlacza (np. w sposób upraszczający projektowanie płytki drukowanej) - zmieni się jedynie reprezentacja liczbowa wyświetlanych znaków (konieczność innego zakodowania). Sposób uzyskania odpowiednio zakodowanych liczb pokazano na rys. 20. Kodowanie polega na umieszczeniu w tablicy zera w przypadku zapalenia segmentu i jedynki w przypadku jego zgaszenia - otrzymany w ten sposób ciąg zer i jedynek jest ośmio-bitową liczbą dwójkową, której najmłodszy bit odpowiada wyprowadzeniu Pl.O. Przekształcenie na postać szesnastkową jest tylko formalnością skracającą i zwiększającą czytelność zapisu. Tak otrzymaną liczbę należy wpisać na odpowiednią pozycję w tablicy kodów umieszczoną w programie. Oprócz cyfr na wyświetlaczu sied-
84
Elektronika Praktyczna 7/2003
KUR
D1...D16-linijka świetlna
Rys. 21. Multipleksowe sterowanie wyświetlaczy LED z wykorzystaniem rejestru 74164
miosegmentowym można uzyskać także wyświetlanie niektórych liter alfabetu oraz wielu znaków umownych - w zależności od zaistniałych potrzeb.
W sytuacji, gdy nie jest możliwe wykorzystanie całego portu mikrokontrolera do sterowania wyświetlaczem LED (np. z powodu braku wolnych linii lub zbyt małej ich obciążalności), dobrym sposobem na zbudowanie układu wyświetlającego jest zastosowanie rejestru szeregowo-równoległego. Schemat takiego układu przedstawiono na rys. 21. Wykorzystano w nim scalony rejestr szeregowo-równoległy 74164, który wraz z dwoma tranzystorami i dziesięcioma rezystorami steruje linijką świetlną zbudowaną z diod LED. Ogromną zaletą tego układu jest fakt, że do sterowania szesnastu diod LED potrzeba zaledwie 4 linii mikrokontrolera! Dodatkowo poprzez szeregowe połączenie kilku rejestrów '164 możemy sterować kolejną grupą 16 diod przypadających na każdy dołączony układ bez konieczności wykorzystywania kolejnych wyprowadzeń mikrokontrolera. Niewielka liczba wykorzystywanych linii portu wiąże się jednak z nieco bardziej rozbudowaną częścią programową w stosunku do zwykłego wyświetlacza multiplekso-wanego z bezpośrednim sterowaniem diod z linii portu. Choć ogólna zasada programowania nie zmienia się - nadal jest to wyświetlacz multipleksowany - to nieco inaczej przebiega procedura wystawiania sygnałów odpowiedzialnych za zaświecenie się lub
List. 3. Listing Drogramu, w którym obsługę wyświetlacza umieszczono
w podprogramie obsługi przerwania licznikowego
i POZYCJA - zmienna bajtowa przechowująca numer wyświetlanej pozycj i
i komórki pamięci 030H do 033H przechowują dane do wyświetlenia
{program główny - część inicjująca}
MOV POZYCJA,#1 i pozycja 1 będzie wyświetlana jako pierwsza
MOV TMOD,#0 i ustawienie trybu pracy licznika
M0V TL0,#0FFH ii wpisanie wartości początkowych
M0V TLl,#00FH
SETB EA i włączenie przerwań
SETB ETO i zezwolenie na przerwanie od licznika TO
SETB TRO i Włączenie licznika 0
{program główny}
PRZERWANIE: i podprogram obsługi przerwania licznika TO
PUSH PSW i zapisanie na stos rejestru stanu
PUSH ACC i i akumulatora
M0V TL0,#0FFH iWpisanie do licznika
M0V TH0,#00FH i wartości początkowych
M0V A,POZYCJA i Wpisanie do akumulatora aktualnej pozycj i
CJNE A,#1,NIE_ 1 ;sprawdzenie, czy wyświetlić pozycję pierwszą
SETB P3.0 ;jeśli tak, to gasi wyświetlacz 4
M0V Pl,030H iprzepisuje do portu daną dla wys. 1
CLR P3.3 i Włącza wyświetlacz 1
M0V POZYCJA,#2 i następną pozycją będzie 2
SJMP KONIEC i skok do końca procedury
NIEJ:
CJNE A,#2,NIE_ 2 ijeślinie pierwsza, to sprawdza, czy druga
SETB P3.3 ;jeśli tak, to gasi wyświetlacz 1
M0V Pl,031H iprzepisuje daną dla wys. 2
CLR P3.2 i Włącza wyświetlacz 2
M0V POZYCJA,#3 i następną pozycją będzie 3
SJMP KONIEC i skok do końca procedury
NIE_2:
CJNE A,#3,NIE_ 3 ijeślinie druga, to sprawdza, czy trzecia
SETB P3.2 ;jeśli tak, to gasi wyświetlacz 2
M0V Pl,032H iprzepisuje daną dla wys. 3
CLR P3.1 i Włącza wyświetlacz 3
M0V POZYCJA,#4 i następną pozycją będzie 4
SJMP KONIEC i skok do końca procedury
NIE_3: ijeśli nie trzecia, to musi być czwarta
SETB P3.1 i gasi wyświetlacz 3
M0V Pl,033H iprzepisuje daną dla wys. 4
CLR P3.0 i Włącza wyświetlacz 4
M0V POZYCJA,#1 i następną pozycją będzie 1
KONIEC: i koniec procedury wyświetlającej
{inne rozkazy wykonywane w przerwaniu}
POP ACC i pobranie akumulatora
POP PSW i i rejestru stanu ze stosu
RETI i powrót z przerwania
Elektronika Praktyczna 7/2003
85
KURS
List. 4. Program odpowiadający za przekodowanie liczb BCD na
kody znaków wyświetlacza LED
ikomórki 040H do 043H - wartości liczbowe z zakresu od 0 do 9 przeznaczone
i do wyświetlenia na odpowiednich pozycjach wyświetlacza
ikomórki 030H do 033H - przekodowane dane, gotowe do wyświetlenia
PRZEKODUJ:
MOV R0,#040H ;wpisanie do rejestrów adresów pierwszej danej
MOV Rl,#030H i i pierwszego wyniku przekodowania
MOV DPTR,#KODY ;wpisanie do rejestru DPTR adresu tablicy kodów
MOV R7,#4 ;wpisanie do rejestru liczby pozycj i (4 pozycje)
PĘTLA:
MOV A,@R0 i przesłanie danej do akumulatora
MOVC A,@A+DPTR ;pobranie odpowiednich kodów z tablicy
MOV @R1,A ;przesłanie informacj i do komórki wyniku
INC RO ;zwiększenie adresu komórki danych
INC Rl ;i wyniku
DJNZ R7,PĘTLA i pozostanie w pętli w celu czterokrotnego wykonania
RET ;powrót do programu głównego
KODY: ; tablica przekodowań
DB OCOH ;cyfra 0
DB 0F9H ;cyfra 1
DB 0A4H ;cyfra 2
DB OBOH ;cyfra 3
DB 099H ;cyfra 4
DB 092H ;cyfra 5
DB 082H ;cyfra 6
DB 0F8H ;cyfra 7
DB 080H ;cyfra 8
DB 090H i cyfra 9
List. 5. Program ilustrujący sposób wpisywania do rejestrów '164 kodów odpowiadających kształtom wyświetlanych znaków
M0V R7,#8 M0V A,0 3 0H
PĘTLA: RLC A M0V P1.4 CLR P1.5 SETB P1.5 DJNZ R7,PĘTLA
;liczba bitów do przesłania do rejestru
i przesłanie do akumulatora danej do wyświetlenia ; (z adresu wykorzystywanego wcześniej)
;przesuń akumulator w lewo - najstarszy bit w C
iWystaw bit na linię danych rejestru
i generacj a impulsu
i zegarowego
ipozostanie w pętli do czasu wysłania wszystkich bitów
;tutaj można już włączyć zasilanie danej grupy diod, np, CLR Pl.7
zgaśniecie wybranej diody - za- my, że po włączeniu zasilania li-
miast prostego wywołania pojedyn- nie portu Pl pozostają w stanie
czego rozkazu MOV konieczna sta- wysokim) pokazana na list. 5.
je się sekwencja przesłań (zakłada- Paweł Hadam
86
Elektronika Praktyczna 7/2003
PROJEKTY CZYTELNIKÓW
DzioS "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.
Programowany sterownik zegarowy
Urządzenie
przedstawione w artykule
pozwala programować
w trybie rocznym pracę
czterech urządzeń. Dzięki
wbudowanej nieulotnej
pamięci nastaw,
konsekwencje awarii
zasilania zostały
ograniczone do minimum.
Rękom endacje;
urządzenie szczególnie
przydatne dla śpiochów
lubiących celebrować
wczesnoranne wstawanie...
Projekt
Ul
Z dnia na dzień staję się coraz bardziej leniwy. Takie czasy. Otóż kiedy uczęszczałem jeszcze do szkoły średniej, mieszkałem w internacie. Co rano włączał się szczerze znienawidzony przeze mnie budzik, który bezlitośnie dzwoniąc, skakał po blacie mojego biurka. Kończyło się zawsze tak samo. Budzik obrywał w "czapę", a ja powoli zwlekałem się z łóżka, ubierałem i po toalecie w lodowatej wodzie, z paskudnym humorem, kierowałem się w stronę internackiej stołówki. Tak było do czasu, kiedy to postanowiłem podnieść sobie komfort męczącej egzystencji. Lekarstwem na codzienne niewygody okazał się projekt prezentowany w artykule. Od momentu jego opracowania wszystko zmieniło się nie do poznania. Codziennie rano najpierw włącza się zaparzacz do herbaty, po kilku minutach włącza się radio, a po chwili w pokoju robi się jasno. Po wypiciu szklanki gorącej herbaty, od razu nabierało się sił i ochoty do życia...
Zapewne każdy Czytelnik znajdzie jeszcze wiele innych zastosowań dla prezentowane-
go urządzenia. W każdym bądź razie zapotrzebowanie na domową automatykę istnieje i nic nie wskazuje na zmianę tej sytuacji. Na naszym rynku dostępnych jest wiele zegarów sterujących, jednak w większości przypadków są to urządzenia przystosowane do pracy z jednym odbiornikiem. Opracowany przeze mnie sterownik nie ma tej wady, umożliwia bowiem sterowanie aż czterema niezależnymi urządzeniami (każde
0 mocy do 600 W), bazując przy tym na jednym elektronicznym kalendarzu. Ponadto urządzenie zapewnia niezwykle łatwą
1 przejrzystą obsługę, co jest ko-
lejnym jego atutem. Osobiście wiele razy spotkałem się z urządzeniami, których nie sposób było obsłużyć bez tytułu doktora nauk technicznych. Ponadto urządzenie jest odporne na wszelkie zaniki napięcia, ponieważ praca zegara jest podtrzymywana za pomocą akumulatora. Układ działa niezawodnie od ponad roku. Ani razu nie spóźnił się z zaparzeniem herbatki (tylko by spróbował...).
Opis układu
"Sercem" urządzenia jest mi kro kontroler 89C4051 firmy Atmel (rys. 1). Ma on wbudowane 4 kE nieulotnej, repro-gramowalnej pamięci Flash. W omawianym projekcie jest ona wykorzystana prawie w całości - program zajmuje 4095 bajtów tej pamięci. Kolejnymi ważnymi układami są tutaj zegar PCF8583 oraz pamięć EEPROM 24C04, komunikujące się z procesorem za pośrednictwem magistrali I2C. Do komunikacji użytkownika z urządzeniem służy wyświetlacz numeryczny (znakowy) LCD 16*2 oraz klawiatura
Prezentowany w artykule sterownik wyposażono B w programowalny zegar czasu rzeczywistego orazL kalendarz, co daje możliwość zaprogramowania pracy urządzenia w trybie rocznym- Ponadto urządzenie wyposażone jest w awaryjne źródło zasilania, co pozwala na zachowanie prawidłowego czasu i daty, nawet po odłączeniu sterownika od sieci- Informacje dotyczące załączeń/wyłączeń odbiorników przechowywane są w nieulotnej pamięci zewnętrznej typu EEPROM- W podstawowej wersji urządzenia pozwala ona na zachowanie 25 cykli załącz/wyłącz. Pamięć ustawień według producenta może być przeprogramowywana co A
najmniej 100000 razy, a wiec urządzenie
zapewnia trwałość i niezawodność oraz komfortową
_ obsługę i eksploatację- _
Elektronika Praktyczna 7/2003
87
PROJEKTY CZYTELNIKÓW
BT136
0UT1
Rys. 1. Schemat elektryczny sterownika
zbudowana z trzech mikro-przycisków. Program główny (napisany w Bascomie) nie jest skomplikowany. Ogranicza się on do podstawowych operacji wykonywanych w nieskończonej pętli. Do operacji tych należą:
- odczyt danych z zegara (układu RTC),
- prezentacja danych na wyświetlaczu,
- sprawdzenie stanu klawiatury.
Jeżeli na ostatnim etapie nie wykryto wciśnięcia żadnego z przycisków, to program wraca do początku. W przeciwnym wypadku będą realizowane poszczególne podprogramy, po czym mik-rokontroler wróci do pętli głównej.
Zarówno zasilanie awaryjne, jak i podświetlanie wyświetlacza można podłączać lub odłączać za pomocą jum-perów (odpowiednio JP2 i JP3). Układ wyjściowy wykonano standardowo - elementami wykonawczymi są triaki BT136/600. Mikrokont-Toler steruje nimi poprzez op-totriaki MOC3020 zapewniające separację galwaniczną
sterownika od sieci zasilającej. Zasilacz również nie jest zbyt oryginalny. Zastosowano w nim transformator TS2/16, mostek prostowniczy, stabilizator 7805 i kilka kondensa-torków filtrujących.
Montaż i uruchomienie
Montaż układu jest prosty i jedyny problem, zwłaszcza dla niecierpliwych wyznawców lutownicy, może stanowić sztywne umieszczenie nad sobą dwóch płytek drukowanych (schematy montażowe pokazano na rys. 2 i 3), z których sterownik się składa oraz umieszczenie ich w obudowie. Poza tym montaż nie powinien sprawić żadnych kłopotów. Jak zwykle zaczynamy od montowania podstawek, a kończymy na elementach wyższych. Pod wszystkie układy scalone zalecam stosowanie podstawek, a zwłaszcza pod procesor, gdyż jak znam życie, użytkownicy wielokrotnie będą jeszcze modyfikowali jego program. Wyświetlacz najlepiej zamontować w taki sposób, by można było później go wymienić. Najprościej uczynić to lutując do wyświetlacza lis-
twę goldpinów, a na płytce drukowanej sterownika odpowiednie gniazdo. Dwie płytki zastosowano w celu zminimalizowania wymiarów urządzenia. Z tego też powodu podjąłem decyzję o zastosowaniu laminatu dwustronnego. Na jednej z płytek znajduje się zasilacz i układ wykonawczy, na drugiej umieściłem całą ,,inteligencję" urządzenia, czyli mikrokontroler wraz z jego peryferiami. Pomiędzy płytkami należy w końcowej fazie montażu wykonać kilka połączeń krótkimi odcinkami dowolnego przewodu. Następnie
,,poskładane" (z wlutowanymi elementami) płytki należy połączyć trzema dłuższymi śrubami, przy czym płytka zasilacza znajduje się niżej, a nad nią płytka procesora, do której to z kolei dołączamy wyświetlacz. Należy zauważyć, że na płytce układu wykonawczego nie przewidziano miejsca na bezpieczniki dla sterowanych urządzeń. Nie jest to jednak niedopatrzenie konstruktora (gdzieżby tam znowu...), ale działanie celowe. Dla wygody użytkowania urządzenia bezpieczniki te należy umieścić w gniazdach, które powinny
DPI
DP3
glDlo ooooooooooooooi lalo o i' --------
o-o
9000 0000OOOOOOOOOOO
DO OS DO Bib
Ol O O O
1 B2 S3 (M
=O 0<-O O* 1$
-NjW
8888
Rys. 2. Schemat montażowy płytki procesora
88
Elektronika Praktyczna 7/2003
PROJEKTY CZYTELNIKÓW
Rys. 3. Schemat montażowy płytki zasilacza
znaleźć się na ściance obudowy. Na triaki zalecam założenie radiatora. Jeżeli chcemy użyć wyświetlacza z podświetlaniem, konieczne jest zastosowanie radiatora również przy stabilizatorze. Tak naprawdę wystarczy kawałek aluminiowej bądź miedzianej blaszki.
Procedura obsługi cykli zalącz/wylącz
Jak już wspomniano, dane dotyczące cykli zalącz/wylącz przechowywane są w nieulot-nej pamięci EEPROM. Wykorzystano tutaj 250 bajtów tej pamięci. Dzieląc tę liczbę przez dziesięć, otrzymamy wynik 25 możliwych cykli zalącz/wylącz. Dlaczego tak? Otóż do prawidłowego obsługiwania cykli (zdarzeń) potrzebne są następujące dane:
1. Godzina włączenia
2. Minuta włączenia
3. Godzina wyłączenia
4. Minuta wyłączenia
5. Dzień zdarzenia
6. Miesiąc zdarzenia
7. Numer sterowanego urządzenia
Łatwo więc zauważyć, że dane jednego cyklu zajmują 7 bajtów. Dzieląc pamięć na 25 zdarzeń, otrzymamy 10 bajtów, gdzie pozostałe trzy pozostają wolne. Może je wykorzystać dociekliwy konstruktor, rozbudowując urządzenie
0 np. obsługę dni tygodnia itp. Za obsługę zdarzeń odpowiedzialna jest pętla główna programu, a zwłaszcza fragment przedstawiony na list. 1.
Ponieważ procedura ta wykonywana jest w pętli, wszystkie dane sprawdzane są na bieżąco. Jeżeli wszystkie warunki naszego ustawienia odpowiadają aktualnej godzinie
1 dacie, dochodzi do wykonania odpowiedniego zdarzenia. Niestety sprawdzenie tych wszystkich warunków, dla
wszystkich 25 ustawień, zajmuje procesorowi trochę czasu, dlatego też załączanie/wyłączanie odbywać się może z lekkim opóźnieniem (kilka sekund). Niemniej jednak, może bardziej zaawansowani ode mnie programiści poradzą sobie z tym w inny, szybszy i bardziej wydajny sposób?
Programowanie sterownika
Teraz nadszedł, zapewne wyczekiwany przez wielu konstruktorów, moment uruchomienia naszego cacka. Po podłączeniu poprawnie zmontowanego układu na wyświetlaczu pojawi się powitalny komunikat w postaci mojego adresu e-mail. Następnie układ przejdzie do wykonywania głównego programu. Na wyświetlaczu pojawi się informacja o czasie oraz dacie i o ile nie założyliśmy jeszcze odpowiedniego jumpera akumulatorka, będzie to godzina 00:00:00 oraz data 01.01. Po tej niezwykle upojnej chwili wpatrywania się w wyświetlacz dobieramy się do klawiatury! Wszelkich manipulacji dokonujemy za pomocą trzech przycisków: TIME, DATĘ, SET.
Po naciśnięciu przycisku TIME (<-) sterownik zapyta nas, czy chcemy zmodyfikować godzinę. Analogicznie po naciśnięciu przycisku DATĘ - zapyta, czy chcemy ustawić datę. Aby dokonać zmiany czasu albo daty, należy na zadane pytanie odpowiedzieć klawiszem SET (->). Można również odpowiedzieć negatywnie i wrócić do pętli głównej programu (opcja ESC) klawiszem: <-. Przy ustawianiu zegara licznik sekund zostanie wyzerowany. Teraz możemy przejść do ustawiania godzin i minut. Służą do tego w tym momencie odpowiednio przyciski TIME i DATĘ. Po ustawieniu prawidłowej
informacji dokonujemy zapisu za pomocą przycisku SET. Analogicznie postępujemy podczas wprowadzania daty.
Przed dokonywaniem jakichkolwiek ustawień zalecam skasowanie pamięci. Dokonujemy tego poprzez równoczesne wciśnięcie klawiszy TIME i DATĘ w trybie głównym programu (podczas prezentacji godziny i daty). Następnie naciskamy SET (->). Po skasowaniu zawartości pamięci urządzenie przejdzie do trybu głównego.
Aby przejść do trybu ustawiania zdarzeń, należy pozytywnie odpowiedzieć na pytanie postawione przez sterownik po naciśnięciu klawisza SET (->). Kiedy na wyświetlaczu pojawi się napis ,,Następne...", to oznacza, że w pamięci nie znajdują się dalsze/żadne ustawienia. Należy wówczas nacisnąć klawisz SET (->), po czym urządzenie przejdzie do trybu pobierania danych określonych przez nas zdarzeń. Należy teraz wpisać dane, o które poprosi sterownik. Po zakończeniu tej operacji pojawi się napis "*** OK! ***". Teraz możemy przejść do trybu głównego. Od teraz nasze urządzenie (np. AGD) będzie obsługiwane przez nasz sterownik. Możemy również dopisywać kolejne cykle załącz/wyłącz (po naciśnięciu klawisza SET (->)). Tak wygląda tryb programowania urządzenia. Proste?
Jeżeli zdecydujemy się ponownie przejść do trybu ustawień, nie przywita nas już napis ,,Następne...". Zamiast niego pojawi się tam godzina załączenia pierwszego wprowadzonego przez nas cyklu załącz/wyłącz, a przed nią stosowny numerek kolejności wprowadzenia. Teraz możemy dokonać korekty wpro-
WYKAZ ELEMENTÓW
Rezystory
Rl, R15...R17: lktł
R2...R6: 100Q
R7...R14: 220Q
PR1: potencjometr
napłytkowy miniaturowy
4,7ka
Kondensatory
Cl: 2200^F/25V
C2: lOOnF
C3...C5: 33pF
Có: 2,2^F/16V
Półprzewodniki
D1...D4, D6, D7: 1N4148
D5: mostek prostowniczy
1A/5OV
US1: AT89C4051
zaprog ra m owa ny
US2: PCF8583
US3: AT24C04
US4: 7805
Q3...Q6: BT136
Q7...Q10: optotriak
MOC3020
Różne
Ql: rezonator kwarcowy
11,059 MHz
Q2: rezonator kwarcowy
zegarkowy 32768 Hz
TRI: transformator TS2/16
FUSE 1: bezpiecznik 100 mA
FUSE 2...5: bezpiecznik 3 A
DPI: wyświetlacz LCD 16*2
JP2, JP3: goldpin 3*1
S1-S3: przycisk typu
microswitch
Bat 1: akumulatorek 3,6V
wadzonych przez nas uprzednio danych (klawisz SET (->)). Wybierając opcję NEXT (klawisz DATĘ), możemy natomiast przejść do trybu wprowadzania kolejnych zapisów.
Teraz jeszcze jedna bardzo ważna sprawa odnośnie wpisywania cykli załącz/wyłącz. Mianowicie bardzo często za pomocą nieskomplikowanego triku programistycznego moż-
List. 1 Obsługa cykli załgcz wyłgcz
Liczn ik = Licznik + 10
X = Licznik + 1 : Cali Read_ee prom(x, Va lue )
If Mi nuty = Value The n
X = Licznik + 2 : Ca 11 Read_e eprom(x, V alu e)
If G odziny = V alue Then
X = Licznik + 3 : C all Read_ eeprom(x, Value)
If Dni = Valu e Or V alue = 32 Then
X = Licznik + 4 : Cali Read _eeprom(x, Va lue)
If Miesiące = Valu e or Valu e = 13 The n
X = Licznik + 9 : Cali Rea d_eeprom (x , V alue)
C all Wlacz urzadz enie
En d If
E nd If
E n d If
En d If
X = Licznik + 5 : Cali Rea d_eeprom (x , V alue)
If Minuty = Value Then
X = Licznik + 6 : Cali Re ad_eeprom(x, Value)
If Godziny = Value Then
X = Liczn ik + 9 : Cali R ead_eeprom (X, Value)
Cali Wyła cz_urz ad ze nie
End If
E nd If
If Li cznik = 250 Then Licznik = 0
Elektronika Praktyczna 7/2003
89
PROJEKTY CZYTELNIKÓW
na w znaczny sposób rozsze-Tzyć funkcjonalność danego urządzenia mikroprocesorowego. Tak też stało się i tym razem. Tryb roczny pozwala na bardzo precyzyjne sterowanie urządzeniami. Jednak przyznacie, że w przypadku, gdy chcemy, aby dane zdarzenie zachodziło codziennie o takiej samej godzinie, bezcelowym i zapewne bardzo męczącym byłoby wprowadzanie wszystkich dni roku. Zresztą dni mamy 365, a ustawień tylko 25. Ponadto może również zaistnieć konieczność włączania danego urządzenia takiego samego dnia każdego miesiąca albo odwrotnie, kiedy chcemy, aby urządzenie włączało się codziennie podczas wybranego miesiąca. Nasz sterownik umożliwia takie triki! Być mo-
że podczas wprowadzania cykli załącz/wyłącz natknąłeś się, Czytelniku, na dwa plusy ,,++", które pojawiają się po przekroczeniu dnia 31 oraz po przekroczeniu 12 miesiąca. Te plusy oznaczają, że ten argument będzie ignorowany. Łatwo więc zauważyć, że w przypadku ignorowania dni oraz ignorowania miesięcy zdarzenie odbywać się będzie codziennie, w przypadku ignorowania dni - cykle wykonywane będą codziennie, oraz w przypadku ignorowania miesięcy - co miesiąc danego dnia.
Aktualizacja oprogramowania
Jeżeli zainteresowanie układem będzie duże, a programiści aktywni, założę stronę WWW sterownika,
gdzie zamieszczane będą kolejne wersje oprogramowania (wraz z danymi o autorach oczywiście). Jasnym jest chyba fakt, że cała ,,inteligencja" zależy od programu procesora. Sprzęt nie gra tu wiążącej roli, zwłaszcza jeżeli chodzi o przeznaczenie układu. Będę więc czekał na wszelkie propozycje i rozwiązania programowe nowych zastosowań urządzenia. Niestety z bólem serca muszę stwierdzić, że te 4 kB pamięci to trochę mało (dla mnie i Bas-coma). Może uda Warn się znacznie ograniczyć długość kodu poprzez wykorzystanie innego kompilatora (np. języka C, ewentualnie ASM)? Przyznaję, że program, który udostępniłem, to nie jest artystyczne dzieło, ale wystar-
cza do prawidłowego funkcjonowania urządzenia. Jednak całą zabawę związaną z sortowaniem pozostawiam Warn, drodzy Czytelnicy. Miłej zabawy! Mariusz Ciszewski elemid@wp.pl
Od redakcji: przygotowane przez autora projektu płyt-ki drukowane wymagają modyfikacji polegającej na pogrubieniu ścieżek doprowadzających prąd do obciążenia, warto także pogrubić do co najmniej 20...30 milsów pozostałe ścieżki - ułatwi to wykonanie płytek w warunkach domowych. Tak zmodyfikowane wzory płytek publikujemy na wkładce i na CD-EP7/ 2003B.
90
Elektronika Praktyczna 7/2003
BIBLIOTEKA EP
IV ^Bibliotece BP" 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 polki, Aby nie marnować miejsca w BP, 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, 73), Chcemy w ten sposób udostępnić je Czytelnikom BP,
Anton Herner, Hans-Juetgen Riehl "Elektrotechnika i elektronika w pojazdach samochodowych", WKŁ 2003
wych i wtryskowych, immobilize-rach i systemach alarmowych, różnego rodzaju układach zwiększających bezpieczeństwo jazdy (ABS, ASR, ESP, blokada mechanizmu różnicowego, poduszki gazowe, na-pinacze pasów bezpieczeństwa itp.). Niezbędne informacje znajdą w książce także Ci Czytelnicy, którzy chcą poznać tajniki działania urządzeń podnoszących komfort jazdy i wygodę korzystania z samochodu, jak np. klimatyzacja, elektryczne wspomaganie kierownicy, elektryczne sterowanie zmianą przełożeń skrzyni biegów, czujniki parkowania, zdalne sterowanie zamykaniem drzwi, szyb i dachu, elektryczna regulacja lusterek, foteli i położenia kierownicy.
Prezentowana książka jest prawdziwym kompendium wiedzy dla większości użytkowników współczesnych samochodów, a przede wszystkim dla elektroników zajmujących się elektroniką samochodową. Żaden z prezentowanych tematów nie został zgłębiony w stopniu umożliwiającym potraktowanie książki jak instrukcji serwisowej, ale zawarta w niej wiedza daje dobry pogląd na możliwości współczesnej elektroniki i elektrotechniki samochodowej.
Książkę przetłumaczono z języka niemieckiego. Trzeba przyznać,
ŚMcti-onlM PraMyoznaj
Niezwykła książka, o treści znacznie bogatszej niż sugeruje to jej tytuł. Autorzy na ponad 450 stronach zmieścili przyjazny kurs podstaw elektrotechniki (prawa: Ohma i Kirchoffa, połączenia szeregowe i równoległe, zasady działania elementów RLC itp.) i elektroniki (w tym podstaw techniki cyfrowej), przedstawili podstawowe zasady obowiązujące podczas dokonywania pomiarów rezystancji, prądów i napięć (za pomocą multimet-ru), a także wykorzystania oscyloskopu podczas wykonywania nieco bardziej złożonych pomiarów. Wiele miejsca autorzy przeznaczyli także na omówienie symboliki, zasad tworzenia i czytania schematów elektrycznych. Osobny rozdział poświęcono transmisji danych pomiędzy elementami systemu sterowania w samochodzie, a także nowoczesnym sposobom regulacji różnych parametrów urządzeń stosowanych w technice samochodowej.
W książce nie zabrakło oczywiście informacji o układach zapłono-
że tłumacz dobrze wywiązał się z zadania, jedyne wątpliwości budzą "oryginalne" nazwy przypisane niektórym elementom elektronicznym, szczególnie przerzutni-kom (całkowicie nieadekwatne do spełnianych funkcji) - czytelnik "zmaga" się bowiem z układami relaksacyjnymi. Mimo tego - pięć lutownic!
Andrzej Gawryluk
Wojciech Głocki "Układy cyfrowe", WSiP
Jest to zatwierdzony przez MENiS podręcznik, dla średnich szkół zawodowych, w całości poświęcony przybliżeniu początkującym podstaw techniki cyfrowej. Układ książki jest klasyczny: autor zaczyna od wyjaśnienia co to jest technika cyfrowa i przedstawienia
różnych systemów liczbowych oraz podstaw arytmetycznych algebry Eoole a. Następnie przedstawiono charakterystykę i sposoby tworzenia fw tym metod minimalizacji) układów kombi -nacyjnych, zasadę działania i rodzaje układów synchronicznych. Sporo miejsca autor przeznaczył także na omówienie budowy, technologii produkcji układów cyfrowych f różne rodziny układów TTL i CMOS) i wynikających z niej parametrów elektrycznych i czasowych.
Pewne wątpliwości budzi ostatnia część książki (rozdział 16), w której autor przedstawia budowę i omawia zasadę działania mikroprocesora. Zaskakujący jest jego wybór - opisano bowiem mikroprocesor 8080 (dokładniej - jego polski odpowiednik MCY7880), który ze względu na specyficzną budowę nie ma odpowiednika we współczesnej elektronice. Uważam, że jest to niepotrzebny archaizm, utrudniający mniej wprawnemu czytelnikowi (głównie do takich jest książka
Elektronika Praktyczna S/2003
119
BIBLIOTEKA EP
ROZBUDOWA
i NAPRAWA KOMPUTERA
KOMPENDIUM
Legenda:
dla HobbyKow Ś proletjonaliitow
jest kierowana) wyrobienie sobie zda-nia co do możliwości współczesnej techniki cyfrowej. O ile pierwsze częś-ci książki są warte polecenia, to rozdział 16 wymaga całkowitej przebudowy.
Interesującym uzupełnieniem treści książki są przykładowe projekty (dokumentacja na poziomie schematów elektrycznych udostępnionych w postaci wkładki do książki): testera pamięci i cyfrowego stopera.
Podsumowując: niezła książka dla początkujących elektroników, którzy chcą poznać technikę cyfrową "od środka".
Mikołaj Artdrus
Scott Mueller "Rozbudowa i naprawa komputerów. Kompendium11, Helion 2003
Kolejna w ofercie Wydawnictwa Helion książka poświęcona komputerom "od środka". Jest to kompleksowa i kompetentna prezentacja tego interesującego zagadnienia, przy czym ze względu na ograniczoną objętość książki - niestety - dość pobieżna. Z tego powodu jej przydatność dla elektroników jest ograniczona, choć podczas
OUE JCO" MUllLt* Ś*('
składania lub modyfikowania komputera książka może się okazać nieoceniona. Oprócz "klasycznych" zagadnień takich jak budowa PC-ta, budowa i typy płyt głównych, rodzaje pamięci stosowanych w komputerach, rodzaje i możliwości interfejsów stosowanych do dołączania dysków twardych, czy prezentacji funkcji EIOS-u, autor przystępnie opisał typowe interfejsy I/O wraz ze stosowanymi typami złącz fw tym IEEE1394) oraz karty graficzne i dźwiękowe.
Tomasz Jasirun
Rafał Dmowski "Motocyklowe instalacje elektryczne", WKŁ2003
Jest to pierwsza znana nam, wydana w języku polskim książka o instalacjach elektrycznych w motocyklach i motorowerach. Po krótkim wstępie (elekt ryczno-elektronicznyrn) autor przechodzi od razu do rzeczy, zajmując się kolejno poszczególnymi fragmentami typowych instalacji elektrycznych stosowanych w jednośladach, przy czym większość zagadnień pokazano na przykładach konkretnych pojazdów. Niemal połowę objętości książ-
książka wybitna, polecamy!
książka o dużych walorach praktycznych, polecamy!
może się pizydać
daleka od doskonałości
nie warto kupować
ki zajmują schematy elektryczne instalacji jednośladów i to zarówno produkowanych niegdyś w naszym kraju, jak i wielu "rasowych" jak np. Honda Goldwing czy Suzuki GSX RllOO.
Andrzej Gawryluk
Raf ał Dmowshi
Motocyklowe
instalacje elektpyc
120
Elektronika Praktyczna S/2003
AUTOMATYKA
Laserowe czujniki odległości firmy Baumer Electric
Szwajcarska firma Baumer Electric posiada w swojej ofercie szeroką gamę czujników przemysłowych do pomiaru odległości. Na miano najbardziej uniwersalnych zasługują czujniki fotoelektryczne z wyjściem analogowym serii OADM. W niniejszym artykule przybliżymy zasadę pomiaru triangulacyjnego oraz wynikające z niego zalety i niedogodności.
Zasada działania fotoelektrycznych czujników OADM jest dość prosta i przedstawiono ją na rys. 1. Światto lasera odbite od mierzonej powierzchni przechodzi przez soczewkę i trafia na matrycę fotoelektryczną. W wycofanych z produkcji przed dwoma laty szybkich (czas reakcji <1 ms) czujnikach z przetwornikiem PSD, duże trudności sprawiał pomiar sygnatu odbitego od powierzchni silnie pochłaniających światto. Zastosowanie w tym miejscu macierzy CCD skutkuje zwiększeniem dokładności pomiaru na strukturach porowatych i bardzo ciemnych. Matryca ta ma jedynie 128 punktów, jednak za pomocą obróbki matematycznej sygnatu z sąsiadujących punktów matrycy można uzyskać tącznie 8192 punkty.
Jak można zauważyć w metodzie triangulacyjnej (rys. 2) wraz z oddaleniem obiektu od czujnika, zmniejsza się ilość światta odbitego od powierzchni, ponadto duże zmiany w położeniu obiektu wywołują matę zmiany położenia wiązki świetlnej na matrycy. Skutkiem tego jest pogarszanie się rozdzielczości pomiaru przy większych odległościach. Jedynym wyjściem jest zawężenie zakresu pomiarowego do obszaru, w którym rozdzielczość nie spada poniżej zadanej wartości lub dołączenie do czujnika wykresu obrazującego znamionową rozdzielczość w funkcji odległości. Pierwsze rozwiązanie jest stosowane w standardowej serii OADM 2OI4xxx, a drugie np. w szybkiej serii OADM 2OI6xxx. Przykładowe charakterystyki rozdzielczości i błędu liniowości w funkcji odległości i zakresu pomiarowego dla czujników serii OADM20l6x60/S14F zamieszczono na rys. 3.


//
10 Q mm zmia woduje ty ianę sygna dzieiczość y zakresu
/ po ko małą Śu = mała
K roi
\
/ \
/ -^ 100 mm zmiany powoduje dużą zmia - wysoka rozdzieiczoi zakresu -nę sygnału
/

<
O 1OO 200 3OO 40O 5OO 6OO
zakres pomiarowy [mm]
Rys. 2. Charakterystyka czułości metody triangulacyjnej
Z charakterystyk tych można również odczytać, jaką uzyskamy rozdzielczość przy zawężaniu zakresu pomiarowego (ZP), bowiem czujniki serii OADM20l6xxx wyposażone zostały w funkcję "uczenia" (teach-in). Baumer aktualnie wprowadza zunifikowaną metodę uczenia do wszystkich swoich
Typowa rozdzielczość czujnika OADM 20i6x60/S14F w zaieżności od zakresu pomiarowego (ZP) I mierzone) odległości
50 70 90 110
mierzona odległość [mm]
Typowy błąd liniowości czujnika OADM 20i6x60/S14F w zaieżności od zakresu pomiarowego (ZP) i mierzonej odległości
-ZP 3mm -ZP50mm "ZP lOOmm
mierzona odległość [mm]
Rys. 1. Zasada działania czujników odległości
Rys. 3. Wykresy zależności rozdzielczości i błędu liniowości w funkcji mierzonej odległości
122
Elektronika Praktyczna 8/2003
AUTOMATYKA
Tab. 1. Zestawienie podstawowych parametrów czujników odległości firmy Baumer Electric
OADM20I4...... tDn<10ms Laser-Pomt Laser-Line RS485
Zakres pomiarowy 30...50 mm 30...130mm 50...250 mm 100...500 mm 200...1000mm
Rozdzielczość 0,01 mm 0,06 mm 0,3 mm 0,5 mm nrm
KMOEE OADM20I6...... tDn<0,9ms Teach-ln Laser-Point Laser-Line
Zakres pomiarowy 30...70 mm 30...130mm 50...300 mm 100...600 mm 200...1000mm
Rozdzielczość 0,004...0,02 mm 0,005...0,06 mm 0,01 ...0,33 mm 0,015...0,67 mm 0,12...3mm
PDKXEE OADM21I6...... tDn<10ms Teach-ln Laser-Pomt Laser-Line D
Zakres pomiarowy D D D D 200...1000mm
Rozdzielczość D D D D 0,03...0,7 mm
OADM12I6......tDn < 0,9 ms Teach-ln Laser-Pomt
Zakres pomiarowy 15...26 mm 15...120mm CzuimkwDfazie projektowania
Rozdzielczość 0,002..0,005 mm 0,002..0,1 mm
czujników analogowych. Polega ona na możliwości zawężenia zakresu pomiarowego (dolna i górna wartość) odpowiadającemu pełnemu zakresowi wartości wyjściowej oraz umożliwia inwersje tak zaprogramowanej charakterystyki (rys. 4). Wszystkie powyższe funkcje można zaprogramować za pomocą jednego przycisku lub wejścia napięciowego. Procedura uczenia jest następująca:
- nacisnąć przycisk przez 5 sekund (czerwona LED zacznie migać),
- zwolnić przycisk,
- umieścić obiekt w odległości odpowiadającej 0 V (4 inA) na wyjściu,
- krótko nacisnąć przycisk (odczyt pozycji 1), LED powinna mignąć,
- umieścić obiekt w odległości odpowiadającej 10 V (20 inA) na wyjściu,
- krótko nacisnąć przycisk (odczyt pozycji 2).
1OV
Przykład nowej charakterystyki
Standardowa charakter*
30 mm
130 mm
1OV
ov
Przyłdad nowej, Standartowa
odwróconej charnktBryłtyki charakterystyka wyjściowa
30 mm
130 mm
Rys. 4. Czujniki odległości firmy Baumer można "uczyć" m.in. poprzez zawężenie zakresu pomiarowego odpowiadajqcego pełnemu zakresowi wartości wyjściowej oraz umożliwia inwersję jego charakterystyki
Rys. ó. Jednq z możliwych aplikacji jest pomiar napełniania szpuli z drutem
Po wykonaniu powyższych kroków, czujnik jest gotów do pracy. Przez okoto 5 minut po ostatniej procedurze uczenia lub do chwili ponownego włączenia zasilania czujnik nie reaguje na polecenia z przycisku "Teach-in" , co ma zapobiec przypadkowemu przeprogramowaniu.
Laserowe czujniki odległości produkowane przez Baumer można podzielić na kilka serii. W tabeli 1 zestawiono charakterystyczne parametry. Wszystkie urządzenia są oparte o te samą technikę pomiaru (triangulacja) i wyposażone w mikroprocesor, który oblicza wartość wyjściową z uwzględnieniem panujących warunków otoczenia która jest zamieniana na wartość analogową przez 16-bitowy przetwornik cyfrowo-analogowy. Użytkownik ma możliwość wyboru pomiędzy wyjściem analogowym napięciowym i prądowym. Po załączeniu zasilania, obwód wyjściowy czujnika sprawdza ciągłość pętli prądowej i jeśli nie jest ona zamkniętą po 100 ms aktywuje wyjście napięciowe 0-10 V. Czujniki Laser-point mają oświetlacz laserowy wysyłający promieniowanie postaci okrągłej wiązki - jest to podstawową uniwersalna wersja czujnika. Czujniki z oświetlaczem Laser-line wysyłają wiązkę o kształcie linii (rys. 5). Sensor CCD "widzi" odbite od nierównej powierzchni światło liniowego oświetlacza jako przebieg o nieregularnym kształcie. Mikroprocesor na podstawie rozkładu światła na matrycy wylicza średnią odległość od obiektu. Rozwiązanie to jest dedykowane do pomiarów odległości od nierównych, chropowatych powierzchni, a także do powierzchni, w której występują otwory. Przykładowe aplikacje to pomiar napełniania szpuli z drutem (rys. 6), pomiar odległości od siatek metalowych o drobnych oczkach lub płytek PCB z nawierconymi otworami.
mierzona powtorzchnlR
Rys. 5. Czujniki z oświetlaczem Laser-line wysyłajq wiqzkę światłq w postaci pojedynczej linii
Elektronika Praktyczna S/2003
123
AUTOMATYKA
Sensory o czasie odpowiedzi <10 ms mogą być wyposażone w interfejs RS485, za pomocą którego można dokonywać odczytu wartości, zadawać dwa progi przełączenia wyjścia dwustanowego, zatrzymywać w rejestrze aktualną wartość (funkcja hołd) odczytywać czas migawki itp.
Dodatkowo szybkie wersje czujników są wyposażone w wejście synchronizujące, za pomocą którego poprzez zewnętrzny zegar można sterować pracą kilku czujników pracujących w niewielkiej odległości od siebie.
Podczas produkcji, do wewnętrznej pamięci każdego z czujników są wprowadzane współczynniki korekcji formuł obliczeniowych wartości wyjściowej. Dla każdego czujnika indywidualnie wyznaczane są: tabela korekcji liniowości oraz współczynniki kompensacji temperaturowej. Zabiegi te skutkują znakomitą liniowością czujnika w pełnym zakresie pomiarowym, która jest w bardzo małym stopniu zależna od koloru i rodzaju powierzchni. Z doświadczeń przeprowadzonych przez niezależne laboratorium DASFOS v.o.s. (Republika Czeska) wynika, że dla pomiarów przeprowadzonych w temperaturze +20C uzyskane odchyłki są dwukrotnie mniejsze od deklarowanych przez producenta.
Na koniec kilka słów o projektowanym czujniku OADM serii 12 (rys. 7). Jego produkcja ma się rozpocząć w 2004 roku i jak widać ztab. 1 będzie to najdokładniejszy, a zarazem najmniejszy czujnik Baumera. Wymiary gabarytowe tego modelu to 37x35x12 mm. Elementem czujnikowym be-
Rys. 7. Standardowy czujnik serii OADM 20 oraz najnowsza wersja OADM 12 (po lewej)
dzie matryca CCD, a wbudowany szybki procesor umożliwi wykonywanie szybkich pomiarów. Na razie planowana jest tylko wersja Laser-point z wyjściem prądowym 4..20 mA. Tomasz Śliwa kowski, Amtek
Dystrybutorem firmy Baumer jest Amtek spof. s r.o., (22) 874-02-34, amtek@amtek.pl, www.amtek.cz.
tel.
124
Elektronika Praktyczna S/2003
AUTOMATYKA
Praca z pakietami BSP
Era Momenticsa
Wprowadzenie do sprzedaży w czerwcu 2002 roku pierwszej komercyjnej wersji pakietu QNX Mo-mentics okazało się trafionym posunięciem. Oprogramowanie odniosło duży sukces i obecnie ma spore szansę zostania jednym z najlepszych narzędzi programistycznych w kategorii systemów czasu rzeczywistego. Dynamiczny rozwój poparty szeregiem "łatek", aktualizacji, nowych wersji oprogramowania oraz dodatkowych pakietów kreuje obraz godnego zaufania produktu, i to pomimo tak młodego wieku (na rynku nieco ponad rok).
Obecnie swój rozkwit przeżywają kompletne, zintegrowane środowiska programistyczne (QNX Mo-mentics, Tornado II...). Trwa nieustający wyścig w ulepszaniu oraz rozbudowywaniu narzędzi, a producenci dokładają wszelkich starań, aby ich programy narzędziowe były jak najbardziej uniwersalne oraz łatwe w użyciu i nauce.
I tak dla przykładu zestaw QNX Momentics zawiera: system operacyjny QNX Neutrino (obecnie w wersji 6.2.1), środowisko graficzne Photon wraz z programem do tworzenia aplikacji okienkowych (phAB), zintegrowane środowisko programistyczne IDE, narzędzia do pisania własnych sterowników DDK, pakiety BSP, biblioteki i narzędzia GNU, instruktażowe klipy wideo, obszerną dokumentację oraz szereg kodów źródłowych. Naszą uwagę, w dalszej części artykułu skupimy na dedykowanych zestawach BSP.
Co to jest BSP?
Pakiet BSP {Board Support Package) jest zestawem kodów źródłowych, plików binarnych, konfiguracyjnych oraz kreatorów mających za zadanie uruchomienie systemu operacyjnego wraz z kompletną obsługą wszystkich urządzeń docelowej platformy sprzęto-
wej. Począwszy od QNX Momentics 6.2.0 (17 pakietów dla 25 popularnych platform), liczba zestawów stale rośnie i aktualna ich lista znajduje się pod adresem: http://www.qnx.com/products/ psbsps. Zanim przejdziemy do omawiania przykładowego pakietu BSP musimy zatrzymać się na chwilę przy analizie sekwencji bo-otowania systemu operacyjnego.
Bootowanie systemu operacyjnego QNX Neutrino
Co dzieje się podczas bootowa-nia? Jakie komponenty są wymagane dla poprawnego załadowania systemu? W odpowiedzi na te pytania pomoże nam schemat inicjacji systemu operacyjnego QNX Neutrino przedstawiony na rys. 1.
Po włączeniu zasilania, resecie sprzętowym bądź programowym procesor zaczyna wykonywać instrukcje kodu spod specyficznego dla danej architektury adresu [reset vector). Kodem tym może być BIOS, ROM monitor, ewentualnie inicjujący program ładujący IPL [Initia! Program Loader). Pierwszy scenariusz, typowy dla komputerów klasy PC jest najłatwiejszy w realizacji, ponieważ wszystkie czynności konfiguracyjne wykonywane są z poziomu BIOS-u. BIOS zwykle przeprowadza wstępną diagnostykę oraz ustawia poszczególne urządzenia sprzętowe. W następnym etapie BIOS znajduje swoje rozszerzenia (kontroler dysku twardego, boot
Artykuł ma na celu
przybliżenie Czytelnikom
tem a tyki tworzeni a
wb u do wanych obrazo w
systemowych w oparciu
o narzędzia zestawu
programis tyczn ego
QNX Momentics. Główny
nacisk położono przede
wszystkim na
wykorzystanie pakietów
BSP stanowiących
niezbędne, fundamentalne
wsparcie przy
opracowywaniu własnego
projektu dla specyficznej
platformy docelowej.
Wltlrflfrft,
ROM karty sieciowej itp.) oraz skacze do nich w celu wykonywania dalszego ciągu programu. Po wykonaniu skoku następuje załadowanie obrazu systemowego do pamięci (np. z dysku twardego) i przekazanie kontroli programowi startup. ROM monitor jest specjalnym oprogramowaniem sprzętowym [firm-ware), zapisywanym do pamięci
Start
Wykonano
komponenty pakietu BSP
Rys. 1. Sekwencja inicjowania systemu QNX Neutrino
Elektronika Praktyczna 8/2003
125
AUTOMATYKA
resetyector
IPL-*
obraz systemowy
program ładujący
* specyficzna wersja zależna od platformy oraz warstwy sprzętowej
startup-*
procnto
pliki plik2 plik3
Rys. 2. Start systemu z wykorzystaniem programu ładującego IPL
Flash w procesie produkcji urządzenia. Przeważnie oprogramowanie sprzętowe obsługuje: transfer danych przez port szeregowy (protokół Xmodem/Ymodem), sieć Ethernet (klient TFTP), proste operacje na pamięci (wyświetlanie, usuwanie i zapis) oraz kilka wariantów debu-gowania niskiego-poziomu. ROM monitor wgrywany jest z reguły za pomocą programatora pamięci bądź też interfejsu JTAG. Zarówno w pierwszym jak i drugim przypadku większość czynności konfigura-cyjnych zostaje wykonana przez BIOS bądź ROM-monitor. Taki rodzaj inicjacji nazywamy gorącym startem.
Start systemu
z wykorzystaniem inicjującego
programu ładującego IPL
Podczas zimnego startu systemu nic nie jest zainicjowane oraz ustawione. Procesor i cała reszta sprzętu jest po prostu ponownie przywracana do swoich ustawień domyślnych. W jaki zatem sposób dokonywana jest inicjacja systemu?
Procedura konfiguracji oraz ładowania systemu została podzielona na dwa etapy: IPL i startup. Pierwszym krokiem wykonywanym przez oprogramowanie jest wgranie obrazu systemu przez program ładujący IPL. Ponadto zadaniem IPL-a jest dokonanie minimalnej konfiguracji sprzętowej, która umożliwi w konsekwencji przejście do drugiego etapu - uruchomienia programu startup.
Kod programu IPL został rozbity na dwa programy, które podczas kompilacji są łączone w jeden plik wynikowy. Pierwszy z nich (napisany całkowicie w asemblerze) jest odpowiedzialny za utworzenie środowiska dla programu startup,
a mianowicie konfiguracji: zegarów, GPIO, kontrolera pamięci i/lub kontrolera PCI. Ostatecznie program ładujący skanuje pamięć FLASH w poszukiwaniu obrazu, weryfikuje go oraz wgrywa do pamięci RAM. W przypadku nie znalezienia obrazu systemowego IPL umożliwia jego wgranie poprzez port szeregowy (protokół sendnto).
Po przekazaniu kontroli do programu startup, wykonywane są dalsze czynności konfiguracyjne sprzętu: jednostki MMU, czasomierza systemowego, kontrolera przerwań oraz strony systemowej (czas, data, ilość pamięci, typ procesora, kop-rocesora i szyny sprzętowej). Gdy już wszystkie urządzenia są poprawnie ustawione startup przekazuje kontrolę następnemu programowi obrazu systemowego procnto - czyli po prostu uruchamia system operacyjny. Mikrojądro systemu QNX Neutrino wraz z Zarządcą Procesów uruchamiają pozostałe pliki wykonawcze (aplikacje, sterowniki, protokoły itp.) wyszczególnione w skrypcie startowym. Uproszczony proces ładowania systemu pokazano na rys. 2.
Praca z pakietem BSP
Przykładowy pakiet dla platformy Intel a PXA250TMDP BSP zawiera:
- kod źródłowy: IPL, startup, sterownika kontrolera dźwięku, systemu plików flash oraz wszystkich dodatkowych bibliotek,
- sterowniki do pozostałych urządzeń (w postaci binarnej): portu szeregowego, karty sieciowej, graficznej oraz ekranu dotykowego,
- szereg kreatorów (pliki makefile) oraz dodatkowe pliki konfiguracyjne - np. plik na podstawie którego generowany jest obraz systemowy [Buildfile).
W jaki sposób należy rozpocząć pracę z pakietem BSP?
Schemat ideowy pracy z zintegrowanym zestawem programistycznym QNX Momentics przedstawiono rys. 3.
Przykładowo dla środowiska programistycznego QNX Neutrino 6.2.1 zestawy BSP zainstalowane są w następującym katalogu lusr/src/
bsp-6.2.1 oraz podzielone są na dwa obszary: specyficznej platformy /usr/src/bsp-6.2.1 /procesor/platforma i bibliotek (np. biblioteka IPL, biblioteka startup) /usr/src/bsp-6.2.1/libs. Ponadto dla każdej platformy wyróżniamy:
- /usr/src/bsp-6.2.11procesor/plat-forma/src -> katalog z kodami źródłowymi: IPL, startup, systemu plików Flash, serwera PCI itp.,
- /usr/src/bsp-6.2.1/procesor/platfor-ma/scratch -> katalog ten zawiera pliki wynikowe utworzone poleceniem make install wywołanym w katalogu src,
- /usr/src/bsp-6.2.1/procesor/platfor-ma/images -> katalog zawierający makefile, pliki "budujące" [build files), opisowe oraz dodatkowe skrypty,
- /usr/src/bsp-6.2.1/procesor/platfor-ma/prebuilt -> katalog ten używany jest podczas pierwszego wywołania komendy make na poziomie katalogu procesor/platforma.
Praca z pakietem BSP
w zintegrowanym środowisku
programistycznym IDE
Korzystając z kreatora należy utworzyć nowy projekt (Standard Make C Projekt) oraz zaimportować do niego całą zawartość katalogu / usr/src/bsp-6.2.1/procesor/board/ (w przypadku pracy ze źródłami danej platformy) bądź też /usr/src/bsp-6.2.1/libs (praca z bibliotekami).
Wynikowe pliki binarne (IPL, obraz systemowy) mogą być przesyłane do urządzenia za pomocą portu szeregowego (protokół sendnto). Ponadto IDE posiada wbudowany serwer TFTP umożliwiający transfer danych poprzez sieć Ethernet.
Tworzenie własnych, booto-walnych obrazów systemowych dla pamięci Flash wspomaga w dużym stopniu narzędzie System Builder. Wystarczy kliknąć na żądanym komponencie, a System Builder sprawdzi zależności oraz automatycznie dołączy wszystkie wymagane elementy składowe (biblioteki, itp.). Istnieje również możliwość redukcji rozmiaru danej biblioteki do pliku zawierającego minimalny zbiór funkcji używanych w naszym systemie docelowym.
126
Elektronika Praktyczna 8/2003
AUTOMATYKA
QNX Neutrino 6.2.x Windows 2000/XP Solaris 7/8
JTAG -----
Ethernet (TFTP) RS-232 (sendnto)
ARM
MIPS
PowerPC
SH-4
StrongARM
Xscale
x86
Środowisko programistyczne
Rys. 3. Praca z zestawem QNX Momentics
Platforma docelowa
Plany na przyszłość
Na początku lipca ukazał się nowy, poszerzający możliwości systemu pakiet - QNX Momentics 6.2.1B PE. Nowością jest zestaw narzędzi wspomagających zarządzanie energią [Power Management). Zcentralizowane sterowanie zasilaniem umożliwia projektantom pełną kontrolę stanu zasilania całego systemu, jaki i poszczególnych jego komponentów składowych. Zestaw specjalnych funkcji pozwala prze-chwytywać interakcje pomiędzy jednostką zarządzającą a wszystkimi urządzeniami systemu.
Producent systemu QNX Software Systems Ltd. zapowiada agresywną politykę rozwoju pakietów BSP. W III kwartale ukażą się zestawy wspierające nowe procesory Intela (IXCDP 1100, IXDP 425 oraz IXDP 2400), Broadcoma (BCM 91125E, BCM 91250E i BCM 5690) Motoroli itp. stworzone z myślą o segmencie sieciowym. Rynek motoryzacyjny również rozwija się w podobnym tempie i wkrótce możemy się spodziewać między innymi następujących zestawów BSP: Hitachi Big Sur/Amanta, Hitachi SH 7760, Hitachi SystemH, Motorola "Redbox" - Power PC 823e, Motorola MGT 5100.
Na koniec tego roku zapowiadana jest kolejna wersja systemu QNX Momentics 6.3.0 z nowymi kompilatorami GCC 3.x, obsługą USB 2.0, zewnętrznych urządzeń dyskowych podpinanych przez interfejs USB oraz nowego środowiska programistycznego (Red Hat Linux 7.x/8.x).
Druga połowa roku 2003 zapowiada się naprawdę interesująco.
Zawartość CD
Na CD-ROM-ie dołączonym do czasopisma (wyłącznie w wersji EPo/oL) znajduje się najnowsza, przeznaczona do zastosowań nieko-mercyjnych wersja zestawu programistycznego QNX Momentics 6.2.1 NC. W skład pakietu wchodzą: system operacyjny QNX Neutrino 6.2.1, środowisko graficzne Photon wraz z programem Photon Application Builder, narzędzia do tworzenia własnych sterowników DDK s (z kodami źródłowymi po jednym na daną klasę), biblioteki ANSI C oraz narzędzia wiersza poleceń GNU dla platformy docelowej x86 oraz ARM (kompilator GCC v2.95x, GDB 5.x, Binutils 2.10.x).
Dla wszystkich zainteresowanych tworzeniem własnych aplikacji dla platformy docelowej ARM interesujące uzupełnienie stanowi pakiet BSP przeznaczony do instalacji na komputerach podręcznych iPAQ (iPAQ Reference Platform) z procesorem StrongARM SA-1110. Sposób instalacji systemu oraz konfiguracji skrosowanej platformy programistycznej został opisany szerzej na stronie: http://www.qnxzo-ne.com/ipaq.
Jacek Rudnicki, KTT Głuantum jacek.rudnicki@quantum.com.pl
Dodatkowe informacje
Artykuł powstat na podstawie materiałów udostępnionych przez firmę Quantum, tel. (71) 362-63-56, www.quantum.com.pl.
Elektronika Praktyczna 8/2003
127
PROGRAMY
Afa/nowsztr wersję LabView
można bez trudu
zakwalifikować do grona
awangardowych narzędzi, które
kreuje nowe trendy
i wyznacza szlaki, którymi
z pewnością podążą także inni
producenci. O kilku
najbardziej spektakularnych
nowościach wprowadzonych do
LabView 7 piszemy
w artykule, którego pierwszą
część opublikowaliśmy
w EP7/2003.
LabView
Najbardziej spektakularne z punktu widzenia elektronika - nowości opisaliśmy w poprzednim numerze EP. Oprócz nich, w LV7 pojawiło szereg innych udoskonaleń, dzięki którym m.in. udoskonalono współpracę tworzonych aplikacji z interfejsami sieciowymi (wprowadzono m.in. możliwość wysyłania e-maili z dynamicznie two-
Rys. 3
rzonymi komunikatami), wprowadzono rozbudowane mechanizmy autodiagnostyki i samoczynnej obsługi wykrywanych błędów, do dyspozycji użytkownika oddano także predefiniowane zdarzenia (umożliwiające m.in. szybszą niż dotychczas reakcję na wykryte pobudzenia). Powodów do zadowolenia twórcy LV7 mają oczywiście więcej, ale - ze względu na znaczną złożoność zastosowanych rozwiązań - nieco dokładniej pokażemy tylko dwa kolejne mechanizmy za-implementowane w LV7, których wagę z pewnością docenią twórcy aplikacji rozproszonych i wymagających szybkiej reakcji na zdarzenia zewnętrzne.
W czasie rzeczywistym
Z pewnością większość Czytelników zapytana o to, czy PC-ty są w stanie obsługiwać zdarzenia w czasie rzeczywistym odpowie - całkiem zresztą słusznie - że
Do czego służy i co może LabVicw?
LabView jest to pakiet
oprogramowania służący do
projektowania graficznych
aplikacji do akwizycji, obróbki i prezentacji danych. Jest to narzędzie zapewniające elastyczność porównywalną z narzędziami programistycznymi, a łatwość
projektowania aplikacji porównywalną z budowaniem najbardziej zaawansowanych konstrukcji z klocków Lego.
nie. To dlaczego LV7 wyposażono w kreator aplikacji RealTimel Zastosowano bowiem koncepcję wydzielenia specjalnych modułów sprzętowych, które są konfigurowane przez aplikację "napisaną" w LV7, ale działających samodzielnie (z własnym systemem operacyjnym, który odpowiada za obsługę zdarzeń w czasie rzeczywistym). W wersji LV7 dostępnej obecnie, rolę samodzielnych modułów RealTime mogą spełniać karty z interfejsami PXI/ CompactPd (fot. 3), w tym opisana przed miesiącem karta rekonfiguro-walna z układem FPGA.
128
Elektronika Praktyczna S/2003
PROGRAMY
Rys. 4
Tak więc, po napisaniu aplikacji i wyznaczeniu fragmentów wymagających obsługi w czasie rzeczywistym, są one "przekazywane" do specjalnych kart I/O, które taką obsługę zapewniają, podczas gdy rdzeń aplikacji pracuje na relatywnie wolnym komputerze PC.
Sterowanie i pomiary rozproszone
Kolejną cechą LV7 jest możliwość budowania za jego pomocą rozproszonych systemów sterowania i nadzoru. Aby ułatwić realizację tego zadania, twórcy pakietu LV7 wyposażyli go w zaawansowane mechanizmy obsługi baz danych (SQL92 i ODBC 2.5) oraz znacznie unowocześniony system ich przeglądania i zarządzania zgromadzonymi danymi (rys. 4). Szczególnie istotną nowością jest wprowadzenie mechanizmów jednoczesnego zarządzania wieloma bazami danych (także ulokowanymi na komputerach dołączonych zdalnie). Standar-
dowo, system zarządzania bazami danych wyposażono w narzędzia do definiowania zdarzeń i alarmów, a także analizy trendów danych w funkcji czasu. Dostęp do baz danych wykorzystywanych w aplikacjach zoptymalizowano w taki sposób, aby dane do nich mogły dostarczać (i oczywiście z nich pobierać) moduły ReoJTime. Mechanizm wymiany danych wyposażono w system kolejkowania z buforami zapobiegającymi możliwości zagubienia danych przesyłanych pomiędzy aplikacją i modułem ReoJTime.
LV7 - podsumowanie
Historia pakietu LabView sięga 1983, kiedy to założyciele firmy National Instruments (Jack McCrisken, Jeff Kodosky i Jim Truchard) zauważyli konieczność opracowania oprogramowania pozwalającego w wygodny sposób tworzyć zintegrowane aplikacje nadzoru i sterowania. Pierwsza komercyjna wersja LabView 1 pojawiła się na rynku w 1986 roku. W roku 2003 wprowadzono wersję 7.0, w której w stosunku do poprzedniej - LV6.1 - wprowadzono ponad 20 istotnych zmian.
Konsekwentna polityka firmy National Instruments oraz dbanie o rozwój i dostosowywanie możliwości LabView do wymagań szybko zmieniającego się świata, powoduje, że pozycja tego narzędzia nie jest zagrożona, a twórcy aplikacji korzystający z niego, mogą korzystać ze wszystkich mechanizmów komunikacyjnych oferowanych przez współczesną technikę. Andrzej Gawry luk, AVT
Elektronika Praktyczna S/2003
129
PROJEKTY
Zegar Nixie dla oszczędnych
AVT-521
Dawno temu, na początku
lat 70., gdy o przenośnych
komputerach osobistych można
było poczytać w powieściach
fan ta styczn o-na uko wych,
a wśród elektroników
zaczynały krążyć wieści
o tajemniczych diodach LED,
do wyświetlania cyfr
powszechnie stosowano
wskaźniki jarzeniowe Nixie.
Minęło parę lat i dziś, na
kolejnej fali "powrotów do
przeszłości", znów pojawiły
się urządzenia elektroniczne
w stylu retro, ze szklanymi
bańkami. Moda ma swoje
prawa, więc ulegamy jej
z nadzieją, że projekt małego
zegara będzie dla młodszych
Czytelników interesujący,
a starszym przypomni czasy,
gdy rozpoczynali swoją
przygodę z elektroniką.
Cyfrowe wskaźniki jarzeniowe
Lampy tego rodzaju są pod względem zasady działania bliskimi kuzynami niewielkich lampek stosowanych chociażby w próbnikach napięcia - wskaźnikach jarzeniowych. Świecenie wywołuje w nich przepływ prądu pomiędzy dwiema elektrodami umieszczonymi w specjalnej atmosferze rozrzedzonego gazu, np. neonu. Napięcie zapłonu takich lamp zawiera się w granicach od kilkudziesięciu do kilkuset woltów, a po zapł oni e (wył a do w aniu j ar z enio -wym) spadek napięcia na lampie (napięcie robocze) wynosi kilkanaście woltów. Prąd, przy którym lampa zaczyna świecić po zapłonie jest bardzo mały - rzędu dziesiątek mikioamper. Szczelne szklane bańki lamp mają za zadanie utrzymanie odpowiedniego składu i ciśnienia gazu wokół elektrod.
Lampy Nbde umożliwiają najczęściej wyświetlanie cyfr dziesiętnych od 0 do 9, ale ich
budowa sprawia, że mogą służyć także do wyświetlania różnych symboli. Jest to zależne od ukształtowania katody, wokół której zjonizowane cząsteczki gazu, wskutek płynącego prądu, jarzą się czerwonawym światłem. W lampach przystosowanych do wyświetlania cyfr dziesiętnych, katod jest dziesięć, a każda ma kształt odpowiedniej cyfry. Wyprowadzenia katod wtopione są w szklaną bańkę i wyprowadzone na zewnątrz oddzielnymi drutami. Anoda dla wszystkich katod jest wspólna i ma postać siatki o rzadkich oczkach, otaczając półkoliście wszystkie katody. Cyfry katod (patrząc od strony obserwatora) są montowane jedna za drugą w taki sposób, aby się ze sobą nie zwierały. W momencie podania napięcia pomiędzy anodę lampy a wybraną katodę, gaz wokół niej zaczyna świecić. Ponieważ znajdujące się przed nią katody innych wygaszonych w tym momencie cyfr są wykonane z cienkiego drutu i przysła-
14
Elektronika Praktyczna S/2003
Zegar Nixie dla oszczędnych
Rys. 1. Schemat elektryczny sterownika zegara
niają ją tylko nieznacznie, a oczka siatki anody są duże, dla obserwatora "zapalona" katoda prezentuje się jako jasna i czytelna cyfra świecąca w szklanej bańce lampy.
Mikrokontroler w świecie wysokich napięć
Do budowy części sterującej zegara wykorzystany został mikrokontroler jednoukładowy i układ scalony zegara czasu rzeczywistego. Z punktu widzenia elektronika budowa czasomierza jest prosta: jest to zestaw połączonych ze sobą liczników taktowanych precyzyjnym generatorem. Jednak zrobienie tego w starym stylu, chociażby z użyciem scalonych liczników cyfrowych, byłoby przesadnym utrudnianiem sobie zadania
i posłużenie się mikrokontrolerem z prostym programem sterującym wydawało się najbardziej racjonalne. Jednak jak wiadomo, mikro-kontrolery zasilane są niskim napięciem i nie tolerują poziomów napięć potrzebnych do zapalenia lamp Nixie. Dzisiaj bez trudu można zdobyć elementy spełniające rolę pośredników pomiędzy niskonapięciowym światem procesorów a wysokonapięciowymi wskaźnikami jarzeniowymi. Graniczne napięcie UCE tranzystorów n-p-n typu MPSA42 i p-n-p typu MPSA92 wynosi bowiem 300 V i elementy te mogą pełnić rolę interfejsu pomiędzy nisko- i wysokonapięciowymi obwodami zegara. Maksymalny prąd kolektorów tranzystorów wynosi 0,5 A, co znacznie przewyższa potrzeby
opisywanego układu. Dokładne informacje na temat tych i podobnych tranzystorów można uzyskać na stronie internetowej firmy ON Sernic onduc tor [http://www.onse-mi.com).
Budowa zegara i sposób działania
Schemat elektryczny sterownika zegara pokazano na rys. 1. Pomiarem czasu w opisywanym zegarze zajmuje się układ U4, czyli scalony zegar czasu rzeczywistego (RTC) 8583. Nie jest to nowy układ, ale bardzo rozpowszechniony, ponieważ dobrze się sprawdza w różnych zastosowaniach. Może on spełniać także rolę kalendarza automatycznie ustalającego dni tygodnia, miesiące, a nawet lata przestępne,
Elektronika Praktyczna 8/2003
15
Zegar Nixie dla oszczędnych
L2 LC531
nnnńńnnnńnnnn
JP1
Rys. 2. Schemat elektryczny wyświetlacza
ale w prezentowanym zastosowaniu te funkcje nie będą wykorzystane. Najważniejsze, że układ podczas normalnej pracy pobiera bardzo mało prądu (jakie to ważne, powiemy za chwilę) oraz, że komunikuje się z mikrokontrole-rem za pomocą magistrali I2C, co oznacza, że wymaga połączenia jedynie z dwiema liniami I/O mikrokontrolera. Pozostałe wyprowadzenia mikrokontrolera wykorzystano do sterowania wyświetlaczy Nixie i obsługi przycisku Sl.
Z uwagi na liczbę dostępnych portów układu Ul, a także dla przedłużenia życia wyświetlaczy, nie świecą się one w sposób ciągły, lecz są multipleksowane czyli naprzemiennie zapalane. Ponieważ dzieje się to z częstotliwością większą niż 5 0 Hz, oko ludzkie odnosi wrażenie, że obie lampki świecą się cały czas. Za obsługę multipleksu odpowiada linia P3.4, której stan co 0,5 ms zmienia się na przeciwny. Układ zbudowany z tranzystorów T12.. .Tl 6 formuje dwa sygnały w przeciwfazie, sterujące anodami dwóch lamp naprzemiennie załączane jest napięcie anodowe na jedną z lamp. Tranzystory T1...T11 pełnią rolę interfejsów pomiędzy portami mikrokontrolera, a sterowanymi 10 wyprowadzeniami ka-tod-cyfr i kropki - dołączają te elektrody do masy. Dla przykładu: jeżeli będą przewodzić tranzystory T12 i T4 zapalona zostanie cyfra 3 lampy Li.
Układ zegara potrzebuje dwóch napięć zasilających: +5 V dla mikrokontrolera i wysokiego napięcia potrzebnego do zaświecenia lamp Nixie. Napięć dostarczają dwa transformatory TRI i TR2 połączone kaskadowo. Problem podwójnego zasilania można było jeszcze rozwiązać na dwa co najmniej sposoby: zamiast drugiego transformatora można zastosować przetwornicę lub zasilać lampy bezpośrednio z sieci poprzez oporniki ograniczające prąd. Pierwszy sposób jest dobry, ale ciągle cena przetwornic z napięć bezpiecznych 5/12 V na napięcie 150/200 V jest dużo wyższa niż cena małego transformatora. Drugiego sposobu nie polecam, ponieważ pojawia się wtedy groźba porażenia użytkownika prądem. Młodsi elektronicy mają zwyczaj bagatelizować to niebezpieczeństwo, jednak każdy, kto przeżył takie wydarzenie wie jakie niesie ze sobą nieprzyjemne doznania i groźne skutki. Stosując transformator separujący unikamy nieświadomego zamknięcia poprzez własne ciało obwodu pomiędzy zasilaniem z sieci a uziemieniem (kaloryfery, uziemione obudowy urządzeń itp.).
Transformator TRI dostarcza więc napięcia zmiennego, z którego poprzez mostek B2 i stabilizator U3 wytwarzane jest napięcie +5 V. Uzwojenia wtórne obydwu transformatorów są ze sobą połączone dzięki czemu na uzwojeniu (normalnie pierwotnym) transfor-
matora TR2 pojawia się wysokie napięcie które jest prostowane i filtrowane w obwodzie z elementami Bl i C3.
Na marginesie należy dodać, że takie połączenie dwóch transformatorów dobrze uzmysławia, jak wielkie są straty energii powstałe podczas jej przesyłania, gdy pozornie nie jest wykonywana żadna praca. Ponieważ oba transformatory są takie same, więc napięcie na wyjściu TR2 powinno być takie samo, jak na wejściu TRI, ale - jak pokazały doświadczenia - nie jest. Nawet bez obciążenia innymi układami część energii zostaje tracona w rdzeniach obydwu transformatorów na skutek działania prądów wirowych i ich oporności magnetycznej. Ta część straconej energii jest wyczuwalna jako nagrzewanie się rdzeni transformatorów.
Działanie zegara jest bardzo proste i program sterujący mikro-kontrolerem może napisać nawet mało doświadczony programista. Mikrokontroler odczytuje z układu RTC za pomocą magistrali I2C informacje o aktualnym czasie. Następnie przekształca ją na sygnały sterujące zapalaniem odpowiednich katod lampek Nixie w trybie multipleksowania: odpowiednio cyfr dziesiątek godzin, jednostek godzin, dziesiątek minut i jednostek minut.
Obsługa zegara
Ponieważ są tylko 2 lampki, a trzeba wyświetlić 4 cyfry, informacje o aktualnej godzinie i minucie pojawiają się kolejno w odpowiedniej sekwencji. Najpierw na ok. 2 s zapalają się cyfry godzin, dla łatwiejszej orientacji pali się także kropka dziesiętna przy cyfrze jednostek godzin. Następnie cyfry godzin zostają wygaszone i po 0,3 s pojawiają się cyfry minut tym razem bez kropki dziesiętnej. Po 2 s cyfry minut zostają łagodnie wygaszone, co sygnalizuje zakończenie sekwencji wyświetlania czasu. Po sekundzie cały proces wraz z odczytem aktualnego czasu z zegara RTC zostaje powtórzony w kolejnym cyklu.
Ustawienie bądź skorygowanie bieżącego czasu jest bardzo proste, chociaż wykorzystywany
16
Elektronika Praktyczna 8/2003
Zegar Nixie dla oszczędnych
|| IOOOOOOOOOOO OIDI O O O O
_ _ O O O O MT
e -p -P -s L P
Rys. 3. Schemat montażowy płytki sterownika
jest do tego tylko 1 przycisk SWl. Jeżeli w czasie normalnej pracy zegara przycisk będzie naciskany nieprzerwanie przez 2 sekundy, zegar przechodzi do trybu ustawiania. Na obu lampkach bez przerwy będzie wyświetlana aktualna godzina. Krótkie naciśnięcia przycisku spowodują doliczenie kolejnej godziny aż do 23, następnie jest wyświetlana oczywiście godzina 00. Naciśnięcie przycisku dłużej niż 2 s powoduje przejście do ustawiania minut, w sposób identyczny jak opisano wyżej. Kolejne długie naciśnięcie przycisku kończy ustawianie zegara i sprawia, że wraca do trybu normalnej pracy.
Montaż zegara
Przyznam, że pomysł skonstruowania takiego zegara, podpowiedziany przez redaktora naczelnego, początkowo nie wzbudził mojego entuzjazmu - kolejny zegar! Jednak "zabytkowe" lampki mają swój urok i mogą zabawnie prezentować się we współczesnych wnętrzach, więc pewnie wielu Czytelników rozważy pomysł budowy takiego czasomierza. Największy problem może być z jarzeniowymi wskaźnikami cyfrowymi. Zapobiegliwi mogą je odnaleźć w swoich szufladach. Niekiedy można takie elementy kupić na wyprzedażach, pojawiają się także na aukcjach internetowych, np. www.allegro.pl. Ja użyłem lampek LC-531 wyprodukowanych przez Dolnośląskie Zakłady Elektronowe UNITRA-Dolam w 1982
roku, czyli w minionym wieku. Można w ich miejsce użyć dowolnych innych. Trzeba tylko zastosować przejściówkę pomiędzy otworami dla zdobytych lamp, a cokołami dostosowanymi do typu lamp użytych w projekcie. Innym wyjściem jest zrobienie nowej płytki drukowanej z zachowaniem rozstawu i kolejności styków gniazda JPl łączącego płytki lamp i mikrokontrolera. Lampy LC-531 miały 5 milimetrowej długości wyprowadzenia, które z pewnym trudem i z pomocą kalafonii można lutować. Uznałem jednak, że ładniej i wygodniej będzie je umieścić w podstawkach. Podstawki do lamp jeszcze trudniej zdobyć niż same lampy więc swoje wykonałem wykorzystując gniazda precyzyjne do układów scalonych. Trzeba je pociąć na oddzielne piny,
WYKAZ ELEMENTÓW
Rezystory
R1...R10, R15, R16, R19, R22: 10kO
SMD120Ó
Rll: 4,7kQ SMD 1206
R12, R14, R17: 2,2kQ SMD1206
R13, R18: 220kQ SMD 1206
R20: 47kQ
Kondensatory
CE1: 0,22F/5,5V
CE2: 220^F/16V
Cl, C2: 18pF SMD 1206
C3: 680nF/350
C5: lOOnF SMD 1206
Cl3: 6/40pF
Półprzewodniki
Dl: dioda Schottky'ego (np.
BAT85)
T1...T11, T13, T14, T16: MPSA42
w obudowach SMD
T12, T15: MPSA92 w obudowach
SMD
Ul: 89C2051
U2: MCP101
U3: 78L05
U4: 8583
Różne
Xl: 3,579MHz
X2: 32,768kHz
Bl, B2: mostki prostownicze 250V/0/5A
JP3: ARK2
Lampy Nixie np. LC-531 lub
podobne (2 szt.)
Sl: przycisk astabilny
TRI, TR2: transformatory TEZ 0,5D/ÓV
żeby dały się zamontować na obwodzie koła odpowiadającemu średnicy cokołu lampy. Jest z tym sporo pracy, ale potem lampę bez
STR.ELE. 3S0AJS
LAMPKI NI XI .TUJ.flT2
o m rO O
r 1
tt
W I r c
h i y
i
j J Ś 1 /
IOOOOOOOOOOOOO
Rys. 4. Schemat montażowy płytki wyświetlacza
Elektronika Praktyczna 8/2003
17
Zegar Nixie dla oszczędnych
większego trudu można w razie potrzeby wyjąć i powtórnie zamontować.
Na płytce sterownika (schemat montażowy pokazano na rys. 3) najwięcej trudności sprawia przy-lutowanie niewielkich tranzystorów przystosowanych do montażu powierzchniowego i kilkunastu oporników SMD w obudowach typu 1206. Procesor i układ zegara najlepiej umieścić w podstawkach. Opornik ograniczający prąd katodowy R2 0 (do maksymalnie 1,5...2 mA) jako jedyny jest rezystorem przewlekanym. Opornik R21 typu SMD służy do dodatkowego ograniczenia prądu kropki, który może maksymalnie osiągnąć wartość 0,5 mA. Ograniczenie prądów do wartości zalecanych przez producenta jest konieczne, jeśli nie chce się doprowadzić do drastycznego skrócenia czasu życia lampy. Z uwagi na to, że w opisywanym zegarze nie świecą one w sposób
ciągły, ich trwałość powinna zostać wydłużona.
Zegar wyposażony został w obwód podtrzymania zasilania układu RTC na wypadek zaniku napięcia zasilania. Obwód ten składa się z diody Dl i kondensatora CEl o dużej pojemności 0,1...0,22F. Ponieważ U4 bardzo oszczędnie zużywa energię w trybie normalnej pracy, czas będzie normalnie zliczany nawet w ciągu kilkugodzinnego zaniku napięcia sieciowego bez zasilania zegar wyświetli.
Po wlutowaniu nich) transformatorów można przystąpić do uruchamiania zegara. Cała praca sprowadza się do sprawdzenia jeszcze raz poprawności montażu i poziomu napięć: +5V i napięcia dla lamp Nixie. Po włożeniu do podstawek układów scalonych i połączeniu ze sobą obydwu płytek (złącza płytek powinny zostać połączone
oczywiście niczego nie
(jako ostat-
tak, aby styk 1 płytki lamp łączył się ze stykiem 1 płytki mikrokon-trolera itd.) zegar powinien zadziałać, tzn. przełączać się pomiędzy wskazaniami godzin i minut. Brak wyświetlania lub stałe świecenie któregoś segmentu może oznaczać nieprawidłowe zerowanie procesora (sprawdzić U2), kłopoty z procesorem lub pomyłkę w połączeniu ze sobą obydwu płytek.
Zegar wymaga jeszcze obudowy, najlepiej takiej, aby bańki lamp były dobrze widoczne. To jednak pozostawiam inwencji i wyczuciu estetycznemu Czytelników, którzy zechcą sobie zmontować mały, lampowy zegar. Ryszard Szymaniak, AVT ryszard.szymaniak@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/sierpienO3Jitm oraz na płycie CD-EP8/2003B w katalogu PCB.
18
Elektronika Praktyczna 8/2003
PROJEKTY
Samochodowy wzmacniacz 25 W w klasie D, część 1
AVT-525
Wzmacniacze klasy D,
nazywane także
wzmacniaczami cyfrowymi,
zyskują coraz większą
popularność. Wynika to
głównie z ich wysokiej
sprawności energetycznej,
przekraczającej zwykle 80%
oraz niezłej (i co ważne
coraz lepszej) jakości
dźwięku.
Rekomendacje: dobre
parametry audio pozwalają
zastosować ten wzmacniacz
m.in, w zestawach kina
domowego, w samochodach
jako wysoko sprawny
wzmacniacz dużej mocy,
a także jako niewielki i lekki
wzmacniacz przenośny
z możliwością zasilania
akumu latoro we go.
Może wzmacniacze D są bardziej skomplikowane w wykonaniu niż wzmacniacze najczęściej występującej klasy AB, ale oferują dużo większą sprawność energetyczną, co przekłada się korzystnie na ich wymiary i masę. Już teraz wzmacniacze klasy D są seryjnie montowane w wielu urządzeniach, począwszy od telefonów komórkowych aż po sprzęt audi o wy s okiej j ako ś ci .
Chodzą słuchy, że wzmacniacze klasy D oferują słabą jakość dźwięku. Angielska firma Zetex wypuszczając sterownik ZXCD1OOO, pokazała (nie tylko mi), co też naprawdę drzemie we wzmacniaczach klasy D. Mogą o tym świadczyć parametry sterownika zebrane w tab. 1. Sterownik ZXCDlOOO może znaleźć zastosowanie do budowy wzmacniaczy do 100 Wrrnc o zniekształcę-niach THD+N mniejszych niż 0,2%, w całym paśmie i przy 90% mocy wyjściowej. Typowa częstotliwość taktowania sterownika wynosi 200 kHz. Między innymi dzięki tak dużej częstotliwości generatora taktującego osiągnięto wysoką jakość dźwięku wzmac-
niacza. Pozwoliła ona także na zmniejszenie wymiarów dławików do niezbędnego minimum.
Zasada działania wzmacniacza pracującego w klasie D
Idea działania typowych wzmacniaczy pracujących w klasie D (wzmacniaczy impulsowych) jest bardzo prosta. W szybkim jej wyjaśnieniu pomoże rys. 1. Na rys. la przedstawiono komparator analogowy, który porównuje dwa sygnały: sygnał audio z referencyjnym sygnałem trójkątnym, który
Wzmacniacz charakteryzuje się następującymi parametrami i cechami funkcjonalnymi:
/ Napięcie zasilania modułu wzmacniacza: 12...1S VDC.
/Moc wyjściowa 27 Wndla4n oraz 11Wndla
SH przy zasilaniu 16 V. / Moc wyjściowa 22 Wndla4n oraz SnWn dla
SH przy zasilaniu 14,4 V. / Wbudowany obwód łagodnego startu
chroniący przezstukamiwn głośnikach
podczas włączania wzmacniacza. / Wbudowany obwód ochrony przeciążeniowej
oraz zwarciowej. / Brak potrzeby stosowania jakichkolwiek
radiatorów.
Elektronika Praktyczna S/2003
Samochodowy wzmacniacz 25 W w klasie D
Audio A/B
Sygnał trójkątny A/B
Komparator PWM
_mirmir
Audio A/B
Sygnał trójkątny A/B
O/P
Wyjście komparatora (wsp. wyp. = 50%)
Audio AS
\ A
Wyjście komparatora (wsp. wyp.= 75%)
Sygnał trójkątny A/B
Audio A/B
Wyjście komparatora] (wsp. wyp. = 25%)
Rys. 1. Zasada tworzenia przebiegu PWM w układzie ZXCD
podawany jest na wejście odwracające komparatora. W zależności od wartości amplitudy sygnału audio, która nie powinna przekraczać amplitudy sygnału trójkątnego, sygnał na wyjściu komparatora ma modulowane wypełnienie. Dla sygnału wejściowego równego połowie amplitudy sygnału referencyjnego, wypełnienie przebiegu wyjściowego komparatora wynosi 50% co zilustrowano na rys. lb. Wzrost amplitudy sygnału audio będzie powodować wzrost współczynnika wypełnienia (rys. lc), a wraz z obniżaniem jego wartości współczynnik wypełnienie będzie malał (rys. id). Komparator jest po prostu prostym przetwornikiem sygnału analogowego na przebieg PWM, którego uśredniona wartość niesie informacje o chwilowej amplitudzie sygnału wejściowego. Do zamienienia przebiegu PWM na sygnał analogowy wystarczy filtr dolnoprze-pustowy. Wiadome jest, że wraz ze wzrostem częstotliwość sygnału referencyjnego zwiększa się dokładność konwersji sygnału audio na przebieg PWM. Ale należy mieć na uwadze także to, że wzrost częstotliwość referencyjnej prowadzi do trudności w wykonaniu dławików, które wchodzą w skład wyjściowego filtru dolnoprzepustowego.
Sterownik ZXCDl000
ZXCDl000 jest kompletnym sterownikiem dla wzmacniaczy pracujących w klasie D. Kontroler w połączeniu z zewnętrznymi tranzystorami MOSFET (które produkuje także Zetex) umożliwia zbudowanie wzmacniacza o wyso-
kiej jakości dźwięku wyjściowego wraz ze wszystkimi korzyściami wynikającymi z pracy w klasie D. Schemat blokowy układ ZXCDl000 przedstawiono na rys. 2. Jak widać, układ nie jest skomplikowany. W jego skład wchodzą:
- wewnętrzne stabilizatory 5,5 V oraz 9 V służące do zasilania komparatorów oraz wzmacniaczy wyjściowych,
- generator przebiegu trójkątnego, którego częstotliwość może być ustalana elementami zewnętrznymi (do 200 kHz),
- komparator, przedwzmacniacz oraz wzmacniacz zarówno dla kanału A jak i B.
Przebiegi z generatora zostały wyprowadzone na zewnątrz (Osc A, Osc B) i powinny zostać zewnętrznie dołączone do wejść Triangle A oraz Triangle B. Dys-
trybucja przebiegu trójkątnego na zewnątrz układu umożliwia łatwe przesłanie przebiegu do pozostałych kanałów. Dla uniknięcia przesłuchów pomiędzy kanałami jeden kanał pracuje jako nadrzędny (generuje przebieg referencyjny), a pozostałe pracują jako podrzędne, pobierając sygnał referencyjny od kanału nadrzędnego. Aby była możliwa praca mostkowa na wejście pierwszego z komparatorów powinien być podany sygnał analogowy, najlepiej poprzez bufor, natomiast na wejście drugiego komparatora powinien zostać podany sygnał analogowy o przeciwnej fazie.
Opis działania układu
Schemat blokowy wzmacniacza pokazano na rys. 3. Nie pokazano na nim dodatkowych obwodów powolnego startu oraz obwodów przeciążeniowych, w jakie wyposażono wzmacniacz. Schemat elektryczny układu pokazano na rys. 4. Wejściowy sygnał audio jest podawany poprzez filtr dolno-przepustowy (R3, C9) na wejście wzmacniacza bufora UlA oraz na wejście wzmacniacza odwracającego UlB o wzmocnieniu xl. Sygnały otrzymane w przeciwfazie z wyjść wzmacniaczy Ul trafiają na wejścia Audio A oraz Audio B (na nieodwracające wejścia komparatorów). Rezystory R17 i R18 tworzą sztuczną masę dla wzmacniaczy operacyjnych, równą połowie napięcia zasilającego układ Ul. Wyjścia przebiegów PWM
m <
>OutA
>OutB
vcc
Rys. 2. Schemat blokowy układu ZXCD1000
Elektronika Praktyczna 8/2003
Samochodowy wzmacniacz 25 W w klasie D
Sygnał audio
Rys. 3. Schemat blokowy wzmacniacza z układem ZXCD1000
(Out A oraz Out B) sterują poprzez C26...C29 tranzystorami mocy pracującymi w mostku. Zastosowane zostały tranzystory wysokiej jakości, których producentem jest także Zetex. Tranzystor Tl charakteryzuje się rezystancją
RDS(ON)=0>075^ oraz prądem ID=-3,8 A, a T3 rezystancją RDS(ON)=0>045Q i prądem 1^=5 A. Z tranzystorami zastosowanymi w module możliwe jest uzyskanie mocy wyjściowej do 25 W przy 4Q i napięciu zasilającym równym 16 V. Elementy D2...D4, D7...D10, R7...R10 oraz R13...R16 pracujące w mostku, pozwalają na uzyskanie większego napięcia na bramkach tranzystorów niż napięcie na wyjściach Out A oraz Out B (ok. 8,5 V). Pozwala to uzyskać większą moc wyjściową wzmacniacza. Poprzez takie sterowanie tranzystorów osiąga się także niewielkie zniekształcenia przebiegu wyjściowego. Sygnał audio z przebiegów wyjściowych PWM odzyskiwany jest w dolnoprzepusto-wych filtrach LC (Li, C30, C31 oraz L2, C33, C34). Odzyskany sygnał audio dostępny jest dla głośnika na wyjściach SA oraz SB. Gdy wzmacniacz klasy D będzie się składał z kilku modułów (zbudowanych zgodnie ze schemat z rys. 4), współpracujące kanały muszą być ze sobą zsynchronizowane, co oznacza, że muszą być sterowane sygnałem trójkątnym, który jest generowany tylko przez jeden ze wzmacniaczy
(MASTER). Konsekwencją niedostosowanie się do tych zaleceń (zsynchronizowania wzmacniaczy) mogą być słyszalne interferencje pomiędzy kanałami. Tak więc, jeżeli będzie budowany wzmacniacz wielokanałowy, jeden ze wzmacniaczy będzie układem MASTER a pozostałe układami SLAVE.
Na rys. 5 pokazano sposób konfiguracji kanału pracującego jako MASTER (rys. 5a) oraz kanału pracującego jako SLAVE (rys. 5b). Przy pracy jako MASTER, przebieg trójkątny do rozesłania pobierany jest z wyjścia Osc B i poprzez bufor Tl wysyłany do układów podrzędnych. W przypadku wzmacniacza SLAVE odbierany sygnał trójkątny przed podaniem na wejścia komparatorów jest poprzedzony buforem T2. Aby nie projektować dwóch płytek, osobno dla wzmacniacza MASTER oraz SLAVE, wprowadzono zworki Ml, Sl, S2 i S3, które pozwalają na skonfigurowanie wzmacniacza jako MASTER lub SLAVE. Kondensator C37 wyznacza częstotliwość przebiegu trójkątnego.
Wspomniano już, że wzmacniacz posiada obwody łagodnego startu oraz obwody zabezpieczające przed zwarciem oraz przeciążeniem. Obwód łagodnego startu ma za zadanie powoli naładować kondensatory występujące we wzmacniaczu. Brak takiego obwodu powodowałoby stuki
w głośnikach podczas włączania wzmacniacza, co jest spowodowane gwałtownym ładowaniem kondensatorów. Obwód łagodnego startu realizują elementy R27, R28, C3 8, Dli oraz T9. Przy dłuższym braku napięcia zasilającego kondensator C38 rozładuje się. Po załączeniu zasilania tranzystor T9 będzie wyłączony, gdyż na jego bramce wystąpi napięcie zasilające. Ładowanie kondensatora przez R27 będzie prowadzić do wolnego spadku napięcia na bramce T9. Będzie to powodować stopniowe otwieranie tranzystora T9, a tym samym napięcie zasilające wzmacniacz będzie wolno narastać. Zastosowano tranzystor IRF7416 o rezystancji w stanie otwarcia wynoszącej 0,02Q przez co straty mocy na nim będą niewielkie.
Do omówienia został drugi obwód, który pełni odpowiedzialną funkcje ochrony przeciążeniowej oraz zwarciowej. Obwód ten tworzą elementy R2, Rll, R12, R25, R29, R23, C39 oraz tranzystory T5, T6 i T10. Poprawną pracę tego obwodu gwarantuje jego
Tab. 1. Wybrane parametry wzmacniaczy z układem ZXCD1000
x Napięcie zasilania sterownika 12...18V, x Sprawność >90%, x Obciążenie 4n lub 8n, x Pasmo 20 Hz...2O kHz, x Częstotliwość taktowania: typowo 200 kHz, x Niskie TPD+N - typowo 0,2% przy 90% mocy (w całym paśmie).
Elektronika Praktyczna 8/2003
21
Samochodowy wzmacniacz 25 W w klasie D
Rys. 4. Schemat elektryczny wzmacniacza
umieszczenie pomiędzy kondensatorem C36 a mostkiem tranzystorów. Podczas dużych impulsów prądowych obwód może być zaopatrywany w prąd właśnie z tego kondensatora. Gdyby był umieszczony przed kondensatorem prowadziłoby to do jego błędnej pracy co kończyłoby się uszkodzeniem tranzystorów wyjściowych. Obwód ten ochroni tranzystory wyjściowe nie tylko przy zwarciu wyjść do masy ale i ze sobą. Celem tego obwodu jest monitorowanie prądu płynącego przez rezystor pomiarowy R23. W czasie normalnej pracy wzmacniacza na rezystorze pomiarowym R23 będzie występował niewielki spadek i napięcie na bazie T6 będzie zbliżone do Ube (0,6 V). Napięcie na bazie T5 będzie niższe niż 0,6 V przez co tranzystory T5 oraz TlO będą zatkane. Na katodach diod Dl i D2 będzie występowało napięcie zasilające. Podczas nadmiernego wzrostu prądu (przeciążenie, zwarcie wyjść) tranzystor T5 zostanie otwarty. Spowoduje to naładowanie kondensatora C39 oraz załączenie tranzystora TlO. Załączenie TlO ściąga do masy poprzez diody Dl, D5 przebiegi trójkątne. Ściągnięcie tych przebiegów do masy wyłącza przebiegi PWM na wyjściach Out A, Out B, przez co prąd szybko jest redukowany do zera. Po rozładowaniu C39 przez Rll i R12, tranzystor TlO zostanie wyłączony co pozwoli na sterowanie wzmacniacza przebiegami trójkątnymi. Jeżeli przyczyna zadziałania obwodu przeciążeniowego nie została usunięta zadziała on ponownie. Obwód przeciążeniowy działa bardzo szybko, ale jego czas wyłączenia wyznaczony jest przez TlO, Rll, R12 oraz C39. Zmieniając ten czas można ustalić średni pobór prądu podczas awarii. Dużą zaletą takiego obwodu jest możliwość wykrywania bardzo małych spadków napięć na rezystorach pomiarowych. Dzięki temu możliwe jest zastosowanie rezystorów o bardzo małej wartości (dla przedstawionego obwodu 0,01Q). Mała wartość rezystancji zmniejsza straty na takim rezystorze oraz nie obniża znacząco napięcia zasilającego wzmacniacz. Układ U3 stabilizuje napięcie na poziomie 12 V, które jest wyko-
Elektronika Praktyczna 8/2003
Samochodowy wzmacniacz 25 W w klasie D
WYKAZ ELEMENTÓW
Rezystory
Rl, R2: lOOka
R3, R4: llka
R5, R6: 390O
R7...R12: 47kO
R13...R16: 5ÓQ
R17, R18: 5,ókQ
R19...R21: 22kO
R22: l,5kQ
R23: 0,010 (srebrzanka 2...2,501-0
o średnicy lA..l,ómm)
R24, R25: 820O
R2Ó, R27: 62kQ
R28: 220kO
R29: 56kO
Pl: potencjometr montażowy
leżący 10kO
Kondensatory
C1...C8: 22jiF/25V
C9: 47pF
C10C): lnF
C11...C19: lOOnF ceramiczny
C20, C21: 47nF
C22, C23: 6,8nF
C24, C25: 100jiF/25V
C26...C29: ljiF MKT
C30...C35: 470nF
C36: 2200jiF/25V
C37: 330pF
C38: 220^F/25V
C39: 220nF
Półprzewodniki
Ul: NE5532
U2: ZXCD1000
U3: 7812
Tl, T2: ZXM64P03X
T3, T4: ZXM64N03X
T5...T7: BC557 lub BC558
T8: BC547 lub BC548
T9: IRF7416
T10: BS170
Dl...Dli: 1N4148
Różne
LI, L2: 20\iH
(") - montować tylko dla obciążenia 4Q
Dla modułu MATER montować R22 o rezystancji lLkQ, R24, C37 oraz 17
izworkę Ml. Nie należy montować 18.
Dla modułu SLAVE montować R22 o rezystancji 820Q, 18 oraz zworki Sl,
S2, S3. Nie montować R24 oraz C37.
rzystywane do zasilenia wzmacniaczy Ul oraz sterownika U2. Dodatkowy obwód R26, Pl i R4 umożliwia dokładną symetryzację przebiegu wyjściowego PWM. Dzięki takiej dokładnej symetryza-cji zyskuje się zmniejszenie zniekształceń. Marcin Wiązania marcin.wiazania@ep.com.pl
Wzmacniacz zbudowano na podstawie materiałów zawartych na stronie producenta http:// www.zetex.com.
Wzory płytek drukowanych w formacie PDF są dostępne w łnternecie pod adresem: http://www.ep.com.pl/ ?pdf/sierpienO3.htm oraz na płycie CD-EP8/2003B w katalogu PCB.
b)
Sygnał (trójkątny) do kanałów SLAVE
C1 47n
C2 47n
U2 ZXCD1000
\udloA 5V5
TrangleA OutA
DscA 9VA
Dist VCC
Zoac 9VE
OscB Gnd2
TrangleB OutE
AudioB Gnd'
U5_ 14
16
13
Sygnał (trójkątny) z kanału MASTER
Rys. 5. Konfiguracja układu ZXCD1000 jako synchronizatora (a) i jako układu synchronizowanego
Elektronika Praktyczna 8/2003
23
Programator USB mikrokontrolerów
ATmega - ISP,
AVT-524
Programatory ISP dla
mikrokontrolerów AVR to
temat od dawna znany
i obfitujący w rozmaite
rozwiązania - zarówno
komercyjne jak i amatorskie
(jedno z możliwych rozwiązań
przedsta wiamy
w Miniprojektach). Pojawia
się więc pytanie, czy wańo
od podstaw opracowywać coś
nowego? Na pewno nie ma
sensu powielanie typowego
projektu opańego np. na
porcie równoległym LPT. Co
w zamian? Oczywiście USB!
Rekomendacje: programator
dla wymagających
konstruktorów, przede
wszystkim tych, którzy
korzystają z mikrokontrolerów
ATmega.
PROJEKTY
Podczas konstruowania programatora prezentowanego w artykule nie koncentrowałem się na zapewnieniu jego maksymalnej prostoty i obniżeniu ceny, ważniejsze były jego cechy użytkowe. Dlatego też:
- komunikacja z komputerem sterującym jest zrealizowana za pomocą łącza USB, co często jest jedynym dostępnym sposobem dla posiadaczy laptopów,
- własne oprogramowanie sterujące pozwala na dowolne modyfikacje, poprawki i rozszerzenia a także na stosunkowo łatwą integrację z rozmaitymi środowiskami,
- płytka programatora posiada oprócz buforowanego interfejsu ISP wyprowadzone także inne interfejsy (I2C, SPI) oraz linie przetwornika A/C, PWM itd. co pozwala na jej wykorzystanie na rozmaite sposoby,
- mikrokontroler programatora można wyposażyć w bootloader, co pozwoli na szybkie i sprawne wymiany wersji oprogramowania za pośrednictwem tego samego łącza USB.
Konstrukcja programatora
Schemat elektryczny urządzenia przedstawiono na rys. 1 . Można na nim wyróżnić trzy podstawowe bloki funkcyjne: interfejs USB, mikrokontroler sterujący oraz buforowany interfejs ISP.
Połączenie z magistralą USB jest zrealizowane z pomocą układu Ul - FT8U232BM - w typowej aplikacji proponowanej przez FTDL Pamięć U2 pozwala na wprowadzenie własnych identyfikatorów programatora. Tranzystor Q3 zapewnia - zgodnie z wymaganym standardem USB - wyłączanie zasilania pro-
Programator prezentowany w artykule współpracuje ze ] środowiskiem projektowym dla AVR-GCC - AVRSide (dostępne"
bezpłatnie na stronie http://www.avrside.fr.pl oraz na CD-EP8/2003B). Możliwości jego wczesnej wersji opisaliśmy
w EP1/2003).
J
Elektronika Praktyczna S/2003
25
Programator USB mikrokontrolerow ATmega - ISP
Rys. 1. Schemat elektryczny programatora
26
Elektronika Praktyczna 8/2003
Programator USB mikrokontrolerow ATmega - ISP
gramatora podczas enumeracji oraz w stanie uśpienia komputera - hosta.
Mikrokontroler U3 steruje interfejsem ISP zgodnie z komendami i danymi otrzymywanymi z działającego na komputerze -hoście oprogramowania. Zwraca też informacje o prawidłowym zakończeniu kolejnych operacji lub o zaistniałych błędach. Dzięki zastosowaniu mikrokontrolera ATmega 8 nie ma konieczności dodawania praktycznie żadnych dodatkowych peryferiów. Mikrokontroler pracuje z wewnętrznym os-cylatorem 8 MHz i ma wbudowany układ zerujący oraz watchdog. Jednocześnie dysponuje całą gamą dodatkowych sprzętowych interfejsów: I2C, SPI, wielokanałowym przetwornikiem analogowo-cyfrowym, wyjściami PWM. Odpowiednie styki wyprowadzono na płytce, co pozwoli na ewentualne wykorzystanie programatora do różnych innych celów (konwertery USB<->I2C, USB<->SPI, programatory pamięci szeregowych, przetwornik A/C do komputera itd.). Obwód filtrujący L2, C7 zasila obwody A/C, natomiast kondensator CIO dodatkowo filtruje wewnętrzne napięcie odniesienia 2,56 V, które zostało przewidziane do wykorzystania w układzie.
Wyprowadzenia interfejsu SPI tworzą zarazem wejście magistrali ISP pozwalającej na szeregowe wpisanie do mikrokontrolera programu wykonawczego oraz ustawień konfiguracyjnych.
Interfejs ISP łączy linie I/O mikrokontrolera sterującego z wejściami ISP docelowego układu. Musi on spełnić następujące wymagania:
- całkowicie uniezależnić zespół urządzeń od kolejności włączania zasilania,
- umożliwić dołączanie układu docelowego zasilanego innym napięciem,
- uaktywniać linie sterujące ISP tylko i wyłącznie w trakcie programowania - normalnie powinny pozostawać w stanie wysokiej impedancji nie wpływając w żaden sposób na działanie docelowego układu bez konieczności odłączania.
Zadania te zostały zrealizowane przy pomocy inwertera z wyj-
ściem OC (U4) oraz trójstanowego bufora HC244 (U5). Bufor U5 oraz pull-up y jego linii wejściowych są zasilane napięciem docelowego systemu - zawsze więc uzyskamy potrzebną zgodność poziomów logicznych. Inwerter U4 jest zasilany dwustronnie poprzez diody Schottky ego Dl i D2. Kostka pozostaje więc "pod napięciem" niezależnie od chwilowego podłączenia zasilania - eliminuje to możliwość wy sterowania wejść przy braku zasilania U4 (co układy cyfrowe niezbyt lubią). Wyjścia typu otwarty kolektor pozwalają na odpowiednie dopasowanie poziomów logicznych (dla poziomu niskiego 0 V, a dla poziomu wysokiego Vcc - niezależnie od jego wartości - oczywiście w ramach możliwości układu, czyli do 6 V). Nie ma to większego znaczenia przy zasilaniu obu układów jednakowym napięciem (czyli +5 V - tyle programator otrzymuje z magistrali USB). Natomiast przy np. 3,3 V systemu docelowego mamy następującą sytuację:
- zasilanie U5 = 3,3 V,
- wysokie poziomy logiczne na wejściach i wyjściach U5 = ok. 3,3 V,
- zasilanie U4 = ok. 4,7...4,8 V (ok. +5 V z USB pomniejszone o spadek na diodzie Schottky ego),
- wysokie poziomy logiczne na wejściach U4 od strony programatora - ok. 5 V (co jest dopuszczalne - nie przekraczamy napięcia zadziałania wejściowych wewnętrznych diod ochronnych kostki),
- wysoki poziom logiczny na wejściu U4 od strony bufora (wyprowadzenia 12, 13) = ok. 3,3 V. Jest to jedyna linia wymagająca dokładniejszego sprawdzenia: z danych serii HC wynika, że przy takiej wartości napięcia zasilającego minimalne napięcie rozpoznawane jako poziom wysoki wynosi nieco mniej niż 3,3 V, mieścimy się więc w wymaganym zakresie.
Wynika z tego, że układy z zasilaniem poniżej 3,3 V mogą sprawiać problemy. Jak nisko można zejść - pozostaje do praktycznego sprawdzenia (zazwyczaj rzeczywiste właściwości układów są lepsze niż gwarantowane wartości podawane w katalogach).
Zwróćmy też uwagę na sposób włączania linii RST interfejsu. Sekwencja przebiega następująco:
- ustawiamy programowo niski poziom SCK - bufor jest jeszcze w stanie wysokiej impedancji i na wyjściu nic się nie dzieje,
- ustawiamy programowo niski poziom RST - bufor 244 zostaje włączony podając na wyjście SCK poziom niski, ale linia RST zostaje przestawiona z poziomu wysokiego na niski dopiero po krótkiej chwili wynikającej ze stałej czasowej obwodu R17, C12. W ten sposób gwarantujemy stabilny stan niski SCK w chwili zakończenia zerowania, zgodnie z zaleceniami At-mela dotyczącymi wchodzenia w tryb programowania szeregowego.
Montaż układu
Całość układu została zmontowana na dwuwarstwowej płytce drukowanej, której schemat montażowy pokazano na rys. 2. Użyto głównie elementów SMD, co pozwoliło na zachowanie niewielkich wymiarów. Wyprowadzenia interfejsów możemy wyposażyć w listwy goldpin albo pozostawić do podłączeń przewodami - w zależności od potrzeb. Do poluto-wania najlepiej użyć grota mini wave, ale ponieważ rastry kostek nie należą do najmniejszych -tradycyjne techniki też będą zupełnie wystarczające.
Po zlutowaniu sprawdźmy dokładnie, czy nie ma zwarć ani przerw. Wskazane jest też przemycie płytki jednym z dostępnych preparatów chemicznych (np. PCC). Podłączenie do ISP prototypowego docelowego układu wykonamy według własnych potrzeb niezbyt długim (najwyżej kilkanaście centymetrów) przewodem taśmowym.
Uruchamianie programatora
Sam sprzętowy układ bez skonfigurowania i zaprogramowania nie przyda się nam do niczego. "Ożywianie" płytki przebiega w kilku etapach. Wszystkie przedstawione opisy i programy dotyczą systemu Windows. Adaptację układu do innych systemów operacyjnych pozostawiam inwencji Czytelników.
Elektronika Praktyczna 8/2003
27
Programator USB mikrokontrolerow ATmega - ISP
Niezbędne programy (łącznie ze środowiskiem AVRSide) oraz L pliki pomocnicze publikujemy na płycie CD-EP8/2003B.
Etap 1 - konfiguracja układu interfejsu USB
Najpierw musimy wyposażyć się w narzędzia ze strony producenta [www.ftdichip.com) - będzie nam potrzebny sterownik tzw. bezp o średni (direct driver) D2xx (najnowsza wersja z obsługą układów w wersji BM) oraz program Ftd2xxst.exe do obsługi szeregowej pamięci EEPROM 93C46. Rozpakowane pliki umieszczamy na dysku i zapamiętujemy lokalizację.
Instalacja sterowników
Teraz możemy po raz pierwszy podłączyć nasz układ do magistrali USB (bezpośrednio do gniazda A komputera albo poprzez huba z własnym zasilaniem, nie ograniczającego poboru prądu do 100 mA).
Po włączeniu Windows wyświetli informację o obecności nowego urządzenia USB i poprosi o podanie lokalizacji sterownika -odnajdujemy i zatwierdzamy lokalizację folderu z plikami (jak wyżej) - po chwili instalacja jest zakończona. Menedżer urządzeń w kluczu Kontrolery uniwersalnej magistrali szeregowej pokaże teraz obecność urządzenia "FTDI FT8U2XX DEVICE".
Uwaga! Sprawa może się poważnie skomplikować jeśli używamy już jakiegoś układu z kostką FTDI obsługiwaną jako wirtualny port szeregowy. System ma
Rys. 2. Rozmieszczenie elementów na płytce drukowanej
wtedy dla firmowych VID oraz PID zainstalowany inny zestaw sterowników (VCP), co wyklucza jednoczesne użycie D2xx. Jedynym wyjściem będzie wtedy skonfigurowanie kostki FT8U2 32 na innym komputerze i zmiana np. PID. Taki sam zmieniony PID musimy ręcznie wpisać do pliku *.inf sterownika D2xx, aby system umiał przypisać płytce z nowym PID właśnie ten sterownik. Operacje ze zmianą PID (VID) muszą być przeprowadzone z należytą starannością - jeśli się pomylimy system w ogóle nie będzie w stanie obsłużyć płytki (zgłaszając tylko obecność nieznanego urządzenia).
Wpisy do deskryptorów FT8U232 Służy do tego wspomniany powyżej program narzędziowy Ftd2xxst.exe. Sposób jego użycia jest dokładnie opisany w podręczniku, który w postaci elektronicznej publikujemy na CD-EP8/ 2003B.
Po wybraniu nowego pliku edytujemy wszystkie potrzebne pola:
Manufacturer = FTDI Manufacturer ID = FT Vendor ID = 0403 Product ID = 6001 (chyba, że wymagana jest zmiana zgodnie z uwagą powyżej) Description = avr isp loader (tej pozycji używa program nadrzędny PC do lokalizacji urządzenia, nie może być więc ona zmieniana, chyba że równolegle z kodem programu).
W opcjach zaawansowanych ustawiamy:
Pług and Play - nie Fixed Serial Number - dowolnie, w prototypach ustawiłem na "tak", wprowadzając ręcznie numery 20000001, 20000002 itd.) Self Powered - nie Remote Wakeup - nie Max Power (mA) - 250 mA (wprawdzie sam programator mieści się w podstawowych 100 mA, ale być może będziemy stosować płytkę w innym celu i przyda się możliwość zasilenia dodatkowych zewnętrznych podzespołów).
WYKAZ ELEMENTÓW
Rezystory
Rl, R4, R7, R10...R12: 3,3kQ 1206
R2, R3: 27Q 0805
R5: l,5kQ 0805
R6: 470O 1206
R8: 2,2kQ 1206
R9: 10kO 0805
R13...16: lOOkO 1206
Kondensatory
Cl, Cli: 10^F/16V 6032 tantal
C2: 33nF 0805
C3...C5, C13: lOOnF 1206
C6, Cl2: lOnF 0805
C7...C9: lOOnF 1206
C10: l|iF/16V 3216 tantal
Półprzewodniki
Ul: FT8U232BM TQFP32
U2: 93C46 SO8
U3: Atmega 8 TQFP32
U4: 74HC03 SO14
U5: 74HC244 SO20
Q3: tranzystor P-MOS MMBF 2202
PTI SOT23
Dl, D2: dioda uniwersalna
Schoffky Minimelf
Różne
Yl: rezonator ceramiczny 6,00
MHz CSTCCÓ.OOMG - TC (Murata)
SMD (można też powierzchniowo
przylutować rezonator
przewlekany)
LI, L2: koralik ferrytowy
przewlekany
Jl: gniazdo USB typ B
listwy goldpin, przewód taśmowy
Po zakończeniu edycji zapamiętujemy plik i programujemy EEPROM. Nowe ustawienia deskryptorów będą użyte po następnej enumeracji (czyli odłączeniu i ponownym podłączeniu płytki).
Etap 2 - konfiguracja mikrokontrolera ATmega 8
Używamy do tego dowolnego posiadanego programatora ISP. Prototypy były konfigurowane z poziomu AVRSide za pośrednictwem optoizolowanego programa-torka RS. Zwróćmy tylko uwagę na prawidłowe podłączenie linii - za pomocą schematu i rysunku płytki zlokalizujemy bez trudu wyprowadzenia interfejsu ISP. Mikrokontroler zastosowany w projekcie pracuje z wewnętrznym oscylatorem 8 MHz. Prze-
Elektronika Praktyczna 8/2003
Programator USB mikrokontrolerow ATmega - ISP
stawiamy więc fabryczne 0001 (1 MHz) na 0100. Pozostałych bitów możemy w naszym zastosowaniu nie zmieniać. Jednocześnie należy odczytać i zanotować wartość baj-tu kalibracyjnego dla 8 MHz. ATmega po zerowaniu zawsze automatycznie ładuje do korekcyjnego rejestru OSCCAL wartość dla 1 MHz. Musimy więc w części inicjalizacyjnej programu przeładować samodzielnie OSCCAL odczytaną powyżej wartością. Wymaga to wprawdzie przekompilo-wania programu oddzielnie dla każdego egzemplarza urządzenia, co jednak na etapie testów i uruchamiania (czy też przy składaniu pojedynczych płytek na własne potrzeby) nie jest żadnym utrudnieniem.
Uwaga! Konfiguracja fuseiów wymaga uwagi i staranności. Sprawdźmy dwa razy zanim coś ostatecznie wpiszemy do mikro-kontrolera. Niektóre bity mogą nam bowiem całkiem zablokować interfejs ISP, ale nawet zmiana źródła taktowania (inne niż potrzebne ustawienie CSEL) sprawi w zmontowanym już urządzeniu mnóstwo kłopotów.
Etap 3 -
zaprogramowanie
mrkroKontrolera
Jak zaznaczono wyżej, należy wpisać do programu właściwą dla danego egzemplarza ATmega wartość OSCCAL (na początku funkcji main() w module u_main.c). Kod dla programatora jest wol-
nym oprogramowaniem, całkowicie dostępnym - można więc przy okazji go poprawiać czy rozszerzać o nowe funkcje (na razie uruchomione są tylko podstawowe operacje dla serii ATmega). Otrzymany po kompilacji plik wynikowy avrisp.hex ładujemy do mikrokontrolera dowolnym programatorem ISP. Teraz możemy przystąpić do praktycznych prób ale o tym za miesiąc. Jerzy Szczesiul, AVT jerzy.szczesiul@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/sierpienO3Jitm oraz na płycie CD-EP8/2003B w katalogu PCB.
Elektronika Praktyczna 8/2003
29
PROJEKTY
Odtwarzacz MP3 z układem STA013, część 1
Przerobienie komp u tero we go
napędu CD-ROM na
odtwarzacz audio nie jest
zadaniem bardzo trudnym .
Bardziej skomplikowane jest
odtwarzanie plików MP3, ale
przykład Yamppów dowodzi,
że jest to także możliwe.
W ańykule przedstawiamy
interesujące rozwiązanie
odtwarzacza MP3, o dość
nietypowej - jak na polskie
warunki - budowie.
Rekomendacje: projekt
prezentujący niebanalne
podejście do konstrukcji
elektronicznych, głównie dzięki
zastosowaniu oryginalnego
zestawu elementów, jest to
konstrukcja poglądowa, stąd
pewne uproszczenia w jej
opisie.
Korzenie standardu kodowania dźwięku MP3 leżą w czasach powstawania standardu płyt CD. Wówczas postanowiono, źe cyfrowy dźwięk będzie rejestrowany jako wierna kopia sygnału analogowego (czyli naturalnego), ale tylko w paśmie do 20 kHz, bo wyższych dźwięków "normalny" homo sapiens i tak nie słyszy. To ograniczenie było teź na rękę inżynierom, którzy nie musieli pracować nad zbyt skomplikowanymi układami elektronicznymi.
Dlaczego? Dźwięk - jak każde zjawisko - istnieje w pewnych wymiarach. Oceniamy jego głośność (fachowo: natężenie) i wysokość (częstotliwość). Tak też pokazują go najczęściej wykresy -jako amplitudę pewnych częstotliwości. Żeby zamienić sygnał analogowy na cyfrowy trzeba go próbkować: podzielić na jak najmniejsze, równe kawałki (próbki), zmierzyć wartość każdej takiej próbki według określonej skali, a wynik pomiaru zapisać w postaci cyfrowej. Dźwięk CD to 16-bitowe próbki wykonywane z częstotliwością 44,1 kHz dla każdego kanału z osobna. W jednej sekundzie powstaje więc 141,2 kb danych (16*44,1*2), co daje ok. 10 MB na minutę utworu. Nic dziwnego, że ścieżki audio CD
w postaci plików wave zajmują tak dużo miejsca. Należało upakować dane do maksimum, ale bez utraty jakości sygnału. Wydawało się to niemożliwe, lecz z pomocą przyszła niedoskonałość ludzkiego ucha. Teoretycznie słyszymy dźwięki z zakresu od 20 Hz do 20 kHz, więc płyta CD oferuje nam pełną skalę doznań. Jednak w rzeczywistości większość ludzi jest głucha na wszystko powyżej 16...17 kHz, choć odczuwa wysokie dźwięki samym mózgiem i ciałem. Na dodatek ucho najlepiej reaguje na pasmo 2 do 4 kHz (mowa mieści się w zakresie tzw. pasma telefonicznego - 0,5 do 3 kHz). Pozostałe dźwięki trzeba bardziej wzmocnić, by stały się słyszalne.
Dzięki kodowaniu Layer 3 możemy skompresować dźwięk CD do 12 razy bez utraty jakości i przesyłać go z sensowną szybkością (przy nawet 128 kb/s). Dlatego mimo wszystko MPEG Layer 3 jest na razie najlepszy, a na pewno najpopularniejszy. Do niedawna ów format można było odtwarzać jedynie na komputerach osobistych, lecz ostatnio coraz popularniejsze stają się sprzętowe odtwarzacze MP3.
Elektronika Praktyczna S/2003
31
Odtwarzacz MP3 z układem STA013
Rys. 1. Schemat elektryczny otoczenia mikrokontrolera
Urządzenie które pragniemy zaprezentować należy do odtwarzaczy tego typu. Zamysł konstrukcyjny był taki aby urządzenie miało charakter stacjonarny. Powodem takiego rozwiązania był brak możliwości technicznych do miniaturyzacji układu (warunki amatorskie).
13 C0N6
Ul DRAM
14 CONS
'I AO 1B AO DO 2 no 1
? A1 17 3 D1 2
3 A2 1B 4 D2 3
4 A3 19 A3 A4 A5 AB A7 AB D3 D4 D5 D6 D7 DB h D3 4
h A4 22 7 D4 5
R A5 23 a D5 6
A6 24 D6 7
A7 25 10 D7 B
AB 26 31 D8 1
3P rw ?
WE 13 __ 33 D10 ii
RAS 14 ;+ł D11 4
OE 27 3R D12 h
UCAS 2B OE D13 D14 D15 37 D13 K
LCAS 29 ?14
m D15 B

Opis układu
Urządzenie składa się z następujących części: mikrokontrolera H8/3048 (rys. l), dołączonych do niego pamięci zewnętrznych DRAM (rys. 2) i Flash ROM (rys. 3), dekodera MP3 STA013 wraz z przetwornikiem C/A TDA1543 (rys. 4), klawiatury, wyświetlacza
n
CONB
12 CONS
LCD 2x20 znaków oraz interfejsu IDE (rys. 5) i napędu CD. Schemat blokowy odtwarzacza pokazano na rys. 6.
"Sercem" układu jest oczywiście mikrokontroler, który steruje wszystkimi, pozostałymi podzespołami. Kiedy zostaje włączone zasilanie w pierwszej kolejności następuje zerowanie procesora oraz układu STA013. W następnej kolejności zostaje uruchomiony program sterujący urządzeniem. Kod programu został stworzony przy użyciu asemblera. Po starcie programu zostają zainicjalizowane poszczególne podzespoły odtwarzacza.
Po włożeniu płyty do napędu następuje automatyczne wyszukiwanie utworów. Po przeszukaniu zawartości płyty w pamięci DRAM są zapisywane informacje odnośnie znalezionych utworów: długość, sektor początkowy i nazwa pliku. Następnie na wyświetlaczu zostaje wyświetlona informacja odnośnie liczby znalezionych ścieżek dźwiękowych. Po tym możemy przejść do odtwarzania dźwięku. Odtwarzanie utworu zrealizowane jest w oparciu o buforowanie danych. Pewien fragment pamięci DRAM (około 400 kB) jest przeznaczone na bufor do tymczasowego przechowywania części odtwarzanego utworu. Bufor ma charakter dynamiczny tzn. na początku wczytywana jest mała porcja danych, rozpoczyna się odtwarzanie, a następnie w miarę upływu czasu zostaje wypełniany danymi do końca swojej objętości. Powodem takiego rozwiązania jest wyeliminowanie zwłoki przy przełączaniu na odtwarzanie kolejnego utworu, gdyż za każdym razem
vss
Hvcc
I------|I5
U
CON2
Rys. 2. Schemat elektryczny pamięci DRAM
Rys. 3. Schemat elektryczny bloku pamięci Flash
32
Elektronika Praktyczna 8/2003
Odtwarzacz MP3 z układem STA013

C12== C8 ==C1 ==C5 ==
Rys. 4. Schemat elektryczny przetwornika C/A
kiedy zmieniamy odtwarzany plik musiałaby zostać odczytana stosunkowa duża porcja danych, co wprowadzało by niepotrzebne opóźnienia. Podczas odtwarzania utworu wyświetlacz pokazuje nazwę nagrania jak również jego numer na liście. Nazwa jest odczytywana z pliku MP3, w standardzie którego przewidziano odpowiednie miejsce na tego typu informacje (TAG). Kiedy odtwarzamy dany utwór mamy również dostęp do innych funkcji związanych z regulacją głośności, tonów wysokich i niskich. Możemy również przeskakiwać pomiędzy utworami z listy, dostępna jest także funkcja playlista. Istnieje zatem możliwość poukładania utworów w dowolnej kolejności i odtwarzania zgodnie z listą.
Mikrokontroler H8/3048
W projekcie użyliśmy mikrokontroler firmy Hitachi (obecnie Renesans) o oznaczeniu H8/3048. Jest to jednostka posiadająca jądro zgodne ze znaną serią procesorów tej firmy H8/300H. Procesor po-
siada 32-bitową wewnętrzną architekturę, więc jest dosyć "mocny". Jego głównym atutem, który przesądził o zastosowaniu, w projekcie to przede wszystkim mnogość portów I/O i wbudowany kontroler pamięci DRAM (do 2 MB). Jego użycie było stosunkowo łatwe, bowiem uruchomienie układu mikroprocesorowego z jego udziałem sprowadza się do podłączenia do struktury układu zegarowego i wprowadzenie odpowiedniego programu do pamięci EEPROM. Pomimo tego zaistniały pewne problemy z uruchomieniem układu, ale to będzie tematem dalszej części artykułu.
Dekoder MP3 STA013
Za jego pośrednictwem odbywa się właściwa dekompresja dźwięku. Producentem układu jest firma ST Microelectronics. STA013 to specjalizowany procesor DSP zawierający w swojej strukturze wszystkie niezbędne bloki pozwalające na dekompresję i obróbkę dźwięku podawanego na wejście układu jako ciąg liczb
zakodowany standardem MP3. Do prawidłowej pracy układ potrzebuje układu zegarowego stabilizowanego oscylatorem kwarcowym o odpowiedniej częstotliwości. Sterowanie układem odbywa się za pomocą magistrali I2C. Dane źródłowe przesyłane są do układu ze pośrednictwem magistrali szeregowej , synchronizowanej taktami zegara. Po dekompresji sygnał wyjściowy, przesyłany jest do przetwornika C/A za pomocą magistrali I2S.
Cechy charakterystyczne układu STA013 są następujące:
- jest zgodny ze standardem Layer III,ujętym w normie ISO/IEC pod numerem 11172-3 (MPEG 1 Audio),
- jest zgodny również ze standardem ISO/IEC 13818 - 3.2 (MPEG 2 Audio),
- pozwala na dekodowanie Layer III, dźwięku stereo, mono lub dwukanał owego,
- rozpoznaje i dekoduje wszystkie częstotliwości dźwięku: 48, 44,1, 32, 24, 22,05, 16, 12, 11,025, 8 kHz,
Elektronika Praktyczna 8/2003
33
Odtwarzacz MP3 z układem STA013
GND
DDS
DD9
DD10
DD11
DD12
DD13
DD14
DD15
NA
GND
GND
GND
Rys. 5. Schemat elektryczny interfejsu IDE
- pozwala na dekompresję dźwięku o dowolnej częstotliwości bitowej: od 8 do 320 kb/s,
- posiada cyfrową regulację głośności, wysokich i niskich tonów,
- wbudowany szeregowy interfejs dźwiękowy,
- obsługa poprzez magistralę I2C,
- niski pobór mocy dzięki zastosowaniu technologii CMOS i napięcia zasilania 3,3 V.
Pomimo, że struktura układu jest bardzo skomplikowana, uruchomienie go jest stosunkowo proste. Po dołączeniu zasilania oraz układu zegarowego i przetwornika C/A układ jest gotowy do pracy. Za pomocą magistrali I2C możemy np. odczytać zawartość rejestru identyfikacyjnego układu, który powinien zawierać wartość ACh. Jeżeli próba z identyfikacją się powiedzie, przystępujemy do konfiguracji pracy układu poprzez wpisanie odpowiednich parametrów do rejestrów konfiguracyjnych. Wartości powyższych parametrów szczegółowo opisuje dokumentacja. Następnie wysyłamy dane wejściowe
i uzyskujemy właściwy, słyszalny dźwięk.
Spostrzeżenia i trudności podczas budowy urządzenia
Urządzenie w prototypowej wersji zostało zbudowane modułowo. Każdy moduł jest zmontowany na osobnej płytce drukowanej, a całość jest ze sobą odpowiednio połączona. Stało się tak z dwóch przyczyn. Pierwsza z nich to brak odpowiednich narzędzi do zaprojektowania i wykonania profesjonalnej płytki drukowanej z metalizacją otworów o obustronnym druku. Sprawą oczywistą jest, że taka płytka charakteryzowała by się dużą komplikacją połączeń i w warunkach domowych nie możliwe jest jej wykonanie. Drugi powód mo-dułowości to łatwość lokalizacji ewentualnych usterek i możliwość w przyszłości dokonywania zmian konfiguracji modułów. Łatwo można zmienić np. moduł sterowania układem z zastosowaniem innego mikrokontrolera, bez konieczności przebudowy całego urządzenia.
Szyna adresowa Ł Mikrokontroler H8/3048
Szyna danych ^ SERIAL Dekoder M STA013 33

Pamięć DRAM A f k. I2S r

r i r Wyświetlacz LCD DAC TDA1543


Napęd CD-ROM
Klawiatura L f y R r
Wyjście AUDIO
Rys. 6. Schemat blokowy odtwarzacza
Należy również wspomnieć, że cały proces budowy składał się z konstrukcji po kolei poszczególnych modułów, a dopiero później urządzenie zostało scalone.
Jako pierwszy został zbudowany moduł dekompresji MP3. Testowo został on podłączony do portu równoległego komputera PC, na którym zastała zasymulowana magistrala I2C do sterowania dekoderem. Poprzez ów port była przesyłana porcja danych w postaci pliku MP3, a urządzenie odtwarzało dźwięk. Jednak samo odtwarzanie nie nastąpiło od razu. Należało uporać się z konfiguracją układu, ustawieniem parametrów C/A, co nie należało do rzeczy łatwych. Po uruchomieniu modułu dekodera przeszliśmy do budowy sterownika mikrokontrolera. W tym przypadku również wystąpiły problemy, które wynikały z niepoprawnego montażu elementów.
Najwięcej trudności sprawiło nam napisanie procedury obsługi CD-ROM-a. Dokumentacja opisująca standard ATAPI, jaką posiadamy, nie przedstawia jasno problemu sterowania czytnikiem płyt CD. Jednak z tym problemem również udało nam się uporać i CD-ROM zaczął w końcu odczytywać wskazane sektory. Kiedy temat odczytu danych został zrealizowany wystąpił problem przy przysyłaniu odczytanych informacji do dekodera. Chcieliśmy wykorzystać do tego celu sprzętową synchroniczną magistralę szeregową w którą wyposażony został mikrokontroler. Okazało się jednak, że bajt przesyłany tą magistralą posiada odwrotną kombinację bitów, niż kolejność akceptowana przez STA013. Należało w każdej porcji danych pood-wracać odpowiednio bity każdego bajtu. Proces ten jest prosty do realizacji, lecz czasochłonny. Transfer danych okazał się za wolny, a efektem tego było zrywanie podczas odtwarzania utworów o strumieniu szybszym niż 160 kb/s. Problem po optymalizacji programu udało się rozwiązać. Leszek Bednarz Krzysztof Lenard
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/sierpienO3Jitm oraz na płycie CD-EP8/2003B w katalogu PCB.
34
Elektronika Praktyczna 8/2003
MINIPROJEKTY
Wspólną cechą układów opisywanych w dziale "Miniprojekty" jest łatwość Ich praktyczne] 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 scaionych, 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,
Programator "atmelowych" mikrokontrolerów 89C51/52/55
B9C52
j tfBwl
IIHIIII
Prezentowane
w artykule urządzenie
jest łatwym
w wykonaniu
programatorem "dużych"
mikroko n troi ero w
z pamięcią Flash
z rodziny '51.
R ekom en da cje:
niezłej jakości
programator, przydatny
wszystkim projektantom
korzystają cym
z popularnych
mikroko n troi ero w
produkowanych przez
firmę Atmel.
Prezentowany programator jest przeznaczony do programowania wszystkich wersji produkowanych przez firmę Atmel mikrokontrolerów S9C51, 39C52 i S9C55 (nie jest obsługiwany 39C55WD). Programator opracował Wi-chit Sirichote z King Mong-kufs Institute of Technology i udostępnił pod nazwą Ea-sy-Downloader 2.0.
Schemat elektryczny programatora pokazano na rys. 1. Jego pracą steruje mikro-kontroler Ul (S9C51 lub 89C52) z wpisanym do pamięci programem ez52.hex, który jest dostępny bezpłatnie w Internecie pod adresem hiip:// chaokhun.kiniil.ac.ih/~kswi-chii/easy2/ez52.hex. Układ U4 spełnia rolę stabilizatora napięcia zasilającego elementy programatora, a U3 -programowanego stabilizatora napięcia programującego. Za przełączanie wartości tego napięcia odpowiada tranzystor Tl sterowany z wyjścia P3.3 mikrokontrolera Ul. Napięcie podawane na złącze JPl powinno być wyprostowane, wstępnie wytn-
ij -
a sssasss
rt+ uaiOK*

LLLLLLLL
8SL!mE?H 5
ssm/
QX1
T?B
5 3 L
5 5 B!
\\_
njEQ4-ia ł>s
93339
3S
ui r- *
Rys. 1. Schemat elektryczny programatora
Elektronika Praktyczna S/2003
35
MINIPROJEKTY
WYKAZ ELEMENTÓW
Rezystory
Rl: 8,2kO R2: 2500/1% R3: 2J5kO/l% R4: U5kO/l% R5: lkO Ró: lOkO
DR1: 8x1 OkO (R-pcick w obudowie SIL9) Kondensatory CEL CE3, CE5: 1O^F/1ÓV CE2: 1^F/25V CE4: 100^F/25V CL C2: 30pF C3: lOOnF Płytka drukowana jest dostępna w AVT - oznaczenie AVT-1375.
Wzory płytek drukowanych w formacie PDF są dostępne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl sierpienO3.htm oraz na płycie CD-EP3/2003 w katalogu PCB.
Półprzewodniki
Dl: dowolna diodo LED
Tl: 2N2222
Ul: AT89C51 (DIP40,
zprogromem ez52.hex)
U3: LM317T
U4: LM7805CT
U5: DS275
Inne
Xl: lL05?2MHz
U2: podstawko ZIF4O
JP1: złgcze zosilonio
JP2: DB9M
trowane i mieć wartość co najmniej 17 VDC przy prądzie o natężeniu 100 mA. Dioda świecąca Dl sygnalizuje włączenie zasilania programatora. Wymiana danych pomiędzy mikrokontrolerem Ul i komputerem PC odbywa się poprzez interfejs szeregowy RS232. Rolę konwertera napięciowego RS232<->TTL spełnia układ U5 typu DS275.
Jest to dość nietypowe rozwiązanie, ale wybrano je ze względu na niewielką obudowę układów DS275 i możliwość zamówienia ich bezpłatnej dostawy jako próbek. Schemat montażowy płytki programatora pokazano na rys. 2. Podczas montażu programatora warto zwrócić uwagę na konieczność precyzyjnego zamontowania ukła-
Inteligentny wyłącznik
Niemal każde
nowoczesne urządzenie
audio-wideo jest
wyposażone w zdalne
sterowanie. Przy tym
sposobie obsługi
urządzenia pobierają
prąd zarówno w stanie
aktywnym, jak również
w stanie czuwania. Moc
pobierana przez układ
czuwania nie jest duża
(kilka, kilkanaście
watów), ale sumaryczna
energia pobrana przez
urządzenie w stanie
oczekiwania może być
spora.
R ekom en da ej e:
wyłącznik umożliwia
oszczędną energetycznie
obsługę urządzeń
zdalnie sterowanych.
Wyłącznik jest sterowany za pomocą pilota zdalnego sterowania i współpracuje z systemami RC5 (Philips) oraz SIRC (Sony). Wyłącznik odbiera sygnały wysyłane przez nadajnik zdalnego sterowania i po odebraniu odpowiedniej (wcześniej zaprogramowanej przez użytkownika) komendy może całkowicie odłączyć urządzenie od napięcia zasilania, a za pomocą innej komendy może dołączyć zasilanie do urządzenia.
Schemat wyłącznika przedstawiono na rys. 1. Elementem sterującym jest mik-rokontroler PIC16F676. Procesor jest taktowany sygnałem zegarowym o częstotliwości stabilizowanej zewnętrznym rezonatorem kwarcowym. Sygnał zerowania, po włączeniu zasilania, jest generowany wewnętrznie. Do sygnalizacji stanu pracy włącznika służy dwukoloro-wa dioda LED Dl. Jako odbiornik promieniowania podczerwonego zastosowano układ typu TSOP173S. Jako układ wykonawczy zastosowano przekaźnik, dzięki któremu uzyskano możliwość
Rys. 2. Schemot montażowy programatora
dów U3 i U4 - nie mogą się one stykać radiatorami.
Pracą programatora steruje bezpłatne oprogramowanie, zgodne z Windows 95/98/ Me/N T/2 000/XP, które publi-
kujemy na CD-EP3/2003B, jest ono dostępne także na stronie autora: hiip:// cha okh un.kuiitl.ac.th/ - kswich ii/e z4 /EZDL 4. exe. AG
przełączania dużych prądów (o natężeniu do 16 A), a elementy wyłącznika są odseparowane od napięcia 220 V. Do zasilania układu zastosowano zasilacz zbudowany z transformatora TS2/15, mostka prostowniczego i stabilizatora. Napięcie na wyjściu mostka prostowniczego (około 12 V) służy do zasilania cewki przekaźnika. Na wyjściu stabilizatora (US3) otrzymuje się napięcie 5 V, które służy do zasilania procesora i odbiornika podczerwieni. Przycisk Sl służy do
zmiany stanu przekaźnika oraz do wprowadzenia wyłącznika w tryb programowania kodów.
Schemat montażowy przedstawiono na rys. 2. Płytka wielkością została dopasowana do obudowy Z27, która ma wtyczkę oraz gniazdo przystosowane do napięcia 220 V. Napięcie zasilania 220 V należy dołączyć do złącza CONl, a odbiornik do złącza CON2, oczywiście przy wyłączonym napięciu sieciowym.
36
Elektronika Praktyczna S/2003
MINIPROJEKTY
Rys. 1. Schemat elektryczny automatycznego wyłgcznika
Po zmontowaniu całego układu i podłączenia go do napięcia zasilającego przyciskiem Sl można ręcznie zmieniać stan przekaźnika. Każdorazowe jego naciśnięcie spowoduję zmianę stanu na przeciwny. W czasie załączenia styków przekaźnika dioda będzie świeciła się kolorem czerwonym.
Aby umożliwić zdalne sterowanie, należy zaprogramować kody służące do włączenia i wyłączenia przekaźnika. W tym celu należy odłączyć napięcie zasilania, nacisnąć klawisz Sl i ponownie włączyć zasilanie. Po tych czynnościach procesor znajdzie się w trybie programowania, sygnalizując to
C0N2uy CONlueD
7 usssmanuu
Włącznik teleuizyjny
Rys. 2. Schemat montażowy płytki
świeceniem zielonej diody. Najpierw na klawiaturze pilota należy nacisnąć klawisz, który będzie powodował załączenie przekaźnika, po prawidłowym odebraniu tego kodu przez wyłącznik dioda zgaśnie, a procesor będzie oczekiwał przez około 2 sekundy na koniec transmisji, po czym dioda zapali się na czerwono. Oczekiwanie na zakończenie transmisji jest zabezpieczeniem przez kilkakrotnym zapisem tego samego kodu w pamięci procesora. Po podaniu kodu włączającego przekaźnik należy podać kod wyłączający, naciskając kolejny klawisz na klawiaturze pilota. W tym przypadku również dioda zostanie wyłączona, a po około 2 sekundach od zwolnienia klawisza na pilocie zostanie ponownie zapalona, kończąc proces zapisu kodów. Odebrane sekwencje zostaną zapisane w pamięci EEPROM, dzięki czemu nie zostaną utracone po wyłączeniu zasilania. Aby stan przekaźnika był zmieniany po każdorazo-
WYKAZ ELEMENTÓW
Rezystory
Rl: 330Q R2: 220Q R3: 4,7kQ Kondensatory
Cl: 1000^F/25V
C2, C3: lOOnF
C4: 100^F/16V
C5, Có: 3OpF
C7: 47^F/1ÓV
Półprzewodniki
Dl: dioda LED dwukolorowa
okrggła 5 mm
D2: 1N4007
Tl: BC547
MG: mostek prostowniczy
1A/4OOV
US1: PIC16F676
zaprog ra m owa ny
US2: TSOP1738
US3: LM78L05
Różne
CON1, CON2: ARK2(5mm)
CON3: goldpin 1x2
Sl: mikrowłgcznik
Xl: rezonator kwarcowy
4MHz
Transformator TS2/15
Bezpiecznik 5A
Gniazdo bezpiecznika do
druku
Obudowa Z27
Płytka drukowana jest dostępna w AVT - oznaczenie AVT-1370.
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: h ttp ://www. ep.com.pl/?p dfl sierpienO3.htm oraz na płycie CD-EP8/2003 w katalogu PCB.
wym naciśnięciu tylko jednego klawisza, jako kod włączający i wyłączający przekaźnik należy nacisnąć ten sam klawisz pilota. Po zaprogramowaniu wybranych klawiszy należy wyłączyć i ponownie włączyć zasilanie. Od tej pory stan przekaźnika może być zmieniony za pomocą klawisza Sl lub zdalnie wcześniej przypisanymi klawiszami. Krzysztof Ptawsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Elektronika Praktyczna 8/2003
37
MINIPROJEKTY
Rejestrator stanów logicznych dla PC
Nie wszyscy
elektronicy mogą sobie
pozwolić na zakup
analizatora stanów
logicznych. Napisany
przeze mnie program,
spełniający funkcję
rejestratora sygnałów
cyfrowych, może
zastąpić te kosztowne
przyrządy podczas
prostych pomiarów.
R ekom en da ej e:
szczególnie polecamy
p o czą tkują cym
elektronikom, którzy
minimalnym nakładem
czasu i środków mogą
wykonać bardzo
przydatny
i funkcjonalny
rejestrator sygnałów
cyfrowych.
Rejestrator-a na li zator stanów logicznych można wykonać na wiele sposobów, ale bez wątpienia nalatwiejszy to powierzyć tę rolę komputerowi PC. Rozwiązanie takie ma wadę, ponieważ nie jest możliwe precyzyjne odmierzanie czasu próbkowania, ale walory użytkowe takiego rejestratora w znacznym stopniu ją niwelują. Analizowane sygnały są wprowadzane do PC poprzez równoległy port drukarkowy (Centronics). W podstawowej wersji tego interfejsu mamy do dyspozycji 5 wejść, których stany możemy odczytać są to sygnały BUSY, ACK, PAPEROUT, ONLINE oraz IERROR. Aby nie uszkodzić linii interfejsu (choćby jej nieumyślnym dołączeniem do napięcia wyższego od 5 V), który jest dzisiaj zwykle zintegrowany z płytą główną komputera, należy go odpowiednio zabezpieczyć.
Linie współczesnych wersji Centronicsa są wewnętrznie "podciągnięte" do napięcia 3,3 V. Wystarczy więc zastosować najprostszą optoi-zolację transoptorową (stosując na przykład transoptory CNY17 lub 4N35), w której tranzystor będzie zwierał linię wejściową portu do masy w momencie przepływu prądu przez diodę LED - rys. 1. Natężenie prądu płynącego przez tę diodę należy oczywiście ograniczyć, np. za pomocą rezystora.
Obsługa programu
Okno działającego programu (dla Windows 98 i systemów pochodnych) pokazano na rys. 2. Ustawiane w nim czasy należy traktować jako orientacyjne. W celu zwiększenia dokładności ich odmierzania warto wyłączyć wszystkie inne aplikacje.
Program wyświetla orientacyjny wykres, który ma po-
WoJAde badanego Śygnału
móc w analizowaniu przebiegów. Obsługa jest dość intuicyjna. Po kliknięciu na wykres możemy przesuwać jego zawartość za pomocą klawiszy kursorów: <, > oraz Home, PageUp, PageDown. Na pierwszym planie znajduje się przebieg sygnału podawanego na linię IERROR, za nim ("w głąb") widać kolejno linie, którym odpowiada coraz wyższy numer bitu w odczytanym bajcie z rejestru BA-SE+1. Liczby pod słupkami wykresu oznaczają numer próbki (pomiaru). W ten sposób możemy np. określić czasy trwania impulsów. Na wykresie mieści się maksymalnie 999 próbek, zaś cały bufor zawiera 65535. Zawartość bufora możemy eksportować, np. do Excela, co pozwala wykonać lepsze wykresy, analizę zgromadzonych danych itp. W tym celu wystarczy kliknąć na przycisk Zrzuć bufor do pliku. Wówczas w katalogu programu zostanie utworzony plik tekstowy buf_daia.txt zawierający dane możliwe do zaimportowania do Excela jako plik tekstowy z separatorem w postaci spacji. Program zawsze zapisuje zawartość całego bufora, bez względu na to, ile w nim znajduje się próbek (poza obszarem próbek znajdują się zera).
Przed dokonaniem pomiaru należy wybrać adres bazowy portu LPT (BASE), który będzie wykorzystywany jako wejście danych rejestratora. Pomiar można przeprowadzać dwoma sposobami: bez synchronizacji oraz z synchronizacją sygnałem wyzwalającym. Niezależnie jednak od sposobu, należy wpierw ustawić wartości Odstępy czaso-
we oraz Ilość próbek. Pierwsza liczba określa odstęp czasu, po jakim ma być dokonywany pomiar. Druga zaś określa, ile razy zostanie przeprowadzony pomiar. Zatem czas samego pomiaru wyniesie minimum: (ustalone odstępy czasowe + 4 ms) * liczba próbek
Pomiar bez sygnału wyzwalającego jest przeprowadzany zaraz po wciśnięciu przycisku Próbkuj natychmiast. Pomiar z synchronizacją (która nie jest może najdokładniejsza z powodu pewnych opóźnień, jednak zwykle wystarcza) wymaga ustawienia jeszcze dwóch parametrów. Pierwszym z nich jest Bit wyzwalający, który określa, z której linii pomiar ma być wyzwalany (np. bit 3 oznacza linię IERROR). Drugim zaś jest poziom wyzwalający: czy wyzwolenie ma nastąpić poziomem 1 (high), czy 0 (Iow). Kiedy ustawimy powyższe parametry, wystarczy kliknąć na przycisk Czekaj na wyzwolenie. Jeśli teraz pojawi się odpowiedni sygnał na podanej linii, pomiar zostanie wykonany. W przeciwnym razie program będzie cały czas w stanie oczekiwania. Jeżeli będziemy chcieli przerwać ten stan, wystarczy przycisnąć aktywny przycisk Oczekiwanie: stop. Bez względu na to, czy pomiar zostanie dokonany, czy nie, zawartość wykresu i bufora ulegnie zmianie (o czym należy pamiętać). Jeśli będziemy chcieli określić stan linii synchronizującej czy innej na chwilę przed wyzwoleniem, możemy sygnał wyzwalający pozostawić bez zmian, a na odpowiedniej linii umieścić układ opóźnia-
Rys. 1. Schemat elektryczny optoizolowonego wejścia rejestratora
Rys. 2. Widok okna programu obsługującego rejestrator
38
Elektronika Praktyczna S/2003
MINIPROJEKTY
Tab. 1. Przypisanie linii wejściowych do styków w typowych gniazdach iwrejestne danych o adresie BASE+1
Bit portu BASE+1 7 6 5 4 3 -
Sygnał BUSY ACK PAPER OUT ONLINE IERROR Masa
Numer styku wnDB25 11 10 1? 13 15 18 25 (wybór np 21}
Numer styku wnDB36 11 10 1? 13 32 19 30, 33
jacy (złożony np. z kilku bramek, obwodu RC lub RL).
W przypadku nowszych wersji programu (od 3.12) dostępna jest opcja Czas jest krytyczny, którą można wykorzystać, kiedy badamy szybkie przebiegi. Jednak należy ją wykorzystywać ostrożnie, gdyż istnieją sytuacje, w których doprowadzimy do zawieszenia się systemu, np. zbyt długi czas próbkowania
czy - w przypadku wyzwalania - brak odpowiedniego sygnału synchronizującego. Oprócz tego dostępna jest opcja (od wersji 3.15) ukrycia okna programu na pasku zadań w tzw. tiayu.
Instalacja programu
Aplikacja nie ma własnego instalatora. Jako że zostały użyte niestandardowe komponenty i kontrolki ActiveX,
wymagane są dodatkowe biblioteki z Delphi 3.0. Dlatego przed uruchomieniem programu należy skopiować plik cfx32.ocx do katalogu systemowego (najczęściej c:\win-dows\sysiem), a następnie dodać do rejestru odpowiednie klasy, uruchamiając skrypt w pliku cfx.reg. Aplikacja ponadto wymaga sterownika DriverLINX, który można pobrać ze strony Disk-Dude:
- http://venezia.cx/-diskdude/ softwar e/cbuilder/index. htm 1,
- http://venezia.cx/-diskdude/ files/cbuilder/DLPortlO/ DLPortIO.zip,
- http://venezia.cx/-diskdude/ files/cbuilder/DLPortlO/ port95nt.exe.
Powyższa czynność nie jest jednak konieczna w przypadku systemu Windows 98.
Wystarczy do wspomnianego wyżej katalogu systemowego skopiować jeszcze pliki dlporiio.sys oraz dlporiio. dli. Wszystkie te czynności możemy wykonać automatycznie, uruchamiając plik wsadowy sysi_upd.-bai. W razie konieczności należy tylko uruchomić ponownie system, a następnie program oscpil.exe. Jeśli powyższe czynności nie przyniosą skutku, trzeba kolejno wykonać polecenia: regsvr32 lu cfx32.ocx oraz iegsvi32 cfx32.ocx.
Janusz Użycki nopsoft@poczta.onet.pl
Programator ISP mikrokontrolerów AVR z serii AT90S
Pomimo zamieszania
wywołanego przez ostrą
selekcję przeprowadzoną
niedawno wśród
mikrokontrolerów AVR
przez firmę Atmel,
mikrokontrolery z serii
AT90S są nadal
produkowane (choć
określane jako "maturę",
czyli przewidziane do
wycofania z produkcji),
można je także nadal
bez większego trudu
kupić w sklepach
elektronicznych.
R ekom endacje:
projekt polecany
szczególnie fanom
mikrokontrolerów AVR,
którzy chcą wykonać
sobie - praktycznie
beznakładowo -
funkcjonalny
programator ISP.
Autorem programu - bo prezentowany programator składa się przede wszystkim z programu - jest Słowak Ju-raj Lihosith. Program AVR Program mer współpracuje z bardzo prostym interfejsem (schemat elektryczny pokazano na rys. 1), za pomocą którego można programować następujące mikrokontrolery wyposażone w interfejs SPI: AT90S12 00, AT90S2313, AT90S2323, AT90S2 343, AT90S2333, AT90S4414, AT90S4434, AT90S443 3, AT90S3515, AT90S3535 oraz mikrokontroler z rodziny '51 - AT39S3252. Dane można wprowadzać do pamięci programu Flash oraz danych EEPROM, możliwe jest także programowanie i kasowanie bitów zabezpieczających i konfiguracyjnych, do których dostęp podczas programowania ISP przewidział producent w oficjalnych specyfikacjach. Interfejs programujący jest dołączany do portu równoległego (Centronics) komputera PC. Dioda LED sygnalizuje aktywność programatora. Sygnały XTAL1,
a płycie CD-EPS/ 2003B zamieściliśmy
program AVR
Programmer 3,3
(pracuje z Windows
95/98/Me) oraz noty
katalogowe
mikro kont roler ów
obsługiwanych przez
niego (oprócz
AT90S4414),
SCK, MOSI, MISO, GND i RE-SET należy dołączyć do tak samo oznaczonych wyprowadzeń wymienionych mikrokontrolerów, a linia VCC służy głównie do zasilania diody LED. Interfejs może zostać nieco uproszczony i wtedy nie są wykorzystywane linie VCC i XTAL1 - szczegóły można znaleźć w pomocy programu AVR Programmer. Na rys. 2 pokazano widok okna działającego programu, który, jakkolwiek niezbyt duży, wymaga instalacji. Podczas korzystania z programu należy pamiętać o zweryfikowaniu działania programatora dla różnych prędkości transmisji (Irrteiface Speed) -w większości testowanych przypadków najlepszą stabilność pracy uzyskiwano dla prędkości Medium. W zależności od wybranej konfiguracji pracy interfejsu pokazane-
go na rys. 1, trzeba także ustalić odpowiedni tryb jego pracy (Inteiface Modę).
Autor programu udostępnia go bezpłatnie, ale przewiduje możliwość jego rejestracji za równowartość 3 USD. Rejestracja nie zwiększa funkcjonalności programu. TG
Więcej informacji o programie prezentowanym w artykule można znaleźć w Iniernecie pod adresem: h iip ://a vr. we bpa rk. sk/.
Instalacyjną wersję programu AVR Programmer publikujemy na CD-EP8/2003B, jest ona dostępna także w Iniernecie pod adresem: http://avT.webpark.sk/Files/ seiup.exe.
I obs
Rys. 1. Schemat elektryczny programatora
Rys. 2. Wyglgcl okna programu sterującego
Elektronika Praktyczna S/2003
MINIPROJEKTY
PanuWorld Nokia Cable
Opublikowana
miesiąc temu pierwsza
część artykułu
o protokole Mbus dla
telefonów Nokia
wywołała ogromne
zainteresowanie wśród
naszych Czytelników.
Specjalnie dla nich
przygotowaliśmy
miniprojekt interfejsu,
za pomocą którego będą
mogli modyfikować
zawartość pamięci
swojego telefonu.
Rekomendacje: dla
wszystkich
użytkowników telefonów
Nokia (z interfejsami
Mbus i Fbus), którzy
zamierzają nieco lepiej
poznać ich możliwości...
Prezentowany projekt powstał na bazie popularnego rozwiązania PanuWorld Nokia Cable, czyli dwustandar-dowego interfejsu zgodnego z protokołami Mbus oraz Fbus. Wejścia i wyjścia interfejsu (od strony telefonu) są przystosowane do współpracy ze wszystkimi telefonami,
Zasilanie dla tego układu jest dostarczane z interfejsu RS232 komputera PC, dioda Zenera Dl spełnia rolę stabilizator a-ogranicznika napięcia, zapobiegającego przekroczeniu wartości napięcia zasilającego powyżej 4,7V.
Interfejs zmontowano na niewielkiej płytce drukowa-
Prezentowany interfejs nie nadaje się
do "flashowania" telefonów Nokia!
Odpowiedni do tego celu interfejs
opiszemy w EP za miesiąc.
także tymi, których interfejsy są przystosowane do sygnałów w standardzie napięciowym 3,3 V.
Schemat elektryczny interfejsu pokazano na rys. 1. Nie wymaga on specjalnego komentarza, jest to bowiem minimalnie rozbudowana typowa aplikacja układu MAX232.
nej, której schemat montażowy pokazano na rys. 2. Montaż jest prosty w przeprowadzeniu, z przyczyn praktycznych (ew. serwisowanie) warto zastosować pod układ USl podstawkę.
Sam interfejs - co oczywiste - nie poradzi sobie z modyfikowaniem nastaw
4 FBUS TX 3 M2BUS
._. 2 FBUS RX
JP1 1 GND
4 t> 3 2 1
Rys. I. Schemat elektryczny interfejsu
telefonu, do tego celu jest niezbędne specjalistyczne oprogramowanie. Dobrym źródłem jest strona interne-towa Fan Klubu Nokii (www.fkn.pl), na której można znaleźć szereg interesujących nowości. TG
Dodatkowe informacje można znaleźć m.in. pod adresami:
- h ttp :lln okiafree. org,
- http:lIwww.fkn,pl,
- http:llwww.gsm4u.cz,
- http:llwww.gsmtricks.com.ua,
- http:/'Iwww.nokia.w.inteńa.pl.
WYKAZ ELEMENTÓW
Rezystory
Rl: lka R2: 33kQ R3: 47Q Kondensatory
C1...C4: l^F/25V
C5: 2,2^F/25V
Półprzewodniki
USl: MAX232
Dl: 4V7
D2, D7: BAT85
D3: 3V0
D4, D6: 1N4148
D5: 2V7
Tl: BC548B
Różne
Jl: DB9F (wtyczka
z przewodem)
JPl: goldpin 4x1
Płytka drukowana jest dostępna w AVT - oznaczenie AVT-1376.
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/7pdf/ sierpienO3.htm oraz na płycie CD-EP8I2003 w katalogu PCB.
NoMa 5110/6110
NoMa21xx/31xx/81xx
Rys. 2. Rozmieszczenie elementów na płytce drukowanej
1
ni
3456789
MMIII
1.VIN (wejście tadowarld)
2. CHRG CTRL (kontrola ładowania PWM)
3. XMIC (wejście mikrofonu)
4. SGND (masa audio)
5. XEAR (wyjście na słuchawkę)
6. MBUS
7. FBUS RX
8. FBUSTX S. L GND
Rys. 3. Opis funkcji styków gniazda telefonów Nokia 6110/8110
1.GND
2. V_OUT (wyjście zasilania akcesoriów
3. XMIC (wejście mikrofonu)
4. BCT RF (wybór anteny wewn./zewn.) 5.TX(FBUSTX)
8. MBUS
7. NC
8. SGND (masa audio)
9. XEAR (wyjście słuchawkowe)
10. HOOK (czujnik położenia zestawu słuchawkowego)
11.RX(FBUSRX)
12. V_IN (podłączenie ładowarki)
Rys. 4. Opis funkcji styków gniazda telefonów Nokia 21xx/31xx/81xx
40
Elektronika Praktyczna 8/2003
MINIPROJEKTY
Przetwornica napięcia 1 V/5 V
Przy bateryjnym
zasilaniu układów
cyfrowych należy
pamiętać, że napięcie
ogniw zmienia się wraz
z upływem czasu.
Ponadto jego niewielka
wartość wymusza
stosowanie wielu ogniw
w celu uzyskania
napięcia zasilającego
o wartości 5V.
Alt er n a ty wnym
rozwiązaniem jest
zastosowanie
wysoko spra wn ej
przetwornicy napięcia,
której jeden
z możliwych wariantów
przed sta wiamy
w artykule.
Rekomendacje:
przydatna wszystkim
użytkownikom systemów
cyfrowych, które muszą
być zasilane bateryjnie -
napięcie 5 V można
uzyskać z pojedynczego
ogniwa 1,5 V!
Przetwornica umożliwia zasilanie układów cyfrowych napięciem 5 V z pojedynczego ogniwa 1,5 V. Schemat elektryczny przetwornicy przedstawiono na rys. 1. Głównym elementem jest układ USl, w którym zintegrowano wszystkie elementy niezbędne do sterowania wewnętrznego tranzystora mocy. Napięcie indukowane w Li jest podawane na diodę Dl, która "przepuszcza" do odbiornika tylko dodatnie szpil-
CONi
ki. Napięcie to jest wygładzane przez kondensator Cl. Napięcie wyjściowe jest podawane także na wejście PS układu USl, co umożliwia odpowiednią modyfikację przebiegu sterującego wewnętrznym tranzystorem, aby niezależnie od napięcia zasilania oraz prądu obciążenia napięcie wyjściowe było jak najbardziej zbliżone do wartości 5 V. Minimalna wartość napięcia zasilania przetwornicy wynosi 0,9 V, co umożliwia pracę z jed-
Rys. 1. Schemat elektryczny przetwornicy napięcia



2QV\

Vkr-

o aa 40 m m 100
lity [mAJ
Rys. 2. Zależności pomiędzy napięciem wyjściowym i prgclem pobieranym z wyjścia przetwornicy a napięciem zasilania przetwornicy
nym ogniwem o napięciu nominalnym 1,5 V, a nawet z akumulatorem o napięciu 1,2 V. Wydajność prądowa przetwornicy jest ściśle powiązana z napięciem zasilania, dlatego dla większych prądów należy zastosować wyższe napięcie zasilania. Na rys. 2 przedsta-
strona 'al amantów"
strona "lutowania"
Rys. 3. Schemat montażowy płytki drukowanej
wiono zależności napięcia wyjściowego od pobieranego prądu. Przetwornica jest wyposażona w wejście włączające !SHDN. Podanie na to wejście napięcia mniejszego niż 0,2 V wyłącza przetwornicę -w tym trybie pobierany jest prąd spoczynkowy o wartości około 2 [iA. W czasie normalnej pracy na wejście to należy podać napięcie o wartości większej niż 0,8 V.
Układ został zmontowany na płytce dwustronnej z elementami umieszczonymi po obu stronach (rys. 3). Układ USl i kondensator należy wlutować od strony "lutowania", pozostałe elementy po właściwej stronie montażu elementów. AG
WYKAZ ELEMENTÓW
Kondensatory
Cl: 47^F/ÓV Ó032 LI: lOO^H Półprzewodniki
Dl: 1N5817
USl: TC125501ECT
Różne
CON1: golclpin 1x2 kgtowy CON2: golclpin 1x3 kgtowy
Płytka drukowana jest dostępna w A VT - oznaczenie AVT-1372.
Wzory płytek drukowanych w formacie PDF są dostępne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl sierpienQ3.htm oraz na płycie CD-EP3/2003 w katalogu PCB.
Rozładowywarka/tester ogniw NiCd
Dołado wywanie
akumulatora nikło wo-
kadmowego, gdy nie
został on do końca
rozładowany, powoduje
wystąpienie efektu
pamięciowego, który
degraduje pojemność
akumulatora.
Rekomendacje:
urządzenie pozwala
zapobiec powstawaniu
efektu pamięciowego
w akumulatorach NiCd
o pojemnościach
do 1,2 Ah.
Aby przeciwdziałać powstawaniu efektu pamięciowego, należy przed ładowaniem przeprowadzić kontrolowane rozładowanie akumulatora. Niektóre ładowarki posiadają już wbudowaną funkcję rozładowywania przed ładowaniem, co skutecznie wydłuża żywotność
akumulatorów. Według danych katalogowych akumulatory NiCd nie powinny być rozładowywane poniżej 1 V, a wyładowanie poniżej 0,6 V powoduje trwałe ich uszkodzenie.
Prezentowane urządzenie wykonano przy użyciu kilku ogólnie dostępnych podzespo-
Czytelników zainteresowanych szczegółowymi informacjami związanymi z obsługą i korzystaniem ze współczesnych akumulatorów zachęcamy do sięgnięcia po EP4 i 5/2003, w których opublikowaliśmy artykuły związane z tym tematem.
łów (rys. 1). Jest to typowy przerzutnik astabilny (multi-wibrator), który pracuje z częstotliwością około 15 kHz. Działanie rozładówywar-ki polega na zasilaniu prze-rzutnika z rozładowywanego akumulatora. Przerzutnik pracując pobiera prąd o znacznym natężeniu (ze względu na niewielkie wartości rezystorów włączonych w kolektory Tl i T2), powodując rozładowanie akumulatora. Wartość prądu rozładowania zależy od wartości rezystorów Rl i R2 oraz indukcyjności cewki Li, a także częstotliwości pracy
Elektronika Praktyczna S/2003
41
MINIPROJEKTY
BIEGUN DODATKI
I Roztadowywua J
I
BIEGUN UJEMNY
Górski
Rys. 1. Schemat elektryczny r ozłoci o wy worki
multiwibratora. Wartości tych elementów muszą być tak dobrane, aby wartość prądu pobieranego przez rozładowy-warkę nie przekroczyła znamionowego prądu rozładowania akumulatora. Dioda Dl 1N4007 zapobiega wyładowaniu dołączonego akumulatora poniżej 0,9 V. Dioda LED D3
służy do sygnalizacji rozładowania. Jest ona zasilana z cewki Li, na której w wyniku samoindukcji pojawia się napięcie wystarczające do przekroczenia napięcia progowego diody.
Schemat montażowy urządzenia przedstawiono na rys. 2. Prosta konstrukcja urzą-
Rys. 2. Schemot montażowy płytki rozła do wywar ki
dzenia zapewnia łatwy montaż. Uruchomienie sprowadza się do sprawdzenia poprawności montażu i podłączenia akumulatora. Układ możemy z powodzeniem wykorzystywać jako tester akumulatorów. KG
Inteligentny sterownik wentylatora
Wentylatory są
powszechnie stosowane
do chłodzenia urządzeń
elektronicznych, gdy
zastosowanie radiatora
o odpowiednich
wymiarach nie jest
możliwe. Jeśli wentylator
pracuje prawidłowo, to
chłodzony układ pracuje
w dozwolonym zakresie
temperatury, jeśli jednak
wentylator zostanie
zatrzymany, układ może
się uszkodzić na skutek
przegrzania.
Rekomendacje:
sterownik umożliwia
nadzorowanie pracy
wentylatora
i sygnalizowanie jego
uszkodzenia lub
obniżenia wydajności
pracy.
Tab. 1. Zalecane wartości rezystora R4 w zależności od prądu pobieranego przez wentylator
Schemat elektryczny sterów nika-sygnalizat ora przedstawiono na rys. 1. Zastosowano w nim specjalizowany układ typu TC670. Jego schemat blokowy przedstawiono na rys. 2. Kontrola pracy wentylatora odbywa się poprzez pomiar jego prędkości obrotowej, który jest wykonywany z wykorzystaniem przetwornika częstotliwość-napięcie. Do pomiaru wykorzystywany jest spadek napięcia na rezystorze R4, który włączony jest szeregowo w obwód zasilania wentylatora. W zależności od nominalnego prądu pobieranego przez wentylator należy dobrać wartość rezystora R4.
Zalecane wartości znajdują się w tab. 1.
Sygnał z wejścia SEN-SE trafia na wejście przetwornika częstotliwość-napięcie, na wyjściu którego otrzymuje się napięcie o wartości proporcjonalnej do prędkości obrotowej wentylatora. Napięcie to jest podawane na wejście wewnętrznego komparatora. Porównuje on napięcie z wyjścia przetwornika częstotliwość-napięcie z napięciem podanym na wejście THRESHOLD. Dołączony do tego wejścia potencjometr PR umożliwia regulację czułości czujnika. Wyjście komparatora jest połączone z ukła-
BL
VCC
pn lOk
US1
CON3 VCC
Nomrakjy prtl wentylatora Zalecana wEfttseaniH
100 4,7
200 Z>4
300 1,8
400 1,3
500 1,0
600 0,8
TR 5EN5E
OND ALERT CLEAR VCC
TC870
=C+ 1OQn
U5S LM78LDS
VCC
MN4148
H-47U
a z (9
OUT
i m
n-4
WYKAZ ELEMENTÓW
Rezystory
Rl, Ró: 1.5O
R2, R5: 4,7kO
R3, R4: 150O
Kondensatory
Cl, C2: ÓSOnF
Półprzewodniki
Dl, D2: 1N4007
D3: dowolna dioda LED
Tl, T2: BD135
Różne
LI: ó,8mH
Płytka drukowana jest dostępna w A VT - oznaczenie AYT-1374.
Wzory płytek drukowanych w formacie PDF są dostępne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl sierpienQ3.htm oraz na płycie CD-EPS/2003 w katalogu PCB.
Rys. 1. Schemot elektryczny sygnalizatora pracy wentylatora
WYKAZ ELEMENTÓW
Rezystory
Rl: lkG
R2: lOkO
R3: 330O
R4: 4,7 O
Kondensatory
CL C2: 47^F/1ÓV
C3, C4: lOOnF
Półprzewodniki
Dl: 1N4148
D2: LED 3 mm okrggła-
czerwona
US1: TCÓ70
US2: LM78L05
Różne
CGN1, CON2: ARK2
(3,5mm)
CON3: golclpin 1x2 męski
S: mikrowłgcznik Płytka drukowana jest dostępna w AVT - oznaczenie AVT-1373.
Wzory płytek drukowanych w formacie PDF są dostępne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl sierpienQ3.htm oraz na płycie CD-EPS/2003 w katalogu PCB.
42
Elektronika Praktyczna S/2003
MINIPROJEKTY
THRESHOLD
będzie miał zbyt niski obroty, to tranzystor włączy diodę D2. Dioda będzie świeciła się do momentu wyzerowania alarmu przez zwarcie przycisku S.
Sygnalizator przeznaczony jest do kontroli pracy wentylatora Rys. 2. Budowa wewnętrzna układu o napięciu zasilania
TC67 równym 12 V, jednak
dem sterującym tranzystorem układ TC670 przystosowany wyjściowym. Jeśli wentylator jest do napięć zasilania z za-
kresu 3...5,5 V, dlatego konieczne stało się obniżenie napięcia z 12 V na 5 V. Do tego celu zastosowano stabilizator typu LM78L05.
Po zmontowaniu układu, do złącza CONl należy dołączyć napięcie zasilające, do złącza CON2 nadzorowany wentylator, a do złącza CON3 przycisk zerujący alarm. Potencjometr PR należy tak ustawić, aby dioda D2 nie zapalała się w czasie normalnej pracy wen-
Girder Plugln na USB
Zdalne sterowanie PC poprzez USB
Znany już
Czytelnikom EP Słowak
Igor Cesko stworzył
oprogramowanie dla
mikrokontrolerów AVR,
które emuluje interfejs
USB. Dzięki temu
w USB można
wyposażyć praktycznie
dowolny mikrokontroler
z rodziny AVR.
Przykładową
implementację Igor
wykonał na AT90S2313
oraz AT90S2323. Wersję
bardziej uniwersalną (na
2313) przedstawiamy
w artykule.
Przykładowa aplikacja to następca popularnego interfejsu do zdalnego sterowania PC (iittp://www.cesko.host.-sk/girderplugin .htm). Autor zachował identyczną funkcjonalność wersji USB z wersją współpracującą z interfejsem RS232, jedyną istotną różnicą jest konieczność zainstalowania specjalnego sterownika umożliwiającego współpracę PC z mikrokontrolerem AVR dołączonym do USB (pracuje w trybie Low Speed - 1,5 Mbd).
Schemat elektryczny przystawki pokazano na rys. 1. Rolę interfejsu RC->USB spełnia mikrokontroler ICl, którego pamięć zaprogramowano programem udostępnia-
a maksymalna częstotliwość taktowania AT90S2313-10 wynosi 10 MHz.
W zależności od posiadanych elementów jako czujnik podczerwieni można zastosować jeden z czterech typów (w wielu odmianach) detektorów zintegrowanych z soczewką, wzmacniaczem i filtrami.
Schemat montażowy płytki drukowanej (opracowanej przez I. Cesko) pokazano na rys. 2. Zamiarem autora było umieszczenie interfejsu w obudowie od typowego "klucza" USB.
Prezentowane urządzenie, podobnie do innych dołączanych do USB, wymaga zainstalowania odpowiednich dri-verów (dostępne bezpłatnie).
IC3TSOP18381ubSFH5110
3
vcc
n. p-nn~n-ous2 pr n
i Lu
O o
o
o -o LJtn
PTrTT-c 3 |
Rys. 3. Schemat montażowy płytki drukowanej
tylatora, a jedynie w momencie zmniejszenia jego obrotów. KP
Procedura instalacji jest szczegółowo opisana w dokumentacji umieszczonej pod adresem http://www.cesko.host-sk/down łoads/IgorPługUSBin-stallsteps.zip (publikujemy ją także na CD-EP8/2OO3B). GK
WYKAZ ELEMENTÓW
Rezystory
Rl: l,5kQ R2: 100Q R3, R4: lkQ Kondensatory
Cl: lOOnF C2: 10jiF/16V C3: 4,7^F/16V Półprzewodniki
ICl: AT90S2313-10
(zaprog ra m owa ny
programem usb90s23x3.hex)
IC2: TSOP17xx lub SFH506-xx
alternatywnie z IC3
IC3: TSOP1838 lub SFH5110
alternatywnie z IC2
Dl, D2: diody LED
Różne
XCI: złgcze krawędziowe
USB-A
XT1: kwarc 12 MHz
Płytka drukowana jest dostępna w AVT - oznaczenie AVT-137S.
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: h ttp ://www. ep.com.pl/?p dfl sierpienO3.htm oraz na płycie CD-EP8/2003 w katalogu PCB.
Artykuł powstał na bazie materiałów udostępnionych przez Igora Cesko (h ttp:// www.cesko.host.sk/) i za je-
nym bezpłatnie przez autora projektu (komplet oprogramowania i dokumentacji publikujemy także na CD-EP8/2OO3B). Należy zwrócić uwagę, że mikrokontroler jest przetaktowany - zastosowano bowiem kwarc o częstotliwości rezonansowej 12 MHz,
Elektronika Praktyczna 8/2003
43
MINIPROJEKTY
Screaming Bird - przystawka do gitary elektrycznej
Projekty dla
gitarzystów publikujemy
stosunkowo rzadko, stąd
nasza duża dbałość
o dobór tematów.
Prezentowany projekcik
jest łatwy w wykonaniu
wzmacniaczem do gitary
elektrycznej z nieco
zmodyfikowaną
charakterys tyką
częstotliwościową.
Pierwowzorem prezentowanego urządzenia jest sprawdzone przeze mnie opracowanie Electro Harmonix, dostępne na rynku pod nazwą EH Screaming Bird. Jej działanie polega na wyostrzeniu brzmienia wyższych składowych sygnału pobieranego z przetwornika gitary, co nadaje jej brzmieniu nieco "ptasiego" polotu.
Schemat elektryczny przystawki pokazano na rys. 1. Jest to - jak na współczesne stan-dardy - układ zaskakująco prosty, ale - jak wykazały próby - skuteczny w działaniu. Jest on przystosowany do za-
silania z typowej w zastosowaniach "gitarowych" baterii 9 V. Na płytce drukowanej (jej schemat montażowy pokazano na rys. 2) przewidziano miejsca na typowe gniazda chinch, stosowane w sprzęcie audio. Nie jest to typowe - jak na aplikacje "gitarowe" - złącze, w związku z czym można je zastąpić klasycznymi dużymi Jackami, dzięki czemu nie będzie konieczne stosowanie dodatkowego włącznika zasilania przystawki.
Z montażem poradzą sobie bez trudu najmniej doświadczeni konstruktorzy, nie powinien on sprawić
Rys. 1
Rys. 2
Gitarowy DiFuzz
Pierwowzorem
prezentowanego efektu
gitarowego jest
konstrukcja Jacka
Ormana. Sprawdzony
"w boju" fuzz przyda
się z pewnością
początkującym
gitarzystom, którzy
z oczywistych przyczyn
lubią efekty tego typu.
Schemat elektryczny przystawki pokazano na rys. 1. Składa się ona z jednostop-niowego wzmacniacza z tranzystorem Tl, z wyjścia którego jest sterowany wzmacniacz różnicowy T2, T3. Na bazę tranzystora T2 jest podawany sygnał bezpośrednio z kolektora Tl, natomiast na bazę T3 sygnał nieco przesunięty w fazie. Powoduje to miękkie podcinanie "krawędzi" sygnału wyjściowego, dzięki czemu brzmienie prezentowanego fuzzajest znacznie lepsze niż w przypadku klasycznych "obcinaćzy" . Urządzenie powinno być za-
silane z baterii 9 V. Jako gniazda Gnl i Gn2 można zastosować typowe w takich zastosowaniach duże Jacki stereofoniczne. Ze względu na wygodę montażu i bezpieczeństwo eksploatacji ich montaż zalecamy bezpośrednio na obudowie urządzenia, a nie na płytce drukowanej. Na rys. 2 pokazano schemat montażowy płytki drukowanej. Jest to druk jednostronny, o niezbyt dużej gęstości upakowania. Dzięki bardzo małej liczbie zastosowanych elementów, montaż przystawki jest prosty, a jego uruchomienie sprowadza się
Rys. 1
trudności także tym gitarzystom, którzy nie zajmują się elektroniką zbyt poważnie. Jarek Jaskulski
WYKAZ ELEMENTÓW
Rezystory
Rl: 430kQ
R2: 10kQ
R3: lOOka
R4: 43kQ
R5: 390Q
Kondensatory
Cl, C2: 2,2nF
Półprzewdoniki
Tl: BC413C
Różne
Gnl, Gn2: chinch do druku
lub duży Jack stereo
(montowany na obudowie)
Płytka drukowana jest dostępna w AVT - oznaczenie AVT-1379.
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/7pdf/ sierpienO3.htm.
zazwyczaj wyłącznie do podłączenia: zasilania, gitary i wzmacniacza. Jarek Jaskulski
WYKAZ ELEMENTÓW
Rezystory
Rl: 1MQ R2, R7: lOOka R3: 470kQ R4: 6,8kQ
R5: lkQ...100kQ (dobrać
w zależności od
oczekiwanego efektu
dźwiękowego)
R6: lka
Kondensatory
Cl, C4, C5: lOOnF
C2: lOnF
C3: 10^F/16V
Półprzewodniki
Tl: BC413C
T2, T3: 2N3906
Różne
Gnl, Gn2: chinch do druku
lub duży Jack stereo
(montowany na obudowie)
Płytka drukowana jest dostępna w AVT - oznaczenie AVT-13S0.
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/7pdf/ sierpienO3.htm.
44
Elektronika Praktyczna 8/2003
PROJEKTY
"Klocki" RS485, część 3
W trzeciej części ańykuiu
przedstawiamy dwie karty
wyjść cyfrowych, za pomocą
których w systemie RS485
można sterować pracą
urządzeń zasilanych
napięciami o wańości nie
większej niż 50 V.
Rekomendacje: te "klocki"
RS485 polecamy szczególnie
tym Czytelnikom, którzy
muszą przesyłać dane na
duże odległości z relatywnie
dużą prędkością.
Klocki RS485 to:
- AVT-530 - konwerter RS232<->RS485,
- AVT-531 -kartaprzekaźników,
- AVT-532-kartatriaków,
- AVT-533 - kart a wyjść cyfrowych (aktywne GND),
- AVT-534 - kart a wyjść cyfrowych (aktywne VCC),
- AVT-535-kartawejśćcyfrowych,
- AVT-536-8-wejściowakartawejść analogowych,
- AVT-537-4-cyfrowywyświetlacz LED,
- AVT-538-32-znakowy wyświetlacz LCD.
Karta wyjść cyfrowych (stan aktywny GND] AVT-533
Karta wyjść cyfrowych (z aktywnym stanem GND) ma osiem wyjść typu otwarty kolektor, z maksymalnym prądem obciążenia 0,5 A. Napięcie podane na wyjście karty może wynosić do 50 V. W układzie wyjściowym są zastosowane diody zabezpieczające, co umożliwia bezpośrednie sterowanie elementami z indukcyjnościami, na przykład przekaźnikami. Karta pozwala na komunikację dwustronną, dzięki czemu można sprawdzić stan wszystkich wyjść.
Budowa
Schemat elektryczny karty cyfrowych wyjść przedstawiono na rys. 9. Jej głównym elementem jest mikiokontioler PIC16F84A, który odpowiada za odbiór oraz nadawanie danych w standardzie RS485 oraz - w zależności od odebranych danych - odpowiednio steruje układem wykonawczym. Procesor pracuje z zewnętrznym rezonatorem kwarcowym o częstotliwości 4 MHz. Do zerowania procesora zastosowano specjalizowany generator sygnału zerującego DS1813 (US3).
Jako układ wykonawczy zastosowano układ scalony typu ULN2803A (US4). Zawiera on osiem kluczy tranzystorowych wraz z rezystorami wejściowymi (schemat pojedynczego stopnia
wyjściowego układu ULN2803A przedstawiono na rys. 10). Obwód wyjściowy każdego tranzystora jest zabezpieczony przez wewnętrzne diody przed uszkodzeniem, w przypadku sterowania odbiornikiem indukcyjnym. Diody te zwierają napięcia wyższe niż napięcie panujące na wyprowadzeniu COM. Układ nadaje się więc do sterowania przekaźnikami bez konieczności stosowania zewnętrznych diod. Jeśli karta będzie wykorzystana do sterowania przekaźnikami, to na wejście COM należy podać plus napięcia zasilającego te przekaźniki. Maksymalne napięcie podane na kolektory tranzystorów wyjściowych układu ULN2803A wynosi 50 V, a maksymalny prąd przewodzenia pojedynczego tranzystora wynosi 500 mA. Nie należy jednak przekraczać maksymalnej mocy całego układu, która wynosi 1150 mW. Za konwersję poziomów sygnałów pojawiających się w linii transmisyjnej na poziomy TTL odpowiada układ MAX485 (US2). Dokonuje on również konwersji z poziomów TTL na poziomy RS485. W czasie spoczynku układ ten znajduje się w trybie odbiornika, ponieważ na wejściach DE i !RE występuje poziom niski wymuszony przez wyjście procesora. Przełączenie układu MAX485 w tryb nadawania następuje tylko na czas wysyłania danych przez kartę wyjść cyfrowych, a następnie zostaje przywró-
46
Elektronika Praktyczna S/2003
US1 PIC16F84A
RAO
RA1
RA2
RA3
RA4/T0CKI
MCLR
OSC2/CLKOJT
OSC1/CLKIN
ca
"30p
US3 DS1813
1 OUT

RBO/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7<
CON7
D1 1N4007
9V
10
13
C1 220\i
Rys. 9. Schemat elektryczny karty cyfrowych wyjść (stan aktywny 0V)
US4 UDN2803A
INI OUT1
IN2 0JT2
IN3 OJT3
IN4 OJT4
IN5 OJT5
IN6 OWT6
IN7 01/17
IN8 O\JTB
GND COM
US5 7905
-C2 100n
18
16
15
13
"Klocki" RS485
OUT
QND
CON1
CON2
CON3
COM4
CON5
OUT1 OUT2
OUT3 OUT4
OUT5 OUT6
OUT7 OUT8
vee
o
C3 100|J
_C4
"lOOn
cony tryb odbioru, aby nie blokować linii transmisyjnej.
Dodatkowy rezystor R3 służy do dopasowania linii i powinien być zamontowany tylko w jednym module, najbardziej oddalonym od nadajnika (konwertera RS23 2<->RS485). O jego montażu należy jednak zdecydować po podłączeniu wszystkich modułów, gdyż w czasie testów okazał się zbędny. Zworka JPl służy do zmiany podstawowego adresu, pod którym będzie zgłaszała się karta wyjść cyfrowych. Natomiast zworka JP2 umożliwia powrót do podstawowego adresu urządzenia. Rezystory Rl i R2 spełniają rolę rezystorów podciągających wejścia RA3 i RA4 do plusa zasilania. Opis zmiany podstawowego adresu karty wyjść cyfrowych zostanie przedstawiony w dalszej części artykułu, gdyż dla wszystkich modułów przebiega w taki sam sposób.
Do stabilizacji napięcia zasilającego zastosowano monolityczny stabilizator typu LM7805, natomiast do filtracji napięcia zastosowano kon-
WEJŚCE
Rys. 10. Budowa pojedynczego stopnia wzmacniacza zawartego w układzie ULN2803A
densatory C1...C4. Dioda Dl zabezpiecza stabilizator przed uszkodzeniem w przypadku podania napięcia o odwrotnej polaryzacji.
Montaż
Montaż karty wyjść cyfrowych (schemat montażowy pokazano na rys. 11) należy rozpocząć od wlu-towania rezystorów (bez rezystora R3*), w następnej kolejności montujemy podstawki pod układy scalone i kondensatory. Na samym końcu należy wlutować stabilizator napięcia i złącza. Do złącza CON7 trzeba dołączyć przewody zasilacza o napięciu około 9 V (100 mA). Złącza CON1...CON4 są wyjściami karty i do nich należy podłączyć układy sterowane przez kartę. Do złącza CON5 należy dołączyć masę układów sterowanych. Na tym złączu znajduje się także wyprowadzenie COM układu ULN2803A i jeśli układ ma być zastosowany do sterowania obciążeniem indukcyjnym, np. przekaźnikiem, to do tego wyprowadzenia należy podłączyć plus napięcia zasilającego przekaźniki. Wyeliminuje to konieczność stosowania diod zabezpieczających układ ULN2803A przed uszkodzeniem w czasie przełączania przekaźnika. Do złącza CON6 należy podłączyć przewody wspólnej dla wszystkich modułów magistrali, zwracając przy tym uwagę na sposób podłączenie (A do A, B do B).
Obsługa karty wyjść cyfrowych
Karta wyjść cyfrowych ma adres odpowiadający znakowi "3" w kodzie ASCII, dlatego jakiekolwiek działania jej dotyczące mogą być wykonane po podaniu tego adresu. Stan wyjść może być zmieniany pojedynczo, niezależnie dla każdego wyjścia lub grupowo po podaniu w jednym pakiecie danych stanów wszystkich wyjść. Możliwy jest także odczyt stanu dowolnego wyjścia, jak również wszystkich jednocześnie.
? o ó O ó O ó O ó s
-o -o CM 1 1 3 3 INOO " i 3 S znoo u> co 1 1 3 3 ENO3 O-a-
5N03
OOOOOOOOOO
vsn
oo
?oooooooo
fl
o
i O OWO
DC DC
Zdf
oo
o
o o -idr o
OOOOOOOOD OOOD
o
isn
zsn
ii ooooooooo ra] goooo
D v-----x "UJ
?
Rys. 11. Schemat montażowy płytki wyjść cyfrowych
Elektronika Praktyczna 8/2003
47
"Klocki" RS485
WYKAZ ELEMENTÓW
Rezystory
Rl, R2: lOkft
R3#: 12CO według opisu
Kondensatory
Cl: 220u.F/25V
C2, C4: lOOnF
C3; 100u.F/lóV
C5, Có: 30pF
C7: 47u.F/lóV
CS: lOOnF
Półprzewodniki
Dl: 1N4007
US1: PIC16FS4A zaprogramowany
US2: MAX4S5
US3: DS1S13
US4: ULN 2S03A
US5: LM7S05
Różne
CON1...CON7: ARK2(5mm)
JP1, JP2: goldpin 1x2 + jumper
Xl: kwarc 4MHz
Podstawka DIPS- 1 szt., DIP1S- 2szt.
Każda komenda rozpoczyna się od znaku ESC (klawisz Escape na klawiaturze), następnie należy podać adres karty i rozkaz, jaki ma być wykonany. Zestawienie wszystkich komend umożliwiających sterowaniem kartą wyjść cyfrowych oraz przykładowe polecenia i reakcję na nie karty przedstawiono w tab. 4.
Karta wyjść cyfrowych (stan aktywny VCCJ AVT-534
Karta wyjść cyfrowych (stan aktywny VCC) posiada osiem wyjść typu otwarty emiter, co umożliwia sterownie napięciem zasilania VCC. Maksymalny prąd wyjściowy wynosi 0,5 A, a napięcie załączania 50 V. Dodatkowo w układzie wyjściowym zastosowane są diody zabezpieczające, co umożliwia bezpośrednie sterowanie układami indukcyjnymi, na przykład przekaźnikami. Karta umożliwia komunikację dwustronną, dzięki czemu można sprawdzić stan wszystkich wyjść.
Budowa
Schemat elektryczny karty cyf-jowych wyjść przedstawiono na rys. 12. Jej głównym elementem jest mikroprocesor PIC16F84A, który odpowiada za odbiór oraz nadawanie danych oraz steruje układem wykonawczym. Procesor
Tab. 4. Zestawienie wszystkich komend umożliwiających sterowanie kartą wyjść cyfrowych (aktywne GND)
Rodzaj komendy Wydana komenda Reakcja karty wyjceee cyłowych
Podanie masy na jedno wyjście ESC 3nwann1 nerter n-numer wyjścia (1...B) Podanie masy na wyjście onnumerze "n" n=1...B (odpowiednio 1=wyjście 1, 2=wyjście 2 itd.)
Przykład: ESC3nwD3n1nErter Podanie masy na wyjście numer 3n
Ustawienie stanu wysokiej impedancji ESC 3nwDnnODEnter n-numer wyjścia (1...B) Ustawienie stanu wysokiej impedancji na wyjściu onnumerze "n"; n=1...B (odpowiednio 1=wyjście 1, 2=wyjście 2 itd.)
Przykład: ESC 3nwD4nODEnter Ustawia stan wysokiej impedancji na wyjściu onnumerze 4
Ustawienie stanów wszystkich wyjść jednocześnie ESC 3nwnans1s2s3s4s5s6s7sB enter s1...sB mogą być równe 0 lub 1n(ASCII) Ustawia stany dla wszystkich wyjść jednocześnie. Parametry s1...sB odpowiadają stanom odpowiednich wyjść (si odpowiada stanowi wyjścia 1, s2 stanowi wyjścia 2 itd.). Parametr "s" równy 1 (ASCII) powoduje podanie stanu masy, anrówny 0 (ASCII) ustawienie wysokiej impedancji
Przykład: ESC 3nwnan11110000 enter Podaje stan masy na wyjściach onnume-rach 1...4 inustawia stany wysokiej impedancji na wyjściach onnumerach 4...B.
Odczyt stanu jednego wyjścia ESC 3nrnnDEnter n-numer wyjścia (1...B) Zwraca informację odstanie wskazanego wnparametrze "n" wyjścia. Jeśli wyjście jest wnstanie GND, to zwraca 1 (ASCII), jeśli wnstanie wysokiej impedancji, to 0 (ASCII)
Przykład: ESC 3nrn5nenter Odczytuje stan wyjścia onnumerze 5
Odczyt stanów wszystkich wyjść ESC 3nrnaDEnter Zwraca informację odstanie wszystkich wyjść, do modułu sterującego wysyłane jest Bnznaków. Jeśli wyjście jest wnstanie GND, to zwraca 1 (ASCII), jeśli wnstanie wysokiej impedancji, to On(ASCII).
Przykład: ESC 3nrnaDEnter Odczytuje stany wszystkich wyjść
pracuje z zewnętrznym rezonatorem o częstotliwości 4 MHz, a do jego zerowania zastosowano specjalizowany układ DS1813 (US3). Jako układ wykonawczy zastosowano układ typu UDN2981A (US4), układ ten zawiera osiem
stopni wzmacniających, które umożliwiają załączanie dodatniego napięcia o maksymalnej wartości 50 V. Niezależnie od wartości napięcia zasilania tranzystorów wyjściowych, na wejście stopnia wzmacniającego można poda-
48
Elektronika Praktyczna S/2003
"Klocki" RS485
vcc
CON6
US1 PIC16F84A
US4 UDN2981A
CON1
18
JP1
/JP2~
MCLR
15
X1 4MHz
C5 30p
RAO RAI RA2 RA3 RA4/TOCKI
MCLR
OSC2/CLKOUT
OSC1/CLKIN
RB0/INT< RB1 RB2 RB3 RB4 RBS RB6 RB7<]
10 5
1g 7
13 8
C6 "30p
IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8
vcc
OUT1 OUT2 OUT3
0UT4 OUT5 0UT6 0UT7 0UT8 GND
18
CON2
16
13
10
CON3
CON4
CON5
OUT1 OJT2
OIJT3 OUT4
OUT5 OUT6
OJT7 OJTB
US3 DS1S13
1 OJT

D1 CON7 1N4007
9V
USS 7805
VCC
O
C1 220m
C2 ~100n
OLJT
GND
C3 100m:
_C4
"lOOn
Rys. 12. Schemat elektryczny karty wyjść cyfrowych (stan aktywny plus zasilania)
wać napięcie z zakresu 0...5 V. Wyjście każdego stopnia jest zabezpieczone przed uszkodzeniem przez wewnętrzne diody w przypadku sterowania odbiornikiem o dużej indukcyjności. Diody te zwierają napięcia niższe niż napięcie masy (GND), doskonale nadają się więc do sterowania przekaźnikami bez konieczności stosowania dodatkowych zewnętrznych diod. Maksymalne napięcie zasilania tranzystorów wyjściowych układu ULN2981A wy-
WYKAZ ELEMENTÓW
Rezystory
Rl, R2: 10kO
R3*: 120O według opisu
Kondensatory
Cl: 220^F/25V
C2, C4: lOOnF
C3: 100^F/16V
C5, Có: 30pF
C7: 47^F/1ÓV
C8: lOOnF
Półprzewodniki
Dl: 1N4007
US1: PIC16F84A zaprogramowany
US2: MAX485
US3: DS1813
US4: UDN 2981A
US5: LM7805
Różne
CON1...CON7: ARK2(5mm)
JP1, JP2: goldpin 1x2 + jumper
Xl: kwarc 4MHz
Podstawka DIP8 1 szt., DIP18 2szt.
nosi 50 V, a maksymalny prąd przewodzenia przez pojedynczy tranzystor wynosi 500 mA. Nie należy jednak przekraczać maksymalnej mocy całego układu, która wynosi 1150 mW.
Za konwersję sygnałów p oja-wiających się w linii transmisyjnej na standard TTL odpowiada układ MAX485 (US2), dokonuje on również konwersji z poziomów TTL na poziomy RS485. W czasie spoczynku układ ten znajduje się w trybie odbiornika, ponieważ na wejściach DE i !RE panuje stan niski wymuszony przez wyjście procesora. Przełączenie w tryb nadawania układu MAX485 następuje tylko na czas wysyłania danych przez kartę wyjść cyfrowych, a następnie zostaje przywrócony tryb odbioru, aby nie blokować linii transmisyjnej.
Dodatkowy rezystor R3 służy do dopasowania linii i powinien być zamontowany tylko w jednym module, najbardziej oddalonym od nadajnika (konwertera RS23 2<->RS485). O jego montażu należy jednak zdecydować po podłączeniu wszystkich modułów, gdyż w czasie testów okazał się zbędny. Zworka JPl służy do zmiany podstawowego adresu, pod którym będzie zgłaszała się karta wyjść cyfrowych. Natomiast zworka JP2 umożliwia powrót do podstawowego adresu urządzenia. Rezystory Rl i R2 służą jako rezystory podciągające wejścia RA3 i RA4 do
plusa zasilania. Opis zmiany podstawowego adresu karty wyjść cyfrowych zostanie przedstawiony w dalszej części artykułu, gdyż dla wszystkich modułów przebiega w taki sam sposób.
Do stabilizacji napięcia zasilającego zastosowano monolityczny stabilizator typu LM7805, natomiast do filtracji napięcia zastosowano kondensatory C1...C4. Dodatkowa dioda Dl zabezpiecza stabilizator przed uszkodzeniem w przypadku podania napięcia o odwrotnej polaryzacji.
?
?
I Lo>Sjoóó.5nr
o o o o o ? ooo arh
O-
o-
?
Rys. 13. Schemat montażowy karty wyjść cyfrowych
Elektronika Praktyczna 8/2003
49
"Klocki" RS485
Montaż
Montaż elementów karty cyfrowych wyjść (rys. 13) należy rozpocząć od wlutowania rezystorów (bez rezystora R3). W następnej kolejności lutujemy podstawki pod układy scalone i kondensatory. Na samym końcu należy wlutować stabilizator napięcia i złącza. Do złącza CON7 należy dołączyć przewody zasilacza o napięciu około 9 V (100 mA), Złącza CON1...CON4 są wyjściami karty wyjść cyfrowych i do nich należy podłączyć układy sterowane przez kartę. Do złącza CON5 należy doprowadzić masę układów sterowanych i plus zasilania układu UDN2981A. W przypadku uaktywnienia danego wyjścia, na wyjściu tym będzie panowało napięcie o wartości podanej na wejście VCC układu UDN2981A.
Linię magistrali RS485 należy podłączyć do złącza CON6, zwracając przy tym uwagę na sposób podłączenia (A do A, B do B).
Obsługa karty wyjść cyfrowych
Karta wyjść cyfrowych posiada adres równy znakowi "4" (ASCII), dlatego jakiekolwiek działania jej dotyczące mogą być wykonane po podaniu tego adresu. Stan wyjść może być zmieniany pojedynczo, niezależnie dla każdego wyjścia lub grupowo przez podanie w jednym pakiecie danych stanów wszystkich wyjść. Dodatkowo możliwy jest także odczyt stanu dowolnego wyjścia, jak również wszystkich jednocześnie. Każda komenda rozpoczyna się od znaku "ESC" (klawisz Escape na klawiaturze), następnie należy podać adres karty i rozkaz,
Tab. 5. Zestawienie wszystkich komend umożliwiających sterowanie kartą wyjść cyfrowych (aktywne VCC)
Itodzaj komendy Wydana komenda feakga karty wyoeee cyftowych
Podanie plusa na jedno wyjście (VCC) ESC 4nwnnn1nerter n-numer wyjścia(1...8) Podanie plusa zasilania na wyjście onnu-merze "n" n=1...8 (odpowiednio 1=wyjście 1, 2=wyjście 2, itd.)
Przykład: ESC 4nwn3n1nerter Podanie plusa zasilania na wyjście numer 3n
Podanie stanu wysokiej impedancji na jedno znwyjść ESC 4nwnnn0nerter n-numer wyjścia (1...8) Podanie stanu wysokiej impedancji na wyjście onnumerze "n"; n=1...8 (odpowiednio 1=wyjście 1, 2=wyjście 2, itd.)
Przykład: ESC 4nwn4n0nerter Podaje stan wysokiej impedancji na wyjście onnumerze 4
Ustawienie stanów wszystkich wyjść jednocześnie ESC 4nwnans1s2s3s4s5s6s7s8 enter s1...s8 mogą być równe 0 lub 1 ?(ASCII) Ustawia stany dla wszystkich wyjść jednocześnie. Parametry s1...s8 odpowiadają stanom odpowiednich wyjść (s1 odpowiada stanowi wyjścia 1, s2 stanowi wyjścia 2 itd.). Parametr "s" równy 1 (ASCII) powoduje podanie stanu wysokiego (VCC), anrówny 0 (ASCII) stanu wysokiej impedancji.
Przykład: ESC 4nwnan11110000 enter Podaje stan plusa na wyjściach onnume-rach 1...4 instanów wysokiej impedancji na wyjściach onnumerach 4...8.
Odczyt stanu jednego wyjścia ESC 4nrnnnenter n-numer wyjścia (1...8) Zwraca informację onstanie wskazanego wnparametrze "n" wyjścia. Jeśli wyjście jest wnstanie wysokim (VCC), to zwraca 1 (ASCII), jeśli wnstanie wysokiej impedancji, to 0 (ASCII)
Przykład: ESC 4nrn5nen1er Odczytuje stan wyjścia onnumerze 5
Odczyt stanów wszystkich wyjść ESC 4nrnanenler Zwraca informację onstanie wszystkich wyjść, do modułu sterującego wysyłane jest 8nznaków. Jeśli wyjście jest wnstanie wysokim (VCC), to zwraca 1 (ASCII), jeśli wnstanie wysokiej impedancji, to On(ASCII).
Przykład: ESC 4nrnanenler Odczytuje stany wszystkich wyjść
jaki ma być wykonany. Zestaw wszystkich komend umożliwiających sterowaniem kartą wyj ść cyfrowych oraz przykładowe polecenia i reakcja karty na nie jest przedstawiony w tab. 5. Krzysztof Pławsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/sierpienO3Jitm oraz na płycie CD-EP8/2003B w katalogu PCB.
50
Elektronika Praktyczna 8/2003
PROJEKTY
Wzmacniacz semi-surround do komputera część 2
AVT-516
PC,
Wszyscy lubimy
uszlachetniać nasze
komputery, zwłaszcza że
spędzamy przy nich bardzo
dużo czasu. Powodzenie
wcześniejszych wersji
wzmacniaczy do PC zachęciło
nas do opracowania
unowocześnionej, znacznie
bardziej efektownej wersji
takiego urządzenia,
o możliwościach adekwatnych
do współczesnych wymagań
u żytko wnikó w.
Rekomendacje: projekt
polecamy wszystkim
u żytko wnikom PC,
a zwłaszcza tym, którzy
dbają o jego muItimedialne
walory użytkowe.
Prezentowany wzmacniacz
może być także doskonałym
elementem nowoczesnej
stylizacji komputera -
z użyciem lamp
fl u ore scen cyjn ych
i podświetlanych wentylatorów.
Działanie i obsługa wzmacniacza
Po włączeniu zasilania najpierw są inicjowane porty mikio-kontiolera PIC16F76 i zależnie od ustawienia zworki ZW inicjowany jest wyświetlacz VFD lub LCD. Następnie sprawdzane jest czy jest to pierwsze uruchomienie układu (lub uruchomienie po wymianie pamięci EEPROM). Jeżeli tak jest, to pierwsze 20 komórek pamięci EEPROM (układ U7) jest zerowanych, i pod adresy 7 i 8 wpisywana jest wartość 40. Jest to wartość początkowa temperatur uży w ana przez funkcj e temp 1 i temp2. Jeżeli jest to kolejne uruchomienie wzmacniacza to procedura inicjalizacji EEPROM jest pomijana. Kolejnym krokiem jest przesłanie do procesorów Ul i U2 ustawień zapisanych w pamięci EEPROM: wartość głośności, regulacje basów, tonów wysokich i obu układów dźwięku przestrzennego surroundl i surround2 tak żeby wszystkie te ustawienia miały taką wartość jak przed wyłączeniem wzmacniacza. Z pamięci EEPROM odczytywana jest informacja o trybie pracy wzmac-
niacza: CD-ROM lub Quadio i odpowiednio ustawiany jest stan linii portu RCO, która steruje przełącznikiem wejść torów 1 i 2 wzmacniacza. Procedurę inicjalizacji wzmacniacza kończy zaprogramowanie dwu układów termostatów wartością odczytaną z komórek 7 i 8 EEPROM, po czym wyświetlany jest przez 2 sekundy napis AVT PC AMPLIFIER.
Po rozpoczęciu działania pętli głównej programu sterującego wyświetlana jest wartość głośności np. Yolume -lOdB Fu i program oczekuje na obrót lub przyciśnięcie osi impulsatora. Obrót osi w prawo powoduje zwiększenie głośności (czyli zmniejszenie tłumienia wyrażonego w dB), a obrót w lewo zmniejszenie głośności. Po osiągnięciu wartości OdB dalsze obracanie osią w prawo nie wywołuje żadnego działania i analogicznie - po osiągnięciu -84dB obracanie w lewo nie powoduje zmiany głośności. Trzeba pamiętać, że na wyświetlaczu pokazywana jest wartość tłumienia torów 1 i 2. Jeżeli za pomocą funkcji vol 1,2 i vol 3,4 zostaną ustawione różne poziomy tłumienia w kana-
Elektronika Praktyczna S/2003
51
Wzmacniacz semi-surround do komputera PC
ALM
VDD
GND1
SCL
SDA
SCL
GND
, VDD
U1 TCN75
SDA SGL
INT/GMFTR GND
VDD AO
A2
R2 3k3
Rys. 5. Schemat elektryczny modułu pomiaru temperatury
łach 1,2 i 3,4, to w kanałach 3 i 4 tłumienie będzie się zmieniało współbieżnie z tłumieniem w kanałach 1 i 2. Również tutaj po osiągnięciu wartości skrajnych dalsze obracanie osią nie zmieni regulowanych wartości. Takie rozwiązanie umożliwia ustawienie różnej głośności pomiędzy parą głośników przednich i tylnych, czyli coś w rodzaju balansu. Układ BH3857 nie ma możliwości ustawiania różnej głośności (tłumienia) w każdym ze swoich kanałów, dlatego nie przewidziano możliwości regulacji balansu lewa
- prawa strona.
Po obróceniu osi impulsatora nowe wartości tłumienia są wpisywana do układów Ul i U2 i zapisywane do pamięci EEPROM. Na wyświetlaczu jest wyświetlana nowa wartość tłumienia dla kanałów 1 i 2.
Przyciśnięcie osi impulsatora umożliwia wejście do menu funkcji sterownika wzmacniacza i wybranie jednej z 9 funkcji:
- regulacja głośności w kanałach 1 i 2 - funkcja Vol 1,2,
- regulacja głośności w kanałach 3 i 4 - funkcja Vol 3,4,
- regulacja tonów niskich całego wzmacniacza - funkcja Bass,
- regulacja tonów wysokich całego wzmacniacza - funkcja Treble,
- włączenie (lub wyłączenie) układu dźwięku przestrzennego sur-round 1 - funkcja Surr.l,
- włączenie (lub wyłączenie) układu dźwięku przestrzennego sur-round 2 - funkcja Surr.2,
- ustawienie trybu pracy CD-ROM/quadro - funkcja Ch 2/4,
- ustawienie temperatury 1 - funkcja Templ,
- ustawienie temperatury 2 - funkcja Temp 2,
- odczytanie temperatury 1 - funkcja Termometr.
Po wejściu do menu funkcyjnego wyświetlana jest ostatnio wybrana funkcja np. Ch 2/4. Kręcenie osią impulsatora powoduje sekwencyjne wyświetlanie kolejnych funkcji. Po przyciśnięciu osi rozpoczyna się wykonywanie funkcji, której nazwa jest właśnie wyświetlana.
Funkcja Vol 1,2 reguluje głośność w kanałach li 2 (głośniki przednie). Po jej wybraniu na ekranie pojawia się np. Vol 1,2 -36dB. Kręcąc osią impulsatora ustawia się wartość tłumienia dokładnie tak samo jak przy regulacji głośności w pętli głównej programu. Zmieniana wartość jest wyświetlana, przesyłana go układu Ul i zapamiętywana w pamięci EEPROM. Przyciśnięcie osi kończy funkcję i program przechodzi do pętli głównej.
Funkcja Vol 3,4 działa podobnie jak funkcja Vol 1,2. W trakcie jej wykonywania ustawiane wartości tłumienia są wpisywane do układu U2 i regulują głośność w kanałach 3i 4 (głośniki tylne). Jeżeli w głośnikach przednich zostanie ustawiona większa głośność niż w tylnych, to w czasie regulacji głośności w pętli głównej ta różnica zostanie zachowana.
Regulacja barwy tonów obejmuje jednocześnie wszystkie kanały. Oznacza to, że na przykład ustawienie tonów niskich powoduje wpisanie regulowanej wartości do obu procesorów jednocześnie.
Tony niskie ustawiane są po wywołaniu funkcji Bass - na wyświetlaczu pojawia się np.: Bass +02dB. Tony niskie reguluje się przez kręcenie osią impulsatora od -15dB do +15dB. Obrót w lewo powoduje zwiększenie tłumienia, a obrót w prawo podbijanie niskich częstotliwości. Nowa wartość po obróceniu osi jest wyświetlana na wyświetlaczu, wpisywana do układów Ul i U2, następnie zapisywana do pamięci EEPROM. Wyjście z menu ustawiania jest możliwe po przyciśnięciu osi impulsatora.
Regulacja tonów wysokich działa podobnie. Po wywołaniu funkcji Treble na wyświetlaczu pojawia się np. Treble +04dB. Przez obracanie osią impulsatora regulować poziom (tłumienie lub podbijanie) wyższych częstotliwości. Ustawiona wartość jest wpisywana do obu procesorów i zapisywana w pamięci EEPROM. Przyciśnięcie osi impulsatora kończy działanie tej funkcji.
Następne dwie funkcje Surrl i Surr2 umożliwiają włączenie lub wyłączenie układów dźwięku do-okólnego surround. Jak to już zostało powiedziane procesor BH3857 ma wbudowane dwa niezależne układy surround. Po wywołaniu funkcji Surrl można włączyć lub wyłączyć pierwszy z tych układów: SURRl ON. Przez krę-
Rys. 6. Rozmieszczenie elementów na płytce do pomiaru temperatury
52
Elektronika Praktyczna 8/2003
Wzmacniacz semi-surround do komputera PC
WZMACNIACZ SDA SCL ALM +5VD D GND


tempi SDA SCL ALM +5VD D_GND temp2 WEN SDA SCL ALM +5VD D_GND








Wentylator
Rys. 7. Podłączenie czujników temperatury do wzmacniacza
cenie osią impulsatora można ustawić włączenie ON lub wyłączenie OFF układu. Każda z nastaw jest wpisywana na bieżąco do obu procesorów i zapamiętywana w pamięci EEPROM. Przyciśnięcie osi impulsatora kończy działanie funkcji. Włączenie lub wyłączenie drugiego układu sur-round realizowane jest tak samo za pomocą funkcji Surr2.
Wzmacniacz może pracować w dwu trybach: tryb z czterema kanałami umownie nazwany trybem Quadro i tryb z dwoma kanałami umownie nazwany trybem CD-ROM. W trybie Quadro sygnał z wejść IN1...IN4 jest poddawany regulacjom przez układy procesorów Ul i U2 i podawany na wejścia wzmacniacza mocy U3. W trybie CD-ROM na wejścia procesora Ul podawany jest stereofoniczny sygnał z toru cyfrowego (układy U5 i U4), a wejścia INI i IN2 są odłączone przez styki przekaźnika Przl. Po przełączeniu w tryb CD-ROM sygnał z wejść IN3 i IN4 jest automatycznie wyciszany [mute) przez układ procesora U2.
Wybór trybu pracy jest dokonywany za pomocą funkcji Ch2/ 4. Po jej wywołaniu na ekranie wyświetlany jest napis MODĘ CD-ROM Przez kręcenie osią impulsatora sekwencyjnie jest zmieniany tryb pracy. Odpowiednie ustawienia są zapisywane do pamięci EEPROM i w przypadku Quadro wy s terowy wany jest przekaźnik Przl. Do sygnalizacji włączonego trybu wykorzystywana jest trójkolorowa dioda LED D2. Dla trybu CD-ROM świeci na niebiesko, a dla trybu Quadro na zielono.
Funkcje Templ i Temp2 umożliwiają ustawienie temperatur dwóch czujników TCN75 pracujących w trybie termostatu. Pierwszy z czujników mierzy temperaturę we wnętrzu obudowy kom-
putera lub temperaturę procesora. Funkcja Templ ustawia temperaturę Tset w zakresie 1O...99C układu o adresie A0...A2 = 000. Temperatura histerezy Th st ma wartość o 5C niższą niż ustawiana temperatura Tset. Po osiągnięciu temperatury Tset wyprowadzenie INT/CMPTR podłączone do ALM i dalej do linii RC2 sterownika U6 przechodzi w stan niski. Po wymuszeniu stanu niskiego na RĆ2 jest sygnalizowane przekroczenie temperatury. Na wyświetlaczu pojawia się migający napis: ii oni of rangę. Po przyciśnięciu osi impulsatora napis znika i wzmacniacz pracuje dalej normalnie. Ponowne uaktywnienie sygnalizacji przekroczenia temperatury jest możliwe po wyłączeniu i włączeniu wzmacniacza, lub po wejściu w menu funkcyjne. Spadek temperatury poniżej wartości ustawionej funkcją Templ -5C powoduje zmianę stanu wyjścia ALM (RC2) w stan wysoki.
Konstrukcja mechaniczna wzmacniacza - ograniczone gabaryty i miejsce jego zamontowania w obudowie komputera - wymusiły zastosowanie niezbyt dużego radia-tora układu wzmacniacza mocy U3. Praktycznie przy takich warunkach chłodzenia nie jest możliwe wykorzystanie większej mocy wzmacniacza. Żeby można było "mocniej" sobie pograć i nie spowodować wyłączenia U3 z powodu przegrzania, trzeba zastosować chłodzenie wymuszone. Wentylator chłodzący może być włączony cały czas, lub włączany w momencie, kiedy ra-diator osiągnie zadaną temperaturę ustawianą funkcją Temp2. Czujnik TCN75 programowany funkcją Temp 2 musi mieć adres A0...A2=100b. Po osiągnięciu zaprogramowanej temperatury wyprowadzenie INT/CMPTR przechodzi w stan wysoki i może wprowadzić
w stan nasycenia tranzystor włączający wentylator.
Ostatnią funkcją spełnianą przez prezentowane urządzenie jest termometr. Na wyświetlaczu jest wyświetlana temperatura mierzona przez układ wykorzystywany przez funkcję templ. Wyjście z funkcji ustawiania jest możliwe przez naciśnięcie (i przytrzymanie) osi impulsatora.
Układy pomiaru temperatury podłączane są do rzędu goldpinów opisanych na płytce: D_GND (masa cyfrowa), +5VD, ALM, SDA i SCL. Schemat elektryczny uniwersalnego układu pomiaru temperatury (dla funkcji Templ i Temp2) pokazano na rys. 5, a jego płytka drukowana na rys. 6. Dla temperatury Templ na płytce montowany jest układ TCN75, zwora SEL jest zwarta (A0=0), a zwora SELl jest zwiera wyprowadzenie INT/CMPTR z ALM. W drugim układzie pomiaru temperatury radiatora trzeba zmontować wszystkie elementy. Zwora SEL powinna być rozwarta (A0=l). Zwora SELl zwiera C z rezystorem Rl. Po osiągnięciu temperatury ustawionej funkcją Temp2 INT/CMPTR przechodzi w stan wysoki powodując nasycenie tranzystora Tl i załączenie wentylatora.
Żeby umożliwić łatwy kontakt termiczny obudowy układu TCN75 z procesorem lub radiatorem można elementy Rl, R2 i T2 przylutować od drugiej strony płytki. Zależnie od potrzeb można podłączyć tylko jeden z czujników lub obydwa na raz. Można też nie wykorzystywać żadnego. Jeżeli wykorzystywane są oba na raz, to jeden z nich jest podłączony do układu wzmacniacza. Połączenie drugiego jest możliwe przez zrównoleglone wyprowadzenia D_GND, +5VD SDA i SCL jak to pokazano na rys. 7.
Montaż i uruchomienie wzmacniacza
Wzmacniacz składa się z 4 płytek drukowanych. Na płytce głównej (schemat montażowy pokazano na rys. 8) są umieszczone wszystkie zasadnicze elementy wzmacniacza: procesory audio, wzmacniacz mocy, tor przetwornika C/A (układy U4 i U5), sterownik z pamięcią EEPROM oraz układy zasilania i przełącznika wejść INI, IN2. Na płytce czołowej (rys. 9) umieszczo-
Elektronika Praktyczna 8/2003
53
Wzmacniacz semi-surround do komputera PC
L*ooobóoooooooop
RMn U
Rys. 8. Schemat montażowy głównej płytki wzmacniacza
no wyświetlacz VFD lub LCD, impulsator i trójkolorową diodę LED. Na dwóch bocznych płytkach nie są montowane żadne elementy, służą one jako elementy konstrukcji mechanicznej wzmacniacza.
Montaż najlepiej jest rozpocząć od zmontowania płytki głównej bez wzmacniacza mocy. Niestety dla chcących ją zmontować samodzielnie w całości nie mam dobrych wiadomości. Układy BH3857AFV umieszczone są w obudowach do montażu powierzchniowego, w których odstęp pomiędzy nóżkami wynosi zaledwie 0,5 mm. Przyluto-wanie dwóch układów 40-nóżko-wych jest zadaniem dość trudnym, ale możliwym do wykonania. Kolejnym układem przystosowanym do montażu powierzchnio-
wego jest przetwornik C/A PCM1710U. Przylutowanie tego elementu nie powinno jednak sprawiać większych problemów.
Po zmontowaniu płytki głównej montujemy elementy na płycie czołowej. Jest ona przystosowana do podłączenia jednego z dwóch rodzajów wyświetlaczy: VFD typu CU165ECPB lub LCD o organizacji 1x16 znaków.
Kolejnym krokiem będzie połączenie wszystkich czterech płytek wzmacniacza w jedną mechaniczną całość tak, żeby powstał moduł,
który można umieścić w obudowie komputera w miejsce przewidziane dla dodatkowego dysku lub odtwarzacza CD (fot. 10).
W pierwszej kolejności trzeba połączyć płytkę główną z czołową za pomocą rzędu kątowych goldpinów. Rzędy punktów lutowniczych umieszczone są na krawędziach obu płytek tak, że po wlutowaniu goldpinów obie płytki przylegają do siebie i są połączone pod kątem prostym. Jest to połączenie mechaniczne pomiędzy płytkami i elektryczne pomiędzy sterownikiem umieszczonym na płytce głównej a wyświetlaczem i impulsatorem i diodą LED umieszczonymi na płytce czołowej . Następnym etapem będzie przylutowanie płytek bocznych prawej i lewej (patrz opisy na płytkach) z płytką główną. Tutaj również do mechanicznego połączenia pomiędzy płytkami wykorzystane zostały kątowe goldpiny. W płytkach w odpowiednich miejscach umieszczono punkty lutownicze tak, że montaż polega tylko na wlutowaniu elementów łączących. Na końcu wlutowujemy goldpiny łączące płytki boczne z płytką czołową. W taki sposób cały wzmacniacz zostanie precyzyjnie i mocno "zszyty" w całość.
Uruchomienie rozpoczynamy od podłączenia napięcia prze-
oooooooooooooo
Rys. 9. Schemat montażowy czołowej płytki wzmacniacza
54
Elektronika Praktyczna 8/2003
Wzmacniacz semi-surround do komputera PC
Fot. 10. Widok zmontowanego wzmacniacza od góry
miennego o wartości ok. 10 V do zacisków 10 VAC i sprawdzenia p opraw no ści napię ć z a sil a j ą cy ch +8 V, +5 VD i +5 VA. Jeżeli został zastosowany wyświetlacz VFD lub LCD z podświetlaniem, to trzeba pamiętać, źe pobiera on prąd w obwodzie +5 VD może przekraczać 300 mA i zbyt duża wartość napięcia przemiennego spowoduje wydzielanie się dużej mocy na stabilizatorach U8 i U10. Jeżeli napięcia są prawidłowe, to trzeba do podstawki włożyć zaprogramowany mikrokontioler PIC16F76 i odpowiednio ustawić zworę ZW (LED ZW zwarta, VFD ZW rozwarta) . Na ekranie wyświetlacza po włączeniu zasilania powinien się pojawić na 2 sekundy napis AVT PC AMPLIFIER i program przechodzi do pętli głównej.
Uruchomienie toru audio można wykonać dwoma sposobami: z pomocą generatora akustycznego i oscyloskopu oraz "na słuch". Ja zdecydowanie polecam te pierwsza metodę ponieważ łatwo można wykryć ewentualne zniekształcenia sygnału, czy wzbudzenie się na wysokich częstotliwościach. Po podaniu sygnału z generatora (amplituda 100...200
mV, częstotliwość 1 kHz) na kolejne wejścia IN1...IN4 sprawdzamy regulację głośności we wszystkich czterech kanałach. Sonda oscyloskopu podłączana jest kolejno na wejścia IN1...IN4 wzmacniacza mocy (jeszcze na tym etapie nie wlutowanego). Następnie trzeba zmienić częstotliwość na ok. 100 Hz i po wybraniu funkcji Bass sprawdzić regulację tonów niskich. Podobnie przy częstotliwości 10 kHz za pomocą funkcji Treble jest sprawdzana regulacja tonów wysokich.
Jeżeli wszystko jest w porządku wlutowujemy wzmacniacz mocy i przykręcamy go do radiatora. Radiator musi być wcześniej przymocowany do płytki przez 2 wkręty M3 wkręcone w nagwintowane otwory w korpusie radiatora. W modelowym wzmacniaczu został użyty dostępny w Elfie radiator KSlll o wysokości 37,3 mm. Oczywiście można tutaj użyć dowolnego radiatora o zbliżonych wymiarach. Po zamontowaniu wzmacniacza mocy trzeba do wszystkich czterech wejść dołączyć głośniki, a do zacisków ACl2V dołączyć napięcie przemienne o wartości ok. 12 V. Jeżeli
do wyjścia nie jest podłączony głośnik to funkcję obciążenia może spełniać rezystor o rezystancji 8...12 L1 i mocy 10 W. Ważne jest, aby podczas prób, a potem eksploatacji, wszystkie wyjścia były obciążone. W trybie Quadio do wszystkich wejść podajemy teraz sygnał akustyczny. Dźwięk powinien być bez zniekształceń i zakłóceń. Po podłączeniu z napędu CD-ROM sygnału cyfrowego (z wyjścia Digital Audio Output Con-nector) do wejścia D_IN sprawdzamy poprawność działania toru cyfrowego. Odtwarzanie w tym torze jest możliwe po przejściu w tryb CD-ROM - funkcja Ch 2/ 4. Stereofoniczny dźwięk z płyty CD jest odtwarzany w kanałach 1 i 2. Kanały 3 i 4 są automatycznie wyciszane. Włączenie układów Surround kończy sprawdzanie działania toru akustycznego. Na koniec pozostaje jeszcze sprawdzenie czujników temperatury. Po ich podłączeniu i skonfigurowaniu najpierw sprawdzamy czujnik temperatury wnętrza obudowy (lub procesora). Funkcją Templ trzeba ustawić temperaturę zbliżona do pokojowej i po lekkim podgrzaniu czujnika (np. przez dotknięcie palcem) obserwujemy sygnalizację przekroczenia temperatury. Po tych czynnościach ustawiamy żądaną temperaturę alarmu. Dokładnie tak samo może zostać sprawdzony drugi czujnik. Można beż żadnych konsekwencji dla działania programu sterującego wzmacniacza zrezygnować z jednego lub z obydwu czujników. Jeżeli nie będzie podłączony czujnik mierzący templ to nie będzie działać funkcja termometr. Sprawdzony i uruchomiony wzmacniacz trzeba umieścić w obudowie komputera w miejscu przeznaczonym na dodatkowy napęd CD-ROM. Przedtem do metalizacji otworów w płytkach bocznych trzeba przylutować nakrętki M3 do których będą wkręcone wkręty mocujące wzmacniacz do obudowy komputera. Tomasz Jabłoński, AVT tomasz.jablonski@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http:iiwww.ep.coni.pli ?pdfisierpienQ3 Jttm oraz na płycie CD-EP8/2003B w katalogu PCB.
Elektronika Praktyczna S/2003
55
PROJEKTY
Radiowy system zdalnego sterowania z kanałem zwrotnym, część 2
AVT-517
W drugiej części artykułu
przedstawiamy protokół
bezprzewodowej transmisji
danych, montaż układów
zdalnego sterowania oraz
sposób uruchomienia toru
radiowego.
Rekomendacje: system
bardzo przydatny do
dwukierunkowej transmisji
danych na relatywnie duże
odległości
w nie licencjonowanym paśmie
433 MHz. Może spełniać rolę
systemu zdalnego sterowania
modeli lub medium
transmisyjnego w lokalnych
systemach telemetrycznych.
Format transmitowanych bajtów
Najważniejsze do prawidłowego działania układu jest uniknięcie podczas transmisji błędów i przekłamań wywołanych np. przez zaniki sygnału czy zakłócenia. Służy temu odpowiednio zaprojektowany protokół transmisji i zawarte w nim zabezpieczenia.
Każda transmisja rozpoczyna się wysłaniem 16 bajtów tzw. preambuły (rys. 4). Każdy z bajtów ma wartość 55H, co w rezultacie oznacza wygenerowanie sygnału prostokątnego o poziomie logicznym zmienianym na przeciwny dla każdego kolejnego bitu preambuły. Taki sposób postępowania związany jest z wymaganiami stawianymi przez transceiver CClOOO pracujący w trybie odbiorczym. Preambuła kończy się wysłaniem pierwszego znaku sygnatury, różniącego się wartością od ciągu 55H. W tym przypadku kodem sygnatury będzie
bajt o wartości 10H. Od tego momentu rozpoczyna się transmisja danych oraz dodatkowych bajtów, dzięki którym można po stronie odbiornika sprawdzić poprawność transmisji, a w przypadku błędu odrzucić zniekształcone dane. Najpierw po znaku sygnatury wysyłane są dwa bajty określające liczbę transmitowanych bajtów danych. Bajt drugi jest powtórzeniem pierwszego i jeśli po stronie odbiorczej program mikiokontrolera stwierdzi, że się różnią, cała transmisja zostanie odrzucona jako niepoprawna. Następnie wysyłane są bajty danych. W prezentowanym przykładzie pierwszy bajt zawiera informację o położeniu serwomechanizmu 1, drugi informację o położeniu serwomechanizmu 2, natomiast trzeci jest bajtem statusu. W każdym bajcie wykorzystane są tylko trzy bity. Bity 0 i 1 określają stan przełączników włącz/wyłącz odbiornika, natomiast ustawiony bit
Elektronika Praktyczna S/2003
Radiowy system zdalnego sterowania z kanałem zwrotnym
sygnatura
1:2 bajt Ilości danych suma kontrolna
szumy
preambuła
dane
dane zanegowane
szumy
Rys. 4. Format ramki danych przesyłanej każdorazowo
7 oznacza włączony kanał zwrotny i żądanie odpowiedzi od odbiornika po zakończeniu bieżącej transmisji nadajnika. Po nadaniu zasadniczego ciągu danych kolejne bajty danych są powtórzeniem nadanych wcześniej, z tą różnicą że ich wartości są zanegowane (są przesyłane w uzupełnieniu do 1, w dopełnieniu). Jeżeli po stronie odbiorczej zostanie stwierdzona różnica pomiędzy bajtem danych a jego zanegowanym powtórzeniem, bajt zostanie odrzucony jako błędny. Na samym końcu wysyłana jest suma kontrolna transmisji. Suma budowana jest poprzez wykonanie operacji logicznej ExOR kolejnych bajtów od bajtu sygnatury do ostatniego baj-tu danych poprzedzającego bajt sumy. Jeżeli po stronie odbiorczej suma obliczona nie będzie zgodna z sumą przesłaną, cała transmisja jako fałszywa zostanie odrzucona. Wszystkie bajty transmitowane są z pierwszym najbardziej znaczącym bitem.
Jeżeli włączony jest kanał zwrotny, odbiornik w odpowiedzi jako bajty danych wysyła tylko bajt statusu wraz z jego negacją. W bajcie tym poziom wysoki bitu 0 oznacza sygnalizację alarmu niskiego poziomu zasilania odbiornika, natomiast bit 1 przekazuje poziom wejścia przełącznika włącz/ wyłącz odbiornika. Format pozostałych bajtów transmisji jest identyczny jak w przypadku nadajnika.
Montaż
Dwustronna płytka drukowana odbiornika ma wymiary 4 5 x 50mm (jej schemat montażowy pokazano na rys. 5). Wszystkie elementy odbiornika (łącznie z modułem) znajdują się po jednej stronie, co umożliwia zamocowanie płytki w obudowie. Gniazdo anteny, zależnie od potrzeb, umożliwia jej montaż z obu stron. W celu zmniejszenia wymiarów płytki drukowanej, obudowy oporników, kondensatorów nie-elek-trolitycznych i tranzystorów przystosowane są do montażu powierzchniowego i właśnie te ele-
menty jako pierwsze powinny być lutowane. Rozmiar oporników i kondensatorów należy do standardu SMD1206, toteż nie powinno być większych kłopotów z ich montażem, jeżeli ma się do dyspozycji cienką cynę i lutownicę z odpowiednim grotem. Pozostałe elementy są typu przewlekanego. Ponieważ demontaż elementu typu SMD jest bardziej pracochłonny niż w przypadku elementów przewlekanych, przed przylutowa-niem warto sprawdzić, czy jego wartość jest na pewno zgodna z podaną w spisie elementów.
Wyprowadzenia modułu wykonane są w dwóch rzędach po 6 styków. Moduł nie powinien być bezpośrednio lutowany, lecz wkładany do złącz przystosowanych do jego wyprowadzeń, tzw. gold pin w rastrze 2,54 mm (0,1 cala).
Pozostałe wyprowadzenia: zasilania, serwomechanizmów, wyjść sterujących, także najlepiej wykonać w postaci rozłączalnych gniazd.
Na płytce nadajnika wszystkie zastosowane elementy są typu
przewlekanego. Elementy znajdują się po jednej stronie płytki, dzięki czemu można ją przymocować wewnątrz ewentualnej obudowy. Także tutaj moduł powinien być zamontowany na przystosowanych do tego złączach. Diody sygnalizacyjne i przełączniki sterujące można zamocować na górze obudowy, w której zamontowana będzie płytka nadajnika.
Osobny problem montażowy nastręczają potencjometry sterujące położeniem serwomechanizmów. Sposób ich zamocowania zależy od zastosowania układu zdalnego sterowania. Jeżeli będzie używany np. do sterowania ruchami miniaturowej głowicy kamery, to wystarczą dwa zwykłe potencjometry z ośkami, zamontowane na górnej części obudowy nadajnika. W przypadku sterowania serwomechanizmami modelu pojazdu, najwygodniejsze byłyby drążki sterownicze pracujące w osiach X i Y z wymuszaną pozycją neutralną, gdy operator nimi nie manipuluje. Jeżeli jest taka możliwość, można próbować adaptować stare układy sterowania zabawek. Można także własnoręcznie skonstruować manipulator sterujący, co jednak wymaga wyobraźni i umiejętności.
/
\* oooooo fiooi
O
I R3
U
o
Tl
r.ns
U2
I I I I I I I
(HMnrnsRSRiiR i i i i i i i
o o o o o o o o"ouo S 000
\l I I li
I 0 0203?__________________- -,
IIII ? o o o o ooooo '^
000
Rys. 5. Schemat montażowy płytek układów zdalnego sterowania
Elektronika Praktyczna 8/2003
57
Radiowy system zdalnego sterowania z kanałem zwrotnym
Anteny
Otwory pod gniazda antenowe przeznaczone są pod złącza typu SMA dla giętkich, fabrycznych anten dipolowych, jednak najprościej i najtaniej wykonać antenę samemu. Wystarczy do tego kawałek grubego drutu np. miedzianego lub srebrzanki o średnicy nie mniejszej niż 1 mm. Najprostszy w wykonaniu jest dipol ćwierćfalowy. Stanowi go kawałek drutu o długości 16...17 cm wlu-towany w centralny otwór gniazda antenowego JPl (rys. 6). Charakterystyka promieniowania takiej anteny jest dookólna i ma niezłe parametry, co sprzyja osiąganiu większych zasięgów pomiędzy nadajnikiem i odbiornikiem. Zależnie od potrzeb, antenę można wlutować zarówno od strony elementów, jak i po stronie przeciwnej. Jeżeli zależy nam na mniejszych rozmiarach, antenę można wykonać jako skróconą w postaci spirali. Spirala ma 10 zwojów
0 średnicy 8 mm i długość 20 mm. Zaletą takiej anteny są małe rozmiary, natomiast ma ona gorsze parametry propagacyjne. Można także zastosować wariant mieszany, stosując jeden typ anteny w nadajniku, a inny w odbiorniku
1 eksperymentalnie ustalić, które rozwiązanie najlepiej nam odpowiada.
Zasięgi opisywanego układu bardzo zależą od otoczenia w jakim pracuje i od zastosowanych anten. Podczas prób w terenie otwartym zasięg dochodził do 150...200 m. W budynku wielokondygnacyjnym można było osiągnąć zasięg ponad 6 pięter.
Uruchomienie układu
Po zmontowaniu układów nadajnika i odbiornika, przed włożeniem do podstawki procesora a modułu do złącza, warto sprawdzić poprawność montażu, porównując obie płytki ze schematem. Następnie należy dołączyć zasilanie i sprawdzić, czy stabilizatory dostarczają napięcie +3 V ą0,25 V. Jeżeli wszystko się zgadza, można przeprowadzić próbę funkcjonalną układu. Do gniazd nadajnika i odbiornika należy włożyć procesory i moduły nadawczo-odbiorcze oraz dołączyć serwomechanizmy, potencjometry sterujące, przełączniki, diody sygnalizacyjne. Następ-
nie należy dołączyć zasilanie do płytki odbiornika. Serwomechanizmy powinny zostać ustawione w położeniu środkowym. Następnie do płytki nadajnika oddalonej
0 około 50 cm dołączamy zasilanie przy zwartym przełączniku kanału zwrotnego. Przy sprawnie działającym układzie dioda dołączona do złącza JP3-3.4 nadajnika nie powinna migotać, natomiast zmiana położenia potencjometrów powinna wywoływać analogiczny obrót odpowiedniego serwomechanizmu. Jeżeli tak jest, potencjometry regulujące położenie powinny zostać ustawione w położeniu neutralnym. Zmiana wartości PR2 i PR3 powinna doprowadzić do tego, że serwomechanizmy także przyjmą środkowe, neutralne położenie.
Ostatnią czynnością jest regulacja układu detekcji poziomu zasilania. Dla odbiornika regulacja przeprowadzana jest przy włączonym kanale zwrotnym. Do kalibracji układu detekcji trzeba użyć zasilacza o regulowanym napięciu wyjściowym. Na wyjściu zasilacza dołączonego do odbiornika należy ustawić napięcie, przy którym powinna włączać się sygnalizacja, np. 4 V. Następnie używając potencjometru PRl odbiornika, należy doprowadzić do sytuacji, aby dioda sygnalizacyjna w nadajniku zaświeciła się. Po zwiększeniu poziomu zasilania odbiornika do nominalnego (np. +5V) dioda powinna zgasnąć. Po wyłączeniu kanału zwrotnego można podobną regulację przeprowadzić dla nadajnika.
Problemy z uruchomieniem
1 działaniem urządzenia
Podczas pracy układ prototypowy zachowywał się stabilnie, jednak w przypadku odbiornika niekorzystne są zbyt długie przewody zasilające. Jeżeli układ będzie narażony na duży poziom zewnętrznych zakłóceń, można zablokować zasilanie dodatkowymi kondensatorami 100 nF i elektrolitycznym 2 2 |iF, lutowanymi na wtyku przy gnieździe zasilania JP2.
Jeżeli pojawią się kłopoty z uruchomieniem układu, należy sprawdzić, czy procesory i moduły są prawidłowo osadzone w gniazdach. Na płytce modułu
= 8mm
Rys. 6. Sposób wykonania i wymiary dwóch typów anten
styki oznaczone jako Pl wyprowadzają sygnały sterujące PALE, PDATA itd. i powinny łączyć się z odpowiednimi portami procesora. Wizualnie kwarc modułu powinien znaleźć się w pobliżu gniazda antenowego na płytce odbiornika, natomiast na płytce nadajnika powinien być zwrócony w stronę stabilizatora +3 V.
Może się zdarzyć, że na skutek nieprawidłowego zerowania po włączeniu zasilania, procesor odbiornika nie będzie właściwie funkcjonował. W takim przypadku należy wyłączyć zasilanie, odczekać kilka sekund, a po jego ponownym załączeniu sprawdzić, czy serwomechanizmy automatycznie ustawią się w pozycji neutralnej. Brak impulsów sterujących serwomechanizmami na wyprowadzeniach U 2-17, 18 świadczy o nieprawidłowej pracy procesora (patrz opis części odbiorczej).
W przypadku nadajnika należy sprawdzić, czy na wejścia TRIG układów U2 i U3 podawany jest impuls wyzwalający trwający ok. 500 |is, a na wyjściach Q układów pojawiają się dodatnie impulsy 0,9...2,1 ms o czasie trwania regulowanym przez położenie potencjometrów sterujących. Podczas normalnej pracy, na wszystkich wyprowadzeniach modułu: PALE, PDATA, PCLK, DCLK, DIO powinny pojawiać się impulsy transmisji pomiędzy modułem a mik-rokontrolerem U2. Ryszard Szymaniak, AVT ryszard.szymaniak@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/sierpienO3Jitm oraz na płycie CD-EP8/2003B w katalogu PCB.
58
Elektronika Praktyczna 8/2003
NOTATNIK PRAKTYKA
Prototyp w godzinę
- precyzja niemal przemysłowa
Płytki drukowane w domu, część 3
Trawienie
SpoSród całej gamy kąpieli przeznaczonych do trawienia miedzi na płytkach PCB, w warunkach amatorskich na uwagę zasługują trzy ich rodzaje: - Roztwór chlorku żelazowego (FeCl3) o stężeniu 28...42% (wagowo) z ewentualnym dodatkiem do 5% kwasu solnego (HC1). Chlorek żelazowy mimo swojej niekwestionowanej popularnoSci ma kilka istotnych wad, m.in. wykonana z niego kąpiel wymaga intensywnego mieszania usuwającego powstający osad, a jej nie-przezroczystoSć utrudnia wizualną kontrolę postępu trawienia. Do tego należy jeszcze dodać legendarną zdolnoSć do tworzenia nieusuwalnych plam.
Kąpiele kwaSne złożone z kwasu siarkowego (H2SO4) lub solnego (HC1) z dodatkiem perhyd-rolu (30% nadtlenek wodoru, H2O2). Mieszaniny te nadają się do trawienia płytek precyzyjnych, są również stosunkowo łatwe do zestawienia w warunkach amatorskich. Niestety ze względu na małą trwałoSć nie nadają się do przechowywania. Roztwór nadsiarczanu amonu (NH4)2SO4. Ze względu na małą agresywnoSć kąpiel nadaje się praktycznie do wszystkich rodzajów pokryć ochronnych, a zarazem pozwala na trawienie płytek o wysokiej jakoSci. W przemySle jest obecnie stosowana rzadko, ze względu na trudnoSci z regeneracją i odzyskiem miedzi z roztworu, co ma jednak niewielkie znaczenie
W trzeciej, ostatniej części cyklu
przedstawiamy zagadnienia związane
z trawieniem płytek drukowanych oraz - jest
to namacalny dowód na duże możliwości
opisywanej metody - wyniki osiągnięte
podczas prac prototypowych. Zapraszamy!
w warunkach amatorskich. Według receptury podanej w [1] stężenie nadsiarczanu amonu powinno wynosić 200...300 g/ dni3. Świeży roztwór jest bezbarwny, a w miarę zużywania stopniowo przybiera barwę intensywnie niebieską. Dzięki dobrej trwałoSci może być wykorzystany praktycznie do końca, a stosunkowo niska cena
głównego składnika również zachęca do stosowania w warunkach amatorskich. Ze względu na szybkoSć trawienia zaleca się podgrzewanie kąpieli do temperatury ok. 40C. Należy jednak wspomnieć o pewnym istotnym szczególe. Otóż według receptury, do stabilnej pracy kąpieli zalecana jest domieszka katalizatora (chlorek
Elektronika Praktyczna 8/2003
59
NOTATNIK PRAKTYKA
Fot. 14. Trciwicirkci napełniona roztworem B327. Na dnie widoczne sq dwie grzałki akwaryjne, a z tyłu - kurtyna pęcherzyków powietrza powodująca intensywne a jednocześnie równomierne mieszanie roztworu. Pojemność robocza zbiornika wynosi ok. 2J5...3 dm3
rtęci (II] HgCl2 o stężeniu S mg/ dm3). O ile całkowita ilość i stężenie katalizatora zawartego w kąpieli są stosunkowo niewielkie (dopuszczalne stężenie rtęci w ściekach zrzucanych do kanalizacji komunalnej nie może przekraczać 0,1 mg Hg/dm3), to operowanie stężonymi związkami rtęci podczas przygotowania roztworu wymaga zachowania specjalnych środków ostrożności. Dostępny w handlu Wytia-wiacz Drobnokrystaliczny B327, mimo braku na opakowaniu jakichkolwiek informacji o jego składzie, jest najprawdopodobniej mieszaniną sporządzoną na bazie nadsiarczanu amonu lub nadsiarczanu sodu. W chwili obecnej można go uznać za jeden z najwygodniej szych i łatwo dostępnych preparatów do trawienia miedzi. Za jego stosowaniem przemawia m.in. to, że nie
narusza resztek powłoki kredowej, a także komfort wynikający z klarowności kąpieli.
Na fot. 14 pokazano wygląd amatorskiej trawiarki napełnionej częściowo zużytym roztworem B32 7. Umieszczone na jej dnie grzałki akwariowe wraz z regulatorem utrzymują temperaturę kąpieli na poziomie ok. 4O...42C, natomiast widoczna z tyłu rurka napowietrzająca wytwarza kurtynę pęcherzyków powietrza powodującą intensywne i równomierne mieszanie roztworu. Czas trawienia miedzi
0 grubości 35 |xm wynosi w takich warunkach przeciętnie 12...15 minut.
Na fot. 15 przedstawiono wygląd ścieżek o nominalnej szerokości 6 mils, po wytrawieniu
1 częściowym mechanicznym usunięciu maskującego je tonera. Krawędzie maski tworzą prze-
Fot. 15. Podtrawienie krawędzi ścieżek. Na zdjęciu - ścieżki ó mils po wytrawieniu i mechanicznym usunięciu części pokrycia maskującego. Widoczne "okapy" powstały na skutek rozpuszczenia miedzi pod krawędzią tonera. Zwróćmy uwagę, że rozlanie tonera i podtrawienie kompensują się wzajemnie, dzięki czemu finalna szerokość ścieżek niewiele różni się od zamierzonej
wieszone okapy, natomiast ukryte pod nimi ścieżki uległy pod-trawieniu na głębokość porównywalną z grubością warstwy miedzi. Wszystkie próbki prezentowane w artykule zostały wykonane na standardowych laminatach
0 grubości miedzi 35 |xm - czyli ok. 1,4 mils. Z drugiej strony, jeżeli porównamy uzyskane szerokości ścieżek z wymiarami nominalnymi (projektowymi], to możemy stwierdzić, że poszerzenie na skutek rozpłynięcia tonera
1 zwężenie powstałe w efekcie podtrawienia kompensują się wzajemnie, a finalna szerokość niewiele odbiega od założonej.
Ciekawego porównania dostarcza fot. 16. Zestawiono na niej fragment mozaiki złożonej z równoległych ścieżek o szerokości 6 mils wykonanych w różnych technologiach. Począwszy od góry możemy zobaczyć wydruk maski (600 dpi] na papierze kredowym (a] i ścieżki uzyskane za jej pomocą (b] oraz rezultaty technologii przemysłowej z maską fotopolimerową (c] oraz z maską metaliczną Sn-Pb (d|. Technologie przemysłowe gwarantują niemal idealną powtarzalność i jakość krawędzi niedostępną dla mozaiki transferowanej z wydruku 600 dpi. Jednak z drugiej strony zwróćmy uwagę na zaskakującą próbkę (d], gdzie z nominalnej szerokości ścieżek pozostało jedynie ok. 2 mils.
Mycie i zabezpieczenie płytki
Po wyjęciu płytki z trawiarki pozostaje już tylko zmycie maski ochronnej. Polimerowy toner daje się łatwo usunąć za pomocą popularnych rozpuszczalników organicznych np. acetonu lub (lepiej] rozpuszczalnika Nitro. Jak się jednak zdążyłem przekonać, po zmyciu tonera na powierzchni miedzi pozostaje cienka, woskowata warstewka mogąca skutecznie uprzykrzyć późniejsze lutowanie. Dlatego przed pokryciem płytki warstwą topnika warto ostatni raz przeszlifować ją pod bieżącą wodą za pomocą bardzo drobnego papieru ściernego (>1000|.
Rezultaty
Po szczegółowym przedstawieniu metody nadeszła pora na prezentację i omówienie uzyskanych wyników. Licytując swoje osiągnięcia w wytwarzaniu domowych PCB, najchętniej podajemy minimalne uzyskane szerokości ścieżek. Na fot. 17 przedstawiono próbę oceny metody według tego właśnie kryterium. Jak widać, ścieżka o nominalnej szerokości 4 mils zachowała elektryczną ciągłość. Oczywiście nie namawiam nikogo do realizacji takich projektów, a sam test należy potraktować z przymrużeniem
oka. Jednak daje on pewną orientację co do potencjalnych możliwości technologii "kredowej". Oprócz minimalnej szerokości ścieżek, drugim ważnym parametrem są minimalne separacje gwarantujące uniknięcie zwarć. Wykonane specjalnie w tym celu próbki testowe składały się z rzędu równoległych ścieżek o stopniowo rosnących odstępach. Na fot. 13 pokazano fragment próbki złożonej ze ścieżek o nominalnej szerokości 6 mils. Liczby na rysunku oznaczają odstępy pomiędzy osią ścieżki centralnej a osiami jej najbliższych sąsiadów. Jak można zauważyć, w miarę oddalania stopniowo zanikają oddziaływania między sąsiadującymi elementami mozaiki. Zapewnienie odstępu 6 mils w zasadzie gwarantuje, że pomiędzy sąsiadującymi elementami
Fot. 16, Ścieżki 6 mils w różnych wykonaniach: wydruk óOO dpi na papierze kredowym (a); termotransfer z papieru kredowego (b); technologia profesjonalna z maskg fotopolimerowg (c); technologia profesjonalna z maskg metaliczną Sn-Pb (d). Wykonania profesjonalne zapew-niajg znacznie lepszg równomierność ścieżek niż metoda termotransferowa, ale nie bez niespodzianek - w ostatniej próbce (maska SnPb) ze ścieżek o projektowanej szerokości 6 mils zostało zaledwie ok. 2 mils
60
Elektronika Praktyczna S/2003
NOTATNIK PRAKTYKA
Fot. 17. ómils... 5mils... 4mils... Gdzie leży granica? Ścieżko 4mils mimo wyrożnych głębokich przewężeń zachowała ciqg-łość i nienaruszoną górng płaszczyznę
mozaiki nie wystąpią zwarcia wynikające ze zbyt bliskiego sąsiedztwa.
Kolejne zdjęcia prezentują przykłady struktur, z jakimi można sie. spotkać w rzeczywistych projektach. Są to przejścia ścieżek pod standardowymi el-mentami w obudowach SMD: 0805 (fot. 19] i SOT-23 (fot. 20] oraz trzy ścieżki o szerokości 6 mils (fot. 21] przeprowadzone pomiędzy polami lutowniczymi układu scalonego w obudowie DIP (pola o nominalnej średnicy 62 mils w rozstawie 100 mils].
Rozpoczynając artykuł wspomniałem o rosnącym zapotrzebowaniu na precyzyjne, amatorskie PCB, wynikającym z silnego dążenia producentów do miniaturyza-cji obudów. Na fot. 22 pokazano
fragment płytki drukowanej z przy lutowanym układem w obudowie QFP20S z wyprowadzeniami w rastrze 0,5 mm. Jakkolwiek nie widać tego na zdjęciu, to mogę zapewnić, że wszystkie pozostałe wyprowadzenia zostały przy-lutowane do poprawnych pćl lutowniczych wytrawionych bez zwarć i istotnych ubytków.
Opisy - warstwy Overlay
Na zakończenie wspomnę o jeszcze jednym zastosowaniu metody te rmotransfe rowej. Kosztem dodatkowych kilku minut pracy możemy nanieść na płytkę opis elementów (warstwy BottornOvsiIay i TopOysiIay) znakomicie ułatwiający późniejszy montaż (fot. 23]. Ponieważ
i * t Ł 1 *

vi Ś
1 , \ "t
j :\
1 fi Ą
-ci -' ŚI /i Ś
Ś' r:3 '1 r%j
A ^ J k J ji *rj
i\ . j
1 \ -i
Ś .1 Ś4
] j ;] >J
i ' t "Śi gi -L,
J ,-'Ś 'Ś ^ł
r
1 i
-
?! % 1 -:.
-' Ś Ś'3
f i ."*Y -"l \
Ś"i y\ Ś -' 1
CA - t. ja ';]
J ŚĄ '-, E J * 1 v|
zł \ dl
KM ił
I
I
i
Fot. 18. Ścieżki ómils w zmiennych odstępach. Liczby oznacza-jq odległość w milsach pomiędzy osiq ścieżki centralnej a osiami jej najbliższych schodów. Zachowanie ok. ómils separacji wystarcza do wyeliminowania zwarć
Elektronika Praktyczna S/2003
61
NOTATNIK PRAKTYKA
Fot. 19. Pojedynczo ścieżko (kolejno oszerokości: 10, 12, 15 mils) przeprowodzono pomiędzy poloml elementu SMD03C6
toner po zmyciu kredy przyjmuje nieciekawą szaro siną barwę., a zarazem od warstwy opisowej nie oczekujemy idealnej szczelności krycia, to tym razem możemy znacznie uprościć technologie.. Zamiast kąpieli i żmudnego zmywania kredy, po prostu odrywamy papier na gorąco, jeszcze przed zdjęciem płytki z żelazka. Wprawdzie znaczna część wydruku pozostanie na papierze, to jednak reszta przeniesiona na płytkę, i tak zapewni dobry kontrast oraz czytelność znakćw nawet o wysokości zaledwie 40 mils.
Podsumowanie
Porównując rezultaty metody termotransferowej z minimalnymi wymaganiami nakładanymi przez wiele firm zajmujących sie. produkcją płytek drukowanych, łatwo ulec złudnemu wrażeniu, że oto w amatorskim re_ku mamy narzędzie doskonałe. Nie traćmy jednak zdrowego rozsądku. Graniczne możliwości profesjonalistów sięgają znacznie dalej, a stawiane ograniczenia mają zagwarantować niemal 100% bezbłęd-ność i powtarzalność wykonania
Fot. 20. Pojedyncze (12 mils) i podwójne (8 mils) przejście pod obudowg SOT-23
w dowolnym punkcie formatki
0 rozmiarach znacznie większych niż osiągalne w metodzie ,,żelaz-kowej". Jednak i ta metoda ma swoje niezaprzeczalne zalety. Jakkolwiek zaprezentowałem liczne przykłady wykonania ścieżek o szerokości 6 mils, to jednak nie wyobrażam sobie np. poprowadzenia w ten sposćb magistrali 32 ł 6 mils wzdłuż całej eurokarty. Jednak jak najbardziej realne wydaje się sięgnięcie po wymiar 6 mils w krytycznych punktach projektu, czy też np. wyprowadzenie ścieżek spod obudowy o rastrze 0,65 mm czy nawet 0,5 mm. Zwłaszcza że w realizacjach amatorskich można sobie pozwolić na każdorazowe dokładne obejrzenie przetransferowanej maski
1 ewentualne poświęcenie dodatkowych 20 minut na retusz lub zmycie tonera i kolejne prasowanie. Szybkość działania i to mimo czasu jaki trzeba poświęcić na ewentualne poprawki stanowi drugi niebagatelny atut metody. Biorąc pod uwagę, że na wykonanie płytki jednostronnej potrzeba nie więcej niż 50...60 minut (oczywiście nie licząc wiercenia], można się pokusić o wykonywanie płytek drukowanych ad hoc, do kolejnych wersji uruchamianego prototypu.
Przede wszystkim jednak zachęcam do eksperymentów. Prawdopodobnie spore możliwości tkwią jeszcze w wykorzystaniu coraz powszechniejszych drukarek 1200 dpi a także w poszukiwaniu innych materiałów do wydruku. Przypomnijmy -szukamy nośnika o gładkiej powierzchni, odpornego na temperaturę druku i prasowania a zarazem usuwalnego w wodzie lub innym rozpuszczalniku obojętnym wobec tonera.
Wachlarz zagadnień związanych z amatorskimi PCB jest dosyć szeroki, a kilka z nich zostało jedynie zasygnalizowane, jak np. sposoby wykonywania płytek dwustronnych czy konstrukcja trawiarki. Jeżeli Czytelnicy wykażą zainteresowanie tym tema-
Fot. 21. Potrójne przejście pomiędzy polomi układu w obudowie DIP (ścieżki 6 mils, polo lutownicze 62 mils w rozstawie 100 mils)
tem, to możemy powrócić do niego w kolejnych numerach. Marek Dzwonnik, AVT marek.dzwonnik@ep.com.pl
Odnośniki
1. "Technologia i montaż płytek drukowanych", Jerzy Michal-ski, seria USE, WNT, Warszawa 1992, ISBN S3-204-1413-X
2. http://www.crceurope.com/
-> KontaktChemie -> Positiv20
- specyfikacja zamieszczona na stronie producenta.
3. http://www. ep.com.pl/?ftp/ makepcbZindex.html - artykuł z EP
4. http ://www. mantech.co.za/ kontakt/kc2Oman.HTM - szczegółowa instrukcja stosowania Positivu
5. http://www.easy-soft.tsnet.pl/ akademia/pcb/pcbes. html polskie opisy wykorzystania Positivu i folii TES-200
Fot. 22. Fragment płytki testowej i zamontowanego układu scalonego w obudowie TQFP208 z wyprowadzeniami w rastrze 0,5 mm
a
i a.
to r w a gt
t (/) W*
I
a
Fot. 23. Złgcze ISP na podstawce uruchomieniowej opisane (warstwa Top Overtay) metodg termotransferowg z oderwaniem papieru na gorgco. Wzdłuż górnej krawędzi widoczny zarys sprężystych szpilek testowych produkowanych przez Q&A rozmieszczonych w rastrze 100 mils. Całkowita wysokość znaków wynosi 60 mils
62
Elektronika Praktyczna S/2003
PROGRAMY
Protel
Przełom na rynku narzędzi EDA dla elektroników, część 6
Wśród wielu narzędzi oferowanych przez pakiet Protel,
najważniejszy element zawsze stanowił edytor PCB.
Możliwości tego narzędzia w dużej mierze świadczą
o wartości całego pakietu i efektywności pracy projektanta
płyty drukowanej. W tej części cyklu omówimy kilka nowych
i udoskonalonych cech, które Protel DXP wprowadza
w samym edytorze PCB.
Kształt PCB
Wraz z wersją DXP w edytorze PCB pojawiła się możliwość elastycznego definiowania kształtu płyty {Boaid Shaps). Kształt płyty wyznacza fizyczne granice laminatu i jest używany przez program do określania rozmiarów wewnętrznych warstw miedzi oraz - podczas generowania plików wyjściowych np. Gerber -do obliczania krawędzi płyty. Trzeba zwrócić uwagę, że wewnętrzne warstwy miedzi wyznaczone przez kształt płyty, są nieco "odsunięte" od krawędzi laminatu, co zapobiega ich przypadkowym zwarciom na obrzeżach płyty. Ta specjalna strefa pozbawiona miedzi (tzw. pull-back) jest generowana automatycznie wzdłuż krawędzi wyznaczonej przez kształt płyty. Jej szerokość możemy określić, dla każdej warstwy niezależnie, w okienku Laysr Stack Manager widocznym na rys. 1.
Rys. 1. Szerokość strefy pullbock możemy określić dlo każdej warstwy niezależnie w okienku Layer Stack Manager
Rys. 2. Kształt płyty musi być zdefiniowany dla każdego projektu PCB - możemy go zmienić używajqc poleceń z menu Dg-$ign>Board Shapo
Kształt płyty musi być zdefiniowany obowiązkowo dla każdego projektu PCB, jednak jest on tworzony automatycznie podczas tworzenia nowego pliku PCB. Domyślny kształt płyty możemy zmienić, używając poleceń z menu Dssign>Board Shaps widocznego na rys. 2.
Jeśli w projekcie mamy już zdefiniowane granice płyty np. na jednej z warstw mechanicznych, możemy je wykorzystać do automatycznego wygenerowania kształtu płyty korzystając z polecenia Define fcom Sslsctsd Objscts (rys. 3).
Szablony płyt PCB
Jeśli otworzymy dowolny z przykładowych projektów PCB dostarczonych z programem Protel zauważymy, że w większości z nich

'**fc
U-
Rys. 3. Kształt płyty to widoczny na ilustracji czarny obszar wyznaczajqcy fizyczne granice płytki drukowanej, natomiast biały obszar z ramkq i tabelkq to arkusz pocho-dzqcy z jednego z przykładowych szablonów dostarczonych z programem Protel
płyta jest pokazana na białym arkuszu, który zawiera ramkę z marginesami oraz tabelkę, a czasem również inne elementy graficzne. Protel nie stosuje żadnych specjalnych obiektów do tworzenia szablonu. Ramka, oznaczenia stref odniesienia (1, 2, 3... poziomo i A, B, C... pionowo) na marginesach oraz tabelka są narysowane na jednej z warstw mechanicznych. W przykładach dostarczonych z programem jest to warstwa Mschanical 16.
Sam arkusz, to biały obszar widoczny na rys. 3. Jego parametry określamy w okienku dialogowym Board Opiions widocznym na rys. 4. Widok arkusza możemy ukryć, wyłączając opcję Display Shssi dostępną w okienku Board Opiions.
Elementy szablonu (ramkę, tabelkę i innej nanosimy na wybranych warstwach mechanicznych, które następnie należy "związać" z szablonem zaznaczając opcję Linksd To Shsst w okienku Board Layers and Colors pokazanym na rys. 5. Elementy na warstwach związanych z szablonem są zablokowane dla operacji edycyjnych, dzięki temu są zabezpieczone prze przypadkowym usunięciem lub zmianą. Protel DXP jest dostarczany z zestawem predefiniowanych szablonów PCB, które znajdują się w katalogu..\Altiurn\Tsrnplatss. Możemy je wykorzystać wprost we własnych projektach, lub jako wzorce do tworzenia własnych szablonów.
Pola w staw ia ni a el em entó w
Pola wstawiania elementów {Cornponsnt Placsrnsnt Roorns) pojawiły się po raz pierwszy w edytorze PCB wersji 99. Pole takie, to określony obszar na płycie drukowanej, który obejmuje część elementów. Używając pól, możemy wydzielić na płycie poszczególne kanały lub bloki funkcjonalne projektowanego urządzenia. Wewnątrz każdego pola możemy zdefiniować odmienne reguły projektowania druku, jak np. szerokość ścieżek, czy odstępy izo-
Rys. 4. Parametry arkusza określamy w okienku dialogowym Board Options
Rys. 5. Na ilustracji widać, że warstwy1 Mechanical 4 i Mochanica! 16 sq zwiqzane z szablonem - majq zaznaczonq opcje Linkod To Sfreot
Elektronika Praktyczna S/2003
PROGRAMY
Rys. 6. Wszystkie funkcje operujqce no polach dostępne sq wmenu DG$ign>RQQrn$
Rys. 7. Norzedzio do wymiarowania dostępne sq z menu Dimonsion oraz paska narzędziowego Dimonsions
lacyjne, dostosowując je do wymogów danej części obwodu. W Protelu DXP znacznie rozszerzono funkcjonalność pól wstawiania o możliwość tworzenia pól wielobocznych, możliwość kopiowania formatu pola, tworzenia pola dopasowanego do klasy elementów oraz funkcje automatycznego prowadzenia i usuwania ścieżek wewnątrz wybranego pola.
Trzeba dodać, że program może automatycznie tworzyć pola związane z pewnymi częściami projektu, jak np. dla arkuszy schematów bądź kanałów projektu wielokanałowego. Dzięki temu, przechodząc do projektowania PCB, mamy już wyznaczone na płycie obszary obejmujące poszczególne bloki urządzenia. Wszystkie funkcje operujące na polach dostępne są w menu Dssign>Rooms widocznym na rys. 6.
Narzędzia do wymiarowania
Protel DXP zawiera obszerny zestaw narzędzi do wymiarowania, obejmujący wymiarowanie: liniowe, według punktów odniesienia,
Rys. 9. Nowo funkcjo dzielenia wewnętrznych warstw zasilania w Protelu DXP działa jak ciecie nożem
według linii bazowej, według linii odniesienia, kątowe, według linii środkowej, radialne oraz według średnicy liniowej lub radialnej. Narzędzia do wymiarowania dostępne są z menu Dirnsnsion oraz paska narzędziowego Dimensions, widocznych na rys. 7.
W przeciwieństwie do wcześniejszych wersji Protela, teraz wymiary są skojarzeniowe -kiedy zostaną połączone z wymiarowanym obiektem, są z nim związane na stałe, także wtedy gdy obiekt jest zmieniany lub przesuwany. Każdy typ wymiaru daje pełną kontrolę nad jednostkami, precyzją wyświetlania, ustawieniem tekstu i wyglądem strzałek. Kli-kając dwukrotnie wymiar wywołujemy okienko dialogowe, podobne do pokazanych na rys. 3, które najlepiej obrazują bogactwo dostępnych opcji.
Usprawnione dzielenie warstw zasilania
Nowa funkcja dzielenia wewnętrznych warstw zasilania w Protelu DXP działa jak cięcie nożem. Chcąc podzielić warstwę, wystarczy ustawić ją jako bieżącą i przejść do trybu pracy z jedną warstwą (np. skrótem klawiszowym Shift+S). Następnie wstawiamy linie cięcia (pozbawione miedzij używając zwykłego polecenia z menu Placs>Lins. Przykładowe efekty podziału pokazano na rys. 9.
Nowe możliwości definiowania kształtów pól lutowniczych
Protel DXP daje do dyspozycji trzy rodzaje definicji pola lutowniczego:
- Simple - właściwości punktu lutowniczego są takie same na wszystkich warstwach,
- Top-Mid-Boiiom - górna i dolna warstwa są określone indywidualnie, zaś wszystkie warstwy wewnętrzne mają identyczne parametry,
- Fuli Stack - właściwości pola lutowniczego mogą być definiowane indywidualnie dla każdej warstwy.
Rys. 10. Wszystkie dostępne parametry pól lutowniczych można modyfikować w przed-stowionym oknie
Rys. 11. Wysokość każdego podzespołu możemy określić bezpośrednio na płycie lub też na poziomie biblioteki elementów
Rys. 8. Wymiary w Protelu DXP sq skojarzone z wymiarowanym obiektem
Rys. 12. Definicja przykładowej reguły nakłada restrykcje na maksymalnq wysokość elementów 4 mm w obszarze określonym polem Wy$DQ_4rnrn
Wszystkie dostępne parametry pól lutowniczych są widoczne na rys. 10. Dostęp do pełnej definicji pola lutowniczego, po wybraniu opcji Fuli Stack, uzyskujemy naciskając przycisk Fdit Fuli Pad Laysr Dsfinition.
Zarządzanie wysokością elementów na PCB
W Protelu DXP z Service Pack 2 wprowadzono możliwość określania wysokości elementów PCB. Wysokość każdego podzespołu możemy określić bezpośrednio na płycie lub też na poziomie biblioteki elementów, jak to widać w okienku na rys. 11.
Wraz z wprowadzeniem parametru wysokości elementu, pojawiła się nowa reguła projektowa w sekcji Placement, która pozwala na zdefiniowanie restrykcji na wysokość elementów w pewnych obszarach płytki drukowanej (rys. 12}. Dzięki temu możemy w prosty sposób wyznaczyć na płycie obszary krytyczne, ze względu na wysokość elementów, np. w miejscach gdzie obudowa nie pozwala na przekroczenie pewnych gabarytów. Program sam nadzoruje, aby zbyt wysokie podzespoły nie pojawiły się w miejscach, w których zabronimy definiując stosowne reguły. G rzego rz Wit ek, Evat ron ix
Dodatkowe informacje
Dodatkowe informacje można uzyskać w firmie EvatroniK, www.evatronix.com.pl
Elektronika Praktyczna S/2003
SPRZĘT
Szybka przystawka oscyloskopowa
DSO
Przewagą przystawek oscyloskopowych nad tradycyjnymi oscyloskopami w wielu zastosowaniach jest fakt, że nie posiadają własnego ekranu ani klawiatury (panelu operatorskiego], co wyraźnie zmniejsza cenę urządzenia. Zamiast nich użytkownik dostaje wirtualny panel operatorski - oprogramowanie działające pod kontrolą Windows (95/9B/Me/NT/2000/XP). Prezentowane urządzenie komunikuje się z komputerem za pomocą portu drukarkowego lub interfejsu USB.
Oprogramowanie sterujące pracą przystawki DSO-25216 nie próbuje naśladować płyty czołowej oscyloskopu, lecz zoptymalizowano je pod kątem maksymalnego wykorzystania możliwości środowiska Windows. Projektanci firmy CCC wykorzystali
elementy wizualizacyjne i sterujące typowe dla Windows np.:
- ScrollBar - płynna (co do bitu] zmiana parametrów takich jak napięcie wyzwalania (oscyloskop] i próg przełączania (analizator], przesunięcie widoku zawartości bufora na ekranie, offset sygnałów analogowych,
- ComhoBox - ustalanie parametrów, które przyjmują tylko kilka wartości np. sposób wyzwalania, rodzaj podłączonej sądy pomiarowej itp.,
- Button - włączanie odpowiedniej funkcji np. start pomiarów, auto set itp. Zastosowana została popularna technika Drag&Drop - chwytanie kursorem i przeciąganie kursorów (V i t], przesuwanie zawartości bufora wzdłuż osi czasu. Program
Tab. 1. Podstawowe parametry przystawki oscyloskopowej DS025216
Liczba wejść analogowych (oscyloskop) 2
Liczbawejść" cyfrowych (analizator stanów logicznych) 16
Pasmo przenoszenia SOMHz
Impedancja wejść cyfrowych 200kn/5pF
Impedancja wejść analogowych iDMn/15pF
Czułoś ć wejść anal og owych 5nmV/dz...2V/dz.
Częstotliwośćnpróbkowania(analogowaincyfrowa) 20GHz 1 nHz... 250 M Hz; analog owa (repetitivś\
Regulowany próg przełączania analizatora (0/1) Od-6,4Vndo + 6,4V
Wyzwalanie analogowe Wncałym zakresie pracy oscyloskopu
Wyzwalanie cyfrowe (analizator stanów logicznych) Zadaną kombinacją wielu wejść (0,1 ,x)
Pamięć danych pomiarowych 12S tysięcy punktów
Maksymalne napięcie wejściowe analogowe (sonda 1:1) ą50V(chwilowo100V)
Maksymalne napięcie wejściowe cyfrowe ą50V(chwilowo100V)
Analiza FFT Maks. Snkn punktów, dla97,6 MHz
Kom unikacjazn komputerem PC Port drukarki wntrybieEPP lub USB2.0
Ciekawym rozwiązaniem dla
elektroników może być
zastosowanie do badań (pomiarów)
przystawki oscyloskopowej zamiast
standardowego oscyloskopu.
Przystawka taka w przypadku
produktu firmy Clock Computer
Corporation (CCC) wyposażona jest
dodatkowo w analizator stanów
logicznych. Połączenie analizatora
stanów logicznych i oscyloskopu
daje w rezultacie urządzenie
szczególnie przydatne w pracowni
elektronicznej - rzadko spotykane
u innych producentów przystawek
oscyloskop owych.
sterujący zaopatrzony jest w menu główne, w którym ulokowano większość jego funkcji, w tym operacje zapisu i odczytu danych z pliku, wydruki, zapis i odczyt konfiguracji, kalibracja sprzętu itp. Dzięki wykorzystaniu komputera PC jako interfejsu użytkownika zaistniała możliwość gromadzenia danych pomiarowych w celu archiwizacji i późniejszego ich obrabiania. Możliwe jest zapisywanie wyników do plików binarnych, tekstowych, eksportowanie bezpośrednio do arkusza MS Excel, jak również drukowanie. Oprogramowanie liczy FFT i wyświetla widmo mierzonego sygnału.
Wbudowany analizator stanów logicznych pracuje synchronicznie z częścią analogową (oscyloskopu]. Obie części (analizator i oscyloskop] mogą oczywiście pracować tak, jakby były samodzielne (sam analizator bez oscyloskopu lub sam oscyloskop bez analizatora].
Ze względu na wysoką odporność wejść urządzenia na uszkodzenia - normalnie ą50 V (w impulsie ą100 V] urządzenie świetnie nadaje się do pracy w ciężkich warunkach np. pomiary działania komputera pokładowego samochodu w czasie jazdy (warsztaty samochodowe, tuningowe]. Przystawka DSO-25216 ma niewielkie wymiary, dzięki czemu łatwo jest ją wykorzystać podczas pomiarów terenowych do współpracy z komputerem przenośnym.
Czytelnicy, którzy chcą zapoznać się z możliwościami urządzenia, mogą pobrać demonstracyjne oprogramowanie ze strony producenta http:ffwww.clock-link.corn.tw lub ze strony pomocy technicznej dystrybutora - firmy El-mark http:ffwww.slinark.coin.pl. Oprogramowanie publikujemy także na CD-EP8/2003B.
Tomasz Kozłowskl Elmark Automatyka
Dodatkowe iifonnacje
Prezentowane urządzenie udostępniła redakcji firma Elmark Automatyka, tel. 821-30-54, www.elrnark.com.pl.
Elektronika Praktyczna S/2003
67
KURS
Opis protokołu Mbus v2 dla telefonów Nokia 3210, 33xx, 3410, 51 xx, 61 xx, 62xx, 7110, 82xx, 9110, 9210
Programowanie telefonów komórkowych, część 2
Blokady (locks)
Telefony komórkowe są wyposażone w systemy bezpieczeństwa, spośród których najczęściej użytkownicy spotykają się z tzw. simlockiem. Blokada ta ma za zadanie uniemożliwić eksploatację telefonu poza siecią określonego operatora. Telefon z aktywną blokadą nie będzie więc działał z kartą SIM pochodzącą od innego operatora.
Stwierdzenie które z blokad są aktywne jest możliwe po wysianiu ramki: 1F- 00- 10 - 40- 00- 04 - 00- 01 - 8A - 00- 13 - D3
W odpowiedzi telefon przesyła potwierdzenie przyjęcia ramki: 1F 10 00 7F 33 63 następnie przesyła odpowiedź: 1F 10 00 40 00 1A 01 01 8A 00 OA 01
10-00-00-00-00-00 00 - 00 - 00 - 00 - 00 - 00 - 00 - 10 - 00 - 00 - 00 - 00 -
00-00-0D-D9
Odebrane dane należy potwierdzić przesyłając do telefonu ramkę:
1F-00-10-7F-0D-7D
Bajt lOh zaznaczony kolorem w odebranej ramce danych zawiera informację o aktywnych blokadach. Najistotniejszą informację niosą cztery mniej znaczące bity bajtu:
Bit na pozycji (2)= O/l - brak/ aktywna blokada LOCKl (simlock)
Tab. 3. Blokady stosowane w większości współczesnych telefonów komórkowych
Hokada Oznaczenie 1tfpngpg
LOCK1 (simlock) MCC+MNC 2n bajty + półbajt
LOCK2 GID1 2nbajiy
LOCK3 GID2 2nbajly
LOCK4 MSIN 5n bajtów
Tab. 4. Kody operatorów sieci komórkowych
Operator KodMCC+NNC
PLUS GSM 260-01
ERA GSM 260 - 02
IDEACENTERTEL 260 - 03
Programowani e telefon ów kom orkowych j est z jedn ej strony "sztuką m agiczną ", natomiast z drugiej można je przeprowadzić za pomocą dowolnego komputera i odpowiedniego oprogramowania. Podstawą jest znajomość protokołu Mbus, który przedstawiamy w artykule.
Bit na pozycji (2a)= O/l - brak/ aktywna blokada LOCK2
Bit na pozycji (22)= O/l - brak/ aktywna blokada LOCK3
Bit na pozycji (23)= O/l - brak/ aktywna blokada LOCK4
Przykładowa odpowiedź telefonu, który ma aktywną blokadę simlock: 1F10 00 40 00 1A 01 018A 00 0A 01
01-00-00-26-00
1F-FF-FF-FF-FF-F0-00-00-00-00-00-00-00 - 00 - 00 - 03 - 1F
Kod operatora, dla którego jest założona blokada simlock znajduje się w 16, 17 i 18 bajcie odebranej ramki danych. Kod ma długość 2,5 bajtu: 26-00-1F
Pokazany ciąg bajtów niesie informację o aktywnej blokadzie simlock założoną na operatora Plus GSM -260-01 (tab. 4).
Monitor sieci
Monitor sieci to specjalny tryb, w którym mamy możliwość monitorowania większości parametrów sieci oraz telefonu. Funkcja ta jest zazwyczaj ukryta i chcąc mieć do niej dostęp należy ją aktywować.
Większość danych obserwowanych w Net-Monitorze jest dla ,,zwykłych" ludzi niezrozumiała - jest to po prostu seria zmieniających się cyfr i liter.
Tab. 5. Kody rozkazów związanych z obsługą Net-Monitora
Polecenie Rozkaz bramy
Aktywacja Net-Monitora 0x7 E, 0xF2
Usunięcie Net-Monitora 0x7E, 0xF1
Rozwinięcie menu Net-Monitora 0x7E, 0xF3
Dane te dla specjalistów są w pełni zrozumiałe i dzięki nim mogą oni dowiedzieć się prawie wszystkiego
0 działaniu sieci i jej stanie.
Aktywacja Net-Monitora wymaga wysłania ramki: 1F - 00 - 10 - 40 - 00 - 04 - 00 - 01 - 7E - F2 - 14 - D2
Telefon potwierdza jej odbiór za pomocą ramki:
1F 10 00 7F 14 64 następnie przesyła odpowiedź: 1F - 10 - 00 - 40 - 00 - 38 - 01 - 01 - 7E - 00 - 00 - EA -
00 - 10 - CC - D8 - 00 - 00 - 00 00- 00- 00- 00 -00- 00- 10- CC- D8- 00- 09- 00-
00-00-09-00-00-02-FF 00 - 00 - 01 - 43 - 01 - 11 - 00 - 00 - 00 - 00 - 01 - 00 -00 - FF - 00 - 00 - 00 - 00 - 00 00-00-00-01 - 42 - 07 - F6 Odebrane dane potwierdzamy wysyłając ramkę:
1F 00 - 10 7F - 0E - 7E Pozostałe rozkazy związane z obsługą Net-Monitora zestawiono w tab. 5.
Logo operatora
Standardowe logo operatora ma wymiary 72 pikse-le x 14 pikseli
1 zajmuje w pamięci 126 bajtów. Nasze własne logo musimy wysłać do telefonu w określonym porządku, aby zostało prawidłowo odebrane i wyświetlone na wyświetlaczu telefonu. Każdy wiersz wyświetlacza zajmuje w pamięci 72 bity, na które składa się 9
Elektronika Praktyczna 8/2003
69
KURS
Rys. 3. Wyglqd projektowanego logo
00-00-00-00-00-01-92-92-92-0E-/8-1C-73 B 0 79 9 2 92 92 11 44 2 2 8A 48 45
M
AA-AA- 1F- 44-20 -BA- 48-45 -AA-M-AA- 10 -44-20-8A-48-45-44-44-44-11-44-2?-8A-
www.ep-com.pl
T Menu
Rys. 4. Wyglqd wyświetlacza telefonu zwyświetlonym nowym logo
lejnych bajtów. Będziemy wiec wstawiać kolejne bajty grafiki poruszając się zawsze z lewej do prawej w kaś-dym z wierszy. "Świecący" piksel rna wartość "1", natomiast "zgaszony" wartość "O". Dla przykładu, zapis bitowy grafiki pokąsanej na rys. 3 wygląda następująco:
W4- 00000000 00000000 00000000 00000000 00000000
W5- 1001001010010010100100100000111001111000 00011100 01110011 10110000 01111001
W6- 100100101001001010010010 00010001 01000100 0010001010001010 01001000 01000101
W7- 10101010101010101010101000011111 01000100 0010000010001010 01001000 01000101
0010000010001010 01001000 01000101
0010001010001010 01001000 01000101
W10-01000100 01000100 010001001000111001111001
00011100 011100100100101001111001
W12- 00000000 00000000 00000000 00000000 01000000 00000000 00000000 00000000 01000000
W13 - 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
W14- 00000000 00000000 00000000 00000000 00000000
Wx - wartości poszczególnych bitów w określonym wierszu fx - numer wiersza).
Format wysyłanej ramki jest następujący:
1F- 00- ID- 05-00- 8C- 00- 01 -00- 30- 00 -62-F0- 30 -00 -82- 00-48- 0E- 01 -00- 00 -00-00 -
45-44-44-44-8E-/9-K-/2-4A-/9-00-QQ-
00-00-00-00-OO-OO-OO-OO-OO-OF-AÓ Po wysłaniu powyższej ramki do telefonu, na wyświetlaczu telefonu zostanie wyświetlone nowe logo (przykład pokazano na rys. 4).
Regulacja kontrastu wyświetlacza LCD (profil)
Wartości wszystkich parametrów wchodzących w skład ustawień profili użytkowych, są określone przez 4 bajty. Każdy z bajtów określa inne parametry. Wartość czwartego bajtu odpowiedzialna jest między innymi za wartość kontrastu wyświetlacza LCD.
Kontrast wyświetlacza LCD w telefonie może być regulowany w granicach O...21h. Typowa wartość kontrastu dla w pełni sprawnego wyświetlacza, zapewniająca najlepszą widoczność to oFh lub lOh.
Zmiana kontrastu wymaga wysłania do telefonu ramki: 1F-00-ID-40-00-0/-00-01-68-00-00-00-
XX-Seq- ChsizkSurn
XX - wartość kontrastu wyświetlacza LCD (wartość szesnastkowa)
Złącza wybranych telefonów firmy Nokia
Nokia 3210
(ŚMokzgflry)
1-BTCM1 4-Mufl
2-TC 6-FW
3-GM) 6-Vpp
Nokia 3310, 3330, 5110
1-MbUB 3-HX 2-OND 4-TK
Nokla51xx, 61xx, 62xx, 71 xx
IM J
7-RX
Nokia 5210, 8210, 8250, 8850
1-Mbłrt 3-HX Z-OND 4-TX
70
Elektronika Praktyczna S/2003
KURS
Elektronika Praktyczna 8/2003 71
KURS
Tab. 6. Kody poleceń związanych z testowaniem telefonu
Polecenie Rozkaz bramy
Test LCD -1 0xD3,0x03,0x02
Test LCD -2 0xD3,0x03, 0x01
Wyczyszczenie wyświetlacza LCD 0xD3,0x02, 0x03
Test Buzzera 0x8F
Tab. 7. Kody poleceń umożliwiających przywrócenie ustawień domyślnych
Seq - numer sekwencji ramki CheckSum - Suma kontrolna dla ramki
Po wysianiu takiej ramki telefon należy wyłączyć następnie ponownie włączyć aby przeprowadzona operacja odniosła skutek.
Zmiana kodu zabezpieczającego
Kod zabezpieczający to 5-cyfrowy kod, który zabezpiecza nasz telefon przed niepowołanym dostępem. Wcześniej opisana była procedura odczytu kodu zabezpieczającego, poniżej opiszę procedurę zmiany tzw. Secuńty Code. Aby zmienić kod zabezpieczający należy wysłać ramkę z rozkazem jego zmiany na inny:
1F - 00 - 10 - 40 - 00 - 09 - 00 - 01 - 6F - 01 - Xl - X2 -X3 - X4 - X5 - 00 - SeqNumber - CheckSum Xl, X2, X3, X4, X5 - kolejne cyfry nowego kodu
Po bajtach zawierających nowe wartości dla określonego parametru występuje zawsze bajt zerowy ,,00". Nie dotyczy to edycji profilu!
Przykład:
Aby zmienić kod zabezpieczający na 22222 należy wysłać do telefonu ramkę w poniższym formacie (znaki kodowane w ASCII): 32h = 2
Ramka z rozkazem ustawienia kodu zabezpieczającego na 2222: 1F - 00 - 10 - 40 - 00 - OA - 00 - 01 -6F- 01 -32-32 -
32-32-32-00-2F-37
Telefon potwierdza przyjęcie ramki:
1F-10-00-7F-2F-5F następnie przesyła odpowiedź: 1F-10-00-40-00-05-01-01-6F-01-01-03-
26
Potwierdzamy odbiór danych za pomocą ramki:
1F-00-10-7F-0F-7F
Po wysłaniu powyższej ramki do telefonu, kod zabezpieczający w telefonie zostanie ustawiony na 22222.
Test wyświetlacza LCD i buzzera
Istnieje możliwość wysłania ramek z rozkazem przeprowadzenia testów określonych podzespołów naszego telefonu np. buzzera, wyświetlacza LCD, silniczka wibratora itp.
Przedstawię jedynie rozkazy odpowiedzialne jedynie za test wyświetlacza LCD i buzzera (tab. 6).
Polecenie Rozkaz bramy
Przywrócenie ustawień fabrycznych 0x65,0x38
Zerowanie telefonu bez ponownego pytania onkodPIN 0x64,0x03
Zerowanie telefonu zapytaniem onkodPIN 0x64, 0x04
Przykłady:
Testl LCD:
1F - 00 - 10 - 40 - 00 - 05 - 00 - 01 - D3 - 03 - 02 -SeqNum - CheckSum
Czyszczenie wyświetlacza LCD:
1F-00-10-40-00-05-00-01-D3-02-03-
SeqNum - CheckSum
Test Buzzera: 1F - 00- 10- 40-00- 03 - 00- 01 -8F-SeqNum-
CheckSum
Po wyłączeniu telefonu i ponownym włączeniu, wszystkie ustawienia przyjmą wartości takie jak przed wykonaniem testu!
Zerowanie telefonu
i ustawienia fabryczne
Po przywróceniu ustawień fabrycznych wszystkie ustawienia telefonu przyjmą standardowe wartości (logo, dzwonki, kod zabezpieczający itp.). Kody poleceń zestawiono w tab. 7.
Po przywróceniu ustawień fabrycznych należy wykonać zerowanie telefonu!
Przykład:
Ramka z rozkazem przywrócenia ustawień fabrycznych w telefonie 1F-00-10-40-00-04-00-01-65-38-00-17
Nokia potwierdza przyjęcie ramki: 1F-10-00-7F-00-70
Potwierdzamy odbiór
1F 00 10 7F 10 60
Po przywróceniu ustawień fabrycznych w telefonie, wszystkie parametry telefonu przyjmą domyślne wartości (kod zabezpieczający - 12345, ustawienia połączeń itd.).
Informacje zawarte w artykule z pewnością nie są kompletne, ponieważ standard komunikacji z telefonami marki Nokia nie został publicznie przedstawiony przez jego producenta. Marcin Czerniawski SimKom@wp.pl
Pragnę gorąco podziękować mojej dziewczynie Agnieszce za duchowe wsparcie podczas zdobywanie informacji na temat protokołu oraz podczas pisania artykułu. Bez jej pomocy artykuł nigdy by nie powstał.
72
Elektronika Praktyczna 8/2003
KURS
Podstawy projektowania systemów mikroprocesorowych, część 6
Często dołączony do systemu mikroprocesorowego wyświetlacz siedmiosegmentowy jest niewystarczający z punktu widzenia liczby znaków możliwych do wyświetlenia oraz liczby wyświetlanych pozycji. O wiele większe możliwości daje zastosowanie wyświetlacza znakowego LCD/OLED lub VFD zintegrowanego ze sterownikiem. Wyświetlacze takie (wykorzystujące najczęściej sterownik HD44780 lub znim kompatybilny) umożliwiają wyświetlenie - w zależności od modelu - od jednej linii szesnastu znaków, do czterech linii po czterdzieści znaków. Sposób dołączenia wyświetlacza przedstawiono na rys. 22. Jak widać, do sterowania wyświetlacza znakowego stosuje się trzy sygnały sterujące oraz magistralę danych, która może mieć - w zależności od konfi-
PS.2
P2.1 P2.0
VCC
'51
GND
P1.7 P15 P1.5 P1.4 P1,3 P1.2 P1.1 P10
T
Rys. 22
W szóste/ części naszego cyklu przedstawiamy sposób sterowania wyświetlaczem alfanumerycznym zintegrowanym ze sterownikiem HD44780 oraz podstawy sterowania za pomocą mikrokontrolera urządzeniami dużej mocy.
do wyświetlacza odpowiedniej sekwencji rozkazów sterujących ustalających parametry jego pracy. Przykładowy program inicjujący zamieszczono na list. 6 (wykorzystywano wyświetlacz 1 linia x 16 znaków).
Wyświetlanie danych na wyświetlaczu polega na przesyłaniu do sterownika kodów ASCII znaków przeznaczonych do wyświetlenia. W najprostszym przypadku konfiguracyjnym, wyświetlacz może działać w ten sposób, że po przesłaniu kolejnego znaku kursor (widoczny lub niewidoczny) przesuwany jest automatycznie na następną pozycję. Dzięki temu zmiana wyświetlanego tekstu wymaga wpisania ich kodów do pamięci sterownika, resztą zajmuje się sterownik bez żadnej ingerencji współpracującego mikrokontrolera. Na list. 7 przedstawiono podprogram przesyłający pojedynczy bajt (kod ASCII znaku) do sterownika wyświetlacza. Wykorzystano w nim przedstawiony wcześniej podprogram sprawdzania zajętości.
Podobnie wygląda obsługa programowa wyświetlacza znakowego LCD pracującego z magistralą 4-bi-tową. Jedyną różnicą jest sposób przesyłania danych: następuje transmisja dwóch słów czterobito-wych, każdorazowo strobowanych sygnałem E. Jako pierwsza przesyłana jest starsza połówka bajtu. Magistrala danych ogranicza się do linii D4...D7, natomiast linie Do do D3 pozostają nie podłączone. Oczywiście konieczne jest przeprowadzenie odpowiedniej inicjalizacji wyświetlacza przygotowującej go do pracy z czterobitową magistralą danych.
Przedstawiony powyżej opis jest jedynie zarysem problemu obsługi wyświetlacza znakowego
guracji - cztery lub osiem (jak na rysunku) linii danych. Duże możliwości wyświetlacza są okupione nieco bardziej skomplikowaną obsługą programową. Pełna dokumentacja techniczna sterownika HD44780 jest dostępna na stronie internetowej hiip;// www.ep.com.pl w dziale Down-load>Dokumeniacje, w artykule przedstawimy jedynie ogólną zasadę współpracy wyświetlacza z mik-rokontrolerem oraz zaprezentujemy przykładowe podprogramy obsługi takiego wyświetlacza.
Jak już wspomniano, oprócz ośmio- lub czterobitowej magistrali danych mikrokontroler jest sprzęgnięty z wyświetlaczem za pośrednictwem trzech linii sterujących: E - linia sygnału strobującego podczas transmisji między wyświetlaczem a mikrokontrolerem, R/S - linia informująca sterownik wyświetlacza o tym, czy przesyłana informacja jest znakiem przeznaczonym do wyświetlenia, czy też jednym z rozkazów konfiguracyjnych, R/W -linia informująca o kierunku transmisji (odczyt/zapis). Po włączeniu zasilania konieczne jest przesłanie
D7
D2 D1 DO
Moduł wyświetlacza
CONTRAST
T
Elektronika Praktyczna S/2003
81
KURS
List. 6. Procedura inicjująca sterownik wyświetlacza LCD 1x16
INIC_WYS:
CLR P2.0 ;wyzerowanie linii strobującej
MOV R7,#0FFH
OPLCD: ;realizacja opóźnienia koniecznego
MOV R6,#0FFH i do wewnętrznej inicjalizacji wyświetlacza
DJNZ R6,$ i po włączeniu zasilania
DJNZ R7,OPLCD
CLR P2 .1 ;przesłanie rozkazu konfiguracyjnego
CLR P2.2 i (patrz specyfikacja HD44780)
MOV P1,#OFH
SETB P2.0 i impuls
CLR P2 .0 ;strobujący
LCALL CLR_LCD ;wywołanie procedury czyszczącej wyświetlacz
LCALL SPR_BUSY i sprawdzenie zajętości wyświetlacza
CLR P2.1
CLR P2 .2
M0V P1,#38H i przesłanie kolejnego rozkazu konfiguracyjnego
SETB P2.0
CLR P2 .0
LCALL SPR_BUSY i sprawdzenie zajętości
CLR P2.1 ;kolejny rozkaz konfiguracyjny
CLR P2 .2
M0V Pl,#0CH
SETB P2.0
CLR P2 .0
RET ;powrót do programu głównego
SPR_BUSY: ;podprogram sprawdzający zajętość wyświetlacza
M0V Pl,#0FFH i ustawienie linii portu - praca jako wej ście
CLR P2.1 ;odczyt bajtu
SETB P2.2 i statusu wyświetlacza
SETB P2.0
M0V A,Pl ;odczyt szyny danych
CLR P2 .0
JB ACC-7,SPR_BUSY i pozostanie w pętli jeśli zajęty
RET ;powrót do programu głównego
CLR_LCD: ;podprogram czyszczenia zawartości wyświetlacza
LCALL SPR_BUSY ;sprawdzenie czy zajęty
CLR P2 .1
CLR P2 .2
M0V Pl,#01H i wysłanie rozkazu zerowania
SETB P2.0
CLR P2 .0
RET ;powrót do programu głównego
LCD. Przedstawienie pełnej specyfikacji tego typu wyświetlaczy wykracza poza ramy tego artykułu. Jest to związane m.in. z tym, że przedstawiony tutaj sposób obsługi wyświetlacza LCD może być nieskuteczny w przypadku zastosowania wyświetlacza innego rodzaju (inna liczba znaków i linii, niekiedy wystarczy tylko inny producent), co wiązałoby się
z przedstawieniem ogromnej liczby procedur w celu zapewnienia współpracy z każdą możliwą konfiguracją. Wydaje się jednak, że przedstawione tutaj informacje w połączeniu z notą katalogową sterownika HD44780 pozwolą średnio doświadczonemu programiście opracowanie podprogramów odpowiednich dla danego, używanego przez niego, modelu.
List. 7.
i ZNAK - zmienna bajtowa przechowująca kod znaku do wyświetlenia
WYSW_ZNAK:
LCALL SPR_BUSY sprawdzenie zaj ętości
SETB P2.1 tryb zapisu
CLR P2 .2 danej
M0V P1,ZKAK wysłanie kodu znaku na szynę danych
SETB P2.0 impuls
CLR P2 .0 strobujący
RET powrót do programu głównego
Sterowanie urządzeniami dużej mocy
Budując sterownik mikroprocesorowy często powierzamy mu zadanie sterowania urządzeniami dużej mocy i/lub urządzeniami zasilanymi bezpośrednio z sieci. Z oczywistych względów nie możemy obciążyć wyprowadzeń mikro-kontrolera prądami rzędu ampe-rów, a tym bardziej nie możemy podłączyć do niego bezpośrednio napięcia sieciowego 220V. Najprostszym sposobem sterowania urządzeniami dużej mocy i równocześnie metodą na zapewnienie separacji galwanicznej od sieci 220V jest zastosowanie przekaźnika. Układ sprzęgnięcia przekaźnika z mikrokontrolerem pokazano na rys. 23a). Jako element pośredniczący zastosowano tranzystor NPN z linii portu mikrokontrolera. Zastosowanie rezystora Rl jest konieczne w przypadku sterowania dużych przekaźników o znacznym prądzie wzbudzenia - zwiększa on prąd bazy tranzystora, dzięki czemu nie trzeba stosować elementu o bardzo dużym wzmocnieniu. Oczywiście przekaźnik nie musi być zasilany z napięcia zasilającego mikrokontroler (+5 V na rysunku) - można stosować przekaźniki na dowolne napięcia jednak tylko z przedziału napięć tzw. bezpiecznych (poniżej 50V) ze względu na brak separacji galwanicznej między obwodem cewki przekaźnika a mikrokontrolerem (do którego może być podłączona np. klawiatura). Dioda dołączona równolegle do cewki przekaźnika zabezpiecza tranzystor przed przepięciami powstającymi w chwili wyłączania. Zaletą tego układu jest możliwość sterowania bardzo dużymi mocami - w praktyce ograniczeniem jest tylko wytrzymałość styków zastosowanego przekaźnika. Wadą jest natomiast stosunkowa powolność (nie od uniknięcia w układach z elementami mechanicznymi -czas potrzebny na zadziałanie przekaźnika) oraz skończona liczba przełączeń (związana ze zużywaniem się zestyków).
Jeżeli zależy nam na sterowaniu całkowicie elektronicznym, to w przypadku sterowania urządzeniami na napięcie sieciowe korzystne będzie zastosowanie optotriaka (dokładniej transoptora z optotriakiem jako elementem światłoczułym)
82
Elektronika Praktyczna 8/2003
KURS
+5V
np. 220V AC o (w zależności od przekaźnika)
+5V
MOC3043
+5V
Obc.
Rys. 23
wraz z trakiem, w układzie jak na rys. 23b). Od strony mikrokontro-lera sterowanie odbywa się w identyczny sposób jak sterowanie diody LED - można wykorzystać przeznaczony do takich zastosowań port mikrokontrolera lub w razie potrzeby bufor z tranzystorem. Od strony wysokiego napięcia występuje triak mocy sterowany przez op-totriak wbudowany do transoptora. Na przedstawionym schemacie umieszczono optotriak MOC3043, który jest wyposażony w układ wykrywania przejścia przez zero napięcia sieci, co umożliwia eliminację zakłóceń wnoszonych do sieci przy włączaniu triaka. Rezystory R2 i R3 polepszają warunki pracy układu wykrywania zera. Jeśli zastosujemy optotriak z serii MOC3023 (bez układu wykrywania zera), to powyższe rezystory nie są niezbędne. Warto jednak zostawić rezystor R2 - zabezpiecza on trans-
optor przed przeciążeniem w przypadku uszkodzenia triaka głównego - wówczas cały prąd obciążenia mógłby popłynąć przez optotriak i spowodować jego zniszczenie. Za-
stosowanie transoptora zapewnia izolację galwaniczną do napięcia rzędu 5000 V (w zależności od producenta).
W przypadku sterowania elektronicznego urządzeniami pracującymi przy niskim napięciu stałym, najlepiej jest zastosować włączanie obciążenia przy pomocy tranzystora MOSFET dużej mocy. Sytuację taką przedstawiono na rys. 23c. Tranzystor mocy MOS z kanałem N sterowany jest tutaj przez wzmacniacz operacyjny pracujący w układzie komparatora. Jako napięcia wejściowe do wzmacniacza operacyjnego doprowadzono potencjał równy połowie napięcia zasilania mikrokontrolera, wytworzony za pomocą rezystorów R2 i R3 oraz napięcie z linii portu mikrokontrolera. Zasilanie wzmacniacza napięciem 12 V jest niezbędne ze względu na napięcie progowe tranzystora MOS, które dla elementów dużej mocy może sięgać nawet 8 V. Sterowanie takiego elementu bezpośrednio z wyprowadzenia mikrokontrolera (napięcie sterujące max. 5V) doprowadziłoby do znacznych strat mocy na tranzystorze, wskutek niepełnego otwarcia jego kanału. Zastosowany rezystor Rl ogranicza prąd związany z przeładowaniem pojemności bramki tranzystora MOS (rzędu nawet 10 nF). W prezentowanym układzie wystąpienie jedynki logicznej na wyprowadzeniu portu doprowadzi do załączenia tranzystora (napięcie wyjściowe wzmacniacza równe napięciu zasilania).
Paweł Hadam, AVT pawel.hadam@ep.com.pl
Elektronika Praktyczna 8/2003
83
KURS
Celem tego artykułu jest opis funkcjonowania oraz sposobów konfiguracji i wykorzystania timerów w mikrokontrolerach z rodziny AVR. Rozpoczynając od ogólnego opisu, poprzez przykładowe programy, postaram się wytłumaczyć jak wykorzystać timer wbudowany w strukturę mikrokontrol era AVR dla własnych potrzeb. W przykładach programów posługiwałem się mikrokontrolerem AT90S8535.
Obsługa timerów Taktowanie przez zegar systemowy
Zegar systemowy używany jest jako wejściowy dla preskalera również wówczas, gdy częstotliwość taktowania CPU została wybrana jako jedna z otrzymywanych z preskalera. Timer pracuje więc synchronicznie z zegarem systemowym. Wszystkie trzy timery AT90S8535 oraz timery większości innych mikrokon-trolerów AVR pracują w ten sposób. Nie są wymagane żadne dodatkowe układy zewnętrzne. Zaletą takiego rozwiązania jest fakt, że dzięki bardzo wysokiej częstotliwości zegara systemowego (o wiele wyższej niż tej, która taktuje CPU) operacje przeprowadzane przez mikrokontroler mogą być mierzone z o wiele większą dokładnością.
Częstotliwość przepełnienia timera jest dobrym wskaźnikiem rozmiaru ramki czasowej, którą jest w stanie pokryć timer. Poniższy wzór ukazuje powiązanie pomiędzy częstotliwością przepełnienia timera TOVck> maksymalną wartością, którą może być wpisana do timera MaxVal,częstotliwością zegara systemowego f^K i współczynnikiem podziału preskalera PVal.
TOVCK=
fCK
PCKx
MaxVal MaxVal (PVal Ś MaxVal)
Dla przykładu jeśli CPU taktowane jest częstotliwością 3,69 MHz i timer ma rozdzielczość 8 bitów (MaxVal = 256) wartość preskalera 64 spowoduje, że timer taktowany częstotliwością TCK równą 3,69 MHz/64 wygeneruje ok. 225 sygnałów przepełnienia w czasie 1 sekundy.
TOVCK=
fCK (3,69 MHz*
MaxVal
256
= 225
32,768kHz
Wygenerowanie liczby 225 przepełnień timera w czasie 1 sekundy oznacza konieczność wysłania sygnału przepełnienia co 4,4 ms. Maksymalna wartość preskalera powoduje przepełnienie co 71 ms, minimalna co 69 (J.S. Wymagania aplikacji determinują częstotliwość przepełnień timera. Bazując na nich oraz na znanej częstotliwości taktowania timera łącznie z jego rozdzielczością, nastawa preskalera może być wyliczona przy pomocy następującego wyrażenia:
PVal=-
PCKx
Rys. 2
(TOV Ś MaxVal)
Implementacja w języku asemblera może wyglądać tak, jak poniższy przykład programu. Ustawia on wartość preskalera przy pomocy TCCRO na podział częstotliwości zegara przez 1024:
ldi rl6, (lCS02) I (lCS00) out TCCRO,rl6 ;zegar taktują-;cy timer = zegar systemowy/1024
Taktowanie przez asynchroniczny sygnał zegarowy
W odróżnieniu od innych timerów, które nie obsługują tej opcji Timer 2 AT90S8535 może być taktowany przez zewnętrzne źródło sygnału (rys. 2). W tym celu kwarc lub rezonator ceramiczny podłącza się do wyprowadzeń TOSCl i TOSC2. Oscylator jest zoptymalizowany dla kwarcu tzw.zegarkowego o częstotliwości 32768Hz. Ta częstotliwość jest bardzo dobra zwłaszcza dla implementacji zegara czasu rzeczywistego. Główną zaletą tego rozwiązania jest uniezależnienie od zegara systemowego. Umożliwia ono również CPU pracę z dużą częstotliwością przetwarzania, niekoniecznie dobraną pod kątem pomiaru czasu, podczas gdy timer pracuje z częstotliwością dla nich optymalną. Dodatkowo tryb oszczędzania energii ma opcję umożliwiającą wprowadzenie części układów mikrokontroler a w tryb uśpienia podczas gdy asynchroniczny timer ciągle pracuje. Tutaj jedna uwaga: częstotliwość zewnętrznego oscylatora jest różna dla różnych typów mikrokontrolerów. Jej dolna granica zawiera się w przedziale od OHz do 256kHz a górną wyznacza częstotliwość zegara systemowego: powinna być ona mniejsza lub równa niż Fck/4.
Praca z timerem taktowanym asyn-chronicznie wymaga pewnych dodatkowych rozważań. Ponieważ Timer 2 taktowany jest asynchronicznie w stosunku do zegara systemowego, zdarzenia generowane przez Timer muszą być synchro-nizowane przez CPU. Z tej cechy wynika wymaganie aby częstotliwość taktowania timera była co najmniej czterokrotnie mniejsza niż częstotliwość zegara systemowego. Z drugiej strony możliwe są konflikty pomiędzy synchroniczy-mi i asynchronicznymi żądaniami obsługi (np. przerwania). Jak CPU radzi sobie z takimi sytuacjami? Obsługa zdarzeń jest przeprowadzana przez rejestry tymczasowe. Bity statusu sygnalizują kiedy przeprowadzane jest uzupełnianie zawartości rejestrów. Dokładny opis rejestrów ASSR (Asynchronous Status Register) można znaleźć w karcie katalogowej. Częstotliwość z jaką ustawiany jest bit przepełnienia można obliczyć identycznie jak w poprzednim przypadku z tym, że do równania musi zostać wstawiona częstotliwość zewnętrznego źródła sygnału. Nastawy preskalera Timera 2 zostały podane w tab. 1 (EP7/ 2003), częstotliowość taktowania preskalera Timera 2 jest funkcją bitu AS2 w rejestrze ASSR. Jeśli ten bit jest wy-zerowany, timer pracuje w trybie synchronicznym z częstotliwością zegara systemowego jako wejściową. Jeśli ten bit jest ustawiony, asynchroniczny sygnał zegarowy z wyprowadzeń TOSCl i TOSC2 jest używany jako sygnał wejściowy preskalera. Fragment programu w języku asemblera ustawia preskaler Timera 2 na maksymalną wartość podziału (1024):
ldi rl6, (1CS22) I (1CS21) I (lCS20) out TCCR2,rl6 ; zegar timera
;2 = zegar systemowy / 1024
Taktowanie zewnętrznym generatorem
Timer 0 i Timer 1 mogą być taktowane z zewnętrznego generatora sygnału zegarowego. Tryb ten zapewnia obsługę szeregu różnych źródeł jako generatorów sygnału zegarowego. Jest to taktowanie synchroniczne co oznacza, że CPU wykrywa stan wyprowadzenia i jeśli wykryta została zmiana zewnętrznego sygnału,
84
Elektronika Praktyczna 8/2003
KURS
to przeprowadza odpowiednią akcję synchronicznie z zegarem systemowym. Każde opadające zbocze zegara systemowego powoduje pobranie próbki zewnętrznego sygnału. CPU potrzebuje co najmniej 2 cykli aby wykryć zmianę zewnętrznego sygnału. Ogranicza to maksymalną częstotliwość sygnału zewnętrznego do Fc^/ 2. W zależności o konfiguracji, opadające lub narastające zbocze sygnału na wyprowadzeniu TO/Tl może oznaczać zmianę sygnału zegarowego. Wybór zbocza dokonywany jest przy pomocy bitów CSO0..1 znajdujących się w rejestrze TCCRx (patrz opis w tab. l). Poniższy fragment kodu w języku asemblera pokazuje w jaki sposób ustawić Timer 0 aby pracował z zewnętrznym źródłem sygnału reagując na każde jego narastające zbocze:
ldi rl6, (lCS02) I (lCS01) I (lCS00) out TCCR0,rl6 ;zegar timera
;= zewnętrzne wyprowadzenie TO, ;narastające zbocze sygnału
Stosując ten tryb pracy należy upewnić się, że nastawy kierunku bitu dokonane w rejestrze DDRB (Data Direction Register, Port B) są właściwe. Wybór trybu pracy timera nie powoduje zmian nastaw bitów portu. Po sygnale zerowania wyprowadzenia portu B są ustawiane domyślnie jako wejścia sygnałów.
Jak zatrzymać Timer?
Zatrzymanie timera jest bardzo proste: zapis wartości 0 do preskalera (rejestr TCCRx) zatrzymuje odpowiedni timer. Należy jednak pamiętać, że preskaler w dalszym ciągu pracuje. Kod w języku asemblera zatrzymujący pracę Timera 0 może wyglądać jak niżej:
clr rl6
out TCCR0,rl6 ;zapis war-;tości 0 do TCCRO zatrzymuje ;Timer 0
Jeśli zależy nam na zachowaniu wartości resjestru TCCRO w związku z innymi nastawami, zapis nastaw bitów CSO0..1 kosztuje dodatkowe linie programu i może wyglądać jak niżej:
in rl6,TCCRO ;odczyt aktual-
;nej wartości rejestru TCCRO andi rl6,~( (lCS02) I (lCS01) I (lCS00)) out TCCRO,rl6 ;zapis 0 do
;bitów CS02, CS01, and CSOO w TCCRO
;zatrzymuje Timer 0
Nastawy trybów pracy timerów
Ta część tekstu koncentruje się na sposobach wykonywania nastaw trybów pracy timerów. Należy jednak pamiętać, że podany niżej przykłady dotyczą mikrokon-trolera AT90S85 35 i dla innych mikrokon-trolerów mogą być konieczne zmiany. Jak wcześniej wspomniałem, moim zdaniem używanie przerwań to jedna z najbardziej efektywnych metod obsługi zdarzeń generowanych przez timery: większość z przykładów programowania będzie zawierać obsługę przerwań.
Niezależnie od różnych rozszerzeń oferowanych przez trzy timery, mają one pewne cechy wspólne. Każdy z timerów musi być uruchomiony przez wybór źródła sygnału zegarowego i jeśli używane są przerwania, to również muszą zostać dokonane związane z nimi nastawy. Jedną z zasad obowiązujących przy tworzeniu procedur obsługi przerwań jest ta, że jeśli te same rejestry używane są w programie głównym co i w procedurze obsługi przerwania, to muszą one zostać podczas obsługi przerwania zapamiętane a następnie odtworzone przy powrocie do programu głównego. Jeśli nie wszystkie 32 rejestry (AT90S8535) muszą być używane, dobrze jest użyć odrębnych dla programu głównego i dla procedury obsługi przerwania. Bardzo ważnym jest aby pamiętać, że rejestr statusy SREG (Status Register) nie jest automatycznie zapamiętywany przez procedurę obsługi przerwania i należy również zatroszczyć się o jego zawartość. Tak jest w przypadku programów napisanych w języku asemblera. W tych napisanych w językach wysokiego poziomu, takich jak Bascom czy C, kompilator automatycznie zapamiętuje zawartość SREG przy wejściu do procedury obsługi przerwania i odtwarza ją przy powrocie. O resztę rejestrów należy zatroszczyć się ,,ręcznie". W przypadku programów napisanych w języku asemblera można posiłkować się instrukcjami PUSH i POP jednak należy pamiętać o tym, że niektóre z modeli mikrokontrolerów AVR nie posiadają tych rozkazów na swojej liście wykonywanych poleceń.
8-bitowy Timer 0
Timer 0 jest timerem synchronicznym, co oznacza że jest taktowany przez zegar systemowy, zegar systemowy o częstotliwości zmniejszonej przez preskaler lub przez sygnał zewnętrzny ale zawsze synchronicznie z zegarem systemowym używanym przez CPU.
Przykład - procedura obsługi przerwania na skutek przepełnienia Timera 0
Przykład pokazyuje w jaki sposób Timer 0 może być używany do wywoływania procedury obsługi przerwań. Każde wywołanie zmienia stan portów wyjściowych portu B. Jeśli do wyprowadzeń portu B zostaną podłączone diody LED, to będą one migotać z częstotliwością, którą można wyznaczyć za pomocą wcześniej poznanej formuły:
;podprogram inicjujący tryb pracy
mikrokontrolera
init_Exl:
ldi rl6, (lCS02) I (lCS00)
out TCCRO,rl6 ;zegar Timera 0 ;= zegar systemowy / 1024
ldi rl6, lTOV0
out TIFR,rl6 ;kasowanie ;bitu TOV0 / kasowanie ;bieżącego przerwania
ldi rl6, lTOIE0
out TIMSK,rl6 ;załączenie ;Timera 0, zezwolenie na ;generowanie przerwań
ser rl6
out DDRB,rl6 ;ustawienie
;portu B jako wyjściowego
ret
W następnym kroku zaimplementujemy procedurę obsługi przerwania. Będzie ona wywoływana po każdym przepełnieniu Timera 0. Jej przeznaczeniem jest zmiana stanu bitów portu B:
;procedura obsługi przerwania ;Timera 0 ISR_TOV0: push rl6 in rl6,SREG ;zapamiętanie
;rejestru statusu oraz rl6 push rl6 in rl6,P0RTB ;czytaj stan
;portu B com rl6 ;zaneguj bity
;rejestru rl6 out P0RTB,rl6 ;zapisz rl6 do
;portu B pop rl6 out SREG,rl6 ;odtworzenie
;rejestru statusu i rl6 pop rl6 reti
16-bitowy Timer 1
Podobnie jak Timer 0, Timer 1 pracuje synchronicznie. Dla upewnienia się, że wykonywany jest jednoczesny zapis i odczyt 16-bitowego rejestru timera, do przeprowadzenia tych operacji używany jest rejestr tymczasowy Temp. Czyni to niezbędnym dostęp do tego rejestru w specyficzny sposób. Metoda jest opisana dokładnie w nocie aplikacyjnej firmy Atmel "AVR072: Accessing 16-hit I/O Re-gisters". Bardzo dużym skrótem rozważań na ten temat jest właściwy dla AVR sposób dostępu do rejestrów 16-bitowych przedstawiony w tab. 2. Dociekliwych zachęcam do lektury, tu zajmiemy się wyłącznie przykładami programów użytkowych.
Tab. 2. Właściwy sposób dostępu do rejestrów 16-bitowych
Rodzaj pzeprowadzanej operacp Wpiowszejkolejnooeci W dnjgejkdeFiooeci
Odczyt Odczyt młodszego bajtu (LSB) Odczyt starszego bajtu (MSB)
Zapis Zapis starszego bajtu (MSB) Zapis młodszego bajtu (LSB)
Przykłady użycia: - odczyt:
in rl6,TCNTlL in rl7,TCNTlH
- zapis:
out TCNTlH,rl7 out TCNTlL,rl6
Elektronika Praktyczna 8/2003
85
KURS
Obsługa przerwania Timera 1 pochodzącego od wejścia ICP (Capture Input)
Przykład ten pokaże prostą metodę użycia zdarzenia generowanego na skutek zmiany stanu wejścia ICP oraz obsługi jego przerwania. Wyprowadzenie bitu 6 portu D używane jest jako wejście dla funkcji pomiaru sygnału zewnętrznego i nosi nazwę ICP. Funkcja pomiaru związana z tym wejściem funkcjonuje w taki sposób, że Timer może zmierzyć czas pomiędzy dwoma następującymi po sobie opadającymi lub narastającymi zboczami sygnału podanego na wejście ICP. W prezentowanym przykładzie 8 bardziej znaczących bitów Timera 1 zostanie zapisanych do portu B. Jeśli tak, jak w przykładzie powyżej, do wyprowadzeń portu B podłączymy diody LED, uzyskamy prostą funkcję wskazującą czas trwania impulsu. Bit 6 portu D (wejście ICP) może być podłączony do generatora fali prostokątnej lub po prostu do przycisku. W prezentowanym przykładzie, dla rezonatora kwarcowego około 4MHz, maksymalny mierzony czas zbliżony jest do 1 sekundy:
;podprogram inicjalizacji trybu ;pracy mikrokontrolera init_Ex2:
ldi rl6, (1CS11) I (lCS10) out TCCRlB,rl6 ;zegar Timera
;1 = zegar systemowy / 64 ldi rl6,1ICF1 out TIFR,rl6 ;kasowanie
;bitu ICFl/kasownie
;obsługi trwającego
;przerwania ldi rl6,1TICIE1 out TIMSK,rl6 ;zezwolenie na
;obsługę przerwań od ICP ser rl6 ;ustawienie
;bitów W rl6 out DDRB,rl6 ;załączenie
;trybu pracy portu B jako
;wyj ściowego cbi DDRD,PD6 ;załączenie
;PD6/ICP jako wejście rę.t
Następnie wykonamy procedurę obsługi przerwania. Jej zadaniem jest po pierwsze wyprowadzenie starszego bajtu licznika Timera 1 przez port PB oraz przygotowanie timera do następnego pomiaru:
TIM1_CAPT:
push rl6
in rl6,SREG ;zapamiętanie
;wartości rejestru ;statusu i rl6
push rl6
in rl6,ICRlL ;odczyt ;młodszego bajtu ICR ; tu można zapamiętać młod-;szy bajt w zmiennej
in rl6,ICR1H ;odczyt ;starszego bajtu ICR
com rl6 ;negowanie
;odczytanych bitów ze ;względu na diody LED ;jeśli LEDy nie są podłą-
;czone nie jest konieczne ldi
out P0RTB,rl6 ;zapis ICR1H out
; do portu I i
clr rl6
out TCNTlH,rl6 ;zapis rejest-
;ru Temp
out TCNTlL,rl6 ;a teraz jedno-
;czesny zapis 16-bitów
;rejestru TCNT1 równoważne Idirl6
;z zerowaniem TCNT1 out
pop rl6 ldi
out SREG,rl6 ;odtworzenie out
;rejestru i statusu i rl6
pop rl6 ldi
reti out
Inwersja wprowadzona przy pomocy rozkazu com rlG jest konieczne ze względu na sposób podłączenia diod LED: anodą do pozytywnego napięcia zasilania, katodą do wyprowadzenia portu. W efekcie dioda świeci się, gdy wyprowadzenie portu znajduje się w stanie niskim. Jest to stan odwrotny niż spodziewany intuicyjnie - człowiek oczekuje, że ,,jedynka" logiczna oznacza zaświeconą diodę. Powyższa implementacja ma jedną poważną wadę: nie jest wskazywane przekroczenie zakresu pomiarowego.
Asynchroniczny Timer 2. Wywołanie przerwania na skutek porównania zawartości licznika Timera 2 z wartością zadaną
Timer 2 może pracować w trybie synchronicznym tak, jak Timer 0 i Timer 1. Dodatkowo został wyposażony w tryb asynchroniczny opisywany już wcześniej. Przykład ten pozkauje w jaki sposób używać funkcji porównywania wartości timera z wartością zadaną. Timer zostanie skonfigurowany w taki sposób, że warunek porównania będzie spełniony co sekundę. Ta właściwość może być wykorzystana np.do budowy zegara. W prezentowanym przykładzie wykorzystamy jednak, podobnie jak poprzednio, diodę LED podłączoną do portu B, która będzie migotać z częstotliwością 0,5Hz. Ten przykład programu wymaga podłączenia rezonatora zegarkowego 32,768kHz do wyprowadzeń TOSCl (PC6) i TOSC2 (PC7).
Wartość nastaw wpisywana do rejestrów może być wyliczona za pomocą podanego wcześniej równania. Zamiast wartości MaxVal wpisywanej do Timera 2 musi zostać użyta wartość OCR2. Częstotliwość zegara preskalera (Pck) w tym przypadku ma wartość podłączonego z zewnątrz rezonatora kwarcowego, bit TOV musi być ustawiany z częstotliwością lHz. Korzystając z powyższych danych wyznaczymy wartość wpisywaną do rejestru ,,capture/ compare".
1=TOVCK=
f OSCCK = 32,768 kHz PVal Ś OCR2 PVal Ś OCR2
ldi out
ser out
loop: sbic
rjmp ret
rl6,1AS2
ASSR,rl6 ;zezwolenie
;trybu asynchronicznego ; Timera 2
;kasowanie timera po ;spełnieniu warunku ; zegar timera = ;= zegarsystemowy / 1024 , (1CIC2) I (1CS22) I (1CS21) I (lCS20) TCCR2,rl6 rl6, 1OCF2
TIFR,rl6 ;kasowanie flagi
;OCF2 trwającego przerwania rl6, 1OCIE2 TIMSK,rl6 ;zezwolenie ;na wywołanie przerwania ;po spełnieniu ;warunku porównania rl6,32
OCR2,rl6 ;ustawienie
;wartości porównywanej ;na 3 2 rl6
DDRB,rl6 ;ustawienie
;portu D jako wyjściowego
ASSR, OCR2UB ;oczeki-;wanie na ustalenie ;wartośći rejestrów loop
W następnym kroku podprogram obsługi przerwania. Jego zadaniem jest negowanie stanu portu B po każdym wywołaniu:
ISR_OCIE2: push rl6 in rl6,SREG
;wartości
;statusu push rl6 in rl6,P0RTB
;portu B com rl6
;rejestru out P0RTB,rl6
;ci rl6 do pop rl6 out SREG,rl6
;stanu rl6
;statusu pop rl6
;przechowanie rl6 i rejestru
;odczyt stanu
;negacja bitów rl6
;zapis wartoś-portu B
;odtworzenie i rejestru
Wybrana wartość preskalera 1024 oraz wartość 32 wpisywana do rejestru OCR2 umożliwia uzyskanie częstotliwości lHz. Teraz program, tradycyjnie zaczniemy od podprogramu nastaw timerów: init Ex3:
reti
Podstawy PWM
PWM jest skrótem od pochodzącej z języka angielskiego nazwy Pulse Width Modulation (modulacja szerokości impulsu - rys. 3). Jest to specjalny tryb pracy, w którym mogą pracować Timer 1 i Timer 2. W tym trybie timer pracuje jako licznik w górę lub w dół. Oznacza to, że timer liczy w górę od 0 do wartości maksymalnej a następnie w dół, z powrotem do wartości 0. Cechą generatora PWM jest to, że wypełnienie impulsów może być zmieniane. Jeśli PWM jest skonfigurowane w taki sposób, że zmienia się stan wyprowadzenia OCx (Output Compare), wówczas sygnał oglądany przy pomocy oscyloskopu na tym wyprowadzeniu, może wyglądać jak na rys. 2.
86
Elektronika Praktyczna 8/2003
KURS
V - napięcie wyjściowe stanu wysokiego
V - napięcie wyjściowe stanu niskiego
V - uśrednione napięcie wyjściowe x - czas Imania stanu wysokiego y - czas trwania stanu niskiego
Rys. 3. Sygnał wyjściowy generatora PWM
Filtr dolnoprzepustowy dołączony do wyjścia generatora PWM o parametrach dobranych do właściwości generatora umożliwi otrzymanie napięcia stałego na wyjściu, zmieniającego się w zależności od wypełnienia doprowadzonego przebiegu, zamiast fali prostokątnej. Równanie pokazuje w jaki sposób można wyliczyć jego wartość:
_ (VH Ś x+VL Ś y)
Jeśli w miejsce x i y podstawimy odpowiednie wartości wyznaczające czas trwania impulsów otrzymywanych przy pomocy naszego generatora PWM: x=0CRx-2
y=(MaxVal-OCRx) Ś 2
otrzymamy następującą zależność umożliwiającą wyznaczenie wartości napięcia wyjściowego:
(VH Ś OCRx + VL Ś (MaxVal -OCRx)
vAv=-
MaxVal
vAv=-
(x+y)
Jak wynika z powyższej lektury, możliwa jest budowa prostych przetworników cyfrowo - analogowych tylko z wykorzystaniem generatora PWM i prostego układu filtru. Do takich aplikacji wrócimy jeszcze w następnych odcinkach kursu.
Timer 2 jako 8-bitowy generator PWM
Ten przykład pokazuje w jaki sposób należy skonfigurować Timer 2 aby mógł on pracować jako generator PWM o rozdzielczości 8 bitów. Nasz generator wytwarzał będzie falę prostokątną o napięciu niskim zbliżonym do GND i wysokim zbliżonym do VCC. Do obserwacji wytworzonej fali ponownie użyjemy
diody LED podłączonej do wyprowadzenia OC2 (PD7). W tym przykładzie rolę filtra ,,uśredniającego" wskazania diody będzie spełniało nasze oko, toteż efekt pracy generatora będzie można zaobserwować jako zmianę jasności świecenia diody. Wypełnienie sygnału wyjściowego PWM można zmieniać się od 1/8 do 7/8 (wartość OCR2 = OxEO). W tym przykładzie wyprowadzany sygnał będzie zanegowany ze względu na sposób podłączenia diody LED:
init_Ex4:
; 8 bit PWM (Fck/510) ldi rl6, (1PWM2) I (1CCM21) I (lCS20) out TCCR2,rl6 ldi rl6,0xE0 out OCR2,rl6 ;ustawienie
;wartości porównywanej,
;od której zależy wypeł-
;nienie impulsów
;wyj ściowych ldi rl6,0x8F out DDRD,rl6 ;ustawienie
;trybu PD7/OC2 jako portu
;wyj ściowego ret
Jacek Bogusz jacek.bogusz@ep.com.pl
Elektronika Praktyczna 8/2003
87
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.
Karta MultiIO - dodatkowe porty PAR i SER do Amigi
Amigę standardowo
wyposażono w jeden port
równoległy i jeden port
szeregowy. Tak więc przy
podłączaniu drukarki
i programatora (np. AVT-
996) czy modemu
i emulatora AVT-870
napotykamy na problemy.
Jedynym wyjściem jest
przełączanie wtyczek.
Dodatkowy port PAR
i SER, zwany dalej kartą
MultiIO rozwiąże ten
problem.
H Autor artykułu udostępnił bezpłatnie w Internecie (pod
adresem:
www.hotrte.trtck.pl/~r-trtik/pto.httrt) szereg
dodatkowych informacji oraz oprogramowanie
niezbędne do
uruchomienia karty
prezentowanej
w artykule. Oprogramowanie publikujemy także na _ CD-EP8/2003B.
Schemat elektryczny interfejsu pokazano na rys. 1. Napięcie zasilania z portu Clock po przejściu przez bezpiecznik polimerowy i odfiltrowa-niu za pomocą kondensatorów C1...C5 i C13 zasila układy na karcie portów. Magistrala danych i adresowa z magistrali procesora dostępnej na porcie Clock steruje bezpośrednio układami UART typu 16C550, CIA typu 8520, oraz GAL-em. Na magistrali danych złącza Clock dostępne są tylko cztery linie adresowe A2...A5. Problem dekodowania adresów rozwiązuje wspomniany układ GAL koordynujący pracę kart dołączonych do Amigi. Przed dostępem do układu na jakiejkolwiek karcie trzeba go zaadresować. GAL po wykryciu adresu przeznaczonego dla niego ($d8002d) i niskim stanie na WR wpisuje daną z linii D16...D18 do wewnętrznego rejestru. Odczyt z pod tego adresu spowoduje pojawienie się ostatnio zapisanej tam informacji na wyjściach trójstanowych Ql6...Ql8. Podczas tych operacji stroby CS_PAR i CS_SER są nieaktywne. Jeśli do portu Clock jest podłączonych więcej kart, każdy z układów GAL zapamięta wysłaną daną w swoim rejestrze. Od tego momentu strob na linii CS_SER lub CS_PAR pojawi się tylko wtedy, gdy wartość wpisana do GAL-a będzie się zgadzała z adresem przypisanym na stałe do GAL-a. W dalszym tekście wartość wpisana do rejestrów układu GAL będzie nazywana subadresem. Jak z tego wynika, każda karta ma inaczej zaprogramowanego GAL-a. Rejestr GAL znajduje się pod adresem $D8002D. Podczas zapisu pod ten adres pojawia się wysoki poziom logiczny na wyprowadzeniu 22 układu GAL, a co za tym idzie na wejściu Clock GAL-a. Powoduje to przepisanie danych z szyny adresowej do wewnętrznego rejestru typu D umiesz-
czonego w strukturze GAL-a. Wartość rejestru można także odczytać. Podczas odczytu adresu $D8002D pojawia się niski poziom na wyjściu 15 układu GAL, a co za tym idzie na wejściu OE sterującym buforami trójstanowymi układu GAL. Za sprawą sygnału OE bufory zostaną otwarte i zawartość rejestru GAL-a pojawi się na magistrali adresowej. W danej tej istotne są tylko bity 0...3 pozostałe należy zignorować. Układ GAL generuje jeszcze sygnał zegarowy E oznaczany często jako 02 dla układu 8520. Jak wiadomo, sygnał ten jest charakterystyczny dla układów Motoroli, ale niestety nie dostępny na złączu Clock. Da się go jednak odtworzyć na podstawie sygnałów WR i RD. Sygnał E przyjmuje poziom wysoki, gdy któryś ze sygnałów (RD lub WR) przyjmie poziom niski (rys. 2). Taki sposób odtworzenia sygnału E ma tą wadę, że nie jest on generowany, gdy nie komunikujemy się z układem, a przez to nie działają poprawnie wewnętrzne timery i nie da się ich wykorzystać. Warto wspomnieć, że pod adresem $D8002D znajduje się jeden z rejestrów układu CIA, a konkretnie rejestr TODHR. Ze względu na to, że na wejście TICK nie jest podany żaden sygnał rejestr ten jest nieaktywny. Po wybraniu tego adresu nie jest generowany strob do układu CIA dzięki czemu odczyt rejestru układu GAL nie jest zakłócony.
Bramy układu CIA są połączone do złącza portu równoległego. Spostrzegawczy czytelnicy zauważą, że linie portu PB i trzy linie portu PA są połączone z portem równoległym dokładnie tak jak w Amidze. Dzięki temu łatwo zaadaptować istniejące oprogramowanie tak, aby obsługiwało nowe porty. W tym celu wystarczy zmienić adresy portów. Pozostałe linie połączono z stykami 14...17 portu, dzięki
Projekt
112
czemu możemy pracować w trybach ECP/EPP. Linia PA7 steruje załączaniem napięcia +5V na styku 14 portu, dzięki czemu będą działały samplery i inne urządzenia wykorzystujące zasilanie z tegoż styku.
Ze względu na swą specyfikę sygnał zerujący dla układu UART należało zanegować. Niestety nie starczyło wyprowadzeń układu GAL i należało zastosować dodatkowy tranzystor. Z podobnych powodów użyto tranzystora to sterowania linią zgłoszenia przerwania. Dane w standardzie TTL są konwertowane do ą10 V w układzie MAX24lE. Układ ten ma budowę podobną do MAX232 tyle, że zawiera więcej konwerterów i wbudowane zabezpieczenie przed ESD.
Montaż i uruchomienie
Schemat montażowy płytki pokazano na rys. 3. Montaż przeprowadzamy w nietypowy sposób. Najpierw wluto-wujemy układ US4 który jest wykonany w technologii SMD. Proponuję najpierw przy lutować jedną skrajną nóżkę. Po poprawnym ułożeniu układu na polach lutowniczych lutujemy pozostałe wyprowadzenia. Następnie wlutowujemy rezystory, podstawki pod układy, złącze CONl, tranzystory, kondensatory na końcu kwarc i złącza DB. Montażu złącz IDC trzeba poświęcić nieco więcej uwagi. Jest to spowodowane tym, że zdobycie złącz IDC22-2.0 jest beznadziejnie trudne. Posłużymy się więc złączem typu IDC34-2.0, z którego usuwamy po sześć skrajnych wyprowadzeń. Należy zwrócić uwagę na odpowiednie umieszczenie wycięcia unie-
88
Elektronika Praktyczna 8/2003
PROJEKTY CZYTELNIKÓW
+5V
+5V
_A2 A3 A4 A5 D16 D17 DIB D19 IOWR IORD
:rtccs
SPARECS 'RESET
A2 O2
A3
A4
A5 CSPAR
D16 CSSER
D17
D18
D19 GAL20V8 Q16
IOWR Q17
IORD Q18
SPARECS
Clock
QOE
OE
QCS
+5V
T3 BC557
Rys. I
Elektronika Praktyczna 8/2003
89
PROJEKTY CZYTELNIKÓW
rnośliwiającego odwrotne umieszczenie wtyku w gnieździe. Od taśmy FLAT34 oddzielamy 12 przewodów, dzięki czemu pozostanie ich 22. Zaciskając wtyk od strony karty należy zwrócić uwagę na to, śe pierwsze i ostatnie sześć styków jest pominięte. Pierwszy przewód taśmy jest zaciśnięty na styku 7 wtyku IDC. Złącze od strony komputera trzeba zacisnąć inaczej. Zaciskamy je tak, aby styk pierwszy był połączony z pierwszą śyłą taśmy, pozostałe 13 styków złącza odcinamy (rys* 4). W miejscu odcięcia wskazane jest wpuszczenie kropli kleju, aby skleić dolną i górną część wtyku. W przeciwnym razie mośe się zdarzyć, śe wyrwiemy taśmę z wtyku. Jest to spowodowane tym, śe w odciętej części znajduje się zatrzask spinający obie części wtyku IDC34-2.0. Taśmę warto wykonać dłuśszą. Dzięki temu jeśli będziemy chcieli podłączyć kolejną kartę wystarczy na taśmie zaciskać kolejne wtyki. Pod układy scalone DIL montujemy podstawki.
Układ 8520 występuje w obudowie DIL40 i PLCC44.
Płytka przystosowana jest do układów DIL. Jeśli posiadamy układ PLCC naleśy zastosować dodatkową przejściówkę. Po zmontowaniu karty, sprawdzeniu czy nie ma ewentualnych zwarć. Bez układów umieszczonych w podstawkach łączymy kartę z komputerem. Wszelkie operacje typu podłączanie odłączanie karty czy wkładanie wyjmowanie układów z podstawek wykonujemy przy wyłączonym zasilaniu komputera! Po włączeniu zasilania komputer powinien wystartować, a my mośemy sprawdzić obecność napięć zasilających na podstawkach pod układy. Jeśli komputer nie startuje, oznacza to, śe mamy zwarcie na płytce. W następnej kolejności umieszczamy w podstawce układ GAL i ponownie włączamy zasilanie komputera. Uruchamiamy program Tesi-Gala Najpierw jest przeprowadzany test automatyczny, jeśli jego wynik będzie pomyślny program mośna zakończyć.
Gdy test wypadnie niepomyślnie program przejdzie do interaktywnego testu ręcznego. Podczas tego testu naleśy postępować zgodnie z instrukcjami na ekranie. Gdy GAL funkcjonuje poprawnie mośna umieścić wszystkie układy w podstawkach. Po urucho-
OOOOOOOOOOOOD
.oooooooooooo
35=
i
Otwłętywtyłr IDC do złącz ClockwArWdM
TT
Rys. 3
Rys. 4
mieniu programu Szukanie powinniśmy ujrzeć na ekranie adresy pod jakimi są widziane układy PAR i SER. Jeśli posiadamy cztery złącza Clock na karcie z Zorro2 i w innym gnieździe znajduje się jakaś karta, to program mośe odnaleźć takśe układy na dodatkowych kartach. Do portu PAR podłączmy drukarkę. Po załączeniu zasilania komputera i uruchomieniu programu Drukuj na drukarce powinien pojawić się tekst próbny. Do gniazda portu SER wkładamy wtyczkę ze zwartymi wyprowadzeniami 2 i 3 po czym uruchamiamy program Terminal. Na ekranie powinny pojawiać się znaki naciskane na klawiaturze. Po tych zabiegach mośemy uznać, śe karta jest sprawna.
Jeśeli posiadamy więcej kart MultiIO, to kaśdą z nich musimy testować osobno, tak aby podczas testu na wybranym porcie Clock była tylko jedna karta. Jest to spowodowane tym, śe z powodu błędu montaśowego rejestry układów GAL na róśnych kartach mogłyby mieć róśną zawartość. Spowodowałoby to pojawienie się fałszywych danych na magistrali. Podczas normalnej pracy sytuacja taka nie mośe mieć miejsca, poniewaś rejestry wszystkich układów GAL zawierają ten sam sub-adres.
Oprogramowanie
Do uruchomienia portu jest niezbędne oprogramowanie zawierające sterownik do portu PAR, SER i program przechwytujący dane wysyłane na urządzenie PRT (rys* 5). Dzięki temu wydruk mośna skierować na dodatkowy port PAR. Sterowniki mośna ustawić na dowolny adres i subadres karty. IConfiguro-
Rys. 5
wanie sterowników jest dokładnie opisane w podręcznikach programowania Amigi. Sławomir Skrzyński info@r-mik.com.pl Artur Gadowski, (SPIDI) artur@ufo.o.k.pl
Autorem oprogramowania systemowego do karty jest Artur Gadowski (SPIDI) i do niego proszę kierować pytania dotyczące sterowników.
WYKAZ ELEMENTÓW
Rezystory
Rl: 1MG
R2: 470D
R3: 33O
R4...R7: lOkO
Kondensatory
C1...C3, CS: lOOnF
C4, CÓ...C9, C13: 10uF/lóV
CIO: 27pF
Cli: 33pF
Gl: 11.0592MHZ
Półprzewodniki
Tl, T3: BC557
T2: BCS47
US1: GAL22V10
US2: 8520
US3: 1ÓC550
US4: MM241E
Różne
FUSE: multifuse 500mA
Parallel: złgcze DB25F
Serial: złgcze DB9M
Clock: złgcze IDC MP22-
2.0mm
2szt. wtyków IDC FC22-
2.0mm
50cm taśma FLAT 2.0mm
"Śledź" komputerowy
z otworami na DB25 i DB9
90
Elektronika Praktyczna S/2003
NA CD: KATALOG ONSEM . LABY EW 7.0. BIBLIOTEKA AVR DLA PROTEL
g Międzynarodowy magazyn elektroników konstruktorów
8/2003 sierpień 15 zł 50 gr (wtym7%vAT)
RADIOWY SYSTEM ZDALNEGO STER
PROGRAMATOR "ATMELOWYCH" Ml
PROGRAMATOR ISP MIKROKONTROLEROW
PROGRAMATOR USB MIKROKONTROllil
SAMOCHODOWY WZMACNIACZ 25W WZMACNIACZ SEMI-SURROUND DO REJESTRATOR STANÓW LOGICZMYi
INTELIGENTNY STEROWNIK :
ROZLADOWYWARKA/TESTER OGNIW NiC
? mumm
Miniprojekty
Od słr. 35 zaczyna się tegoroczny mini projektowy "raj". Znajdq w nim coś dla siebie zarówno gitarzyści, fani mikrokontrolerów, użytkownicy telefonów komórkowych, użytkownicy Girdera, a także szereg innych mniej i bardziej pomysłowych rozwiqzah.
Odtwarzacz MP3 z układem STA013
Na słr. 31 przedstawiamy opis konstrukcji odtwarzacza MP3 wykonanego na układzie STA013 firmy STMicroelectronics.
"Klocki" RS485 a
Dwa kolejne "klocki" systemu RS485 przedstawiamy w artykule na słr. 46.
Wzmacniacz semi-surround do komputera PC
W artykule na słr. 51 przedstawiamy opis czterokanałowego wzmacniacza audio do PC.
Samochodowy wzmacniacz 25 W w klasie D
Budowanie wzmacniaczy o dużej mocy do zastosowań w samochodach jest zadaniem trudnym, głównie z powodu niskiego napięcia zasilania. Skuteczny sposób ominięcia takich trudności przedstawiamy w artykule na słr. 19,
DSO-25216 - szybka przystawka oscyloskopowa
Oscyloskop bez wyświetlacza? Na słr. 67 przedstawiamy oscyloskopowq przystawkę do PC, która niedawno pojawiła się na polskim rynku.
Radiowy system zdalnego > sterowania
Dwukierunkowy system zdalnego sterowania przedstawiamy na słr. 56.
Zegar Nixie dla oszczędnych
Zegar z lampami Nixie z EP1/2003 wzbudził wśród naszych Czytelników niemałq sensację. Aby ułatwić wykonanie podobnego urzqdzenia znacznie taniej przygotowaliśmy oryginalny projekt, którego opis publikujemy na słr. 14. Na płycie CD-EP8/2003B zamieściliśmy film prezentujqcy działanie tego zegara.
Programator USB mikrokontrolerów ATmega - ISP
Na słr. 25 przedstawiamy opis programatora ISP mikrokontrolerów ATmega, Wyposażono go w interfejs USB!
Elektronika Praktyczna S/2003
Nowości w pakiecie ^ LabView 7
LV to jeden z najlepszych pakietów do projektowania aplikacji nadzoru i sterowania (choć nie tylko). Nowości jego najnowszej wersji przedstawiamy na słr. 128, a wersję ewaluacyjnq zamieszczamy na CD-EP8/2003B.
Płytki drukowane w domu
Na słr. 59 przedstawiamy ostatniq część artykułu o jednej z najdoskonalszych "domowych" technologii niskonakładowej produkcji płytek druko-wanych.
Programy
Zbliżamy się do końca cyklu, w którym prezentujemy możliwości Protela DXP. Zapraszamy na słr. 64.
IKA
Nr 8(128)
sierpień 2003
Elektronika Praktyczna S/2003
Zegar Nixiedla oszczędnych.....................................................14
Samochodowy wzmacniacz 25 W w klasie D, cześć 1..........19
Programator USB mikrokontrolerów ATmega - ISP,
cześć 1 ..........................................................................................25
Odtwarzacz MP3 z układem STA013,cześć 1 .........................31
"Klocki" RS485,cześć3...............................................................46
Wzmacniacz semi-surround do komputera PC, cześć 2.......51
Radiowy system zdalnego sterowania
z kanałem zwrotnym, cześć 2....................................................56
Miniprojekty
Programator "atmelowych" mikrokontrolerów
89051/52/55.................................................................................35
Inteligentny wyłqcznik.................................................................36
Rejestrator stanów logicznych dla PC......................................38
Programator ISP mikrokontrolerów AVR z serii AT90S..............39
PanuWorld Nokia Cable.............................................................40
Przetwornica napięcia 1 V/5 V..................................................41
Rozładowywarka/tester ogniw NiCd........................................41
Inteligentny sterownik wentylatora...........................................42
Girder Plugln na USB - zdalne sterowanie PC
poprzez USB..................................................................................43
Screaming Bird - przystawka do gitary elektrycznej...............44
Gitarowy DiFuzz...........................................................................44
Notatnik Praktyka
Rytki drukowane w domu, cześć 3 ..........................................59
Programy]
Protel DXP - przełom na rynku narzędzi EDA
dla elektroników, cześć ó...........................................................64
Nowości w pakiecie LabYiew 7, cześć 2...............................128
Sprzęt]
DSO-25216-szybka przystawka oscyloskopowa....................67
Kurs
Programowanie telefonów komórkowych, cześć 2...............69
Podstawy projektowania systemów
mikroprocesorowych, cześć ó...................................................81
Obsługa timerów w mikrokontrolerach AVR, cześć 2............84
Automatyka
Laserowe czujniki odległości firmy Baumer Electric.....,........122
GNXMomentics- praca z pakietami BSP..............................125
Projekty Czytelników
Karta MtiltilO - dodatkowe"p^rty PAR i SER "de^Amigi
Z kraju i ze świata........................................................111
Biblioteka EP.
Kramik+Rynek................................................................91
Listy...................................................................................91
Ekspresowy Informator Elektroniczny.....................
Wykaz reklamodawców............................................1 lofl
7
BIBLIOTEKA EP
IV ^Bibliotece LP" prezentujemy książki dotyczące zagadnień związanych z różnymi dziedzinami techniki, jednak zawsze przydatne w pracy elektronika iub 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 polki, 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, 117), Chcemy w ten sposób udostępnić je Czytelnikom EP,
Jarosław Doliński, BTC 2003
99
Mikrokontrolery AVR w praktyce",
EleKtronlM PraKtycznej
Mikrokontrolery AVR są niewątpliwie rynkowym hitem firmy Atmel i to nie tylko w naszym kraju. W związku z tym, z całą pewnością prezentowana przez nas książka będzie cieszyła się dużą popularnością wśród Czytelników zwłaszcza, że jest to pierwsze na naszym rynku wydawniczym poważne opracowanie poświęcone tym mikrokontrolerom.
Książka składa się z dwóch zasadniczych (na które składają się trzy części książki) części, z których ucieszą się zarówno początkujący, którzy chcą dokładnie poznać rdzeń AVR (i oczywiście jego działanie) jak i Ci, których szczególnie interesują aspekty praktyczne, czyli po prostu AVR-y w działaniu. Istotne dla Czytelników książki jest to, że autor - pomimo tego, że w części "teoretycznej" korzystał z oryginalnej dokumentacji Atmela - uniknął powielania (przynajmniej niektórych) zawartych w niej błędów. Cenną cechą książki jest także to, że część przykładów ilustrujących m.in. działanie rozkazów asemblera została opracowana w taki sposób, że wyraźnie na nich widać działanie omawianych poleceń. W części "teoretycznej" opisano zarówno listę rozkazów, jak i - bardzo szczegółowo - budowę i zasady funkcjonowania najważniejszych bloków peryferyjnych (układu przerwań, budowę i sposoby adresowania pamięci, ti-merów, watchodga, rejestrów itp.) mikrokontrolera AT90S2313.
Specjalnie na cele książki autor opracował zestaw ewaluacyjny z mikrokontrolerem AT90S2313, na bazie którego opracował 11 projektów (w tym całkiem interesującą grę). Na ich przykładzie autor przedstawia szereg zagadnień związanych z programowaniem mikrokontrolerów AVR, w tym m.in.: obsługę wyświetlacza LCD, klawiatury, interfejsów: 1-Wire, I2C, RS232 i USB (prawdziwe USB 2.0!), a także realizację sterowania PWM i przetwornika A/C na bazie komparatora analogowego wbudowanego w mikrokontroler. To oczywiście nie wszystkie przedstawione w książce przykłady. Warto tu zwrócić uwagę na to, że autor udostępnił kody źródłowe wszystkich programów, które zostały napisane w AVR-GCC (czyli języku C). Z jednej strony jest to dość poważne wyzwanie dla konstruktorów mniej obeznanych z jeżykami wysokiego poziomu, z drugiej strony kompilator jest dostępny bezpłatnie i nauka C - choćby "przymusowa" - z pewnością nie zaszkodzi żadnemu elektronikowi. Rozpoczęcie pracy z kompilatorem AVR-GCC ułatwia przystępnie opisany sposób instalacji tego narzędzia i jego integracji z AVR Studio.
Moim zdaniem książka jest prawdziwym kompendium wiedzy - nie tylko dla początkujących -na temat budowy mikrokontrolerów AVR. Należy ją tak traktować, pomimo skupienia się autora na bardzo szczegółowym omówieniu jednego z najprostszych mikrokokontrolerów z tej rodziny, ale taki wybór uważam za trafny: AT90S2313 jest dość tani, jego rdzeń jest praktycznie identyczny z nieco "większymi" mikrokontro-lerami z tej rodziny, a możliwości
w zupełności wystarczające do większości całkiem poważnych zastosowań - czego dowodzą m.in. przykłady zamieszczone w książce. Całość - tradycyjnie dla Wydawnictwa BTC - w twardej, szytej oprawie.
Wydawnictwo pokusiło się o miły prezent dla Czytelników książki: znajduje się w niej bowiem wkładka (rodzaj folderka) z listą rozkazów AVR i szeregiem innych informacji, które dobrze jest mieć "pod ręką" podczas pracy nad projektem.
Na koniec: miłym dla EP akcentem jest fakt, że autorem książki jest wieloletni współpracownik redakcji, a obecnie zastępca redaktora naczelnego EP, ale to nie jest przyczyna mojej pozytywnej oceny. Obiektywnie zasłużone 5 lutownic!
Andrzej Gawryluk
Elektronika Praktyczna 9/2003
115
BIBLIOTEKA EP
Stanisław Kruk, "Asembler w koprocesorze", Mikom 2003
Legenda:
Do książki dołączono dyskietkę 3,5" Książka zawiera uproszczony kurs programowania w asernblerze zrnienno-przecinkowych koprocesorów firmy Intel. Kurs przygotowany przez autora pozwala dogłębnie poznać sposób sterowania pracą koprocesora, co ułatwiają trafnie dobrane przykłady. Podstawowym narzędziem wykorzystywanym do monitorowania pracy koprocesora jest DOS-owy Tur-boDebugger, co może nieco utrudnić prowadzenie samodzielnych ćwiczeń użytkownikom komputerów wyposażonych w nowsze systemy operacyjne.
Książka jest wartościową pozycją dla Czytelników chcących dogłębnie zrozumieć zasadę wykonywania obliczeń za pomocą koprocesora, jedyne nasze zastrzeżenia budzi nomenklatura przyjęta przez autora. Elektronik nigdy nie użyłby stwierdzenia że "programy są przetwarzane przez kryształ" (podobnych stwierdzeń jest w książce więcej), a biorąc pod uwagę fakt, że asembler jest językiem najbliższym sprzętu, staranność o poprawność nomenklatury powinna być zachowana. Tomasz Jasirun
Altium-EvatronixT "Poznajemy Protel DXP"t Evatronix 2003
Gdyby prezentowaną książkę można było kupić, z całą pewnością byłaby hitem. Protel DXP cieszy się wśród użytkowników ogromną popularnością, której - niestety, sądząc z listów jakie otrzymujemy - nie dorównuje znajo-
evałfonlX
mość języka angielskiego. Stąd spore kłopoty, na jakie natrafiają i których często nie potrafią rozwiązać użytkownicy tego systemu projektowego.
Evatronix - dystybutor oprogramowania firmy Altium w naszym kraju - zapewne pod presją użytkowników mających kłopoty z okiełznaniem Protela DXP, wydał tłumaczenie najprostszego podręcznika wprowadzającego w tajniki tego systemu. Niestety, ze względu na "startowy" charakter publikacji i jej niewielką objętość, pożytek z niej będą mieli przede wszystkim początkujący użytkownicy Protela DXP (których jest bardzo wielu). Moje najpoważniejsze zastrzeżenia budzi bezkrytyczne podejście tłumacza do oryginalnego tekstu (dostępnego w pliku PDF na internetowej stronie www.proiel.com), który oprócz funkcji informacyjnej spełnia rolę reklamówki produktu. Jest to nieco denerwujące, ale nie ma wpływu na jakość wykładu. Drugą niepomyślną wiadomością jest brak możliwości zakupu tej książki, co wynika z polityki dystrybutora: książka jest przeznaczona wyłącznie dla użytkowników systemu Protel DXP i nie będzie wprowadzona do normalnej sprzedaży. Mimo wszystko trzymamy kciuki z nadzieję, że decydenci z firmy Evatronix zmienią zdanie...
Za dobrze wykonaną i bardzo potrzebną robotę 5 lutownic!
Piotr Zbysiński
Sc o tt W a inner, R o bert Richmond, "Podkręcanie procesorów", Helion 2003
Interesująca publikacja zawierająca przegląd mniej i bardziej nowoczesnych mikroprocesorów stosowanych w komputerach PC. Autorzy skupili się na układach produkowanych przez Intel a i AMD i nieco "z rozpędu" opisali także mikroprocesory firmy VIA/Cyrix/Na-tional Semiconductor (w takiej kolej-
książka wybitna, polecamy!
książka o dużych walorach praktycznych, polecamy!
może się pizydać
daleka od doskonałości
nie warto kupować
WYZWÓL MOC DRZEMIĄCĄ
wmmKOMPUTERZi
PODKRĘCANIE PROCESORÓW
Seat! Wilniw Robtfi Richmond
ności firmy były przejmowane). Jakkolwiek głównym tematem książki jest przetaktowywanie mikroprocesorów, autorzy sporo miejsca poświęcili w niej na pokazanie technologii ich produkcji (i problemy wynikające z ograniczeń technologicznych), sposobów odprowadzania ciepła ze struktury układu i wagi tego często lekceważonego problemu, a także metod pomiaru wydajności. Informacje przedstawione w książce nie zawsze są łatwe do zastosowania w naszym kraju, ponieważ autorzy odwołują się do produktów (głównie wentylatorów) u nas niedostępnych, niemniej jednak mogą one być przydatne dla fanów overclockingu.
Andrzej Gawryluk
116
Elektronika Praktyczna 9/2003
ory p Omron
W artykule skupimy się na prezentacji nieco bardziej rozbudowanych funkcjonalnie urządzeń, zwanych często regulatorami procesowymi. Zrezygnujemy natomiast z prezentacji prostych regulatorów temperatury, które opisywaliśmy już na łamach Elektroniki Praktycznej.
W ofercie firmy Omron znajduje się kuka rodzin regulatorów temperatury, różniących się między sobą możliwościami (i w związku z tym docelowymi aplikacjami), a także -co czasami ma duże znaczenie praktyczne - obudowami. Zgodnie z ustalonymi w przemyśle standardami regulatory produkowane przez firmę Omron są oferowane w obudowach o standardowych wymiarach, zgodnych z normami DIN. Urządzenia z rodzin E5CK/EK/AK i E5ER/AR są przystosowane do montażu w płytach czołowych, natomiast urządzenia z rodziny E5ZN są przystosowane do montażu na typowej, 13-milimetiowej szynie DIN.
Producent zadbał o zapewnienie dużej uniwersalności swoich regulatorów, dzięki czemu ich obwody wejściowe są przystosowane do współpracy z wieloma rodzajami czujników temperatury. I tak, można stosować czujniki platynowe PtlOO i JPtlOO, czujniki termo-parowe typów: J, K, L, E, T, U, N, R, S i B, a także (w niektórych wersjach) PLII. Możliwość wybrania typu czujnika pozwala pokryć szeroki zakres temperatur (od -200 aż do +1800C).
Alternatywą dla standardowych czujników temperatury, zwłaszcza w przypadku dużej odległości pomiędzy czujnikiem i regulatorem, mogą być moduły z konwerterami t/U lub t/I. Większość modeli regulatorów prezentowanych w artykule ma wbudowany przetwornik A/C z wejściami prądowymi i napięciowymi, w związku z czym bez problemu współpracują z takimi konwerterami. W niektórych aplikacjach przydatna może się okazać także możliwość współpra-
Jednynt z najpopularniejszych
zastosowań systemów
automatyki jest regulacja
temperatury. Rosnące
wymagania stawiane
systemom regulacyjnym
wymuszają na producentach
stosowanie w produkowanych
urządzeniach coraz bardziej
zaawansowanych rozwiązań,
które już dawno wykraczają
poza proste włączanie
i wyłączanie urządzeń
wykon a wczych.
cy regulatorów z bezstykowymi, podczerwonymi czujnikami temperatury (np. ES1A) - ta opcja jest dostępna tylko w niektórych modelach regulatorów. Także obwody wyjściowe regulatorów można łatwo dobrać do wymagań aplikacji.
omRon
Elektronika Praktyczna 9/2003
119
AUTOMATYKA
W zależności od potrzeb można zastosować regulatory z wyjściami przekaźnikowymi, z wyjściem SSR (przekaźnik półprzewodnikowy), wyjściami tranzystorowymi, a także wyjściami liniowymi (prądowymi i napięciowymi). Regulatory wyposażono także w system kontroli poprawności pracy urządzenia wykonawczego (np. grzałki) - HBA (Heaier Burnout). Za pomocą specjalnego transformatora jest monitorowane natężenie prądu płynącego w obwodzie zasilania grzałki i w przypadku jego zbyt dużej lub zbyt małej wartości regulator sygnalizuje zaistniałą nieprawidłowość. Tryby pracy wyjść można programować, dzięki czemu zarówno próg ich zadziałania, jak i sposób pracy (grzanie/chłodzenie) użytkownik ustala samodzielnie.
Ogromne znaczenie producent położył na unowocześnianie i automatyzację konfiguracji procesu regulacji. Spowodowało to wprowadzenie do sprzedaży regulatorów wyposażonych w procesor logiki rozmytej [Fuzzy Logic), a także precyzyjne i bardzo odporne na zakłócenia, podwójne regulatory PID. Wszystkie modele mają także funkcję samouczenia, dzięki której parametry PID mogą być automatycznie dobierane przez regulator.
W zależności od wersji, urządzenia są wyposażone w różne panele użytkownika. Zastosowano w nich jedno- lub dwukolorowe wyświetlacze LED oraz klawiatury, za pomocą których użytkownicy mogą sterować pracą regulatorów oraz programować je. Dzięki bogatym możliwościom konfiguiacyj-nym, użytkownik można m.in. skalować wyświetlane wyniki pomiarów, a także ręcznie ustawiać parametry pracy regulatora (np. parametry regulacji PID). Parametry te można zadawać także zdalnie, za pomocą interfejsu szeregowego (RS232 i/lub 485). Zdalną konfigurację ułatwia oprogramowa-
Przykiadowe zastosowania regulatorów procesowych firmy Omron:
Sterowanie pracq pieca lutowniczego do lutowania rozpływ owego,
Nadzór pracy wtryskarki tworzyw sztucznych,
Kontrola pracy zgrzewarki do opakowań foliowych,
Automatyzacja pieców piekarniczych,
nie SysConfig, które producent udostępnia bezpłatnie [http:// oeiweb.omron.com/techsupport-downloads2 .shtm).
Z tego krótkiego przeglądu wynika - mam nadzieję - jeden wniosek: możliwości współczesnych regulatorów temperatury są tak duże, że nazywanie ich "regulatorami procesów" jest jak najbardziej na miejscu i dobrze oddaje ogrom możliwości oferowanych przez te urządzenia użytkowni-
kom. Rozwój technologii powoduje jednocześnie, że wydatne zwiększenie możliwości urządzeń nie znajduje podobnego odbicia w cenie, co z pewnością cieszy użytkowników. Andrzej Gawry!uk, AVT
Dodatkowe informacje
Artykuł powslat na podstawie rnateriatów udostępnionych przez firmę Omron, tel. (22) 645-78-60, www.omron.com.pl.
120
Elektronika Praktyczna 9/2003
AUTOMATYKA
I?
Nowa generacja systemu sterowania
W branży automatyki przemysłowej panuje ogromna konkurencja. Światowi liderzy prześcigają się w konstruowaniu i wprowadzaniu do sprzedaży coraz nowszych produktów. Żeby zaistnieć i przetrwać na rynku, trzeba oferować klientowi coś więcej niż konkurencja. Czym próbuje przekonać do swoich produktów Advantech i jego ADAM-8000?
Niska cena to za mało. Obecnie klienci oczekują przede wszystkim produktu wysokiej jakości, o dob-
Fot.
rych parametrach technicznych i dużej niezawodności. Liczy się również support techniczny oraz serwis oferowany klientom.
System ADAM-8000 to uniwersalny, modułowy sterownik przemysłowy, oferujący duże możliwości w różnorodnych aplikacjach w scentralizowanych i rozproszonych systemach sterowania. W systemie jest dostępnych dziewięć jednostek centralnych, niektóre z nich wyposażono w wewnętrzne interfej-
Fot. 2
Firma Advantech wprowadziła
do swojej oferty nową rodzinę modułów ADAM -urządzenia z seńi ADAM-8000. Jest to zestaw modułowego sterownika programowainego, czyłi -
zgodnie z oficjainymi
informacjami - odpowiedź
koncernu na coraz wyższe
wymagania stawiane przez
kiientów na całym świecie
odnośnie systemów sterowania
i automatyki przemysłowej.
sy sieciowe, np.: ProfibusDP (fot. l), Ethernet (fot. 2). Dostępna jest także jednostka centralna w postaci karty do PC z interfejsem PCI. Zbudowany na bazie PC system sterowania jest określany mianem DCS (Distributed Control System).
Oferowane są oczywiście moduły dodatkowych interfejsów sieciowych, dzięki którym sterownik może współpracować ze sterownikami i urządzeniami innych producentów (m.in. z sieciami Fieldbus, Profibus DP - także z interfejsem optycznym - fot 3, CANOpen, DeviceNet, czy Modbus). Także gama interfejsów 1/
122
Elektronika Praktyczna 9/2003
AUTOMATYKA
0 jest szeroka - są dostępne zespoły cyfrowych i analogowych wejść
1 wyjść (także przekaźnikowych -fot. 4) oraz interfejsy z programowanymi licznikami (fot. 5).
Istotnym atutem sterownika ADAM-8000 jest oprogramowanie narzędziowe sterownika: niezwykle prosty w obsłudze system WinPLCZ, a także możliwość programowania ADAMa 8000 za pomocą pakietu Simatic STEP 7. Biorąc pod uwagę dużą popularność w Polsce sterowników firmy Siemens - liczba osób znających i programujących w tym środowisku jest dość duża.
Najbardziej popularne zastosowanie urządzeń z rodziny ADAM-8000 to typowy sterownik PLC. Użytkownik samodzielnie dobiera do wymagań aplikacji jednostkę
Podstawowe cechy systemu ADAM-8000:
/ Du^aliczbadostępnychinteffejsoYaeckjiYych-umożliwiałatwąintegracjęznistniejącymi systemami sterowania. Użytkownik ma do dyspozycji interfejsy najbardziej popularnych wnprzemyślesieci:Pro1ibus, CANopen, DeviceNet, Ethernet (Modbus/TCP).
/ Budowa modu1owa -użytkownik ma możliwość dobrania konfiguracji sterownika indywidualnie do swoich potrzeb. Na dzień dzisiejszy może on korzystać znponad 20 modułów l/O on liczbie kanałów od4ndo 32. Szyna montażowa (backplanś} jest dostępna wnrozmiarach: 1,2,4ninSnslotów- pozwala na prostą rozbudowę systemu i nszybką instalację modułów. Na uwagę zasługuje również możliwość montowania modułów na standardowej szynie DIN 35 mm.
/Rodziias^bldchjednodekcentralnycłi-wno1ercieznajdujesię9nmodeliCPUznintei1ejsemMPI (dodatkowo do wyboru znportemPro1ibus-DP Master lub Ethernet). Cechą wyróżniającą jednostek centralnych jest krótki czas wykonywania instrukcji bitowej -wynosi on 0,1 S u.s. Pamięć robocza wnzależności od modelu ma pojemność od 32 do 12SkB.
/ AutomalykawoparciuotechnologJelT-eAutomationwprowadzanowoczesnerozwiązaniado świata automatyki. Poprzez współpracę znAdvantechWebLink (serwery WWW) oraz Advantech Studio (oprogramowanie pozwalające na sterowanie i? wizualizację przez Internet), ADAM-8000 tworzy rozproszony sieciowy system sterowania, podstawowy element całej architektury eAutomation.
ech _ 000 Ś
centralną, zasilacz i niezbędne moduły I/O. Każda jednostka centralna może obsługiwać do 1024 linii I/O. W ramach systemu ADAM-8000 można tworzyć sieci Profibus DP Master, które mogą nadzorować
Fot, 3
Fot. 4
Fot. 5
dodatkowe, rozproszone linie I/O (Slave).
Podsumowanie
ADAM-8000 kierowany jest przede wszystkim do obecnych użytkowników sterowników firmy Siemens. Biorąc pod uwagę możliwość programowania przy użyciu tego samego środowiska (STEP 7), system wykonany na bazie modułów ADAM-8000 pozwala obniżyć koszty zakupu sprzętu o około 30%. Przy ciągłych redukcjach kosztów zastosowanie sterownika spełniającego te same wymagania, ale po dużo niższej cenie, jest jedną z najważniejszych korzyści dla klientów. Hubert Smolarczyk Elmark Automatyka hs @e I ma rk.com. p I
124
Elektronika Praktyczna 9/2003
AUTOMATYKA
Sterowniki programowalne SIMATIC S7-200, część 1
Firma Siemens jest znana na polskim rynku profesjonalnym
głównie jako dostawca rozwiązań dla automatyki,
w tym sterowników
programowalnych z rodzin
SIMATIC. W miarę rozwoju
technologii elektronicznych
udoskonalano również
rozwiązania stosowane
w sterownikach, co
zaowocowało szeregiem
interesujących możliwości
implem en to wanych
w sterownikach.
Najpopularniejsza obecnie rodzina sterowników - SIMATIC S7 -składa się z trzech grup urządzeń: SIMATIC S7-200, SIMATIC S7-300 i SIMATIC S7-400.
W każdej z wymienionych grup znajdują się jednostki centralne, różniące się między sobą wydajnością, możliwościami adresowania, oraz możliwościami komunikacyjnymi. Rodzina S7-400 jest przeznaczona do automatyzacji dużych obiektów (na przykład w przemyśle chemicznym, naftowym, w automatyzacji lotnisk, dużych oczyszczalni ścieków, w przemyśle samochodowym). Rodzina S7-300 jest stosowana przede wszystkim w automatyzacji kompletnych linii produkcyjnych we wszystkich działach przemysłu. Rodzina S7-200 przewidziana jest do automatyzacji ma-
szyn i urządzeń oraz tworzenia zdecentralizowanych struktur sterowania dla małych obiektów typu przepompownie, oczyszczalnie ścieków (automatyzacja poszczególnych procesów i zdecentralizowane sterowanie i komunikacja z systemami nadrzędnymi). Sterowniki S7-200 można zastosować również do automatyzacji w systemach inteligentnego budynku lub automatyzacji sterowania i kontroli dla budynków jedno-i wielorodzinnych. Dzięki bardzo atrakcyjnemu stosunkowi możliwości do ceny sterownik S7-200 stał się dostępny praktycznie dla każdego automatyka, elektryka i elektronika.
Możliwości komunikacyjne
S7-200
Sieć PPI
Wszystkie sterowniki S7-200 (na fot. 1 pokazano jednostkę centralną CPU222) wyposażono w port komunikacyjny RS485. Do transmisji danych wykorzystano "wbudowany" protokół PPI, zapewniający komunikację pomiędzy sterownikami i panelami operatorskimi OP w sieci PPI. Panele operatorskie są maste-rami sieci, sterowniki mogą być konfigurowane jako master lub sla-ve. W związku z tym, w sieci PPI są możliwe struktury wielomastero-we, w przeciwieństwie do innych rodzajów sieci. Medium transmisyjnym jest skrętka dwużyłowa z ekranem o odpowiednio dobieranych -w zależności od zastosowania - parametrach mechanicznych i falowych. Prędkość przesyłu danych wynosi 9,6/19,2/187,5 kb/s.
Maksymalnie w sieci PPI może pracować do 128 uczestników, przy
czym nie więcej niż 31 w każdym segmencie. Segmenty oddzielone są między sobą wzmacniaczami (repeaier). Maksymalnie można użyć do 9 wzmacniaczy. Maksymalna odległość pomiędzy skrajnymi sterownikami w sieci w jednym segmencie wynosi 1200 m, przy prędkości 9,6 kb/s.
Ważnym parametrem w komunikacji w sieci PPI jest czas wymiany danych miedzy uczestnikami sieci. Aby zapewnić optymalne czasy przesyłania danych pomiędzy sterownikami a panelami operatorskimi OP, określona została maksymalna liczba paneli operatorskich OP możliwych do podłączenia do jednego sterownika S7-200 oraz liczba sterowników, które mogą komunikować się z tym samym panelem (tab. 1).
Sieć PPI jest stosowana wszędzie tam, gdzie jest konieczne przekazywanie danych pomiędzy sterownikami S7-200 a wybranymi panelami OP oraz innymi sterownikami S7-200. Jest to najtańsza sieć
Fot. 1. Jednostka centralna CPU222
126
Elektronika Praktyczna 9/2003
AUTOMATYKA
Fot. 2. Wyglqd modułu EM277
przemysłowa, oferująca przekazywanie niewielkich ilości danych (16 bajtów w jednej paczce) na znaczne odległości.
Sieć MPI
Port komunikacyjny RS485 wbudowany w S7-200 może być wykorzystany do pracy w trybie MPI slave [Mviii Poini Inierface). Prędkość wymiany danych w tym trybie z innymi uczestnikami sieci wynosi 19,2/187,5 kb/s. W trybie MPI slave S7-200 może komunikować się ze sterownikami S7-300 oraz S7-400. Masierem sieci MPI jest sterownik S7-300 lub -4 00, który może zapisywać i odczytywać dane z S7-200. Sterowniki S7-200 nie mogą w tym trybie pracy komunikować się ze sobą bezpośrednio, tylko pośrednio poprzez S7-300 lub -400.
Sterowniki S7-200 można podłączyć do sieci MPI również poprzez moduł EM277 (fot. 2), który posiada możliwość komunikacji jako MPI slave. Do jednego modułu EM277 można podłączyć do 6 urządzeń, przy czym 1 połączenie jest zarezerwowane dla programatora PG, drugie zarezerwowano dla panela operatorskiego OP (fot. 3). Pozostałe cztery połączenia są przeznaczone dla dowolnych urządzeń komunikujących się w protokole MPI i mogą to być np. sterowniki swobodnie programowalne S7-300
lub -400 lub panele OP. Do jednego sterownika S7-200 można podłączyć jeden lub dwa moduły
EM2 77.
Sieć Profibus DP
Za pomocą dodatkowego modułu rozszerzenia EM2 77, sterownik S 7-200 może pracować również w sieci Profibus DP jako slave. Masterem sieci Profibus DP może być sterownik S7-300 lub -400. Maksymalna liczba uczestników sieci Profibus DP, w zależności od użytego CPU lub procesora komunikacyjnego (CP342-5 - fot. 4), wynosi od 64 do 122. Uczestnikiem sieci jest naturalnie również sterownik S7-200, a konkretnie moduł EM2 77. Prędkości wymiany danych w sieci Profibus DP mogą być zmieniane w szerokich granicach i wynoszą od 9,6 kb/s do 12 Mb/s. W zależności od zastosowanej prędkości różnią się również długości dla segmentów w sieci i wynoszą dla 9,6 kb/s - 1000 m i 12 Mb/s -100 m. Panele OP w sieci Profibus DP komunikują się ze sterownikami za pomocą standardowych funkcji S7, które wprowadzają ograniczenia na liczbę aktywnych połączeń, w związku z tym należy liczbę projektowanych paneli OP dostosować do liczby dostępnych aktywnych połączeń S7. Jest one uzależniona od zastosowanego sterownika S7-300 lub -400. Dla nowych sterowników S7-300/ i -400 liczba aktywnych połączeń wynosi 15, w przypadku starszych - 4.
Sterowniki S7-200 wraz z EM277 w sieci Profibus są wykorzystywane najczęściej do lokalnego zbierania danych z obiektu, przetwarzania tych danych oraz przekazywania do jednostek nadrzędnych S7-300. Wykorzystywane są również wtedy, gdy istnieje potrzeba wykonywania lokalnych sterowań z dodatkową funkcja komunikacji ze sterownikiem nadrzędnym np. z wizualizacją procesu przemysłowego.
Tab. 1. Zestawienie liczby paneli operatorskich możliwych do podłączenia do jednego sterownika oraz liczby sterowników mogących współpracować zjednym panelem
Mc^lNooecipocPcaEn S7-200
Jeden OP3znPPIznkilkomaS7-200 Możliwe jest podłączenie 2n-S7-200 do jednego 0P3
Kilka 0P3znPPI do jednego S7-200 Możliwe jest podłączenie 3D-GP3 do jednego S7-200
JedenOP7lubOP17znPPIdokilkuS7-200 Możliwe jest podłączenie 4D-S7-200 do jednego 0P7/0P17
Kilka 0P17znPPI do jednego S7-200 Możliwe jest podłączenie 3n -0P17 do jednego S7-200
Jeden TD200 do jednego S7-200 Jestto typowe połączenieTD200znS7-200
Jeden S7-200znkilkomaTD200 Możliwe jest podłączenie 4D-TD200 do jednego S7-200
ilMATICOFT
SlhflTIC 0P7
Ś M ZEiCHEH
e m SCWIFTHółfE
k k k k.
k ŚŚ ŚŚ :: bbb; Ś Ś * !Ś DBH Ś
Fot. 3. Wyglqd panela operatorskiego OP7
Sieć AS-Interface
Dzięki modułowi rozszerzeń CP243-2 (fot. 5) sterownik S7-200 może pracować w sieci AS-Interface jako masier sieci. Sieć AS-Interface jest siecią znormalizowaną. Wielu producentów wytwarza układy, urządzenia i elementy pracujące jako slave sieci AS-Interface. Siemens posiada również bogatą ofertę urządzeń slave AS-Interface, są to moduły wejść-wyjść dwustanowych, analogowych, pneumatycznych, mo-tostartery, lampy sygnalizacyjne, moduły LOGO! ASi i inne. Maksymalna liczba uczestników w sieci, jaką jest w stanie zaadresować CP243-2 wynosi 62. Do jednego sterownika S 7-2 00 można dołączyć dwa moduły CP243-2. Maksymalna odległość pomiędzy masierem a ostatnim uczestnikiem sieci, bez zastosowania wzmacniaczy, wynosi 100 m. Przy zastosowaniu dwóch
Fot. 4. Procesor komunikacyjny CP342-5 umożliwia pracę sterownika w sieci Profibus DP z maksymalnie 64. ..122 innymi urzqdzeniami
Elektronika Praktyczna 9/2003
127
AUTOMATYKA
Fot. 5. Moduł rozszeizeń CP243-2 umożliwia m.in. współpracę jednostki centralnej z sieciq AS-i
wzmacniaczy maksymalna odległość pomiędzy urządzeniami wynosi 300 m. Czas odczytu i zapisu danych przez mastera CP243-2 dla 62 uczestników sieci wynosi 10 ms. Każdy z dwustanowych modułów slave posiada 4 wejścia i 4 wyjścia binarne. Biorąc pod uwagę, że maksymalna liczba uczestników sieci wynosi 124 (przy zastosowaniu dwóch modułów CP243-2 współpracujących z jednym CPU), maksymalna liczba adresowanych linii w sieci AS-Interface wynosi 496 wejść i 496 wyjść binarnych. Obecnie w sieci ASi dostępne są również moduły analogowych wejść/wyjść. Jednocześnie można wykorzystać do 31 modułów analogowych 4-kanało-wych. Sieć ASi jest idealna dla producentów maszyn. W oparciu o nią można tworzyć nawet bardzo skomplikowane struktury sterowania, gdzie odległości pomiędzy elementami sterowanymi (silniki, klapy, zawory, czujniki) są dość znaczne dochodzące nawet do 300 m.
Połączenie typu Free Port
Zintegrowany z CPU port komunikacyjny RS485 może być również skonfigurowany do pracy w trybie swobodnym portu FreePort, tzn. komunikacja i wymiana danych z partnerem może dobywać się w kodach ASCII za pomocą protokołu Modbus. Maksymalna prędkość przesyłania danych wynosi 38,4 kb/s, przy czym dostępne są również inne prędkości 600, 1200, 2400, 4800, 9600, 19,200 kb/s. Przy zastosowaniu kabla PC/PPI istnieje możliwość konwersji standardu RS485 na RS232 i dzięki temu - w trybie swobodnym portu - można komu-
Fot. ó. Wyglqd falownika Micromaster 420
nikować się ze wszystkimi standardowymi urządzeniami jak np.: drukarki, modemy analogowe i GSM M20 Terminal, liczniki energii elektrycznej (Modbus master lub slave), sterowanie do 31 napędów Micromaster, Master-drive (protokół USS), mierniki wagowe i czytniki kodów paskowych.
Ponieważ w trybie swobodnym portu nie ma ograniczeń co do protokołu transmisji, użytkownik może samodzielnie tworzyć własne protokoły transmisji.
Tryb swobodny portu wykorzystywany jest również do bezpośredniej komunikacji i sterowania przekształtnikiem Micromaster (na fot. 6 pokazano moduł Micromaster 411). Sterownik ma wbudowaną obsługę szeregowego protokołu USS, za pomocą którego w sposób ciągły możemy zadawać i obserwować parametry napędu. Tak więc możemy zadawać częstotliwość pracy przekształtnika oraz odczytywać parametry aktualne i zadawać parametry do napędu, takie jak: czasy hamowania i narastania prędkości napędu, prąd silnika itp. Aby korzystanie z protokołu USS maksymalnie uprościć, Siemens przygotował gotowe biblioteki funkcji do bezpośredniego sterowania przekształtników. Biblioteki te instaluje się jako dodatkowe w programie służącym do programowania sterownika S7-200, czyli Step7 MicroWin. Z jednego sterownika S7-200 można sterować do 31 przekształtników częstotliwości. Michał Bereza, Siemens
128
Elektronika Praktyczna 9/2003
PROJEKTY
Centrala alarmowa
z powiadomieniem GSM
AVT-526

PROJEKT Z OKŁADKI


Centralki alarmowe są
bardzo często wyposażane
w różnego rodzaju
sygnalizację włamania.
Najprostszym sposobem
sygnalizacji jest włączenie
sygnału dźwiękowego lub
optycznego. Centralki
bardziej zaawansowane
konstrukcyjnie potrafią
informować o włamaniu przez
Internet lub telefon.
Prezentowany w tym
artykule system alarmowy jest
amatorskim rozwiązaniem,
jednak może przesłać
informację tekstową
o włamaniu
za pomocą modułu GSM,
czyli popularny SMS.
Rekomendacje: nowoczesne
i bardzo skuteczne
rozwiązanie zdalnej ochrony
mienia, dzięki któremu
informacja o włamaniu dotrze
do Ciebie w dowolnym
miejscu świata.
W egzemplarzu modelowym wykorzystałem modem GSM firmy Wavecom (fot. 1), jednak w jego miejsce można użyć dowolnego telefonu komórkowego. Być może wykorzystanie innego modemu będzie wymagało rozwiązania problemu zasilania oraz sposobu kodowania SMS, jednak jest to możliwe i wykonalne w warunkach warsztatu elektioni-ka-amatora.
Pr e z en to w ana c enti alka alarmowa jest jednym z urządzeń elektronicznych, których podstawowa wartość skupia się na odpowiednio napisanym oprogramowaniu. Układ elektryczny jest prosty (rys. 2), a płytka przypomina nieco płytkę prototypową przeznaczoną do projektowania układów z miki o kontrolerami. Jednostką sterującą jest mikrokontioler AT90S2313 taktowany wewnętrznym generatorem o częstotliwości stabilizowanej kwarcem 7,3728 MHz. Mikrokon-tioler ten ma 15 linii wejścia/ wyjścia. Dwie z nich wykorzystywane są przez UART (RXD -2, TXD - 3), pozostałe trzynaście steruje pracą układów peryferyjnych lub służy do komunikacji mikrokontrolera z otoczeniem. Port B ustawiany jest przez program jako wyjściowy z załączo-
nymi rezystorami pull-up (DDRB=OxFF). Tryb ten nie ulega zmianie podczas pracy programu, mimo iż czasami przez ten port wyprowadzane są dane, a czasami służy on do ich odczytu. Jest to pewna szczególna cecha mikrokontrolera AVR, wrócimy jeszcze do niej w artykule. Podobnie jest w przypadku portu D, chociaż tutaj część linii jest liniami wyjściowymi (TXD, DIR), a część wejściowymi (RXD i bity 2 do 5). Raz ustawiony tryb pracy nie jest zmieniany podczas działania centralki alarmowej.
Jak wspomniałem, mikiokontio-ler AT90S2 313 posiada 15 linii portów wejścia-wyjścia. Potrzeby układu alarmu są jednak znacznie większe. Posiada on 8 wejść przeznaczonych dla czujników, a wyświetlacz i klawiatura wymagają użycia odpowiednio co najmniej 6 i 7 wyprowadzeń portów. To tylko podstawowe układy otoczenia. Dodajmy do tego jeszcze co najmniej 1 linię do sterowania układem sygnalizacji alarmu i otrzymamy liczbę 22 wyprowadzeń portów niezbędnych do prawidłowego funkcjonowania układu alarmu. Konieczna więc była albo zmiana mikiokontiolera na posiadający większą liczbę portów, albo zastosowanie dodatkowych ukła-
14
Elektronika Praktyczna 9/2003
Centrala alarmowa z powiadomieniem GSM
dów scalonych. Zdecydowałem się na to drugie rozwiązanie.
Sygnał z czujników alarmowych jest podawany na doprowadzenia diody tiansoptora. Trans-optor zapewnia izolację galwaniczną czujnika od centralki oraz eliminuje część niskonapięciowych zakłóceń, które mogą pojawić się na linii doprowadzającej sygnał z czujnika. Użyłem 2 elementów firmy SHARP o symbolu PC849 (odpowiednik funkcjonalny produkowany jest przez firmę LI-TEON pod oznaczeniem LTV849). W obudowie zawarto 4 transopto-ry składające się z fototranzystora i diody. Szeregowo połączone z diodami rezystory R1...R8 należy dobrać do parametrów czujników. Stosowane przeze mnie rezystory o wartości 1 kii dobrane zostały dla napięcia sterującego o wartości 9...12 V.
Osiem wejść czujników dołączonych jest do układu multipleksera, który w zależności od stanu logicznego sygnału przyłożonego na wejście A/B (wyprowadzenie 1) podaje na wyjścia 1Y...4Y odpowiednio stany logiczne z wejść 1A...4A lub 1B...4B. Umożliwia to 4-bitowemu portowi mikiokontiolera odczyt 8 -bitowych danych w dwóch "porcjach" po 4 bity. Wyborem 4 wejść, z których odczytywany jest stan, steruje wyprowadzenie 6 portu D mikiokontrolera.
Niektóre z portów mikiokont-rolera pełnią podwójną rolę. Oprócz tego, że są wyjściowymi, np. dla modułu wyświetlacza LCD, to są również wejściowymi dla wierszy klawiatury.
Zacznijmy opis od wyświetlacza. W swoim układzie użyłem
Tab. 1. Opis funkcji realizowanych przez wyprowadzenia mi kro kontrolera AT90S2313 w centrali alarmowej
Wyprowadzenie rrfudcontrdera Opis funkcji
Nawa Mira (obudowa DI120) Oznaczenie sycpnftj na schemacie
PBO/AINO 12 DB4 Linia danych DB4 modułu LCD, wiersz 2nklawiatury
PB1/AIM1 13 DBS Linia danych DBS modułu LCD, wiersz 3nklawiatury
PB2 14 DB6 Linia danych DB6 modułu LCD, wiersz 4nklawiatury
PB3/OC1 15 DB7 Linia danych DB7 modułu LCD, wiersz Inklawiatury
PB4 16 RS Linia RS (Register Select) modułu LCD, kolumna Inklawiatury
PB5/M0SI 17 GOL Kolumna 2nklawiatury
PB6/MIS0 18 LED Linia załączająca przekaźnik indiodę LED, kolumna 3nklawiatury
PB7/SCK 19 EN Linia ENABLE modułu LCD (sterująca wprowadzaniem danych)
PD0/HXD 2 RXD Linia odbiornika interfejsu UART mikrokontrolera
PD1/TCD 3 UD Linia nadajnika interfejsu UART mikrokontrolera
PD2/INT0 6 - Wejście sygnału znczujki zewnętrznej (X1 inX5)
PD3/INT1 7 - Wejście sygnału znczujki zewnętrznej (X2 inX6)
PD4/T0 S - Wejście sygnału znczujki zewnętrznej (X3 inX7)
PD5/T1 9 - Wejście sygnału znczujki zewnętrznej (X4 inXS)
PD6/ICP 11 DIR Sterowanie wyborem wejść multipleksera (U2)
Fot. 1. Modem GSM firmy Wavecom
modułu LCD (2 linie po 20 znaków w każdej). Wyświetlacz pracuje w trybie z interfejsem 4-bitowym z wykorzystaniem linii portu PB0...PB3 jako linii danych, PB4 jako linii wyboru rejestru RS i linii PB7 jako ENABLE. Wszystkie linie portów oprócz ENABLE są wykorzystywane podwójnie: jako sterujące wyświetlaczem oraz pracą klawiatury. Wykorzystywany jest fakt, źe podczas trwania poziomu niskiego na linii ENABLE do rejestrów wyświetlacza nie są zapisywane żadne dane. Umożliwia to zmiany stanów pozostałych linii bez zakłócania pracy modułu.
Typowo, na wyprowadzenie 3 złącza wyświetlacza jest podane napięcie z suwaka potencjometru służące do regulacji kontrastu, a pomiędzy 15 i 16 doprowadzone jest napięcie dla podświetlenia tła (około 4,3 V). Układ można uprościć, zwierając napięcie regulacji kontrastu do masy. Dla większości wyświetlaczy LCD jest to wystarczające.
Klawiatura składa się z 12 przycisków i została zbudowana jako matryca 3 kolumn i 4 wierszy. Trzy bity portu B (4, 5 i 6) pracują jako wyjściowe, cztery pozostałe jako wejściowe. Wszystkie linie mają załączone wewnętrznie rezystory pull-up. Wyjątkowo bity 0 i 1 wymagają zewnętrznych rezystorów podciągających. Kierunek pracy portu nie jest zmieniany przez program sterujący. Linie pracują zawsze jako wyjściowe, a w razie potrzeby ich stan sprawdzany jest przez odczyt rejestru PIN. W architekturze mik-rokontiolera AVR rejestr PIN zawiera adres, przy odczycie którego wyprowadzenie portu załączane jest przez specjalny bufor tiójstanowy do wewnętrznej magistrali danych mikiokontiolera.
Rolę układu dopasowującego poziomy napięć interfejsu UART mikrokontrolera do RS232 pełni układ MAX232. Wykorzystane są tylko 2 drivery znajdujące się w strukturze układu. Sygnał interfejsu doprowadzony jest na męskie, 9-stykowe złącze DB.
Elektronika Praktyczna 9/2003
15
Centrala alarmowa z powiadomieniem GSM
Układu MAX można nie wluto-wywać lub nie wykorzystywać. Zworki JPl i JP2 znajdujące się na płytce umożliwiają odłączenie sygnałów RXD i TXD mikrokontrolera od układu MAX i doprowadzenie ich do inwerterów 74HCT14. Jest to układ dopasowujący poziomy do wymagań telefonu GSM (Siemens C35). Rezystory R20 i R21, tworzące dzielnik napięcia, są tak dobrane, aby napięcie wyjściowe nie przekraczało 3,3 V na poziomie wysokim. Bramka 74HCT14 pracująca jako odbiornik posiada w strukturze przerzutnik Schmit-ta, który powoduje, że napięcie powyżej 2,4 V traktowane jest jako wysokie. Zaznaczam jednak, że alarm testowany był wyłącznie z modemami firmy Siemens (M20T) oraz Wavecom (WM0D2), a interfejs dla telefonu GSM nie był wykorzystywany. Złącze dla "zwykłego" telefonu GSM oznaczone jest jako X14, a dla modemu GSM - X12.
Bramki układu inwertera pracują również jako układy wyjściowe sterujące pracą przekaźnika oraz diody LED.
Układ jest zasilany napięciem 5 V z umieszczonego na płytce układu stabilizatora 7805 (U3). Do poprawnej pracy wymaga on podania co najmniej 7 V na zaciski złącza X1O (uwaga na polaryzację!). Kondensatory C9...C12 pełnią rolę filtrowania napięcia zasilającego. Kondensatory CIO i Cli powinny być umieszczone jak najbliżej wyprowadzeń stabilizatora. Rezystor Rll i kondensator C4 to obwód RC wytwarzający po włączeniu sygnał zerujący dla mikrokontrolera.
Elementem wykonawczym alarmu jest przekaźnik RLl. Na doprowadzeniach jego cewki znajduje się dioda D3 mająca za zadania eliminowanie przepięć powstających w czasie załączania i wyłączania cewki. Jak wspomniałem, rolę układu dopasowującego pełnią bramki inwertera połączone równolegle w celu zapewnienia większej wydajności prądowej. Przekaźnik sterowany jest wspólnie z diodą LED. Załączenie przekaźnika jest sygnalizowane zaświeceniem tej diody.
W pewnych momentach pracy układu dioda LED jest wykorzystywana również do sygnalizacji.
Wówczas jednak jej błyski są na tyle krótkie, że nie powodują załączenia przekaźnika. Również w czasie przeglądania wierszy klawiatury starałem się dobrać czasy na tyle krótkie, aby nie powodować załączania urządzeń zewnętrznych.
Opis programu sterującego
Początkowo zamierzałem napisać program sterujący pracą alarmu w języku Bascom lub GCC. Okazało się jednak, że mikrokon-troler AT90S2313 ze swoimi 2 kB pamięci programu jest zbyt "skromny" jak na wymagania kompilatora języka wysokiego poziomu.
Zupełnie zaskoczył mnie kompilator GCC. Przeniosłem do niego bibliotekę funkcji, napisaną co prawda dla 8051, lecz po drobnych modyfikacjach kompilator GCC przetworzył źródło na kod wynikowy bez większego problemu. Jednak rozmiar tego kodu był dla mnie zupełnym zaskoczeniem! Wykonałem wyłącznie procedury obsługi LCD w języku C i te po kompilacji zajęły 3 kB! Dla porównania analogiczny funkcjonalnie program wykonany w Bascom AVR zajął jedynie ok. 500 bajtów, podobnie zresztą jak w RC-51. Być może nie umiałem włączyć jakiejś opcji optymalizacji.
Tak więc 2 kB to za mało pamięci do wykonania tego typu aplikacji w języku wysokiego poziomu. Musiałem napisać program sterujący w asemblerze. Przy uruchamianiu i testowaniu programu posługiwałem się AVR Studio 4 firmy Atmel.
Aby omówić działanie programu, muszę wyjaśnić kilka podstawowych reguł, którymi kieruję się przy pisaniu tego rodzaju aplikacji. Dotyczą one głównie stałych i zmiennych oraz sposobu ich interpretacji przez funkcje. Zacz-nijmy od liczb. Zgodnie z notacją przyjętą przez firmę Atmel, każdą liczbę rozpoczyna bajt mniej znaczący, a kończy bardziej znaczący. Jeśli liczba jest 4-bajtową umieszczoną w rejestrach R0 - ROI - R02 - R03, to najmniej znaczący bajt jest zawarty w rejestrze R0, a najbardziej znaczący w R03.
Każdy łańcuch tekstowy wysyłany na wyświetlacz zawiera tylko kody znaków ASCII o wartościach
większych od 0x20 (32 dziesiętnie, kod znaku odstępu), a kończy się znakiem o kodzie 0x00. Podobnie jest z ciągami znaków wysyłanych do modemu, ale podlegających przetwarzaniu przed ich wysłaniem. Na przykład polecenie zapisujące kod PIN zawiera część stałą AT+CPIN= oraz zmienny -zależny od karty SIM - poufny kod PIN. Inaczej jest z poleceniami przesyłanymi wprost do modemu. Te kończy sekwencja kodów CR (powrót kursora do początku linii, 0x0A) oraz LF (nowa linia, 0x0C).
Reasumując - każdy tekst wyświetlany lub przetwarzany kończy kod 0x00, a każdy tekst przesyłany do modemu kończą kody CR-LF. Ten sposób zapamiętywania danych stosowany jest konsekwentnie w całym programie z wyjątkiem przechowywania kodu załączenia i wyłączenia alarmu oraz kodu PIN.
Program główny jest bardzo krótki. Na początku ustawiane są tryby pracy portów B i D. Do rejestru DDRB wpisywana jest wartość 0xFF, co oznacza, że wszystkie wyjścia mają załączone rezystory pull-up i pracują jako wyjściowe. Do rejestru DDRD wpisywana jest wartość 0xC0, która ustawia bity 6 i 7 portu D jako wyjściowe, a pozostałe jako wejściowe. Linia TXD portu C (bit 1) pracuje jako wyjściowa, jednak wpisanie do rejestru DDRD "1" na pozycję odpowiednią dla tego bitu powoduje, że pracuje ona jako zwykły port wyjściowy i traci swoją funkcję jako TXD. Aby linia ta pracowała poprawnie jako wyjście interfejsu UART, należy do DDRD na pozycji 1 wpisać "0" lub pozostawić stan taki, jaki jest po załączeniu zasilania.
Następne linie programu ustalają częstotliwość, z jaką wywoływane będą przerwania Timerów 0 i 1. Pierwszy to licznik 8-bitowy generujący przerwanie po zliczeniu 255 impulsów. Kolejny, 256 impuls zegarowy ustawia flagę przepełnienia OVF0 i powoduje przejście do obsługi przerwania. Przy częstotliwości rezonatora kwarcowego 7,3728 MHz, preska-lerze ustawionym na wartość 1024 oraz początkowej wartości licznika 0 (licznik Timera 0 liczy w górę), przerwania będą wywoływane
16
Elektronika Praktyczna 9/2003
Centrala alarmowa z powiadomieniem GSM
ai "" i a
Rys. 2. Schemat elektryczny centrali
Elektronika Praktyczna 9/2003
17
Centrala alarmowa z powiadomieniem GSM
z częstotliwością 7372800: 1024: 256 = 28,125 Hz. Timer 1 również ma preskaler ustawiony na wartość 1024, jednak do rejestrów wpisywana jest wartość inicjująca, od której Timer zlicza impulsy zegarowe w górę, aż do przepełnienia. Timer 1 w odróżnieniu od Timera 0 jest 16-bitowy, toteż liczy do wartości 6553 5. Impuls numer 655 36 powoduje przepełnienie, ustawienie flagi OVFl i przejście do procedury obsługi przerwania. Tu przerwanie wywoływane jest z częstotliwością 7372800: 1024: (65535 - 58335) = 1 Hz. Przerwania są zablokowane po uruchomieniu mikrokontrolera, jednak pozostawiony ("na wszelki wypadek") rozkaz CLI wyłącza je i blokuje aż do momentu, gdy konieczne będzie ich użycie. Zostawmy na razie procedury obsługi przerwań - będzie jeszcze okazja do nich wrócić.
Od etykiety STATUS_CHECK rozpoczyna się część programu mająca za zadanie rozpoznanie trybu, w którym znajdował się mikrokontroler przed wyłączeniem napięcia zasilania. Wywoływana zostaje funkcja odczytująca bajt spod adresu 0x00 w pamięci EEP-ROM. Wartość tego bajtu odpowiada statusowi urządzenia. Jeśli komórka ta zawiera wartość różną od 0xF0 lub 0x0F, to program uznaje, że jest to pierwsze załączenie alarmu i zażąda wykonania wszystkich niezbędnych nastaw, to jest: podania kodu załączenia i wyłączenia, podania kodu PIN dla używanej karty SIM, wprowadzenia numeru telefonu oraz opisów dla lokalizacji alarmu i wejść czujników. Wybrana metoda sprawdzenia statusu urządzenia jest o tyle pewna, że każdy zapis programu do pamięci Flash mikrokontrolera AT90S2313 powoduje usunięcie zawartości EEPROM (cały EEPROM zostaje zapisany wartością 0xFF). Po wprowadzeniu nastaw do komórki STATUS zostaje zapisana wartość odpowiednia dla stanu wyłączenia alarmu.
Poświęćmy teraz kilka chwil wysyłanym do modemu rozkazom i ich znaczeniu. Interfejs UART pracuje z szybkością 9600 bitów na sekundę. Identyczną prędkość powinniśmy ustawić w posiada-
nym telefonie czy modemie. Aby dokonać niezbędnych nastaw, należy za pomocą dowolnego programu terminala nawiązać połączenie z modemem i wydać polecenie AT+IPR=9600;&W. Ustawi ono i zapisze w pamięci konfiguracji modemu parametr prędkości transmisji. W przypadku użycia telefonu GSM może się okazać, że nie zaakceptuje powyższej komendy. Wówczas prawdopodobnie łatwiej będzie nam zmienić prędkość z jaką pracuje UART mikrokontrolera aniżeli telefonu. Można to zrobić, poprawiając funkcję uart_init, a konkretnie wartość wpisywaną do rejestru UBRR. Należy dobrać ją w zależności od używanego rezonatora i wymaganej prędkości transmisji. Gotowe przykłady można znaleźć w notach aplikacyjnych na stronie producenta http://www.atmel.com lub wyliczyć samodzielnie na podstawie wzorów znajdujących się w kartach katalogowych mikrokon-trolerów AVR. Gdy sprawdzimy, że modem (telefon) gotowy jest do pracy i komunikuje się poprawnie używając prędkości 9600 bd, możemy podłączyć go do naszego układu.
Program sterujący wysyła jako pierwszą komendę ATZ. Powoduje ona ustawienie domyślnego trybu pracy - przywrócone zostają również wszystkie te parametry, które nie zostały zapamiętane na stałe jako domyślne. Następny rozkaz wprowadza numer PIN właściwy dla karty, na przykład: AT+CPIN=9889. Jako kolejne wysyłane są polecenia ATE0 wyłączające tzw. echo komendy oraz AT+CPMS=SM ustawiające miejsce przechowywania wiadomości SMS na kartę SIM. Jednocześnie z przyjmowaniem tych poleceń modem włącza się do sieci. W przypadku modemu Wavecom gotowość do pracy sygnalizowana jest przez migoczącą z częstotliwością około 1 Hz diodę LED. W przypadku Siemens MT20 jest inaczej - dioda LED świeci się stale.
Po każdym poleceniu wysłanym do modemu wywoływana jest funkcja gets odbierająca ciąg znaków z UART. Oczekiwane jest, że modem odpowie, wysyłając (co najmniej) kody CR i LF. W przypadku braku odpowiedzi od mo-
demu program przestanie pracować już w fazie inicjacji. Można w ten sposób łatwo stwierdzić, że brak jest poprawnej łączności z modemem. Niestety, nie wykonałem w programie detekcji odłączenia modemu. W przypadku, gdy modem zostanie odłączony tuż przed wysłaniem SMS z powiadomieniem o załączeniu alarmu, alarm zostanie włączony, a następnie program będzie oczekiwał na połączenie z modemem i odpowiedź na przesłane polecenia. Jeśli jej nie otrzyma - zawiesi się sprawdzając w nieskończoność stan flagi gotowości do odbioru znaku (bajtu) z UART.
Od etykiety main rozpoczyna się główna pętla programu. Na jej początku ponownie odczytywany jest bajt statusu i w zależności od jego wartości podejmowana jest odpowiednia akcja. Polega ona bądź to na wywołaniu procedury obsługi alarmu w stanie czuwania, bądź to obsługi alarmu w stanie wyłączenia.
Stan wyłączenia
Za jego obsługę odpowiedzialna jest funkcja alarm_off. Po jej wywołaniu czyszczony jest ekran wyświetlacza LCD, a następnie wyświetlona zostaje informacja z pamięci ROM umieszczona w niej pod nazwami symbolicznymi whenoff oraz set_l. Pierwsza umieszczona zostaje w pierwszej linii ekranu - ja zadeklarowałem ją jako ALARM WYŁĄCZONY, ta druga umieszczona w drugiej linii LCD. Zadeklarowałem ją jako Kod wyłączenia? Później zmiennej visible nadana zostaje wartość UCANTSEE a zmiennej sensors wartość SEN-SOROFF. Po tych operacjach wywoływana jest funkcja odczytu kodu wprowadzanego za pomocą klawiatury. Kod jest zawsze 4-cyfrowy. Wynik funkcji zwracany jest w rejestrach o nazwach symbolicznych ccharl do cchar4. Uwaga! Kod załączenia musi być inny niż "0000". Jest on zarezerwowany do wprowadzenia urządzenia w tryb serwisowy!
Funkcja comparecodes porównuje 4 bajty pobrane z pamięci EEPROM spod adresu podanego w rejestrze eeaddr z odczytanymi z klawiatury. Jeśli wprowadzony kod jest identyczny z zapamięta-
18
Elektronika Praktyczna 9/2003
Centrala alarmowa z powiadomieniem GSM
nym, do komórki zawierającej bajt statusu w EEPROM zapisana zostaje wartość informująca program
0 tym, że alarm jest załączony
1 następuje powrót do programu głównego. Teraz na podstawie zawartości komórki status pamięci EEPROM wywołana zostaje funkcja obsługująca stan załączenia alarmu.
Stan załączenia
Wszystkie funkcje związane ze stanem czuwania alarmu umieszczono w podprogramie alarmon. Po wejściu do podprogramu załączane jest przerwanie Timera 1. Fragment programu zawierający kod jego obsługi umieściłem na list. 1. Procedura ta ma do wykonania dwa podstawowe zadania. Ma zwiększyć wartość zmiennej - licznika goon oraz odświeżyć zawartość rejestrów licznika Timera 1. Do tych dwóch zadań dodałem jeszcze trzecie - krótki, trwający około 1 milisekundy, błysk diody LED. Sygnalizuje ona w ten sposób, że odmierzany jest czas do załączenia. Pętla rozpoczynająca się od etykiety al_on_wait trwa dokładnie tyle czasu odmierzanego w sekundach, ile podano w stałej DELAYTIME. Jako typową wartość zadeklarowałem 30 sekund. Jest to czas, przed upływem którego osoba załączająca alarm musi się oddalić z obszaru zadziałania czujników.
Po upływie tego czasu rozkaz CLI wyłącza obsługę przerwań a przerwanie pochodzące od Timera 1 jest blokowane. Teraz wyświetlony zostaje komunikat o załączeniu alarmu [whenon i set_2), a następnie do rejestru kontrolnego przerwań (TIMSK) wprowadzana jest nastawa załączająca przerwanie na skutek przepełnienia Timera 0. Jest ono odpowiedzialne za odpytywanie stanu czujników (sensorów) alarmu. Rozkazy składające się na procedurę obsługi przerwania umieściłem na list. 2. Ze względu na pozorną złożoność poświęcimy jej trochę uwagi.
Rozkaz push temp przechowuje wartość rejestru temp na stosie. Następnie zerowany jest bit 6 portu D oznaczony na schemacie jako DIR. Wartość "0" tego bitu oznacza, że odczytane zostaną czujniki podłączone do wejść 1A, 2A, 3A i 4A mikrokontrolera. Tworzą one
List. 1 Procedura obsługi przerwania Timera 1
;obsłu przerwania tim era 1
;odmie rz anie czasu opóź nienia do z adzi ała ni a al srmu
timl irq
sbi P ortb,ALARMOUT załączę nie dio dy LED (migotanie w czasie "ALARMDELAY")
pus h temp przeć ho Wani e z aw arto sci "temp" na stosie
ldi t emp.TIMIRLDH
out TCWT1H,temp
ldi t emp.TIMIRLDL
out TCWT1L,temp odśwież enie za Wa rtos ci Timer'a 1
inc g oon zwiększ enie li cz nika "goon"
ldi t emp,0xFF
timl 1 oo P =
rca 11 delaylms opóźnię nie cza so We a jy migotanie LED było widoczne
pop t emp
cbi P ortb,ALARMOUT wylacze nie dio dy LED
reti
mniej znaczącą połówkę bajtu stanu czujników. Jest ona odczytywana z rejestru PIND, przesunięta dwukrotnie w prawo (dwa polecenia asr temp) i zostaje zapamiętana w zmiennej sensors. Następnie, po ustawieniu poziomu wysokiego na wyprowadzeniu PORTD.6 pobrana zostaje bardziej znacząca połowa bajtu stanu czujników, przesunięta dwukrotnie w prawo i zsumowana z mniej znaczącą. Wynik sumowania zostaje zapamiętany w zmiennej sensors. Po odtworzeniu wartości temp procedura kończy się. Inne funkcje sprawdzają odczytany stan czujników i podejmują odpowiednią akcję. W przypadku stwierdzenia na jednym z wejść informacyjnych mikrokontrolera (PD2...PD5) poziomu niskiego obsługa przerwania Timera 0 kończy się - zostaje ono zablokowane. Dalsze przeglądanie czujników nie jest potrzebne. Ponownie zerowany jest licznik czasu goon i załączone zostaje przerwanie Timera 0, tym razem odmierzając czas upływający od momentu zadziałania czujnika do momentu załączenia alarmu. Jest to także czas podany w sekundach o wartości DELAYTIME. Opóźnienie zostało wprowadzone po to, aby użytkow-
nik miał możliwość wprowadzenia kodu wyłączającego alarm.
Procedura alarm_off sprawdza kod wyłączenia wprowadzany przez użytkownika oraz kończy pracę, ustawiając bajt statusu urządzenia w EEPROM i powracając do głównej pętli programu w przypadku zgodności wprowadzonego kodu z zapisanym w EEPROM. Decyzję o podejmowanej przez centralkę akcji podejmuje główna pętla programu na podstawie zawartości komórki pamięci zawierającej bajt statusu centralki. W związku z tym, że jest to pamięć nieulotna, urządzenie po odłączeniu i ponownym włączeniu napięcia zasilania zostanie wprowadzone w ten sam stan, w którym znajdowało się przed jego wyłączeniem.
Odczyt kodu
Jedną z dwóch "trudnych" procedur jest procedura odczytu kodu wprowadzanego z klawiatury. Zwłaszcza kilka początkowych linii wymaga dokładniejszego omówienia. Umieściłem je na list. 3.
Od etykiety read_code_next rozpoczyna się właściwa procedura rozpoznawania wciśniętych klawiszy i nadawania wartości komórkom ccharl...cchar4. Pamiętaj-
List. 2. Procedura obsługi przerwania Timera 0
;obsługa przerwania timera ;odpytywanie we]sc alarmu
timO_irq:
push temp
cbi portd.HIGHNIBBLE
in temp.pind asr temp asr temp
sbi portd.HIGHWIEELE
in temp.pind
asr temp
asr temp
andi temp,OxOF
swap temp
or sensors, temp
pop temp
reti
zapamiętanie "temp" na stosie
odczyt młodszej połówki bajtu wejsc czujników
przerwa na czasy propagacji układów
odczyt młodszej połówki bajtu "dopasowanie" bitów
przerwa na czasy propagacji układów
czyt starszej połówki bajtu "dopasowanie" bitów
Elektronika Praktyczna 9/2003
19
Centrala alarmowa z powiadomieniem GSM
List. 3. Fragment funkcji odczytu kodu read_code
read_c ode_loop:
brid read_code_next jeśli przerwania sa wyłączone , przejdź do odczytu klawiatury
i nie sprawdzaj stanu sensoró W
mov sprawdzenie stanu czujników!! . konieczne tutaj,
bo funkcja nie przerywa pracy do momentu odczytu
pełnego, 4-cyfrowego kodu
cpi temp.SENSORSOFF
bre q read_code_next jeśli żaden sensor nie jest a ktywny omiń
poniższe rozkazy
brt s read_code_act jeśli flaga T jest ustawiona, to nie wyko nuj
nastaw przerwania Timera 1
cli wyłączenie przerwań
clr goon kasowanie licznika czasu opóz nionego zala czenia
(pracuje w przerw.Timer'a 1)
ldi temp,0x8 0
out TIMSK, temp załączenie przerwań Timer'a 1 (co 1 sek.)
sei załączenie przerwań
read_c ode_act:
set ustawienie flagi "T"
pus h zl przechowanie wskaźnika do buf ora w RAM
11 alarm active
pop zl
read_c ode next:
rca 11 kbd_read odczyt klawiatury, znak zwrac any w zmienn ej "char"
my, że procedura jest wykorzystywana zarówno w trybie wyłączenia alarmu, jak i w trybie załączenia. Tryby te różnią się pomiędzy sobą przede wszystkim tym, że w stanie załączenia aktywne jest przerwanie Timera 0 przeglądające stan czujników. W związku z tym rozkaz brid read_code_next powoduje natychmiastowe przejście do funkcji interpretacji klawiszy, gdy nie jest załączona obsługa przerwania. Zrobiłem tak po to, aby wartość zmiennej sensors nie wpływała na stan alarmu. Dlaczego? Prześledźmy dalsze linie programu. Sekwencja rozkazów:
movtemp,sensors
epitemp,SENSORSOFF sprawdza, czy któryś z czujników alarmu jest aktywny. Obojętne jest, czy w stanie wyłączenia, czy załączenia podejmowana jest akcja na podstawie stanu zmiennej sensorsl W związku z tym możliwe jest uaktywnienie sygnalizacji dźwiękowej i powiadomienia SMS w stanie wyłączenia alarmu. Omawiane wcześniej polecenie brid ma uchronić przed tym system alarmowy.
Również w tej procedurze konieczne jest jednokrotne zainicjowa-
nie wartości goon i załączenie przerwań Timera 1 w celu odmierzania czasu opóźnionego załączenia. Ini-cjalizacja przeprowadzana jest w zależności od stanu flagi T. Rozkaz bńs readcodeact omija polecenia nadające wartości zmiennym w przypadku, gdy flaga jest ustawiona. Polecenia set ustawia flagę T po przeprowadzeniu inicjalizacji.
Załączenie alarmu
Na list. 4 umieściłem fragment kodu źródłowego programu odpowiedzialnego za uaktywnienie alarmu. Rozpoczyna się ona od etykiety alarm_active rozkazami testującymi stan zmiennej goon odmierzającej czas do załączenia alarmu. Jeśli wartość goon jest mniejsza lub równa DELAYTIME, to nie jest podejmowana żadna akcja. Jeśli wartość goon jest większa od DELAYTIME, rozkaz sbi portb,ALAPMOUT załącza sygnalizację dźwiękową a polecenie rcall send_SMS wywołuje podpro-gram wysyłający SMS pod zaprogramowany i zapamiętany w EEP-ROM numer telefonu. SMS będzie wysłany, jeżeli bit 0 zmiennej sms_sent nie jest ustawiony. Dodatkowo blokowane są przerwania, co powoduje zaniechanie
List. 4 Procedura obsługi załączenia alarmu
;alarm a ktywny - sygnalizacja dzwi kowa, powiadomienie za pomocą SMS,
;oczekiw anie na kod wyła czenia
alarm ac tive:
mov t emp,goon
subi temp,DELAYTIME ;spra wdzenie.czy upłynął juz czas opóźnienia
brsh active_and_on
rjmp active exit
active a nd_on :
cli" ; wy la czenie przerwań - juz nie sa potrzebne
sbi p ortb,ALARMOUT ' zala czenie wyjścia alarmu
tst s mssent ;jeśli wysyłano juz SMS,to nie wysyłaj powtórnie
bme active_exit
rcall send_SMS ;wysl anie sms z powiadomieniem
active_e xit:
ret
sprawdzania stanu czujników oraz odmierzania czasu. Alarm pozostaje załączony do momentu wprowadzenia kodu wyłączenia lub odłączenia napięcia zasilania. Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdflwrze sień 03 .htm.
WYKAZ ELEMENTÓW
Rezystory
R1...R8: lkn
R9...R11: 10kO
R14, R16..R18: 33Q
R19: 5Ó0O
R20: 270O
R21: 750O
PR1: 10...22kQ
Kondensatory
CL C2: 22pF
C3: 10pf/16V
C4...C8: luf /50V
C9: 100^F/16V
CIO, Cli: 100nF/63V
C12: 470|iF/25V
Półprzewodniki
Dl: dioda LED czerwona
D2: dioda krzemowa średniej
mocy, np. 1N4007
D3...D6: dioda krzemowa małej
mocy, np. 1N4148
ISO1, ISO2: PC849 SHARP (LTV849
LITEON)
Ul: AT90S2313 (zaprogramowany)
U2: 74LS157
U3: 7805
U4: 74HCT14
U5: MAX232
Różne
Zl, Z2, X1...X8, X10: ARK2 o
rastrze 3,5 mm
X9: komplet wtyk wlutowywany
w płytkę, prosty, 16 wypr. +
gniazdo zaciskane na
przewodach
Xli: komplet wtyk wlutowywany
w płytkę, prosty, 10 wypr. +
gniazdo zaciskane na
przewodach
X12: złącze DSUB-9/M (męskie)
X14: złącze dla telefonu
komórkowego
SW1..SW12: przyciski zwierne
RL1: przekaźnik z cewką 5V, np.
ITT RZ2H-5
LCD1: wyświetlacz LCD 2x20
Ql: kwarc 7,3728MHz
Elektronika Praktyczna 9/2003
PROJEKTY
Programator mikrokontrolerów AVR i AT89S8252
AVT-515
Kilka dni wytężonej pracy
zajęło mi opracowanie
programatora ISP dla
mikrokontrolerów firmy
ATMEL z rodziny AT90,
ATmega i AT89S8252. Dla
mnie to przykład kolejnego
urządzenia, o którego wańości
stanowi nie tyle liczba
i nowoczesność zastosowanych
podzespołów, a program
wykonywany przez
mikrokon troler.
Rekomendacje: nie ma
wśród naszych Czytelników
takich, którzy nie wiedzą, co
to jest mikrokontroler. Dlatego
właśnie projekt prezentowany
w ańykule może
zainteresować praktycznie
każdego, kto korzysta lub
zamierza korzystać
z niezwykle popularnych
AVR-ów.
Zapewne większość Czytelników zajmujących się mikiokont-rolerami zna wiele różnych typów prostych programatorów. Opisy wielu z nich były również publikowane na łamach EP. Większość z nich jest sterowana sygnałami portu równoległego. Ma to swoje wady i zalety, nie chcę ich tutaj omawiać. Osobiście mam jednak pewne obawy przed podłączaniem czegoś do portu drukarkowego. Raz, że nie jest to zbyt wygodne, jeśli już jest tam podłączona drukarka. Dwa, że czasami drobna awaria programatora prowadzi do uszkodzenia portu, a to już jest duży kłopot. Zdecydowałem się na skonstruowanie programatora podłączanego do portu szeregowego komputera PC. Istnieje co prawda nota aplikacyjna firmy ATMEL (AVR910) opisująca taki programator, jednak wydał mi się on zbyt skomplikowany. Dodatkową trudnością było zdobycie i zaprogramowanie mik-rokontiolera AT90S1200.
Opis działania
Schemat elektryczny programatora pokazano na rys. 1. Nie posiada on własnego stabilizatora napięcia zasilania, ponieważ zasilanie jest pobierane z programowanego układu. Założyłem również, że zapisywany lub odczytywany mikrokontroler posiada własny generator zegarowy podłą-
czony do wejścia XT ALi. Oczywiście wystarczy, jeśli ma podłączony rezonator ceramiczny lub kwarcowy.
Sygnał interfejsu szeregowego z komputera PC doprowadzany jest na bramkę tranzystora Tl (B Sl 70). Pełni on rolę układu translacji poziomów napięć RS232 (logiczna "1": -12...-5Y, logiczne "0": +5...+12V) na poziomy TTL. Dalej sygnał podawany jest na wejście RxD interfejsu UART mikrokontroler a. Drugie wyprowadzenie UART - TxD - jest podłączone do bramki tranzystora BS250 pracującego jako driver dokonujący translacji poziomu napięć TTL na wymagane przez RS232. Uwaga: proszę nie zmieniać wartości re-
Programator opisany w artykule można wykorzystać do programowania następujących mikrokontrolerów:
? AT89S8252
? AT90S1200 iDAT90S1200 rev.C
? AT90S2313
? AT90S2323
? AT90S2333
? AT90S2343
? AT90S4414
? AT90S4433
? AT90S4434
? AT90S8515
? AT90S8535 D ATMega 103 D ATMega 161 D ATMega 163 D ATMega 603 D ATM ega 83
Elektronika Praktyczna 9/2003
21
Programator mikrokontrolerow AVR i AT89S8252
vcc
Rys. 1. Schemat elektryczny programatora
zystancji dołączonych do tranzystorów! Wartości rezystorów R3, R4 i R5 powinny być sobie równe i zawierać się w granicach 1,8...2,4 kQ. Tranzystor T2 zasilany jest napięciem dodatnim pochodzącym z płytki programatora oraz napięciem ujemnym pochodzącym z linii sygnałowej interfejsu RS232. Zakres napięć wyjściowych waha się od -5...+5V. Niestety, interfejs RS232 starszych komputerów PC (386, 486 i być może niektóre Pentium I) może nie akceptować takich poziomów napięć. Nie mają z nim żadnego problemu nowsze modele PC, mające interfejs szeregowy zgodny ze specyfikacją EIA232.
Zastosowany w programatorze mikrokontroler AT89C2051 spełnia rolę terminala realizującego polecenia aplikacji sterującej. Za-implementowałem w nim funkcje programowego interfejsu SPI. Programowanie docelowego układu odbywa się z jego wykorzystaniem. Diody LED (Dl, D2 i D3) służą do sygnalizacji stanu programatora. Ich kolory dobrane są "intuicyjnie", zgodnie z ludzkimi przyzwyczajeniami. Świecenie
diody zielonej (D2) oznacza poprawne nawiązanie komunikacji z komputerem PC oraz pozytywny rezultat przeprowadzanej operacji. Świecenie diody żółtej (Dl) oznacza, że programator przesyła dane - jest zajęty. Dioda czerwona (D3) świeci się w sytuacji, gdy wystąpi błąd - operacja została zakończona niepowodzeniem.
Zwarcie przycisku SWl powoduje wystawienie sygnału zerującego dla programowanego mikro-kontrolera. Aktywny poziom sygnału zerującego (0 lub 1) jest wybierany zworką JPl.
Opis programu dla
mikrokontrolera
AT89C2051
Program dla mikrokontrolera Ul został napisany w języku C z niewielkimi wstawkami w języku asembler. Po skompilowaniu zajmuje on około 1,6 kB przy włączonej opcji optymalizacji kodu wynikowego pod kątem szybkości jego działania. Do napisania programu posłużył mi kompilator firmy Raisonance. Program kompilowany był przy włączonym modelu pamięci TINY. Każdy, kto
będzie chciał wykonać modyfikacje, może się posłużyć darmową wersją demonstracyjną tego pakietu dostępną na stronie producenta [http://www.raisonance.com), umożliwiającą kompilację i uruchamianie programów do 4 kB kodu.
Program realizuje funkcję terminala dołączanego do komputera PC z wbudowanym interpreterem poleceń, wykonującego polecenia przesyłane przez program AVR Próg. Z małym wyjątkiem, do komunikacji używane są funkcje wejścia/wyjścia z biblioteki producenta. Ten "mały wyjątek" to funkcja przesyłająca znaki do komputera PC, która wymagała odrębnej implementacji. Standardowo bowiem putchar() po napotkaniu kodu 0x0A przesyła dodatkowo 0x0D, tworząc typową sekwencję końca linii znaków (powrót karetki i nowa linia). Nie jest to pożądane przy przesyłaniu danych w postaci binarnej zawartych w pamięci mikrokontrolera. Najprostszym rozwiązaniem była własna implementacja funkcji put-char(). Jak widać na list. 1, nie należy ona do zbyt skomplikowa-
Elektronika Praktyczna 9/2003
Programator mikrokontrolerow AVR i AT89S8252
Rys. 2. Wyglqd okna programu AVR Próg
nych. Nie wykorzystuje mechanizmu przerwań, zeruje flagę TI oraz zapisuje dane do bufora UART i oczekuje na ustawienie TI będące sygnałem zakończenia transmisji bajtu.
Funkcja korzysta z nastaw pre-denniowanych przez producenta pakietu. Szybkość transmisji określana jest przez polecenie tipragma DEFJ(TIMl_INIT=OxFD) zawierające wartość inicjującą Ti-mei 1 sterujący pracą UART.
Funkcja getchar() nie nadaje się do zastosowania w naszej aplikacji, ponieważ zwraca ona echo odebranego znaku, co zgodne jest ze specyfikacją standardu ANSI C i przydatne w przypadku terminala znakowego, jednak zupełnie niepotrzebne w przypadku programatora. Na szczęście producent zdefiniował również inną funkcję, znacznie bardziej przydatną dla naszych celów. Jest to funkcja o nazwie getkey() zwracająca wartość bajtu odczytanego z UART.
Funkcje zapisu (wrser) i odczytu (rdser) interfejsu SPI napisane zostały w języku asembler. Są to niewielkie procedury, zaledwie po kilka bajtów każda. Ich implementacja w C, aczkolwiek możliwa, zajmowałaby więcej miejsca w pamięci programu oraz byłaby nieco b ardzi ej skompliko w ana. D zi ęłd asemblerowi łatwo jest zapanować nad funkcją i stanem flagi przeniesienia C mikiokontiolera, a także nad czasem wykonywania instrukcji. Z tego samego powodu również funkcja (pętla) absorbująca CPU na czas około 1 ms jest
napisana w asemblerze (delayms). Deklaracji bitów wyprowadzeń programowego interfejsu SPI (MISO, MOSI i SCK) dokonałem w module napisanym w języku asembler tak, aby były one dostępne zarówno z poziomu aplikacji w języku C, jak i z poziomu aplikacji w asemblerze.
Reszta programu to bardzo rozbudowany warunek switch rozpatrujący odebrane znaki i podejmujący akcję w zależności od poleceń przesłanych przez AYRProg. Pr o tokoły kom unika cy j ne AT 8 9 i AT90 różnią się znacznie pomiędzy sobą. Z tego też powodu, w wielu miejscach programu konieczny jest rozdział funkcji na realizowane przez AVR i realizowane przez AT89, mimo iż przesyłane polecenia mają identyczną postać. Podstawowa różnica w protokole polega na tym, że AT89 wymaga 3 bajtów dla każdego z poleceń, natomiast AT90 i ATMega wymagają 4.
Szczególną uwagę należy zwrócić na poprawną implementację funkcji spiinit(). Funkcja ta wprowadza kod rozkazu Programming Enable, umożliwiając zapis pa-
Programator uniwersalny
Programator można bez najmniejszych problemów zintegrować z Bascom AVR oraz
AVR Studio. Alternatywnie do obsługi
programatora można wykorzystać program
AVR Próg.
mięci Flash i EEPROM. Układy z serii AVR wymagają, aby dokonana została synchronizacja interfejsów Master (programator) i Sla-ve (miki okontr ol er). Do da tko w o funkcja ta wywoływana jest na koniec cyklu zapisu, przed przełączeniem do cyklu odczytu.
Uwaga: bez poprawnej pracy funkcji spiiinitO nie jest możliwy zapis i odczyt danych z wykorzystaniem interfejsu SPI.
Aplikacja sterująca -AVR Próg
Do sterowania pracą programatora wykorzystałem bezpłatny program AVR Próg (rys. 2), dostępny na stronie inteinetowej firmy At-mel. Jest to aplikacja wykonana dla środowiska Windows. Nie w y m aga pr z epro w a dzani a ża dne j instalacji. Program rozprowadzany
List. 1. Implementacja funkcji putcharO
//Własna funkcja pUtchar (óla każdego OY.Oh //oryginalny pUtchar ókdaje OxOD) lnt pUtchar (const lnt c) //nagłówek Zgodny //Z biblioteką producenta
SEUF = cr //Zapis bufora UfiRT
TI = 0; //Zerowanie flagi TI,
//początek transmisji Whlle ('TI)r //oczekiwanie na przesłanie
//bajtu
jest jako archiwum w formacie ZIP, które zawiera plik wykonywalny EXE. Należy go po prostu skopiować na dysk twardy i utworzyć skrót ułatwiający uruchomienie.
Uwaga: program nie uruchomi się bez podłączonego urządzenia, które wyśle identyfikator zawierający 3 pierwsze znaki "AVR" podczas próby nawiązania komunikacji.
Po uruchomieniu program testuje porty szeregowe, sprawdzając możliwość komunikacji i w ten sposób sam wykrywa obecność (bądź też nieobecność) podłączonego programatora. Aplikacja jest bardzo prosta w użyciu. Obsługuje się ją identycznie jak większość programów napisanych dla środowiska Windows. Korzystając z pola Device umieszczonego na dole okienka, należy wybrać typ programowanego mikiokontiolera. Od tego wyboru zależeć będzie algorytm zapisu i odczytu pamięci mikiokont-rolera. W górnej części okienka jest umieszczony przycisk Browse (Hex file). Korzystając z niego, należy wskazać zbiór w formacie HEX zawierający dane do zapisu do pamięci Flash lub EEPROM. W ten sam sposób wskazuje się również nazwę zbioru, w którym zostaną zapamiętane odczytane dane. Teraz, po wykonaniu wyżej opisywanych czynności, można przeprowadzić programowanie pamięci, odczytać ją lub porównać jej zawartość z danymi zapamiętanymi na dysku. Operacje te można przeprowadzać niezależnie dla obu rodzajów pamięci.
Uwaga: przed zapisem pamięci Flash wykonywana jest instrukcja kasująca zarówno zawartość pamięci Flash, jak i EEPROM. W przypadku zapisu danych do EEPROM - zawartość Flash nie jest usuwana.
Elektronika Praktyczna 9/2003
23
Programator mikrokontrolerow AVR i AT89S8252
Rys. 3. Schemat montażowy płytki programatora
WYKAZ ELEMENTÓW
Rezystory
Rl: óSOft
R2, R3, R4, R5: 2,2kn
Kondensatory
Cl: OJ^F C2, C3: 22pF Półprzewodniki
Ul: ATS9C2051 (zaprogramowany)
Tl: BS170
T2: BS250
Dl: LED żółta
D2: LED zielona
D3: LED czerwona
Różne
Xl: DB9
JP1: jumper 3x1
SW1: SW-PB
G2: złqcze 5x2
Ql: ll,0592MHz
Uruchomienie układu
Schemat montażowy programatora pokazano na rys. 3 . Poprawnie zmontowany układ nie powinien nastręczać żadnych trudności przy uruchomieniu. Aby przetestować jego działanie, należy podłączyć go do programowanego układu i typowym kablem do transmisji szeregowej do komputera PC. Pamiętajmy o tym, że programator pobiera zasilanie z programowanej płytki! Diody LED sygnalizujące stan programatora powinny zaświecić się, a następni e koi ej no z g a sną ć .
Teraz należy przystąpić do próby komunikacji z aplikacją AVR Próg. Tuż po jej uruchomieniu próbuje ona zidentyfikować typ podłączonego programatora oraz listę programowanych układów. Wysłanie komendy "t" powoduje zaświecenie się diody zielonej ("OK"), co jest sygnałem poprawnej wymiany danych pro-
- .-ad Write
Device si^iabjre 1^7777 T argeł boaid AVRICP
TarcietSWrav. |7.0
Calłnation b^e
Rys. 4. Identyfikacja rodzaju programatora po wybraniu opcji Advanced
gramatora z aplikacją sterującą. Po krótkiej chwili od nawiązania połączenia, na ekranie PC powinno się ukazać okno robocze programu AVR Próg. Teraz wybierzmy przycisk Advanced. Na ekranie powinna ukazać się informacja jak na rys. 4. Po zamknięciu okienka Advanced, najlepszym testem jest próba zapisu pamięci Flash i EEP-ROM. Pamiętajmy o wyborze właściwego typu mikiokontrolera z listy programowanych układów.
Typ programowanego układu przechowywany jest w pamięci RAM programatora. Czasami przy wyłączeniach płytki uruchomieniowej, mimo iż każdorazowo sekwencja programowania zaczyna się od przesłania kodu wyboru programowanego układu, może się zdarzyć, że przy pierwszej próbie zapisu lub odczytu danych otrzymamy komunikat Cannot enter programming modę. Należy wówczas ponowić próbę operacji, a jeśli nie da to rezultatu, zamknąć aplikację AVR Próg i uruchomić ją ponownie. Operacja taka przywraca wszystkie nastawy programatora, ponownie ustawiając poprawny tryb jego pracy. Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.cont.pl/ ?pdf/wrz es ien 03Jtim.
24
Elektronika Praktyczna 9/2003
PROJEKTY
Amatorski oscyloskop cyfrowy
AVT-527
O pożytkach płynących
z posiadania najprostszego
chociażby oscyloskopu nie ma
potrzeby przekonywać
Czytelników EP. Przyrząd taki
jest wręcz niezbędny
w sytuacji, gdy pojawiają się
problemy z urządzeniem
elektronicznym, które złośliwie
nie chce działać. Jedynym
sposobem jest wtedy
podejrzenie przebiegów
elektrycznych w kluczowych
punktach, co najczęściej
naprowadza na trop usterki.
Rekomendacje: tani
w wykonaniu i łatwy
w uruchomieniu, a przy tym
całkowicie cyfrowy oscyloskop,
który przyda się w pracowni
każdego elektronika
zajmującego się techniką
cyfrową i analogową.
Zwłaszcza gdy nie mamy
zbyt dużo pieniędzy do
wydania.
Jeżeli oscyloskop ] niewielkie rozmiary, przyzwoite parametry i pozwala bez pośpiechu analizować mierzony sygnał, bo można go w dowolnym momencie "zamrozić" na ekranie, to z pewnością warto mieć taki przyrząd. Prezentowany projekt oscyloskopu cyfrowego spełnia przedstawione powyżej założenia, a na dodatek można go zbudować i uruchomić samemu w ciągu jednego wieczoru.
Założenia konstrukcyjne i podstawowe parametry
Powstanie tego projektu było możliwe dzięki postępującej mi-niaturyzacji układów scalonych i integracji w pojedynczych układach funkcji jeszcze niedawno wymagających zastosowania wielu układów analogowych. Oscyloskop mieści się na płytce drukowanej o wymiarach 115x70 mm. Musi być co prawda połączony z komputerem, na którym uruchomiony jest program sterujący, jednak z reguły komputer i tak znajduje się w pobliżu miejsca pracy, więc to ograniczenie nie jest uciążliwe. Podstawowe parametry oscyloskopu są następujące:
- liczba kanałów: 1,
- pasmo: do ok. 500 kHz,
- podstawa czasu: od 12,5 fis/ działkę do 500 ms/działkę z możliwością 5-krotnego powiększenia wybranego fragmentu obserwowanego przebiegu,
- czułość: od 10 mWdziałkę do 400 mWdziałkę,
- częstotliwość próbkowania: 1 Mpróbek/s przy rozdzielczości 8 bitów,
- synchronizacja: zboczem narastającym lub opadającym z możliwością ustawienia poziomu wyzwalania,
- wyświetlane dodatkowe informacje: nastawy, wyniki analizy Fouriera,
- możliwość podłączenia do wybranego portu COM komputera,
- system operacyjny: Win98 lub nowszy.
Przedstawiany przyrząd składa się w istocie z dwóch zasadniczych elementów: części sprzętowej (układu) i oprogramowania. Najpierw przedstawione zostanie działanie sprzętu, co przyda się podczas budowy i uruchamiania własnego oscyloskopu. Funkcjonowanie oprogramowania i sposób posługiwania się oscyloskopem zostaną omówione w dalszej części artykułu.
Sposób działania i budowa części sprzętowej oscyloskopu
Schemat elektryczny układu oscyloskopu pokazano na rys. 1. Jego zadaniem jest zamiana badanego przebiegu elektrycznego na dane cyfrowe, które następnie zostają przesłane do komputera w celu dalszego przetworzenia i wyświetlenia na ekranie. Dodatkowo, układ elektroniczny musi zsynchronizować moment rozpoczęcia kolejnych próbkowań w tym samym punkcie badanego przebiegu okresowego. Dzięki synchronizacji przebieg prezentowa-
Elektronika Praktyczna 9/2003
25
Amatorski oscyloskop cyfrowy
ny na ekranie nie przesuwa się, co poprawia jego czytelność i umożliwia lepszą analizę. Część sprzętowa musi również zapewnić możliwość bezbłędnej wymiany danych z komputerem i programem sterującym.
Jak widać na schemacie elektrycznym, oprócz procesora sterującego Ul i przetwornika analogo-wo-cyfrowego U4, do obróbki sygnału w sposób zgodny z podanymi przed chwilą założeniami potrzeba jeszcze tylko kilku dodatkowych układów scalonych. Badany przebieg podawany jest bezpośrednio lub poprzez dodatkową sondę pomiarową na gniazdo Z3. Od sygnału może być odcinana składowa stała, co jest korzystne w sytuacji obserwacji przebiegów o niewielkiej amplitudzie nałożonych na duży poziom dodatniego lub ujemnego napięcia stałego. Odcinanie składowej stałej realizuje kondensator C13. Za pomocą przekaźnika Kl, sterowanego tranzystorem Tl, można zewrzeć kondensator i wtedy przebieg będzie przetwarzany dokładnie w takiej postaci, w jakiej pojawia się na gnieździe Z3 (a więc ze składową stałą). Sygnał poprzez dzielnik rezystancyjno-pojemnościowy (składający się z elementów R5, C14 i R6, C15) trafia na regulowany wzmacniacz wejściowy U6, zbudowany na wzmacniaczu operacyjnym MAX4166. Wzmocnienie układu U6 jest regulowane przez potencjometr cyfrowy U8 włączony w pętlę ujemnego sprzężenia zwrotnego. Oporność potencjometru, a więc i wzmocnienie sygnału może być ustawiana w 100 krokach, czym oczywiście steruje mikrokontroler. Z wyjścia wzmacniacza sygnał podawany jest na szybki przetwornik analogowo-cyf-rowy U4 TDA8703. Częstotliwość taktowania tego układu może wynosić 40 MHz, a jego pasmo przenoszenia wynosi ok. 20 MHz. W moim układzie przetwornik jest taktowany sygnałem ALE z mik-rokontrolera Ul, którego częstotliwość wynosi 6 MHz (XTAL/6). Wykorzystanie sygnału ALE do taktowania przetwornika powoduje, że nie musimy się troszczyć o zapewnienie odpowiednich zależności czasowych, bo czas przetwarzania TDA8703 wynosi w przybliżeniu 25 ns, natomiast
odczyt portów mikrokontrolera odbywa się 2 takty zegarowe później, po wystawieniu sygnału ALE.
Układy U3, U7 i U5 odpowiadają za realizację dwóch zadań: ustalenie poziomu wyzwalania przy kolejnych konwersjach sygnału i ustalenie poziomu odniesienia. Układ U3 jest podwójnym szeregowym przetwornikiem cyfro-wo-analogowym sterowanym 3-przewodową magistralą, oczywiście także przez mikrokontroler Ul. Napięcie z jednego z wyjść przetworników C/A poprzez wtórnik U7 jest podawane na wzmacniacz U8, tworząc masę pozorną i poziom odniesienia przy przetwarzaniu sygnału wejściowego do postaci cyfrowej. Dzięki takiemu rozwiązaniu jest możliwa izolacja galwaniczna masy części sprzętowej oscyloskopu od masy mierzonego sygnału. Oprócz tego, poprzez zmianę poziomu masy pozornej można zrealizować przesuw w pionie wyświetlanego przebiegu na ekranie. Regulacja poziomu wyzwalania jest przeprowadzona w następujący sposób. Mikrokontroler ustawia żądaną wartość napięcia wyzwalania na wyjściu drugiego przetwornika C/A układu U3, które to napięcie podawane jest na komparator U5 i porównywane z przetwarzanym przebiegiem wejściowym. Poziom logiczny z wyjścia komparatora U5-7 jest podawany na port Ul. Zadaniem mikrokontrolera jest wykrywanie zmiany stanu komparatora z 0 na 1 lub odwrotnie, w zależności od przyjętego sposobu wyzwalania i w odpowiednim momencie zaini-cj owanie startu konwersji. Aby zapobiec "zawieszeniu" się układu, w programie sterującym pracą mikrokontrolera został wprowadzony timeout, który wynosi ok. 40-krotną wartość podstawy czasu. Jeżeli po upływie tego czasu nie zostanie spełniony warunek wyzwalania i komparator U5 nie zmieni swego stanu, konwersja i tak zostanie rozpoczęta.
Pracą części sprzętowej steruje mikrokontroler Ul AT89C52 będący dobrze znaną wersją '51. Jest on co prawda przetaktowany o 50%, jednak nie zagraża to stabilności pracy oscyloskopu. Jako ciekawostkę podam, że wykonałem udane próby ze zwiększeniem częstotliwości zegara o 150%!
Zadaniem mikrokontrolera jest pobieranie z przetwornika 250 próbek, które są następnie zapisywane w wewnętrznej pamięci danych. Pobrane próbki są wysyłane do komputera PC poprzez port szeregowy pracujący z szybkością 14400 b/s. Prędkość ta wynika z zastosowanego kwarcu oraz prędkości akceptowanych przez standardowy port szeregowy komputera. Największa wspólna prędkość transmisji dla komputera i mikrokontrolera wynosi 1440 Ob/s (36000000:12:(255-13):16=14423 b/s, PCON=1). Różnica pomiędzy zegarami nie przekracza 0,16% i jest do pominięcia. Układ U2 (MAX232) dopasowuje poziomy napięć występujących na portach mikrokontrolera do standardu RS232.
Transmisja danych
Pracą części sprzętowej oscyloskopu steruje program uruchamiany na komputerze PC. Podczas dwukierunkowej wymiany danych program wysyła parametry ustawień do części sprzętowej i odbiera dane zawierające próbki mierzonego przebiegu. Transmisja szeregowa ma format 8 bitów danych, 1 bit stopu, nie ma bitu parzystości. Komputer wysyła 5 bajtów zawierających parametry pracy, natomiast odbiera 250 bajtów danych z próbkami.
Znaczenie poszczególnych bajtów parametrów jest następujące:
1 bajt, sterujący
- 7 bit - wyboru trybu pracy wejścia
0 - AC (bez składowej stałej)
1 - DC (ze składową stałą)
- 6 bit - wyzwalania:
1 - praca z wywalaniem 0 - praca bez wywalania
- 5 bit - wyboru zbocza wyzwalającego:
0 - wyzwalanie zboczem opadającym
1 - wyzwalanie zboczem narastającym
- 4 bit - bez znaczenia.
2 bajt, podstawy czasu (wartość)
0 - próbkowanie 1 Mpróbek/s
1 - próbkowanie 500 kpróbek/s
2 - próbkowanie 250 kpróbek/s
3 - próbkowanie 125 kpróbek/s
4 - próbkowanie 62,5 kpróbek/s
5 - próbkowanie 25 kpróbek/s
6 - próbkowanie 12,5 kpróbek/s
7 - próbkowanie 6,25 kpróbek/s
26
Elektronika Praktyczna 9/2003
Amatorski oscyloskop cyfrowy
Rys. 1. Schemat elektryczny oscyloskopu
Elektronika Praktyczna 9/2003
27
Amatorski oscyloskop cyfrowy
-T-
Rys. 2. Widok ekranu programu sterujqcego pracq przystawki oscyloskopowej
8 - próbkowanie 2,5 kpróbek/s
9 - próbkowanie 1,25 kpróbek/s
10 - próbkowanie 625 próbek/s
11 - próbkowanie 250 próbek/s
12 - próbkowanie 125 próbek/s
13 - próbkowanie 62,5 próbek/s
14 - próbkowanie 25 próbek/s
3 bajt, przesunięcia składowej stałej Poziom zerowy wynosi 128,
można go przesuwać dół - góra od wartości 48 do 208.
4 bajt, poziom wyzwalania Podobnie jak wyżej poziom
zera wynosi 128 i można go przesuwać dół - góra od 48 do 208.
5 bajt, regulacja czułości Wzmocnienie wzmacniacza
wejściowego można ustawić z zakresu od 1 do 101 zgodnie z zależnością l+(100-x)/x, gdzie x oznacza wartość 5. bajtu z zakresu od 0 do 100.
Działanie programu sterującego
Program sterujący umożliwia regulację wszystkich nastaw oscyloskopu oraz graficzną prezentację mierzonego przebiegu (rys. 2). W wyświetlanej górnej części pulpitu programu usytuowane są przyciski nastaw, poniżej znajduje się tablica z wykresem transformaty Fouriera (pozwala ona prześledzić rozkład widma częstotliwości w badanym sygnale i np. wychwycić harmoniczne sygnału podstawowego), jeszcze niżej pokazywany jest mierzony przebieg. Na samym dole okna znajduje się pasek statusowy z najważniejszymi parametrami nastaw.
W pasku narzędzi, patrząc od lewej strony, znajdują się ikony umożliwiające:
- Zapis na dysku danych z ostatniej digitalizacji. Format pliku to dwie kolumny liczb, w pierwszej są dane przebiegu, a w drugiej dane analizy Fouriera.
- Rozpoczęcie nieprzerwanej digitalizacji badanego przebiegu, połączone z wyświetlaniem na ekranie. Jeżeli wystąpi brak transmisji pomiędzy komputerem a częścią sprzętową, w lewym dolnym rogu okna programu wyświetlany będzie napis Error.
- Zatrzymanie digitalizacji i "zamrożenie" na ekranie wyświetlanego przebiegu.
- Zmniejszanie czułości oscyloskopu. Każde kolejne naciśnięcie ikony nastawy powoduje zmianę czułości o jeden krok.
- Zwiększanie czułości oscyloskopu w sposób analogiczny do opisanego powyżej.
- Pomiar sygnału ze składową stałą (tryb DC).
- Pomiar sygnału bez składowej stałej (tryb AC).
- Zmniejszanie offsetu sygnału, przesunięcie kreślonej krzywej sygnału w dół.
- Zwiększanie offsetu sygnału, przesunięcie kreślonej krzywej sygnału w górę.
- Zerowanie offsetu.
- Zmniejszanie odstępu czasu próbkowania, zmniejszanie podstawy czasu oscyloskopu.
- Zwiększanie odstępu czasu próbkowania, zwiększanie podstawy czasu oscyloskopu.
- Wyłączanie rozciągania przebiegu.
- Włączenie opcji rozciągania przebiegu, rozszerzenie przebiegu pięciokrotnie.
- Włączenie wyzwalania zboczem narastającym.
- Wyzwalanie wyłączone.
- Włączenie wyzwalania zboczem opadającym.
- Zmniejszenie napięcia wyzwalania.
- Zwiększenie napięcia wyzwalania.
- Powrót do wyjściowego poziomu wyzwalania.
- Zmiana numeru portu COM, poprzez który program sterujący komunikuje się z częścią sprzętową oscyloskopu.
Montaż i uruchomienie oscyloskopu
Montaż układu oscyloskopu wymaga zwykłej w takich przypadkach staranności, jednak zastosowane układy scalone nie zmuszają do jakiejś wyjątkowej precyzji. Przed rozpoczęciem pracy wskazane jest obejrzenie pod silnym oświetleniem płytki drukowanej w celu usunięcia ewentualnych zwarć lub przerw ścieżek. Schemat montażowy płytki znajduje się na rys. 3.
Jeżeli zdecydujemy się na montaż układów scalonych w podstawkach, przed ich włożeniem można sprawdzić, czy płytka jest prawidłowo zasilana. Napięcie zasilania +5 V podawane jest na płytkę poprzez styk 1 złącza Z2. Można zastosować zewnętrzny zasilacz podłączony do styków 1 (+5 V) i 5 (GND) wtyku dołączanego do złącza Z2. Można również zamiast z zasilacza doprowadzić
0000000000 0,0 OÓ
Rys. 3. Schemat montażowy płytki oscyloskopu
28
Elektronika Praktyczna 9/2003
Amatorski oscyloskop cyfrowy
WYKAZ ELEMENTÓW
Rezystory
Rl, RIO: 4,7Q
R2: 10O
R3: 10kO
R5, R6: 470kO
R9: lka
Rl 1: 2,2Q
R12: 10O
R14: 22O
Kondensatory
C4...C7: 22jiF/16V
C8, C13, C19, C20, C22, C24,
C34: 22nF
C9: 2/2jiF/16V
CIO: 47nF
Cli, C12: 30pF
C14, C15, C26: 47pF
C16...C18, C31, C33, C37, C38:
lOOnF
C21: lOOpF
C23, C25: 4,7p.F/16V
C32: 100^F/25V
Półprzewodniki
Ul: AT89C52 (zaprogramowany)
U2: MAX232
U3: MAX522
U4: TDA8703
U5: LM311
U6: MAX4166
U7: TLOÓ1
U8: DS1804
Tl: BSS88
Różne
Xl: 36MHz
Z2: DB9
Z3: BNC
napięcie z gniazda USB, jeżeli komputer wyposażony jest w ten port. Ponieważ złącze Z2 służy także jako port RS232, wtyk do tego gniazda musi być odpowiednio przerobiony, tak aby oprócz sygnałów transmisji podawał także napięcie zasilania.
Po ukończeniu montażu należy połączyć układ kablem z komputerem i zasilić. Następnie należy uruchomić zainstalowany wcześniej program sterujący. Korzystając z opisanych wcześniej opcji, na pasku nastaw wybieramy numer portu COM komputera, do którego jest przyłączona sprzętowa część oscyloskopu. Do wejścia Z3 można podłączyć sygnał testowy o amplitudzie nieprzekracza-jącej 4 V , najlepiej bez składowej stałe]. Po wybraniu opcji Start na pasku narzędziowym, przebiegi na ekranie komputera powinny "ożyć".
Oscyloskop nie wymaga żadnych dodatkowych regulacji i po prawidłowym montażu powinien od razu działać. Jeżeli jednak pojawią się jakieś kłopoty należy:
- Sprawdzić, czy wszystkie układy scalone są prawidłowo zamontowane i zasilane.
- Sprawdzić, czy ma miejsce prawidłowa transmisja pomiędzy komputerem a częścią sprzętową. Jeżeli po wybraniu właściwego
numeru COM i naciśnięciu ikony z przyciskiem Start w dolnym prawym rogu pojawi się napis Error, należy "przyjrzeć się" kablowi, układowi U2 i jego połączeniom z mikrokontrolerem.
- Należy sprawdzić, czy zmieniając opcje trybu pomiaru z AC na DC, jest przełączany przekaźnik.
- Należy sprawdzić, czy na wyjściach przetwornika U3-5 i 6 zmienia się poziom napięcia, gdy zmieniany jest offset i poziom wyzwalania.
Podczas pracy temperatura ma niewielki, lecz zauważalny wpływ na offset i należy go czasem programowo korygować. Układy zastosowane do budowy oscyloskopu są popularne i dostępne w kraju. Oscyloskop świetnie nadaje się do zastosowań w zakresie częstotliwości akustycznych, jak i nieco wyższych, a szczególnie przydatny może być przy projektowaniu układów cyfrowych. Marek Kopeć
Oprogramowanie do oscyloskopu autor udostępnił na naszej stronie internetowej (www.ep.com.pl) w dziale Download>Dokumentacje.
Wzory płytek drukowanych w formacie PDF są dostępne w łnternecie pod adresem: http://www.ep.com.pl/ ?pdflwrzesienO3Jitm.
Elektronika Praktyczna 9/2003
29
PROJEKTY
Miniaturowy zamek cyfrowy z kluczem elektronicznym
AVT-522
Elektroniczne zamki
o różnej budowie były
niejednokrotnie prezentowane
na łamach EP. W ańykule
zostanie opisany jeszcze jeden
zamek, którego główną zaletą
jest to, że jego układ
elektryczny został zmontowany
na płytce o wymiarach
20 mm x 16 mm-
Rekomendacje: zamek
elektroniczny o bardzo małym
poborze prądu,
miniaturowych wymiarach
i programowanych
właściwościach funkcjonalnych
można zastosować w sejfach,
komputerach, samochodach,
a także jako zamek przy
drzwiach wejściowych do
mieszkania.
Tab. 1. Najważniejsze właściwości zamka
/możliwość zapamiętania do 15 kluczy, / klucze zapisywane są wnnieulotnej pamięci
EEPROM, / możliwość kasowania i oprogramowania
nowych kluczy przez wykonanie zworki na
płytce, / możliwość kasowania i oprogramowania
nowych kluczy przez przyłożenie rezystora
onwcześniej zaprogramowanej wartości do
głowicy czytnika, /wyjście zamka może być typu
monostabilnego, bistabilnego lub
czasowego, zaprogramowanym czasem
aktywnym, / możliwość bezpośredniego sterowania
przekaźnikiem,
/ miniaturowe wymiary (20 mm xn16 mm), / sygnalizacja świetlna odstanie pracy
zamka, /zasilanie 5,5...15 VDC/25 mA.
Płytkę o tak niewielkich wymiarach można umieścić nawet w bardzo małym urządzeniu, dlatego układ zamka może być zastosowany także do zabezpieczania urządzeń elektronicznych.
Zamek używa pastylek typu DS1990 jako kluczy autoryzacyj-nych. Każda pastylka posiada swój unikalny numer seryjny, który po zarejestrowaniu jest kodem dostępu lub może służyć do identyfikacji osób, umożliwiając na przykład otwarcie drzwi posiadaczowi uprawnionego klucza. Każdy numer seryjny składa się z ośmiu bajtów: jednego bajtu identyfikującego rodzinę układów, sześciu bajtów unikatowego numeru seryjnego i jednego bajtu sumy kontrolnej CRC. Suma kontrolna umożliwia sprawdzenie, czy transmisja pomiędzy układem DS1990 a mikiokontrolerem przebiega prawidłowo. Zamek, zarówno przy rejestracji nowych kluczy, jak i przy odczycie dołączanych kluczy sprawdza tę sumę, co podczas rejestracji uniemożliwia zapisanie błędnego klucza, a w czasie weryfikacji kluczy dodatkowo zwiększa jakość zabezpieczenia. Jako klucz nie może być zapisana sekwencja bajtów o wartości zero. Numery seryjne są zapisywane w wewnętrznej pamięci EEPROM mikrokon-tiolera, dzięki czemu będą pamiętane również po wyłączeniu zasilania. Wewnętrzna pamięć mikio-kontrolera umożliwia wykonanie około miliona cykli programowania, co pozwala na dowolnie częste zmiany uprawnionych kluczy bez obawy o uszkodzenie pamięci.
Klucze DS1990 nie wymagają dodatkowego zasilania, bowiem energia jest dostarczana poprzez linię komunikacyjną podczas przyłożenia klucza do głowicy czytnika. W czytnik układów DS1990 wbudowano dwukolorową diodę
świecącą, dzięki czemu tryb pracy zamka jest sygnalizowany za pomocą odpowiedniego koloru.
Najważniejsze parametry elektronicznego zamka są przedstawione w tab. 1.
Budowa i działanie
Schemat elektryczny zamka przedstawiono na rys. 1. Jego głównym elementem jest układ USl -mikrokontroler umieszczony w oś-mionóżkowej obudowie. Oprócz pamięci programu, wewnątrz układu zawarto pamięć RAM o pojemności 64 bajtów i 128 bajtów pamięci EEPROM. Pomimo tak małej obudowy do dyspozycji mamy sześć wyprowadzeń, z których każde, w zależności od potrzeb, może pełnić kilka funkcji. W układzie PIC12F675 zawarto czterokanałowy przetwornik analogowo-cyfrowy, który w układzie zamka wykorzystano do ustawiania jego parametrów.
Sygnał zegarowy taktujący mikrokontroler może pochodzić z wewnętrznego generatora RC (f=4 MHz), zewnętrznego źródła lub może być wytwarzany wewnętrznie po dołączeniu zewnętrznego rezonatora kwarcowego bądź zewnętrznego obwodu RC. Mikrokontroler może być również taktowany z wewnętrznego generatora RC (bez elementów zewnętrznych).
Jako układ wykonawczy zastosowano tranzystor typu BCP56,
Elektronika Praktyczna 9/2003
31
Miniaturowy zamek cyfrowy z kluczem elektronicznym
1WIRE(btaly)
GND1WIRE (szary)
LEDG (zielony) LEDR (brązowy) GNDLED (żółty)
R3ł 4*7
R3 = 0 - Bistabilny R3>1M-Monostabllny 100R < R3 < 10Ok - Czasowy Dla R3 = 1kT=6 sekund
VCC
O
US2 LM2931
Cl
-100n
X
ca
14
,,_i_
OUT IN
GND GND
GND GND
NC NC
Rys. 1. Schemat elektryczny zamka
który może przełączać prądy
0 maksymalnej wartości równej
1 A, a jego napięcie kolektor-emi-ter może mieć wartość 80 V. Tranzystor ten może bezpośrednio sterować cewką przekaźnika, wymagane jest tylko zbocznikowanie jej diodą prostowniczą, aby tranzystor nie został uszkodzony w wyniku indukowania się wysokich napięć w obwodzie kolektora podczas wyłączania prądu. Rezystor Rl ogranicza prąd bazy tranzystora Tl. Rezystory R2 i R3 podłączone do wejścia GP4 służą do ustalenia sposobu sterowania tranzystorem wyjściowym po przyłożeniu prawidłowego klucza. Wejście GP4 zostało skonfigurowane jako wejście przetwornika A/C, dlatego sposób wy sterowania tranzystora Tl jest zależny od wartości napięcia podanego na wejście GP4. Rezystor R2 ma stałą wartość, a elementem regulacyjnym jest rezystor R3. Napięcie wejściowe zostało podzielone na trzy zakresy definiujące reakcję tranzystora Tl.
Jeśli rezystor R3 nie zostanie zamontowany, to na wejście GP4 poprzez rezystor R2 zostanie podane napięcie zasilające mikro-kontroler. W takim przypadku mikrokontroler przejdzie do trybu monostabilnego. W tym trybie przyłożenie prawidłowego klucza spowoduje uaktywnienie tranzystora Tl. Stan ten będzie panował aż do wyłączenia zasilania, niezależnie od tego czy w międzyczasie klucz zostanie przyłożony ponownie. Taki tryb pracy może być
_C3
-10On
wykorzystany do pracy jako im-mobilizer w samochodzie, gdyż po włączeniu zapłonu kluczykiem i przyłożeniu klucza elektronicznego może spowodować odblokowanie zabezpieczeń, co umożliwi jazdę samochodem dopóty, dopóki kluczyk znajduje się w stacyjce. Wyłączenie stacyjki spowoduje również wyłączenie zasilania zamka, a ponowne podanie zasilania będzie powodowało blokadę samochodu do momentu ponownego przyłożenia pastylki.
Jeżeli zamiast rezystora R3 zostanie zastosowana zworka, to zamek będzie pracował w trybie bistabilnym. W tym trybie każde przyłożenie klucza spowoduje przełączenie tranzystora.
Trzecim trybem jest tryb pracy czasowej. W tym trybie przyłożenie prawidłowego klucza do czytnika spowoduje załączenie tranzystora Tl na określony czas. Czas ten zależy od wartości napięcia podanego na wejście GP4. Do ustalenia wartości tego napięcia należy wykorzystać dzielnik zbudowany z rezystorów R2 i R3. Aby zapewnić czasowy tryb pracy, wartość rezystora R3 musi zawierać się w przedziale od 100 Q do 100 kQ.
Czas załączenia tranzystora Tl może mieścić się w przedziale 0,5...63 s. Czas ten jest wyliczany z zależności: wynik pomiaru napięcia (2...253) x 0,25 s. Przetwornik A/C umożliwia pomiar z rozdzielczością 10 bitów, lecz w przedstawionym układzie nie jest wyma-
gana tak duża rozdzielczość, dlatego pod uwagę brane jest tylko osiem bardziej znaczących bitów, czyli rozdzielczość jest ograniczona do 8 bitów (0...255). Do określenia czasu załączenia tranzystora skrajne wartości są pomijane, gdyż zawartość rejestru przetwornika A/C mniejsza niż 2 jest traktowana jako zwarcie do masy (praca bistabilna), a zawartość większa niż 253 jest traktowana jako brak rezystora R3 (praca monostabilna). Przykładowy czas załączenia tranzystora Tl dla wartości rezystora R3 równej lkQ wynosi około 8 sekund.
Jako czytnik kluczy typu DS1990 zastosowano gotową głowicę zawierającą dwukolorową diodę świecącą, która służy do sygnalizacji stanu pracy zamka. Czytnik ten jest dołączony do złącza CON3. Ponieważ układy DS1990 komunikują się poprzez typową, jednoprzewodową magistralę, do wymuszenia poziomu wysokiego na tej linii, a jednocześnie do zapewnienia zasilania dołączonych układów zastosowano rezystor podciągający R4. Do ograniczenia prądu płynącego przez diody świecące zawarte w czytniku zastosowano rezystor R5. Zworka "Z", dołączona do wyprowadzenia GP3, służy do przełączenia mikrokont-rolera w tryb rejestracji kluczy.
Napięcie zasilania stabilizuje układ typu LM2931, a kondensatory C1...C3 filtrują je.
Montaż i uruchomienie
Elektroniczny zamek został zmontowany na dwustronnej płytce o wymiarach 20 mm x 16 mm, której schemat montażowy przedstawiono na rys. 2. Ze względu na tak małe wymiary płytki, wszystkie użyte elementy są w obudowach do montażu powierzchniowego, dlatego montaż należy przeprowadzić ze szczególną dokładnością. Dodatkowo elementy montowane są po dwóch stronach płytki, jednak opis elementów jest wykonany tylko po właściwej stronie elementów. Wartość rezystora R3 należy dobrać zależnie od wybranego trybu pracy układu wyjściowego. Do złącza CON3 należy dołączyć przewody czytnika zgodnie z opisem kolorów przedstawionym na rys. 1, a do złącza CON2 napięcie zasilania o wartości 6...15 VDC. Na
32
Elektronika Praktyczna 9/2003
Miniaturowy zamek cyfrowy z kluczem elektronicznym
Rys. 2. Schemat montażowy płytki zamka
złączu CONl wyprowadzono sygnał z kolektora tranzystora Tl, na którym jest poziom niski, gdy został przyłożony prawidłowy klucz do czytnika. Po poprawnym zmontowaniu zamka można przystąpić do rejestracji kluczy, które będą uprawnione.
Zapis numerów kluczy poprzez zwarcie zworki
7"
Aby zamek mógł zareagować na jakikolwiek klucz, wcześniej należy zapisać go w pamięci mikro-kontrolera. Zastosowany mikrokon-troler posiada 128 bajtów pamięci EEPROM, co umożliwia zapamiętanie 16 kluczy 8-bajtowych. Jednak jeden bajt pamięci jest potrzebny do zapamiętania parametru związanego ze sposobem programowania, dlatego możliwy jest zapis 15 kluczy. Zapis kluczy można przeprowadzić w dwojaki sposób: zwierając wejście GP3 do masy lub przykładając do głowicy czytnika rezystor o odpowiedniej wartości. Przejście do trybu rejestracji kluczy poprzez podanie potencjału masy na wejście GP3 jest sposobem bezpieczniejszym, gdyż nie ma możliwości zmiany zapisanych kluczy bez dostępu do wnętrza zamka. Jednak przy częstych zmianach kluczy ten sposób może okazać się kłopotliwy.
W celu wprowadzenia zamka w tryb rejestracji należy przy wyłączonym zasilaniu zewrzeć wejście GP3 do masy (zwora "Z") i włączyć zasilanie. Po tej czynności mikrokontroler przejdzie do trybu rejestracji kluczy, czerwona dioda błyśnie 10 razy, sygnalizując ten stan, a następnie zgaśnie. Z pamięci zostaną wykasowane wszystkie wcześniej zapisane klucze.
Od tej pory do czytnika należy kolejno przykładać klucze, które mają być zarejestrowane. Jeśli w czasie komunikacji z dołączonym kluczem pojawią się błędy, to klucz ten nie zostanie zapisany i należy przyłożyć go ponownie. Poprawność transmisji jest sprawdzana
poprzez porównanie sumy CRC. Jeśli sumy, odczytana z przyłożonego klucza i obliczona przez mikrokontroler, są takie same, to transmisja przebiegła prawidłowo i klucz zostanie zapisany w pamięci mik-rokontrolera. Błędne odczytanie danych z układu DS1990 jest sygnalizowane zapaleniem się czerwonej diody na czas jednej sekundy, po odłączenia klucza od głowicy, natomiast prawidłowy odczyt jest sygnalizowany zapaleniem się diody zielonej, również na czas jednej sekundy. Błędy podczas transmisji mogą być spowodowane zakłóceniami powstającymi podczas przykładania klucza do czytnika, dlatego aby mieć pewność, że klucz zostanie odczytany prawidłowo, należy go przyłożyć na czas około dwóch sekund. Wtedy, w przypadku błędnego odczytu, mikrokontroler odczeka jedną sekundę i ponownie odczyta numer seryjny dołączonego klucza bez zakłóceń. Po zapisie piętnastego klucza mikrokontroler opuszcza procedurę zapisu kluczy i dalszy zapis jest niemożliwy. Stan ten jest sygnalizowany błyskaniem obydwu diod świecących, co w konsekwencji powoduje błyskanie kolorem zbliżonym do pomarańczowego. Należy wyłączyć zasilanie, a po jego ponownym włączeniu zamek będzie gotowy do pracy.
Jeżeli nie będzie rejestrowana maksymalna liczba kluczy, to po wpisaniu do pamięci mikrokont-rolera potrzebnej liczby kluczy należy wyłączyć zasilanie. W pamięci zostaną zapisane tylko podane klucze (i tylko na nie będzie reagował mikrokontroler).
Zapis numerów kluczy poprzez dołączenie zewnętrznego rezystora
Ten sposób programowania umożliwia wprowadzenie mikro-kontrolera w tryb rejestracji kluczy bez konieczności otwierania obudowy, w której znajduje się płytka zamka. Ten sposób programowania może być uaktywniany lub blokowany. Aktywacja odbywa się za pomocą zworki ("Z") służącej również do podstawowego sposobu zapisywania kluczy.
Aby uaktywnić programowanie za pomocą rezystora, należy przy wyłączonym zasilaniu przyłożyć do czytnika rezystor o wartości z prze-
działu 100 Q...100 kQ, zewrzeć zworkę "Z", a następnie włączyć zasilanie. Po tej czynności mikrokontroler przełączy linię transmisyjną służącą do komunikacji z przykładanymi układami DS1990 (GPO) w tryb wejścia przetwornika A/C i zmierzy wartość napięcia na tym wejściu. Będzie ona wynikała z dzielnika wykonanego przez rezystor R4 i dodatkowy rezystor dołączony do czytnika. Wartość ta zostanie zapisana w wewnętrznej pamięci EEPROM (zasygnalizowane to zostanie przez błyskanie diody zielonej). Jeśli styki czytnika zostaną zwarte, to odczytane napięcie będzie miało wartość 0 V. Taka wartość nie zostanie zapisana (jako niedopuszczalna), a mikrokontroler przejdzie do normalnego trybu pracy, czyli będzie oczekiwał na przyłożenie klucza do czytnika. Następnie należy wyłączyć zasilanie.
Programowanie przebiega w taki sam sposób, jak to ma miejsce przy przełączeniu procesora w tryb programowania poprzez zwarcie zworki "Z", lecz nie ma potrzeby ingerowania we wnętrze obudowy urządzenia.
Od tej pory wprowadzenie zamka w tryb zapisu kluczy można wykonać po przyłożeniu do czytnika rezystora o określonej wartości, wyłączeniu zasilania i jego ponownym włączeniu.
Przy pomiarze napięcia umożliwiającego wejście w tryb programowania numerów seryjnych kluczy mikrokontroler dopuszcza maksymalną rozbieżność zmierzonego i zapisanego w pamięci EEPROM napięcia około ą0,8%. Oznacza to, że do przełączania w tryb zapisu kluczy musi być użyty ten sam egzemplarz rezystora, który wykorzystano jako referencyjny.
Jeśli możliwość programowania zewnętrznego ma zostać wyłączone, to należy przeprogramować mikrokontroler, aby nie brał pod uwagę napięcia pojawiającego się na czytniku. Przeprowadza się to w następujący sposób: należy wyłączyć zasilanie, od czytnika odłączyć rezystor, zewrzeć zworkę "Z" i włączyć zasilanie. Po tej czynności mikrokontroler zmierzy napięcie na wejściu GPO, tak jak to ma miejsce podczas zapisu wartości rezystora. Zmierzona wartość będzie równa napięciu zasilania, gdyż rezystor podciągający
Elektronika Praktyczna 9/2003
33
Miniaturowy zamek cyfrowy z kluczem elektronicznym
magistralę 1-Wire wymusi ten stan. Wartość ta jest niedopuszczalna jako napięcie przełączające zamek w tryb programowania kluczy i ten sposób programowania zostanie wyłączony. Następnie należy wyłączyć zasilanie i od tej pory wprowadzenie zamka w tryb programowania kluczy jest możliwy tylko poprzez zwarcie zworki "Z".
Obsługa zamka
W trybie normalnej pracy mikro-kontroler nieustannie sprawdza, czy do czytnika został przyłożony klucz. Sprawdzenia tego dokonuje się poprzez wysyłanie na linię 1-Wire sygnału zerującego. Jeśli po tym sygnale mikrokontroler nie otrzyma potwierdzenia obecności układu DS1990, to ponownie wysyła sygnał zerujący. Jeśli do czytnika przyłożony zostanie układ pamięci z kluczem, to po sygnale zerującym zgłosi on swoją obecność, a mikrokontroler odczyta jego numer seryjny oraz sumę kontrolną. Jeżeli suma kontrolna będzie prawidłowa, to
nastąpi przeszukanie pamięci EEP-ROM w celu sprawdzenia, czy przyłożony klucz jest zarejestrowany. Warunkiem przeszukania pamięci jest także niezerowa wartość odczytanych bajtów numeru seryjnego. W przypadku nieodnalezienia numeru seryjnego przyłożonego klucza, na jedną sekundę zapali się dioda czerwona sygnalizując, że przyłożony klucz jest nieprawidłowy. Przyłożenie zarejestrowanego klucza spowoduje załączenie tranzystora wyjściowego zamka w sposób zależny od wartości rezystora R3, następnie na jedną sekundę zostanie zapalona dioda zielona. Jeżeli zamek będzie skonfigurowany do czasowego załączania tranzystora wyjściowego, to po przyłożeniu uprawnionego klucza tranzystor zastanie załączony i będzie błyskała zielona dioda. Po odliczeniu zaprogramowanego czasu tranzystor wyjściowy zostanie wyłączony, a dioda zgaszona.
Krzysztof Pławsiuk, AVT krzysztof.plawsiuk@ep.com.pl
WYKAZ ELEMENTÓW
Rezystory
Rl: l,5kQ 1206
R2, R6: 10kO 1206
R3*: lkO 1206
R4: 4,7kQ 1206
R5: 330O 1206
Kondensatory
Cl, C3, C4: lOOnF 1206
C2: 15mF/10V 6032
Półprzewodniki
Tl: BCP56
US1: PIC12F675 SOIC8(150mil)
US2: LM2931 SOIC8(150mil)
Różne
CON1, CON2: goldpin 1x2 męski
Pastylki DS1990A - 2 szt.
Zawieszka do układów DS1990 - 2 szt.
Czytnik pastylek DS1990
z wbudowaną diodą LED
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdfiwrzesienO3Jitm.
34
Elektronika Praktyczna 9/2003
PROJEKTY
Niezwykły minutnik do jaj
Kolejny timer-minutnik do
jaj? Przecież było ich wiele
w EP! Na czym więc polega
niezwykłość tego układu?
Otóż zliczanie czasu
powierzymy lampie. Większość
Czytelników w pierwszej
chwili pomyśli: żadna nowość,
pewnie kolejny układ
z lampami Nixie,
Nic z tych rzeczy!
Rekomendacje: projekt
z gatunku vintage electronics,
czyli pozn ajemy da wniejszą,
klasyczną elektronikę przez
całkiem współczesne
zastosowania!
W niejednym "skarbcu" elektronika zalegają elementy, których zastosowanie wydaje się problematyczne. Wiele lamp wyszło z użycia, bo trudno znaleźć dla nich jakiekolwiek zastosowanie. Ale jest to możliwe i wystarczy chwila zastanowienia, trochę dobrych chęci i cierpliwości. Jednymi z takich lamp "na wygnaniu" są dekadowe lampy zliczające.
Dawne lata
Rozwój takich dziedzin nauki, jak m.in. fizyki atomowej, który nastąpił w latach 40. ubiegłego
Zastosowania lamp liczących
Wbrew pozorom lampy liczące służyły nie tylko do budowania różnego rodzaju przyrządów pomiarowych (liczących), lecz budowano na nich także kompletne komputery. Jednym z najpopularniejszych (zbudowany na deka tronach) byl komputer WITCH (akronim od Wolverhamp-ton Instrument for Teaching Computing from Harwell), zbudowany w 1948 roku.
Nie byl zbyt szybki.
Dodawanie dwóch liczb
wykonywał w 2 sekundy,
mnożenie zajmowało mu ok.
5 sekund, a dzielenie dwóch
liczb mogło trwać nawet 15
sekund. Pamięć programu
miała oszałamiającą pojemność 90 komórek...
stulecia doprowadził do skonstruowania elektronicznych urządzeń cyfrowych. Stało się to możliwe właśnie dzięki lampom elektronowym. Aby budowa maszyny cyfrowej była możliwie prosta, skonstruowano lampy liczące. Jeszcze nieco ponad 40 lat temu królowały one w cyfrowym sprzęcie pomiarowym. Do tej grupy lamp należą dekatrony, trochotiony i pewnego rodzaju tyratrony (lampy spustowe).
Zajmiemy się bliżej jednym typem lampy liczącej - elektronowo-promieniową lampą liczącą ElT. Została ona skonstruowana w 1953 roku przez Van Overbecka i była produkowana przez Philipsa i Val-vo. Później wytwarzano te lampy także w Polsce pod oznaczeniem ELWl. Taka lampa jest w istocie bardzo podobna do lampy oscyloskopowej i oka magicznego.
Na rys. 1 przedstawiono przekrój poprzeczny lampy i jej symbol graficzny. Samo działanie lampy jest dość skomplikowane, toteż opowiem o tym pobieżnie.
Katoda (K), umieszczony przed nią metalowy ekran (El), siatka pierwsza (Sl), siatka druga (S2) i elektrody prętowe za siatką pierwszą spełniają rolę wyrzutni wiązki elektronów. Wiązka nie ma przekroju kołowego, lecz pro sto-
Elektronika Praktyczna 9/2003
35
Niezwykły minutnik do jaj
Ż - żarzenie (1F12)
K+S*t-S5- kstoda I siatki hamujące (3)
S1-siatka pierwsza (2)
S2-siatka druga (10}
D1 - pierwsza elektroda odchylająca (9)
D2 - druga elektroda odchylająca (4)
S4-siatka czwarta (6)
Ap - anoda przapeWania (9)
A- anoda (5)
E - łwi&cący okmn f7)
Rys. I. Symbol schematowy i opis wyprowadzeń lampy liczqcej EIT
kątny. Ma to na celu zmniejszenie wymiarów lampy (krótsza ogniskowa soczewki elektronowej) i uproszczenie jej budowy. Siatki trzecia i piąta wyłapują elektrony, które powstają wskutek emisji wtórnej. Z siatki czwartej (S4) i anody (A) mogą być bowiem wybijane elektrony wtórne wskutek uderzeń rozpędzonych elektronów z katody. Jest to zjawisko niepożądane, bo pogarsza się zbieżność wiązki. W lampie ElT można uzyskać tylko dziesięć stabilnych położeń strumienia elektronów. Prostokątne otwory w elektrodach S4 i A umożliwiają uzyskanie dziesięciu znaków na ekranie lampy. Lampa jest wyposażona w ekran (E) pokryty luminoforem. Na zewnętrznej powierzchni lampy są namalowane cyfry od 0 do 9 (fot. 2). Wiązka elektronów, która pada
Pole odczytowe
lampy (cyfry od 0 do S)
na ekran, powoduje świecenie luminoforu w pobliżu odpowiedniej cyfry. Dla uzyskania ostrego znaku na ekranie jest wymagane napięcie przyspieszające o wartości 300 V. Nie jest to dużo, zważywszy, że w lampach oscyloskopowych wymagane napięcie jest z reguły większe od 500 V. Lampa ElT ma płytki odchylające Dl i D2, podobnie do lampy oscyloskopowej. Podstawowy układ pracy licznika na lampie ElT przedstawiono na rys. 3. Napięcie zasilające i wartości elementów są tak dobrane, że po włączeniu lampy wiązka elektronów pada na ekran w pobliżu cyfiy "0".
Widzimy, że płytka odchylająca D2 jest połączona z anodą A. Elektrody te są zasilane przez rezystor R7 o dużej oporności (ok. 1 MLł). Elektrody D2 i A mają pewną pojemność pasożytniczą niezaznaczoną na schemacie. Przez kondensator Cl są doprowadzane impulsy zegarowe do elektrody Dl lampy liczącej. Nie mogą to być jednak impulsy prostokątne, do jakich przywykliśmy w układach cyfrowych. Impuls zegarowy musi mieć kształt pokazany na rys. 4. W przeciwnym razie lampa nie będzie liczyć lub będzie liczyć nieprawidłowo.
Jeśli do elekrody Dl zostanie doprowadzony prawidłowy impuls zegarowy, to indukujący się przeciwny potencjał na elektrodzie D2 nie nadąża za zmianami na Dl wskutek znacznej stałej czasowej R7 i wspomnianej pojemności pasożytniczej. Nastąpi więc odchylenie wiązki elektronów do kolejnej stabilnej pozycji - zaświeci się znak w okolicy cyfry
" 1". Aby nie nastąpiło cofnięcie wiązki, impuls zegarowy musi opadać względnie wolno - dłużej niż 10 fis. Zmiany potencjału na D2 nadążają podczas opadania impulsu za zmianami na Dl.
Teraz jest jasne, dlaczego prostokątny przebieg zegarowy nie jest odpowiedni - nie następowałoby przejście wiązki do kolejnej stabilnej pozycji. Przejście do kolejnych stabilnych pozycji następuje podobnie, aż do wskazania cyfry "9" włącznie. Po kolejnym impulsie zegarowym następuje przesunięcie wiązki na anodę przepełnienia AP. Nastąpi więc przepływ prądu przez opornik R5. Oznacza to przepełnienie licznika. Jeśli trzeba połączyć kaskadowo kilka lamp w licznik o większej pojemności, należy odpowiednio uformować impuls z anody przepełnienia i wyzerować dekadę. W tym celu jest potrzebny układ formujący - lampowy prze-rzutnik monostabilny (rys. 3). Doprowadza on do siatki Sl lampy liczącej krótki ujemny impuls kasujący, a do lampy liczącej następnej dekady odpowiedni impuls zegarowy. Działanie tego przerzut-nika jest następujące. Lewa tiioda w stanie stabilnym przewodzi, bo jej siatka nie jest zablokowana ujemnym potencjałem. Prawa trio-da jest zaś zatkana ujemnym potencjałem na siatce, uzyskiwanym na oporniku Rl5. Gdy z anody przepełnienia pojawi się na siatce lewej triody ujemny impuls (przez kondensator C4), zostanie ona zatkana. Anoda tej lampy stanie się przeto "bardziej" dodatnia i ten dodatni impuls za pośrednictwem kondensatora C7 odblokuje siatkę
clocko
Fot. 2. Liczba zliczonych impulsów jest wskazywana na ekranie fluorescencyjnym, podobnym do stosowanych w lampach oscyloskopowych
I
Rys. 3. Typowy schemat aplikacyjny lampy ElT
36
Elektronika Praktyczna 9/2003
Niezwykły minutnik do jaj
ręczne kasowanie timera
tn < O,5\1S
top> 1O|JS
AU=13,6Vą15%
Rys. 4. Zalecany kształt impulsu "zegarowego"
prawej triody. Przez kondensator C5 do siatki Sl lampy liczącej dotrze ujemny impuls, który na chwilę spowoduje przerwę w przepływie wiązki elektronów. Spowoduje to przejście strumienia elektronów do położenia początkowego i wskazanie znaku 0. Elementy C6, C8, R15, R16 i R17 formują impulsy zegarowe dla następnej lampy liczącej. W naszym timerze samoczynne zerowanie lampy nie będzie potrzebne i zastosowanie wyżej opisanego przerzutnika będzie zbędne. Należy jeszcze wspomnieć, że szybkość liczenia w opisanym wyżej układzie licznika nie przekraczała 30 kHz.
W innych układach z tą lampą (gdy np. kasowanie następowało impulsami dodatnimi na elektrodzie D2) uzyskiwano szybkość liczenia do 200 kHz. Jednak ze względu na rozrzut parametrów elementów praktyczna szybkość liczenia nie przekraczała zazwyczaj 80 kHz. Jest to relatywnie mała szybkość liczenia, w porównaniu choćby z szybkością standardowych układów TTL. Należy jednak wziąć pod uwagę, że te lampy umożliwiły skonstruowanie dość praktycznych, jak na owe czasy, układów mierników cyfrowych. W czym przejawiała się ta praktyczność? W stosunkowo łatwym odczycie wyników pomiaru. Był on bowiem wyświetlony w jednym rzędzie, a złożoność układu była stosunkowo niewielka. Jedna lampa spełniała rolę jednego licznika i jednocześnie "wyświetlacza" jego zawartości. Czas życia lampy liczącej ElT jest przewidziany na 10000 godzin pracy. To dość dużo zważywszy, że niektóre z dekatronów gazowanych miały czas życia zaledwie 500 godzin pracy.
Rys. 5. Schemat elektryczny timera
Elektronika Praktyczna 9/2003
37
Niezwykły minutnik do jaj
u
0,5V 0
elektroda D1 lampy liczące]
anoda I elektroda D2 lampy liczącej
anoda przepełnienia 300V lampy liczącej 2BSV
li
r "
30S i >
! t


moment ręcznego zerowania tlmera
Rys. 6. Przebiegi w charakterystycznych punktach timera
W wielu urządzeniach, w których wymagano dużej szybkości liczenia stosowano liczniki złożone z lampowych przerzutników dwustanowych, zwanych dawniej binadami. Aby złożyć licznik dziesiętny potrzeba 4 binad, czyli 8 lamp. Budowa takich liczników była skomplikowana - oprócz dużej liczby lamp składały się one z wielu innych elementów. Odczyt stanu licznika nie należał do najłatwiejszych. Powszechnie praktykowano dołączanie neonówek do binad. Wyświetlały one informację w kodzie dwójkowym. Aby odczytać stan licznika należało biegle posługiwać się kodem dwójkowym.
Bardziej rozbudowane maszyny były wyposażone w deszyfrator (dziś powiedzielibyśmy dekoder), który sterował albo lampy Nixie (co było szczytem wygody), albo całe kolumny neonówek. Na każdą cyfrę miernika musiało więc przypadać 10 neonówek. Ponieważ wynik nie był w takim przypadku wyświetlany w jednym rzędzie, to odczyt był utrudniony. Były budowane także mierniki cyfrowe, ale z odczytem analogowym za pomocą odpowiednio wy-skalowanego mikroamperomierza.
Konstruowane były także układy trój stanowe, tzw. triady. Nie miały one - wbrew pozorom -właściwości podobnych do współczesnych bramek trój stanowych. Jak wiadomo, w bramkach trój stanowych trzeci stan odpowiada odłączeniu bramki od układu (tzw. stan wysokiej impedancji). Tymczasem w dawnych układach trój-stanowych pierwszy stan oznaczał przekroczenie jakiejś wielkości,
drugi - wartość poniżej normy, trzeci - wartość w normie. Czasem budowano liczniki z połączonych triad, aby oszczędzić na liczbie lamp, ale odczyt wskazań takiego licznika był bardzo niewygodny.
Współcześnie
A dziś? Dziś możemy zastosować lampę liczącą ElT w timerze, jako nietypowy wskaźnik upływającego czasu. Spójrzmy na schemat elektryczny, który pokazano na rys. 5. Jak widać, w timerze zastosowano całkiem współczesne układy CMOS i bardzo niewspół-czesną lampę ElT. Czemu tak? Otóż największą trudnością w tym projekcie jest opracowanie układu kształtującego impulsy zegarowe. Wykonanie całego układu jako
Dodatkowe materiały na temat lamp
liczących można znaleźć m.in. pod adresami:
- http://wl.871 .telia.com/~u87127080/ind/
elt.htm,
- http://www.tubecollector.org/elt.htm, - http://www.electricstuff.co.uk/count.html.
w pełni lampowego jest wprawdzie możliwe, ale zróbmy prostą kalkulację, która wykaże, że jest to niecelowe. Układ 4060 jest generatorem z czternastostostop-niowym licznikiem-dzielnikiem dwójkowym. Możemy go zastąpić kaskadą lampowych binad. Stosując lampy podwójne, jak np. ECC88 (zawierają dwie triody w jednej bańce) i stosując diody półprzewodnikowe, musielibyśmy użyć "zaledwie" 15 takich lamp (1 na generator kwarcowy i 14 na dzielnik). Aż boję się policzyć, jaki byłby pobór prądu z sieci takiego lampowego 4060. A przecież należałoby jeszcze zrobić lam-
powe 4518, 4071 i 4011. Można by zbudować prymitywny układ generatora RC na jednej lampie, ale dokładność odmierzania czasu byłaby gorsza od klepsydry piaskowej. Wszak zmiany temperatury elementów byłyby znaczne, przez co układ nie pracowałby stabilnie. Aby odmierzyć, na przykład 5 min. podczas gotowania jajka na miękko, lampa ma zliczyć 10 impulsów. Oznacza to, że impuls zegarowy powinien się pojawiać na elektrodzie Da co 30 s.
W układzie Ul 4060 następuje podzielenie częstotliwości kwarcu przez 16384 i na nóżce 3 tego układu uzyskujemy 2 impulsy w ciągu sekundy. Następnie w pierwszym liczniku dziesiętnym układu U2 (4518) realizowane jest dzielenie przez 10. Na nóżce 6 układu U2 otrzymujemy więc 1 impuls na 5 sekund. W drugim liczniku układu U2 następuje dzielenie przez 6. Należało w tym celu zbudować układ na bramkach Bl, B2 i B3, który wytwarza sygnał zerowania dla wszystkich liczników. Przyciśnięcie klawisza kasowania powoduje podanie jedynki logicznej na wejście bramki B3, co powoduje ręczne zerowanie liczników. Przycisk kasowania musi być dwusekcyjny, bo lampa wymaga innego poziomu napięcia do zerowania niż układy CMOS. Na wyjściu bramki B4 następuje zmiana z zera na jeden dokładnie po 3 0 sekundach od momentu kasowania liczników. Jest to ważne, bo lampa jest wyzwalana narastającym zboczem sygnału z bramki B4. Jak pamiętamy, lampa wymaga odpowiedniego kształtu impulsu zegarowego. Impuls ten jest formowany na elementach C4, C5, D2 i R5. Dioda D2 obcina ujemne impulsy, tworzące się podczas różniczkowania przebiegu zegarowego. Na rys. 6 przedstawiono uproszczone przebiegi w niektórych punktach układu timera.
W układach CMOS zmiana z logicznego zera na jeden odpowiada zmianie napięcia wyjściowego z około O V do napięcia zasilania układu. Ponieważ jest wymagane, aby wysokość impulsu zegarowego lampy wynosiła 13,6 V ą15%, układy CMOS są zasilane napięciem 12,5 V z oddzielnego uzwoję-
Elektronika Praktyczna 9/2003
Niezwykły minutnik do jaj
WYKAZ ELEMENTÓW
Rezystory
R2: 220kQ/0,ÓW 1%
R3: 9,lMn/0,6W 1%
R4: lkQ/0,ÓW 1%
R5, R8: 15kQ/0,ÓW 1%
Ró, R7: 68ka/0,6\N 1%
R9: 330kQ/0,ÓW 1%
RIO, R12: ó^kO/CÓW 1%
Rll, R15: lMQ/u,ÓW 1%
R13: 39kQ/0,ÓW 1%
R14: 47kQ/u,ÓW 1%
Kondensatory
Cl: 470^F/25V
C2: trymer 68pF
C3: 27pF/63V
C4: 470pF/500V
C5: lnF/630V
C6: 150nF/400V
C7: 470nF/400V
C8: ó,8nF/400V
C9: 100^F/400V
Półprzewodniki
Ul: CD40Ó0
U2: CD4518
U3: CD4071
U4: CD4011
Bl: mostek prostowniczy 1A/8OOV
B2: mostek prostowniczy 1A/5OV
Dl: dowolna dioda np. 1N4007,
1N4148
Różne
VI: lampa E1T lub ELW1
Buzzl: buzzer 12V
Podstawka "duodecal" z 12
stykami
1 włącznik zwiemy dwusekcyjny
Bl bezpiecznik 400 mAT
Transformator według opisu
nia transformatora sieciowego, prostowane (B2) i filtrowane (Cl). W części cyfrowej nie można więc stosować układów TTL, bo uzyskamy za małą wysokość impulsu zegarowego dla lampy.
W obwód anody przepełnienia jest włączony brzęczyk BUZZl. Po zliczeniu dziesiątego impulsu zegarowego następuje nieznaczne przesunięcie wiązki elektronów w lampie liczącej tak, że przez anodę przepełnienia AP popłynie prąd uruchamiający brzęczyk, ale nadal świeci się znak w pobliżu cyfry "9". Sygnał z brzęczyka oznacza koniec odmierzania czasu (np. gotowania). Brzęczyk nie wyłączy się do momentu wciśnięcia przycisku kasowania lub odłączenia zasilania układu.
OOOOOOOOOOOO 0 0

JP1
Woooooooo 00000000
IM
o\ ? o o o o o o o noooooo
Rys. 7. Rozmieszczenie elementów na płytce drukowanej
Napięcia zasilające układ 6,3 VAC/0,4 A dla żarzenia lampy, 9 VAC/50 mA dla układów CMOS i 220 VAC/30 mA są uzyskiwane za pomocą transformatora Trl. Wyprostowane przez prostownik napięcie anodowe jest filtrowane za pomocą kondensatora C9.
Uruchomienie
Montaż układu nie powinien sprawić problemu i nie wymaga szerszego omówienia. Na cokole lampy przy każdej z nóżek jest wytłoczona cyfra - "pinologię" lampy pokazano na rys. 1.
Układ zmontowano na płytce drukowanej, której schemat montażowy pokazano na rys. 7. Ponieważ nie produkowano podstawek pod lampy ElT do druku, więc lampa została "podpięta" do płytki na przewodach. Przewody te nie powinny być jednak zbyt długie (do kilkunastu cm). Kolejność wyprowadzeń lampy pokrywa się z kolejnością wyprowadzeń na złączu krawędziowym, z tym, że przewody 4 i 9 na cokole lampy należy ze sobą zamienić miejscami. Poprawnie zmontowany układ działa zaraz po włączeniu i nagrzaniu się lampy, co zajmuje mniej niż 20 s. Po nagrzaniu powinien zaświecić się znak w okolicy cyfry "0". Jedyną czynnością regulacyjną jest ewentualne dostrojenie generatora do częstotliwości 32768 Hz za pomocą trymera C2.
Elementy w obwodach lampy powinny być dobrej jakości -tolerancja oporników 1%, kondensatorów 5...10%. Jest to warunek stabilnej pracy lampy ElT. Tak
zalecał producent w danych katalogowych. Gdyby lampa nie chciała liczyć, należy zmienić wartości pojemności C4 i C5. Przyczyną tego mogą być też za długie przewody.
Panuje powszechne przekonanie, że układy lampowe są bardzo drogie w budowie. Nie zawsze jest to prawdą i dużo zależy od naszych zdolności organizacyjnych, cierpliwości i szczęścia. Trudno oszacować koszt tego układu, bo zależy od tego, ile trzeba będzie zapłacić za lampę. Udało mi się ją nabyć za 4 zł, a szacunkowy koszt pozostałych elementów (bez transformatora) nie przekroczył 30 zł. Aleksander Zawada, AVT aleksander.zawada@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdflwrzesienO3Jitm.
Elektronika Praktyczna 9/2003
39
PROJEKTY
Programator USB mikrokontrolerów ATmega - ISP, część
AVT-524
2
Programatory ISP dla
mikrokontrolerów AVR -
zarówn o kom ercyjn e jak
i amatorskie (jedno
z możliwych rozwiązań
układowych przedstawiamy
w Miniprojektach) są od
dawna opisywane . Nasuwa
się więc pytanie, czy wańo
od podstaw opracowywać
jakiś nowy układ
programatora? Na pewno nie
ma sensu powielanie
typowego projektu opańego
np. na porcie równoległym
LPT. Co w zamian?
Oczywiście USB!
Rekomendacje: programator
dla wymagających
kon struktoró w, pragn ących
zgłębić tajniki USB - przede
wszystkim tych, którzy
korzystają z mikrokontrolerów
ATmega.
Program mikrokontrolera sterującego
Program dla mikiokontiolera ATmega został napisany w języku C, z użyciem najnowszej wersji WinAVR oraz środowiska AVRSi-de. Kod źródłowy jest załączony do materiałów pomocniczych, jest teź (najbardziej aktualna wersja) dostępny na stronie AYRSide.
Program nie jest zbyt skomplikowany i działa następująco:
- odbiera za pomocą sprzętowego UART-u komendy i dane wysyłane przez aplikację sterującą,
- po zdekodowaniu komendy wykonuje odpowiednią operację na interfejsie ISP,
- wysyła do aplikacji sterującej potwierdzenie wykonania lub informację o błędzie.
Komunikacja szeregowa
Po konwersji w FT8U232 transmisja przez USB nie różni się z punktu widzenia mikrokontrolera (z wyjątkiem kilku szczegółów) od zwykłej, wielokrotnie omawianej transmisji przez UART. Główną (pozytywną) różnicą jest możliwość praktycznie dowolnego ustawiania szybkości transmisji, bez kłopotliwego doboru częstotliwości rezonansowej kwarców.
W tym programatorze używamy 250 kbd - wartości nietypowej dla zwykłego RS2 32, ale przy oscylatorze 8 MHz możliwej do precyzyjnego taktowania.
Aplikacja przesyła do programatora ramkę danych sformatowaną w następujący sposób:
- bajt [0] - długość obszaru danych (w 8-bajtowych blokach),
- bajt [1] - kod komendy,
- bajty [2]...[7] - informacje zależne od kodu komendy,
- obszar danych (wielokrotność 8-bajtowego bloku).
Zauważmy, że w strukturze ramki brak jest obszaru kontrolnego (CRC lub chociażby sumy kontrolnej) . Wynika to nie tylko z uproszczeń w pierwszej, testowej wersji, ale ma również konkretny cel: praktyczne sprawdzenie stopnia niezawodności toru przesyłowego USB<->UART. Z dotychczasowych prób laboratoryjnych wynika, że transmisja jest praktycznie bezawaryjna. Jednak w razie potrzeby można bez problemu rozbudować program o procedury dodatkowej kontroli poprawności odbierania danych.
Odbiornik pracuje w oparciu o przerwanie. Po odebraniu bajtu
Elektronika Praktyczna 9/2003
41
Programator USB mikrokontrolerow ATmega - ISP
[0] zostaje odczytana i zapamiętana oczekiwana długość bieżącej ramki. Kolejne bajty są wpisywane do bufora odbioru aż do zakończenia ramki. Równocześnie pracuje licznik timeoutu odbioru, który pozwala na wykrycie ramek niekompletnych (bez jego zastosowania niekompletna ramka powodowałaby zawieszenie odbiornika w oczekiwaniu na zakończenie jej przesyłania). Skompletowanie ramki powoduje ustawienie flagi przyjęcia transmisji - jest to sygnał dla pętli głównej, że należy odczytać bufor odbiornika, zinterpretować zawarte w nim dane i wykonać odpowiednie dla danego polecenia operacje.
Po realizacji komendy programator wysyła do aplikacji odpowiedź. Ramka zwrotna ma stały rozmiar 32 bajty. Bajt [0] zawsze określa kod błędu. Dalsze bajty mogą zawierać dane zależne od komendy. Nadajnik również pracuje z użyciem przerwania.
Wyczerpujące rozpisanie formatów poszczególnych komend znajdziemy w kodach źródłowych.
Operacje intefejsu ISP
Opiszemy tylko komendy potrzebne do obsługi mikrokontrole-ra w podstawowym zakresie:
- SET_PARAMS - przekazuje do programatora typ docelowego mikrokontrolera oraz częstotliwość taktowania SCK (dla uproszczenia wyliczamy już w PC wartość argumentu dla pętli _delay_loop_l),
- READ_FUSES - odczytuje stan bitów konfiguracyjnych, wartość bajtów kalibracyjnych oraz sygnatur (w tej wersji nie ma samoczynnego uzgadniania sygnatury z wybranym typem mikrokontrolera),
- WRITE_FUSES - zapisuje ustawione w aplikacji sterującej bity konfiguracji,
- WRITE_FLASH_PAGE - do programatora przesłana jest zawartość jednej strony pamięci Flash (rozmiar zależy od typu ATmega), zostaje ona przeładowana do bufora strony docelowego układu i przepisana do jego pamięci (można ten proces rozszerzyć o weryfikację wpisanej strony - dotychczas nie wydaje się to konieczne, ale może okazać się dopiero przy większej liczbie testów),
- WRITE_EEPROM - dla uzyskania lepszej wydajności transmisji dane EEPROM są przesyłane w 32-bajtowych blokach (chociaż każdy bajt musimy programować oddzielnie).
Jeśli przeanalizujemy kod źródłowy, to stwierdzimy, że bardzo łatwo rozbudować programator o następne funkcje oparte na tym samym mechanizmie przesłania komendy. Mogą to być też polecenia w ogóle niezwiązane z obsługą AVR, ale np. wykorzystujące inne wbudowane interfejsy. Opisane komendy można również rozszerzać o dodatkowe opcje (sposób kontroli czasu zapisu, pomijanie przy zapisie bajtów 0xFF itp.).
Sam przebieg sterowania interfejsem ISP oczywiście nie pozwala na dowolność - musi być całkowicie zgodny ze specyfikacją. Nie powtarzamy tu wielokrotnie już przedstawianych opisów obsługi ISP - zainteresowani mogą samodzielnie przeanalizować programową realizację tabeli komend programowania szeregowego.
Jak to wygląda od strony komputera
Do obsługi programatora wykorzystujemy również (jak przy konfiguracji de skry p torów) driver D2XX. Schemat blokowy przesyłania danych pokazano na rys. 3. Jest ono złożone i wieloetapowe, ale z punktu widzenia aplikacji użytkowej sprowadza się do odpowiedniego stosowania funkcji API zawartych w bibliotece ftd2xx.dll. Może się wydawać, że jest to zbędne dokładanie sobie roboty - są do wyboru także tradycyjne metody oparte na zwykłej obsłudze portu szeregowego. Jednak D2XX oferuje znacznie większą kontrolę nad pracą układu, co ma zwłaszcza znaczenie dla przyśpieszenia dwustronnej wymiany danych z użyciem dużej liczby niewielkich, oddzielnych pakietów (szczegółowe omówienie tematu znajduje się w nocie aplikacyjnej AN232-04 Laten-cy and data throughput). Dużo łatwiejsza jest także identyfikacja układu według opisu w deskryp-torze oraz ustawianie praktycznie dowolnej szybkości transmisji.
Biblioteka ftd2xx.dll zawiera dwa - stosowane zamiennie -
Aplikacja użytkownika VC++ VB Delphi C-H-Builder
Biblioteka funkcji
API FTDI FTD2XX.DLL
SterownikWDMFTDI FTD2XX.SYS
Systemowy stos
sterowników USB
W98 ME 2000 XP
Urządzenia USB FTDI FT232 UART FT245FIFO
Rys. 3. Organizacja przesyłu danych USB pomiędzy aplikacją a programatorem
zbiory funkcji do obsługi transmisji: interfejs klasyczny oraz nowy interfejs FT-Win32 API (wygodny w stosowaniu, gdyż jego funkcje -chociaż odwołują się bezpośrednio do stosu USB - mają składnię prawie zgodną z dotychczasowymi systemowymi funkcjami Windows API). Dodatkowo znajdziemy tu funkcje związane z rozszerzonymi możliwościami wersji BM oraz obsługę dostępu do pamięci EEPROM (wykorzystanie wolnego obszaru dla własnych potrzeb).
W przykładowej aplikacji sterującej programatorem używamy interfejsu FT-Win32. Aplikacja została napisana w Delphi, z czym wiązała się konieczność sporządzenia modułu nagłówkowego tłumaczącego wywołania C funkcji bibliotecznych na Object Pascal -znajdziemy go w materiałach pomocniczych.
Komponent komunikacji z układem FT8U232BM
Dla ułatwienia obsługi łączności z układem FTDI potrzebne funkcje zostały zgrupowane w łatwym do stosowania komponencie Delphi. Jest on przystosowany głównie do potrzeb przyrządów warsztatowych (jak opisywany właśnie programator) operujących na niezbyt wielkich przesyłach danych (zazwyczaj w trybie half-duplex) i często korzystających z dodatkowych linii kontrolnych UART. Dlatego opiera się na najprostszym, synchronicz-
42
Elektronika Praktyczna 9/2003
Programator USB mikro kont roi ero w ATrmega - ISP
nym trybie wywoływania funkcji i posługuje się tylko jednym dodatkowym wątkiem dla kontroli odbiornika i stanu linii.
Parametry pracy UART-u FT8U232 ustawiamy według potrzeb za pomocą właściwości typu published (dostępnych juź na etapie projektowania). Większość z nich jest analogiczna jak dla zwykłego portu szeregowego. Należy jednak zwrócić uwagę na następujące aspekty:
- Mechanizm ustawiania szybkości jest zupełnie inny niż w tradycyjnym porcie; jest ona uzyskiwana z podziału częstotliwości wzorcowej 3,0 MHz przez programowo ustawiany dzielnik o części całkowitej i ułamkowej. Pozwala to na dużą elastyczność w doborze - zawsze jednak warto przeliczyć jak dokładnie układ będzie w stanie odwzorować wprowadzoną przez nas wartość. Np. dla programatora szybkość 250 kbd jest możliwa do ustawienia dokładnie, nawet bez użycia ułamkowego podzielnika (250000 = 3000000/12).
- Pakietowy sposób przesyłu danych magistralą USB zazwyczaj wymaga, w przypadku większych bloków danych, ustawienia kontroli przepływu (zewnętrzny układ podłączony do FT8U232 musi być informowany o konieczności wstrzymania nadawania w chwilach oczekiwania na odczyt przez USB wypełnionych buforów tego układu). Mamy do wyboru dwie pary linii handshakingu sprzętowego oraz handshaking programowy. Zauważmy, że w przypadku omawianego programatora możemy zrezygnować z kontroli przepływu, gdyż jednorazowo przesyłany blok danych jest zawsze mniejszy od pojemności bufora FT8U232.
Kilka właściwości dotyczy samego połączenia USB:
- DeviceDescription, DeviceSerial-Number oraz DeviceOpenBy pozwalają na łączenie z konkretnym urządzeniem na podstawie jego nazwy lub numeru wpisanych do deskryptora.
- UsblnputBufferTimeout oraz Us-blnputPacketSize pozwalają na optymalizację transmisji USB pod kątem przewidywanej organizacji wymiany danych (szcze-
góły - jak wspomniano wyżej -
w notach aplikacyjnych FTDI).
Obsługa transmisji z użyciem
komponentu jest bardzo prosta -
polega na użyciu tylko kilku
właściwości runtime:
- DevicePresent służy do łączenia się i rozłączania z urządzeniem,
- xxxState pozwala na odczyt linii wejściowych i ustawianie wyjściowych,
- wpis do WńteBuffer wysyła dane, a z ReadBuffer pobieramy dane odebrane,
- DisconnectError pozwala zidentyfikować fizyczne odłączenie urządzenia w trakcie nawiązanej łączności,
- zdarzenia Onxxxx pozwalają na samodzielne oprogramowanie według potrzeb sytuacji typowych dla przebiegu transmisji (połączenie, rozłączenie, błąd przesyłu, odbiór bloku danych).
Kod źródłowy komponentu jest załączony w materiałach (na CD-EP8/2003B). Stwierdzone dotychczas usterki dotyczą możliwości wystąpienia błędu AV (access violation) podczas likwidacji instancji komponentu bezpośrednio po rozłączeniu urządzenia - wątek potomny nie zawsze zdąży się zatrzymać, odwołując się do nieistniejących już elementów. Pozostało to nie skorygowane, gdyż -jak można zobaczyć w przykładowym oprogramowaniu - baidzo łatwo ten efekt wyeliminować.
Przykład oprogramowania sterującego
Sterowanie programatorem zostało wbudowane w środowisko AVRSide dla kompilatora AVR-GCC. Pozwoliło to na wykorzystanie istniejących już modułów związanych z programowaniem (odczyt i kontrola plików *.hex, wskaźnik postępu, okno dialogowe bitów konfiguracji). Nic jednak nie stoi na przeszkodzie, aby
- dysponując kodami i znając format komend - w razie potrzeby dopisać własne narzędzia.
Po wybraniu z menu AYRSide poleceń programowania lub konfiguracji układu docelowego zostaje wykonana następująca sekwencja czynności:
- jest dynamicznie tworzone i wyświetlone odpowiednie okno dialogowe (rys. 4),
- w przypadku programowania zostają załadowane (wraz z kont-

ustni .4
tDOlW I M UW* >|
aort u
H** * MU
\w\ rwn nrn
Rys. 4. Okno dialogowe konfiguracji po odczycie bitów fuse
rolą poprawności) pliki wyjściowe projektu (Intel hex lub binarne dla kodu programu oraz zawartości EEPROM),
- zostaje nawiązane połączenie z wybranym typem programatora - w razie stwierdzenia błędu operacje zostają zatrzymane z odpowiednim komunikatem ostrzegawczym,
- realizowane są (samoczynnie podczas programowania lub w interakcji z użytkownikiem podczas ustawiania konfiguracji) potrzebne komendy,
- po zakończeniu połączenie z programatorem zostaje przerwane, a okno dialogowe zamknięte i zlikwidowane.
Zestaw AYRSide + programator obsługuje jedynie mikiokont-rolery z rodziny ATmega. Wynika to z:
- braku możliwości programowania w AYR-GCC najmniejszych układów niewyposażonych w pamięć RAM,
- szybkiego wycofywania przez Atmela z produkcji układów ze s tars z ej s erii 9 0xx.
Ostateczne uruchomienie i sprawdzenie działania programatora polega na podłączeniu zmontowanej i zaprogramowanej płytki, dołączeniu do interfejsu ISP jakiegoś testowego (najlepiej już wypróbowanego) układu z mikro-kontiolerem ATmega i próbie jego obsługi z poziomu AYRSide. Zawsze wskazane jest rozpoczęcie od odczytu bitów konfiguracji [fuse). Możliwe komunikaty obłędach obejmują:
- brak podłączonego programatora - przyczyn szukajmy po stronie magistrali USB lub w błędnym zaprogramowaniu deskryptorów FT8U232,
- błędna konfiguracja programatora (przy odczycie fuseów lub po pewnej chwili od otwarcia okna)
Elektronika Praktyczna 9/2003
43
Programator USB mikrokontrolerow ATmega - ISP

AYRSIDE RUNTIME Delphi
projekt AVRSIDE


projekt AVRISP projekt testowy ATMEGA 8

optoizolowany uruchamiany układ docelowy
programator RTS programator ATMEGA 8
Rys. 5. Przykładowy schemat blokowy stanowiska uruchomieniowego - pozwala na równoległe rozwijanie i sprawdzanie programu sterującego Delphi oraz programu C dla mikrokontrolera
clcf ? a ? n strona "lutowania1 strona "elementów"
Rys. 6. Schemat montażowy płytki drukowanej
- świadczy o niewłaściwej pracy ATmega8 programatora (mikro-kontroler nie odpowiedział na pierwszą komendę ustawiającą typ docelowego układu i częstotliwość pracy) lub o usterce na połączeniach UART; czasem taki objaw świadczy po prostu o nieudanym starcie przy podawaniu zasilania z magistrali USB - wtedy wystarczy odłączyć i po chwili ponownie podłączyć płytkę),
- niedostępne urządzenie docelowe
- brak poprawnej odpowiedzi programowanego mikrokontrolera na sekwencję wejścia w tryb ISP.
Z powyższego łatwo się domyślić, że - poza kilkoma banalnymi przypadkami błędnych podłączeń - lokalizacja usterki może nie być łatwa i nie sposób podać recepty na każde możliwe niedomaganie układu. Jednak jest to cecha wszystkich składanych samodzielnie bardziej skomplikowanych urządzeń.
Gdy uzyskamy właściwy odczyt bitów fuse (można to ocenić np. po wartościach sygnatur), możemy wykonać próbne zapisy konfiguracji oraz programowania. Na razie nie ma opcji weryfikacji zawartości fiaska, więc poprawność wpisanego kodu musimy ocenić po działaniu docelowego układu (miganie LED-a kontrolnego itp.). Dotychczasowe testy wykazały dużą niezawodność zapisu - więc wprowadzanie weryfikacji (znacznie spowalniającej cały proces) może okazać się całkiem zbędne. Dla testowanego docelowego ATmega8 uzyskano czas programowania 8 kB Flasha równy ok. 4 s. Nie stwierdzono znaczącej różnicy przy użyciu stałego (zgodnego ze specyfikacją) opóźnienia cyklu zapisu oraz przy aktywnej kontroli zakończenia cyklu. W chwili pisania artykułu testy na większych AT-megach były dopiero w przygotowaniu - po wszelkie aktualności
sięgajmy na stronę AVRSide (www.avrside.fr.pl).
Jeśli chcemy samodzielnie rozwijać oprogramowanie układu (zarówno firmware mikrokontrolera, jak i współpracującą nadrzędną aplikację) - musimy się wyposażyć w bardziej rozbudowane stanowisko. Na rys. 5 przedstawiono przykład konfiguracji używany przy uruchamianiu pierwszych modeli programatora. Jerzy Szczesiul, AVT jerzy.szczesiul@ep.com.pl
Dodatkowe informacje:
- strona firmowa FTDI: www.ftdi-chip.com,
- strona AVRSide: www.avrside.-fr.pl,
- strona WinAVR: http://source-forge.net/projects/winavr.
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdflwrze sień 03 .htm.
44
Elektronika Praktyczna 9/2003
PROJEKTY
Odtwarzacz MP3 z układem STA013, część 2
Przerobienie komp u tero we go
napędu CD-ROM na
odtwarzacz audio nie jest
zadaniem bardzo trudnym .
Bardziej skomplikowane jest
odtwarzanie plików MP3, ale
przykład Yamppów dowodzi,
że jest to także możliwe.
W ańykule przedstawiamy
interesujące rozwiązanie
konstrukcyjne odtwarzacza
MP3, o dość nietypowej - jak
na polskie warunki -
budowie. W drugiej części
ańykuiu przedstawiamy
skrótowo sposób komunikacji
mikroprocesora sterującego
pracą odtwarzacza z napędem
CD-ROM.
Rekomendacje: w projekcie
zaprezentowano niebanalne
rozwiązanie konstrukcyjne
urządzenia elektronicznego,
głównie dzięki zastosowaniu
oryginalnego zestawu
elementów, jest to projekt
poglądowy, stąd pewne
uproszczenia w jego opisie.
Opis komunikacji z napędem CD-ROM
Komunikacja z napędem CD-ROM odbywa się poprzez rejestry I/O adresowane przez sygnały CSO#, CSl# oraz DAO, DAl, DA2. Z ądanie odczytu czy zapisu odbywa się odpowiednio za pomocą linii DIOR# i DIOW#. Wszystkie sygnały złącza IDE nie są potrzebne, aby odczytać dane z płyty. W odtwarzaczu wykorzystano te, których opisy znajdują się w tab. 1.
Sygnał CSO# aktywuje bank rejestrów komend. Poprzez te rejestry wysyłane są komendy do napędu CD (np. odczyt sektora czy wysunięcie tacki).
Tab. 1. Sygnały interfejsu ATA wykorzystane w odtwarzaczu
Opis sygna^j Syrrbd
Wybór bloku rejestrów komend cso
Wybórnbloku rejestrów kontrolnych CS1
Szyna danych D0...D15 DD0...DD15
Linia adresowa 0 DAO
Linia adresowa 1 DA1
Linia adresowa 2 DA2
Żądanie przerwania INTRO
Odczyt z? rejestru DIOR#
Zapis do rejestru DI0W#
Sygnał zerujący urządzenie RESET#
Uwaga! Sygnały ze znakiem / na końcu są aktywne przy poziomie niskim.
Sygnał CSl# aktywuje bank rejestrów kontrolnych. Aby sterować napędem CD, nie ma potrzeby korzystania z tych rejestrów. CSl# może być "podciągnięty" do
vcc.
Sygnały DA0...DA2 są sygnałami adresowymi. Za ich pomocą wybieramy numer rejestru, który chcemy odczytać lub zapisać.
Sygnał INTRQ jest żądaniem przerwania. Jest on aktywowany m.in. w momencie np. odczytania sektora danych z napędu. Aby korzystać z napędu CD-ROM, sygnał ten nie musi być niewykorzystany.
Sygnały DD0...DD15 tworzą magistralę danych. Każdy zapis czy odczyt danych z CD-ROM-u odbywa się poprzez te linie.
Sygnał DIOR# służy do aktywacji odczytu z magistrali danych, natomiast sygnał DIOW# służy do aktywacji zapisu przez magistralę danych. Jednocześnie tylko jeden z tych sygnałów może być aktywowany.
RESET# jest sygnałem zerującym sterownik.
Adresowanie rejestrów CD-ROM-u odbywa się podobnie do adresowania ośmiobajtowej pamięci SRAM. W tab. 2 opisano po-
Elektronika Praktyczna 9/2003
45
Odtwarzacz MP3 z układem STA013
Tab. 2. Funkcje rejstrow komend
CS1# cso# EM2 Cfti DM) OOR# DIOWP
1 1 X X X Stan wysokiej impedancji Nie używany
1 0 0 0 0 Data Data
1 0 0 0 1 ATAPI Error ATAPI Features
1 0 0 1 0 ATAPI Interrupt Reason
1 0 0 1 1 Secztor Number
1 0 1 0 0 ATAPI Byte Count Low
1 0 1 0 1 ATAPI Byte Count High
1 0 1 1 0 ATAPI Drive Select
1 0 1 1 1 ATAPI Status ATA Command
Tab. 3. Format komendy READ
Offset 1AE&DGB& Opis DUgpcees wbspach
0 0xA8 Kod operacji odczytu sektora znpłyty (2048 bajtów danych użytkownika} 1
1 0 zarezerwowane 1
CNI Adres Logiczny adres sektora do odczytu począwszy od 0 4 (w formacie Big Endian}
6 Długość Liczba sektorów do odczytu 4n(jw.}
10 0 zarezerwowane CNI
szczególne rejestry Bloku Rejestrów Komend.
Ustawiając linię CS0# na poziomie niskim oraz podając adres na linie DA2...DA0, możemy odczytać lub zapisać dane z/do dowolnego rejestru poprzez magistralę danych DD15...DD0.
Wszystkie rejestry są 8-bitowe za wyjątkiem rejestru Data, który jest 16-bitowy. Podczas operacji na rejestrach 8-bitowych do przesyłania danych wykorzystywana jest tylko mniej znacząca część magistrali adresowej tzn. DD7...DD0.
Wykrywanie urządzeń ATAPI
Aby wykryć, czy do złącza jest podłączone urządzenie ATAPI, należy odczytać sygnaturę ATAPI. Gdy BSY=0, można odczytać rejestry ATAPI Byte Count MSB i ATAPI Byte Count LSB. Jeśli zawartość pierwszego będzie wynosić OxEB, a drugiego 0x14, to do interfejsu jest podłączone urządzenie zgodne ze standardem ATAPI (w naszym przypadku CD-ROM).
Opis wybranych komend ATAPI
W standardzie ATAPI wydawanie komendy odbywa się poprzez przesłanie do urządzenia tzw. pliku zadaniowego Task File (8 rejestrów powyżej funkcyjnych, szczegółowo opisanych w EP10 i 11/02). Jednak 8 bajtów to zbyt mało, aby przesłać
dane związane z niektórymi komendami, więc przesyła się je w postaci tzw. pakietów. Najpierw ustawia się rejestry Task File, a później wysyła się pakiet danych, tj. 12 bajtów opisujących czynność do wykonania.
Pakiety wysyła się wskutek przesłania do Task File komendy ATAPI Packet Command, gdyż za jej pomocą możemy odczytywać sektory z płyty. Opis wszystkich rodzajów pakietów wykraczałby poza ramy artykułu, więc skupimy się tylko na najważniejszych z punktu widzenia odtwarzacza
MP3. Wyróżniamy m.in. dwa rodzaje komend pakietowych: przesyłanie danych do napędu i przesyłanie danych z napędu.
Przesyłanie danych do napędu jest używane w takich komendach pakietowych jak Set Modę, Seek, Start/Stop Unit itp. Dane są przekazywane przez kontroler do napędu. W odtwarzaczu nie wykorzystano tego typu komend.
Przesyłanie danych z napędu do kontrolera następuje po komendach takich jak Read, Read TOC itp. Komendy te przedstawiono poniżej:
komenda READ (12)
Umożliwia odczyt sektora (lub kilku sektorów) z napędu CD-ROM. Format komendy przedstawiono w tab. 3.
komenda Read TOC
Za pomocą tej komendy można odczytać informacje o liczbie sesji na płycie oraz numer sektora, od którego zaczyna się ostatnia sesja. Format komendy Read TOC przedstawiono w tab. 4.
Komenda Read dane w formacie w tab. 5. Leszek Bednarz Krzysztof Lenard
TOC zwraca pokazanym
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdflwrze sień 03 .htm.
Tab. 4. Format komendy Read TOC
Offset Włrepft Opis CRjgooeee w bąkach
0 0x43 Kod operacji odczytu Table Of Contents (TOC} 1
1 0 zarezerwowane 6
7 0x10 1
8 0 zarezerwowane 1
9 0x40 1
10 0 zarezerwowane CNI

Tab. 5. Format danych zwracanych przez komendę Read TOC
Offset W&3GB8 Opis CRjgooeee w bąkach
0 0x0A Długość danych onTOC 2n(pierwszy MSB}
CNI ? Numer pierwszej sesji 1
3 ? Numer ostatniej sesji CNI
4 0 zarezerwowane 1
5 nieużywane przez oprogramowanie odtwarzacza
6 nieużywane przez oprogramowanie odtwarzacza
7 0 zarezerwowane 1
8 ? Początkowy sektor ostatniej sesji 4D(LBA, pierwszy MSB}
46
Elektronika Praktyczna 9/2003
PROJEKTY
"Klocki" RS485,
W czwartej, przedostatniej
części ańykuiu przedstawiamy
dwie kańy wejść: cyfrowych
i analogowych. Dzięki nim,
system zaprezentowany
w cyklu ańykuiów zyskuje
możliwość kontroli
różnorodnych zjawisk
zewnętrznych.
Rekomendacje: "klocki"
RS485 polecamy szczególnie
tym Czytelnikom, którzy
muszą przesyłać dane na
duże odległości z relatywnie
dużą prędkością.
Klocki RS485 to:
- AVT-530 - konwerter RS232<->RS485,
- AVT-531 -kartaprzekaźników,
- AVT-532-kartatriaków,
- AVT-533 - kart a wyjść cyfrowych (aktywne GND),
- AVT-534 - kart a wyjść cyfrowych (aktywne VCC),
- AVT-535 - kartawejść cyfrowych,
- AVT-536-8-wejściowakartawejść analogowych,
- AVT-537-4-cyfrowy wyświetlacz LED,
- AVT-538 - 32-znakowy wyświetlacz LCD.
Karta wejść cyfrowych AVT-535
Karta wejść cyfrowych ma osiem wejść cyfrowych ze wspólną masą, zabezpieczonych przed zbyt wysokim napięciem (powyżej 5 V) oraz napięciem o polaryzacji ujemnej. Wejścia nie są galwanicznie odseparowane od interfejsu i wzajemnie od siebie, co należy wziąć pod uwagę podczas korzystania z karty.
Budowa karty
Schemat elektryczny karty wejść cyfr owych przedstawiono na rys. 15. Głównym elementem jest mikroprocesor PIC16F84A, który odpowiada za odbiór oraz nadawanie danych poprzez interfejs RS485 oraz - w zależności od odebranych danych - odczytuje stany wejść cyfrowych. Mikiokontioler pracuje z zewnętrznym rezonatorem o częstotliwości 4 MHz. Do zerowania mikiokontrolera zastosowano specjalizowany generator sygnału zerującego DS1813 (US3).
Do zabezpieczenia mikrokontio-lera przed uszkodzeniem w przypadku podania na wejście cyfrowe sygnału o zbyt dużej amplitudzie zastosowano układ buforujący typu 74HC244. Zawiera on osiem buforów trój stanowych. Do przełączania wyjść buforów w stan wysokiej impedancji lub stan aktywny służą wyprowadzenia 1 i 19. Wyjścia buforów są na stałe ustawione w tryb aktywny poprzez dołączenie tych wejść do masy. Jako właściwe zabezpieczenie wejść zastosowano diody D1...D16 oraz rezystory R4...R11. Elementy
te powodują ograniczenie napięcia wejściowego, jeśli ma wartość większą niż 5,7 V lub napięcie jest niższe od -0,7 V. W przypadku pojawienia się napięcia przekraczającego podane progi, napięcia na wejściach układu US3 jest obniżane do bezpiecznego poziomu, a "nadwyżka" odkłada się na rezystorach R4...R12. Zastosowanie diod i rezystorów sprawia, że wejściowe napięcie może wynosić nawet 30 V lub więcej.
Za konwersję sygnałów z linii transmisyjnej do standardu TTL odpowiada układ MAX485 (US2). Dokonuje on również konwersji z poziomów TTL do poziomów RS485. W czasie spoczynku układ ten znajduje się w trybie odbiornika, ponieważ na wejściach DE panuje poziom niski wymuszony przez wyjście mikiokontrolera. Przełączenie w tryb nadawania układu MAX485 następuje tylko na czas wysyłania danych przez kartę wejść cyfrowych, a następnie zostaje przywrócony tryb odbioru, aby nie blokować linii transmisyjnej.
Dodatkowy rezystor R3 * służy do dopasowania linii i powinien być zamontowany jedynie w jednym module, najbardziej oddalonym od nadajnika (konwertera RS232<->RS485). O jego montażu należy jednak zdecydować po podłączeniu wszystkich modułów, gdyż w czasie testów okazał się zbędny. Zworka JPl służy do zmiany podstawowego adresu, pod którym będzie zgłaszała się karta wejść cyfrowych. Natomiast zworka JP2 umożliwia powrót do podstawowe-
Elektronika Praktyczna 9/2003
47
"Klocki" RS485
ffl S fO. * S U Q
"JsjsJL
Tab. 7. Zestawienie wszystkich komend umożliwiających sterowanie kartą wejść cyfrowych
Itodzaj komendy Wydana komenda feakga karty wyoeee cyftowych
Odczyt stanu jednego wejścia ESC Snrnnnenter, n-numer wyjścia (1...8) Zwraca informację onstanie wskazanego wnparametrze "n" wyjścia. Jeśli wejście ma poziom wysoki, to zwraca 1 (ASCII), jeśli niski, to 0 (ASCII)
Przykład 1: ESC 5nrn5nen1er odczytuje stan wejścia onnumerze 5
Odczyt stanów wszystkich wejść ESC 5nrnanenter Zwraca informację onstanie wszystkich wejść, do modułu sterującego wysyłanych jest 8nznaków. Jeśli wejście ma poziom wysoki, to zwraca 1 (ASCII), jeśli niski, to On(ASCII).
Przykład 2: ESC 5nrnanenter odczytuje stany wszystkich wejść
go adresu urządzenia. Rezystory Rl i R2 służą jako rezystory podciągające wejścia RA3 i RA4 do plusa zasilania. Opis zmiany podstawowego adresu karty wyjść cyfrowych zostanie przedstawiony w dalszej części artykułu, gdyż dla wszystkich modułów przebiega w taki sam sposób.
Do stabilizacji napięcia zasilającego zastosowano monolityczny stabilizator typu LM7805, natomiast do filtracji napięcia zastosowano kondensatory C1...C4. Dodatkowa dioda Dl zabezpiecza stabilizator przed uszkodzeniem, w przypadku podania napięcia o odwrotnej polaryzacji.
Montaż
Kartę wejść cyfrowych zmontowano na płytce dwustronnej (schemat montażowy pokazano na rys. 16). Montaż należy rozpocząć od wlutowania rezystorów (bez rezystora R3*) i diod. Następnie należy wlutować podstawki pod układy scalone i kondensatory, na końcu należy zamontować złącza CON1...CON6, zworki JPl i JP2 oraz Rys. 15. Schemat elektryczny karty wejść cyfrowych stabilizator. Stabiliza-
tor jest montowany w pozycji leżącej, dlatego przed wlutowaniem należy zagiąć jego wyprowadzenia pod kątem 90. Po zmontowaniu wszystkich elementów do złącza CON6 należy dołączyć napięcie zasilania o wartości około 9V i wydajności prądowej około 100 mA. Do złącza CON5 należy podłączyć przewody magistrali szeregowej RS485, zwracając przy tym uwagę na podłączenie wejścia oznaczonego "A" w odbiorniku z wyjściem o takim samym oznaczeniu w nadajniku.
WYKAZ ELEMENTÓW
Rezystory
RL R2: 10kO
R3*: 120O opis w tekście
R4...R11: 10kO
Kondensatory
Cl: 220^F/25V
C2: lOOnF
C3: 100^F/16V
C4: lOOnF
C5, Có: 30pF
C7: 47^F/1ÓV
C8: lOOnF
Półprzewodniki
D1...D16: 1N4148
Dl 7: 1N4007
US1: PIC16F84A zaprogramowany
US2: MAX485
US3: 74HCT244 (74HC244)
US4: DS1813
US5: LM7805
Różne
CON1...CON3: ARK2 (5mm)
CON4: ARK3 (5mm)
CON5, CONÓ: ARK2 (5mm)
JPl, JP2: Goldpin 1x2 + Jumper
Xl: rezonator kwarcowy 4MHz
Podstawki: DIP8- lszt., DIP18-lszt., DIP20-lszt.
48
Elektronika Praktyczna 9/2003
"Klocki" RS485
?
?
?
?
Rys. 16. Rozmieszczenie elementów na płytce karty wejść cyfrowych
Obsługa karty wejść cyfrowych
Karta wyjść cyfrowych ma adres równy znakowi "5" (ASCII). Jakiekolwiek działania dotyczące jej mogą być wykonane po podaniu tego adresu. Karta służy wyłącznie do odczytu danych. Możliwy jest odczyt stanu dowolnego wejścia, jak również wszystkich jednocześnie. Każda komenda rozpoczyna się od znaku "ESC" (klawisz Escape na klawiaturze), następnie należy podać adres karty i rozkaz, jaki ma być wykonany. Zestaw wszystkich komend umożliwiających sterowaniem kartą cyfrowych wyjść oraz przykładowe polecenia i reakcje karty na podane polecenia przedstawiono w tab. 7.
Karta wejść analogowych AVT-536
Karta wejść analogowych ma osiem wejść analogowych zabezpieczonych przed zbyt wysokim napięciem wejściowych i napięciem o odwrotnej polaryzacji. Wejścia te nie są galwanicznie odseparowane od siebie. Nie są także odseparowane od interfejsu RS485.
Karta przetwarza sygnały analogowe z rozdzielczością 10 bitów do postaci cyfrowej. Wbudowany przetwornik A/C ma zakres pomiarowy 0...5 V. Możliwa jest praca z podłączeniem wejścia napięcia odniesienia przetwornika A/C bezpośrednio do napięcia zasilania mikrokontrolera lub do zewnęt-
rznego, bardziej precyzyjnego źródła napięcia referencyjnego o wartości 5 V lub 2,5 V. Odczyt zmierzonego napięcia może być podawany w postaci liczby binarnej (bezpośrednio z rejestru przetwornika A/C) lub przetworzony do postaci dziesiętnej z uwzględnieniem napięcia odniesienia 5 V lub 2,5 V. W takim przypadku wartość zmierzonego napięcia jest podawana z rozdzielczością do dwóch miejsc po przecinku.
Budowa karty
Schemat elektryczny karty wejść analogowych przedstawiono na rys. 17. Głównym elementem karty jest mikrokontroler typu PIC16F874. Odpowiada on za komunikację szeregową oraz steruje pomiarami napięcia. Pracuje z zewnętrznym rezonatorem kwarcowym o częstotliwości 4 MHz. Do zerowania mikrokontrolera w momencie włączania zasilania zastosowano układ DS1813 (US3).
Układ PIC16F874 zawiera przetwornik analogowo-cyfrowy, którego budowę przedstawiono na rys. 18. Przetwornik ma osiem wejść i zapewnia rozdzielczość równą 10 bitów. Zewnętrzne źródło napięcia odniesienia jest dołączane do wejść RA2 i RA3. W przedstawionej karcie możliwa jest praca z zewnętrznym źródłem referencyjnym, jak również z napięciem zasilającym mikrokontroler. Jeżeli zostanie zastosowane zewnętrzne źródło napięcia odniesienia, to liczba wejść zostanie zmniejszona do siedmiu, gdyż jedno wejście analogowe stanie się wejściem napięcia odniesienia. Do przełączania tego źródła służy zworka JP4. Przełącza ona wejście mikrokontrolera RA3 pomiędzy złączem wejściowym a zewnętrznym źródłem odniesienia.
Jeśli zworka JP4 jest w pozycji 1-2, to do portu RA3 jest dołączone napięcie odniesienia z dołączonej diody referencyjnej (D17), jeżeli zaś zworka ta znajduje się w pozycji 2-3, to do portu RA3 jest doprowadzony sygnał ze złącza pomiarowego. Aby zewnętrzne źródło zostało uwzględnione, musi ono jeszcze zostać przełączone przez wewnętrzne przełączniki mikrokontrolera. Do poinformowania mikrokontrolera, z którego źródła ma korzystać, zastosowano zworkę JP3. Jeśli zwor-
ka ta jest rozwarta, to napięciem podniesienia jest napięcie zasilania i możliwy jest pomiar z wszystkich ośmiu wejść. Jeżeli zworka JP3 zostanie zwarta, to źródłem odniesienia będzie zewnętrzne źródło podłączone do portu RA3, a pomiar napięcia będzie możliwy tylko z siedmiu wejść analogowych. Jako źródło napięcia odniesienia można zastosować diodę typu LM385-2,5V - dla napięcia odniesienia równego 2,5 V lub diodę typu LM336-5V -dla napięcia odniesienia o wartości 5 V. Zastosowanie zewnętrznego źródła odniesienia o wartości 5 V zwiększa dokładność pomiaru napięć w porównaniu do wykorzystania takiej samej wartości napięcia, lecz pobranego z wyjścia stabilizatora napięcia. Jeżeli zewnętrzne źródło napięcia odniesienia nie będzie wykorzystywane, to nie należy montować rezystora R9, ponieważ w przypadku braku diody referencyjnej na wejście portu zostanie podane napięcie równe napięciu zasilania (około 9 V), co może spowodować uszkodzenie mikrokontrolera.
Do zabezpieczenia wejść analogowych mikrokontrolera zastosowano diody Dl...Dl6 oraz rezystory R1...R8. Diody powodują ograniczenie napięcia wejściowego do poziomu 5,7 V lub do -0,7 V. W przypadku podania na wejście napięcia spoza tego przedziału, "nadwyżka" napięcia odkłada się na rezystorach R1...R8. Kondensatory C1...C8 wraz z tymi rezystorami stanowią obwody całkujące zakłócenia w sygnale wejściowym.
Do konwersji sygnałów ze standardu RS485 na standard TTL i odwrotnie zastosowano układ MAX485 (US2). Układ US2 został dołączony do portu RC mikrokontrolera, ponieważ na wyprowadzeniach RC7 i RC6 znajduje się wejście i wyjście sprzętowego sterownika transmisji szeregowej, co pozwala na wykorzystanie tego sterownika i zwolnienie z programowej realizacji takiej transmisji. W czasie spoczynku układ ten znajduje się w trybie odbiornika, ponieważ na wejściach DE występuje niski poziom wymuszony przez wyjście mikrokontrolera. Przełączenie w tryb nadawania układu MAX485 następuje tylko na czas wysyłania danych przez kartę wejść analogowych, a następnie zostaje
Elektronika Praktyczna 9/2003
49
"Klocki" RS485
44"
a
44-
s
44-
44-
44-
Ś*Ś
przywróć ony tryb odbioru.
Rezystor R* służy do dopasowania linii i powinien być zamontowany tylko w jednym module, najbardziej oddalonym od nadajnika (konwertera RS232<->RS485).
Zworka JPl służy do zmiany podstawowego adresu, pod którym będzie zgłaszała się karta wejść analogowych. Natomiast zworka JP2 umożliwia powrót do podstawowego adresu urządzenia. Zwor-ki zostały dołączone do portu RB, co umożliwia pracę bez stosowania rezystorów podciągających do plusa, gdyż takie rezystory znajdują się we wnętrzu mikrokontrolera. Sygnały wejściowe należy podawać na złącza CON1...CON4.
Opis zmiany podstawowego adresu karty wyjść cyfrowych zostanie przedstawiony w dalszej części artykułu, gdyż dla wszystkich modułów przebiega tak samo.
Do stabilizacji napięcia zasilającego zastosowano monolityczny stabilizator typu LM7805, natomiast do filtracji napięcia zastosowano kondensatory C9...C12. Dodatkowa dioda D18 zabezpiecza stabilizator przed uszkodzeniem, w przypadku podania napięcia o odwrotnej
Rys. 17. Schemat elektryczny karty wejść analogowych polaryzacji.
Montaż
Karta wejść analogowych została zmontowana na płytce dwustronnej, której schemat montażowy pokazano na rys. 19. Montaż należy rozpocząć od wlutowania rezystorów (bez rezystora R*) i diod. Następnie należy wlutować podstawki pod układy scalone i kondensatory, na końcu należy zamontować złącza CON1...CON6, zworki JPl...JP4 oraz stabilizator. Montaż diody D17 i rezystora R9 jest uzależniony od tego, czy będzie wykorzystywane zewnętrzne źródło napięcia odniesienia. Jeśli źródło takie nie będzie używane, to nie należy ich montować, a zworkę JP4 należy ustawić w pozycji 2-3.
Po zmontowaniu wszystkich elementów do złącza CON5 należy dołączyć napięcie zasilania o wartości około 9 V i wydajności prądowej równej około 100 raA, Do złącza CON6 należy podłączyć przewody magistrali szeregowej RS485, zwracając przy tym uwagę na podłączenie wejścia oznaczonego "A" w odbiorniku z wyjściem o takim samym oznaczeniu w nadajniku.
Obsługa karty wejść analogowych
Karta wejść analogowych ma adres równy znakowi "6" (ASCII). Możliwy jest odczyt napięcia z dowolnego wejścia, jak również ze wszystkich jednocześnie. Każda komenda rozpoczyna się od znaku "ESC" (klawisz Escape na klawiaturze), następnie należy podać adres karty, rozkaz i format odczytu napięcia. Należy pamiętać, że w przypadku zastosowania zewnętrznego źródła napięcia odniesienia, odczytywane wartości z wejścia o numerze "4" (port RA3) będą przypadkowe, gdyż wejście przetwornika analog owo-cyfrowego nie będzie wyprowadzone na zewnątrz mikrokontrolera.
Zestaw wszystkich komend umożliwiających sterowanie kartą cyfrowych wyjść oraz przykładowe polecenia i reakcją karty na nie przedstawiono w tab. 8. Odczyt zmierzonego napięcia może być wykonany na trzy sposoby:
1) Odczyt wartości wskazanej przez przetwornik analogowo-cyf-rowy (parametr "f" to litera "d" lub "D") - po wydaniu komendy pomiaru napięcia z jednego wejścia analogowego zwracane są czte-
50
Elektronika Praktyczna 9/2003
"Klocki" RS485
RA3N3/VRER-
RA2/AN2/VREF-
Przetwon* A/C
vss
PCFG3:PCFG0
Rys. 18. Budowa przetwornika analogowo-cyfrowego zawartego w układzie PIC16F874
ry bajty wskazujące wartość rejestrów przetwornika A/C. Całkowita wartość liczb mieści się w granicach 0...1023, co wynika z rozdzielczości przetwornika. Karta wejść analogowych zawsze zwraca cztery bajty (znaki ASCII), niezależnie od wartości zmierzonego napięcia. Po wydaniu komendy odczytu napięcia, ze wszystkich wejść zwracane są 32 znaki (8 wejść x 4 znaki) w jednym ciągu. 2) Odczyt wartości napięcia, z uwzględnieniem napięcia odniesienia równego 2,5 V (parametr "f" ma wartość "2") - po wydaniu komendy
?
o o
o o
o o
OOOOOOOOOOOOOOOOOOOO
o-TWl-o
oooa
O Ó
9N03
POO
d
3)
pomiaru napięcia z jednego wejścia analogowego zwracane są cztery znaki w formacie "x.xx". Wysłana przez kartę analogową wartość określa wartość zmierzonego napię- cia na podanym wejściu analogowym w woltach, z uwzględnieniem napięcia odniesienia 2,5 V. Zakres mierzonego napięcia wynosi 0...2.50 V. Przykłady odczytów: 0.02, 1.26, 2.47, itd. Po wydaniu komendy odczytu napięcia z wszystkich wejść zwracane są 32 znaki (8 wejść x 4 znaki) w jednym ciągu. Odczyt wartości napięcia,
z uwzględnieniem napięcia odniesienia równego 5 V (parametr "f" jest równy "5") - po wydaniu komendy pomiaru napięcia z jednego wejścia analogowego zwracane są cztery znaki w formacie "x.xx". Wysłana przez kartę analogową wartość określa wartość zmierzonego napięcia na podanym wejściu analogowym w woltach, z uwzględnieniem napięcia odniesienia 5 V. Zakres mierzonego napięcia wynosi 0...5.00 V. Przykłady pomiarów: 0.02, 1.26, 2.47, 3.46, 4.58, 4.99 itd. Po wydaniu komendy odczytu napięcia z wszystkich wejść zwracane są 32 znaki. Krzysztof Pławsiuk, AVT krzysztof.plawsiuk@ep.com.pl
WYKAZ ELEMENTÓW
Rezystory
R1...R8: 10kO R9: lkii R*: 120O Kondensatory
C1...C8: lOOnF
C9: 220^F/16V
CIO: lOOnF
Cli: 100|iF/lóV
C12, C13: lOOnF
C14: 47^F/1ÓV
Cl5: lOOnF
C16, C17: 30pF
Półprzewodniki
D1...D16: 1N5817
D17: LM385-2,5V
Dl 8: 1N4007
US1: PIC16F874 zaprogramowany
US2: MAX485
US3: DS1813
US4: LM7805
Różne
JP1...JP3: Goldpin 1x2 + Jumper
JP3: Goldpin 1x3 + Goldpin
CON1...CON3: ARK2 (5mm)
CON4: ARK3 (5mm)
CON5, CON6: ARK2 (5mm)
Xl: kwarc 4MHz
Podstawki: DIP8-lszt., DIP40-lszt.
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdflwrzesienO3Jitm.
Tab. 8. Zestawienie wszystkich komend umożliwiających sterowanie kartą wejść analogowych
Rys. 19. Rozmieszczenie elementów na płytce karty wejść analogowych
Itodzaj komendy Wydana komenda Reakcja kały wejoese analogowych
Odczyt napięcia znjednego wejścia ESC 6nrnnnfnenter, n-numer wyjścia (1...8), f- format danych( d, 2, 5) Zwraca informację onnapięciu wskazanego wnparametrze "n" wejścia wnformacie podanym wnparametrze "f".
Przykład 1: ESC 6nrndn2nenter odczytuje wartość napięcia na wejściu onnumerze 5nwnformacie dziesiętnym (wartość rejestru przetwornika)
Przykład 2: ESC 6nrn5n2nenter odczytuje wartość napięcia na wejściu onnumerze 5nwnformacie napięcia, znnapięciem odniesienia przetwornika równym 2,5 V.
Przykład 3: ESC 6nrn5n5nenter odczytuje wartość napięcia na wejściu onnumerze Snwnformacie napięcia, znnapięciem odniesienia przetwornika równym 5nV.
Odczyt napięcia znwszystkich wejść ESC Snrnanfnenter, f- format danych (d, 2, 5) Zwraca informację onnapięciach wszystkich wejść, wnformacie podanym wnparametrze T.
Przykład 4: ESC 5nrnan5nerter odczytuje wartości napięć na wszystkich wejściach wnformacie napięcia, znnapięciem odniesienia równym 5nV.
Elektronika Praktyczna 9/2003
51
PROJEKTY
Samochodowy wzmacniacz 25 W w klasie D,
część 2
AVT-525
Wzmacniacze klasy D,
n azywan e także
wzmacniaczami cyfrowymi,
zyskują coraz większą
popularność. Wynika to
głównie z ich wysokiej
sprawności przekraczającej
80% oraz niezłej (i co ważne
coraz lepszej) jakości
dźwięku.
Rekomendacje: dobre
parametry audio predystyn ują
ten wzmacniacz do
zastosowania m.in.
w zestawach kina domowego
lub w samochodach jako
wysokosprawny wzmacniacz
dużej mocy, a także jako
niewielki i lekki wzmacniacz
przenośny z możliwością
zasilania akumulatorowego.
Wzmacniacz powstał na podstawie materiałów zawartych na stronie firmy Zetex: www.zetex.com.
Montaż i uruchomienie
Moduł wzmacniacza należy zmontować na płytce drukowanej zgodnie z rys. 6. Montaż wzmacniacza trzeba rozpocząć od wlu-towania elementów SMD, tj. sterownika U 2 oraz tranzystorów T1...T4 i T9. Do montażu tych elementów potrzebna będzie lutownica z cienkim grotem. Przydać się może także cienka cyna, najlepiej o średnicy 0,25 mm.
Ponieważ sterownik U2 trochę się grzeje, producent wyposażył go we wkładkę odprowadzającą ciepło. By polepszyć odprowadzanie ciepła z tego układu, przed jego wlutowaniem można ją posmarować odrobiną pasty silikonowej, która poprawi odprowadzanie ciepła do odpowiednio wyprofilowanych ścieżek płytki drukowanej. Po przyklejeniu elementów SMD można je zacząć lutować. Do przyklejenia można użyć kleju, który ma długi czas schnięcia. Nie nadają się do tego wszelakie Kropelki. Lutowanie elementów SMD polegać będzie na podgrzaniu i dociśnięciu końcówek elementów do płytki drukowanej. Cyna znajdująca się na punktach lutowniczych powinna wystarczyć do zalutowania końcówek sterownika U2. Użyty do tego celu grot powinien być dobrze
6. Schemat montażowy wzmacniacza
oczyszczony. Aby zwiększyć jakość kontaktu, można każdą końcówkę elementów SMD przyluto-wać, używając cienkiej cyny. W przypadku tranzystorów SMD można użyć większej ilości cyny.
Ponieważ niektóre elementy będą montowane dla wzmacniacza master, a inne dla slave, wspomnę nieco o występujących różnicach montażowych.
Gdy wzmacniacz będzie pracował jako master, należy wlutować zworkę Ml oraz rezystor R22 o wartości 1,5 kQ, natomiast nie należy montować zworek S1...S3 i tranzystora T8. W przypadku wzmacniacza slave należy wlutować zworki S1...S3, tranzystor T8 oraz rezystor R22 o wartości 820Q, natomiast nie należy montować zworki Ml oraz elementów C37, R24 oraz T7. Pozostałe elementy powinny zostać zamontowane. Jeżeli wzmacniacz będzie obciążony głośnikiem lub zestawem głośnikowym o impedan-cji 8Q, kondensatora CIO nie należy montować. Jest on zalecany dla obciążenia o impedancji 4Q.
Trudny do zdobycia może być rezystor pomiarowy R23 o rezystancji 0,01Q. Zamiast niego wystarczy wlutowanie 2...2,5 cm odcinka sreb-rzanki o średnicy 1,4 do 1,6 mm.
Po zmontowaniu wszystkich elementów wzmacniacza i sprawdzeniu, czy nie występują jakieś zwarcia, można przystąpić do jego uruchamiania. Moduły wzmacniaczy powinny być zasilane dobrze filtrowanym napięciem o wartości 12...16 V. Przykładowy schemat proponowanego zasilacza znajduje się na rys. 7.
Po dołączeniu zasilania wzmacniacz powinien od razu "ruszyć" (oczywiście, jeżeli montaż był przeprowadzony prawidłowo i nie ma żadnych zwarć). Jeżeli są montowane elementy R4, R26 i Pl, należy dokonać prostej regulacji. Przy odłączonym sygnale wejściowym i dołączonym woltomierzu do wyjść SA i SB należy regulując potencjometrem Pl uzyskać wskazanie jak najbliższe 0 V. Na tym etapie moduł wzmacniacza można uznać za uruchomiony.
Elektronika Praktyczna 9/2003
53
Samochodowy wzmacniacz 25 W w klasie D
C2
ICOn 2200[J_2200|J
25V
-O+16V
C3
lizatorów U3, biorąc potrzebne napięcia 12 V z kanału master. Należy wtedy połączyć ze sobą punkty wzmacniaczy 12 VO z zasadą
Rys. 7. Schemat elektryczny zasilacza wzmacniacza jeżenia taką samą jak
dla przebiegów trojkąt-
25V
GND
Gdy będzie budowany wzmacniacz o większej liczbie kanałów, pozostałe moduły powinny zostać zbudowane jako układy slave. Jeżeli będzie to wzmacniacz stereo, w module slave nie jest potrzebny tranzystor T8 oraz rezystor R22, a przebieg trójkątny z mastera można dołączyć w miejsce emitera tranzystora T8. Elementy te są niezbędne przy większej liczbie kanałów. Połączenie modułu master z modułami slave jest bardzo proste. Przebieg trójkątny z kanału master, dostępny w punkcie SL, należy dołączyć do punktów MAST kanałów slave. Przebiegi trójkątne z kanału master powinny być rozgałęziane bezpośrednio od niego. W kanałach slave można nie montować stabi-
nych, czyli napięcia do wzmacniaczy slave rozgałęziają się w jednym punkcie, w punkcie 12 VO modułu master. Do modułowego wzmacniacza klasy D można dobudować zewnętrzne obwody realizujące zabezpieczenie termiczne oraz funkcję MUTE. Schematy tych obwodów są dostępne w dokumentacji poświęconej wzmacniaczom D na stronach interneto-wych firmy Zetex.
Na rys. 8 i 9 przedstawiono charakterystyki częstotliwościowe wzmacniacza odpowiednio dla obciążenia 4Q i 8Q. Natomiast na rys. 10 i 11 przedstawiono zależność zniekształceń nieliniowych od mocy wyjściowej, także odpowiednio dla obciążeń: 4Q i 8Q. Rysunki te dokumentują zaletę rozwiązania zaproponowanego

4 3 2 1 0 -1 -2 -3 -4 -5










20 50 100 200 500 1k Zk 5k 10k ZOk f[Hz] 3ys. 8. Charakterystyka częstotliwościowa toru audio dla obciążenia 4O
dBs 4 3 Z 1 0 -1 -i -3 -4 -5




i i 1






Z Ry cic 0 0 S E 0 a a 0 0 0 0 50 100 200 500 1k 2* Sk 10k 2Oi f[Hz] 5. 9. Charakterystyka częstotliwoś->wa toru audio dla obciążenia 8O
90 SO 70 00 50 40 30 20 10










ID ----1 '_ - Ś_Ś
-1 ^

Output Powr
Rys. 10. Zależność zniekształceń nieliniowych od mocy wyjściowej przy obciążeniu oimpedancji 4O

o.w O.M 7 070 z 0.00 a 0.50 ^ 0.40







0.30 0.20 0.10
i
EW J
1W

400 600 BOD
Outpul Power
Rys. 11. Zależność zniekształceń nieliniowych od mocy wyjściowej przy obciążeniu oimpedancji 8O
przez firmę Zetex: przy mocy wyjściowej wynoszącej 1 W zniekształcenia nieliniowe mają wartość ok. 0,05%, a przy mocy wyjściowej 10 W są mniejsze niż 0,15% przy obciążeniu 8Q. To naprawdę duże osiągnięcie dla tak prostego w budowie wzmacniacza klasy D. Marcin Wiązania, AVT marcin.wiazania@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdflwrze sień 03 .htm.
54
Elektronika Praktyczna 9/2003
SPRZĘT
Moduły Bluetooth firmy ConnectBlue
Moduł Bluetooth
Do testów otrzymaliśmy moduły BT zintegrowane z anteną (fot. 1). Są to urządzenia klasy II dysponujące mocą nadajnika ok. 1 mW. Teoretyczny zasięg tych urządzeń wynosi ok. 10 metrów. Moduły wchodzą w skład ze-
Fot. 1. Wyglqd modułu BT firmy ConnectBlue
stawów ewaluacyjnych. Jedyny dostępny interfejs w tym module to port szeregowy (prawdziwy RS232). Trochę szkoda - brakuje chociażby możliwości przesyłania głosu (via PCM) - jak choćby w przypadku starszych modułów Ericssona ROK 101 007. Na płytce modułu BT umieszczono układ ADM3315EACP, który jest odpowiedzialny za konwersję napięć RS232<->TTL (rys. 2).
Po podłączeniu zasilania i portu szeregowego urządzenia sprawiają miłą niespodziankę. Moduły po krótkim procesie konfiguracyjnym samodzielnie tworzą wirtualny port szeregowy (z typową dla Ericssona prędkością transmisji 57600 bd) za pomocą warstwy RFCOMM stosu BT (rys. 3). Producent podaje maksymalną prędkość transmisji danych poprzez RS232 oko-
W poprzednich numerach EP
opisywałem sterowanie
modułów Błuetooth za
pomocą ramek HCł. Redakcja
EP poddała testom nowe
moduły Błuetooth OEM Seńał
Port Adapter 13i firmy
ConnectBiue. Transmisja
danych odbywa się za
pomocą portu szeregowego
i komend AT. Dzięki temu
Błuetooth stał się łatwo
dostępny jak nigdy dotąd.
ło 980 kbd. Trudno te dane zweryfikować ze względu na fakt, że w większości komputerów PC i mikrokontro-lerów maksymalna prędkość UART-a nie przekracza 115200 bd.
Dodatkowo zaimplementowana w modułach warstwa SDP stosu BT pozwala innym urządzeniom na wyszukiwanie określonych typów usług -
Elektronika Praktyczna 9/2003
55
SPRZĘT
Antena
wewnętrzna
Bluetoołh-
RfltfO PBA 31305
(RAN)
J6
Złącze anteny zewnętrznej
Interfejs EBC
Rys. 2. Schemat blokowy modułu BT
np. punkt dostępowy LAN, połączenie dial-up, kabel szeregowy. Zatem są to raczej moduły przeznaczone dla końcowego użytkownika niż konstruktora budującego urządzenia OEM. Moduły także mogą samodzielnie wyszukiwać
- dzięki SDP - określone typy urządzeń i łączyć się z nimi. Moduły pracują w dwóch trybach: przesyłania danych lub konfiguracyjnym.
Konfigurowanie modułów odbywa się nie za pomocą ramek HCI lub L2CAP, ale za pomocą komend AT (ich zestawienie znajduje się w tab. 1), tak jak w modemach analogowych czy GSM. Innymi słowy, warstwy HCI i L2CAP są niedostępne bezpośrednio dla użytkownika. Standardowo, po włączeniu zasilania moduły przełączają się w tryb transmisji danych. Aby przełączyć się w tryb konfiguracji urządzenia, należy przesłać następujący ciąg znaków: /// (trzy znaki o kodzie ASCII - 0x2F).
Jest to tzw. Escape Seąuence - można ją zmienić za pomocą komendy ATS2. Aby ES została poprawnie przyjęta, muszą zostać spełnione określone warunki:
- przed i po wykonaniu ES musi być "cisza" na linii przez min. 1 sekundę,
- sama sekwencja powinna zostać przesłana w czasie krótszym niż 200 ms. Nie polecam wywoływania tego trybu poprzez wpisywanie znaków "z ręki" - nie da się tego zrobić poprawnie, przewidziany czas jest zbyt krótki.


Dane użytkownika
RFCOMM TCS bin SDP
L2CAP

LMP BaseBand
i
Moduł Radiowy

Rys. 3. Uproszczony schemat stosu BT
Tab. 1. Komendy konfiguracyjne modułów BT
Kodcomendy Komentarz
ATS2 Zmienia tzw. Escapechar, który pozwala się przełączyć zntrybu transmisji danych do trybu konfiguracji. Składnia: ATS2= Gdzie kod_znaku - ASCII dziesiętnie
AT*AGDM? Komenda sprawdza bieżący status tzw. Discoverable Modę-tzn. czy moduł jest widoczny dla innych BT. Możliwe do uzyskania odpowiedzi: *AGDM:1 Niewidzialny dla innych OK. *AGDM:2 Wykrywalny, alezoograniczeniami OK *AGDM:3 WOpeiniwykrywalny OK ERROR Błędy
AT*AGDM=, Komenda ustawia Discoverab/e Modę Bluetoottia. Parametr patrz wyżej, natomiast oznacza: 0: Ustawienia nie będą pamiętane po odłączeniu zasilania 1: Ustawienia będą zapisane na stałe
AT*AGCM? Odczyt bieżącego statusu przyjmowania inakceptowania połączeń. Możliwe do uzyskania odpowiedzi: *AGC M :1 Urządzenie nie akceptuje połączeń OK *AGCM:2 Urządzenie akceptuje połączenia OK ERROR
AT*AGCM=
, Ustawienie statusu akceptowania połączeń. Opcja patrz wyżej. Opcja 0: Ustawienia nie będą pamiętane po odłączeniu zasilania 1: Ustawienia będą zapisane na stałe
AT*AGPM? Komenda odczytuje bieżący status trybu parowania modułów. Możliwe do uzyskania odpowiedzi: *AGPM:1 Tryb Non-Pairing OK *AGPM:2 TrybPairing OK ERROR
AT*AGPM=
, Ustawienietrybu parowania modułu. Opcja patrz wyżej. Opcja 0: Ustawienia nie będą pamiętane po odłączeniu zasilania 1: Ustawienia będą zapisane na stałe
AT*AGSM? Odczytanietrybu bezpieczeństwa połączeń. Możliwe do uzyskania odpowiedzi: *AGSM:1 AutentykacjaiDszyfrowaniewyłączone OK *AGSM:2AutentykacjaiDszyfrowanie włączone OK ERROR
AT*AGSM=
, Ustawienietrybu bezpieczeństwa połączeń. Opcja patrz wyżej. Opcja 0: Ustawienia nie będą pamiętane po odłączeniu zasilania 1: Ustawienia będą zapisane na stałe
AT*AGND= Komenda pozwala na odczytanie nazwy zdalnego urządzenia. Nazwa może mieć max. 240 znaków. Parametr jest 48-bitowym adresem BT podanym wD postaci heksadecymalnym. Przykład komendy: at*agnd=00803719bf79 Przykład odpowiedzi: *AGND:"HENI01" OK ERROR Nie znaleziono urządzenia
AT*AGDD=, Wydanie tego polecenia powoduje wyszukiwanie innych BTwD swoim otoczeniu. Parametr : 1: Ograniczone wyszukiwanie 2: Generalne wyszukiwanie Parametr jest czasem trwania wyszukiwania. Jednostką jest 1,28 sęku ndy. Jak się okazuje wDpraktyce =1 jest bardzo często zbyt krótkim czasem poszukiwania. Maks. = 48 Przykład komendy: at*agdd=2,2
56
Elektronika Praktyczna 9/2003
SPRZĘT
Tab. 1 - cd.
Fot. 4. Producent zastosował w module BT nietypowe złqcze
Moduły posiadają jeszcze jedną ciekawą opcję, którą producent nazwał Wi-reless MultiDrop. Opcja ta pozwala na zdalną konfigurację podłączonych w Pi-coNet modułów - oczywiście wyłącznie produkowanych przez ConnectBlue.
Płytka adaptera
Prezentowany w artykule moduł Bluetooth łączy się fizycznie z płytką adaptera za pomocą specjalnego złącza (fot. 4), którego styki są dołączane do odpowiednio przygotowanych punktów kontaktowych na płytce modułu BT (fot. 5). Zaprojektowana płytka adaptera pochodzi od zupełnie innego urządzenia - prawdopodobnie punktu dostępowego LAN (fot. 6).
Trochę to dziwne, że producent nie zaprojektował osobnej płytki do tego zestawu uruchomieniowego, a przecież tak niewiele potrzeba. Wystarczyłoby odpowiednie złącze do modułu BT, trzy diody LED (lub jedna trójkolorowa), układ TTL i złącze DSUB9. Jednak co do technologii wykonania płytki adaptera nie można mieć żadnych zastrzeżeń. Na płytce modułu trójkolorowa dioda LED sygnalizuje jego stan. Kolor zielony oznacza, że BT jest w trybie transmisji danych, ale nie jest jeszcze połączony z żadnym urządzeniem. Kolor pomarańczowy oznacza, że BT jest w trybie konfiguracji. Kolor fioletowy sygnalizuje okre-
Fot. 5. Widok płytki modułu BT od spodu
Kodkcmendy Komertarz
Pizykład odpowiedzi: *AGDD:1 Wykryło jedno urządzenie OK *AGDDE:00S03719bf79,0,1 ,"HEN 101h podaje kolejno BD_Adiess, Local_COD, name_ok, nazwa Uwaga! 1.C0D- ClassOf Device oznacza 24-bi to we pole określające klasę, typ uiządzenia. 2. Dla: name_ok= On- nazwa wykiyte go uiządzeniajestOK name_ok = 1n-uiządzeniezostałowykiyte, ale nazwa nie została piawidłowo odczytana
ATAGBD? Odczytanie paiam etiówuiządzeń,znktóiymi zostało utwoizone połączenie (BD_Adiess, nazwa uiządzenia). Opis polecenia podaje, że opiócz BD_Adiess jiządzeń powinnazostaćzwióconaiównież jego nazwaannie jest. Pizykład odpowiedzi: *AGBD:1 OK *AGBDE:00S03719bea4,0,""
ATAGFP? Odczytanie kodj PIW (maksymalnie 16 znaków), który został jżytypizy łącze ni j w ? paiy j iządze ń. Pizykład odpowiedzi: *AGFP:"1234h OK
A~TAGFP=
, Zapisanie kodj PIW (maksymalnie 16 znaków), który będzie wykoizystany pizy łączeniu sięBTwnpaiy. - ciągznaków'0'...'9' Opcja 0: Ustawienia nie będą pamiętane po odłączeniu zasilania 1: Ustawienia będą zapisane na stałe
ATAGLN? Odczytuje lokalną nazwę uiządzenia. Maks. 240 znaków. Pizykład odpowiedzi: *AGLN:"HENIO SERVER" OK
AT'AGLN=
, Ustawia lokalną nazwę uiządzenia . Maks. długość wynosi 240 znaków. Opcja 0: Ustawienia nie będą pamiętane po odłączeniu zasilania 1: Ustawienia będą zapisane na stałe
ATAGLC? Odczytuje COD. Pizykład odpowiedzi: *AGLC:0 OK
AT'AGLC=
, Ustawia COD uiządzenia (lokalnie). Opcja 0: Ustawienia nie będą pamiętane po odłączeniu zasilania 1: Ustawienia będą zapisane na stałe
AT*AGGMSR=
Odczytuje status uiządzenia(MasteilubSlave)wnpołączeniu.jest BD_Ad-lesszdalnego uiządzenia. Niestety funkcja stal ezwiaca błąd an powinna: 0n-Slave 1 ?Ś Mastei
ATAGMSP? Odczytuje sposób ustanawiania mli uiządzenia wnpołączeniu On- Zawsze chcę być Masteiwnnadchodzącym połączeniu 1 ?Ś Miech diugast 10 na zadecyduje Pizykład odpowiedzi: *AGMSP:0 OK
AT'AGMSP=
, Ustawia sposób ustanawiania loliuiządzenie wnpołączeniu. Paiameti pat iz wyżej. Opcja 0: Ustawienia nie będą pamiętane po odłączeniu zasilania 1: Ustawienia będą zapisane na stałe
AT*ARSS=
,, Wyszukuje usługi na zdalnym uiządzeniu. - BD_Adiess zdalnego uiządzenia. Podanie lokalnego adiesu zawiesza moduł. - typ usługi o On- Piofil portu szeiegowego o 1 ?Ś Gateway, Karta dialupu o 2n- Sieci owy punkt dostepowy - Maks. ilość paiametiów, jakie mogą zostać zwiócone Wnpizypadku, gdy typ usługi jest nieosiągalny na uiządzeniu onBD_Adiesie uzyskujemy "ERROR" Pizykład komendy: at*aiss=00S03719bf79,1,3 Pizykład odpowiedzi: *ARSS:1 OK *ARSRDUN:00S03719bf79,1,1,"Dial-upNetwoiking",1,0
58
Elektronika Praktyczna 9/2003
SPRZĘT
sowe wyszukiwanie innych urządzeń w swoim otoczeniu. Kolor niebieski oznacza połączenie z drugim BT, a mruganie diody w tym kolorze oznacza, że dane są właśnie transmitowane poprzez utworzone wirtualne łącze.
Oprogramowanie
Dołączone do zestawu na płycie CD-ROM oprogramowanie Serial Port Adapter Wizaid pozwala bezproblemowo skonfigurować moduły. Po odpowiednim skonfigurowaniu urządzenia wzajemnie się "widzą" i tworzą wirtualne łącze - zupełnie przezroczyste dla danych. Dołączone przez producenta oprogramowanie działa bardzo stabilnie i nie można mieć do niego żadnych zastrzeżeń.
Załączona dokumentacja do pakietu niestety rozczarowuje. Jest to ksero kilkunastu stron wydruku z dokumentu PDF (za co zresztą przeprasza użytkowników - na piśmie - szef działu dokumentacji firmy Connect-Blue). Jednak wszystkie potrzebne materiały są dostępne na stronie WWW producenta. Tam znajdziemy wszystko, co potrzebne jest do zbudowania własnej aplikacji wykorzystującej moduły BT firmy ConnectBlue.
Testy
Pierwszy test polegał na podłączeniu do komputera PC z zainstalowanym programem terminala jednego modułu, a w drugim zwarto styki 2 i 3 w złączu szeregowym. Badano odporność za zakłócenia, powtórne wznawianie utraconych połączeń wskutek zakłóceń i pracy granicy zasięgu urządzeń. Maksymalna testowana prędkość transmisji danych, z jaką testowano urządzenia, wynosiła 115 kbd. Jako urządzenie generujące zakłócenia wybrano... kuchenkę mikrofalową - ze względu na podobne pasmo pracy urządzenia. Nie stwierdzono żadnego niekorzystnego wpływu źródła zakłóceń na transmisję pomiędzy urządzeniami.
Stwierdzono poważny wpływ odległości urządzeń na szybkość transmisji. Urządzenia znajdujące się na granicy
Tab. 1 - cd.
. Wyglqd zestawu testowego
Kbdkcmendy Komentarz
ATADDM Przełącza moduł zntrybukonfiguracyjnego do trybu transmisji danych.
AT*ADCP=
,, Ustanawiapołączeniedanychzndrugim podobnym urządzeniem (w sensie profilu SPP - Serial Por! Profile). Parametr to BD_Adiess zdalnego uiządzenia, typ usługi (patiz wyżej Ś komenda ATARSS), oznacza kanał seiweiaRFCOMM, na którym dana usługa może być znaleziona. Para-meti: 0: Zdalne uiządzenie może zdecydować, czy będzie Mastei,czySlave. 1: Lokalne uiządzenie musi być Masteiwninicjowanym uiządzeniu. Gdy polecenie zostanie wykonane piawidłowo -otizymamy uchwyt (numei) połączenia.
AT'ADDC=
Powoduje zamknięcie połączenia onpodanym uchwycie
ATADDCP? Powoduje odczytanie, jaki piofil jest ustawiony jako standaidowy dla klienta (mówiąc innymi słowy-jaka usługa jest ustawiona jako standardowa). Dostępne usługi: o On-Piofil portu szeiegowego o 1 ?Ś Gateway, Kartadialupu o 2n-Sieciowy punkt dostepowy Pizykład odpowiedzi: *ADDCP:1 OK
AT*ADDCP=
, Ustawia standaidowy piofil, usługę dla klienta. Paiameti o On-Piofil portu szeiegowego o 1 ?Ś Gateway, Kartadialupu o 2n-Sieciowy punkt dostepowy Opcja 0: Ustawienia nie będą pamiętane po odłączeniu zasilania 1: Ustawienia będą zapisane na stałe
ATADDSP? Powoduje odczytanie, jaki piofil jest ustawiony jako standaidowy dla seiweia (mówiąc innymi słowy-jaka usługa jest ustawiona jako standaidowa). Dostępne usługi: o On-Piofil portu szeiegowego o 1 ?Ś Gateway, Kartadialupu o 2n-Sieciowy punkt dostepowy o 255 - Brak profilu Pizykład odpowiedzi: *ADDSP:255 OK
A~PADDSP=
, Ustawia standaidowy piofil, usługę dla seiweia. Paiameti o On-Piofil portu szeiegowego o 1 ?Ś Gateway, Kartadialupu o 2n-Sieciowy punkt dostepowy o 255 - brak profilu Opcja 0: Ustawienia nie będą pamiętane po odłączeniu zasilania 1: Ustawienia będą zapisane na stałe
ATADMRP? Powoduje odczytanie maks. liczbę połączeń, jaką moduł jest wnstanie obsłużyć. Pizykład odpowiedzi: *ADMRP:3 OK
ATADNRP? Powoduje odczytanie obecnej liczby połączeń. Pizykład odpowiedzi: *ADNRP:1 OK
AT*ADRDRP=
Odczytuje nazwę uiządzenia injegoadies, które jest połączone, które korzysta znkanałunr Przykład komendy: AT'ADRDRP=0 Przykład odpowiedzi: 'ADRDRP:00S03719bf79,7,0,"HENIO1h OK
ATADIT? Pozwala na odczytanie wartości czasu, po którym moduły się rozłączą w n przypadku braku aktywności (żadne dane nie są przesyłane). Czas wyrażony jest wnminutech. Przykład odpowiedzi: *ADIT:0 OK Oznacza, że rozłączanie zostało wyłączone
AT'ADIT=
, Ustawia wartość czasu wy rażonąwnminutach(1 ...255). Po tym czasie wnprzypadku braku transmisji danych- połączenie zostanie przerwane. Opcja 0: Ustawienia nie będą pamiętane po odłączeniu zasilania 1: Ustawienia będą zapisane na stałe
ATADWM? Pozwala sprawdzić, czy opcja zdalnego konfigurowania modułów (Wireless MultiDrop n)zostaławłączona. Przykład odpowiedzi: *ADWM:1,0 OK. Pierwsza cyfra: 0: Opcja wyłączona 1: Opcja włączona
60
Elektronika Praktyczna 9/2003
SPRZĘT
Tab. 1 - cd.
Kodkomendy Komentaiz Druga cyfra: 0: Dane odebrane będą przesyłane dalej tylko do hosta 1: Dane odebrane będą przesyłane do każdego podłączonego urządzenia
AT*AILBA? Pozwala odczytać adres BD_Adress lokalnego urządzenia. Przykład odpowiedzi: *AILBA:00803719bea4 OK
AT* AI LVI? Pozwala odczytać wersję oprogramowania na lokalnym urządzeniu. Przykład odpowiedzi: AILVI:"connectBlue","1.1 [17:28:10, Feb 10 2003]","3.20","R1F","EricssonMicroelectronics" OK
AT*AMRS? Pozwala odczytać parametry portu szeregowego. Przykład odpowiedzi: *AMRS:8,1,1,1,1 OK Pierwsza cyfra to prędkość transmisji, poniżej możliwe wartości: 1: 300 bd, 2: 1200 bd, 3: 2400 bd, 4: 4800 bd, 5: 9600 bd, 6:19200 bd, 7: 38400 bd, 8: 57600 bd, 9:115200 bd, 10: 230400 bd, 11: 460800 bd, 12: 921600 bd Druga cyfra to ilość bitów danych: 1:8n bitów, 2:7nbitów, 3:6nbitów, 4:5D bitów Trzecia cyf rato ilość bitów stopu: 1:1 ? bit stop, 2:2nbity stopu Czwarta cyfra to parzystość: 1: bez parzystości, 2: ODD, 3: EVEI\I Piąta cyfra to kontrola przepływu (flowcontrol): 1: CTS/RTS 2: Brak kontroli przepływu
AT*AMSIT? Pozwala odczytać typ interfejsu szeregowego 1:RS232 2:RS422 3:RS485 Przykład odpowiedzi: *AMSIT:1 OK
AT*ACF? Pozwala odczytać adresy innazwy urządzeń, znktórymi lokalny BT będzie się łączył lub przyjmowałod nich połączenia Przykład odpowiedzi: *ACF:2 OK *ACFD:00803719bf79,"HENIO1" *ACFD:006057347ff6,"Kicekz*?bek" Komenda zwraca, ile jest zarejestrowanych takich urządzeń oraz zwraca ich parametry (nazwę iDBD_Adress).
AT*ACAF=
, Pozwala na edycje parametrów lub dodanie nowych urządzeń, znktórymi lokalny BT będzie się łączył, etc. oznacza BD_Adress nazwa urządzenia (max. 240 znaki 8nbit)
AT*ACDF=
Pozwala na usunięcie urządzeń iazD listy, znktórymi lokalny BT będzie się łączył, etc. Przykład komendy: AT*ACDF=006057347ff6 Przykład odpowiedzi: OK
AT*ACCB? Pozwala sprawdzić czy zdalna konfiguracja poprzez BTjest możliwa: Przykład odpowiedzi: *ACCB:1 OK 0: Nie jest dozwolona 1: Jest dozwolona
AT*ACCB=
, Komenda pozwala włączyć lub wyłączyć możliwość zdalnej konfiguracji urządzenia. Opcja 0: Niejestdozwolona 1: Jest dozwolona Opcja 0: Ustawienia nie będą pamiętane po odłączeniu zasilania 1: Ustawienia będą zapisane na stałe
AT*AMPM=
, Pozwala ustawić nowe tryby oszczędzania energi przez BT. Opcja oznacza: 1: Oszczędzanie energii wyłączone. BT jest zawsze online. BT nigdy nie przejdzie wntryb uśpienia lubzatrzymania. 2: Tryb standardowy - BT będzie przechodziłwntryb uśpienia, kiedy tylko będzie to możliwe. 3: BT będzie przechodziłwntryb uśpienia, lub uśpienia, kiedy tylko będzie to możliwe. 4D- 255: Zarezerwowane. Opcja 0: Ustawienia nie będą pamiętane po odłączeniu zasilania 1: Ustawienia będą zapisane na stałe
zasięgu (ok. 4 m wewnątrz budynku) potrzebowały około 67,8 sekundy na transmisję porcji danych. Ta sama porcja danych, gdy urządzenia znajdowały się w odległości 1 metra od siebie, była przesłana w czasie średnio 61,1 sekundy. Jak widać czas transmisji zmienił się o około 11 procent. Dłuższy czas transmisji był spowodowany najprawdopodobniej koniecznością retransmisji pakietów. Prawdopodobnie większa moc nadajników rozwiązałaby problem.
Maksymalna odległość pomiędzy dwoma urządzeniami (moduły nie zrywały połączenia i potrafiły wykrywać się w swoim otoczeniu) w terenie otwartym wynosiła około 9 metrów. W warunkach mieszkalnych (10 cm ściany wykonanej z żelbetu) cztero-metrowa odległość stanowiła już spory problem dla urządzeń - nie wykrywały się i nie można było ustanowić połączenia.
Niezbyt pomyślnie wypadły próby z telefonem komórkowym Nokia 631Oi wyposażonym w moduł BT. Moduły BT ConnectBlue widziały BT w Nokii i potrafiły odczytać jego nazwę, ale nie były dla niej widoczne. Prawdopodobnie wina leży po stronie oprogramowania telefonu.
Pomyślnie przebiegły testy z wykorzystaniem modułów Bluetooth jako medium przy synchronizacji danych między komputerem PC a PDA. Jako PDA użyłem palmtopa PALM Vx. Wirtualne łącze bezprzewodowe zachowywało się jak zwykły kabel szeregowy.
Podsumowanie
Moduły BT firmy ConnectBlue są ciekawym rozwiązaniem - wykorzystującym nowe chipy z Ericssona pracujące według specyfikacji v 1.1. Moduły pracują bardzo stabilnie i są odporne na zakłócenia - to ich duży plus. Na dodatkową uwagę zasługuje również zewnętrzna antena. Ciekawie rozwiązano również konfigurację modułów, wykorzystując komendy AT.
Na minus można zaliczyć jakość dostarczonej w zestawie dokumentacji oraz płytkę adaptera sprawiającą wrażenie, że cały produkt został przygotowany w pośpiechu i na ostatnią chwilę. Henryk Nowak
Dodatkowe informacje:
[l] http://www.connectblue.com [2] h ttp :llwww. bluetooth.c om
Dodatkowe informacie
Dystrybutorem firmy ConnectBlue jest ACTE Sp. z o.o.,tel. (22) 33-60-200, www.acte.com.pl.
Elektronika Praktyczna 9/2003
61
PROGRAMY
Protel
Przełom na rynku narzędzi EDA dla elektroników, część 7
Przedstawiamy ostatnią część w cyklu artykułów, w którym prezentujemy możliwości Protela DXP. Tym razem skupiamy się na przybliżeniu narzędzi pomocnych w ostatnich etapach
realizacji projektów.
Końcowym etapem procesu projektowania jest wygenerowanie dokumentów wyjściowych, potrzebnych do produkcji i sprzedaży produktu. Może to być zestaw schematów dostarczany z urządzeniem, zestawienia materiałów potrzebnych do montażu, pliki Gerber, pliki wierceń (NC drill] i inne, niezbędne do produkcji płyty drukowanej. Mogą to być także rysunki złożeniowe i inne pliki pomocne podczas testowania, ewentualnie przebiegi uzyskane podczas symulacji, wchodzące w skład dokumentacji urządzenia.
Protel DXP pozwala generować różne pliki wyjściowe indywidualnie, przy użyciu odpowiednich poleceń dostępnych w menu File, Design i Reports. Generowanie plików wyjściowych może odbywać się również za pomocą tzw. plików Oniput Job. Plik 0'j.tpu.t Job przechowuje zestaw konfiguracji dokumentów wyjściowych, takich jak wydruki, pliki CAM, raporty czy listy połączeń. Plik Dulpui Job może zawierać dowolną kombinację ustawień dokumentów wyjściowych, a projekt może zawierać dowolną liczbę plików Ouiput Job. W ten sposób możemy utworzyć własne zestawy dokumentów wyjściowych, najlepiej odpowiadające specyfice i potrzebom naszej firmy. Przykładowy zestaw dokumentów wyjściowych, wchodzący w skład pliku Ouiput Job, pokazano na rys. 1.
Parametry każdego z dokumentów wyjściowych, wchodzących w skład zestawu, możemy konfigurować według własnych
potrzeb. Dostęp do opcji konfiguracyjnych uzyskujemy poprzez menu kontekstowe, dostępne pod prawym klawiszem myszki, jak widać na rys. 2. Przykładowe zestawy opcji konfiguracyjnych, jeden dla wydruku płyty PCB, drugi dla plików Gerber, pokazano na rys. 3 i 4.
Generowanie poszczególnych dokumentów wyjściowych możemy uruchomić wybiórczo dla każdego z nich - za pomocą opcji Run Selected z menu Tools, lub wszystkie razem - za pomocą opcji Run Batch. Wydruki przed wykonaniem możemy podejrzeć (ich widok odpowiada dokładnie temu, co uzyskamy na papierze], ustawić skalę drukowania, kolory, orientację na kartce i inne parametry oraz skierować na dowolną drukarkę zainstalowaną w systemie Windows. Pliki typu CAM mogą być otwierane automatycznie w edytorze CAM zintegrowanym w DXP -CAMtastic, który pozwala na ich dalszą obróbkę, podgląd lub weryfikację.
Kon figurowa nie wyglądu raportów
Każda firma ma własne wymagania co do zawartości i wyglądu raportów. Aby sprostać zróżnicowanym potrzebom, Protel DXP posiada w pełni konfigurowalny generator raportów.
Niektóre raporty, jak np. zestawienie elementów {Bili of Materials), mogą być konfigurowane w Protelu za pomocą narzędzia nazwanego Report Manager. Ta funkcja pozwala posortować i pogrupować dane generowane w trakcie tworzenia raportu. Ponadto, możemy wyeksportować
dane z raportu w różnych formatach, jak np. Microsoft Excel czy HTML lub wykorzystać szablon programu Excel do formatowania eksportowanych danych.
Report Manager jest dostępny pod pozycją Bili of Materials w menu Reports lub z poziomu pliku dokumentów wyjściowych (*.Ou.tJob). Na rys. 5 pokazano przykładową konfigurację raportu zestawienia elementów (BOM]. Informacje widoczne w okienku Report Manager to dane pochodzące z parametrów wszystkich elementów w projekcie. Używając tego narzędzia, możemy włączyć wybrane informacje do swojego raportu.
Kon figurowanie raportu odbywa się w kilku etapach:
- Wybór parametrów, które mają być pokazane w zestawieniu, przez zaznaczenie opcji Show w kratkach obok wybranych parametrów w kolumnie po lewej stronie okienka.
- Ustawienie kolumn w głównej części okna, za pomocą myszki, przez kliknię-cie lewym przyciskiem i przesuwanie.
- Pogrupowanie danych według określonych kolumn, przez przeciągnięcie wybranych kolumn z listy Other Colurans na listę Grouped Columins. Dane mogą być grupowane według kilku parametrów jednocześnie. Przykładowo, jeśli pogrupujemy dane według wartości, wszystkie elementy o tej samej wartości znajdą się w jednym wierszu na zestawieniu. Jeśli dodatkowo przesuniemy parametr Fooiprini na listę Grouped Co-iunm, wszystkie elementy, które mają tę samą wartość (parametr Vo/ue] i obudowę (parametr Footprini] będą zgrupowane w jednym wierszu na zestawieniu.
On
Rys. 2
Rys. 3
Rys. 4
62
Elektronika Praktyczna 9/2003
PROGRAMY
z ,**
z
Rys. 5
- Określenie kierunku sortowania danych (w górę, w dół] przez kUknięcie nagłówka kolumny. Ponadto możemy zastosować filtrowanie według określonego kryterium, które wprowadzamy po kliknięciu niewielkiego symbolu strzałki w nagłówku kolumny.
Po skonfigurowaniu danych, raport jest gotowy do wygenerowania. Można to wykonać na dwa podstawowe sposoby - używając przycisku Expori lub przycisku Excsl.
Opcja Expori generuje raport w jednym z wybranych formatów, takich jak: arkusz programu Microsoft Excel {*.xls), dane rozdzielone przecinkami - format CSV [*.csv], HTML [*.htznl), arkusz w formacie XML {*.xznl) lub dane tekstowe rozdzielone znakami tabulacji {*.ixt}.
Opcja Excsl pozwala wygenerować i otworzyć raport bezpośrednio w arkuszu Excel z automatycznym zastosowaniem szablonu przygotowanego w formacie Excel. Zastosowanie własnego szablonu, wykonanego w programie Excel, pozwala komponować wyrafinowane raporty, zarówno pod względem graficznym, jak i zawartości danych. Przykładowe zestawienie, otrzymane na bazie szablonu Excel, pokazano na rys. 6.
Przed przystąpieniem do tworzenia własnych szablonów najlepiej zapoznać się z przykładami dostarczonymi z programem, aby sprawdzić w jaki sposób dane raportu są mapowane na pola w szablonie Excel. Przykładowe szablony znajdują się w katalogu Altiu.in\Teinplates. Wszystkie szablony z tego katalogu automatycznie pojawiają się na liście rozwijanej Teznplate w oknie konfiguracji raportu Raport Manager.
Ob sług a d wóc h mon ito ró w
Mimo że konfiguracje wielomonitorowe nie są zbyt popularne, o zaletach wykorzystania dodatkowego monitora nie trzeba długo przekonywać. Pracując z dużym i skomplikowanym projektem, każda dodatkowa powierzchnia ekranu może się przydać.
Protel DXP w pełni wykorzystuje zalety konfiguracji z dwoma monitorami. Jeśli mamy tak wyposażony komputer, możemy kierować dokumenty do dowolnego monitora lub używać drugiego monitora do wyświetlania innych informacji, jak np. panele Ob-ject Inspector lub List.
Aby umieścić dokument w drugim oknie, wystarczy kliknąc prawym przyciskiem na zakładce dokumentu i wybrać opcję Opsn in New Window. Tak utworzone okno można wyświetlić na drugim monitorze. Alternatywnie, dokumenty pomiędzy ekranami możemy przemieszczać, przesuwając je myszką po kilknię-ciu zakładki u góry dokumentu.
Współpraca z innymi programami
Protel DXP to nie jedyny program EDA na świecie. Pomimo że Protel zapewnia komplet narzędzi potrzebnych do wykonania prawie każdego projektu, zawsze może zajść potrzeba skorzystania z plików przygotowanych w innym programie lub eksportu naszego projektu w obcym formacie. Dlatego Protel DXP obsługuje eksport oraz import w formatach wielu innych programów:
Elektronika Praktyczna 9/2003
63
PROGRAMY
Rys. 7
Schematy
- Import/eksport schematów i bibliotek programu Orcad Capture V9 i V7.
- Import/eksport plików AutoCAD DXF i DWG w różnych wersjach.
- Import/eksport schematów i bibliotek programu P-CAD. PCB
- Import plików PCB oraz bibliotek programu Orcad layout V9.
- Import plików programu PADS do wersji V3.5.
- Import/eksport plików AutoCAD DXF i DWG w różnych wersjach.
- Import/eksport plików P-CAD PCB.
- Import plików RTE oraz eksport plików DSN Specctra. Listy połączeń (netlist)
Protel obsługuje wiele formatów list połączeń, w tym m.in. Protel, EDIF, SPICE, VHDL i Multiwire.
Środowisko DXP pozwala na zainstalowanie dodatkowych generatorów list połączeń . Na stronach i n te me to wy ch http;// www.nVisags.cozn oraz http:ł/www.Protel.cozn możemy znaleźć i pobrać nowe generatory list połączeń, obsługujące formaty programów Intergraph, Orcad, PADs i Tango.
CAMtastic
Protel DXP posiada zintegrowany system CAM, który pomaga przygotować i sprawdzić zaprojektowaną płytę, zanim wyślemy ją do wytwórni obwodów drukowanych. CAMtastic DXP oferuje zestaw narzędzi do wszechstronnej weryfikacji i edycji płyty PCB, pod kątem przygotowania do produkcji. Program potrafi importować oraz eksportować dane w wielu formatach. Może służyć jako przeglądarka plików CAM, a także wspomagać przetwarzanie plików Gerber do formatu Protel PCB. Pełna integracja w środowisku DXP ułatwia wymianę danych i obsługę programu. Przykładowy widok okna edycyjnego z kilkoma paskami narzędziowymi i panelem CAMtastic pokazano na rys. 7.
CAMtastic DXP stanowi integralną część pakietu Protel DXP, ale jest dostępny również jako osobny program w ofercie firmy Altium. Szerszy opis możliwości tego ciekawego narzędzia to temat na osobny artykuł, do lektury którego zapraszamy już wkrótce.
Co dalej?
Przez kilka miesięcy staraliśmy się przybliżyć możliwości najnowszego Protela DXP. Mam nadzieję, że udało się osiągnąć cel i pokazać najważniejsze cechy programu, a także zwrocie uwagę na te funkcje, które uległy istotnej zmianie w stosunku do wersji wcześniejszych. Wiele tematów zostało pominiętych, ale nie sposób opisać ze szczegółami wszystkie cechy tak potężnego narzędzia, jakim jest Protel DXP.
W przeciwieństwie do serii artykułów, która właśnie dobiega końca, program jest ciągle rozwijany. Najnowszy Protel DXP Ser-vice Pack 3 przynosi nowe możliwości, w myśl idei firmy Altium, aby zawsze dostarczać projektantowi narzędzie najlepsze, odpowiadające rosnącym ciągle potrzebom i aktualnym trendom w elektronice. Narzędzie kompleksowe i jednocześnie takie, które pozwoli skoncentrować się na pracy twórczej, a nie na jego obsłudze - od pomysłu, poprzez projekt, aż do wykonania.
Grzegorz Witek, Evatronlx
Dodatkowe informacje
Dodatkowe informacje można uzyskać w firmie Evatronix, www. evatromx. com.pl.
Elektronika Praktyczna 9/2003
65
PODZESPOŁY
Wysokonapięciowe przetwornice DC/DC
Przetwornice prezentowane w artykule są, w odróżnieniu od większości dotychczas przez nas opisywanych, nieco nietypowe: na ich wyjściu można uzyskać napięcie o wartości nawet 2 kV!
Szwajcarska firma Traco Power jest producentem rzadko spotykanych wśród konkurentów przetwornic DC/DC z wyjściem wysokonapięciowym. Przetwornice z rodziny MHV/ SHV o mocy wyjściowej 2...2,5 W są oferowane w wielu różnych wykonaniach (tab. 1) o napięciach na wyjściu od 180 V aż do 2 kV. Tak wysokie napięcia wyjściowe są uzyskiwane z napięcia wejściowego o wartości nominalnej 12 V. Jakkolwiek napięcia o tak dużych wartościach są dość rzadko stosowane we współcześnie projektowanych urządzeniach elektronicznych, ale w wielu aplikacjach są nadal stosowane różnego rodzaju czujniki próżniowe (np. liczniki Geigera-Muellerą detektory noktowizyjne). Zapewnienie im odpowiedniego zasilania bywato kłopotliwe, ale możliwości i parametry przetwornic prezentowanych w artykule większość kłopotów zlikwidowało.
Więcej niż przetwornica...
Możliwości przetwornic MHV/SHV są większe niż standardowych przetwornic DC/DC. Dzięki wyposażeniu ich w wejścia służące do regulacji napięcia, można je stosować jako programowane (w bardzo szerokim zakresie) źródła napięcia. Napięcie wyjściowe można regulować w zakresie 0.100%, a zgodnie z informacjami podanymi w nocie kata-
logowej, regulacja jest w całym zakresie liniowa. W zależności od wymagań użytkownika napięcie wyjściowe może być regulowane za pomocą potencjometru (jak to pokazano na rys. 1) lub zewnętrznego źródła napięcia odniesienia (O...4VDC, rys. 2), dzięki czemu napięcie wyjściowe może być regulowane np. za pomocą przetwornika C/A z wyjściem napięciowym.
Drugą interesującą cechą prezentowanych przetwornic jest możliwość ich zdalnego włączania i wyłączania. Do tego celu służy wejście ON/OFF, które wyposażono w wewnętrzny rezystor "podciągający".
Parametry
Pomimo bardzo dużego współczynnika powielania napięcia, prezentowane przetwornice charakteryzują się bardzo dobrymi parametrami. Dokładność ustawienia napięcia na wyjściu nie jest gorsza niż ą5%, jego stabilność w funkcji zmian napięcia wejściowego wynosi ą0,03%, natomiast


/ /
/
/
R1 O On* R2 :
Wartości razyitancj
ShOtw OOtm
Cl
_ 47 pF -Vln
MHVSert 180, 300, 350 Uoiri
_________4 3
R?f R1
HVol
tam Cum
4700 pFL
Rys.
VR-9kOhm
Tab. 1. Zestawienie nic MHV/SHV podstawowych parametrów przetwór-
Typ Napięcie wjnbme MateymałTy
MHV12-18OS15P 12VDC 0. .f180VDC 15 mA
MHV12-18OS15N 10 8...13,2VDC 0 ..-180VDC 15 mA
MHV12-3OOS1OP 0. .f300VDC 10 mA
MHV12-3OOS1ON 0 .-300VDC 10 mA
MHV12-350S07P 0. .f350VDC
MHV12-350S07N 0 .-350VDC TDrA
MHV12-0.5K6000P 0. .f500VDC
MHV12-0.5K6000N 0 .-500VDC BDnft

MHV12-1.0K2000P 12VDC 0.. f1000VDC azrrń
MHV12-1.0K2000N 10 8...16,5VDC 0. .-1000VDC 3Dnft
MHV12-1.5K1300P 0. f1500VDC 1,3 mA
MHV12-1.5K1300N 0. .-1500VDC 1,3 mA
MHV12-2.0K1000P 0.. f2000VDC 1orA
MHV12-2.0K1000N 0. .-2000VDC 1QT^

SHV12-0.5K6000P 12VDC 0. .f500VDC
SHV12-0.5K6000N 10 8...13,2VDC 0 .-500VDC BDnft

SHV12-1.0K2000P 12VDC 0.. f1000VDC azrrń
SHV12-1.0K2000N 0,8.-16,5 0. .-1000VDC 3Dnft
SHV12-1.5K1300P 0.. f1500VDC 1,3 mA
SHV12-1.5K1300N 0. .-1500VDC 1,3 mA
SHV12-2.0K1000P 0.. f2000VDC 1QT^
SHV12-2.0K1000N 0. .-2000VDC icmft
Elektronika Praktyczna 9/2003
PODZESPOŁY
100%
I 80%
f 60% o
ż 40% 20%
1V 2V 3V
Napięcie regulacyjne
4V
C1
- 47 nF
-Vin
MHV Serles 180, 300, 350Vout
Vref
= C2 4700 pF
Rys. 2
Napięcie regulacyjne 0...4 VDC
przy zmianie obciążenia od 0 do 100% napięcie wyjściowe zmieni się maksymalnie o ą0,08%. Niewiele można zarzucić stabilności termicznej napięcia wyjściowego. Jego wartość może się zmienić co najwyżej o ą0,01%/C.
Wbrew oczekiwaniom, także pulsacje napięcia wyjściowego są niewielkie - wwersjach o napięciu wyjściowym 180, 300 i 350 V ich amplituda nie przekracza 30 mVpp, a w wers-
jach 1 kV, 1,5 kV i 2 kV jest znacznie mniejsza i wynosi 8 mVpp. Przetwornice MHV/SHV osiągają (w zależności od modelu i obciążenia) sprawność energetyczną 60...65%. Są one przystosowane do pracy w zakresie temperatur -1O... + 6OC, natomiast maksymalna dopuszczalna temperatura ich obudowy nie powinna przekroczyć 95C. Bezpieczeństwo użytkowania i trwałość przetwornic zapewnia wbudowany w nie system zabezpieczenia przed przetęzeniami, który uaktywnia się przy prądzie obciążenia o wartości 105% nominalnego prądu wyjściowego. Czas trwania zwarcia na wyjściu nie mawptywu na trwałość przetwornicy.
Rozwiązania techniczne zastosowane przez producenta umożliwiły udzielenie 2 lat gwarancji na prezentowane przetwornice, a przewidywany czas bezawaryjnej pracy (MTBF) wynosi co najmniej 300 000 godzin.
Podsumowanie
Zcatą pewnością aplikacje, dla jakich opracowano przetwornice z wyjściami wysokonapięciowymi, należą do awangardy współczesnej elektroniki. Dobrze się jednak stato, że ktoś pomyślał o takich "niszowych" projektach, zwłaszcza że nadal w wielu przypadkach lampy (w różnych, często nietypowych odmianach) są niezastąpione. Andrzej Gawryluk
Dystrybutorem firmy Traco Power jest Amtek spoi. s r.o., tel. (22) 874-02-34, amtek@amtek.pl, www.amtek.cz.
68
Elektronika Praktyczna 9/2003
NA CD KATALOGI FIRM: ADYANTECH, M0XA TECHNOLOGIES, INFINEON
g Międzynarodowy magazyn elektroników konstruktorów
9/2003
MINIATURO'.
PROGRAMO
PROGRAMATj
PROGRAMA1
SAMOCHODG
i
AMATORSKI
wrzesień 15 zł 50 gr (w tym 7% vat)
f
EK CYFROWY Z KLU
iENERATOR NIETYPO
IKROKONTROLEROW,
B MIKROKONTROLBH
ILOSKOP CYFROWY

a M
wraciii>
:ik do jaj
.KLOCKI
RS485
'W)
iRZA
tli
WIELOPOZIOM'
* MENU W 4

\ Ś
STEROWNIKłllR
SIMATIC S7-20J REGULATORY P'R
A GENERACJA
CD IMI lS40-TftS OdAf 1TSS90
771640
769039
09>
PRICE: B EUR
Niezwykły minutnik do jaj ^
Projekt opracowany z myślq o smakoszach elektroniki: wydaje się wręcz niewiarygodne, że lampy potrafiły równie wiele jak niektóre scalone "krzemowe potwory" (cytat z autora projektu). Słr. 35.
Miniaturowy zamek cyfrowy z kluczem elektronicznym
Projekt nieco odtwórczy, ale za to ultraminiaturowy. Taki zamek szyfrowy zmieści się wszędzie, pobiera niewiele energii, a działa równie pewnie jak jego znacznie więksi "bracia". Słr. 31.
Amatorski oscyloskop A cyfrowy
'51 "mózgiem" oscyloskopu? Niemożliwe? Możliwe: zapraszamy na słr. 25.
Programator mikrokontrolerow AVR i AT89S8252 v
Kolejny w EP programator, który opracowaliśmy z myślq o użytkownikach popularnych mikrokontrolerow '51 programowanych w systemie. Jego możliwości sięgajq nieco dalej niż aktualna oferta firmy Atmel, co czyni z niego perspektywiczne narzędzie. Słr. 21.
"Klocki" RS485
W kolejnej części RS-owych klocków przedstawiamy karty wejść analogowych i cyfrowych. Słr. 47.
Samochodowy wzmacniacz 25 W w klasie D
Na słr. 53 przedstawiamy drugq część opisu samochodowego wzmacniacza audio, pracujqce-go w klasie D.
Sterowniki
programowalne
SIMATICS7-200
Artykułem na słr. 126 zaczynamy cykl, w którym przybliżymy Czytelnikom sterowniki PLC z rodziny > S7-200 firmy Siemens.
V Odtwarzacz MP3 z układem STA013
Ostatniq część artykułu o odtwarzaczu MP3, charak-teryzujqcym się oryginalnq budowq, przedstawiamy na słr. 45.
Miniprojekty A
Na słr. 71 i 72 przedstawiamy dwa Miniprojekty: programowany generator nietypowych dźwięków i interfejs Dejana do programowania telefonów komórkowych Nokia.
Regulatory procesowe firmy Omron
Regulatory procesowe firmy Omron przedstawiamy na słr. 119. T
Elektronika Praktyczna 9/2003
Adam-8000 - nowa ^ generacja systemu sterowania
Najnowsze opracowanie firmy Advantech przedstawiamy na słr. 122.
Protel DXP - przełom na A rynku narzędzi EDA dla elektroników
W tym miesiqcu kończymy prezentację możliwości Protela DXP, skupiajqc się na narzędziach służqcych do przygotowywania dokumentacji produkcyjnej. Słr. 62.
Moduły Bluetooth firmy ConnectBIue
W artykule na słr. 55 przedstawiamy nowoczesne moduły Bluetooth, dzięki którym samodzielne budowanie urzqdzeń przystosowanych do bezprzewodowej komunikacji w tym standardzie stało się nadzwyczaj łatwe.
IKA
Nr 9(129)
__ _ __^_ _ _ wrzesień 2003
f Projekty
Centrala alarmowa z powiadomieniem GSM........................14
Programator mikrokontrolerów AVR i AT89S8252....................21
Amatorski oscyloskop cyfrowy...................................................25
Miniaturowy zamek cyfrowy z kluczem elektronicznym ........31
Niezwykły minutnik do jaj............................................................35
Programator USB mikrokontrolerów ATmega - ISP,
cześć 2..........................................................................................41
Odtwarzacz MP3 z układem STA013, cześć 2 .........................45
"Klocki" RS485,część4...............................................................47
Samochodowy wzmacniacz 25 W w klasie D, cześć 2..........53
Miniprojekty
Programowany generator nietypowych dźwięków...............71
Interfejs Dejana............................................................................72
5rogram5
Protel DXP - przełom na rynku narzędzi EDA
dla elektroników, cześć 7...........................................................62
Podzespoły
Wysokonapięciowe przetwornice DC/DC...............................óó
Sprl
Moduły Bluetooth firmy ConnectBIue..........~.............................55
Kurs
Wielopoziomowe menu w C .....................................................77
Podstawy projektowania systemów
mikroprocesorowych, cześć 7...................................................81
Automatyka
Regulatory procesowe firmy Omron ......................................119
Adam-8000 - nowa generacja systemu sterowania............122
Sterowniki programowalne SIMATIC S7-200, cześć 1 ...........126
Projekty Czytelników
Bascomowy amplituner..............................................................85
Z kraju i ze świata........................................................107
Biblioteka EP.................................................................11J
Kramik+Rynek................................................................89
Listy...................................................................................95 gj
Ekspresowy Informator Elektroniczny.....................1031
Wykaz reklamodawcow............................................
Elektronika Praktyczna 9/2003
MINIPROJEKTY
Wspólną cechą układów opisywanych w dziale "Miniprojekty" jest łatwość Ich praktyczne] 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 scaionych, 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,
Programowany generator nietypowych dźwięków
Generator umożliwia
wygenerowanie sygnału
akustycznego
naśladującego dźwięki
z filmów
fantastycznych.
Przypominają one
"rozmowę" robotów lub
komputerów. Ze względu
na interesującą
kombinację dźwięków
może być wykorzystany
w dzwonku do drzwi
lub w syrenie
alarmowej.
Rekomendacje:
projekt dla
p o czą tk u ją cych
elektroników - na jego
przykładzie można się
sporo nauczyć, budując
przy okazji efektowny
dzwonek do drzwi.
Generator wykonano na znanym Czytelnikom time-rach NE555 oraz liczniku dziesiętnym CMOS 4017. Prosta budowa generatora umożliwia wykonanie go przez każdego początkującego elektronika amatora.
Schemat elektryczny układu przedstawiono na rys. 1. Składa się on z trzech zasadniczych części:
- generatora impulsów taktujących,
- licznika,
- generator m.cz.
Jako generator impulsów zliczanych przez licznik wykorzystano timer NE555 pracujący w trybie astabilnym. Generowane przez niego impulsy są powtarzane z częstotliwością około 1 Hz i po-
dawane na wejście zegarowe CLK (wyprowadzenie 14) licznika dekadowego 4017. Licznik zlicza impulsy, ustawiając kolejno wysokie poziomy napięcia na wyjściach Q0...Q9 układu 4017. Każde z wyjść Q0...Q9 jest dołączone do diody LED, polaryzując ją w kierunku przewodzenia. Katody diod połączono w pięć par: Q0 z Q9, Ql z Q3 itd. Dzięki zastosowaniu diod LED możemy obserwować pracę licznika. W obwód katod par diod włączono potencjometry POT2...POT6 o rezystancji 1 kfl, które służą do zmiany częstotliwości sygnału akustycznego. Generator m.cz. zbudowano na drugim timerze NE555 (US3) pracującym w konfiguracji multi-
WYKAZ ELEMENTÓW
Rezystory
Rl: 4,7 kO R2...R4: lkG R5; 330Q Ró: 100D
P0T1, P0T7: lOkO P0T2...P0TÓ: lkG Kondensatory Cl: ln.F/lóV C2, C3: lOOnF C4: 10^F/25V Półprzewodniki Tl, T2: BC237 US1, US3: NE555 US3: 4017 Różne Głl: 8D/0.5W
Płytka drukowana jest dostępna w A VT - oznaczenie AVT-1382.
Wzory płytek drukowanych w formacie PDF są dostępne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl wrzes ien 0 3. htm.
cza stabilizowanego o napięciu od +5 V do +12 V.
Egzemplarz modelowy zmontowano na jednostronnej płytce drukowanej, której mozaikę ścieżek wraz z rozmieszczeniem elementów pokazano na rys. 2. Niewielka
+OT
Rys. 2
wibratora astabilnego. Sygnał akustyczny z wyjścia generatora podawany jest na wzmacniacz m.cz., zbudowany na dwóch tranzystorach: Tl i T2 połączonych w układ Darlingtona. Z wyjścia wzmacniacza jest sterowany głośnik 8Q/ 0,5W. Układ może być zasilany z baterii lub zasila-
liczba elementów pozwala na szybki montaż i uruchomienie generatora.
Po zmontowaniu układu należy ustawić odpowiadający nam sygnał dźwiękowy i szybkość jego odtwarzania, do czego służą potencjometry POT1...POT7. Krzysztof Górski, AVT krzysztof.gorski@ep.com.pl
Elektronika Praktyczna 9/2003
71
MINIPROJEKTY
Interfejs Dejana
Przedstawiamy łatwy
w wykonaniu interfejs
opracowany przez
Dejana Kaljevica, który
służy do modyfikowania
zawańości pamięci
telefonów komórkowych
Nokia. Jednym z jego
zastosowań jest
usuwanie SIM-locków,
które utrudniają życie
użytkownikom telefonów
dostępnych na rynku
wtórnym.
Rekomendacje :
polecamy wszystkim
użytkownikom telefonów
firmy Nokia, którzy
chcą samodzielnie
zmodyfikować ich
oprogramowanie.
Potrzeba jest matką wynalazków. Zapewne "potrzeba" zachęciła Dejana Kaljevica do podjęcia próby zastąpienia drogiego i trudno dostępnego sprzętu serwisowego łatwym w wykonaniu interfejsem, za pomocą którego można dokonać modyfikacji zawartości pamięci telefonów firmy Nokia.
Schemat elektryczny interfejsu pokazano na rys. 1. Jest to kopia "klasycznego" interfejsu Dejana, w którym układ scalony pełniący rolę separatora sygnałów portu LPT komputera od interfejsu telefonu jest zasilany wprost z linii portu drukarkowego (połączone ze sobą - z separacją diodową - styki 3 i 5 złącza Jl).
Modelowy egzemplarz interfejsu zmontowano na jednostronnej płytce drukowanej, której schemat montażo-
Dodatkowe informacje
i oprogramowanie można znaleźć m.in.
na stronach: http: //www. axnet.pl
http://
www.nokia.soft.w.in-teria.pl/flasher.htm
http://komor-ka2001.republika.pl/ ^^^ dejan.htm ^* http://
F www. gsmnokia. prv.. p 1 I http://www.mojano-I kia.boo.pl
Ś http://www.fkn.pl
Rys. 1
Za pomocą interfejsu prezentowanego w artykule można modyfikować oprogramowanie telefonów:
Nokia 5110: V. 5.28, V. 5.29, V. 5.30, jl
Nokia 5130: V. 5.71, J
Nokia 3210: V. 5.31, V. 5.36, V. 6.0, I
Nokia 3310: V. 3.24, V. 4.02, V. 4.06, 1
V 4.18, V. 4.19, V. 4.23, V. 4.24, 4.35,
Nokia 6150: V. 5.22, V. 5.23, i
Nokia 6210: V. 3.01, V. 3.04, V. 3.74, i1
V 4.08, V. 4.27, V. 4.36, V. 5.01, v. 5.02,
Nokia 7110: V. 4.88, V. 4.94, V. 5.00,
V 5.01,
Nokia 8210: V. 5.08, V. 5.11, V. 5.16,
V 5.20, V. 5.21, V. 5.25, V. 5.26,
Nokia 8250: V. 3.08, V. 3.12,
Nokia 8290: V. 5.06,
Nokia 8850: V. 5.11, V. 5.16, V. 5.20,
V 5.21, V. 5.25, V. 5.26.
Wersję oprogramowania telefonu można ndrzirtać na ipoo wirświetlarzii no nndaniii
z klawiatury kodu *#0000# (telefon z zainstalowaną kartą SIM!). Ś
wy pokazano na rys. 2. Ponieważ zasilanie interfejsu jest dostarczane z linii portu, należy skrócić do niezbędnego minimum długość kabla łączącego gniazdo Jl interfejsu ze złączem komputera.
Prostota budowy interfejsu sugeruje, że większość pracy związanej z modyfikacją oprogramowania telefonu wykonuje program sterujący pracą interfejsu. Tak jest w rzeczywistości - interfejs prezentowany w artykule jest obsługiwany przez specjalne oprogramowanie, które jest dostępne w Internecie (m.in. na naszej stronie interneto-wej w dziale Download>Do-kumentacje). Oryginalny program opracowany przez autora pomysłu pracuje z DOS-em
DB25
lub w DOS-owej sesji Windows, dostępne są także programy z klasycznym interfejsem Windows, jak np. Dark-Shell. Wymiana oprogramowania w telefonie wymaga pewnych umiejętności, które dokładnie opisano m.in. na stronie http://klub.chip.pl/ maciejs/flshnk.html, a także na wielu innych stronach w Internecie. Należy zapoznać się z tymi materiałami przed rozpoczęciem samodzielnych prób! AG
WYKAZ ELEMENTÓW
Rezystory
Rl: 100Q
R2: 4,7kQ
Kondensatory
Cl: lOOnF
Półprzewodniki
Ul: SN74HC14
Dl, D2: BAT85
Różne
Jl: DB25M
JP1: kabel ze złgczem do
programowanego telefonu
Płytka drukowana jest dostępna wAVT - oznaczenie AVT-13S1.
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: h ttp: //www. ep.com.pl/?p dfl wrzesien03.htm.
Rys. 2
Elektronika Praktyczna 9/2003
KURS
Wielopoziomowe menu w C
Opisane w artykule funkcje wykonałem jako demonstrację sposobu implementacji menu. Nie są one związane z żadnym konkretnym urządzeniem. Do ich uruchomienia użyłem płytki eksperymentalnej własnej konstrukcji, zbliżonej funkcjonalnie do AVR Starte r Kit i zawierającej mikrokontroler AT89S8252, programator oraz złącza doprowadzające sygnał do wyprowadzeń mikrokontrole-ra. Do płytki podłączyłem wyświetlacz LCD (pracuje z interfejsem 4-bitowym) oraz klawiaturę wykonaną jako matrycę 3 wierszy i 4 kolumn (w sumie 12 klawiszy). Port P2, do którego podłączyłem klawiaturę, dodatkowo wyposażyłem w rezystory pull-up o wartości 47 kQ. Użyłem ich ze względu na długie kable łączące klawiaturę z portem mikrokont-rolera. W tab. 1 i na rys. 1 zawarto opis połączeń elektrycznych.
Odczyt klawiatury
Funkcje odczytujące klawiaturę zadeklarowałem jako zewnętrzne funkcje biblioteczne i umieściłem w module o nazwie KBD3X4. Pierwsza z nich char KBD_Read(char column) służy do obsługi klawiatury na poziomie sprzętu, operując na portach mikrokontrolera. Druga - char Key_Numher(void) - przydziela klawiszom odpowiednie kody.
Funkcja KBD_Read w wyniku działania zwraca unikatową dla każdego z wciśniętych klawiszy, odpowiadającą mu wartość lub 0 - jeśli żaden z klawiszy nie jest wciśnięty. Nie pracuje ona poprawnie, jeśli wciśnięto więcej niż jeden klawisz. Zawsze zwracana jest jako pierwsza kombinacja klawiszy z kolumny będącej pierwszą odczytaną. Jako argument wywołania spodziewane jest wyzerowanie bitu odpowiadającego odczytywanej kolumnie. W związku z tym, że kolumna pierwsza klawiatury podłączona jest do P2.0, druga do P2.1 a trzecia do P2.2, odczytowi pierwszej kolumny odpowiada wyzerowanie bitu
Jednym z największych "pożeraczy" czasu i energii programisty, obok uruchomienia programu, jest tak zwany interfejs użytkownika. Mikrokontroler nie potrzebuje do pracy wyświetlacza, klawiatury, diod świecących LED i temu podobnych elementów, o ile nie jest to ściśle związane z operacjami zapisu lub odczytu danych. Wszystkie te drobiazgi są potrzebne nam, ludziom, abyśmy mogli wprowadzać parametry i poznać rezultat wykonania przez mikrokontroler określonego programu. W artykule przedstawię sposoby tworzenia jedno-i dwupoziomowych menu, wyświetlanych na typowym wyświetlaczu LCD 4 linie po 20 znaków.
numer 0 argumentu (argument wywołania np. OxFE), drugiej bitu numer 1 itd. W pliku nagłówkowym KBD3X4.H za pomocą dyrektywy #define zdefiniowano właściwe wartości argumentu wywołania funkcji KBD_Read [Co-lumn_1...3), które później używane są przez funkcję Key_Numher.
Sposób funkcjonowania KBD_Read jest następujący: argument column jest zapisywany do portu klawiatury i tym samym linia którejś z kolumn przyjmuje stan niski. Na skutek przyciśnięcia (zwarcia) klawisza linia wiersza - będąca normalnie w stanie wysokim -przejdzie w wymuszony stan niski. Stan ten jest dwukrotnie odczytywany przez mikrokontroler: za drugim razem po 50 milisekundach. Zrobiłem tak, aby upewnić się, że klawisz został naciśnięty celowo i było to zamiarem użytkownika. Jest to również bardzo prosty filtr zakłóceń mogących pojawić się na doprowadzeniu portu.
Aby zapobiec wpływowi na wynik działania funkcji bitów innych niż przyporządkowane wierszom klawiatury, są one maskowane (ustawiane w stan nis-
Tab. 1. Przypisanie funkcji wyprowadzeniom mikrokontrolera
Nazwa portu Oznaczene Finkga
P2.0 PCO Doprowadzenie pierwszej kolumny matrycy klawiszy
P2.1 PC1 Doprowadzenie drugiej kolumny matrycy klawiszy
P2.2 PC2 Doprowadzenie trzeciej kolumny matrycy klawiszy
P2.3 PC3 Doprowadzenie drugiego wiersza matrycy klawiszy
P2.4 PC4 Doprowadzenie trzeciego wiersza matrycy klawiszy
P2.5 PC5 Doprowadzenie czwartego wiersza matrycy klawiszy
P2.6 PC6 Doprowadzenie pierwszego wiersza matrycy klawiszy
P3.4 PD4 Sygnał RS wyświetlacza LCD
P3.5 PD5 Sygnał READ wyświetlacza LCD
P3.6 PD6 Sygnał ENABLE wyświetlacza LCD
P1.4 PB4 Bit5nszyny danych wyświetlacza LCD
P1.5 PB5 Bit6nszyny danych wyświetlacza LCD
P1.6 PB6 Bit7nszyny danych wyświetlacza LCD
P1.7 PB7 Bit8nszyny danych wyświetlacza LCD
ki) poleceniem curr &= Row_mask (iloczyn bitowy). Wartość maski również zdefiniowana została w pliku nagłówkowym. Bit aktywny przyjmuje stan niski. W związku z tym, że łatwiej jest porównywać bity znajdujące się w stanie wysokim, wartość zwracanej zmiennej jest negowana (polecenie return(-curr), "~" to operator dopełnienia jedynkowego).
Funkcja Key_Numher przyporządkowuje kombinacjom bitów odczytanych z portu mikrokontrolera określone kody. Konstrukcja programu zbliżona jest do budowy klawiatury. Warunki if tworzą rodzaj matrycy, na której przecięciach znajdują się kody klawiszy. Wartości Row_1...4 również predefiniowane są w pliku nagłówkowym. Jedynka na pozycji bitu wiersza odpowiada wciśnięciu klawisza. W przypadku, gdy żaden z klawiszy nie jest naciśnięty, funkcja zwraca wartość 0.
Menu jednopoziomowe
Najprostszym rodzajem menu jest menu jednopoziomowe. Charakteryzuje się ono tym, że po wybraniu opcji następuje bezpośrednie wywołanie akcji. Menu takie jest łatwe do wykonania, jeśli w całości mieści się na ekranie LCD. Znacznie gorzej jest, gdy ma ono na przykład 8 pozycji, a na ekranie mamy do dyspozycji 2 czy 4 linie. Wówczas musimy nie tylko określić nazwy poszczególnych opcji, ale również sposób wyświetlania menu po przekroczeniu rozmiaru ekranu. Wyliczenie tych wszystkich zmiennych zajmuje dużo pamięci programu oraz czasu mikrokontrolera.
Początek programu (część deklara-cyjna zmiennych) zawiera definicję typu o nazwie menuitem. Jest to struktura pojedynczego rekordu opisującego linię menu. Rekordy te są następnie zgrupowane w tabeli menus, tam też nadawana jest im wartość. Kilku słów omówienia wymaga rola poszczególnych pól rekordu.
Elektronika Praktyczna 9/2003
77
KURS
9 W1-PC6 7 W4-PC5 5 W3-PC4
Rys. 1. Schemat klawiatury matrycowej 3 (kolumny) x 4 (wiersze) wykorzystywanej w modelu
Pole o nazwie name to łańcuch znaków wyświetlany na ekranie i stanowiący nazwę (etykietę) danej pozycji menu. Jest on widziany przez użytkownika dokonującego wyboru opcji. Pole ptr to offset dodawany do adresu początku tablicy - wykazu menu. Jego rola polega na wskazaniu miejsca, od którego mają być wyświetlane etykiety menu. I tak dla przykładu ptr=4 spowoduje, że w linii numer 1 wyświetlacza LCD znajdzie się etykieta menu spod adresu menus+4. Kolejne pole - yO - to numer linii, w której ma się znajdować znak wyboru w momencie, gdy wskaźnik aktualnej pozycji w tabeli-wykazie wskazuje na rekord związany z tym paramet-Tem. Kombinacja dwóch ostatnich parametrów umożliwia efektywne i czytelne wyświetlanie zawartości menu. Spójrzmy dla przykładu na deklarację menu pochodzącą z prezentowanego programu:
//deklaracja tablicy-wykazu //opcj i menu
code menuitem menus[maxoptions] = {{"opcja 1 . ", 0, 0},
{"opc ja 2 . ", 0, 1},
{"opc ja 3 . ", 0, 2},
{"opc ja 4 . ", 0, 3},
{"opc j a 5 . ", 1 , 3 },
{"opc ja 6 . ", 2, 3 },
{"opc ja 7 . ", 3, 3},
{"opc ja 8 . ", 4 , 3}}
//deklaracja wskaźnika do pozycji
//w tablicy-wykazie menu
code menu i t em *p t rmenus = &menus;
Wskaźnik ptrmenus jest tego samego typu, co element tablicy - wykazu. W związku z tym operacje arytmetyczne wykonywane na wskaźniku dodają (lub odejmują) do (od) jego wartości liczbę bajtów identyczną z rozmiarem pojedynczego elementu tablicy. Na przykład wykonanie poleceń: ptrmenus = &menus
ptrmenus = ptrmenus+3 //równoważne //polecenie to ptrmenus += 3
spowoduje przesunięcie wskazań na pozycję 4 w tablicy (pozycje numerowane są od 0), a nie na literę ,,c" w napisie ,,opcja 1 .", co odpowiadałoby dodaniu do wartości wskaźnika 3 bajtów. Tyle słowem przypomnienia o arytmetyce wskaźników. Wróćmy do sposobu definiowania menu.
Po uruchomieniu funkcji wyświetlającej, wskaźnik do wykazu ustawiany jest na jego początek (pozycja 0). Następnie pobierane są wartości menus[0].y0 oraz menus[0].ptr. Wartość ptr dodawana jest do adresu początku tablicy (w tym przypadku ptr=0) i od wyliczonego w ten sposób adresu wyświetlane są na ekranie LCD 4 etykiety menu.
Parametr pobrany z tablicy yO to argument funkcji wyświetlającej znaczniki wyboru. W tym przypadku, ponieważ y0=0, znaczniki będą wyświetlone na współrzędnych (0,0) oraz (19,0). Podobnie będzie, gdy wskaźnik pokaże pozycję 2, 3 i dalsze. Za każdym razem wartości yO i ptr określają pozycję znaku wyboru oraz tę etykietę menu, która znajdzie się w pierwszej linii wyświetlacza.
Do wyliczenia wartości wskaźnika do aktualnej pozycji w tabeli-wykazie
menu posługuję się zmienną globalną
0 nazwie actpos. Jest to zmienna typu signed char (z zakresu od -128...127). Jej wartość ulega zmianie po naciśnięciu klawiszy umownie przyjętych jako kierunek dół (8) lub góra (2). Dodatkowo wartość tej zmiennej porównywana jest z liczbami określającymi jej maksimum i minimum. W przypadku przekroczenia maksimum, zmiennej actpos nadawana jest wartość minimum i vice versa: gdy jej wartość jest mniejsza niż wartość minimalna, zmiennej nadawana jest wartość maksimum. Tu jedna uwaga: wartość maksymalną stanowi liczba elementów tablicy menus. Jej elementy numerowane są od 0. W związku z tym numer ostatniego elementy tablicy to rozmiar-1, a pierwszego to 0. Na skutek tak przyjętej konwencji również
1 zmiennej actpos należy w przypadku dolnej granicy zakresu nadać wartość maksymalnej liczby opcji pomniejszoną o 1. Odpowiada za to polecenie if ( actpos < 0) actpos=maxoptions-l. Podobnie jest w przypadku górnej granicy. Wskaźnik adresuje obszar leżący poza tablicą już wówczas, gdy przyjmuje wartość jej rozmiaru. Z mojej praktyki wynika, że mimo faktycznie zachodzącej równości, w takiej sytuacji bezpieczniej jest użyć znaku ,,większe lub równe". W związku z tym linia programu przyjmuje postać if (++actpos >= maxoptions) actpos=0.
Program główny wykonuje czynności związane z obsługą wyświetlacza (inicjalizacja trybu 4-bitowego oraz definicja znaków użytkownika), a następnie wywołuje funkcję obsługi menu. Zwracana przez tę funkcję wartość rozpatrywana jest następnie przez wyrażenie switch - case. Oczywiście można użyć instrukcji if lub chociażby zbudować tablicę z wykazem wywoływanych funkcji, a zwróconą w wyniku działania wartość potraktować jako offset lub wskaźnik do tejże tablicy.
Menu dwupoziomowe
Rozbudowując menu o dodatkowy poziom, zawsze należy liczyć się z tym, że zajmie ono dużo miejsca
List. 1. Sposób budowania definicji menu
code menuitem mainmenus[6] =
{{name = "opcja menu głównego 1", i --> code submenu submenul[3] =
ptr = 0, i {{"podmenu 1. 1", 0 0,11},
yo = o, i {"podmenu 1.2' ,0,1,12},
nextmenu Ś [0,0,0,0}
i
retval = 0},
{name = 'opcja menu głównego 2", --> :ode submenu submenu2 [7] = {
ptr = 0, i {{"podmenu 2 . 1", 0 0,21},
yo = i, i {"podmenu 2 .2' ,0,1,22},
nextmenu - "I r-, Ś {"podmenu 2.3' ,0,2,23},
i
retval = 0}, {"podmenu 2 .4' ,0,3,24},
{"podmenu 2 .5' ,1,3,25},
{"podmenu 2 .6' ,2,3,26},
{0,0,0,0}
{name = opcja menu głównego 3",
ptr = 0,
yO = 2,
nextmenu = 0,
retyal = 3},

78
Elektronika Praktyczna 9/2003
KURS
w pamięci mikrokontrolera. Sytuacja wygląda zupełnie inaczej, gdy tworzona jest aplikacja dla komputera PC niż gdy dla mikrokontrolera. Ten pierwszy w porównaniu z drugim posiada niewyobrażalne wręcz zasoby do wykorzystania, istne ,,morze pamięci", przy dodatkowo bardzo dużej szybkości działania. Pewnych nawyków i przyzwyczajeń (o ile takie są) nie da się po prostu w tym momencie wykorzystać, chociaż nowe, pojawiające się na rynku mikro kontrolery imponują wręcz swoimi zasobami sprzętowymi. Zostawmy jednak rozważania i wróćmy do opisu sposobu wykonania menu.
Przy jego budowie posłużyłem się rozwiązaniami z pierwszego przykładu programowania, jednak wyraźnie zostały rozgraniczone menu główne od menu podrzędnego. Rozgraniczają je zarówno funkcje realizujące wyświetlanie etykiet i wybór spomiędzy nich, jak i typy rekordów użytych do deklaracji. Rozpocznijmy analizę od menu głównego. Dla potrzeb budowy tablicy-wykazu opcji menu głównego zadeklarowałem typ o nazwie menuitem. Zawiera on pola poznane już wcześniej {name, ptr i yO) i oprócz nich nowe, o nazwach nextmenu oraz retval.
Pole nextmenu to wskaźnik do obszaru wykazu opcji odpowiadającego mu podmenu. W przypadku, gdy następny poziom nie jest dostępny, wskaźnikowi nadawana jest wartość 0. Z tym polem ściśle związana jest zawartość pola retval. Zawiera ono liczbę zwracaną przez funkcję w przypadku wyboru opcji. Jak łatwo się domyślić, wartość wpisana do retval nie ma żadnego znaczenia w przypadku, gdy wywoływane jest podmenu. Wówczas to, funkcja obsługi menu zwróci wartość zapisaną w polu retval właściwą dla danej opcji (etykiety) podmenu.
Wskaźnik nextmenu jest typu sub-menuitem. Ten typ zmiennych został utworzony dla potrzeb tablic-wyka-zów opcji menu drugiego poziomu. Jest on prawie taki sam, jak używany do potrzeb menu głównego, ale oprócz podstawowych pól (etykieta name, położenie znaku wyboru yO, offset wskaźnika ptr oraz wartości zwracanej przez menu retval) nie zawiera żadnych wskaźników do następnych wykazów opcji.
Łatwo jest rozbudować podmenu o następne poziomy. Wystarczy użyć podobnych mechanizmów jak dla budowy poziomu 2. Jest w tym jednak drobna trudność: należy w jakiś sposób podać użytkownikowi informację, z którego menu wybierana jest opcja, ot chociażby przez wyświetlenie ścieżki - opisu miejsca, w którym się znajduje. Trudno jest znaleźć to miejsce na ekranie LCD o niewielkich rozmiarach. W praktyce ograniczam więc menu budowanych przez siebie urządzeń co najwyżej do 2...3 poziomów i zazwyczaj nie ma potrzeby tworzenia dalszej hierarchii. Zamiast tego warto jest przemyśleć układ
menu i jego opcje. Wróćmy do sposobu tworzenia definicji menu głównego. Na list. 1 przedstawiono schemat budowy definicji menu głównego oraz odpowiadających mu opcji podmenu.
Tablica mainmenu zawiera wykaz definicji etykiet i parametrów menu głównego. Polu wskaźnikowemu o nazwie nextmenu nadawana jest wartość adresu - wskazania do wykazu opcji podmenu, jeśli takie istnieje. Kolorami wyróżniono te przypisania. W takim przypadku pole retval ma wartość 0. Gdy podmenu nie istnieje (może to być na przykład opcja ,,Uruchom", ,,Oblicz" itp.), polu retval nadawana jest wartość, którą ma zwrócić funkcja, a polu nextmenu należy przypisać wartość 0.
Wymagane jest, aby każda tablica-wykaz etykiet podmenu była zakończony rekordem, w którym co najmniej pole name ma wartość 0. Rekord ten jest niezbędny, ponieważ na podstawie jego położenia obliczana jest przez funkcję wyświetlającą podmenu długość wykazu opcji, a tym samym liczba etykiet do wyświetlenia.
Menu główne wyświetlane jest w identyczny sposób jak to było robione w przypadku menu jednopoziomowego. Jego obsługą zajmuje się funkcja Main_Menu i jej funkcje usługowe. Jako rezultat zwraca ona liczbę jednobajto-wą będącą kodem wybranej opcji.
Po naciśnięciu klawisza o kodzie 0x0C umownie funkcjonującego jako EN-TER, funkcja sprawdza, czy pole next-menu przyporządkowane bieżącej pozycji zawiera jakąś wartość. Jeśli tak, funkcja wywołuje obsługę podmenu jako parametr, podając zawartość odpowiedniego pola nextmenu. W związku z tym, że chciałem napisać funkcję uniwersalną, zdolną do wyświetlenia podmenu o różnych ilościach etykiet, przy wywołaniu funkcja musi obliczyć, jaka jest liczba pozycji wykazu przekazanego jako argument wywołania. Minimalna wartość to 1, maksymalna 127. Koniec wykazu rozpoznawany jest po tym, że pole name (etykieta menu) ma wartość znaku o kodzie 0. Wynik obliczeń zapamiętywany jest w zmiennej maxsuhopt.
Ogranicza ona od góry wartość zmiennej globalnej POS_IN_SUBMENU, która nie może być większa niż maxsuhopt-l i jest sprawdzana po każdym naciśnięciu klawisza w górę czy w dół.
Po wejściu do podmenu zaczyna również działać klawisz o kodzie 0x0B pełniący rolę podobną do ESCAPE w komputerze PC. Jego naciśnięcie powoduje, że następuje powrót do menu głównego bez podejmowania jakiejkolwiek akcji i można wówczas dokonać innego wyboru. Wybór zawsze potwierdzany jest przez naciśnięcie klawisza ENTER.
Podobnie jak w poprzednim przykładzie, program główny zawiera inicjaliza-cję wyświetlacza, wywołanie funkcji obsługi menu oraz konstrukcję switch -case w celu rozpoznania wybranej opcji.
Uwagi na temat programu
Funkcje w moich przykładach często posługują się wskaźnikami do struktur. Ich konstrukcja oraz sposób zapisu jest specyficzny i wymaga kilku słów omówienia zwłaszcza dla tych osób, które spotykają się z nimi po raz pierwszy.
Definicja tabeli zawierającej rekordy jest doskonałym mechanizmem zwłaszcza przy tworzeniu baz danych i plików dyskowych. I chociaż w tych przykładach programów nie są używane żadne zbiory znajdujące się na dysku, to jednak tablica rekordów do złudzenia przypomina strukturę bazy danych, a leżący gdzieś w obszarze code pamięci mikrokontrolera wykaz - plik dyskowy. Istnieją dwie podstawowe metody odwoływania się do pozycji w takiej strukturze:
- z zastosowaniem indeksów (np. me-nus[l], menus[5] itd.),
- z zastosowaniem wskaźnika (wskaźników).
Ta pierwsza metoda jest bardzo prosta. Ilustruje ją przykład umieszczony na list. 2. Indeks to po prostu numer pozycji w tabeli, do którego żąda dostępu aplikacja. Jeśli mamy do czynienia z tabelą zawierającą 10 elementów, to indeks może przyjąć wartości od 0 do 9. Gdy mamy do czynienia z tablicą struktur, dostęp do pola moż-
List. 2. Odwołanie do tablicy rekordów poprzez indeksy
//definicja typu - struktury (rekordu) danych //struktura zawiera 3 pola typu char: x, y, colour
typedef struct
char X;
char y;
char colour;
} attr;
data attr points[10] ; //deklaracja tablicy zawierającej rekordy danych
Void main() {
char temp;
attr pt;
points[0].X = 1; //nadanie wartości polu X tablicy wskazywanemu
//przez indeks 0 temp = points[8].y; //pobranie wartości pola y wskazywanemu przez indeks
//do zmiennej temp pt = point[2]; //przepisanie rekordu danych z tablicy (indeks=2)
//do zmiennej pt będącej } //tego samego typu, co element tablicy
Elektronika Praktyczna 9/2003
79
KURS
List. 3. Odwołanie do tablicy rekordów poprzez wskaźnik
typedef struct {
char X;
char y;
char colour; } attr;
data attr points[10]; data attr *pointer =
Void main() {
char temp;
attr pt;
pointer->x = 1; temp = (pointer+S pt = pointer + 2;
//definicja typu - struktury (rekordu) danych
//struktura zawiera 3 pola typu char: x, y, colour
//deklaracja tablicy zawierającej rekordy danych :>oints; //deklaracja wskaźnika oraz nadanie mu wartości
//początkowej: wskazania na początek tablicy points
//nadanie wartości polu X tablicy wskazywanemu
//przez indeks 0
//pobranie wartości pola y wskazywanemu przez
//indeks 8 do zmiennej temp
//przepisanie rekordu danych z tablicy (indeks=2)
//do zmiennej pt będącej
//tego samego typu, co element tablicy
na uzyskać podając po kropce jego nazwę: zmienna = menu[l].ptr.
Inaczej ma się sytuacja, gdy odwołanie do struktury odbywa się przez wskaźnik. Posłużmy się tym samym przykładem - na list. 3 umieszczono program zmodyfikowany w taki sposób, aby odwołania do pól następowały przez wskaźnik a nie przez indeks.
Wskaźnik powinien być tego samego typu, co wskazywany obszar danych. W konsekwencji wszelkie operacje arytmetyczne na nim wykonywane powodują jego zmianę o taką liczbę bajtów, jaki jest rozmiar wskazywanego elementu. Ilustracją tej zasady jest poniższy przykład:
data char *pointer_l = &points; data attr *pointer_2 = &points; data char temp = 2;
pointer_l++; //spowoduje przesunię-
//cie wskazania zmiennej
//points[0].x na points[0].y
//(o 1 bajt) pointer_2++; //spowoduje przesunię-
//cie wskaźnika z rekordu
//points[0] na points[1] i jest
//równoważne wyrażeniu.
//pointer_l =
//pointer_l + sizezeof(attr) pointer_l += 8; //spowoduje przesu-
//nięcie wskaźnika o 8 bajtów, to
//jest na zmienną points[2].y pointer_2 += 8; //spowoduje przesu-
//nięcie wskaźnika o 8 rekordów,
//to jest na pozycję 9 w tabeli pointer_l += temp; //spowoduje
//przesunięcie wskazania o 2 baj-
//ty, to jest na zmienną
//points[0].colour pointer_2 += temp; //spowoduje
//przesunięcie wskaźnika o 2 re-
//kordy, to jest na pozycję
112, w tabeli
Odwołanie do pola struktury umożliwia operator wyglądający jak strzałka skierowana w prawo, utworzony ze znaku większości oraz odejmowania (->) następującego bezpośrednio po nim. Stosując go, należy pamiętać, że ma bardzo wysoki priorytet. Operacje (poin ter+ temp)->x oraz temp+poin ter->x nie są równoważne. Jednak bardziej jaskrawy przykład stanowi porównanie sposobu funkcjonowania wyrażeń + +po i nt er ->x oraz (+ + pointer)->x. W tym pierwszym przypadku wyrażenie zwiększa zmienną x o 1, a nie wskaźnik do struktury. W drugim wskaźnik jest zwiększany przed odwołaniem do struktury i na skutek tego następuje przejście do następnego w kolejności elementu tablicy.
Na tej samej zasadzie wyrażenie:
- *pointer->x udostępnia coś, na co wskazuj e x,
- *pointer->x++ zwiększa x po udostępnieniu obiektu wskazywanego przez x,
- (*pointer->x)++ zwiększa coś, na co wskazuj e x,
- *pointer++->x zwiększa zmienną pointer po udostępnieniu obiektu wskazywanego przez x.
Jak wspomniałem wcześniej, wykorzystując mechanizmy użyte do budowy drugiego poziomu menu łatwo jest dodać następne poziomy. Wystarczy, że typ suhmenuitem będzie zawierał wskaźnik do następnego wykazu menu, a funkcja Sub_Menu zapamięta i przechowa stan zmiennej POS_IN_SUBMENU. Prawdopodobnie będzie również wymagać słowa kluczowego reentrant (kompilator RC-51) powodującego, że funkcja może być wywoływana rekurencyjnie. Rozbudowę pozostawiam jednak inwencji własnej Czytelnika. Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
80
Elektronika Praktyczna 9/2003
KURS
Podstawy projektowania systemów mikroprocesorowych, część 7
W tym odcinku Kursu rozpoczniemy omawianie praktycznych układów sterujących konkretnymi urządzeniami wykorzystywanymi w systemach mikroprocesorowych. Zaczniemy od urządzeń wejściowych, za pośrednictwem których do mikro kontrolera docierają sygnały z zewnątrz i będąc odpowiednio interpretowane, wpływają na sposób wykonywania programu.
Podłączanie czujników do mikrokontrolera
W zależności od funkcji, jaką ma spełniać projektowany system, niejednokrotnie zachodzi potrzeba wykorzystania w nim różnego rodzaju czujników. Ze względu na specyfikę działania układów cyfrowych, bez poważnych komplikacji układowych fnp. w postaci przetworników analogowo/cyfrowych) można jedynie wykorzystać czujniki dające na wyjściu sygnał cyfrowy. Mimo takiego ograniczenia, w wielu zastosowaniach takie proste rozwiązania w zupełności wystarczają.
W praktyce najczęściej korzysta się z różnego rodzaju czujników stykowych. Zasada ich działania opiera się na mechanicznym zwarciu styków łącznika i zamknięciu w ten sposób obwodu elektrycznego. Do tej grupy czujników zaliczamy różnego rodzaju przyciski i przełączniki, wyłączniki krańcowe, czujniki kontaktronowe i styki przekaźników. W praktyce spotyka się dwie wersje takich elementów: normalnie rozwarte - wymuszenie działające na czujnik powoduje zwarcie jego styków oraz normalnie zwarte - wymuszenie powoduje rozwarcie styków, które przez pozostały czas są zwarte.
Równie często wykorzystywanymi elementami są różnego rodzaju czujniki i podzespoły elektroniczne, dające na wyjściu bezpośredni sygnał cyfrowy zgodny ze standardem TTL, których obsługa sprzętowa nie stwarza żadnego problemu (bezpośrednie połączenie z liniami portów). Często stosuje się także fotodetektory wykorzystywane jako czujniki światła (jasno/ciemno) lub - w połączeniu z jakimś źródłem światła - mogą one tworzyć fotokomórki zliczające przedmioty, wykrywające kierunek ruchu itp.
Zwracając uwagę na zalety czujników optoelektronicznych, należy powiedzieć, że są to elementy bardzo szybkie i praktycznie niezużywające się (w odróżnieniu np. od czujników stykowych). Zapewnienie odpowiedniego źródła światła (najczęściej w postaci podczerwonej diody LED) pozwala na wykorzystanie fotodetektorów w wielu aplikacjach, w których z powodzeniem zastępują mniej trwałe i bardziej zawodne elementy stykowe. Jako że czujniki optoelektroniczne stanowią "krok naprzód" w stosunku do elementów stykowych, to właśnie rozwiązania układowe wykorzystujące fotodetektory jako źródła sygnału zostaną omówione jako pierwsze.
Na rys. 24 przedstawiono sposoby dołączenia do mikrokontrolera popularnych fotodetektorów: fotodiody i fototranzystora. Na rys. 24a pokazano sposób podłączenia fotodiody. Ze względu na niewielki prąd płynący przez nią w kierunku zaporowym, sygnał generowany przez fotodiodę musi zostać
ń -i-Uzu
R1
Rys. 24
R1=R2=1Q0R...1k
wzmocniony przez tranzystor. Jeżeli na fotodiodę zacznie padać światło, to spowoduje to przepływ prądu i odłożenie się napięcia na rezystorze Rl. Napięcie to poprzez ograniczający prąd rezystor R2 podawane jest na bazę tranzystora i jeżeli wystarcza ono, aby tranzystor zaczął przewodzić, to wyprowadzenie mikrokontrolera zostaje zwarte do masy - na linii portu pojawia się stan niski. Czułość tego układu można regulować w dość szerokich granicach poprzez dobór rezystora Rl. Zwiększając wartość tego rezystora, zwiększamy równocześnie czułość układu. Nie należy jednak przesadzać ze zbytnim zwiększaniem rezystancji, gdyż może zaistnieć sytuacja, że układ będzie cały czas aktywny mimo całkowitej ciemności (wskutek prądu upływu diody). Dużą rolę odgrywa tutaj także wzmocnienie zastosowanego tranzystora - im większe wzmocnienie, tym oczywiście większa czułość. Jeżeli nie można w ten sposób osiągnąć pożądanej czułości (przy detekcji bardzo niewielkich natężeń oświetlenia), można zamiast fotodiody zastosować fototranzystor (podłączając kolektor w miejsce katody, a emiter w miejsce anody).
Na rys. 24b przedstawiono układ z fototranzystorem będącym jednocześnie elementem detekcyjnym, jak i sterującym linię portu mikrokontrolera. Czułość tego układu może być regulowana za pomocą rezystora Rl (duża rezystancja - duża czułość), maksymalną czułość można uzyskać nie montując rezystora Rl (o ile wykorzystywana linia portu posiada wewnętrzny rezystor podciągający - dla linii P3.0 wykorzystanej na zamieszczonym schemacie warunek ten jest spełniony). W zależności od typu zastosowanego fototranzystora można osiągnąć czułości lepsze niż w układzie z fotodiodą i tranzystorem. Pod względem logicznym układ działa tak samo jak poprzedni - oświetlenie fototranzystora powoduje pojawienie się stanu niskiego na wyprowadzeniu P3.0.
Elektronika Praktyczna 9/2003
81
KURS
Ust. 8. i KIERUNEK - etykieta i OBIEKT - etykieta zrr czuj niku i 1 - jest na ; (program główr INICJUJ: CLR KIERUNEK CLR OBIEKT ; (podprogram wyzna KIERUNEK: MOV C,P3.0 ANL C,P3.1 JC BRAK_OBIEKTU JB OBIEKT,CZEKAJ_N MOV C,P3.1 MOV KIERUNEK,C SETB OBIEKT RET BRAK_OBIEKTU: CLR OBIEKT CZEKAJ_NA_ZEJSCIE: RET zmiennej bitowej, określającej kierunek: 1-lewo, 0-prawo iennej bitowej określająca, czy obiekt znajduje się na czujniku y - blok inicjowania wartości zmiennych) zerowanie zmiennych czający kierunek ruchu, wywołanie przez LCALL KIERUNEK) oba fototranzystory oświetlone (stan 1 na obu liniach), czyli brak obiektu na czujniku A_ZEJSCIE ;jeżeli obiekt na czujniku, to czekaj, aż opuści czujnik jeżeli nie było obiektu na czujniku to znaczy, Że zarejestrowano nowy obiekt stan 1 na P3.1 oznacza, Że jedzie w lewo Wiec kopiujemy P3.1 do KIERUNEK i ustawiamy zmienną OBIEKT, aby poczekać na zjechanie z czujnika (czekamy na stan wysoki na P3.0 i P3.1)
Na rys. 14c przedstawiono typowy układ wykorzystywany do wykrywania kierunku poruszania się obiektów. Wykorzystuje on podwójny fototranzystor umieszczony w trój końcówkowej obudowie (połączone kolektory). Oświetlenie któregoś z fototranzystorów powoduje przepływ prądu poprzez odpowiedni rezystor i wzrost napięcia na wyprowadzeniu portu - oświetleniu fototranzystora odpowiada stan wysoki linii. Jeśli fototranzystory nie przewodzą, stan na liniach portu jest interpretowany jako niski, gdyż rezystory Rl i R2 mają rezystancję kilkadziesiąt razy mniejszą niż wbudowane rezystory podciągające. Jeśli wymagane byłoby znaczne zwiększenie czułości układu, należy tutaj zastosować tranzystory pośredniczące tak jak pokazano na układzie z rys. 14a - układ taki wprowadzi negację konieczną do uwzględnienia przy pisaniu programu (oświetlenie fototranzystora wywoła stan niski na linii portu). Zwiększanie wartości rezystancji Rl i R2 zwiększy nieco czułość, jednak łatwo jest osiągnąć stan, w którym nie będzie można rozpoznać na liniach portu faktu zatkania któregoś z fototranzystorów - wartość rezystancji Rl i R2 stanie się po-TÓwnywalna z wartością rezystancji rezystorów podciągających i nie będzie możliwe uzyskanie na wyprowadzeniach napięcia odpowiadającego stanowi niskiemu. Należy również pamiętać, aby nigdy programowo nie zerować wyprowadzeń portu, gdyż może to doprowadzić do uszkodzenia fototranzystorów lub mikrokontrolera. Rozwiązaniem problemu jest zastosowanie układu z tranzystorem pośredniczącym lub doprowadzenie sygnału do wyprowadzeń mikrokontrolera przez rezystory o wartości około 1 kn.
W takim układzie rozróżnianie kierunku ruchu jest możliwe przez sprawdzanie stanów obu linii i odpowiednią ich interpretację. Wykrycie faktu zasłonięcia jednego z fototranzystorów w sytuacji, gdy drugi pozostaje oświetlony, informuje nas o kierunku ruchu - np. stan niski na linii P3.0 i wysoki na P3.1 informuje o ruchu w lewo, a sytuacja gdy P3.1=0 i P3.0=l świadczy o ruchu w prawo. Można to zrealizować za pomocą programu pokazanego na list. 8.
Przedstawiony podprogram wykrywa ruch obiektu i przechowuje informację o kierunku w zmiennej KIERUNEK do czasu pojawienia się następnego obiektu. Należy zwrócić uwagę na prędkość przemieszczających się przed czujnikiem obiektów i odpowiednie częste wywoływanie procedury, aby nie wystąpiło zjawisko ,,gubienia" przejść wskutek zbyt rzadkiego sprawdzania stanu czujnika.
Zwróćmy teraz uwagę na zasady postępowania przy projektowaniu urządzeń z wykorzystaniem elementów stykowych. Na rys. 25 przedstawiono kilka sposobów podłączenia elementów stykowych do portów mikrokontrolera. Na rys. 25a pokazano bardzo rzadko wykorzystywaną konfigurację połączeń
+Uzas
b)
1R1 100R...1k
elementu stykowego, czasami można spotkać się z opinią, iż jest to połączenie błędne. Układ jest jednak jak najbardziej prawidłowy, choć posiada pewne cechy, których zlekceważenie może doprowadzić do błędnego działania mikrokontrolera. Element stykowy jest tutaj włączony pomiędzy plus zasilania a wyprowadzenie portu. Jeśli styk jest rozwarty, to na wyprowadzeniu portu będzie utrzymywał się stan niski wymuszony przez rezystor Rl o wartości niewielkiej w porównaniu z wewnętrznym rezystorem podciągającym mikrokontrolera. Zwarcie styku spowoduje podanie na wyprowadzenie portu pełnego napięcia zasilania, które oczywiście będzie zinterpretowane jako stan ,,1". Wadą tego układu jest stosunkowo duży pobór prądu związany z koniecznością zapewnienia małej wartości rezystancji Rl - jednak mimo wszystko przy podanych wartościach rezystancji nie przekroczy on 50 mA. O wiele groźniejszy w skutkach może być błąd programisty polegający na wyzerowaniu programowym linii portu - jeżeli nastąpi to w momencie, gdy styk jest zwarty, to powstanie zwarcie napięcia zasilania do masy (przez linię portu) mogące doprowadzić do uszkodzenia mikrokontrolera (sytuacja podobna jak na rys. 24c) - mogąca być również w taki sam sposób rozwiązana).
Kolejny układ, będący chyba najbardziej klasycznym, przedstawiono na rys. 25b. Tutaj element stykowy zwiera wyprowadzenie portu do masy zasilania - zwarcie styku oznacza stan ,,0", a rozwarcie stan ,,1". Dodatkowy rezystor podciągający Rl nie jest konieczny (do poprawnej pracy wystarcza rezystor wbudowany w mikrokont-roler), pozwala natomiast na ustawienie optymalnego prądu pracy dla elementu stykowego, gwarantującego jego samooczyszczanie (dotyczy zwłaszcza elementów o niewielkiej sile nacisku styków, np. kontaktronów lub małych przekaźników). Niekiedy zachodzi konieczność podania na element stykowy napięcia wyższego niż napięcie zasilające mikrokontroler (np. gdy styk jest elementem wyjściowym jakiegoś obwodu elektronicznego zasilanego z wyższego napięcia i nie może być od tego napięcia odseparowany). Z wiadomych nam powodów (patrz po-
+Uzas
c) +12...24Y
im
1k...10k
Rys. 25
82
Elektronika Praktyczna 9/2003
KURS
przednie odcinki kursu) nie można takiego układu podłączyć bezpośrednio -stosuje się zatem podłączenie za pośrednictwem diody, jak w układzie z rys. 25c). Choć połączenie to było już omówione przy współpracy z elementami elektronicznymi, warto pamiętać, że może być wykorzystane również tutaj.
Często zachodzi potrzeba doprowadzenia sygnału do mikrokontrolera z elementu oddalonego o kilka...kilkanaście czy nawet kilkadziesiąt metrów. Należy wówczas zadbać, aby dostarczony do mikrokontrolera sygnał był odpowiedniej jakości i pozbawiony zakłóceń. Sytuację taką pokazano na rys. 26a (jest to rozwinięcie układu z rys. 25b). Pokazano tutaj, jak zabezpieczyć się przed zakłóceniami w przypadku stosowania długich przewodów połączeniowych. Zastosowane kondensatory Cl i C2 zwierają linię sygnałową dla przebiegów o wysokich częstotliwościach, natomiast niewielka rezystancja rezystora podciągającego Rl wymusza przepływ znacznego prądu w linii, co dodatkowo podnosi odporność na zakłócenia. Trzecim elementem zabezpieczającym jest obwód całkujący, przez który sygnał trafia na wyprowadzenie portu. Choć takie rozwiązanie przypomina układy stosowane w technice sygnałów analogowych, w przypadku sygnałów cyfrowych sprawuje się również bardzo dobrze. Dodatkowym elementem zabezpieczającym przed przepięciami w linii są diody Dl i D2 niepozwalające na przekroczenie napięcia linii poza przedział napięć zasilania. W tym układzie warto rozważyć jeszcze możliwość pojawienia się na wejściu linii krótkich impulsów wysokonapięciowych (zwłaszcza indukowanych od pobliskich wyładowań atmosferycznych, itp.). Dość skutecznie przed uszkodzeniem układu wskutek działania wysokiego napięcia można się zabezpieczyć przez włączenie równolegle do C2 warystora metalowo-tlenkowego (elementy takie są powszechnie stosowane w instalacjach telekomunikacyjnych i aparatach telefonicznych oraz w profesjonalnych sterownikach przemysłowych), który zabezpiecza przed przekroczeniem określonego napięcia na linii oraz jest ele-
mentem dużo szybszym i skuteczniejszym niż zastosowane diody. Wykorzystywany wary stor powinien mieć nominalne napięcie pracy nieco większe od napięcia zasilania mikrokontrolera - zastosowanie elementu o zbyt wysokim napięciu pracy spowoduje sytuację, że warystor nie zadziała, mimo iż napięcie na wejściu układu przekroczy wartość bezpieczną dla mikrokontrolera.
Całkowite rozwiązanie problemu przepięć mogących uszkodzić układ sterownika mikroprocesorowego przedstawiono na rys. 2 6b. Wykorzystano tutaj oddzielne zasilanie obwodu czujnika wyższym napięciem (większa odporność na zakłócenia) wraz z separacją galwaniczną obwodów czujnika i linii sygnałowej od obwodów mikrokontrolera. Wykorzystanie transoptora zabezpiecza nas przed przepięciami indukowanymi w linii oraz przed błędami instalatora (podanie zbyt wysokiego napięcia na wejście układu co najwyżej uszkodzi tylko transoptor). Układ zachowuje logikę zgodną z układem z rys. 26a (zwarcie styku oznacza stan ,,0"). Rezystor R2 zmniejsza czułość obwodu detekcyjnego transoptora (konieczność silniejszego oświetlenia fototranzystora w celu osiągnięcia przepływu prądu wystarczającego do spadku napięcia do poziomu stanu ,,0"), a co za tym idzie zwiększa odporność na zakłócenia.
Uważny Czytelnik zapewne zauważy, że przy przedstawianiu układów z elementami stykowymi ani razu nie zwrócono uwagi na problem drgania styków, ani też na problem wolnego narastania napięcia wskutek stosowania kondensatorów filtrujących. Powodem, dla którego mówimy o tym dopiero teraz, jest fakt, że w systemach mikroprocesorowych problemy związane z tymi zjawiskami załatwia się na drodze programowej, dążąc do jak największej prostoty sprzętu.
Zarówno zjawisko drgania styków, jak i zjawisko powolnego narastania napięcia jest wstępnie eliminowane już wskutek sposobu stosowanego przez mikrokontroler do sprawdzania stanów na liniach portów. Stany te są sprawdzane w każdym cyklu maszynowym w określonym takcie zegara, natomiast
przez pozostały czas zmiana stanu na liniach portów nie wpływa w żaden sposób na stan mikrokontrolera. Pierwszym elementem filtrującym jest zatem częstotliwość cykli maszynowych (1/12 częstotliwości zegarowej w przypadku omawianych mikrokontrolerów rodziny 51), od której zależy eliminowanie stanów przej ściowych krótszych niż jeden cykl maszynowy. Zazwyczaj przy współpracy z różnego rodzaju elementami stykowymi ten podstawowy stopień filtracji nie jest wystarczający - stosuje się wówczas opóźnienie programowe. Program, którego działanie zależy od stanu określonej linii, sprawdza w tym przypadku wartość pomocniczego bitu, natomiast faktyczny stan linii odczytuje procedura wywoływana co określony czas (np. wskutek wystąpienia przerwania z któregoś z liczników) zapisująca stan linii do tego pomocniczego bitu. Przykładowe rozwiązanie przedstawiono na list. 9.
Stosując powyższe rozwiązanie, należy pamiętać o odpowiednim zaprogramowaniu (włączeniu) układu przerwań oraz o dobraniu liczby cykli zliczanych przez licznik w celu uzyskania pożądanego opóźnienia.
Jak już wspomniano wcześniej, układy stykowe mogą pracować w dwóch konfiguracjach - jako styki normalnie zwarte lub normalnie rozwarte. Z punktu widzenia sprzętowego rozwiązania podłączenia do systemu mikroprocesorowego rodzaj styków nie ma żadnego znaczenia, jedynie podczas pisania programu należy uwzględniać negację powstającą pomiędzy oboma rodzajami styków (określenie stanu aktywnego linii). Konfiguracja styków jest natomiast bardzo ważna z uwagi na bezpieczeństwo i pewność działania urządzenia. Należy pamiętać, że stosowanie styków normalnie zwartych umożliwia wykrycie przerwy w linii łączącej taki styk z systemem mikroprocesorowym. Łatwo sobie wyobrazić co mogłoby się stać w przypadku awarii linii łączącej układ z wyłącznikiem bezpieczeństwa lub innym elementem odpowiadającym za awaryjne wyłączenie układu. Przy zastosowaniu styków w konfiguracji normalnie otwartej urządzenie nie zadziała w przypadku
+Uzas
b)
+24V
O O
R1 1k5
Rys. 26
Elektronika Praktyczna 9/2003
83
KURS
Ust. 9.
i STAN - pomocnicza zmienna bitowa przechowująca stan linii portu
;(program główny)
JB STAN, ETYKIETA ;reakcja programu na stan linii portu (tutaj skok)
ETYKIETA:
; (koniec programu)
PRZERWANIE_TO: ;procedura obsługi przerwania od odpowiednio
;zaprogramowanego licznika TO
i (inne rozkazy, np. przeładowanie licznika)
MOV C,P3.0 ;sprawdzamy stan linii P3 . 0
MOV STAN,C i i kopiujemy go do pomocniczej zmiennej
RETI i koniec obsługi przerwania
uszkodzenia przewodu łączącego. Jeśli natomiast zastosujemy styki normalnie zwarte, to uszkodzenie przewodu (najczęściej jest to przerwanie ciągłości obwodu) spowoduje reakcję układu taką samą jak w przypadku zadziałania danego urządzenia (np. wciśnięcia przycisku) i praca systemu zostanie wstrzymana. Podobne zalety można przedstawić w stosunku do styków normalnie rozwartych - stosuje się je w układach, w których przerwa w połączeniu nie
wywoła żadnych groźnych następstw, a zastosowanie styków normalnie zwartych mogłoby wywołać niekontrolowane działanie urządzenia w razie awarii okablowania (np. włączanie jakiegoś urządzenia w chwili wciśnięcia przycisku) . Najogólniej mówiąc, należy przestrzegać zasady, że elementy (przyciski, przekaźniki, krańcówki i inne) ze stykami normalnie rozwartymi stosuj e-my w obwodach odpowiadających za uruchamianie i sterowanie jakimiś urzą-
dzeniami współpracującymi z systemem mikroprocesorowym, natomiast elementy ze stykami normalnie zwartymi stosujemy w obwodach wyłączających i obwodach bezpieczeństwa.
Powyższe rozważania dotyczą zastosowania dwóch przykładowych grup urządzeń jako źródła sygnałów w systemie mikroprocesorowym. Chociaż zapewne najczęściej stosowane są układy z elementami stykowymi, to w takim systemie mogą być zastosowane również innego rodzaju elementy czujnikowe czy inne źródła sygnałów, zasadniczo nie zmieni się jednak sposób ich sprzęgnięcia z mikrokontrole-rem. Należy pamiętać tylko o parametrach używanych elementów i w razie potrzeby zadbać o dopasowanie poziomów elektrycznych, na co zwrócono uwagę przy omawianiu ogólnych zasad wykorzystywania portów jako wejścia. Bardzo ważną sprawą jest także zadbanie o minimalizację zakłóceń przy zastosowaniu długich przewodów połączeniowych oraz zwrócenie uwagi na ewentualne niebezpieczeństwa związane z różnego rodzaju przepięciami mogącymi zakłócać pracę układu lub nawet doprowadzić do jego uszkodzenia. Paweł Hadam, AVT pawel.hadam@ep.com.pl
84
Elektronika Praktyczna 9/2003
PROJEKTY CZYTELNIKÓW
DzioS "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.
Bascomowy amplituner
Prezentowany
w artykule ampliiuner
zbudowałem, ponieważ
chciałem mieć samodzielnie
wykonany sprzęt, który
będzie odtwarzać muzykę
na wysokim poziomie.
Z założenia miał to być
sam wzmacniacz, tuner
powstał jako użyteczny
"dodatek". Wzmacniacz
zb udawałem na najlepszych
dostępnych układach oraz
elementach biernych.
Przykładem mogą być
metalizowane rezystory lub
kondensatory foliowe firmy
W1MA. Wszystko po to, aby
osiągnąć jak najlepszy
dźwięk i brzmienie. Wydaje
mi się, że osiągnąłem
oczekiwany efekt.
Projekt
112
Wzmacniacz za-silany jest z dwóch zasilaczy (schemat elektryczny pokąsano na rys. 1). Jeden, symetryczny, zbudowano na transformatorze toroidalnym TR2, mostku prostowniczym ERl oraz kondensatorach wygładzających C1...C6 o łącznej pojemności 40000|_iF. Służy on do zasilania końcówki mocy. Na jego wyjściu otrzymujemy napięcie symetryczne o wartości ok. ą35 V. Zasilacz ten jest załączany do sieci poprzez triak Ql oraz optotriak
Ul. Dzięki
temu, że optotriak posiada obwód włączania przy zerze w sieci redukowany jest impuls prądowy powodowany załączeniem transformatora dużej mocy (150 W) i ładowaniem "pustych" kondensatorów o dużej pojemności. Drugi zasilacz jest na stałe włączony do sieci i zasila pozostałe obwody wzmacniacza tzn. sterownik i przedwzmacniacz. Odpowiednie napięcia wytwa-
rzane są przez stabilizatory U2, U3 i U4. Włączenie końcówki mocy następuje poprzez załączenie optotriaka Ul.
Końcówka mocy jest zbudowana na układzie LM3886 (rys. 2). Jest to jeden z najlepszych scalonych wzmacniaczy audio. Układ ten posiada obwód wyciszania wejścia. Dzięki niemu podczas włączania
Rys. 1. Schemat elektryczny zasilacza amplitunera
Elektronika Praktyczna 9/2003
85
PROJEKTY CZYTELNIKÓW
Rys. 2. Schemat elektryczny końcówki mocy
lub wyłączania nie występują żadne stuki w głośnikach. Elementy Cl, Rl i R2 wyznaczają dolną częstotliwość graniczną przenoszenia wzmacniacza. Elementy pracujące w pętli sprzężenia zwrotnego: R3, R5 i C3 ustawiają odpowiednie wzmocnienie. Kondensator C2 eliminuje zakłócenia w skład których wchodzą sygnały zawierające wyższe składowe, np. powstające podczas włączania świetlówek. Kondensator C4 wraz z R4 współpracują z obwodem wyciszania wejścia. Kondensatory C5...C8 filtrują zasilanie. Obwód Li, R6 oddziela pojemność kabla od wyjścia wzmacniacza, przez co zabezpiecza go przed wzbudzeniem od strony wyjścia. Cewka Li została wykonana poprzez nawinięcie kilku zwojów drutu na rezystorze 10H/1W.
Przedwzmacniacz został wykonany na układzie TDA7318 (rys. 3). Układ ten ma bardzo dobre parametry przenoszenia dźwięku. Układ posiada 4 wejścia z możliwością wzmocnienia, regulację wzmocnienia i barwy tonu. Wszystko to jest sterowane poprzez magistralę I2C. Kondensatory C7, C8, C15 służą do filtrowania zasilania i wewnętrznych bloków układu. Kondensatory Cl, C2 ustalają charakterystykę regulacji tonów wysokich. Elementy Rl, R2, C3, C4, C5 i C6 ustalają charakterystykę regulacji tonów niskich. Każde wejście
posiada na wejściu kondensatory oddzielające składową stałą z sygnału. Są to elementy C9, CIO, Cli, C12, C13, C14. Wejście 1 (CD) posiada tłumik ograniczający nieco sygnał wejściowy z odtwarzacza CD. Jest to element opcjonalny, zależny od wielkości sygnału z odtwarzacza CD. Wejście 2 (TUNER) jest wzmocnione o +12,5 dB i połączone bezpośrednio z modułem tunera.
Sterownik został oparty na mikrokontrolerze AT90S8535 firmy Atmel. Układ zerujący U2 zapewnia poprawne zerowanie mikrokontrolera po włączeniu zasilania. Jego dodatkową rolą jest zabezpieczenie pamięci EEPROM przed przypadkowym zapisem. Procesor jest ,,napędzany" kwarcem 8 MHz. Układ Ul służy do odbierania sygnałów z pilota RC5. Przyciski SW1...SW7 typu NC {Normal
Closed) tworzą klawiaturę. Elementy C8, C9, R8, R9 wraz z impulsatorem służą do regulacji parametrów pracy wzmacniacza. Elementy C8 i C9 służą do eliminacji drgań styków impulsatora, jednak w modelu zrezygnowałem z tych elementów. Na płytce jest miejsce na podłączenie przycisku impulsatora, gdy ten takowy ma. Jednak program w udostępnionej wersji nie jest przystosowany do jego obsługi.
Do wyświetlania informacji o ustawieniach służy wyświetlacz LCD 16*1 z podświetlaniem. Fakt istnienia sprzętowego PWM w mikrokontrolerze wykorzystałem do regulacji podświetlenia LCD. Służą do tego elementy R4, C7, Tl. Do regulacji kontrastu wyświetlacza służy rezystor R5. Kwarc 32,768 kHz współpracuje z zegarem RTC zawartym w mikrokontrolerze. Dzięki niemu budowa zegara sprowadziła się tylko do drobnych zabiegów programowych. Dioda D2 służy do sygnalizacji włączenia amplitunera. Tuner wykonałem na bazie modułu OM5610. Dzięki niemu wykonanie tunera stało się bardzo proste. Pozostało jeszcze gniazdo DB9, do którego podłączone są styki wykorzystywane do programowania mikrokontrolera oraz sygnały RXD i TXD, które po zmianie programu mogą służyć do komu-
Rys. 3. Schemat elektryczny przed wzmacniacza
86
Elektronika Praktyczna 9/2003
PROJEKTY CZYTELNIKÓW
Rys. 4. Schemat elektryczny sterownika
Elektronika Praktyczna 9/2003
87
PROJEKTY CZYTELNIKÓW
nikacji z urządzeniami zewnętrznymi.
Amplituner po zmontowaniu praktycznie nie wymaga regulacji. Trzeba jedynie ustawić jasność świecenia diody LED D2 (za pomocą potencjometrów R2 i R3). Dioda ta świeci na zielono, gdy wzmacniacz jest włączony, na czerwono, gdy wzmacniacz jest wyłączony i na żółtopo-marańczowo, gdy jest aktywna funkcja Sleep.
Oprogramowanie
Cala ,,mądrość" urządzenia zawarta jest w programie sterującym, który został napisany w języku BASCOM-AVR. Dzięki temu powstał naprawdę bardzo szybko (2 dni!). Ponieważ program jest bardzo obszerny, nie opiszę tutaj jego działania. Jest on dostępny na stronie internetowej www.-ep.com.pl w dziale Download oraz na stronie autora projektu: audiofilek.wAnteria.pl.
Procesor trzeba zaprogramować przed podłączeniem przycisków lub na jakiejś oddzielnej płytce, ponieważ zastosowałem przyciski typu NC i programator nie działał poprawnie. Można oczywiście zastosować normalne przyciski (NO), ale trzeba w takim przypadku zmodyfikować program. Amplituner jest sterowany pilotem RC5. Zastosowałem pilota, jakiego miałem w danej chwili pod ręką. Aby zastosować inny rodzaj pilota, trzeba zmienić w programie jego adres i numery komend. Procesor programowałem "donglem" STK200/300.
WYKAZ ELEMENTÓW
Wzmacniacz Rezystory
Rl, R3: lkQ
R2, R5: 22kQ
R4: 47 kQ
R6: 1OQ/1W bezindukcyjny
Kondensatory
Cl: 2,2^F MKT
C2: 22OpF styrofleksowy
C3:
C4:
C5, Có: 1000^F/50V
C7, C8: 100nF/50V
Półprzewodniki
Ul: LM3886
Różne
LI: cewka wg opisu
w tekście
Przedwzmacniacz Rezystory
Rl, R2: 5,6kQ R3, R5: 47kQ R4, R6: 10ka Kondensatory Cl, C2: lnF MKT C3...C6: lOOnF MKT C7: lOOnF C8: 47^F/16V C9...C14: 2,2^F MKT C15: 22^F/16V Półprzewodniki Ul: TDA7318
Obsługa i funkcje wzmacniacza
Tuner ma możliwość zapamiętania 9 stacji. Krok syntezy podczas szukania stacji wynosi 12,5 kHz. W wersji modelowej jest dostępne wyłącznie strojenie
Sterownik Rezystory
Rl: 200Q
R2, R3, R5: potencjometr montażowy 4,7kQ R4: 4,7kQ R6, R7: 10ka R7, R8: 3,3kQ Kondensatory Cl, C2: 10ąiF/16V C3, C4: lOOnF C5, Có: 27pF C7: 470^F/16V C8, C9: lnF Półprzeowdniki Dl: 1N4001
D2: LED 3mm, 2-kolorowa Tl: BD243 Ul: TFMS5360 U2: DS1813 U3: AT90S8535 U4: OM5610 Różne
Yl: kwarc 8MHz Y2: kwarc 32,768kHz IMP1: Impulsator np. Clii V153H05ABT SW1...SW7: przyciski typu NC (Normal Close) Gniazdo DB9 na obudowę Wyświetlacz alfanumeryczny LCD 16*1 z podświetlaniem
ręczne. Każde wejście ma własną pamięć wzmocnienia i tonów. Jeśli po włączeniu lub wyciszeniu wzmocnienie jest za duże, to następuje automatyczna redukcja wzmocnienia. Oprócz klasycznych funkcji, jak regulacja głoś-
Zasitacz Rezystory
R1...R3: 220Q Kondensatory
Cl, C2: 220nF/50V
C3...C6: 10000^F/50V
C7...C9: 1000^F/16V
CIO, Cli, C13, C14, Cló,
C17: lOOnF
C12: 22O^F/1OV
C15, C18: 10ąiF/16V
Półprzewodniki
BR1: mostek 10A
BR2: mostek 1,5A
Ql: TIC225D
Ul: MOC3041
U2: 7805
U3: 7809
U4: 7812
Różne
TRI: TS5/6
TR2: TST150/2x24V
Fl: 63mA WTA
F2: 2,5A WTA
F3, F4: 3.15A
ności, balansu i barwy dźwięku, możliwa jest także trzystopniowa regulacja jasności podświetlenia, użytkownik może korzystać także z cyfrowego zegara z budzikiem. Bartłomiej Gross
88
Elektronika Praktyczna 9/2003
BASCOMOWE PORADY
W bascomowym "kąciku" będziemy się starać w miarę przystępnie przedstawiać rozwiązania problemów napotykanych przez naszych Czytelników podczas pisania programów w Bascomle. Rubryka ta powstała z myślą o rozwiązywaniu problemów, na jakie najczęściej napotykają programiści, zatem zachęcamy wszystkich Czytelników do zgłaszania problemów na jakie się natknęli podczas tworzenia własnych programów.
Konfiguracja portów mikrokontrolera AVR Stosowanie aliasów
W pierwszym odcinku cyklu przedstawimy proste i zasadnicze dla posługiwania się mikrokontro-lerami zagadnienie, jakim jest sposób konfiguracji portów mikrokont-rolerów AVR. Ze względu na odmienną od '51 budowę mikrokont-rolerów AVR, konfigurowanie portów w Bascom AVR różni się od konfiguracji portów w Bascom 51, w którym linię portu - aby pracowała jako wejście - wystarczyło ustawić w stan logicznej "1". Problemy z konfiguracją portów mikro-kontrolerów AVR przez początkujących wynikają zazwyczaj z braku wiedzy o działaniu, budowie i konfiguracji mikro-kontrolerów AVR, które funkcjonalnie różnią się znacznie od popularnych '51.
Mikrokontrolery AVR, ze względu na swoją budowę wymagają aby linie portów, które będą wykorzystywane w urządzeniu były odpowiednio skonfigurowane - musi to zrobić programista, najlepiej na początku programu. Na rys. 1 przedstawiono jako przykład budowę jednej linii portu mikrokontrolera AVR. Na rysunku widać, że do konfiguracji portu przeznaczono dwa rejestry: DDRx oraz PORTx, które umożliwiają konfigurację oraz obsługę linii I/O. Należy mieć na uwadze, że linie portów mikrokontrolera mogą pełnić także alternatywne funkcje - np. mogą być wejściem przetwornika A/C, analogowego komparatora, timera itd.
Na początku programu (choć także w jego dowolnej części można zmienić konfigurację linii portu) należy zadeklarować czy używane wyprowadzenie (port) będzie pełnić funkcję wejścia czy też wyjścia mikrokontrolera. Służy do tego specjalny rejestr DDRx, który możemy oprogramować "wprost" (wpisując bezpośrednio do niego wartość) lub w sposób "bascomowy", który jest bardziej czytelny i łatwiejszy do
opanowania dla początkującego. W Bascom AVR używamy do tego celu następujących instrukcji:
CONFIG PORTX = [INPUT/OUTPUT] CONFIG PINx.y = [INPUT/OUTPUT]
gdzie: x - numer portu, y - numer końcówki
Jeśli podamy parametr INPUT, wtedy końcówka będzie wejściem, analogicznie OUTPUT - skonfiguruje port lub daną linię jako wyjście. Proszę o zwrócenie uwagi na różnice w składni: polecenie CONFIG PORTx konfiguruje cały 8-bitowy port jako wejście lub wyj-
AVR-y od środka
Szczegółowe informacje o budowie rdzenia
mi kro kontrolerów AVR oraz opisy ich
wybranych bloków funkcjonalnych można
znaleźć w książce "Mikrokontrolery AVR
w praktyce", dostępnej w ofercie
handlowej AVT pod symbolem
KS-230929. ___Ś
ście czyli CONFIG PORTB=INPUT ustawi wszystkie 8 końcówek portu B jako wejścia. Jeśli natomiast chcemy ustawić pojedyncze nóżki jako wejścia/wyjścia należy użyć drugiej składni: CONFIG PINx.y. Czyli aby ustawić linię B.2 jako wyjście, polecenie konfiguracyjne jest następujące: CONFIG PortB.2 = OUTPUT. Jeśli linia B.l ma pracować jako wejście, to polecenie konfiguracyjne będzie następujące: CONFIG PortB.l = INPUT. Jak widać, możliwe są dwie opcje: INPUT - gdy linia ma być wejściem lub OUTPUT, gdy linia ma być wyjściem. Można także użyć wartości bitowej (0 lub 1) aby szybko skonfigurować poszczególne linie portu. W Bascomie do usta-
rzystane dwie instrukcje: SET oraz RESET. Jeśli np. nóżka portu mikrokontrolera skonfigurowana jest jako wyjście, wtedy stan wysoki ustawiamy instrukcją SET PortX.Y. Stan niski wymuszamy instrukcją RESET PortX.Y. Na przykład, aby ustawić linię B.2 mikrokontrolera należy użyć instrukcja: SET PortB.2, a jeśli chcemy zmienić stan linii B.O na niski, to należy użyć instrukcji RESET PortB.O. Bascom udostępnia także instrukcję TOGGLE, która zmienia stan danej końcówki portu na przeciwny. Na przykład instrukcja TOGGLE PortB.O zmieni na przeciwny stan linii B.O mikrokontrolera.
Pozornie bardziej skomplikowana wydawać się może obsługa wejścia, ale tak w praktyce nie jest. Jeśli li-_^b nia jest skonfigurowana jako ^^^ wejściowa, wtedy (wynika to z wewnętrznej budowy mikrokontrolera) powinniśmy zadeklarować: czy linia jest wejściem "podciągniętym" do VCC czy też "pływającym". Jeśli stan linii portu ustawimy poleceniem SET PortX.Y, wtedy na linii X.Y w stanie spoczynku pojawi się napięcie VCC
Tranzystor MOS (podciągający)
wiania oraz zerowania danych linii mikrokontrolera ustawionych jako Rys. 1. Przykład budowy jednej z linii portu wyjście mogą być wyko- mikrokontrolera AVR
Elektronika Praktyczna 10/2003
101
BASCOMOWE PORADY
List. 1. Program sterujący diodą LED w zależności od stanu na
wejściu D.5
CONFIG PinB.2= OUTPUT wyjście do którego podłączona jest dioda
CONFIG PinD.5 = INPUT Wejście do którego podłączony jest mikroswitch
teraz ustawiamy na obydwu linach stan wysoki
Set Portb.2 tu Żeby dioda po włączeniu nie świeciła
Set Porta.5 a tu podciągamy port
Do pętla główna programu
If Pind.5 = 0 Then porównujemy czy na końcówkę D.5 podano masę
(naciśnięty przycisk)
Reset Portb.2 ustaw stan niski na Portb.2 - co spowoduje zapalenie
diody
Else W przeciwnym wypadku
set PortB.2 ustaw na portB.2 z powrotem na stan wysoki
czyli zgaś diodę
End if
LOOP koniec nieskończonej pętli
(wewnętrzny rezystor podciągający zostanie dołączony do danej linii). Natomiast, jeśli nie skonfigurujemy wejścia, dołączając do niego wewnętrzny rezystor podciągający (np. poprzez ustawienie danego bitu w rejestrze portx) lub wydamy polecenie RESET PortX.Y, wtedy na linii wejściowej nie będzie (tak jak w wypadku wyjścia) "pewnej" masy, lecz wejście będzie "wisieć" w powietrzu. Na takiej końcówce wejściowej nie będzie stabilnego, jednoznacznie określonego stanu logicznego. Taką konfigurację linii można wykorzystać np. gdy z jakichś przyczyn wejście musi być "ściągnięte" przez zewnętrzny rezystor do masy. Rezystory "podciągające" ustalają stan spoczynkowy linii wejściowych i uodparniają je także - w pewnym stopniu - na zakłócenia. Dlatego też zaleca się, aby podczas korzystania z wejść konfigurować je jako linie z aktywnymi rezystorami "podciągającymi" lub zastosować zewnętrzne rezystory "podciągające" (lub "ściągające", zależnie od aplikacji). Oczywiście rezystory podciągające należy używać, gdy na wejściach portów będzie zewnętrznie podawany tylko jeden z dwóch możliwych stanów logicznych, co będzie mieć miejsce np. w przypadku dołączenia przycisków do linii I/O mikro-kontrolera. W przypadku sterowania
(AINiJPD (ICP)PB0
Rys. 2. Schemat ideowy układu dla przedstawionego przykładu
wejścia z układu cyfrowego, na którego wyjściu pojawiać się będzie na zmianę stan wysoki i niski, rezystory podciągające nie są potrzebne.
Tak więc, jeśli chcemy zapewnić zawsze stabilny stan na wejściu mikrokontrolera, należy po skonfigurowaniu portu ustawić jego stan na wysoki, najlepiej instrukcją SET PortX.Y, co powoduje dołączenie rezystora "podciągającego".
Aby odczytać stan na wejściu mikrokontrolera posługujemy się poleceniem: zmienna = PinX.Y (na przykład odczyt linii D.5: zmien-na=PinD.5). Należy pamiętać, że do odczytu stanu danej linii wejściowej nie służy rejestr portx, lecz rejestr pinx.
Pozbierajmy zatem wszystko w jakiś konkretny przykład: mikro-kontroler ma sterować diodę LED włączoną między " + " zasilania (VCC) a B.2, w zależności od stanu wejścia D.5 (linia PD5 jest więc wejściem, natomiast PB2 wyjściem). Na rys. 2 przedstawiono schemat elektryczny takiego układu z wykorzystaniem mikrokontrolera ATmega8, którym często będziemy się posługiwać w przykładach przedstawianych w tej rubryce.
Program przedstawiony na list. 1 na czas naciśnięcia przycisku będzie zapalał diodę LED.
W przykładzie, w nieskończonej pętli, cały czas jest sprawdzany przy pomocy warunku if stan linii wejściowej, do której dołączono przycisk. Jeśli zostanie on naciśnięty, stan linii wejściowej zmieni się na niski, co spowoduje zapalenie diody LED. Puszczenie przycisku będzie równoważne z podaniem przez wewnętrzny rezystor podciągający dodatniego napięcia zasilania, czyli stanu wyso-
kiego, przy którym dioda LED będzie wyłączona.
Na koniec jeszcze słowo na temat tzw. aliasów, czyli alternatywnych nazw dla zmiennych, stałych, itd. Ponieważ ludzka pamięć jest zawodna i wygodniej nam zapamiętywać nazwy własne niż nazwy narzucone przez producentów układów, Mark Alberts zadbał także o wygodę programistów. Aliasy umożliwiają nadanie standardowym nazwom portów, rejestrów, zmiennym itp. nazw przyjaznych użytkownikowi. Składnia instrukcji aliasu jest następująca:
Nazwa_przyjazna ALIAS Nazwa_trud-na_do_ z ap am i ę t ani a
Co w przykładzie przedstawionym na list. 1 mogłoby mieć postać:
Dioda Alias PortB.2 'przypisanie 'aliasu "dioda" do nazwy portb.2
Nazwie PortB.2 zostanie przypisana alternatywna nazwa dioda, która jednoznacznie identyfikuje linię portu. Na przykład instrukcja RESET DIODA spowoduje zapalenie diody dołączonej do linii B.2 mikrokontrolera. Podobny alias można stworzyć dla dołączonego do linii wejściowej przycisku. Na przykład:
Przycisk alias pind.5 'przypisanie aliasu "przycisk" 'do nazwy pind.5
W tym przypadku nazwie przycisk przypisano bit 5 rejestru pind, który jest rejestrem wejściowym portu D. Jak to wcześniej wyjaśniono, nie można do odczytu stanów linii wejściowych np. portu D wykorzystać rejestru portd.
Mamy nadzieję, że w tym krótkim artykule przedstawiliśmy w sposób jasny i wyczerpująco zagadnienia związane z konfiguracją linii portów mikrokontrolerów AVR, a także rozwialiśmy najczęściej zgłaszane wątpliwości.
Za miesiąc przedstawimy zagadnienia związane z obsługą sprzętowego interfejsu RS232, w który wyposażony jest niemal każdy mikro-kontroler AVR. Artur Starz, artur.starz@ep.com.pl Marcin Wiązania, marcin.wiazania@ep.com.pl
102
Elektronika Praktyczna 10/2003
BIBLIOTEKA EP
Stcro wantę
o uplonie iskrowym
IV ^Bibliotece BP" 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 polki, Aby nie marnować miejsca w BP, 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,
Publikowane wBP recenzje książek można znaleźć winternecle pod adresem biblioteka,ep,com.pl, Uwaga! Większość prezentowanych książek można zamówić w Dziale Handlowym AVT (patrz str, 66), Chcemy w ten sposób udostępnić je Czytelnikom BP,
Bosch, "Sterowanie silników o zapłonie iskrowym", WKŁ2002
wania klasycznych silników o zapłonie iskrowym (w tym sposobach generowania iskry) oraz silników z różnymi rodzajami wtrysku mieszanki i benzyny. Przy okazji poruszono także tematykę katalizy spalin, przy czym szczególnie wiele uwagi autorzy poświęcili omówieniu roli elektronicznych systemów nadzoru i sterowania w minimalizacji poziomu zanieczyszczeń emitowanych przez silniki.
Książka zawiera podstawowe informacje niezbędne do zrozumienia działania współczesnych elektronicznych systemów "wokół-silnikowych", ale nie zawiera żadnych informacji katalogowych ani serwisowych. Nie przyda się więc zbytnio podczas napraw elektroniki samochodowej, jest natomiast niezastąpiona wszystkim tym elektronikom i mechanikom samochodowym, którzy chcą z pierwszej ręki posiąść wiedzę o nowoczesnych silnikach samo-
UełctronlM PraMyoznaj
Wśród Czytelników EP jest zaskakująco wielu fanów elektroniki samochodowej. Z tego powodu cały czas monitorujemy pojawiające się na rynku książki prezentujące elektronikę samochodową, bez której żaden współczesny samochód już się nie obędzie. W naszej "Bibliotece" prezentujemy tTzecią książkę wydaną przez WKiŁ, w której prezentowane są nowoczesne systemy sterowania pracą silnika. Książka powstała w laboratoriach firmy Bosch, która jest niezaprzeczalnym rynkowym liderem w zakresie elektroniki samochodowej.
Tematyka prezentowanej książki skupia się na systemach stero-
BOSCH
chodowych i "elektronice", która steruje ich pracą.
Andrzej Gawryluk
Praca zbiorowa, "Układy sygnałowe i wzmacniacze wizji w OTVC i monitorach, część 1", Wiesław Haligowski 2002
Wydawnictwo Wiesława Haligowski ego wyspecjalizowało się w publikacji książek przeznaczonych dla serwisów sprzętu elektronicznego różnego typu. Prezentowana książka zawiera informacje katalogowe o układach scalonych stosowanych w torach sygnałowych współczesnych odbiorników telewizyjnych i monitorach komputero-
wych. Część z zamieszczonych w książce materiałów to niemal kompletne noty katalogowe, zawierające wszystkie lub większość informacji niezbędnych podczas naprawiania i uruchamiania odbiorników. Wiele układów - niestety -jest pozbawionych szczegółowych opisów, co można usprawiedliwić - w niektórych przypadkach -trudnościami z dostępem do katalogów firmowych, dość często funkcje pełnione przez opisywane układy są na tyle proste, że publikowanie kompletnej noty katalogowej nie jest konieczne. W takich przypadkach musi wystarczyć standardowy schemat aplikacyjny lub fragment schematu serwisowe-
Okłady sygnałowa wzmacniacze wizji w OTYC i monitorach
Elektronika Praktyczna 10/2003
123
BIBLIOTEKA EP
go odbiornika TV, w którym opisywany układ zastosowano. Wartość publikowanych informacji zwiększają opisy objawów typowych awarii spowodowanych uszkodzeniami opisywanych układów oraz wskazówki ułatwiające ich diagnozę i usunięcie.
Prezentowaną książkę można potraktować jako niezbędnik w bibliotekach serwisantów odbiorników telewizyjnych i monitorów komputerowych.
Andrzej Gawryluk
Praca zbiorowa, "Układy sterujące w zasilaczach i przetwornicach, część 2", Wiesław Haligowski 2003
Pierwszą część tej książki-kata-logu przedstawiliśmy Czytelnikom wEP2/2003. W recenzji zwróciliśmy uwagę na jej dość istotny brak, a mianowicie brak podstawowych parametrów elektrycznych większości opisywanych układów. Niestety, szykując drugą część publikacji wydawnictwo nie uwzględniło naszej uwagi, w związku z czym powstał zbiór kolejnych 251 aplikacji lub wręcz samych schematów blokowych, o niewielkich - w większości przypadków - walorach
Legenda:
praktycznych. W przypadku układów stosowanych w ściśle określony sposób (np. specjalizowane sterowniki do zasilaczy O TV) takie podejście wydawcy nie stanowi większego problemu, ale pozbawienie opublikowanych w książce aplikacji układów Simple Switcher jakichkolwiek informacji o parametrach i dostępnych wersjach układów (a jest to jeden z wielu, wcale nie najbardziej "soczysty" przykład) jest dla mnie niezrozumiałe. Moje zastrzeżenia budzi także redakcyjna niekonsekwencja: część
książka wybitna, polecamy!
książka o dużych walorach praktycznych, polecamy!
może się pizydać
daleka od doskonałości
nie warto kupować
opisów jest w języku polskim, część w języku angielskim, ale nie zachowano ciągłości stylu, co sugeruje... niedbalstwo?
No cóż, krytykować łatwo, ale zdaję sobie sprawę z ogromu pracy, jaki włożono w przygotowanie omawianej książki. Mając nadzieję na solidniejsze przygotowanie kolejnych części sądzę, że 3 lutownice zadowolą autorów.
Mikołaj Andrus
124
Elektronika Praktyczna 10/2003
AUTOMATYKA
Radiomodemy Satel
Najlepsze w transmisji na odległość 77 m...77 km
Rys. 1. Radiomodem Satelline-3ASd EPIC
Popularność tych urządzeń nie dziwi, jeśli weźmie się pod uwagę:
- niezależność ich pracy od jakiegokolwiek operatora i związane z tym niewielkie koszty eksploatacji systemu,
- możliwość obsługi dużej liczby urządzeń,
PODStEĆ
- łatwa diagnostyka sieci radiowej,
- komunikacja z urządzeniami w trybie on-Iine.
Wielość możliwych konfiguracji systemów radiomodemowych firmy Satel gwarantuje dobór takiego rozwiązania, które będzie niezawodne, efektywne i w pełni odpowiadające wymaganiom użytkownika. Satel oferuje dwie grupy produktów. Pierwszą grupę stanowią klasyczne radiomodemy, drugą zaś urządzenia przeznaczone do przesyłania wyłącznie sygnałów cyfrowych.
Radiomodemy
Radiomodemy można podzielić na dwie podgrupy: urządzenia pracujące w paśmie rzędu 400 MHz oraz w paśmie 868...870 MHz.
Pasmo 400 MHz
Dla pasma 400 MHz Satel oferuje trzy serie radiomodemów: Satelli-ne-2ASxE, Satelline-3AS(d) oraz Sa-telline-3AS EPIC. Wszystkie radiomodemy są przystosowane do dwu-
Bezprzewodowa transmisja
danych fest rozwiązaniem
stosowanym w praktyce
z roku na rok coraz chętnie/.
W systemach rozproszonych,
w których poszczególne obiekty rozmieszczone są na dużych obszarach, ogromną
popularnością cieszą się
produkty fińskie/ firmy Satel:
radiomodemy Satelline oraz
urządzenia do przesyłu
sygnałów alarmowych
Sa telco de/Sa te In o de.
Przedstawiamy je w artykule.
kierunkowej transmisji danych. Modele z serii 2ASxE oraz 3AS(d) umożliwiają transmisję pomiędzy dwoma punktami na odległość do ok. 40 km (przy maksymalnej mocy
tH Hi
CENTRALA/
DYSPOZYTORNIA
Rys. 2. Przykładowy system oparty na radiomodemach Satel dla pasma 400 MHz - modele Satelline-3AS(d) oraz Satelline-3AS(d) EPIC
Elektronika Praktyczna 10/2003
125
AUTOMATYKA
Rys. 3. Przykładowy system oparty na radiomodemach Satel dla pasma 868...870 MHz - model Satelline-1870
nadajnika 1 W). W celu zwiększenia zasięgu transmisji, wszystkie modele radiomodemów Satel można stosować w trybie stacji retransmisyjnej (repeaier). Zgodnie z obowiązującym w Polsce prawem, radiomodemy 2ASxE i 3AS(d) można stosować bez konieczności ubiegania się o przydział częstotliwości, gdy transmisja odbywa się z mocą do 20 mW. Moc ta, w zależności od warunków topograficznych oraz zastosowanych anten, pozwala na transmisję danych pomiędzy dwoma punktami na odległość od kilkuset metrów do ok. 4 kilometrów. W przypadku zastosowania większych mocy, użytkownik zobowiązany jest do uzyskania pozwolenia radiowego, czyli przydziału częstotliwości.
Posiadanie pozwolenia jest wymagane w przypadku korzystania z radiomodemów Satelline-3AS EPIC (rys. l), charakteryzujących się dużą mocą nadajnika - od 1 W do 10 W. Takie parametry umożliwiają transmisję na bardzo duże odległości - aż do około 80 kilometrów.
Radiomodemy 3AS EPIC są w pełni kompatybilne z radiomode-mami 3AS, dlatego też można je łączyć w jednej sieci radiowej, co pozwala zredukować koszty instalacji w sytuacji, kiedy nie jest konieczne stosowanie radiomodemów o du-
żej mocy w całym systemie. Tworzy się wówczas sieć szkieletową na radiomodemach 3AS EPIC, do której są dołączone podsieci złożone z modeli 3AS (rys. 2).
Bezpłatne pasmo 868...870 MHz
Zakres częstotliwości 868...870 MHz jest w Polsce nowym bezpłatnym pasmem do transmisji danych, zgodnie z Rozporządzeniem Ministra Infrastruktury, w pełni zgodnym z prawem obowiązującym w Unii Europejskiej. Jest to pasmo wolne -użytkownik więc nie musi starać się o przydział częstotliwości. W omawianym paśmie pracują dwa modele radiomodemów z oferty firmy Satel: Satelline-1870 oraz Satelline-3AS 869.
Model Satelline-1870 jest przeznaczony do transmisji danych na odległości nieprzekraczające 5...6 kilometrów. Bardzo często radiomodemy te są stosowane w halach produkcyjnych, gdzie odległości są stosunkowo niewielkie, a położenie kabla z różnych względów niemożliwe. Radiomodem ten, oprócz małych gabarytów, charakteryzuje się także bardzo atrakcyjną ceną.
Satelline-3AS 869 jest z kolei bliźniaczym modelem radiomodemu 3AS pracującego w paśmie 400 MHz. Ma też wszystkie cechy modelu 3AS, z wyjątkiem zakresu częstotliwości oraz mocy, która maksy-
malnie wynosi 500 mW (zgodnie z wytycznymi dla pasma 868...870 MHz). Moc 500 mW umożliwia przesyłanie danych punkt-punkt na odległość do 15 km.
Dzięki możliwości pracy każdego z radiomodemów z rodziny Sa-telline jako stacji retransmisyjnej, przedstawione w artykule odległości można efektywnie zwiększać, co pozwala na budowanie bardzo rozległych sieci radiomodemowych.
Urządzenia do przesyłu sygnałów cyfrowych
Urządzenia radiowej transmisji informacji alarmowych Satelcode i Satelnode są przeznaczone do tworzenia zarówno prostych, jak i rozbudowanych systemów przekazywania sygnałów binarnych lub alarmów drogą radiową w promieniu od kilku do kilkunastu kilometrów od anteny nadajnika. Systemy takie są wykorzystywane w systemach monitoringu przemysłowego, w ochronie osób i mienia (zabezpieczenia przeciw pożarom i włamaniom, monitoring obiektów), ale także do zdalnego przekazywania sygnałów sterujących.
Prosty system przesyłania alarmów (pojedyncza komórka) składa się z odbiornika - Satelnode X3S oraz dowolnej liczby nadajników sygnałów alarmowych - Satelcode
126
Elektronika Praktyczna 10/2003
AUTOMATYKA
-SEKTOR
Rys. 4. Przykładowy system zdalnego monitoringu oparty na radiomodemach Satelline-3AS(d) oraz urzq-dzeniach Satelcode/Satelnode
(rys. 3). Każdy nadajnik ma swój adres pozwalający na jednoznaczne identyfikowanie i lokalizowanie komunikatów alarmowych przezeń nadawanych. Przekazane komunikaty alarmowe mogą być przesłane do odpowiednio oprogramowanego komputera lub też wykorzystane do uaktywnienia wbudowanych wyjść przekaźnikowych odbiornika. Kompletny system może składać się z wielu takich podsystemów pracujących niezależnie lub też połączonych drogą radiową (za pomocą radiomodemów serii Satelline - rys. 4).
Budowa oraz późniejsza obsługa systemów alarmowych opartych na urządzeniach firmy Satel jest szybka i efektywna. Konfiguracja poszczególnych urządzeń jest prosta i nie wymaga stosowania specjalistycznych narzędzi. W środowisku miejskim maksymalna odległość pomiędzy urządzeniami pojedynczej komórki systemu wynosi najczęściej około 3 km, zaś w terenie niezabudowanym - nawet 15 km. Odległość ta może być zwiększona przez zastosowanie anten wzmacniających.
Koszty instalacji
Zastosowanie w systemie transmisyjnym anten kierunkowych, niezbędnych do przesyłania danych na
większe odległości, nie stanowi żadnego problemu, bowiem w ogromnej większości przypadków nie ma potrzeby budowania specjalnych masztów antenowych, gdyż zazwyczaj anteny umieszczane są na najwyższych obiektach na danym obszarze (wysokie budynki, kominy, słupy energetyczne, maszty radiowe, GSM, itp.). Także wykonanie projektu radiowego, który do niedawna był obligatoryjny, teraz nie zawsze jest konieczne. Urząd Regulacji Telekomunikacji i Poczty, do którego składany jest wniosek o wydanie pozwolenia radiowego, zazwyczaj wymaga wykonania projektu w sytuacji, gdy na danym obszarze istnieje duże zagęszczenie urządzeń radiowych. W pozostałych przypadkach zwykle wystarcza wypełnienie wniosku. Jeśli wykonanie projektu jest konieczne, firma Astor pomaga użytkownikom w jego przygotowaniu, kontaktując ich z firmami specjalizującymi się w tym zakresie. Firmy te najczęściej pomagają także w uzyskaniu przydziału częstotliwości.
Urządzenia transmisji sygnałów cyfrowych Satelcode/Satelnode oraz radiomodemy Satelline mogą być zastosowane w każdej gałęzi prze-
mysłu, wszędzie tam, gdzie położenie kabla szeregowego jest niemożliwe lub po prostu nieopłacalne.
Radiomodemy Satel posiadają także wiele dodatkowych zalet, takich jak możliwość transmisji w protokole Profibus DP bez ograniczenia długości sieci, jakie narzuca ten protokół.
Urządzenia Satel są najczęściej stosowane w systemach rozproszonych, obejmujących zasięg od 77 metrów do 77 kilometrów. Przykładem takich aplikacji jest zdalne sterowanie i monitoring sieci wod-no-kanalizacyjnych, węzłów ciepłowniczych oraz monitoring trakcji elektrycznej. Niezawodność radiomodemów potwierdza długa lista referencyjna.
Prostota wdrażania i eksploatacji urządzeń Satel powodują, że do ich użytkowania nie jest wymagana specjalistyczna wiedza, a dzięki systemowi bezpłatnych testów pierwsze próby z radiomodemami Satel może podjąć każda osoba tym zainteresowana. Tomasz Michałek, Astor Sp. z o.o.
Dodatkowe informacje
Radiomodemy prezentowane w artykule są dostępne w firmie Astor, tel. (12)428-63-40, www.astor.com.pl.
Elektronika Praktyczna 10/2003
127
AUTOMATYKA
Przemysłowe cyfrowe karty wejść i wyjść
Addinum to karty przeznaczone dla magistrali PCI, które mogą być instalowane zarówno w standardowych obudowach PC z płytami ATX, jak i w przemysłowych obudowach 19". Wejścia kart są przystosowane do pracy w przemysłowym standardzie, w którym napięcie +24 V odpowiada logicznej "1", dzięki czemu mogą one bezpośrednio współpracować ze sterownikami PLC.
Ze względu na uniwersalność, karty mogą być stosowane szeroko w dowolnych aplikacjach automatyki przemysłowej i w sterowaniu procesami, np. do sterowania i monitorowania stanów wejść i wyjść, do przełączania sygnałów, jako interfejs do automatycznego testowania instalacji i urządzeń, do włączania, wyłączania i monitorowania odbiorników elekt-
rycznych. Pozwalają także na podłączenie takich urządzeń, jak np. zawory, pompy, przekaźniki elektromagnetyczne, wentylatory, światła czy sterowniki PLC. Wejścia kart są odizolowane galwanicznie od interfejsu PCI wejścia i wyjścia. Zapewnia to odseparowanie komputera od obiektów i sygnałów zewnętrznych. Wejściowe i wyjściowe sygnały cyfrowe są przesyłane przez optoizolatory. Karty zabezpieczone są też przed przepięciami, wyładowaniami elektrostatycznymi i zakłóceniami elektromagnetycznymi wysokiej częstotliwości (EMI). Niektóre karty wyposażono w dodatkowe zabezpieczenia: przed przekroczeniem dopuszczalnej temperatury, przed nadmiernym spadkiem napięcia zasilającego, wbudowano w nie także moduły watch-dog i timer. Poprzez odczyt stanu re-
Fot. 1. Karta APCI-1032
Niemiecka firma Addi-Data wprowadziła do sprzedaży
karty wejść i wyjść cyfrowych, przystosowanych
do pracy w systemach zasilanych napięciem 24 V. Są one przeznaczone przede
wszystkim do pracy w trudnych warunkach
przemysłowych. Ich
możliwości przedstawiamy
w artykule.
jestru statusu można prowadzić bieżącą diagnostykę na wypadek zwarcia, przegrzania, spadku napięcia lub jego nadmiernego wzrostu.
Napięcie nominalne dla logicznej "1" wynosi 24 VDC, ale dopuszczalny zakres zmian napięcia mieści się w przedziale 19...30 VDC, przy maksymalnym poborze prądu 6 mA. Napięcie z przedziału 0...17 VDC jest traktowane jako logiczne "0" (prąd wpływający do wejścia nie przekracza wtedy 0,6 mA). Opóźnienie sygnału dla 24
Fdt. 2. Karta APCI-1500
Fot. 3. Karta APCI-1564
Tab. 1. Zestawienie podstawowych parametrów kart firmy Addi-Data ^^_
Parametr Wejoecia Wgcedaiwflcece Wyjoecia
APCI-1016 APCI-1032 APCI-1564 APCI-1500 APCI-1516 APCI-2016 APCI-2032
16 32 32 16 8
Wejścia przerywające 16 16 14
Izolacja 1000 V tak tak tak tak tak tak tak
Filtrinzabezpieczenie tak tak tak tak tak tak tak
Napięcie nominalne DC (VI 24 (19-30) 24 (19-30) 24 (19-30) 24 (19-30) 24 (19-30)
Prąd wejściowy przy 24 VDC [mA] 6 6 6 6 6
32 16 8 16 32
Izolacja 1000 V tak tak tak tak tak tak tak
Napięcie nominalne DC (VI 24 (10-36) 24 (10-36) 24 (10-36) 24 (10-36) 24 (10-36)
Prąd wyjściowy poj. wyjścia [A] 0,5 < 0,5 <>> 0,5 "i 0,5 <>> 0,5 '?>
Watchdog tak tak tak tak tak
Timer tak tak
'Ś'Ograniczony do 3A dla wszystkich wyjść (?> Ograniczony do 2x3A dla wszystkich wyjść
128
Elektronika Praktyczna 10/2003
AUTOMATYKA
V wynosi 70 fis, a maksymalna częstotliwość sygnału wejściowego 5 kHz. Niektóre z wejść mogą być wykorzystywane jako wejścia przerywające, co poszerza możliwości zastosowań.
Wyjścia o napięciu nominalnym 24 VDC wymagają podania na kartę zewnętrznego napięcia zasilającego o wartości 10...36 V. Wyjścia można obciążać prądem o natężeniu do 0,5 A, przy dopuszczalnym sumarycznym prądzie dla wszystkich wyjść do 3 A (dla kart do 16 wyjść) lub 6 A (2x3 A dla kart do 32 wyjść). Wyjścia mają zabezpieczenia przeciw-zwarciowe, realizowane przez bezpieczniki polimerowe. Dodatkowo, w momencie włączenia zasilania lub restartu komputera wszystkie wyjścia ustawiane są w stanie logicznego "0".
Udostępniane przez producenta oprogramowanie to sterowniki dla systemów Windows 2000/NT/98, w tym sterowniki czasu rzeczywistego dla Windows NT, sterowniki do Lab-View, przykłady programowania w Vi-sual Basic, C, C++, Delphi. Dostępne są również narzędzia dla Linuksa.
Większość kart obsługiwana jest pod Windows przez nowe oprogramowanie Addipack - sterownik oparty na koncepcji karty wirtualnej. Funkcje wszystkich zainstalowanych jednocześnie w komputerze kart interpretowane są jako funkcje jednej
Fot. 4. Karta APCI-2032
Fot. 5. Karta APCI-2200
(wirtualnej) karty. Pozwala to na napisanie tylko jednej funkcji oprogramowania dla wszystkich kart mających te same możliwości sprzętowe, bez konieczności odwoływania się do adresów poszczególnych kart.
W serii Addinum dostępne są obecnie następujące karty dla magistrali PCI:
- APCI-1016 - 16 wejść,
- APCI-1032 - 32 wejścia (fot. 1),
- APCI-1516 - 8 wejść, 8 wyjść,
- APCI-1500 - 16 wejść, 16 wyjść (fot. 2),
- APCI-1564 - 32 wejścia, 32 wyjścia (fot. 3),
- APCI-2016 - 16 wyjść,
- APCI-2032 - 32 wyjścia (fot. 4).
Zestawienie ich najważniejszych parametrów znajduje się w tab. 1.
Nie tylko wejścia/wyjścia
Warto tu wspomnieć jeszcze o dwóch kartach z serii Addinum, ale o nieco innych funkcjach. Pierwsza to APCI-2200 (fot. 5) - karta wyjść przekaźnikowych. Zależnie od wykonania zawiera 8 lub 16 przekaźników. Za jej pomocą można przełączać napięcia o wartości do 60 VDC lub 48 VAC, przy maksymalnym natężeniu prądu 1 A. Moc dostarczana do obciążenia nie może przekraczać 30 W. Karta może być dodatkowo wyposażona w 8 wejść cyfrowych 24 V.
Drugim interesującym rozwiązaniem jest APCI-1024 - karta 24 wejść cyfrowych różnicowych 0...60 V. Przeznaczona jest przede wszystkim do pomiarów samochodowych, w których coraz częściej są stosowane systemy zasilania 42 V. W przeciwieństwie do standardowych kart cyfrowych, APCI-1024 może pracować z dwoma poziomami przełączania, programowanymi niezależnie dla każdego wejścia. Karta sprawdza, czy sygnał jest poniżej, pomiędzy lub powyżej poziomów przełączania. Pozwala to na wykrywanie wartości krytycznych i ostrzeganie np. o spadku napięcia lub przekroczeniu zadanego napięcia.
Do wszystkich prezentowanych w artykule kart są dostępne kable przyłączeniowe i różne wygodne panele zacisków śrubowych i dodatkowych przekaźników do mocowania na szynie DIN.
D o dat ko we i nf o rma ej e
Opracowanie na podstawie materiałów tirmy Addi-Data: Egrnont Instruments, ul. Chtodna 39, pawilon 11, 00-867 Warszawa, tel, (22) 8506205, tax (22) 6540248, http://www.egmont.com.pl, e-mail: addidata@egmont.com.pl
130
Elektronika Praktyczna 10/2003
AUTOMATYKA
Kolorowa moc
IMS - terminale graficzne HMI nowej generacji
Jakie najistotniejsze cechy powinien mieć terminal, aby spełniać wymagania użytkowników? Bez wątpienia, powinien być przede wszystkim wyposażony w czytelny, możliwie duży wyświetlacz, na którym będą wyświetlane informacje o przebiegu nadzorowanego procesu. Drugą istotną cechą jest możhwość wygodnego programowania terminala. Trzecią, nie mniej istotną, jest łatwość dołączenia terminala do systemu. Ponieważ rynek terminali graficznych jest stosunkowo młody, przez długi czas występowały na nim różne, często sztywne standardy komunikacyjne, co utrudniało korzystanie z tych urządzeń w systemach budowanych na bazie urządzeń pochodzących od różnych producentów. Urządzenia prezentowane w artykule kreując pewne nowe, dość sensowne trendy, mieszczą się jednocześnie w utartych standardach, dzięki czemu projektanci systemów automatyki mają zapewniony wysoki komfort ich aplikowania^,
Kolorowy zawrót głowy
Bez wątpienia, obrazy wyświetlane w kolorze są bardziej atrakcyjne i umożliwiają przekazanie
omRon
większej ilości informacji niż jest to możliwe za pomocą popularnych monochromatycznych wyświetlaczy LCD. Stąd, wszystkie terminale z rodziny NS wyposażono w matryce LCD TFT (NS12 iNSlO) lub LCD STN (NS7)
0 rozdzielczości VGA 640x480 punktów (NS10 - przekątna 10,4
1 NS7 - przekątna 7,7 ) lub 600x800 punktów (NS12 - przekątna 12,1 ). Zastosowane matryce LCD umożliwiają wyświetlanie obrazów w 256 kolorach, a terminale NS10 i NS12 można wyposażyć w specjalne karty, za pomocą których jest możhwe przechwyty-wanie i wyświetlanie na ekranie terminala obrazów z kamer TV (wykorzystywanych np. do rejestracji przebiegu monitorowanego procesu).
Komunikacja rzecz podstawowa
Ogromny nacisk położyli konstruktorzy terminali z serii NS na zapewnienie ich łatwego dołączenia do standardowego systemu sieciowego. Stąd podstawowym interfejsem komunikacyjnym we wszystkich terminalach jest Ethernet (lObaseT), a jego alternatywą interfejs ContiollerLink.
Standardowo, wszystkie terminale mają na wyposażeniu także dwa interfejsy RS232, z których jeden jest przystosowany do współpracy z czytnikiem kodów paskowych. Interfejsy te można wykorzystać do lokalnej komuni-
Obrazy są coraz powszechniej
stosowane w mediach,
w najbliższym czasie
zdominują prawdopodobnie
także telekomunikację, która
intensywnie promuje MMS-y.
Podobne trendy obowiązują
w automatyce, która dość
długo opierała się podobnym
modom. Nie mogło to jednak
trwać bez końca...
Rewolucja zachodzi na naszych
oczach: terminale służące do
komunikacji z użytkownikiem
(HMI) są wyposażane w coraz
silniejsze jednostki centralne,
dzięki czemu - oprócz
wyświetlania efektownych
grafik - mogą spełniać także
szereg dodatkowych zadań,
a tworzenie rozproszonych
systemów sterowania jest coraz
łatwiejsze.
kacji terminala ze sterownikami PLC lub innymi urządzeniami wykorzystywanymi w systemie.
Inteligencja lokalna
Terminale z rodziny NS, w odróżnieniu od większości terminali poprzedniej generacji, wyposażono w silny, lokalny procesor, dzięki któremu część zadań związanych z akwizycją danych jest wykonywana "na miejscu". Pomaga w tym min. wbudowana w termi-
Elektronika Praktyczna 10/2003
AUTOMATYKA
nale pamięć danych lokalnej aplikacji, której pojemność może sięgać 20 MB (przy 4 MB standardowo dla terminali NS12 i NS10) lub 6 MB (NS7).
Jak wcześniej wspomniano, wbudowanie w terminale silnego procesora pozwoliło wykonywać niektóre funkcje związane z akwizycją danych bezpośrednio przez terminal. Zgromadzone dane (mogą to być min. obrazy przechwycone z kamery) są przechowywane na karcie pamięci CompactFlash, dzięki czemu można je łatwo przenosić w dowolne miejsce i poddawać dalszej obróbce. Karta CompactFlash może służyć także do rejestrowania informacji o pre-dehniowanych przez użytkownika alarmach/zdarzeniach wykrytych przez terminal. Istotną zaletą terminali NS jest możliwość łatwego programowania animacji i sekwencji obrazów na bazie wcześniej przygotowanych grafik.
Łatwe programowanie
W odróżnieniu od terminali starszych generacji, terminale NS nie wymagają programowania za pomocą języka drabinkowego. Przed użyciem wymagają one jedynie prostej w przeprowadzeniu konfiguracji, część funkcji można programować korzystając z języka skiytpowego operującego na obiektach (typu: okna dialogowe, wielopoziomowe menu). Konfigurację ter min ah ułatwia oprogramowanie narzędziowe NS Designer.
Standardowa reszta
Nowości wprowadzone przez producenta do terminali prezentowanych w artykule to tylko część możliwości oferowanych przez nie użytkownikom. Spełniają one oczywiście rygorystyczne normy szczelnościowe (obudowa zgodna zIP65), są przystosowane do dalszej rozbudowy, mają wbudowane wielojęzyczne menu konfiguracyjne i wiele innych cech,
uznawanych współcześnie za typowe. Słowem, bardzo efektywne i efektowne połączenie dobrych "starych" standardów z rozwiązaniami ocierającymi się o awangardę. Andrzej Gawry!uk, AVT
Dodatkowe informacje
Artykuł powslat na podstawie materiałów udostępnionych przez firmę Omron, tel. (22) 645-78-60, www.omron.com.pl.
134
Elektronika Praktyczna 10/2003
AUTOMATYKA
Sterowniki programowalne SIMATIC S7-200, część 2
Kontynuujemy prezentację
możliwości komunikacyjnych
sterowników PLC firmy
Siemens. W tej części
przedstawiamy sposoby
dołączenia ich do sieci
Ethernet, za jej
pośrednictwem do Internetu
i korzystania z jego
ogromnych możliwości:
wysyłania i odbioru e-maiii,
przesyłania plików itp.
Sieć Ethernet
CP243-1 - interfejs Ethernet
dla sterowników S7-200
Koncepcja TIA - całkowicie zintegrowanej automatyki - dotycząca układów sterowań programowalnych, uwzględnia konieczność zapewnienia komunikacji na każdym poziomie sterowania. Począwszy od systemów zarządzania przedsiębiorstwem ERP i MES, poprzez niższe warstwy komunikacji - poczynając od Ethernetu zapewniającego szybką wymianę dużej ilości danych pomiędzy komputerami typu PC (pracującymi jako stacje klient-serwer), następnie Profibus - sieć polowa zapewniająca usługi wymiany danych miedzy sterownikami PLC lub "wyspami" wejść-wyjść binarnych i analogowych, aż do sterowań obiektowych opartych na sieci ASi sterującej elementami wykonawczymi i odczytującymi sygnały obiektowe, układy automatyki SI-
MATIC zapewnią komunikację i przechodniość na wszystkich poziomach sieci. Jednocześnie Siemens stale wytwarza nowe moduły, które są włączane do systemów sieciowych spełniających koncepcję Całkowicie Zintegrowanej Automatyki. Jednym z nowych opracowań jest CP243-1 (fot. 7) - interfejs komunikacyjny dołączany do sterownika S7-200. Za jego pomocą sterownik S7-200 może komunikować się z innymi uczestnikami sieci Ethernet.
Z wykorzystaniem CP243-1 można zaprojektować do 8 połączeń z innymi uczestnikami sieci pracującymi jako klient lub serwer. Możliwe jest połączenie sterownika S7-200 poprzez CP243-1 ze sterownikami S7-300, S7-400 w tym również z komputerami PC wyposażonymi w kartę ethernetową. Poprzez usługę OPC-serwer możliwa jest wymiana danych pomiędzy S7-200 z CP243-1 a komputerem PC z systemem wizualizacji WinCC, WinAC lub Protool/Pro (rys. 8). Na komputerze PC trzeba zainstalować driver Softnet S7, który zapewnia wymianę danych w oparciu o tzw. funkcje S7 (funkcje zapewniające komunikację pomiędzy sterownikami serii S7 zapisanymi w BlOS-ie sterowników) pomiędzy systemem wizualizacji a większą liczbą sterowników S7-200 z dołączonymi modułami CP243-1. Uboczną zaletą zastosowania CP243-1 jest możliwość zdalnego programowania, diagnostyki sterowników S7-200 w sieci Ethernet za pomocą oprogramowania Step7 Micro/WinV3.2. W oprogramowaniu Step7Micro/Win V3.2 przygotowany został specjalny kre-
ator projektów, który za pomocą zapytań i odpowiedzi generuje kod programu potrzebny do wytworzenia komunikacji w sieci Ethernet. Dane projektowe gromadzone są w CPU, dzięki czemu przy wymianie CP243-1 nie jest potrzebne kolejne parametryzowanie modułu. Adres IP dla CP243-1 może być nadawany na etapie projektowania lub z serwera za pomocą protokołu BOOTP (bootstrap-protocol). Ma to miejsce, gdy przyłączamy do sieci Ethernet CP243-1 bez określonego adresu IP. Moduł CP243-1 w takim przypadku poszukuje serwera BOOTP i zgłasza się z własnym adresem MAC, który jest nadawany przez producenta i jest niezmienny oraz niepowtarzalny. Moduł CP243-1 posiada złącze typu RJ45. Może pracować z prędkościami od 10 do 100 Mb/s w trybie duplex i półdup-lex (prędkość wymiany danych jest ustalana automatycznie). Poprzez dołączenie innych modułów siecio-
Fot. 7
Elektronika Praktyczna 10/2003
135
AUTOMATYKA
PC z OPC +CP1612
PC z WlnCC PC z WlnAC +CP1612 +CP1612
S7-300 + CP343-1
I
S7-400 1 + CP443-1
SlmaflcReldPG + SoftNot-PG
S7-200
CP 243-1 57-200 CP 2L3-1 57-200 CP 2L3-l
57-200 CP 243-1
Rys. 8
wych np. do sieci ASi lub Profi-bus, sterownik S7-200 może być traktowany jako inteligentny moduł interfejsu pomiędzy segmentami sieci, czyli inteligentny sterownik systemu Całkowicie Zintegrowanej Automatyki.
Sieć Internet
Nieco większe możliwości oferuje moduł CP243-IT, za pomocą którego można zarządzać pracą sterownika S7-200 w sieci Internet i Intranet. Komunikacja interfejsu CP243-IT za pomocą standardowych funkcji S7 przebiega identycznie jak w przypadku interfejsu CP243. Moduł CP243-IT jest podłączany do sterownika S7-200 jak typowy moduł rozszerzenia. Moduł CP243-IT jest przeznaczony dla następujących aplikacji:
- sterowanie urządzeń i kontrola ich pracy poprzez zintegrowany webserwer w sieci Internet i Intranet,
- wbudowany webserwer (http serwer) z 8 MB pamięci dla umieszczenia plików (stron interneto-wych| w standardzie HTML,
- gotowe strony dla wyświetlania statusu, konfiguracji oraz wyświetlania zmiennych ze sterownika S7-200,
- możliwość tworzenia apletów za pomocą języka JAVA,
- FTP serwer dla dostępu do plików systemowych poprzez sieć, wykorzystuje się to np. do załadowania plików HTML do procesora komunikacyjnego,
- możliwa komunikacja z 8 uczestnikami sieci.
Przesyłanie wiadomości e-mail
Zastosowanie modułu CP243-IT umożliwia wysyłanie i odbiór e-maili z poziomu sterownika PLC. Użytkownik może określić przyczynę wysłania e-maila, dzięki czemu można je wykorzystać np. do przesyłania informacji o alarmach wykrytych podczas pracy systemu.
Ponadto jest możliwa wymiana danych przez aplikację użytkownika za pomocą FTP (File Transfer Protokół). Możliwość ta nie musi być wykorzystywana wyłącznie do ładowania plików HTML do pamięci modułu GP243-IT - można ją wykorzystać także do wymiany zmiennych pomiędzy GP234-IT a CPU S7-200. W lym prcy-padku GPU pracuje jako klient FTP. Możliwym jest więc zapamiętywanie w pamięci typu ĄV" sterownika S7-200 plików, jako zmienne przekazywanych poprzez sieć Internet z systemu nadizędnego np. komputera PC.
Dzięki temu jest możliwa wymiana danych pomiędzy uczestnikami sieci, pracujących z różnymi systemami operacyjnymi. Oczywiście CPU może wykorzystywać FTP do komunikacji z webserwerem modułu CP243-IT.
Wymiana danych poprzez CP243-IT z innymi sterownikami S7 w sieci Ethernet
Sterownik S 7-2 00 współpracujący z modułem CP243-IT może komunikować się poprzez Ethernet ze sterownikami S7-300 i S7-400, wykoizystując standardowe funkcje S7. Możliwe jest połączenie CP243-IT z innymi 8 uczestnikami sieci Ethernet.
Wymiana danych poprzez CP243-IT z komputerami PC
Wymiana danych pomiędzy sterownikiem S7-200 z CP243-IT i komputerem PC jest możliwa za pomocą interfejsu OPC. Jest on dostarczany wraz z funkcjami S7 potrzebnymi do obsługi zainstalowanej karty sprzętowej w PC, z oprogramowaniem SOFTNET S7. Komputer PC może być użyty do wizualizacji i archiwizacji danych procesowych np. z aplikacjami stworzonymi za pomocą Wince lub WinAC. Michał Bereza, Siemens
136
Elektronika Praktyczna 10/2003
PROJEKTY
Cyfrowy
oscyloskop/analizator stanów logicznych,
częsc 1
AVT-529
0 oscyloskopach cyfrowych już wielokrotnie pisaliśmy na
łamach Elektroniki
Praktycznej. Prezentowaliśmy
projekty zarówno
zaawansowane technicznie
1 kosztowne w realizacji -komercyjne, jak i tanie, o prostej budowie - dla
elektroników amatorów.
W projekcie przedstawionym
w ańykule starano się
zastosować niektóre
rozwiązania konstrukcyjne
tych pierwszych zachowując
dostępność i walory
edukacyjne tych drugich.
Rękom en dacj e:
zaawansowany technicznie
przyrząd umożliwi wszystkim
konstruktorom poznanie
najnowszych rozwiązań
konstrukcyjnych oscyloskopów
cyfrowych.
PROJEKT Z OKŁADKI
Wartości parametrów i cechy funkcjonalne prezentowanego oscyloskopu pozwalają zaliczyć go do przyrządów tanich i dobrych.
Oscyloskop jest wyposażony w cztery kanały o 8-bitowej rozdzielczości (w osi Y) i częstotliwości próbkowania 100 MHz. Każdy z kanałów może być niezależnie zamieniony w 8-bitowy analizator stanów logicznych. Godna uwagi jest duża pojemność pamięci próbek (po 64k próbek na kanał). Układ wyzwalania jest w pełni cyfrowy, co gwarantuje powtarzalność wyświetlania wyników. Przyrząd współpracuje z komputerem przez port RS232 i wymaga pojedynczego napięcia zasilania 5 V. Został zaprojektowany tak, aby zapewnić możliwości jego rozbudowy (ma budowę modułową).
W tej części artykułu zostanie om owi ona budów a os cy lo skopu cyfrowego.
Jak działa oscyloskop cyfrowy
Podstawowym elementem każdego cyfrowego systemu pomiarowego, w tym i oscyloskopu, jest przetwornik analogów o- cyfr owy (ADC - Analog to Digital Gonverter).
W prezentowanym oscyloskopie układ ADC może być zastąpiony blokiem wejść cyfrowych w celu zapamiętywania stanów logicznych.
Ponieważ ADC próbkuje sygnał wejściowy, może wystąpić zjawisko aliasingu. Polega ono na tym, że z jednego zestawu próbek można odtworzyć nieskończenie wiele różnych sygnałów. Dla przykładu, na rys. 1 przedstawiono dwa możliwe przebiegi sinusoidalne skonstruowane w oparciu o ten sam zestaw próbek sygnału.
Okazuje się jednak, że jeżeli wiadomo, że sygnał wejściowy nie zawierał żadnej składowej o częstotliwości wyższej niż połowa częstotliwości próbkowania, to istnieje dokładnie jedna możliwość odtworzenia tego sygnału z próbek. Z tego wynika, że jeżeli przed próbkowaniem zostaną od-filtiowane z sygnału wejściowego wszystkie składowe o częstotliwości większej od połowy częstotliwości próbkowania, to istnieje pewność jednoznacznego odtworzenia kształtu sygnału wejściowego. To uzasadnia wprowadzenie do układu oscyloskopu kolejnego bloku do proponowanego schematu, a mianowicie filtru AA (anńalias filter). Niestety, przy 100 MHz ten filtr realizuje się w technice w pełni analogowej (ponieważ jego cyfrowa realizacja wymagałaby próbkowania sygnału wejściowego z jeszcze większą częstotliwością). Co za tym idzie, trudne jest skonstruowanie bloku o dużym tłumieniu powyżej
14
Elektronika Praktyczna 10/2003
Cyfrowy oscyloskop/analizator stanów logicznych
Rys. 1. Ilustracja zjawiska aliasingu przy nieodpowiedniej częstotliwości próbkowania
50 MHz i małym tłumieniu poniżej 50 MHz, zatem dopuszczono istnienie szerokiego pasma przejściowego i ograniczono użyteczne pasmo oscyloskopu do 3 5 MHz.
Od oscyloskopu oczekuje się, że umożliwi prowadzenie pomiarów w szerokim zakresie napięć. Układy ADC pracujące przy 100 MHz rzadko mają wbudowany wzmacniacz o programowalnym wzmocnieniu (PGA, Programmab-le Gain Amplifier), trzeba więc taki wzmacniacz dodać. Blok PGA jest umieszczony przed filtrem AA. Powód takiego postępowania jest następujący: filtr AA zawiera elementy aktywne, a co za tym idzie może wprowadzać zniekształcenia nieliniowe przy małych sygnałach. Ponadto, każdy blok dodaje do sygnału pewne szumy. Jeżeli sygnał jest mały, to stosunek szumu do sygnału jest stosunkowo duży, a szumy są wzmacniane razem z sygnałem.
Za przetwornikiem ADC znajdują się "czysto" cyfrowe bloki oscyloskopu i to od nich zależą możliwości funkcjonalne oscyloskopu. Przy małych częstotliwościach próbkowania (<1 MHz) można stosować do tego celu mikro-kontrolery bądź wręcz bezpośrednio podłączyć przetwornik do komputera PC. Niestety, te tanie i proste rozwiązania (jak na przykład oscyloskop opisany w EP9/ 2003) nie mogą być wykorzystane przy próbkowaniu z częstotliwością 100 MHz, bowiem wymagana szybkość transferu danych z ADC jest ogromna.
Opisywany w artykule oscyloskop gromadzi paczki danych po 32 bity co 10 ns, co daje łącznie 3,2 Gb/s wymaganej przepustowości. Należy podkreślić, że żaden standard magistrali w komputerze PC nie jest w stanie utrzymać takiego transferu przez dłuższy czas. Na przykład, maksymalna przepustowość magistrali PCI33 wynosi zaledwie 1,0 Gb/s. W do-
datku, korzystanie z magistrali komputera wymagałoby skonstruowania karty (wkładanej do obudowy komputera) zgodnej z dosyć skomplikowanym standardem PCI. Z tego jednoznacznie wynika, że próbki najłatwiej jest przechowywać w pamięci znajdującej się niedaleko ADC. W pierwszej chwili nasuwa się pomysł wykorzystania pamięci kolejkowej FIFO [First In, First Out). Można by włączać wstawianie danych do kolejki przez jakiś czas po wyzwoleniu oscyloskopu. Niestety, takie rozwiązanie pozbawiłoby oscyloskop cyfrowy jednej z jego istotnych zalet: możliwości prześledzenia, co działo się przed momentem wyzwolenia. Dlatego w przedstawionym projekcie zaproponowano użycie zwykłej pamięci statycznej RAM, jaka np. była używana w pamięci podręcznej [cache] procesorów klasy Pentium. Dane są zapisywane do pamięci w sposób ciągły przed wyzwoleniem, a także przez określony czas po nim.
Korzystanie z takiej pamięci nieco komplikuje układ sterujący, wymaga bowiem, aby oprócz sygnałów zapisu były generowane adresy.
Zdecydowano się wykorzystać typową pamięć statyczną, a nie dwuportową. Ten wybór był podyktowany ceną pamięci dwupor-towych o krótkim czasie dostępu i dużej pojemnościach.
Poza omówionymi blokami, każdy oscyloskop musi zawierać układ wyzwalający. Musi on umożliwiać co najmniej wybór zbocza, na którym oscyloskop zostanie wyzwolony, a także przynajmniej zgrubny wybór poziomu wyzwalania. To, czy wyzwalanie zostanie zaimplementowane w dziedzinie cyfrowej, czy analogowej, zależy od projektanta. Zaletą cyfrowej metody wyzwalania jest precyzja i powtarzalność.
W oscyloskopie wprowadzono możliwość oddzielnego wyzwalania w każdym z kanałów, a także wyboru wzorca bitów [bit pattern) zamiast poziomu i zbocza, przy którym nastąpi wyzwolenie. Jest to konieczne w przypadku rejestracji stanów logicznych. Układ wyzwalania jest jednym z bardziej złożonych bloków oscyloskopu.
Na koniec należy przypomnieć o roli zegara w oscyloskopie cyfrowym. Sygnał zegara jest konieczny we wszystkich blokach układu: od przetwornika analogo-wo-cyfrowego po bufor próbek. Ponieważ szum fazowy zegara (niewielkie przesunięcia w czasie aktywnych zboczy w czasie, często określane mianem jittera) jest w szybkich układach istotną składową całkowitego szumu (m.in. poprzez nierównomierność rozłożenia próbek ADC), a nawet może spowodować nieprawidłowe działanie układu przez skrócenie niektórych cykli zegara (rys. 2), to zarówno wybór układu taktującego, jak i prowadzenie sygnału zegara powinno być dokonywane z najwyższą uwagą.
Dobrej jakości zegar powinien także mieć kontrolowane przesunięcie fazy między blokami układu [clock skew). Zignorowanie tego wymagania może spowodować, że aktywne zbocze sygnału zegara przybędzie do przerzutni-ków np. o 1 ns później niż dane, co może spowodować przekłamania wartości niektórych bitów.
Schemat blokowy oscyloskopu cyfrowego przedstawiono na rys. 3. Wyraźnie widać, że można na nim wyróżnić bloki układów analogowych i bloki cyfrowe. Takie rozróżnienie jest konieczne, ponieważ do bloków analogowych stosują się inne zasady projektowania niż do cyfrowych. Układy cyfrowe generują szum w.cz. w związku ze stromymi zboczami
i
t
1 <-------> w
jitter za krótki cykl
Rys. 2. Szum fazowy (jitter) zegara
Elektronika Praktyczna 10/2003
15
Cyfrowy oscyloskop/analizator stanów logicznych
Zegar
Wyzwalanie
Sterowanie
Rys. 3. Schemat blokowy oscyloskopu
sygnałów. Ten szum często propaguje się przez obwody zasilania. W projekcie każdy z bloków umieszczono na oddzielnej płytce z oddzielnym zasilaniem, dzięki czemu wrażliwe układy analogowe są odseparowane od źródeł szumu.
Połączenie z komputerem PC
Ponieważ karta oscyloskopu nie została wyposażona w wyświetlacz, funkcje interfejsu graficznego użytkownika muszą być zrealizowane na dołączonym do oscyloskopu komputerze. Karta oscyloskopu komunikuje się z systemem nadrzędnym przez port RS232. Pomiędzy matrycą FPGA zbierającą próbki i magistralą PC sterującą układami analogowymi a portem RS232 pośredniczy wbudowany w urządzenie mikrokontroler.
Realizacja bloków
Wzmacniacz o programowalnym wzmocnieniu (PGA)
Głównym elementem wzmacniacza PGA jest układ scalony THS7002 firmy Texas Instruments. Jest to dwukanałowy PGA z przed-wzmacniaczem o paśmie 70 MHz (schemat blokowy pokazano na rys. 4).
Układ THS7002 pozwala na tłumienie sygnału w zakresie do 22 dB lub wzmocnienie do 20 dB. Dodatkowo umieszczono na płytce układ pozwalający na przełączanie wzmocnienia przedwzmac-niacza między 0 dB a 40 dB, co łącznie daje maksymalne wzmocnienie 60 dB (napięciowo 1000W
V). Przełączniki zostały zrealizowane za pomocą jednego układu ADG333 firmy Analog Devices. Nie wykorzystano wbudowanego w te układy ogranicznika sygnału, ponieważ filtr antialiasingowy, znajdujący się za wzmacniaczem PGA, pracuje przy pełnym zakresie napięć zasilania i nie ma potrzeby ograniczania sygnału przed filtrem.
Filtr antialiasingowy
W filtrze antialiasingowym zastosowano szczególnego typu wzmacniacz, który nie był dotąd przedstawiany na łamach EP. Jest to wzmacniacz w pełni różnicowy, a więc taki, który oprócz różnicowego wejścia jest także wyposażony w różnicowe wyjście. Potencjał środkowy (odpowiadający w klasycznym wzmacniaczu różnicowym wyjściu zerowemu) można ustawić przez podłączenie jednej z nóżek do źródła napięcia odniesienia. Wykorzystanie takiego elementu było podyktowane wyborem ADC. Zastosowany przetwornik analogowo-cyfrowy wymaga różnicowego sygnału na wejściu. Wzmacniacz w pełni różnicowy jest więc idealnym rozwiązaniem.
Filtr AA jest zbudowany w oparciu o wzmacniacz THS4150 firmy Texas Instruments. Jest to filtr aktywny trzeciego rzędu. Jednocześnie obwód ten wprowadza 12 dB tłumienia (napięciowo -cztery razy), tak że sygnał z poziomu -12...+12 V jest zmniejszany do poziomu -3...+3 V, bezpiecznego dla przetwornika ADC.
Przetwornik analogowo-cyfrowy
Funkcję ADC pełni układ podwójnego, 8-bitowego przetwornika AD9288BST-100. Zawiera on w swojej strukturze układ próbku-jąco-pamiętający. Szczególną cechą układu AD9288 jest niski pobór mocy (90 mW na kanał) i pojedyncze napięcie zasilania 3,3 V. Dane wyjściowe przetwornika mogą być w formacie uzupełnienia do 2 (-128...127) lub naturalnego kodu binarnego (0...255). Wybrano pierwszy format, dzięki czemu dane wyjściowe naturalnie odpowiadają bipolarnemu przebiegowi na wejściu ADC.
Wejścia cyfrowe
Wejścia cyfrowe są połączone z układem poprzez dwa 16-bitowe translatory poziomów IDT 74LVC1624O. Ponieważ cały układ cyfrowy jest zasilany napięciem 3,3 V, a wiele sygnałów spotykanych w typowych układach ma poziomy np. TTL, taki układ pośredniczący jest konieczny. Odbiorniki układu 74LVC1624O mogą pracować zarówno przy napięciu 5 V jak i 3,3 V (jest to cecha wszystkich układów wykonanych
wejścia ustalające wzmocnienie
poziom
min
Przed wzmacniacz
PGA Ogranicznik
Rys. 4. Schemat jednego kanału układu THS7002
16
Elektronika Praktyczna 10/2003
Cyfrowy oscyloskop/analizator stanów logicznych
próg zbocze
tryb warunek ignoruj
XOR
XOR
AND
AND - >


NOR

XOR
OR
wartość
maska
Rys. 5. Schemat blokowy systemu wyzwalania
w technologii LVCMOS), co zapewnia pożądaną elastyczność korzystania z oscyloskopu pracującego w trybie rejestratora-anali-zatora stanów logicznych.
Multipleksery wejść
Wejścia cyfrowe i analogowe mogą być wybierane dla każdego kanału niezależnie. Służą do tego multipleksery wejść. Ze względu na zmniejszenie liczby układów scalonych i zachowanie dużej szybkości pracy multipleksery zostały zintegrowane wewnątrz układu FPGA - QL3025 firmy Quick-Logic.
Wyzwalanie
Układ wyzwalania jest w pełni cyfrowy. Został on zrealizowany jako blok cyfrowy w układzie FPGA. Każdy kanał ma niezależny blok wyzwalania, a sygnał trigger dla całego układu jest wytwarzany jako iloczyn logiczny sygnałów ze wszystkich czterech kanałów. Schemat blokowy systemu wyzwalania pokazano na rys. 5.
Warunkiem wyzwolenia może być zarówno zgodność bitów z zadanym wzorcem jak i wystąpienie zbocza sygnału. Generowane są oba sygnały wyzwalające, a następnie podlegają multipleksowa-niu (multiplekser sterowany jest
sygnałem tryb). Wyzwalanie wzorcem bitów wymaga określenia, które bity są istotne [maska) oraz wartości, przy jakich układ ma zostać wyzwolony [wartość). Stosunkowo rzadko spotykaną wśród analizatorów cechą, w jaką wyposażono układ wyzwalania, jest zdolność do negacji warunku wyzwalania tak, że jest możliwe reagowanie nie tylko na pojawienie się odpowiedniej sekwencji bitów na wejściu oscyloskopu, ale także na jej zniknięcie.
Wyzwalanie zboczem jest wykonywane następująco: wartość sygnału wejściowego jest porównywana z zadanym progiem wyzwalania. Zbocze jest wybierane przy użyciu bramki ExOR. Sygnał wyjściowy bramki określa, czy dana na wejściu jest mniejsza, czy większa od progu. Jest on opóźniany o jeden cykl zegara (DT). Wartości: opóźniona i bieżąca są porównywane w bramce logicznej AND. Wykrycie zmiany powoduje wystawienie stanu logicznego 1 na wyjściu bloku wyzwalania.
Sterowanie
Układ sterowania jest również zintegrowany w FPGA. Podstawowym zadaniem układu sterującego jest dostarczanie sygnałów adresowych do zewnętrznej pamięci
Kanad
Kanał 2
Kanał 3
Kanał 4
AND
buforowej, a także odliczanie czasu, jaki ma upłynąć między wyzwoleniem układu a zakończeniem zbierania danych.
W opisywanym oscyloskopie układ sterujący odpowiada także za kontrolę odczytu danych z pamięci buforowej po dokonaniu pomiaru.
Podstawowym elementem bloku sterowania jest 16-bitowy licznik adresowy (rys. 6), zliczający w przód. Jego inkrementacja następuje pod wpływem sygnału WR (powodującym jednocześnie zapis do pamięci). W ten sposób generowany jest adres zapisu dla pamięci SRAM. Sygnał WR jest ustawiany podczas procedury zerowania, co przygotowuje układ do zebrania nowych próbek. Drugi licznik 16-bitowy zlicza w dół. Podczas zerowania jest on ładowany liczbą próbek, jakie powinny być zapisane po wyzwoleniu pomiaru. Jest on uruchamiany przez sygnał trigger pochodzący z opisanego wyżej układu wyzwalania. Kiedy zawartość licznika osiągnie zero, sygnał WR jest zerowany i kończy się faza zapisu do pamięci. Ostatnie 65536 próbek jest dostępnych w pamięci, a ostatnia zawartość licznika adresu (adres ostatniej próbki) jest przechowywana w specjalnym rejestrze.
Elektronika Praktyczna 10/2003
17
Cyfrowy oscyloskop/analizator stanów logicznych

R S EN Ucznlk
wyzwalanie ------

liczba próbek jo wyzwoleniu LD próbek
-----------------,/
>0
adres odczytu
adres ostatnlel próbki
dane z wejść
odczytana próbka
zapis/odczyt (WR)
adres
dane
Rys. 6. Schemat blokowy systemu sterowania
Kiedy sygnał WR jest wyzero-wany, czyli po zakończeniu pomiaru, na pamięć SRAM jest podawany adres pochodzący z programowalnych rejestrów adresowych, a w rejestrach danych odwzorowywana jest zawartość zaadresownych komórek pamięci (słowa). W ten sposób realizowany jest odczyt próbek przez port mikrokontrolera.
Pamięć buforowa SRAM
Zawartość pamięci w matrycy FPGA nie jest wystarczająca do zbudowania dobrego oscyloskopu, więc skorzystano z pamięci zewnętrznej. Funkcję tę pełni układ IDT 7lV632, pierwotnie zaprojektowany jako pamięć cache dla procesorów serii Pentium i PowerPC. Wiele możliwości tego układu, jak tryb burst lub oddzielne bramkowanie zapisu poszczególnych bajtów, nie jest wykorzystanych w tym zastosowaniu.
Układ IDT to statyczna pamięć synchroniczna. Ten typ pamięci jest stosunkowo rzadko stosowany, lecz tam, gdzie istotny jest krótki czas dostępu i szybki transfer danych, jego osiągi są niedoścignione. Wszystkie szybkie pamięci są synchroniczne (do tej grupy należą także popularne pamięci dynamiczne SDRAM), a ich architektura zapewnia dodatkowo natychmiastowy dostęp do dowolnej po-
zycji w pamięci (zasada działania uniemożliwia korzystanie w ten sposób z pamięci SDRAM, ponieważ są one podzielone na wiersze, kolumny i banki).
W pamięci synchronicznej należy podawać wszystkie sygnały (danych, adresu i sterowania) synchronicznie z aktywnym zboczem sygnału zegarowego. Zastosowanie sygnału zegarowego umożliwia potokową pracę układu pamięci. Na przykład wynik polecenia odczytu pojawia się na wyjściu dopiero po dwóch cyklach - dzięki temu można było podnieść maksymalną częstotliwość zegara do 117 MHz.
Jeżeli szybkość próbkowania miałaby być wyższa, konieczne byłoby skorzystanie z dwóch lub większej liczby pamięci bufora próbek. Wtedy strumień danych jest demultipleksowany na więcej wolniejszych strumieni i np. parzyste próbki trafiają do pierwszego układu pamięci, a nieparzyste do drugiego.
Zegar
Sygnał zegara systemowego jest generowany przez układ Vaishali VT98521 (produkowane również przez firmę TLSI). Jest to jedno-układowy generator przebiegów prostokątnych o wysokiej częstotliwości. Może on współpracować z rezonatorem kwarcowym. Częstotliwość jego sygnału jest mno-
żona przez jedną z wartości: 3, 3,125, 4, 5, 5,3125, 6, 6,25 lub 8 za pomocą wbudowanej pętli PLL. Ponieważ w systemie potrzebny jest sygnał zegarowy 100 MHz, skorzystano z kwarcu 16 MHz i mnożenia przez 6,25. Jitter tego układu jest bardzo mały i nie przekracza 70 ps.
Oprócz sygnału zegara wewnętrznego oscyloskop może korzystać również z zewnętrznego zegara o częstotliwości nieprzekraczającej 100 MHz. Wejście tego sygnału jest buforowane i wyposażone w trans-lator poziomów 5 V na 3,3 V.
Częstotliwość sygnału zegara (wewnętrznego lub zewnętrznego) może być dzielona wewnątrz układu FPGA przez 2, 5, 10, 20, 50 lub 100. Możliwe też jest korzystanie z zegara o maksymalnej częstotliwości. Przetworniki ADC nie osiągają pełnej dokładności przy prędkościach poniżej 1 MHz, lecz można podłączyć zewnętrzne wolniejsze przetworniki przez złącze analizatora stanów logicznych. Wtedy należy skorzystać ze złącza zewnętrznego sygnału zegarowego.
Zasilanie
W układzie niezbędne są trzy różne napięcia zasilania: 3,3 V, 12 V, -12 V. Ponieważ dostarczanie wszystkich napięć do układu byłoby kłopotliwe, skorzystano z niewielkich zintegrowanych przetwornic impulsowych. Napięcie 3,3 V zapewnia układ LM2825N-3.3 firmy National Semiconductor, a wysokie napięcia dla elektroniki analogowej generowane są przez przetwornicę PT5061A firmy Texas Instruments. Układ oscyloskopu pobiera prąd o natężeniu ok. 1 A ze źródła zasilania 5 V.
Interfejs szeregowy
Na płytce znajduje się jeden port RS232 obsługiwany przez mik-rokontroler Texas Instruments MSP430F149. Dane są wymieniane z komputerem według prostego protokołu przy szybkości 115,2 kbps. Kontroler pośredniczy między portem RS232, a 8-bitową szyną danych (także wyprowadzoną na oddzielne złącze) łączącą go z matrycą FPGA. Do jego zadań należy także programowanie wzmacniaczy PGA oraz przełączanie umieszczonych pod złączami BNC diod świecących (poprzez magistralę PC).
18
Elektronika Praktyczna 10/2003
Cyfrowy oscyloskop/analizator stanów logicznych
Te zastosowania nie wyczerpu- cyfrowych o szybkości próbkowa- oscyloskopu z własnym wyświet-
ją nawet ułamka olbrzymich moż- nia 200 MHz, podłączanym za- laczem i panelem sterującym,
liwości układu MSP430F149, co miast wejść cyfrowych. Stanisław Skowronek daje ogromny potencjał rozbudo- Wyprowadzona 8-bitowa, asyn-
wy. Magistrala PC może zostać chroniczna magistrala danych Wzory płytek drukowanych w for-
w przyszłości wykorzystana także między kontrolerem a FPGA poz- macie PDF są dostępne w Internecie
do innych zastosowań, np. do wala na zwiększenie szybkości pod adresem: http:llwww.ep.com.pll
sterowania dodatkowym modułem transmisji do komputera albo zbu- ?pdf/pazdziernikO3.htm oraz na płycie
dwóch przetworników analogowo- dowania oddzielnego kontrolera CD-EP10/2003B w katałogu PCB.
Elektronika Praktyczna 10/2003 19
PROJEKTY
Zegar ze 100-letnim kalendarzem |ż
i dwukanałowym V -'" termometrem, część 1
AVT-513
'*/
Prezentowane w artykule
urządzenie jest kolejnym
naszym pomysłem " dla
domu", ułatwiającym
codzienne funkcjonowanie. Bo
któż nie jest uzależniony od
biegnącego czasu,
wymagającego nieustannej
kontroli, i temperatury, która
w skrajnych przypadkach
zdecydowanie negatywnie
wpływa na samopoczucie
większości z nas?
Rekomendacje: ze względu
na uniwersalność i oczywistą
przydatność, urządzenie
opisane w artykule polecamy
wszystkim Czytelnikom
lubiącym skutecznie
kontrolować czas
i temperaturę...
Zegar wbudowany w prezentowane urządzenie ma 100-letni kalendarz uwzględniający lata przestępne. Liczba dni miesiąca jest automatycznie korygowana w zależności od bieżącego miesiąca oraz roku. Rok przestępny występuje co cztery lata i charakteryzuje się tym, że luty w tym roku ma 29 dni, a w pozostałych latach 28. W czasie ustawiania daty kontrolowana jest maksymalna liczba dni występująca w danym miesiącu i roku, dzięki czemu nie można wprowadzić błędnej liczby dni miesiąca - na przykład 31 kwietnia.
Dodatkowo zegar posiada wbudowaną funkcję pomiaru temperatury z dwóch czujników. Temperatura jest mierzona z wykorzystaniem specjalizowanych układów firmy Maxim, które przetwarzają badaną wartość temperatury na postać cyfrową i w konsekwencji - z punktu widzenia mikrokon-tiolera - cały pomiar wykonywany jest na drodze cyfrowej. Temperatura może być mierzona w zakresie -25...125C z rozdzielczością O,1C. Taki zakres mierzonych
temperatur umożliwia pomiar zarówno w pomieszczeniach, jak również na zewnątrz budynków. Dla obydwu mierzonych temperatur zapamiętywana jest maksymalna i minimalna wartość, która wystąpiła od momentu kasowania tego wskaźnika. Czujniki temperatury mogą być oddalone od płytki zegara na odległość do 30 metrów, co umożliwia niemalże dowolne ich rozmieszczenie.
Prezentacja czasu i temperatury odbywa się na dwuwierszowym wyświetlaczu alfanumerycznym. Jest on wyposażony w podświetlenie, co umożliwia uzyskanie dobrej widoczność nawet w ciemnych pomieszczeniach. Podświetlanie wyświetlacza może być włączane i wyłączane, dodatkowo intensywność podświetlania może być regulowana elektronicznie w dziesięciu krokach. Podczas pracy bez podświetlania układ pobiera prąd o natężeniu około 3 mA, co umożliwia zastosowanie b a tery j ne g o po dtizy m ania pr a cy zegara w czasie braku zasilania sieciowego przy wykonywaniu wszystkich dostępnych funkcji, tak
Elektronika Praktyczna 10/2003
21
Zegar ze 100-letnim kalendarzem i dwukanałowym termometrem
US3 DS182O
VCC
DQ
GND
US4 DS1820
VCC
DQ
GND
CON2
Bat
GOLDPIN 1X2
CON1
Zas
ARK2(3,5mm)
CON3
GOLDPIN 1X3
CON4
GOLDPIN 1X3
S3
S4
ESC DOWN
D2 1N4148
>f
D1 1N4007
US2 LM2931
I
C1
A7\i
OUT
GND
VCC
R1
2k2
R2 2k2
S2
S1
OK
UP
Rys. 1. Schemat elektryczny zegara
vcc
o
C2
47M
I
_C3 "100n
US1 PIC16F628
15
12
RA6/OSC2/CLKOUT RA7/OSC1/CLKIN<
>RBO/INT RB1/RX/DT RB2/TX/CK RB3A2CP1 RB4/PGM RB5
>RB6/riOSC/riCKI
RAO/ANO
RA1/AN1
RA2/AN2/VREF<
RA3/AN3/CMPK
RA4/T0CKI/CMP2<
RA5/MCLR/THV
RB7/T1OSK
-C4 30p
X1
32,766kHz
VCC
LCD
LCD 20x2 LED
jak przy zasilaniu głównym (z wyłączeniem podświetlania).
Budowa i zasada działania
Schemat elektryczny zegara przedstawiono na rys. 1. "Sercem" urządzenia jest niewielki mikrokontroler typu PIC16F628. Układ ten steruje wszystkimi procesami poczynając od odczytu temperatury z czujników temperatury, poprzez obsługę klawiatury aż do sterowania wyświetlaczem LCD. Mikrokontroler ten posiada dołączony rezonator kwarcowy, który jednak nie służy do jego "napędzania". Generator taktujący mikrokontroler znajduje się w jego wnętrzu, dlatego nie jest konieczne stosowanie dodatkowego zewnętrznego rezonatora kwarcowego. Wewnętrzny generator jest generatorem typu RC i dostarcza częstotliwości równej około 4 MHz. Stabilność tego generatora jest wystarczająca do wykonywania niemal wszystkich zadań, jakie wykonuje mikrokontroler. Wyjątkiem jest precyzyjne odmierzanie czasu, gdyż pomiar
czasu z wykorzystaniem generatora RC powodowałby bardzo dużą rozbieżność mierzonego czasu. Aby zapewnić wysoko stabilne źródło sygnału zegarowego, zastosowano rezonator kwarcowy Xl
0 częstotliwości pracy równej 32,768 kHz. Rezonator ten nie jest dołączony do standardowych wyprowadzeń przewidzianych do tego celu (OSC1, OSC2), lecz wyprowadzeń portu RB (RB7
1 RB6). Sytuacja taka jest spowodowana tym, że wyprowadzenia te oprócz możliwości pracy jako typowe wejścia/wyjścia są jednocześnie wyprowadzeniami wewnętrznego licznika TMRl. Licznik ten na swoim wejściu posiada generator, który może współpracować z zewnętrznym rezonatorem kwarcowym i służyć jako źródło sygnału zegarowego powodujące zwiększanie stanu licznika TMRl. Takie rozwiązanie sprawia, że licznik TMRl zlicza impulsy z generatora kwarcowego, który jest niezależny od głównego generatora mikrokontrolera.
Zastosowany rezonator kwarcowy posiada częstotliwości pra-
cy równą 3 2,768 kHz, co jest wielokrotnością cyfry 2 (215). Znacznie ułatwia to uzyskanie częstotliwości 1 Hz, będącej odpowiednikiem jednej sekundy. Licznik TMRl ma pojemność 16 bitów, co odpowiada maksymalnej liczbie zliczonych impulsów równej 65 53 5. Wartość ta jest dwukrotnie większa od częstotliwości rezonatora i gdyby licznik pracował z pełną pojemnością, przepełnienie następowałoby co dwie sekundy, a odliczanie czasu wykonywane byłoby bez konieczności ładowania początkowej wartość licznika TMRl. W przedstawionym układzie wyświetlane są także sekundy, dlatego trzeba zmniejszyć pojemność licznika o połowę. Zmniejszenie to jest wykonywane przez dodanie liczby 32768 po każdym przepełnieniu licznika. Takie rozwiązanie jest wygodniejsze do zastosowania niż ładowanie licznika początkową wartością, gdyż w drugim przypadku po wystąpieniu przepełnienia licznika i wygenerowaniu przerwania należy policzyć liczbę cykli wykonanych od
Elektronika Praktyczna 10/2003
Zegar ze 100-letnim kalendarzem i dwukanałowym termometrem
momentu wystąpienia przerwania do momentu ładowania licznika i uwzględnić tę liczbę, ładując początkową wartość do licznika. Czas od momentu wystąpienia przerwania do załadowania licznika wynika z faktu konieczności zachowania niektórych rejestrów mikrokontrolera przed obsługą przerwania (W, Status). W przypadku dodawania liczby do licznika, skorygowanie jego wartości może nastąpić w dowolnym momencie, przed zliczeniem 3 2768 impulsów, co odpowiada jednej sekundzie. Ponadto nie ma znaczenia, ile czasu minęło od przyjęcia przerwania do korekcji licznika na dodawaną wartość, gdyż zawsze jest ona stała i wynosi 32 768. Jak widać, zastosowanie licznika TMRl do odmierzania czasu jest bardzo wygodne, a przerwania nie zaburzają zbytnio pracy mikrokontrolera, gdyż występują co sekundę. Do korekcji generowanej częstotliwości zastosowano trymer C5, który pozwala na dostrojenie generatora tak, aby czas był odmierzany z jak największą dokładnością.
Pomiar temperatury jest wykonywany przez czujniki temperatury typu DS1820. Zastosowanie tych układów całkowicie uwalnia mikrokontroler od jakiegokolwiek kontaktu z sygnałami analogowymi, występującymi przy tradycyjnym pomiarze temperatury. Układ DS1820 zawiera kompletny moduł pomiaru temperatury i przetwarzania wyniku na postać cyfrową. Komunikacja układu DS182 0 z układem nadrzędnym odbywa się przy pomocy jednoprzewodo-wej magistrali, co jest bardzo korzystne, gdyż mikrokontroler ma niewiele portów, a czujnik wykorzystuje tylko jedno wyprowadzenie. Ponieważ pomiar wykonywany jest w dwóch miejscach, należało zastosować dwa identyczne czujniki.
Układy DS1820 umożliwiają bezpośredni odczyt temperatury z rozdzielczością 0,5C, ale udostępniają dodatkowe rejestry wykorzystywane podczas procedury pomiaru temperatury i na tej podstawie rozdzielczość pomiaru można zwiększyć do O,1C. Zwiększenie rozdzielczości pomiarów wykonuje się przez odpowiednie operacje matematyczne na rejest-
rach układu DS1820, operacje te są wykonywane przez mikrokontroler. Podłączenie obydwu czujników do wyprowadzeń mikrokontrolera jest dość nietypowe, gdyż do jednej magistrali można podłączyć jednocześnie nawet kilkadziesiąt układów serii DS, a w przedstawionym urządzeniu każdy układ jest podłączony do innego wyprowadzenia mikrokontrolera. Takie podłączenie zostało zastosowane, aby uprościć procedurę uruchamiania zegara. Podłączenie kilku układów DS1820 do jednej magistrali wymaga odczytania numeru seryjnego każdego z nich. Jeśli po rejestracji czujnik zostałby wymieniony na inny egzemplarz, to konieczna byłaby ponowna rejestracja. Komunikacja mikrokontrolera z konkretnym układem dołączonym do magistrali polega na wysłaniu na magistralę numeru seryjnego konkretnego układu i jeśli taki będzie zastosowany, to zostanie przeprowadzona z nim wymiana danych. W tym czasie pozostałe układy są nieaktywne, gdyż ich numer seryjny jest inny od podanego. Taki sposób komunikacji jest stosowany w przypadku, gdy do magistrali jest dołączony więcej niż jeden układ. W przedstawionym zegarze również można użyć tego sposobu komunikacji, jednak z uwagi na fakt, że występują tylko dwa czujniki, zastosowane zostały dwie oddzielne magistrale. Dzięki temu rozbudowuje się procedura komunikacji jednoprzewo-dowej, ale nie ma konieczności rejestrowania dołączonych układów DS1820, gdyż przy dołączonym do magistrali tylko jednym układzie jego numer seryjny jest pomijany.
Zasilanie całego układu jest wykonane przy użyciu stabilizatora typu LM2931, stabilizator ten dostarcza stabilizowanego napięcia 5 V przy niewielkim poborze prądu. Jest to bardziej ekonomiczny układ niż popularny LM78L05. W czasie pracy układ LM2931 pobiera prąd o natężeniu około 400 |iA. Ograniczenie pobieranego prądu jest szczególnie istotne w przypadku braku zasilania głównego. W takim wypadku ostateczny prąd pobierany przez cały układ wynosi około 3 mA, co pozwala na wielogo-
dzinną pracę zegara zasilanego bateryjnie. W przypadku zastosowania jako stabilizatora układu LM78L05 pobór prądu wzrasta do wartości około 7 mA. Jak widać stabilizator ten pobiera więcej prądu niż pozostałe elementy zegara. Wszystkie wartości prądu dotyczą pracy bez podświetlania wyświetlacza LCD. Kondensatory C1...C3 wygładzają napięcie zasilania. Diody Dl i D2 pełnią rolę automatycznego przełącznika pomiędzy zasilaniem głównym i ba-teryjnym. W czasie pracy przy zasilaniu głównym na złączu CONl panuje napięcie o wartości około 12 V, a na złączu CON2 napięcie o wartości około 9 V. W tej sytuacji dioda D2 jest w stanie zaporowym, gdyż na jej katodzie jest wyższy potencjał niż na anodzie wywołany napięciem zasilania głównego; jeśli zasilanie główne zostanie odłączone, to dioda D2 zacznie przewodzić i układ będzie zasilany z baterii. Prezentacja czasu oraz temperatury jest wykonywana na wyświetlaczu alfanumerycznym o organizacji 2x20, co umożliwia wyświetlanie wszystkich parametrów zarówno w czasie normalnej pracy, jak i w czasie ustawiania parametrów. Zastosowany wyświetlacz posiada podświetlanie pola odczytowego, co umożliwia odczyt wyświetlanych wartości nawet w zupełnej ciemności. Podświetlanie wyświetlacza jest wykonane w postaci matrycy diod świecących, co pociąga za sobą duży pobór prądu w czasie podświetlania (około 13 0 mA). Wykorzystanie do zasilania podświetlania wyświetlacza napięcia 5 V z wyjścia stabilizatora spowodowałoby jego uszkodzenie, gdyż jego wydajność prądowa wynosi 100 mA. Zastosowanie stabilizatora o większej wydajności prądowej niepotrzebnie zwiększyłoby gabaryty całego urządzenia, a zastosowanie stabilizatora o wydajności 1 A bez radiatora powodowałoby wydzielanie się dużej ilości ciepła. Optymalnym rozwiązaniem jest zasilanie diod podświetlających wyświetlacza napięciem pobieranym przed stabilizatorem. Takie rozwiązanie zastosowano w układzie zegara, prąd zasilający diody jest pobierany z głównego napięcia zasila-
Elektronika Praktyczna 10/2003
23
Zegar ze 100-letnim kalendarzem i dwukanałowym termometrem
Wtffcfe
TMR2
i 1 L Reset^
TMFErefl
w
__1 Postscalsr 1:1 to 1:16 fp ~i Comparator
PRarefl
Rys. 2. Budowa licznika TMR2
nia, przez co dodatkowo uzyskano automatyczny wyłącznik podświetlania w przypadku braku zasilania głównego. W czasie zasilania bateryjnego dioda Dl nie pozwala na przedostawanie się prądu do podświetlania wyświetlacza. W czasie pracy przy zasilaniu głównym podświetlanie wyświetlacza może być włączane lub wyłączane w sposób elektroniczny, jednym przyciskiem. Włączaniem podświetlania steruje mikrokontroler poprzez wzmacniacz prądowy zrealizowany przy pomocy tranzystora Tl. Przy zastosowanej wartości rezystora R3 ograniczającego maksymalny prąd płynący przez diody podświetlania wynosi około 130 mA przy napięciu zasilania 11,5 V. Oprócz elektronicznego włączania i wyłączania podświetlania regulowana może być (w dziesięciu krokach) także intensywność podświetlania.
Do sterowania podświetlaniem wyświetlacza wykorzystano wyprowadzenie RB3 mikrokontrole-ra. Wyprowadzenie to oprócz funkcji typowego wyprowadzenia wejścia/wyjścia jest dodatkowo wyjściem sygnału sprzętowego ste-
Rejestr wypełnienia przebiegu --------CCPCON<5:4>-
CCPR1L
Jl

CCPR1H(Slv)

Komparator H Q H:
RB3/CCP1
TMR2 S
i TRISB<3>
Komparator CCP1(RB3),
ResetTMR2, prze rzutnika

PR2
Rys. 3. Budowa sprzętowego generatora PWM
równika PWM (modulacja szerokości impulsu), dzięki temu możliwe jest elektroniczne ustawienie intensywności podświetlania wyświetlacza. Sprzętowy sterownik PWM sprawia, że sterowanie podświetlaniem wyświetlacza jest wykonywane niezależnie od pracy jednostki centralnej mikrokontro-lera. Do pracy sterownika wykorzystywany jest licznik TMR2, który wraz z komparatorami cyfrowymi umożliwia wytworzenie na wyjściu RB3 przebiegu o dowolnym wypełnieniu bez udziału jednostki centralnej mikrokontro-lera. Budowę licznika TMR2 przedstawiono na rys. 2. Licznik ten wyposażony jest w dzielnik wejściowy [Prescaler) o stopniach podziału 1:1, 1:4, 1:16, na wyjściu licznika znajduje się jeszcze jeden dzielnik [Postscaler), dzięki któremu można dodatkowo podzielić przebieg otrzymany z wyjścia licznika maksymalnie przez 16. Najważniejszym z punktu widzenia generowania przebiegu PWM jest
WYKAZ ELEMENTÓW
Rezystory
Rl, R2: 2,2kQ
R3: Ó8Q
R4: 10kO
R5: lkO
PR1: potencjometr montażowy
10ka
Kondensatory
Cl, C2: 47^F/1ÓV
C3: lOOnF
C4: 30pF
C5: trymer 5-40pF
Półprzewodniki
DL D2: 1N4007
Tl: BC547B
US1: PIC16F628 zaprogramowany
US2: LM2931
US3, US4: DS1820
Różne
CON1: ARK2(3,5mm)
CON2: goldpin 1x2 męski
CON3/CON4: goldpin 1x3 męski
S1...S4: mikrowłącznik h=10mm
Xl: rezonator kwarcowy 32/768kHz
Wyświetlacz 2x20 (np. GDM2002D)
Podstawka DIP18
rejestr PR2, rejestr ten określa maksymalną pojemność licznika TMR2. Wartość wpisana do rejestru PR2 jest wartością, po przekroczeniu której nastąpi zerowanie licznika TMR2, dla modulacji PWM jest to czas trwania jednego cyklu (czas trwania 0 + czas trwania 1 na wyjściu RB3).
Konfigurację licznika TMR2 w trybie sprzętowego sterownika PWM przedstawiono na rys. 3. Generowanie przebiegu o zmiennym wypełnieniu sprowadza się do wpisania do rejestru PR2 czasu trwania jednego cyklu, a do rejestru CCPRlL czasu trwania stanu wysokiego na wyjściu RB3. Po wpisaniu tych wartości przebieg na wyjściu RB3 jest wytwarzany przez TMR2, bez konieczności kontrolowania przez jednostkę centralną mikrokontrolera, dzięki temu może on zająć się innymi zadaniami. Krzysztof Pławsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/pazdziernikO3Jitm oraz na płycie CD-EP10/2003B w katalogu PCB.
Elektronika Praktyczna 10/2003
PROJEKTY
Inteligentny sterownik oświetlenia wnętrza samochodu
AVT-528
Wsiadając do samochodu
nocą, często po omacku
szukamy stacyjki, bo po
zamknięciu drzwi lampka
oświetlająca wnętrze kabiny
natychmiast gaśnie. Można
oczywiście pozostawić otwańe
drzwi, ale w czasie mrozu,
czy opadów deszczu nie jest
to przyjemne. W większości
nowych samochodów są
zainstalowane układy sterujące
wewnętrznym oświetleniem
tak, że lampka gaśnie
stopniowo i z pewnym
opóźnieniem, jednak
użytkownicy kilkuletnich
samochodów są pozbawieni
takich udogodnień.
Rekomendacje: jest to bez
wątpienia jeden z bardziej
przydatnych samochodowych
"gadżetów". Polecamy go
wszystkim posiadaczom
starszych samochodów,
a także tym konstruktorom-
elektronikom, którzy chcą
poznać tajniki sterowania
PWM.
Prezentowany w artykule sterownik lampki powoduje przedłużenie czasu jej świecenia po zamknięciu drzwi, co ułatwia włożenie kluczyka do stacyjki i zapięcie pasów. Po zamknięciu drzwi światło świeci się jeszcze przez 30 sekund, jeśli jednak w tym czasie zostanie włączony zapłon (na wyjściu stacyjki pojawi się napięcie), to światło zostanie natychmiast wyłączone. Włączenie i wyłączenie światła jest wykonywane płynnie, poprzez stopniowe jego zapalanie i wygaszanie. Ponadto sterownik wyposażono w funkcję ochrony akumulatora przed rozładowaniem - w przypadku, gdy drzwi pozostaną otwarte zbyt długo (na przykład przez całą noc) może nastąpić całkowite rozładowanie akumulatora. Sterownik zapobiega takiej sytuacji, wyłączając światło po 150 sekundach od otwarcia drzwi. Aby ponownie włączyć światło należy drzwi zamknąć i ponownie otworzyć. Dodatkową funkcją sterownika jest włączanie lampki po wyłączeniu silnika. Lampka jest włączana na 30 sekund w przypadku wyłączenia stacyjki, gdy były zapalone światła postojowe.
Ostatnią funkcją, niezwiązaną ze sterowaniem oświetleniem, jest symulacja alarmu. Sterownik został wyposażony w diodę świecącą, która przy wyłączonej stacyjce błyska z częstotliwością 1 Hz, a po włączeniu stacyjki jest wyłączana.
Budowa
Schemat elektryczny sterownika lampki samochodowej przedstawiono na rys. 1. Jego głównym elementem jest układ USl. Jest to mikiokontioler PIC12F629. Sygnał zegarowy mikiokontrolera może pochodzić z wewnętrznego generatora RC. Jego częstotliwość wynosi około 4 MHz, i może być kalibrowana w 32 krokach, poprzez wpis odpowiedniej wartości do rejestru OSSCAL. Mikiokont-roler zawiera dwa tunery oraz układ Watchdoga, który umożliwia restart procesora w przypadku jego zawieszenia. Ponieważ wejście zerujące mikiokontioler może pracować także jako wejście cyfrowe, w procesorze zawarty jest układ zerujący, który wyzeruje mikiokontroler, jeśli napięcie zasilania jest mniejsze niż 2 V. Nie ma więc konieczności stosowania zewnętrznego układu zerującego.
W prezentowanym układzie mikiokontioler jest taktowany z wewnętrznego generatora, gdyż nie jest wymagana duża stabilność częstotliwości sygnału zegarowego, także sygnał zerujący jest generowany przez wewnętrzne moduły procesora. Watchdog jest uaktywniany, co sprawia, że w przypadku zawieszenia się procesora jego prawidłowa praca zostanie przywrócona po czasie około dwóch sekund. Ze względu na częste występowanie zakłóceń w samochodzie watchdog jest bardzo przydatny.
Elektronika Praktyczna 10/2003
27
Inteligentny sterownik oświetlenia wnętrza samochodu
Drzwi
Stacyjka
Postojowe
GND
GPO/ANWCIN+/ISPDAT GP1/AN1/CN-/Vref/SPCLK
GP2/AN2mKKI/INT/COUT
Rys. 1. Schemat elektryczny inteligentnego sterownika lampki samochodowej
W celu wykorzystania wszystkich możliwości prezentowanego sterownika, niezbędne jest doprowadzenie sygnałów napięciowych: z włącznika w drzwiach, przełącznika świateł pozycyjnych oraz z wyjścia stacyjki. Sygnał z włącznika umieszczonego w drzwiach jest podawany na wejście procesora poprzez diodę. Wyjście włącznika w momencie otwarcia drzwi zostaje zwarte z masą. Dioda została włączona tak, że "przepuszcza" tylko sygnały o poziomie niskim - czyli po otwarciu drzwi na wejściu procesora występuje poziom niski. Jeśli zaś drzwi są zamknięte, to wewnętrzny rezystor podciągający zawarty w mikrokontrolerze wymusza poziom wysoki na tym wejściu.
Sygnały z wyjścia stacyjki i włącznika świateł postojowych podawane są poprzez dzielniki rezystancyjne (R1...R4), maksymalne napięcie na ich wejściach może mieć wartość około 15 V. W przypadku wyłączenia świateł lub stacyjki, rezystory R3 i R4 wymuszają poziomy niskie na wejściach mikrokontrolera. W dzielniku następuje podział napięcia przez dwa. Napięcie w instalacji samochodowej może wynosić nawet 15V, w takim przypadku na wyjściach dzielników będzie występowało napięcie o wartości około 7,5 V. Wartość ta przekracza dopuszczalną wartość napięcia wejściowego dla mikrokontrolera, jednak dzięki wewnętrznym diodom zabezpieczają-
cym napięcia wejściowe są obniżane do wartości VCC+0,4 V, a takie napięcie mieści się w zakresie dopuszczalnych napięć wejściowych.
Dołączona dioda świecąca może służyć jako symulator alarmu, ponieważ po wyłączeniu zapłonu błyska z częstotliwością 1 Hz. Po włączeniu zapłonu dioda jest wyłączana.
Do zapewnienia odpowiedniej wartości napięcia zasilania zastosowano stabilizator monolityczny typu LM78L05. Jako klucz włączający lampkę wewnątrz kabiny zastosowano tranzystor Tl. Jest to tranzystor typu MOS FET o maksymalnym prądzie przewodzenia 12 A, co w zupełności wystarcza, gdyż lampka ma zazwyczaj moc 5 W. Działanie sterownika
Algorytm działania mikrokontrolera przedstawiono na rys. 2. Sprawdzane jest nieustannie czy stacyjka jest włączona, czy też wyłączona. Jeśli stacyjka jest wyłączona, to sprawdzany jest stan włączników drzwiowych. Jeżeli drzwi zostaną otwarte, to zostanie zapalone światło.
Czas świecenia światła jest zależny od stanu stacyjki oraz stanu włączników drzwiowych. W zależności od ich ustawienia są wykonywane odpowiednie procedury. Poniżej przedstawiono działanie sterownika dla trzech możliwych przypadków.
1. Stacyjka wyłączona, drzwi otwarte.
W tej sytuacji zostaje zapalone światło i jednocześnie zostanie uruchomiony licznik odmierzający czas samoczynnego wyłączenia światła. Licznik ten odlicza czas równy 12 0 sekund. Jeśli taka sytuacja będzie trwała 120 sekund, to zostanie odliczone jeszcze 30 sekund i światło zostanie wyłączone, pomimo, że drzwi będą nadal otwarte. Zapobiega to rozładowaniu akumulatora w przypadku pozostawienia otwartych drzwi na długi czas.
Jeśli w ciągu 120 sekund od otwarcia drzwi zostaną zamknięte, to rozpocznie się odliczanie czasu 30 sekund. Dlatego niezależnie od czasu otwarcia drzwi (nie dłuższy niż 120 sekund), po ich zamknięciu światło będzie się jeszcze świeciło przez 30 sekund. Po zamknięciu drzwi światło może zostać wyłączone przed upływem 30 sekund. Jeśli zostanie włączona stacyjka (silnik), wówczas światło zostanie wyłączone natychmiast.
Jeżeli zostanie włączona stacyjka (niezależnie czy drzwi są otwarte, czy nie), to światło zostanie wyłączone, a program przechodzi do przypadku, gdy stacyjka jest włączona (punkt 2).
2. Stacyjka włączona, drzwi otwarte.
Jest to sytuacja, gdy samochód jest uruchomiony i zostaną otwarte drzwi (na przykład wsiada pasażer). W tej sytuacji po otwarciu drzwi światło zostanie zapalone, a po ich zamknięciu natych-
Elektronika Praktyczna 10/2003
Inteligentny sterownik oświetlenia wnętrza samochodu
Rys. 2. Algorytm działania sterownika lampki samochodowej
miast zgaszone. W takim przypadku nie jest konieczne wydłużanie czasu świecenia światła, ponieważ skoro silnik jest uruchomiony, to jest bardzo prawdopodobne, że bezpośrednio po zamknięciu drzwi rozpocznie się jazda, a włączone światło będzie oślepiało kierowcę.
W innej sytuacji, jeśli stacyjka jest włączona, drzwi zostaną otwarte, a następnie stacyjka zostanie wyłączona, to nastąpi przejście do przypadku jak w punkcie pierwszym.
3. Stacyjka włączona, drzwi zamknięte, włączone światła postojowe.
Jeśli po zakończonej jeździe zostanie wyłączona stacyjka, a światła mijania lub drogowe były zapalone, to oznacza, że najprawdopodobniej jest ciemno. W takiej sytuacji po wyłączeniu stacyjki światło zostanie włączone, bez konieczności otwierania drzwi. Ponieważ w niektórych samochodach wraz z wyłączeniem stacyjki wyłączane są też światła, konieczne stało się zastosowanie pamięci zapalonych świateł. Bez tej funkcji w samochodach z automatycznym wyłączaniem świateł lampka nie zostałaby zapalona, ponieważ procedura włączająca światło w momencie wyłączenia stacyjki sprawdza czy są zapalone
światła. Program zawarty w procesorze zapamiętuje więc stan świateł mijania jeszcze przez dwie sekundy po ich wyłączeniu. Dlatego jeśli światła zostaną wyłączone, na przykład o sekundę wcześniej niż zostanie wyłączona stacyjka, to mikrokontroler i tak będzie "wiedział", że światła były zapalone i lampka zostanie zapalona. Lampka będzie świeciła się przez 30 sekund, jeżeli jednak zostanie włączona stacyjka, to zostanie natychmiast wyłączona. Jeżeli zostaną otwarte drzwi, to nastąpi przejście do przypadku z punktu pierwszego. Jeśli nie chcemy, aby lampka była włączana samoczynnie po wyłączeniu stacyjki, to wejście sterownika oznaczone jako "Światła" należy pozostawić niep odłączone. Rezystor R4 będzie wymuszał poziom niski i niezależnie od tego czy światła były włączone, czy nie, procesor przyjmie, że były wyłączone i lampka nie będzie włączana.
Aby zwiększyć komfort użytkowania sterownika, zapalanie i gaszenie lampki jest wykonywane stopniowo - powoli rozjaśniając lub przyciemniając światło. Pozwala to na przyzwyczajenie się oczu do zmian natężenia oświetlenia. Przyciemnianie i rozjaśnianie światła zostało wykonane po-
przez zmianę wypełnienia sygnału sterującego tranzystorem Tl (modulacja PWM), Podczas pełnego zapalenia albo całkowitego wygaszenia żarówki tranzystor jest włączony lub wyłączony. Podczas włączania lub wyłączania tranzystor jest sterowany impulsowo. Procedurę realizującą funkcję powolnego rozjaśniania światła przedstawiono na list. 1.
Aby powoli rozjaśnić światło należy zwiększać czas włączenia tranzystora i zmniejszać czas jego wyłączenia (całkowity suma czasów włączenie i wyłączenia jest zawsze taka sama).
Do odliczania czasu włączenia i wyłączenia tranzystora procedura wykorzystuje TimerO. Służy on do precyzyjnego odmierzania czasu, dlatego po wpisaniu początkowej wartości do TMRO procesor oczekuje na jego przepełnienie. W zmiennej i jest pamiętana wartość czasu wyłączenie tranzystora, a w zmiennej ;' czas jego włączenia. Włączanie i wyłączanie tranzystora jest wykonywane 255 razy, z tym, że za każdym razem czas włączenia jest coraz dłuższy, a czas wyłączenia coraz krótszy, co w efekcie powoduje coraz jaśniejsze świecenie żarówki. Dla każdej wartości i i;' przebieg jest powtarzany 30 razy, dzięki temu proces rozjaśniania jest wykony-
Elektronika Praktyczna 10/2003
29
Inteligentny sterownik oświetlenia wnętrza samochodu
List. 1. Procedura powolnego rozjaśniania światła
buz_on()
{int i,j, k,l;
j=255; i=0;
for(k= ( 0;k<255;k+ + ) //wykonaj 255 razy
1 f r(l=0;l<30;l++ //wykonaj 30razy
{ restart_wdt() ; //zeruj WDT
buZ=0; //wyłącz światło
tmrO=i; //przepisz stan i do TMRO
While(!bit tes t(intcon,tOif)); //czekaj na przepełnienie TMRO
bit_clear(intc on.tOif); //zeruj flagę przepe łnienia TMRO
buz=l; //zapal światło
tmrO=j; //przepisz stan j do TMRO
While(!bit_tes t(intcon,tOif)); //czekaj na przepełnienie TMRO
bit_clear(intc on.tOif); //zeruj flagę przepe łnienia TMRO
+ . //zwiększ wartość i
3 -; //zmniejsz wartość ;
//jeśli wszystko wyk
buz=l; //to włącz światło
wany przez czas około dwóch sekund. Po tym czasie żarówka świeci pełną mocą i procedura jest zakończona.
Procedura powolnego ściemniania światła działa na podobnej zasadzie (list. 2), lecz na początku czas włączenia tranzystora jest najdłuższy, a czas wyłączenia najkrótszy, przez co początkowo żarówka świeci najmocniej i jest powoli ściemniana. Dodatkowo zwiększona jest liczba powtórzeń przebiegu dla poszczególnych wartości włączenia i wyłączenia tranzystora, co powoduje wydłużenie czasu wygaszania światła i łagodniejsze przejście ze stanu świecenia pełną mocą do całkowitego wygaszenia. Dla wartości równej 50, czas ten wynosi około 3 sekund.
Montaż i uruchomienie
Układ sterownika należy zmontować na płytce jednostronnej zgodnie ze schematem montażowym pokazanym na rys. 3. Z uwagi na niewielką liczbę elementów montaż płytki nie jest zbyt trudny.
Rozpoczynamy od montażu elementów o najmniejszych gabary-
tach. Ponieważ układ ma pracować w samochodzie, a wiec w środowisku narażonym na wilgoć, pod mikrokontroler należy zastosować podstawkę precyzyjną lub nawet wlutować go bezpośrednio w płytkę. Pozwoli to uniknąć wystąpienia usterek wywołanych przerwami pomiędzy wyprowadzeniami mikrokontrolera i podstawki. Jeśli sterownik ma służyć także jako symulator alarmu, to do złącza CON3 należy przyluto-wać przewód zakończony diodą, a po zamontowaniu układu w samochodzie diodę umieścić w widocznym miejscu. Jeżeli nie będzie wykorzystywana funkcja symulacji alarmu, to diodę należy wlutować w płytkę, gdyż będzie ona pomocna przy uruchamianiu układu.
Jeśli montaż został przeprowadzony poprawnie, możemy przejść do uruchomienia układu. W tym celu do złącza CON2 należy podłączyć napięcie o wartości około 12 V (oznaczone na płytce "+" i "-")Ś Po włączeniu zasilania dioda powinna błyskać. Jeśli tak jest, to układ działa poprawnie i można go zainstalować w samocho-
List. 2. Procedura powolnego ściemniania światła
buz off()
{int i,j, '-, 1;
j=255; i=0;
for(k= 0;k<255;k+ + ) //wykonaj 255 razy
fc r(l=0;l<50;l++ //wykonaj 50razy
{ restart_wdt(); //zeruj HDT
buz=l; //włącz światło
tmrO=i; //przepisz stan i d TMRO
While(!bit_tes t(intcon,tOif)) ; //czekaj na p rzepełnienie TMRO
bit_clear(intc on.tOif); //zeruj flagę przep łnienia TMRO
buz=0; //zgaś światło
tmrO=j; //przepisz stan j d TMRO
While(!bit tes t(intcon,tOif)) ; //czekaj na p rzepełnienie TMRO
bit_clear(intc on.tOif); //zeruj flagę przep łnienia TMRO
)4 + ; //zwiększ wartość i
] - ; //zmniejsz wartość
//jeśli wszystko wykonane
buZ=0; //to wyłącz światło
dzie. Na rys. 4a przedstawiono schemat typ owego obwodu włączającego oświetlenie wnętrza kabiny. Jak widać, za włączenie światła odpowiadają włączniki umieszczone w drzwiach. Dodatkowy przełącznik jest umieszczony wewnątrz lampki i umożliwia włączenie światła przy zamkniętych drzwiach. W niektórych samochodach przełącznik ten jest pominięty.
Może się jednak zdarzyć, że przełącznik ten jest trójpozycyjny. W takim przypadku można włączyć lampkę, przełączyć w tryb sterowania z włączników umieszczonych w drzwiach lub ją wyłączyć. Jeśli w samochodzie znajduje się właśnie taki typ przełącznika, to do poprawnej pracy sterownika musi znajdować się w pozycji sterowania za pomocą włączników umieszczonych w drzwiach.
Aby wykorzystać wszystkie możliwości sterownika należy wykonać drobną modyfikację instalacji samochodowej. Schemat podłączenia sterownika do instalacji samochodowej jest przedstawiony na rys. 4b. Oprócz połączeń pomiędzy lampką i włącznikami w drzwiach należy wykonać połączenia z włącznikiem świateł, plusem zasilania i z wyjściem stacyjki.
Na schemacie grubą linią przedstawiono połączenia, które należy wykonać w celu zainstalowania sterownika. Przed przystąpieniem do szukania właściwych kabli bardzo przydatny może być schemat instalacji elektrycznej sa-
?
EN03 lool O-[Ęi]-OO
?
?
o o o
o o o
?
Rys. 3. Schemat montażowy płytki sterownika
30
Elektronika Praktyczna 10/2003
Inteligentny sterownik oświetlenia wnętrza samochodu
Bezpiecznik
Żarówka Przełącznik
Lampka oświetlająca wnętrze kabiny
Włączniki umieszczone
w drzwiach
S1 \SS \S3 \S4
Stacyjka
Urządzania
Żarówki świateł postojowych
Sterownik
oświetlenia
CON1 CON2
Bezpiecznik Włącznik świateł
świateł postojowych
postojowych
Bezpiecznik
Żarówka Przełącznik
Lampka oświetlająca wnętrze kabiny
Włączniki umieszczone w drzwiach
S1
S2
S3 \S4
Rys. 4. Schemat elektryczny obwodu oświetlenia wnętrza kabiny (a), sposób podłączenia sterownika do instalacji samochodowej (b)
mochodu, gdyż znacznie przyśpieszy to proces wykonania właściwych połączeń.
Do pracy sterownika niezbędne jest doprowadzenie następujących sygnałów: masa, "+" zasilania, bezpośrednio z akumulatora, "+" pobrany za włącznikiem świateł pozycyjnych, "+" pobrany za stacyjką. Połączenia te polegają jedynie na odszukaniu odpowiednich przewodów i równoległe pod-
łączenie ich do sterownika. Największą trudność sprawi wykonanie połączenia z włączników umieszczonych w drzwiach i włącznika lampki, gdyż istniejące fabrycznie połączenie należy przerwać i podłączyć do sterownika. Należy pamiętać, że obwód musi zostać przerwany w miejscu, w którym sygnały z wszystkich włączników drzwiowych są już połączone (musi to
WYKAZ ELEMENTÓW
Rezystory
R1...R4: 12kQ R5: 330O Kondensatory
Cl, C4: 100|iF/25V C2, C3: lOOnF Półprzewodniki
Dl: 1N4007
D2: BAT43
Tl: BUZ1O
US1: PIC12F629 zaprogramowany
US2: LM78LO5
Różne
CON1, CON2: ARK3-5mm
CON3: Goldpin 1x2 męski
Dioda LED 2x5mm dowolna
Podstawka DIP8 - precyzyjna
być przewód biegnący bezpośrednio do lampki). Po prawidłowym wykonaniu wszystkich połączeń układ sterownika jest gotowy do pracy.
Krzysztof Pławsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Plik wynikowy do zaprogramowania mikrokontrolera jest dostępny na naszej stronie interne-towej download.ep.com.pl w dziale Dokumentacje.
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/pazdziernikO3Jitm oraz na płycie CD-EP10/2003B w katalogu PCB.
Elektronika Praktyczna 10/2003
31
PROJEKTY
Programowany generator PWM w VHDL
W sprzętowe generatory
przebiegów prostokątnych
o zmiennym współczynniku
wypełnienia [PWM - Pulse
Width Modulation) są
wyposażone praktycznie
wszystkie współczesne
mikrokontrolery. Nie dzieje się
tak bez przyczyny - za ich
pomocą można zmieniać
m,in, obroty silników
elektrycznych, jasność
świecenia żarówek, można je
także wykorzystać jako
przetworniki C/A o całkiem
niezłych parametrach. Dzięki
zastosowaniu uniwersalnego
języka opisu sprzętu,
prezentowany w ańykule
projekt można traktować jak
klasyczny blok IP (Intellectual
Propeńy core).
Rekomendacje: polecamy
projektantom układów
cyfrowych, którzy ch cą
efektywnie wykorzystywać
możliwości nowoczesnych
układów programowalnych.
Niewątpliwie użytkownicy mik-rokontiolerów mają wygodne życie, ponieważ generatory PWM, podobnie do wielu innych przydatnych modułów i interfejsów dostają gotowe w cenie mikrokon-tiolera "z półki". Nieco gorzej wygląda sytuacja użytkowników
układów PLD, ponieważ - co jest główną cechą tych układów -' docierają one do użytkownika w postaci wymagającej konfigu-rowania ich wewnętrznych zasobów w celu realizowania dowolnych zadanych przez użytkownika funkcji.
Czy oznacza to, że fani PLD nie mogą wyposażać swoich projektów w UART-y, interfejsy I2C czy generatory PWM? Oczywiście nie, o czym postaram się przekonać Czytelników w najbliższych
c)A
, = 0.9T
--------ążML--------"
4V^L>
t"-o,Br
Rys. 1. Trzy przebiegi o współczynniku wypełnienia: a) 90%, b) 50%, c) 20%
Elektronika Praktyczna 10/2003
33
Programowany generator PWM w VHDL
Częstotllwofić "nośna" PWM
Harmoniczne
. Oczekiwane 1 pasmo przenoszenia Składowe niepożądane
A

\ i V L
>DATAO >DATAI
Pliki
f =1/T 3fT S/T
Częstotliwość
Rys. 2. Charakterystyka widmowa generatora sygnału prostokątnego
numerach EP. Zaczynamy od modułu, który cieszy się dużym zainteresowaniem wśród piszących do mnie Czytelników: programowanym generatorem PWM.
Co to jest PWM?
Modulacja PWM polega na modyfikowaniu szerokości wybranej części ("0" lub "1") przebiegu prostokątnego, którego częstotliwość jest stała. Oznacza to, _____
że w zależności od wartości współczynnika wypełnienia, czasy trwania "impulsów" ti ( z azwyc zaj " 1 " ) i "przerw" pomiędzy nimi L (zazwyczaj "0") zmienia- ^^M ją się, przy czym spełniana jest zależność ^ + t = T = const. (czyli częstotliwość generowanego przebiegu jest stała). Wartość współczynnika wypełnienia jest podawana zazwyczaj w procentach. Określa się ją wzorem: a = (ti/T)*100 [%]. Na rys. 1 pokazano trzy przykładowe fragmenty przebiegów o różnych współczynnikach wypełnienia.
Jak wspomniałem na wstępie artykułu, generator przebiegu PWM można zastosować m.in. jako przetwornik C/A. Jak to jest możliwe, jeśli na wyjściu generatora występuje przebieg cyfrowy? Otóż, średnia wartość napięcia na wyjściu generatora przebiegu PWM jest proporcjonalna do wartości współczynnika wypełnienia generowanego przebiegu. Bezpośrednie wykorzystanie sygnału występującego na wyjściu generatora PWM, na przykład do odtwarzania sygnałów akustycznych, nie jest możliwe z powodu wysokiego poziomu składowych harmonicznych w jego widmie (jak pokazano na rys. 2). Zmniejszenie ich poziomu wymaga zastosowania prostego filtru dolnoprzepustowego, którego częstotliwość graniczna fG (-3dB) będzie mniejsza od
Częstotliwość
Rys. 3. Charakterystyka widmowa sygnału na wyjściu generatora PWM po zastosowaniu filtru dolnoprzepustowego
częstotliwości sygnału PWM (fPWM=l/T, rys. 3). Schemat typowego filtru RC pierwszego rzędu pokazano na rys. 4. Ze względu na jego prostotę (i - niestety -stosunkowo niewielką skuteczność tłumienia niepożądanych harmonicznych), zalecane jest kilkukrotne zwiększenie "odstępu" pomiędzy częstotliwością graniczną filtru dolnoprzepustowego a częstot-
w
Żródła w Internecie
źródłowe projektu prezentowanego artykule są dostępne na stronie internetowej EP w dziale Download>Dokumentacje.
liwością
tak, żeby spełnić
warunek fpwM=n*^G' PrzY czym n powinno mieć wartość co najmniej 3, a w większości przypadków (zwłaszcza podczas odtwarzania sygnałów audio) nawet 5. Wartości parametrów elementów RC filtru dolnoprzepustowego można obliczyć korzystając ze wzoru R= l/(2*TC*fG*C).
Jak to zrobić w VHDL-u?
Programowany generator PWM można wykonać na wiele różnych sposobów. Prezentowany w artykule projekt można zakwalifikować jako "klasyczny" - jego zasadę działania zilustrowano na rys. 5. Pokazany na tym rysunku przebieg schodkowy symbolizuje zmianę stanów na wyjściu licznika binarnego zliczającego w cyk-
Maksymalna wartość na wyjściu licznika
Rys. 4. Schemat filtru dolnoprzepustowego RC pierwszego rzędu (wtórnik napięciowy zalecany, lecz niekonieczny)
lu modulo 2n. Liczba zliczonych przez licznik impulsów jest porównywana przez komparator z liczbą referencyjną podaną przez użytkownika. Jest ona traktowana jako wartość określająca czas trwania (liczony w cyklach zegarowych) stanu "1" na wyjściu generatora PWM. Odliczanie czasu trwania "1" na wyjściu zaczyna się zawsze przy stanie licznika
____ "0". Wartość parametru n
określa rozdzielczość generowanego przebiegu, czyli -inaczej mówiąc - liczbę możliwych do ustawienia wartości współczynnika wypełnienia. Przykładowo, gdy n = 2, generowany przebieg PWM może mieć współczynnik wypełnienia o jednej z wartości: /4. a/4. 2/4 i 3/4. Zwiększenie długości licznika o jeden bit (czyli n = 3) zwiększa dwukrotnie liczbę możliwych nastaw: /8,
V8, %, 3/8, %, 5/8, % i7/8. Jak widać, zwiększanie długości licznika powoduje zwiększenie roz-dzielczości programowania współczynnika wypełnienia przebiegu, przy czym najczęściej są stosowane 8...10-bitowe generatory PWM.
Schemat blokowy generatora PWM, którego opis w języku VHDL zaprezentujemy w dalszej części artykułu, pokazano na rys. 6. Jest on nieco bardziej rozbudowany niż wynika z dotychczasowego opisu, co zostało spowodowane dwoma czynnikami:
Wartość
Minimalna wartość na wyjściu licznika
n__n
Wyjście PWM
Rys. 5. Ilustracja zasady działania generatora PWM
34
Elektronika Praktyczna 10/2003
Programowany generator PWM w VHDL
RES
RE3
II
LOAD(CO) A
PWM-+-
PES_PWW_O
v
CLK
RES
Rys. ó. Schemat blokowy generatora PWM
- Ze względu na chęć zapewnienia wysokiej jakości sygnału PWM (brak impulsów glitch na tym wyjściu), jest on generowany synchronicznie, co wymagało zastosowania dodatkowego prze-rzutnika D .
- Aby ułatwić współpracę generatora z systemem mikroprocesorowym lub dowolnym innym urządzeniem, na wejściu danych (tam, gdzie jest wpisywana wartość odniesienia) zastosowano dwustopniowy rejestr latch. Dzięki temu zmiana wartości odniesienia powoduje zmianę współczynnika wypełnienia dopiero po zakończeniu bieżącego cyklu odliczania, co z kolei powoduje, źe nie występują im pulsy glitch na wyjściu PWM (jak ma to na przykład miejsce w niektórych miki okontioler ach AVR) .
Na list. 1 przedstawiono opis w języku VHDL układu, którego
na
schemat blokowy pokazano rys. 6. Rejestr pierwszego stopnia jest zapisywany sygnałem logicznym "1" podawanym na wejście Id (wejście zewnętrznego sygnału zapisującego) - stąd warunek w jego opisie elsif Id = '1' then,,,. Rejestr drugiego stopnia jest zapisywany narastającym zboczem sygnału na wejściu co, co zapisano jako elsif risi ng_ed-ge (co) tlien. . . . Sygnał co jest
wytwarzany przez synchroniczny komparator zawsze, gdy wszystkie wyjścia licznika przyjmują stany "1" (następuje przepełnienie licznika). Dzięki temu przepisanie z rejestru pierwszego stopnia na wejścia komparatora nowej wartości referencyjnej następuje zawsze po zakończeniu pełnego cyklu zliczania wynikającego z długości cyklu licznika.
Opis licznika zastosowanego w generatorze jest niezwykle prosty, a to dzięki możliwości przeciążenia operatora "+" (zliczanie kolejnych impulsów zapisano jako cnt_out <= cnt_out + 1;). Wymagało to zastosowania biblioteki STD_LOGIC_AR1TH z pakietu IEEE, która jest dostarczana z większością współczesnych systemów projektowych (za wyjątkiem MAX+Plus II). Opis komparatora wykrywającego przekroczenie wartości referencyjnej jest wydzielonym procesem, w wyniku syntezy którego powstaje układ kombina-cyjny wykrywający warunek data_int_cmp > cnt_out, gdzie data_int_cmp - to wartość referencyjna, a cnt_out - bieżący stan
tJarzędzia za darmo
Wszystkie narzędzia programowe wykorzystane podczas przygotowywania artykułu są udostępniane przez producentów bezpłatnie (wymagana jest jedynie rejestracja i - w przypadku oprogramowania firmy Altera - bezpłatna aktualizacja co
6 miesięcy licencji).
System Max+Plus 11 oraz syntezer AAS są dostępne pod adresem: https://ww w. alt era.com/support/softw ar e/d o wnl o ad/
al t e r a_d es ign/m p2 _b as el ine/dnl -b as el ine. js p,
System WebPack ISE jest dostępny pod adresem: http://
www .xilinx.com/suppor t/download .htm.
Rys. 7. Widok okna edytora schematów z pakietu WebPack ISE z symbolem generatora PWM
Rys. S. Widok okna edytora schematów wMax+Plus z symbolem generatora PWM
Elektronika Praktyczna 10/2003
35
Programowany generator PWM w VHDL
List. 1. Opis w języku VHDL 4-bitowego generatora PWM
library IEEE;
use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL!
entity pwrn_gen is port (
data : in std_logic_vector(3 downto 0);
clk, res, Id : in std_logic;
pwm : out std_logic
); end pwm_gen;
architecture Behavioral of pwrn_gen is
signal data_int_cmp
signal data_int, cnt_out
signal data_int2
signal res_pwm_o, q, co
signal ld_int, pwm_cn
std_logic_vector(3 downto 0); std_logic_vector(3 downto 0); std_logic_vector(3 downto 0); std_logic; std_logic;
begin
-- rejestr wejściowy pierwszego stopnia
process (Id, res)
begin
if res = '1' then
data_int <= "0000";
elsif Id = '1' then data_int <= data;
end if; end process;
-- rejestr wejściowy drugiego stopnia
process (co, res)
begin
if res = '1' then
data_int_cmp <= "0000"; elsif rising_edge(co) then
data_int_cmp <= data_int; end if; end process;
licznik process (clk, res) begin
if res = '1' then
cnt_out <= "0000"; elsif rising_edge(clk) then
cnt_out <= cnt_out + 1; end if; end process;
generowanie sygnału przeniesienia z licznika process (clk, res)
begin
if res = '1' or cnt_out < "1111" then
co <= ' 0 ' ; elsif rising_edge(clk) and cnt_out = "1111" then
co <= ' 1 ' ; end if; end process;
-- komparator
process (data_int_cmp, cnt_out)
begin
if cnt_out = "0000" then
res_pwm_o <= ' 0 ' ; elsif data_int_cmp >= cnt_out then
res_pwm_o <= '1'; else
res_pwm_o <= '0' ; end if; end process;
przerzutnik PWM
process (clk, res, res_pwm_o) begin
if res = '1' then
q <= '0'; elsif rising_edge(clk) then
q <= res_pwm_o; end if; end process;
pwm <= q;
end Behavioral;
wyjść licznika. Wprowadzenie w opisie komparatora, wydawałoby się zbędnego, warunku else res_pwm_o <= ' 0 ' ; zapobiega zsyntezowaniu na wyjściu res_pwm_o przerzutnika podtrzymującego stan wyjścia.
Na list. 1 jest opis 4-bitowego generatora PWM. Łatwo oszacować , że oferowana przez niego
rozdzielczość jest niezbyt wielka i z pewnością zbyt mała, aby można go było potraktować "poważnie". Wersja taka powstała wyłącznie dla wygody testowania - analiza działania automatu o 16 stanach jest przecież zdecydowanie łatwiejsza niż na przykład automatu 2 5 6-s tan owego. Zwiększenie rozdzielczości
nastaw sygnału wyjściowego PWM jest możliwe poprzez zwiększenie długości licznika, komparatora i rejestrów. Zmiana tych parametrów wymaga każdorazowo ingerencji w plik źródłowy projektu i zmiany przykładowej wartości "3" w deklaracji std_logic_vector (3 downto 0) na wybraną liczbę. Nie jest to rozwiązanie wygodne, ani eleganckie i często prowadzi do błędów uniemożliwiających kompilację projektu. W związku z tym powstała alternatywna wersja projektu z list. 1, różniąca się od pierwowzoru możliwością łatwej parametryzacji. Zamieszczono ją na list. 2.
Jak można zauważyć, w deklaracji jednostki projektowej zastosowano klauzulę generic, która umożliwia zdefiniowanie jej parametrów ogólnych. W prezentowanym przykładzie służy ona do określenia rozdzielczości generatora PWM, co uzyskano definiując stałą pwm_res, której jest przypisywana wartość positive:= n (w przykładzie n = 4). Parametr n może być liczbą całkowitą dodatnią, co ustalono poprzez określenie podtypu tej liczby jako positive (może przyjmować wartości od 1 do 2147483647). Przypisanie temu parametrowi żądanej wartości jest jedynym zabiegiem (poza rekompilacją projektu) niezbędnym podczas zmiany rozdzielczości generatora PWM. Zmiana pozostałych wartości jest wykonywana automatycznie przez program wykonujący syntezę.
Implementacja
Wykorzystanie języka opisu VHDL zapewnia możliwość względnie łatwego przenoszenia projektu pomiędzy systemami służącymi do syntezy logicznej i implementacji w strukturach PLD różnych producentów. Prezentowany generator zaimplementowa-no w dwóch układach: XC95108-15 w obudowie PLCC84 oraz EPM7128-12 (także w obudowie PLCC84). Jako narzędzia projektowe wykorzystano: - udostępniony bezpłatnie przez firmę Xilinx pakiet WebPack ISE 5.2 z niezłym kompilatorem VHDL i zewnętrznym symulatorem Model Sim firmy Mentor Graphics,
36
Elektronika Praktyczna 10/2003
Programowany generator PWM w VHDL
rWebPack ISE dla Ś Windows XP
Wadą najnowszej wersji
pakietu WebPack ISE (5.2)
jest jego kompatybilność
wyłącznie z Windows XP.
Użytkownicy starszych wersji
Windows muszą korzystać ze starszych wersji pakietu, i które charakteryzują się ^_ niewiele gorszymi ^B możliwościami.
- zestaw bezpłatnych narzędzi firmy Altera: kompletne środowisko projektowe Max+Plus II Ba-seline 10.2 oraz syntezer VHDL - Advanced Altera Synthesis (który zastąpił udostępniany do niedawna przez Mentor Graphics syntezer Leonardo Spec-trum).
Ponieważ projekt składa się z jednego pliku zawierającego opis w języku VHDL, konfiguracja i przygotowanie projektu do kompilacji, niezależnie od systemu projektowego, jest bardzo proste. WebPack ISE zawiera komplet narzędzi niezbędnych do syntezy, implementacji i kompilacji projektu opisanego w VHDL. W zależności od przyjętego sposobu projektowania, użytkownik może włączyć plik tekstowy VHDL do struktury własnego projektu lub -jak sądzę jest wielu zwolenników tego sposobu projektowania stworzyć graficzny element biblioteczny [Processing for Current Source>Design Entry Utilities>Cre-ate Schematic Symbol w Web Pack ISE 5.2) i po prostu narysować schemat logiczny generatora z wykorzystaniem gotowego "bloczka" (rys. 7).
W nieco gorszej sytuacji znajdują się użytkownicy systemu Max+Plus II, który - co prawda
- w wersji Student Edition udostępnia syntezer VHDL, ale jego możliwości są mocno ograniczone. Projektanci korzystający z układów firmy Altera mogą wykorzystać jako narzędzie projektowe nowszy system projektowy tej firmy Quartus II, ale jego popularność (głównie ze względu na trudniejszą obsługę i duże wymagania sprzętowe) jest znacznie mniejsza niż Max+Plus II. Skorzystanie z pakietu Max+Plus II jest jednak możliwe, ale w tym
List. 2. Opis parametryzowanego generatora PWM
library IEEE;
use IEEE.STD_LCGIC_1164.ALL; use IEEE.STD_LCGIC_ARITH.ALL| use IEEE.STD_LCGIC_UNSIGNED.ALL!
entity pwm_gen is
generic (
pwm_res : positive:= 4 "- - positive oznacza 1.. .21474 83L
port ( i i
data : in std_ logic_vector(pwm_res-l downto 0) i
clk. res, Id : in std_ logie ;
pwm : out std _logic
end pwm_gen;
architecture Behavioral of pwm_g en is
signal data_int_cmp : std loc jic_vector (pwrn_res- 1 c lownto 0) i
signal data_int, cnt_out : std loc jic_vector (pwrn_res-l c lownto 0) i
signal data_int2 : std loc jic_vector (pwrn_res- 1 c lownto 0) i
signal res_pwrn_o, q, co : std loc jic;
signal ld_int, pwrn_cn : std loc jic;
-- zapis alternatywny (cnt_out'rangę =>
constant zero: std_logic_vector(pwm_res-1 downto 0):= (others => ' constant ff: std_logic_vector(pwm_res-l downto 0):= (others => '1'
begin
-- rejestr wejściowy pierwszego stopnia
process (Id, res)
begin
if res = '1' then
data_int <= (others => '0');
elsif Id = '1' then data_int <= data;
end if; end process;
-- rejestr wejściowy drugiego stopnia
process (co, res)
begin
if res = '1' then
data_int_cmp <= (others => '0'); elsif rising_edge(co) then
data_int_cmp <= data_int; end if; end process;
-- licznik process (clk, res) begin
if res = '1' then
cnt_out <= (others => '0' elsif rising_edge(clk) then
cnt_out <= cnt_out + 1; end if; end process;
-- generowanie sygnału przeniesienia z licznika
process (clk, res)
begin
if res = '1' or cnt_out < ff then
co <= '0'; elsif rising_edge(clk) and cnt_out = ff then
co <= '1'; end if; end process;
-- komparator
process (data_int_cmp, cnt_out)
begin
if cnt_out = zero then
res_pwm_o <= '0'; elsif data_int_cmp >= cnt_out then
res_pwm_o <= '1'; else
res_pwm_o <= '0'; end if; end process;
-- przerzutnik PWM
process (clk, res, res_pwm_o)
begin
if res = '1' then
q <= ' 0 ' ; elsif rising_edge(clk) then
q <= res_pwm_o; end if; end process;
pwm <= q;
end Behavioral;
celu trzeba skorzystać z pomocy zewnętrznego syntezera VHDL firmy Altera (bezpłatny program Advanced Synthesis), za pomocą którego jest tworzona lista połączeń EDIF. Następnie, już za
pomocą Max+Plus II, z pliku tekstowego w formacie EDIF można utworzyć na przykład symbol schematowy (rys. 8), który można następnie wykorzystać w kolejnych projektach w taki
Elektronika Praktyczna 10/2003
37
Programowany generator PWM w VHDL
Rys. 9. Przebiegi: zegarowy i wyjściowy dla zadanego współczynnika wypełnienia 1/16 (4-bitowy generator PWM)
Rys. 10. Przebiegi: zegarowy i wyjściowy dla zadanego współczynnika wypełnienia 15/16 (4-bitowy generator PWM)
sam sposób jak pozostałe (także te dostarczone wraz z systemem projektowym) elementy biblioteczne.
Po implementacji prezentowanego projektu i przy założeniu, że generator PWM ma rozdzielczość 10-bitową (czyli dla pwm_res = 10), okazało się, że w układzie XC95108 (zawiera 108 m akr oko m ór ek) w y kor zy s tano 3 5 makiokomórek, w tym 22 rejestry, a maksymalna częstotliwość taktowania generatora (dla optymalizacji "powierzchniowej" i układu z sufiksem -15) wynosi 71,429 MHz (wynik nie był weryfikowany w praktyce). Podobne wyniki uzyskano w przypadku implementacji projektu w układzie EPM7128. Wykorzystano także 35 makrokomórek (spośród 128 dostępnych), a maksymalna częstotliwość taktowania w przypadku układu oznaczonego sufiksem -12 wynosiła 73,6 MHz (wynik symulacji, nie weryfikowany w praktyce).
Uzyskane efekty
Podczas opracowywania projektu, wszelkie testy sprzętowe były prowadzone na uniwersalnym zestawie ewaluacyjnym ZLlPLD (udostępniony przez firmę BTC), który dzięki specjalnej konstrukcji umożliwia stosowanie dowolnych układów PLD. Standardowo, są w nim stosowane układy CPLD zasilane napięciem 5 V. Polityka cenowa producentów układów powoduje, że najtańsze są układy zasilane napięciem 3,3 V z portami I/O przystosowanymi do współpracy z układami zasilanymi napięciem 5 V. I tak przykładowo, koszt implementacji
łopoty wynikające z niezgodności wersji
Udostępniony na naszej stronie internę to w ej projekt dla systemu WebPack ISE 5-2 nie jest kompatybilny | ze starszymi wersjami systemu projektowego. Wynika to z niezgodności formatu plików *.np/ i zastosowanej przez twórców systemu projektowego struktury plików pom ocniczy ch.
prezentowanego generatora PWM wynosi:
- w układzie XC95108-15 w obudowie PLCC84 (zasilanie 5 V): 16,47 zł brutto,
- w układzie XC95144XL-15 w obudowie TQFPl00 (zasilanie 3,3 V): 8,65 zł brutto,
- w układzie EPM7128-12 w obudowie PLCC84 (zasilanie 5 V): 19 zł brutto,
- w układzie EPM3128A-10 w obudowie TQFPl00 (zasilanie 3,3 V): 14,51 zł brutto.
Zestawienie to przygotowano na podstawie cen dystrybucyjnych brutto w Polsce (zakup pojedynczych sztuk). Do zestawienia dobrano układy najbardziej do siebie zbliżone pod względem liczby wbudowanych makiokomórek, ponieważ nie są dostępne ścisłe odpowiedniki w wersjach zasilanych napięciami 3,3 V oraz 5 V.
Na rys. 9 i 10 pokazano przykładowe wyniki działania 4-bito-wego generatora PWM zaimple-mentowanego w układzie PLD. Piotr Zbysiński, AVT piotr.zbysinski@ep.com.pl
38
Elektronika Praktyczna 10/2003
PROJEKTY
Uniwersalny RC5/SIRC
odbiornik
AVT-519
W EP3/03 przedstawiliśmy
opis uniwersalnego nadajnika
pro mi en io wani a
podczerwonego, który
umożliwia nadawanie
w systemach RC5 i SIRC.
Kontynuujemy ten temat w
tym ańykule. Prezentowany
układ spełnia odwrotną rolę,
gdyż umożliwia odbiór
i dekodowanie sygnałów
nadawanych w tych
systemach zdalnego
sterowania.
Rekomendacje: za pomocą
prezentowanego w ańykule
odbiornika można
przekształcić komputer
w urządzenie zdalnie
stero wan e, o in teligencji
ograniczonej wyłącznie
wyobraźnią użytkownika. Rolę
interfejsu programowego może
spełniać np. słynny Girder.
Systemy kodowania danych SIRC i RC5 różnią się między sobą sposobem kodowania stanów logicznych, jak również częstotliwością nośną sygnału. Dla systemu RC5 częstotliwość ta wynosi 36 kHz, a dla systemu SIRC 40 kHz. Do odbioru transmisji w podczerwieni zastosowano specjalizowany układ typu TSOP1738, na wyjściu którego otrzymuje się przetworzony, cyfrowy sygnał. Dzięki temu budowa systemu tinsmisyjnego znacznie się upraszcza. Układ TSOP1738 odwraca w fazie sygnał wejściowy, dlatego w czasie spoczynku na wyjściu tego układu występuje poziom wysoki, a w momencie oświetlenia niski poziom napięcia.
Na rys. 1 przedstawiono przebiegi czasowe występujące na wyjściu układu TSOP1738 podczas odbierania danych w systemie RC5, a na rys. 2 przebiegi w czasie odbierania danych w systemie SIRC.
Dekodowanie odbieranych danych odbywa się automatycznie, bez konieczności ręcznego ustalania, w jakim systemie ma pracować odbiornik. Urządzenie współpracuje z komputerem, dlatego dane o odbieranych kodach wyświetlane są na ekranie komputera. Odbiornik komunikuje się
z komputerem poprzez port szeregowy z prędkością 9600 bd (8-N-l). Odbiornik pracuje bez zewnętrznego zasilania, gdyż do zasilania wykorzystano napięcie dostępne na wyjściach tego portu. Wysyłane do komputera dane są w kodzie ASCII, dlatego do ich wyświetlenia można wykorzystać dowolny program terminalowy, na przykład Hyper-Terminal.
Opis układu
Schemat odbiornika przedstawiono na rys. 3. Układ zawiera niewielką liczbę elementów, a to dzięki zastosowaniu mikiokont-rolera, który dekoduje odbierane dane i wysyła je do komputera. Wewnątrz układu procesora zawarta jest pamięć programu typu Flash o pojemności lk x 14 słów, 64 B pamięci RAM i 128 B pamięci EEPROM oraz dwa liczniki. Praca procesora może być synchronizowana sygnałem zegarowym generowanym przez wewnętrzny generator RC, co daje możliwość wykorzystania wszystkich dostępnych linii do sterowania układami zewnętrznymi. Jednak w przedstawionym układzie wymagana jest duża dokładność generowanych przebiegów, dlatego sygnał zegarowy jest stabilizowany za pomocą zewnętrznego rezonatora kwarcowego. Zerowanie procesora po włączaniu zasilania jest wykonywane przez wewnętrzny układ zerujący.
Dane
CB
Wyjfcte układu; TSOP1738 !
Bity startu Błt
kontrolny
Bity adresu
Bity komendy
Rys. I. Przebiegi czasowe na wyjściu układu TSOP173S przy odbieraniu danych w systemie RC5
Elektronika Praktyczna 10/2003
Uniwersalny odbiornik RC5/SIRC
DANE
START D CO DC1D C2 D C3 D C4J D C5 D C6 D AO D A1 DA2DA3DA4
2,4ms
brt1
Przerwa 1,2ms'6ms 0,6ms
Rys. 2. Przebiegi czasowe na wyjściu układu TSOP1738 przy odbieraniu danych w systemie SIRC
Jako odbiornik promieniowania podczerwonego zastosowano specjalizowany układ typu TSOP1738. Zawiera on wszystkie elementy niezbędne do odbioru promieniowania podczerwonego. Dodatkowo zawiera filtr pasmowo-przepusto-wy zawężający pasmo odbieranych częstotliwości sygnału nośnego w transmitowanym przez nadajnik sygnale świetlnym, co znacznie zmniejsza zakłócenia w odbieranym sygnale. W przedstawionym układzie środkowa częstotliwość tego filtru wynosi 38 kHz. Częstotliwość ta została wybrana ze względu na różne częstotliwości fali nośnej występującej w obu systemach. Dla systemu RC5 wynosi ona 36 kHz, a dla systemów SIRC 40 kHz. Zastosowanie odbiornika o częstotliwości 38 kHz umożliwia odbiór sygnałów z obydwu systemów, bez ISTOTNEGO zmniejszenia zasięgu. Zworka JPl służy do zmiany sposobu wyświetlania odebranych kodów. Podłączona jest bezpośrednio do procesora, bez rezystora podciągającego do plusa zasilania, gdyż rezystor taki znajduje się wewnątrz procesora.
Komunikacja z komputerem odbywa się w standardzie RS232,
dlatego należy przekształcić poziomy napięć odpowiadające standardowi TTL (stan 0:0.. .0,8 V, stan 1:2,4...5 V) na poziomy RS232 (stan l:-15...-3 V, stan 0:3...15 V). Do takiej konwersji można zastosować specjalizowany układ, na przykład MAX232, jednak z uwagi komunikację jednostronną zastosowano prostsze rozwiązanie. Elementem przełączającym napięcie na wejściu RXD (2) jest tranzystor Tl. Poziom niski jest wymuszany przez rezystor Rl podłączony do wyprowadzenia TXD (3). Wyprowadzenie to jest wyjściem sygnału z komputera. Ponieważ komunikacja odbywa się tylko w stronę komputera, to na wyjściu TXD (3) przez cały czas występuje poziom niski (napięcie około -10 V). Zastosowany rezystor powoduje, że na wejściu RXD (2) panuje napięcie o wartości około -5 V, co jest wystarczające dla stanu 1. Jeśli ma zostać podany poziom wysoki, to procesor załącza tranzystor, który podaje napięcie zasilania na wejście RXD (2) o wartości +5 V. W ten sposób został wykonany prosty konwerter poziomów, bez znacznego rozbudowywania całego układu. Do zasilania odbiornika wykorzystano na-
pięcie panujące na wyjściach RTS i DTR. Aby układ mógł pracować, to program odczytujący dane z portu szeregowego musi ustawić te wyjścia na poziomie wysokim (w przypadku stosowania programu HyperTerminal poziomy te są ustawiane automatycznie po jego uruchomieniu).
Napięcia z wyjść RTS i DTR są poprzez diody Dl i D2 sumowane i kierowane na diodę Zenera D3. Diody te dodatkowo zabezpieczają układ przed napięciem ujemnym występującym, gdy na wyjściach RTS i DTR występują poziomy niskie. Wydajność prądowa każdego z wyjść wynosi około 10 mA, dlatego nie ma potrzeby stosowania dodatkowego rezystora ograniczającego prąd płynący przez diodę D3. Dioda Zenera ogranicza podane napięcie do wartości około 5 V, a kondensatory Cl i C2 wygładzają tak uzyskane napięcie. Napięcie zasilające odbiornik (US2) jest dodatkowo filtrowane przez układ zbudowany z rezystora R2 i kondensatora C5.
Montaż i uruchomienie
Układ odbiornika został zmontowany na płytce, której schemat montażowy przedstawiono na rys. 4. Układ zawiera niewielką liczbę elementów, dlatego montaż nie powinien sprawić kłopotu. Elementy należy montować poczynając od rezystorów Rl, R2 i diod D1.. .D3, następnie należy wlutować podstawkę pod procesor i kondensatory. Na końcu należy wlutować tranzystor, złącze CONl
vcc
GP5/T1CKI/OSC1/CLKIN GP4/T1G/OSC2/CLKOIJT
Rys. 3. Schemat elektryczny odbiornika RC5/SIRC
40
Elektronika Praktyczna 10/2003
Uniwersalny odbiornik RC5/SIRC
ooo
T1 jpi
des o
Rys. 4. Rozmieszczenie elementów na płytce odbiornika RC5/SIRC
i układ US2. Po zamontowaniu wszystkich elementów układ jest gotowy do pracy.
Obsługa
Sprzężenie odbiornika z komputerem polega na podłączeniu go do wolnego złącza portu szeregowego i uruchomieniu programu HyperTeiminaL Program należy skonfigurować do pracy z prędkością 9600 bd. W tym celu należy w PHk->Właściwości wybrać właściwy port, a następnie w Kon-figuruj i prędkość 9600. Po skonfigurowaniu programu i nawiązaniu połączenia każdorazowe odebranie prawidłowego sygnału będzie prezentowane w oknie dialogowym. Oprogramowanie zawarte w mikiokontiolerze automatycznie rozpoznaje system nadawania i dlatego oprócz informacji o numerze naciśniętego klawisza i adresie urządzenia podawany jest również system, w jakim kod został wysłany. Wyświetlanie adresu i komendy jest w formie dziesięt-
Rys. 5. Przykładowy komunikat wyświetlony w oknie programu HyperTerminal po odebraniu danych w systemie SIRC
nej. Dla systemu RC5 adres urządzenia zawiera się w przedziale 0...31, a numer komendy w przedziale 0...63. System SIRC umożliwia przesłanie większej ilości informacji i dlatego adres urządzenia może zawierać się w przedziale 0...31, a numer komendy w przedziale 0...127. Wyświetlanie informacji może być wykonane w dwojaki sposób: pełny lub skrócony. W trybie pełnym podawana jest pełna nazwa systemu, adresu i komendy. Dla systemu RC5 przykładowy komunikat może mieć postać: RC5(PhiIips) Ad-dress=2 Command=7, a dla systemu SIRC przykładowy format wyświetlania odebranych kodów przedstawiono na rys. 5. Wyświetlanie w trybie pełnym jest wykonywane, jeśli zworka JPl jest rozwarta. W przypadku zwarcia zworki informacje będą wyświetlane w formie skróconej. Dla odebranego kodu w systemie RC5 przykładowy komunikat będzie miał postać: R A=4 C=45, a dla systemu SIRC ten sam komunikat zostanie wyświetlony w następu-
WYKAZ ELEMENTÓW
Rezystory
Rl: R2: Kondensatory
Cl: lOOnF
C2: 100 F/lóV
C3, C4: 30pF
C5: 47 F/lóV
Półprzewodniki
Dl, D2: 1N414S
D3: dioda Zenera 5,IV
Tl: BS250
US1: PICI2F675 zaprogramowany
US2: TSOP173S
Różne
CON1; DB9 kqtowe do druku
żeńskie
JPl: goldpin 1x2 + jumper
jacy sposób: S A=4 C=45. Zmiana stanu zworki może być wykonywana w czasie pracy, gdyż stan portu, do którego zworka jest dołączona jest sprawdzany po każdorazowym odebraniu kodu i stan ten jest uwzględniany przy każdorazowym wysyłaniu danych do komputera. Krzysztof Ptawsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http:iiwww.ep.coni.pli ?pdfipazdziernikO3Jttin oraz na płycie CD-EP10/2003B w katalogu PCB.
Elektronika Praktyczna 10/2003
41
PROJEKTY
Centrala alarmowa z powiadomieniem część 2
AVT-526
GSM,
W drugiej części artykułu
przedstawiamy tajniki
przygotowania programu
sterującego pracą centrali ze
zdalnym powiadamianiem za
pomocą telefonu GSM. jak
się okazuje, wysyłanie SMS-
ów nie jest aż tak trudne
jak się powszechnie uważa.
Rekomendacje: nowoczesny
i bardzo skuteczny system
zdalnej ochrony mienia,
dzięki któremu informacja
o włamaniu dotrze do Ciebie
szybko i w dowolne miejsce.
Wysyłanie SMS
"Jak wysyłać wiadomości SMS za pomocą mikiokontiolera?", to pytanie bardzo często występujące w listach kierowanych do Redakcji oraz zadawane na forum grup dyskusyjnych w Internecie, dlatego teź poświęcę mu nieco więcej miejsca. Obydwa z posiadanych przez mnie modemów GSM obsługują dwa tryby przesyłania wiadomości SMS. Są one oznaczone numerami 0 i 1. Odpowiedź telefonu lub modemu na rozkaz "AT+CMGF?" lub "AT+CMGF=?" będzie zawierać listę obsługiwanych trybów pracy. Ja dla prezentowanej aplikacji wybrałem tryb 1, moim zdaniem najodpowiedniejszy. Nawiasem mówiąc, wolę nie wyrażać swojej opinii na temat kodowania wiadomości w trybie 0, zwanym również PDU modę...
Podane poniżej informacje opracowane zostały na podstawie dokumentacji firmy Siemens dla modemu GSM M20. Zainteresowanym poszerzeniem swojej wiedzy na ten temat odsyłam szczególnie do czterech źródeł:
1. Dokumentacji modemu M20 Siemens dostępnej na stronie pro-
ducenta pod nazwą "sms_guid_-vl_0.doc". Autorem jest T. Schuh.
2. Noty aplikacyjnej umieszczonej pod adresem http:// www.mcselec.com/an_31 .htm. Autorem jest Vilko Sustić.
3. Noty aplikacyjnej umieszczonej pod adresem http:// www. mes elec.com /a n_l 1 7 .htm. Autorem jest Warren Read.
4. Informacji zawartych na stronie intemetowej http://www.dre-amfabric.com/sm s/.
Modę 0 (PDU)
W tym trybie na projektanta aplikacji spada obowiązek zakodowania całej informacji dotyczącej wysyłanego komunikatu. Przeanalizujmy przykład (rys. 3) zaczerpnięty z materiałów firmy Siemens, ilustrujący przesyłanie wiadomość o treści "THE BIG BROWN FOX" pod numer telefonu +991234567.
Wyjaśnijmy znaczenie poszczególnych pól komunikatu SMS:
1. Długość pola SCA jest opcjonalna dla niektórych telefonów. Jest to podana szesnastkowo liczba oktetów numeru Centrum Usług. Większość telefonów umożliwia wprowadzenie w tym
Elektronika Praktyczna 10/2003
43
Centrala alarmowa z powiadomieniem GSM
miejscu wartości 0x00, więc nie trzeba podawać i tym samym znać tego parametru.
2. Typ numeru Centrum Usług
- podanie wartości 91 oznacza numerację międzynarodową (np. z prefiksem +48 dla Polski), 81 oznacza numerację lokalną, obowiązującą na terenie danego kraju.
3. Numer Centrum Usług to numer podany przez operatora, dzięki któremu możliwe jest przesyłanie wiadomości SMS. Np. dla sieci Plus GSM jest to numer +48601000100. Zwróćmy uwagę na sposób kodowania tego numeru. Na przykład numer "601 000100" zakodowany będzie w sposób następujący:
- numeracja krajowa, bez numeru kierunkowego: 81,
- nieparzysta liczba znaków - na końcu dodawana jest litera F, więc numer będzie miał postać "601000100F",
- numer po kodowaniu będzie następujący: "06010010F0".
4. Pierwszy oktet komunikatu SMS
Numer biłu 7 6 5 4 3 2 10 Nazwa biłu 1P- 1P- 1P- 1P- 1P- 1P- 1P- TP-RP UDłllSRR VPf VPf RD MII MII Znaczenie poszczególnych bitów jest następujące:
- TP-RP - ścieżka (numer) nadawcy; ustawienie bitu oznacza, że ścieżka dla odpowiedzi na wysłany SMS jest ustawiona,
- TP-UDHI - ustawienie bitu oznacza, że przesyłane dane użytkownika rozpoczynają się od nagłówka identyfikującego,
- TP-SRR - ustawienie tego bitu oznacza, że nadawca żąda raportu na temat odbioru wiadomości SMS przez odbiorcę,
- TP-VPF - bity określające format okresu ważności wiadomości SMS:
- O O: TP-VPP nie występuje,
- 1 O: TP-VPP obecne, format relacyjny (0...143 = (wartość parametru + 1) x 5 minut, 144...167 = 12 godzin + (wartość parametru - 143) x 30 minut, 168...196 = (wartość parametru - 166) x 1 dzień, 197...255 = (wartość parametru - 192) x 7 dni),
- O 1: format rozszerzony, 7 oktetów,
- 1 1: format absolutny, 7 oktetów,
- TP-RD - ustawienie bitu powoduje, że duplikaty wiadomości są odrzucane,
- TP-MTI - typ komunikatu: wartość bitów 0 1 powoduje, że wiadomość przesyłana jest w trybie SMS-SUBMIT.
5. Pole statusu określające numer odniesienia dla wysyłanego komunikatu. Wpisanie wartości 0x00 powoduje, że numer telefonu, z którego wysyłamy SMS jest równocześnie numerem odniesienia.
6. Długość numeru odbiorcy SMS, podana w liczbie bajtów numeru.
7. Typ numeru odbiorcy SMS (81 lub 91).
8. Numer odbiorcy wiadomości SMS (kodowany w ten sam sposób, co numer Centrum Usług).
9. Identyfikator protokołu komunikacyjnego. Wartością typową, używaną przez większość sieci telefonów komórkowych jest 0x00.
10. Schemat kodowania danych. Wprowadzona wartość 0x00 oznacza, że znaki kodowane są w postaci 7-bitowych znaków ASCII.
11. Okres ważności wiadomości SMS. Liczba podana i interpretowana zgodnie z kodem reguły podanym przez bity TP-VPF.
12. Liczba oktetów bajtów tekstu.
13. Tekst wiadomości.
Zgodnie ze specyfikacją organizacji ETSI [www.etsi.org), wiadomość SMS może mieć do 160 znaków długości, przy czym każdy znak zakodowany jest w postaci słowa 7-bitowego. Znaki kodowane 8-bitowo zazwyczaj nie są przez telefony wyświetlane, natomiast są czasami używane jako sterujące (przesyłanie obrazów, dzwonków itp.). Komunikaty zakodowane w postaci liczb 16-bi-towych (maksymalnie 70 znaków) są używane do przesyłania komunikatów zakodowanych według standardu Unicode (UCS2) i mogą być wyświetlane przez większość aparatów GSM. Niektóre z telefonów wyświetlają te komunikaty jako Flash SMS. My zajmiemy się kodowaniem standardowym, gdy kody znaków mają długość 7 bitów.
Prześledźmy sposób kodowania tekstu na przykładzie: zakodujmy wiadomość "ELEKTRONIKA".
Tekst "ELEKTRONIKA" zawiera 11 znaków nazywanych septe-tami ze względu na swą długość - 7 bitów. My musimy zmienić sposób kodowania z septetów na oktety - znaki o długości 8 bitów (tab. 2).
Pierwszy septet (E) zamieniany jest na oktet poprzez "zabranie" najmniej znaczącego bitu następnego w kolejności znaku i wprowadzenie go na pozycję bitu 7 (0 + 1000101 = 01000101 tj. 0x45). Po tej operacji bit jest usuwany, więc następne przekształcenie (dla litery L) zabierze dwa bity z kolejnego znaku, kolejne trzy i tak dalej. W konsekwencji znak ósmy zostanie całkowicie usunięty. Dla dziewiątego znaku proces rozpocznie się od początku (tab. 3).
03 91 0100 11 00 09 91
Długość pola SCA Typ SCA Pole numeru SCA Pierwszy oktet Numer odniesienia dla wiadomości SMS. Długość numeru odbiorcy Typ numeru
Długość pola numeru centrum usług w bajtach (można podać 00) 91 - numeracja z numerem kierunkowym kraju, 81 - bez numeru kierunkowego 0100 = 1000 (zamieniona pozycja cyfr) Pierwszy oktet statusu wiadomości SMS (11H to wartość typowa dla większości wiadomości) Należy wprowadzić wartość 0 Długość numeru odbiorcy w bajtach Podobnie jak w przypadku typu SCA - 91 lub 81
Rys. 3. Przykład ilustrujący przesłanie wiadomości o treści "THE BIG BROWN FOX" pod numer telefonu +991234567
44
Elektronika Praktyczna 10/2003
Centrala alarmowa z powiadomieniem GSM
Tab. 2. Ilustracja zasady przekodowywania septetow na oktety
E L E K T R o N 1 K A
0x45 0x4C 0x45 0x4 B 0x54 0x52 0x4 F 0x4E 0x49 0x4 B 0x41
1000101 1001100 1000101 1001011 1010100 1010010 1001111 1001110 1001001 1001011 1000001
1000101 100110O 1000101 1001011 101O1OO 101OO1O 1001111 1001110 1001001 1001011 10000O1
Tab. 3.
01000101 01100110 01110001 01001001 10010101 OO111110 10011101 11001001 01100101 00010000
0x45 0x66 0x71 0x49 0x95 0x3E 0x9 D 0xC9 0x65 0x10
Zakodowaną wiadomość "ELEKTRONIKA" wyślijmy na numer sieci Plus GSM. Centrum wiadomości (SCA) ma tutaj numer +48601000310. Prześlijmy wiadomość na numer +48605010203.
1. Długość pola SCA (w tym przypadku 7 bajtów, z polem typu SCA): 07.
2. Typ SCA - numeracja międzynarodowa: 91.
3. Numer SCA: 8406010013F0.
4. Pierwszy oktet wiadomości SMS: 11.
5. Pole statusu: 00.
6. Długość numeru odbiorcy SMS (liczba bajtów): 07.
7. Typ numeru odbiorcy -numeracja międzynarodowa: 91. 8.Numer odbiorcy:
8496959192F3.
9. Identyfikator protokołu: 00.
10. Schemat kodowania: 00.
11. Okres ważności (1 tydzień): BF.
12. Długość tekstu: OxOA.
13. Tekst: 45667149953E9DC96510. Uff... Zbierzmy to w całość:
07918406010013F0110007918496959192 F30000BF0A45667149953E9DC96510. Niestety, oprócz znajomości długości niektórych ze składników wiadomości, aby ją wysłać musimy jeszcze znać jej całkowitą długość. W prezentowanym przykładzie wynosi ona 32 bajty. Zestaw poleceń, które musimy
wydać modemowi aby wysłać wiadomość, będzie następujący:
1. AT+CMGF=0 .
2. AT+CMGS=32 .
3. >07918406010013F011000791 84 9 6 95 9192 F3OOOOBFO A456671 49953E9DC96510 .
Uwaga: wyżej wymienione znaki są reprezentacją bajtów o wartości zakodowanej szesnastkowo. Cyfra "32" jest długością przesyłanej informacji podaną w bajtach. Podany przykład kodowania jest właściwy dla informacji wprowadzanej przez interfejs komunikacyjny. Inaczej wysyła się wiadomość, gdy numer Centrum Usług znajduje się na karcie, czy też gdy wysyłana jest wiadomość zapamiętana w pamięci telefonu lub karty SIM.
Modę 1 (TEXT MODĘ)
W przeciwieństwie do poprzedniego, tryb 1 zwany również TEXT MODĘ jest bardzo łatwy w użyciu. Poniższa sekwencja poleceń powoduje wysłanie wiadomości w trybie tekstowym:
1. AT+CMGF=1 .
2. AT+CMGS="+48605010203" .
3. >ELEKTRONIKA PRAKTYCZNA .
Trybem tym posłużyłem się tworząc procedurę "send_SMS". Niestety, nie wszystkie telefony GSM obsługują ten tryb pracy.
Procedura wysyłania wiadomości SMS: "send_sms"
Na list. 5 jest kod źródłowy procedury wysyłania wiadomości SMS. Część wiadomości docierającej do adresata jest stała, zdefiniowana w programie. Część wiadomości taka, jak lokalizacja obiektu i opis czujnika jest zmienna i może być zdefiniowana przez użytkownika. Dane te zostają zapamiętane w pamięci EEPROM i są używane przy komponowaniu wiadomości.
Do modemu jako pierwsze jest wysyłane polecenie zapisane w pamięci ROM, zdefiniowane pod etykietą sendsmsl. Jest to polecenie załączenia trybu tekstowego "AT+CMGF=1". Uwaga! Zarówno polecenie wyświetlające listę dostępnych trybów jak i załączające konkretny tryb pracy działa dopiero po załogowaniu się telefonu do sieci. Każde polecenie musi być zakończone znakiem CR (OxOD). Za przesłanie polecenia z ROM odpowiedzialna jest funkcja o nazwie putf. Różni się ona od puts tym, że dane wysyłane przez UART pobiera z ROM, a nie bufora w pamięci RAM. W następnej kolejności przesyłany jest do modemu numer telefonu, którego stała część zdefiniowana jest pod etykietą send_sms_2, a zmienna, wprowadzana przez użytkownika,
99214365F7 00 00 FF 11 546411244C1E4142E
9F3EA94199F58
Numer odbiorcy Identyfikator protokołu Schemat kodowania Okres ważności SMS Długość tekstu Tekst
wiadomości SMS danych
Numer odbiorcy SMS: 0x00 - dostarcz jako 0x00 - alfabet OxFF = 255 - 192 Szesnastkowo podana THE BIG BROWN FOX
cyfry są zamieniane normalny SMS domyślny, 7-bitowe tygodnie = 63 liczba bajtów oktetów
miejscami a w znaki ASCII tygodnie tekstu
przypadku gdy zawiera
on nieparzystą liczbę
cyfr, na końcu
dodawane jest F. (123
-^ 123F -^ 21F3)
Rys. 3 - cd.
Elektronika Praktyczna 10/2003
45
Centrala alarmowa z powiadomieniem GSM
pobierana jest z EEPROM. Polecenie zawierające numer telefonu adresata wiadomości komponowane jest w pamięci RAM i przesyłane do modemu przez funkcję puts. Podobnie tworzona jest wiadomość tekstowa: komponowana w RAM z części stałej send_sms_3, tekstu o lokalizacji obiektu wprowadzonego przez użytkownika oraz etykiety czujnika wyliczanej na podstawie zawartości zmiennej sensors (zmienna ta przesuwana jest w prawo z użyciem flagi przeniesienia C do momentu, aż flaga zostanie wyzerowana; logiczne "0" oznacza stan aktywny czujnika -liczba przesunięć wskazuje na numer wejścia). Tekst musi być zakończony znakiem CTRL+Z. Jest to znak końca zbioru tekstowego o kodzie 26 (0xlA). Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/pazdziernikO3Jitm oraz na płycie CD-EP10/2003B w katalogu PCB.
List. 5. Procedura wysyłania wiadomości tekstowej SMS
send_SMS:
ldi zl,LOW(send_sms_l i) Z = adres nastawy-polecenia w ROM
ldizh,HIGH(send_sms_ i<rcall putf wysłanie polecenia
rcall gets pobranie odpowiedzi modemu
ldi zl,LOW(send_sms_2 i) Z = adres napisu w ROM
ldizh,HIGH(send_sms_ 2<<1)
ldiyl.LOW(buffer) Y = adres bufora w RAM
clryh tu adresy RAM mogą być tylko 1-bajtowe
rcall move_rom2ram przepisanie danych z ROM do RAM,
adresy ROM w Z,RAM w Y
ldieeaddr,SMSMJMEER_ EEADDR teraz pobranie numeru telefonu z eeprom do "buffer",
na który wskazuje Y
rcall ee_read2buf uwaga: zmieniany jest rejestr Y
lditemp,0x22 cudzysłów zamykający
st y.temp
rcall st_EOL zapisanie znaków CR+LF do bufora
rcall puts_buffer wysłanie zawartości "buffer" przez UART
teraz kompozycja SMS do wysłania
ldi zl, LOW (send_sms_3 1) odczyt części "stałej" z ROM i EEPROM
ldizh,HIGH(send_sms_ 3<<1)
ldiyl.LOW(buffer)
clryh
rcall move_rom2ram
ldieeaddr,SMSTEXT_EEADDR teraz odczyt opisu obiektu (30 znaków wprowadzone
przez użytkownika)
rcall ee_read2buf
lditemp, ' , ' do temp kod przecinka
st y.temp zapisanie go w buforze
clrtemp wyliczenia adresu etykiety i jej odczyt (jeśli czujnik
jest aktywny, to bit
send_SMS sen:
in c t emp przyjmuje wartość "0")
cle kasowanie flagi "carry"
rorsensors przeniesienie najmłodszego bitu do C
bres send_SMS sen jeśli C jest "l",to wejście nie jest aktywne
moveeaddr, temp
rcall sen_ee_addr wyznaczenie adresu w eeprom
incyl odczyt etykiety wejścia do bufora w RAM
rcall ee_read2buf
lditemp,0xlA zapamiętanie znaku "Ctrl+Z"
st y.temp
rcall st_EOL zapisanie kodów CR+LF
rcall puts_buffer wysłanie zawartości "buffer" przez UART
inc smssent ustawienie znacznika wysłania SMS
ret
46
Elektronika Praktyczna 10/2003
PROJEKTY
"Klocki"
5
RS485,
W ostatniej części ańykułu
opisujemy budowę dwóch
modułów terminalowych, za
pomocą których można
wyświetlać dane przesyłane
magistralą RS485. Pierwszy
z prezentowanych modułów
służy do sterowania czterech
wyświetlaczy LED,
a drugi alfan umerycznego
wyświetlacza LCD.
Rekomendacje: "klocki"
RS485 polecamy szczególnie
tym Czytelnikom, którzy
muszą przesyłać dane na
duże odległości z relatywnie
dużą prędkością.
Klocki RS485 to:
- AVT-530 - konwerter RS232<->RS485,
- AVT-531 -kartaprzekaźników,
- AVT-532-kartatriaków,
- AVT-533 - kart a wyjść cyfrowych (aktywne GND),
- AVT-534 - kart a wyjść cyfrowych (aktywne VCC),
- AVT-535 - kartawejść cyfrowych,
- AVT-536-8-wejściowakartawejść analogowych,
- AVT-537-4-cyfrowy wyświetlacz LED,
- AVT-538 - 32-znakowy wyświetlacz LCD.
Moduł terminala
z wyświetlaczem LED
AVT-537
Moduł z wyświetlaczem LED może służyć do wyświetlania wyników pomiarów wykonanych na przykład za pomocą karty wejść analogowych. Wszystkie wyświetlacze mają kropki dziesiętne i każda może być zapalana i gaszona. Sterownik wyświetlacza umożliwia dwustronną komunikację, dzięki czemu można do niego zapisywać dane do wyświetlenia, jak również odczytywać aktualnie wyświetlane cyfry i stan kropek dziesiętnych.
Budowa
Moduł wyświetlacza LED składa się z dwóch płytek: płytki sterownika i płytki wyświetlaczy si e dmi o s e gm ento wy ch.
Na rys. 20 przedstawiono schemat elektryczny sterownika wyświetlaczy. Układem sterującym modułem jest mikiokontioler typu PIC16F872, umieszczony w obudowie 28-nóżkowej. Posiada on wystarczającą do sterowania wyświetlaczami liczbę wyprowadzeń, a jednocześnie zajmuje niewiele miejsca na płytce. Linie portów mikiokontiolera mogą być obciążane prądem o maksymalnej wartości 25 mA, zarówno w stanie jedynki jak i zera logicznego, dlatego też sterują bezpośrednio katodami wyświetlaczy, bez konieczności stosowania dodatkowych układów wzmacniających. Obsługa wyświetlaczy jest realizowana w trybie multipleksowym. Pozwala to m.in. ograniczyć prąd pobierany przez moduł. W ob-w o dzi e ano do wy m wy ś wi e tla c zy płynie prąd o wartości około 70 mA, dlatego do sterowania nimi zastosowano klucze tranzystorowe umieszczone na płytce wyświet-
laczy (rys. 21). Mikrokontroler pracuje z zewnętrznym rezonatorem kwarcowym o częstotliwości 4 MHz. Do jego zerowania po włączaniu zasilania zastosowano układ typu DS1813 (US3).
Za konwersję sygnałów występujących w linii transmisyjnej (o standardzie RS485) na standard TTL odpowiada układ MAX485 (US2). Dokonuje on również konwersji z poziomów TTL na poziomy RS485. W czasie spoczynku układ ten pracuje w trybie odbiornika, ponieważ na wejściach DE i !RE występuje poziom niski wymuszony przez wyjście procesora. Przełączenie w tryb nadawania układu MAX485 następuje tylko na czas wysyłania danych przez moduł wyświetlaczy LED, a następnie zostaje przywrócony tryb odbioru, aby nie blokować linii transmisyjnej.
Dodatkowy rezystor R* służy do zapewnienia dopasowania linii i powinien być zamontowany jedynie w jednym module, najbardziej oddalonym od nadajnika (np. opisanego wcześniej konwertera RS232<->RS485). O jego montażu należy jednak zdecydować po pod-
Tab. 9. Znaki możliwe do wyświetlenia przez wyświetlacze LED i ich reprezentacja szesnastkowa
Wybrany znak Kod (hat) WyoaAJefcny rak
0 0x30 0
1 0x31 1
2 0x32 2
3 0x33 3
4 0x34 4
5 0x35 5
6 0x36 6
7 0x37 7
S 0x38 S
9 0x39 9
- 0x2 D - (minus)
Spacja 0x20 Wygaszony
Elektronika Praktyczna 10/2003
47
"Klocki" RS485
US1 PIC16F872
VCC ? CON3
RA3/AN3/VREF+
RA2/AN2/VREF-
> pjwrocKi RA1/AN1
RAO/ANO
RA5/AN4/SS RB7<
RB6<
> RC7/RX/DT RB5
>RC6fl"X/CK RB4
>RC5/SDO RB3
> RC4/SDI/SDA RB2
> RC3/SCK/SCL RB1
> RC2/CCP1 RBQ/INT<
>RC1fl"1OSI
MCLFWPP
OSC2/CLKOUT OSC1/CLKIN<
X1 4MHz
D1 1N4007
C1 100u
C2 100n
Rys. 20. Schemat elektryczny płytki sterownika wyświetlacza LED
łączeniu wszystkich modułów, gdyż podczas testów okazał się zbędny. Zworka JPl służy do zmiany podstawowego adresu, pod którym będzie się zgłaszał wyświetlacz LED, natomiast zworka JP2 umożliwia powrót do podstawowego adresu. Rezystory Rl i R2 podciągają wejścia RCO i RCl do plusa zasilania. Opis zmiany podstawowego adresu karty wyjść cyfrowych zostanie przedstawiony w dalszej części artykułu, gdyż dla wszystkich modułów przebiega w taki sam sposób.
Na płytce wyświetlaczy znajdują się cztery wyświetlacze sied-
miosegmentowe o wysokości 13 mm (DP1...DP4), rezystory ograniczające prąd płynący przez diody wyświetlaczy (R1...R8) i tranzystory sterujące anodami wyświetlaczy (T1...T4). Ponadto znajdują się rezystory ograniczające prąd bazy tranzystorów Tl.. ,T4 (R9...R12) oraz złącze szpilkowe służące do wykonania połączenia z płytką sterownika.
Montaż
Montaż należy rozpocząć od płytki sterownika. Na rys. 22 przedstawiono rozmieszczenie elementów na płytce. Kondensatory
elektrolityczne i stabilizator napięcia należy zamontować w pozycji leżącej i dlatego należy wcześniej zagiąć ich wyprowadzenia pod kątem 90. Złącza CONl i CON2, w zależności od potrzeb, można zamontować od strony elementów lub od strony lutowania. Wskazany jest montaż od strony lutowania, gdyż umożliwi to swobodny dostęp do elementów po połączeniu obydwu płytek (sterownika i wyświetlaczy).
Rozmieszczenie elementów na płytce wyświetlaczy przedstawiono na rys. 23. Złącze CONl należy zamontować od strony lutowania.
Q , R1 g
f -------- R? t \
e --------1 R3 8 \
d --------1 R4 d \
c --------1 R5
b --------1 R6 b \
a --------1 R7
do =\ RS dD \
8x68
DP1 SAS2-11EWA
Rys. 21. Schemat elektryczny płytki wyświetlaczy LED
48
Elektronika Praktyczna 10/2003
"Klocki" RS485
Po zmontowaniu płytek należy połączyć je ze sobą za pomocą złącza CON3 (na płytce sterownika) i złącza CONl (na płytce wyświetlaczy). Do złącza CONl płytki sterownika należy podłączyć przewody linii komunikacyjnej, a do złącza CON3 źródło zasilania o napięciu około 9 V i wydajności
prądowej równej około 100 mA, Po włączeniu zasilania wszystkie wyświetlacze będą wygaszone.
Obsługa wyświetlaczy LED
Moduł wyświetlaczy LED ma adres odpowiadający kodowi znaku "7" (ASCII). Współpraca z nim
Tab. 10. Polecenia umożliwiające sterowanie modułem wyświetlaczy LED
Rodzaj komendy Wydana komenda Reakcja karty wyjoeae cyfrowych
Zapis jednego znaku na podany wyświetlacz ESC 7nwncnnnznenter c - zapis cyfr n - numer cyfry (pozycja} 1...4 z - wyświetlony znak (0...9,-, } Zapisuje znak podany wnparametrze "z", na pozycji podanej wnparametrze "n"
Przykład: ESC 7nwncn3n1nenter Zapis cyfry Inna wyświetlaczu onnumerze 3n
Zapis cyfr na wszystkie wyświetlacze jednocześnie ESC 7nwncnanc1 c2 c3 c4 enter cn- zapis cyfr an- zapis wszystkich cyfr d - wartość cyfry na pozycji nr 1 c2 - wartość cyfry na pozycji nr 2 c3 - wartość cyfry na pozycji nr 3 c4 - wartość cyfry na pozycji nr 4 Zapis nowych wartości na wszystkie wyświetlacze, odpowiednio d dla wyświetlacza DP1, c2 dla wyświetlacza C2, itd.
Przykład: ESC 7QADC0LDin2G3D4nerfer Zapis do wyświetlacza cyfr 1234
Zapis stanu jednej kropki dziesiętnej ESC 7nwnknnnsnenter kn- zapis stanu kropki dziesiętnej no numer kropki (1...4) sn- stan kropki (0,1} Zapala lub gasi kropkę dziesiętną onnumerze podanym wnparametrze "n". Jeśli s=0, to kropka zostanie wygaszona, jeśli s=1, to kropka zostanie zapalona.
Przykład: ESC 7nwnkn1n1nnerfer Zapala kropkę dziesiętną na wyświetlaczu onnumerze DP1
Zapis stanów wszystkich kropek dziesiętnych jednocześnie ESC 7nwnknank1 k2 k3 k4 enter kn- zapis stanu kropki an- zapis wszystkich kropek k1 - stan kropki nr 1 (0,1} k2 - stan kropki nr 2 (0,1) k3 - stan kropki nr 3 (0,1) k4 - stan kropki nr 4 (0,1} Ustala stany wszystkich kropek jednocześnie, jeśli kn=1 to kropka zapalona, jeśli kn=0, to kropka zgaszona
Przykład: ESC 7DwnkGLDinCn1nODerfer Zapala kropki na wyświetlaczach DP1 inDP3, angasi kropki na wyświetlaczach DP2 inDP4
Odczyt cyfry wyświetlanej na jednym wyświetlaczu ESC 7nrncnnnerter rn- odczyt cn- dotyczy cyfr no numer wyświetlacza (1...4) Zwraca wartość wyświetlaną na wyświetlaczu podanym wnparametrze "n". Jeśli wyświetlacz jest wygaszony, to zwraca spację.
Przykład: ESC 7nrncn2nerter Odczytuje wartość zapisaną na wyświetlaczu DP2
Odczyt wszystkich cyfr jednocześnie ESC 7nrncnanenter Zwraca wartości wszystkich cyfr wyświetlanych (cztery znaki} na wyświetlaczach zaczynając od wyświetlacza DP1. Jeśli wyświetlacz jest wygaszony, to zwraca spację.
Przykład: ESC 7nrncnanenter Zwraca wartości wszystkich wyświetlaczy
Odczyt stanu wskazanej kropki dziesiętnej ESC rnknnnenter rn- odczyt kn- dotyczy kropek no numer kropki (1...4) Odczytuje stan kropki na wyświetlaczu wskazanym wnparametrze "n". Jeśli kropka jest zapalona, to zwraca "1" (ASCII}, jeśli jest zgaszona, to zwraca "0" (ASCII}
Przykład: ESC rnkn3nenter Zwraca stan kropki na wyświetlaczu DP3
Odczyt stanów wszystkich kropek jednocześnie ESC rnknanenter Zwraca stan wszystkich kropek, poczynając od kropki na wyświetlaczu DP1. Jeśli kropka jest zapalona, to zwraca "1" (ASCII}, jeśli zgaszona, to zwraca "0" (ASCII}.
Przykład: ESC rnknanenter Zwraca stan wszystkich kropek jednocześnie
może być realizowana po podaniu tego adresu. Zapis wyświetlanych cyfr może być dokonywany pojedynczo, oddzielnie dla każdego wyświetlacza lub grupowo, po podaniu w jednym pakiecie danych dla wszystkich wyświetlaczy. Ponadto jest możliwe sterowanie kropkami dziesiętnymi - tak jak w przypadku cyfr możliwe jest ustalenie stanu dowolnej kropki lub wszystkich jednocześnie. Możliwy jest także odczyt wyświetlanej cyfry oraz stanu dowolnej kropki, jak również wszystkich wyświetlaczy i wszystkich kropek.
Każda komenda rozpoczyna się od znaku "ESC" (klawisz Escape na klawiaturze). Następnie należy podać adres karty wyświetlaczy, rozkaz jaki ma być wykonany lub dane do wyświetlenia. Wyświetlacz umożliwia wyświetlenie cyfr w zakresie 0...9, znaku "-" (minus) oraz znaku spacji, czyli wygaszenia wyświetlacza.
W tab. 9 zamieszczono zestawienie wszystkich możliwych do wyświetlenia znaków oraz ich
WYKAZ ELEMENTÓW
Płytka sterownika Rezystory
Rl, R2: 10kO Kondensatory
Cl: 100^F/16V
C2, C3: lOOnF
C4: 100^F/16V
C5, Có: 30pF
C7: 47^F/1ÓV
C8: lOOnF
Półprzewodniki
Dl: 1N4007
US1: PIC16F872 zaprogramowany
US2: MAX485
US3: DS1813
US4: LM7805
Różne
JP1, JP2: goldpiny 1x2 + jumpery
CONL CON2: ARK2 (5mm)
CON3: goldpin 1x14 żeński
Podstawki: DIP8 - 1 szt.,
DIP28 (300 mils) - 1 szt.
Płytka wyświetlaczy Rezystory R1...R8: Ó8Q R9...R12: lkn Półprzewodniki DP1...DP4: SA52-11EWA T1...T4: BC558 Różne CONl: goldpin 1x14 męski
Elektronika Praktyczna 10/2003
49
"Klocki" RS485
Rys. 22. Rozmieszczenie elementów na płytce sterownika wyświetlacza LED
kodów w zapisie szesnastkowym. Zestaw wszystkich komend umożliwiających sterowaniem wyświetlaczami LED, przykładowe polecenia i reakcja modułu wyświetlacza przedstawiono w tab. 10.
Alfanumeryczny wyświetlacz LCD AVT-538
Ten moduł składa się z alfanumerycznego wyświetlacza LCD o organizacji 2x16 znaków (z podświetlaniem) i prostego interfejsu, wykonanego na mikrokontrolerze PIC. Moduł umożliwia wyświetlenie 32 dowolnych znaków przesyłanych w kodzie ASCII poprzez magistralę RS485. Zastosowany wyświetlacz ma wbudowane diody podświetlające, których intensywność świecenia można regulować zdalnie. Moduł wyświetlacza LCD umożliwia komunikację dwustronną, dzięki czemu możliwy jest zapis danych i komend do procesora oraz odczyt aktualnie wyświetlanych znaków. Na wyświetlaczu można wyświetlać polskie znaki diakrytyczne.
Budowa
Schemat elektryczny modułu wyświetlacza LCD przedstawiono na rys. 24. Elementem sterującym pracą modułu jest mikrokontroler typu PIC16F62 8. Częstotliwość sygnału zegarowego jest stabilizo-
o-l sa l-e o-l w \-g
Rys. 23. Rozmieszczenie elementów na płytce wyświetlaczy LED
wana za pomocą rezonatora kwarcowego o częstotliwości 4MHz. Mikrokontroler ma wbudowany wewnętrzny generator zegarowy, lecz zastosowanie go w tej aplikacji mogłoby spowodować błędy w transmisji, gdyż jest to generator typu RC i jego stabilność nie jest wystarczająca do komunikacji asynchronicznej. Do zerowania mikrokontrolera zastosowano zewnętrzny układ typu DS1813. Komunikacja mikrokontrolera z wyświetlaczem odbywa się w trybie 4-bitowym, z wykorzystaniem portu RB do przesyłu danych i portu RA do sterowania wyświetlaczem. Do ustawienia kontrastu wyświetlacza zastosowano potencjometr PRl. Sterowanie podświetlaniem możliwe jest w sposób zdalny poprzez interfejs RS485. Do sterowania podświetlaniem wykorzystano wyprowadzenie RB3 mikrokontrolera, które poprzez klucz tranzystorowy (Tl) steruje diodami świecącymi zawartymi w wyświetlaczu LCD. Wyprowadzenie RB3 jest wyjściem sygnału modulatora PWM (modulacja szerokości impulsu), dzięki temu możliwe jest zdalne ustawienie intensywności podświetlania wyświetlacza. Sprzętowy sterownik PWM sprawia, że sterowanie podświetlaniem wyświetlacza jest wykonywane niezależnie od pracy jednostki centralnej mikrokontrolera.
Za konwersję sygnałów występujących w linii transmisyjnej na standard TTL odpowiada układ MAX485 (US2). Dokonuje on również konwersji z poziomów TTL na poziomy zgodne z RS485.
Układ US2 został dołączony do portu RB, ponieważ na wyprowadzeniach RBl i RB2 znajduje się wejście i wyjście sprzętowego interfejsu transmisji szeregowej, co pozwala na jego wykorzystanie do transmisji. Port RBO steruje kierunkiem transmisji danych. Jeśli na tym wyjściu występuje poziom niski, to układ MAX485 jest w trybie odbioru. W tym trybie układ US2 jest przez cały czas. Jedynie na czas wysyłania danych przez mikrokontroler jest zmieniany tryb pracy układu MAX485 na nadawanie, aby tuż po jego zakończeniu powrócić do trybu odbiorczego.
Rezystor R* służy do dopasowania linii i powinien być zamontowany jedynie w jednym module, najbardziej oddalonym od nadajnika.
Zworka JPl służy do zmiany podstawowego adresu, pod którym będzie zgłaszał się moduł wyświetlacza LCD. Natomiast zworka JP2 umożliwia powrót do podstawowego adresu urządzenia.
Aby zapewnić bezkonfliktowy odbiór danych i sterowanie wyświetlaczem, w pamięci RAM procesora został utworzony "wirtualny" wyświetlacz. Wyświetlacz ten jest 3 2-bajtowym buforem będącym kopią pamięci standardowego wyświetlacza. Zastosowanie bufora znacznie skraca czas zapisu i odczytu danych, co jest ważne, gdyż odbierane dane są zapisywane w trakcie odbioru poszczególnych bajtów danych. Szczególnie jest to ważne przy interpretowaniu komend, ponieważ wykonanie niektórych komend może zająć sterownikowi wyświetlacza LCD nawet 2 ms.
Wykonanie dowolnej operacji na pamięci RAM zajmie co najwyżej kilkadziesiąt mikrosekund. Dzięki temu podczas odbioru danych z linii transmisyjnej mikrokontroler ma dużo czasu na interpretowanie danych i - w zależności od potrzeb - odpowiednie ich modyfikowanie. Po każdorazowej modyfikacji zawartości bufora następuje jego
50
Elektronika Praktyczna 10/2003
"Klocki" RS485
T US2
MAX485
Lali
US1 PIC16F628
RAO/ANO
RA1/AN1
RAZ/AN2A/REF
RA5WN3/CMP1
RA4/T0CKI/CMP2
RA5/MCLFVTHV
HA7/OSC1/CLKIN
RA6/O5C2/CLKOUT
RBO/INK
RB1/RXTOT
RB2/TOCK
RB3/CCP1
RB4/PGM
RB5
RB6/nosomCKi<
RB7/T1OSK
D1 CON1 1N40U7
US4 7805
9V
C1 10Dm
C2
100n
Rys. 24. Schemat elektryczny wyświetlacza płytki LCD
przepisanie do wyświetlacza. Jeśli ma być wykonany odczyt wyświetlanych przez wyświetlacz znaków, to nie trzeba ich odczytywać z pamięci wyświetlacza, lecz wystarczy z pamięci bufora. Moduł wyświetlacza umożliwia wyświetlenie ośmiu polskich znaków. Ze względu na ograniczoną pojemność pamięci dla własnych (definiowanych) znaków, nie jest możliwe wyświetlanie wszystkich polskich znaków, a ponadto wyświetlane
Rys. 25. Rozmieszczenie elementów na płytce sterownika wyświetlacza LCD
są tylko małe litery. Wybór znaku odbywa się tak, jak przy zwykłym pisaniu, czyli "Alt" + znak. W tab. 11 przedstawiono wszystkie możliwe do wyświetlenia polskie znaki oraz ich reprezentacja w kodzie szesnast-kowym. Tablica ta będzie przydatna, jeśli moduł wyświetlacza będzie sterowany z mikrokontro-lera, a nie z klawiatury komputera. Wtedy w celu wyświetlenia żądanego znaku należy wysłać do modułu wyświetlacza odpowiadającą mu wartość w kodzie HEX podaną w tab. 11.
Montaż
Moduł wyświetlacza LCD zmontowano na dwustronnej płytce drukowanej o wymiarach wyświetlacza. Rozmieszczenie elementów przedstawiono na rys. 25.
Montaż rezystora R* jest zależny od długości linii komunikacyjnej i miejsca umieszczenia modułu, dlatego na tym etapie nie należy montować tego rezystora. Złącza CON1 i CON2 można zamontować od strony lutowania, co ułatwi do nich dostęp po przykręceniu płytki sterownika i wyświetlacza LCD. Stabilizator napięcia jest montowany na leżą-co, dlatego wcześniej należy zagiąć jego wyprowadzenia pod kątem 90.
Po zmontowaniu wszystkich elementów do złącza CONl nale-
OLJT
GND
VCC
O
C3 100|J
C4 lOOn
ży dołączyć źródło zasilania o wartości napięcia około 9 V i wydajności prądowej równej około 150 mA, Do złącza CON2 należy dołączyć przewody magistrali RS485, zwracając przy tym uwagę na podłączenie wejścia oznaczonego "A" w odbiorniku
WYKAZ ELEMENTÓW
Rezystory
Rl, R2: 10kO
R3: 4,7Q
R4: lkii
PR1: potencjometr 10kO
Kondensatory
Cl, C3: 100^F/16V
C2, C4: lOOnF
C5, Có: 30pF
C7: 47^F/16V
C8: lOOnF
Półprzewodniki
Dl: 1N4007
Tl: BC547
US1: PIC16F628 zaprogramowany
US2: MAX485
US3: DS1813
US4: LM7805
Różne
JP1, JP2: goldpiny 1x2 + jumpery
CONL CON2: ARK2 (5mm)
Xl: rezonator kwarcowy 4MHz
Wyświetlacz LCD 16x2
z podświetlaniem (GDM1602A)
Złącze goldpin 16x1 żeńskie
Podstawki pod układy
DIP8 - 1 szt., DIP18 - 1 szt.
Elektronika Praktyczna 10/2003
51
"Klocki" RS485
Tab. 11. Kody przypisane polskim znakom diakrytycznym
Znak (hex) Kombraga klawiszy
ą 0xB9 Alt+a
ć 0xE6 Alt+c
c OxEA Alt+e
ł 0xB3 Alt+I
ń 0xF1 Alt+n
ś 0x9C Alt+s
ó 0xF3 Alt+o
ż OxBF Alt+z
z wyjściem o takim samym oznaczeniu w nadajniku. Przed rozpoczęciem użytkowania wyświetlacza należy ustawić jego kontrast tak, aby uzyskać jak najlepszą widzialność wyświetlanego tekstu. Ponieważ po włączeniu zasilania na wyświetlaczu nie jest nic wyświetlane, to najlepiej jest ustawić potencjometr PRl tak, aby wejście VREG wyświetlacza było zwarte z masą zasilania. Podanie potencjału masy na wejście regulacji kontrastu spowoduje ustawienie maksymalnego kontrastu, co umożliwi odczytanie wyświetlanych znaków wysłanych przez moduł nadawczy. Wysłanie dowolnych znaków przez moduł sterujący w trakcie komunikacji z modułem wyświetlacza umożliwi dokładniejsze ustawienia kontrastu wyświetlacza.
Obsługa wyświetlacza LCD
Sterownik wyświetlacza LCD ma adres odpowiadający znakowi "8" w kodzie ASCII.
Do modułu sterownika wyświetlacza mogą być wysyłane dane, które będą traktowane jako znaki do wyświetlenia lub jako rozkazy do wykonania. Każda komenda rozpoczyna się od znaku "ESC". Następnie należy podać adres modułu wyświetlacza LCD, rozkaz jaki ma być wykonany lub dane do wyświetlenia. Zestawienie wszystkich komend umożliwiających sterowaniem wyświetlaczem LCD oraz przykładowe polecenia i reakcja wyświetlacza przedstawiono w tab. 12.
Komendy sterujące wyświetlaczem umożliwiają ustawienie kur-sora na odpowiedniej pozycji. Kursor może być ustawiony na pierwszej pozycji pierwszej lub drugiej linii. Wyświetlany napis
może być też skasowany. Komendy te dotyczą jednego zadania i wykonanie następnego wiąże się z ponownym rozpoczęciem transmisji (naciśnięcie klawisza Escape i podanie kolejnej komendy). Komenda wyświetlania znaków na wyświetlaczu [ESC 8 w d enter) ma inne działanie, gdyż po jej wydaniu odbierane kolejno znaki traktowane są jako dane do wyświetlenia na wyświetlaczu (nie trzeba dla każdego znaku rozpoczynać transmisji klawiszem Escape). Dlatego po wydaniu komendy wyświetlania znaków odbierane znaki z linii komunikacyjnej są wpisywane na kolejną pozycję wyświetlacza, do momentu naciśnięcia klawisza "ESC". Naciśnięcie tego klawisza spowoduje wyłączenie trybu wyświetlania znaków i jednocześnie może być początkiem kolejnej komendy dla wyświetlacza lub innych dołączonych modułów.
Procedura zapisująca odbierane znaki została tak pomyślana, że po zapisaniu znaku na ostatniej pozycji w linii pierwszej, kursor przechodzi na pozycję pierwszą linii drugiej. Jeśli zostanie osiąg-
nięta ostatnia pozycja w linii drugiej, to kursor przechodzi na pierwszą pozycję w linii pierwszej. Taki sposób zapisu jest przydatny w czasie zapisu wszystkich 32 znaków do wyświetlacza, gdyż wystarczy wtedy ustawić kursor na pierwszej pozycji linii pierwszej i wysłać do wyświetlacza 32 znaki, które zostaną wyświetlone w obydwu liniach wyświetlacza. Gdyby nie było automatycznego przejścia do drugiej linii, to po wysłaniu 16 znaków trzeba by było przerwać transmisję, następnie wydać komendę ustawiającą kursor na drugiej linii, a później ponownie przełączyć wyświetlacz w tryb wyświetlania znaków i wysłać kolejne 16 znaków do wyświetlenia na drugiej linii wyświetlacza.
Oprócz komend dotyczących wyświetlania znaków na wyświetlaczu istnieje jeszcze jedna komenda związana z podświetlaniem wyświetlacza. Komenda ta umożliwia zdalne włączanie lub wyłączanie podświetlania. Jest ona wydawana z parametrem określającym intensywność podświetlania, a parametr ten określa war-
Tab. 12. Spis poleceń umożliwiających sterowanie wyświetlaczem LCD
Rodzaj komendy Wydana komenda Reakcja modifti wyoewieflacza LCD
Zapis rozkazu do wyświetlacza ESC 8nwncanenter Kasowanie wyświetlacza (na wszystkie pozycje wpisywane są spacje)
Zapis rozkazu do wyświetlacza ESC 8nwn1 nenler Ustawia kursor na pierwszej pozycji wnlinii pierwszej
Zapis rozkazu do wyświetlacza ESC 8nwn2nenler Ustawia kursor na pierwszej pozycji wnlinii drugiej
Zapis rozkazu do wyświetlacza ESC 8nwnd nenler Przełącza moduł wntryb odbioru danych -po wydaniu tej komendy kolejno odbierane dane będą pojawiały się na wyświetlaczu. Znaki są wpisywane na wyświetlacz do momentu naciśnięcia klawisza ESC
Zapis poziomu intensywności podświetlania ESC Sawnlnnnenter n- jasność(0...9), Włącza podświetlanie wyświetlacza onpoziomie wskazanym wnparametrze "n"
Przykład 1: ESC 8awnln9nenter Włącza podświetlanie wyświetlacza zn pełną mocą
Przykład2: ESC SawnlnOnenter Wyłącza podświetlanie wyświetlacza
Odczyt znaków nzapisanych wnlinii pierwszej ESC 8nrn1nen1er Zwraca 16 znaków odpowiadających zawartości pierwszej linii wyświetlacza
Odczyt znaków zapisanych wnlinii drugiej ESC 8nrn2nen1er Zwraca 16 znaków odpowiadających zawartości drugiej linii wyświetlacza
Odczyt obydwu linii wyświetlacza ESC 8nrnanenler Zwraca 32 znaki odpowiadające zawartości całego wyświetlacza wnjednym ciągu
Odczyt poziomu intensywności podświetlania ESC 8nrnlnenler Zwraca jeden znak ASCII będący cyfrą znzakresu 0...9 określającą aktualną wartość intensywności podświetlania wyświetlacza.
52
Elektronika Praktyczna 10/2003
"Klocki" RS485
Krok-po-kroku
Za miesiąc opublikujemy
artykuł-instrukcję, w którym
na bazie prostych przykładów przedstawimy sposób obsługi prezentowanego w cyklu artykułów rozproszonego systemu L wymiany danych.
tość w jednym z 10 poziomów. Dla parametru równego "0" (ASCII) podświetlanie jest wyłączone, a dla "9" (ASCII) jest włączone na
maksymalnym poziomie. Dla maksymalnego poziomu podświetlania, prąd sterujący diodami świecącymi podświetlacza wynosi około 105 mA,
Moduł wyświetlacza LCD umożliwia dwustronną komunikację, dlatego wszelkie zapisane dane mogą być również odczytane, dotyczy to zarówno znaków wyświetlanych na wyświetlaczu, jak też parametru podświetlania wyświetlacza. Krzysztof Pławsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Uwaga! Programy wynikowe dla mikrokontrolerów stosowanych w prezentowanych projektach są dostępne na naszej stronie internę to we j: download.ep.com.pl w dziale Dokumentacje.
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/pazdziernikO3Jitm oraz na płycie CD-EP10/2003B w katalogu PCB.
Elektronika Praktyczna 10/2003
53
SPRZĘT
Tak. było też z pasmem 433 MHz - kiedyś wymagającym sporo wysiłku od konstruktora, a zatłoczonym już ponad miarę przez wszelkiego rodzaju piloty, alarmy i inne urządzenia, które na stałe zagościły w naszym życiu. Podobnie jest z pasmem 868 MHz - przecież to pra-
wie 1 GJrlz, a nikt się nie krzywił, tylko wszyscy zaczęli starannie zagospodarowywać kolejny fragment ,,eteru". Niestety oba te pasma mają jedną cechę wspólną - są bardzo wąskie (433 MHz - 1,74 MHz, 868 MHz - 2,00 MHz) i przez to nie jest możliwa jednoczesna
praca wielu urządzeń flub szybka transmisja danych). W Europie możemy tylko pomarzyć o komforcie jaki mają konstruktorzy amerykańscy, gdzie w paśmie 900 MHz jest do dyspozycji aż 26 MHz. W takich warunkach układy tran sceive rów
nRF903 ffirmy NordicVLSl) mogą pracować aż na 169 kanałach, podczas gdy europejskie pasmo 868 MHz pomieści ich najwyżej 10. W tym miejscu uważny Czytelnik dostrzeże następny problem: firmy o zasięgu globalnym muszą przygotowywać co najmniej dwie wersje urządzeń: ,,amerykańską" i ,,europejską", często także trzecią - ..dalekowschodnią". Pociąga to za sobą koszty, z którymi wszyscy tak zawzięcie teraz walczą.
Remedium na te problemy stało się pasmo 2,4 GHz, do-
feszcze nie tak dawno
(przynajmniej z punktu
widzenia autora)
częstotliwości powyżej
100 MHz stanowiły
niedostępną "krainę".
Dominowały tam łampy,
tyłko gdzie niegdzie
pojawiał się jakiś
tranzystor, o układach
scałonych mowy nie
było. A jeżełi ktoś
gdzieś napotkał
częstotliwości wyrażane
w GHz, to
n ajpra wdopo dob ni ej
wszedł w posiadanie
materiałów wojskowych.
Ałe czasy się zmieniają
i to, co było kiedyś
poza zasięgiem, jest
teraz codziennością.
Elektronika Praktyczna 10/2003
55
SPRZĘT
PWRUP

vss=pv
Kanał danych 2
Kanał danych1
CS
^ II
3I >l

DuoCełrar"
ShockBuraf
BPF
DEMOD

Odtwarzanie LJ_
sygnału zegarowego
Dekoder ADDR
Kontroler CRC
FIFO

Filtr GFSK

Syntazer częstotliwości
PA
XCI
XC2
HB
i VSS_PA^0V
ANT1
ANT2
IREF
22kfl
Rys. 1. Schemat blokowy układu nRF2401
stępne praktycznie wszędzie i na bardzo podobnych warunkach. Wystarczy więc jeden projekt, aby obsłużyć cały świat. Pasmo to jest teś bardso szerokie - w naszym regionie aś 83,5 MHz - pomieści więc wiele kanałów lub pozwoli na bardso szyb-ką transmisję danych. Tutaj mała uwaga - ci, którzy sądzą, śe pasmo 2,4 GHz jest przydzielone na wyłączność bezprzewodowym lokalnym sieciom komputerowym fWLAN) lub teś Bluetooth są w błędzie. Jest to po prostu jedno z wielu pasm ogólnodostępnych określanych często jako ISM fz angielskiego Irtdusirial-S ci en tifi c-Medi c).
Czyżby same zalety? Właściwie tak, ale 2,4 GHz to juś naprawdę duśo. Przy tej częstotliwości kondensator to
]us nie sama po]emnosc, cewka to nie sama indukcyj-ność, a prawie kaśdą ścieżkę trzeba traktować jako linię długą. Innymi słowy, bez bogatej wiedzy na temat projektowania i uruchamiania układów wysokiej częstotliwości oraz dobrze wyposaśo-
VLSI wprowadził do produkcji układy nRF2401 - w pełni zintegrowane transceivery na pasmo 2,4 GHz.
Pełna integr ac j a
Z elementów zewnętrznych wymaganych w poprzednich układach firmy NordicYLSl
i\
* 51 wleczenie żywy! Rdzeń *51 wykorzystała w swoim scalonym
z mikrokontrołerem transceiverze firma
Chipcon. Układ CCI 010 jest przystosowany
do pracy w pasmach 315/433/868 MHz,
ma wbudowaną m.in. pamięć programu
typu Fłash oraz sprzętowy moduł
kryptograficzny DES.
nego laboratorium nie było sensu rozpoczynać projektu na 2,4 GHz. I było tak aś do momentu, w którym Nordic-
fnKF401, nKF903) w nKF2401 został juś tylko kwarc i jeden rezystor. Wszystkie pozostałe, łącznie z cewką lokalnego oscylatora znalazły się wewnątrz. Widać to doskonale na rys. 1 pokazującym strukturę wewnętrzną układu oraz niezbędne elementy zewnętrzne.
Nowe pasmo - nowe możliwości
Kanały w nKF2401 mośna wybierać z krokiem 1 MHz, tak więc w naszym rejonie mamy ich do dyspozycji ponad 80. Na kaśdym z nich
mośna transmitować dane z szybkością 1 Mb/s (przy czułości odbiornika -85 dBm) lub 250 kb/s (przy czułości odbiornika -95 dBm).
Shock burst - żeby programistom żyło się łatwiej, a układ pobierał mniej prądu
Całkowitą nowością jest tryb pracy określany jako bursi modę. W tym trybie mikrokontroler wysyła do nRF2401 sygnały z taką szybkością jaka jest dla niego naj-wygodniejsza fnp. 10 kb/s jak pokazano na rys. 2). Po zapełnieniu wewnętrznego bufora układ automatycznie oblicza sumę kontrolną (CRC8 lub CRC16), dodaje adres odbiorcy oraz sekwencje rozbiegową. Dopiero po tym wszystkim włączany jest nadajnik, który wysyła dane z maksymalną szybkością fl Mb/s lub 250 kb/s). Podobny proces odbywa się w torze odbiorczym - nRF2401 sam odrzuca sekwencję rozbiegową, sprawdza adres i sumę kontrolną. Dopiero po odebraniu bezbłędnego pakietu ze zgodnym adresem układ zgłasza mikrokontrolerowi gotowość danych, które mogą być przeczytane z bufora z dowolną szybkością. Dzięki temu średni pobór prądu przy nadawaniu jest bardzo mały i zmniejsza się ryzyko kolizji pakietów, a mikrokontroler odciąśony jest od czasochłonnych zadań związanych z obsługą transmisji. O c zy w iście zbędne jest wstępne kodowanie danych fnp. kod Manchester).
DuoCeiver - czyli podwójny odbiornik
Jeśeli chcemy jednocześnie odbierać dane z dwóch źródeł, nie potrzebujemy drugiego układu nRF2401, wystarczy włączyć drugi tor odbiorczy. Z punktu widzenia użytkownika wygląda on jak całkowicie niezależny odbiornik, z własnym buforem dla trybu ShockBurst i własnymi wyjściami sygnału. Dzięki dwóm buforom mośna odbierać pakiety danych przychodzące jednocześnie na obu kana-
8-blt nRF2401
MCU FFO Słi

ShockBurst 1 Mbd
Rys. 2. Zasada nadawania danych wtrybie burst
Elektronika Praktyczna 10/2003
SPRZĘT
F =F +8MHz
Odtwarzania Śygnahi
zegarowego rodnych
Kontrola |^ ADDR, CRC
Odtwarzanie
fygnalu rowego anych
Kontrola |> ADDR, CRC
DR1
CLK1
DATA
DR2
CLK2
DOLTT2
Dane (Flp J
Rys. 3. Dzięki dwóm buforom wejściowym układ nRF240l może odbierać dane jednocześnie w dwóch kanałach radiowych
łach (rys* 3). Jedynym ograniczeniem trybu DuoCeiver jest stały odstęp międzykana-łowy wynoszący 8 MHz.
1T9 VT czyli jeszcze raz o poborze energii
Jedną z korzyści wynikających z wykorzystania technologii CMOS 0,18 [im było obniżenie minimalnego napięcia zasilania do 1,9 V. Ponieważ maksymalne napięcie zasilania wynosi 3,6 V, układ mośe być zasilany z dwóch baterii bez konieczności stosowania przetwornicy, przy czym wykorzystana zostanie cała energia dostępna w ogniwach.
Przy nadawaniu z pełną mocą wynoszącą 0 dPm (1 mW) układ pobiera 13 rnA. Przy odbiorze pobór prądu zależy od konfiguracji toru odbiorczego i mieści się między 18 rnA (250 kb/s, jeden tor odbiorczy) a 2 5 rnA (lMb/s, dwa tory odbiorcze). Przeliczając to na warunki rzec zy w i s t e, układ nRF2401
wyrni en i aj ą cy I 256 bitów da-' nych co 1 sekundę mośe pracować ponad 5 lat zasilany z baterii o pojemności 280 mAh.
ObudowaT czyli
wymogi miniaturyz acj i
Układy nKF2401 są zamykane w 24-nóśkowej obudowie QFN (fot. 4). Dzięki temu
Fot. 4. Układy nRF2401 sq dostarczane w obudowach GFN24
powierzchnia zajmowana przez układ jest niewielka w porównaniu z układami w obudowach SSOP. Niestety nie ma innych obudów niż QFN, co z pewnością skomplikuje życie amatorom niedysponującym sprzętem do lutowania takich elementów.
Kłopoty z płytką drukowaną?
Jak do tej pory projektanci układów na wysokie częstotliwości musieli dużo czasu poświęcać na zaprojektowanie płytki drukowanej. Wiele elementów jest bardzo podatnych na zakłócenia zewnętrzne, szczególnej uwagi wymagają cewki generatorów (VCO), filtry pośredniej częstotliwości i filtry PLL. Wraz z pojawieniem się nKF2401 problemy te znikają, ponieważ wszystkie te obwody są zrealizowane w strukturze układu. Tak jak juś było wspomniane, na zewnątrz pozo-j staje tylko
'JJ J kwarc i jeden __^f rezystor. Jest to bardzo znaczący postęp i teraz nawet firmy bez fachowców od wysokich częstotliwości mogą śmiało rozpocząć projekty urządzeń pracujących w paśmie 2,4 GHz. Dodatkowym ułatwieniem są przygotowane przez NordicVLSl gotowe wzory płytek drukowanych. Dzięki nim czas wdrożenia jest praktycznie wyznaczony przez czas niezbędny do oprogramowania mikro-kontrolerów współpracujących z nKF2401.
Czy można jeszcze bardziej uprościć?
Wydaje się, śe nie. Dwa elementy zewnętrzne to juś naprawdę niewiele. Ale przecież tor radiowy to nie wszystko. W prawie wszystkich aplikacjach radio jest tylko kanałem wymiany danych między mikroproceso-
Elektronika Praktyczna 10/2003
57
SPRZĘT
AREF
E12B ROM
RAM
7-kmałtiw pizemnnli
UARTO
TlimrO
Tlinsri
Tlmer2
CPU
Rdzeń 9061
nRFWOI 2,+GHz
PWM
BAS
kuwcowy
SPI
WATCH-DOG
WAKEUP ttner
Porty VO
Gerwnttw RC
Ś VDD_PA-1,V tANTi ŚANT2 V3S_PA-0V
IHEF
22K1
0.0.0,0.0.0,0.0.
LLLLSLLg
SDOSCKSDICSN
25320 EEPROM
Rys. 5. Schemat blokowy układu nRF24El
rarni (mikrokontrolerami), czyli śe z każdym nRF2401 będzie współpracował jakiś rnikrokontroler. Gdyby więc tak połączyć jedno z drugim to... otrzymamy nRF24El. Dzięki technologii 0,18 ^m CMOS jest to bardzo łatwe i co waśne - niedrogie. Coś więc zawiera nRF24El?
W skrócie jest to (rys* 5): jądro 8051, 3 timery/licsniki, łącse UART i SPI, 9-kanało-wy 12-bitowy przetwornik A/C, układ PWM, watchdog, oscylator RC, no i oczywiście kompletny transceiver o parametrach identycznych s nRF2401. Do dyspozycji jest 256 bajtów RAM ogólnego przeznaczenia i 4 kP RAM pełniących funkcję pamięci programu. Tak, program wykonywany jest z pamięci RAM. W związku z tym po zerowaniu mikroprocesor nie zaczyna wykonywania programu od adresu OxOOOOh, tylko od 0x8000h, gdzie w pamięci ROM zapisany jest hoot-loa-der. Program ten odczytuje przez złącze SPI pamięć nie-ulotną, której zawartość zostanie przepisana do wewnętrznej pamięci RAM.
Jądro 8051 zostało zaprojektowane z myślą o oszczęd-
ności energii i przy pracy z zegarem 16 MHz pobiera zaledwie 3 rnA. Jeżeli do tego dodać, śe jądro jest 4-tak-towe, czyli trzy razy szybsze od standardowych 8 051, otrzymamy bardzo dobrą relację wydajności do poboru energii. Włączenie przetwornika A/C zwiększy pobór prądu o zaledwie 0,9 rnA. W urządzeniach bateryjnych bardzo przydatny jest tryb power down, w którym
układ pobiera zaledwie 2 fiA, przy czym cały czas działa wewnętrzny układ os-cylatora RC. Dzięki temu nRF24El będzie sam się budził w zaprogramowanych odstępach czasu.
To wszystko zamknięte jest w 36-nóśkowej obudowie QFN, na zewnątrz której potrzebny jest tylko kwarc, jeden rezystor i pamięć szeregowa. Oczywiście tak jak dla poprzedniego układu tak
i dla nRF24El dostępne są gotowe do wykorzystania wzory płytek drukowanych.
nRF24XX a inni użytkownicy pasma 2T4 GHz
Jak juś wspomniano, pasmo 2,4 GHz jest ogólnodostępne i musi być współdzielone pomiędzy wielu użytkowników. Najczęściej napotkamy w nim bezprzewodowe lokalne sieci komputerowe fWLAN) oraz urządzenia wyposażone w Pluetooth. Powstaje zatem pytanie, jak w ich obecności będą działać układy nRF24XX oraz jak zareagują na sygnały z nich pochodzące.
Urządzenia WLAN w zdecydowanej większości wykorzystują modulację z widmem rozproszonym. Dzięki temu energia sygnału przy nadawaniu jest rozproszona
Fot. ó. Przykładowy zestaw startowy dla układów nRF2401
58
Elektronika Praktyczna 10/2003
SPRZĘT
na wiele (typowo 22) kanałów i jej poziom w jednym kanale jest stosunkowo niewielki i nie wpływa na pracę klasycznych (wąskopasmowych) odbiorników. Tak samo przy odbiorze, wąskopasmowe sygnały pochodzące z układów nRF24XX nie zakłócają pracy odbiorników przystosowanych do modulacji szerokopasmowej.
Nieco inna sytuacja jest z Bluetoothem. Ten system komunikacji bezprzewodowej wykorzystuje te same rozwiązania co nRF24XX. Jednakże integralną częścią protokołu Bluetooth jest ciągła zmiana częstotliwości (/re-guency hop ping). Na jednym kanale urządzenie Bluetooth nadaje przez 625 ^s. Jeżeli więc urządzenie z Bluetoothem ,.trafi" w kanał, na którym nadaje nRF24XX, to łączność zostanie zakłócona. Ale jest to tylko 625 ^s, więc nie wpłynie to znaczą-
co na wydajność systemu a z zakłóceniami i zanikami projektant łącza radowego musi się zawsze liczyć. Pró-by przeprowadzone z wieloma urządzeniami (8 i więcej) nie spowodowały zauważalnego spadku szybkości transmisji danych przez nRF24El.
Na dobry początek: zestawy startoweT narzędzia...
Do wszystkich swoich układów NordicVLSl oferuje zestawy startowe (fot. 6), które pozwalają na wykonanie natychmiastowych prób. W skład zestawu wchodzą dwa moduły, które można połączyć z komputerem FC oraz odpowiednie oprogramowanie.
Do programowania
nRF24El można wykorzystać każde narzędzie (asembler, kompilator) po uzupełnieniu plików nagłówkowych o rejestry specyficzne dla tego układu. Jeżeli jednak szukamy rozwiązania firmowego, to NordicVLSl poleca środowisko firmy Keil, które wyposażone jest w program monitora pozwalającego na uruchamianie programów bezpośrednio na nRF24El. Oczywiście nic nie stoi na przeszkodzie, aby zacząć bez zestawu startowego. Skorzystanie z gotowych wzorów płytek drukowanych i kwarcu o parametrach podanych w karcie katalogowej gwarantuje poprawną pracę układu, a napisanie programu na 8051 nie powinno być problemem. Czyli - konstruktorzy do dzieła! Witold Barycki, Eurodis
Dodatkowe informacje
Więcej informacji można uzyskać wlirmie Eurodis Electronics Poland Sp.zo.o.tel. (71)301-04-00, www-eurodis.com.pl.
Elektronika Praktyczna 10/2003
59
PODZESPOŁY
W EP wielokrotnie poruszaliśmy zagadnienia dotyczące dostępu do Internetu
w samodzielnie budowanych aplikacjach. Zainteresowanie tą tematyką staje się
zrozumiałe wobec zwiększającej się liczby "sztywnych" połączeń internetowych
w prywatnych mieszkaniach. Pewnym problemem jak dotąd była programowa obsługa
dość złożonego protokołu sieciowego, ale...
...zabłysła iskierka nadziei. Za sprawą firmy WIZnet nasze męki związane z programową implementacją stosu TCP/IP odchodzą w zapomnienie. To, co do tej pory próbowaliśmy zaszywać w programie mikrokontrolera jako procedury, teraz otrzymujemy w postaci niewielkiego układu scalonego o oznaczeniu W3100A. Jakie przynosi to korzyści nietrudno sobie wyobrazić. Układ jest wykonany w technologii CMOS 0,35|im LSI i zawiera kompletny sprzętowy stos TCP/ IP. Uwzględniono w nim wszystkie niezbędne dla obsługi Internetu protokoły: TCP, IP, UDP, ICMP, ARP, DLC i MAC. Dzięki zastosowaniu W3100A uzyskujemy szybki dostęp do Internetu przy minimalnych wymaganiach dotyczących pamięci ROM i RAM współpracującego z nim mikrokontrolera. Mamy
również możliwość realizacji połączeń internetowych w urządzeniach bez systemu operacyjnego. De facto w strukturze są zaimple-mentowane pewne jego procedury, z czym związane są wymagane w takich przypadkach opłaty licencyjne. Uwzględniono je w koszcie układu. W3100A należy do grupy produktów o nazwie Internet Insi-de Chip (spotykane oznaczenia to: 12Chip lub iinChip). Tworzą ją układy IP - rdzenie protokołów TCP/IP zrealizowane w układach ASIC (Ąpplication-Specific Integra-ted Circuit) lub wykorzystywane jako wirtualne komponenty w układach typu SoC (System on Chip) oraz ASSP (Ąpplication-Specific Standard Product), których przykładem jest właśnie W3100A, a także liczne moduły i zestawy uruchomieniowe.
MODEO MODE1 MODE2-/CS-/WR /RD /INT-ADDR(14:0)
SCL
CLOCK-EXT_CLK-
RESET-
Stos sprzętowy
ICMP TCP UDP


IP ARP

DLC

MAC

\n/
TCP/IP
W3100A dla "rzeźbiarzy44
Do realizacji pomostu pomiędzy układem mikroprocesorowym a warstwą fizyczną sieci ethernetowej oprócz układu W3100A potrzebny jest jeszcze układ typu PHY (PHy-sical laYer) np. RTL8210BL (Real-tek) wraz z niezbędnymi elementami. Układy te można stosować jako integralne elementy własnej aplikacji, a także w sposób opisany w dalszej części artykułu. Strukturę układu W3100A zamknięto w 64-nóżkowej obudowie LQFP. Jego schemat blokowy jest przedstawiony na rys. 1. Układ W3100A umożliwia jednoczesną obsługę czterech niezależnych kanałów z wydzielonymi buforami dynamicznymi dla każdego z nich, współpracuje z wieloma rodzajami warstw fizycznych (np. PLC, optyczną, przewodową, itp.), obsługuje także interfejs ME (Media Independent Interface). Układ jest zasilany napięciem 3,3 V, ale wyjścia i wejścia tolerują napięcie 5 V. W zależności od zastosowanego w aplikacji procesora uzyskuje się prędkości transmisji od 300 kb/s (dla 8051) do 6 Mb/s (dla i386) w trybie full-duplex. Problem dopasowania układu do architektury mikrokontrolera został rozwiązany dość elastycznie przez możliwość wyboru magistrali typu Intel lub Motorola. Okno na świat zewnętrzny stanowi powszechnie wykorzystywany interfejs PC. Użyt-
Rys. 1. Schemat blokowy układu W3100A
Fot. 2. Moduł sieciowy IIM7010A
60
Elektronika Praktyczna 10/2003
PODZESPOŁY
UM7010
nterfeja \ = Ś T ! PHY MAC Jack
W3100A r
MCU / -----1/
r
Rys. 3. Schemat blokowy modułu IIM7010
kownik dostaje również zestaw wersji źródłowych procedur interfejsu API (Application Programming Interface), wzorowany na znanym nam ze środowiska Windows, a także klienta TCP, serwer TCP oraz biblioteki UDP. Z pewnością ułatwią one oprogramowanie własnej aplikacji.
Spektrum zastosowań układu W3100A jest ogromne: począwszy od nowoczesnych interaktywnych zabawek, kończąc na profesjonalnym sprzęcie pomiarowym. Powoli przyzwyczajamy się do sterowania poprzez Internet kuchenką mikrofalową, lodówką czy klimatyzacją. Swoje stałe miejsce zdobyły już kamery internetowe, systemy do prowadzenia komunikacji wideofonicz-nej, itp. Zastosowań profesjonalnych nie sposób wymienić. Na pewno wiele z nich będzie powstawało lub już powstało z zastosowaniem układu W3100A.
Moduł IIM7010AT czyli W3100A dla tychT co dłutom nie pracują
Jeśli zachodzi konieczność przystosowania aplikacji do współpracy z siecią, to jedną z najprostszych metod wydaje się zastosowanie gotowego modułu sieciowego. Przykładem może być znajdujący się w ofercie firmy
Fot. 4. Płytka ewaluacyjna 8051EYB
WIZnet moduł IIM7010A (fot 2). Jego schemat blokowy przedstawiono na rys. 3. Ze względu na zwartość konstrukcji moduł ten jest bardzo wygodny w użyciu. Często okazuje się opłacalne jego użycie nawet w nowo projektowanych aplikacjach. Zastosowany w module druk dwustronny i montaż powierzchniowy sprawiają, że nie zyska się zbyt wiele miejsca na płytce (jeśli w ogóle), rozdzielając poszczególne elementy. Jak widać na schemacie blokowym, moduł IIM7010A realizuje kompletny interfejs między systemem mikroprocesorowym a warstwą fizyczną sieci etherneto-wej, włącznie z gniazdem RJ-45 wyposażonym w transformator. Bez większego problemu mogą go używać nawet ci projektanci, którzy do tej pory nie mieli styczności z urządzeniami sieciowymi. Moduł łączy się z systemem poprzez dwie 28-nóżkowe łączówki uwzględniające sygnały z 15-bito-wej szyny adresowej, 8-bitowej szyny danych, a także sygnały sterujące: !INT, !WR, !RD i !CS. Oprócz nich występują ponadto m.in. linie interfejsu PC, wyprowadzenia służące do sterowania diodami LED pokazującymi status sieci, a także linie zasilające. Moduł jest zasilany napięciem 3,3 V, ale wejścia i wyjścia cyfrowe tolerują poziomy 5 V. Moduł EM7010A automatycznie wykrywa sieć Ethernet 10/100 Mb/s, obsługuje protokoły: TCP, IP, UDP, ICMP, ARP, DLC, MAC, a także protokoły aplikacyjne takie jak
62
Elektronika Praktyczna 10/2003
PODZESPOŁY
,.-t.
Rys. 5. Przykładowa strona serwera internetowego
DHCP, HTTP, SMTP i PING. Wymiana danych odbywa się w trybie full-duplex.
Doświadczenie zdobywa się przez doświadczenia
Jak wiadomo najlepszą formą poznawania świata jest eksperymentowanie. Firma WIZnet opracowała w tym celu kilka odmian zestawów ewaluacyjnych. Za ich pomocą można wszechstronnie i bezboleśnie zaznajomić się z produktami. Przykładem może być płytka 805lEVB oraz kilka współpracujących z nią modułów powstałych w kooperacji ze znanym nam dobrze Atmelem. W Atmelu stworzono nawet grupę aplikacji, którym nadano nazwę @Web. Wszystkie służą do ułatwienia użytkownikom dostępu do Intern etu.
Płytka 805lEVB (fot. 4), jak można wywnioskować z nazwy, stanowi pole doświadczalne dla konstruktorów opracowujących aplikacje internetowe bazujące na 8-bito-wym mikrokontrolerze rodziny 51. Zastosowano w niej nieco "wyrośniętą" atmelowską odmianę 51-ki -T89C51RD2 z pamięcią Flash 64 kB, EEPROM 2 kB i pamięcią RAM 1 kB, widzianą przez CPU jako pamięć zewnętrzna. Na płytce umieszczono trzy gniazda służące do dołączania różnych modułów końcowych: kamery internetowej, transmisji dźwięku przez Internet oraz zdalnego sterowania. Przyłączenie sieci Ethernet jest możliwe za pomocą znanego już nam modułu IIM7010A. W zestawie ewalua-cyjnym oprócz płytki 805lEVB znajduje się ponadto jeden z wymienionych wyżej modułów, kabel RS232, skrosowany kabel UTP, zasilacz oraz CD-ROM z przykładowym oprogramowaniem oraz dokumentacją zawierającą m.in. schema-
ty. Zestaw ten może być oczywiście wykorzystywany nie tylko do eksperymentów. Przyda się również z pewnością w niewymagają-cej aplikacji internetowej, w której użytkownik zadowoli się transferem do 300 kb/s. Mimo tego ograniczenia można swobodnie korzystać z protokołów DHCP, SMTP i HTTP (dostępne wersje źródłowe), dzięki którym istnieje możliwość przesyłania stron WWW, a także spełniania funkcji agenta SMTP wysyłającego korespondencję elektroniczną do serwera SMTP. Funkcja klienta DHCP pozwala aplikacji uzyskiwać adres IP z serwera DHCP. O poprawności transmisji użytkownik upewnia się dzięki protokołowi PING również dostępnemu w zestawie.
Przed przystąpieniem do prób należy połączyć płytkę 805lEVB kablem szeregowym z portem RS232 komputera (niezbędnym do programowania mikrokontrolera na płytce) oraz skrosowanym kablem UTP z kartą sieciową. Niezbędna będzie też modyfikacja konfiguracji otoczenia sieciowego zgodnie z zaleceniami podanymi w instrukcji. Jeśli powyższe czynności zostaną wykonane prawidłowo, to w wyniku uruchomienia polecenia ping, na ekranie monitora powinny pojawiać się komunikaty o przebiegu transmisji. Do programowania mikrokontrolera niezbędne będzie pobranie programu FLIP (Software Flexible In-sys-tem Programmer). Jest on dostępny na stronach Atmela. Porozumiewa-
Fot. ó. Zestaw prezentowany
w artykule wyposażono w interne-
towq kamerę
Elektronika Praktyczna 10/2003
63
PODZESPOŁY
Czujnik wideo CMOS Koder MJPEG
Ifotftfffcwiwy
Strony, które warto odwiedzić:
RJ45
Płytka bazowa
Rys. 7. Schemat blokowy webkamery
nie się systemu z użytkownikiem ułatwia wyświetlacz LCD 16x2, umieszczony w górnej części płytki 805lEVB. Są na nim wyświetlane ewentualne komunikaty o błędach w konfiguracji, a w przypadku prawidłowego działania adres IP. Po uruchomieniu przykładowego programu serwera internetowego na wyświetlaczu może być wyświetlany tekst wprowadzany poprzez przeglądarkę stron WWW (rys. 5). Za jej pomocą można również sterować dwoma LED-ami na płytce.
Webkamera
W zestawie uruchomieniowym jaki został udostępniony naszej redakcji znajdował się moduł kamery internetowej (fot. 6). Wykorzystując płytkę 805lEVB, można przesyłać przez Internet (bez pośrednictwa
komputera PC) dane wideo w formacie CIF 320x240 z szybkością 3 ramek na sekundę. Maksymalna szybkość przesyłu, jaką gwarantuje sam moduł, dochodzi do 20 ramek na sekundę. Wraz z modułem dostarczony jest program IJLView, który po odpowiednim skonfigurowaniu wyświetla obraz z kamery w wydzielonym oknie. Można go również zobaczyć bezpośrednio w przeglądarce internetowej po wprowadzeniu odpowiedniego adresu URL. W tym przypadku jednak obraz będzie statyczny, trzeba go więc odświeżać ręcznie. Na płytce modułu umieszczono kolorowy przetwornik wideo CMOS 1/3", ko-dek M-JPEG, pamięć oraz interfejs służący do połączenia z płytką 8O51EVB. Schemat blokowy tak utworzonej webkamery pokazano
- http y/www .ii nchi p. com/e_iin chip/p_pro_all. htm,
- httpy/www.atmel.com/products/8051/atweb.asp,
- http://www.korkonet.pl/.
na rys. 7. Ramki wideo są tworzone na żądanie mikrokontrolera przez specjalizowany układ. Obraz jest zapamiętywany w pamięci modułu. Po zakończeniu kompletowania ramki generowane jest odpowiednie przerwanie, w wyniku którego mikrokontroler przepisuje zawartość pamięci obrazu w formacie M-JPEG z modułu do pamięci na płytce 8O51EVB. W chwili, gdy mikrokontroler odbierze informację z sieci o odebraniu poprzedniej ramki, rozpoczyna wysyłanie aktualnej. Podwójne buforowanie poprawia płynność transmisji ramek, zwiększając tym samym szybkość wyświetlania. W wersji z płytką 805lEVB nadal pozostaje ona jednak stosunkowo niewielka. W połączeniu z nie najwyższą jakością sensora ogranicza to zakres zastosowań. Wystarczy jednak do tego, by będąc w Zakopanem, w każdej chwili móc obserwować, jakie wiatry wieją na Zatoce Wiślanej. Jarosław Doliński, AVT jaroslaw.dolinski@ep.com.pl
Dodatkowe informacje
Zestaw prezentowany w artykule udostępniła redakcji firma Gamma, tel. (22) 862-75-00, www.gamma.pl.
64
Elektronika Praktyczna 10/2003
/L.;'- Współczesne urządzenia cyfrowe składają 'liii się zazwyczaj z wielu modułów
gf funkcjonalnych. Projektanci takich urządzeń doskonale wiedzą o tym, że podczas ich uruchamiania i testowania bardzo przydatny jest wielokanałowy analizator stanów logicznych. Jedno z takich urządzeń - dostępnych na naszym rynku -
przedstawiamy w artykule.
I
Analizator stanów logicznych
Podczas konstruowania urządzeń cyfrowych szczególną uwagę należy zwracać na zależności czasowe występujące pomiędzy sygnałami. Na wejściach przerzutników (rejestrów) dane powinny pojawić się odpowiednio wcześniej (setup time) -przed narastaniem (opadaniem) zboczy sygnału zegarowego (clk) i mogą być "zdejmowane" dopiero po określonym czasie (hołd time). Często zachodzi także potrzeba sprawdzenia, czy w zbudowanym układzie nie występuje zjawisko hazardu spowodowane zastosowaniem elementów wprowadzających
o określoną (a nie dowolną) liczbę pozycji itp. Potrzeba bardzo wielkiego doświadczenia, aby przy tworzeniu założeń funkcjonowania układu cyfrowego nie zrobić - już na wstępie - wielu błędów.
Zwykle, przy wdrażaniu do produkcji skomplikowanych urządzeń cyfrowych, testowanie i weryfikacja jego działania trwa długo. Czas trwania tego etapu projektu można skrócić za pomocą specjalnych urządzeń, np. analizatorów stanów logicznych. Dzięki tym przyrządom można poznać zależności czasowe występujące między sygnałami
różne opóźnienia. Bardzo ważną w testowanym układzie, a także rzeczą jest, aby oprócz zachowania zweryfikować jego cechy funkcjonal-właściwości czasowych w projektowanym układzie były zachowane odpowiednie funkcje logiczne (działanie zgodne ze specyfikacją funk-
cjonalną). Sumator ma dodawać,
ne. O ile za pomocą oscyloskopu możemy obserwować maksymalnie kilka sygnałów jednocześnie, o tyle analizator pozwala obserwować, z dokładnością nawet nanosekundo-
anie mnożyć, rejestr przesuwny ma wą, kilkanaście (kilkadziesiąt, a na-
przesuwać dane w lewo (prawo)
Rys. 1. Widok okna programu sterujqcego pracq analizatora LA-2124
wet kilkaset) sygnałów jednocześnie.
Na etapie opracowywania konstrukcji bardzo przydatnym urządzeniem może okazać się analizator LA-2124 firmy Clock Computer Corporation. Firma ta od wielu lat zajmuje się projektowaniem i produkcją tego typu urządzeń.
Podstawowymi parametrami analizatora stanów logicznych, najczęściej branymi pod uwagę przez użytkowników, są: liczba kanałów i maksymalna częstotliwość próbkowania.
Prezentowany w artykule LA-2124 ma 24 kanały, wszystkie mogą pobierać informacje (próbkować) z częstotliwością do 100 MHz. Tak więc maksymalna rozdzielczość pomiaru w osi czasu wynosi 10 ns.
Innymi ważnymi parametrami są: dopuszczalne napięcia wejściowe (w prezentowanym modelu od -5V do + 10V), próg rozpoznawania zera i jedynki logicznej (w prezentowanym modelu od -IV do 3 V, programowany z krokiem 50 mV) i pojemność pamięci próbek, która w omawianym urządzeniu wynosi 128 ksłów.
Program sterujący pracą analizatora LA-2124 pracuje pod kontrolą systemu Windows 98/Me. Pozwala on dobierać wszystkie parametry pracy, w tym: sposób wyzwalania, wartość słowa wyzwalającego, napięcia referencyjne, częstotliwości, pojemność użytej pamięci, itp.). Program ten służy także do oglądania wyników pomiarów (rys. l). Jego dodatkowymi, istotnymi z punktu widzenia użytkownika, możliwościami są: drukowanie wyników, zapis danych do pliku (odczyt z pliku), eksport danych do arkusza kalkulacyjnego. Atutem może być obszerna pomoc w postaci elektronicznej (help) napisana w sposób bardzo przejrzysty.
Więcej możliwości
Firma Clock Computer Corporation modelu analizatora prezentowanego w artykule, ma w swojej ofercie także modele bardziej zaawansowane. Na przykład modele serii 5000 próbkują z częstotliwością do 500 MHz, a maksymalna
68
Elektronika Praktyczna 10/2003
SPRZĘT
Tab. 1. Podstawowe parametry analizatora LA-2124
Predefiniowane częstotliwości próbkowania 100 MHz, 50 MHz,25 MHz, 5nMHz, 1dMHz, 500 kHz, 100 kHz, 50 kHz, 1 ? kHz, 500 Hz, 250 Hz, 50 Hz, 20 Hz, 10 Hz, 5DHz, 2nHz, 1 ? Hz, taktowanie zewnętrzne (ext clk)
Liczba wejść (kanałów) 24
Pojemność pamięci próbek 128ksłów24-bitowych
Czas podtrzymania/ustalania 2nns/0ns
Napięcie progowe (0/1) Ustawianeod-1nVndo+3Vnznkrokiem50mV
Impedancja wejściowa 50knll8pF
Maksymalne napięcie wejściowe od-5Vndo+10V
Niejednoczesność akwizycji danych max. 2nns pomiędzy wejściami
Sposoby wyzwalania pomiaru (trigger) Stany wyzwalania dla poszczególnych wejść -0,1, Xn (dowolny) są mnożone logicznie (AND), można wybrać zbocze tak utworzonego sygnału. Możliwość pre- inpost-wyzwalania
Wyświetlanie - 24 kanały mogą być wyświetlane jako przebiegi czasowe, - użytkownik definiuje nazwy tych kanałów, - kanały sąwyświetlanewnkolejności zadanej przez użytkownika, - pokazywany jest czas między kursorami A, Bnin momentem wyzwolenia, - powiększanie in pomniejszanie widoku wn poziomie (1/64 do 64) inwnpionie(1xdo4x), - niezależne ustawianie kolorów poszczególnych kanałów.
Komunikacja znkomputerem Poprzez port Centronics
Oprogramowanie Pracuje pod kontrolą Windows 98/Me
liczba ich wejść wynosi 160. Oprócz tego można ustawiać po kilka różnych progów napięciowych jednocześnie (w przedziale od -6,4
V do +6,4 V). Dopuszczalne są napięcia wejściowe z zakresu od -150
V do +150 V, a pamięć próbek ma pojemność do 512 kslów.
Bardzo rozbudowane oprogramowanie analizatorów z rodzin 4000 i 5000 wykonuje m.in. automatyczną analizę sygnałów magistrali I2C, a po zastosowaniu dodatkowych modułów może służyć jako generator zadanych wzorów [pattern generator).
Aby lepiej zapoznać się z analizatorem przedstawionym w artykule, można pobrać oprogramowanie sterujące jego pracą i przetestować je w trybie demo (bez dołączonego sprzętu). Najnowsze wersje oprogramowania są dostępne na stronie producenta http://www.dock-link.com. tw oraz na stronie dystrybutora - http://www.elmark.com.pl (w sekcji - pomoc techniczna). Tomasz Kozłowski Elmark Automatyka Sp. z o.o. elmark@elmark.com.pl
Dodatkowe informacje
Przyrząd do testów udostępniła redakcji firma ELMARK Automatyka Sp. z o.o., tel. (22) 828-29-11, www.elmark.com.pl.
70
Elektronika Praktyczna 10/2003
m
NA CD KATALOGI: INFINEON ORAZ EAUTOMATION FIRMY ADYANTECH
g Międzynarodowy magazyn elektroników konstruktor
a.
N
I1
3
T ^
s
U)
I1
10/2003 październik 15 zł 50 gr (w tym 7% vat)
ZEGAR ZE 100-LETNIM KALENDARZEM I DWU KANAŁOWYM TERMOMETREM
A KASOWIŚilR^LICZNIKOW W CARTRIDGEACR DRUKAREK "At"R^MENTOW?Ćfl'
'pokojowy regulator temperatury ze zdalnym sterowaniem inteligentny sterownik oświetlenia wnętrza samochodu \
CBNTRALA ALARMOWA Z POWIADOMIENIEM IgSM i 1 _! V
UNIWERSALNY ODBIORNIK RC5/SIRC
M i
KLOCKI" RS485
tOri
| NOWOSC: '
BASCjDMOW^E POJRADY
Radiomodemy Satel
Nowości firmy Satel przedstawiamy w artykule na słr. 125.
Pokojowy regulator temperatury A ze zdalnym sterowaniem
Jak wiele może tak proste (sprzętowo) urzqdzenie przekonajq się Czytelnicy, którzy zajrzq na słr. 91.
2,4 GHz dla każdego
Jeżeli chcesz bezboleśnie wkroczyć w pasmo 2,4 GHz koniecznie przeczytaj artykuł ze słr. 55.
Zegarze 100-letnim kalendarzem i dwukanałowym termometrem
Zbliża się kolejna zima XXI wieku. Projekt przedstawiony w artykule na słr. 21 przyda się zarówno jako czasomierz-kalendarz (wystarczy do końca wieku) jak i wielofunkcyjny termometr (mierzy także mocno ujemne temperatury).
Inteligentny sterownik oświetlenia wnętrza samochodu
Co prawda komputerów wsamocho-dach możemy mieć dostatek, ale posiadaczy słabo zelektronizowa-nych "maluchów", jak i innych aut
pozbawionych elektronicznych "wygód" projekt opisany na słr.
27 na pewno zainteresuje.
Uniwersalny odbiornik RC5/SIRC
Kolejnq przystawkę do PC (lubi się z Girderem!) opisujemy na słr. 39.
NS - terminale > graficzne HMI nowej generacji
Terminale to najbardziej efektowne elementy systemów nadzoru i sterowania. Nowości firmy Omron przedstawiamy na słr. 132.
Niskonapięciowy wzmacniacz słuchawkowy
Miniprojekt na mininapięcia. Słr. 79.
AnadigmVortex - analogowe FPGA firmy Anadigm
Analogowe układy programowalne wracajq na łamy EP jak bumerang. Nowości firmy Anadigm wyglqdajq więcej niż zachęcajqco - słr. 76.
"Klocki" RS485
Czas na "terminale" z interfejsem RS485. Opis ich budowy przedstawiamy w artykule na słr. 47.
Programowany >
generator PWM w VHDL
Kolejny mini-IP Core. W artykule na słr. 33 pokazujemy przykłady opisu wVHDL uniwersalnego generatora PWM o ustalanej przez użytkownika rozdzielczości.
Elektronika Praktyczna 10/2003
Krzemowy stos TCP/IP ^
Wiznet otwiera nam drogę do łatwo dostępnego Internetu. Szczegóły na słr. 60.
IKA
Nr 10(130)
październik 2003
Cyfrowy oscyloskop/analizator stanów logicznych,
cześć 1 ..........................................................................................14
Zegarze 100-letnim kalendarzem i dwukanałowym
termometrem, cześć 1................................................................21
Inteligentny sterownik oświetlenia wnętrza samochodu.......27
Programowany generator PWM w VHDL.................................33
Uniwersalny odbiornik RC5/SIRC ...............................................39
Centrala alarmowa z powiadomieniem GSM, cześć 2.........43
"Klocki" RS485,cześć5...............................................................47
Analizator stanów logicznych LA-2124
Analizator stanów logicznych jest przyrzqdem bardzo pożq-danym w laboratorium techniki cyfrowej. Jednq z rynkowych nowości tego typu przedstawiamy na słr. 68.
Sterowniki programowalne SIMATICS7-200
Sterowniki SIMATIC reklamy nie wymagajq. Ich możliwości komunikacyjne opisujemy
w artykule na słr. 135.
Niskonapięciowy wzmacniacz słuchawkowy..........................79
Kasownik liczników w cartridge'ach drukarek atramentowych firmy Epson...............................................
Podzespoły
2,4 GHz dla każdego..................................................................55
Krzemowy stos TCP/IP.................................................................60
Przetwornice DC/DC do systemów pomiarowych
i aplikacji audio...........................................................................71
AnadigmVortex- analogowe FPGA firmy Anadigm..............76
Sprzęt
Analizator stanów logicznych LA-2124....................................
Programowany zasilacz laboratoryjny PR8323........................74
Pamięci nieulotnew systemach
mikroprocesorowych, cześć 1 ...................................................85
Podstawy projektowania systemów
mikroprocesorowych, cześć 8...................................................88
Automatyka
Radiomodemy Satel.................................................................125
Przemysłowe cyfrowe karty wejść i wyjść..............................128
Kolorowa moc - NS - terminale graficzne HMI
nowej generacji.........................................................................132
Sterowniki programowalne SIMATIC S7-200, cześć 2 ...........135
Pokojowy regulator temperatury ze zdalnym sterowaniem, cześć 1 ..........................................................................................91
Z kraju i ze świata........................................................115
Biblioteka EPJ^^^^^Ł*Ś >ŚŚinmomra''Ś- I^
Kramik+Rynek................................................................95
Bascomowe Porady....................................................101
Listy.................................................................................103
Ekspresowy Informator Elektroniczny.....................
Wykaz reklamodawców............................................1
Elektronika Praktyczna 10/2003
PODZESPOŁY
Przetwornice DC/DC do systemów pomiarowych i aplikacji audio
Szwajcarska firma Traco Power ma w swojej ofercie wyspecjalizowane przetwornice impulsowe DC/DC, których podstawowym zadaniem jest separacja linii zasilających od siebie. Dzięki nim, w aplikacjach wymagających napięcia zasilającego pozbawionego zakłóceń, konstruktor nie musi stosować już wyrafinowanych, często bardzo kosztownych, sztuczek.
Przetwornice należące do rodzin TYL/TVL mają zażądanie przede wszystkim zapewnić na swoim wyj ś ci u/wyjściach (w zależności od typu) stabilne napięcie o zminimalizowanym poziomie zakłóceń. Taki cel postawili przed sobą ich konstruktorzy, a założenia udato się zrealizować min. dzięki zastosowaniu bardzo wysokiej częstotliwości pracy przetwornic (TYL: 70..400 kHz, TVL: 50..300 kHz), specjalnej budowie ceramicznej płytki podłożowej (na której zmontowano "elektronikę" przetwornicy) oraz metalowej obudowy zapewniającej zminimalizowanie poziomu zakłóceń elektromagnetycznych emitowanych do otoczenia. Przetwornice są przystosowane do zasilania napięciem o wartości 4,75..6 VDC, co sugeruje możliwość stosowania ich jako separatorów linii
zasilających w systemach cyfrowych, w których z natury
rzeczy linie zasilające są silnie zakłócone. Przewidywany charakter aplikacji docelowych prezentowanych przetwornic spowodował, że napięcie przebicia izolacji pomiędzy wejściem i wyjściem wynosi tylko 500 VDC.
Przetwornice TYL mają moc wyjściową 1,5 W i w zależności od wersji: jedno lub dwa (symetryczne) napięcia na wyjściu. Napięcie tętnień (łącznie z szumami) na wyjściu nie przekracza 6 mVpp, a po zastosowaniu trzech (lub pięciu w wersjach z podwójnym wyjściem) zewnętrznych kondensatorów (wymagane są elementy o wysokiej jakości) sumaryczne napięcie tętnień spada do ok. 2 mVpp. Przetwornice z rodziny TVL mają większą moc wyjściową - dochodzi ona do 5 W - i wszystkie wyposażono w podwójne wyjście (napięcia symetryczne). Charakteryzują sie one mniejszym poziomem tętnień (do 3 mVpp), co uzyskano min. dzięki wbudowaniu w przetwornice filtrów nieco bardziej rozbudowanych niż w rodzinie TYL.
Dokładność ustalonego fabrycznie napięcia wyjściowego w przetwornicach z obydwu rodzin nie jest gorsza niż ą3%.
Elektronika Praktyczna 10/2003
71
PODZESPOŁY
Tab. 1. Podstawowe parametry przetwornic TVL/TYL
Typpraełwofnicy Napięcie wjoerówe M Napięcie wyjoebawel fJ/mPi Napięcie wtyoedovve2 IV/mĄ|
TYL05-05S30 4,75...6 5/300 -
TYL05-12S12 4,75...6 12/120 -
TYL05-15S10 4,75...6 15/100 -
TYL05-05W08 4,75...6 5/80 5/80
TYL05-12W06 4,75...6 12/65 12/65
TYL05-15W05 4,75...6 15/53 15/53
TVL05-1220 4,75...6 12/200 12/200
TVL05-1225 4,75...6 12/250 12/125
TVL05-1516 4,75...6 15/165 15/165
TVL05-1520 4,75...6 15/200 15/100
Zmiana wartości napięcia wyjściowego w zależności od zmian napięcia wejściowego oraz zmian obciążenia (w zakresie 0/100%) w przypadku rodziny TYL wynosi ą0,3%, natomiast w przypadku przetwornic TVL (odpowiednio) ą0,03%/ą0,18%. Podobnie do innych typów przetwornic oferowanych przez Traco Power, także w prezentowanych w artykule, napięcie wyjściowe niezbyt silnie zależy od temperatury - współczynnik zmiany nie przekracza ą0,02%/C. Jest to o tyle istotne, że są one przystosowane do pracy w szerokim zakresie temperatur: -25... + 71C.
Komfort korzystania z przetwornic prezentowanych w artykule zwiększa fakt wbudowania w nie zabezpieczeń prze-
ciwzwarciowych. Uniemożliwiają one przekroczenie wartości prądu wyjściowego powyżej 20% wartości maksymalnej dla danego typu przetwornicy. Dzięki "podciętej" charakterystyce prądowo-napięciowej zabezpieczenia, czas trwania zwarcia nie ma wpływu na bezpieczeństwo i trwałość przetwornicy. Ma to dość duże znaczenie praktyczne, ponieważ producent gwarantuje prawidłową pracę swoich wyrobów przez dwa lata (według danych katalogowych MTBF> 1000000 h przy tem-peraturze otoczenia +25C).
Przetwornice prezentowane w artykule, w odróżnieniu od większości dotychczas prezentowanych, mają szansę znaleźć poczesne miejsce w różnorodnych aplikacjach audio (szczególnie w przedwzmacniaczach) oraz pomiarowych, np. jako separatory napięcia w kartach pomiarowych instalowanych w PC. Jest to - jak wynika z prób prowadzonych m.in. w naszym laboratorium - jeden z najskuteczniejszych sposobów eliminacji kłopotliwych zakłóceń. Andrzej Gawryluk
Dystrybutorem firmy Traco Power jest Amtek spoi. s r.o., tei. (22,) 874-02-34, amtek@amtek.pl, www.amtek.cz.
Dodatkowe informacje można znaleźć w Internecie pod adresem: - http:llwww.tracopower.com/products/tyi.htm.
Elektronika Praktyczna 10/2003
SPRZĘT
Jak mawiają informatycy: drukarka będzie działała znacznie lepiej, gdy się ją podłączy do prądu. Nie tyiko drukarka. My, eiektronicy, wiemy coś na ten temat. Dobry zasiiacz to podstawa wyposażenia pracowni eiektronika, niezałeźnie od tego, czy fest on amatorem, czy profesjonalistą. W artykule prezentujemy zasilacz PR8323, który jest przedstawicielem seńi PR8000 tajwańskiej firmy ABM.
POWER
'/K
Programowany zasilacz laboratoryjny
W niezgodzie z tym, co napisałem wyżej, sam używam do dzisiaj zasilacza, który był jedną z pierwszych moich konstrukcji elektronicznych. Tylko historycy elektroniki mogliby docenić elementy, na jakich był pierwotnie wykonany. Nie wytrzymały one jednak próby czasu i w trakcie eksploatacji zostały prawie w stu procentach wymienione na inne, nowocześniejsze. Ograniczone parametry mojego zasilacza dają mi się we znaki od czasu do czasu, aż przyjdzie moment, kiedy powędruje on do domowego muzeum. Po testach zasilacza PR8323, jakie miałem możliwość ostatnio przeprowadzić wydaje się, że dzień ten zbliża się milowymi krokami. PR8323 jest jednym z kilku programowanych zasilaczy serii PR8OOO. Warto tu wspomnieć, że firma ABM oprócz programowanych zasilaczy produkuje również programowane mierniki mocy, programowane mierniki impedancji, programowane omomierze, multimetry cyfrowe, zasilacze regulowane oraz liczne akcesoria do wyżej wymienionych przyrządów. Wszystkie są wykonane jako urządzenia stacjonarne i mają cyfrowo zadawane parametry fz klawiatury). Dzięki temu uzyskuje się dużą dokładność ustawień. Jedynie zasilacze regulowane mają parametry ustawiane za pomocą potencjometrów. Więcej danych dotyczących oferty firmy ABM można znaleźć pod adresem iittp-Jfwww.ah-2nimi.c0m. iwfe_index.htm.
Charakterystyka zasilacza PR8323
W tab. 1 zebrano podstawowe dane techniczne zasilacza PR8323. Do jego najistotniejszych cech należą: - praca ze stałym napięciem lub stałym
prądem,
- duży wyświetlacz LCD 16x2 z podświetlaniem,
- wysoka rozdzielczość ustawień: 10 mV, 1 niA,
- zabezpieczenie przed przeciążeniem,
- pamięć 50 ustawień użytkownika,
- automatyczne odtwarzanie ustawień z zaprogramowanymi zależnościami czasowymi,
- odłączanie i załączenie wyjścia,
- wysoka stabilność i niski poziom szumów zarówno podczas pracy jako źródło napięciowe jak i prądowe,
- zabezpieczenie przeciwzwarciowe i przed odwróconą polaryzacją,
- sterowany procesorem wentylator, gwarantujący ograniczenie hałasu do niezbędnego minimum,
- automatyczne zachowanie ustawień, odtwarzane po wyłączeniu i ponownym włączeniu zasilania,
- interfejs RS232,
- 4-cyfrowe wyświetlanie wartości napięcia i prądu,
- zgodność z normą IEC 61010-1.
- znak CE.
Obsługa zasilacza, mimo dość groźnie wyglądającej klawiatury jest bardzo prosta. Włączenie zasilacza do sieci nie zawsze musi być równoznaczne z podaniem napięcia/prądu na gniazda wyjściowe. Dzieje się tak dopiero po ustawieniu przyrządu w trybie On za pomocą klawisza Ouipui. Model PR8323 wyposażono w jedno wyjście. Jeśli zajdzie konieczność stosowania zasilania podwójnego, niestety trzeba będzie wykorzystać do tego celu drugi egzemplarz zasilacza lub zmienić typ np. na PR9323. Z oczywistych powodów będzie się to wiązało jednak z dodatkowymi kosztami. Wyjście składa się z trzech zacisków: dwóch napięciowych i jednego uziemiającego. Zasila-
nie urządzeń na ogół będzie wymagało pracy w trybie napięciowym. W tym przypadku ustawiona wartość prądu będzie pełniła rolę ograniczenia prądowego. Zwiększając napięcie w trakcie pracy będziemy zgodnie z prawem Ohma powodowali zwiększanie prądu wyjściowego fprzy założeniu stałości parametrów obciążenia). Po przekroczeniu pewnej wartości napięcia, prąd płynący przez obciążenie osiągnie ustawioną wcześniej wartość i zasilacz stanie się źródłem prądowym. Próby dalszego zwiększania napięcia będą nieskuteczne. Można w ten sposób sprawdzić np. napięcie progowe nieznanej diody Zenera. Wystarczy ustawić ograniczenie prądowe (klawiszem ASET] na wartość jej prądu roboczego fkilka mA) i dołączyć ją do zacisków zasilacza w kierunku zaporowym. Na wyświetlaczu pojawi się wartość napięcia Zenera badanej diody.
Parametry zaciskowe zasilacza mogą być ustawione przed uaktywnieniem wyjścia. Mogą być również zmieniane podczas pracy. Jeśli przewidujemy regulację napięcia w czasie, gdy wyjście pozostaje aktywne, niewątpliwie warto będzie ustawić ograniczenie napięciowe. Ustawione napięcie będzie maksymalnym, jakie uzyskamy na wyjściu zasilacza. Po jego przekroczeniu nastąpi automatyczne odłączenie wyjścia. Wejście w tryb regulacji napięcia na wyjściu odbywa się po naciśnięciu klawisza VSET. Wykorzystując zasilacz jako źródło prądowe, w analogiczny sposób można ustawić ograniczenie napięciowe (klawiszem VSET) i maksymalny prąd wyjściowy (klawiszem OCP). Aktualny tryb pracy zasilacza jest sygnalizowany lampką fGV /CC. Jeśli się świeci, oznacza to, że wyjście pracuje w trybie napięcio-
74
Elektronika Praktyczna 10/2003
SPRZĘT
wym, w przeciwnym razie mamy do czynienia z wyjściem prądowym.
Jednym z trybów pracy zasilacza PR8323 jest tzw. AUTO-RUN. Przed jego uruchomieniem należy zaprogramować sekwencję stanów wyjściowych. Po ustawieniu żądanego napięcia/prądu dla danego kroku wciskamy klawisz Save, zapisując tym samym aktualne parametry do nieulotnej pamięci zasilacza. Można zdefiniować nie więcej niż 50 ustawień. Następnie klawiszem Delay należy ustawić czas trwania kroku. Dla całej sekwencji będzie on jednakowy. Kolejną czynnością będzie zdefiniowanie pozycji pamięci, od której będzie później odtwarzana sekwencja, a także pozycji ostatniej. Realizuje się to klawiszem SEQ. Ponadto tym samym klawi-
szem można określić, czy zaprogramowana sekwencja będzie odtwarzana jednorazowo, czy będzie powtarzana cyklicznie. Uruchomienie tego specyficznego programu następuje po naciśnięciu klawisza Auto. Ograniczenia OVP i OCP, wprowadzone niezależnie, pozostają aktualne w trybie auto.
Opisana wyżej metoda nadaje się do zautomatyzowania pewnych czynności uruchomieniowo-pomiarowych. Poszczególne pozycje pamięci mogą być przywoływane również bez konieczności wchodzenia w tryb auto. Służy do tego klawisz Recall. Cechy użytkowe zasilacza znacznie podnosi możliwość zdalnego sterowania poprzez interfejs RS2 32. Jako źródło poleceń może być wykorzystany komputer PC lub specja-
Tabela 1. Dane techniczne zasilacza PR8332
Wyjście Napięcie 0n32V
Prąd 0D3A
Maks. napięcie 0,2D35V
Maks. prąd 0,02d3,2A
Współczynnikstabilizacji przy zmianach napięcia zasilającego Napięcie <0,01%+3mV
Prąd <0,06% +3 mA (+6 mA prąd znamionowy >3A)
Współczynnikstabilizacji przy zmianach obciążenia Napięcie <0,01%+3mV
Prąd <0,06%+3mA
Tętnienia i szumy Napięcie <1 mV
Prąd <3mA
Rozdzielczość programowania Napięcie 10 mV
Prąd 1 mA
Dokładność programowania Napięcie <0,05%+10mV
Prąd <0,08%+5mA
Współczynnik temperatury (0n40C) Napięcie <100ppm7C+3mV
Prąd <150ppm/C+3mA
Rozdzielczość odczytu Napięcie 10 mV
Prąd 1 mA
Dokładność odczytu Napięcie <0,05%+10mV
Prąd <0,08%+5mA
Czas reakcji Napięcie <100ms
Prąd <100ms
Współczynniktemp. odczytu Napięcie <100ppm/C+3mV
Prąd <150ppm/C+3mA
Dryf wyjściowy Napięcie <100ppm/C+10mV
Prąd <150ppm/C+3mV
Pamięć Zapisz/Przywołaj 0D50
Ustawianie czasu Zakres 0,1n9999,9s
Rozdzielczość 0,1s
Funkcja DlatrybuAUTODRUN
Interfejs RS232 9600,N,8,1
Zasilanie Napięcie AC 100/200/220/240 V ą10%, 50/60 Hz
Zakres temperatur Pracy 0n40C
Składowania -10D70C
Bezpieczeństwo i kompatybilność EMC CE (zawiera EMC i LVD)
Dane ogólne Wyposażenie Przewód pomiarowy Przewód zasilający Instrukcja
Wymiary (mm) 213(szer.)x88(wys.)x394(gł.)
Masa (kg) 6,5
lizowany sterownik. Komunikacja odbywa się w dwie strony, dzięki czemu możliwe jest zarówno przekazywanie poleceń do zasilacza - np. zmiana napięcia wyjściowego, jak i odczytywanie parametrów z zasilacza - np. zmierzonej wartości prądu wyjściowego. Po połączeniu zasilacza z komputerem i uruchomieniu odpowiedniego oprogramowania oraz wydaniu polecenia [+] jest podejmowana próba nawiązania połączenia. Gdy się powiedzie, zasilacz przechodzi w zdalny tryb pracy, a na panelu czołowym zapala się lampka Re-mote. Od tej chwili całą kontrolę nad zasilaczem przejmuje komputer, klawiatura zasilacza jest wyłączona. Aktywny pozostaje jedynie klawisz Local, poprzez który można przywrócić ręczne sterowanie. Składnia poleceń/komunikatów przekazywanych do/z zasilacza w trybie automatycznym jest prosta i dobrze opisana w instrukcji obsługi. Polecenia są przekazywane w formacie znakowym. Napisanie odpowiedniego skryptu nie powinno sprawiać większego kłopotu. Polecenia mogą być także wydawane ręcznie z klawiatury komputera, przy wykorzystaniu dowolnego programu terminalowego (choćby okienkowego Hyperterminala). W standardowym wyposażeniu zasilacza znajduje się bardzo prosta wersja takiego oprogramowania. Przykładowo, aby ustawić napięcie wyjściowe zasilacza na wartość 5 V, można przesłać do niego poprzez interfejs szeregowy tekstową wiadomość ,,VSl=O5.OO". Odczyt prądu nastąpi po wysłaniu polecenia "?AMl", po którym zasilacz odpowie komunikatem np. AMl=0.250. Oznacza on, że aktualnie z zasilacza jest pobierany prąd 0,25 A.
Ocena subiektywna
Wydawać by się mogło: zasilacz jak zasilacz. Co tu można wymyślić ponad to, co już zostało wymyślone? Niby prawda, ale moje wrażenia po wykonanych testach są bardzo pozytywne. Estetyczna obudowa nadaje zasilaczowi optycznej lekkości. Bardzo czytelny wyświetlacz i nienagannie pracująca klawiatura zapewniają ergonomiczną pracę. Do zasilacza jest dołączona polska instrukcja oraz dyskietka z jej elektroniczną (angielską) wersją. Najsłabszym punktem jest oprogramowanie użytkowe (program terminalowy). Właściwie można by się obyć bez niego. Większy pożytek byłby z przykładowych skryptów zamieszczonych w instrukcji. Nie są to jednak bardzo istotne mankamenty. Nie zmniejszają pozytywnej oceny zasilacza. Jarosław Doliński, AVT jaroslaw.dolinski@ep.com.pl
Dodatkowe informacje
Przyrząd dotestów udostępniła redakcji firma Mer-serwis.tel. (22) 831-42-56, www.merserwis.com.pl.
Elektronika Praktyczna 10/2003
75
PODZESPOŁY ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^m
Układy FPGA kojarzą się - i słusznie - wyłącznie z techniką cyfrową. Okazuje się jednak, że ideę FPGA można wykorzystać także w technice analogowej, czego przykładem są układy Field Programmable Analog Array opracowane i produkowane przez firmę Anadigm.
Analogowe FPGA firmy Anadigm
Pierwszą generację układów FPA-A (składała się ona przez długi czas z jednego tylko typu układu -AN10E40) prezentowaliśmy na łamach EP dwukrotnie, przede wszystkim jako ciekawostkę i jednocześnie potencjalną konkurencję dla analogowych układów programowalnych firmy Lattice (seria is-pPAC). O ile od pewnego czasu Lattice wyraźnie przyhamował prace nad swoimi programowalnymi układami analogowymi, to Anadigm szybko rozwinął gamę oferowanych produktów, wprowadzając do sprzedaży m.in. układy FPAA z możliwością dynamicznej rekon-figuracji.
Pierwowzór układów FPAA -wspomniany wcześniej AN10E40 -jest nadal produkowany, ale firma Anadigm szczególnie promuje układy nowej generacji, które są nazwano Anadigm Vortex.
FPAA drugiej generacji
Najpoważniejszą modyfikacją wprowadzoną do architektury układów AnadigmVortex są w pełni różnicowe tory przetwarzania sygnałów, dzięki czemu odstęp sygnału od szumu wzrósł z 65 dB do 80 dB (a nawet do 100 dB w zakresie częstotliwości audio), a odporność na zakłócenia skrośne wzrosła z 55 dB aż do 70 dB. Większe możli-
i i i
D D D
U- L.
S 8
LL
Komórka iowa
Komórka wyjściowa
Matryca łącząca komórki wyjściowe z dowolnym CAB-em
9
Generator taktujący
Analog. I Cyfr.
ANx2iE<>4
Rys. 1. Schemat blokowy układów ANx21E04
wości oferuje użytkownikowi także nowy konfigurowalny moduł analogowy CAB [Configurable Analog Błock - rys. 1), w którym zintegrowano dwa wzmacniacze operacyjne z różnicowymi wejściami i wyjściami, szybki komparator analogowy, osiem podwójnych konfiguro-walnych zespołów przełączanych kondensatorów, a także programowaną tablicę stałych wartości (podobną do klasycznej look-up-table z FPGA) - stosowaną do przechowywania wartości korygujących parametry toru przetwarzania sygnału lub wartości próbek dla generatorów przebiegów arbitralnych, rejestr SAR [Succesive Ap-proximation Register) i programowany licznik.
Dzięki unowocześnieniu wewnętrznej budowy układów Anadi-gmVortex, możliwe do uzyskania pasmo przenoszenia wynosi 0...2 MHz, przy maksymalnej górnej częstotliwości przenoszenia układu AN10E40 wynoszącej 2 50 kHz.
Jak działają FPAA?
Rodzina AnadigmVortex składa się obecnie z pięciu układów, przy czym są to w rzeczywistości trzy układy istotnie różniące się wewnętrzną budową, a dwa pozostałe typy powstały dzięki drobnym modyfikacjom wewnętrznej architektury "dużych" wersji. W wersjach uproszczonych usunięto 8-bitowy rejestr SAR, zmodyfikowano także analogowy multiplekser służący do przełączania sygnałów zewnętrznych (tab. 1).
Układy FPAA opierają swoje działanie na kluczowanych kondensatorach, które spełniają rolę rezystorów o programowanej rezystancji. Kondensatory pracują w układzie czterokluczowym (rys. 2), a średni prąd "przepływający"
76
Elektronika Praktyczna 10/2003
PODZESPOŁY
Rys. 2. Budowa "rezystora" wykonanego na kluczowanym kondensatorze
przez kondensator jest zależny od częstotliwości kluczowania i wzajemnego stosunku czasów otwarcia/zamknięcia kluczy włączonych szeregowo i równolegle z kondensatorem. "Rezystancja" takiego elementu w układach FPAA wynosi:
R=T/C
gdzie T - okres kluczowania, C -pojemność kondensatora.
W stosunku do klasycznych rezystorów, zastosowane w FPAA rozwiązanie dynamiczne zapewnia lepsze parametry elementów: tolerancja wartości dochodzi do ą1%, różnice pomiędzy wartościami elementów nominalnie identycznych nie przekraczają ą0,1%, lepsza jest także stabilność temperaturowa.
FPAA w torze obróbki sygnału
Uniwersalna budowa bloków CAB pozwala za ich pomocą wykonać wszelkie operacje analogowe na obrabianych sygnałach. Można więc tworzyć w prezentowanych układach sieci wzmacniaczy (także PGA, VCA i podobnych), aktywne ograniczniki napięcia (także o programowanej charakterystyce), różne-
go rodzaju filtry o programowanych parametrach i charakterystykach, analogowe regulatory (łącznie z pętlami PID), przesuwniki fazy, przetworniki A/C (układy z wbudowanymi rejestrami SAR) itp. Użytkownicy mają do dyspozycji w zależności od wersji - 4 wejścia różnicowe/2 wyjścia różnicowe i cztery moduły CAB (układy ANx20E04 oraz "'J ANx2lE04) lub 2/4 konfigurowalne wejścia/wyjścia, dwa wyjścia różnicowe i dwa moduły CAB (układ AN221E02).
Rekonfiguracja w języku C
Układy AnadigmVortex każdorazowo po włączeniu zasilania trzeba skonfigurować, do czego zazwyczaj jest wykorzystywana zewnętrzna pamięć nieulotna z wyjściem
Rekonfiguracja dynamiczna,,, ---to możliwość zmiany konfiguracji układu (czyli realizowanej funkcji lub parametrów)
podczas jego pracy. "Dynamiczność"
rekonfiguracji oznacza, że w jej trakcie układ
pracuje normalnie.
szeregowym. To w niej są przechowywane dane zawierające binarny opis projektu implementowanego w FPAA.
Trzy z pięciu układów Anadi-gmVortex są przystosowane do przeprowadzania dynamicznej re-konfiguracji (AN221E02, AN220E04 i AN221E04), co jest możliwe dzięki wbudowaniu w ich struktury pamięci "cieni", oddzielnych dla każdego bloku CAB. Są w nich przechowywane "następne" konfiguracje, przeładowywane do głów-
Fot. 3. Wyglqd układów AN220E04
nej pamięci konfiguracji w chwili, gdy jest zmieniana funkcjonalność układu lub parametry zaim-plementowanego w nim toru przetwarzania sygnału. Przepisanie zawartości pamięci "cienia" do pamięci konfiguracji wymaga zaledwie jednego cyklu wewnętrznego zegara, podczas gdy wpisanie danych konfigura-cyjnych do pamięci wymaga co najmniej 1,8 |is, a może trwać nawet do 120 |is. Tak długie czasy re konfiguracji praktycznie uniemożliwiają wykorzystywanie jej do kontekstowego konfigurowania układu. Wykorzystanie pamięci "cienia" problem ten całkowicie rozwiązało.
Do rozwiązania pozostaje drugi problem - w jaki sposób wpisywać do pamięci FPAA dane niezbędne do przeprowadzenia jego dynamicznej rekonfiguracji? Jest to, oczywiś-
Tab. 1
Parametr AN221E02 AN120E04 AN121E04 AN220E04 AN221E04
Napięcie zasilania (VI 5 5 5 5 5
Pasmo/SNR 0...2MHz/>70dB 0...2MHz/>70dB 0...2MHz/>70dB 0...2MHz/>70dB 0...2MHz/>70dB
Rodzaj wejść/wyjść Symetrczyne/ asymetryczne Symetrczyne/ asymetryczne Symetrczyne/ asymetryczne Symetrczyne/ asymetryczne Symetrczyne/ asymetryczne
Matryca CAB 2x1 2x2 2x2 2x2 2x2
Zasoby CAB 2 wzmacniacze operacyjne, Sx podwójna matryca kluczowanych kondensatorów, S-bitowySAR, komparator 2 wzmacniacze operacyjne, Sx podwójna matryca kluczowanych kondensatorów, S-bitowySAR, komparator 2 wzmacniacze operacyjne, Sxpodwójna matryca kluczowanych kondensatorów, S-bitowySAR, komparator 2 wzmacniacze operacyjne, Sxpodwójna matryca kluczowanych kondensatorów, S-bitowy SAR, komparator 2 wzmacniacze operacyjne, Sxpodwójna matryca kluczowanych kondensatorów, S-bitowy SAR, komparator
Wyposażenie dodatkowe LUT, programowany licznik, 8-bitowy przetwornik A/C LUT, programowany licznik LUT, programowany licznik, S-bitowy przetwornik A/C LUT, programowany licznik LUT, programowany licznik, S-bitowy przetwornik A/C
Re konfiguracja Statyczna i dynamiczna Statyczna Statyczna Statycznai dynamiczna Statycznai dynamiczna
Elektronika Praktyczna 10/2003
77
PODZESPOŁY
Fot. 4. Zestaw startowy dla układów FPAA
cie, zadanie dla zewnętrznego mik-rokontrolera, który dane konfigura-cyjne do układu FPAA wprowadza przez 6-przewodowy interfejs szeregowy. Firma Anadigm przygotowała niebagatelne wsparcie dla projektantów aplikacji korzystających z dynamicznej rekonfiguracji: program narzędziowy AnadigmDesigner 2 potrafi automatycznie generować kod dla mikro kontrolera (zapisany w języku C), który zawiera wszystkie dane i procedury niezbędne do przeprowadzenia rekonfiguracji.
Narzędzie
Podstawowym i w zasadzie jedynym, narzędziem służącym do projektowania aplikacji na układach FPAA jest windowsowy program AnadigmDesigner 2. Ma on intuicyjny interfejs użytkownika i pozwala "budować" tor obróbki sygnału za pomocą mechanizmu Drag&Drop. Program wyposażono w kreator regulatorów PID (Ąnadi-gmPID) oraz AnadigmAssistant, który służy do projektowania zaawansowanych analogowych systemów regulacyjnych oraz filtrów. Zaletą programu jest możliwość symulowania działania zaprojektowanego układu. Efektem działania AnadigmDesigner a jest m.in. plik binarny lub szesnastkowy zawierający dane z opisem konfiguracji (służy
do zaprogramowania pamięci nie-ulotnej) lub wcześniej wspomniany kod w języku C.
AnadigmDesigner 2 jest dostępny w 60-dniowej wersji ewaluacyjnej, o możliwościach identycznych z wersją komercyjną, dzięki czemu Czytelnicy zainteresowani układami FPAA mogą samodzielnie zapoznać się z ich możliwościami.
Podsumowanie
Układy AnadigmVortex są interesująca alternatywą dla klasycznych, zazwyczaj dyskretnych, rozwiązań torów obróbki sygnałów analogowych. Co istotne, układy te są dostępne w sprzedaży detalicznej, a ich ceny - wbrew pozorom - są dość przystępne. Nie są to przesłanki gwarantujące rynkowy sukces, ale wiele wskazuje na to, że liczba aplikacji FPAA szybko się zwiększy.
Piotr Zbysiński, AVT piot r. z by s i ns ki @ ep .com. pl
Dodatkowe informacje
Dodatkowe informacje są dostępne pod adresami:
- http://www.anadigm.corn/Down_05_a.asp -ewaluacyjna wersja programu AnadigmDesigner 2,
- http://www.anadigm.com/products.asp -szczegółowe informacje o cenach i dostępności uktadów AnadigmVortex (Także sprzedaż detaliczna).
78
Elektronika Praktyczna 10/2003
MINIPROJEKTY
Wspólną cechą układów opisywanych w dziale "Miniprojekty" jest łatwość Ich praktyczne] 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 scaionych, 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,
Niskonapięciowy wzmacniacz słuchawkowy
Czasami trzeba słuchać muzyki przez słuchawki, aby nie przeszkadzać innym. Wiele urządzeń ma wyjście słuchawkowe, ale są także takie, które owego wyjścia nie mają. Wówczas najprościej jest wyprowadzić na zewnątrz urządzenia sygnały audio, montując w nim wzmacniacz słuchawkowy. Rekomendacje: dla wszystkich aplikacji, w których występuje potrzeba wzmocnienia sygnałów audio o niewielkiej mocy.
Przeróbka sprzętu audio nie zawsze jest możliwa. W takiej sytuacji przydatny będzie prezentowany wzmacniacz -w wielu urządzeniach można bowiem wykorzystać sygnały występujące na wyjściu liniowym, które zazwyczaj nie są w stanie bezpośrednio wysterować słuchawki.
Prezentowany w artykule wzmacniacz charakteryzuje się niewielkimi wymiarami, a co najważniejsze, może pracować już przy napięciu zasilającym o wartości 1,5 V. Nie trzeba doprowadzać do wzmacniacza dodatkowego napięcia zasilającego, gdyż wystarczy tylko jeden popularny "paluszek" (R6). Wzmacniacz został zbudowany w oparciu o układ TPA6102A2 firmy TI.
Schemat elektryczny wzmacniacza pokazano na rys. 1. Do zapewnienia prawidłowej pracy wzmacniacza wystarczy tylko pięć kondensatorów. Kondensatory C3 i C4 filtrują napięcie zasilające. Wzmacniacz ma wewnętrznie ustawione wzmocnienie na 14 dB, dzięki czemu wyeliminowano sześć rezystorów zewnętrznych. Wysoki poziom na wejściu SHD umożliwia pracę wzmacniacza, a niski jego przejście w tryb shuidown.
Na rys. 2 przedstawiono schemat montażowy płytki drukowanej. Podczas montażu należy zachować dużą ostrożność, zwłaszcza przy lutowaniu wzmacniacza Ul, który jest w obudowie SMD. Układ ten należy - jako jedyny - zamontować od strony ścieżek, zwracając baczną
Z1
uwagę na kolejność wyprowadzeń. Po zmontowaniu układu i włączeniu zasilania o napięciu z zakresu 1,5...3,6 V, wzmacniacz jest gotowy do pracy. Można go umieścić w jednej z dostępnych na rynku obudów, w której powinno znaleźć się miejsce także na baterie. Czy to będzie jedna bateria czy dwie 1,5 V, zależy od tego, jaka moc będzie satysfakcjonująca. Jeżeli wystarczy nie za głośny dźwięk w słuchawkach, to z powodzeniem można użyć jednej baterii 1,5 V. W przypadku, gdy lubi się głośno słuchać muzyki, potrzebne może okazać się zastosowanie dwóch baterii 1,5 V. Nie trzeba stosować wyłącznika zasilania, gdyż wystarczy podłączyć przełącznik do wejścia SHD wzmacniacza.
Marcin Wiązania, AVT marcin.wiazania@ep.com.pl
SHD
Rys. 2
WYKAZ ELEMENTÓW
Kondensatory
CL C2: l^F stoły
C3: 47^F/ÓV
C4: lOOnF
C5: 1 |xF/óV
CÓ, C7: lOO^F/ÓY
Półprzewodniki
Ul: TPAÓ102A2 (SOP8)
Różne
Zl, Z2: goldpin 1x3
Z3: goldpin 1x2
Z4: gniazdo jock S^mm
stereo do druku
Płytka drukowana jest dostępna w A VT - oznaczenie AVT-1383.
Wzory płytek drukowanych w formacie PDF są dostępne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl pazdziernikQ3.htm oraz na płycie CD-EP10/2003B w katalogu PCB.
Elektronika Praktyczna 10/2003
MINIPROJEKTY
Kasownik liczników w cartridge'ach drukarek atramentowych firmy Epson
Tym razem
nietypowo:
w miniprojektowym
artykule wyjątkowo
prezentujemy nie układ
lecz... program. Stało
się tak z dwóch
powodów: jego
fu nkcjo nalność
i możliwości kwalifikują
go do grona
prawdziwych
programatorów, a przy
okazji zapowiadamy -
za miesiąc przedstawimy
w EP projekt podobny
funkcjonalnie, lecz nieco
"obudowany" sprzętowo.
R ekom en da ej e:
polecamy użytkownikom
drukarek atramentowych
firmy Epson, uczulonym
na koszty ich
eksploatacji.
Rys. 1
Rys. 2
Ceny drukarek dawno już przebiły (w dół) granice "przyzwoitości" i nikogo nie dziwi już stojąca na półce w supermarkecie "kolorowa" drukarka kosztująca 250 zł. Czyżby producenci drukarek byli filantropami, inwestującymi z własnej kieszeni w sprzęt wykorzystywany przez nas w domach?
Oczywiście nie. Jakkolwiek ceny drukarek są rzeczywiście niskie, to ich eksploatacja okazuje się w praktyce zatrważająco kosztowna. Pojemniki z atramentami zawierają go coraz mniej, a ich cena rośnie bardzo szybko. Przez jakiś czas lekarstwem na takie praktyki producentów drukarek były zestawy do napełniania pojemników za pomocą strzykawek, ale dość szybko wprowadzono utrudnienia dla takich praktyk:
- piezoelektryczne głowice drukujące miały trwałość odpowiadającą pojemności pojemnika na atrament, w związku z czym po napełnieniu go atramentem jakość druku szybko się pogarszała,
- w nowszych rozwiązaniach pojemniki wyposażono w elektroniczne "klucze", a z czasem systemy licznikowe wykonane na miniaturowych mikrokontrolerach (m.in. na popularyzowanym przez EP N itr oni e firmy Motorola). Liczniki te (nazywane w nomenklaturze producenta jako CSIC) kontrolują poziom atramentu i liczbę wydrukowanych znaków, a po wykryciu końca nominalnego "życia" cart-ridge'a blokują jego pracę. W takiej sytuacji, także po uzupełnieniu atramentu przez użytkownika, drukarka będzie traktowała cartridge jako pusty.
Z pomocą użytkownikom drukarek wyposaż onych w tak zaawansowane systemy weryfikacji przyszła firma SSC, która opracowała i udostępnia bezpłatnie program o nazwie SSC Service Utility. Radzi on sobie bez trudu z układami CSIC w cartridge'ach do drukarek firmy Epson i -co niezwykle istotne -nie wymaga budowania
jakiegokolwiek interfejsu sprzętowego! Wszystkie operacje odbywają się poprzez standardowy interfejs drukarkowy (nie ma znaczenia czy jest to Centronics, czy USB).
Prezentowany program należy pobrać ze strony interne-towej producenta (hiip:ll www.ssclg.co ml downloa dl sscserve.exe) i zainstalować standardowo dla systemu operacyjnego Windows (wymagany restart komputera!).
Na rys. 1 pokazano wygląd głównego okna programu, w którym prezentowane są stany atramentów w cartrid-ge'ach. Na podobnie wyglądającym rys. 2 są przedstawiane liczby wystrzelonych przez głowicę kropel atramentu, co według autorów programu daje w niektórych sytuacjach lepszą orientację co do rzeczywistego poziomu atramentu.
Po zamknięciu głównego okna, program jest dostępny w windowsowym tray'u (rys. 3), a dostęp do poszczególnych funkcji jest możliwy po kliknięciu na ikonie prawym przyciskiem myszki. Dostępne opcje widać na rys. 4, a ich szczegółowy opis jest dostępny w angielskojęzycznym iiel-pie. Zwrócę tylko uwagę, że oprócz wielu funkcji ułatwiających napełnianie cartrid-ge'y, program wyposażono także w funkcje serwisowe, jak np. czyszczenie głowic (wielostopniowe) czy umożliwienie wymiany cartridge'a podczas pracy drukarki bez konieczności jej zerowania.
Uwaga! Przed rozpoczęciem pracy z programem należy koniecznie zapoznać się z uwagami znajdującymi się w pomocy programu. Niewłaściwe operacje mogą spowodować uszkodzenie głowicy drukującej.
fieseł counleis >
J Caitridge xchange >
X Protection counłer >
tiead clearing *
Rys. 4
Działanie programu przetestowaliśmy na drukarce Epson Stylus Color 630USB. Spisuje się on bez zarzutu i -moim zdaniem - ogromną zaletą programu jest brak konieczności stosowania jakiegokolwiek interfejsu sprzętowego, co ma także wadę: trudno wykorzystać ten program w celach usługowych (np. żeby ułatwić uzupełnienie atramentu znajomemu, który ma inną drukarkę atramentową). Rozwiązanie tego problemu przedstawimy za miesiąc. Andrzej Gawryluk, AVT
Dodatkowe informacje są dostępne w Iniernecie pod a dresami: hiip:llwww. ssclg.-comlepsone.shiml i hiip:ll www.ssclg.com I do wnloa dl sscserve.exe.
Piogramprezertowarryw aitykJe ob&jgujednJcarkt
Epson Stylus Color 400/440/
480 LPT/4 80SXU/580/6 00/640/ 660/670/680/740/760/800/850/ 880/900/980/1160/1520/3000, antakże C20/40, C41/42/43 (brak możliwości wyzerowania liczników atramentów), C60,C61/62/70/80/ 82 (brak możliwości wyzerowania liczników atramentów), Epson Stylus Photo, Epson Stylus Photo EX, Epson Stylus Photo 700/IP-100, Epson Stylus Photo 750/PM-770C, Epson Stylus Photo 780/ 790/810/820/825, Epson Stylus Photo 830 (brak możliwości wyzerowanialiczników atramentów), Epson Stylus Photo 870/PM-875DC, Epson Stylus Photo PM-890C/890/895/900/950, Epson Stylus Photo 1200/1270/ 1280/1290/2000P/21 00/2200, Epson Stylus Pro 5000/PM-5000C. Aktualne informacje on typach obsługiwanych drukarek są dostępne podadresem:http:// dVh
80
Elektronika Praktyczna 10/2003
KURS
Pamięci nieulotne w systemach mikroprocesorowych, część 1
Jedną z najbardziej efektywnych i jednocześnie tanich metod przechowywania danych j est wykorzystanie pamięci RAM mikrokontrolera. Ma to jedną, ważną zaletę: w przypadku awarii napięcia zasilającego dane już znajdują się tam, gdzie będą potrzebne po przywróceniu ,,normalnych" warunków pracy. Nie trzeba zatem wykonywać żadnych dodatkowych kroków w celu ich przechowania. Oczywiście pozostaje kwestia kontroli, czy zapamiętane dane nie zostały uszkodzone, ale nie zmienia to cech, o których była mowa wcześniej. To od strony programowej. A jak wygląda to samo zagadnienie od strony sprzętowej ?
Niestety, niezbędne są pewne dodatkowe połączenia i elementy zewnętrzne. Jak zapewne pamiętamy, pamięć DRAM jest zbudowana z wielu miniaturowych kondensatorów, które przechowują ładunek elektryczny niosący informację o stanie bitu. Pamięci DRAM wymagają odświeżania zawartości, czyli okresowego dołado-wywania kondensatorów. Pamięć SRAM nie wymaga odświeżania (a w taką zazwyczaj są wyposażane mik-rokontrolery) i może przechowywać dane dowolnie długi czas, ale pod warunkiem zapewnienia zasilania. Rolę źródła zasilającego może pełnić kondensator elektrolityczny o bardzo dużej pojemności, akumulator lub bateria. Wszystko zależy od wymagań aplikacji. W swoich projektach często wykorzystuję baterię litową o napięciu 3 V. Zasilanie mikrokontrolera wyłącznie z baterii jest raczej nieefektywne, toteż stosuje się automatyczne przełączniki zasilania przełączające zasilanie mikrokontrolera pomiędzy źródłem stacjonarnym (np. zasilaczem) a baterią czy akumulatorem. Przełącznik można zbudować w oparciu o specjalizowany układ scalony lub za porno-
Konstruując urządzenia z mikrokontrolerami często stajemy przed koniecznością zapewnienia przechowywania danych także po wyłączeniu lub zaniku zasilania. Łatwo jest, jeśli są to stałe jak: napisy menu (dla przykładu w różnych językach), obrazy, stałe parametry nastaw. Gorzej, gdy musimy przechować zmienne. Jeszcze trudniej, gdy muszą one być zapamiętane również w przypadku awarii napięcia zasilania.
cą diod krzemowych lub lepiej - germanowych. Przykładami fabrycznych rozwiązań w formie układów scalonych mogą być MAX6326, -75, -81. Inne, bardziej skomplikowane, wyposażone są również w funkcję nadzoru napięcia zasilania MAX6 365...68, wejście sygnału zewnętrznego reset (MAX6366) i układ watchdog (MAX6368). Przykłady ich zastosowań, zaczerpnięte z not aplikacyjnych producenta, umieszczono na rys. 1 i 2. Na rys. 3 przedstawiono schemat najprostszego przełącznika diodowego.
Oczywiście, oprócz przytoczonych, można zaproponować również wiele innych rozwiązań sprzętowych. Opracowując konstrukcje własnych przełączników, zwłaszcza w połączeniu z układem nadzoru napięcia zasilania, trzeba mieć na uwadze kilka istotnych czynników, między innymi:
- zanik napięcia zasilającego powinien zostać wykryty wcześniej niż pojawi się sygnał reset dla mikrokontrolera,
- napięcie zasilające z baterii musi być przełączone w sposób ,,pewny", eliminujący wahania napięcia mogące zakłócić pracę mikrokontrolera,
1N4001
Napięcie wejściowe
np. z zasilacza
o-
R1 został dadany dla stłumienia
zakłóceń 60Hz oraz
dla poprawnej polaryzacji
diody D1 (odcina prąd wsteczny)
2xAA 1,5V
MAX6326
a1
b1
GND
100k
J-tL
FDN34OP
Ro 20R
wewn. dioda tranzystora
Rys. 1. Przykład zastosowania układu MAX6326 do przełączania źródeł napięcia zasilającego
- spadek napięcia na diodzie krzemowej spolaryzowanej w kierunku przewodzenia to około 0,6 V, natomiast na diodzie germanowej 0,2 V; wartość tą należy odjąć od napięcia baterii zasilającej i ta różnica zasila mikrokontroler,
- prąd pobierany przez pamięć CMOS lub mikrokontroler w stanie IDLE jest tak mały, że również detekcyjne diody germanowe z powodzeniem mogą spełniać rolę przełącznika napięcia zasilającego; odnosząc tę uwagę do rys. 3: dioda D2 może być diodą germanową.
Układy mikrokontrolerów wprowadzone w tryb IDLE pobierają znikomą ilość energii i zachowują zawartość pamięci RAM. Typowo prąd potrzebny do zasilania w trybie IDLE ma wartość mniejszą niż 100 uA. W sytuacji jak opisywana wyżej, gdy do przechowywany do +S,SV
T
VCC BATTON
MAX6368
Dekoder adresowy
> RESET
Rys. 2. Przykład użycia układu MAX6368 do przełączania źródła napięcia zasilającego oraz generowania sygnału reset dla mikrokontrolera
Elektronika Praktyczna 10/2003
85
KURS
D1 1N4001
+5VO
GND
1R1 100k
ovcc
D2 -1N4001
B1 3,6V
Rys. 3. Budowa taniego, diodowego przełącznika napięcia zasilania
nia danych używana jest wewnętrzna pamięć CMOS, układ mikrokontrolera musi być zasilany z baterii a zanik napięcia zasilającego powinien być sygnalizowany w celu wprowadzenia mikrokontrolera w stan obniżonego poboru energii (IDLE). Abstrahując od rozwiązań sprzętowych, mikrokontroler należy wyposażyć w tak zwane wejście pomiarowe. Oczywiście dla większości zastosowań wystarczające jest wejście cyfrowe pozwalające stwierdzić obecność stanu logicznego wysokiego lub niskiego przyłożonego do wyprowadzenia.
Często do sygnalizacji zaniku napięcia wykorzystuje się wejście zewnętrznego przerwania. Dla mikrokontrolera z rodziny 8051, wejścia te oznaczane są jako INTO i INTl. Doskonale nadają się one do takiej sygnalizacji, ponieważ każde z wejść posiada przerzutnik Schmitta pozwalający jednoznacznie określić stan logiczny. Dodatkowo poziom napięcia (lub jego zmianę) na wejściu łatwo jest powiązać z odpowiadającym mu fragmentem programu. Fragment ten może zawierać na przykład ustalenie stanu portów wyjściowych oraz wprowadzenie mikrokontrolera w tryb obniżonego poboru energii. Przykład takiej funkcji obsługi przerwania zewnętrznego przedstawiono na list. 1.
W tym miejscu ważna uwaga: często programista wykorzystując wejście przerwania zewnętrznego w sposób taki, jak opisałem wyżej (sam również popełniałem taki błąd) ustawia bit powodujący wygenerowanie sygnału przerwania w momencie pojawienia się opadającego zbocza sygnału na wejściu INTx. Funkcja może zawierać rozkaz wprowadzenia mikrokontrolera w tryb IDLE w celu obniżenia poboru energii z baterii. Później pojawia się sygnał reset generowany przez układ nadzorcy napięcia zasilającego. Jeśli układ ten nie jest zasilany z baterii (a najczęściej w celu oszczędzania energii tak jest), to aktywny reset zaniknie wraz z zanikiem napięcia zasilania całego obwodu poza mikrokontrolerem. W takiej sytuacji, zasilany energią z baterii mikrokontroler, zaczyna wykonywać program począwszy od adresu 0, ponieważ aktywny sygnał reset wyprowadził go z trybu IDLE a opadające zbocze sygnału na wejściu przerwania nie pojawi aż do momen-
List. 1. Przykład procedury obsługi przerwania wprowadzającej mikrokontroler wstań obniżonego poboru energii IDLE
i********** PRZERWANIE ZEWN.INT1 ****************
IrqExtl:
clr EA
mov Pl,INIT_FOR_P1
mov P2,INIT_F0R_P2
mov P3,INIT_F0R_P3
orl PCON,#3 ;wyłączenie mikrokontrolera, przechowywanie zawartości RAM
ajmp $ ;ponowne załączenie po sygnale RESET (PD=IDL=1 -> PD)
List. 2. Przykład realizacji funkcji zapisu/odczytu danych w EEPROM
.***************** OBSŁUGA DANYCH PAMIĘTANYCH W EEPROM *********************** i Testowanie bitu gotowości pamięci EEPROM po operacj i zapisu EE_BusyTest: mov A,WMCON
ani A,#00000010B
jz EE_BusyTest
ret
i Wyłączenie EEPROM
EE_Disable: aniWMCON,#11100111B ret
i Zapamiętanie bajtu danych w pamięci EEPROM,16-bitowy adres w DPTR, bajt w ACC ;po odczytaniu bajtu wartość DPTR jest zwiększana o 1 EE_SaveByte: orl WMCON,#0001100 OB ;Włączenie trybu Zapisu
movx @DPTR,A ;Zapis bajtu
cali EE_BusyTest ;Test zakończenia operacj i
inc DPTR
ret
iOdczyt bajtu danych z pamięci EEPROM,16-bitowy adres w DPTR, bajt zwracany w ACC ;po odczytaniu bajtu wartość DPTR jest zwiększana o 1 EE_ReadByte: ani WMCON,#11100111B
orl WMCON,#00001000B ; Tryb odczytu
movx A,@DPTR iOdczyt bajtu
inc DPTR ret
tu załączenia i ponownego wyłączenia zasilania. A my dziwimy się, gdzie podziewa się energia z baterii, która powinna wystarczyć na co najmniej pół roku pracy...
Omówiony wyżej problem można rozwiązać na szereg różnych sposobów, zarówno programowo jak i sprzętowo. Najprostszym jest programowe testowanie wejścia pomiarowego lub ustawienie przerwań aktywowanych poziomem niskim sygnału a nie jego
zboczem. Oczywiście zarówno część sprzętowa jak i programowa muszą ze sobą współgrać w celu osiągnięcia jak najlepszego efektu. Pamiętajmy, że mimo wprowadzenie w stan IDLE mikrokontroler nadal jest zasilany! W przypadku niektórych aplikacji ważnym może być również właściwe ustawienie stanów portów wejściowych i wyjściowych. Praktyka pokazuje, że mimo iż porty nie powinny być aktywne i dopuszczać do ,,wycieków" energii
List. 3. Przykład użycia funkcji do obsługi pamięci EEPROM z list. 2
i Zapamię tanie parametrów ustawionych po kalibracj i
EE_SaveParams:
mov DPTR,#EE_PLCSTADDR
mov A PLCSTATE ;<- nastawy maszyny
cali EE_SaveByte
mov A PRNR ;<- numer aktywnego programu
cali EE_SaveByte
mov A CALSTEPS
cali EE_SaveByte
mov A CALSTEPS+1 ;<- liczba kroków kalibracji
cali EE_SaveByte
mov A CALSTEPS+2
cali EE_SaveByte
cali EE_Disable
ret
;Odczyt parametrów systemowych
EE_RestParams:
mov DPTR,#EE_PLCSTADDR
cali EE_ReadByte
mov PLCSTATE,A
cali EE_ReadByte
ej ne A,#OFFH,EE_RestPl ;<- numer aktywnego programu
clr A
mov PRNR,A
cali EE_ReadByte
mov CALSTEPS, A
cali EE_ReadByte
mov CALSTEPS+1,A ;<- liczba kroków kalibracji
cali EE_ReadByte
mov CALSTEPS+2,A
cali EE_ReadProg ;<- odczyt ostatniego programu
ret
86
Elektronika Praktyczna 10/2003
KURS
O +5V
B1
3V LI BAT.
Rys. 4. Również układ popularnego RTC zawiera 240 bajtów pamięci RAM, którą można wykorzystać do przechowywania danych
zasilającej, to bywa z tym różnie w przypadku różnych mikrokontrolerów od różnych producentów.
Innym zagadnieniem jest właściwa inicjalizacja zmiennych znajdujących się w pamięci RAM. Należy bardzo uważać na wszelkiego rodzaju polecenia testujące stan RAM. Często działają one w taki sposób, że zapisują do i odczytują z pamięci pewną wartość. Dobrze jest w pamięci mikrokontrolera wydzielić dla tego celu pewien obszar a zawarte w nim dane opatrzyć dodatkowo sumą kontrolną.
Inną możliwość tworzy dodanie zewnętrznej pamięci CMOS RAM. Najlepiej, gdy jest to pamięć z interfejsem szeregowym SPI lub I2C. Wówczas cały ciężar związany z obsługą jej spoczywa na oprogramowaniu. Nie jest konieczne projektowanie i budowa skomplikowanych dekoderów adresu. Jednak w przypadku użycia pamięci zewnętrznej, należy dobrze przemyśleć zarówno budowę sprzętową jak i sposób funkcjonowania programu. O ile bowiem w przypadku użycia wewnętrznego RAM mikrokontrolera do jego
List. 4. Funkcje zapisu i odczytu pamięci EEPROM w języku AVR asembler wraz z przykładami ich użycia
.def eedata = r23 .def eeaddr = r24
i bajt do zapisu w eeprom ;adres zapisu bajtu
i obsługa pamięci eeprom
i zapis bajtu do EEPROM
;adres bajtu w eeaddr, bajt w eedata
ee_write: sbic eecr,EEWE ;czekaj na EEWE = 0
rjmp ee_write
out eear,eeaddr ;podaj adres danych w eeprom
out eedr,eedata i zapisz dane
sbi eecr,EEMWE i ustaw bit "master ee write enable"
nop
sbi eecr,EEWE i ustaw bit "ee write enable"
ret
iodczyt bajtu z EEPROM
;adres bajtu w eeaddr, bajt zwracany w eedata
ee_read: sbic eecr,EEWE ;czekaj na EEWE = 0
rjmp ee_read
out eear,eeaddr ;podaj adres w eeprom
sbi eecr,EERE ; ustaw bit "ee read enable"
in eedata,eedr i czytaj dane
ret
i zapis danych z bufora w pamięci RAM do EEPROM
i spodziewane: adres danych w eeaddr, koniec oznaczony jako EOD
ee_write_buf: ldi yl,LOW(buffer)
clr yh ee_write_loop: Id eedata,y
cpi eedata,EOD
brnę ee_write_next
rcall ee_write
ret ee_write_next: rcall ee_write
inc eeaddr
isbuf = (Y)
i if (eedata != EOD) goto ee_write_next
;zapisz EOD do eeprom
inc yl
rjmp ee_write_loop
i zapisz bajt do eeprom
;eeadr = eeaddr+1
;Y = Y + 1
i goto ee_write_loop
i odczyt danych z EEPROM do bufora w pamięci RAM ;adres danych w eeaddr, koniec oznaczony jako EOD, ;adres miejsca,do którego przesyłane są dane w rej.Y ee_read2buf: rcall ee_read
cpi eedata,EOD ; if (eedata != EOD) goto ee_read_next
brnę ee_read_next
st y,eedata ; (Y) += EOD
ret ee_read_next: st y,eedata
inc yl ;Y += 1
inc eeaddr ieeadr += 1
rjmp ee_read2buf
ret
zawartości można uzyskać dostęp już po wykonaniu pojedynczego rozkazu, o tyle dostęp do danych poprzez interfejs SPI czy I2C wymaga wykonania kilku lub kilkunastu rozkazów.
Przykład podłączenia zasilania do układu zewnętrznej pamięci np. nastaw przedstawiony jest na rys. 4. Wykorzystano tu popularny układ zegara czasu rzeczywistego (RTC) PCF8583 zawierający w swojej strukturze 240 bajtów pamięci RAM do wykorzystania przez użytkownika. W układzie pokazanym na rys. 4 wykorzystano prosty przełącznik diodowy. Po zaniku głównego napięcia zasilającego + 5 V, samoczynnie załącza on zasilanie PCF8583 z baterii litowej 3 V.
A co w takiej sytuacji z zasilaniem mikrokontrolera? Jeśli zewnętrzna pamięć RAM jest jedynie pamięcią nastaw, można odłączyć zasilanie awaryjne od mikrokontrolera. Jednak w przypadku, gdy zawiera również zmienne, należy wyposażyć mikrokon-troler w wejście pomiarowe i wykonać pewien fragment programu w celu zapamiętania zmiennych, po zaniku głównego napięcia zasilającego. Gdy będzie on sygnalizowany wystarczająco szybko a w obwodzie zasilania mikrokontrolera umieścimy kondensator elektrolityczny o dużej pojemności, nie jest konieczne doprowadzanie awaryjnego napięcia zasilania. Mikrokontro-ler ,, zdąży" przesłać zmienne. Oczywiście nic nie stoi na przeszkodzie a nawet jest to rozwiązanie bezpieczniejsze, aby mikrokontroler był podłączony do zasilania awaryjnego wspólnie z układem pamięci. Może on np. po wykonaniu procedury awaryjnej przechodzić do trybu wyłączenia - POWER DOWN lub oszczędnego - IDLE w celu wydłużenia żywotności baterii.
Rozwiązania z zastosowaniem pamięci zewnętrznych SRAM można mnożyć w nieskończoność. Często do zasilania zamiast baterii stosuje się akumulator wyposażony w układ ładowania. Można używać pamięci równoległych lub szeregowych. Można stosować układy pamięci wykonane w technologiach Flash i EEPROM. Wydają się bardzo dobrą alternatywą w porównaniu z wszelkimi odmianami RAM. Nie wymagają bowiem użycia żadnych dodatkowych źródeł zasilania. Ponadto oferta handlowa związana zwłaszcza z pamięciami Flash jest bardzo szeroka. Spotkać można pamięci wykonane przy użyciu różnych technologii o pojemnościach od kilkuset bitów do 2 a nawet i więcej Mb. Dla przeciętnych zastosowań często wystarczającą jest pamięć EEPROM wbudowana w strukturę mikrokontrolera. Ich wadą w porównaniu z RAM jest długi czas konieczny na zapamiętanie danych.
Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Elektronika Praktyczna 10/2003
87
KURS
Podstawy projektowania systemów mikroprocesorowych, część 8
Obsługa klawiatury
Chociaż klawiatura bez wątpienia należy do grupy omówionych w poprzednim odcinku elementów stykowych, to jednak sposób obsługi dużej liczby przycisków jest zagadnieniem nieco bardziej skomplikowanym (choć przy niewielkiej liczbie przycisków sposób obsługi nie różni się od obsługi pojedynczych elementów stykowych). Klawiatura jest jednym z najpopularniejszych urządzeń wejściowych umożliwiających komunikację użytkownika z systemem mikroprocesorowym i wpływanie na sposób jego działania. W zależności od funkcji pełnionej przez dany system klawiatura może osiągać rozmiary układu kilkunastu czy kilkudziesięciu klawiszy. W zależności od liczby klawiszy zmienia się także sposób obsługi programowej, poczynając od bezpośredniego odczytu stanu portu, a kończąc na rozbudowanych procedurach obsługi klawia-
+UZBS
SW1 vcc
pD 0- P1.7
SW2
0 O P1.6
SW3 '51
o o- P1.5
SW4
GND
Jednym z podstawowych elementów interfejsu użytkownika w systemach cyfrowych jest klawiatura. W tej części cyklu pokazujemy, w jaki sposób dołączyć i jak ghsługiwać lokalne klawiatury o stykach dołączanych bezpośrednio do portów mikrokontrolera.
wpływa również na prostotę oprogramowania. Detekcja naciśnięcia przycisku odbywa się na zasadzie odczytu stanu konkretnej linii portu - "O" oznacza klawisz wciśnięty. Uwzględniając zjawiska łączeniowe (drgania styków) obsługa programowa może być identyczna jak omówiona wcześniej dla innych elementów stykowych. Należy jedynie zwielokrotnić liczbę pomocniczych zmiennych odpowiadających liczbie stosowanych klawiszy. Wadą prezentowanego układu jest konieczność zarezerwowania jednej linii portu mikrokontrolera dla jednego klawisza i związane z tym trudności wygospodarowania linii sygnałowych przy większej liczbie klawiszy i innych urządzeń korzystających z portów mikrokontrolera.
Na rys. 28 przedstawiono nieco bardziej ekonomiczne rozwiązanie. Linie jednego portu są wykorzystywane przez dwa urządzenia - w tym przypadku jednym urzą-
tur matrycowych. Obecnie w układach potrzebujących dużej liczby klawiszy coraz popularniejsze staje się wykorzystanie gotowych klawiatur z komputerów PC.
Jeżeli w projektowanym systemie nie jest potrzebna duża liczba klawiszy, wykorzystuje się bezpośrednie połączenie mikrowyłączników tworzących klawiaturę do linii portu mikrokontrolera. Sytuację taką przedstawiono na rys. 27. Połączenie wykonano bezpośrednio, bez żadnych dodatkowych rezystorów podciągających (oczywiście, o ile wykorzystywane linie posiadają rezystory wewnętrzne), gdyż umieszczona zazwyczaj w pobliżu mikrokontrolera klawiatura nie jest narażona na zakłócenia oraz nie ma konieczności stosowania prądów gwarantujących samooczyszczanie styków (następuje ono w sposób mechaniczny, wskutek działania znacznej siły nacisku palca). Prostota układowa tego rozwiązania
74LS573
VGC
07 D7
06 De
05 D5
Q4 D4
03 D3
02 D2
01 D1
00 DO
UE C
GND
T
Rys. 27
Rys. 28
88
Elektronika Praktyczna 10/2003
KURS
List. 10. Proceduro i KLAWISZE - zmienn i BUFOR - zmienna b i sekwencje napisan KLAWIATURA: M0V Pl,#0FFH CLR P3.0 M0V A,Pl CPL A M0V KLAWISZE,A SETB P3.0 RET ZATRZASK: M0V Pl,BUFOR SETB P3.7 CLR P3.7 RET obługujqca prostą klawiaturę pokazaną na rys. 28 a bajtowa przechowująca stan klawiszy (1 - naciśnięty) ajtowa przechowująca daną do wysłania do zatrzasku o jako podprogramy wywoływane rozkazem LCALL ustawienie linii portu Pl zerowanie linii P3 . 0 odczyt stanu linii negacja bitów (aby uzyskać 1 dla naciśniętego klawisza) zapamiętanie stanu klawiatury ustawienie linii P3.0 (aby naciskanie klawiszy nie Wpływało na stan linii portu Pl powrót do programu głównego przesłanie danych do portu Pl generacja sygnału strobującego (należy pamiętać o wyzerowaniu linii P3.7 po resecie mikrokontrolera - w części programu inicjującej zmienne i rejestry) powrót do programu głównego
dzeniem jest klawiatura, natomiast drugim układ zatrzaskowy [latch] 74LS573 (może to być także dowolny inny układ posiadający wejście zezwalająco/strobujące i pozostający obojętny na stan linii, gdy wejście to jest nieaktywne). Przedstawiony schemat uwzględnia jedynie klawiaturę czteroprzyciskową (dla zachowania czytelności rysunku), ale nic nie stoi na przeszkodzie, aby podłączona klawiatura wykorzystywała wszystkie osiem linii portu.
Układ ten działa następująco: jeżeli chcemy przesyłać dane do rejestru zatrzaskowego, wówczas konieczne jest ustawienie linii P3.0 wstań wysoki. Następnie wysyłamy do portu Pl bajt przeznaczony do przesłania, a potem generujemy sygnał strobujący (impuls): ustawiamy i zerujemy linię P3.7 - zbocze opadające powoduje zatrzaśnięcie informacji w rejestrze i pamiętanie jej gdy P3.7=0. Gdy chcemy obsłużyć klawiaturę, należy wpisać do portu Pl wartość 0xFF (ustawienie wszystkich linii w stan wysoki w celu wykorzystania ich jako wejścia), a następnie wyzerować linię P3.0. Jeżeli któryś z klawiszy zostanie wciśnięty, to odpowiednia linia portu Pl zostanie wprowadzona w stan niski (wskutek połączenia z linią P3.0 pozostającą w stanie niskim). Odczytując stan portu Pl odczytujemy zatem stany klawiszy ("0" -klawisz wciśnięty) - po dokonaniu odczytu należy z powrotem ustawić linię P3.0 wstań wysoki.
Układ działałby również poprawnie, gdyby pominięto zastosowane diody włączone szeregowo z przyciskami, jednak mogłyby wystąpić przekłamania przy zapisie do rejestru, gdyby w czasie transmisji kilka przycisków było naciśniętych równocześnie. Dlatego też lepiej wspomniane diody zastosować. Przykładową sekwencję rozkazów obsługujących wspomniany układ zamieszczono na list. 10.
Na rys. 29 przedstawiono sposób dołączenia klawiatury do mikrokontrolera z wykorzystaniem wspólnych linii z innym urządzeniem, którym jest... również klawiatura! Przedstawiony na rysunku układ podłączenia przycisków tworzy klawiaturę matrycową. Charakterystyczną cechą takiego rozwiązania jest możliwość wyróżnienia na schemacie wierszy i kolumn, na przecięciu których znajdują się elementy zwierające (przyciski). Możliwa do obsłużenia liczba klawiszy jest zależna od liczby wierszy i kolumn matrycy, i jest równa iloczynowi tych dwóch wartości.
Zasada działania układu jest następująca: odczytywanie stanu klawiszy odbywa się w sposób grupowy, tzn. jednocześnie odczytywany jest stan jednego rzędu klawiszy (jeden wiersz lub jedna kolumna) - załóżmy, że w naszym układzie będziemy klawiaturę sprawdzać odczytując stan klawiszy pogrupowanych w wiersze (zgodnie z kolejną numeracją na schemacie). W takiej konfiguracji linie Pl.4 do Pl.7 będą pracowały jako wejście, natomiast linie Pl.O do Pl.3 jako wyjście (nie jest konieczne stosowanie rezysto-
List. 11. Program obsługi klawiatury matrycowej (schemat na rys. 29)
KLAW1_8 - pomocnicza zmienna bajtowa pamiętająca stan klawiszy SW1
do SW8 (najmłodszy bit oznacza stan SW8, "1" oznacza
klawisz wciśnięty) KLAW8_16 - pomocnicza zmienna bajtowa pamiętająca stan klawiszy SW8
do SW16 (najmłodszy bit oznacza stan SW16, "1" oznacza
klawisz wciśnięty)
CZYTAJ_KLAWISZE: M0V Pl,#0FFH
CLR Pl.3 M0V A,Pl SETB Pl.3 CPL A
AHL A,#0F0H M0V KLAW1_8,A
CLR P1.2 M0V A,Pl SETB P1.2 CPL A
AHL A,#0F0H SWAP A
ORL A,KLAW1_8 M0V KLAW1_8,A
CLR Pl.l
M0V A,Pl
SETB Pl.l
CPL A
AHL A,#0F0H
M0V KLAW8_16,A
CLR Pl.O
M0V A,Pl
SETB Pl.O
CPL A
AHL A,#0F0H
SWAP A
ORL A,KLAW8_16
M0V KLAW8_16,A
RET
;procedura wywoływana przez LCALL
i ustawienie linii portu Pl w stan wysoki
i wyzerowanie linii Pl.3
;odczyt stanu linii portu Pl (czytamy 1 wiersz) iUstawienie linii Pl.3 (bo stan już odczytaliśmy) ;negacja (aby 1 oznaczała wciśnięty klawisz) ;maskowanie młodszych 4 bitów - interesują nas starsze i zapamiętanie stanu 4 klawiszy
i wyzerowanie linii P1.2
;odczyt stanu linii portu Pl (czytamy 2 wiersz)
i ustawienie linii P1.2
i negacj a
i maskowanie
i zamienienie miejscami połówek bajtu (bo wiersz 2 to 4
iinłodsze bity KLAW1_8)
i połączenie informacji o obu wierszach
i zapamiętanie stanu wszystkich ośmiu klawiszy
i wy zerowanie linii Pl.l
;odczyt stanu linii portu Pl (czytamy 3 wiersz)
i ustawienie linii Pl.l
i negacj a
i maskowanie
i zapamiętanie stanu 4 klawiszy (SW9-SW12)
i wyzerowanie linii Pl.O
;odczyt stanu linii portu Pl (czytamy 4 wiersz)
i ustawienie linii Pl.O
i negacj a
i maskowanie
i zamienienie miejscami połówek bajtu
i połączenie informacji o obu wierszach
i zapamiętanie stanu wszystkich ośmiu klawiszy
;powrót do programu głównego
Elektronika Praktyczna 10/2003
89
KURS
rów podciągających dla linii Pl.O i Pl.l mikrokontrolerów
AT89CxO51, gdyż stan wysokiej impedancji i stan wysoki są tu nierozróżnialne - na pracę układu wpływa tylko stan niski). Wstępnie należy do portu Pl wpisać same jedynki (ustawić wszystkie linie), następnie możemy przejść do odczytu pierwszego wiersza. Dokonujemy tego zerując programowo linię Pl.3 (linie Pl.O do Pl.2 pozostają w stanie wysokim) i odczytując stan wyprowadzeń P1.4...P1.7 - stan tych linii odzwierciedla stan klawiszy w pierwszym wierszu (SW1...SW4) -przykładowo stan niski na linii Pl.6 oznacza wciśnięcie SW2. W podobny sposób postępujemy dla pozostałych wierszy, kolejno zerując pojedynczo linie Pl.2, Pl.l i Pl.O (pozostałe linie wstanie wysokim) i odczytując stan czterech starszych linii portu. Rozwiązanie programowe będzie polegać na jednorazowym odczytaniu stanu wszystkich klawiszy, a następnie przekazaniu informacji o naciśnięciach do programu głównego (przez zapamiętanie w pomocniczej zmiennej). Przykładową procedurę obsługi klawiatury matrycowej zamieszczono na list. 11. Gdyby zaistniała potrzeba odczytywania stanu klawiatury kolumnami, to zmienią się jedynie funkcje wyprowadzeń: kolejno zerować będziemy wyprowadzenia P1.4...P1.7, a odczytywać Pl.O...Pl.3 (tym razem konieczne będą rezystory podciągające dla Pl.O i Pl.l mikrokontrolerów AT89CxO51).
Rys. 29
W przypadku naciśnięcia więcej niż jednego klawisza istnieje niebezpieczeństwo odczytania przez układ dziwnej kombinacji naciśniętych klawiszy (podobna cecha jak w układzie z rys. 28, choć tutaj nie zostaną przekłamane żadne transmitowane dane - tylko klawiatura korzysta z tych linii portu). Aby temu zapobiec można zastosować diodę szeregowo włączoną z każdym klawiszem (patrz rys. 28). W naszym przypadku (odczytywane wiersze klawiatury) diody należy włączyć katodami w kierunku linii wierszy (Pl.O...Pl.3). Gdybyśmy klawiaturę chcieli odczytywać kolumnami, to należy diody podłączyć odwrotnie.
Zastosowanie klawiatury matrycowej w systemie mikroprocesorowym pozwala na zaspokojenie nawet bardzo rozbudowanych potrzeb dotyczących klawiatury. Istnieją jednak aplikacje, w których zastosowanie rozbudowanego układu klawiatury jest niemożliwe ze względu na wykorzystanie w innych celach linii portów mikrokontrolera - po prostu brakuje nam wolnych linii niezbędnych do obsługi dużej
liczby klawiszy. Rozwiązania problemu są dwa: można zastosować specjalizowany układ scalony lub lepiej odpowiednio oprogramowany drugi mikrokontroler (rozwiązanie niejednokrotnie tańsze i elastyczniej-sze) odpowiedzialny tylko i wyłącznie za wykrywanie faktu naciskania klawiszy i komunikujący się z głównym mikrokontrolerem za pomocą niewielkiej liczby linii (jedna, góra dwie linie) lub zastosować to samo rozwiązanie w gotowej postaci dostarczanej przez wielu producentów sprzętu komputerowego - standardową klawiaturę komputera PC-AT. Zastosowanie klawiatury PC ma tę zaletę, że jest stosunkowo tanie, a także bardzo łatwe w adaptacji i estetyczne - odpada konieczność borykania się z rozwiązaniami mechanicznymi i obudową klawiatury. Jedyną wadą takiego rozwiązania jest konieczność zapoznania się z dość nietypowym sposobem komunikacji klawiatury z mikroprocesorem. Szczegóły przedstawimy za miesiąc. Paweł Hadam, AVT pawel.hadam@ep.com.pl
90
Elektronika Praktyczna 10/2003
PROJEKTY CZYTELNIKÓW
DzioS "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.
Projekt
113
Pokojowy regulator temperatury ze zdalnym sterowaniem, część 1
Pomysł budowy urządzenia powstał, gdy ze względu na niską temperaturę panującą w pokoju, autor zmuszony był do korzystania z dodatkowego ogrzewania elektrycznego. U żytko wanie typowego ogrzewacza
wnętrzowego (popularnej ^^^^^^^^^^ ^^ ^^^^
"farelki"!, oprócz wysokich ł^^ł*^3fcSlOł^^^5TSlBEł^SS^Fł ' były czynniki9rn d9t9rrninu-
kosziów zużytej energii l^CłtPłf^łSł 5ł MM Ś l^E^ŁjEĆS*^! jącyrn autora do poszukiwa-
elekirycznej, miało poważną irS^tWŁAISŁł_^^^flBcJflC^ŁjŁ n'a roswia-san bardzi9J
wadę; każdorazowe 1 TJ|'y*^l*^'T^^^^Btf*^jt<^r^ "współczesnych".
włączenie i wyłączenie ŚHfj^H^^^^H^^H ^ESS^LŁil W Pocsątkowym samysl9
urządzenia wymagało ^^B \^^^^^^^^^^| ŚCft^^M^H ursądzenia miało ledynie włą-
interwencji użytkownika. ^^^ j^^^^^^^^^H ^^^^LJ^Jp^B csać ' y^cz*& ogrs9wacs sa A przecież jesteśmy tak W ^^^^^^^^^^^^^^KE^^^A^fl^K Pomoc^ P'lota< podobnie jak
leniwi... M ^^^^^^^^^^^^&^^*^^^BB^^^^^^^^^^B czyni się to z domowym
sprzct9m AV. J9dnak wyko-rzystani9 mikroproc9sora umożliwiło wyposaŚ9ni9 sterownika w dodatkow9 funk-cje. Urządz9ni9 umożliwia: - odczyt t9mp9ratury otocz9-
Taki9 sytuac]9, w przy- koju, włącz9nia podgrz9wacza nia z rozdzi9lczością 0,10C,
padku autora, powodowały i powrotu na mi9Jsc9. Chociaż - odczyt t9mp9ratury rnini-koni9czność zaprz9stania wy- podobna gimnastyka, z punk- maln9] i maksymaln9] w da-
konywanych właśni9 zajęć tu widz9nia higi9ny pracy, jest nym prz9dzial9 czasowym,
fna ogół w najmni9J stosów- 9l9m9nt9m bardzo pozytyw- - manualn9 włączani9 i wy-nym mom9nci9 - np.: pod- nym, to J9dnak zbyt częst9 te- łączani9, za pomocą pilota,
czas precyzyjnego lutowania), go typu spac9ry powodowały dowoln9go 9l9ktryczn9go
prz9Jścia na drugi koni9c po- spad9k 9f9ktywności pracy urządz9nia grz9wcz9go,
9FHBO0-BB
Rys. 1. Schemot elektryczny regulotoro temperotury
Elektronika Praktyczna 10/2003
91
PROJEKTY CZYTELNIKÓW
Rys. 2. Schemat elektryczny układu sterownika mocy
- automatyczna (dwupołoże-niowa) regulacja temperatury pomiędzy wartością minimalną tL i maksymalną tH,
- wprowadzanie za pomocą pilota wartości tL i tH,
- włączanie urządzenia grzewczego "w zerze" sieci energetycznej,
- automatyczne wyłączenie urządzenia grzewczego w przypadku przekroczenia dopuszczalnego czasu pracy.
Część sprzętowa
Regulator składa się z płytki sterownika mikroprocesorowego zawierającej cztery siedmio segmentowe wyświetlacze LED, zamontowanej bezpośrednio na obudowie typowego zasilacza wtyczkowego, oraz układu bezstykowego sterownika mocy zamkniętego w oddzielnej obudowie.
Schemat elektryczny sterownika mikroprocesorowego przedstawiono na rys. 1. Zastosowano tu popularny mik-rokontroler z rodziny 51 typu AT89C4051 firmy Atmel z 4 kB pamięcią programu typu Flash. Mikrokontroler jest taktowany sygnałem zegarowym o częstotliwości 12 MHz. Jako czujnik temperatury wykorzystano cyfrowy termometr DS1820 firmy Maxim/Dallas. Zintegrowany odbiornik podczerwieni dołączony jest do wejścia przerwania zewnętrznego INTO mikrokontrolera. Port Pl mikrokontrolera steruje bezpośrednio katodami wyświetlaczy siedmiosegmen-towych. Anody wyświetlaczy sterowane są poprzez klucze tranzystorowe z odpowiednich linii portu P3 mikrokontrolera. Na płytce drukowanej regulatora zastosowano montaż przewlekany (mikrokontroler, kwarc, wyświetlacze, kondensator elektrolityczny) oraz SMT (rezystory, kondensatory, tranzystory).
Czujnik temperatury jest podłączony do płytki regulatora za pomocą kilkunastocentymetrowego przewodu. Oddalenie czujnika pomiarowego od płytki regulatora i obudowy zasilacza jest konieczne ze względu na wydzielanie ciepła przez transformator sieciowy, co w przypadku zamontowania czujnika bezpośrednio na płytce, powodowałoby błędne (zawyżone) odczyty temperatury.
Zamiast elektromagnetycznego przekaźnika włączającego urządzenie wykonawcze zastosowano moduł złożony z optotriaka i triaka o dużej mocy (rys. 2). Wykorzystywany optotriak posiada dodatkowo układ włączania "w zerze" sieci energetycznej.
Dodatkowe elementy bierne (R21, R22, C21) łączące optotriak z triakiem są zgodne z typową aplikacją podawaną przez producenta i umożliwiają poprawne sterowanie urządzeń również o charakterze indukcyjnym. Jako element wykonawczy zastosowano triak BTA26 o typowym prądzie przewodzenia 26 A, co jest wartością aż nadto wystarczającą do sterowania urządzeń grzewczych o mocach znacznie ponad 2 kW. Triak zamocowano na radiatorze o dość kompromisowych wymiarach, dostosowanych do objętości obudowy (w przypadku sterowania urządzeń grzewczych o większych mocach konieczne jest zapewnienie odpowiednich warunków chłodzenia triaka poprzez m.in. odpowiedni dobór powierzchni radiatora).
Układ sterownika mocy zamknięto w oddzielnej obudowie z tworzywa sztucznego na której zamocowano typowe gniazdko elektryczne służące do podłączenia grzejnika.
Obsługa i działanie
Po włączeniu zasilania (włożeniu zasilacza wtyczkowego z płytką mikrokontrolera do gniazdka elektrycznego) regulator bezpośrednio wyświetla bieżącą temperaturę otoczenia. Wciśnięcie klawisza ,,1" w pilocie zdalnego sterowania spowoduje uruchomienie urządzenia grzewczego. Na lewym skrajnym wyświetlaczu pojawia się wówczas ,,wędrujący wokół" świecący segment sygnalizujący pracę urządzenia wykonawczego. Wyłączenie urządzenia wymaga wciśnięcia klawisza "2" w pilocie, lub następuje automatycznie po około 20 minutach od momentu ostatniego wciśnięcia klawisza ,,1". Wciśnięcie klawisza ,,3" spowoduje wyświetlenie minimalnej zarejestrowanej temperatury. Sygnalizowane jest to migającym dolnym segmentem (c) lewego skrajnego wyświetlacza. Wciśnięcie w tym momencie klawisza ,,POWER" powoduje przepisanie bieżącej temperatury jako temperatury minimalnej (kasowanie pamięci temperatury minimalnej) - na wyświetlaczu pojawia się na parę sekund symbol ,,SEt". Jeżeli klawisz "POWER" nie został wciśnięty, powrót do stanu wyświetlania temperatury bieżącej następuje automatycznie po kilkunastu sekundach lub po wciśnięciu przycisku ,,PHONO" (klawisz tuż obok ,,POWER" pełniący funkcję klawisza ESC) lub klawisza "2". Analogicznie naciśnięcie klawisza ,,4" podczas wyświetlania temperatury bieżącej powoduje wyświetlenie temperatury maksymalnej , co sygnalizowane jest migającym górnym segmentem (a) pierwszego wyświetlacza. Funkcje rozkazów "PHONO", "POWER" i "2" są analogiczne jak dla funkcji wyświetlania temperatury minimalnej. Wciśnięcie klawisza "AM" w czasie wyświetlania temperatury bieżącej spowoduje przełączenie trybu pracy regulatora z manualnego na automatyczny. Automatyczny tryb pracy sygnalizowany jest wyświetlaniem co parę sekund symbolu "Auto" na wyświetlaczu. W tym trybie bieżąca wartość temperatury porównywana jest z dwiema wartościami progowymi tL i tH. Jeżeli bieżąca wartość temperatury jest mniejsza niż wartość progo-
wa tL wówczas następuje załączenie urządzenia wykonawczego. Wyłączenie urządzenia wykonawczego następuje kiedy temperatura otoczenia osiągnie wartość większą niż wartość progowa tH lub po przekroczeniu dopuszczalnego czasu pracy. W trybie automatycznym aktywne są również klawisze "1" i "2" mające identyczne znaczenie jak w trybie manualnym. Można więc w każdej chwili klawiszem "1" załączyć urządzenie grzewcze, a klawiszem "2" wyłączyć - przełączając jednocześnie regulator w stan pracy manualnej. Przejście do trybu manualnego można również osiągnąć wciskając klawisz "FM" w pilocie zdalnego sterowania. Aby sprawdzić bieżące nastawy wartości temperatur progowych tL i tH należy odpowiednio nacisnąć klawisze "VOL-" lub "VOL+". Na lewym skrajnym wyświetlaczu widnieje wtedy symbol wyświetlanej wartości: zapalone segmenty a, b, f, g dla wartości tH oraz segmenty c, d, e, g dla wartości tL. Powrót do wyświetlania temperatury bieżącej następuje po naciśnięciu klawisza "PHONO" lub jeżeli nie wciśnięto żadnego klawisza automatycznie po kilkunastu sekundach ale tylko wówczas gdy załączone jest urządzenie grzewcze. Jeżeli w czasie wyświetlania temperatur progowych jeszcze raz zostanie naciśnięty klawisz "VOL-" lub "VOL+" wówczas istnieje możliwość wprowadzenia nowych wartości progowych (tL lub tH zależnie od tego która wartość jest właśnie wyświetlana). Wygaszone zostają wówczas pozostałe wyświetlacze z wyjątkiem pierwszego pokazującego symbol wprowadzanej wartości. Naciskanie teraz klawiszy numerycznych zostanie zinterpretowane jako określenie kolejno dziesiątek, jednostek i dziesiątych części danej nastawy tL lub tH. W każdej chwili tryb wprowadzania danych można opuścić naciskając klawisz "PHONO". W przypadku kiedy uruchomiony jest ogrzewacz wyjście z tego trybu może nastąpić również automatycznie po kilkunastu sekundach od chwili ostatniego wciśnięcia dowolnego klawisza w pilocie zdalnego sterowania. Zatwierdzenie wprowadzonej wartości odby-
Elektronika Praktyczna 10/2003
PROJEKTY CZYTELNIKÓW
U 1 1 0
<-
- 0,6
<------------------------ffiZ--------- ---------------> 1,06 4^> 41 -
Rys. 3. Fragment przebiegu na wyjściu odbiornika podczerwieni (wartości w ms)
wa się poprzez naciśnięcie klawisza "POWER". Dodatkowo sprawdzana jest spójność wprowadzanych danych. Jeżeli tH - tL < 0,4C wówczas sygnalizowany jest błąd (symbol "Err" na wyświetlaczu) i wprowadzane wartości nie są zapamiętywane. Jeżeli wprowadzone dane spełniają powyższe równanie i dodatkowo jeżeli wartości tL i tH mieszczą się w przedziale O...25,5C (dane można zapisać za pomocą 8 bitów), wówczas przepisywane są do nie-ulotnej pamięci E2RAM znajdującej się w układzie DS1820 (wykorzystywane są dwa bajty użytkownika). Jeżeli któraś z wartości tL lub tH przekracza 25,5C wówczas nie jest zapisywana w pamięci nieulotnej lecz jedynie w pamięci RAM mik-rokontrolera. Dane z nieulo-tej pamięci układu DS1820 przepisywane są do pamięci RAM mikrokontrolera inicjując wartości tL i tH podczas sekwencji startowej po włączeniu zasilania. Jeśli wystąpi błąd odczytu z pamięci nieulotnej sygnalizowane jest to komunikatem ,,Err" na wyświetlaczu tuż po włączeniu zasilania i obie wartości tL i tH domyślnie inicjowane są zerami (wartości te można zmienić wciskając dwukrotnie klawisze ,,VOL-" lub "VOL+").
Oprogramowanie
Oprogramowanie sterujące regulatora wykonano w języku C wykorzystując kompilator Keil w bardzo starej, ale w pełni funkcjonalnej, wersji 3.20 dla DOS-a. Jedynie procedury obsługi magistrali jed-noprzewodowej dla układu czujnika temperatury zaimple-mentowano w asemblerze. Całość kodu wynikowego (po linkowaniu) zajmuje prawie 4 kB pamięci programu mikrokontrolera. W dalszej części artykułu zostanie skrótowo
opisane dekodowanie sygnałów zdalnego sterowania oraz procedury obsługi magistrali jednoprzewodowej i ich zastosowanie do komunikacji z układem DS1820.
Dekodowanie sygnałów zdalnego sterowania
Jako pilot zdalnego sterowania wykorzystano model RC-200S firmy TEAC. Analiza oscyloskopem cyfrowym generowanych przez pilota sygnałów wykazała, iż pracuje on w standardzie NEC80 (w tym samym standardzie pracuj e też np. pilot od karty tunera TV PixelView, lecz pilot ten inaczej koduje poszczególne klawisze). Oznacza to, że czas trwania impulsu (poza nagłówkiem) jest w tym standardzie stały, zaś kodowanie ,,0" i ,,1" realizowane jest poprzez różny czas przerwy między impulsami. W standardzie NEC80 przesyłane są 32 bity danych.
Szczegółowe informacje na temat kodowania i sposób dekodowania sygnałów zdalnego sterowania zamieszczono WEP12/2002. Sposób dekodowania sygnałów zdalnego sterowania zaproponowany w tym artykule jest nieco inny (powstał zanim ukazał się wspomniany numer EP).
Na rys. 3 przedstawiono fragment przebiegu otrzymanego na wyjściu odbiornika podczerwieni podczas nadawania wybranego rozkazu. Dekodowanie poszczególnych rozkazów będzie więc polegało na pomiarze czasu pomiędzy kolejnymi opadającymi zboczami sygnału uzyskanego z odbiornika podczerwieni. Opadające zbocze sygnału z odbiornika podczerwieni, podłączonego do wejścia przerwania zewnętrznego mikrokontrolera, spowoduje żądanie przyjęcia przerwania. Aby przyjęcie przerwania było możliwe konieczne jest wcześniejsze
ustawienie bitu ITO w słowie sterującym TCON - oznaczające sposób przyjęcia przerwania opadającym zboczem na wejściu INTO - oraz ustawienie bitów EX0 i EA w masce przerwań IE. Pomiar czasu pomiędzy kolejnymi opadającymi zboczami na wejściu INTO będzie się odbywał za pomocą sprzętowego licznika TO pracującego w trybie 1. Na list. 1 przedstawiono kod źródłowy funkcji w języku C obsługującej przerwanie z wejścia zewnętrznego i realizującej dekodowanie poszczególnych rozkazów oraz funkcji obsługi przerwania z licznika TO (przerwanie zgłaszane w momencie przepełnienia licznika).
Bity start_seq i start_bit wykorzystywane są do sygnalizacji kolejno rozpoczęcia nadawania rozkazu (nagłówka) i wystąpienia bitu startu. Ustawienie bitu rdy oznacza, że odebrano pomyślnie rozkaz, którego kod znajduje się w 32-bitowej zmiennej typu long o nazwie byte. Typ danych bit nie jest typem standardowym charakterystycznym dla języka C. W kompi-
latorze Keil jest to bit oznaczający 8-bitowy adres bitu w pamięci RAM mikrokontrolera. Zmienna mh służy do tymczasowego przechowywania starszego bajtu licznika TO. Od tej też operacji - zapamiętania stanu bajtu THO licznika TO - rozpoczyna działanie funkcja obsługi przerwania zewnętrznego. Następnie zerowany jest licznik TO. Jeżeli przyjęte zostało przerwanie, a bit start_seq nie jest ustawiony, oznacza to, że rozpoczyna się nadawanie rozkazu. Ustawiany jest wówczas bit start_seq i funkcja obsługi przerwania kończy działanie. Przy kolejnym wywołaniu funkcji (kolejnym przerwaniu) sprawdzany jest stan bitu start_bit [start_seq jest już ustawiony). Jeżeli nie był on zapalony oznacza to prawdopodobieństwo wystąpienia bitu startu. Sprawdzany jest teraz czas, który upłynął od ostatniego przerwania. Przy czym każdy pomiar czasu odbywa się z dokładnością do 256us -brany jest pod uwagę jedynie starszy bajt licznika TO. Jeżeli czas ten zawiera się w przedziale od 11,5 ms do
List. 1. Kod źródłowy funkcji obsługi przerwań i dekodowania
rozkazów
voi< int_extO(void) interrupt 0 using 1
m h=TH0; TL0=0; TH0=0;
if (!start_ seq)
start_s eq=l;
el se
if (!start_ bit)
1 if (mh>45&Lmh<54)
{ start _bit=l; bitcnt=0; byte=0;
TR1=O ; ET1=O ; Pl=2 55;
else
start se q=0;
el se
if (start_b it)
if (mh>12) { sta rt_seq=start_bit=O; ET1=1; return; )
if (bitcn < t<32)
i. byte=l
if (mh>6) byte1= 1;
bitcnt++;
if (bitcn t>32)
{ rdy=l
start _bit=st art_seq=0;
TR1=1 ; ET1=1
voi< int_tO (v oid) in terrupt 1 using 1
ET1=1; TR1=1;
st art_bit=s tart_se q=0;
Funk cje wykorzystują następujące zmienne zewnętrzne (globalne):
bit start_bit ,start_ seq,rdy;
unsi gned char mh,bit cnt;
unsigned long byte;
Elektronika Praktyczna 10/2003
93
PROJEKTY CZYTELNIKÓW
14 ms oznacza to, że odebrany został nagłówek i bit startu. Stąd ustawiany jest teraz bit start_bit, zerowany licznik bitów bitcnt i zerowana zmienna byte. Dodatkowo blokowany jest licznik Tl sterujący wyświetlaczem i wszystkie bity portu Pl ustawiane są w stan wysoki, powodując wygaszenie wyświetlacza. Przy kolejnym zgłoszeniu przerwania również sprawdzany jest czas, który upłynął od ostatniego przyjęcia pTZeTwania. Jeżeli jest on większy niż 3 ms oznacza to błąd i procedura dekodowania rozkazów rozpoczyna się od początku. W przeciwnym przypadku, o ile nie odebrano jeszcze 32 bitów, wszystkie bity zmiennej byte przesuwane są o jedną pozycję w lewo i jeżeli wyżej wymieniony czas jest większy niż 1,5 ms - co oznacza że odebrany bit ma wartość 1 - ustawiany jest najmłodszy bit zmiennej byte. Następnie zwiększany jest
0 jeden licznik bitów. Jeżeli przy kolejnej obsłudze przerwania odebrano już 32 bity [bitcnt > 32) oznacza to wystąpienie bitu stopu i kompletne odebranie rozkazu. Ustawiana jest wówczas globalna flaga rdy sygnalizująca że zmienna byte zawiera kod odebranego rozkazu. Jeżeli z jakiegoś powodu transmisja zostanie przerwana (zakłócona) przed odebraniem 32 bitów, wówczas najpóźniej po 65,5 ms nastąpi przepełnienie licznika TO i wysłane zostanie żądanie przyjęcia przerwania od tego licznika. Funkcja obsługi tego przerwania {int_tO(J] zeruje bity start_bit
1 start_seq powodując, że przy kolejnym przerwaniu z odbiornika podczerwieni, procedura dekodowania rozkazów rozpocznie się od początku.
Wykorzystanie tak zdefiniowanych funkcji dekodowania rozkazów z odbiornika zdalnego sterowania w programie głównym (programie użytkownika) wymaga zade-
klarowania wymienionych wcześniej zmiennych na zewnątrz wszystkich funkcji i wygląda następująco:
if (rdy)
// zdekodowano rozkaz
{ rdy=0;
if(byte==0xel9e31ce) { // wciśnięto klawisz
// "1" w pilocie } else
if(byte==0xel9ebl4e) { // wciśnięto klawisz // "2" w pilocie
Lub też używając krótszych - 16 bitowych (dwu bajtowych) stałych, z użyciem wskaźników, tak jak w programie obsługi regulatora:
int *ptr;
//deklaracja wskaźnika
//do zmiennych typu int
ptr= ( int"*) Sibyte; //wskaźnik ptr zawiera //adres zmiennej byte if(rdy)
// zdekodowano rozkaz { rdy=0; if(*ptr++==0xel9e)
//stały kod
//dla danego pilota
{
if (*ptr==0x31ce) { // wciśnięto klawisz
// "1" w pilocie } else
if (*ptr= = 0xbl4e) { // wciśnięto klawisz
/ / "2" w pilocie
Ponieważ zmienna byte jest obiektem 32-bitowym typu long a wskaźnik ptr zgod-
WYKAZ ELEMENTÓW
Rezystory
R1...R8: Ó8Q
R9...R12: 12kQ
R13: 470Q
R14: 4,7kQ
R21: 18012
R22: l,2kQ
Kondensatory
Cl, C2: 33pF,
C3: ljif,
C4: 0,1 jif,
C5: lOO^F,
C21: 0,22^F
Półprzewodniki
Wyświetlacze 7-segmentowe
LED - 4szt,
Mikroprocesor AT89C4051,
Tranzystory BC807(SMD) -
4szt,
Termometr DS1820,
Scalony odbiornik
podczerwieni,
Optotriak TLP3041,
Triak BTA26
Różne
Rezonator kwarcowy
12MHz,
Zasilacz "wtyczkowy" 5V,
200mA,
Pilot zdalnego sterowania
nie z definicją może pokazywać na obiekty 16-bitowe typu int podczas przypisania adresu konieczna jest konwersja typów z long* do int*. W przypisaniu ptr=(int*)S'by-te zastosowano jawną konwersję typów z użyciem operatora rzutowania [int*). Dzięki takiemu zabiegowi wskaźnik ptr pokazuje na starszych 16 bitów zmiennej byte zaś ptr+1 na młodszych 16 bitów tej zmiennej. Fakt ten wykorzystano w prezentowanym programie. Zbigniew Hajduk
94
Elektronika Praktyczna 10/2003
PROJEKTY CZYTELNIKÓW
DzioS "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.
Pokojowy regulator temperatury
ze zdalnym sterowaniem, część 2
Pomysł budowy
urządzenia powstał, gdy ze
względu na niską
temperaturę panującą
w pokoju, autor zmuszony
był do korzystania
z dodatkowego ogrzewania
elektrycznego. Użytkowanie
typowego ogrzewacza
wnętrzowego (popularnej
"farelki"}, oprócz wysokich
kosztów zużytej energii
elektrycznej, miało poważną
wadę; każdorazowe
włączenie i wyłączenie
urządzenia wymagało
interwencji użytkownika.
A przecież jesteśmy tak
len iwi...
Projekt
113
Obsługa magistrali jedno przewodowej
Na list. 1 prs9dstawiono proc9dury as9mbl9row9 le-alisując9 fisycsną komunikację s ursąds9niarni dołączonymi do magistrali J9dno-prs9wodow9]. ICaśdorasow9 rospocsęci9 transmisji na magistrali J9dnoprs9wodow9J wymaga najpi9rw wysłania tsw. impulsu S9rując9go prs9s nadrzędny układ nadajnika ftutaj mikrokontro-ler). Jest to r9alisowan9 po-prs9s wymuss9ni9 prs9s pe-wi9n csas (480...960|_is) nis-ki9go poziomu na magistrali, następni9 swolni9ni9 magistrali fnormalni9 - gdy magistralą ni9 są transmitowan9 śadn9 dan9 - na magistrali występuJ9 posiom wysoki wymuszany r9systor9rn podciągającym), odcs9kani9 okr9Ślon9go csasu i spraw-ds9ni9 stanu magistrali. J9-żeli wówczas magistrala snajduJ9 się w stani9 niskim, osnacsa to ob9cność J9dn9go
lub kilku układów dołączonych do magistrali J9dnoprs9-wodow9J. W takim przypadku układy te, po upływi9 okr9Ś-Ion9go csasu, zwalniają magistralę J9dnoprs9wodową.
G9n9rowani9 impulsu ze-rując9go r9alisuJ9 b9spararn9t-rowa proc9dura DSResei. Na początku dodatkowo blokowa-ne są wssystki9 prz9rwania s wyjątki9m prs9rwania S9-wnętrsn9go - s odbiornika sdaln9go st9rowania, następ-ni9 S9rowany jest bit magistrali DSbii ftutaj P3.3) i wywoływana jest proc9dura Delay5us r9alisująca opóźni9-ni9 będąc9 wi9lokrotnością 5|j,s. Pod adr9S9m b9spośr9d-nim fsmi9nną) delay - para-m9tr9m proc9dury - umi9ss-csa się krotność t9go opóźni9-nia. Po wymuss9niu na magistrali poziomu niski9go proc9-dura odcs9kuJ9 ok. 600|j.s, po csym zwalnia magistralę (ustawia DSbii), cs9ka ok. 66|j.s i sprawdza stan magistrali, po csym odcs9kuJ9 J9sscs9 dodat-
kowo 300|_is i koń esy swoje dsiałani9. R9J9str R7 sa-wi9ra r9sultat wykonan9J op9racji. Jeśeli wystąpił impuls ob9cności układów dołącsonych do magistrali J9dnoprs9wo-dow9J, w tym r9J9strs9 snajduJ9 się 0. W prs9-ciwnym prsypadku wartość jest róśna od S9ra.
Proc9dura _DSTx r9alisuJ9 sapis 8 bitów danych do układu dołącson9go do magistrali J9dnoprs9-wodow9J. Dan9 do sapisu powinny snajdować się w r9-J9strs9 R7 proc9sora. Zapis kaśd9go bitu na magistrali J9dnoprs9wodow9J rospoesy-na się od wymuss9nia, prs9s układ nadrsędny, posiom u niski9go na magistrali trwają-C9go, sgodni9 S9 sp9cyfikacją, ni9 dłuŚ9J niś 15|_ls fproc9du-ra cs9ka ok. I3|j,s). Następni9 jeżeli sapisywanym bit9m jest "1" - magistrala jest swalnia-na fwystępuJ9 posiom wysoki wymussony r9systor9m podciągającym), jeżeli saś sapisywanym bit9m jest "0", wówczas układ podrsędny pod-trsymuJ9 stan niski na magistrali. Całkowita długość sscs9-liny csasow9J sapisu fod momentu wymuss9nia posiomu niski9go na magistrali) ni9 powinna prs9kracsać 120|j.s i po tym csasi9 magistrala powinna być swolniona. Csas prs9-rwy międsy nadawani9m ko-l9Jnych bitów ni9 moŚ9 być krótssy niś l|_is.
Proc9dura DSRx r9alisuJ9 odesyt 8 bitów danych s magistrali J9dnoprs9wodow9J.
Elektronika Praktyczna 11/2003
101
PROJEKTY CZYTELNIKÓW
List. 2. Procedury obsługi
magistrali
jednoprzewodowej
Delay5us:
nop
nop
nop
djn z delay, Delay5u
ret
DSRese
mov r5 ,IE
ani IE ,#129
clr DSbit
mov de lay,#119
Ica 11 Delay5us
setb DSbit
mov de lay,#12
Ica 11 Delay5us
mov r7 ,#0
jnb DSbit,nextl
mov r7 ,#1
nextl:
mov de lay,#60
Ica 11 Delay5us
mov IE ,r5
ret
_DSTx:
clr EA
mov r6 ,#8
mov a, r7
Loopl:
mov de lay,#l
clr DSbit
Ica 11 Delay5us
clr c
rrc a
jnc ne xt2
setb DSbit
next2 :
mov de lay,#14
Ica 11 Delay5us
setb DSbit
nop
djn z r6,Loopl
setbEA
ret
DSRX:
mov r6 ,#8
mov a, #0
clr EA
Loop2 :
mov de lay,#l
clr DSbit
Ica 11 Delay5us
setb DSbit
nop
nop
clr c
jnb DSbit, next3
setb c
next3 :
rrc a
mov de lay,#ll
Ica 11 Delay5us
djn z r6,Loop2
mov r7 ,a
setb EA
ret
_CRCupdat
mov a, r7
mov te mp, a
mov r6 ,#8
CRCLoo D :
xrl a, CRC
rrc a
mov a, CRC
jnc ZERO
xrl a, #18h
ZERO:
rrc a
mov CRC, a
mov a, temp
rr a
mov te mp, a
djn z r6,CRCLoop
Szczelina czasowa odczytu wygląda w sposób analogiczny jak to opisano w przypadku szczeliny czasowej zapisu. Odczyt poszczególnych bitów również rozpoczyna się od wymuszenia poziomu niskiego na magistrali przez czas nie dłuższy niż 15us, następnie magistrala jest zwalniana, procedura odczekuje kilka mikrosekund i próbkowany jest stan magistrali. Jeżeli w wyniku próbkowania odczytano poziom wysoki, oznacza to, że odczytanym bitem jest 1, w przeciwnym przypadku odczytany bit to 0. Odczytany bajt danych znajduje się w rejestrze R7.
Podczas działania obydwu procedur [_DSTx i DSRx) zabronione jest przyjmowanie jakichkolwiek przerwań (zerowana globalna flaga EA), które mogłyby spowodować zakłócenia w precyzyjnym odmierzaniu czasu, określanego przez liczbę cykli maszynowych niezbędnych do wykonania poszczególnych rozkazów.
Procedura CRCupdate realizuje obliczanie wartości wielomianu kontrolnego CRC zgodnie z równaniem: x8+x5+x4+l.
Aktualizowaną wartość wielomianu zawiera zmienna o nazwie CRC. Ośmiobitowa dana wejściowa, na podstawie której dokonuje się aktualizacja wartości wielomianu, znajduje się w rejestrze R7.
Wyżej wymienione procedury (pełny listing programu w asemblerze znajduje się w materiałach udostępnionych na www.ep.com.pl i płycie CD-EP11/2003B) zostały skompilowane asemble-rem A51 z pakietu KEIL i jako plik *.obj dołączone do listy plików wejściowych linke-ra L51.
Przekazywanie parametrów z poziomu języka C do procedur asemblerowych odbywa się poprzez rejestry mikroprocesora. Każda procedura asemblerowa odpowiada funkcji w języku C. Jeżeli pod-program asemblerowy wymaga jednego 8-bitowego parametru, wówczas kompilator KEIL wartość argumentu funkcji (zmiennej typu char) w języku C zapisze do rejestru R7 mikroprocesora. Przekazanie 8-bitowej wartości z programu w asemblerze do funkcji w języku C (wartość zwracana przez funkcję) również odbywa się za pośrednictwem rejestru R7.
Z poziomu języka C deklaracja funkcji realizujących wymienione wyżej operacje (definicja tych funkcji zawarta jest w kodzie asemblero-wym, jako wyżej wymienione procedury) wygląda następująco:
uchar DSReset(void);
void DSTx(uchar);
uchar DSRx(void);
void CRCupdate(uchar);
void ResetCRC(void);
uchar GetCRC(void);
przy czym typ uchar został
zdefiniowany następująco:
typedef unsigned char
uchar;
Dodatkowo w module asemblerowym zdefiniowano dwie procedury ResetCRC i GetCRC. Pierwsza z nich zeruje lokalną zmienną CRC przechowującą wartość wielomianu kontrolnego, a druga procedura umożliwia pobranie wartości tej zmiennej.
Odczyt temperatury z termometru DS1820
Na list. 3 przedstawiono kod źródłowy funkcji w języku C realizującej odczyt temperatury z jednego lub kilku termometrów DS1820 dołączonych do magistrali jednoprzewodowej z wykorzystaniem wcześniej zdefiniowanych procedur.
Funkcja ReadTempl) posiada dwa parametry. Pierwszy z nich [dev) to wskaźnik do tablicy zawierającej 8-bajtowy unikalny numer seryjny danego układu DS1820 wraz z wartością CRC dla tych 8 bajtów (istotne w przypadku dołączania do magistrali jednoprzewodowej więcej niż jednego termometru, jeśli do magistrali dołączony jest tylko jeden układ wówczas wystarczy ten argument zastąpić stałą NULL). Definicja tego parametru może wyglądać następująco: code char
devl[]={0xl0,0x3b,0xel, 0x3 8,0x00,0x0 0,0x0 0,0xad};
List. 3. Funkcja odczytu pamięci podręcznej układu DS1820
uchar ReadTemp (char *dev, char *buf) { char i;
if (DSReset(l) return 1;
// impuls zerujący, jeśli brak odpowiedzi koniec funcji
DSTx(0xcc) ;
// Polecenie "przeskocz ROM", czyli transmisja do wszystkich układów
// dołączonych do magistrali
//DSTx(0x55) ;
//for (i=0;i<8;i++)DSTx(dev[i]);
//jeżeli chcemy nadawać do konkretnego układu (nie do wszystkich)
//należy użyć powyższego kodu
DSTx (0x44) ;
// Polecenie "zmierz temperaturę"
i = 0; while (!DSRx())if (i+ + >10000) return 5; // oczekiwanie na zakończenie pomiaru
if (DSReset(l) return 1; // znów impuls zerujący
if (dev!=WULL) { DSTx(0x55) ;
for (i=0;i<8;i++) DSTx(dev[i]);
// Polecenie "dopasuj ROM", czyli kolejne polecenia będą
// akceptowane tylko przez ten układ, którego numer seryjny
//znajduje się w tablicy dev
else
DSTx(0xcc) ; // "przeskocz ROM" - jeśli jest tylko jeden układ
DSTx(0xBE) ;
//Polecenie "odczytaj pamięć podręczną"
ResetCRCO ;
// zerowanie lokalnej zmiennej CRC
{ buf [i]=DSRx() ; CRCupdate (buf [i]) ;
// Odczyt kolejno 8 bajtów pamięci podręcznej, zapis każdego bajtu // do bufora buf i aktualizacja CRC
buf [8]=DSRx() ;
// Dziewiąty transmitowany bajt to wartość CRC
if (DSReset(l) return 1;
// Koniec operacji odczytu pamięci podręcznej - impuls zerujący
if (GetCRCO ! = buf [8]) return 2;
return 0;
// Jeżeli wartość CRC obliczona i odczyta
//są zgodne funkcja zwraca 0
z układu DS1820
102
Elektronika Praktyczna 11/2003
PROJEKTY CZYTELNIKÓW
Ponieważ numer seryjny wraz z wartością CRC są to stale, więc można je umieścić w pamięci programu, oszczędzając pamięć danych. Stąd słowo kluczowe code.
Drugi parametr buf to wskaźnik do 9-bajtowej tablicy, do której zostaną skopiowane kolejne bajty pamięci podręcznej z układu DS1820 zawierające m.in. zmierzoną wartość temperatury. Funkcja zwraca 0 jeżeli pomiar i odczyt temperatury przebiegły pomyślnie i wartość różną od zera w przeciwnym przypadku.
Odczyt temperatury z dokładnością O,1C, zgodnie z dokumentacją, jest możliwy po zastosowaniu wzoru:
buf[l] - buf[6\
T=temp r-0.25 + -
buf\7]
gdzie buf jest tablicą zawierającą (jak wyżej) kopię zawartości pamięci podręcznej układu DS1820, zaś temp_r jest wartością buf[O], której wszystkie bity zostały przesu-
nięte o jeden w prawo. Funkcjonalnie odpowiada to dzieleniu całkowitemu:
temp_r = buf[0]/2
lub w języku C, z wykorzystaniem operatora przesunięcia bitowego: temp_r=buf[O]l. Implementacja powyższego równania pozornie wymaga zastosowania arytmetyki zmien-noprzecinkowej (np. zmiennych typu float), ponieważ jednak wystarczająca jest dokładność na poziomie jednego miejsca po przecinku - można wykorzystać zmienne całkowite z odpowiednim przesunięciem zakresu (dziesiąte części stają się jednostkami - czyli otrzymana wartość jest w efekcie 10-krotnie większa od wartości rzeczywistej). Taką właśnie ideę realizuje funkcja przedstawiona na list. 4.
Rzeczywistą wartość temperatury otrzymuje się przez podzielenie wartości zwracanej przez funkcję przez 10 (np. dla temperatury 21,3C funkcja zwróci wartość 213).
List. 4. Funkcja obliczajgca temperaturę z rozdzielczościg 0,1 C
i { t GetTemp(char *buf) int k, temp_r;
temp_r=buf[0]; temp_r>>=l; // przesuniecie wszystki ;h bitów o jeden w prawo
if (buf [1]&0x01) temp_r- = l // jeżeli temperatura uje
k=((buf [7]-buf [6] )*100) ; // licznik ułamka pomnożo iy przez 100
k/=buf[7]; // realizacja ułamka
k-=25; // odjęcie sta k/=10; // wystarczy d łej 0.25 pomnożonej przez 100 okładność 1 miejsce po przecinku
temp_r*=10; temp_r+=k; // temp_r zawiera wartość // od rzeczywistej temperatury 10-krotnie większą
) return temp_r;
Prezentowany układ pokojowego regulatora temperatury można łatwo wzbogacić o dodatkowe funkcje użytkowe. Na przykład poprzez niewielką modyfikację oprogramowania i dodanie drugiego termometru
DS1820 można uzyskać pomiar temperatury panującej na zewnątrz budynku. Można też dodatkowo wprowadzić funkcj ę kalkulacji kosztów zużytej energii elektrycznej. Zbigniew Hajduk
Elektronika Praktyczna 11/2003
103
BIBLIOTEKA EP
UełctronlM PraMyoznaj
W '"Bibiiotece EP" prezentujemy książki dotyczące zogodnień związonych z różnymi dziedzinomi techniki, jednak zawsze przydatne w pracy eiektronika iub pomocne w uprawianiu eiektronicznego hobby, Nasza opinia jest oczywiście subiektywna, aie wynika z wieioietniego 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 pubiikować recenzji książek ocenianych na jedną iub dwie "lutownice", Przyjęiiśmy szeroką skałę ocen, aby ułatwić Czyteinikom orientację w potencjainej przydatności książki,
Pubiikowane wEP recenzje książek można znaieżć winternecie pod adresem bibiioteka.ep.com.pi, Uwaga! Większość prezentowanych książek można zamówić w Dziaie Handiowym AVT (patrz str, 133), Chcemy w ten sposób udostępnić je Czyteinikom EP,
Janusz Narkiewicz, "GPS - Globalny System Pozycyjny", WKŁ 2003
tu złej woli autora, ale jakość niektórych rysunków i zdjęć zamieszczonych w książce nie jest najlepsza, a konwersja kolorowych bitmap na czar no-białe spowodowała pogorszenie ich czytelności i Wydawnictwo mogłoby zadbać o ich jakość.
No, poczepiałem się trochę, a teraz do rzeczy: książka jest ze wszechmiar godna polecenia, zawiera bowiem wiele informacji przydatnych osobom, które chcą poznać zasadę działania systemu GPS. Autor wiele miejsca poświęcił omówieniu zagadnień, z których istnienia użytkownicy systemy GPS nie zdają sobie sprawy, a są one niezwykle istotne dla działania systemu pozycjonowania i mogą mieć wpływ na jakość uzyskiwanych wyników, co ma ogromne znaczeni e zwłaszcza w przypadku zastosowań profesjonalnych. Przystępnie zostały przedstawione przyczyny powstawania błędów pozycjonowania i możliwości ich korygowania, sporo miejsca autor poświęcił także na wyjaśnienie sposobu kodowania sygnału emitowanego przez satelity i sposobów ekstrakcji z nich niezbędnych danych. Także rozdział poświęcony działaniu i budowie odbiorników GPS ucieszy swoją zawartością Czytelników, zwłaszcza tych, którym zależy na poznaniu systemu od środka - wszak odbiorniki GPS dotych-
Szczerze mówiąc, zaniepokoił mnie tytuł tej książki. Przecież Globalny System Pozycyjny to nie do końca jest to samo, co Globalny System Pozycjonowania (od ang. Global Posiiioning System), ale okazało się jednak, że chodzi o "ten" GPS. Drugi raz zaniepokoiłem się, gdy okazało się, że co najmniej kilka rysunków wzięto najprawdopodobniej bezpośrednio z Internetu (na przykład rysunek 3.la to kopia rysunku dostępnego pod adresem hiip ://www. colora do.edu /geogiaphy/ gaaft In o te s/gp s/gif/orbi is. gif, rysunek 3.1b to kopia rysunku dostępnego pod adresem hiip://www. colora-do.edu/geogTaphy/gciaft/notes/gps/gif/ oplanes.gif, a rysunek R3.1 jest ścisłym odpowiednikiem dostępnego pod adresem hiip://www. colora-do.edu/geography/gcraft/noies/gps/gif/ bit.gif, a w książce nie ma ani słowa na temat internetowych źródeł, z których korzystał autor (poza podaną stroną www.p. dana.com, która niestety nie istnieje). Nie zakładam
czas traktowaliśmy (także w EP) jak "czarne skrzynki", z całą pewnością działające, tylko nie wiadomo jak... Zaletą książki jest także zamieszczenie w niej informacji o systemach konkurencyjnych dla GPS (rosyjskim GLONASS i europejskim Galileo), a także przedstawienie historycznego podłoża powstania systemów nawigacji satelitarnej.
Andrzej Gawryluk
Aleksander Simon, Marcin WalczykT "Sieci komórkowe GSM/GPRS - usługi i bezpieczeństwo", XYLAB 2002
Telefony komórkowe stały się urządzeniami bardziej powszechnymi od pralek automatycznych, ale wiedza o działaniu systemów telefonii komórkowych nie jest zbyt powszechna. Wynika to głównie z niewielkiej liczby publikacji technicznych poświęconych
temu tematowi. Jakiś czas temu lukę na rynku wydawniczym wypełniły WKŁ fRyszard Zienkiewicz, "Telefony komórkowe systemów GSM i DCS"), ale jedna pozycja, skupiona zresztą na jednym z wielu aspektów GSM, to zdecydowanie zbyt mało, aby dostarczyć choćby podstawową wiedzę na temat tego systemu.
Prezentowana książka jest pierwszym wydanym w języku polskim znanym nam kompendium na temat cyfrowej telefonii GSM. Autorzy zawarli w niej praktycznie komplet wiadomości niezbędnych osobom pragnącym poz-
nać architekturę, budowę i zrozumieć zasadę działania sieci przesyłowej, reguły współpracy poszczególnych jej elementów ze sobą, a także zaznajomić się z dostępnymi w jej ramach usługami. Niebagatelną zaletą książki jest fakt, że jej autorzy omówili podstawy transmisji danych fCSD, HSCDS i GPRS) oraz protokół WAP w różnych odmianach. Znaczną część książki poświęcono zagadnieniom bezpieczeństwa danych przesyłanych w sieci GSM, która - o czym nie jest powszechnie wiadomo - nie jest wcale bezpiecznym medium komunikacyjnym.
Elektronika Praktyczna 11/2003
131
BIBLIOTEKA EP
Sieci e
iSM/CPRS
Usługi i bezpieczeństwo
Reasumując: doskonale (choć, ze względu na objętość książki, niezbyt głęboko) opracowany temat, piękne wydanie (całość na papierze kredowym, co znalazło - niestety - odbicie w cenie książki), a takśe wyraźna dbałość autorów o język.
Mikołaj Artdrus
Jerzy Krajewski, "Głośniki i zestawy głośnikowe -budowa, działanie, zastosowania", WKŁ 2003
Nareszcie coś dla fanów samodzielnej budowy zestawów głośnikowych. Takiej książki nie było na rynku od co najmniej 12 lat! Mośna ją trakto-
wać niemalże jak podręcznik, ponieważ autor prezentację zagadnień praktycznych rozpoczął od przedstawienia i wyjaśnienia zjawisk fizycznych związanych z propagacją dźwięku (w tym podstawy akustyki fizycznej i fizjologicznej oraz psy cho akustyki). Bardzo rzetelnie zostały przygotowane rozdziały związane z budową i parametrami głośników dynamicznych, pewien niedosyt pozostawia natomiast rozdział czwarty, w którym przedstawiono takśe inne rodzaje głośników. Osobne rozdziały poświęcono budowie pasywnych i aktywnych zwrotnic głośnikowych, obudów różnego typu, przedstawiono takśe metody pomiaru parametrów głośników i zestawów głośnikowych. Sporo miejsca autor poświęcił przybliżeniu reguł optymalnego ustawiania zestawów głośnikowych w pomieszczeniach, w zależności zastosowanego systemu nagłośnienia, omówił takśe - temat jest często lekceważony nawet przez audiofilów - wpływ akustyki pomieszczenia na jakość odtwarzanego dźwięku (nawet najlepsze zestawy mogą nie "zagrać" w pokoju
0 ścianach wykonanych z kamienia).
Książka, bez cienie wątpliwości, jest warta polecenia. Jedynym -moim zdaniem - jej mankamentem jest brak informacji o narzędziach programowych, za pomocą których mośna między innymi symulować działanie projektowanych obudów, wspomagać projektowanie pasywnych zwrotnic i aktywnych filtrów, a takśe poddawać przybliśonej analizie działanie zespołów głośnikowych z róśny-mi głośnikami.
Zasłuśone 4 lutownice!
Mikołaj Artdrus
Scott MuellerT "Rozbudowa
1 naprawa komputerów PC"T Helion 2003, książka zawiera CD-ROM
Legenda:
ICsiąśka doprawdy imponująca: zawiera blisko 1500 stron, na których autor wraz z zespołem redaktorów zebrał praktycznie wszystkie informacje, jaki mogą być przydatne mniej i bardziej zaangaśowanym w przeróbki swojego sprzętu uśytkownikom PC. Ta imponująca praca ma - z punktu widzenia elektronika - jedną wadę: praktycznie wszystkie prezentowane zagadnienia są traktowane powierzchownie, co powoduje, śe nie przyda się ona podczas projektowania urządzeń współpracujących z PC. Co więcej, ksiąśka wbrew zapowiedziom nie zwiera aktualnych informacji, co jest spowodowa-
książka wybitna, polecamy!
książka o dużych walorach praktycznych, polecamy!
może się przydać
daleka od doskonałości
nie warto kupować
ROZBUDOWA
i NAPRAWA
KOMPUTERÓW PC
ne najprawdopodobniej czasem trwania cyklu wydawniczego.
Przyznaję, miałem nie lada dylemat podczas oceniania ksiąśki. Wydaje się - wiekopomne dzieło, ale niestety nie-pozbawione istotnych wad. Oprócz niedociągnięć w treści ksiąśki, potencjalni Czytelnicy muszą wziąć pod uwagę jej stosunkowo wysoką cenę -159 złotych. Czy jest tego warta? Gdybym miał wybierać, to sięgnąłbym raczej po "Anatomię PC" Piotra Metzge-ra, której siódme wydanie ukaśe się (juś się ukazało?) w listopadzie 2003. Tomasz Ja strun
132
Elektronika Praktyczna 11/2003
Przekaźniki
uniwersalne
i styczniki mocy
Do produkcji przekaźników, wbrew ich prostej "na oko" budowie, zaangażowane są technologie, których zaawansowanie z niewielką tylko przesadą można porównać z technologiami wykorzystywanymi podczas produkcji półprzewodników. Dzieje się tak dlatego, że wy-
bL -LL toc sa dar am Y1 > ' '-1-
30 j T
n
i -L T
1
__.
h 0 Int Ś "*Ś
-, \
" śnie lam ' 1
1 .Obciął ERizu -oczmI "tnwank fł
as 0.3 ŚŚ--^~ Śi- ml DC ł 7 ma Obc W1 k -
0.1 zu -r - - -^
s ID 30 '- 100 600 IhOC
Ry^. 1. Krzywe obciqżenia etyków przekożników z rodziny
magania stawiane przekaźnikom przez współczesne aplikacje są coraz ostrzejsze, co zmusza producentów do zwiększania trwałości styków, zmniejszania ich rezystancji, a także poprawę parametrów łączeniowych podczas sterowania obciążeń indukcyjnych, które tradycyjnie sprawiają spore kłopoty. W ofercie firmy Omron znajduje się pięć grup przekaźników:
- uniwersalne (najczęściej wykorzystywane w aplikacjach przemysłowych), której reprezentatami są przekaźniki rodzin: MY, LY, G2A, G2RS oraz MK-I/S,
- przekaźniki w obudowach hermetycznych, przystosowanych do pracy w szczególnie trudnych warunkach otoczenia, np. G2A-4,
- przekaźniki dużej mocy, reprezentowane przez rodziny: G4F, G4B, G7L i G7J,
- przekaźniki bistabilne (przerzut-nikowe), przełączane za pomocą jednego lub dwóch uzwojeń (rodziny MYK, G2AK, MMK, MKK),
Omron jest jednym z największych na świecie producentów przekaźników
oraz styczników,
umożliwiających sterowanie
urządzeniami małej, średniej
i dużej mocy.
W artykule przedstawiamy
skrócony przegląd fragmentu
oferty przekaźników tej firmy,
który jest najbardziej
interesujący dla elektroników
i automatyków.
- bistabilne przekaźniki zapadkowe oraz bistabilne przekaźniki sekwencyjne (G4Q, G9B), których działanie przypomina (odpowiednio) przerzutniki RS i licznik Johnsona (sterowane obciążenia są włączane sekwencyjnie).
Styki przekaźników, w zależności od docelowej aplikacji, są pokrywane:
Ul IIKUII
Elektronika Praktyczna 11/2003
135
AUTOMATYKA
SPST
SPDT
|-m|
DPDT
Rys. 2. Najczęściej spotykane konfiguracje styków
- w przypadku wymaganej dużej odporności na korozję: stopem złota, platyny i srebra. Takie pokrycie stosuje się zazwyczaj w przekaźnikach niskoprądo-wych.
- w przypadku, gdy oprócz odporności na korozję, konieczna jest odporność na prądy o większym natężeniu: związkami srebra z palladem (AgPd).
- czystym srebrem, gdy wymagana jest mała rezystancja styku. Przekaźniki z takimi stykami zaleca się do pracy z wyższymi napięciami i prądami.
- związkami srebra z niklem (Ag-Ni), kiedy niezbędna jest odporność na łuki elektryczne, które powstają zazwyczaj podczas sterowania obciążeń indukcyjnych.
- stopem srebra, ołowiu i indu, gdy szczególnie duże znaczenie odporność na przetężenia o dużej wartości.
- związkami wolframu i srebra, szczególnie w przekaźnikach pracujących w ekstremalnych warunkach termicznych i otoczeniu brudnym chemicznie, sterujących obciążenia o charakterze indukcyjnym.
Warto tu zwrócić uwagę na fakt, że zazwyczaj obciążalność styków podawana przez producenta dotyczy ściśle określonych warunków i podczas dobierania ich do aplikacji należy kierować się tzw. krzywą obciążenia, inną dla każdego typu przekaźnika. Przy-
kład rodziny takich krzywych dla różnych warunków obciążenia pokazano na rys. 1.
Zespoły styków mogą mieć różną konfigurację i liczbę styków. Najczęściej spotykane konfiguracje pokazano na rys. 2.
Większość typów przekaźników oferowanych przez firmę Omron można zamówić w wersjach dostosowanych do wymagań aplikacji, dotyczy to zarówno styków i ich pokrycia, jak i strony "wejściowej", czyli cewki.
Cewki przekaźników są standardowo przystosowane do zasilania napięciem:
- zmiennym o wartości 6 V, 12 V, 24 V, 48 V, 50 V, 100...120 V, a także 200...240 V (przy częstotliwości napięcia zasilającego 50 lub 60 Hz),
- stałym o wartości: 6 V, 12 V, 24 V, 48 V, 100...120 V, a także 200...240 V.
Ponieważ w wyniku impulsowego sterowania cewek przekaźników w ich uzwojeniach indukują się napięcia o wartości mogącej uszkodzić elementy sterujące, producent wyposaża niektóre z produkowanych modeli w wewnętrzne obwody zmniejszające amplitudę przepięcia (obwody gasikowe RC) lub wręcz likwidujące szkodliwe impulsy (diody prostownicze lub zestawy: dioda prostownicza + dioda Zenera).
Nowością wprowadzoną do nowych rodzin przekaźników firmy Omron są przyciski testowe (w różnych kolorach, w zależności od typu przekaźnika), za pomocą których można ręcznie sterować styki przekaźnika oraz LED-owe wskaźniki ich zadziałania. Producent rozwija także przekaźnikowe "zaplecze", oferując szeroką gamę różnorodnych podstawek pod
Fot. 3. Jeden z typów podstawek z automatycznymi zaciskami produkowanych przez firmę Omron
przekaźniki, za pomocą których można je montować na płytkach drukowanych, szynach DIN, chas-sis urządzenia, wybierając przy tym różnorodne możliwości ich dołączania (za pomocą zacisków śrubowych, samo zaciskających się (fot. 3), połączeń lutowanych, owijanych itp.).
Prowadzone nieustannie prace rozwojowe i udoskonalanie konstrukcji przekaźników zaowocowały poprawą dość ważnego współcześnie parametru: niezawodności pracy. Ma to o tyle duże znaczenie, że całkiem niedawno przekaźniki elektromechaniczne uważane były za jedno z najsłabszych ogniw urządzeń. Omron gwarantuje poprawną pracę swoich przekaźników (trwałość styków) przez co najmniej 278 godzin w morderczym i rzadko spotykanym w praktyce cyklu 1800 przełączeń na godzinę (0,5 Hz) z dołączonym maksymalnym dopuszczalnym obciążeniem. Żywotność mechaniczna przekaźników jest większa, bo wynosi aż 100000000 (sto milionów) cykli w teście 18000 przełączeń na godzinę (przełączanie z częstotliwości 5 Hz), co daje 5555 godzin katorżniczej pracy. Czyli konstruktorzy nadal mają nad czym pracować. Andrzej Gawry luk, AVT
Dodatkowe informacje
Artykuł powslat na podslawie rnaleriatów udostępnionych przez firmę Omron, tel. (22) 645-78-60, www.omron.com.pl.
136
Elektronika Praktyczna 11/2003
PODZESPOŁY
Moduły bezpieczeństwa firmy Schleicher
Berlińska firma Schleicher Relais Werke zostaia utworzona przez inżyniera Otto Schleichera w 1937 roku. Początkowo zakład zajmował się produkcją przełączników automatycznych, natomiast pierwsze przemysfowe urządzenia elektroniczne produkowaf od lat '50. Zaostrzenie norm dotyczących bezpieczeństwa wiatach '90 otworzyfo przed firmą Schleicher możliwość rozwoju w nowym kierunku - w systemach bezpieczeństwa. Już wiatach '80 specjaliści Schleichera stworzyli szereg rozwiązań dotyczących bezpieczeństwa maszyn, a także stali się wspóftwórcami aktualnych norm.
Zgodnie z wytycznymi UE, od dnia 1 stycznia 1995 wymaga się, aby wszystkie maszyny kierowane na rynek wspólnoty byty oznakowane znakiem CE, natomiast wedtug Rozporządzenia Ministra Gospodarki, Pracy i Polityki Społecznej z 10 kwietnia 2003 roku (Dz.U. Nr 91. poz. 857 i 858) obowiązek znakowania wyrobów znakiem CE obowiązuje w kraju z chwilą wejścia Polski do UE.
Jednostki kontrolne krajów członkowskich UE mają obowiązek sprawdzać dotrzymania postulatów dotyczących bezpieczeństwa i ochrony zdrowia zgodnie z zaleceniami Dyrektywy Maszynowej. Każda maszyna, która ma być wprowadzona do pracy w UE podlega jej wytycznym. Jeśli wytyczne są spełnione, to można taką maszynę oznaczyć znakiem CE, o co producent musi zadbać we własnym zakresie i na własną odpowiedzialność.
S1
F1 P1

P2
S2
F2 P1

P2
S - Stopień urazu
S 1 Lekkie zranienie (zwykle prze|śclowe),
S 2 Ciężkie zranienie (zwykle trwałe), włącznie ze śmiercią
F - Częstotliwość l/lub okres powstania ryzyka
F 1 Rzadkie do częstego i/lub krótkotrwałe F 2 Częste do trwałego i /lub długookresowe
P - Możliwość uniknięcia ryzyka
P 1 Możliwe przy spełnieniu określonych warunków P 2 Trudne lub niemożliwe do spełnienia
Wyboru odpowiedniej kategorii:
B, 1 4 Kategorie odnoszące się do części bezpieczeństwa całego systemu
0 Optymalna kategoria dla podanych punktów
Kategoria dopuszczalna, wymagająca dodatkowych działań
O Kategoria przewymiarowana w stosunku do stopnia ryzyka
Rys. 1. Graf oceny ryzyka
Producent, który nie spełni tych wymagań wystawia się na ryzyko wysokich kar oraz obowiązek wycofania produktów z rynku na własny koszt.
Wobec akcesji Polski do struktur Unii Europejskiej, polscy producenci maszyn i urządzeń mogą a nawet powinni już teraz zadbać o spełnienie odpowiednich norm i uzyskania prawa do nanoszenia znaku CE.
Tab. 1. Wymagania stawiane urządzeniom kwalifikowanym do poszczególnych kategorii bezpieczeństwa
Kategoria Podstawowe wymagania Zachowanie się systemu Zasady osiągnięcia bezpieczeństwa
B Elementy sterujące lub/i ochronne systemu związane z bezpieczeństwem jak również ich elementy składowe muszą być zaprojektowane, skonstruowane, dobrane, połączone zgodnie z obowiązującymi standardami, tak by byty odporne na spodziewane działania zewnętrzne. W przypadku wystąpienia błędu istnieje prawdopodobieństwo utraty funkcji bezpieczeństwa. Głównie scharakteryzowane przez dobór komponentów
1 2 Wymagania klasy B muszą być spełnione. Dodatkowo istnieje konieczność stosowania wypróbowanych komponentów i zasad bezpieczeństwa. Jak w kategorii B, z większym marginesem niezawodności funkcji bezpieczeństwa
Wymagania klasy B muszą być spełnione. Dodatkowo istnieje konieczność stosowania wypróbowanych komponentów i zasad bezpieczeństwa. System sterujący musi kontrolować funkcje bezpieczeństwa w odpowiednich interwatach czasowych. W przypadku wystąpienia usterki miedzy kontrolami, może dojść do utraty funkcji bezpieczeństwa. Głównie scharakteryzowane przez strukturę systemu
3 Wymagania klasy B muszą być spełnione. Dodatkowo istnieje konieczność stosowania wypróbowanych komponentów i zasad bezpieczeństwa. Pojedyncza usterka nie może prowadzić do utraty funkcji bezpieczeństwaJeśli to możliwe, pojedyncza usterka powinna być wykrywana. W przypadku wystąpienia usterki funkcja bezpieczeństwa jest realizowana. W przypadku wystąpienia większej ilości usterek może dojść do utraty funkcji bezpieczeństwa. Niektóre usterki są wykrywane.
4 Wymagania klasy B muszą być spełnione. Dodatkowo istnieje konieczność stosowania wypróbowanych komponentów i zasad bezpieczeństwa. Części odpowiedzialne za bezpieczeństwo muszą być zaprojektowane w następujący sposób: - pojedyncza usterka nie może prowadzić do utraty funkcji bezpieczeństwa, - pojedyncza usterka powinna być wykrywana przed lub podczas kontroli funkcji bezpieczeństwa, lub jeśli to niemożliwe, nagromadzenie się usterek nie może prowadzić do utraty funkcji bezpieczeństwa. W razie powstania jednej lub więcej usterek, funkcja bezpieczeństwa będzie zachowana. Usterki muszą być wykrywane w takim czasie aby nie nastąpiła utrata funkcji bezpieczeństwa.
138
Elektronika Praktyczna 11/2003
PODZESPOŁY
Tab. 2. Kategorie zatrzymania określone w normie PN-EN 60204-1
Kategoria stopu Funkcja ,
0 Zatrzymanie przez natychmiastowe odłączenie dopływu energii do napędów urządzenia (zatrzymanie niekontrolowane)
1 Sterowane doprowadzenie do stanu spoczynku, przy czym doprowadzenie energii zostanie odłączone dopiero w stanie spoczynku
2 Sterowane doprowadzenie do stanu spoczynku, przy którym utrzymywany jest doptyw energii do napędów
Tab. 3. Seria ekonomiczna 5000 (obudowa o szerokości 22,5mm)
Typ Opis
SN0 5001K stop awaryjny, monitorowanie drzwi bezpieczeństwa (1 styki 1 alarm)
SNO 5001.1K Jak SNO 5001K, bez blokady włączenia i restartu oraz monitorowania przycisku reset
SNO 5002K Stop awaryjny, monitorowanie drzwi bezpieczeństwa (2 styki)
SNO 5002.1K Jak SNO 5002K, bez blokady włączenia i restartu oraz monitorowania przycisku reset
SNZ5052K Sterowanie dwuręczne i monitorowanie drzwi bezpieczeństwa
Obowiązkiem producenta maszyny jest
eliminować lub minimalizować niebezpieczeństwo urazu we wszystkicń tazacń pracy i przez cały czas pracy maszyny, uwzględnić wytyczne zawarte wnormacń przy projektowaniu i konstrukcji nowycń maszyn,
Fot. 2. Wersja ,,-A" zodłqczanymi zaciskami
- w przypadku występowania ryzyka uczynić kroki zwiększające ocńronę, poprawić konstrukcję mecńaniczną maszyny i wyposażyć system sterujący w zaaprobowane przekaźniki bezpieczeństwa Z odpowiednich norm wynika konieczność użycia dla maszyn kategorii od 2 do 4 w obwodach natychmiastowego zatrzymania maszyny,
- informowanie instytucji certyfikującej o zmianach w konstrukcji maszyny, które mają wpływ na bezpieczeństwo,
- intormować użytkownika o możliwym ryzyku użytkowania,
- razem z maszyną dostarczać wyposażenie i urządzenia zapewniające bezpieczeństwo,
- dostarczyć deklarację zgodności ze znakiem CE
Tab. 4. Przekaźniki ilo "stopu awaryjnego" i aplikacji drzwi bezpieczeństwa
Typ slop awaryjny drzwi bezp. slop awaryjny 1-kanał owy slop awaryjny 2-ka-nalowy detekojt zwarcia popizecz-nego wyjście tranzystorowe opóźnienie startu opóźnienie wyłączenia monitorowanie przyciski RESET monitorowanie jednoczesne obwód sprzeże-niamoni-torcwania slyki bezpieczeństwa slyki kortroL ne slyki chwilowe wyjście półprzewodnikowe szerokość obudowy
SNO 1002 X X X X X X 3 1 1 90
SNO 1004 X X X X X X 3 1 1 90
SNO 1005 X X X X X 3 1 90
SNO2001-KK X X X X X X 2 45
SNO2002-KK X X X X X X X 3 1 1 90
SNO2003-KK X X X X X 2 45
SNO 2004-17 X X X X 2 22,5
SNO2005 X X X X X X X X 3 1 45
SNO 2012 X X X X X X 6 4 90
SNV 2020-17 X X X X X X X 4 1 90
SNO4003K X X X X X 3 1 22,5
SNO 4003K-A X X X X X 3 1 22,5
SNO4062K X X X X X X X X X 2 1 22,5
SNO4062K-A X X X X X X X X X 2 1 22,5
SNV4063KL X X X X X X X X X X 3 22,5
SNV4063KL-A X X X X X X X X X X 3 22,5
SNV4063KP X X X X X X X X X X 3 1 22,5
SNV4063KP-A X X X X X X X X X X 3 1 22,5
Tab. 4 - cd. - przekaźniki do barier optycznych, aplikacji sterowania dwuręcznego i listew stykowych
Typ Kontrola sianu bariery optycznej Kontrola dwuręczna Lisi wy slykowe 1-kanałowy Slop awaryjny 2-kanaiowy Slop awaryjny D elekcja zwarcia poprzecznego Wyjście półprzewodnikowe Monitorowanie przycisku RESET Monitorowanie jednoczesne Obwód sprzężenia monitorowania Slyki bezpieczeństwa Slyki kontrolne Slyki chwilowe Szerokość obudowy
SNL4062K X X X X X X X 2 1 22,5
SNO2005-KK X X X X X X X X 3 1 1 45
SNO4062KM X X X X X X X X 2 1 22,5
SNO 4062 KM-A X X X X X X X X 2 1 22,5
SNZ4052K X X X X X 2 1 22,5
SNZ4052K-A X X X X X 2 1 22,5
140
Elektronika Praktyczna 11/2003
PODZESPOŁY
#*
tf
Fot. 3. Przekaźniki bezpieczeństwa serii 5000
Kategoria bezpieczeństwa
Kategoria bezpieczeństwa maszyny charakteryzuj poziom ryzyka, który musi być uwzględniony przy konstrukcji maszyny, jej obwodów sterujących i obwodów bezpieczeństwa Obejmuje również wymagane zachowanie części systemu sterującego odpowiedzialnej za bezpieczeństwo z uwzględnieniem jego wytrzymałości na awarie Szczegółowo problematyka Ta jest zawarta w normach PN-EN 292-1 , PN-EN 954-1 i PN-EN 1050 Wtab. 1 podajemy opis wytycznych dla poszczególnych kategorii
Wzależności od analizy ryzyka urazu i zastosowanych zabezpieczających elementach maszyny (pokrywy zabezpieczające, konstrukcja i ergonomia maszyny, inne elementy zabezpieczające), konstruktor maszyny i systemu sterującego powinien określić wymaganą kategorię bezpieczeństwa i według niej zaprojektować obwody natychmiastowego zatrzymania i wyłączenia maszyny Z zamieszczonej wytycznych na obwody bezpieczeństwa wynika konieczność stosowania modułów bezpieczeństwa od kategorii bezpieczeństwa 2 i wyższej
Przy określaniu kategorii należy uwzględnić sytuację przy usunięciu możliwych do usunięcia pokryw, drzwiczek itp , Także, gdy ich położenie jest kontrolowane za pomocą łączników krańcowych W ocenie ryzyka (oprócz szczegółowych norm) pomóc może grat oceny ryzyka (rys. 1)
Funkcje wyłączające według PN-EN 60204-1
Sposób natychmiastowego wyłączenia maszyny zależy od konstrukcji i charakteru maszyny, momentu bezwładności części ruchomych i miary ryzyka zranienia obsługi i uszkodzenia maszyny przy próbie natychmiastowego zatrzymania maszyny Norma PN-EN 60204-1 określa Trzy kaTegone zaTrzymania (paTrz tab. 2)
Każda maszyna powinna być wyposażona w sTop kategorii 0, awyższy stopień należy przewidzieć, jeśli wymagania bezpieczeństwa lub konstrukcji maszyny Tego wymagają, Tj gdy niebezpieczeńs-Two przy naTychmiasTowym odłączeniu energii byłoby większe niż przy konTrolowanym zaTrzymaniu STop kategorii 0 11 powinny być działać niezależnie od stanu pracy maszyny, a stop kategorii 0 mieć zawsze pierwszeństwo Wszystkie tunkcje stopu powinny mieć również pierwszeństwo od funkcji startu Dodatkowo należy uwzględnić takt, że maszyna wyposażona w moduł bezpieczeństwa kategorii 41 kategorią stopu 1, może być zaliczana co najwyżej do kategorii 3
Przekaźniki bezpieczeństwa firmy Schleicher
Jak wspomniano wcześniej, w obwodach awaryjnego wyłączenia dla kategorii 2, 3 i 4 należy stosować moduły (przekaźniki) bezpieczeństwa Bezpieczeństwo odpowiada specjalna konstrukcja przekaźnika, która zapewnia spełnienie odpowiedniej kategorii nawet w przypadku detektu własnego układu stykowego (np zgrzanie lub ułamanie zestyków), Toteż należy pamięTać, że nie można spełnić wymagań normy za pomocą zwykłych przekaźników lub zwykłego programu sTerującego maszyny
Szeroki asorTyrnenT przekaźników bezpieczeńsTwa produkuje niemiecka tirma Schleicher, kTóra zajmuje się sysTernarni bezpieczeńsTwa już od lat osiemdziesiątych Tak długie doświadczenie pozwala na zaoterowanie klientom szerokiego spektrum produktów o dobrych parametrach W otercie znajdują się nadal przekaźniki w obudowach o szerokości 90 i 45 mm oraz nowe konstrukcje serii 4000 i 5000
Wspomniane serie 4000 i 5000 są przekaźnikami w nowych, niepalnych obudowach o szerokości 22,5 mm, wykonanych z po-hwęglanu o wysokiej udarności i stałości kształtów do Temperatury 1 20C Nadruki opisujące wyprowadzenia elekTryczne są wykonane Techniką laserową, co zwiększa wy Trzy małość na ścieranie i zabrudzenie FronT obudowy jesT wykonany w kolorze żółtym, pozwalającym bezbłędnie odróżnić przekaźniki obwodów bezpieczeńsTwa od np przekaźników czasowych Ponieważ wwielu przypadkach należy zapewnić ochronę maszyn pracujących w bardzo osTrych warunkach klimaTycznych, przekaźniki nowych serii mogą pracować w TemperaTurach od -55 do +60C Tam gdzie To poTrzebne można również zasTosować przekaźniki z opcją "-A" (fot. 2) Przekaźniki Te wyposażono w konekTory przysTo-sowane do szybkiej wymiany uszkodzonego elemenTu (bez dodatkowych narzędzi) Wtyki są kodowane mechanicznie co zapobiega omyłkowemu podłączeniu końcówek
Przekaźniki, wzależności od wersji i aplikacji nadają się do monitorowania drzwi bezpieczeństwa, barier optycznych, listew kontaktowych, stopu awaryjnego, obwodów sterowania dwuręcznego i są wykonane dla kategorii bezpieczeństwa 4 lub 3 (według PN-EN 954-1) i kategorii stopu 0 lub 1 (według PN-EN 60204-1)
Seria 5000 (fot. 3) z założenia ma być serią "ekonomiczną" Obniżenie ceny uzyskano m in dzięki ograniczeniu liczby urządzeń (Tylko 5 modeli, kaTegona bezpieczeńsTwa 4, kaTegona sTo-pu 0) i zasTosowaniu Tej samej obudowy co w przekaźnikach czasowych serii NGG Mogą one pełnić tunkcje sTop awaryjny, rnom-Torowanie drzwi, barier opTycznych i lisTew sTykowych oraz obwodów sTerowania dwuręcznego ZaleTą urządzeń Tej serii jesT duży wybór napięć zasilających 12VDC, 24 VDC, 24 VAC, 115 120 VAC i 230 VAC, a obwody zasilania są odizolowane podwójną izolacją od obwodów konTrolnych i sygnałowych (zgodnie z zaleceniami normy EN 50178), czego brak w przekaźnikach innych serii
PodsTawowe własności przekaźników bezpieczeńsTwa zebrano w tab. 3 i 4 W przypadkach gdy liczba par sTyków jesT niewysTar-czająca, można ją zwiększyć za pomocą modułów rozszerzających wyszczególnionych w Tab 5 Tomasz Śliwakowski, Amtek spol. s r.o.
Więcej informacji o produktach Schieicher: http.-ffwww schiei-cher-de corn
Dystrybutorem firmy Schieicher jest Amtek spoi sro.tei (22) 42391 18, amtek@amtek pi, wwwamtekpl
Tab. 5. Moduły rozszerzające
Typ 1-kanał owy Stop awaryjny 2-kanał owy Stop awaryjny Opóźnione wyłączenie Stop Styki bezpieczeństwa Styki kontrolne Styki sprzężenia Szerokość obudowy
SNE 4003 X X 3 2 22,5
SNE4004K X X 4 2 1 22,5
SNE 4004KV X X X 4 1 22,5
SN0 3004-KK X X 3 1 45
Elektronika Praktyczna 11/2003
141
PROJEKTY
semi-MatrixOrbital LCD do PC,
AVT-552
PROJEKT Z OKŁADKI
Moda na fantazyjną
stylizację PC-ta szybko dotarła
do naszego kraju, w związku
z czym ogromnym
powodzeniem cieszą się
wszelkie gadżety, które mogą
spowodować, że nasz
komputer staje się trendy.
W ańykule przedstawiamy
projekt układu, który chociaż
jest "gadżeciarski", to
zwiększa możliwości nadzoru
pracy PC przez użytkownika.
Rekomendacje: polecamy
wszystkim użytkownikom PC,
którzy pragną poprawić
komfoń jego użytkowania,
zwiększyć funkcjonalność
i uatrakcyjnić wygląd.
Jedną z możliwości prezentowanego układu jest monitorowanie parametrów pracy komputera, jak np. wartości napięć zasilających, temperatury i obciążenia procesora, ilość wolnego miejsca na dysku itp. Za wyświetlanie wszelkich informacji jest odpowiedzialny inteligentny sterownik wyświetlacza LCD, który komunikuje się z komputerem przez interfejs RS232. Ponieważ w module zaimplementowano rozkazy typowe dla wyświetlaczy typu Matrix Orbital (choć nie wszystkie) możliwa jest współpraca modułu z wieloma programami zarządzającymi wyświetlaniem, jak na przykład rewelacyjnym Smarnie czy Girderem. Programy te umożliwiają współpracę z różnymi innymi aplikacjami. Mogą odczytywać i wyświetlać na LCD dane z Winampa, liczbę przychodzących listów e-mail itp. Możliwości tych programów są ogromne i nie sposób ich wszystkich wymienić. W dalszej części artykułu skupię się na pobieżnym przedstawieniu p ro gr amu Sm arni e.
Moduł sterownika LCD umożliwia sterowanie do 5-ciu urządzeń zewnętrznych, które mogą reagować na określone przez użytkownika, a monitorowane przez układ parametry i ich wartości. Przykładowo, można tak zmodyfikować program sterownika, że jeżeli np. temperatura procesora
przekroczy ustaloną wartość, włączy się brzęczyk lub inne urządzenie dołączone do wyjść uniwersalnych. Możliwości konfiguracji wyjść są co najmniej tak duże, jak liczba możliwych do wyświetlenia na LCD różnych parametrów. Moduł wyposażono w 6 przycisków, za pomocą których można sterować aplikacjami, jak np. Winampem. Ponieważ w niektórych aplikacjach 6 przycisków może nie wystarczyć do realizacji wszystkich funkcji, moduł umożliwia odbieranie kodów pilota pracującego w standardzie RC5. Możliwość współpracy z pilotem podczerwieni znacznie podnosi walory użytkowe modułu LCD-PC.
Dużą zaletą modułu sterownika jest możliwość współpracy z różnymi wyświetlaczami LCD. W zależności od zastosowanego wyświetlacza LCD, prędkości komunikacji oraz adresu pilota, sterownik LCD-PC posiada proste menu konfiguracyjne tych parametrów, do którego można wejść z poziomu dowolnego terminala. Wybierane parametry modułu są zapamiętywane w wewnętrznej pamięci EEPROM.
LCD-PC może być zamontowany na zewnątrz obudowy komputera lub w jego wnętrzu (np. w miejscu na napęd 5,25 cali).
Co prawda można łatwo dołączyć LCD po portu równoległego
14
Elektronika Praktyczna 11/2003
fsemi-MatrixOrbital LCD do PC
W1 16x2
Z1 CON3
FtxD GND TxD
Rys. 1. Schemat elektryczny układu
komputera, ale takie rozwiązanie nie udostępni użytkownikowi takich możliwości jakie daje prezentowany sterownik. Po zastosowaniu dodatkowego konwertera USB<->RS232, jest możliwe dołączenie modułu sterownika do portu USB.
Opis działania układu
Schemat elektryczny układu pokazano na rys. 1. Zastosowano w nim mikrokontroler ATmega8. Tranzystor T3, sterowany przebiegiem PWM z wyjścia OClA, reguluje jasność podświetlenia wyświetlacza LCD. Regulacja jasności podświetlacza przebiegiem PWM jest jednym z najprostszych. Rezystor R5 ogranicza prąd płynący przez diody podświetlacza. Potencjometr montażowy Pl umożliwia regulację kontrastu LCD. Klawiatura złożona z przycisków S1...S6 jest dołączona bezpośrednio do wejść mikrokontro-lera. Wyjście odbiornika podczerwieni U 2 dołączono do wejścia
wyzwalającego przerwanie INTO. Elementy R4 oraz Cl filtrują napięcie zasilające odbiornik podczerwieni, który odbiera sygnały z falą nośną 36 kHz. Elementy Tl, T2, Rl, R2 i R3 tworzą najprostszy konwerter poziomów napięć dla interfejsu RS232. Pozostałe linie portów mikrokontrolera są poprzez rezystory R7...R11 dołączone do baz tranzystorów T4...T8. Tranzystory te sterują zewnętrznymi obciążeniami, którymi mogą być diody świecące, buzzery, przekaźniki lub optotria-ki wykorzystywane do załączania urządzeń dużej mocy. Przy dołączaniu elementów wykonawczych do Z2 należy pamiętać, że będą one załączane dodatnim napięciem zasilającym. Moduł sterownika LCD-PC jest zasilany poprzez złącze Z3. Napięcie zasilania 5 V jest stabilizowane przez U3. Jak widać na schemacie elektrycznym, w sterowniku wykorzystano wszystkie porty układu Ul (dotyczy to także linii zerującej mik-
rokontroler). Program sterujący pracą mikrokontrolera napisano w języku BASCOM-AVR.
Obsługa wyświetlacza
Wysłanie jakiegokolwiek znaku przez port RS232 do wyświetlacza powoduje jego natychmiastowe
Parametry modułu sterownika LCD-PC (RS232)
Ś łatwa komunikacja przez RS232,
Ś prędkość transmisji 4800, 9600 oraz 19200 bodów,
Ś obsługiwane wyświetlacze LCD: 2*16, 4*16, 2*20 oraz 4*20 z kontrolerem HD44780,
Ś zapis w pamięci EEPROM adresu pilota RC5, wybranego typu wyświetlacza LCD oraz prędkości transmisji,
Ś łatwe określanie parametrów poprzez dowolny terminal oraz proste menu (łączenie z terminalem odbywa się
z prędkością 9600 bodów),
Ś wbudowanych sześć lokalnych przycisków,
Ś współpraca z wieloma dostępnymi programami jak: Smarnie, Girder itp.
Ś sterowanie do pięciu zewnętrznych układów wykonawczych (przekaźniki, triaki itp.),
Ś możliwość utworzenia do ośmiu własnych znaków.
Elektronika Praktyczna 11/2003
15
semi-MatrixOrbital LCD do PC
wyświetlenie. Dostępne są znaki własne z zakresu 0 do 7 oraz znaki już zaimplementowane w wyświetlaczu z zakresu od 32 do 126 kodu ASCII. Tak więc wysłanie słów kodu 69, 80 spowoduje wyświetlenie napisu "EP". Moduł sterownika akceptuje ponadto wiele instrukcji sterujących, które są poprzedzone słowem sterującym kodu o wartości 254. Akceptowane instrukcje przedstawiono w tab. 1. Przykładowo, gdy chcemy wyczyścić wyświetlacz należy wysłać przez RS232 słowa kodu: 254, 88. Natomiast gdy chcemy ustawić kursor w drugim wierszu oraz w 5 kolumnie należy wysłać: 254, 71, 5, 2. Instrukcja "Sprawdź czy naciśnięty był przycisk" jest dostępna tylko wówczas gdy wyłączono natychmiastową transmisję kodu naciśniętego przycisku. Instrukcja ta odczytuje znaki naciśniętych przycisków z bufora mik-rokontrolera oraz wysyła je przez RS232. Jeżeli bufor jest pusty, jest wysyłana wartość zero. Gdy bufor zawiera więcej kodów naciśniętego przycisku niż jeden, to najstarszy bit kodu znaku naciśniętego przycisku zostaje ustawiony, co świadczy o istnieniu jeszcze nie odczytanych znaków przycisków w buforze. Podczas włączonej opcji "natychmiastowej transmisji kodu naciśniętego przycisku", naciśnięcie przycisku powoduje, że jego kod jest natychmiast wysyłany przez RS232 do sterownika. Przyciski S1...S6 mają przypisane kody znaków od A...F, natomiast pozostałe znaki zostały przypisane przyciskom pilota podczerwieni. Rozwiązanie takie jest bardzo elastyczne i uniezależnia przyciski w module wyświetlacza od przycisków pilota podczerwieni.
Wyświetlacze Matrix Orbital umożliwiają programową regulację kontrastu LCD, ale ja uznałem, że bardziej funkcjonalna jest regulacja jasności podświetlenia. Dlatego też instrukcja regulacji kontrastu steruje w module sterownika LCD-PC jasnością podświetlenia, a kontrast jest ustawiany ręcznie potencjometrem Pl.
Instrukcja "Włącz podświetlenie" umożliwia włączenie podświetlenia na czas określony w minutach, przy czym przy wartości minut 0, podświetlenie jest włączane na stałe.
Tab. 1. Instrukcje sterujące pracą wyświetlacza
Instrukcja Składnia Opis
Ustaw kursor na zadanej pozycji <1>FE 47 [koi] [wier] <2>254 71 [koi] [wier] <3>254 'G' [koi] [wier] Ustawia kursor na pozycji zadanej wartościami [koi] (kolumna) oraz [wier] (wiersz).
Ustaw kursor na początek FE 48 254 72 254 'H' Ustawia kursor na początku wyświetlacza.
Wtącz kursor FE 4A 254 74 254 'J' Wyświetla kursor.
Wytącz kursor (D) FE 4B 254 75 254 'K' Gasi kursor.
Wtącz migający kursor FE 53 254 83 254 'S' Wyświetla migający kursor.
Wytącz migający kursor (D) FE 54 254 84 254 T Wygasza migający kursor.
Przesuń kursor w lewo FE 4C 254 76 254 I1 Przesuwa kursor o jedną pozycję w lewo.
Przesuń kursor w prawo FE 4D 254 77 254 'M' Przesuwa kursor o jedną pozycję w prawo.
Wtącz natychmiastową transmisje naciśniętego przycisku (D) FE 41 254 65 254 W Kody naciśniętych przycisków są natychmiast wysyłane przez RS232.
Wytącz natychmiastową transmisje naciśniętego przycisku FE 42 254 79 254 '0' Kody naciśniętych przycisków są ładowane do bufora o wielkości 5 znaków.
Wyczyść bufor przycisków FE 45 254 69 254 'E' Zeruje bufor przycisków
Sprawdź czy naciśnięty byt przycisk (odczytuje bufor przycisków) FE 26 254 38 254 '&' Sprawdza czy byt naciśnięty przycisk odczytując bufor. Jeżeli bufor jest pusty zwracana jest wartość 0. W przeciwnym przypadku zwracany jest kod przycisku z ustawionym najstarszym bitem, gdy w buforze znajdują się kody więcej niż jednego naciśniętego przycisku.
Wyczyść wyświetlacz FE 58 254 88 254 X Czyści oraz ustawia kursor na początku wyświetlacza.
Ustaw podświetlanie FE 50 [poziom] 254 80 [poziom] 254 'P' [poziom] Ustawia jasność podświetlania. Wartość poziomu może wynosić od 0 do 255.
Wtącz podświetlanie FE 42 [minuty] 254 66 [minuty] 254 'B' [minuty] Włącza podświetlanie na czas określony w minutach. Jeżeli wartość [minut]=0, to podświetlenie wtaczane jest na stałe.
Wytącz podświetlanie (D) FE 46 254 70 254 f Wytacza podświetlanie wyświetlacza.
Wytącz wyjścia zewnętrzne (D) FE 56 [nr wyjścia] 254 86 [nr wyjścia] 254 V [nr wyjścia] Wyłącza wyjścia zewnętrzne, [nr wyjścia] może być od 1 do 5
Wtącz wyjścia zewnętrzne FE 57 [nr wyjścia] 254 87 [nr wyjścia] 254 W [nr wyjścia] Wtacza wyjścia zewnętrzne, [nr wyjścia] może być od 1 do 5
Definiuj wtasny znak FE 4E [nr] [8 bajtów] 254 78 [nr] [8 bajtów] 254 'N' [nr] [8 bajtów] Definiuje 1 z 8 dowolnych znaków użytkownika, [nr] określa numer znaku z zakresu 1 do 8, natomiast [8 bajtów] opisuje budowę znaku zgodnie z tab. 2
(D) - wartość domyślna po włączeniu zasilania
<1> - wartość szesnastkowa kodu ASCII danego znaku
<2> - wartość dziesiętna kodu ASCII danego znaku
<3> - znak odpowiadający wartości kodu ASCII
16
Elektronika Praktyczna 11/2003
fsemi-MatrixOrbital LCD do PC
ooooooooooooooi
OOOOOOOOOOOOOO
oooooooooooooa
Rys. 2. Schemat montażowy płytki drukowanej
Rys. 3. Schemat kabla połączeniowego do złącza RS232
Ostatnia instrukcja pokazana w tab. 1 umożliwia użytkownikowi zdefiniowanie do 8-miu własnych znaków. Na przykład wysłanie wartości: 254, 78, 1, 255, 255, 255, 255, 255, 255, 255, 255 wyświetli wszystkie piksele znaku. Aby wyświetlić pierwszy zdefiniowany znak należy wysłać przez RS232 wartość kodu ASCII 0. Dla drugiego zdefiniowanego znaku wartość 1 itd. W tab. 2 przedstawiono przyporządkowanie bitów poszczególnych bajtów (1...8) definiowanego znaku pikselom matrycy 5x8 znaku na wyświetlaczu LCD.
Instrukcje "Wyłącz/Włącz wyjścia zewnętrzne" umożliwiają sterowaniem wyjściami, do których można dołączyć obciążenie zewnętrzne. Ponieważ w module jest ich 5, wartość "nr wyjścia" powinna zawierać się w przedziale 1. ..5. Aby załączyć wyjście 1 należy wysłać wartości: 254, 87, 1, a gdy chcemy wyłączyć - wartości: 254, 86, 1.
Montaż i uruchomienie
Moduł sterownika LCD PC jest montowany na dwustronnej płytce drukowanej, której schemat montażowy pokazano na rys. 2. Elementy Zl, Z2, Z3 oraz C7
lab. 1...8 2. Znaczenie bitów w bajtach
MSB LSB
X X X 1 2 3 4 5 Bajt 1
X X X 6 7 8 9 10 Bajt 2
X X X 11 12 13 14 15 Bajt 3
X X X 16 17 18 19 20 Bajt 4
X X X 21 22 23 24 25 Bajt 5
X X X 26 27 28 29 30 Bajt 6
X X X 31 32 33 34 35 Bajt 7
X X X 36 37 38 39 40 Bajt 8
należy przylutować od strony lutowania, aby można było włożyć wyświetlacz LCD 2*16 znaków.
Stabilizator U3, rezonator kwarcowy Xl oraz kondensator C2 należy przylutować w pozycji leżącej. Ponieważ moduł może współpracować z wieloma typami wyświetlaczy LCD, które mają różne wymiary, płytka sterownika może nie pasować do każdego z nich. Należy wtedy wyświetlacz LCD zamontować za pośrednictwem wiązki przewodów. Wówczas wszystkie elementy można zamontować z jednej strony płytki. Przy montażu wyświetlacza LCD na przewodach istnieje także możliwość odcięcia płytki z przyciskami oraz odbiornikiem podczerwieni. Miejsce odcięcia płytki zostało zaznaczone na płytce drukowanej. Płytkę przycisków, jeżeli została odcięta, trzeba połączyć z płytką główną wiązką dziewięciu przewodów. Po takim zabiegu będzie można przymocować wyświetlacz LCD oraz klawiaturę po płyty czołowej obudowy z dala od modułu sterującego.
Jak wspomniano na początku artykułu, głównym przeznaczeniem tego układu jest monitorowanie oraz ustalanie parametrów wybranych aplikacji, chociaż można zastosować go w dowolnym urządzeniu elektronicznym.
Jeżeli moduł będzie montowany wewnątrz komputera można go zasilić z zasilacza komputera wykorzystując przewód przeznaczony do podłączenia stacji dyskietek, dołączony do złącza Z3. Podczas użytkowania modułu na zewnątrz komputera, napięcie zasilające można pobrać z Gamę Portu. Nie trzeba wtedy montować stabilizatora napięcia. Można także wykorzystać zewnętrzny zasilacz sieciowy.
Do połączenia modułu z komputerem należy gniazdo DB9 dołączyć do modułu zgodnie z rys. 3.
Na rys. 4 pokazano sposób dołączenia do uniwersalnych wyjść optotriaka, który może załączać żarówki lub inne odbiorniki. Dzięki zastosowaniu Ql optotriaka sterujący obwód jest odizolowany od sieci 220 V.
Jeżeli zajdzie potrzeba dołączenia przekaźnika do uniwersalnych wyjść modułu LCD-PC, to można to zrobić w sposób pokazany na rys. 5. Dioda Dl tłumi przepięcia podczas wyłączania przekaźnika, które mogłyby uszkodzić tranzystor sterujący.
Sprawdzenie działania modułu można wykonać dowolnym terminalem. Po ustawieniu parametrów transmisji na 9600/8/n/ 1, wysyłane znaki z klawiatury
~220V
Gdzie:
"1" wtacza piksel
"0" gasi piksel
"X" wartość dowolna
Z1 CON2 R1 Q1 MOC3041 R2 220 iI I-------------, Z2 ARK2


-

-----r^^----- ARK2
R3 Q2
I 220 M !-Ś BT136-600



Ox GND
Rys. 4. Sposób dołączenia optotriaka do uniwersalnych wyjść sterownika
OUT
Elektronika Praktyczna 11/2003
17
semi-MatrixOrbital LCD do PC
Z2
ABK2
Zł CON2 I
Ox -1 A t1fi414B rrr]
GND

PK1 RM96-P-5V
~220V
Z3 ARK3
NC
OUT
NO
Rys. 5. Z wyjść uniwersalnych można sterować bezpośrednio m.in. przekaźnikami
niewielkich modyfikacjach programu, możliwa będzie współpraca modułu z wyświetlaczami VFD. Podczas programowania mikro-kontrolera ATmega8 nal e ży pam iętać o właściwym ustawieniu wewnętrznych bezpieczni-
komputera powinny być wyświetlone na wyświetlaczu LCD. Jeżeli brak jest objawów "życia" modułu LCD-PC, należy sprawdzić starannie montaż oraz połączenie z komputerem. Podobnie można sprawdzić działanie przycisków, których kody powinny być wyświetlane w oknie terminala.
Ponieważ zastosowany mikro-kontroler ATmega8 ma aż 8 kB pamięci Flash, zostało w niej sporo miejsca na implementację własnych instrukcji. Na przykład, po
ków, gdyż ich konfiguracja ma ogromne znaczenie dla prawidłowego działania mik-rokontrolera. Opis właściwego ustawienia bezpieczników opisano w nagłówku programu (jego postać źródłową udostępniliśmy na stronie www.ep.com.pl oraz na CD-EP11/2003B). Marcin Wiązania, AVT marcin.wiazania@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: pcb.ep.com.pl oraz na płycie CD-EP11/2003B w katalogu PCB.
WYKAZ ELEMENTÓW
Rezystory
R1...R3: 10kO
R4: 220O
R5: 1QQ
R6...R11: lkn
R12: 4,7kn
Pl: potencjometr montażowy
leżący 10kO
Kondensatory
Cl, C2: 47^F/25V
C3, C4: 27pF
C5, Có: lOOnF
C7: 100^F/25V
Półprzewodniki
Tl: BC558
T2: BC548
T3...T8: BC328
Ul: ATmega8-16PI
U3: TFMS5360
U2: 7805
Różne
Xl: kwarc 8MHz
Zl: goldpin 1x3
Z2: goldpin 2x5
Z3: goldpin 1x4
Z4: gniazdo DB9 żeńskie
z obudową
18
Elektronika Praktyczna 11/2003
AUTOMATYKA
Działanie sterowników S7-200 - podstawy
Dzięki wielu artykułom na
temat sterowników PLC
publikowanym dotychczas
w EP, ich możliwości są
dobrze znane Czytelnikom.
W praktyce dość istotne fest
także zrozumienie sposobu
ich działania. To właśnie
zagadnienie fest tematem
prezentowanego artykułu.
Rodzina sterowników PLC SIMATIC S7-200 składa się z pięciu jednostek centralnych: CPU221, CPU222, CPU224, CPU226 i CPU226XM. Różnią się one między sobą ilością dostępnej pamięci programu oraz pamięci danych, a także liczbą zintegrowanych wejść-wyjść binarnych.
Zasada pracy sterownika S7-200 polega na cyklicznym przetwarzaniu programu zapisanego w nieulotnej pamięci programu typu EEPROM. Sterownik ma dwa rodzaje pamięci (rys. 1] wykorzystywanej do przechowywania, przenoszenia i wykonywania programu. Zewnętrzna pamięć EEPROM. służy przenoszenia i archiwizacji programów. Program z zewnętrznej pamięci kopiowany jest po załączeniu napięcia zasilającego do wewnętrznej pamięci EEPROM, gdzie jest zapamiętywany i po wyłączeniu zasilania nie ulega zniszczeniu. System operacyjny sterownika po załączeniu zasilania kopiuje program zapisany w wewnętrznej pamięci EEPROM do pamięci RAM sterownika. Wykonywanie programu odbywa się w pamięci RAM. Zarówno zewnętrzna i wewnętrzna pamięć EEPROM oraz pamięć RAM jest podzielona na obszary:
- pamięci programu,
- danych i parametrów,
- obszar danych z podtrzymaniem.
Obszar danych z podtrzymaniem jest wykorzystywany do zapamiętywania wartości zdeklarowanych zakresów danych, liczników, zegarów, stanów i wartości zmiennych po zaniku napięcia zasilającego. Podtrzymanie realizowane jest poprzez kondensator o dużej pojemności i małej upływności. Średni czas podtrzymania danych wynosi 50 do 190 godzin. W przypadku potrzeby u zyskania dłuższych czasów podtrzymania zawartości pamięci stosuje się opcjonalną baterię podtrzymującą dane. Średni czas podtrzymania danych wynosi około 200 dni. Obszar pamięci w sterowniku oznaczony jako OBl jest wywoływany cyklicznie przez system operacyjny sterownika, jak to pokazano na rys. 2.
Wykonywanie programu w pętli OBl kończy się w momencie natrafienia na instrukcję MEND kończącą wykonywanie programu, po czym system operacyjny zaczyna wykonywać ponownie pierwszą napotkaną instrukcję na początku bloku OBl. W bloku tym mogą znajdować się instrukcje wywołań podprogramów - SBR. Wydzielenie w bloku OBl podprogramów ma na celu taki podział zadań programu, aby można było np. utworzyć osobne programy np. do obsługi przekształtnika częstotliwości, komunikacji poprzez modemy (procedury inicjalizacji, odbioru i nadawania] lub obsługi paneli operatorskich OP. W każdym podprogramie można wywołać kolejny podprogram. Maksymalna głębokość zagnieżdżenia podprogramów wynosi 8. Podprogram kończy się w momencie wystąpienia instrukcji powrotu RET.
Oprócz obsługi podprogramów sterowniki S7-200 mogą obsługiwać także przerwania. Dzielą się one na:
- procesowe, wywoływane poprzez narastające lub opadające zbocze sygnału doprowadzonego do wejść sterownika lub
- czasowe, wywoływane poprzez odmierzenie przez wewnętrzne zegary określonego czasu, po którym następuje wywołanie programu obsługi przerwania.
Pamięć RAM: zawartość jest
podtrzymywana przez kondensator
o dużej pojemności lub opcjonalny akumulator
Pamięć EEPROM: Jest to pamięć nleulotna

User program
CPU configurotion
Vmemoiy
Mmemory
Timer and Courter current values
User program
| CPU conflguraUon
Vmamory (penmanent araa)
Mmemory (pennanent araa)
Dostępne są również przerwania od portów komunikacyjnych. Zadaniem tych przerwań jest obsługa danych nadawanych i odbieranych w odpowiednich chwilach czasowych poprzez porty komunikacyjne sterownika. Przerwania mają przydzielone priorytety. Program obsługi przerwania kończy się w momencie wystąpienia instrukcji RETI.
Zarówno podprogramy jak i programy obsługi przerwań po ich zakończeniu przekazują wykonywanie programu do instrukcji następującej po instrukcji wywołującej podprogram lub przerwanie. Odpowiednie adresy powrotów zapamiętywane są na stosie, przy czym za prawidłowe działanie odpowiada system operacyjny sterownika.
Oprócz pamięci programu w sterowniku S7-200 przewidziano obszar danych DBl. W obszarze tym zapamiętywane są wartości deklarowanych zmiennych, wyniki operacji matematycznych, wartości ini-cjalizujące, tabele, parametry. W obszarze tym można zdeklarować zakres zmiennych które będą podtrzymywane po zaniku zasilania. Obszar pamięci danych DBl jest oznaczony literą V [Variabls - zmienne]. W obszarze DBl można przechowywać dane w dowolnym formacie, np. w postaci bajtu (8 bitów], słowa (16 bitów] lub podwójnego słowa (32 bity] - rys. 3.
Oprócz obszaru DBl, pamięć danych składa się z obszaru danych o dostępie bitowym oznaczonym jako M [Msrksr -znacznik] oraz obszaru wejść procesu oznaczeniu ,,E" [Eingange - wejścia] i wyjść procesu A [Ausgangs - wyjścia]. Do danych można odwoływać się w sposób bezpośredni, poprzez jawne po-
Rys. 1. Obszory pomięci RAM oroz EEPROM
142
Elektronika Praktyczna 11/2003
AUTOMATYKA
Zapis sygnałów na wyjścia sterownika
Diagnostyka CPU
wywoływana przez BIOS sterownika
Odczyt wejść binarnych sterownika
Przetwarzanie
programu użytkownika "OB1
Komunikacja sieciowa oraz poprzez zintegrowane porty komunikacyjne
Rys. 2. Opis cyklu pracy sterownika S7-200
danie adresu danej np. E3.4 (wejście bajt 3, bit 4) lub w sposób pośredni za pomocą wskaźnika, np. &VW200, gdzie oznaczenie & oznacza wskaźnik do danej VW200. Oprócz obszaru danych DBl, w przestrzeni danych sterownika wydzielono obszar lokalnych danych L. Dane lokalne przyporządkowane są do danego podpro-gramu i są widoczne tylko w podprogra-mie SBRx, w którym zostały zadeklarowane. Dane lokalne nie są dostępne poza danym podprogramem SBRx. Dane lokalne L, wykorzystuje się aby przekazywać wartości z programu głównego do podprogra-
mów. System operacyjny udostępnia szereg znaczników systemowych SM (System merker), które odpowiadają za różne funkcje systemowe np. generację sygnału 1 Hz lub są aktywne tylko w pierwszym cyklu sterownika. Opis wszystkich funkcji znajduje się w dokumentacji do sterowników S7-200 dostępnej w Internecie pod adresem znajdującym się na końcu artykułu.
Sterownik S7-200 posiada również zintegrowane tzw. szybkie liczniki. Są to liczniki, które po zainicjalizowaniu zaczynają zliczać impulsy doprowadzone do ustalonych wejść sterownika poza cyklem pracy sterownika. Czas wykonywania i liczba instrukcji programowych nie ma wpływu na szybkość i pewność zliczania szybkiego licznika. Chcąc odczytać wartość szybkiego licznika należy w danym miejscu programu umieścić instrukcję odczytującą chwilową wartość szybkiego licznika. Liczba szybkich liczników w zależności od CPU wynosi od 4 do 6. Liczniki mogą zliczać sygnały o częstotliwości do 30 kHz. Oprócz
VB100 MSB LSE 7 0 V f B100 LBy I------Ac teaddress cess to a byle size aa identifier (V memo
VB100
-------------An ry)
Leastsi Most significant byłe MSB I 15 T 8 7 gnificantbyte ^ LSB 0 f W100 I Byteaddress I---------Access to a word size
VW100 VB100 VB101 aa identifier (V memo


Most significant byłe Least significant byte MSB I I LSB 31 t 24 23 16 15 8 7 t 0
VD100 VB100 VB101 VB102 VB103
MSB = LSB = most significant bit least significant bit V ' D100 I LBy I------Ac teaddress cess to a double won sa identifier (V memo dsize

Rys. 3. W obszarze pamięci danych DBl można przechowywać dane w różnych formatach
szybkich liczników dostępne są również liczniki i zegary wykorzystywane w programie użytkownika. Dodatkowo S7-200 wyposażony jest w wyjścia PWM (modulacja szerokości impulsu) oraz PTO (modulacja częstotliwości), dzięki czemu idealnie nadaje się do sterowania silnikami krokowymi oraz układami pozycjonowania. System operacyjny S7-200 dba o odpowiednie przydzielenie czasu na sprawdzenie wszystkich elementów systemu.
System operacyjny sterownika nadzoruje wykonywanie programu, odpowiada za komunikację z innymi zewnętrznymi urządzeniami (sieci sterowników S7-200), dokonuje samokontroli pod kątem sprawności systemów S7-200, zapisuje stany wyjść do obrazu wyjść procesu, ostatecznie odczytuje stany wejść z obrazu wejść procesu. Obraz wejść i wyjść procesu to obszar wydzielonej pamięci gdzie zapisywane są stany sygnałów dla wejść i wyjść sterownika. Chwilę czasową w której odczytywany jest stan sygnału dla wejść i zapisu dla wyjść dobiera automatycznie system operacyjny. Sygnały analogowe odczytywane z modułów wejść i zapisywane do wyjść analogowych nie posiadają obrazu wejść i wyjść procesu. W związku z tym wartości przekazywane lub odczytywane z modułów analogowych są wartościami chwilowymi. Bardzo bogaty zbiór instrukcji w tym instrukcji zmiennoprze-cinkowych, komunikacyjnych, konwersji, regulacji PID pozwala na tworzenie w oparciu o sterowniki S7-200 bardzo złożonych programów dostępnych do tej pory tylko na dużych systemach sterownia. Dzięki zintegrowanemu konfigur owalnemu portowi komunikacyjnemu możliwe jest tworzenie zdecentralizowanych struktur sterowania i gromadzenia danych w oparciu o tryb swobodny portu ASCII. Michał Bereza, Siemens
Dodatkowe informacje
Petna dokumentacja w języku angielskim do sterownika S7-200 znajduje się w Internecie pod adresem: www.siemens.pl/simatic w pod-katalogu Katalogi>lristrukcje.
144
Elektronika Praktyczna 11/2003
PROJEKTY
7-portowy hub USB
AVT-551
W starszych płytach liczba
ponów USB nie przekraczała
dwóch. Większość
współczesnych komp u tero w
jest już wyposażona w kilka
ponów. Ponadto zauważa się
znaczny przyrost liczby
urządzeń przeznaczonych do
podłączenia do ponów USB.
Z pewnością trend ten będzie
utrzymany, gdyż dużą zaletą
USB jest zastosowanie w tym
interfejsie mechanizmu PnP
oraz dość duża szybkość
transmisji danych. W ańykule
przedstawiamy układ, za
pomocą którego można łatwo
zwiększyć liczbę dostępnych
portów - hub USB.
Rekomendacje: hub
opracowany z myślą
o u żytkownikach komp u tero w
wyposażonych w niewielką
liczbę ponów USB oraz
użytkowników komputerów
korzystających z wielu
urządzeń zewnętrznych.
Tab. 1. Wybrane cechy huba USB opisanego w artykule
x interfejs USB kompatybilny z USB 1.1,
x 7 portów USB,
x zasilanie z zewnętrznego lub komputerowego
zasilacza, x wszystkie porty mogą pracować w Trybach
fuii-speed oraz bw-speed, x automatyczne wykrywanie zwarcia obwodów
zasilających portu, x możliwość pracy jako urządzenie wbudowane
w miejsce napędu 5,25 cali lub jako oddzielne
urządzenie,
x zasilanie 10... 16 VDC, x optyczna sygnalizacja na każdym z portów
USB,
x trzy diody informują o pracy huba, x brak potrzeby instalacji sterowników.
Najprostszą możliwością zwiększenia liczby portów USB jest zastosowanie ii uba. Dostępne na rynku huby USB można podzielić na pasywne (zasilane z portu USB), które mogą mieć do 4 portów oraz aktywne (zasilane z zewnętrznego zasilacza), w których liczba portów może być większa od czterech. Aby sprostać problemowi braku portów USB, zbudowany został aktywny hub USB, udostępniający użytkownikowi 7 portów zgodnych z USB 1.1. Niewątpliwie dużą zaletą prezentowanego huba jest możliwość wbudowania go w miejsce napędu 5,25 cali. Jeżeli hub będzie zamontowany w komputerze, do jego zasilania jest wykorzystywany zasilacz komputerowy. Wybrane parametry huba przedstawione zostały w tab. 1.
Opis działania układu
Schemat elektryczny układu pokazano na rys. 1. Jego "sercem" jest układ Ul firmy Texas Instruments. Budowę tego interesującego układu przedstawia schemat blokowy na rys. 2. W skład TUSB2O77A wchodzą: jeden port
upstream do podłączenia h uba z komputerem, siedem portów downstream służących do podłączenia dowolnych urządzeń USB, pętla PLL, jednostka zarządzająca zasilaniem portów, sterująca oraz inne bloki widoczne na schemacie blokowym. Budowa układu Ul umożliwia wybór źródła zasilania: hub może być zasilany z portu nadrzędnego lub dodatkowego zasilacza. Przy zasilaniu huba z portu USB nie dałoby się uzyskać więcej niż 4 portów, przy czym obciążalność każdego takiego portu wynosi maksymalnie 100 mA. Dla układu wybrano zasilanie zewnętrzne, dzięki czemu można było uzyskać siedem dodatkowych portów o wydajności prądowej do 500 mA na port. Wydajność prądowa portów będzie zależała z dużej mierze od wydajności prądowej zastosowanego zasilacza. Końcówka !EXTMEM informuje hub o dołączonej pamięci EEPROM, w której zawarte będą informacje dotyczące urządzenia. Do prawidłowego działania huba pamięć nie jest wymagana, dlatego końcówka !EXTMEM podłączona została do dodatniego na-
Elektronika Praktyczna 11/2003
7-portowy hub USB
USB1
USB_A
Rys. 1. Schemat elektryczny układu
pięcia. Końcówka EED\GANGED, gdy jest dołączony EEPROM, jest linią danych dla pamięci. Natomiast gdy brak jest tej pamięci, linia ta określa sposób zarządzania zasilaniem zwielokrotnionych portów USB. Przy poziomie niskim na tej końcówce hub będzie
sterował wspólnie zasilaniem wszystkich portów. W tym przypadku awaria (np. przeciążenie lub zwarcie) zasilania jednego portu będzie skutkować wyłączeniem zasilania wszystkim portom. Przy poziomie wysokim na końcówce EED\GANGED, hub będzie
J6 USB5
sterował indywidualnie zasilaniem każdego portu. Awaria zasilania jednego z portów nie będzie wpływać na zasilanie pozostałych portów. Hub będzie dalej działał poprawnie z portami, które nie mają awarii. W hubie wybrane zostało indywidualne sterowanie
Elektronika Praktyczna 11/2003
7-portowy hub USB
DPO
DMO
A
Transceiver USB
Repeater
Logika steruląca + timer ramki
SUSPND
SIE
Sterownik
SIE
Logika portu 1
Logika portu 4
Transceiver USB
OSC/PLL
45
44.
48
XTAL1/CLK48 ŚXTAL2
MODĘ
RESET
47
DPOPUR DCTMEM
Szeregowy 4~ Interfejs EEPROM
Dekoder poleceń
Transceiver USB
DP7 DM7
14t 13+
EEDATA/GANGED
>Ś EECLK
42,
41.
10
PORTDIS
PORTPWR
BUSPWR
Logika sterowania
zasilaniem 4-
12, 16,20,25, 29, 33, 37
OVRCUR1 -OVRCUR7
T DP1 DM1
11,15,19,23, 28, 32, 38
->Ś PWRON1 - PWRON7
Rys. 2. Schemat blokowy układu TUSB2077A
na wejściu poniżej 2 V powoduje wyłączenie danego klucza. Dzięki blokowi UVLO gwarantowana jest poprawna praca dołączonych do portów USB urządzeń. Napięcie wyjściowe załączane jest poprzez N-kanałowy MOSFET, którego rezystancja w stanie włączenie nie przekracza 135 ml), Elementy CS [current sense) są czujnikami prądowymi współpracującymi z ogranicznikami prądowymi. Każdy z czterech kluczy prądowych zawartych w TPS2044 może dostarczyć prąd o natężeniu do 500 mA. Przeciążenie danego klucza sygnalizowane jest poziomem niskim na wyjściach !OCx, które zostały dołączone do wejść !OVRCURx układu Ul. Zaistnienie przeciążenia jest sygnalizowane układowi Ul, dzięki czemu może wyłączyć przeciążony klucz. O przeciążeniu danego portu informowany jest także system operacyjny, co ma dla jego poprawnej pracy duże znaczenie. Ponieważ wyjścia !OCx są typu otwarty dren, p otrzebne okazały się dodatkowe rezystory podciągające R46...R52. Wyprowadzenia wszystkich transceiverów
OC1
Czujnik termiczny
Pompa
ładunkowa
Driver
lT
Ogranicznik prądowy
zasilaniem każdego z portów. napięciem 3,3 V, z którego zasi-
O zaletach takiego sterowania nie lany jest także układ Ul. Wyjścia DMx oraz DPx zostały poprzez
trzeba chyba przekonywać. Układ sterujące włączaniem zasilania rezystory dołączone bezpośrednio
Ul jest taktowany sygnałem w poszczególnych portach USB do złącz J1...J9. Dodatkowe rezys-
zegarowym o częstotliwości !PWRONx zostały dołączone do tory (ograniczające prąd) zabez-
stabilizowanej rezonatorem kwar- wejść !ENx układów U2 oraz U3. pieczają transceivery przed uszko-
cowym Xl, jego częstotliwość Układy U2, U3 są kluczami dzeniami spowodowanymi prze-
jest powielana do 48 MHz. Po- prądowymi (także produkcji TI). pięciami. Zabezpieczenie transcei-
wielacz częstotliwości jest uak- Układy te są poczwórnymi klu- verów huba ma duże znaczenie,
tywniany poziomem niskim na czarni prądowymi, któ-
wejściu MODĘ. Wyjścia układu re zawierają dodatko-
sterujące tranzystorami T1...T3 we zabezpieczenia QND1
sygnalizują, poprzez diody przeciążeniowe oraz __
D8...D10, pracę huba. Rezystory termiczne. ^
R42...R44 ograniczają prąd baz Na rys. 3. przedsta-
tranzystorów, natomiast R39...R41 wiono schemat bloko-
ograniczają prąd płynący przez wy dwóch z czterech
diody LED. Poziom wysoki na kluczy zawartych
wyjściu HUBCFG (załączona LED w TPS2044. W klu-
D8) wskazywać będzie, że hub czach prądowych U2
został skonfigurowany. Dioda D9 i U3, oprócz wspo-
sterowana sygnałem z wyjścia mnianych bloków za-
PORTPWR wskazuje swym świe- bezpieczeń, wyróżnić ini
ceniem czy wszystkie porty są można blok sterowania
zasilane. Przy braku zasilania na tranzystorami wyjścio-
jakimkolwiek z portów, dioda jest wymi, pompy ładunko-
wygaszona. Sygnał z wyjścia we wytwarzające pod-
PORTDIS sterujący diodą D10 wyższone napięcie, któ- __
zapali ją, gdy wszystkie porty są re jest przeznaczone do __
sprawne. Jeżeli którykolwiek port zasilania bramek tran-
jest niesprawny, dioda D10 zo- zystorów wyjściowych,
staje wyłączona. Układ U4 jest blok monitorujący na-
specjalistycznym układem zerują- pięcie wejściowe UV- RySi 3. Schemat blokowy dwóch z czterech
cym dostosowanym do zasilania LO. Spadek napięcia kluczy zawartych w układzie TPS2044
UVLO
Pompa
ładunkowa
oim
OJT2
Driver
ą Ogranicznik n ' prądowy
Czujnik termiczny
OC2
Elektronika Praktyczna 11/2003
21
7-portowy hub USB
AlubC
GND
B lub D
Rys. 4. Schemat półprzewodnikowego ogranicznika napięcia
gdyż awaria choć jednego portu USB będzie wymagać wymiany kosztownego układu Ul. Uszkodzenia transceiverów mogą być spowodowane przepięciami czy ładunkami statycznymi. Bardzo łatwo może dojść do uszkodzenia portu USB podczas podłączania urządzeń. Może okazać się, że same rezystory są niewystarczające do zab ezpieczenia, zastosowane zostały dodatkowo ograniczniki napięcia U7...U11. Schemat takiego układu pokazano na rys. 4. Jeżeli napięcie wzrośnie powyżej napięcia przebicia diody Ze-nera włączany jest tranzystor, który zwiera linię do masy. W skład układów U7...U9 wchodzą cztery ograniczniki, natomiast U10 i Uli posiadają po dwa takie ograniczniki. Do linii zasilających porty USB dołączono diody LED poprzez rezystory ograniczające R32...R38. Diody te spełniają rolę wskaźników napięć na wyjściach portów. W przypadku zwarcia lub przeciążenia wiadomo, który port USB przestał działać. Wskutek dołączenia rezystora Rl dołączony do linii DPO komputer jest informowany, że hub jest w stanie obsługiwać szybkie transmisje USB. Hub może być zasilany z zasilacza komputerowego poprzez złącze Z2 (5 V) lub z zasilacza zewnętrznego przez złącze Z3. Napięcie zasilacza zewnętrznego jest prostowane przez mostek Ml oraz stabilizowane przez U6. Napięcie 5 V służy głównie do zasilania portów wyjściowych. Stabilizator U 5 ma napięcie wyjściowe 3,3 V, które jest niezbędne do zasilania układów Ul oraz U4. Dodatkowe złącze Zl (dołączone bezpośrednio do złącz USB J2, J3) może służyć do
podłączenia "śledzia" z gniazdami portów USB w przypadku montażu huba w komputerze.
Montaż i uruchomienie
Urządzenie należy zmontować na płytce drukowanej, której schemat montażowy pokazano na rys. 5. Przed montażem elementów trzeba zdecydować, czy hub będzie pracował jako zewnętrzny czy wewnętrzny umieszczony w komputerze. Jeżeli będzie montowany w obudowie zewnętrznej, płytkę można przyciąć w oznaczonych miejscach. Montaż należy rozpocząć od wlutowania układów scalonych, przy czym największe kłopoty mogą być z wlu-towaniem układu Ul, który na bardzo mały rozstaw wyprowadzeń. Aby prawidłowo wlutować Ul proponuję sprawdzony sposób, który polega na wcześniejszym delikatnym ocynowaniu punktów
lutowniczych płytki, do których będzie lutowany układ. Następnie należy przy kleić Ul zwracając uwagę na prawidłowe zorientowanie układu oraz dopasowanie nóżek do punktów lutowniczych. Oczyszczonym z cyny grotem lutownicy należy przygnieść kolejno końcówki układu do punktów lutowniczych. Z wlu-towaniem pozostałych elementów SMD nie powinno być problemu, przy czym rezystory R46...R52 należy zamontować od strony "lutowania". Montaż należy zakończyć wlutowaniem elementów przewlekanych.
Po zakończeniu montażu, należy sprawdzić czy nie powstały jakieś zwarcia, które mogą być później trudne do odszukania. Diody LED (jeżeli będą montowane) można wmontować tak, aby znajdowały się bezpośrednio nad złączami USB. Złącze Zl najlepiej
Rys. 5. Rozmieszczenie elementów na płytce drukowanej
Elektronika Praktyczna 11/2003
7-portowy hub USB
f Rys. ó. Po dołqczeniu huba do PC system operacyjny automatycznie wykrywa jego obecność jako Rodzajowy koncentrator USB
zamontować z wyjętym stykiem 9. Niektóre gniazda dostępnych śledzi mają zaślepiony otwór 9, aby zabezpieczyć przed odwrotnym włożeniem wtyku. Jeżeli hub będzie pracował jako zewnętrzny, nie należy montować złącza Z2. Ponieważ dołączone do huba urządzenia mogą pobierać znaczny prąd, potrzebne będzie wyposażenie stabilizatora U6 w niewielki radiator. Jeżeli hub będzie montowany wewnątrz obudowy komputera, to należy zamontować gniazdo Z2, natomiast nie należy montować elementów Z3, Ml, C21, C22 oraz U6. Wtyk zasilacza komputerowego będzie dołączany bezpośrednio do gniazda Z2. Aby umożliwić montaż płytki w miejscu na napęd 5,25 cali, zaprojektowane zostały dodatkowe ścianki boczne, które powinny być przy-lutowane do nieobciętych boków płytki huba. Na CD-EP11/2003B przedstawiono wygląd płytek bocznych: lewej i prawej. Do płytek bocznych należy dodatkowo przykleic lub przylutować nakrętki, dzięki czemu hub można przykręcić w obudowie komputera. Płytę czołową do huba można wykonać z zaślepki otworu 5,25 cali, wyjętej z obudowy. W zaślep ce należy wykonać pięć prostokątnych otworów na gniazda USB oraz otwory na diody LED. Diody D8...D10 można doprowadzić do płyty czołowej kilkunasto centy metr o wy mi przewodami. Tak wykonaną płytę czołową należy przykleic do przy lutowanych
Tab. 2. Układ wyprowadzeń złącza Z1
Pin Sygnał Pin Sygnał
1 + 5V 2 + 5V
3 DM2 4 DM1
5 DP2 6 DP1
7 GND 8 GND
9 NC 10 NC
Rys. 7. Okno właściwości huba w systemie Windows
wcześniej bocznych ścianek. W przypadku montażu huba w komputerze dwa dodatkowe porty będą znajdować się wewnątrz obudowy komputera. Gniazda te można wyprowadzić na zewnątrz obudowy odpowiednim przewodem lub stosując złącza USB montowane na śledziu. Ponieważ dostępne w handlu śledzie USB są zakończone różnymi gniazdami, to przy podłączaniu do huba należy zadbać o prawidłowe położenie wtyku śledzia w złączu Zl. Styki 1, 3, 5, 7 złącza Zl dotyczą gniazda J2, natomiast styki 2, 4, 6, 8 dotyczą gniazda Jl.
Jeżeli hub będzie pracował jako zewnętrzny, potrzebny będzie zasilacz o odpowiedniej wydajności prądowej. Dobrym rozwiązaniem będzie zastosowanie zasilacza wtyczkowego o napięciu 12...16 VDC lub 8...12 VAC oraz wydajności prądowej nie mniejszej niż 1 A.
Po dołączeniu huba do komputera oraz dołączeniu zasilania, jest on wykrywany w systemie. System WIN-XP wykrywa go jako Rodzajowy koncentrator USB (rys. 6). W przypadku nieprawidłowej pracy huba należy sprawdzić jakość przylutowania układu Ul. Właściwości zainstalowanego huba (rys. 7) potwierdzają, że pracuje on w trybie z własnym zasilaniem, a maksymalna obciążalność prądowa wynosi 500 mA.
Po skonfigurowaniu h uba przez system powinny zaświecić wszystkie diody dołączone do linii zasilających portów USB. Dołączając urządzenie z interfejsem USB kolejno do każdego z siedmiu portów można spraw-
WYKAZ ELEMENTÓW
Rezystory
Rl, R45: l,5kn
R2...R17:
R1S...R31:
R32...R3S: 5ó0n
R39...R41: 470H
R42...R44:
R4Ó...R52:
Kondensatory
C1...C7, C20, C25: 100^F/lóV
CS...C1Ó, C19, C22, C24: lOOnF
C17, CIS: 27pF
C21: 47^F/1ÓV
C23: 4,7^F
Półprzewodniki
D1...D10: LED 3mm zielone
Ml: mostek okrqgły 1,5A
Tl, T2, T3: BCS4S
Ul: TUSB2077A
U2, U3: TPS2044
U3, US: TLC272
U4: DS1S1S
U5: TC55RP330
Uó: 7SS05 TO-220 lub 7ST05 TO-
220
U7, US, U9: SNÓ5240
U10, Uli: SNÓ5220
Różne
Xl: kwarc óMHz (przewlekany)
Zl: goldpin 2x10
Z2(#): komputerowe złqcze
zasilajqce (męskie) lutowane do
druku
Z3: złqcze zasilajqce do druku
Jl: gniazdo USB typu B
J2...JS: gniazdo USB typu A
Radiator
Elementów oznaczonych O nie należy montować w przypadku zasilania układu zewnętrznym zasilaczem.
Elementy U4, Uó, XI oraz złącza sq elementami przeznaczonymi do montażu przewlekanego.
dzić czy działają one prawidłowo. Hub nie musi być podłączany jedynie do USB 1.1. Próby wykazały, że pracuje on prawidłowo także wtedy, gdy jest dołączany do USB 2.0. Marcin Wiązania, AVT marcin.wiazania@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: pcb.ep.com.pl oraz na {ńycie CD-EP11/2003B w katalogu PCB.
Elektronika Praktyczna 11/2003
23
PROJEKTY
Lampowy kompresor dynamiki sygnału audio
Przeglądając moje zapasy
lamp próżniowych
stwierdziłem, że z wielu nie
będę miał większego pożytku
- nie nadają się do budowy
wzmacniacza napięciowego.
Tak jest na przykład
z pentodami regulacyjnymi:
EF83, EF 183 i EF 89,
których sporo zalega jeszcze
w niejednej piwnicy. Co
można zrobić z tymi
lampami? Wyrzucić do
śmieci? Zdecydowanie nie!
Rekomendacje: smakowity
kąsek dla prawdziwych
koneserów lampowej techniki
audio, przeżywającej niezwykły
renesans.
Pentody regulacyjne były stosowane w układach ARW (automatycznej regulacji wzmocnienia) odbiorników radiowych i telewizyjnych. W EP3/2OO3 opisaliśmy działanie ARW przy okazji omawiania wskaźników dostrojenia (magicznych "oczek"). Przypomnijmy tylko, źe zadaniem ARW jest regulowanie wzmocnienia wzmacniacza pośredniej częstotliwości w odbiorniku w zależności od wartości sygnału docierającego do odbiornika: silny sygnał - mniejsze wzmocnienie, słaby sygnał -duże wzmocnienie.
Jak realizowano lampowy układ ARW? Aby to wyjaśnić, należy poznać właściwości pentody regulacyjnej .
Pentoda regulacyjna
Różnice między działaniem "zwykłej" pentody napięciowej i pentody regulacyjnej ilustrują (rys. 1) charakterystyki przejściowe (charakterystyką przejściową pentody jest zależność prądu anodowego napięcia siatki przy określonych napięciach na pozostałych elektrodach: anodzie, siatce ekranującej i siatce hamującej) obu tych lamp. Widać na nich wyraźnie, że lampa EF89 ma charakterystykę przejściową o znacznie mniejszym nachyleniu (wydłużoną). Jest to cecha wszystkich pentod regulacyjnych (zwanych także selektodami albo pentodami z długą charakterystyką).
Wzmocnienie napięciowe pen-todowego wzmacniacza oporowego oblicza się z zależności:
Ku = Sa Ra '
gdzie:
Ku - wzmocnienie napięciowe
w [V/V],
Sa - nachylenie charakterystyki przejściowej (konduktancja wzajemna) w [mA/V], Ra - oporność obciążenia w [kLi]. Nachylenie charakterystyki przejściowej jest definiowane jako stosunek zmiany prądu anodowego do zmiany napięcia na siatce sterującego przy ustalonych napięciach na pozostałych elektrodach. Jak widać na rys. 1, dla przykładowej pentody zwykłej (EF80) parametr Sa nie zmienia się znacznie w zależności od napięcia siatki pierwszej (większe zmiany następują tylko w okolicy napięcia odcięcia) z racji dużej liniowości tej charakterystyki. Dla lampy regulacyjnej EF89 nachylenie zmienia się w szerokim przedziale wartości wraz ze zmianami napięcia siatki pierwszej, co świadczy o tym, że charakterystyka tej lampy cechuje się dużą niehniowością. Z podanego wzoru wynika, że wzmocnienie napięciowe wzmacniacza ze zwykłą pentodą bardzo mało zależało od napięcia polaryzacji siatki sterującej. Wzmacniacz z pentodą regulacyjną wykazuje natomiast silną zależność wzmocnienia napięciowego w zależności od napięcia polaryzacji siatki (a więc pun-
Elektronika Praktyczna 11/2003
25
Lampowy kompresor dynamiki sygnału audio
40
30
25
20
o.
15
10
------
------------EF80 (zwykła)



r i i
) i i i
i
___________Ś-------------------- _____________--
-45
-40
-35
-10
-30-25-20 -15
Napięcie siatki sterującej [V]
Rys. 1. Charakterystyki przejściowe pentod: regulacyjnej i standardowej przy Ua=Us2=200 V i Us3=0 V
ktu pracy na charakterystyce przejściowej). Zatem pentoda regulacyjna umożliwia skonstruowanie wzmacniacza, którego wzmocnienie napięciowe jest zależne od spoczynkowej wartości w punkcie pracy napięcia polaryzacji siatki sterującej.
Na rys. 2 a przedstawiono uproszczony schemat takiego wzmacniacza, zaś na rys. 2b zilustrowano, w oparciu o charakterystykę przejściową lampy, przebiegi prądu anodowego (a więc i napięcia na obciążeniu) dla różnych spoczynkowych punktów pracy A i B. Przy takiej samej amplitudzie napięcia wejściowego i tym samym obciążeniu, wzmocnienie dla punktu B jest zacznie większe niż dla A.
Przy dużym ujemnym napięciu regulacyjnym Uregl spoczynkowy punkt pracy lampy znajduje się w punkcie A. W otoczeniu tego punktu nachylenie charakterystyki jest małe, więc wzmocnienie też jest małe. Przy małym ujemnym napięciu regulacyjnym Ureg2 punkt pracy przesuwa się do punktu B. Nachylenie charakterystyki w jego otoczeniu jest duże, więc wzmocnienie też jest duże.
Jak wspomniano wcześniej, lampy regulacyjne stosowano w układach ARW w odbiornikach AM. Regulowanym wzmacniaczem był najczęściej jeden stopień (pierwszy) wzmacniacza pośredniej częstotliwości. Czasami ARW obejmowało
także wzmacniacz wielkiej częstotliwości i inne stopnie wzmocnienia. Regulacyjne napięcie polaryzacji siatki takiego stopnia wzmocnienia uzyskiwano bezpośrednio z detektora albo z bardziej rozbudowanych układów, które umożliwiały uzyskanie ARW np. z progiem zadziałania. Tego rodzaju ARW, gdy źródło napięcia regulującego znaj duje się za wzmacniaczami w.cz. i p.cz. jest regulacją wstecz. Detektor musiał być włączony tak, że uzyskiwano ujemne względem masy napięcie regulacyjne. Ponadto, napięcie to było odfiltrowywane tak, by składowa m.cz. nie powodowała zmian wzmocnienia. W przeciwnym przypadku następowałaby niepożądana kompresja dynamiki sygnału, polegająca na tym, że głośne fragmenty audycji byłyby nienaturalnie ściszane.
W nielicznych układach ARW obejmowała wzmacniacz małej częstotliwości-była to regulacja
w przód, gdyż napięcie regulacyjne było uzyskiwane przed wzmacniaczem m.cz.
Pozostaje jeszcze wyjaśnić, dlaczego pentody regulacyjne nie nadają się do zwykłych układów wzmacniaczy napięciowych. Otóż w takich układach mamy jeden spoczynkowy punkt pracy, który jest ściśle ustalony, a zmienia się jedynie amplituda napięcia sterującego (regulacja potencjometrem siły głosu). Z rys.2b wynika, że we wzmacniaczu z pentodą regulacyjną wystąpiłyby znaczne zniekształcenia nieliniowe, gdyby amplituda napięcia sterującego miała dużą wartość. Takie pentody mogą ewentualnie pracować przy małych amplitudach sygnału sterującego, a więc we wzmacniaczach wstępnych. Jednak ze względu na znaczne szumy pentod nie jest to dobre rozwiązanie. Do stopni wstępnych można stosować pentody nisko szumne. Jednak do układów wzmacniaczy wstępnych lepiej używać układów triod.
Kompresor
Pentody regulacyjne były stosowane we wzmacniaczach do automatycznej regulacji wzmocnienia. Postanowiłem je zastosować w układzie regulacji wzmocnienia - w lampowym kompreso-rze dynamiki sygnału akustycznego. Kompresor należy do tzw. procesorów dźwięku. Wzmocnienie kompresora maleje po przekroczeniu pewnej wartości sygnału sterującego. Wartość spadku wzmocnienia można regulować -zmieniając stopień kompresji. Można także regulować próg zadziałania (poziom sygnału, przy którym zaczyna się kompresja), a ponadto czasu opóźnienia zadziałania i odpuszczenia. Chodzi
Napięcie regulacyjne Ureg
Ureg2
Rys. 2. Schemat wzmacniacza o regulowanym wzmocnieniu z pentodą regulacyjną (a) i przebiegi prądu anodowego dla różnych punktów pracy (b)
26
Elektronika Praktyczna 11/2003
Lampowy kompresor dynamiki sygnału audio
Uwfl
U wy
1 - zwykły wzmacniacz
2 - kompresor dynamiki (mały stopień kompresji)
3 - kompresor dynamiki (duży stopień kompresji)
4 - limiter
Rys. 3. Charakterystyki Uwy=f(Uwe) wzmacniacza i ograniczników różnego typu
o to, by kompresja nie następowała za szybko po przekroczeniu poziomu progu zadziałania i nie zanikała zbyt szybko, bo wówczas słychać wyraźne "pompowanie" dźwięku, objawiające się chwilowym ściszaniem muzyki w takt np. uderzeń perkusji.
Kompresory są używane między innymi przy montażu audycji (stopniowo wychodzą z użycia, gdyż montaż audycji przeprowadza się obecnie komputerowo), a także przez niektórych gitarzystów.
Pewną odmianą kompresora jest limiter. Tego rodzaju układy pracują w magnetofonach, gdzie przekroczenie dopuszczalnego poziomu zapisu powoduje wzrost zniekształceń. Charakterystyki kompresora dynamiki przedstawiono na rys. 3.
Wtórnik katodowy I
Wejście <
Opis działania układu
Na rys. 4 przedstawiono schemat blokowy prezentowanego kompresora dynamiki. Działa on następująco: sygnał wejściowy jest doprowadzony jednocześnie do wtórnika katodowego I. Przewidziano regulację poziomu sygnału doprowadzanego do wtórnika I. Sygnał z wtórnika I jest doprowadzony do wzmacniacza o wzmocnieniu regulowanym napięciem -Ureg, a stąd do wtórnika II i wyjścia. Opisaną wyżej ścieżka sygnału sterującego jest właściwie główną ścieżką kompresora. Napięcie regulujące -Ureg jest otrzymywane w innym obwodzie. Sygnał wejściowy jest doprowadzony do wzmacniacza pomocniczego. Po wzmocnieniu sygnał jest doprowadzony do elektronowego wskaźnika wysterowa-nia (magicznego oka) i do prostownika. Możliwa jest regulacja poziomu napięcia, przy którym zaczyna się prostowanie. Oznacza to, że napięcie regulujące pojawia się na wyjściu prostownika dopiero po przekroczeniu pewnego poziomu sygnału wejściowego. W ten sposób jest możliwa regulacja progu zadziałania kompresji. Wyprostowany sygnał zostaje uśredniony w układzie całkującym i przechodzi przez układ różniczkujący. Poprzez zmianę parametrów tych obwodów jest możliwa regulacja czasu opóźnienia zadziałania (obwód całku-
Wzmacniacz regulowany napięciem
jacy) i odpuszczenia kompresji. Przewidziano regulację skokową (2-stopniową) i ciągłą stałych czasowych tych obwodów. Tak otrzymane napięcie regulacyjne jest poddawane ograniczeniu, przy czym przewidziano 10 nastaw ograniczania. Przełącznik nastaw ograniczania jest dwusekcyjny. Druga sekcja jest wykorzystana do sterowania pracą jarzeniowego wskaźnika nastaw (Nixie). Oprócz tego istnieje możliwość regulacji "twardości" ograniczania-stabilizacji. Napięcie regulacyjne -Ureg może być płynnie regulowane. Poziom napięcia -Ureg jest wskazywany przez elektronowy wskaźnik poziomu kompresji (magiczne "oko").
Może dziwić liczba zastosowanych elementów regulacyjnych do regulacji ciągłej i skokowej. Zależało mi jednak na tym, aby można było uzyskiwać różne charakterystyki kompresora - przedstawiono je na rys. 5. Widać, że prezentowany kompresor może pracować jako limiter (charakterystyki 2, 3 i 11) albo wręcz jako układ wyciszania (6, 7). Natomiast charakterystyki 8, 9 i 10 są zbliżone do charakterystyk typowego kompresora. W tab. 1 zamieszczono "nastawy" niektórych parametrów przy wyznaczaniu charakterystyk z rys. 5. Potencjometr czasu opóźnienia zadziałania był ustawiony we wszystkich przypadkach na minimalną wartość rezystancji
Wtórnik katodowy II
Wyjście
Reg. poziomu sygnału sterującego
Wzmacniacz pomocniczy
Elektronowy wskaźnik poziomu kompresji
Elektronowy
wskaźnik
wysterowania
Reg. płynna poziomu kompresji
Reg. progu zadziałania
Reg. czasu Reg. czasu opóźnienia odpuszczenia zadziałania
Jarzeniowy
wskaźnik
nastaw
ogranicznika
Rys. 4. Schemat blokowy lampowego kompresora sygnału audio
Elektronika Praktyczna 11/2003
27
Lampowy kompresor dynamiki sygnału audio
1,2
1.0
0.8
0,6
0,4
0,2
y

/ ^-------B^ 10
>
" 11 .--*"
-----^3 2 7 5"
------------

0,1
0,2
0,3 0,4
Napięcie wejściowe [V]
0,5
0,6
Rys. 5. Wybrane charakterystyki UvĄ/=f(Uwe) kompresora (sygnał testowy o częstotliwości 1 kHz)
(a więc i stałej czasu), potencjometr czasu odpuszczenia na maksymalną wartość, a przełącznik stałej czasowej (Wl) na maksymalną wartość (kondensator Cl5).
Schemat elektryczny kompresora pokazano na rys. 6. Pierwsza część lampy VI pracuje w układzie i wtórnika katodowego (Ku = 1V/V). Potencjometr Pl umożliwia regulację poziomu sygnału doprowadzonego do wtórnika, a tym samym do wzmacniacza. Dzięki temu można dobrać poziom sygnału tak, aby nie występowały w kompresorze duże zniekształcenia nieliniowe przy dużej amplitudzie napięcia sterującego. Zastosowanie wtórnika I jest niezbędne, gdyż nie można potencjometru poziomu sygnału (siły głosu) Pl włączyć w obwodzie siatki pierwszej lampy V2. Takie włączenie powodowałoby niepożądaną zmianę barwy dźwięku pod-
czas regulacji wzmocnienia. Lampa V2 jest pentodą regulacyjną, pracującą w układzie wzmacniacza o wzmocnieniu regulowanym napięciem. Poprzez rezystor R4 jest podawane na siatkę tej lampy napięcie regulujące. Lampa V2 pracuje przy niskim napięciu anodowym i niskim napięciu siatki osłon-nej (drugiej). Dzięki temu lampa pracuje z nieco "krótszą" charakterystyką przejściową niż pokazano na rys. 1. Jest to istotne, ponieważ uzyskanie napięcia regulującego rzędu 20...30 V sprawiałoby duże trudności. Druga połowa lampy VI pracuje we wtórniku II, który zapewnia małą rezystancję wyjściową układu. Lampa V3 stanowi dwustopniowy wzmacniacz pomocniczy. Sygnał z tego wzmacniacza jest podawany na dwa prostowniki: pierwszy z diodą D2, zasilający lampę V5 (wskaźnik wysterowania-
Tab. 1. Nastawy parametrów regulatorów kompresora przy wyznaczaniu charakterystyk pokazanych na rys. 5
Nr charakterystyki Wskazanie lampy Nixie Próg kompresji Twardość ograniczania Ustawienie poziomu kompresji
1 0 OmV minimalna maksymalne
2 0 50 mV minimalna maksymalne
3 0 100 mV minimalna maksymalne
4 0 400 mV minimalna maksymalne
5 9 OmV minimalna maksymalne
6 9 100 mV minimalna maksymalne
7 9 200 mV minimalna maksymalne
8 9 200mV maksymalna maksymalne
9 9 200mV maksymalna 1/2
10 6 200mV maksymalna 3/8
11 9 200mV maksymalna 3/8
WYKAZ ELEMENTÓW
Rezystory
Rl, R8: 22kil/0,óW 1% R2, R6, R9, R16, R19: 510il/0,óW 1% R3: 10 kil/0,6W 1% R4, R5, R12, R13, R29: 470kil/0,óW 1% R7, R14, R17, R27: lMil/0,6W 1% RIO: 5,lkil/0,óW 1% Rl 1, R20: 15 kil/0,6W 1% R15: 100kil/0,6W 1% R18, R22, R30: 47 kil/0,6W 1% R21: 560 kil/0,6W 1% R23, R24: 220 kil/0,6W 1% R25: 5,6 kil/0,6W 1% R2ó: 2,4 kil/0,6W 1% R28: 330 kil/0,6W 1% Pl: IMil potencjometr logarytmiczny
0,7 P2, P3, P4: IMil potencjometr
liniowy
P5: 47 kil potencjometr liniowy Pó: 220 kil potencjometr liniowy P7: IMil potencjometr montażowy Kondensatory
Cl, C2, C4, C10: 47 nF/400V C3, C9, Cli: 47|iF/25V C5: 10|iF/350V Có: l|iF/400V C7, C8: 22|iF/400V Cl 2, Cl 8, C21: 100nF/400V C13: 150nF/400V C14: l|iF/100V C15: 4,7|iF/100V Cló, C17: 100|iF/400V C19: 220|iF/400V C20: 10nF/400V Półprzewodniki Dl, D2: 1N4007 D3: C1V2 D4: C2V4 D5: C2V7 Dó: C3V9 D7: C4V7 D8: C5Vó D9: CóV8 D10: C8V2 Dli: C10 D12: C12
Prl: mostek prostowniczy 1A/8OOV Lampy
VI, V3: ECC88 V2: EF89
V4: EM800 lub EM 87 V5: EM84, EM800 lub EM 87 V6: Z566M lub LC-631 Różne
2 gniazda chinch Bl: bezpiecznik 400 mAT Wl: przełącznik 2-pozycyjny 1-sekcyjny
W2: przełącznik 12-pozycyjny 2-sekcyjny W3: 2-pozycyjny Transformator wg opisu
Elektronika Praktyczna 11/2003
Lampowy kompresor dynamiki sygnału audio
Rys. 6. Schemat elektryczny lampowego kompresora dynamiki sygnału audio
Elektronika Praktyczna 11/2003
29
Lampowy kompresor dynamiki sygnału audio
EF89, EF183
Rys. 7. Rozkład wyprowadzeń lamp próżniowych zastosowanych w urządzeniu
poziomu sygnału na wejściu), drugi z diodą Dl, wytwarzający napięcie regulujące. Listki lampy V5 reagują stosunkowo wolno na zmiany sygnału sterującego, co jest spowodowane znaczną pojemnością kondensatora C21 i dużą opornością potencjometru P7.
Z potencjometru P6 jest uzyskiwane napięcie polaryzacji diody Dl (w kierunku zaporowym). To napięcie powoduje, że prostownik zaczyna przewodzić, gdy poziom sygnału przekroczy wartość napięcia polaryzacji. Innymi słowy, potencjometr P6 jest regulatorem progu zadziałania. Uzyskane napięcie regulujące jest filtrowane przez kondensator Cl 3. Rezystor R23, potencjometr P3 i kondensator C14 (lub C15) tworzą obwód całkujący. Stała czasowa tego obwodu zawiera się od 0,22 s do 1,22 s (lub od około 1 s do około 5,7 s). Obwód odpuszczenia okreś-
lający czas (zależny od jego stałej czasowej) tworzą elementy: C14 (C15), R24, P4 i P2. Stała czasowa tego obwodu od ok. 0,18 s do 0,55 s (lub 0,84 s do 4 s).
Napięcie regulujące jest ograniczane za pomocą jednej z dziewięciu diod stabilizacyjnych. Przy ostatnim położeniu przełącznika W2 nie jest włączana żadna dioda. Uzyskuje się wtedy największą wartość napięcia regulującego (największa kompresja). Dzięki ograniczaniu napięcia regulującego uzyskuje się ąuasi-prostoliniową charakterystykę za kolanem (rys. 5). Szeregowo z diodą stabilizacyjną jest włączony potencjometr P5. Umożliwia on "osłabienie" wpływu stabilizacji napięcia regulującego, przez co uzyskuje się większą lub mniejszą nierównomier-ność charakterystyki za kolanem. Potencjometr P2 umożliwia płynną regulację napięcia Ureg.
Lampa V4 jest w istocie wskaźnikiem napięcia regulującego. Pożądana jest duża czułość tej lampy. Z tego względu odpowiednie są lampy typu EM800 i EM87. Lampa Nixie V6 jest wskaźnikiem nastawy ogranicznika.
Układ jest zasilany z transformatora sieciowego. Wyprostowane przez mostek Graetz'a napięcie anodowe jest wygładzane w wielo ogniwowym filtrze RC, złożonym z elementów C7, C8, C16, C17, C18, C19, Rll, R25 i R26.
Montaż i uruchomienie
Układ modelowy zbudowano na podstawie z blachy ocynkowanej, wygiętej w "U" grubości 1,5 mm. Szerokość podstawy 200 mm, długość 400 mm, wysokość 60
mm. Lampy VI, V2 i V3 powinny być ekranowane metalowymi kubkami. Przewody dołączone do siatek tych lamp także powinny być ekranowane.
Transformator sieciowy powinien dostarczać napięcie 6,3 VAC do żarzenia lamp (natężenie 2 A), napięcie anodowe 190 VAC (natężenie 60 mA). Rozkład wyprowadzeń lamp znajduje się na rys. 7.
Układ powinien działać po prawidłowym montażu. Należy jedynie potencjometr P7 ustawić tak, aby przy sygnale wejściowym 1 V (wartość skuteczna) i częstotliwości 1000 Hz świecące listki lampy V5 prawie zeszły się. Po przekroczeniu napięcia sterującego 1 V i ustawieniu potencjometru Pl na maksimum, mogą wystąpić zniekształcenia nieliniowe. To niebezpieczeństwo będą sygnalizowały schodzące się listki lampy V5, dlatego warto przeprowadzić regulację P7 poziomu sygnału na siatce V5.
Jeśli ktoś nie chce "świecących bajerów" może znacznie uprościć układ kompresora usuwając z niego elementy: V4, V5, V6, R12, R13, R27, R28, R29, R30, D2, P7, C20 i C21. Przełącznik W2 może być wtedy jednosekcyjny.
Działanie kompresora możemy wypróbować włączając go między źródło sygnału a wzmacniacz. Najlepiej, jeśli sygnał będzie się charakteryzował dużymi zmianami dynamiki. Wtedy będzie można łatwo zauważyć przy pewnych ustawieniach elementów regulacyjnych, że następuje wyrównanie dynamiki.
Aleksander Zawada, AVT aleksander.zawada@ep.com.pl
30
Elektronika Praktyczna 11/2003
PROJEKTY
Moduły interfejsów szeregowych
AVT-553/USB232 AVT-553/USB245
AVT-553/RS232
Działanie wielu urządzeń
polega na wymianie danych,
najczęściej z komputerami.
Popularnym i prostym
sposobem jest wykorzystanie
w tym celu pońu
szeregowego, który jest
dostępny we wszystkich
komputerach stacjonarnych
lub przenośnych. Do
niedawna niepodzielnie
panował RS232, teraz coraz
częściej jest stosowany
interfejs USB.
Od strony mikrokontrolera
do obsługi takiego połączenia
potrzebna jest zarówno część
sprzętowa, jak i trochę
oprogramowania realizującego
transmisję. W ańykule
pokażemy, jak można to
zrobić w urządzeniach
opańych na mikrokontrolerach
z rodziny '51 i AVR.
Rekomendacje: informacje
przedstawione w ańykule
przydadzą się konstruktorom
samodzielnie budującym
urządzenia cyfrowe, które
kom unikują się z otoczeniem
za pomocą połączeń
przewodowych.
Jaki standard wybrać?
Przez długie lata urządzenia zewnętrzne można było podłączyć do komputera na dwa sposoby: albo poprzez równoległy port drukarkowy (Centronics), albo poprzez port szeregowy RS232. Wiele mikiokontiolerów jednoukłado-wych, w tym prawie wszystkie z rodzin '51 i AVR, posiada mechanizmy ułatwiające wymianę danych w uproszczonym formacie RS232. Oznacza to, źe nie ma potrzeby pisania specjalnego oprogramowania przeznaczonego do obsługi transmisji i odbioru ramki pojedynczego znaku. Wystarczy jedynie wpisać właściwe dane do kilku rejestrów i zainicjować odpowiednie przerwania, dalej cała transmisja przebiega w sposób prawie niewidoczny dla głównego pr o gr amu miki okontiol er a . Nie -zbędny jest jeszcze konwerter poziomów najczęściej wykorzystujący układ MAX232 lub jego odpowiednik. Ostatnimi laty pojawiła się jednak nowa możliwość -port USB.
Coraz więcej komputerów PC jest wyposażanych w ten właśnie rodzaj interfejsu. Coraz częściej jest to jedyny, dostępny w komputerze port. USB ma kilka istotnych zalet, np.: dość dużą prędkość transmisji, możliwość podłączania wielu urządzeń peryferyj-
nych, dostęp do stabilizowanego napięcia +5 V oraz możliwość bezpiecznego dołączania i odłączania urządzenia do/od włączonego komputera.
Bardzo wygodne dla konstruktorów rozwiązanie zaproponowała firma FTDI, wprowadzając na rynek układy interfejsowe FT8U232 i FT8U245. Są to scalone konwertery USB2.0 na doskonale znany RS232 lub wyjście równoległe. Oba te układy były już opisywane w EP i nie ma teraz potrzeby dokładnego omawiania sposobu ich działania. Zajmiemy się natomiast możliwością ich zastosowania jako interfejsów układów z mikrokontiolerami oraz sposobem ich oprogramowania.
Trzy moduły interfejsów
Na rys. 1, 2 i3 pokazano schematy trzech modułów interfejsowych, w których zastosowano układy: FT8U232 (moduł USB232), FT8U245 (moduł USB245) oraz konwerter poziomów MAX232 (moduł RS232). Wszystkie moduły mają wymiary nie większe niż standardowy układ scalony w obudowie DIP32 i można je umieścić w podstawce o takim rozmiarze.
Każdy moduł jest kompletnym interfejsem sprzętowym pomiędzy mikrokontrolerein a portem USB lub
Elektronika Praktyczna 11/2003
31
Moduły interfejsów szeregowych
vcc
P19 EECS
P20
EECLK
P21 EEDAT
TXDEN
XVOUT TXLED# #
EECS
EESK PWRCTL EEDATA PWREN# TEST SLEEP#
/SLEEP
Rys. 1. Schemat elektryczny modułu USB232
RS232. Moduły były opraćowane z myślą o wzajemnej kompatybilności i przykładowo moduł USB232 można stosować wymiennie z układem RS232 i w prosty sposób osiągnąć możliwość współpracy mikro-kontrolera zarówno z portem USB, jak i RS232 bez konieczności zmian na płytce drukowanej układu mik-rokontrolera.
Wszystkie moduły są standardowymi aplikacjami zastosowanych układów scalonych. Do prawidłowej pracy układów FT8U232/245
vcc
konieczne jest ich połączenie kablem USB z komputerem, na którym zainstalowane są odpowiednie sterowniki. Moduły zasilane są z portu USB i do ich inicja-lizacji nie jest potrzebne włączenie urządzenia, w którym pracują. Co więcej, z wyprowadzeń ozna-
vccvcc
o o
C4-33n
P32 GND
P26 V+
P22[
P29[
reor
P3ir
C1 100n
R5[ 470l
P27 RSTOUT
P23 r
EECSL
P24 r
EECLKL
P25 r eedatI
3V3OUT
RSTOUT#
XTOLTT
czonych symbolem V+ można czerpać niewielki prąd o wartości kilkunastu miliamperów z gniazda USB poprzez opornik zabezpieczający 4,7Q montowany na płytkach układów USB245 i USB232. Z kolei moduł RS232 zasilany jest z urządzenia, w którym pracuje. Ponieważ jest to tylko konwerter poziomów TTL/RS2 32, do jego działania nie jest potrzebna ini-cjalizacja ani połączenie z komputerem.
Wyprowadzenia układów USB232 i RS232
Wszystkie układy zostały zaprojektowane tak, aby mogły być umieszczone w typowej podstawce DIP32, co ułatwia ich szybką wymianę. Jednak liczba wyprowadzeń płytki modułu jest mniejsza niż 32. W module USB232 nie są wyprowadzone styki 13... 16 oraz 17...20, natomiast w RS232 styki 13, 16, 17 i 20.
Moduły USB232 i RS232 są ze sobą kompatybilne jeśli chodzi o wyprowadzenia najważniejszych sygnałów. Oznacza to, że można je stosować wymiennie i zależnie od potrzeb wyposażać układ mik-rokontrolera w interfejs USB lub RS232. W przypadku modułu
U1 FT245BM
vcc
_C2 "100n
-C3 100n
1P28 PWREN
Rys. 2. Schemat elektryczny modułu USB245
32
Elektronika Praktyczna 11/2003
Moduły interfejsów szeregowych
P2
n.c.
t
P8
P9 n.c.
LLJ/DTT1
Ó
vcc
Rys. 3. Schemat elektryczny modułu RS232
USB232 funkcje poszczególnych wyprowadzeń są w zasadzie kopią wyprowadzeń układu FT8U232BM, który stanowi interfejs pomiędzy linią USB a sygnałami interfejsu RS232. Dokładny opis poszczególnych sygnałów można znaleźć w dostępnych opisach standardu RS lub w dokumentacji technicznej układu scalonego do pobrania ze strony producenta www.ftdi-chip.com (materiały tej firmy publikujemy na CD-EP11/2003B).
Kompatybilność obydwu modułów istnieje na poziomie najprostszej i najpopularniejszej transmisji portem RS z wykorzystaniem jedynie linii TxD, RxD i masy. Moduł USB232 posiada wyprowadzenia wszystkich sygnałów RS232 dla złącza DB9. W module USB232 można wykorzystać
dwie linie sterujące (sygnały /DSR i /DTR), co umożliwia sterowanie przepływem danych pomiędzy mikrokontrolerem i komputerem. Na rys. 4 i 5 pokazano najprostsze warianty połączenia modułów Ml i M3 z mikrokontrolerem typu '51.
Wyprowadzenia układu USB245
Moduł USB245 jest interfejsem pomiędzy portem USB a dowolnym 8-bitowym portem mikrokon-trolera. Kilka dodatkowych linii steruje przepływem danych pomiędzy modułem a mikrokontrolerem. Funkcje wyprowadzeń modułu przedstawiono w tab. 1. Przykładowe połączenie modułu USB245 z mikrokontrolerem pokazano na rys. 6.
Tab. 1. Funkcje wyprowadzeń modułu USB245
Nr Nazwa Kierunek opis
1 RXF OUT stan niski oznacza, że bajt danych do odczytu z modutu jest dostępny
2 "(XE OUT stan niski oznacza, że modut jest gotów do przyjęcia kolejnego bajtu danych
3 WR IN zapis do modutu bajtu danych zboczem opadającym
4 RD IN odczyt z modutu bajtu danej zboczem narastającym
5 D7 l/O b.7 bajtu danych
6 D6 l/O b.6 bajtu danych
7 D5 l/O b.5 bajtu danych
8 D4 l/O b.4 bajtu danych
9 D3 l/O b.3 bajtu danych
10 D2 l/O b.2 bajtu danych
11 D1 l/O b.1 bajtu danych
12 DO l/O b.O bajtu danych
21 GND masa
22 n.c.
23 EECS l/O sygnat selekcji, jeśli stosowany jest zewnętrzny EEPROM
24 EECLK OUT zegar transmisji danych, jeśli stosowany jest zewnętrzny EEPROM
25 EEDAT l/O sygnat danych, jeśli stosowany jest zewnętrzny EEPROM
26 V+ OUT zasilanie z gniazda USB
27 RS1DJT OUT wyjście wewnętrznego generatora resetu
28 PWREN OUT stan niski w czasie konfiguracji modutu
29 n.c.
30 n.c.
31 n.c.
32 GND masa
DB8
EA/VP KTAL.1
CTAL2
RESET
P32IWTO P3.3INT1 P3.4T0 P35T1
P1.0 P1.1 P1.2 P13 P1.4 P15 P1.6 P1.7
P0.0 PO.1 P0.2 PO.3 P0.4 P0.5 P0.6 P0.7
P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7
P3.7 HD
P3.6WR
PSEN
ALE/PROS
P3.1 TXD
P3.0 RXD
+5V
9
Moduł USB232
USB
Rys. 4. Sposób dołączenia modułu USB232 do mikrokontrolera
Rys. 5. Sposób dołączenia modułu RS232 do mikrokontrolera
Elektronika Praktyczna 11/2003
33
Moduły interfejsów szeregowych
EA/VP
P1.0 P1.1
P1.6
P0.0 P0.1 P0.2 P0.3 P0.4 PO.S P0.6 P0.7
P2.0 P2.1 P2.2 P2.3 P2.4 P2.5
P3.6WR
PSEN
ALE/PROG
P3.1TOD
P3.0FKD
12 11 10 9 6
Moduł USB245
Rys. 6. Sposób dołączenia modułu USB245 do mikrokontrolera
Sterowniki
Układy interfejsowe FT8U232BM i FT8U245BM, aby móc prawidłowo pracować, wymagają zainstalowania specjalnych sterowników na komputerze PC, do którego są podłączane. Sterownik zostaje uaktywniony w momencie dołączenia do gniazda USB modułu z wymienionymi układami. Działanie sterownika powoduje, że port USB widziany jest w systemie komputerowym jako kolejny port COM obsługiwany w taki sam sposób jak wszystkie inne porty RS232. Dzięki temu programy potrafiące obsługiwać porty COM będą mogły korzystać z USB bez konieczności jakiejkolwiek przeróbki.
Sterowniki dla różnych systemów operacyjnych nieodpłatnie udostępnia firma FTDI na stronie internetowej www.ftdichip.com/ FTDriver.htm. Ich instalacja jest bardzo prosta. Po ściągnięciu pliku sterownika odpo- ^^^ wiedniego do wersji sys- ^^B temu operacyjnego, w którym będzie pracował, należy plik rozpakować do tymczasowego katalogu na dysku. Następnie za pomocą kabla należy połączyć moduł z komputerem. Po wykryciu dołączonego modułu system operacyjny automatycznie przeprowadza instalację sterownika, należy tylko podać katalog, w którym znajdują się rozpakowane pliki. Każde kolejne dołączanie modułu do komputera będzie już automatycznie uaktywniało odpowiedni sterownik, który już będzie w systemie.
Współpraca miKroRontrolerów z modułami
Moduły USB232 i USB245 umożliwiają korzystanie z portu USB na nieco odmienne sposoby. Pierwszy - w przypadku zastosowania modułu USB245 - jest prostszy. Sprowadza się do badania stanu linii RXF i TXE sygnalizujących stan gotowości modułu do transmisji lub konieczność odczytu z modułu kolejnego bajtu. Niski stan obydwu linii sygnalizuje gotowość do kolejnej transmisji lub zakończenie odbioru bajtu. W przypadku transmisji mikrokontroler powinien wysłać na linie DO...7 poziomy odpowiadające wysyłanemu bajtowi i wygenerować ujemny impuls na linii WR. W przypadku odczytu dana pojawi się na liniach DO... 7 po podaniu stanu niskiego na linię RD.
W Wszystko na CD-EP11/2OO3B
Najnowsze wersje sterowników, noty katalogowe
oraz oprogramowanie narzędziowe dla układów
produkowanych przez firmę FTDI publikujemy
na CD-EP11/2OO3B.
Taka prostota okupiona jest jednak koniecznością zaangażowania aż 12 linii portów. Jeżeli w mik-rokontrolerze brakuje wolnych lini-i, które można przeznaczyć do tego celu, trzeba zastosować szeregową transmisję i moduł USB232. W mik-rokontrolerach z rodzin '51 lub AVR wydzielono dwie linie sterujące, które oprócz uniwersalnych zastosowań jako wejścia/wyjścia mogą
także pełnić funkcję wyprowadzeń sprzętowego interfejsu szeregowego. Linie te oznaczone są symbolami TxD i RxD (lub podobnymi). Pierwsza przeznaczona jest do wysyłania danych w trybie szeregowym, a druga do odbioru danych. Aby je uaktywnić, należy wpisać odpowiednie wartości do kilku rejestrów mikrokontrolera oraz napisać trochę oprogramowania do obsługi transmisji szeregowej przez mikrokontroler.
Ważną decyzją jest określenie sposobu obsługi transmisji. Można zaprogramować mikrokontroler tak, aby sygnalizował jedynie odczyt bajtu lub gotowość do wysłania kolejnego, a program główny będzie musiał sam zadbać o właściwą reakcję na zasygnalizowane w ten sposób zdarzenia. Nie jest to najwygodniejsze rozwiązanie, gdyż zmusza główny program do ciągłego sprawdzania, czy nowe dane już się pojawiły lub czy można już wysłać resztę. W dodatku jeżeli przegapi się odpowiedni moment, kolejny przychodzący bajt może być wpisany na miejsce poprzedniego jeszcze nieodebranego przez program główny zajęty np. długotrwałymi obliczeniami. Znacznie wygodniej zdać się na obsługę transmisji przez przerwania -małe podpro-gramy działające niezależnie od programu głównego w tych momentach, gdy trzeba coś zrobić z transmisją szeregową. Takie oprogramowanie mikrokontrolera nie jest wcale trudne i pokażemy, jak można to zrobić.
W przykładach zostaną użyte dwa bufory: nadawczy i odbiorczy o rozmiarze 8 bajtów każdy. Poza tym będą wykorzystywane 3 rejestry mikrokontrolera dla liczników bajtów w buforze nadaw-czym i odbiorczym, wskaźnika aktualnej pozycji w rejestrze nadawczym oraz dwa bity flag sygnalizujących fakt opróżnienia bufora nadawczego i umieszczenia w buforze odbiorczym kolejnego bajtu odebranego portem szeregowym.
Jak to zrobić
w programie dla '51?
Przykład oprogramowania nadzorującego transmisję w mikrokon-trolerze z grupy '51 zaczniemy
34
Elektronika Praktyczna 11/2003
Moduły interfejsów szeregowych
List. 1 Program obsługi przerwania od portu szeregowego
;prze rw an ie portu szeregowego
Rs_prze rw anie:
push a cc zachowanie zawart ośc i rejestrów
push r 0 użytych w procedurze przerwania
jb s co n. 1,rs_t przerwanie zosta] o s powodowane wysłaniem poprzedniego bajtu
obsługa odczytu k ole jnego bajtu
clr sc on .0 zerowanie flagi o dbi oru bajtu w rejestrze SCON
mov a, łb ufor od niorczy
add a, li cznik_o debranych_baj tów
mov ro a obliczenie adresu do zapisu w buforze odbiorczym
mov @r ó, sbuf odebrany bajt z r eje stru SBUF do buforu odbiorczego
inc li cz nik_odebranych_bajtów zwiększenie licznika bajtów W buf orze
setb r s rec_flag ; ustawienie fl agi odbioru bajtu
jmp rs _tl
rs t: ;obsługa wysłania koi ejnego bajtu
clr sc on .1 ;w rejestrze SCON zer owanie flagi zakończenia transmis ji bajtu
mov a, li cznik_wysylanych_baj tow
jnz rs _t2
; Wszystkie bajty z ost ały wysłane
setb r s_ trans_flag ;ustawie nie flagi sygnalizującej wysłanie ws zystkich znaków
jmp rs _tl
rs_t2
mov a. WS Ś;aznik_pozycj i_w_buf orze
add a, łb ufor_nadawczy ;pozyej a W juforze kolejnego bajtu do wysłań ia
TfLOV rO , a
mov a, @r 0 ;pobranie kolejneg o z naku do wysłania
mov sbuf ,a ; znak do rejestru wyj ściowego SBUF
inc WS Ś;a znik_pozycj i_w_buf orze
dec li cz nik_wysylanych_bajtow
rs_tl
pop rO ;odtworzenie stanu re jestrów
pop ac c ;używanych w proce durze przerwania
reti
List. 2. Program konfigurujący UART
;podp rogr am lnlc]ac]J transmisji szeregowej
; 9 600 bod ów, 8 bitów danych, 1 bit stopu
;dla kwar cu mikrokontrolera 11.059MHZ
lnic] acja
mov SCON ', #50h ustawienie w rejestrz e SCOW trybul: 8 bit ów danych 1 bit stopu
mov TMOD , #20h transmisja będzie takto wan a zega rem Tl
inov TH1, łOFDh Wartości początkowe w pi syw ane do re] es tró vi
inov TLI, #0FDh zegara Tl dla szybkoś ci tr ansmis ji 3600 b odów
ani PC ON , #07Fh zerowanie bitu SMOD w r eje strze PC ON
setb TRI Włączenie zegara Tl
setb ES zezwolenie na przerwa ni e p ortu s zeregt weg o
setb EA globalne zezwolenie n a prz erwani a
clr rs r ec_flag kasowanie flagi sygna lizującej o dbiór bajtu
mov licz nik_odebrany ch_bajtów, #0 ;zerowani e lit znika odebr snyc h bajtów
ret
omawiać od końca, czyli od pod-programu obsługi przerwania.
W '51 istnieje tylko jedno przerwanie związane z transmisją szeregową. Na początku trzeba więc ustalić, czy przerwanie zostało wywołane odbiorem kolejnego znaku, czy zakończeniem wysyłania poprzedniego. I zależnie od tego albo odczytany bajt "wyląduje" w buforze odbiorczym, albo kolejny bajt zostanie pobrany z bufora nadawczego i wysłany w świat. Przykładowy program realizujący to zadanie pokazano na list. 1
Zanim przerwanie zacznie funkcjonować, należy najpierw ustawić parametry transmisji sze-
Tab. 2. Wartości wpisywane do T1 dla różnych prędkości transmisji dla częstotliwości kwarcu 11,059 MHz
regowej: szybkość, liczbę bitów startu i stopu, zainicjalizować rejestry i flagi związane z transmisją oraz włączyć obsługę prze-
rwań. Dla wygody najlepiej to zrobić w osobnym podprogramie, na przykład takim jak pokazano na list. 2.
Szybkość transmisji portu szeregowego zależy od 3 czynników: częstotliwości kwarcu użytego w oscylatorze mikrokontrolera, wartości początkowej wpisanej do licznika Tl i ustawienia bitu SMOD w rejestrze PCON. W praktyce oznacza to, że niektórych szybkości transmisji nie można osiągnąć, jeśli częstotliwość kwarcu będzie zbyt mała. Standardowe szybkości transmisji w zakresie 1200...19200 bodów można osiągnąć stosując kwarc o częstotliwości 11,059 MHz. W tab. 2 zestawiono wartości początkowe wpisywane do zegara Tl i ustawienie bitu SMOD dla poszczególnych szybkości.
W przypadku zastosowania innego kwarcu skazani jesteśmy na eksperymentalne dobieranie wartości początkowej wpisywanej do zegara Tl. Program należy jeszcze uzupełnić o deklarację użytych rejestrów przeznaczonych do obsługi transmisji, a także wpisać pod odpowiednim adresem wektor przerwania portu szeregowego, co pokazano na list. 3.
Na list. 4 pokazano kilka linii kodu, które powinny znaleźć się w programie głównym, aby mieć dostęp do danych odebranych
List. 3. Deklaracja rejestrów przeznaczonych do obsług transmisji oraz
ustalenie wektora przerwania portu szeregowego
licznik_odebranych_bajt W EQU 30H liczr ik bajtów W buforze odbi orczym
licznik_wysylanych_bajt W EQU 31H liczr ik bajtów W buforze nada riczym
Wskaznik_pozycji w bufo -ze EQU 3 2H Wska nik pozyc i w buforze na dawczym
flagi EQU 20h adre bajtu fl g
rs_rec_flag BIT flagi 0 flag sygnaliz cji odbioru ba jtu
rs trans flag BIT flagi 1 flag= zakończeń ia transmisji b ajtów z buforu nadawczego
ROZMIAR_BUFORÓW EQU 8 deki racja roz niaru buforów
bufor_odbiorczy: DS ROZMIAR_BUFOROW
bufor nadawczy: DS ROZMIAR BUFORÓW
ORG 2 3H
jmp Rs_przerwanie Wekt r przerwa ia portu szere gowego
Szybkość SMUU Wartość wpisywana do T1
19200 1 #FDh
9600 0 #FDh
4800 0 #Fah
2400 0 #F4h
1200 0 #E8h
List 4.
mov c, rs_rec_fl ag
jnc jufor pusty w bufo rze odbiorc zym nie m a owych ba ]t ów
clr ES z a blok owanie prze rwania po rtu szere go We go
mov rO,# bufor_o dbiorczy
petl a odczytu:
mov a, @r0 w reje strze akumulatora ba ]t odczyt an y z bufo ra
tutaj tod program u zwiąż an y wykorzy st aniem bajtów
rO P rzesł anych porte m szere go wy n z PC- ta
djn z licznik_o< ebranych_ b ajtów, pętla odczytu
clr rs_rec_flag k asowa nie flagi s ygnalizuj ącej odbi ór d anych
setb ES P onown e włączenie przerw an ia
bufo r_pusty:
lnic jacja transm isji porte Tl szere gowym może wygląda ć na stępują cc
k od pr ogramu zapi sujący do buforu n ad aw czego jaj ty danych
d o wys łania porte m szere go wy a
mov licznik_wys ylanych_ ajt ow, tt i 1 G_ba j tów ; Wpis an ie do lic zn ik a iloś ci
; wys yłanych bajt ów
mov Wskaznik_po zycji_w_ ufo rze, #0
mov rO,łbufor n adawczy
mov a,@r0 ; W akum ulatorze pi erwszy ba ]t do wys ła ni a
inc Wskaznik_po zycji w bufo rze
dec licznik wys ylanych_ ajt ow
mov SBUF, a ; z apis do SBUF pie rwszego b aj tu inic juje trans misję
; z a wart ości bufora nadawe ze go
clr rs trans f] ag
Elektronika Praktyczna 11/2003
35
Moduły interfejsów szeregowych
List. 5. Program odpowiadający za obsługę przerwania
; prze rwan ie odebran ia k olejnego znaku z portu RS
UART_ RXC:
push tem P ;zachowanie za Wartość i rejes trów
push ZH ;użytych w pro ce durze przerw ania
push ZL
in t emp, SREG
push tem P
ldi ZH,HIGH(bufor_ odb i orczy)
ldi ZL.LOW (bufor o dbi o rczy)
add ZL, licznik_od ebr a nych_bajtów
clr temp obliczenie po zycji w buforz e odbiorczym
adc ZH.t emp do zapisu ode oranego bajtu
in t emp, UDR W rejestrze t emp ode jrany b ajt
st Z , tem P zapis bajtu w buforz e odbio rczym
inc licz nik_odebra nyc h ba tów ;ZWięks ^enie licznika bajtów W buforze
sbr flag i, 1<< rs_ rec - fla g ;ustawi śnie fl agi syg lalizującej odbiór bajtu
pop temp odtworzenie s tanu re jestrów
out SREG , temp używanych w p rocedurze prze rwania
pop ZL
pop ZH
pop temp
reti
; prze rwan ie zakończ eni transmisji kole] nego zn aku
UART_ TXC:
push tem P ;zachowanie za Wartość i rejes trów
push ZH
push ZL
in t emp, SREG
push tem P
cpi licz nik_wysyla nyc h _bajtow, 0
brnę uatl
;Wszystkie zna ki zost ały wys łane
sbr flag i, 1<< rs_ tra n s_flag ;ust awienie flagi sygnalizującej wysłanie
; Wszy stki ch znaków
rjmp uat2
uatl: rtransmisia ko lejnego znaku
ldi ZH, HIGH( bufor na d awczy)
ldi ZL, LOW(bufor_ nad a wczy)
add ZL, Wskaznik_p ozy c ji_W_buforze
clr temp
adc ZH, temp ;pozycja w buf orze ko lejnego bajtu do wysłania
Id t emp, Z
out UDR, temp ; wysyłany znak do re; estru transmisji UART
inc Wska znik_pozyc j i_w_buforze
dec licz nik_wysyla nyc h _baj tow
uat2:
pop temp
out SREG , temp
pop ZL
pop ZH
pop temp
reti
List. 6. Podprogram inicjacj parametrów transmisji szeregowej
;podp rogr am inicjacji tran smls]1 sze regowej
i 19 20 0 bo dów, 8 bitów dany ch, 1 bit stopu
;dla kwar cu mikrokontroler a 10MHZ
Inic] acja
ldi temp , 32 Warto ś ć podzielnika dla szybkości 1920O
out UBRR , temp
sbi UCR, TXEW Włączę nie części nadawcz ej
sbi UCR, RXEW Włączę nie części odbiorc zej
sbi UCR, RXCIE zezwo: enie na przerwanie po odbiorze znaku
sbi UCR, TXCIE zezwól enie na przerwanie po zakończeniu nadawania znaku
cbr flag i, 1<< rs_rec_fla g kasowa nie flagi sygnalizującej odbiór znaku
sei ogólne zezwolenie na prz erwania
ret
portem szeregowym oraz instrukcje inicjujące transmisję portem szeregowym.
Ustawienie w stanie wysokim flagi rs_trans_flag będzie sygnalizowało zakończenie transmisji zawartości bufora nadawczego.
Jak to zrobić
w programie dla
mikrokontrolera AVR?
Podobny program dla mikrokontrolera z grupy AVR będzie wyglądał trochę inaczej. Powodem jest zarówno inna składnia asem-blera, jak i różnice konstrukcyjne obydwu mikrokontrolerów. Na przykład mikrokontrolery AVR ofe-
rują więcej przerwań, w tym osobne dla odczytu bajtu i osobne dla zakończenia transmisji bajtu. Tak jak w przypadku '51 zacznijmy od obsługi przerwania (list. 5).
Rys. 7. Schemat montażowy modułu USB232
Jo
Rys. 8. Schemat montażowy modułu USB245
[aaooooooooo-o |ojb
Rys. 9. Schemat montażowy modułu RS232
Ustawienie parametrów transmisji, tak jak i w poprzednim przykładzie, odbywa się za pomocą podprogramu inicjalizacji, którego listing pokazano na list. 6. Ze względu na większą szybkość działania mikrokontrolerów AVR, łatwiej jest osiągnąć standardowe szybkości transmisji bez względu na rodzaj zastosowanego kwarcu w generatorze. Wzór pozwalający wyliczyć szybkość transmisji w zależności od częstotliwości kwarcu i wartości wpisanej do rejestru UBRR ma postać:
BAUD =fclk/16*(UBRR-l), gdzie:
BAUD - szybkość transmisji w bitach/sekundę, fclk - częstotliwość oscylatora
mikrokontrolera,
UBRR - wartość wpisana do rejestru.
List. 7. Deklaracja zastosowanych rejestrów AVR i ustawienie wektorów
skoków
.DEF lic zn ik_o de brany ch_ aj tów = rl6 licz nik baj tów W ouforz e o dbi orczym
.DEF licznik_wysylanych_ aj tow = rl7 licz nik baj tów W ouforz e n a da wczym
.DEF Wskaźnik pozycji w uforze = rl8 Wska źnik pozy ej i W buf o rze na dawczym
.DEF flagi = rl9 adre s bajtu flag
.DEF temp = r2 0 reje str pomocniczy
EQU rs rec flag = 0 flag a sygnalizacji odbi oru ba jtu
EQU rs trans flag = 1 flag a zakończenia trans mis ]i oajtów z buforu nadawczego
EQU ROZMIAR_BUFOROW = 8 deki aracja rozmia ru buf oró W
.DSEG
bufor .odbiorczy: .BYTE ROZMIAR _BUFORÓW
bufor _nadawczy: .BYTE ROZMIAR _ BUFORÓW
.ORG 0x0 9
rjmp UART_RXC Wekt or przerwania odbio ru koi ejnego znaku z RS-a
.ORG 0x0 b
rjmp UART TXC Wekt or przerwania ukońc zen ia transmisji kolejnego znaku
36
Elektronika Praktyczna 11/2003
Moduły interfejsów szeregowych
List. 8. Program odpowiadający za dostęp do przesłanych danych
sbrs flagi, rs_rec_flag
rjmp bufor_pusty W buforze odb iorczym nie ma nowych bajto W
ldi ZH,HIGH(bufor_odbiorczy)
ldi ZL,LOW(bufor_odbiorczy)
cbi UCR, RXCIE wyłączenie ze ZWolenia na przerw anie po o dbiorze znaku
pętla _o dc zy tu :
Id t emp,Z+ W temp bajt o dc zytany z ouforu odbiorcze go
tutaj kod pro gramu zwiąż any z wykorzysta niem bajtów
przesłanych p ortem szere gowym z PC-ta
dec licznik_odebranych_bajt ó Śi
bme petla_odczytu
cbr flagi, 1 rs_rec_flag kasowanie fla gi sygnalizującej odbiór ba jtu
sbi UCR, RXCIE Włączenie zezwolenia na przerwa lie po o' oiorze znaku
bufor_pusty:
lnic] acja transmisji:
;kod programu zapisujący do buf o ru nadawc zego bajty danych
;do wysłania p ortem szere gowym
ldi licznik_wysylanych_bajt ow, tile_bajtów ;Wpisani 3 do lic znika ii ości
;wysyłanych bajtów
clr Wskaznik_pozycj i_w_bufo rze
ldi ZH,HIGH(bufor_nadawczy)
ldi ZL,LOW(bufor nadawczy)
Id t emp, Z ;W temp pierws zy wysyłany bajt z bufora n adawczego
dec licznik_wysylanych_bajt ow
inc Wskaznik_pozycj i_w_bufo rze
cbr flagi 1<< rs trans fla g ;kasowanie flagi sygn= lizując ej wysłar ie
;Wszy stkich znaków
out UDR, temp ;zapis do SEUF pierwszego bajtu Lnic ju je transmisje
; zawartości bufora nadawc zego
WYKAZ ELEMENTÓW
Elementy modułu USB232 Rezystory
R2, R3: 27Q
R4: 4,7Q
R5: 470O
R6: l,5kQ
R7: 0
Kondensatory
C1...C3: lOOnF
C4: 33nF
C5, Có: 22pF
Półprzewodniki
Ul: FT232BM
Różne
CONJJSB: gniazdo USB-A
Xl: óMHz
Deklarację zastosowanych rejestrów i ustawienie wektorów skoków pokazano na list. 7.
Z kolei dostęp do przesłanych poprzez RS danych i inicjacja transmisji w programie głównym mogą wyglądać tak, jak pokazano na list. 8. Ustawienie w stanie wysokim flagi rs_trans_flag będzie sygnalizowało zakończenie transmisji zawartości bufora nadawczego.
Montaż modułów
Schematy montażowe modułów pokazano na rys. 7, 8 i 9.Użyte do budowy modułów rezystory i kondensatory unipolarne mają obudowy przeznaczone do montażu powierzchniowego typu 1206. W module USB232 rezystor R7 ma wartość 0Q. Oczywiście zamiast niego można zastosować zwykłą zworę. Pojemność elektro-
litów w module RS232 nie jest krytyczna i może być zmniejszona nawet do lp.F. Może to tylko skutkować nieco mniejszą maksymalną długością kabla, jakiego można będzie użyć do połączenia modułu z portem COM komputera. W modułach USB232 i USB245 najlepiej zastosować kwarce w niskich obudowach. Jeżeli moduły nie będą przewidziane do mocowania w podstawkach, można zrezygnować ze stosowania specjalnych pinów, używając w to miejsce srebrzanki do wlutowania na stałe modułu do głównej płytki układu, w którym będą pracować. Ryszard Szymaniak, EP ryszard.szymaniak@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: pcb.ep.com.pl oraz na płycie CD-EP11/2003B w katalogu PCB.
Elementy modułu USB235 Rezystory
R2, R3: 27Q
R4: 4,7Q
R5: 470O
R6: l,5kQ
Kondensatory
C1...C3: lOOnF
C4: 33nF
C5, Có: 27pF
Półprzewodniki
Ul: FT245BM
Różne
CONJJSB: gniazdo USB-A
Xl: óMHz
Elementy modułu RS232 Kondensatory
C1...C4: 47^F/1ÓV Có: lOOnF Półprzewodniki
U5: MAX232
Elektronika Praktyczna 11/2003
37
PROJEKTY
Wyłącznik sterowany pilotem
AVT-554
Zapewne nie jest to
nowatorski pomysł, ponieważ
nie raz już widywałem
projekty podobnych układów.
Lecz ten projekt wyróżnia się
spośród innych kilkoma
szczególnymi cechami.
Przedstawiamy je w ańykule.
Rekomendacje: jako
wyłącznik " standby" dla
stacjonarnego yamppa oraz do
zdalnego
sterowania dowolnymi
urządzeniami domowymi
zasilanymi z sieci.
Po pierwsze, ów wyłącznik możemy nauczyć kodu tylko jednego wybranego klawisza z danego pilota i tylko na jego przyciśnięcie będzie on reagował. Po drugie, posiada on wyjście, na które przekazywany jest sygnał z pilota w celu przesłania go dalej, do podrzędnego urządzenia -które będziemy wyłączać. Po trzecie, mamy również do dyspozycji lokalny przycisk ON/OFF. Pierwotnym przeznaczeniem owego wyłącznika było zastosowanie go jako układu standby dla stacjonarnej wersji odtwarzacza MP3 yampp3, lecz oczywiście nic nie stoi na przeszkodzie, aby użyć go do załączania zasilania sieciowego dla innych urządzeń. Posiada on jeszcze jedną unikalną cechę. Jeśli w stanie załączenia zostanie, na czas około 5 sekund, zwarte do masy wyjście przekazujące sygnał pilota do podrzędnego urządzenia, to układ przejdzie w stan wyłączenia. Umożliwia to realiza-cj ę funkcji sleep, czyli autom a-tycznego przejścia w stan czuwania po spełnieniu określonego warunku, a zainicjowane przez podrzędne urządzenie.
Budowa układu
Schemat elektryczny wyłącznika pokazano na rys. 1. Napięcie sieciowe podane na zaciski złącza Jl przechodzi przez bezpiecznik
na pierwotne uzwojenie transformatora Tl oraz jednocześnie doprowadzone jest do styków przekaźnika RELl będącego właściwym wyłącznikiem. Zastosowany przekaźnik posiada dwa styki zwierne, dzięki czemu w stanie wyłączonym uzyskujemy pełną separację urządzenia sterowanego od sieci zasilającej.
Po wyprostowaniu przez mostek Dl oraz odfiltiowaniu przez kondensator Cl, napięcie z wtórnego uzwojenia transformatora zasila cewkę przekaźnika, oraz -poprzez stabilizator 5 V wykonany na układzie U2 - zasila mikiokon-tioler Ul wraz z dołączonym do niego zintegrowanym odbiornikiem podczerwieni U3. "Sercem" urządzenia jest jeden z najmniejszych mikiokontiolerów AVR -ATtinyl2. Ma on tylko 8 wyprowadzeń, więc aby nie marnować i tak skromnej ich liczby, posiada wbudowany generator sygnału zegarowego i nie potrzebuje do pracy zewnętrznego rezonatora kwarcowego.
Oprócz dekodowania sygnałów zdalnego sterowania, układ Ul obsługuje również przycisk ON/ OFF, steruje poprzez tranzystor Ql przekaźnikiem, diodą elektroluminescencyjną D3 - sy gnali żującą stan czuwania, oraz przekazuje impulsy z odbiornika U3 na złącze wyjściowe J4. Na styku
Elektronika Praktyczna 11/2003
Wylqcznik sterowany pilotem
T1
4511_3120 lub TSZZ1.2/005M
VCC
o
J2 WY
2 1
OUT
GND
C2 =
100n
C3
100n
VCC
R2 10k
R3
10k<
U1 ATTINY12
D2TI 1N4148
Q1 BC337I
R1 4k7
PB5/RST PB3/X1
PB4/X2
T0/PB2 ANA-/PB1
ANA+/PBO
J3 CON3
1 2 3
VCC
U3
IR
GND
OLJT
J4 C0N3
1
IROut
J5 CON3
1 2 3
Rys. 1. Schemat elektryczny wyłącznika
3 złącza J4 otrzymujemy dokład- niej numer standardu transmisji z trybu idle było przepełnienie nie taki sam sygnał, jaki wchodzi oraz kod klawisza, uruchamia licznika timera, to następuje do układu z odbiornika podczer- watchdoga i wchodzi do pętli sprawdzenie stanu klawisza. Jeśli wieni, z tym że jest to wyjście głównej programu. W pętli głów- jest on naciśnięty, to program po typu "otwarty" dren. Dla tego też nej zostaje uruchomiony sprzęto- chwili sprawdza go ponownie, zastosowano rezystor R2 umożli- wy timer generujący przerwanie aby wyeliminować ewentualne za-wiający podciągnięcie tego wyj- około 18 razy na sekundę. Po kłócenia mogące spowodować fał-ścia do zewnętrznego napięcia +5 uruchomieniu timera procesor zo- szywą zmianę stanu układu. Po V zasilającego podrzędny układ. staje przełączony w tryb obniżo- upewnieniu się, że klawisz jest Po prostu zamiast podłączać do nego poboru prądu, z którego wy- dalej naciśnięty, podobnie jak po tego układu drugi odbiornik pod- budzić może go dowolne przerwa- odebraniu prawidłowego kodu
z pilota, zostaje zmieniony stan wyjść do diody LED i przekaźnika, i odczekanie do momentu puszczenia klawisza. Następnie program znów powraca na początek pętli głównej.
czerwieni, możemy go bezpośrednio podłączyć do złącza J4 w prezentowanym układzie.
Zasada działania
Cała "inteligencja" układu zawarta jest w programie zapisanym
Wykorzystane w projekcie procedury odbioru sygnału pilota oparte są na zasadach opisanych
w artykule o programowym dekodowaniu
sygnałów zdalnego sterowania. Czytelników
zainteresowanych tym tematem zapraszamy do
działu "Kurs" wEP12/2OO2.
Jeśli nie wykryto naciś-
w pamięci Flash mikrokontrolera. nie - czyli z timera, lub pojawię- nięcia klawisza, to pozostaje jesz-
Algorytm pracy programu pokaza- nie się stanu niskiego na wyjściu cze do sprawdzenia ostatni
no na rys. 2. Po załączeniu odbiornika podczerwieni. Jeśli wy- z możliwych warunków - czyli
zasilania układu mikrokontroler budzenie powstało na skutek ak- zgłoszenie chęci wyłączenia po-
wykonuje inicjalizację zmiennych tywności na wejściu IR, to pro- przez urządzenie podrzędne. Je-
i portów, po czym sprawdza, czy gram próbuje odebrać trans- żeli układ jest w stanie załączo-
naciśnięty jest klawisz ON/OFF. misję z pilota w zapamiętanym nym oraz na wyprowadzeniu por-
Jeśli tak, to przechodzi on do wcześniej standardzie. tu PBO jest stan niski, zostaje
trybu uczenia i zapamiętywania Jeśli odbiór będzie prawidło- uruchomiony dodatkowy licznik,
standardu transmisji i kodu klawi- wy oraz odebrany rozkaz zgadza który odlicza czas począwszy od
sza z pilota. W tym trybie mruga- się z zapamiętanym wcześniej około 5 sekund do 0. Zmiana
nie diody D3 potwierdza odbiór wzorcem, to następuje zmiana stanu na PBO powoduje zatrzy-
sygnału z pilota. Jeśli sygnał z od- stanu logicznego na wyjściach manie i przywrócenie początko-
biornika podczerwieni zostanie dla diody LED i przekaźnika, wej wartości tego licznika. Jeśli
zinterpretowany jako prawidłowy a następnie oczekiwanie na ko- jednak w przeciągu 5 sekund nie
kod klawisza - zostaje on zapa- nieć transmisji, aby nie powodo- zmieni się stan linii PBO i licznik
miętany w pamięci EEPROM mik- wać przełączania wyjść tam dojdzie do wartości 0, to podob-
rokontrolera, a program rozpoczy- i z powrotem w przypadku dłuż- nie jak w przypadku odebrania
na pracę od początku, czyli w try- szego przytrzymania klawisza na właściwego kodu pilota czy na-
bie normalnej pracy. pilocie. Jeśli nie odebrano pra- ciśnięcia klawisza, nastąpi zmia-
Jeśli podczas załączania zasi- widłowego kodu lub nie zgadza na stanu logicznego na wyjściach
lania klawisz nie był naciśnięty, się on ze wzorcem, program dla diody LED i przekaźnika,
to procesor odczytuje ze swojej powraca do pętli głównej. Jeśli a więc wyłączenie napięcia 220V
pamięci EEPROM zapisany wcześ- powodem wybudzenia procesora na złączu wyjściowym J2.
40
Elektronika Praktyczna 11/2003
Wylqcznik sterowany pilotem
Zeruj licznik standardów
Załącz. Watchdog Odczyrajstandard i kod z EEPROM
Ł
Uruchom Timer WęjdźwIDLE
NIE
AK
Zwiększ Standard modulo 5
Wybudzenie
przerwaniem z pilota
lub z timera
Odbierz i dekoduj transmisję pilota
TAK
Zapamiętaj numer
standardu i odebrany
kod w EEPROM-ie
Zmień stan wyjść 0UT1 I 0UT2,
Czeka] na brak transmisji z pilota
l/lub puszczenie klawisza
Rys. 2. Algorytm pracy programu sterującego
Aktywność na wejściu pilota ?
Klawisz \ NIE Naciśnięty?
ON,oraz IROUT zwarte do masy?
Odbierz i dekoduj transmisje pilota
Kod zgodny
z zapisanym
w EEPROM-ie?
ROUT w stanie
niskim od 5
sekund?
Montaż i uruchomienie
Całość układu zmontowano na jednostronnej płytce drukowanej o wymiarach 40x86 mm. Na rys. 3 przedstawiono rozmieszczenie elementów na niej. Ze względu na prostotę konstrukcji, zmontowanie układu nie powinno stanowić żadnego problemu, a więc można od razu zamontować wszystkie elementy, a w miejsce przeznaczone dla mikrokontrolera zamontować odpowiednią podstawkę. Ze względu na wymaganą izolację pomiędzy elementami znajdującymi się pod napięciem sieci a resztą układu zdecydowano się na brak otworów w płytce drukowanej na dwa niewykorzystane wyprowadzenia przekaźnika, które
przed jego zamontowaniem należy obciąć tuż przy samej obudowie przekaźnika. Sprawa wygląda podobnie, jeśli chodzi o transformator sieciowy Tl. Transformator o oznaczeniu 4511-3120 wpaso-wuje się dokładnie w istniejące otwory. W przypadku zastosowania transformatora TSZZ 1,2/ 005M, przed jego zamontowaniem należy usunąć jego wyprowadzenia o numerach 2, 4 i 8, a następnie zamontować go tak, aby wyprowadzenia 1 i 5 były podłączone do napięcia 220V.
Po zmontowaniu całości przechodzimy do uruchomienia układu. Najpierw należy sprawdzić zasilacz, więc podstawkę pod mik-rokontroler Ul pozostawiamy pus-
tą, nie podłączamy również odbiornika podczerwieni. Po podłączeniu do styków złącza Jl zasilania, sprawdzamy napięcie panujące na kondensatorze Cl. W zależności od zastosowanego transformatora powinno ono zawierać się w granicach od 14 do 17 V. Następnie poprzez pomiar napięcia pomiędzy nóżkami 4 i 8 podstawki pod Ul sprawdzamy układ stabilizatora U2. Napięcie to powinno wynosić 5 V. Jeśli wszystko jest w porządku, możemy sprawdzić przekaźnik poprzez połączenie na chwilę odcinkiem przewodu nóżek 3 i 8 podstawki pod Ul. Przekaźnik powinien się załączyć. Jeśli wszystko jest OK, to wyłączamy zasilanie i po odczekaniu kilkunastu sekund w celu rozładowania kondensatorów zasilacza wkładamy w podstawkę zaprogramowany mikrokontroler, do złącza J3 podłączamy odbiornik podczerwieni, a do złącza J5 kabelek z przyciskiem i diodą świecącą na końcu. Po załączeniu zasilania dioda powinna się zaświecić, przekaźnik pozostać wyłączony, a naciskanie przycisku powinno powodować załączanie i wyłączanie przekaźnika oraz naprzemiennie gaszenie i zaświecanie diody.
Podczas montażu układu w obudowie należy pamiętać o panującym na części płytki napięciu
Kl Rt182
4511-31M lub TSZZ 1,2/MSK
rr
J3 IR-II J5

IM 6WO 5V 6HP KEV LED
Rys. 3. Rozmieszczenie elementów na płytce drukowanej
Elektronika Praktyczna 11/2003
41
Wylqcznik sterowany pilotem
sieciowym 220 V, więc do przykręcenia płytki do metalowej obudowy należy użyć tulejek dystansowych o długości co najmniej 10 mm.
Obsługa urządzenia
Na koniec przyszedł czas, aby nauczyć nasz wyłącznik reagowania na rozkazy wydawane za pomocą pilota. W tym celu wyłączamy zasilanie sieciowe, naciskamy przycisk i, trzymając go, włączamy zasilanie. Potwierdzeniem wejścia w tryb programowania jest zgaszona dioda, wyłączony przekaźnik i brak reakcji na naciskanie przycisku. Teraz bierzemy pilota i kilkukrotnie naciskamy wybrany przez nas przycisk. Potwierdzeniem odbioru sygnału z pilota jest mruganie diody w momencie naciskania przycisku na pilocie.
Po kilkukrotnym naciśnięciu przycisku na pilocie układ powinien rozpocząć normalną pracę, czyli zacząć "prztykać" przekaź-
nikiem. W tym momencie procedura uczenia zostaje zakończona, a odpowiedni kod klawisza zapamiętany w nieulotnej pamięci EEPROM mikrokontrolera. Niezależnie od wyłączania zasilania będzie on ważny aż do chwili jego zmiany poprzez powtórzenie ww. procedury.
Na koniec możemy jeszcze sprawdzić możliwość wyłączania układu przez urządzenie podrzędne. W tym celu załączamy nasz wyłącznik do stanu włączenia, a następnie zwieramy wyprowadzenia 2 i 3 złącza J4. Po około 5 sekundach przekaźnik powinien zostać wyłączony, a dioda LED powinna się zaświecić. Układ pozostanie w stanie wyłączenia aż do ponownego załączenia go za pomocą przycisku lub pilota. Romuald Biały
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: pcb.ep.com.pl oraz na płycie CD-EP11/2003B w katalogu PCB.
WYKAZ ELEMENTÓW
Rezystory
Rl: 4,7kn R2, R3: 10kO R4: 2,2kQ Kondensatory
Cl: 470^F/25V C2, C3: lOOnF Półprzewodniki
Dl: mostek prostowniczy RB155
lub podobny
D2: 1N4148
Ql: BC337
D3: dowolna dioda LED
Ul: ATtinyl2 (zaprogramowany)
U2: LM78L05
U3: zintegrowany odbiornik
podczerwieni ELRIM 8601, SFH 506
lub podobny
Różne
Fl: bezpiecznik typu TR5 - O,1A
szybki, do druku.
Jl, J2: listwy przykręcane, rozstaw
5mm
J3...J5: 3Pin goldpiny, raster 2,54mm
REL1: przekaźnik RM82, cewka 12V
Tl: transformator zalewany do druku
typ TSZZL2/0O5M lub 4511_3120
Sl: przycisk chwilowy ON/OFF
42
Elektronika Praktyczna 11/2003
PROJEKTY
Cyfrowy
oscyloskop/analizator stanów logicznych, część 2
AVT-529
Temat oscyloskopów
cyfrowych i podobnych
przyrządów był już
wielokrotnie poruszany na
łamach Elektroniki
Praktycznej. Przedstawialiśmy
zarówno dopracowane
i kosztowne przyrządy
dostępne komercyjnie, jak
i tanie - lecz proste -
pozwalające skorzystać z zalet
techniki cyfrowej nawet
elektronikom-amatorom- Projekt
przedstawiony w artykule ma
w zamierzeniu łączyć
przynajmniej część zalet tych
pierwszych z dostępnością
i niewątpliwymi walorami
edukacyjnymi tych drugich.
R ekom en da ej e:
zaawansowany technicznie
przyrząd, pozwalający
wszystkim konstruktorom
zbliżyć się - znacznie
bardziej niż dotychczas - do
n ajn o wocz eśn i ej szych
opracowań światowych.
Opis układu oscyloskopu Część cyfrowa
Większość bloków funkcjonalnych elektroniki cyfrowej została zaimplementowana w układzie FPGA (schemat części cyfrowej pokazano na rys. 7a i 7b). Wykorzystano układ firmy QuickLogic charakteryzujący się znacznym nadmiarem wewnętrznych p ciąć zeń. Dzięki temu można było wykorzystać wyprowadzenia układu tak, aby projektowanie płytki było łatwe. Należy pamiętać o tej możliwości przy korzystaniu z matryc FPGA, ponieważ optymalne rozmieszczenie wyprowadzeń sygnałów oznacza nie tylko mniej czasu spędzonego przy projektowaniu płytki, ale przede wszystkim "płaski" (pozbawiony skrzyżowań) rozkład ścieżek pozwala na poprowadzenie wszystkich ścieżek sygnałowych po stronie elementów, a strona przeciwna jest wolna. W układach w.cz., takich jak każdy układ cyfrowy pracujący przy 100 MHz, istotne znaczenie mają kondensatory odsprzęgające. Te elementy umieszcza się więc bezpośrednio pod wyprowadzeniami zasilania, aby zminimalizować induk-cyjność ich doprowadzeń. Dodatkowo, płaszczyzna masy po stronie lutowania może być duża i nieprze-rywana liniami sygnałowymi.
Należy pamiętać o umieszczeniu na początku dłuższych linii
sygnałowych, a szczególnie przenoszących sygnał zegara, rezystorów włączonych szeregowo niedaleko nadajnika (rys. 8). Dzięki temu odbicia od końca linii nie odbijają się ponownie od wyjścia nadajnika, co znacznie zmniejszy jitter na tych liniach. Należy unikać dużych różnic w długości ścieżek sygnałowych, ponieważ powoduje to, że sygnał zegarowy i dane przybywają do danego układu przesunięte w fazach. Może to powodować błędy.
Oczywiście, należy też pamiętać o bardzo skutecznym odsprzę-ganiu zasilania, ponieważ układ zawiera także bardzo wrażliwe na wahania napięć zasilających elementy analogowe. Zaleca się więc s to so w anie kondensa tor ów cer a -micznych wlutowanych blisko układów scalonych oraz elektrolitycznych lub tantal owych przy źródle zasilania.
Część analogowa
Układy analogowe nie poddają się integracji tak łatwo jak cyfrowe. Część analogowa (schemat pokazano na rys. 9) jest więc złożona z kilku układów, w większości wzmacniaczy. Oznacza to, że odpowiedzialność za prawidłowe poprowadzenie linii połączeniowych między częściami spada na projektanta. Nie jest to zadanie łatwe, ponieważ przyjęto, że po-
Elektronika Praktyczna 11/2003
43
Cyfrowy oscyloskop/analizator stanów logicznych
HDO RD1 RD2 RD3 HD4 RD5 HD6 RD7 RDfl RDS RD10 RD1 RD12 RD13 RD14
_C13 -L-C14 -L-C15 JC1B
dc ~tdc ~fdc ~tdc
-C17 J-C18 -L-C19 -J-C20
DC ~|~DC ~|~DC ~TDC
Ul 2
1IDT74LYC1G12GA
_l_ C21 _I_C22 IC23 _I_C24 ~T~DC ~T~DC ~T~DC ~|~PC
BND
Rys. 7a. Schemat elektryczny cyfrowej części oscyloskopu (cześć 1)
44
Elektronika Praktyczna 11/2003
Cyfrowy oscyloskop/analizator stanów logicznych
aaaaaaaa uouuoouo goyyopyo
P1.1/TA0 P1.2fTA1 P1.3/TA2 P1.4SMCLK
P2.WACLK
P2.1/TAINCLK
P2.2/CAOLTT/TA0
P2.3/CAOTTA1
P2.4/CA1/TA2
P2.S/RO6C
P2.6WDC12CLK
P2.7/TA0
P5.OSTE1
P5.1/SIM0
P5.2/5OMI1
P5.3AJCLK1
P5.4AKLK
P5.8/SMCLK
P5.6/ACLK
P5.7/TBOUT
P3.OBTE0
P3.1/SIMO0 P3.2/SOMI0 P3.3AJCLKO P3.*UTT(D0 P3.5AJFKD0 P3.6AJTXD1 P3.7AJHXD1
Rys. 7b. Schemat elektryczny cyfrowej części oscyloskopu (cześć 2)
ziom szumów w paśmie do 30 MHz nie powinien być wyższy niż 1 mV. Przy częstotliwościach rzędu 1 MHz takie napięcie może bardzo łatwo powstać w wyniku przeprowadzenia zaszumionej ścieżki zasilającej czy sygnału cyfrowego równolegle do ścieżki sygnału analogowego. Najskuteczniejszym rozwiązaniem jest zastoso-
wanie transmisji różnicowej. Czasami jest to możliwe (należy wtedy pamiętać o prowadzeniu ścieżek równolegle i blisko siebie), jednak w większości przypadków dla sygnałów analogowych używa masy jako poziomu odniesienia. Pożądane jest zatem wykonanie na płytce rozległej i ciągłej płaszczyzny masy.
;Uu
Rys. 8. Nieprawidłowe i prawidłowe dopasowanie sygnału przy źródle
Elektronika Praktyczna 11/2003
45
Cyfrowy oscyloskop/analizator stanów logicznych
Rys. 9. Schemat elektryczny części analogowej
46
Elektronika Praktyczna 11/2003
Cyfrowy oscyloskop/analizator stanów logicznych
Rys. 10. Dopasowanie wyjścia wzmacniacza
Niestety, także i od tej reguły istnieją wyjątki. Przede wszystkim wokół układów pobierających duże impulsy prądu z płaszczyzny masy (typowe dla przetwornic impulsowych) jej potencjał jest silnie zaburzony. Prowadzi to do nieprawidłowego działania czułych wzmacniaczy. Najprostszym rozwiązaniem jest usunięcie płaszczyzny masy spod takiego układu. To pozbawia jednak układ ekranowania od spodu, które zwykle wpływa korzystnie na szumy w układzie. Okazało się, że dużo lepszą metodą jest zaprojektowanie szczelin w płaszczyźnie masy umieszczonych tak, że uniemożliwiają one rozpływ prądu szumów pod układami analogowymi, albo podział płaszczyzny masy na dwie części połączone drutem z perełką ferrytową.
Drugim wyjątkiem od reguły "dużej ciągłej płaszczyzny masy" jest przypadek, kiedy zastosowany jest układ wzmacniacza o dużym wzmocnieniu. Okazuje się bowiem, że jeżeli impedancja obwodu sprzężenia zwrotnego jest zbyt mała, to układ ten ma wąskie pasmo. Z kolei zwiększanie impedancji obwodu sprzężenia zwrotnego stanowi poważne zagrożenie nie tylko dla funkcjonalności, ale nawet dla integralności układu. Otóż duża impedancja w połączeniu z pojemnościami pasożytniczymi stanowi prze-suwnik fazowy. Jeżeli przesunięcie fazy stanie będzie 180 przy wzmocnieniu przekraczającym 1, to wzmacniacz stanie się generatorem. Może wówczas nastąpić nawet przegrzanie wzmacniacza wskutek przeładowywania pojemności pasożytniczych na wyjściu. Przy małych impedancjach lub małych pojemnościach zapobiega temu ograniczone pasmo wzmacniacza.
Jeżeli impedancja pętli sprzężenia zwrotnego nie powinna być mała (ze względu na wymagania dotyczące pasma), to należy zmniej-
szyć pojemności pasożytnicze. Ich głównymi składnikami są: pojemności między ścieżkami oraz między ścieżką a płaszczyzną masy.
Najprostszym rozwiązaniem jest więc prowadzenie możliwie krótkich ścieżek sprzężenia zwrotnego jak najdalej od innych ścieżek. Poza tym można usunąć płaszczyznę masy spod obwodu sprzężenia zwrotnego, pogarszając w ten sposób nieco współczynnik szumów, ale zapewniając stabilność wzmacniacza.
Wiele wzmacniaczy, w tym THS7002, ma pewną optymalną wartość impedancji sprzężenia zwrotnego, zapewniającą minimalne szumy. Dla tego układu wynosi ona ok. 1 kQ. Jest to wartość, przy której stosunkowo łatwo osiągnąć stabilność, więc nie było potrzeby usuwania płaszczyzny masy.
Oczywiście należy pamiętać
0 nieobciążaniu wyjścia wzmacniacza elementami o charakterze pojemnościowym. Zgodnie z regułami dobrego projektowania należy umieścić niewielką rezystancję (ok. 50 Q) na wyjściu wzmacniacza (oczywiście za obwodem sprzężenia zwrotnego) - rys. 10. Ta rezystancja zapobiega wtórnym odbiciom sygnału od źródła.
Zasilanie
Powszechne jest przekonanie, że w układach analogowych nie wolno stosować przetwornic impulsowych. To nieprawda. Przetwornice impulsowe są elementami, bez których trudno wyobrazić sobie urządzenia przenośne. Czasami nie ma zresztą wyboru. Zwyczajny zasilacz dla przedstawianego oscyloskopu byłby od niego większy
1 wytwarzałby dużo ciepła.
W układach analogowych można, i niekiedy należy, stosować przetwornice impulsowe. Trzeba tylko zadbać o odfiltrowanie szumów.
Część związanych z tym problemów można rozwiązać już na etapie projektowania układu. Przede wszystkim należy wprowadzić filtry przed i za przetwornicą impulsową. Najlepsze są filtry typu k (rys. 11), składające się z dwóch kondensatorów, cewki i - ewentualnie - dławika w postaci perełki ferrytowej, bardzo efektywnie eliminującego zakłócenia w.cz. Elementy powinny być w obudowach
SMD, aby zminimalizować wartości indukcyjności pasożytniczych (szczególnie dotyczy to kondensatorów). Każdy z kondensatorów powinien być ceramiczny, o możliwie małej stratności. Bardzo dobre rezultaty przynosi także zastosowanie kondensatorów ceramicznych 100 nF w połączeniu z kondensatorami tantalowymi 22 |iF. Nie zaleca się stosowania wyłącznie kondensatorów tantal owych, ponieważ mają one zbyt dużą stratność.
Podczas projektowania płytki rozwiązuje się pozostałe problemy dotyczące szumu pochodzącego od przetwornicy impulsowej. Przede wszystkim, im dalej przetwornica znajduje się od elektroniki analogowej, tym lepiej. Po drugie, przetwornica powinna mieć własną, wydzieloną sekcję płaszczyzny masy (dwa rozwiązania omówiono powyżej). Elementy indukcyjne filtru k powinny znajdować się bezpośrednio nad szczeliną oddzielającą sekcje płaszczyzny masy. Jak najmniej przewodów powinno przekraczać granicę tych płaszczyzn.
Blisko każdego układu warto umieścić ceramiczne kondensatory 100 nF, włączone między szyny zasilające a masę. Należy też rozważyć zamknięcie części analogowej w ekranie metalowym, chociaż skutki zakłóceń elektromagnetycznych można zminimalizować poprzez przestrzeganie reguł dotyczących płaszczyzny masy i transmisji różnicowej.
Odprowadzanie ciepła
Chociaż układy cyfrowe pracujące przy 100 MHz nie wydzielają wiele ciepła, o tyle układy analogowe o szerokim paśmie zużywają sporo mocy i muszą rozproszyć ją do otoczenia.
Układy analogowe wykorzystane w projekcie są umieszczone w specjalnych obudowach, które pozwalają na bezpośredni dostęp do metalowej podstawy, na której osadzony jest układ scalony. Przy-lutowanie tej podstawy do masy powoduje, że ciepło wytwarzane
perełka ferrytowa
I
I
Rys. 11. Filtr zasilania typu tu
Elektronika Praktyczna 11/2003
47
Cyfrowy oscyloskop/analizator stanów logicznych
Tab. 1. Rejestry zaimplementowane w układzie FPGA
Adres Blok rejestrów Rejestr Opis
OOw kanat 1 val1 wartość progowa (tryb analogowy) szablon bitów (tryb cyfrowy)
01w maski maska bitów (tryb cyfrowy)
02w cfg1 5 0: globalnie zablokuj wyzwalanie 4 0: wejście 1; 7: wejście 2 3 7: ignoruj kanat przy wyzwalaniu 2 7: tryb cyfrowy; 0: analogowy 1 0: negacja warunku 0 0: zbocze rosnące; 7: opadające
04w kanat 2 jw. jw.
08w kanat 3 jw. jw.
OCw kanat 4 jw. jw.
10w pompa danych rihi bardziej znaczący bajt długości próby
11w rllo mniej znaczący bajt długości próby
12w rahi bardziej znaczący bajt adresu odczytu
13w raio mniej znaczący bajt adresu odczytu
18w dzielnik sygnatu zegarowego div 3 0: zegar 1; 7: zegar 2 2 0: wtącz podział przez 10 1 0: wtącz podział przez 5 0 0: wtącz podział przez 2
OOr pompa danych dphi bardziej znaczący bajt wskaźnika zapisu danych
01r dpio mniej znaczący bajt wskaźnika zapisu danych
04r kanat 1 ch1 dane pochodzące z pamięci kanatu 1
05r kanat 2 ch2 dane pochodzące z pamięci kanatu 2
06r kanat 3 ch3 dane pochodzące z pamięci kanatu 3
07r kanat 4 ch4 dane pochodzące z pamięci kanatu 4
Tab. 2. Rozkazy sterujące pracą oscyloskopu
Kod Nazwa Opis Dane zwrotne (bajty)
0 ARQ żądanie potwierdzenia 2: negacja logiczna bajtów rozkazu
1 RST reset ścieżki danych 1: potwierdzenia
2 RGW odczyt flagi ukończenia 1: niezerowa wartość oznacza ukończenie pomiaru
3 WRB zapis bajtu do FPGA; dana w drugim bajcie 1: potwierdzenia
4 RDB odczyt bajtu z FPGA 1: odczytany bajt
5 RDS odczyt bloku próbek; segment w drugim bajcie 1024: odczytany blok próbek
6 I2C zapis na szynie I2C 1: potwierdzenie
7 SSS adres: krok próbkowania dane: przesunięcie wewnątrz segmentu 1: potwierdzenie
przez układ jest rozpraszane przez dużą metalową powierzchnię, jaką powinna stanowić poprawnie zaprojektowana płaszczyzna masy. Jest to jedna z jej funkcji.
Jedynym mankamentem tej -dosyć nowej - technologii jest trudność w ręcznym lutowaniu obudów tego typu.
Projekt w FPGA
Opis budowy układu w strukturze FPGA przygotowano w postaci schematu. Nie skorzystano z języków HDL, ponieważ schemat czasami pozwala na większą kontrolę nad projektem.
W tab. 1 umieszczono listę rejestrów udostępnianych przez układ FPGA.
Mikrokontroler
Kontroler transmisji jest układem typu RISC. Producent - firma Texas Instruments - wraz z akcją promocyjną kontrolerów skierowaną do profesjonalistów zdecydowała się wspierać także projekty niewielkie i hobbystyczne. Dzięki udostępnieniu pełnej informacji oraz pojedynczych sztuk amatorom, powstał jeden z doskonalszych kompilatorów dla mikrokon-trolerów. Istnieje mianowicie wersja GCC dla tych układów, a dzięki przemyślanemu zestawowi instrukcji kod łatwo poddaje się optymalizacjom podobnym do stosowanych w klasycznych procesorach (czego nie da się powiedzieć np. o nieśmiertelnym MCS-51).
Kontroler odbiera pakiety danych po 2 bajty z portu szeregowego (115200 bodów, 8 bitów danych, bez parzystości). Trzy najbardziej znaczące bity pierwszego bajtu to rozkaz, pozostałych pięć stanowi adres. Drugi bajt zawiera dane. Zdefiniowano osiem rozkazów, które zestawiono w tab. 2.
Kontroler może próbkować sygnał pochodzący z FPGA, tak że możliwe jest osiągnięcie częstotliwości próbkowania niższych niż 1 MHz.
Komputer PC
Duża część funkcjonalności oscyloskopu jest realizowana przez oprogramowanie napisane w całości w języku Eli pracujące na komputerze PC pod kontrolą systemu Linux. Kontroler dostarcza komputerowi "surowych" danych pomiarowych. Są one odbierane przez komputer, przetwarzane i wyświetlane.
Oprogramowanie zapewnia nie tylko możliwość sterowania funkcjami takimi jak: zmiana szybkości próbkowania, przesunięcie na ekranie punktu wyzwalania czy zmiana wzmocnienia wzmacniaczy wejściowych. Program realizuje także transformatę FFT (rys. 12), zmieniając oscyloskop w prosty analizator częstotliwości oraz różne funkcje matematyczne. Okazują się one być przydatne np. podczas pomiaru sygnałów różnicowych, kiedy warto wyświetlić oddzielnie sumę (szum) i różnicę (wartość użyteczną) sygnałów. Innym przykładem jest obserwowanie sygnałów komunikacyjnych, kiedy do dyspozycji mamy sygnały kwadra-turowe I/Q, a potrzebna jest obserwacja modułu i fazy. Można też realizować proste filtry FIR (do 16 punktów odpowiedzi impulsowej -rys. 13).
Ponadto program umożliwia korzystanie z kursorów pomiarowych, podając ich wartości oraz odległość między nimi. W przypadku pomiaru czasu wyświetlana jest także częstotliwość odpowiadająca zaznaczonemu okresowi (rys. 14). Standardowym trybem pracy większości oscyloskopów wielokanałowych jest tryb X-Y. Jedyną nietypową cechą przedstawianego oprogramowania jest możliwość korzystania z funkcji matematycznych na obu osiach
48
Elektronika Praktyczna 11/2003
Cyfrowy oscyloskop/analizator stanów logicznych
Rys. 12. Transformata FFT sygnału pochodzqcego z oscyloskopu
jednocześnie. Ustawienia oscyloskopu mogą być zapisywane i odczytywane z plików.
Możliwości rozbudowy
Dużą zaletą oscyloskopu jest jego modułowa budowa. Zarówno od strony wejść jak i od
strony komputera dostępne są rozmaite złącza, których celem jest umożliwienie rozbudowy przyrządu o nowe funkcje.
Można stosować analogowe wyzwalanie także dla wejść cyfrowych, co oznacza, że do wejść cyfrowych można podłączyć inne i*1--1 przetworniki A/C (np. 12-bitowe albo o szybkości próbkowania 200 MSPS). Sterowanie takimi przetwornikami mogłoby się odbywać poprzez wyprowadzoną na złącze rozszerzenia magistralę zgodną z PC.
Zamiast wejść analogowych można by włączyć np. tuner TV, sterowany zwykle także przez szynę PC, i obserwować przebiegi wizyjne.
Największe jednak możliwości rozbudowy daje złącze magistrali procesor - FPGA. Przejęcie kontroli nad tą magistralą pozwala na transfer danych z FPGA z szybkością przekraczającą 20 MB/s, co oznacza, że praca z oscyloskopem upodobniłaby się do pracy z oscyloskopem analogowym.
To samo złącze może również posłużyć do rozszerzenia karty oscyloskopowej o ekran, płytę czołową i procesor systemowy. Autor planuje skonstruowanie takiego modułu, opartego na układzie IDT 79RC32355. Jest to wersja procesora MIPS (znanego m.in. z systemów Silicon Graphics) dostosowana do pracy w małych systemach. Stanisław Skwronek
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: pcb.ep.com.pl oraz na {ńycie CD-EPl 1/2003B w katalogu PCB.
Rys. 13. Filtr FIR zrealizowany w postaci funkcji matematycznej
Rys. 14. Kursory pomiarowe
Elektronika Praktyczna 11/2003
PROJEKTY
Zegar ze 100-letnim kalendarzem |ż
i dwukanałowym V J termometrem, część 2
AVT-513
'*/
Prezentowany w artykule
zegar jest kolejnym naszym
pomysłem "dla domu",
ułatwiającym nasze
"codzienne" życie, jest ono
bowiem zależne od
biegnącego czasu, który
należy nieustannie
kontrolować. Ważna też jest
temperatura, która może
negatywnie wpływać na
samopoczucie większości
z nas?
Rekomendacje: ze względu
na dużą funkcjonalność
i przydatność, zegar polecamy
wszystkim Czytelnikom.
Dobrych przyrządów do
kontroli upływającego czasu i
zmian temperatury nigdy nie
jest za dużo.
Montaż i uruchomienie
Zegar zmontowano na dwustronnej płytce drukowanej, rozmiarem dopasowanej do wielkości wyświetlacza. Widok rozmieszczenia elementów na płytce przedstawiony na rys. 4. Montaż należy rozpocząć od wlutowania rezystorów, następnie diod Dl i D2 oraz p o ds ta wki pod mikr okonti ol er . Następnie należy zamontować kondensatory, stabilizator napięcia i złącza oraz tranzystor. Przyciski Sl... S4 oraz wyświetlacz należy zamontować od strony elementów. Otwory do mocowania płytki oraz umieszczenia złącza wyświetlacza (wykonane w płytce) umożliwiają bezpośrednie przymocowanie wyświetlacza do płytki zegara.
Po prawidłowym zmontowaniu układu należy dołączyć czujniki temperatury. Czujniki należy dołączyć odpowiednio do złącza CON3 dla czujnika pierwszego i do złącza CON4 dla drugiego czujnika. Chociaż czujniki typu DS1820 mogą pracować bez zewnętrznego zasilania (zasilane są z linii transmisyjnej), to
w przypadku znacznego oddalenia czujnika od płytki zaleca się dołączenie plusa napięcia zasilania do czujnika. Napięcie 5V jest dostępne na złączach CON3 i CON4.
Czujniki mogą być oddalone od płytki zegara na odległość około 30 metrów. Jako linia transmisyjna może być wykorzystana skrętka telefoniczna.
Jeśli czujniki zostaną podłączone, to można rozpocząć uruchamianie zegara. W tym celu do złącza CONl należy dołączyć źródło napięcia o wartości 11...12 V i wydajności prądowej minimum 200 mA. Napięcie zasilające nie może mieć większej wartości, gdyż może to spowodować uszkodzenie diod podświetlających wyświetlacz. Najlepiej zastosować zasilacz AC o napięciu znamionowym 9 V. W wyniku prostowania i filtrowania na wyjściu otrzymuje się napięcie o wartości około 11,5 V. Napięcie zasilania nie może być niższe od napięcia baterii podtrzymujące pracę, gdyż powodowałoby to jej rozładowania. Jako źródło napięcia rezerwowego
Elektronika Praktyczna 11/2003
51
Zegar ze 100-letnim kalendarzem i dwukanałowym termometrem
U
O te O OG O Ofi O
Rys. 4. Rozmieszczenie elementów na płytce zegara
należy zastosować baterię typu 6F22 (9 V). Baterię należy dołączyć do złącza C0N2.
Po podłączeniu napięcia zasilania należy ustawić kontrast wyświetlacza potencjometrem PRl. Po ustawieniu kontrastu na wyświetlaczu powinien pojawić się czas i temperatura w formacie:
0:00:01 01-01-2000
23.4C 23 .6C
Wartości temperatury będą zapewne inne, ale wyświetlenie jakiejkolwiek wartości będzie świadczyło o prawidłowej pracy układu. Zostanie także włączone podświetlanie o jasności 50% wartości maksymalnej.
Po uruchomieniu zegara można rozpocząć programowanie czasu i obsługi. Zegar ma możliwość korygowania dokładności odmierzanego czasu, dlatego jeśli wska-
zywany czas będzie znacząco odbiegał od czasu wzorcowego, należy doświadczalnie skorygować częstotliwość generatora poprzez regulację kondensatorem C5, aż do uzyskania jak największej stabilności odmierzanego czasu. Zastosowany trymer umożliwia znaczną zmianę częstotliwości generatora, co pozwala na dokładne jego dostrojenie do wymaganej częstotliwości.
Ustawianie czasu
Regulacji wszelkich parametrów dokonuje się za pomocą czteroprzyciskowej, wielofunkcyjnej klawiatury. Jedynym parametrem wymagającym przełączenie procesora w tryb programowania jest ustawianie aktualnego czasu i daty. Aby przejść w tryb programowania należy nacisnąć przycisk S2 (OK) i przytrzymać przez około 4 sekundy. Po tym czasie zostanie uruchomiony tryb ustawiania czasu, a na wyświetlaczu pojawi się następujący napis: Ustawianie czasu gg:mm:00 DD-MM-2000
Jednocześnie zostaną podkreślone jednostki roku, co sygnalizuje, że ten parametr może być zmieniony. Po wprowadzeniu zegara w tryb programowania odliczanie czasu jest nadal wykonywane, a zmiana ustawień jest dokonywana na pomocniczych komórkach pamięci, dlatego na każdym etapie ustawiania czasu programowanie można przerwać naciskając przycisk S4 (ESC). Wówczas, bez wprowadzenia zmian nastąpi powrót do wyświetlania czasu i temperatury.
Wprowadzanie czasu i daty rozpoczyna się od roku, następnie wprowadza się miesięce, dni, godziny i minuty. Wartość sekund jest automatycznie zerowana przy wychodzeniu z procedury programowania. Ustawianie daty rozpoczyna się od roku, aby ustalić maksymalną liczbę dni w miesiącu. Przy ustawianiu roku można zmieniać tylko dwie ostatnie cyfry, co pozwala na ustawienie roku w zakresie 2000...2099. Zmianę wartości roku wykonuje się klawiszem Sl (UP) lub S3 (DOWN). Po ustawieniu odpowiedniego roku należy nacisnąć klawisz S2 (OK). Po jego naciśnięciu nastąpi przejście do ustawiania miesiąca.
Numer miesiąca ustawia się tak samo jak w przypadku roku. Po ustawieniu właściwego miesiąca należy nacisnąć klawisz S2 (OK) i nastąpi przejście do ustawiania dni miesiąca. O ile zakres możliwych zmian dla lat i miesięcy jest zawsze taki sam, to w przypadku dni zakres zmian zależy od bieżącego roku i miesiąca. Procedura ustawiania dnia miesiąca została tak skonstruowana, że nie ma możliwości ustawienia większego numeru dnia niż wynika to z maksymalnej liczby dni w danym miesiącu i roku. Dlatego nie jest możliwe ustawienia daty 31 lutego. Możliwe jest natomiast ustawienia daty 29 lutego, ale tylko w latach przestępnych. W pozostałych latach luty może mieć tylko 28 dni. Ustawienie odpowiedniego dnia miesiąca wykonuje się tak jak w poprzednich przypadkach i zatwierdza klawiszem S2 (OK). Następuje przejście do ustawiania godzin. Ustawianie godzin wykonuje się tak samo jak we wcześniejszych regulacjach, a klawiszem S2 przechodzi się do ustawiania minut. Po ustawieniu minut naciśnięcie klawisza S2 (OK) spowoduje wprowadzenie nowych wartości czasu i daty do właściwego licznika czasu i nastąpi powrót do wyświetlania czasu i temperatury. Od tej pory zegar będzie pracował z nowymi nastawami.
Obsługa zegara
Obsługa zegara sprowadza się do wyboru parametrów, które mają być wyświetlone. Funkcja pomiaru temperatury umożliwia pomiar i wyświetlanie temperatury w dwóch miejscach. Dla każdego z czujników zapamiętywana jest maksymalna i minimalna wartość temperatury. Wartość temperatury wyświetlana po lewej stronie wyświetlacza jest wynikiem pomiaru z czujnika dołączonego do złącza CON3 i jest identyfikowana jako "Tl", natomiast wartość temperatury wyświetlana z prawej strony jest wynikiem pomiaru czujnika dołączonego do złącza CON4 i jest identyfikowana jako "T2".
Do sprawdzenia maksymalnej i minimalnej wartości temperatury zmierzonej przez czujnik "Tl" należy nacisnąć klawisz Sl. Po włączeniu zasilania wyświetlana parametry będą następujące:
52
Elektronika Praktyczna 11/2003
Zegar ze 100-letnim kalendarzem i dwukanałowym termometrem
Tlmax=20.0C Tlmin=20.0C
Są to początkowe wartości ustawiane przy włączeniu zasilania. Wraz ze zmianą mierzonej temperatury wskazywane wartości będą ulegały zmianie. Jednak pomiar temperatury jest wykonywany tylko wtedy, gdy zegar jest w trybie wyświetlania czasu. W celu wyzerowania wartości minimalnej i maksymalnej należy nacisnąć klawisz S2 (OK), a jako wartość minimalna i maksymalna zostanie wpisana ostatnio zmierzona wartość temperatury. Aby powrócić do wyświetlania czasu należy nacisnąć klawisz S4 (ESC).
Wyświetlanie temperatury minimalnej i maksymalnej dla drugiego czujnika jest uruchamiane poprzez naciśnięcie klawisza S3. Na wyświetlaczu pojawi się napis o przykładowych wartościach: T2max=35.7C T2min=-4.3C
Kasowanie wartości maksymalnej i minimalnej wykonuje się tak samo jak dla czujnika pierwszego klawiszem S2 (OK). Powrót do wyświetlania czasu następuje również po naciśnięciu klawisza S4 (ESC).
Włączanie i wyłączanie podświetlania wyświetlacza wykonuje się naciskając krótkotrwale klawisz S2 (OK). Każdorazowe naciśnięcie powoduje zmianę stanu podświetlania na przeciwny. Dla stanu wyłączenia podświetlanie jest całkowicie wyłączone, a dla stanu włączenia intensywność podświetlania wynika z zaprogramowanej wcześniej. Po włączeniu zasilania intensywność jest ustawiana na połowę mocy. Zmianę intensywności podświetlania wykonuje się klawiszem S4 (ESC). Regulacja intensywności jest przeprowadzana w dziesięciu krokach, dlatego każdorazowe naciśnięcie klawisza S4 powoduje zwiększenie intensywności o 10%.
Po dziesięciokrotnym naciśnięciu klawisza S4 diody podświetlające wyświetlacz zasilane są maksymalną mocą. Kolejne naciśnięcie klawisza S4 spowoduje wyłączenie podświetlania. Naciskając ponownie klawisz S4 moc podświetlania będzie zwiększana. Jeśli intensywność podświetlania będzie ustawiona na 0%, to włączanie podświetlania klawiszem S2 (OK) nie przyniesie efektu, gdyż podświetlanie będzie przełączane pomiędzy wyłączeniem i wartością 0%. Wówczas diody podświetlające będą wyłączone i jedynym sposobem włączenia podświetlania jest zwiększenie intensywności klawiszem S4 (ESC). Krzysztof Pławsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: pcb.ep.com.pl oraz na płycie CD-EP11/2003B w katalogu PCB.
Elektronika Praktyczna 11/2003
53
ESEJ
Niezbędnik dla amatorów i profesjonalistów W głośnikowym żywiole, część 1
Można, co prawda, próbować systematyzować temat przewodni tego artykułu, dzieląc całość na poszczególne zagadnienia, ale równocześnie wszystkie z nich można rozpatrywać na różnych pułapach zaawansowania. Jak wprowadzić do tego świata zupełnych laików, nie zanudzając starych wyjadaczy? Wyzwanie jest poważne, bowiem i apetyty wszystkich zainteresowanych są bardzo duże - od wielu lat nie ukazała się bowiem w Polsce żadna książka poświęcona samodzielnemu konstruowaniu zespołów głośnikowych. Co najwyżej, właśnie na łamach naszych i kilku pism o podobnym
profilu, ukazywały się opracowania fragmentaryczne. Tym razem mamy zamiar, w cyklu tak długim, jak będzie to potrzebne, dostarczyć Czytelnikom EP całą wiedzę, jaką mamy do dyspozycji w naszych głowach. Jednocześnie zaryzykujemy zastosowanie zupełnie innego sposobu przedstawienia tego ogromnego tematu, niż spotykany dotychczas, i do jego opisu użyjemy innego języka. Pójdziemy na żywioł - materiału nie podzielimy pryncypialnie na rozdziały poświęcone poszczególnym tematom, ale podążymy szlakiem doświadczeń autorów. Czasami płynnie przeć ho-
Temat samodzielnego konstruowania zespołów
głośnikowych nieustannie interesuje szerokie
rzesze hobbystów-elektroników, wszelkiego rodzaju
majsterkowiczów, jak też dużą część audiofilów,
czyli miłośników dobrego dźwięku. Wciąż nowi
adepci chcą wiedzieć, jak zabrać się do rzeczy,
a doświadczeni już konstruktorzy z chęcią
przyjmą kolejne porcje wiedzy na ten temat. To
bowiem niewyczerpany temat. Temat - dżungla.
Przedstawiamy pierwszy odcinek cyklu, w którym
omówimy techniczne tajniki budowy kolumn
głośnikowych. Zaczynamy od eseju, który - mamy
nadzieję - zachęci Czytelników do wymiany
listów z autorem.
dząc od problemu do nadziej ę zaproponować problemu, czasami gwał- Warn lekturę tak pasjonują-townie przeskakując, mamy cą, jak samo konstruowanie.
Elektronika Praktyczna 11/2003
55
ESEJ
Bez obrazy
Nadredaktor miesięcznika Audio pozdrawia Czytelników EP! Ponieważ mam dużo czasu i miejsca, więc zanim przejdę do zagadnień ściśle technicznych i akustycznych, przedstawię swoisty klimat, jaki panuje wokół budowania kolumn. Klimat ten zresztą się zmienia - inny był ponad dwadzieścia lat temu, kiedy sam rozpoczynałem swoją przygodę z głośnikami, inny jest dzisiaj. Inne są warunki, zaopatrzenie, ale i inne wymagania.
Drogi do tej pasji są dwie podstawowe. Na wstępie z góry przepraszam, nikogo nie chcę obrażać. Ale... Ludzie wychowani w świecie elektroniki chcą popróbować swoich sił również w tej dziedzinie, w konsekwencji stając się posiadaczami lepiej lub gorzej grających kolumn. Jak te kolumny grają, jest sprawą drugorzędną, choćby dlatego, że wymagania "elektroników" odnośnie jakości dźwięku są generalnie znacznie mniejsze niż au-diofilów. Z kolei o audiofi-lach, niemających dotąd do czynienia z konstruowaniem, można powiedzieć, że ich "złotym uszom" towarzyszą dwie lewe ręce. "Złote uszy" mają naprawdę (pardon, to znaczy w przenośni) albo tylko im się tak
zdaje. Ale naprawdę wystarczy, że tylko tak im się zdaje, aby stawiali przed sprzętem audio, w tym przed kolumnami, określone wymagania. Czy są to wymagania wypaczone złym gustem, czy daleko posunięta subiektywność ocen jest tu uprawniona, jak duża część z nich rzeczywiście w swoich wyobrażeniach o dźwięku wysokiej klasy zbliża się do prawdy
0 dźwięku naturalnym - to już problemy dla pism au-diofilskich, nieraz tam podejmowane. Nam wystarczy stwierdzenie, że wielu ludzi, dla których muzyka
1 jakość jej odtwarzania są wżyciu bardzo ważne, chce wejść w posiadanie dobrej klasy zespołów głośnikowych za cenę znacznie niższą niż w przypadku gotowych produktów "firmowych". I w konsekwencji stają przed koniecznością podjęcia wcale przez nich nieupragnionego wysiłku. Z czasem jednak ich podejście do konstruowania może się zmienić - czyli właśnie zamienić w pasję, która skłoni do zdobycia wiedzy i umiejętności, które wręcz przeorają życiowe plany...
Dobre głośniki już są...
Współcześni zapaleńcy mają znacznie bardziej komfortowe warunki do
rozpoczęcia i rozwijania tego wspaniałego hobby. Prawdą jest brak ściśle wyspecjalizowanej polskojęzycznej literatury, ale znacznie dostępni ej sze niż dawniej są opracowania zagraniczne, ponadto ukazują się w Polsce miesięczniki poświęcone tematom audio, w których testy i prezentacje zespołów głośnikowych zajmują bardzo dużo miejsca. Szczególnie miesięcznik Audio, z wnikliwymi opisami konstrukcji i pomiarami laboratoryjnymi , może służyć hobbystom za doskonałe dodatkowe źródło wiedzy. Bardzo dobre jest zaopatrzenie polskiego rynku w głośniki i inne niezbędne komponenty do budowy zespołów głośnikowych, działa na nim kilku prężnych dystrybutorów dostarczających produkty najbardziej renomowanych firm. Nie brakuje też tańszych głośników, więc każ dy znajdzie coś wedle swoich wymagań i możliwości finansowych.
...ale stolarze
(trzeźwi)
nadal poszukiwani
Nadal najtrudniejszą sprawą pozostaje wykonanie obudowy, chociaż i tutaj możliwości są nieporównanie większe niż dawniej. Znalezienie dobrego zakładu stolarskiego, który przygotuje obudowy o jakości typowej dla współczesnych, wysokiej klasy "firmowych" zespołów głośnikowych, jest z pewnością trudne, ale zamówienie dobrze przyciętych elementów i nawet samodzielne złożenie obudowy bez specjalnych kwalifikacji stolarskich jest przecież w zasięgu ręki. Większość obudów nie jest wcale skomplikowana i - choć ich wymiary nie mogą być wymyślone przez laika -to już samo złożenie do "kupy" nie niesie ze sobą wielkich wyzwań. Nowym problemem, a w każdym razie problemem o znacznie
większym znaczeniu niż dawniej, są wymagania estetyczne. Dwadzieścia lat temu zbudowanie jakichkolwiek głośnikowych skrzynek o choćby przeciętnej urodzie było znacznie trudniejsze niż dzisiaj, przede wszystkim ze względu na brak dobrych materiałów. Teraz możliwości są znacznie większe, ale i wymagania też. Firmowe kolumny demonstrują bowiem nieraz bardzo wyrafinowane wzornictwo, a nawet najtańsze modele mają często finezyjny projekt i wykonywane są bardzo starannie. Wreszcie, podobno, bo osobiście na szczęście tego nie odczułem, coraz więcej przy wyborze sprzętu grającego (tak jak każdego innego) mają do powiedzenia kobiety. Zazwyczaj podstawowy cel, dla którego sprzęt ten został stworzony, czyli muzyka i wysoka jakość dźwięku, kobiety interesuje najmniej, natomiast ich uznanie zdobywa ładny wygląd, przy - najchętniej małych wymiarach. A małe wymiary są dla dobrych kolumn zawsze wymaganiem dość bolesnym. Problem wielkości dotyka zarówno konstrukcje hobbystyczne, jak i firmowe, jednak w przypadku tworów samodzielnych jest bardziej drażliwy, bowiem kłopot z nadaniem im w warunkach amatorskich odpowiednio estetycznej oprawy potęguje niechęć płci pięknej.
Audiofilskie marzenia (ściętej głowy)
W salonach z wysokiej klasy sprzętem audio, już także w Polsce od kilku lat, można obejrzeć i posłuchać zestawów głośnikowych o najróżniejszych konstrukcjach. Audiofilskie nauki wręcz nakazują słuchania wszystkiego przed zakupem, i wpajają zasadę bardzo ograniczonego zaufania do parametrów deklarowanych przez producenta. A tymczasem samo-
56
Elektronika Praktyczna 11/2003
ESEJ
dzielne konstruowanie opiera się najczęściej na zasadzie eksperymentów i ostatecznie akceptacji tego, co powstanie w ich wyniku. Nie można oczekiwać, że wykorzystując nawet elementy najwyższej klasy, otrzymamy w rezultacie brzmienie dokładnie takie, jakie gdzieś usłyszeliśmy albo sobie wyobraziliśmy. Uwaga ta dotyczy nie tylko początkujących amatorów, ale również zaawansowanych konstruktorów! Również dla nich ostateczne brzmienie jest zawsze do pewnego stopnia niemożliwe do przewidzenia. Mając duże doświadczenie, znając stosowane przetworniki z innych aplikacji, itd., można minimalizować obszar niepewności, ale nigdy nie sprowadzimy go do zera. Można w ogromnym zakresie kształtować brzmienie projektowanych kolumn, zmieniając obudowę, przetworniki, filtry, zarazem czyniąc to, poszukujemy brzmienia najlepszego z tych, jakie przewijają się podczas tych eksperymentów, ale nie jesteśmy w stanie w stu procentach odtworzyć wcześniej określonego wzorca - gdybyśmy takim się posługiwali.
Można to wykazać w bardzo "drastycznym" eksperymencie: weźmy najlepszego konstruktora, pozwólmy mu wybrać najlepsze komponenty i narzędzia, aby mógł zbudować teoretycznie wszystko, czego dusza zapragnie. Potem postawmy przed nim 10 najróżniejszych zespołów głośnikowych, niskiej, średniej i wysokiej klasy. Zadanie polega na tym, aby mając możliwość ich odsłuchu, ale nie pomiaru ani wglądu w układ filtrów, odtworzył brzmienie przynajmniej jednego, dowolnie wybranego, na tyle dokładnie, aby przeciętny audiofil nie odróżnił ich od siebie w ślepym teście. Nic z tego. Będzie się miotał (ów konstruktor, nie audiofil), "po
drodze" uzyskiwał brzmienia bardzo wysokiej klasy, czasami zbliżał się do wybranego celu, ale nigdy go nie osiągnie.
Wyjaśnienie tej sytuacji jest o tyle ważne, iż spore grono zainteresowanych samodzielnym konstruowaniem motywowanych jest chęcią skopiowania brzmienia konkretnych, ulubionych kolumn, które ze względu na wysoką cenę pozostają poza ich możliwościami finansowymi; tymczasem techniczne środki (bardzo dobre przetworniki, itd.) dla osiągnięcia brzmienia wysokiej klasy drogą hobbystyczną wydają się dostępne za niższą cenę. Czemu więc "przepłacać", skoro wystarczy "tylko" nauczyć się składać kolumny (w sumie nie są to bardzo skomplikowane urządzenia), znaleźć dobrego stolarza i już?
W takim myśleniu jest oczywiście nie jeden, a kilka błędów. Ale nawet gdyby dobrzy stolarze byli pod ręką, nauka konstruowania była tak łatwa, albo mielibyśmy do czynienia z geniuszem, to i tak nie uzyskałby on pełnej satysfakcji, jeżeli jego jedynym marzeniem było ściśle określone brzmienie. Na satysfakcję zabójczo działać tu może właśnie głębokie przekonanie, że to wymarzone brzmienie produktu "firmowego" jest idealne. Nawet gdy dźwięk z własnej konstrukcji stałby się bardzo dobry, i dla innych, nieuprzedzonych słuchaczy, w ślepym teście wcale nie gorszy od brzmienia "wzorca", to dla samego konstruktora będzie on zawsze względem niego upośledzony. Każdą różnicę tłumaczyć będzie na swoją niekorzyść, jako odstępstwo od ideału, podczas gdy pod pewnymi względami jego konstrukcja może być nawet lepsza - nie zostanie to jednak docenione...
Czarny sceniarusz. Na szczęście, w praktyce jest tak w sytuacji, gdy audiofil
Elektronika Praktyczna 11/2003
57
ESEJ
wcale niemający zamiaru zostać konstruktorem (bo już pracuje np. w banku), a chcący zaoszczędzić (bo mu tam mało płacą), zwraca się do firm sprzedających głośniki dla hobbystów, szukając tam konstruktora, który "pomoże" stworzyć brzmieniową kopię jakiegoś "markowego", bardzo drogiego produktu. Niezależnie od niemożności dokładnego odtworzenia brzmienia konkretnego projektu, owa "pomoc" oznacza przecież w takim przypadku faktycznie opracowanie konstrukcji od początku do końca. Rzetelne wykonanie takiej pracy nie może być szybkie, a więc i tanie, zwłaszcza że dotyczy jednostkowego zamówienia. Finansowy aspekt przedsięwzięcia jest więc znacznie gorszy, niż się początkowo wydaje. I taką odpowiedź ów szukający okazji audiofil powinien uzyskać od uczciwego dystrubutora czy konstruktora. Jeżeli uzyskuje inną - potwierdzającą nadzieje, wraz z szybkim terminem i atrakcyjną ceną - to nie dziwmy się późniejszym rozczarowa-
Złoźyc i posłuchać
Istnieje jednak dla audiofil ów s pragni ony c h dob -rego dźwięku za umiarkowaną cenę bardziej optymistyczna, choć również nieco ryzykowna perspektywa. Muszą jednak wyrzec się prawa do posłuchania głośników przed zakupem i nie powinni żądać spełnienia ściśle określonych oczekiwań. Wówczas mogą wybierać w ofertach zestawów do samodzielnego
powinno być na odpowiednio wysokim poziomie. Jakie jednak ono będzie dokładnie , tego nabywca zwykle nie będzie wiedział, dopóki zestawu nie kupi i nie złoży - zespoły do samodzielnego montażu występują najczęściej w katalogach, i nie ma możliwości ich posłuchania w żadnym "normalnym" sklepie. Dlaczego? Po pierwsze dlatego, że salony prowadzące sprzedaż sprzę-
Dzwięk z "firmowych" kolumn jest w 50 procentach tak dobry, jak jest rzeczywiście
i w 50 procentach tak dobry, jak bardzo w to wierzymy. Dźwięk z kolumn skonstruowanych samodzielnie jest w 99 procentach tak dobry, jak bardzo w to wierzy ich konstruktor i użytkownik.
montażu, jakie znajdują się u kilku dystrybutorów. Techniczna jakość tych projektów jest bardzo atrakcyjna, "głośnikowa zawartość" może być porównywana do znacznie droższych zespołów głośnikowych renomowanych firm i o ile projektanci tych zestawów znają swój fach, to w rezultacie i brzmienie
tu audio nie są zainteresowane rozszerzaniem oferty
0 tak ciekawe, ale kłopotliwe propozycje. Przecież sprzedaż miałaby dotyczyć nie gotowego produktu, ale zestawu części, obudów,
1 wiązałaby się z koniecznością udzielania instrukta-rzu i odpowiedzi na nowe pytania, na które nie są przygotowani. Po drugie,
sklepowa cena takich zespołów znacznie by wzrosła - o kilkudziesięciopro-centową marżę detaliczną, zbliżając się tym samym do ceny gotowych produktów, i w ten sposób tracąc swój podstawowy sens ekonomiczny. Wreszcie, jednym z najbardziej kuriozalnych pytań niektórych audiofilów jakoby zainteresowanych zakupieniem zestawów do samodzielnego montażu, jest nie tylko: gdzie tego można posłuchać, ale także: czy można je kupić w formie złożonej. I jesteśmy w domu! Gotowych kolumn, których można posłuchać, jest przecież bez liku w salonach ze sprzętem. A że są drogie... Takie być muszą, bo są złożone i można ich posłuchać.
Konstruktorzy mimo woli
Nie należy jednak lekceważyć audiofilów, bo przecież również, a może przede wszystkim spośród nich ostatecznie rekrutują się prawdziwi konstruktorzy. Zaczyna się zwykle od prozaicznego zamiaru za-
"Głośnikowe Recepty" - w tej części bardzo gruntowna prezentacja całej drogi projektowania i strojenia czterech "dość prostych" dwudrożnych zespołów głośnikowych. Zajęło to ponad sto stron
"The Loudspeaker Design Cookbook - "Ksiqżka kucharska" Vance'a Dickasona - jeden z najpopularniejszych na świecie podręczników dla głośnikowych hobbystów. Pierwsza edycja w roku 1977, aktualnie wsprzedaży szósta albo i siódma
Wydanie specjalne amerykańskiego miesięcznika Speaker-Builder, z 19 najlepszymi projektami do samodzielnego montażu
53
Elektronika Praktyczna 11/2003
ESEJ
oszczędzenia paru złotych, dzięki złożeniu już zaprojektowanego zestawu do samodzielnego montażu, albo od ambitniejszego planu jednorazowego stworzenia własnej niekonwencjonalnej konstrukcji. Niewielu na początku myśli
0 tym, aby zostać prawdziwymi konstruktorami
1 w dłuższej perspektywie projektować zespoły głośnikowe. "Jednorazowym" konstruktorom (jednorazowym tylko w ich początkowym mniemaniu) wydaje się, że jeżeli zamierzają zbudować tylko jedną parę kolumn, to jest do tego potrzebna wiedza znikoma, znacznie mniejsza od tej, której wymagałoby projektowanie ich w większej liczbie. Deklaracja "nie zamierzam zostać konstruktorem, chcę zbudować tylko jedną parę dla siebie" jest często spotykana i ma usprawiedliwić brak wiedzy. Tak, jakby to dobry Bóg, usłyszawszy o skromnych potrzebach i zamiarach, miał jednorazowo natchnąć konstruktora-niekon-struktóra i pomóc mu w osiągnięciu dobrego rezultatu. Czy bowiem chcąc dać tylko jeden koncert skrzypcowy, moglibyśmy nie umieć grać na skrzypcach, podczas gdy muszą to umieć wirtuozi grający koncerty przez całe życie?
Takie myślenie jest przecież z gruntu fałszywe. Zespoły głośnikowe są w układach elektrycznych dziesięć razy prostsze niż wzmacniacze, wydają się więc idealnym polem do popisu. Tak jak skrzypce, które mają tylko drewniane pudełko, cztery struny i smyczek. Nic, tylko grać. Ale paradoks polega na tym, że dzięki takiemu naiwnemu myśleniu, tak wielu ludzi w to "wdeptuje". Całe szczęście, że na początku nie zdają sobie sprawy, jakie to trudne (po co więc to ujawniam?), bo gdyby wiedzieli, zostawiliby to w spokoju. Stopniowo odkrywają
prawdę o bardzo skomplikowanej naturze z pozoru prostych zespołów głośnikowych, stopniowo uczą się rozwiązywać problemy. I to wciąga, bo zespoły głośnikowe wynagradzają wysiłek w najpiękniejszy sposób. To przecież prosto z nich wypłynie muzyka. I nawet nieudolnie zbudowane kolumny, ale zbudowane samodzielnie i wedle własnego projektu, brzmiąc koszmarnie, brzmią cudownie - to jest własne, pierworodne dziecko konstruktora, które od razu kocha całym sercem takie, jakie jest... Aż się wzruszyłem... Ale powiem Warn coś więcej. Oto bowiem doskonała pora, abym przedstawił swoje własne początki. Pozwólcie mi na ten przywilej.
Dwie deski i 4,7 mikro
W roku 1978, po kilkuletnim terminowaniu na monofonicznych kasecia-kach, za wszystkie zgromadzone oszczędności kupiłem pierwszy magnetofon stereofoniczny - szpulowy MK2405. Miał on wbudowane po bokach głośniki szerokopasmowe, umożliwiające odtwarzanie stereofoniczne. Taki system nagłośnienia musiał mi wystarczyć , ponieważ na zakup pary zespołów głośnikowych - jakichkolwiek -nie mogłem liczyć w bliskiej perspektywie. Zrodził się pomysł zbudowania ich samemu, choćby najprostszych, bo przecież będzie taniej. Zasugerowałem się popularną wówczas konstrukcją Tonsilu, typu ZWG-15C, czyli dwudroż-nymi "piętnastkami" (15W) w małej obudowie zamkniętej. Kupiłem głośniki GDN16/12 (czyli 12-wato-wy 16-cm nisko-średnioto-nowy, bo wersja 15-watowa - GDN16/15 - stosowana w oryginalnych zespołach ZWG15, akurat nie była dostępna) i wysokoto-nowy GDW9/15, czyli stożkowy "papierzak". Nie
Elektronika Praktyczna 11/2003
59
ESEJ
miałem żadnego przygotowania elektroakustycznego, byłem uczniem pierwszej klasy liceum w klasie ma-tematyczno-fizycznej, ale oceny z fizyki Warn nie zdradzę. Wpadlibyście w kompleksy, ale tylko dlatego, że wtedy był odwrotny system punktowania. Nie bałem się jednak prostego maj ster kowania i miałem kolegę kombinującego z elektroniką. Od niego dowiedziałem się, że w zespole głośnikowym jest coś zwanego zwrotnicą i on też obiecał mi ową zwrotnicę przygotować. Czekając na wyniki jego prac, przygotowywałem obudowę. Wyciąłem z płyty wiórowej potrzebne ścianki, wykonałem otwory pod głośniki, i w pierwszym ruchu montowania połączyłem front i spód. Tymczasem kolega, już wielokrotnie ponaglany, ujawnił mi wreszcie schemat tajemniczej zwrotnicy. Pamiętam jak dzisiaj, w szkolnej szatni Gonzo ciężko westchnął, spojrzał w sufit i powiedział: "Kup kondensator MKSE 4,7 mikro i połącz szeregowo z wysokotonowym". Byłem
zawiedziony i zszokowany. Zapytałem: "Tylko to? I dlaczego taka dziwna wartość?" Tyle dni obliczania, i w ich wyniku wzięty z sufitu jeden kondensator? Odpowiedź musiała
brzmieć: "Wystarczy 4,7 mikro, bo taka wartość występuje." Zdziwienie było coraz większe. "To nie użyjemy takiej wartości, jaka jest potrzebna, tylko takiej, jaka występuje w pojedynczym elemencie?" W końcu jako uczeń klasy o profilu ścisłym byłem ukierunkowany na szanowanie wyników obliczeń. Pewnie usłyszałem: "To nie ma dużego znaczenia" - i musiałem się z tym pogodzić, bo Gonzo już zniknął, znudzony rozmową z dyletantem. Gdzieś więc kupiłem 4,7 mikro (co nie było takie łatwe) i przystąpiłem do montażu końcowego. Do tej pory złożone zostały ze sobą tylko dwie ścianki, może zresztą złożyłem je dopiero teraz, w każdym razie spiesząc się do przykręcania i podłączania głośników uznałem, że to "na razie" wystarczy - sądziłem bowiem, że obudowa pełni rolę
platformy do zamocowania głośników i osłony dla nich, jak i zwrotnicy, występującej u mnie przecież w formie szczątkowej. A ponieważ nie zależało mi w ogóle na sprawach estetycznych, dodanie wszystkich pozostałych ścianek odłożyłem na później. Nie miałem pojęcia, jaką rzeczywiście funkcję pełni obudowa. Głośniki się trzymały i grały - i czego chcieć więcej? I do dzi-siaj pamiętam tamto brzmienie. Wcale go nie idealizuję, w ogóle nie miało basu, a mimo to bardzo mnie cieszyło. I teraz zdaję sobie sprawę, że to był ten przełomowy moment, kiedy, wtedy o tym nie wiedząc, rozpocząłem długą wędrówkę i pasjonującą przygodę. Całe szczęście bowiem, że moja pierwsza "konstrukcja" mi się spodobała. Gdybym uznał, że nic z tego nie wyszło, kupiłbym po pewnym czasie gotowe kolumny, jako jedyny pewny sposób zdobycia dobrego dźwięku. A ponieważ przedsięwzięcie się udało (według mnie), warto je było kontynuować. Nikt mnie tak nie
Klang + Ton - bardzo zasłużony niemiecki dwumiesięcznik dla k o nst r u kto r ó w-h o b by st ów
Hobby HiFi - dwumiesięcznik założony przez wieloletniego redaktora Klang + Ton
straszył, jak ja teraz straszę innych. I tu jest problem. Zdaję sobie bowiem sprawę z tego, że gwałtowne uświadomienie ochotnikom, na co się porywają, wielu z nich może zniechęcić, podczas gdy ostroż-niejsze dawkowanie tej wiedzy może ich podpuścić, zachęcić i ostatecznie... uszczęśliwić.
Podejrzewam, że większość konstruktorów zespołów głośnikowych, czy to pozostających amatorami, czyli przygotowujących kolejne projekty na potrzeby swoje i swoich znajomych, czy zajmujących się tym już zawodowo, ma w głębokich korzeniach właśnie tego rodzaju początki. Gdzie samodzielne skonstruowanie kolumn miało tylko służyć zaspokojeniu potrzeby ich posiadania za możliwie najniższą cenę lub w najlepszym razie powodowane było wizją posiadania jakichś oryginalnych, trudnych do kupienia konstrukcji. Ten drugi motyw jest jednak najczęściej drugim etapem. Są też może tacy, którzy doznali olśnienia i po prostu któregoś dnia postanowili zostać konstruktorami kolumn, a inni kształcili się w kierunku ogólnoelektronicznym, aby na końcu tej drogi wybrać głośnikową specjalizację. Sądzę jednak, że głęboko zakorzeniona pasja, wyrastająca z pierwotnej potrzeby - czy konieczności -zbudowania sobie pierwszej pary zespołów głośnikowych, jest najlepszym początkiem drogi.
Piękno i szczerość zespołu głośnikowego
A konstruowanie kolumn wciąga, bo kolumny grają i do tego wyglądają! Są najwdzięczniejszym urządzeniem elektroakustycznym do kształtowania, po części urządzeniem, po części instrumentem, po części rzeźbą. Ich projektant staje się więc nie tylko inżynierem, ale i artys-
60
Elektronika Praktyczna 11/2003
ESEJ
tą (chociaż niekoniecznie z odpowiednimi dyplomami). Zbudowanie ładnej i dobrze grającej kolumny napawa więc dumą podwójną czy nawet potrójną. Można popuścić wodze fantazji, kombinując z różnymi układami głośników, a wszystko jest widoczne i odzywa się do nas żywym głosem. Zespoły głośnikowe są z jednej strony ustrojami bardzo skomplikowanymi, gdy weźmie się pod uwagę wszystkie zjawiska, jakie w nich i bezpośrednio wokół nich zachodzą, z drugiej strony, przynajmniej pozornie, bardzo czytelnymi. Układy wzmacniacza schowane są pod pokrywą obudowy, której kształt w zasadzie nie ma znaczenia dla funkcjonowania, a to co w kolumnie najważniejsze głośniki - widać jak na dłoni, a obudowa jest integralną częścią akustycznej koncepcji.
Wzmacniacz również może wyglądać pięknie, ale to, czy ma srebrne, czy złote gałki, nic nam nie mówi o jego jakości i zasadach, jakie przyświecały konstruktorowi. No, chyba że jest to wzmacniacz lampowy z lampami na wierzchu. Natomiast liczba i układ głośników w kolumnie, jej wielkość i kształt, mówią już bardzo wiele o zamiarach konstruktora. Czy chciał stworzyć coś klasycznego, czy niekonwencjonalnego. Do małego pomieszczenia, czy do remizy strażackiej. Żaden układ głośników sam w sobie nie gwarantuje niczego (może poza kłopotami, jakie gwarantują zespoły bardzo rozwinięte), samo użycie najlepszych przetworników również - "mózgiem" kolumny jest bowiem schowana zwrotnica - ale i tak, tylko widząc kolumnę, dowiadujemy się o niej bardzo wiele.
Konstruowanie kolumn jest zajęciem dla ludzi
o szerokich horyzontach. Zabrzmiało to nieskromnie, ale mam na myśli innych konstruktorów (sam nie potrafię wysyłać SMS-ów, chociaż od niedawna potrafię korzystać z bankomatu). Tak jak pożartowaliś-my sobie z kapryśnych au-diofilów, będących często ignorantami w sprawach elektrotechnicznych, tak też elektronikom warto zwrócić uwagę, że ich wiedza "układowa" będzie dalece niewystarczająca dla szybkiego osiągnięcia wysokich umiejętności w konstruowaniu kolumn. Audiofile muszą pokornie przyjąć sporą dawkę nauk technicznych -
0 elektronice i akustyce, elektronicy muszą dowiedzieć się o akustyce i zacząć krytycznie słuchać, bo jest to podstawowe narzędzie oceny jakości zespołu głośnikowego. Ani podejście abstrahujące od techniki, ani podejście stricte techniczne, nie wróży nic dobrego.
Jeżeli chce się zbudować kolumny oryginalne, trzeba się też wykazać talentami architektonicznymi,
1 wreszcie podczas montażu posługiwać się wieloma narzędziami. I cały czas kombinować.
Tak wykombinowałem już prawie pięć stron, ale ostatecznie jednak jestem tutaj nie tylko po to, aby filozofować, ale aby przedstawić rzetelną wiedzę. I pierwsza lekcja za miesiąc, a na koniec myśl godna Seneki: dźwięk z "firmowych" kolumn jest w 50 procentach tak dobry, jak jest rzeczywiście, i w 50 procentach tak dobry, jak bardzo w to wierzymy. Dźwięk z kolumn skonstruowanych samodzielnie jest w 99 procentach tak dobry, jak bardzo w to wierzy ich konstruktor i użytkownik. Ale dopiero kolumny dobre na 100 procent są naprawdę dobrymi kolumnami.
Brzmi dobrze. Andrzej Kisiel, Audio
Elektronika Praktyczna 11/2003
61
NA CD: NIEŚMIERTELNY- KATALOG 194 MODELI 8051, 22 PROGRAMY CAD/E
g Międzynarodowy magazyn elektroników konstruktorów
11/2003 listopad 15 zł 50 gr (wtym7%vAT)
ZEGAR ZE 100-LETNIM KALENDARZEM I 2-KANALOWYM TERMOMETREM POKOJOWY REGULATOR TEMPERATURY ZE ZDALNYM STEROWANIEM CYFROWY OSCYLOSKOP/ANALIZATOR STANÓW LOGICZNYCH LAMPOWY KOMPRESOR DYNAMIKI SYGNAŁU AUDIO Ś
PROGRAMATOR KARTRIDŻY DO DRUKAREK EPSON MODUŁY INTERFEJSÓW SZEREGOWYCH
STEROWANY PIlftlTEM
CZUJNIK ZATARCIA WENTYLAIORA
7-PWT
'B USB
ESEJ:
Pcron -128khF-s
Bo11on 3:97
"^tm*
FIRMY TEXAS INSTRUMENTS

CD IMI lS40-TftS OdAf 1TSS90
9771640 769039 11>
_PRICE: B ĘUR
Pokojowy regulator temperatury ze zdalnym > sterowaniem
Proste w wykonaniu, wygodne w obsłudze i dobrze opisane. Jeden z najlepszych Projektów Czytelników roku 2003 przedstawiamy na słr. 101.
7-portowy hub USB ą
Popularność urzqdzeń z USB jest tak duża, że 7-portowy hub przyda się pod każdq "strzechq". Słr. 19.
Lampowy kompresor dynamiki
Na chwilę wracamy znowu do lamp: na słr. 25 przedstawiamy opis lampowego kompresora dynamiki sygnału audio o programowanych parametrach.
Zegar ze 100-letnim kalendarzem A i dwukanałowym termometrem
Funkcje realizowane przez urzqdzenie opisane w artykule na słr. 51 powodujq, że może się ono stać domowym "przyjacielem"
Czujnik zatarcia wentylatora
Kolejny projekt opracowany z myślq o użytkownikach PC. Słr. 80.
CAMtastic DXP - CAM dla > projektantów obwodów drukowanych
Kolejny program z rodziny DXP prezentujemy w artykule na słr. 75.
Moduły bezpieczeństwa firmy Schleicher
O tym, jakie urzqdzenia zastosować, aby się zabezpieczyć przed awariq maszyny piszemy na słr. 138.
Cyfrowy oscyloskop/analizator stanów logicznych
Jednych ten projekt zachwyca, inni go wyraźnie lekceważq. Na pewno jednak nie można przejść nad nim obojętnie. Słr. 43.V
W głośnikowym żywiole A
Jeden z największych w naszym kraju "głośnikowych" guru przygotował dla Czytelników EP cykl artykułów z poradami jak budować zestawy głośnikowe. Zaczynamy esejem, który znajdziecie na słr. 55.
Elektronika Praktyczna 11/2003
Przekaźniki uniwersalne A i styczniki mocy
O przekaźnikowych nowościach firmy Omron piszemy na słr. 135.
Systemy identyfikacji bezprzewodowej (RFID) firmy Texas Instruments
Po raz kolejny w EP przedstawiamy możliwości systemu RFID Tiris. Słr. 63.
Encore! - drugie wcielenie 28
Zilog się nie poddaje! Słr. 66.
IKA
Nr 11 (131)
____________________ _Jistopad 2003
Projekty
semi-MatrixOrbital LCD do PC, część 1....................................14
7-portowy hub USB......................................................................19
Lampowy kompresor dynamiki sygnału audio.......................25
Moduły interfejsów szeregowych..............................................31
Wyłqcznik sterowany pilotem....................................................39
Cyfrowy oscyloskop/analizator stanów logicznych,
część 2..........................................................................................43
Zegarze 100-letnim kalendarzem i dwukanałowym termom&trem, część 2................................................................51
Miniprojekty
Czujnik zatarcia wentylatora.....................................................79
Programator kartridży do drukarek Epson ...............................80
Ese
W głośnikowym żywiole, część 1............................................/55
Podzespoły
Systemy identyfikacji bezprzewodowej (RFID)
firmy Texas Instruments...............................................................63
Encore! - drugie wcielenie Z8....................................................óó
Moduły bezpieczeństwa firmy Schleicher..............................138
Sprzęt
Analizator widma GSP-827.........................................................70
Programy ^^^^^^^^^^^^^^^^^^^^^^^H
CAMtastic DXP - CAM dla projektantów obwodów drukowanych...............................................................................75
Kurs
Logika odwracalna.....................................................................85
Pamięci nieulotne w systemach
mikroprocesorowych, część 2...................................................89
Podstawy projektowania systemów
mikroprocesorowych, część 9.....................................................97
Automatyka
Przekaźniki uniwersalne i styczniki mocy.................................135
Działanie sterowników S7-200- podstawy.............................142
Projekty Czytelników
Pokojów/ regulator temperatury ze zdalnym sterowaniem, część 2........................................................................................101
Z kraju i ze świata........................................................123
Kramik+Rynek..............................................................105
Bascomowe Porady......................................................93
Listy.................................................................................111
Ekspresowy Informator Elektroniczny.....................11
Wykaz reklamodawców
Elektronika Praktyczna 11/2003
PODZESPOŁY
Systemy RFID (Radio Freąuency ID) są coraz powszechniej stosowane zarówno w przemyśle, jak i w wielu aplikacjach domowych. Podobnie jak popularne systemy znakowania za pomocą kodów kreskowych, także systemy RFID są stosowane do automatycznego zbierania i przetwarzania danych. Jakość i szybkość pozyskiwania informacji ma zasadniczy wpływ na procesy technologiczne i działalność całych prze dsi ę bi ors tw.
Systemy identyfikacji bezprzewodowej (RFID) firmy Texas Instruments
Jak działa identyfikacja radiowa?
Prawdopodobnie każdy z Czytelników EP spotkał się z systemami bez-stykowej identyfikacji, nie zawsze będąc w pełni świadomym ich obecności. Przykładowo, z dobrodziejstw RFID korzystamy uruchamiając samochód wyposażony w immobilizer, kupując ubrania w supermarkecie czy też otwierając wejście do firmy kartą.
Systemy RFID umożliwiają bezprzewodową komunikację pomiędzy trans-ponderem zintegrowanym z anteną (przykłady pokazano na fot. 1 i 2) a specjalnym czytnikiem, który poprzez współpracującą z nim antenę dostarcza do transpondera energię umożliwiającą przeprowadzenie krótkiej transmisji danych. Dzięki temu można przeprowadzić zdalną (i co ważne, całkowicie bez stykową) identyfikację osób bądź obiektów. W zależności od konfiguracji systemu, transmisja danych może być jedno-lub dwukierunkowa.
Przykładem zastosowania systemu RFID jest sortowanie przesyłek w firmach transportowych (fot. 3). Na podstawie odczytanego bezprzewodo-
Fot.
wo ID oraz danych zawartych w bazie, przenośniki taśmowe są sterowane w taki sposób, by przesyłka trafiła do odpowiedniego samochodu. Jeżeli konieczna jest zmiana trasy bądź czasu dostarczenia, automatyczna identyfikacja pakunku znacznie przyspiesza taki proces.
Transpondery RFID z rodziny TIRIS (Texas Insiruinenis Radio Identification Sysiein) są produkowane przez firmę Texas Instruments. Są one dostępne w obudowach o różnych rozmiarach, kształtach i formach (fot. 4). Czytniki mogą być dostarczone w formie płytki drukowanej, modułu czy gotowego, obudowanego urządzenia. Transpondery są dostępne w wersjach z pamięcią tylko do odczytu, jak również z możliwością zapisu danych przez użytkownika. Są one praktycznie bezobsługowe i mają nieograniczony okres użytkowania.
Technologia RFID znajduje się w ofercie wielu firm - poczynając od producentów półprzewodników jak Texas Instruments (TIRIS) czy Philips (HiTAG), a także przez mniejsze firmy produkujące czytniki i transpondery (jak LUX-Ident) aż po niewielkie, nawet jednoosobowe firmy zajmujące się integracją systemów.
Podobieństwa i różnice pomiędzy systemami RFID a znakowaniem kodami paskowymi
Obydwie technologie pozwalają na automatyzację procesów technologicznych i usprawnienie zarządzaniem, bowiem: zmniejszają potrzebny nakład pracy, eliminują błędy popełniane przez ludzi, a pojedynczy odczyt dostarcza łatwe do przetworzenia dane.
Najpoważniejsze różnice pomiędzy tymi systemami są następujące:
- transpondery RFID nie muszą być widoczne,
- mogą być one odczytywane mimo istnienia "przeszkód" drewnianych, plastikowych, papierowych,
- mają możliwość przeprogramowania w czasie użytkowania,
- mogą być dostarczane w wersjach do pracy w trudnych warunkach (wilgoć, zapylenie, wysokie temperatury, środki chemiczne). Stosowanie kodów paskowych
w przeciągu dłuższego czasu wykazało, że mają one dokuczliwe ograniczenia: standardowo mogą zawierać niewielką ilość informacji (ok. 20 znaków) i nie mogą zostać przeprogramowane. Są także podatne na uszkodzenia i wymagają umiejscowienia w widocznym miejscu. Wszystkich tych wad pozbawione są systemy RFID.
Zakresy częstotliwości wykorzystywane do celów identyfikacji bezprzewodowej
Wykorzystanie poszczególnych pasm częstotliwości jest regulowane przez odpowiednie instytucje w po-
TI-RFid
Fot. 2
Elektronika Praktyczna 11/2003
63
PODZESPOŁY
szczególnych krajach, przy czym regulacje obowiązujące we wszystkich krajach europejskich są praktycznie takie same, i tak systemy inteligentnych kart i naklejek mogą pracować w paśmie 13,56 MHz, a transpondery pasywne i immobilizery samochodowe w paśmie 125kHz...l34 kHz.
Podstawą działania transponde-rów pasywnych (pozbawionych własnego źródła zasiania) jest przesyłanie energii z czytnika za pomocą fal elektromagnetycznych. W zależności od wykorzystywanych częstotliwości, transponder posiada antenę w postaci cewki powietrznej (13,56 MHz) lub nawiniętej na rdzeniu ferrytowym (125 kHz, 134,2 kHz). Czytnik inicjując komunikację z transponde-rem, generuje przez określony czas niemodulowaną falę nośną, której zadaniem jest zaindukowanie prądu w cewce transpondera. Uzyskana w ten sposób energia jest gromadzona w kondensatorze i wykorzystywana do zasilania transpondera w czasie transmisji danych do czytnika. W zależności od systemu, dane przesyłane są przy wykorzystaniu modulacji amplitudy ASK albo częstotliwości FSK.
Jak możemy się spodziewać, dystans, na jaki możliwa jest komunikacja, zależy od rozmiarów zastosowanych anten oraz częstotliwości jakie wykorzystuje system, czasu emitowania fali nośnej (ładowania kondensatora) i mocy wysyłanej przez czytnik. Wykorzystując produkty firmy TIRIS możemy uzyskać poprawną transmisję na odległości od 15 cm dla najmniejszych czytników 134,2 kHz i transponderów o wielkości 12 mm aż do 1...2 metrów przy użyciu specjalnych anten i czytników o wysokiej mocy i czułości. W standardzie 13,56 MHz jest możliwe wykorzystanie do-
Fot. 3
datkowej pasywnej anteny do podwojenia zasięgu. Nieobciążona antena, dostrojona do częstotliwości pracy czytnika, działa jak reflektor, co daje w efekcie zwiększenie zasięgu pomiędzy antenami. Także w przypadku transponderów z możliwością zapisu do ich wewnętrznej pamięci, energia potrzebna do tej operacji jest również przesyłana za pomocą fal radiowych. Proces taki trwa dłużej niż prosty odczyt, ponieważ oprócz energii konieczne jest przesłanie odpowiednio modulowanych i kodowanych danych do zapisu. W zależności od wymagań użytkownika, dostępne są transpondery o pamięci od 80 do 2000 bitów.
Przykładowe aplikacje systemów RFID
Linio produkcyjno w firmie farina-ce u iyczn ej
Pierrel-Ospedali jest włoską firmą produkującą środki farmaceutyczne podlegające ścisłej kontroli. Wymagane jest dokładne dokumentowanie każdego etapu produkcji. Produkty farmaceutyczne wymagają wysokiej sterylności, która osiągana jest w autoklawach w temperaturze 120C. Jeśli istnieje podejrzenie, że dana partia nie była sterylizowana przez ściśle określony czas, musi być zniszczona, powodując - często niebagatelne -straty finansowe. Ze względu na wysoką temperaturę i ciśnienie panujące w autoklawie, automatyczna identyfikacja partii materiałów poddawanych sterylizacji stanowiła wyzwanie. Drukowane kody kreskowe nie zdawały egzaminu i konieczne było ręczne wprowadzanie odpowiednich danych przez człowieka.
Sytuację zmieniło zastosowanie systemu opartego o produkty firmy TIRIS - oddziału Texas Instruments zajmującego się identyfikacją bezprzewodową. Transpondery przymocowano do koszy, w których ustawiane były pojemniki poddawane sterylizacji. Dzięki oznaczeniu każdego kosza unikalnym ID i zapisywaniu przez czytniki czasu wejścia i opuszczenia autoklawu możliwe stało się zautomatyzowanie rejestracji przebiegu produkcji i wyeliminowanie błędów popełnianych przez personel.
Hurtownia farmaceutyczna
Jedna z największych hurtowni farmaceutycznych w Niemczech, Sana-corp, dysponuje siecią 16 centrów dystrybucyjnych, w których znajduje się ok. 80 tys. różnorodnych produktów. Firma szczyci się tym,
Fot. 4
że od złożenia przez klienta zamówienia do przygotowania dostawy mija nie więcej niż 1 godzina. Takie przyspieszenie działania było możliwe tylko dzięki pełnej automatyzacji linii pakujących. Do każdego z zamówień przypisany jest plastikowy pojemnik, identyfikowany dzięki zatopionemu w jego konstrukcji transponderowi. System równocześnie kontroluje ok. 6000 takich pojemników od momentu wpłynięcia zamówienia do chwili wysłania towarów do klienta. We wcześniejszej wersji systemu stosowano kody kreskowe, jednakże nie spełniły one oczekiwań. Ze względu na błędy odczytu ok. 1% zamówień było realizowanych błędnie. Biorąc pod uwagę koszty ponownej realizacji zamówienia, opóźnienia i konieczność precyzyjnego rejestrowania obiegu środków farmaceutycznych, kody kreskowe zostały zastąpione radiowym systemem identyfikacji każdego pojemnika (a przez to i zamówienia). Odsetek błędnie realizowanych zamówień zmalał do 0,01%.
Aby w pełni wykorzystać możliwości jakie dają systemy RFID, konieczne jest stworzenie w całym przedsiębiorstwie zaawansowanego systemu przepływu i zarządzania informacją. Układ bezprzewodowego zbierania danych jest częścią systemu, umożliwiającą szybkie i bezbłędne gromadzenie informacji i budowanie na ich podstawie baz danych usprawniających pracę przedsiębiorstwa. W systemie TIRIS dostępne są wszystkie elementy potrzebne do zautomatyzowania pozyskiwania informacji: transpondery, czytniki i różnorodne anteny dla systemów niskiej (134,2 kHz) i wysokiej (13,56 MHz) częstotliwości. Marcin Bawolski
Dodatkowe infoimacje
Opracowano na podstawie maTeriatów TIRIS.
Więcej informacji na temat RFID wlirmie Microdis Electronics (71) 301-04-00 e-mail: microdis.PL@microdis.net, www.microdis.net.
64
Elektronika Praktyczna 11/2003
PODZESPOŁY
Ten, kto nie idzie na przód, ten się cofa. To stare porzekadło sprawdza się w sposób szczególnie bezwzględny w elektronice. Nie dziwią więc bezustanne zmiany w ofertach producentów. Klient nie lubi być zaskakiwany nieoczekiwanymi zmianami, tym bardzie/ jeśli wpływają one na jego plany. Zilog już kiedyś sprawił taką przykrą niespodziankę swoim odbiorcom, tym razem jest inaczej.
Encore!
Drugie
Sądząc po liczbie projektów wykorzystujących mi kro kont roi ery Ziloga, publikowanych w Elektronice Praktycznej, mógłbym dojść do wniosku, śe od kilku miesięcy prezentując nowości tej firmy, robię solidną, nikomu niepotrzebną robotę. Zainteresowanie ,,Zeta-mi" pozostaje nadal na poziomie zero. Do powyższego wniosku doszedłem, biorąc pod uwagę fakt, śe autorzy do swoich konstrukcji dobierają elementy według własnych zamiłowań, przyzwyczajeń, możliwości finansowych, dostępności poszczególnych typów w ich mieście i kilku innych nieznanych mi
czynników. Faktem jest, śe obracamy się wokół trzech, mośe czterech producentów, reszta mieści się w tzw. ilościach śladowych. Tymczasem rozglądając się niekiedy poza ofertę Atmela czy Microchipa, mośna znaleźć całkiem przyzwoite podzespoły. Przyznam, śe po nagłośnionej w EP rewizji programu produkcji pierwszej z wymienionych firm, moja sympatia do niej została poddana ostrej, negatywnej weryfikacji. Popatrzmy zatem po raz kolejny na mikrokontrolery spod znaku ,,Z" w nadziei, śe zwrócą one jednak uwagę konstruktorów. Tym razem zaintereso-
Rys.
wanie skupimy na rodzinie opatrzonej przydomkiem Encore!
Z8 na bis
Encore! to mikrokontrolery 8-bitowe, których CPU wykorzystuje zmodyfikowaną wersję rdzenia Z8. Pyć mośe stąd wzięła się miło brzmiąca nazwa układów (encore w języku angielskim oznacza bisowanie). Nowy rdzeń mośe być taktowany sygnałem zegarowym o częstotliwości 20 MHz. Poszczególne typy układów róśnią się między sobą zaim-plementowanymi peryferiami. Szczegóły przedstawiono w tab. 1. Na uwagę zasługuje spora pojemność pamięci programu i danych. Nawet najubośsze wersje mikrokontrolerów mają 4 kE pamięci Flash i 1 kP pamięci SRAM. Zawsze mnie zastanawiało, dlaczego nie jest normą wyposaśanie mikrokontrolerów w bloki POR fPower-On-Resei) i VPO fVoliage-Brown-oui-Proieciion), tym bardziej, śe z problemami związanymi z zerowaniem procesorów spotykamy się bardzo często. Widocznie to samo pytanie zadawali sobie inśynierowie Ziloga, gdyś postanowili tym razem te komponenty uwzględnić we wszystkich typach Encore'ów. Podobnie jest z wat-chdogami, które w omawianej rodzinie współpracują zawsze z wewnętrznym oscylatorem RC.
Jak pierwsze wraśenia? Jest całkiem nieźle, w dodatku - zgodnie z zapowiedziami producenta - to dopiero początek. Większość przedstawicieli rodziny
Elektronika Praktyczna 11/2003
PODZESPOŁY
Rys. 2
Encoiel ma wbudowany 10-bitowy przetwornik analogowo-cyfrowy. W zależności od potrzeb mośna dobrać układ s odpowiednią licsbą kanałów - od 2 do 12. To bardso istotna cecha tych mik.rok.on-trolerów. Pamiętajmy, śe inni producenci oferują csęsto jedynie przetworniki 8-bitowe. Jeśli dodamy do tego możliwość korzystania s 3-kanałowego układu DMA saimplementowanego w mikrokontrole-rse, to uzyskujemy idealne rozwiązanie np. dla aplikacji przetwarzania danych pomiarowych, którym wystarczy 10-bito-wa rozdzielczość. W układach Encoiel zawarto ponadto peryferia niewymienio-ne w tab. 1. Są to interfejs I2C i SPI oraz układ UART współpracujący z enkode-rem/dekoderem IrDA. Trzeba teś wspomnieć o różnorodnych trybach pracy ti-merów/liczników zaimplementowanych w mikrokontrolerze. Mamy więc możliwość pracy:
- jednoprzebiegowej f One-Shoi), gdy układ zatrzymuje się po odliczeniu zadanej sekwencji i generuje przerwanie,
- ciągłej (Coniinuous) - układ po odliczeniu zadanej sekwencji generuje przerwanie, po czym automatycznie przeładowuje rejestry i powtarza cykl,
- bramkowanej (Gaied) - licznik pracuje tylko wtedy, gdy na odpowiednim wejściu sterującym występuje stan aktywny,
- w trybie przechwytywania (Capiure), w którym wartość liczników jest zapamiętywana w rejestrach przechwytywania po wystąpieniu sygnału zatrzaskującego na specjalnym wejściu, generowane jest teś w tym momencie przerwanie;
- w trybie porównywania (Compare), w którym po zrównaniu się stanu licznika ze stanami rejestrów porównywania zostaje wysterowane spe-
cjalne wyprowadzenie zewnętrzne oraz jest generowane przerwanie,
- w trybie przechwytywania i porównywania (Capiure and Compare), będącym połączeniem odpowiednich trybów,
- w trybie PWM (Pulse Widih Modulator) - modulator współczynnika wypełnienia fali prostokątnej.
Trzeba jednak uczciwie przyznać, śe podobne tryby pracy występują również w mikrokontrolerach innych producentów. Dzisiaj to właściwie standard. Konstruktorzy uruchamiający aplikacje wykorzystujące mikrokontrolery Encoiel będą z pewnością intensywnie eksploatować wyprowadzenie DPG, które zo-
stało zaimplementowane specjalnie dla nich. Jest to bowiem dwukierunkowy port OCD (On-Chip Debugger). Dzięki niemu mośna podglądać zasoby mikro-kontrolera (rejestry wewnętrzne, pamięć programu i danych), mośna ustawiać pułapki, a takśe wykonywać program w trybie ciągłym lub krokowym.
Pamięci były zawsze piętą achillesową Ziloga. Mośna powiedzieć, śe kłopoty z plashami były nawet kiedyś przyczyną utraty mocnej pozycji rynkowej. Dzisiaj analogiczna sytuacja dotyczy pamięci EEPROM. Podczas gdy niemal wszyscy producenci uwzględniają ją w swoich mikrokontrolerach, w śad-nym z zilogowych Encore'ów jej nie widać. Czyśby znowu na przeszkodzie stały jakieś problemy technologiczne? Trudno w to uwierzyć. Niewielkim usprawiedliwieniem jest mośliwość sa-moprogramowania pamięci Flash fw programie uśytkowym). Pamiętajmy jednak, śe aby zaprogramować jeden bajt pamięci tego typu, konieczne jest skasowanie całej strony, która w mikrokontrolerach Encoiel ma długość 512 bajtów. Ponadto uśytkownik mośe się spotkać z jeszcze jednym, niemiłym problemem. Jeśli będzie chciał zabezpieczyć swój program przed dostępem osób postronnych, będzie musiał zrezygnować z autozapisu pamięci Flash. Mośliwość modyfikacji tej pamięci z poziomu programu uśytkowego została zresztą pomyślana do zupełnie innych celów niś te, które zazwyczaj są związane z pamięcią EEPROM. Prak pamięci EEPROM w strukturze mikrokontrolera to duśa niedogodność. Coraz częściej spotykamy się przecieś z urządzeniami wymagającymi np. zachowywania paramet-
Tab. 1. Zestawienie parametrów mikrokont role rów Z8 Encore!
Typ układu WiGlkość pamięci Flash Współpraca z pamięcią ZGwnętrzną SRAM Częstotliwość oscy-latora 1/0 Timery 16-bi-tOWG Kanały ADC 10-bit llMG
Z8F0411 4 - ik 20 11 2 - PWM,P0R,VB0
Z8F0412 4 - ik 20 19 2 - PWM,P0R,VB0
Z8F0421 4 - 1k 2(1 11 2 2 PWM,P0R,VB0
Z8F0422 4 - 1k 20 19 2 5 PWM,P0R,VB0
Z8F0811 8 - ik 20 11 2 - PWM,P0R,VB0
Z8F0812 8 - ik 20 19 2 - PWM,P0R,VB0
Z8F0821 8 - ik 20 11 2 2 PWM,P0R,VB0
Z8F0822 8 - ik 20 T6 2 5 PWM,P0R,VB0
Z8F1601 16 + 2k 20 31 3 8 PWM, POR, VB0, DMA
Z8F1602 16 + 2k 20 46 4 12 PWM, POR, VB0, DMA
Z8F2401 24 + 2k 20 31 3 8 PWM, POR, VB0, DMA
Z8F2402 24 + 2k 20 46 4 12 PWM, POR, VB0, DMA
Z8F3201 32 + 2k 20 31 3 8 PWM, POR, VB0, DMA
Z8F3202 32 + 2k 20 46 4 12 PWM, POR, VB0, DMA
Z8F4801 48 + 4k 20 31 3 8 PWM, POR, VB0, DMA
Z8F4802 48 + 4k 20 46 4 12 PWM, POR, VB0, DMA
Z8F4803 48 + 4k 20 60 4 12 PWM, POR, VB0, DMA
Z8F6401 64 + 4k 20 31 3 8 PWM, POR, VB0, DMA
Z8F6402 64 + A 2(1 4 12 PWM, POR, VB0, DMA
Z8F6403 64 + 4k 20 m 4 12 PWM, POR, VB0, DMA
68
Elektronika Praktyczna 11/2003
PODZESPOŁY
rów konfiguracyjnych esy kalibracyj-nych. Niestety, w przypadku Encore'ów konieczne będzie stosowanie pamięci zewnętrznych.
Dla polepszenia humoru warto wspomnieć o ciekawym rozwiązaniu, jakie zastosowano w mikrokontrolerach Zilo-ga. Jest w nich mianowicie zaimple-mentowany blok Ulegał Insiruciions Traps, którego zadaniem jest śledzenie poprawności pobieranego kodu przez CPU. Jeśli się okaże, że pobrany z pamięci programu bajt nie jest rozkazem f kody rozkazów nie wykorzystują "wszystkich możliwych kombinacji), to generowane jest specjalne przerwanie. Sytuacja taka może wystąpić np. w wyniku jakiegoś zakłócenia albo niecelowego zamazania pamięci programu. O tym, co procesor powinien zrobić w takich przypadkach, decyduje programista pisząc odpowiednią procedurę obsługi. Swoją drogą niewiele chyba da się tu wymyślić poza wyzero-waniem systemu.
Mikrokontrolery Encore! są wykonywane tylko w wersji zasilanej napięciem 3,3 V z możliwością współpracy z układami zasilanymi napięciem 5 V.
Under construetion
Zanim system mikroprocesorowy zostanie ,,wypuszczony" w świat, konstruktor musi wiele czasu spędzić na pisaniu programu i jego testowaniu w naturalnym środowisku - mikrokont-rolerze wraz z otaczającymi go urządzeniami peryferyjnymi. Tu na szczęście użytkownik spotyka się z dobrym traktowaniem przez firmę Zilog. Dla prezentowanych mikrokontrolerów z pamięcią programu od 4 do 8 kB został opracowany zestaw ewaluacyjny ZS Encore! SK/4K MCU Ewluaiion Kit (fot. 1). Umożliwia on zapoznanie się z mikro kontrolera mi, a nawet testowanie niewielkich własnych aplikacji. W skład zestawu wchodzą: płytka uruchomieniowa, specjalny interfejs z kablem szeregowym do połączenia z komputerem, zasilacz wtyczkowy, dokumentacja i oprogramowanie na płytce CD-ROM. W tym miejscu trzeba brzydko powiedzieć: ,,a niech się Atmel schowa". Klient Ziloga dostaje w zestawie bardzo dobre narzędzie, jakim jest ZDS II- ZS Encore! IDE (ZiLOG Developer Studio). Jest to zintegrowane środowisko programowe przeznaczone dla systemów Win
98 Second Edition, Win NT 4.0 z serwis pack 6, Win2000 z Serwis Pack 3 oraz WinXP z Serwis Pack 1. W jego skład wchodzi: menedżer projektów, edytor, mikroasembler, kompilator C (zgodny zANSl), linker, librarian i de-buger symboliczny. Menedżer projektu ułatwia panowanie nad wszystkimi składnikami projektu. Wyświetla w postaci graficznej hierarchię plików, ułatwia ich tworzenie i kasowanie. Debuger wykorzystuje podczas pracy port RS232. Powyższe narzędzia są opracowane bardzo starannie, stwarzają bardzo duży komfort pracy programiście. Podczas pracy w jednym oknie możliwe jest tworzenie wersji źródłowej programu (nawet wielomodułowego), jego kompilacja i uruchamianie (rys. 2). Program może być wykonywany w trybie krokowym lub ciągłym, z użyciem wielu pułapek, w każdej chwili dostępne są do podglądania lub modyfikacji wszystkie zasoby mikrokontrolera. System może być skonfigurowany jako symulator - wtedy nie jest potrzebny fizyczny układ z mikrokontrolerem lub jako debuger pozwalający na weryfikację programu w układzie rzeczywistym. W obydwu przypadkach jest zachowana dobra współpraca z edytorem, co bardzo ułatwia usuwanie błędów. Użytkownik może samodzielnie ustalić zawartość i rozkład okna roboczego, dzięki czemu zawsze ma wyświetlane tylko te informacje, których potrzebuje. Rozpoznawanie słów kluczowych przez edytor oraz debuger i wyświetlanie ich w różnych kolorach znacznie usprawnia etap pisania wersji źródłowej programu, a i później podczas debugowania okazuje się bardzo przydatne.
Płytka uruchomieniowa
Płytka uruchomieniowa zestawu ZS Encoiel SK/4K MCU Evaluaiion Kit zawiera mi kro kontroler Z8F0822 w 28-nóż-kowej obudowie SOIC, 3 LED-y, interfejsy: RS232 i IrDA, klawisz zerowania i testowy, gniazdo zasilania (uwaga!) 5 V, interfejs OCD wykorzystywany przez debuger, gniazdo do podłączania sygnałów analogowych dla przetwornika ADC oraz małe pole montażowe dla własnych układów prototypowych (rys. 3). Pole montażowe jest typowe dla Ziloga. Jest tam niezbyt dużo miejsca: punkty lutownicze pod dwa 16-nóżko-we i dwa 8-nożkowe układy SfvLD, kilka
Łttł-y
Rys. 3
rezystorów również SMD i dosłownie kilka niezależnych punktów lutowniczych. Pięciokanałowy przetwornik ana-logowo-cyfrowy może posłużyć do wykonania wielu ciekawych eksperymentów z przetwarzaniem sygnału analogowego. Dostępny transceiver IrDA ułatwi natomiast budowę toru bezprzewodowej transmisji danych. W doświadczeniach można łatwo badać zachowanie się systemu dla różnych częstotliwości rezonatora kwarcowego. Choć w oryginale jest założony rezonator 18,43 2 MHz, to jego wymiana jest bardzo prosta, gdyż nie jest on lutowany, tylko wkładany do dwóch gniazd tulipanowych.
Raczej trudno spodziewać się, by w najbliższym czasie powstała wersja Bascorna na mikrokontrolery Encore! Ale chyba nie jest to powód do większego zmartwienia. Język C udostępniony w zestawie jest znakomicie opisany i pozwoli ,,wycisnąć" z procesora chyba wszystko, co tylko się da. Programiści lubiący pisać na ,,niższym poziomie" będą również usatysfakcjonowani, mają przecież asembler, który jak zwykle u Ziloga jest bardzo przejrzysty i łatwy do opanowania. Dla całkowicie zagubionych w nowym, nieznanym środowisku sprzętowym, w dokumentacji zamieszczono dokładne schematy elektryczne płytki ewaluacyjnej. Można się na nich wzorować przy projektowaniu własnych aplikacji. Przydałoby się jedynie trochę więcej przykładów programów. Dodatkowe informacje o rodzinie Encore! można znaleźć na stronie http://www.zilog.coin/ pro d u cts/fa miły. a sp ?fa m=225. Jarosław Doliński, AVT jaroslaw.dolinski@ep.com.pl
Dodatkowe infoimacje
Artykuł powslat na podstawie materiałów
udostępnionych przez lirmęWBC Sp. z o.o., tel. (71)78-88-011.
Elektronika Praktyczna 11/2003
69
SPRZĘT
Taki e urzą dzeni a pomiarowe, jak opisywany w artykule analizator widma, nie trafiają często do naszej redakcji. Nic dziwnego. Jest to sprzęt, który nie pojawia się na stołach amatorów chyba w ogóle
a i profesjonaliści muszą być mocno zmotywowani do zakupu podobnej aparatury. Czasami jednak nie ma wyjścia, problemem staje się wówczas jedynie wybór odpowiedniej marki i modelu.
Analizator widma
O wyrobach firmy Instek miałem już przyjemność pisać kilkukrotnie. W tym miejscu powinienem właściwie użyć pisowni słowa ,.przyjemność" pisanego s wielkiej litery, gdyś za każdym razem wyroby tej firmy robią na mnie ogromne wrażenie. I w tym przypadku już na wstępie artykułu nie mogłem powstrzymać się przed wyrażeniem swojego zachwytu, mimo że emocje powinienem powstrzymywać na wodzy. Mam nadzieję, że zostanie mi to wybaczone.
Do rzeczy więc: GSP-827, to profesjonalny analizator widma pracujący w zakresie częstotliwości od 9 kHz do 2,7 GHz. Może być wykorzystywany zarówno na stole laboratoryjnym, jak i w terenie. Specjalnie do zastosowań terenowych został wyposażony w zestaw 2 akumulatorów Lilon, każdy o napięciu 10,8 V. No cóż, nie można powiedzieć, żeby masa - 4,5 kg oraz wymiary - 330x170x340 mm były niezauważalne, ale do takich gabarytów zapewne przyzwyczajeni są użytkowni-
cy podobnej aparatury. Mogą nimi być pracownicy obsługi technicznej sieci GSM, czy serwisów telewizji kablowej. Dla nich ważniejsze są cechy funkcjonalne aparatury, a te w przypadku GSP-827 są godne uznania. Oczywiście wspomniane wyżej grupy użytkowników nie jest jedynymi. Z podobnych analizatorów korzystają na co dzień wszyscy ci, którzy mają do czynienia z jakimkolwiek sprzętem radiokomunikacyjnym. Dla niektórych grup użytkowników dostępne są nawet specjalne, opcjonalne zestawy wyposażenia. Najważniejsze dane techniczne analizatora GSP-827 przedstawiono w tab. 1.
Mówi się, źe nie szata zdobi człowieka
W przypadku GSP-827 można powiedzieć, że zarówno estetyka obudowy, jak i parametry elektryczne nie mogą się nie spodobać. Jak zwykle u Insteka elementy płyty czołowej zostały zaprojektowane z dobrym smakiem i z zachowaniem zasad ergonomii. Wyraźnie
70
Elektronika Praktyczna 11/2003
SPRZĘT
. J0C3 14301
Rtt i-A: - -0 B* -30-0
-SOJI
CAL
h : M . | i

Cłf* rrW IMMI .... _ n i 1 !_.."
l-......". """ .......'
-110.0
Rys. 1. Funkcja Peak->Center automatycznie wyszukuje największq wartość pomiaru i umieszcza wynik w środkowej części ekranu
Rys. 2. Prawidłowe działanie funkcji Pass/Fail Jest wymaga zdefiniowania spodziewanej obwiedni mierzonego sygnału
rozdzielono klawiatury spełniające odmienne funkcje, dodatkowo wyróżniając je różnymi kolorami. Zastosowano trzy, a właściwie cztery rodzaje elementów regulacyjnych. Są to: klawisze służące do wybierania opcji, specjalne pokrętło obrotowe, którym wygodnie ustala się wartości cyfrowe danego parametru poprzez krokowe jego zwiększanie lub zmniejszanie. Pokrętło to jest wykorzystywane także do przesuwania kursorów i markerów ekranowych. Kolejnym elementem regulacyjnym jest poczwórny klawisz kursora o podobnym przeznaczeniu jak pokrętło obrotowe, a także 6 wydzielonych klawiszy funkcyjnych współpracujących z kontekstowo dobieranymi opisami wyświetlanymi wzdłuż prawego boku ekranu. Jeśli określenie wartości danej nastawy za pomocą pokrętła obrotowego staje się uciążliwe np. na skutek konieczności przewinięcia całego dostępnego zakresu wartości, w każdej chwili można odpowiedni parametr wprowadzić za pomocą klawiatury numerycznej. Do zmian zakresów natomiast najwygodniej będzie używać klawiszy kursorów. Zastosowany czarno-biały wyświetlacz
0 rozdzielczości 640x480 punktów
1 wymiarach pola roboczego ok. 122x92 mm daje czytelny obraz. W zależności od warunków i upodobań można włączyć podświetlanie, ustawić kontrast, a nawet przełączyć ekran "w tryb inwersyjny (czarne tło, białe napisy i przebiegi). Funkcja Splii umożliwia natomiast włączenie dwóch obszarów roboczych. Na panelu czołowym umieszczono dwa 50 O. gniazda typu N. Jedno to wejście sygnału pomiarowego RF, drugie to wyjście TG (Tracking Generator). Z tyłu natomiast zostały umieszczone pozostałe gniazda PNC: zewnętrznego sygnału referencyjnego, wyjścia referencyjnego częstotliwości 10 MHz wykorzystywanego np.
do synchronizacji innych urządzeń pomiarowych, a także wejście zewnętrznego sygnału synchronizującego dla GSP-827. Znajdują się tu też gniazda interfejsów GPIP, RS232 oraz wyjście mikrofonowe. Pokaźnych rozmiarów akumulator jest montowany po odkręceniu specjalnej przykrywki umieszczonej obok zespołu wspomnianych wyżej gniazd. Prawdziwe zalety analizatora ujawniają się w trakcie pracy.
Pomiary
Proszę nie oczekiwać, że przedstawię wszystkie możliwości pomiarowe analizatora GSP-827. W dużym uproszczeniu postaram się jedynie opisać jak wygląda praca z tym przyrządem. Pierwszym etapem przez jaki musi przebrnąć każdy jego użytkownik, to odpowiednie połączenie mierzonych urządzeń z analizatorem. Nie jest to sztuka banalna zważywszy, że mamy do czynienia z częstotliwościami rzędu kilku GHz. W zestawie jaki został dostarczony do redakcyjnego testu znajdował się komplet krótkich przewodów połączeniowych wraz z kilkoma rodzajami przejściówek. Są one umieszczone w eleganckim etui, które z pewnością będzie przydatne podczas wypraw na pomiary w terenie. Po krótszym lub dłuższym dopasowywaniu do siebie poszczególnych wejść i wyjść, na ekranie udaje się uzyskać pierwsze kształty widma. Za pomocą opisanych wyżej przyrządów regulacyjnych będziemy się starali umieścić główny prążek widma np. w centralnym miejscu ekranu. Jeśli znamy wartość odpowiadającej mu częstotliwości, możemy ją wprowadzić bezpośrednio z klawiatury i skorzystać z funkcji Freguency Cen-ier. Jeśli mierzymy nieznany przebieg przyda się funkcja Peak->Cenier, która automatycznie wyszuka największą wartość pomiaru i umieści ją w środ-
kowym położeniu ekranu (rys. 1). Zakres obserwowanego widma można ustawić wprowadzając parametry Freguency Siari i Freguency Stop. Można również skorzystać z funkcji Span. W tym przypadku widmo jest ograniczane do zakresu np. 1 MHz ustawionego funkcją Span wokół częstotliwości centralnej. Regulacja przebiega w sekwencji 1-2-5 (przykładowo 1 MHz, 2 MHz, 5 MHz, 10 MHz... itd.). Jednym naciśnięciem klawisza możemy również ustawić cały możliwy zakres (Span fuli). Podobnie, w sekwencji 10-5-2-1 dB, przebiega regulacja czułości analizatora. Wynik może być podawany w jednostkach dBm, dP^V, dBmV oraz dBm/Hz. Przed rozpoczęciem pomiarów trzeba pamiętać o odpowiednim ustawieniu impedancji wejścia, zjawisko niedopasowania może bowiem całkowicie zniekształcić wyniki. Służy do tego opcja Inpui Z.
Odczytywanie wartości cyfrowych w charakterystycznych punktach widma jest czynnością bardzo często, niemal rutynowo wykonywaną podczas pomiarów. W GSP-82 7 pomocna jest w tym funkcja Marker. Po jej włączeniu na ekranie pojawia się specjalny znaczek, który może być przesuwany (najwygodniej pokrętłem obrotowym) po całym widmie. Każdej zmianie położenia towarzyszy odpowiadająca mu częstotliwość i poziom sygnału. Przewidziana jest także praca z wieloma markerami. Przydatna w praktyce będzie też opcja przesunięcia markera do wartości maksymalnej - Markers to Feaks oraz zbliżone z nią funkcjonalnie Feak Search, Peak Left i Feak Fighi i Feak Next pozwalające analizować poszczególne prążki widma. Ich znaczenie jest dość intuicyjne. Jedną z opcji funkcji ,,Peak Search" jest Track. Powoduje ona dynamiczne poszukiwanie piku widma i ustawianie go w położeniu centralnym
72
Elektronika Praktyczna 11/2003
SPRZĘT
Tab. 1. Wybrane dane techniczne analizatora GSP-827
Zakres częstotliwości 9kHz...2,7GHz
Szerokość okna 2kHz do 2,5GHz w sekwencjach 1-2-5, "fullspan", "zerospan"
Szum fazy -85dBc/Hz @1 GHz 20kHz typowy offset
Statość pomiaru czasu ą10ppm,0-50X,5ppm/rok
Zakres RBW 3kHz, 30kHz, 300kHz, 4MHz
Dokładność RBW 15%
Zakres pasma Video 10Hz do 1MHz w krokach 1-3
Czas skanowania zakresu 100msdo25,6s
Zakres pomiarowy -100dBmdo+20dBm:1M~2,5GHz@3kRBW -95dBm do +20dBm: 2,5GHz~2,7GHz @ 3k RBW -70dBm do +20dBm: 150k do 1 MHz @ 3k RBW -60dBm do +20dBm: 50k do 150kHz @ 3k RBW
Zakres poziomu odniesienia -30dBmdo+20dBm
Dokładność poziomu odniesienia ą1,5dB@100MHz
Nierównomierność częstotliwości ą1,5dB
Średni poziom szumów -130dBm/Hz:1MHzdo2,5GHz -125dBm/Hz:2,5GHzdo2,7GHz -105dBm/Hz:150k~1MHz -95dBm/Hz:50k~150kHz
Zniekształcenia harmoniczne <-60dBc@-40dBmWe
Zabezpieczenie wejścia RF +30dBm,25VDC
Impedancja wejścia RF 50n (nominalnie)
Częstotliwość wyjściowego przebiegu referencyjnego 10MHz
Typy markerów "Normal" i "Delta Modę"
Liczba markerów do10
Rozdzielczość wyświetlacza 640x480, LCD mono
Gniazdo RS-232 Sub-D 9 żeńskie
Zasilanie 100V... 240VAC, automatyczny wybór, 48...63Hz
Pobór mocy 85W, 95VA max. z wentylatorem
Wymiary 330(W)x170(H)x340(D)mm
Masa ok.4,5kg
ekranu. Jest to więc połączenie Peak Search i Marker to Center.
Serwisanci pracujący w terenie nie zawsze mają czas i warunki do dokładnej analizy zebranych danych w miejscu dokonania pomiaru. Dla nich możliwość zarejestrowania do 100 przebiegów będzie jedną z ważniejszych cech przyrządu. Służy do tego polecenie Sa-ve/Recall wykorzystujące do celów ar-chiwizacyjnych wbudowany zegar czasu rzeczywistego. Analizator GSP-827 posiada możliwość śledzenia trzech ścieżek: Tr. A, Tr. B oraz tzw. Live, przy czym dla ścieżki tej dostępne są funkcje Peak Hołd, Average i Freezy. Można także korzystać z niektórych operacji matematycznych na ścieżkach. Ocenę prawidłowości mierzonego widma ułatwi funkcja Pass/Fail Test. Aby ją wykorzystać trzeba wcześniej zdefiniować dopuszczalną obwiednię widma, w którym powinien zmieścić się wynik pomiaru. Może on mieć kształt linii łamanej zarówno dla ograniczenia z góry, jak i z dołu (rys. 2) Następnie po uaktywnieniu wspomnianej funkcji, pod przebiegiem jest wyświetlany komunikat informujący w zależności od uzyskanego wyniku o tym, że widmo spełnia lub nie spełnia zadanych parametrów. W analizatorze GSP-827
przewidziano dwa tryby wyzwalania: wyzwalanie pojedyncze i ciągłe. Źródłem sygnału wyzwalającego może być sygnał doprowadzony z zewnątrz lub generowany wewnętrznie. Przyrząd GSP-827, choć został nazwany przez producenta analizatorem widma, ma wbudowane również funkcje ACPR [Adjacent Channel Power Radio) oraz OCBW [Ocupied BandWidth) wykorzystywane do pomiarów mocy.
Jak przystało na porządną, profesjonalną aparaturę pomiarową, w GSP-827 wbudowano procedury autotestu i au-tokalibracji. Obecność interfejsu GPIB, jak również RS232 predestynuje go do zastosowań w rozbudowanych stanowiskach pomiarowych, a więc nie tylko w serwisie. Dżentelmeni o pieniądzach nie rozmawiają, więc nie będę tu wspominał o cenie analizatora. Choć w pierwszym momencie może ona spowodować zakłócenia w pracy serca, to w porównaniu z inną aparaturą tego typu nie jest wcale szokująca. Jarosław Doliński, EP jaroslaw.dolinski@ep.com.pl
Dodatkowe informacje
Cena przyrządu: 19000 zt netto. Przyrząd do testów udostępniła firma NDN, tel. (22) 641-15-47,www.ndn.com.pl.
74
Elektronika Praktyczna 11/2003
PROGRAMY
CAMtastic
CAM dla projektantów obwodów drukowanych
Współczesny projektant PCB powinien wiedzieć, jak wielkie znaczenie ma technologiczna weryfikacja
projektu oraz zidentyfikowanie jego słabych punktów przed przekazaniem plików do wytwórni
płytek. Mając kontrolę nad procesem produkcji,
projektant płyty drukowanej może podnieść jej jakość,
skrócić czas opracowania i mieć pewność, że projekt
będzie pozbawiony błędów.
Właśnie tym celom służy CAMtastic - najnowszej generacji system CAM firmy Altium. Program CAMtastic DXP to kompletny system, który pomaga projektantowi PCB szybko i łatwo zweryfikować parametry płyty istotne dla procesu produkcyjnego. Dzięki temu projektant jest w stanie zminimalizować liczbę kosztownych błędów, dostarczając projekt sprawdzony i gotowy do natychmiastowej produkcji i montażu. CAMtastic DXP zawiera komplet narzędzi potrzebnych do podglądu, edycji i konwersji różnego rodzaju plików GAD/GAM, ich analizy oraz generowania wydruków i plików wyjściowych niezbędnych do wyprodukowania płyty drukowanej.
CAMtastic DXP zbudowano na bazie platformy Design Explorer (DXP) firmy Altium (widok głównego okna programu pokazano na rys. l), znanej m.in. z Protela DXP. Pio-gram zoptymalizowano do pracy w najnowszych systemach operacyjnych Windows XP oraz 2000.
CAMtastic DXP obsługuje import/eksport wielu formatów plików, zawiera zestaw narzędzi do analizy i weryfikacji PCB oraz wszystkie graficzne i geometryczne narzędzia niezbędne do edycji i modyfikacji projektu płyty przed wykonaniem.
Analiza i weryfikacja projektu
CAMtastic DXP przeprowadza 18 rodzajów analiz PCB, dających możliwość pełnej weryfikacji przygotowanego projektu obwodu drukowanego. Jednym kliknięciem myszki możemy uruchomić kompleksowe sprawdzenie projektu pod kątem naruszenia którejkolwiek z 18 wspomnianych reguł. Pozwala to na wykrycie problemów, które mogą wystąpić podczas produkcji oraz poprawę jakości obwodu jeszcze przed wysyłką do wytwórni. Program znajduje m.in. zwarcia pomiędzy ścieżkami, przerwane połączenia, zbędne wiercenia, odstępy
mniejsze od założonego minimum i wiele innych parametrów. Okno ich konfiguracji pokazano na rys. 2. Aby weryfikacja projektu (DRC) mogła zostać przeprowadzona, CAMtastic DXP musi odtworzyć listę połączeń (netlist) na podstawie danych z plików CAM. Trzeba zaznaczyć, że program radzi sobie doskonale także ze skomplikowanymi projektami wielowarstwowymi z dzielonymi warstwami zasilania oraz ślepymi i zagrzebanymi przelotkami. Funkcja DRC potrafi również automatycznie naprawić większość znalezionych błędów. Służy to tego opcja Auto Fix (rys. 2).
IMIlli
Rys.
Elektronika Praktyczna 11/2003
75
PROGRAMY
\



>*BMl|fW Ś rt 11 ni*n "ii 0 ' D
> D
Tr "rinitt biiTiw Q D
*^-* a D
?

Ś a
i n i m~ r i-4 H| Ś b
Ś D
1 łll|Bpfl^#* 0 1 D
Ś D
Ś D



Rys. 2
Jedną z interesujących cech programu CAMtastic DXP jest możliwość konwersji dowolnych plików Gerber na format Protel PCB. Dzięki temu, dysponując tylko plikami Gerber pochodzącymi z dowolnego programu, jesteśmy w stanie prawie automatycznie wygenerować plik PCB, który można obrabiać w edytorze PCB programu Protel DXP.
Import/eksport
CAMtastic DXP importuje oraz eksportuje pliki w wielu popularnych formatach CAM, dając możliwość łatwej konwersji pomiędzy różnymi formatami. Program importuje pliki zapisane w formatach: ODB++, Gerber, HPGL/2, Drill, Mili/ Route, DWG/DXF (AutoCAD 12-2000, LT) oraz IPC-356-D (rys. 3). Natomiast wyeksportować dane można w formatach: ODB++, Gerber (274D, 274X, Fire9000), Drill data, Mill/Route, DXF (AutoCAD 12-2000, LT) oraz IPC-365-D (rys. 4).
Warto zwrócić uwagę na funkcję QuickLoad, widoczną w menu Fi-Ie>Import, która pozwala na automatyczne wczytanie wielu plików równocześnie do jednego dokumentu roboczego. Funkcja QuickLoad
Rys. 3
ładuje jednocześnie: pliki Gerber, pliki z aperturami, wiercenia NC Drill, HPGL i listy połączeń IPC-365-D. Inną, wartą podkreślenia cechą programu jest obsługa formatu ODB++, który niesie większość informacji potrzebnych do produkcji płyty drukowanej. Użycie standardu ODB++ pozwala wyeliminować pliki Gerber, Excellon, listy połączeń oraz pliki rozkładu elementów. Ograniczając liczbę plików, zyskujemy na czasie i kosztach oraz podnosimy jakość na etapie produkcji.
Edycja i modyfikacja projektu
CAMtastic DXP oferuje wszechstronne narzędzia edycyjne, po-trzebne podczas końcowej obróbki projektu PCB. Wśród podstawowych operacji edycyjnych znajdujemy m.in. przenoszenie i kopiowanie pojedynczych oraz wielu obiektów, obracanie o dowolny kąt, odbicie lustrzane, skalowanie obiektów, różnorodne operacje na warstwach oraz wiele innych (rys. 5).
Równie bogaty jest zestaw narzędzi rysunkowych (rys. 6), ulokowanych w menu Place. Dostępne opcje służą do rysowania łuków,
CAM, czyli...
...Computer Aided Mart ufać tur ing -wytwarzanie wspomagane komputerowo. Takim akronimem jest określane oprogramowanie służące do przygotowywania dokumentacji oraz sterowania urządzeniami wytwórczymi.
okręgów, prostokątów, wielolinii, wieloboków, tekstu, wstawiania wymiarów i wiele innych.
Ponadto mamy do dyspozycji zaawansowane narzędzia edycyjne, zgromadzone w menu Tools (rys. 7). Wśród nich znajdziemy m.in. kreatora pomagającego przygotować kliszę do naświetlania (Film Wi-zard), narzędzie do panelizacji (Pa-nelize PCB) wspomagające projektanta podczas powielania druku na większym arkuszu laminatu, kalkulator powierzchni miedzi (Cale. Copper Area) i wiele innych.
Raporty
Warto wspomnieć również o narzędziach do inspekcji i raportowania, pozwalających uzyskać istotne informacje dotyczące projektu w kontekście przygotowania pro- Ry3
fitar."

X
EW' }**&*--
t Ś Port L**Ś*.
^c*m/ł [tury

Cbi+I
Płłł*
O "BW
ą
Rys. 5
dukcji druku. Wyniki prostych operacji wyświetlane są bezpośrednio w panelu CAMtastic, jak w przypadku pomiaru odległości pomiędzy dwoma obiektami, bądź w formie raportów tekstowych, które otwierają się w osobnym oknie edytora tekstowego DXP.
Drukowanie
Również w zakresie drukowania, CAMtastic DXP oferuje wszystko, co może być potrzebne projektantowi. Program korzysta w pełnym zakresie z drukarek zainstalowanych w systemie Windows. Do wydruku możemy wybrać określony zakres projektu lub fragment widoczny na ekranie, wybrać druk w kolorze lub czarno-biały oraz określić skalę z możliwością wyboru opcji dopasowania do strony. Wydruk może być wycentrowany na kartce oraz zawierać nagłówek z informacjami o stronie. Możemy
?
u1
P#rti
Rys. 7
76
Elektronika Praktyczna 11/2003
PROGRAMY
Ob
*M*
t*r
Rys. 8
drukować poszczególne warstwy na osobnych kartkach, a także zgrupować kilka rysunków na jednej stronie. W każdej chwili mamy dostęp do podglądu wydruku na ekranie. Na rys. 8 pokazano okienko ustawień wydruku oraz przykładowy widok z podglądem wydruku strony, zawierającej cztery warstwy.
Dla kogo CAMtastic DXP?
Ze względu na mnogość funkcji i wszechstronność, CAMtastic jest narzędziem równie wpasowanym w potrzeby producentów obwodów drukowanych, jak i projektantów PCB, którzy chcą swoje dzieło zweryfikować i przekazać do wytwórni wolne od wad i gotowe do natychmiastowej produkcji.
CAMtastic DXP jest jednym z integralnych składników pakietu Protel DXP, tworząc spójną całość z pozostałymi narzędziami w ramach środowiska Design Explorer.
Integracja z edytorem PCB systemu Protel pozwala na automatyczną wymianę danych pomiędzy programem CAMtastic i PCB. Pliki CAM generowane przez edytor PCB mogą być automatycznie otwierane w okienku CAMtastic. W praktyce, podczas pracy w Pro-telu, jest to płynne przejście od projektowania PCB do zadań z dziedziny CAM, bez żmudnego i czasochłonnego eksportowania danych na zewnątrz i wczytywania ich do innego programu.
CAMtastic DXP jest dostępny również jako osobny program. Ta część oferty firmy Altium jest skierowana pod adresem producentów obwodów drukowanych, którzy potrzebują tylko sprawnego narzędzia CAM.
Jest jeszcze trzecia opcja - CAMtastic DXP Viewer - przeglądarka plików CAM, w stosunku do pełnej wersji pozbawiona opcji edycyjnych oraz większości narzędzi do analizy i raportowania, ale za to dostępna bezpłatnie. DXP Viewer czyta wszystkie formaty obsługiwane przez CAMtastic, w tym m.in. Gerber, ODB++ oraz DWG/DXF. Przeglądarkę można ściągnąć ze strony www.camtastic.com. Także szczegółowe informacje, pełna dokumentacja oraz 30-dniowa wersja testowa programu CAMtastic DXP są dostępne na wspomnianej stronie intern etowej. Grzegorz Witek, Evatronix
Rys. 9
78
Elektronika Praktyczna 11/2003
MINIPROJEKTY
Wspólną cechą układów opisywanych w dziale "Mlnlprojekty" 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 '"Mmiprojektow" 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 "Mfniprojekiy" o numeracji zaczynającej się od 1000,
Czujnik zatarcia wentylatora
Wiele urządzeń ma
wbudowane wentylatory,
które zapewniają
wymuszony obieg
powietrza. Dzięki temu
można w urządzeniu
zastosować niewielki
radiator, który
wspomagany
wentylatorem może mieć
znacznie mniejsze
wymiary w porównaniu
z potrzebnym
odpowiednikiem bez
wentylatora.
Rekomendacje: łatwe
w wykonaniu
urządzenie
umożliwiające wykrycie
zatarcia silnika
wentylatora, łatwe do
zastosowania m.in.
w komputerach PC czy
też sprzęcie audio.
Proponowany układ czujnika zatarcia wentylatora jest idealnym monitorem poprawnej pracy wentylatora. Jako czujnik zastosowany został specjalizowany układ TC670 firmy Microchip. Jedną z zalet tego układu jest to, że nie mierzy on wartości prądu pobieranego przez wentylator, jak jest to w prostych układach, lecz prędkość obrotową wentylatora - dokładniej: częstotliwość impulsów prądowych. Badanie wartości impulsów prądowych, jak jest w prostych układach, nie daje prawidłowej informacji o pracy wentylatora, gdyż wzrost natężenia pobieranego prądu nie zawsze świadczy o spadku wydajność wentylatora.
Impulsy prądowe (powstałe w wyniku obracania się wirnika) są przetwarzane na napięcie i następnie podawane na wewnętrzny komparator układu TC670, którego stan wyjścia zmienia się na wysoki, jeżeli napięcie na wejściu nieodwracającym przekroczy 124 mV. Impulsy na wyjściu komparatora, propor-
cjonalne do prędkości obrotowej wentylatora, są przetwarzane na napięcie i porównywane z napięciem na wejściu THRESHOLD. Spadek napięcia poniżej zadanego progu powoduje ustawienie linii / ALERT w stan niski, który świadczy o spadku wydajności wentylatora. Linia CLEAR umożliwia zerowanie powstałego alarmu. Schemat elektryczny czujnika zatarcia pokazano na rys. 1. Układ został dodatkowo wyposażony w elementy zerujące i sygnalizujące zaistnienie alarmu. Aby po włączeniu wentylatora, kiedy impulsy prądowe mają małą częstotliwość na wyprowadzeniu 5 Ul nie po-

m i Ji
Data
13 nhin i 3 4 S
ff4
11 1-14 Ł 1 Sync
S3 av
11
i E>-1 1 | ___DataB____5* ' ' ^* 4x3V3 -1- DO
a
O1 ł D.t.7 "Z 1k
n
on
T_______
o Ifł
1 Data5 k
1R nntn4 U1

1T
Ś4
1ft

1fi 1------'

14
o ----etroftg
Rys. 1. Schemat elektryczny
Rys. 2. Rozmieszczenie elementów no płytce drukowanej
jawiał się stan niski powodujący alarm, wprowadzone zostało opóźnienie, które przedłuża stan zerowania układu Ul. Za przedłużenie impulsu zerującego są odpowiedzialne elementy R6, C7 oraz U2D. Dodatkowy przycisk Sl umożliwia ręczne wyzerowanie alarmu. Rezystor R9 jest konwerterem prądu na napięcie. Impulsy napięciowe na tym elemencie są proporcjonalne
do impulsów prądu. Prąd pobierany przez wentylator nie ma charakteru stałego, lecz impulsowy. Napięcie z R9 przez C8 podawane jest na wewnętrzny komparator Ul. Jeżeli napięcie z przetwornika f/U stadnie poniżej napięcia zadanego przez Pl, na wyprowadzeniu 5 pojawi się stan niski świadczący o złej (niewystarczającej) wydajności wentylatora. Alarm pojawi się także przy zatrzymaniu (zatarciu) wentylatora, kiedy to impulsy prądowe nie będą po-
WYKAZ ELEMENTÓW
Rezystory
Rl, R2: 10kQ
R3: 470D
R4: Ó,8MO
R5: 1MG
RÓ...R8: 47kO
R?C): 2,7O 0,5...1W
Pl: heltrim 47kO
Kondensatory
CL C4, C3: 1 OOnF
C2, C3, C7: 47^F/lóV
C5: l^F stoły
CÓ: 330nF
Półprzewodniki
Ul: TCÓ70
U2: 4093
U3: 78L05
Tl, T2: BC553
Dl: LED 5mm czerwono
Różne
Zl, Z2: złgcza ARK2
Sl: przycisk typu "RESET"
Ql: piezo z generatorem
Płytka drukowana jest dostępna w A VT - oznaczenie AVT-1384.
Wzory płytek drukowanych w formacie PDF są dostępne w Iniernecie pod adresem; pcb.ep.com.pl oraz na płycie CD-EP11/2003B w katalogu PCB.
Elektronika Praktyczna 11/2003
MINIPROJEKTY
dawane na wejście Ul. Pojawienie się alarmu (stanu niskiego na Ul) włącza generator U2B, który steruję przez Tl diodą sygnalizacyjną LED, oraz przez U2A i T2 brzęczy-kiem piezo.
Na rys. 2 przedstawiono schemat montażowy płytki drukowanej. Należy zachować dużą ostrożność podczas montażu układu Ul, który jest dostarczany w obudowie SMD.
Układ ten należy jako jedyny zamontować od strony ścieżek. Po zmontowaniu czujnik wymaga prostej regulacji, którą należy dokonać potencjometrem Pl. Regulację czujnika najlepiej jest wykonać dwuetapowo. W pierwszej kolejności potencjometrem Pl należy znaleźć próg, kiedy włącza się alarm. Mierząc napięcie na wyprowadzeniu 1 Ul otrzymamy napięcie, ja-
kie występuje przy pełnej prędkości obrotowej wentylatora. Następnie na wyprowadzeniu 1 Ul należy ustawić 3 0% napięcia poprzednio zmierzonego. Czyli, jeżeli zmierzone napięcie dla maksymalnej prędkości obrotowej wentylatora wyniesie 1,5 V, to należy ustawić napięcie równe 0,45 V. Wspomnienia wymaga jeszcze dobór rezystora pomiarowego R9. Po-
Programator kartridży do drukarek Epson
Miesiąc temu
w Mirńprojektach
przedstawiliśmy program,
za pomocą którego można
modyfikować zawartości
liczników w kartridżach
drukarkowych. Korzystanie
z tego programu jest
możliwe w przypadku
większości obecnie
produkowanych drukarek
firmy Epson.
Rekomendacje: dla
użytkowników nowszych
i starszych drukarek
firmy Epson, a także
tych, którzy z różnych
przyczyn chcą uniknąć
manipulacji na
"organizmie" drukarki.
1. Schemat elektryczny interfejsu
winien on być dobrany według prądu nominalnego zastosowanego wentylatora. Rezystor ma mieć taką wartość, by dla danego prądu nominalnego wentylatora spadek napięcia na nim miał wartość 500 mV. Dla prądu nominalnego wentylatora 200 mA wartość rezystora R9 powinna wynosić 2,4 L1 Marcin Wiązania, EP marcin.wiazania@ep.com.pl
go programu wykracza poza artykuł, dlatego na CD-EP11/2003B oraz na naszej stronie internetowej w dziale Download zamieściliśmy oryginalną dokumentację w języku angielskim.
Program Caitiidge Tools wyposażono także w funkcję serwisową (rys. 3), która umożliwia "ręczne" przetestowanie działania portu drukarkowego - w lewej części okna można modyfikować stany wyjść D0...D7, nieco bliżej środka (Status linę) znajduje się pole, z którego można odczytać zawartość rejestru statusu. Andrzej Gawryluk, AVT
Rys. 2. Okno programu Cortridge Tools
Rys. 3. Sekcjo serwisowo progromu CorSfidge Tools
Prezentowane urządzenie składa się z prostego interfejsu sprzętowego (schemat elektryczny pokazano na rys. 1) oraz dostępnego bezpłatnie oprogramowania dla Windows. Interfejs jest dołączany do portu drukarkowego komputera, a jego podstawowym zadaniem jest umożliwienie wymiany danych pomiędzy
WYKAZ ELEMENTÓW
Rezystory
R1...R7: lkG Półprzewodniki
D1...D4: diody Zenero 3,3V
5-woltowym interfejsem Centronics i kartridżami zasilanymi napięciem 3,3 V. Wymianą danych zarządza całkowicie program, stąd budowa interfejsu jest nad wyraz prosta (dlatego też nie projektowano do niego płytki drukowanej).
Oprogramowanie Cari-ridge Tools (widok okna działającego programu pokazano na rys. 2) nie wymaga instalacji i pracuje poprawnie z Windows 98 i XP (być może także z innymi, ale tego nie sprawdzono). Szczegółowy opis obsługi te-
Aiiykui powstał na bazie materiałów dostępnych na stronie www.eddiem.com.
Rys. 4. Rozmieszczenie wyprowadzeń komunikocyjnych typowego kortridżo drukarkowego
80
Elektronika Praktyczna 11/2003
KURS
Przełom w technice cyfrowej?
Efektem ubocznym działania wszystkich urządzeń elektronicznych jest zamiana zasilającej je energii elektrycznej na ciepło. Musi być ono nieustannie odprowadzane, aby nie dopuścić do przekroczenia maksymalnej dozwolonej temperatury pracy układu i - w konsekwencji - jego uszkodzenia. Ilość ciepła wytwarzanego przez układ zależy od liczby elementów wchodzących w jego skład oraz od częstotliwości zegara ustalającego rytm pracy układu. Fakt ten jest dobrze znany wszystkim właścicielom szybkich procesorów oraz zaawansowanych kart graficznych - do poprawnego działania zazwyczaj wymagają one bardzo wydajnych systemów chłodzenia.
W latach sześćdziesiątych ubiegłego wieku Gordon Moore zauważył, że wraz z rozwojem technologii wytwarzania układów scalonych liczba tranzystorów możliwych do wykonania na ustalonej powierzchni kryształu półprzewodnika podwaja się średnio co 18 miesięcy. Obserwacja ta nie ma oczywiście rangi prawa fizyki, lecz duża zgodność jej przewidywań z rzeczywistym stopniem zaawansowania technologii półprzewodników uczyniła z niej bardzo wygodne narzędzie do szacowania
złożoności przyszłych układów scalonych. Na cześć odkrywcy zależność tę nazwano prawem Moore'a.
Nieustanne dążenie do zwiększania częstotliwości taktowania oraz prawo Moore'a prowadzą do wniosku, że ilość ciepła wytwarzanego przez przyszłe układy scalone będzie rosła wraz z rozwojem techniki.
Naukowcy i inżynierowie rozpoczęli więc intensywne badania mające na celu opracowanie nowych sposobów odprowadzania ciepła. Na podstawie znaczących osiągnięć na tym polu oraz ciągłego spadku zapotrzebowania na energię wymaganą do działania pojedynczego tranzystora, będącego efektem postępującej miniaturyzacji, sądzono, że w przyszłości produkcja ciepła będzie mogła zostać ograniczona w dowolnym stopniu, co pozwoli uniknąć poważnych problemów z chłodzeniem struktury układu scalonego.
Ograniczenia termodynamiczne
Przekonanie to uległo zmianie po opublikowaniu przez Rolfa Landauera z centrum badawczego IBM im. Watsona wyników badań nad fizyczną stroną procesu przetwarzania informacji. Stało się jasne, że straty spowodowane niedoskonałością budowy układu scalonego nie są jedynym źródłem ciepła. Drugim jego źródłem okazał się być proces kasowania informacji. Entropia informacyjna Shannona:
S =-^JH Ś lof/2 JH
układu mogącego znajdować się w jednym nLN rozróżnialnych stanów, gdzie p, jest prawdopodobieństwem znalezienia układu w stanie o numerze i, jest związa-
Prezentowany artykuł, jak na dotychczasową praktykę EP, jest nietypowy: autor porusza w nim bowiem wyłącznie zagadnienia teoretyczne (ach te wzory). Nie da się jednak inaczej, ponieważ układy, o których piszemy, poza kiłkoma akademickimi opracowaniami, jeszcze nie istnieją... W artykuie przedstawiono ograniczenia fizyczne związane z wykonywaniem obłiczeń maszynowych oraz wprowadzenie do obłiczeń odwracałnych - metody umożliwiającej rozwiązanie problemu produkcji ciepła przez układy elektroniczne. Przedstawiono również praktyczną realizację tej techniki na przykładzie doświadczalnego procesora Pendulum.
na z entropią termodynamiczną Gibbsa wzorem:
gdzie LB=l,380*10-23 [J/K] jest stałą Boltzmanna.
Definicja temperatury bezwzględnej T wiąże zmiany entropii układu AG ze zmianami zawartej w nim energii cieplnej AQ wzorem:
i
T
AG
Stąd w procesach izotermicz-nych dostarczenie ciepła do układu powoduje zwiększenie jego entropii. Istotnie, rozważmy urządze-
Elektronika Praktyczna 11/2003
KURS
nie służące do przechowywania
niż teoretyczne minimum
więcej
jednego bitu, a więc układ mogą- wynikające z zasady Landauera. cy znajdować się tylko w jednym Wartość ta jest duża, lecz będzie z dwóch rozróżnialnych stanów w danym momencie. Ponieważ nie wiemy niczego o początkowym stanie układu, to prawdopodobieństwo p0, że znajduje się on w pierwszym stanie, jest równe prawdopodobieństwu plt że znajduje się
ona szybko maleć wraz z rozwojem technologii półprzewodników. Oszacowania wynikające z analizy
Zgodnie z jej definicją argumentem może być dowolny element zbioru {(0,0),(0,1),(1,0),(1,1)}. Nie zakładamy niczego na temat roli pełnionej przez tę bramkę w układzie, a więc musimy przy-
szybkości spadku zużycia energii jąć, że każdy z argumentów funk-
on w stanie drugim, a więc p0=p1=0,5. Entropia informacyjna tego układu wynosi:
= -(- hg3- + - Ś logi-) = 1 bit
Przeniesienie systemu do nowego stanu oznacza, że prawdopodobieństwo znalezienia go w żądanym stanie wynosi 1, a prawdopodobieństwo zajmowania przez układ stanu przeciwnego jest równe 0. Entropia układu wynosi wówczas:
S, = -(1 Ś log* 1 + 0 Ś Iog2 0) = 0 bitów.
Zmiana entropii termodynamicznej wynosi więc:
AG = (*B Ś In 2) (Ą - S7) = -kB In 2. Z definicji temperatury wyzna-
przez bramki na przestrzeni ostatnich lat wskazują, że granica Landauera zostanie osiągnięta w czasie krótszym niż 3 5 lat. Z tego powodu w wielu ośrodkach akademickich i przemysłowych rozpoczęto badania zmierzające do opracowania technik umożliwiających pokonanie ograniczeń termodynamicznych.
Obliczenia odwracalne
Fundamentalna natura nowo odkrytych ograniczeń uniemożliwi-
cji jest jednakowo prawdopodobny:
P(0,0) =P{0,l) =
Przed wykonaniem operacji układ ma entropię:
Sprzed = ~^2pi Ś logi Pi = -4 Ś (^oftj-) = 2 bity.
Przeciwdziedziną funkcji jest zbiór {0,1}, przy czym wartość 1 jest osiągana tylko dla argumentu (1,1), więc prawdopodobieństwa przyjęcia określonego wyniku wy-
ła ich bezpośrednie pokonanie za noszą odpowiednio po=3/4 i Pi=1U-
pomocą udoskonalenia technologii wytwarzania układów scalonych. Ewentualny przełom mógł nastąpić jedynie na drodze zmian w samym sposobie prowadzenia obliczeń.
Jedną z takich alternatyw badał w 1973 roku Charles Bennett, również pracujący w IBM. Na podstawie zasady Landauera doszedł on do wniosku, że skoro emisja ciep-
czamy ciepło pochłonięte przez ła jest nieodłącznym skutkiem
Entropia układu po wykonaniu operacji to:
bit>
a więc straciliśmy Sprzed-Spo bitów informacji. Zgodnie z zasadą Landauera oznacza to, że podczas obliczania funkcji musiało dojść do rozproszenia energii w postaci ciepła. Nieróżnowartościowość n-argumentowych (dla n > 1) fun-
układ:
AQ = TAC = -kB Tln2,
procesu kasowania informacji, to kcji logicznych /: {0,l}rt -> {0,1} wy-obliczenia należy prowadzić tak, nika wprost ze zbyt małej liczby by cała przetwarzana informacja elementów przeciwdziedziny -
czyli kB*T*!n 2 dżuli energii zostało wydzielone do otoczenia w postaci ciepła. Obserwacja ta nosi nazwę zasady Landauera i określa dolne ograniczenie ilości ciepła, które należy rozproszyć podczas kasowania jednego bitu informacji,
W powszechnie spotykanych zakresach temperatur pracy układów scalonych jest to niezwykle mała energia, np. w temperaturze T = 333 (60 Celsjusza) wynosi ona:
została zachowana. Pomysł ten zaowocował powstaniem nowego sposobu przetwarzania informacji, nazwanego obliczeniami odwracalnymi.
Entropia...
...informacyjna - nieokreśloność źródła,
z którego są dostarczane (wysyłane) wiadomości.
...termodynamiczna - funkcja stanu oznaczająca
miarę stopnia nieuporządkowania określonego
układu fizycznego, wynikająca z drugiej zasady
termodynamiki.
[K]
AQ=333[K]1,380xl0-23[J/K]-M 2=3,185x10-21[J] Ś
Dla porównania [3], układy rodziny G12 firmy LSI Logic, wykonane w technologii CMOS 0,13u.m w wersji zasilanej napięciem 1 V zużywają średnio 7,l*1015 [J] na zmianę stanu pojedynczej bramki. Jest to około 2,3*106 raza
Dwuargumentowe operacje logiczne mające kluczowe znaczenie dla techniki cyfrowej nie są niestety funkcjami różnowartoś ci owymi, przez co nie mogą być one odwracalne - podczas wykonywania obliczeń występuje utrata przetwarzanej informacji. Dla przykładu rozważmy funkcję:
AND: {0,1} x {0,1} -> {0,1}
jest oczywiste, że nie można przyporządkować każdemu elementowi zbioru 2^-elementowego innego elementu zbioru dwuele-mentowego.
Wynika stąd wniosek, że wynik odwracalnych funkcji odtwarzających n-argumentowe operacje logiczne będzie krotką składającą się nie z jednego, lecz co najmniej n bitów. W ogólnym przypadku będą to więc funkcje wektorowe. Praktyczna przydatność funkcji odwracalnych zależy bezpośrednio od liczby układów cyfrowych, które można zrealizować w oparciu o nie. Sprawdźmy więc jak wiele daje się policzyć w sposób odwracalny.
Z logiki matematycznej wiadomo, że wszystkie jedno- i dwuargumentowe funkcje logiczne można wyrazić za pomocą operacji NAND albo NOR (w przykładzie
86
Elektronika Praktyczna 11/2003
KURS
c X c X'
0 0 0 0
0 1 0 1
1 0 1 1
1 1 1 0
nych. Toffoli zmodyfikował więc bramkę CN dodając do niej kolejną linię sterującą, uzyskując pokazaną na rys. 2. bramkę CCN (od controlled controUed NOT}.
Stany wejść sterujących C1 oraz C2 są przenoszone przez
NAND(x,y)
Rys. 1. Bramka CN
Rys. 3. Realizacja funkcji NAND
pokazano rekonstrukcję funkcji bramkę bez zmian na odpowiada- za PomocQ DramKi mających najważniejsze znaczenie jące im wyjścia C/ i C/, a wzór
dla techniki cyfrowej):
NDT(z) = NAHD(a;, x),
AHD(ar, y) = N0T(NAND(:c, y)),
OR(x, y) = HDT(AHD(HDT(x), NOT(y))),
NDR(x, y) = H0T(DR(x, y)),
XDR(x, y) = DR(AND(a:, H0T(j/)), AND(H0T(a;), y)),
opisujący działanie inwertera ma postać:
\x
dlaCi = lA C2 = l, w przeciwnym przypadku.
c X y c* X' y
0 0 0 0 0 0
0 0 1 0 0 1
0 1 0 0 1 0
0 1 1 0 1 1
1 0 0 1 0 0
1 0 1 1 1 0
1 1 0 1 0 1
1 1 1 1 1 1
4 Bramka Fredkina
Bramka CCN umożliwia wykonanie operacji NAND (rys. 3),
W roku 1925 E. Żyliński udo- a więc można za jej pomocą obli-wodnił, że NAND oraz NOR to czyć dowolną jedno- albo dwuar-
jedyne funkcje mające tę włas- gumentową funkcję logiczną. Wy- w sposób odwracalny, a więc teo-ność. Wynika stąd, że dowolny nika stąd, że za pomocą bramek retycznie bez rozpraszania ciepła cyfrowy układ kombinacyjny moż- odwracalnych da się odtworzyć do otoczenia. W przypadku bar-na zbudować za pomocą jakich- dowolny układ kombinacyjny. dziej złożonych obliczeń, np. za-
kolwiek bramek odwracalnych wtedy i tylko wtedy, gdy da się z nich zbudować bramkę NAND (albo NOR).
Historycznie najstarszym i najprostszym rozwiązaniem umożliwiającym zbudowanie odwracalnego urządzenia liczącego jest pokazana na rys. 1 bramka Toffolie-go. Składa się ona z linii sterującej stanem inwertera C-C, wejścia x oraz wyjścia x'. Stan
Funkcja / jest odwracalna, jeśli dla każdego
#=/(#) można jednoznacznie odtworzyć
odpowiadającą mu wartość argumentu s. Dzięki
tej własności informacja zawarta w argumencie
x może zostać odzyskana, a więc podczas
obliczania funkcji / nie zachodzi utrata informacji i związana z tym emisja ciepła -obliczenia takie mogą być więc wykonywane przy dowolnie małym zużyciu energii. Łatwo sprawdzić, że warunkiem koniecznym i dostatecznym odwracalności funkcji / jest jej
różnowartościowość [1 ].
Funkcja f: X -*Y jest róż nowart ości owa, jeśli dla różnych argumentów przyjmuje różne wartości.
wierających pętle o ciele wykonywanym nieznaną w momencie kompilacji liczbę razy, złożenie bramek odwracalnych nie daje się niestety bezpośrednio zastosować. Konieczne staje się więc wprowadzenie odwracalności również na poziomie samego algorytmu służącego do obliczania interesującej nas funkcji. Odwracalność dowolnego elementarnego kroku algorytmu nazywa się od-
panujący na wyprowadzeniu C Kolejnym rozwiązaniem umożli- wracalnością lokalną, w odróżnie-
jest przekazywany bez zmian na wiającym przeprowadzenie dowol- niu od globalnej odwracalności ca-
wyprowadzenie C. Stan wyjścia nych obliczeń w sposób odwracał- tego algorytmu. Posługując się in-
jest dany następującym wzorem: ny jest bramka Fredkina (rys. 4). dukcją matematyczną można udo-
Ma ona dwa wejścia: x i y, wyj- wodnic, że algorytm jest globalnie
^G*a x' *-^' oraz I1111? sterującą C- odwracalny wtedy i tylko wtedy,
C. Podobnie jak w przypadku bra- gdy każdy jego krok ma własność
Układ ten pełni więc rolę ste- mek Toffoliego, stan wejścia ste- odwracalności lokalnej, rowanego inwertera i z tego powo- rującego C jest przekazywany bez Głównymi cechami odróżniają-
du nosi nazwę bramki CN (od zmian na wyjście C. Stany wyjść cymi algorytmy odwracalne od
f N0T(x) dla G 1 ja. dlaC = o'
nieodwracalnych jest sposób prowadzenia obliczeń oraz zapotrzebowanie na pamięć operacyjną. Pierwszy etap działania algoryt-
controlled NOT). Pod względem są określone zależnością: funkcjonalnym odpowiada on
bramce XOR. Zgodnie z dowodem aT'=iw diaC = l' ^l* dlaC =
Żylińskiego bramka CN nie wystarcza do odtworzenia wszystkich a więc bramka Fredkina pełni ro- mu odwracalnego jest taki sam, jak dwuargumentowych funkcji logicz- lę przełącznika sterowanego sta- w przypadku metod klasycznych:
nem linii C. dane dostarczone przez użytkowni-
Bramka Fredkina również ka są w odpowiedni sposób prze-
umożliwia obliczenie funkcji
' Łion wyr
NAND, lecz realizujący ją układ (rys. 5) jest bardziej skomplikowany, niż w przypadku implementacji wykorzystującej bramkę CCN. Powyższe przykłady pokazały,
c, X CL C! X'
0 0 0 0 0 0
0 0 1 0 0 1
0 1 0 D 1 0
0 1 1 0 1 1
1 0 0 1 0 0
1 0 1 1 0 1
1 1 0 1 1 1
1 1 1 1 1 0
łUmD(x,y)
Rys. 2. Bramka CCN
że jest możliwe obliczenie pros- Rys. 5. Realizacja funkcji NAND tych funkcji nieodwracalnych za pomocą bramek Fredkina
Elektronika Praktyczna 11/2003
87
KURS
Fot. ó. Pendulum - pierwszy procesor wykonany na bazie logiki odwracalnej
racyjnej na przechowywanie wyników pośrednich. Rozmiar tej pamięci zależy od liczby t wykonanych kroków elementarnych. Intuicja podpowiada, że zależność ta powinna być ograniczona od dołu przez funkcję liniową względem t, lecz szczegółowe badania teoretyczne [4, 5] obniżyły to oszacowanie do Li(log t). Zachodzi przy tym ciekawy związek między czasem potrzebnym na wykonanie obliczeń oraz zużyciem pamięci -im mniej dodatkowej pamięci jesteśmy skłonni przeznaczyć, tym dłużej muszą potrwać obliczenia. Osiągnięcie teoretycznego minimum zapotrzebowania na pamięć
kształcane na wynik. Po jego uzyskaniu procedura nieodwracalna niezwłocznie kończy działanie. Działanie algorytmu odwracalnego jest inne. Uzyskany wynik jest kopiowany do środowiska zewnętrznego i przekazywany użytkownikowi, po czym następuje odwrócenie kierunku przepływu sterowania i algorytm jest wykonywany wstecz, przekształcając wynik z powrotem na dane wejściowe.
Po zakończeniu tego procesu program oraz maszyna znajdują się w tym samym stanie, w którym były one przed rozpoczęciem obliczeń. Przywrócenie stanu początkowego oznacza, że cała przekształcana informacja została zachowana, a więc obliczenia mogły zostać przeprowadzone bez wydzielenia ciepła do otoczenia.
Powtórne wykorzystanie zasobów sprzętowych procesora odwracalnego, będące niezbędnym warunkiem możliwości jego praktycznego zastosowania, wymusza zapamiętanie informacji potrzebnej do odwrócenia obliczeń. Z tego powodu algorytmy odwracalne wymagają dodatkowej porcji pamięci ope-
Pendulum - fakty
Mikroprocesor Pendutum składa się z 200000
tranzystorów, ma 180 wyprowadzeń (w tym 32
służą do doprowadzenia zasilania do struktury)
i może być programowany za pomocą 18
instrukcji- Jednostka sterująca Pendulum
obsługuje 74-stopniowy potok przyspieszający
obliczenia- ^^m
oznacza jednak wykładnicze (w najgorszym przypadku) wydłużenie czasu obliczeń, co zwykle jest nieakceptowalne. Znaczenie praktyczne tego wyniku jest więc niewielkie.
Zastosowania praktyczne
Pierwsze próby zbudowania doświadczalnych układów scalonych realizujących obliczenia odwracalne podjęto w latach 1995-1999 w Massachusetts Institute of Technology. Zespół naukowców pracujący pod kierunkiem Mi-chaela P. Franka zaprojektował m.in. pierwszy odwracalny mikroprocesor RISC, któremu nadano nazwę Pendulum (wahadło). Układ ten wykonano w technologii SCRL (Split-level Charge Re-covery Logic - przedstawimy ją w jednym z najbliższych numerów - Red.).
Wymaganie pełnej odwracalnoś-ci obliczeń zostało spełnione po-
przez zaprojektowanie odwracalnego zbioru instrukcji, wykonywanych przez odwracalny układ sprzętowy. Dzięki temu kierunek przepływu sterowania może zostać zmieniony na dowolnym etapie działania programu - wówczas procesor rozpocznie proces przekształcania wyniku na dane wejściowe.
Korzystnym efektem ubocznym możliwości cofania biegu programu o dowolną liczbę kroków jest znaczne ułatwienie wyszukiwania błędów w jego kodzie, co jest bardzo istotne dla twórców oprogramowania.
Oprócz wykorzystania obliczeń odwracalnych w klasycznych technikach przetwarzania informacji pełnią one kluczową rolę w obliczeniach kwantowych. Ewolucja układu bitów kwantowych jest określona przez operatory uni-^^^^ tarne mające własność lokalnej odwracalności, dzięki czemu jest ona odwracalna globalnie. Piotr Wyderski
Bibliografia:
1. Rasiowa H., Wstęp do matematyki współczesnej, PWN, Warszawa, 1998
2. Smith W. D., Fundamental physi-cal limits on computation, http:// citeseer.nj.nec.com/smith95 fundamental.html
3. Smith W. D., Notes on reversible computation, http://citeseer.nj.nec-c om/s mi th98notes.html
4. Li M., Vitanyi P., Reversibility and adiabatic computation: trading time and space for energy, http://cite-seer.nj.nec.com/li96reversibility.html
5. Lange IC., McICensie P., Tapp A., Reversible space eąuals determi-nistic space, http://citeseer.nj.nec-c om/I ange9 8 reversible.html
6. Abramsky S., A struć tu rai ap-proach to reversible computation, http://citeseer.nj.nec.com/abrams-kyOlstructural.html
88
Elektronika Praktyczna 11/2003
KURS
Pamięci nieulotne w systemach mikroprocesorowych, część 2
Przechowywanie danych w wewnętrznej pamięci EEPROM mikrokontrolera
(AT89S8252, AT90S2313)
Do przechowywania danych nastaw, napisów, zmiennych definiowanych przez użytkownika i tym podobnych doskonale nadaje się wbudowana w strukturę mikrokontrolera AT89S8252 pamięć EEPROM. Ma ona dużą jak na świat mikrokontro-lerów pojemności - ,,aż" 2 kB. Podobnie jak w przypadku wbudowanej w strukturę pamięci RAM, nie wymaga żadnych dodatkowych układów dekodera adresu, dodatkowego napięcia zasilającego itp. Producent gwarantuje co najmniej 100 tysięcy cykli zapisu/odczytu, co przy przeciętnym użytkowaniu wystarcza na co najmniej kilka lat.
Wewnętrzna pamięć EEPROM umieszczona została przez producenta w obszarze XDATA. Dostęp do niej odbywa się za pomocą rozkazu MOVX z adresem komórki w rejestrze DPTR. Oczywiście rozkaz MOVX służy również do dostępu do urządzeń podłączonych na zewnątrz mikrokontrolera i dlatego też producent wprowadził dodatkowy bit o nazwie EE-MEN umożliwiający wybór zgodnego z intencją programisty sposobu działania MOVX. Ustawienie bitu powoduje, że rozkaz ten zapisuje/odczytuje dane do/z wewnętrznego EEPROM.
Odczyt danych jest bardzo szybki, gorzej jest z zapisem. Wewnętrzny układ kontrolera EEPROM umożliwia dostęp do pojedynczego bajtu danych. Każda operacja zapisu związana jest prawdopodobnie z koniecznością ustawienia wszystkich bi-
Konstruując urządzenia z mikrokontrolerami, często stajemy przed koniecznością zapewnienia przechowywania danych także po wyłączeniu lub zaniku zasilania. Łatwo jest, jeśli są to takie stałe jak: napisy menu (dla przykładu w różnych językach), obrazy, stałe parametry nastaw. Gorzej, jeśli musimy przechować zmienne. Jeszcze trudniej, gdy muszą one być zapamiętane również w przypadku awarii napięcia zasilania.
U1 ATMega8535
O3,3V
35 ICP XTAL1 XTAL2 RESET PD2/IMT0 PD3/IMT1 PD4 PD5/OC1A PBO/TO PB1/T1 PAO/ADO PA1/AD1 PA2/AD2 PA3/AD3 PA4/AD4 PA5/AD5 PA6/AD6 PA7/AD7 PC0/A8 PC1/A9 PC2/A10 PC3/A11 PC4/A12 PC5/A13 PC6/A14 PC7/A15 43 DI0
21 42 DI1\
41 DI2\
40 DI3\
39 DI4\
20 38 nis\
37 DI6\
36 DI7\
10 c 24 \
25
15 27
16 28 CE
17 29 ALE\
2 30 CLE\
31 BSY\
3 19 \
4 RE

5 PB3/AIN1 PB4/SS PB5/MOSI PB6/MISO PB7/SCK PD6/WHITE OC1B ALE PD0/RXD PD1/TCD 18 WE\
6 32 \
7 11
8
9 13

DI0 29
/DI1 30
/DI2 31
/DI3 32
/DI4 41
/DI5 42
^DI6 43
/DI7 44
/ BSY 7
/
ALE -CLE" WE
"RE~~
Rys. 5. Przykład połgczenia TC58128-AFT z mikrokontrolerem AVR
Tab. 1. Zestawienie pamięci Flash-NAND produkcji firmy Toshiba
Nazwa Org. Obudowa Zasilanie Rozmiar strony [B] Rozmiar bloku [kB]
TC58V64BFT 8MX8 TSOP-II 44 wypr. 2,7Vdo3,6V 528 8
TC58V64BFTI 8MX8 TSOP-II 44 wypr. 2,7Vdo3,6V 528 8
TC58DVM72F1FT00 8MX16 TSOP-I 48 wypr. 2,7Vdo3,6V 264 8
TC58128AFT 16MX8 TSOP-I 48 wypr. 2,7Vdo3,6V 528 16
TC58128AFTI 16MX8 TSOP-I 48 wypr. 2,7Vdo3,6V 528 16
TC581282AXB 16MX8 TFBGA-56 2,7Vdo3,6V 528 16
TC58DVM72A1FT00 16MX8 TSOP-I 48 wypr. 2,7Vdo3,6V 528 16
TC58DVM82F1FT00 16MX16 TSOP-I 48 wypr. 2,7Vdo3,6V 264 8
TC58256AFT 32MX8 TSOP-I 48 wypr. 2,7Vdo3,6V 528 16
TC58256AFTI 32MX8 TSOP-I 48 wypr. 2,7Vdo3,6V 528 16
TC582562AXB 32MX8 TFBGA-56 2,7Vdo3,6V 528 16
TC58DVM82A1FT00 32MX8 TSOP-I 48 wypr. 2,7Vdo3,6V 528 16
TC58DVM82A1XBJ1 32MX8 TFBGA-56 2,7Vdo3,6V 528 16
TC58512FT 64MX8 TSOP-I 48 wypr. 2,7Vdo3,6V 528 16
TC58512FTI 64MX8 TSOP-I 48 wypr. 2,7Vdo3,6V 528 16
TC58DVM92A1FT00 64MX8 TSOP-I 48 wypr. 2,7Vdo3,6V 528 16
TH58100FT 128MX8 TSOP-I 48 wypr. 2,7Vdo3,6V 528 16
TC58DVG02A1FTOO 128MX8 TSOP-I 48 wypr. 2,7Vdo3,6V 528 16
TC58NVG0S3AFT05 128MX8 TSOP-I 48 wypr. 2,7Vdo3,6V 2112 128
TH58100FTI 128MX8 TSOP-I 48 wypr. 2,7Vdo3,6V 528 16
TH58NVG1S3AFT05 256M X 8 TSOP-I 48 wypr. 2,7Vdo3,6V 2112 128k
tów w słowie. Piszę prawdopodobnie, ponieważ nie posiadam informacji na temat szczegółów funkcjonowania operacji zapisu i nie wiem, czy ustawiane są wszystkie bity słowa (przed zapisem komórka musi zawierać ,,1" na pozycjach ,,1" zapisywanego słowa danych), czy tylko te, dla których operacja ta jest niezbędna. Tak czy inaczej, operacja zapisu pojedynczego bajtu trwa około 1 ms. Jej zakończenie sygnalizowane jest przez wyzero-wanie bitu BSY/RDY umieszczonego w rejestrze WMCON. Na list. 2 (EPlO/ 2003) przedstawiono fragment programu odpowiedzialny za zapis i odczyt danych w pamięci EEPROM mikrokontrolera AT89S8252, a na list. 3 (EPlO/2003) przykłady ich użycia.
W podobny sposób można uzyskać dostęp do pamięci EEPROM wbudowanej w strukturę mikrokontrolera AT90S2313. Bity kontrolne, sposób ich funkcjonowania oraz nazwy są takie same, jak dla AT89. Zupełnie inne są jednak nazwy rejestrów specjalnych. Na list. 3 pokazano przykładowe funkcje zapisujące i odczytujące bajt do/z pamięci EEPROM. Niestety - ten typ mikrokontrolera posiada wbudowane tylko 128 bajtów EEPROM.
Elektronika Praktyczna 11/2003
89
KURS
Podobnie jak w przypadku pamięci RAM, również i EEPROM może przechowywać zmienne i nastawy ważne dla funkcjonowania aplikacji. Ze względu jednak na ograniczoną liczbę cykli zapisu/odczytu, wszelkich zmian powinno się dokonywać na zmiennej znajdującej się w pamięci RAM a jedynie w przypadku zaniku napięcia zasilania czy też jego załączenia, operacje zmienne powinny zostać zapamiętane czy odtworzone z pamięci EEPROM. Dla wydłużenia żywotności urządzenia, pamięci tej powinno się używać tak rzadko, jak to tylko jest możliwe.
Wykorzystanie zewnętrznej pamięci Flash do przechowywania danych
O ile opisywane wcześniej rozwiązania mogą posłużyć do zapamiętywania danych w sytuacji awaryjnej, o tyle użycie pamięci Flash o dużej pojemności wiąże się najczęściej z koniecznością budowy czegoś w rodzaju ,,dysku krzemowego" do przechowywania: obrazów, przetworzonego na postać cyfrową dźwięku i innych. Gwałtowny rozwój pamięci Flash w ostatnich latach został zapoczątkowany głównie przez aplikacje związane z telekomunikacją, a ściślej z telefonami GSM. Współczesny telefon wyposażony jest bardzo często w kilka lub kilkadziesiąt MB pamięci Flash służącej do przechowywania komunikatów SMS, nagrań, plików zawierających muzykę czy obrazy. Jako przykład układów przeznaczonych do takich właśnie zastosowań, chcę zaprezentować rodzinę układów firmy Toshiba (TAEC) oznaczonych symbolem TC58. Wykaz pamięci Flash-NAND produkowanych przez tę firmę znajduje się w tab. 1.
Wbrew pozorom, wykonanie interfejsu do obsługi pamięci Flash nie jest trudne. Innym zagadnieniem jest ewentualne wykonanie systemu plików na wzór tego stosowanego przy zapisie dysków (czy dyskietek) w systemach operacyjnych ,,dużych" komputerów, jak na
Tab. 2. Wykaz poleceń akceptowanych przez kontroler pamięci TC58
Opis polecenia 1-szy bajt 2-gi bajt Akceptowane w stanie zajęto-ści?
Wprowadzanie danych {Seria! Data Input) 0x80 - nie
Tryb odczytu numer 1 {ReadMode 1) 0x00 - nie
Tryb odczytu numer 2 {ReadMode 2) 0x01 - nie
Tryb odczytu numer 3 {ReadMode 3) 0x50 - nie
Zerowanie kontrolera {Resef) OxFF - tak
Programowanie strony {Auto Program) 0x10 - nie
Kasowanie bloku danych {Auto Błock Erase) 0x60 0xD0 nie
Odczyt statusu {Status Read) 0x70 - tak
Odczyt sygnatury (ID Read) 0x90 Ś nie
List. 5. Przykład realizacji programowego interfejsu do obsługi pamięci Flash TC58128
tdefine PAGE_SIZE 528 tdefine PAGES_PER_BLOCK 32 tdefine BLOCK_PER_FLASH 1024;
at 0x00 pdata FLASH_BASE;
// rozmiar strony
// liczba stron w bloku dla danego typu NAND
// liczba bloków na pamięć
// adres bazowy pamięci FLASH
tdefine FLASH_READY tdefine FLASH_CLE_SET tdefine FLASH_CLE_CLR tdefine FLASH_ALE_SET tdefine FLASH_ALE_CLR
(PINC & 0x80)
PORTC = PORTC I 0x40
PORTC = PINC & (-0x20)
PORTC = PORTC I 0x20
PORTC = PINC & (-0x20)
// wyprowadzenie BUSY pamięci FLASH // ustawienie sygnału CLE pamięci FLASH // zerowanie sygnału CLE pamięci FLASH // ustawienie sygnału ALE pamięci FLASH // zerowanie sygnału CLE pamięci FLASH // pętla - oczekiwanie na gotowość FLASH // ustawienie sygnału CE pamięci FLASH // zerowanie sygnału CE pamięci FLASH
tdefine WAIT_4_READY while (!FLASH_READY) tdefine FLASH_CE_SET PORTC = PORTC I 0x10 tdefine FLASE_CE_CLR PORTC = PINC & (-0x10)
tdefine WORD unsigned int tdefine BYTE unsigned char
/* odczyt kodu wytwórcy i kodu pamięci FLASH (odczyt sygnatury, PDF file str.14); starszy bajt zawiera kod wytwórcy, młodszy kod urzsdzenia (rodzaju FLASH) */ WORD F_ReadStatus(void)
i nt t emp;
FLASH_ALE_CLR; //
FLASH_CLE_SET; //
FLASH_CE_CLR; //
FLASH_BASE = 0x90; //
FLASH_CLE_CLR; //
FLASH_ALE_SET; //
FLASH_BASE = 0; //
FLASH_ALE_CLR; // temp = (int)FLASH_BASE;//
temp <<= 8; // temp 1= (int)FLASH_BASE;
FLASH_CE_SET; //
return (temp); //
wyzerowanie sygnału ALE
ustawienie sygnału CLE
zerowanie sygnału CS pamięci FLASH, wybór pamięci
zapis bajtu 0x90 do pamięci FLASH-1
wyzerowanie sygnału CLE
ustawienie sygnału ALE
zapis bajtu o wartości 0x00 do FLASH
wyzerowanie sygnału ALE
zapis do zmiennej temp wartości bajtu pobranego z FLASH
kod wytwórcy
// dodanie do słowa sygnatury
wyłączenie pamięci FLASH poprzez ustawienie sygnału CE funkcja zwraca bajt sygnatury FLASH
// odczyt strony o rozmiarze PAGE_SIZE z pamięci FLASH (seąuential read (1), str.ll w PDF) short FLASH_ReadPage(WORD wPageNum, char *pBuff)
int temp;
if (!FLASH_READY) return (-1); // jeśli pamięć nie gotowa funkcja kończy prace i zwraca -1
FLASH_ALE_CLR; // zerowanie sygnału ALE
FLASH_CE_CLR; // załączenie wyboru pamięci FLASH-1 (zerowanie sygnału CE)
FLASH_CLE_SET; // ustawienie sygnału CLE
FLASH_BASE = 0; // zapis bajtu o wartości 0x00 do FLASH, wybór trybu 1
FLASH_CLE_CLR; // wyzerowanie sygnału CLE
FLASH_ALE_SET; // ustawienie sygnału ALE
FLASH_BASE = 0; // ustawienie adresu kolumny w pamięci FLASH na 0x00
FLASH_BASE = (unsigned char)wPageNum; // zapis młodszego bajtu adresu strony
FLASH_BASE = (unsigned char)(wPageNum>>8); // zapis starszego bajtu adresu strony
FLASH_ALE_CLR; WAIT_4_READY;
// zerowanie sygnału ALE
// oczekiwanie na zakończenie operacji przez FLASH
for (temp = 0; temp < PAGE_SIZE; temp++)
Buff++ = FLASH_BASE;
// pobranie kolejnych bajtów
FLASH_CE_SET; // wyłączenie pamięci poprzez ustawienie sygnału wyboru
return (0); // jeśli wykonanie zakończyło się sukcesem f,zwraca 0x00
/* odczyt części strony pamięci FLASH w trybie 1,2 lub 3; tryb wybierany jest w zależności
od rozmiaru parametru OFFSET (PDF strony 11 i 12) */
short FLASH_ReadPartialPage(WORD wPageNum, void *pBuff, WORD offset, WORD length) {
short temp; // zmienna tymczasowa; wykorzystana do inkrementacji adresu
BYTE command; // zmienna zawierająca komendę
*pBuffer = (BYTE*)pBuff; // wskaźnik do bufora w pamięci RAM
if (offset + length > PAGE_SIZE) return (-1); // jeśli offset i liczba bajtów do // odczytu są większe od rozmiaru strony, funkcja kończy prace // zwracając kod błędu if (offset < 256) // jeśli offset jest mniejszy od 256, wybierany jest tryb 1
command = 0; // (command = 0)
else if (offset < 512) // jeśli offset jest większy od 256 ale mniejszy od 512,
command = 1; // wybierany jest tryb 2 (command = 1)
else // w innych przypadkach wybierany jest tryb 3 (command = 50H)
command = 0x50;
if ( ! FLASH_READY) return (-1) ; // pamięć jest zajęta, f .kończy pracę zwracając kod błędu
// poniższa część kodu jest wspólna dla wszystkich trybów pracy - różnią się one tylko
// 1-szym bajtem komendy
FLASH_ALE_CLR; // wyzerowanie sygnału ALE
FLASH_CE_CLR; // wybór (załączenie) pamięci FLASH
90
Elektronika Praktyczna 11/2003
KURS
List. 5 - cd.
FLASH_CLE_SET; /.
FLASH_BASE = command;
/.
FLASH_CLE_CLR; /.
FLASH_ALE_SET; /.
FLASH_BASE = offset;
ustawienie sygnału CLE
// wysłanie do pamięci FLASH bajtu komendy wybranego na podstawie wartości argumentu OFFSET zerowanie sygnału CLE ustawienie sygnału ALE
// zapis bajtu adresu kolumny do pamięci FLASH
FLASH_BASE = (unsigned char)wPageNum; // zapis młodszego bajtu numeru strony FLASH
FLASH_BASE = (unsigned char)(wPageNum8); // zapis starszego bajtu numeru strony FLASH
FLASH_ALE_CLR ; WAIT_4_READY; length += offset;
wyzerowanie sygnału ALE oczekiwanie na ustawienie sygnału BUSY dodanie do wartości LENGHT wartości OFFSET, to będzie // adres liniowy w pamięci FLASH for (temp = offset; temp < length; temp++)
{ // odczyt LENGTH bajtów z pamięci FLASH
*pBuffer++ = FLASH_BASE;
WAIT_4_READY; // po odczycie każdego bajtu czekamy na ustawienie READY )
FLASH_CE_SET; // wyłączenie pamięci
return(0);
/* zapis danych o rozmiarze pojedynczej strony do pamięci FLASH */ short FLASH_WritePage(WORD wPageNum, char *pBuff)
i nt t emp; BYTE status;
if (!FLASH_READY) return (-1); // pamiec nie gotowa, f.kończy prace i zwraca kod błędu
zerowanie sygnału ALE
ustawienie sygnału CLE
załączenie układu pamięci FLASH
zapis komendy 80H do FLASH-1 (serial input)
ustawienie sygnału ALE
"wyzerowanie sygnału CLE
ustawienie adresu kolumny na wartość 0 FLASH_BASE = (unsigned char)wPageNum; // zapis młodszego bajtu numeru strony do FLASH
FLASH_BASE = (unsigned char)(wPageNum8); // zapis starszego bajtu numeru strony do FLASH
FLASH_ALE_CLR ; FLASH_CLE_SET ; FLASH_CE_CLR; FLASH_BASE = 0x8 0 FLASH_ALE_SET ; FLASH_CLE_CLR; FLASH_BASE = 0;
FLASH_ALE_CLR ; WAIT_4_READY;
temp
for (temp = FLASH_CLE_SET ; FLASH_BASE = 0x10; , WAIT_4_READY; FLASH_BASE = 0x7 0; ,
FLASH_CLE_CLR; status = FLASH_BASE; FLASH_CE_SET;
wyzerowanie sygnału ALE
oczekiwanie na zgłoszenie gotowości przez FLASH
zapis PAGE_SIZE bajtów do pamięci FLASH PAGE_SIZE; temp++) FLASH_BASE = *pBuff++;
ustawienie sygnału CLE
zapis komendy "koniec programowania"
oczekiwanie na gotowość FLASH
zapis komendy "status read", ustawienie FLASH w
"status read modę"
zerowanie sygnału CLE
// pobranie bajtu statusu
wyłączenie FLASH poprzez ustawienie jej sygnału wyboru if (status&l) return (-2); // jeśli ustawiony jest bit FAIL (strona 20 PDF),
// funkcja zwraca kod bledu return (0) ; // w przeciwnym wypadku zwracane jest 0x00
/* kasowanie bloku o numerze wBlockNum w pamięci FLASH (auto błock erase, PDF str. 13) */ short FLASH_EraseBlock(WORD wBlockNum)
BYTE status;
/* adresy bloków dla pamięci TC58128 podawane sa na liniach od A14 do A23; wymaga to przesunięcia argumentu wBlockNum o 5 miejsc w lewo; inaczej jest dla pamięci TC5832 i 64; tu adres podawany jest na liniach A13 do A21 - wymaga to przesunięcia adresu w lewo o 4 miejsca (PDF strona 16); w tej sytuacji opisywany w PDF "NAND address in błock" jest równy 0x00 */
wBlockNum<< = 5 ;
FLASH_ALE_CLR ;
FLASH_CLE_SET ;
FLASH_CE_CLR;
FLASH_BASE = 0x6 0
FLASH_ALE_SET ;
FLASH_CLE_CLR;
FLASH_BASE = (unsigned char)wBlockNum;
FLASH_BASE = (unsigned char) (wBlockNum8) ;
przesuniecie dla TC58128
zerowanie sygnału ALE
zerowanie sygnału CLE
wybór (załączenie) pamięci FLASH
zapis instrukcji "erase setup"
ustawienie sygnału ALE
zerowanie sygnału CLE
// zapis młodszego bajtu numeru bloku // zapis starszego bajtu numeru bloku
zerowanie sygnału ALE
zerowanie sygnału CLE
zapis polecenia "erase start"
zerowanie sygnału CLE
oczekiwanie na gotowość pamięci NAND
ustawienie sygnału CLE
zapis polecenia "status read"
zerowanie sygnału CLE // odczyt bajtu statusu
wyłączenie pamięci FLASH poprzez ustawienie sygnału wyboru
FLASH_ALE_CLR ;
FLASH_CLE_SET ;
FLASH_BASE = 0xD0; ,
FLASH_CLE_CLR;
WAIT_4_READY;
FLASH_CLE_SET ;
FLASH_BASE = 0x7 0; ,
FLASH_CLE_CLR;
status = FLASH_BASE;
FLASH_CE_SET;
if (status &. 1) return (-2); // jeśli ustawiony jest bit FAIL w słowie statusu, to
// funkcja zwraca błąd return (0) ; // w przeciwnym wypadku zwracane jest 0x00
przykład antyczne już dziś CP/M czy DOS. To może być dosyć skomplikowane. Jeśli jednak chcemy przechowywać dane w postaci rekordów adresowanych liniowo, czy wreszcie dużych bitmap przechowywanych pod określonym adresem - można to zrobić szybko i efektywnie.
Pamięci - jak łatwo zorientować się z tab. 1 - zasilane są napięciem od 2,7 do 3,6V. Taki wybór zakresu napięć zasilania podyktowany był przede wszystkim przeznaczeniem pamięci do urządzeń przenośnych zasilanych z baterii. W przeszłości firma Toshiba produkowała również pamięci zasilane napięciem 5 V, jednak ich produkcja została zaniechana. Detekcja poziomów logicznych jest zgodna ze standardem CMOS - tak więc stan wysoki na wejściu czy wyjściu pamięci to około 95% wartości napięcia zasilającego (przeciętnie około 3,1 V dla Ucc=3,3 V), a stan niski to napięcie mniejsze niż 0,4 V.
Czasami podłączając TC58 do systemu z mikrokontrolerem należy zbudować dekoder adresów i umieścić ją w obszarze adresowym XDATA przydzielając jej pewien, zależny od rozmiaru pamięci, zakres adresów. Niektóre układy mikrokon-trolerów mają dekoder adresowy wbudowany w strukturę, dla innych trzeba go wykonać na układach dyskretnych. Popularny mikrokontroler z rodziny 8051/8052 może również wymagać zastosowania dodatkowego rejestru zapamiętującego młodszą część adresu. Dodatkowego sterowania wymagają również wyprowadzenia pamięci takie jak: RE [Read Enable], WE [Write Enable), CLE [Command Latch Enable), ALE [Address Latch Enable) i RY/BY [Ready/Busy). Należy również pamiętać o tym, że pamięć nie może być zasilana napięciem wyższym niż 3,6 V, a optymalną wartością jest 3,3 V. O ile w przypadku mikrokontrolerów AVR nie jest to problem, o tyle dla układów z serii 8051 może nim być. Używany we wcześniejszych przykładach programowania AT89S8252 ma minimalne dopuszczalne napięcie zasilające 4 V, w związku z czym konieczny jest układ translacji poziomów napięć.
Na rys. 5 przedstawiono propozycję podłączenia pamięci Flash TC58128-AFT do mikrokontrolera Atmega8535. Jak widzimy, sprzętowy interfejs pamięci TC58128 (128 Mb) nie nastręcza zbyt wielu kłopotów przy wykonaniu. Szyna danych pamięci jest multipleksowana z szyną adresową. Słowo adresowe, wprowadzane jest w 3 ,,porcjach" po 8 bitów. Słowo danych ma długość 8 bitów, toteż 8-bitowy AVR nie ma żadnego kłopotu z jego odczytem. Oba układy (mikrokontroler i pamięć Flash) zasilane są z napięcia 3,3 V. Dzięki temu nie jest konieczne wykonywanie translacji poziomów napięć logicznych.
W projektowaniu i implementacji interfejsu programowego pomaga uważna lektura kart katalogowych. Struktura pamięci używanej w przykładzie to 528 bajtów x 32 strony x 1024 bloki. Pamięć posiada wewnętrzny rejestr statyczny o długości 528 bajtów służący jako bufor do wymiany danych podczas operacji zapisu/odczytu. Funkcja kasowania została
Elektronika Praktyczna 11/2003
91
KURS
Tab. 3. Wybrane pamięci Flash produkcji AMD (obecnie Spansion)
Pojemność Nazwa Opis Obudowa
16Mb Am29LV160MT/B z częścią Boot; magistrala danych x8 lub x16; organizacja 1x16kB,2x8kB, 1x32kB, 15x64kB;70, 90 i 120ns 48 FBGA, 64 Fortified BGA
16Mb Am29LV017M 16Mb, magistrala danych x8; jednolity blok; 70,90 i 120ns 48 FBGA, 40 TSOP/RTSOP
16Mb Am29LV116M z częścią Boot; magistrala danych x8 lub x16; organizacja 1x16kB,2x8kB, 1x32kB, 15x64kB;70, 90 i 120ns 40 TSOP/RTSOP 26008
32Mb Am29LV320MH/L 64kB, magistrala danych x8 lub x16; jednolity blok; 90,100,110 i 120ns 64 Fortified BGA, 56 TSOP/RTSOP
32Mb Am29LV320MT/B z częścią Boot; magistrala danych x8 lub x16; organizacja 64kB (boot 2x8kB na "górze" i "dole" przestrzeni adresowej); 90,100,110 i 120ns 48 FBGA, 64 Fortified BGA, 48 TSOP
32Mb Am29LV033MU 64kB, magistrala danych x8 lub x16; jednolity blok; 90,100,110 i 120ns 48 FBGA, 40 TSOP/RTSOP
64Mb Am29LV640MH/L 64kB, magistrala danych x8 lub x16; jednolity blok; 90,100,110 i 120ns Fortified BGA, 56 TSOP/RTSOP
64Mb Am29LV640MT/B z częścią Boot; magistrala danych x8 lub x16; organizacja 64kB (boot 2x8kB na "górze" i "dole" przestrzeni adresowej); 90,100,110 i 120ns 48 FBGA, 64 Fortified BGA,48 TSOP
64Mb Am29LV640MU 32kWord,x16; jednolity blok; 90,100,110 i 120ns 63 FBGA, 64 Fortified BGA
64Mb Am29LV641MH/L 32kWord,x16; jednolity blok; 90,100,110 i 120ns 48 TSOP/RTSOP
64Mb Am29LV065MU 64kB, x8; jednolity blok; 90,100,110 i 120ns 63 FBGA, 48 TSOP/RTSOP
128Mb Am29LV128MH/L 64kB, magistrala danych x8 lub x16; jednolity blok; 90,100,110 i 120ns 64 Fortified BGA, 56 TSOP/RTSOP
256Mb Am29LV256MH/L 64kB, magistrala danych x8 lub x16; jednolity blok; 90,100,110 i 120ns 64 Fortified BGA, 56 TSOP/RTSOP
512Mb Am29LV512NH/L 128kB, magistrala danych x8 lub x16; jednolity blok; 90,100,110 i 120ns 64 Fortified BGA, 56 TSOP/RTSOP
zaimplementowana dla pojedynczego bloku (528 bajtów x 32 strony). Tutaj słowo wyjaśnienia. Komórka pamięci Flash przed zapisem wymaga, aby wszystkie bity słowa lub co najmniej te, które mają mieć po zapisie wartość logiczną ,,1", były ustawione. W tym celu każda z pamięci Flash ma zaimplementowana funkcję sprzętowego kasowania, najczęściej bloku lub strony, powodującą ustawienie wszystkich bitów w zadanym obszarze na wartość ,,1". Pamiętajmy - operacja zapisu musi być poprzedzona kasowaniem!
Każda z pamięci TC58 posiada wbudowany w strukturę kontroler zdolny do interpretacji i wykonywania prostych rozkazów. On jest odpowiedzialny za kasowanie bloku oraz za właściwą interpretację wprowadzanego bloku danych. Lista realizowanych poleceń nie jest zbyt obszerna, jednak do pełnego zrozumienia
wymaga lektury sekwencji czasowych. Nie umieszczę ich w tym artykule ze względu na szczupłość miejsca - proponuję sięgnąć do karty katalogowej.
W tab. 2 znajduje się uproszczony wykaz dostępnych rozkazów. Przykładową implementację interfejsu programowego do obsługi pamięci Flash typu TC58128 w języku C zawiera list. 5.
Perspektywy
Znając tempo rozwoju pamięci Flash sądzę, że od momentu napisania do ukazania się tego artykułu, pojawią się na rynku nowe produkty, a pewne informacje staną się nieaktualne. Moim zdaniem, pamięci Flash zastąpią dyski twarde w komputerach PC. Pierwsze produkty tego typu można już kupić w sklepach, jednak dyski Flash o dużej pojemności są ciągle zbyt drogie w porównaniu z ich
Tab. 4. Wybrane pamięci Flash produkcji firmy STM
Pojemność Nazwa Opis Obudowa
16Mb M29KW016E 16Mb(x16) 90ns jednolity blok TSOP48, SO44, TFBGA48
32Mb M29KW032E 32Mb(x16) 90ns jednolity blok TSOP48, TFBGA48
64Mb M29KW064E 32Mb(x16) 90ns jednolity blok TSOP48, TFBGA48
tradycyjnymi odpowiednikami. Sądzę, że to jednak tylko kwestia czasu i opracowania odpowiednio tanich technologii. Ogromne zapotrzebowanie na pamięci typu Flash jest powodem, dla którego stale są one udoskonalane. Nie mam tu na myśli bynajmniej tylko komputerów PC, ale również różne nowoczesne ,,zabawki": telefony komórkowe, komputery typu Pal-mTop, kamery wideo i cyfrowe aparaty fotograficzne oraz wiele, wiele innych. Wystarczy przejrzeć strony internetowe czy katalogi producentów podzespołów. Na przykład firma AMD (obecnie Spansion) wprowadziła ofertę podzespołów pod wspólną nazwą MirrorBit. Można w niej znaleźć pamięci Flash zasilane napięciem od 1,8 do 5 V o pojemnościach od 16 do 256 Mb (tab. 3).
Firma STM wprowadziła linię produktów pod wspólną nazwą LightFlash (tab. 4). Podobne działania prowadzą również inni producenci, jak na przykład Winbond, Atmel czy Renesas - prześcigając się w miniaturyzacji cel oraz liczbie cykli zapisu/o dc żytu. Przyszłość pamięci Flash zapowiada się bardzo ciekawie. Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
92
Elektronika Praktyczna 11/2003
BASCOMOWE PORADY
W boscomowym "kąciku" będziemy się starać w miarę przystępnie przedstawiać rozwiązania problemów napotykanych przez naszych Czytelników podczas pisania programów w Bascomie. Rubryka ta powstała z myślą o rozwiązywaniu problemów, jakie najczęściej napotykają programiści, zatem zachęcamy wszystkich Czytelników do zgłaszania problemów, na jakie się natknęli podczas tworzenia własnych programów.
Obsługa interfejsu RS232
Na początek parę słów wstępu na temat interfejsu RS232, który jest spotykany w większości typowych aplikacji mikrokontroler owych. Najczęściej w praktyce problemy wynikają z błędnego założenia, że mikrokontroler należy "wprost" połączyć trzema przewodami z RS-em komputera i to wystarczy do wymiany danych. Trzeba jednak wziąć pod uwagę, że w liniach interfejsu RS232 występują inne napięcia niż typowe dla standardu TTL - mikrokontroler jako logiczne "0" traktuje napięcie 0...0,8 V, natomiast logiczną "1" jest napięcie +2,0...5 V. Zgodnie z zaleceniami normy opisującej RS232 napięcia dla logicznych "0" i "1" wynoszą odpowiednio > + 3 V oraz <-3 V. Żeby uruchomić komunikację między procesorem a komputerem, niezbędny jest konwerter napięć ze standardu TTL na RS232. Najbardziej popularnym scalonym konwerterem jest układ MAX232 i jego odpowiedniki , które mają wbudowaną ładunkową przetwornicę napięcia. Czasami można sobie także poradzić, stosując różne sztuczki np. robiąc interfejs na tranzystorach. Na rys. 1 przedstawiono schemat typowego układu konwertera TTL<->RS232.
Tu mała uwaga - na przedstawionym schemacie, jak i w notach aplikacyjnych układów, podawane są różne wartości kondensatorów wymaganych do poprawnej pracy układu (od 0,1 \iF do 10 \iF). Przed zmon-
towaniem układu należy sprawdzić w nocie katalogowej stosowanego układu, kondensatory o jakiej pojemności należy zastosować.
Jeszcze jedna uwaga na temat połączenia mikrokontroler a z interfejsem RS znajdującym się w komputerze: masy łączy się razem, ale styki oznaczone TxD (Transmit Data - nadawanie danych) oraz RxD (Receive Data - odbiór danych) łączymy "na krzyż": TxD mikrokontroler a łączymy ze stykiem RxD komputera i na odwrót.
Aby skorzystać z transmisji RS232, na początek należy skonfigurować UART/USART mikrokontroler a (wymaga to napisania odpowiedniego programu) oraz w komputerze - należy ustawić jednakowe parametry transmisji (jednakową prędkość oraz pozostałe parametry, np.: 8 bitów danych, 1 bit stopu, bez parzystości - co często jest zapisywane jako 8nl). W Bascomie do deklaracji prędkości pracy interfejsu jest używana następująca instrukcja dyrektywy kompilatora: $baud = 9600
Należy ją użyć na początku programu (prędkość można także ustawić w menu Options>Compiler>Communi-cation, ale lepiej zadeklarować w programie). Bardzo ważną rzeczą jest także poznanie zależności szybkości RS-a od częstotliwości użytego kwarcu. Najłatwiej sprawdzić to w Bascomie, ustawiając w menu Op-tions>Compiler>Communication żąda-
TxD
RxD
C1+ V+
C1-C2+
VCC GND
T1OUT
R1IN
R1OUT
T2IN R2OUT
VCC
15
Uwaga na zamienione TxD z RxD
-O TxD procesora
-O RxD procesora
Opis wg ST232 (odpowiednik MAX232)
T1.T2IN-wejścia TTL
T1, T2OLJT - wyjścia RS232
R1, R2IN - wejścia RS232
R1, R2OUT - wyjścia TTL
Rys. 1. Schemat typowego konwertera z wykorzystaniem MAX232
ną prędkość transmisji oraz częstotliwość kwarcu i w dolnej części okna (ramka ERROR) będziemy mieli podaną średnią stopę błędów lup napis Not Possible, czyli niemożliwe do ustawienia - tak jest np. dla 1200 bodów i kwarcu powyżej 4 MHz. Złe dopasowanie częstotliwości kwarcu do wymaganej prędkości transmisji jest jedną z częstych przyczyn błędów lub wręcz braku transmisji.
W tab. 1 przedstawiono niektóre zależności błędów dla danych częstotliwości kwarców przy różnych prędkościach.
Podstawowym poleceniem w Bascomie służącym do wysłania danych z mikrokontrolera przez RS232 jest instrukcja print. Używa się jej w najprostszy z możliwych sposobów, czyli: Print zmienna
gdzie zmienna to dowolna zmienna (lub stała) zadeklarowana w programie. Można podawać wartości stałe bezpośrednio w instrukcji print. Np.: Print "To jest tekst testowy"
Jak widać, wysyłany tekst zawarto w cudzysłowach. Tu mała dygresja - jeśli mamy zadeklarowaną zmienną typu hyte, a jej wartość wyniesie 255, to polecenie: Print zmienna
"wydrukuje" nam 255 (czyli wartość dziesiętną). Czasem potrzebne są dane w formacie szesnastkowym - tu Bascom pomaga nam poleceniem: Print Hex(zmienna)
i takie polecenie zamiast 255 "wydrukuje" nam FF. Czasem potrzebujemy także wydrukować znak ASCII, znając kod danej liczby np. 66, czyli "b" - do tego celu możemy użyć instrukcji: Print Chr(66)
która to instrukcja "wydrukuje" znak b. Polecenie print zakończone średnikiem nie wyśle domyślnie znaku końca wiersza i przejścia do następnej linii (odpowiednik ENTER -"CR" - #13"), natomiast bez średnika terminal zawsze przejdzie do następnej linii.
Do odbierania danych przez RS2 32 Bascom ma dedykowanych kilka instrukcji. Pierwsza z nich to instrukcja input. Składnia instrukcji input jest następująca: INPUT "tekst",zmiennal,zmienna2....
Elektronika Praktyczna 11/2003
93
BASCOMOWE PORADY
Tab. 1. Przykłady wartości błędów przy rożnych wartościach prędkości transmisji i oscylatorów kwarcowych
Częstotliwość kwarcu/prędkość transmisji 1200 2400 4800 9600 19200 57600 115200
1,000000 0,16% 0,16% 0,16% 7,84% 7,84% 7,84% 45,75%
1,843200 0,00% 0,00% 0,00% 0,00% 0,00% 0,00% 0,00%
2,457600 0,00% 0,00% 0,00% 0,00% 0,00% 25,00% 25,00%
3,276000 0,37% 0,37% 1,54% 1,54% 6,23%
3,686000 4,16%
4,000000 0,16% 0,16% 0,16% 0,16% 0,16% 7,84% 7,84%
4,096300 2,51%
4,194000 1,12%
4,433618 3,00%
4,433618 3,00%
4,915200 0,00% 0,00% 0,00% 0,00% 0,00% 6,25% 6,26%
6,144000 X 0,00% 0,00% 0,00% 0,00% 10,00% 10,00%
6,553600 X 0,39% 0,39% 1,56% 1,56% 1,56% 15,63%
7,372800 0,00% 0,00% 0,00% 0,00% 0,00% 0,00% 0,00%
7,680000 0,00% 0,00% 0,00% 0,00% 0,00% 4,00% 4,00%
8,000000 X
8,860000 X 0,16% 0,16% 0,16% 0,16% 7,84% 7,84%
x - wartość niemożliwa do otrzymania
Jako "tekst" podajemy dowolny tekst, który ma się ukazać jako komunikat o oczekiwaniu na podanie danych (może go nie być) np.:
Dim A As Byte
Dim Ciąg As String * 36
INPUT "Podaj A:", a
1 oczekiwać będzie na wpisanie
'liczby typu byte (0-255)
INPUT "A teraz wpisz tekst (max. 36
znaków):", ciąg
1 oczekiwać będzie na wpisanie
'tekstu o długości max. 36 'znaków
Oczywiście można stosować kilka zmiennych naraz np.: INPUT "Podaj A oraz tekst:", a ,ciąg
1 oczekiwać będzie na wpisanie 'liczby typu byte (0-255) oraz 'na wpisanie tekstu o długości 3 6 'znaków
Aby zakończyć odbiór danych poprzez polecenie input, należy na zakończenie zawsze wysłać znak CR (#13 - ENTER) - co w przypadku podawania danych ręcznie np. z klawiatury PC poprzez terminal nie jest z reguły problemem i jest wygodne, natomiast może się zdarzyć, że chcemy odbierać dane z jakiegoś podłączonego urządzenia, które np. nie wysyła znaków końca wiersza. Tutaj twórca Bascoma przyszedł z pomocą i stworzył wiele instrukcji. Jedną z nich jest polecenie inputbin, które odbiera każdy znak niezależnie od tego, czy jest to litera, czy kod sterujący (np. #13, którego nie interpretuje w żaden sposób, czyli po prostu zapisuje go do zmiennej).
Składnia tego polecenia jest następująca: INPUTBIN zmiennal,zmienna2....
Polecenie to nie posiada "tekstu zachęty" i oczekuje na tyle znaków, ile jest w definicji zmiennych. Na przykład:
Dim Ciąg As String * 36 INPUTBIN ciąg
W tym przypadku instrukcja inputbin będzie czekać na odebranie 36 znaków i zakończy odbiór dopiero po odebraniu wszystkich znaków. Jest to bardzo pomocne, jeśli zawsze odbieramy z urządzenia zewnętrznego dane o takim samym rozmiarze. W przypadku gdy liczba ta jest zmienna, to lepiej użyć innej konstrukcji procedury odbioru. Polecenie inputbin może także służyć do odbioru znaków bezpośrednio do tablicy - należy wówczas z góry określić, ile bajtów należy odebrać oraz od którego miejsca w tablicy należy zacząć zapisywać dane: Inputbin tablica(3), 6 'do tablicy trafi 6 bajtów, jako 'pierwsza zostanie zapisana komórka 'nr 3
Kolejną instrukcją z rodziny input godną wspomnienia jest instrukcja inputhex. Nie różni się ona składnią od polecenia input, różni się natomiast jedną zasadniczą cechą: odbiera znaki w formacie szesnastkowym wprowadzanym jako zwykły tekst, czyli jeśli podamy jako odpowiedź na poniższy przykład: Dim A As Byte INPUTHEX "Podaj wartość szesnastkowa",a
znaki "FU", to wtedy w zmiennej a znajdzie się wartość 255, czyli "FU" szesnastkowo. Polecenie to umożliwia wprowadzanie znaków w formie szes-nastkowej. Jedna uwaga: każdy spośród dotąd wymienionych rozkazów z rodziny input zatrzymuje działanie programu i oczekuje na podanie znaku. Właśnie ta cecha powoduje, że polecenia te nie nadają się do wykorzystania przy odbiorze danych gdzieś np. w głównej pętli programu, który nie może być wstrzymywany. Natomiast znakomicie nadają się do konkretnych zastosowań takich jak np.: programowanie pamięci danych programu za pomocą dedykowanej aplikacji, odbioru danych wywoływanych zewnętrznym impulsem (np. intO lub intl, czy podanym na jakiekolwiek wejście).
Poniżej przedstawiono przykład odbioru danych przez RS232, które są przeznaczone do zapisania z pamięci EEPROM pod przesłany wcześniej adres:
$regfile = "m8def.dat" 'powiadomienie o wykorzystywanym 'procesorze atmega8 $crystal = 8000000 'częstotliwość oscylatora $baud = 9600 'prędkość transmisji
dim dana as byte dim adres as byte
Input "Adres:", Adres
'czeka na adres
INPUTHEK "Dana:", Dana
'czeka na dana
Print Adres; ":"; Dana
'wysyła odebrany adres oraz dana
1 do komputera
Writeeeprom Dana, Adres
'zapisuje do eeprom otrzymana
'dana pod otrzymanym 'adresem Loop End
W przedstawionym przykładzie mikrokontroler czeka na odebranie adresu, pod którym ma być zapisana dana, oraz na zapisywaną daną. Odebrana dana następnie zostaje zapisana w pamięci EEPROM pod otrzymanym wcześniej adresem. W przedstawionym przykładzie do odbioru danych została wykorzystana instrukcja inputhex, która odbiera dane szesnastkowo - można je od razu zapisać do pamięci EEPROM. W tym przykładzie do kontroli poprawności odebranych danych wysyłany jest adres oraz odebrana dana poprzez instrukcję print. Bascom udostępnia także funkcje umożliwia-
94
Elektronika Praktyczna 11/2003
BASCOMOWE PORADY
jące odbieranie pojedynczych znaków przez RS232. Do tych funkcji można zaliczyć waitkey(), która czeka na odebranie znaku (wstrzymuje działanie programu do czasu pojawienia się w buforze transmisji szeregowej odebranego znaku), oraz funkcje in-key(), która zwraca kod ASCII pierwszego znaku znajdującego się w buforze transmisji szeregowej bez wstrzymywania działania programu. Na list. 1 przedstawiono przykład programu ilustrującego różnice w działaniu wymienionych funkcji.
Jeżeli zostanie przez mikrokontro-ler odebrana "jedynka" potwierdzona enterem, wykonana zostanie funkcja waitkey(), która czeka na znak, czyli wstrzymuje działanie programu. Po odebraniu znaku przez funkcje wait-key() odebrany znak jest wysyłany z powrotem do PC (w kodzie ASCII). Jeśli zostanie odebrana z portu RS232 wartość 2, to zostanie zaprezentowane działanie funkcji inkey(). Jest ona wykonywana, aż odebrany zostanie znak o kodzie 27 (ESC). Jeżeli odebrany znak ma kod większy od 0, to do PC zostaje wysłany kod ASCII odebranego znaku oraz sam znak. Tak więc do PC będą wysyłane odebrane znaki ASCII od 1 do 255. Ponieważ funkcja inkey() pobiera znak z bufora sprzętowego układu UART, może ona zwrócić 0, gdy odebranym znakiem będzie znak o kodzie "0". Powoduje to, że nie nadaje się ona do odbierania danych binarnych, które mogą przecież zawierać bajty zerowe. Można temu zaradzić, stosując dodatkowo funkcję ischarwaiting, która sprawdzi, czy znak rzeczywiście został odebrany. Jeśli funkcja ta zwróci "1", można odebrać znak przez inkey() lub waitkey(), który mo-
że mieć także wartość 0. Bascom prócz transmisji typowej umożliwia transmisję buforową z wykorzystaniem przerwań od wbudowanego UART-u/ USART-u w mikrokontrolerze.
Ponieważ transmisja buforowa używa przerwań od UART-u/USART-u, więc nie jest możliwe jej wykorzystanie przy programowej realizacji interfejsu RS232 tylko sprzętowej. Transmisja buforowa z wykorzystaniem przerwań ma wiele zalet. Odbieranie oraz nadawanie danych może przebiegać w obsłudze przerwania, czyli w tle programu głównego. Może być wykonywany program główny, którego kolejne instrukcje nie muszą czekać, aż dany ciąg znaków zostanie odebrany lub wysłany. Dzięki buforowi odbieranie danych czy nadawanie może być przeprowadzone w programie głównym, kiedy będzie do tego sposobność. Jeżeli nie zostanie przekroczona zadana pojemność bufora, żaden odebrany czy nadany ciąg znaków nie zostanie zgubiony, co miałoby miejsce przy wykonywaniu jakichś długoczasowych instrukcji w programie głównym. W przypadku transmisji buforowej odbierane czy nadawane znaki są ładowane i brane z bufora w przerwaniu, czyli niezależnie od działania programu głównego. Po prostu transmisji buforowej można używać, gdy potrzebne będzie wysyłanie oraz odbieranie znaków w tle działania programu głównego (która wykorzystuje przerwanie od UART-u/ USART-u). Będzie używana zwłaszcza wtedy, gdy zadania wykonywane w programie głównym będą czasochłonne, a nie będzie można przeoczyć żadnych odebranych przez RS232 znaków. Do konfiguracji sprzętowego układu UART/USART, by
List. 1. 3rzykład programu pokazującego działanie funkcji waifkeyO oraz
inkeyO
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600 'prędkość transmisj i
Dim A As Byte 'definicje zmiennych
Do 'pętla glowna programu
Print "Program testowy"
Print "1. Instrukcja waitkey()"
Print "2. Instrukcja inkey()"
Input "Wybierz opcje i nacisnij enter:", A
If A = 1 Then 'jeśli odebrano 1 to
A = Waitkey() ' czekaj na znak
Print A; " - "; Chr(a) 'wyślij do terminala odebrany znak oraz jego kod ascii
End If
If A = 2 Then 'jeśli odebrano 2 to
Do ' początek warunkowej pętli do-loop
A = Inkey() 'odebranie znaku
If A > 0 Then 'jeśli odebrany znak większy od 0 (kod ascii) to
Print "Naciśnięte (kod ASCII):"; A; " czyli Znak "; Chr(a
'wysli do terminala kod ascii odebranego znaku oraz znak
End If
Loop Until A = 27 'jeśli odebrany znak ma kod 27 (esc) to zakończ pętle do-loop
End If
Loop.
używał bufora wejściowego, służy polecenie konfiguracyjne config seńalin. Gdy użyte zostanie to polecenie, automatycznie zostaną stworzone trzy zmienne, których znaczenie jest następujące:
- _RS_HEAD_PTRO bajt - wskaźnik określający, gdzie znajduje się pierwszy jeszcze nieodebrany bajt,
- _RS_TAIL_PTRO bajt - wskaźnik określający, gdzie znajduje się ostatni jeszcze nieodebrany bajt,
- _RS232INBUFO tablica bajtów pełniąca rolę wejściowego bufora kołowego.
Przy transmisji buforowej (odbiorczej) po każdym odebranym znaku wywoływana jest procedura przerwania, w której ładowany jest odebrany znak do bufora. Gdy nie ma miejsca w buforze, odebrany znak nie jest umieszczony w buforze. Dlatego bufor musi być opróżniany cyklicznie, podczas odczytywania instrukcjami inkey() lub input Ponieważ transmisja odbiorcza - buforowa wykorzystuje przerwanie URXC, nie jest możliwe używanie tego źródła przerwania w programie użytkownika. Aby pokazać działanie transmisji buforowej, przedstawiony zostanie przykład programu, który odbiera znaki z portu RS232 oraz wyświetla je na LCD. Jeżeli przekroczona zostanie pojemność pierwszej linii wyświetlacza LCD, wyświetlacz jest czyszczony i kolejne odebrane znaki są wyświetlane od początku linii. Na rys. 2 przedstawiono schemat ideowy systemu, w którym zastosowano wyświetlacz LCD oraz konwerter poziomów napięć TTL<->RS232. Wykorzystany został mikrokontroler ATmegaS.
Przykładowy program (list. 2) odbiera znaki przez RS232 oraz wyświetla je na wyświetlaczu z opóźnieniem 1 sekundy. Wprowadzone opóźnienie 1 sekundy ma na celu pokazanie poprawności działania transmisji buforowej.
Jak widać na list. 2, sprzętowy UART/USART jest konfigurowany w taki sposób, aby używał bufora wejściowego (odbiorczego). Wykorzystano do tego celu instrukcję config seńalin ustalającą rozmiar bufora odbiorczego o wielkości 50 bajtów. Aby było możliwe poprawne działanie transmisji buforowej, koniecznie należy odblokować globalny system przerwań, co w przykładowym programie zostało uczynione. Należy o tym pamiętać, bo w przeciwnym wypadku transmisja buforowa nie będzie działać. W nieskończonej pętli do-loop odbierany jest znak z bufora transmi-
Elektronika Praktyczna 11/2003
95
BASCOMOWE PORADY
+5V
ATMEGA8
PB7
PD5 PD6 PD7 PBO
Rys. 2. Schemat przykładowego układu testowego
sji funkcją inkey() i jeżeli kod ASCII odebranego znaku jest większy od 31, to odebrany znak zostaje wyświetlony na LCD oraz zwiększona zostanie o jeden wartość zmiennej poz. Jeżeli zmienna poz osiągnie wartość 17, czyli zapełniony zostanie znakami cały wiersz wyświetlacza 2*16 znaków, to następuje czyszczenie LCD oraz wpisanie do zmiennej poz wartości początkowej 1. Opóźnienie 1 sekundy zostało wprowadzone w celu spowolnienia działania programu głównego, co ma na celu pokazanie zalet transmisji buforowej - odbiorczej. Po uruchomieniu tego programu wysyłane poprzez terminal znaki, np. przez ten w jaki został wyposażony Bascom, wszystkie odebrane (żaden nie zosta-
nie zgubiony) i wyświetlone na LCD, oczywiście jeśli nie zostanie przekroczona pojemność zadeklarowanego bufora. Aby zobaczyć działanie tego programu bez użycia transmisji buforowej, należy wy kasować z programu instrukcję konfiguracyjną config serialin. Po tym zabiegu i po załadowaniu programu wysyłane znaki przez terminal częściej niż co sekundę będą po prostu tracone i nie do odzyskania. Aby móc np. odbierać znaki ASCII od 0 do 255 (oczywiście w przypadku buforowego odbierania znaków), można posłużyć się dodatkowymi zmiennymi _RS_HEAD_PTRO oraz _RS_TAIL_PTRO, które są tworzone automatycznie podczas używania odbiorczej transmisji buforowej.
List. 2. Realizacja odbierania znaków przez RS232 z wykorzystaniem transmisji buforowej
1 Przykład buforowego odbioru danych przez RS232 (w przerwaniu) 1 prędkość transmisj i 9600 bodów
$regfile = "m8def.dat" $crystal = 8000000 $baud =
1 informuje kompilator o pliku dyrektyw
1 wykorzystywanego mikrontrolera
'informuje kompilator o częstotliwości rezonatora
'kwarcowego
'informuje kompilator o prędkości transmisji
Config Lcd = 16 * 2 'konfiguracja organizacji znaków wyświetlacza LCD
Config Lcdpin = Pin, Db4 = Portc.3, Db5 = Portc.2, Db6 = Portc.l, Db7 = Portc.0, E = Portc.4, Rs = Portc.5
'konfiguracja pinow mikrokontrolara do których dołączone zostały linie wyświetlacza Config Serialin = Buffered, Size = 5 0 'konfiguracja bufora wej sciowego
'definicja zmiennej znak typu string 'definicja zmiennej poz typu byte
'odblokowanie przerwań globalnych
'czysc lcd
'Wartość początkowa zmiennej poz
'nieskończona pętla do-loop ' odbierz znak z bufora wej sciowego
'jeżeli wartość ascii odebranego znaku większa niz 0 to 'jeśli zmienna poz=17 to 'czysc lcd 'zapisz do poz wartość 1
'wyświetl na lcd odczytany z bufora znak 'zwiększ o jeden wartość zmiennej poz
' czekaj 1 sekundę
'koniec nieskończonej pętli
'koniec programu
Dlm Znak As String * 1
Dim Poz As Byte
Enable Interrupts
Cis
Poz = 1
Do
Znak = Inkey()
If Asc (znak) > 31 Then
If Poz = 17 Then
Cis
Poz = 1
End If
Lcd Znak
Incr Poz
End If
Wait 1
Loop
PC5 PC4 PC3 PC2 PC1 PC0
GND AHEF AVCC
PB5 PB4 PB3 PB2 PB1
22
_20
J9 J8
J7 J6
LJ5
P1 10k
W1
LCD 2x16
10
13
14
15
GND
VCC
VO
RS
R/W
ENA
DO
Dl
D2
D3
D4
D5
DB
D7
L+
Jeżeli wartości tych zmiennych są różne, to wiadomo, że w buforze odbiorczym znajduje się nieodebrany znak/i. Natomiast gdy są równe, znaczy, że w buforze odbiorczym nie ma żadnych nieodebranych znaków. Realizacja nadawania przez UART/ USART z wykorzystaniem bufora przebiega podobnie jak odbiór buforowy , tylko zamiast instrukcji config serialin należy wykorzystać instrukcję config seńalout. W przypadku bufora nadawczego także należy obowiązkowo odblokować globalny system przerwań. Oczywiście jest możliwe jednoczesne używanie bufora wejściowego, jak i wyjściowego. Bascom prócz obsługi sprzętowej RS232 umożliwia także realizację programową interfejsu RS232. Programowy UART będzie wykorzystywany zwłaszcza gdy mikrokontroler nie będzie zawierał sprzętowego UART-u/ USART-u, a będzie potrzebny, lub gdy będzie potrzebny drugi port RS232. Bascom posiada także instrukcje realizujące dynamiczny programowy UART, dzięki czemu możliwe jest dowolne wykorzystanie w każdej chwili końcówek mikrokontroler a do nadawania lub odbioru danych przez RS232. Dynamicznie można zmieniać używane do transmisji końcówki mikrokontroler a oraz parametry transmisji. Jeśli będzie zainteresowanie, zostanie poświęcona część miejsca w tej rubryce na zagadnienia związane z programowym UART-em. Oczywiście RS232 można nie tylko wykorzystywać do komunikacji z komputerem, ale także z innymi mikro kontrolerami czy urządzeniami wyposażonymi w taki port. Marcin Wiązania marcin.wiazania@ep.com.pl Artur Starz artur.starz@ep.com.pl
96
Elektronika Praktyczna 11/2003
KURS
Podstawy projektowania systemów mikroprocesorowych, część 9
Zgodnie z zapowiedzią sprzed miesiąca, w tej części kursu przedstawiamy sposób wymiany danych pomiędzy mikrokontrolerem i standardową klawiaturą PC-AT. Zastosowanie takiej klawiatury to obecnie jeden najtańszych sposobów wyposażenia systemu
mikroprocesorowego w interfejs umożliwiający wprowadzanie danych.
Na rys. 30 przedstawiono wyprowadzenia standardowych złącz klawiatur PC. Najlepiej stosować nieprzerobione w żaden sposób złącza (dostosować własne urządzenie do standardowego wtyku i rozmieszczenia sygnałów), choć w razie konieczności można zastosować dowolne inne połączenia - traci się jednak na kompatybilności ze standardem, co może utrudnić serwis w razie awarii. Na rys. 31 przedstawiono przykładowy sposób dołączenia klawiatury do mikrokontrole-ra. Zastosowano tu połączenie bezpośrednie z dodatkowymi rezystorami podciągającymi, dającymi lepszą odporność transmisji na zakłócenia. Klawiaturę należy zasilać napięciem +5 V, najlepiej tym samym, które zasila współpracujący z nią mikro-kontroler. Podczas projektowania układu zasilania należy uwzględnić dodatkowy pobór prądu, który -w zależności od modelu klawiatury - może dochodzić do 300 mA.
Jeżeli chodzi o sposób komunikacji klawiatury z otoczeniem, to główną jej cechą jest to, że w zależności
DIN5
PS/2
1. KBD Clock (1)
2. KBD Data (3)
3. NC (4, 6)
4. GND (2) 6. +6V (VCC do 300mA) (6)
Rys. 30
^r od kierunku transmisji (z czy do klawiatury) przebiega ona w nieco inny sposób, choć zawsze jest to transmisja synchroniczna w takt sygnału zegarowego generowanego na linii KBD Clock przez klawiaturę. Prostszym przypadkiem jest transmisja danych z klawiatury do mikroprocesora (przebiegi na rys. 32): następuje tutaj przesłanie słowa składającego się z 11 bitów: bitu startu (zawsze "0"), ośmiu bitów danych (począwszy od najmniej znaczącego), następnie bitu parzystości (typu Odd - dopełnienie do parzystej liczby jedynek w transmitowanym bajcie danych) oraz bit stopu, zawsze równy "1". Zboczem taktującym jest opadające zbocze sygnału zegarowego. Prędkość transmisji nie jest zbyt duża i nie podlega żadnej dokładnej standaryzacji -częstotliwość przebiegu zegarowego zazwyczaj zawiera się w przedziale 20 do 30 kHz. Współpracujący mik-rokontroler może sterować transmisją z klawiatury przez wymuszanie stanu niskiego na linii KBD Clock -stan niski oznacza blokadę transmisji i klawiatura rozpocznie transmitowanie ewentualnej danej dopiero po pojawieniu się na tej linii stanu wysokiego (podczas braku aktywności obydwie linie: KBD Clock i KBD Data znajdują się w stanie wysokim). Nieco bardziej skomplikowana jest transmisja danych do klawiatury. Na rys. 33 przedstawiono przebiegi czasowe sygnałów podczas takiej transmisji. Inicjacja transmisji do klawiatury następuje przez wy-zerowanie linii KBD Clock przez mikrokontroler (dokładnie chodzi o zbocze opadające na tej linii). W czasie trwania stanu niskiego generowanego na linii Clock (powinno to trwać nie krócej niż 60 ms, co gwarantuje potraktowanie tego
sygnału jako blokadę transmisji -klawiatura nie zacznie transmitować do mi kro kontrolera w tym samym czasie) mikrokontroler zeruje linię KBD Data, a następnie ustawia stan wysoki na KBD Clock, co jest sygnałem rozpoczęcia transmisji do klawiatury. Wtedy kontrolę nad linią KBD Clock przejmuje klawiatura (w czasie do 10 ms) i rozpoczyna generację sygnału zegarowego. Transmisja danych przebiega podobnie jak wcześniej, z tym że linię KBD Data kontroluje mikrokontroler i to on wystawia kolejno bity przeznaczone do transmisji oraz bit parzystości. Po przesłaniu bitu parzystości mikrokontroler zwalnia linię KBD Data (stan wysoki), co jest interpretowane jako bit stopu - jeśli tego nie zrobi, to sygnał na linii KBD Clock będzie generowany tak długo, jak długo KBD Data będzie pozostawać w stanie niskim. Po przesłaniu bitu stopu klawiatura generuje dodatkowy takt sygnału zegarowego połączony z wyzerowaniem linii KBD Data, potwierdzając w ten sposób zakończenie transmisji.
Dokładny opis rozkazów sterujących klawiaturą oraz sposoby wykorzystania wszystkich jej funkcji Czytelnik znajdzie w literaturze poświęconej komputerom PC (np. w książce Piotra Metzgera "Anatomia PC").
Rys. 31
Elektronika Praktyczna 11/2003
97
KURS
KBD Ciock
KBD Data
bit startu
6 bitów danych
bit parzystości
bit stopu
Rys. 32
Z punktu widzenia konstruktora systemów mikroprocesorowych warto natomiast wspomnieć o podstawowych cechach użytkowych klawiatury PC. Jeżeli chodzi o transmisję z klawiatury do mikro kontrolera z nią współpracującego (najczęściej wykorzystywany przypadek), to następuje ona po każdym zdarzeniu związanym ze zmianą stanu klawiszy.
Klawiatura przesyła 8-bitowy kod naciśniętego klawisza w momencie jego wciśnięcia oraz ten sam kod powiększony o liczbę 128 (80H) w momencie puszczenia tego klawisza. Istnieją także grupy klawiszy, których naciskanie czy zwalnianie powoduje przesłanie większej liczby bajtów informacji (np. klawisze funkcyjne F1...F12 i inne) - dokładny ich opis Czytelnik znajdzie we wspomnianej literaturze. Jeżeli chodzi o transmisję danych do klawiatury (nie zawsze istnieje potrzeba jej wykorzystywania), to mikro kontroler sterujący przesyła klawiaturze rozkazy sterujące jej pracą. Jest możliwe m.in. sterowanie diodami świecącymi na klawiaturze, włączanie i wyłączanie klawiatury, zmiana prędkości autorepetycji oraz różne funkcje kontrolne.
Najczęściej chodzi nam o możliwość odczytywania stanu klawiatury (naciskanie klawiszy) - umożliwia nam to poniższy program (odpowiadający połączeniu klawiatury i mikro-kontrolera według rys. 31) - list. 12.
Przedstawiony program w bardzo prosty sposób odczytuje kolejne bity pojawiające się na linii P3.3 w takt sygnału zegarowego doprowadzonego do linii P3.2. Został on tak napisany, aby łatwo można było zauważyć, które części procedury odbierającej dane są wykonywane zgodnie z kolejnością odbieranych bitów.
Opadające zbocze sygnału zegarowego wywołuje procedurę obsługi przerwania odczytującą kolejno wszystkie bity transmitowane przez klawiaturę. Do zabezpieczenia programu przed "utknięciem" na odbiorze któregoś z bitów (wskutek zakłóceń lub odłączenia klawiatury) wykorzystano licznik Tl zliczający czas, w któ-
rym musi zmieścić się cała transmisja. Jeżeli czas ten zostanie przekroczony, to zostaje wyzerowany licznik odbieranych bitów i program oczekuje na rozpoczęcie kolejnej transmisji.
Procedura obsługi przerwania IN TO po zakończeniu transmisji ustawia bit NOWY oznajmiający odebranie nowego kodu, który jest do-
stępny w zmiennej KOD, a kontrolny bit parzystości jest zwracany w zmiennej PAR - najczęściej nie istnieje potrzeba sprawdzania poprawności (przekłamania zdarzają się bardzo rzadko), jeśli zaszłaby jednak taka potrzeba, to należy pamiętać, że bit parzystości transmitowany przez klawiaturę jest negacją bitu parzystości dostępnego w rejestrze PSW mikrokontrolera (po wpisaniu otrzymanej danej do akumulatora).
Przystosowanie programu do transmisji w stronę klawiatury jest stosunkowo proste: należy zadbać o wygenerowanie sygnałów inicjujących na liniach zegara i danych, a następnie zamiast odczytywać stan linii KBD Da ta, należ y po każ dym zboczu opadającym sygnału zegar o-
List. 12
i KOD - zmienna bajtowa przechowująca odebrany kod klawisza
; PAR - zmienna bitowa przechowująca odebrany bit parzystości
i NR_BIT - zmienna baj towa przechowuj ąca numer odebranego bitu
i MOWY - zmienna bitowa przechowująca informację o odebraniu nowego kodu
INCJALIZACJA:
CLR MOWY i zerowanie zmiennych
CLR PAR
MOV NR_BIT,#0
SETB P3.2
SETB P3.3
SETB EA ;zaprogramowanie układu przerwań
SETB ET1
SETB EX0
SETB ITO i przerwanie od opadającego zbocza na INTO
MOV TMOD,#010H ; licznik 1 w trybie 1 (licznik 16-bitowy)
;(program główny)
PRZERWANIE_INTO: ;procedura obsługi przerwania zewnętrznego z linii
iIHTO (P3.2)
PUSH ACC i zapamiętanie
PUSH PSW ;rejestrów na stosie
MOV A,HR_BIT
JZ BIT_STARTU ;jeżeli bit startu (nr 0), to zignoruj go
CJNE A,#1,HIE_1 ;odbiór pierwszego bitu
CLR A i zerowanie
MOV C,P3.3 ;odczytanie bitu
MOV ACC-0,C ;i wpisanie na najmłodszą pozycję akumulatora
SJMP ZAPAMIĘTAJ
NIEJ:
CJNE A,#2,NIE_2 ;odbiór drugiego bitu
MOV A,KOD iodczytanie zapamiętanych już informacji
MOV C,P3.3 ;odczytanie bitu
MOV ACC-1,C ;i wpisanie na odpowiednią pozycję akumulatora
SJMP ZAPAMIĘTAJ
HIE_2:
CJHE A,#3,HIE_3 i odbiór trzeciego bitu
MOV A,KOD
MOV C,P3.3
MOV ACC-2,C
SJMP ZAPAMIĘTAJ
HIE_3:
CJHE A,#4,HIE_4 i odbiór czwartego bitu
MOV A,KOD
MOV C,P3.3
MOV ACC-3,C
SJMP ZAPAMIĘTAJ
HIE_4:
CJHE A,#5,HIE_5 :odbiór piątego bitu
MOV A,KOD
MOV C,P3.3
MOV ACC-4,C
SJMP ZAPAMIĘTAJ
98
Elektronika Praktyczna 11/2003
KURS
560|J8 max 10ms <-* - kontrolę nad linią Ciock przejmuje klawiatura
KBDCIOCk Ś t) mim tl tl tl
A L
KBDData 0 1 2 3 4 5 6 7 P \
y t
kontrolę nad liniami przejmuje mikrokontroler
Rys. 33
wego ustawiać na niej stan następnego bitu przeznaczonego do transmisji. Należy również zwiększyć o 1 liczbę możliwych stanów licznika bitów w związku z koniecznością
kontrolę nad linią Data przejmuje klawiatura
bił potwierdzenia (ACK)
odebrania bitu potwierdzenia (nawet jeśli bit potwierdzenia będzie ignorowany przez program). Paweł Hadam, AVT pawel.hadam@ep.com.pl
List. 12 - cd.
NIE_5:
CJNE A,#6,NIE_6 ;odbiór szóstego bitu
M0V A,KOD
M0V C,P3.3
M0V ACC-5,C
SJMP ZAPAMIĘTAJ
NIE_6:
CJNE A,#7,NIE_7 ;odbiór siódmego bitu
M0V A,KOD
M0V C,P3.3
M0V ACC-6,C
SJMP ZAPAMIĘTAJ
NIE_7:
CJNE A,#8,NIE_8 ;odbiór ósmego bitu
M0V A,KOD
M0V C,P3.3
M0V ACC-7,C
SJMP ZAPAMIĘTAJ
NIE_8:
CJNE A,#9,NIE_9 ;odbiór bitu parzystości
M0V C,P3.3 ;odczytanie bitu
M0V PAR,C i i zapamiętanie
SJMP KONIEC
NIE_9:
SETB MOWY i odebranie bitu stopu - ustawienie
i informacji o nowym kodzie
M0V NR_BIT,#O i wyzerowanie licznika bitów
CLR TRI ;zatrzymanie licznika
SJMP KONIEC
ZAPAMIĘTAJ:
M0V KOD,A i zapamiętanie kodu
INC NR_BIT i zwiększenie licznika bitów
SJMP KONIEC
BIT_STARTU:
INC NR_BIT ;zwiększ nr bitu
CLR NOWY ;zeruj bit (bo nadchodzi nowy kod i informacja
i o starym zostanie zamazana)
M0V TH1,#0 iWłączenie licznika zabezpieczającego (timeout)
M0V TL1,#O ;dla kwarcu 12MHZ daje to czas opóźnienia
SETB TRI i około 65ms
KONIEC:
POP PSW ;pobranie rej estrów
POP ACC i ze stosu
RETI
PRZERWANIE_T1: ;obsługa przerwania od licznika Tl
CLR TRI ;zatrzymanie licznika
M0V NR_BIT,#O i wyzerowanie licznika bitów
RETI
Elektronika Praktyczna 11/2003
99
PROJEKTY CZYTELNIKÓW
DzioS "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.
Tester kabli sieciowych LAN
Urządzenie
prezentowane w artykule
służy do sprawdzania
poprawności wykonania
kabli łączących komputer
z gniazdkiem sieci LAN,
kabli kompuier-kompuier,
kompuier-rouier iip. Może
być ono używane pizez
instalatorów do
sprawdzania poprawności
wykonania instalacji LAN
oraz poprawności
wykonania kabli paich-cord
łączących urządzenia
sieciowe.
Rekomendacje; niezbyt
skomplikowany, a mimo to
użyteczny przyrząd,
przydatny zwłaszcza
w serwisach komputerów
i użytkownikom lokalnych
(osiedlowych} sieci
komputerowych.
Pomiar wykonywany jest na zasadzie testu ciągłości każdej żyły oddzielnie. Wykrywane są przerwy, zwarcia i pomyłki w podłączeniu żył. Nie są wykonywane natomiast pomiary tłumienności par i przesłuchów sygnałów między nimi.
W dobie komputerów i In-ternetu, który zawitał pod strzechy, powszechne jest budowanie sieci komputerowych. W sieciach komputerowych LAN doprowadzających Internet do naszych mieszkań lub biur wykorzystuje się standard Ethernet. Podstawą budowy takiej sieci jest poprowadzenie oddzielnego kabla (zwykle jest to skrętka UTP czasem FTP lub STP) od huba lub swiicha do każdego komputera.
Wykorzystuje się w tym przypadku kable "proste", wykonane w standardzie EIA/TIA 568A lub E. Kabli skrosowa-nych używa się do łączenia bezpośredniego dwóch komputerów. Taki kabel jest zakończony z jednej strony zgodnie z wymaganiami standardu EIA/TIA568A, a z drugiej strony z wymaganiami EIA/ TIA568B. Mówiąc prościej, para TX z jednej strony jest podłączona do pary RX z drugiej.
Kabel UTP składa się z 8 żył plus ekranu fw przypadku kabli STP lub FTP). Żyły są połączone w 4 pary. Każda para drutów jest skręcona ze sobą i dlatego potocznie mówi się na te kable "skrętka". Ponadto, każdy drut jest oznaczony kolorem. W skład pary wchodzi kabel oznaczony kolorem oraz biały z kolorem lub biały. Powszechnie stosowane kolory to zielony, niebieski, pomarańczowy i brązowy oraz biały z kolorem lub biały. Pary są oznaczone następująco: Para #1 biało-niebieski, niebieski Para #2 biało-pomarańczo-
wy, p oma ra ńcz owy Para #3 biało-zielony, zielony
Para #4 biało-brązowy, brązowy.
Projekt
114
Ważne jest odpowiednie podłączenie par do styków wtyku RJ45. Rozkład i numerację styków we wtyku RJ45 pokazano na rys. 1.
Standard EIA/TIA568A określa następujący sposób podłączenia przewodów: Styk 1 biało-zielony
Styk 2 zielony
Styk 3 biało-po mara ńcz owy
Styk 4 niebieski
Styk 5 biało-niebieski
Styk 6 pomarańczowy
Styk 7 biało-brązowy
Styk 8 brązowy
czyli
Styki 1, 2 para #3
Styki 3, 6 para #2
Styki 5, 4 para #1
Styki 7, 8 para #4
Natomiast według standar-
du 1 iIA/TIA56BE łączymy
w pary:
Styk 1 biało-pomaranczowy
Styk 2 pomarańczowy
Styk 3 biało-zielony
Styk 4 niebieski
Styk 5 biało-niebieski
Styk 6 zielony
Styk 7 biało-brązowy
Styk 8 brązowy
czyli
Styki 1, 2 para #2
Styki 3, 6 para #3
Styki 5, 4 para #1
Styki 7, 8 para #4
Rys. 1. Rozmieszczenie styków we wtyku złqczci RJ45
Elektronika Praktyczna 12/2003
101
PROJEKTY CZYTELNIKÓW
H
1. Naciśnięcie S1 pizeiywa praca astabllna I wyzwala praca monostabllną^
2. Gdy S1 jest nlenadskany > 2 s uaktywnia ile praca astabllna
Rys. 2. Schemat elektryczny części głównej testera LAN 2RJ
Takie podłączenie zapewnia poprawną pracę z szybkością 100 Mbd.
W przypadku, gdy zainstalowane urządzenia sieciowe pracują jedynie z szybkością 10 Mbd, wystarczy wykonać kable według standardu lOBase-T. Wykorzystuje się wówczas tylko dwie pary do przesyłania sygnałów tj. #2 oraz #3. Pary #1 i #4 są niewykorzystane i nie muszą być podłączone. Pary te można wykorzystać do przesyłania sygnałów np. do drugiego gniazdka LAN.
Przyrząd, który zaprojektowałem i zbudowałem, sprawdza poprawność podłączenia kolejnych przewodów do odpowiednich styków złącza RJ45. Urządzenie jest uniwersalne i nie jest istotne dla niego, w jakim standardzie jest wykonany kabel. Sprawdza jedynie, czy przewody nie są zwarte, rozwarte lub pomylone. Testowany jest zawsze pojedynczy przewód w danym czasie. Wysłanie impulsu testowego do danego przewodu sygnalizowane jest zaświeceniem diody LED opisującej ten przewód. Weryfikacja poprawności wykonania sieci jest wizualna.
Przyrząd składa się z dwóch części. Główna - generator sygnałów testowych i druga - pętla zamykająca testowaną linię.
Schemat elektryczny głównej części pokazano na rys. 2. Urządzenie zbudowane jest w oparciu o dwa układy scalone CMOS. Układ scalony ICl typu 4047 pełni rolę generatora astabilnego i jednocześnie mono stabilne go. Zastosowałem tutaj interesujące rozwiązanie, umożliwiające ręczne przełączanie mul-tiwibratora z trybu astabilnego do monostabilnego. Powrót do trybu astabilnego następuje automatycznie. Naciśnięcie przycisku Sl powoduje naładowanie kondensatora C2 przez diodę Dl i przełączenie multiwibratora w tryb mono-stabilny. Kolejne naciskanie przycisku Sl powoduje podtrzymywanie tego stanu i generowanie pojedynczego impulsu na wyjściu Q. Gdy przycisk Sl nie będzie naciskany przez czas powyżej 2 s, kondensator C2 rozładuje się przez rezystor R2 i multiwib-rator przełączy się w stan as-tabilny. Na wyjściu Q pojawi się fala prostokątna. Impulsy z wyjścia Q układu ICl są doprowadzone do wejścia CLK układu IC2. Układ scalony IC2 to licznik Johnsona z dekoderem 1 z 10 typu 4017. Doprowadzone impulsy do wejścia CLK powodują przesuwanie logicznej jedynki na kolejne wyjścia - od Q0 do Q9 do Q0
itd. Wyjścia Qx układu IC2 doprowadzono przez rezystory zabezpieczające R7 do R15 do kolejnych styków gniazda RJ45. Jednocześnie wyjścia Q0 do Q8 są podłączone do linijki LED, która będzie nas informować zaświeceniem odpowiedniej diody, do którego styku jest obecnie doprowadzony sygnał.
Przyrząd zaprojektowano na dwustronnej płytce drukowanej o wymiarach 84x66 mm. Całość mieści się w standardowej obudowie plastikowej typu KM-33B z pojemnikiem na baterie 9 V. Można również go umieścić w dowolnej innej obudowie o wymiarach 118x74x29 mm.
Druga część przyrządu to moduł pętli zamykającej testowane linie. Zbudowany jest z zespołu diod LED. Zastosowałem tutaj linijkę LED-ów tego samego typu co w części głównej. Każda dioda LED jest zbocznikowana diodą impulsową odwrotnie spolaryzowaną.
Schemat ideowy przedstawiony jest na rys. 3. Moduł ten został zaprojektowany na jednostronnej płytce drukowanej o wym. 29x34 mm.
Moduł pętli zamykającej zakończony jest bezpośrednio wtykiem RJ45 z ekranem lub bez, w zależności jaką wersję przyrządu wykonamy.
WYKAZ ELEMENTÓW
Rezystory
Rl, R2: 1MQ
R3: 10kQ
R4, R6: lkQ
R5: 220kQ
R7...R15: 470Q
Kondensatory
Cl: lOOnF
C2: 10^F
C3: 22nF
Półprzewodniki
ICl: CD4047
IC2: CD4017
2 linijki z 10 diodami
LTA1000E, GBG 4850
10 diod 1N4148
Różne
Gniazdko RJ45 do druku
w ekranie lub bez
Przełgcznik monostabilny
(zwierajgcy)
Wtyk RJ45 z ekranem lub
bez
Kawałek kabla - skrętki UTP,
STP, FTP
Kompletny przyrząd jest zdatny do stosowania przez instalatorów sieci LAN, dla których jest przeznaczony.
Do testowania kabli zakończonych z obu stron wtykami RJ45 należy zastosować adapter z dwoma gniazdami RJ45.
Leszek Gorzelńik leszekgorzelnik@interia.pl
-D1 D2 --D3 D4 --D5 Ś-D6 D7 rD8 D9
-1N4148 *"1N41 48 ^^41 48 ^-1N41 48 ^-1N41 48 ^-1N41 48 ^-1N41 48 Ł1N41 48
20 /< 19 18 /< 17 16 15 /" 14 13 12
DZ1-1 -4 DZ1-2 ~2 DZ1-: \~i DZ1-1 DZ1-J ~i DZ1-6 DZ1-" r-j DZ1-8 -A DZ1-9-^
LB10 * LB10 LB10 LB10 LB10 LB10 LB10 LB10 LB10 A
1 2 3 4 5 6 7 8 9
! PAD4
PAD PAD PAD PAD PAD PAD PAD
X X X X ) X > X X
3 Ł 6 Ś7 8 ekr
Rys. 3. Schemat elektryczny części "zamykajgcej" testowang linię
102
Elektronika Praktyczna 12/2003
BIBLIOTEKA EP
W '"Bibliotece BP" prezentujemy książki dotyczące zogodnień związonych z różnymi dziedzinom) techniki, jednok zawsze przydatne w procy elektroniko iub pomocne w uprawianiu elektronicznego hobby, Nasza opinia jest oczywiście subiektywna, aie 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 BP, nie będziemy pubiikować recenzji książek ocenianych na jedną iub dwie "lutownice", Przyjęiiśmy szeroką skałę ocen, aby ułatwić Czyteinikom orientację w potencjainej przydatności książki,
Pubiikowane w BP recenzje książek można znaieżć w internecie pod adresem bibiioteka.ep.com.pi, Uwaga! Większość prezentowanych książek można zamówić w Dziaie Handiowym AVT (patrz str, 133), Chcemy w ten sposób udostępnić je Czyteinikom BP,
Praca zbiorowa, "Synteza układów cyfrowych", WKŁ 2003
Fani układów programowalnych
UełctronlM PraMyoznoj
na pewno się ucieszą: mamy kolejną na rynku wydawniczym pozycję poświęconą tym nowoczesnym układom. Książka łączy w swojej treści zaawansowaną teorię z praktycznymi aspektami implementacji projektów w układach PLD, co pokazano na czterech przykładach, z których dwa są szczególnie interesujące: moduł kryptograficzny DES i filtr cyfrowy - obydwa zapisane w języku VHDL. Książkę rozpoczyna wprowadzenie do podstaw teoretycznych działania i zasad projektowania układów kombinacyjnych i sekwencyjnych. Autorzy szczególnie dużo miejsca poświęcili przedstawieniu metod "ręcznego" optymalizowania projektów wykonywanych na układach cyfrowych, a także komputerowym systemom syntezy logicznej (Espresso, SIS oraz autorskiego opracowania - DEMAIN). Rozdział czwarty zawiera podstawowe infor-
macje o elementarnych układach cyfrowych oraz rzadko już stosowanych w praktyce, ale dobrze ilustrujących poruszane w książce zagadnienia, układach mikroprogra mowa nych. Warto zwrócić uwagę, że algorytm DEMAIN opracowany w Instytucie Telekomunikacji Politechniki Warszawskiej (gdzie pracują autorzy książki) umożliwia znaczne ograniczenie do niezbędnego minimum zasobów układów PLD podczas implementacji projektów, co przekłada się na cenę implementacji projektów w układach PLD. W książce przedstawiono sposób posługiwania się tym oprogramowaniem jako narzędziem pomocniczym, współpracującym z systemem Max+Plus II. Ponieważ - jak deklarują autorzy - oprogramowanie realizujące algorytm DEMAIN jest przez nich udostępniane bezpłatnie, czytelnicy książki będą mieli możliwość jego samodzielnego przetestowania i wykorzystania we własnych projektach.
Kolejny - piąty - rozdział zawiera skrócony kurs dwóch popularnych języków opisu sprzętu -AHDL (lokalny język stosowany w systemach projektowych firmy Alt era) oraz VHDL. Dzięki dużej liczbie przykładów prezentowane zagadnienia są przejrzyście objaś-
SYNTEZA
UKŁADÓW
CYFROWYCH
*U BttftOWA POD itPAUH ftOt TOCUHA Wfl
f iT.-ł' Ś Hłt: i
nione i mogą być pomocne zarówno podczas nauki języka, jak i podczas realizacji projektów.
Reasumując: jest to bardzo interesująca pozycja, przydatna szczególnie tym elektronikom, którzy mają już doświadczenie w korzystaniu z układów programowalnych.
Piotr Zbysiński
yyyy
Kazimierz WiatrT "Akceleracja obliczeń w systemach wizyjnych", WNT 2003
Książka niezwykła: porusza niezwykle nowoczesne zagadnienia związane z cyfrową obróbką sygnałów, pokazuje jej wiele praktycznych aspektów (zarówno od strony elektroniki jak i jej zastosowań), do tego jej autor -co bardzo w EP lubimy - ma wyraźną "żyłkę" konstruktora. Co prawda za-
gadnienia poruszane w książce nie należą do grupy popularnych, ale dzięki ich przejrzystej prezentacji i dużemu naciskowi na zagadnienia praktyczne, książka ma charakter niemalże poradnikowy fw najlepszym znaczeniu tego słowa). Oprócz prezentacji algorytmów obróbki obrazów i efektów ich działania, autor wiele miejsca przeznaczył na omówienie architektur specjalizowanych układów wykorzystywanych w takich aplikacjach. Przedstawił także alternatywne do ASIC-ów sposoby realizacji sprzętowych koprocesorów wspomagających obróbkę obrazu, w tym re-
kon figuro walne układy programowalne i procesory sygnałowe (DSP). Przy okazji prezentacji struktur rekonfiguro-walnych, autor przedstawił także kilka rekon figuro walnych koprocesorów uniwersalnych, opracowanych w różnych ośrodkach akademickich.
Tak więc, prezentowaną książkę polecam Czytelnikom zainteresowanym zastosowaniami szeroko rozumianej nowoczesnej elektroniki, bo pomimo jej stosunkowo wąskiej tematyki, sposób przedstawienia większości poruszanych zagadnień jest bardzo uniwersalny i może być przydatny w wie-
Elektronika Praktyczna 12/2003
131
BIBLIOTEKA EP
Kazimierz Wiatr
akceleracja obliczeń
w systemach wizyjnych
Legenda:
lu innych zastosowaniach. Jedynym niedociągnięciem zauważonym w książce jest fco prawda niezbyt częste) odwoływanie się autora do układów PLD, które nie są produkowane od wielu już lat fjak choćby XC2000, XC3000, MAX5000, niektóre wersje XC4000, DY8000) lub nigdy nie znalazły się w produkcji seryjnej fjak XC6200). Brak słowa wyjaśnienia może spowodować, że Czytelnicy zainteresowani praktycznymi aspektami prezentowanych zagadnień będą bezowocnie szukali tych układów u dystrybutorów, niestety bezowocnie. Zasłużone 4 lutownice!
Piotr Zbysiński
Tomasz P. Zieliński, "Od teorii do cyfrowego przetwarzania sygnałów", AGH 2002
Szkoda, śe dotarliśmy do tej książki tak późno. Stało się tak przede wszystkim dlatego, śe książki wydawane przez wydawnictwa uczelniane nie są zbytnio propagowane na rynku, co w wielu przypadkach fze względu na silne "przywiązanie" książek tego typu do lokalnych warunków uczelnianych) jest oczywiście usprawiedliwione, ale - jak sądzę - ta książka ma szansę zainteresować wielu inżynierów zajmujących się lub zamierzających zająć się cyfrową obróbką sygnałów.
Autor przygotował potężną (5 76 stron) monografię, której treść doskonale oddaje tytuł: od teorii fjest jej bardzo dużo, ale podana w nadzwyczaj przystępny sposób) do cyfrowego prze-
książka wybitna, polecamy!
książka o dużych walorach praktycznych, polecamy!
może się pizydać
daleka od doskonałości
nie warto kupować
twarzania sygnałów. Tu uwaga: czytelnicy oczekujący schematu cyfrowej konsoli audio będą z pewnością zawiedzeni, ponieważ w książce nie ma ani jednego przykładu tego typu, co zresztą autor zapowiedział w przedmowie. Można natomiast znaleźć w niej komplet informacji teoretycznych, których przyswojenie jest warunkiem świadomego posługiwania się układami DSP. Ilustracją sporej dawki teorii są interesujące przykłady fw tym kodowanie MPEG), przez które można szczęśliwie przebrnąć, o ile znajdziemy w sobie dość energii na wcześniejsze poznanie zaawansowanej teorii.
Andrzej Gawryluk
132
Elektronika Praktyczna 12/2003
Advanced mdustnal Aut o mahoń
owe sterowniki modułowe
firmy Omron
Omron wprowadził na rynek nową rodzinę miniaturowych sterowników do systemów automatyki - CJ1. Wydarzenie - co prawda - niezbyt sensacyjne, ale istotne dla projektantów systemów automatyki: dzięki tym sterownikom znacznie łatwiejsze niż dotychczas stało się budowanie optymalnych (pod względem kosztów, wymiarów fizycznych i sposobu programowania) systemów sterowania i regulacji. Czemu tak?
W skład rodziny CJ1 wchodzi cała gama różnorodnych modułów, pośród których jednostki centralne (CPU) są tylko jednym wielu elementów, z których można budować system. Dzięki temu projektant może bez większego trudu dobrać do wymogów aplikacji zarówno CPU jak i wszystkie peryferia, wśród których są dostępne zarówno stosunkowo proste moduły cyfrowych i analogowych wejść/wyjść, zasilacze, jak i kompletne interfejsy sieciowe (Ethernet, DeviceNet, Cont-rollerLink, Profibus DP, Compo-Bus), czy też kompletne mini-ste-
rowniki lokalnie obsługujące fragmenty zadań odciążając CPU. Maksymalna liczba obsługiwanych przez CPU linii I/O w systemie CJ1 wynosi 2560 (w maksimum 40 różnych modułach I/O), dodatkowo użytkownik może mieć do dyspozycji 34 porty komunikacji szeregowej. Dostępne są także moduły szybkich liczników (częstotliwość zliczania do 500 kHz), pozycjonowania serwonapędów, lokalnych regulatorów temperatury itp. Do każdego zestawu można dołączyć (za pomocą specjalnego modułu komunikacyjnego) do trzech dodatkowych zestawów oddalonych od siebie na odległość do 12 metrów. Nie muszą być one wyposażane w CPU.
W ramach prezentowanej rodziny urządzeń, producent oferuje 8 różnych wersji jednostek centralnych, w tym także wyposażonych w zintegrowane interfejsy I/O. Niewielkie wymiary obudowy kontrastują z dużymi możliwościami CPU. Dostępna dla aplikacji użytkownika pamięć programu ma po-
Szybkość automatyzacji naszego
otoczenia fest tak duża, że
coraz częściej nie zdajemy
sobie sprawy z dyskretnej
obecności cichych "służących".
Rewolucja była możliwa dzięki
wprowadzeniu do sprzedaży
przez producentów urządzeń
automatyki miniaturowych (najczęściej tylko rozmiarami)
sterowników PLC? których
łatwość obsługi i niska cena
spowodowały, że trafiły one
"pod strzechy".
jemność 120 ksłów, a dla danych udostępniono aż 256 ksłów (z podziałem na banki). Także szybkość wykonywania rozkazów jest zaskakująco duża. Dla przykładu, czas wykonywania instrukcji LD wynosi 20 ns, a bardziej złożonej, wie-
Ul IIKUII
Elektronika Praktyczna 12/2003
135
AUTOMATYKA
loargumentowej instrukcji MOV 180 ns. Duża prędkość działania CPU zapewnia częste skanowanie stanu linii I/O - w przypadku 64 linii I/O aktualizacja stanu wyjść odbywa się co 15 |is, a stanu wejść co 12 |is.
W zależności od potrzeb, użytkownik budujący aplikację może wykorzystać do 4096 timerów i do 4096 liczników jednocześnie, przy czym zasoby sterownika są
zajmowane wyłącznie przez time-ry i liczniki wykorzystywane w programie. Tworzenie programów sterujących pracą CPU jest łatwiejsze niż w przypadku większości dotychczas dostępnych sterowników (także tych z wyższej "półki"), ponieważ zestaw obsługiwanych instrukcji jest bardzo bogaty (jest ich aż 400). Dostępne są m.in. instrukcje obsługi kolejek FIFO i LIFO, obliczeń stało-
i zmiennoprzecinkowych, transferów blokowych (do 655 35 słów) a także instrukcje umożliwiające wygodną obsługę tablic danych. Programy można dzielić na zadania, które są wykonywane sekwencyjnie w sposób określony przez użytkownika (pozwala to na budowanie programów wykonywanych quasi równolegle). Programy oraz dane wymagające przenoszenia mogą być przechowywane na kartach pamięci nieulotnej Flash. Zawartość wewnętrznej pamięci danych jest podtrzymywana dzięki wbudowanej baterii litowej.
Producent dbając o dotychczasowych użytkowników produkowanych przez siebie sterowników PLC, umożliwił łatwe przenoszenie wcześniej przygotowanych programów na sterowniki CJ1. W większości przypadków konwersja odbywa się całkowicie automatycznie - wykonuje ją program narzędziowy CX-Programmer.
Budowanie systemów na urządzeniach z rodziny CJ1 jest wygodne także od strony mechanicznej: wymiary modułów są niewielkie (ściany boczne modułów są niewiele większe od karty kredytowej - 90 x 65 mm) i są one przystosowane do bezpośredniego montażu na szynie DIN. Połączenia pomiędzy modułami są wykonywane automatycznie podczas ich instalacji na szynie - nie ma więc konieczności kupowania specjalnych instalacyjnych płyt bazowych, a cały system można wbudować np. w typową skrzynkę bezpiecznikową.
Prezentowane urządzenia są już dostępne także w naszym kraju. Wiele wskazuje na to, że ich możliwości i ogromna elastyczność, przyciąganą rzesze nowych użytkowników, bo przecież coraz większego znaczenia nabiera wygoda budowania systemów, możliwość optymalizacji ich ceny i szybkość tworzenia aplikacji sterujących. Te wszystkie zadania można łatwo wykonać korzystając z CJ1. Andrzej Gawry luk, AVT
Dodatkowe informacje
Artykuł powslat na podstawie rnateriatów udostępnionych przez firmę Omron, tel. (22) 645-78-60, www.omron.com.pl.
136
Elektronika Praktyczna 12/2003
PODZESPOŁY
Przetwornice DC/DC dla urządzeń elektroniki przemysłowej
Wydawałoby się, że przetwornice DC/DC osiągnęły tak wysoki stopień rozwoju, że producenci nie bardzo mają co już przy nich robić. Jak się jednak okazuje, dążenie do obniżenia kosztów i poprawy parametrów powodują, że Traco Power- jeden z największych producentów przetwornic - co miesiąc ma się czym pochwalić.
W tym miesiącu skupimy się na dwóch nowych modelach przetwornic z serii TEL Ma|ą one niezwykle istotną cechę wspólną są Tanie, zwłaszcza jeśli wziąć pod uwagę takt, że parametrami są niemalże identyczne ze znanymi na naszym rynku (już nie Tylko z EP) przetwornic z rodziny TEN
2 WwDIL16
Najmniejszy (gabarytowo i mocowo) model z rodziny TEL Maksymalna moc dostarczana do obciążenia wynosi 2 W, co jest nie lada osiągnięciem, ponieważ przetwornica mieści się w obudowie o obrysie odpowiadającym DIL16 i wysokości 7,62 mm Pomimo Tak niewielkich rozmiarów napięcie przebicia izolacji pomiędzy wyjściem i wejściem ma warTość 1000 VDC, przy rezysTancji jej uplywności wynoszącej więcej niż 1 GL2
produkowane w czTerech grupach przysTosowanych do zasilania napięciami z zakresów 4,5 9,0 V, 9 18 V, 18 36 V i 36 72 V W każdej z Tych grup znajdują się przeTwornice o napięciu wyjściowym wynoszącym 3,3 V, 5V, 12 V, 15 V, ą5V, ą12 V lub ą15 V Napięcie wyjściowe jesT oczywiście sTabilizowane - producenT gwaranTuje dokładność usTawienia napięcia ą2%, sTabilność w funkcji zmian obciążenia (0,25 0,75*lmax) nie gorszą niż 0,75%, a wlunkcji zmian napięcia wejściowego nie gorszą niż ą0,5% Napięcie wyjściowe zmienia warTość w funkcji TernperaTury oToczenia o ą0,02%/K, a maksymalna amphTuda tętnień (w paśmie do 20 MHz) nie jest większa niż 50 mVpp Warto Tu zwrócić uwagę nalakT, że przeTwornice TEL-2 pracujące z obciążeniem mniejszym niż 0,25*1,-^;, wyTwarzają nieco "gorsze" napięcie na wyjściu Zgodnie z inlormacjami producenTa, w Takim przypadku napięcie tętnień na wyjściu może mieć większą - niż deklarowana w danych katalogowych -warTość
Obwód wejściowy przeTwornicy wyposażono w filtr zapobiegający przenoszeniu zakłóceń impulsowych do linii zasilającej (zgodnie z normą EN55022A) Z kolei obwody wyjściowe wyposażono w zabezpieczenie przeciwzwarciowe, dzięki któremu ryzyko uszkodzenia wewnętrznych obwodów przeTwornicy jesT sTosunkowo niewielkie RelaTywnie wysoka sprawność ener-geTyczna przeTwornic (64 81% wzależności od modelu) Także sprzyja ich długowieczności -w obudowach o Tak niewielkiej objęTości wyTraca-nie dużej ilości energii musiałoby spowodować znaczne skrócenie czasu niezawodnej pracy, który w przypadku TEL-2 wynosi 1,2 min godzin
Elektronika Praktyczna 12/2003
139
PODZESPOŁY
(w temperaturze otoczenia 25C). Pewien jakości swoich wyrobów producent zapewnia 3-letnią gwarancję na wszystkie modele z serii TEL-2.
6 WwDIP24
Nieco większe gabarytami i oczywiście dopuszczalną mocą obciążenia są przetwornice TEL-5. Wbrew sugestii zawartej w ich nazwie, maksymalna moc wyjściowa wynosi 6 W, co jak na obudowę o gabarytach zbliżonych do DIP24 (wysokość wynosi 10,2 mm) jest wartością dość znaczną. W odróżnieniu od przetwornic TEL-2, obudowy przetwornic TEL-5 są wykonane z metalu, co zmniejsza ich rezystancję termiczną. Dzięki temu maksymalna dopuszczalna temperatura obudowy wynosi 90C, a zakres temperatur otoczenia -4O...+71C. Dzięki większym (niż TEL-2) wymiarom obudowy, napięcie przebicia izolacji pomiędzy wyjściem i wejściem wynosi 1500 VDC.
Przetwornice TEL-5 są dostępne w dwóch wersjach, przystosowanych do zasilania napięciami 9...18 VDC lub 18...36 VDC. Uzyskiwane wartości napięć wyjściowych są takie same, jak w przypadku serii TEL-2. Sprawność energetyczna TEL-5 mieści się w przedziale 77...86% w zależności od modelu. Deklarowana przez producenta dokładność ustawienia napięcia wyjściowego wynosi ą1%, a maksymalna zmiania wartości w funkcji zmiany napięcia zasilającego nie przekracza ą0,3%. Niestabilność napięcia wyjściowego w funkcji zmian prądu obciążenia nie przekracza ą1%. Pozostałe parametry elektryczne, poza amplitudą tętnień na wyjściu (max. 75 mVpp), są bardzo podobne do parametrów przetwornic TEL-2. Identyczne są także wbudowane zabezpieczenia -przy prądzie wyjściowym większym o 20% od wartości maksymal-
nej włącza się ogranicznik prądowy, zapewniający bezpieczeństwo obwodom wyjściowym przetwornicy.
Czemu dla przemysłu?
Teraz pokrótce odpowiem na pytanie, które prawdopodobnie nasunie się większości Czytelników: jakaż to cecha predestynuje przetwornice z rodziny TEL do zastosowań przemysłowych?
Po pierwsze: niezawodność. Niewielu producentów udziela 3-letniej gwarancji na swoje wyroby, zwłaszcza przystosowane do (potencjalnie) tak trudnych warunków pracy jak w zasilaczach.
Po drugie: przystosowanie do pracy w szerokim zakresie temperatur i przy dużej wilgotności, osiągającej wartość (wilgotność względna) 95%.
Po trzecie: chociaż w niektórych przypadkach może najważniejsze - niska cena, pozwalająca aplikować przetwornice do urządzeń produkowanych zarówno w niewielkich, jak i dużych ilościach.
Po czwarte: odporność na błędy obsługi. Oprócz wspomnianych zabezpieczeń przeć iwzwarci owych przetwornice wyposażono w zabezpieczenia przed odwrotną polaryzacją napięcia zasilającego.
Tylko tyle i aż tyle. Myślę, że użytkownicy sami ocenią przydatność tych nowoczesnych podzespołów. Andrzej Gawryluk, EP
Dodatkowe informacje są dostępne na stronie producenta: www. tracopower. com.
Dystrybutorem firmy TracoPower jest Amtek spol. s r.o., tel. (22J 423 91 18, amtek@amtek.pl, www.amtek.pl.
140
Elektronika Praktyczna 12/2003
PROJEKTY
Miernik energii elektrycznej i watomierz, część 1
AVT-555
Korzystając intensywnie
z komputera, często
zostawiamy go włączonym
przez 24 godz/dohę. Zadajemy
sobie wówczas pytanie: "Ile
energii zużywa ten
komputer?". Odpowiedź na to
pytanie pozwala obliczyć ile
to kosztuje. Niestety rada
w rodzaju: "zmierz pobór
prądu amperomierzem,
pomnóż przez 220V i czas
włączenia" nie jest właściwa.
Do prawidłowego pomiaru
mocy czynnej wymagany jest
bardziej skomplikowany
miernik niż amperomierz -
jest nim watomierz.
Natomiast aby określić
pobraną energię należy
"śledzić" pobieraną moc
zasilania w czasie.
Rekomendacje: miernik
energii niezbędny wszystkim
użytkownikom urządzeń
zasilanych z sieci
en ergetyczn ej, którym zależy
na zminimalizowaniu
wysokości rachunków
płaconych za energię
elektryczną.
PROJEKT
OKŁADKI
LICZNIK ENERGII - WATOMIERZ
230V AC +/-2WS mtrio. 14A AC
o
O mocach
w telegraficznym skrócie
Obliczenie mocy pobranej przez odbiornik jest łatwe, gdy jest on zasilany ze źródła prądu stałego. Wystarczy zmierzyć napięcie i prąd, pomnożyć i otrzymujemy moc w watach. Gdy chcemy obliczyć moc odbiornika zasilanego z sieci prądu przemiennego, sytuacja się komplikuje. Aby poprawnie obliczyć moc czynną (P) pobraną przez odbiornik należy jeszcze znać przesunięcie fazowe pomiędzy przebiegiem sinusoidalnym napięcia i prądu. Pomnożenie tylko wartości skutecznych napięcia i prądu da w wyniku moc pozorną (S), która jest pobierana z sieci, ale nie jest zamieniana w całości na pracę. Przyjmijmy, że napięcie i prąd ma przebieg sinusoidalny wyrażający się wzorem:
u(f) = < J
gdzie:
U, I - wartości skuteczne, (|) - przesunięcie fazowe między U a I.
Moc chwilowa pobierana przez odbiornik w chwili tjest równa:
f(t)=u(t)X!(f) = Ul cos f (l-co<2ńf))-[tfanp sin(2ńif)
p(t) = P(l-cos(26t))-Qńn(26t) , zatem:
P = UIcosę \Q=UIńnę\ S = UI
Charakterystyka przyrządu
Pomiar wiGlkości:
/ mocy chwilowej (w odstępach 1-sekundowych) czynnej, biernej i pozornej,
/ energii czynnej, (pozornej-opcja), energii czynnej w zadanym przedziale czasowym, również w systemie dwutarylowyrn,
/ wyliczenie współczynnika mocy PF,
/ napięcia RMS, średniego, amplitudy dodatniej i ujemnej połówki przebiegu,
/prądu RMS (orazj.w.),
/ częstotliwości napięcia.
Zakres i rozdzielczości:
/ napięcie: zakres 270 VAC, rozdzielczość 0,1 V, / prąd: zakres 14AAC, rozdzielczość 1 mA lub 10
mA (powyżej 250 mA), /moc; 3200VA, rozdzielczość 0,1 VA, /energia: maks. 2000000 kWh, rozdzielczość
1Wh, / pasmo pomiarowe ok. 7 kHz.
Pobór mocy: 2VA/0,25W.
Zewnętrzne wymiary: 110x90x40, obudowa plastikowa (konieczna całkowita izolacjagalwaniczna).
14
Elektronika Praktyczna 12/2003
Licznik energii elektrycznej i watomierz

i(t)------------- p(t)....... Q(t)-------------
v. t %

/i
/ i
W / -_^-
_______^
90
180
270
360
Rys. 1. Zależności pomiędzy mocami, napięciem i prądem w zależności od kąta przesunięcia fazowego
Jak wynika z analizy równania, przebieg mocy chwilowej ma również kształt sinusoidy, ale o dwukrotnie większej częstotliwości (2oo). W dodatku moc chwilowa może przybierać wartości ujemne (rys. l). Wielkość cos<|) jest znana
Czytelnikom: im mniejszy _-----
kąt przesunięcia fazowego pomiędzy napięciem a prądem, tym większa jest moc czynna. Gdy prąd jest opóźniony względem napięcia, to obciążenie ma charakter indukcyjny (np. silniki), natomiast gdy je wyprzedza, to obciążenie ma charakter pojemnościowy. Symbolem
Q oznaczono moc bierną. --------
Jest ona wydzielana na reaktancji, moc czynna na rezystancji a moc pozorna na impedancji odbiornika. Przebieg mocy biernej jest przesunięty w stosunku do przebiegu mocy czynnej o 90 (analogicznie jak prąd w stosunku do napięcia), a więc zależność między tymi mocami można przedstawić w trójkącie mocy (rys. 2). Moc bierna może mieć dwojaki charakter zależny od rodzaju obciążenia: indukcyjny lub pojemnościowy. Na tych wykresach występuje moc bierna indukcyjna. Całkując (uśredniając) moc chwilową w czasie trwania jednego okresu otrzymujemy moc czynną P, natomiast całkując moc czynną P w czasie t otrzymujemy energię czynną E zużytą przez odbiornik.
W przypadku przebiegów niesinusoidalnych obliczanie mocy jest bardziej skomplikowane. Moc
czynna jest sumą mocy czynnych dla każdej z harmonicznych napięcia i prądu. W typowym odbiorniku z prostownikiem i kondensatorem wygładzającym jedynie prąd ma bardzo odkształcony przebieg od sinusoidy. Zatem moc
Uwaga!
Ze względu na bezpośrednie podłączenie przyrządu do sieci 230VAC, w zależności
od zorientowania wtyczki sieciowej włożonej do gniazdka, na masie przyrządu, a więc i na metalowej ramce wyświetlacza LCD
może pojawić się faza napięcia sieciowego! Z tego względu praca z przyrządem bez
obudowy z tworzywa sztucznego jest wysoce niebezpieczna.
czynna jest przede wszystkim zależna od podstawowej (pierwszej) harmonicznej o częstotliwości 50 Hz. Moc pozorna jest obliczana klasycznie: jako iloczyn wartości skutecznych napięcia i prądu. Stosunek mocy P/S nie jest jednak oznaczany jako cos<|), lecz jako PF [power factor -współczynnik mocy). W obu przypadkach (cos(|), PF) należy dążyć do tego, aby odbiornik pobierał jak najmniej mocy biernej, lecz osiągnięcie tego celu realizuje się różnymi sposobami.
Wyjaśnienia wymaga jeszcze pojęcie wartości skutecznej (inaczej RMS). Wartość skuteczna prądu zmiennego odpowiada takiemu natężeniu prądu stałego, który płynąc w obciążeniu rezystancyj-nym wydzieli identyczną moc co prąd zmienny. Dlatego najlepszym sposobem na zmierzenie wartości
skutecznej dowolnego przebiegu w szerokim zakresie częstotliwości jest metoda kompensacyjna na dwóch grzejnikach rezystancyj-nych. Wartość skuteczną można również wyliczyć dokonując obliczeń na skwantowanym przebiegu napięcia za pomocą procesora.
Działanie układu ADE7759
Pomiar mocy metodą analogową jest możliwy na dwa sposoby. Pierwszy i najprostszy, to pomiar watomierzem wskazówkowym. Jest to miernik magnetoelektryczny, w którym wychylenie wskazówki jest proporcjonalne do iloczynu napięcia i prądu chwilowego, a więc również jest uwzględnione przesunięcie fazowe.
Drugi sposób polega na obliczeniu mocy przez analogowy układ mnożący zbudowany ze wzmacniaczy operacyjnych, jednak niewielka dopuszczalna dynamika sygnału na wejściu i wyjściu czyni taki przyrząd trudnym w obsłudze. Ale wraz z rozwojem techniki cyfrowej możliwe stało się obliczenie mocy (i nie tylko) w sposób całkowicie cyfrowy. Wystarczyłoby w zasadzie skwanto-wać przebieg napięcia i prądu z odpowiednią częstotliwością, a resztą zająłby się już odpowiednio zaprogramowany procesor. Jednak wydajność obliczeniowa tego procesora musiałaby być dość duża, ponieważ wymagana jest wysoka częstotliwość próbkowania sygnałów, aby przebiegi niesinusoidalne (o szerokim widmie częstotliwości) nie powodowały zbyt dużego błędu.
Na szczęście producenci układów scalonych konstruują coraz to lepsze i wymyślniejsze "kostki", integrujące wiele układów niełatwych do dyskretnego zrealizowania. Układy z rodziny ADE775x firmy
Rys. 2. Trójkąt mocy
Elektronika Praktyczna 12/2003
15
Licznik energii elektrycznej i watomierz
DVdd DGND
2)----------(1(
AGND REFIWOjr DINDOUTSCLK CS IRQ
Rys. 3. Schemat blokowy układu ADE7759
CLKIN CLKOUT
Analog Devices są tego przykładem, a najnowszy układ ADE7759 (dostępny w sprzedaży), to właściwie kompletny watomierz sterowany cyfrowo poprzez magistralę szeregową SPI. Na rys. 3 przedstawiono jego schemat blokowy.
Opiszę teraz działanie układu scalonego, zaznaczając co zostało wykorzystane w opisywanym przyrządzie. Jak widać, układ zawiera dwa tory pomiarowe przetwarzające sygnały wejściowe: tor VI -prądowy i tor V2 - napięciowy. Poza jednakowymi przetwornikami analog owo-cyfrowymi (A/C) tory znacznie różnią się od siebie. Wzmacniacze programowalne mają możliwość ustawienia jednej z pięciu wartości wzmocnienia: 1, 2, 4, 8 lub 16. Tor napięciowy ma zakres wejściowy napięcia ustawiony na ą0,5 V (różnicowo), natomiast tor prądowy ma dodatkowo jeszcze dwa zakresy do wyboru: ą0,25 V i ą0,125 V. Te wartości odpowiadają 63% pełnej skali na wyjściu przetwornika A/ C. Ponieważ w opisywanym wato-mierzu nie jest wykorzystywane wyjście impulsowe CF, nie ma potrzeby kalibrowania przetwarzania bezpośrednio w ADE7759 za pomocą rejestrów. Dlatego też zmieniłem w projekcie maksymalne napięcie wejściowe doprowadzone do wejść na 100% skali A/C. W efekcie kanał napięciowy może "przyjmować" napięcie z zakresu do 0,79 V, a kanał prądowy prąd do 0,395 V. W rezultacie lepsza jest dynamika mierzonych wartości napięć. Wzmocnienie wzmacniaczy ustawia się za pomocą jednego z rejestrów bloku GAIN. Ze wzmacniaczy sygnał trafia na
przetworniki A/C typu sigma-del-ta. Przetworniki dają na wyj ściu 20-bitową liczbę w uzupełnieniu do dwóch (U2). Wartość liczbową w kanale prądowym można korygować w zakresie ą50% za pomocą rejestru APGAIN (tutaj nie wykorzystywany). W kanale prądowym występują jeszcze dwa bloki specjalne. Pierwszym jest filtr gór-noprzepustowy HPFl eliminujący składową stałą, a drugim jest cyfrowy układ całkujący przeznaczony do współpracy z cewką Rogow-skiego, służącą do pomiaru prądu. Obydwa bloki nie są wykorzystywane w tym watomierzu.
W kanale napięciowym umieszczono blok korekcji fazowej sterowany rejestrem PHCAL, wymagany, gdy do pomiaru prądu użyto przekładnika prądowego lub gdy filtr HPFl zostanie włączony. Ponieważ ten watomierz mierzy prąd za pomocą bocznika, nie jest wymagana żadna korekta fazy. Następnie sygnały obu torów trafiają do układu mnożącego. Wynikiem mnożenia jest 20-bitowa liczba w kodzie U2 odpowiadająca wartości chwilowej mocy czynnej. Uśrednianie mocy chwilowej w filtrze dolnoprzepustowym LPF2 daje moc czynną. Suma tej wartości mocy z zawartością rejestru APOS pozwala zminimalizować błąd wartości niezerowej mocy przy braku obciążenia. Akumulacja mocy w 40-bitowym rejestrze AENERGY pozwala mierzyć dokładnie ilość zużytej energii elektrycznej przez podłączony odbiornik.
Ponieważ wszystkie te czynności odbywają się "sprzętowo", w odpowiednich blokach układu ADE7 75 9 możliwe stało się
zmniejszenie czasu potrzebnego na przetwarzanie próbek danych. Cykl pracy układu powtarza się z częstotliwością czterokrotnie mniejszą niż wynosi jego częstotliwość taktowania. Zalecana częstotliwość rezonatora kwarcowego wynosi 3,579545 MHz, a więc próbkowanie przebiegu wejściowego, mnożenie i akumulacja energii odbywa się z częstotliwością prawie 900 kHz. Z powodu występowania zjawiska aliasingu przy przetwarzaniu analogowo-cyf-rowym, konieczne jest ograniczenie pasma sygnałów wejściowych za pomocą filtrów RC do około 7 kHz (dla -3dB spadku).
W kanale napięciowym występuje dodatkowo filtr LPFl ograniczający pasmo przebiegu do 156 Hz. Jest on wykorzystywany przez blok detekcji przejścia przebiegu napięcia przez zero (wyjście ZX) oraz blok detekcji spadku lub zaniku napięcia (wyjście SAG). Szerzej o tym i jeszcze o innych funkcjach ADE7759 można przeczytać w opisie udostępnionym przez producenta. Wspomnę jeszcze o jednej ważnej funkcji, mianowicie o możliwości zgłaszaniu przerwania (wyjście IRQ) przez układ pomiarowy, jeśli wystąpi jedno z kilku zdarzeń. Może nim być pojawienie się w specjalnym rejestrze 20-bitowej próbki chwilowej napięcia, prądu lub mocy, co zostało wykorzystane w tym watomierzu do obliczenia wartości napięcia, prądu, mocy pozornej itp. Częstotliwość uaktualniania próbek została wybrana tak, aby program realizowany przez procesor zdążył obsłużyć przerwanie i dokonać niezbędnych obliczeń przed nadejściem kolejnej próbki. W praktyce udało się to wykonać w czasie krótszym niż 70 |is, co dało rozdzielczość 280 próbek na okres sieci (50 Hz).
Podsumowując: moc i energia czynne są obliczane co 1,12 |is sprzętowo w ADE7759, natomiast pozostałe wielkości są wyliczane programowo przez procesor sterujący, na podstawie próbek przychodzących co 71 |is.
Do wszystkich funkcji i rejestrów dostęp jest możliwy poprzez szeregową magistralę SPI. Jest to bardzo wygodne i nowoczesne rozwiązanie - wszystkie ustawienia i kalibracje dokonywane są pro-
16
Elektronika Praktyczna 12/2003
Licznik energii elektrycznej i watomierz
Rys. 4. Schemat elektryczny miernika mocy
gramowo za pomocą odpowiednich opcji i zmiennych. Magistrala SPI jest taktowana sygnałem SCLK, którego częstotliwość nie zależy od częstotliwości pracy układu ADE7759.
Zastosowanie 20-bitowe-go słowa wyjściowego z przetworników A/C pozwoliło uzyskać dużą dynamikę i rozdzielczość pomiarów napięć wejściowych. Producent deklaruje dokładność przetwarzania 0,1% przy dynamice 1000:1 i PF=1. Przy PF=0,5 i skrajnej wartości temperatury otoczenia, błąd rośnie do ą0,4%. Jest to znakomita dokładność i potrzebna jest dobra konstrukcja przyrządu (precyzyjne elementy, dobrze zaprojektowana PCB), aby nie pogorszyć znacząco tego wyniku.
Budowa i działanie układu
Na rys. 4 pokazano schemat elektryczny wato-mierza. Jest to schemat aplikacyjny ADE7759, nieróż-niący się bardzo od proponowanego przez producenta. Zasilanie części cyfrowej DV,, i analogowej AV,,
'da o ' aa
jest takie jak w nocie aplikacyjnej. Wyjście wewnętrznego napięcia odniesienia 2,4 V na nóżce 9 zostało zablokowane dwoma kondensatorami: 10 |iF i 100 nF. Masa części analogowej jest połączona z masą cyf- rową w jednym punkcie, P0^ układem Ul ("symboliczny" rezystor R20 o rezystancji 0 O,). Nieco zmieniony jest sposób podłączenia wejść pomiarowych do sieci 2 30 V. Napięcie z bocznika prądowego RSl
0 wartości 0,01Q jest podane na wejście różnicowe VlP-VlN poprzez filtr an-tyaliasingowy Rl-Cl, R2-C2
1 koraliki ferrytowe Li, L2. Koraliki ferrytowe zapobiegają przedostawaniu się z sieci do przyrządu impulsów zakłócających o wysokiej częstotliwości. Jak już podałem wcześniej, maksy-
Elektronika Praktyczna 12/2003
17
Licznik energii elektrycznej i watomierz
malna wartość różnicowa w kanale prądowym została ustalona (w rejestrze GAIN) na 0,4 V przy wzmocnieniu x2. Daje to maksymalną amplitudę napięcia wejściowego 0,2 V, co odpowiada prądowi 20 A, czyli 14 Arms.
Kanał napięciowy również posiada identyczne filtry antyaliasin-gowe. Napięcie sieciowe jest dzielone w stosunku 1:500 w dzielniku R4/(R4+R5+R6+R7). Punkt wspólny napięć wejściowych, czyli masa analogowa została wybrana w punkcie K2 za koralikiem ferrytowym, więc wejścia VIP i V2N są na poziomie masy.
Układ ADE7759 jest taktowany przbiegiem zegarowym o częstotliwości 3,5 79 MHz. Wyjście zgłaszania przerwania (IRQ) i detekcji zaniku lub spadku napięcia (SAG) oraz wejście uaktywniające magistralę SPI (CS) są podciągnięte do Vdd za pomocą rezystorów R13, R14 i R12. Wyjścia te są podłączone do odpowiednich linii mik-rokontrolera sterującego.
Układem steruje mikrokontroler ATmegal6 z popularnej rodziny AVR firmy Atmel. Tym co zadecydowało o jego wyborze, była dostępność sprzętowego interfejsu SPI, TWI (czyli I2C) oraz jednostki mnożącej, a także duża szybkość wykonywania obliczeń i możliwość programowania pamięci programu w układzie docelowym (ISP). AT-megal6 posiada 16KB pamięci Flash, co daje możliwość zapisania prawie 8 tysięcy rozkazów - jest to więc spora pamięć jak na program pisany wyłącznie w asemblerze (takie było założenie). Z wyposażenia ATmegal6 zostały wykorzystane jeszcze: Watchdog i Brown-Out-De-tector (generuje sygnał zerujący przy zbyt niskim napięciu zasilania), funkcja ICP timera Tl (mierzenie czasu trwania impulsu) oraz dwa wejścia przerwań zewnętrznych (INT0 i INT2).
Mikrokontroler jest zasilany przez filtr LC (L4, C17, C18), co ma dodatkowo zapobiegać możliwości zakłócenia jego pracy. Taktowany jest sygnałem zegarowym stabilizowanym za pomocą rezonatora 8 MHz, dzięki czemu łatwo jest obliczyć czasy wykonywania procedur.
Do portu A oraz linii PD4 PD5 i PD7 podpięto alfanumeryczny wyświetlacz LCD 2x16. Do sześciu
linii portu C zostało dołączonych 6 przycisków S1...S6 wraz z kondensatorami C25...C30 służącymi do tłumienia drgań ich styków. Wejście INT0 (port PD2) i magistrala TWI (porty PCO, PCI) są połączone z zegarem czasu rzeczywistego DS1307. Układ ten pracuje z własnym kwarcem częstotliwości rezonansowej 32 kHz, a jego praca jest podtrzymywana baterią litową. Na wyjściu SQW podłączonym do INT0 w ATmegal6 występuje przebieg o częstotliwości 1 Hz, który rozpoczyna start nowego cyklu pomiarów.
Układ ADE7759 komunikuje się z mikrokontrolerem poprzez magistralę szeregową SPI (PB5...PB7). Wyjście SS (PB4), aktywne poziomem niskim, inicjuje komunikację w ADE7759. Magistrala SPI, sygnał RESET i zasilanie są także wyprowadzone na złącze szpilkowe J2 (standard STK200), które służy do programowania pamięci programu mikrokontrolera.
Przerwania z ADE7759 są zgłaszane zmianą poziomu z wysokiego na niski na wejściu INT2 (PB2). Poziom niski na linii SAG sygnalizuje zbyt niskie napięcie sieciowe lub jego brak, co jest wykorzystywane w programie do zapisu stanu liczników energii. Ponadto procesor ma możliwość wyzerowania ADE7759 poprzez linię PBO, co jest przydatne (właściwie wymagane) podczas restartu watomierza.
Pobór prądu przez układy scalone i wyświetlacz wynosi około 20 mA. Do obniżenia napięcia sieciowego zastosowany został miniaturowy transformator o napięciu wtórnym 9 V. Aby zmniejszyć udar prądowy przy włączeniu oraz zakłócenia z sieci, przed kondensatorem filtrującym znajduje się rezystor R21 (10Q). Kondensator C9 ma dużą pojemność jak na tak niewielki pobór prądu, ponieważ jego zadaniem dodatkowym jest podtrzymanie działania watomierza jeszcze przez chwilę po zaniku napięcia sieciowego. Napięcie 5 V jest stabilizowane przez układ scalony U3 (78L05).
Złącze Jl służy do zasilania watomierza podczas programowania procesora. Niedopuszczalne jest wgrywanie programu przy zasilaniu przyrządu z sieci 230 V (chociaż jest to możliwe, gdy komputer nie jest uziemiony).
WYKAZ ELEMENTÓW
Rezystory
R1...R4: lkO/1%
R5: 200kQ/l%
Ró, R7: 150kQ/l%
R8, R21: 100/5%
R9, R16...R18: 10ka/5%
R10...R15: 47kQ/5%
R19: 47Q/5%
RV1: 10kO potencjometr
RS1: 0,010 RS-3668671
VR1: 275VAC JVR-14N 431K
Kondensatory
C1...C4: 22nF/10%
C5, CIO, Cli, C13, Cló, C17,
Cl9: lOOnF
Có, C12, C14, C20: 10|iF/ó,3V
C7, C8, C21, C22: 22pF/5% NPO
C9: 1000|iF/25V
Cl5: 220|iF/10V
Cl8: 22|iF/ó,3V
C23...C31: 100nF/20%
Półprzewodniki
Ul: ADE7759
U2: ATMegaló
U3: LM78LO5ACM
U4: DS1307Z
Dl: LL4148
Ml: 0,5A/50V B080C1000DIL
Różne
Xl: 3,579MHz
X2: 8MHz
X3: 32768HZ
S1...S6: microswitch 12x12
TRI: TSZZ0.6/9V (Indel)
LCD1: LCD 2x16
BAT1: CR2032 podstawka
LI..13: koralik ferrytowy 3,5x9 mm
L4: IOjiH
JL JP1: goldpiny
J2: DC10
obudowa Z5, kabel trójżyłowy
z wtyczką, gniazdko sieciowe
Do ochrony przyrządu przed przepięciami w sieci zasilającej służy warystor VRl. Cienka ścieżka na płytce drukowanej pomiędzy przewodem sieciowym a transformatorem, dzielnikiem i warystorem pełni rolę bezpiecznika. Jumper JPl służy do rozłączania transformatora od przewodów pomiarowych (sieciowych) podczas kalibracji watomierza napięciem stałym. Grzegorz Gajewski gayos@interia.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: pcb.ep.com.pl oraz na płycie CD-EP12/2003B w katalogu PCB.
18
Elektronika Praktyczna 12/2003
AUTOMATYKA
Działanie sterowników S7-200 - podstawy, część 2
W programach tworzonych za pomocą Step7MicroWinV3.2 wykorzystuje się następujące typy zmiennych:
- zmienne typu BOOL informujące o stanie logicznym pojedynczego bitu,
- zmienne typu BYTE odnoszące sie. do baj-tu danych (S bitów],
- zmienne typu WORD odnoszące sie. do słowa danych (16 bitów],
- zmienne typu DWORD odnoszące sie. do podwójnego słowa (32 bity],
- zmienne typu REAL odnoszące sie. do wartości zrniennoprsecinkowych, określonych jako wartośó i mantysa (32 bity].
Użytkownik ma możliwośó wybrania wersji językowej menu edytora. Dostępne są menu edytora w językach: angielskim, niemieckim, francuskim i włoskim. Przełączenie wersji językowej następuje po wybraniu opcji Tool->Options->Language. W opcji Tool->Options->Mnemonic Set istnieje możliwośó wyboru postaci mnemonicznej zmiennych. Wybierając International decydujemy, że wejścia binarne oznaczone zostaną jako ,,I" (wejścia], zaś wyjścia binarne jako ,,Q" (wyjścia]. Ustawienie w Mnemonic Set na SIMATIC powoduje odpowiednio oznaczanie wejśó jako ,,E" (Eingang) a wyjśó ,,A" (Ausgang).
W przypadku pomyłki edytor samodzielnie zamieni mnemonik na zgodny z ustawionym standardem. Ważna cechą oprogramowania Step7MicroWin 32 jest możliwośó wyboru konwencji programowania. Użytkownik na początku pisania programu decyduje czy będzie korzystał z funkcji zgodnych ze standardem SIMATIC, czy też wszystkie instrukcje, które będą używane w programie, będą zgodne z norma IEC 1131-3. Ustawienia standardu programowania dokonuje się w Tools->Opti on s-> Program i ng Modę.
Obszary alokacji zmiennych
W obszarze pamięci wyróżniamy następujące obszary dla alokacji zmiennych:
- obszar adresowany bitowo oznaczony jako "M" (Marker). Dostęp do tego obszaru jest możliwy jako bitowy M0.0, bajtowy MBO, słowo MWO lub podwójne słowo DWO.
- Obszar oznaczony jako ,,V" (Yariable). Jest to cały obszar bloku oznaczonego jako Data Błock. Obszar ten może byó ad-
W tej części artykułu przedstawiamy informacje istotne dła
początkujących projektantów systemów sterowania, którzy budują je na
bazie urządzeń z rodziny S7-200. Zaczynamy od alokacji i funkcji
najpopularniejszych zmiennych systemowych. Dogłębne poznanie ich
możliwości pozwoli tworzyć funkcjonalne i niezawodne programy.
resowany bitowo V0.0, jako bajt VB0, słowo VW0, lub podwójne słowo VD0.
- Obszar oznaczony jako ,,I" lub ,,E". Jest to obszar wejśó procesu. Sterownik na początku cyklu czyta stany sygnałów na wszystkich wejściach i wartości tych stanów odkłada w obszarze wejśó procesu. Możliwy jest odczyt sygnałów wejściowych jako pojedynczy bit 10.0, bajt IBO,słowo IWO, podwójne słowo IDO.
- Obszar oznaczony jako ,,Q" lub ,,A". Jest to obszar wyjśó procesu. Sterownik na końcu cyklu przepisuje stany sygnałów z obszaru wyjśó procesu na fizyczne wyjścia sterownika. Możliwy jest zapis stanów z obrazu wyjśó procesu na pojedyncze wyjścia QO.O(bit], grupę bajt QB0, słowo QW0, lub podwójne słowo QDO.
- Obszar oznaczony jako ,,L". Jest to tzw. lokalny stos danych czyli pamięó programu przydzielona tylko dla bloku programowego np. SBRx, w którym są wywoływane zadeklarowane zmienne L. W obszarze ,,L" możliwy jest dostęp do zmiennych typu bit L0.0, bajt L0, słowo LWO lub podwójne słowo LDO.
- Obszar oznaczony jako ,,SM". Jest to pamięó znaczników systemowych zapisanych w BlOS-ie sterownika S7-200. Zadaniem tych znaczników jest analiza pracy systemu. Wszelkie odchyłki od prawidłowej pracy systemu sygnalizowane będą w znacznikach systemowych SM. Użytkownik ma również możliwośó modyfikacji tych znaczników, np. w celu zmiany prędkości przesyłu danych przez zintegrowane złącze komunikacyjne sterownika S7-2 00.
Zegary
W systemach automatyki występuje ko-niecznośó precyzyjnego odmierzania czasu z zadaną dokładnością. W tym celu w sterowniku S7-200 przygotowano komórki pamięci oznaczone literą ,,T" (Timer). Timer jest 16-bitowym rejestrem, w którym znajduje się aktualna wartośó odmierzonego czasu. Numery zegarów są powiązane z rozdzielczością czasu jaki odmierzają. W zależności od numeru zegara przyporządkowana jest różna rozdziel-
czośó - np. TO ma rozdzielczośó 1 ms, zaś Tl rozdzielczośó 10 ms. Zegary różnią się również ze względu na funkcjonalnośó. W bibliotece Step7MicroWin znajdują się trzy typy zegarów: z opóźnieniem na załączenie, z opóźnieniem na wyłączenie oraz z opóźnieniem na załączenie i podtrzymaniem. Liczba dostępnych zegarów uzależniona jest od typu CPU.
Liczniki
Oprócz zegarów wykorzystywane są równie często liczniki oznaczone jako ,,C" (Coun-ter). Ich zadaniem jest zliczanie impulsów podawanych na wejścia binarne sterownika lub zliczanie zmian stanów wewnętrznych znaczników ,,M". Liczniki są 16-bitowymi rejestrami przechowującymi aktualnie zliczoną ilośó impulsów. Dzielą się na: zliczające w górę CTU, w dół CTD, oraz uniwersalne zliczające góra/dół - CTUD. Liczniki aktywowane są narastającym zboczem sygnału. Liczba dostępnych liczników uzależniona jest od typu CPU.
Szybkie liczniki
Szybkie liczniki mają rejestry 32-bitowe. Ich zadaniem jest zliczanie impulsów podawanych na określone wejścia CPU z maksymalną częstotliwością do 3 0 kHz. Odczyt impulsów odbywa się poza cyklem pętli, nie występuje więc problem z "gubieniem" poszczególnych impulsów w zależności od czasu przetwarzania programu. Odczyt szybkich liczników dokonywany jest na żądanie w programie obsługi przerwania czasowego. Szybkie liczniki oznaczane są jako HSC.
Wejścia/wyjścia analogowe
Odczyt sygnałów analogowych dokonywany jest poprzez odwołanie w programie do konkretnego kanału analogowego. Odczytywana jest aktualna wartośó analogowa i po konwersji A/C. W rejestrze modułu analogowego umieszczona zostaje wartośó liczbowa z zakresu -32000...+32000 lub 0...+32000. Aby umieśció przetworzoną wartośó w pamięci sterownika należy wykorzystaó z biblioteki programu Step7MicroWin - do tego celu służy funkcja M0V AIW0, VWl0, gdzie pierwszy kanał analogowy oznaczony jest jako AIW0, a VW1O jest zmienną umieszczona w pamięci sterownika w obszarze "V" o adresie 10. Wartośó analogowa reprezentowana jest przez liczbę 16-bitową.
Elektronika Praktyczna 12/2003
141
AUTOMATYKA
Tab. 1. Zestawienie wyposażenia jednostek centralnych $7-200
Opis CPU221 CPU222 CPU224 CPU226 CPU226XM
Pamięć programu 4kB 4kB 8kB 8kB 16 kB
Pamięć danych 2kB 2kB 5kB 5kB 10 kB
Obrazwejść procesu 10 Odo 11 5 7 10 Odo 115 7 10 Odo 11 5 7 10 Odo 115 7 10 Odo 11 5 7
Obraz wyjść procesu 00 Odo 01 5 7 000do0i57 00 Odo 01 5 7 000do0i57 000do0i57
Liczba kanałów wejść analogowych - AIW0doAIW30 AIW0doAlW62 AIW0doAIW62 AIW0doAIW62
Liczba kanat ów wyjść analogowych - AOW0doAOW30 AOW0doAOW62 AOW0doAOW62 AOW0doAOW62
Obszar pamięci Typu "V" podanyw bajtach VB0doVB2047 VB0doVB2047 VB0doVB5H9 VB0doVB5H9 VB0doVB10239
Obszar pamięci Typu "L" podanyw bajtach LBO do LB63 LB0doLB63 LBO do LB63 LB0doLB63 LBO do LB63
Obszar pamięci Typu "M" określony bitowo M0 0doM31 7 M0 0doM31 7 M0 0doM31 7 M0 0doM31 7 M0 0doM31 7
Obszar znaczników systemowych "SM" SM00doSMi797 SM0 0doSM299 7 SM0 0doSM549 7 SM0 0doSM549 7 SM0 0doSM549 7
Zagary"Tirners" 256 (TO doT255) 256(T0doT255) 256(T0doT255) 256(T0doT255) 256(T0doT255)
Opóźnienie nazałącze-niez podtrzymaniem 1rns 10ms 100ms T0.T64 T1 doT4 i T65 doT6S T5doT31 i T69 doT95 T0.T64 T1 doT4iT65doT68 T5doT31 iT69doT95 T0.T64 T1 doT4iT65doT68 T5doT31 iT69doT95 T0.T64 T1 doT4iT65doT68 T5doT31 iT69doT95 T0.T64 T1 doT4iT65doT68 T5doT31 iT69doT95
Opóźnienie na załączenie/wyłączenie 1 ms 10ms 100ms T32.T96 T33doT36iT97doT100 T37doT63iT101 doT255 T32.T96 T33doT36iT97doT100 T37doT63iT101 doT255 T32.T96 T33doT36iT97doT100 T37doT63iT101 doT255 T32.T96 T33doT36iT97doT100 T37doT63iT101 doT255 T32.T96 T33doT36iT97doT100 T37doT63iT101 doT255
Liczniki C0doC255 C0doC255 C0doC255 C0doC255 00 do 0255
Szybkie liczniki HSC HC0,HC3,HC4,HC5 HC0,HC3,HC4,HC5 HC0doHC5 HC0doHC5 HC0doHC5
Akumulatory AC0doAC3 AC0doAC3 AC0doAC3 AC0doAC3 AC0doAC3
Skoki do etykiety 0 do 255 Odo 255 Odo 255 Odo 255 Odo 255
Liczba podprogram ów Odo 63 Odo 63 Odo 63 Odo 63 0do127
Liczbatunkcji wykrywania zbocza narastającego/opadającego 256 256 256 256 256
Ilość pętli regulacji PID Odo 7 Odo 7 Odo 7 Odo 7 Odo 7
Porty komunikacyjne PortO PorTO PorTO PortO,Porti PortO,Porti
Analogicznie sytuacja przedstawia sie. z wyjściami analogowymi, przy czym należy wykonać operacje, odwrotną, czyli przetworzoną wartość z zakresu -32000...+32000, przechowywaną w pamięci sterownika należy przesiać na konkretny kanał analogowy za pomocą instrukcji MOV VW1O, AQW0, gdzie VW1O jest zmienna w sterowniku, a AQW0 jest pierwszym kanałem wyjściowym analogowym.
Akumulatory
Akumulatory są 32-bitowymi rejestrami, służącymi do przechowywania wyników pośrednich obliczeń oraz wykorzystywane są przy adresowaniu za pomocą wskaźników. Jednym z zastosowań akumulatorów jest przekazywanie parametrów do podprogramów i z powrotem. W CPU znajdują sie. 4 akumulatory oznaczone ACO, ACl, AC2, AC3.


VB11
17
V8i3 sa
VflH
ACO
Ryś. 1
Stałe
Wiele operacji arytmetycznych wymaga określenia wartości stałych. Mogą być one określone jako wartości typu: binarnego, dziesiętnego, hexadecymalnego, ASCII, zmiennoprzecinkowego. Przykładowe deklaracje wartości stałych:
Siata dziesiętna 2022
Siata hexadecymalna 16#4AE3
Stała ASCII " proDa"
Siata zmiennoprzecinkowa +1 175495E-38 luD typu Real
Stała binarna 2#1000 1001 1010 0100
Adresowanie pośrednie
Adresowanie pośrednie jest wykorzystywane jako jeden z najefektywniejszych spo-sobćw dostępu do danych znajdujących sie. w pamięci sterownika. Dzięki adresowaniu pośredniemu istnieje możliwość adresowania tabel danych i łatwego zarządzania nimi. Aby uzyskać dostęp do danej w spo-Mown 'AC1.4C0 sćb pośredni najpierw należy utworzyć
wskaźnik adresowy, ktćry wskazuje na tą daną. Wskaźnik jest
zmienną 32-bitową typu podwójne słowo. Jako wskaźnik może być użyta zmienna z obszaru ,,V" - np. VD200, akumulator - np. ACl, zmienna lokalna ,,L" - np. L6. Aby wygenerować wskaźnik należy skorzystać z funkcji MOVD znajdującej się w bibliotece funkcji programu Step7MicroWin. Aby poinformować, że chcemy zadeklarować wskaźnik do danej VW1O a nie przesłać wartość danej do np. akumulatora, koniecznym jest poprzedzenie adresu, na który ma wskazywać wskaźnik znakiem ,,&", np.:
MOV LVW10, ACl
MOV LMB4, VD5
MOV &C4, L6
Tak wytworzony wskaźnik wskazuje obecnie na konkretna daną czyli jak w przykładach powyżej na VW1O, MB4, C4. Jeżeli chcemy odczytać wartość zawarta wdanej, wskazywanej przez wskaźnik należy wykonać czynności jak w przykładzie pokazanym na rys. 1. Michał Bereza, Siemens
Dodatkowe informacje
Petna dokumentacja w języku angielskim do sterownika S7-200 oraz oprogramowanie STEP7MicroWm znajduje się naptycie CD-EP12/2003B oraz w Internę cie pod adresem www stemens pf/s/mat/c w podkatalogu Katabg/>instrukcje
142
Elektronika Praktyczna 12/2003
PROJEKTY
Stereofoniczny wzmacniacz klasy D 2x20W
AVT-550
Wzmacniacze klasy
D zyskują od kilku lat coraz
większą popularność mimo -
co prawda coraz rzadszych -
negatywnych opinii audiofilów.
Kolejny, bardzo nowoczesny
konstrukcyjnie wzmacniacz
tego rodzaju przedstawiamy
w ańykule.
Rekomendacje: jest to
wzmacniacz, który doskonale
sprawdzi się zarówno
w samochodzie, jak i jako
stacjonarny w domowym
zestawie audio.
Tab. 1. Wybrane parametry stereofonicznego wzmacniacza klasy D 2x20W
Ś napijcie zasilania wzmacniacza 8... 18 V,
Ś moc 20 W przy obciążeniu 8n lub 13 W przy 4ni napięciu zasilania 18V (10%THD+N),
Ś THD+N 1% przy mocy 16 W/8n lub 10 W/4n,
Ś THD+N 0,3% przy mocy 2 W/8n i napięciu zasilania 18 V,
Ś częstotliwość oscylatora 250 kHz,
Ś pasmo przenoszenia 20 Hz do 20 kHz,
Ś ma wbudowany obwód zapobiegający stukom w głośnikach podczas wtaczania,
Ś wbudowane zabezpieczenie przeciwzwarciowe wyjść oraz Termiczne,
Ś możliwość pracy w trybie mostkowym,
Ś zastosowana Technika modulacji eliminuje zazwyczaj duży filtr LC oraz polepsza SNR i skuteczność wzmacniacza.
Często wzmacniacze pracujące w klasie D są nazywane wzmacniaczami impulsowymi lub cyfrowymi, co odzwierciedla sposób ich pracy. Wzmacniacze pracujące impulsowo charakteryzują się niewątpliwą zaletą - ich sprawność sięga 90%, podczas gdy wzmacniacze liniowe mają sprawności co najwyżej 60% . Dzięki temu wzmacniaczy pracujących w klasie D nie trzeba wyposażać w duże i ciężkie radiatory, a przy mniejszych mocach wzmacniacza żaden radiator nie jest potrzebny.
Wysoka sprawność wzmacniacza niekoniecznie musi być okupiona znacznym skomplikowaniem jego budowy. Nowoczesne, scalone wzmacniacze impulsowe pracują w otoczeniu zaledwie kilku dołączonych elementów zewnętrznych. Najważniejszą wadą większości wzmacniaczy impulsowych jest konieczność stosowania na jego wyjściu dolnoprzepusto-wych filtrów LC przystosowanych do obciążeń wysokoprądowych. Napisałem "większości wzmacniaczy", bo istnieją wzmacniacze, w których udało się zmniejszyć rozmiary, a nawet wręcz wyeliminować filtry LC, zazwyczaj dużych rozmiarów i drogie. Przykładem takiego wzmacniacza (niepo-tizebującego filtrów LC) jest układ
TPA3001D1 firmy Texas Instruments. W oparciu o ten układ wykonany został tytułowy wzmacniacz. Jego niewątpliwą zaletą jest brak konieczności stosowania jakiegokolwiek radia tor a oraz filtrów LC. Możliwość zrezygnowania z filtru LC udało się uzyskać inżynierom z firmy Texas Instruments dzięki zastosowaniu zmodyfikowanego sposobu zasilania głośników, omówię go w dalszej części artykułu.
Prezentowany wzmacniacz, choć ma relatywnie niewielką moc wyjściową, może znaleźć sporo zastosowań. Można go wykorzystać jako multimedialny wzmacniacz montowany w obudowie komputera PC czy w obudowie głośników, a także jako wzmacniacz do samochodu. Sądzę, że zastosowań wzmacniacza może być wiele dzięki jego niewątpliwej zalecie jaką jest prosta budowa oraz niewielka liczba elementów zewnętrznych.
Podstawowe parametry wzmacniacza zawarto w tab. 1.
Nowoczesna klasa D
W klasie D wykorzystuje się modulację sygnału PWM, zamiast liniowego wzmacniania sygnału, typowego dla pracy w klasie A i AB. We wzmacniaczach im-
Elektronika Praktyczna 12/2003
21
Stereofoniczny wzmacniacz klasy D 2x20W
AOND
YCLAMP
B9N
OLTTN
PGM)
B8P
PVDD
OUTP
Sygnał audio
Przebieg trójkątny 250 kHz
Sygnał wyjściowy PWM
Zanegowany
sygnał wyjściowy
PWM
Rys. 2. Ilustracja tworzenia przebiegu PWM
PGM)
porównywany jest w komparatorze z wytwarzanym wewnętrznie przebiegiem trójkątnym, tworząc na wyjściu modulowany przebieg PWM. Przebieg ten steruje tranzystorami mocy (kluczami prądowymi), których zadaniem jest dostarczenie wysokoprądowego sygnału wyjściowego. Na rys. 2 pokazano, w jaki sposób jest tworzony przebieg PWM przez komparator. Jak widać, analogowy sygnał wejściowy jest porównywany
pulsowych sygnał audio jest jaśnić jak kształtowany jest prze- z przebiegiem trójkątnym o częs-
przekształcany na zmodulowany bieg PWM. Sygnał wejściowy audio podawany jest na przed-
HDSC
BYPASS
Rys. 1. Schemat blokowy układu scalonego TPA3001D1
przebieg PWM, którego uśredniona wartość niesie informację wzmacniacz, a dalej na integrator
totliwości 250 kHz. Aby skutecznie przetworzyć sygnał audio na przebieg PWM, częstotliwość prze-
o chwilowej amplitudzie sygnału (będący nitrem dolnoprzepusto- biegu trójkątnego powinna kilka-
wejściowego. Wzmacniacz klasy D ma bardzo dużą sprawność energetyczną, gdyż tranzystory stopnia wyjściowego pracują wyłącznie jako klucze, czyli znajdują się w jednym z dwóch stanów: włączenia albo wyłączenia.
Najpierw postaram się opisać jak jest tworzony modulowany sygnał PWM oraz odpowiedzieć na pytania: dlaczego słyszy się sygnały akustyczne, a nie słyszy składowej sygnału o częstotliwości sygnału PWM, dlaczego przetwarzanie PWM jest bardziej skuteczne od wzmacniania liniowego, a także dlaczego niektóre wzmacniacze impulsowe potrzebują wyjściowych filtrów LC a inne nie.
Jak we
Kłopoty z układami?
Wbrew opiniom malkontentów, układy
TPA3001D1 są łatwo dostępne: można je
otrzymać bezpośrednio z firmy Texas
Instruments jako bezpłatne próbki.
Zamówienia należy składać bezpośrednio
na stronie internetowej producenta.
kiotnie przewyższać pasmo sygnałów akustycznych. Kiedy napięcie sygnału audio jest większe od napięcia przebiegu trójkątnego, na wyjściu komparatora pojawi się sygnał o poziomie wysokim (napięcie dodatnie), natomiast w przeciwnym wypadku będzie poziom niski (napięcie zerowe).
Teoretycznie, wzmacniacz klasy D może mieć sprawność energetyczną blisko 100%, ponieważ kluczowane tranzystory powinny dostarczać do obciążenia taką samą moc jak pobrana z zasilacza. Żeby tak się stało, tranzystory MOSFET muszą mieć zerową rezystancje w stanie otwarcia oraz powinny być sterowane napięciowo (bez prądu bramki). Niestety,
wzmacniaczu
klasy D tworzony jest przebieg wym), którego zadaniem jest odfil- jeszcze nie opracowano idealnego
trowanie składowych o wyższych tranzystora o takich parametrach,
częstotliwościach. Filtracja tych dlatego też trzeba liczyć się ze
składowych sygnału ma na celu stratami mocy, aczkolwiek nie-
zap obie gniecie skutkom aliasingu wielkimi. Zazwyczaj tylko 10%
o który został zbudowany wzmac- oraz polepsza stabilność wzmac- pobieranej z zasilacza energii jest
niacz. Schemat ten pozwoli wy- niacza. Następnie sygnał audio tracone.
PWM zawierający informację o sygnale akustycznym? Na rys. 1 przedstawiono schemat blokowy układu TPA3001D1, w oparciu
22
Elektronika Praktyczna 12/2003
Stereofoniczny wzmacniacz klasy D 2x20W
16 14 12 10
o
!
Vcc=12V Stereo AB -------------------- 4n --------------------- ^--------------------

/
tereo AB - 8fi
TPA30 D2D2-4O
Ś-^^
// ^^
-""" TPA300 ------------- >D2-8fl

20
5 10 15
Moc wyjściowa [W]
Rys. 3. Zależność mocy traconej we wzmacniaczach klasy D i AB w funkcji mocy wyjściowej
25
Dzięki dużej sprawności wzmacniacza nie występuje problem odprowadzania ciepła powstałego wskutek dużych strat mocy. Przy zasilaniu wzmacniacza impulsowego napięciem 12 V nie jest potrzebny żaden radiator. Przy zasilaniu napięciem 12 V wzmacniacza pracującego w klasie AB radiator jest już wymagany. Na rys. 3 pokazano straty mocy we wzmacniaczu w zależności od dostarczanej mocy, odpowiednio klas D i AB, przy obciążeniu 4 i 8Q (rysunek zaczerpnięty z dokumentacji firmy Texas Instru-
ments). Dla przykładu, wzmacniacz klasy D przy mocy 10 W i obciążeniu 4 O, ma straty mocy na poziomie ok. 3,7 W, a wzmacniacz klasy AB przy tej samej mocy wyjściowej ma aż 14 W strat! Jak widać różnice w mocy strat są spore.
Modulacja filter-free, czyli jak pozbyć się filtru LC
Wzmacniacz TPA3001D1 używa trochę innego rodzaju modulacji PWM niż wcześniej przedstawiona, dzięki czemu nie jest
Napięcie progowe komparatora 'dodatniego"
z
Vout+
Vout+
Napięcie
różnicowe
występu|ące
na głośniku
Napięcie progowe komparatora 'ujemnego
+Vcc
-Vcc
konieczne stosowanie filtrów LC. Przy modulacji tego rodzaju przebieg na wyjściu nieodwracającym jest uzyskiwany tak samo jak w klasycznym wzmacniaczu klasy D, ale już przebieg na wyjściu odwracającym nie jest już tylko inwersją przebiegu z wyjścia nie-odwracającego. Dla ustalenia uwagi wyjście nieodwracające będzie oznaczane Vout+, a wyjście odwracające Vout-. Przy tej modulacji stosowane są dwa komparatory oraz dwa integratory. Komparator pierwszy porównuje przebieg z integratora tworząc przebieg Vout+, natomiast sygnał z drugiego integratora jest porównywany w przypisanym mu komparatorze, na wyjściu którego otrzymuje się sygnał Vout-. Na rys. 4 pokazano sygnały na wejściach oraz wyjściach komparatorów w opisywanym sposobie modulacji. Na rysunku pokazano także różnicowy sygnał występujący na głośniku. Jak widać, głośnik jest zasilany krótkimi, prostokątnymi impulsami prądowymi.
Na rys. 5 pokazano przebiegi na wyjściu wzmacniacza przy sygnale wejściowym o częstotliwości 20 kHz. Na rysunku da się zauważyć, że przy wzroście amplitudy sygnału wejściowego rośnie wypełnienie przebiegu PWM.
Sygnał audio występujący w przebiegu PWM jest łatwiej analizować w dziedzinie częstotliwości. "Zwykły" sygnał PWM ma składowe o częstotliwości sygnału wejściowego, częstotliwości przebiegu PWM oraz częstotliwości harmonicznych sumy bocznego pasma. Na rys. 6 przedstawiono w dziedzinie częstotliwości sygnały: wejściowy, wyjściowy oraz
Rys. 4. Przebiegi sygnałów na wejściach i wyjściach komparatorów przy modulacji PWM "filter-free"
CH4
CD1:10V/Div Cł)2:10V/Div Ch3: 8V/Div Ch4: 2V/Div 5|JS/Dłv
Rys. 5. Przebiegi na wyjściu wzmacniacza przy sygnale wejściowym o częstotliwości 20 kHz
Elektronika Praktyczna 12/2003
23
Stereofoniczny wzmacniacz klasy D 2x20W
Sygnał wejściowy
Sygnał na wyjściu PWM
Sygnał odfiltrowany
Sinus 1kHz
Składowa A> podstawowa
Harmoniczne
Częstotliwość kluczowania
-JIlt-jLlh-Jllh
Składowa / podstawowa
Harmoniczne
Odfiltrowane harmoniczne
Pasmo audio 20Hz...20kHz
Częstotliwość [Hz
3f
Rys. 6. Rozkład widmowy sygnału wejściowego, wyjściowego oraz wyjściowego po odfiltrowaniu
wyjściowy odfiltrowany. Rysunek ten pokazuje, jak z przebiegu PWM jest "wyciągany" sygnał audio poprzez filtrację dolnoprze-pustową. Otrzymany sygnał audio nie jest czystym sygnałem 1 kHz, lecz posiada liczne harmoniczne. Głośnik nie może odtwarzać częstotliwości sygnału PWM (250 kHz) i jego harmonicznych. Nawet jeśli byłoby to możliwe, to ucho ludzkie nie jest w stanie ich usłyszeć. Słuchacz nie byłby w stanie odróżnić sygnału odfiltrowanego od niefiltrowanego (pokazanego na rys. 5) jeśli oba zostałyby bezpośrednio wysłane na głośnik. Tę właściwość wykorzystali inżynierowie z Texas Instruments do pozbycia się wyjściowego filtru LC. Wykorzystali oni naturalną właściwość słuchu ludzkiego polegającą na tłumieniu sygnałów o wyższych częstotliwościach (czyli filtracji dolnoprzepustowej). Modulacja tego rodzaju określona jest przez producenta jako filter-free. Można teraz zadać pytanie: dlaczego niektóre wzmacniacze klasy D wymagają filtrów wyjściowych a inne nie? Przecież można podąć sygnał wyjściowy bezpo-średnio na głośnik. Różnica jest w wartości prądu występującej podczas przełączania tranzystorów. W modulacji filter-free natężenie prądu podczas przełączania tranzystorów jest zmniejszone do
minimum. Właśnie zmniejszenie tego prądu pozwala na wyeliminowanie elementów filtru LC. W takim przypadku prostym filtrem będzie sam głośnik, którego jednym z głównych elementów
jest przecież cewka. Dzięki wyeliminowaniu filtrów LC wzmacniacz jest prosty w budowie, ma także wysoką sprawność.
Na rys. 7 przedstawiano przykłady przebiegów typowych dla modulacji typu filter-free. Dla przypomnienia, przebiegi na wyjściach VOUT+ oraz VOUT- w tym typie modulacji są w fazie. Przy napięciu na wejściu większym od 0, przebieg na wyjściu Vout+ ma wypełnienie większe od 50%, a Vout- mniejsze od 50%. W przypadku, gdy napięcie jest mniejsze od 0, Vout+ będzie mieć wypełnienie mniejsze od 50% a Vout- większe od 50%. W przypadku napięcia 0 V przebiegi na Vout+ i Vout- mają wypełnienie 50%, ale są trochę przesunięte, dlatego głośnik jest zasilany krótkimi szpilkami prądowymi. Takie sterowanie głośnika redukuje straty w samym filtrze LC oraz w głośniku. Pozwala także na stosowanie głośnika w roli filtru bez straty skuteczności wzmacniacza. Zniekształcenia powstające w wyniku zasilania głośników sygnałem prostokątnym są lokowane znacznie
OUT+ OUT-
Napięcie na głośniku __v
Prąd obciążenia
OUT+
OUT-
+5V
Napięcie na głośniku __v
Prąd obciążenia
OUT+
OUT-
+5V
Napięcie na głośniku __v
Prąd obciążenia
Rys. 7. Przebiegi napięć dla modulacji filter-free
Napięcie wyjściowe=OV
Napięcie wyjściowe>OV
Napięcie wyjścioweElektronika Praktyczna 12/2003
Stereofoniczny wzmacniacz klasy D 2x20W
ś L
Rys. 8. Schemat elektryczny wzmacniacza
powyżej granicy słyszalności, czyli znacznie powyżej 20 kHz. Dla zmniejszenia emisji zakłóceń, producent zaleca w takim rodzaju modulacji zastosowanie w wyjściach wzmacniacza koralików ferrytowych, które zminimalizują emisję zakłóceń wyso-koczęstotliwościowych o częstotliwościach większych niż 1 MHz, W przypadku potrzeby zmniejszenia emisji zakłóceń
0 częstotliwościach mniejszych niż 1 MHz producent zaleca zastosowanie filtru LC.
Opis działania układu
Schemat elektryczny wzmacniacza pokazano na rys. 8. Łatwo zauważyć, że wzmacniacz składa się z dwóch takich samych części (po jednej dla każdego kanału). Sygnały wejściowe są podawane na wejścia różnicowe. Aby skorzystać tylko z jednego wejścia (konfiguracja asymetryczna), wystarczy wejścia IR- oraz IL- zewrzeć do masy. Wzmacniacz ma regulowane zworkami ZWl, ZW2 wzmocnienie wewnętrznego przed-wzmacniacza. Wartości wzmocnienia odpowiadające pozycjom zworek zestawiono w tab. 2.
Rezystory R1...R3 podciągają wejścia GAINO, GAINl oraz !SHD do napięcia 5 V, które występuje na wyjściu VREF. Podanie poziomu niskiego (0 V) na wejście SHD wprowadza wzmacniacz w stan uśpienia, w którym pobierany prąd jest mniejszy niż l|iA. Elementy C34, R4 oraz C35 i R5 ustalają częstotliwości wewnętrznych oscylatorów na wartość 250 kHz, natomiast elementy R6, C30, R7, C31 i R8, C32, R9, C33 współpracują z obwodem boots-trap. Wyjścia wzmacniacza (OUTN
1 OUTP) sterują bezpośrednio głośnikiem, poprzez proste filtry składające się z koralika ferrytowego i kondensatora. Filtry te - jak wyżej wspomniano - zmniejszają emisję zakłóceń o częstotliwościach większych od 1 MHz. Elementy filtrów LC: L5, C5, L6, C6, L7, C7 oraz L8, C8 są typowe dla klasycznych wzmacniaczy klasy D, które w tym wzmacniaczu z wyjaśnionych przyczyn nie muszą być montowane. Pozostałe kondensatory odpowiedzialne są za filtrację napięć występujących we wzmacniaczu.
Elektronika Praktyczna 12/2003
25
Stereofoniczny wzmacniacz klasy D 2x20W
Rl
ooo o o
BND IR-IR+ SHDBND
Rys. 9. Rozmieszczenie elementów na płytce drukowanej
Montaż i uruchomienie
Stereofoniczny wzmacniacz należy zmontować na płytce drukowanej zgodnie z rys. 9. Montaż wzmacniacza trzeba rozpocząć od wl utowania wzmacniaczy scalonych wykonanych w technologii SMD. Do montażu tych układów potrzebna będzie lutownica z cienkim grotem. Przydać się może cienka cyna najlepiej o średnicy 0,25mm lub pasta lutownicza. Wlutowanie elementów SMD na pierwszy rzut oka nie musi być trudne lub niewykonalne prostymi metodami. Układy Ul, U2 dla lepszego odprowadzania ciepła zostały wyposażone od dolnej strony obudowy w metalową wkładkę. Kontakt tej wkładki z odpowiednio wyprofilowaną ścieżką na płytce drukowanej spowoduje
Tab. 2. Wzmocnienie wzmacniacza w zależności od położenia ZW1 iZW2
ZW2 ZW1 Wzmocnienie wzmacniacza (dB)
1 1 12
1 0 18
0 1 23,6
0 0 36
Gdzie: "1" zworka zatożona "0" zworka zdjęta
polepszenie odprowadzania ciepła z układu. By polepszyć kontakt metalowej płytki wzmacniacza ze ścieżką płytki drukowanej, przed wlutowaniem układów, wkładki można posmarować pastą silikonową. Zanim wlutowane zostaną układy SMD, należy także ocynować przeznaczone dla nich punkty lutownicze. Po przyklejeniu do płytki układów SMD można je zacząć lutować. Do przyklejenia można użyć klejów, które mają dłuższy czas schnięcia. Nie nadają się do tego typu wszelakie Kropelki . Lutowanie układów SMD polegać będzie na podgrzaniu i dociśnięciu ich końcówek do płytki drukowanej. Cyna występująca na punktach lutowniczych powinna wystarczyć do zalutowania końcówek układów. Pozostałe elementy są do montażu przewlekanego. Producent zaleca zastosowanie kondensatorów tantal owych, choć mogą to być także elektrolity. Ponieważ najczęściej nie będą montowane wyjściowe filtry LC, miejsca na elementy L5...L8 należy zewrzeć zworkami z drutu. Wzmacniacz po zasileniu napięciem z zakresu +9...18 V powinien od razu działać poprawnie.
WYKAZ ELEMENTÓW
Rezystory
R1...R5: 120kD
R6...R9: 51D
Kondensatory
C1...C4: 470nF
C9...C15: lOOnF ceramiczny
C16, C17: 10|iF/25V
C18...C29: ljiF najlepiej tantalowy
C30...C33: 220nF
C34, C35: 220pF
C36: 1000|iF/25V
C37...C40: lnF
Półprzewodniki
D1...D4: Dioda Schottky'ego
1N5818
Ul, U2: TPA3001D1
Różne
L1...L4: koralik ferrytowy
W celu dodatkowego zmniejszenia zakłóceń, montować eiementy C5...C8 oraz 15...18 o wartościach odpowiednio 470nF i 33/iH dia obciążenia 8Q, i odpowiednio 1/iF i 15/iH dia obciążenia 4Q.
Jak pisałem, wzmacniacz ma wejścia różnicowe, więc przy korzystaniu tylko z jednego wejścia, wejścia IR- i IL- należy dołączyć do masy. Wzmocnienie wzmacniacza można dobrać do własnych potrzeb zworkami ZWl oraz ZW2.
Przy napięciu zasilania 18 V i im-pedancji głośnika 8Q, wzmacniacz będzie w stanie oddać 20 W mocy, przy zniekształceniach 10%. Przy oddawanej do obciążenia mocy 15 W zniekształcenia THD będą utrzymywane na poziomie 0,1%. Zniekształcenia zwiększają się wraz z mocą przy mocach większych niż 15 W.
W przypadku montażu wzmacniacza w obudowie komputera, należy zasilić go dostępnym napięciem +12 V. Marcin Wiązania, AVT marcin.wiazania@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: pcb.ep.com.pl oraz na płycie CD-EP12/2003B w katalogu PCB.
26
Elektronika Praktyczna 12/2003
PROJEKTY
Spawarka impulsowa do spawania metodą TIG
Budową urządzeń
podobnych do opisanego
w artykule zajmuje się
stosunkowo niewielu
elektroników. Informacje
praktyczne, niezbędne do
"panowania" nad dużymi
prądami, są trudno dostępne
w krajowej literaturze, jest
więc niebywała okazja do
poznania tajników budowy
i działania nowoczesnego
urządzenia spawalniczego.
Rekomendacje: projekt
z pogranicza elektryki
elektroniki, który szczególnie
polecamy Czytelnikom
podejm ującym próby
samodzielnej budowy
sterowników do spawarek
i innych urządzeń
wysokoprądowych.
Spawarka do spawania metodą TIG (w osłonie gazu obojętnego) jest przeznaczona do łączenia metali szlachetnych, miedzi i stopów miedzi, stali nierdzewnych i węglowych. Nadaje się również do lutowania twardego (temperatura topnienia spoiwa wynosi powyżej 500C), gdy lutowie jest stopem, którego głównym składnikiem jest srebro. Urządzeniem tym nie można spawać aluminium, gdyż w takim przypadku na wyjściu spawarki jest wymagany prąd przemienny.
Do ochrony elektrody i obszaru nadtopionego metalu powszechnie stosowany jest argon (Ar). Natomiast elektroda wykonana jest z wolframu z niewielkim dodatkiem takich pierwiastków jak thor (Th), itr (Y) i innych. Elektroda wolframowa stosowana w metodzie spawania TIG jest często opisywana w literaturze fachowej jako "nietopliwa", co jest tylko częściowo (teoretycznie) prawdziwe, bowiem ulega zużyciu wskutek dużej gęstości prądu wyjściowego, tzn. zbyt dużego prądu roboczego w stosunku do średnicy elektrody (po prostu stapia się), bądź ulega zużyciu wskutek zanieczyszczeń
zawartych w argonie. Łuk elektryczny, stanowiący źródło ciepła, jarzy się pomiędzy elektrodą wolframową a materiałem spawanym, powodując jego nadtopienie w miejscu łączenia. Spawanie odbywa się poprzez nadtopienie krawędzi łączonych detali bez użycia materiałów dodatkowych albo z ich użyciem. Skład metalurgiczny materiału dodatkowego jest zbliżony lub taki sam, jak materiału spawanego.
Postęp w technologii wytwarzania elementów ener go elektronicznych (tyrystory, tranzystory
Dane techniczne
/zasilanie: 220V/50 Hz,
/napięcie biegu jatowego: 68 V,
/ rnaks. prąd spawania: 140 A,
/ min. prąd spawania: 20 A,
/ zakes regulacji piądi beżowego (lb): 20 do 140 A,
/zakres regulacji prądu impulsu (li): 20 do 140 A,
/zakres regulacji czasu przerwy pomiędzy
impulsami (tp): 0,06 do 1 s, /zakres regulacji czasu impulsu (ti): 0,06 do 1 s, /opóźnienie wyptywu gazu: 5 s, /wydatek gazu ochronnego: 8 do 12 l/min.
(argon), / inicjacja tuku spawalniczego: poprzez
zwarcie elektrody wolframowej do materiału
spawanego,
/wymiary: szer. 200, wys.250, dt. 445 mm, /waga: 25 kg.
Elektronika Praktyczna 12/2003
27
Spawarka impulsowa do spawania metoda TIG
Rys. 1. Zależność pomiędzy napięciem a prądem przy różnych wartościach prądu spawania
dużej mocy) umożliwił budowę spawarek do spawania metodą TIG, w której prąd spawania zmienia się w czasie, przy czym zarówno parametry prądowe, jak i czasowe spawarki można regulować w szerokim zakresie. W literaturze fachowej takim urządzeniom nadano nazwę IMPULSTIG lub PULSTIG. Impulsowe spawanie TIG umożliwia wprowadzenie do spoiny znacznie mniejszych ilości ciepła, uzyskując ten sam efekt, co dla zwykłej spawarki TIG. Ponadto, szczególnie przy wykonywaniu konstrukcji ze stali nierdzewnych z zastosowaniem spawania impulsowego, deformacja konstrukcji wskutek naprężeń termicznych jest znacznie mniejsza. Metoda impulsowa umożliwia również spawanie detali o małym przekroju i znacznie różniących się grubością ścianek. Dla przykładu: opisaną spawarką połączono płytkę grubości 0,6 mm z rurką o grubości ścianki 2 mm wykonaną ze stali nierdzewnej oraz po spawano dwie płytki o grubości 0,5 i 1 mm, a także wykonano termoogniwa pomiarowe z drutu platynowego o średnicy 0,8 mm.
W przekonaniu, że część Czytelników jest zainteresowana budową spawarki impulsowej TIG oraz ze względu na wysoką cenę podobnych fabrycznych wyrobów, przedstawiam przykład wykonania samodzielnie takiego urządzenia. Jego konstrukcję zaplanowano tak, aby ponieść jak najmniejsze koszty materiałów i robocizny z uwzględnieniem łatwości dostępu do poszczególnych podzespołów , starając się przy tym, aby
spawarka parametrami nie odbiegała od analogicznych wyrobów fabrycznych.
Budowa spawarki do spawania ręcznego
Spawanie ręczne elektrodami otulonymi (do niedawna najpowszechniejsza metoda łukowego łączenia metali) wymaga źródeł prądu (zarówno stałego, jak i przemiennego) o silnie opadającej statycznej charakterystyce wyjściowej. Na rys. 1 przedstawiono zależność między napięciem a prądem przy różnych wartościach prądu spawania. Symbolem Uo oznaczono napięcie biegu jałowego - zwykle mieści się w zakresie od 48 do 70 V i jest takie samo co do wartości w całym zakresie regulacji. Prądy Izl...Iz4 oznaczają prądy zwarcia dla różnych nastaw. Natomiast napięcie spawania (Usp) wyliczono empirycznie dla spawarek do ręcznego spawania łukowego elektrodami otulonym i wynosi Usp [V] = 20 + 0,04 Isp, z czego wynika, że np. przy 100-ampero-wym prądzie spawania napięcie spawania jest równe 24 V. Jedną z najprostszych metod regulacji prądu spawania w transformatorze jest regulacja z przemieszczanym mechanicznie tzw. bocznikiem magnetycznym wprowadzanym w obwód magnetyczny transformatora spawalniczego. Taki transformator będzie użyty do budowy spawarki IMPULSTIG, i w modelowym wykonaniu zastosowano transformator ze spawarki Besterek 1600, produkowanej przez firmę "Bester" z Bielawy.
Budowa spawarki do spawania impulsowego
Podobnie jak do spawania ręcznego elektrodami otulonymi, spawarka do spawania impulsowego ma silnie opadającą wyjściową charakterystykę statyczną. Różnią się one jedynie tym, iż w czasie spawania prąd zmienia swoją wartość według wcześniej dokonanych przez użytkownika nastaw. Na rys. 2 zobrazowano przebieg prądu spawania w funkcji czasu w metodzie IMPULSTIG. Symbolem Ib oznaczono prąd bazowy (zwykle nie jest mniejszy niż 10 A), natomiast prąd impulsu symbolem Ii (maksymalnie osiąga wartość najwyższą dla danego źródła prądu spawania). Za-
t[8]
Rys. 2. Przebieg prądu spawania w funkcji czasu w metodzie IMPULSTIG
równo wartość prądu bazowego, jak i impulsu można płynnie regulować w pełnym zakresie. Czas trwania impulsu (ti) jest płynnie regulowany, tak samo reguluje się czas trwania przerwy między impulsami (tp). W spawarkach TIG i IMPUL-TIG uzyskuje się znacznie mniejsze minimalne prądy spawania niż przy spawaniu elektrodami otulonymi. Po przytoczeniu podstawowych informacji dotyczących budowy i działania spawarek do spawania ręcznego elektrodami otulonymi i metodą impulsową TIG, poniżej przedstawiam opis budowy spawarki do spawania impulsowego TIG.
Schemat blokowy
Na rys. 3 przedstawiono schemat blokowy spawarki impulsowej TIG. Transformator spawalniczy Ts pochodzi ze spawarki Besterka 1600 i zasilany jest z sieci 220 V poprzez wyłącznik Wl. Można użyć każdego innego transformatora spawalniczego, pod warunkiem że regulacja prądu spawania odbywa się za pomocą bocznika magnetycznego. Bocznik magnetyczny należy usunąć z rdzenia transformatora, gdyż funkcję regulatora prądu spawania przejmą tyrystory Tyl i Ty2, które z diodami Dl i D2 stanowią prostownik pełnookresowy dużej mocy. Użyć należy tyrystorów o prądzie przewodzenia min. 150 A i wstecznym napięciu min. 200 V. Takie same wymagania dotyczą diod Dl i D2. Elementy te należy umieścić na radiatorach chłodzonych przez wentylator. Wentylator musi również usunąć ciepło wytworzone w transformatorze spawalniczym. Diody D3 i D4 (wykorzystano mos-
Elektronika Praktyczna 12/2003
Spawarka impulsowa do spawania metoda TIG
tek prostowniczy o prądzie 25 A) załączane stykami Sl i S2 przekaźnika Pl wraz z opornikiem drutowym Rl i R2 oraz kondensatorem Cl stanowią elementy obwodu znacznie poprawiającego stabilność łuku spawalniczego.
Transformator Trl o napięciu wyjściowym 24 i 12 V służy do zasilania bloku elektroniki, elek-trozaworu gazu oraz sterowania funkcją start-stop procesu spawania. Ponieważ zarówno bezpośrednio przed jak i po zakończeniu spawania na elektrodzie wolframowej nie może występować napięcie, uzyskano to poprzez odpowiednie wy sterowanie tyrystorów. Z tego wynika, że tyrystory spełniają podwójną rolę: regulatora i wyłącznika prądu spawania. Do bieguna ujemnego prostownika mocy jest podłączony przewód prądowy palnika TIG. Palnik ma złożoną mechanicznie budowę (łatwo osiągalny jest w hurtowniach artykułów spawalniczych). Wewnątrz niego umieszcza się w specjalnej miedzianej tulei elektrodę wolframową zakończoną z jednej strony dyszą ceramiczną, a z drugiej zakręcaną obsadką z uszczelką. Do palnika doprowadzony jest wąż igelitowy do dostarczenia gazu ochronnego oraz 2-żyłowy przewód sterowniczy podłączony do mikrowyłącznika Wp umieszczonego w rękojeści palnika. Wyłącznik ten steruje włączaniem i wyłączaniem spawania poprzez przekaźnik małej mocy P2, którego cewka zasilana jest z oddzielnego uzwojenia (12 V) transformatora Trl, co wynika z konieczności galwanicznego oddzielenia obwodu sterowania od innych obwodów elektrycznych.
Do bieguna dodatniego prostownika mocy podłączony jest przewód miedziany o przekroju 32 mm2 (w izolacji gumowej), zakończony imakiem lub zaciskiem sprężynowym - podłączany jest do materiału spawanego, tzw. masy.
Gaz ochronny (argon) czerpany jest z butli poprzez reduktor gazu, który jest zaopatrzony w przepływomierz, i poprzez wąż gumowy (lub igelitowy) dostarczany do króćca zamocowanego w obudowie spawarki. Wewnątrz spawarki gaz przepływa poprzez elektroza-wór, który wyłącza się po ok. 5 s od momentu zakończenia spa-
S1P1
Rys. 3. Schemat blokowy spawarki TIG
wania. Ma to na celu ochronę gorącej jeszcze elektrody wolframowej i niezastygłego jeziorka ciekłego metalu przed utleniającym wpływem powietrza.
Blok elektroniki steruje parametrami spawarki, tj. prądem spawania i przebiegami czasowymi impulsów - jest połączony z potencjometrami umieszczonymi w płycie przedniej, którymi wpływa się na parametry spawania. Dioda LED świeci w takt występowania prądu impulsu.
Spawarki IMPULSTIG można użyć również do spawania elektrodami otulonymi. Wówczas należy zmienić palnik TIG na zwykły uchwyt spawalniczy, przełącznik rodzaju pracy Prp (rys. 4) ustawić w odpowiednim położeniu, a potencjometry wartości prądu ustawić w takim samym położeniu (eliminacja efektu pulsowania).
Na rys. 4 przedstawiono schemat elektryczny spawarki. Napięcie wtórne z transformatora Trl (po wyprostowaniu - mostek Prl)
polaryzuje bazę tranzystora Tl poprzez dzielnik napięciowy złożony z oporników R3 i R4. Tranzystory Tl i T2 tworzą obwód detektora "zera" napięcia sieci zasilającej (rys. 5). Kolektor tranzystora T2 jest podłączony do wejść układów scalonych US2 i US3, które pracują w konfiguracji generatorów monostabilnych. Każdorazowo, gdy na wejściu tych układów wystąpi zbocze opadające, to na ich wyjściach (wyprowadzenie 3) wystąpią poziomy wysokie, których czas trwania wynosi tH = 1,1 (PRl+R8)*C5 i tH = 1,1*(PR2+R1O)*C6. Uzyskano minimalny czas trwania impulsu równy 1,25 ms (rys. 6) i czas maksymalny 7,81 ms (rys. 7). W tym zakresie czasu można regulować potencjometrami PRl i PR2 czas trwania wysokiego poziomu na wyjściu generatorów US2 i US3 (zbocze opadające sygnału wyjściowego uaktywnia układ sterowania bramkami tyrystorów Tyl i Ty2), a tym samym umożliwia regulację prądu wyj-
Elektronika Praktyczna 12/2003
29
Spawarka impulsowa do spawania metoda TIG
n
Rys. 4. Schemat elektryczny spawarki
30
Elektronika Praktyczna 12/2003
Spawarka impulsowa do spawania rnetodg TIG
Rys. 5. Przebieg napięcia na wyjściu detektora zera sieci Qqqo role spełniajq tranzystory Tl iT2) -przebieg na wejściach wyzwalajq-cych układów czasowych US2 i US3
1 ł t
- - 1 Ś Ś Ś Ś -
I n .
n

i
^-1W
Rys. ó. Najkrótszy czas impulsu uzyskiwany na wyjściu generatorów monostabilnych wynosi 1,25 ms (przebieg na wyjściach układów Scalonych US2 i US3 przy minimalnym prqdzie wyjściowym spawarki)
w
1 4- ....
-----
i ^ h
l"
Rys. 7. Najdłuższy czas impulsu uzyskiwany na wyjściu generatorów monostabilnych wynosi 7,81 ms (przebieg na wyjściach układów Scalonych US2 i US3 przy maksymalnym prqdzie wyjściowym spawarki)
ściowego spawarki. Potencjometrem PRl regulowany jest prąd bazowy (Ib), natomiast potencjometrem PR2 nastawiany jest prąd impulsu (li). Sygnały wyjściowe z obwodów US2 i US3 są "negowane" (odwracane) przez tranzystory T3 iT5, których kolektory są ze sobą połączone. W oparciu o układ scalony US6 (NE 555) jest zbudowany przerzut-nik astabilny, którego zadaniem jest generowanie impulsów sterujących bezpośrednio tranzystorem T7, w którego kolektorze jest włączone uzwojenie pierwotne transformatora (Tr2) sterującego bramkami tyrystorów. Na wyjściu US6 (wyprowadzenie 3) uzyskano przebieg prostokątny o częstotliwości 1,74 kHz i o czasie trwania impulsu ok. 47 mikiosekund (rys. 8). Sterowanie bramkami tyrystorów pakietem impulsów daje gwarancję pewnego ich załączenia. Do bazy tranzystora T7 dołączone są kolektory tranzystorów T3 i T5, które spełniają rolę kluczy blokujących tranzystor T7. Uzwojenie wtórne transformatora Tr2 stanowią dwa uzwojenia galwanicznie od siebie oddzielone i dołączone między bramkę i katodę tyrystorów Tyl iTy2. Należy pamiętać, źe polaryzacja impulsu przyłożonego do bramki tyrystora jest dodatnia względem katody.
Układy scalone US4 i US5 pracują jako przerzutniki monostabil-ne w połączeniu kaskadowym zamkniętym. Oznacza to, źe opadające zbocze sygnału wyjściowego jednego z przerzutników uaktywnia wejście drugiego przerzutnika. Zależności na czas trwania impulsu (tH) są takie same, jak w przypadku układów US2 i US3. Czas trwania impulsu wyjściowego każdego z dwóch przerzutników można regulować płynnie w zakresie od 0,06 do 1 sekundy. Potencjometrem PR3 regulowany jest czas przerwy pomiędzy impulsami, natomiast potencjometrem PR4 reguluje się czas trwania impulsu prądu spawania. Dioda LED, umieszczona na płycie czołowej spawarki, świeci się podczas trwania impulsu. Elementy D6, C17 iRl7 umożliwiają pewną pracę generatora. Wyjścia układów US4 i US5 sterują bazami tranzystorów T6 i T4, które (zgodnie z nastawą czasową) klu-
i 1
I
i

] !
Rys. S. Przebieg napięcia na wyjściu układu USó
czują tranzystory T3 i T5. Styki przełącznika rodzaju pracy Prp dla trybu spawania elektrodą otuloną zwierają do masy bazę tranzystora T8, tym samym uniemożliwiaj ą c włącz eni e elekti o z a w oru gazu, a drugi zespół styków Prp załącza przekaźnik P3. W obwodzie sterowania jest wyłącznik termiczny Wt.
Stabilizator napięcia USl (U17812) zaopatrzony jest w radia-tor z blachy aluminiowej o grubości 2 mm o powierzchni ok. 8 cm2.
Transformator Tr2 wykonany jest z kształtek typu El o powierzchni kolumny środkowej równej 1 cm2. Doskonale nadają się do wykorzystania transformatory montowane w tarczowych aparatach telefonicznych (produkowanych przed laty przez RWT Radom), których karkasy przystosowane są do montażu na płytce drukowanej. Uzwojenie pierwotne należy wykonać drutem DNE 0,2 - 100 zwojów, natomiast uzwojenia wtórne mają po 70 zwojów drutem DNE 0,2. Należy zadbać także o staranne odizolowanie od siebie poszczególnych uzwojeń. Diody D9 i D10 są polaryzowane zaporowo w stosunku do polaryzacji impulsu wyjściowego transformatora Tr2. Przed montażem tych diod niezbędne staje się użycie oscyloskopu w celu określenia polaryzacji impulsu. Zaleca się stosowanie podstawek pod układy scalone US2...US6. Transformator Trl 220/24/12 V ma moc ok. 20 VA.
Montaż i uruchomienie
Duże trudności może sprawić wykonanie obudowy. Powinna być wykonana z blachy, np. stalowej, i musi być stabilna mecha-
Elektronika Praktyczna 12/2003
31
Spawarka impulsowa do spawania met od q TIG
*/ 7QV
Rys. 9. Przebieg prqdu wyjściowego spawarki (przez ó półokresów sieci zasilajqcej płynie prqd bazowy i przez ó półokresów występuje prqd impulsu)
nicznie. Można wykorzystać gotową obudowę, o wystarczająco dużej kubaturze, od spawarki do spawania ręcznego. W pierwszej kolejności należy zaplanować rozmieszczenie podzespołów największych gabarytowo, tj. transformatora spawalniczego, prostownika mocy z radiatorami i wentylatorem usuwającym powietrze z wnętrza spawarki. Należy zadbać, aby wentylator równie skutecznie schładzał prostownik mocy, jak i transformator spawalniczy. Na oporniku Rl, w przypadku spawania małymi prądami, wydziela się duża ilość ciepła Zatem należy go umieścić w strumieniu przepływu powietrza chłodzącego.
Następnie należy zamontować króćce (wejściowy i wyjściowy) gazu ochronnego. Potem powinien być montowany, jak najdalej od transformatora spawalniczego, transformator Trl. Jeśli nie jest to możliwe, należy transformator Trl ochronić ekranem z blachy stalowej o grubości 1...2 mm. Na koniec montowane są cztery potencjometry, dioda LED, gniazdo sterujące i bezpiecznikowe, wyłącznik oraz przewód sieciowy, a także przełącznik rodzaju pracy Prp. Tak rozmieszczone podzespoły należy połączyć przewodami, zaczynając od tych o największych przekrojach.
Bardzo ważne jest, aby spawarka była skutecznie zabezpieczona przed porażeniem elektrycznym użytkownika. Wszystkie przewody i podzespoły, będące pod napięciem sieci zasilającej, muszą mieć odpowiednią izolację i zostać sta-
rannie sprawdzone przed montażem oraz przed uruchomieniem.
Płytka bloku elektroniki powinna być montowana jak najdalej od transformatora spawalniczego, najlepiej w pobliżu potencjometrów regulacyjnych. Płytka z transformatorem sterującym bramkami tyrystorów oraz z układem czasowym dla elektrozaworu gazu powinna być montowana tuż przy tyrystorach. Przekaźnik Pl (typ Rl5. prod. Relpol Żary) musi być umieszczony w pobliżu prostownika mocy. Na koniec montowane są przewody o małych przekrojach. W ich pewnym zamocowaniu do wewnętrznych krawędzi obudowy skuteczny okazał się klej Super Glue.
Po sprawdzeniu prawidłowości montażu wszystkich podzespołów i okablowania można przystąpić do uruchomienia spawarki.
Przed włączeniem do sieci zasilającej należy odłączyć uzwojenie pierwotne transformatora spawalniczego. Sprawdzić, czy regulacja wszystkich funkcji spawarki jest prawidłowa. Szczególnie należy zwrócić uwagę na polaryzację im puls ów sterujących bramkami tyrystorów. W tym przypadku niezbędny jest oscyloskop i porównanie z zamieszczonymi oscylogra-mami. Po dokładnym sprawdzeniu przebiegów można podłączyć transformator spawalniczy. Sprawdzenie całości odbywa się poprzez podłączenie do wyjścia spawarki opornika o mocy co najmniej 1000 W i oporności 1 do 5 O,. Na ekranie oscyloskopu zauważymy przebieg napięcia (na oporniku) przedstawiony na rys. 9.
Po stwierdzeniu prawidłowości działania spawarki pora przystąpić do spawania. Elektrodę wolframową przygotowuje się poprzez ze szlifowanie jej końca w kształt stożka, którego wysokość wynosi od 3 do 5 średnic elektrody. Dobór średnic elektrod wolframowych zależy od prądu spawania. W przypadku opisanej spawarki wynosi od 1 do 2,5 mm.
Po podłączeniu gazu i stwierdzeniu jego wypływu z dyszy palnika, inicjuje się łuk spawalniczy poprzez umiejętne, chwilowe zwarcie z materiałem spawanym, oderwanie elektrody i "utrzymanie" łuku.
WYKAZ ELEMENTÓW
Rezystory
Rl: Ó...10 ft/40 W
R2: 2,2 to/5 W
R3...R7, R9, R11...R15, R23: 5,1 to
RS, RIO: 200 n
Rló, R1S...R20, R25, R27: 1 to
R17: 1 Mft
R21: 1,2 to
R24, R2Ó: 10 n
R22: 22 to
R2S: 27 to
PR1, PR2: potencjometr 1 to
PR3, PR4: potencjometr 22 kO.
Kondensatory
Cl: 10 liF/150 V
C2: 4,7 fiF/25 V
C3: 100 liF/35 V
C4; 100 |^F/1Ó V
C5, Có; 4,7 ^F/1ÓV
C7, CS, C13, C14, Cló; 100 nF
C9, C10: 22 ^F/50V
Cli, C12: 10 nF
Cl5: 33 nF
C17: 2,2 |^F/1Ó V
CIS: 10 liF/35 V
C19: 47 liF/35 V(dobrać)
C20: 100 nF/63 V
Półprzewodniki
Dl, D2: dioda 150 A/200 V
D3, D4: dioda 25 A/200 V lub
1/2 mostka prostowniczego
D5, DS...D12: dioda 1 A/200 V
LED: dowolny
Dó, D7, D13: dioda krzemowa,
malej mocy
Prl, Pr2, Pr3: mostek prostowniczy
1 A/200 V
T1...TÓ: BC107 lub podobne
T7, TS: TIP122 lub podone
(Darlington)
US1: UL7S12 lub podobny
(stabilizator 12 V)
US2...USÓ: NE555
Różne
Trl: transformator 220V/24V/12V
20VA
Ts, Tr2: transformator - patrz opis
Pl: przekaźnik typ R15, cewka
24V/50 Hz (trzy zestawy styków)
P2: przekaźnik - styki 1 A, cewka
24 V
P3: przekaźnik - styki 1 A, cewka
12 V
Wl: wyłqcznik 25 A/250 V
Ws: wyłqcznik 1 A/250 V
W: wentylator 220 V/50 Hz
B: bezpiecznik topikowy 1 A
EZ: elektrozawór gazu, cewka
24 V/50 Hz
Palnik TIG: typ USM-200 lub
podobny
Wp: gniazdo sterujqce
Wt: wyłqcznik termiczny,
umieszczony na uzwojeniu
transformatora spawalniczego
Prp: mikroprzełqcznik rodzaju pracy
32
Elektronika Praktyczna 12/2003
Spawarka impulsowa do spawania rnetodg TIG
Fot. 10. Przykład połqczenia pachwinowego po częściowym wytrawieniu za pomocq specjalnej pasty
Uwagi końcowe
Zagadnienia spawalnicze przedstawiłem tylko w szczątkowym zakresie, gdyż celem tego
Fot. 11. Przykład połqczenia pachwinowego po częściowym wytrawieniu za pomocq specjalnej pasty oraz częściowo wypolerowanego pastami polerskimi
artykułu jest wyłącznie opis budowy spawarki. Przemysł wytwórczy urządzeń spawalniczych dostarcza wiele różnych spawarek, często sterowanych mikroprocesorami. Dlatego zainteresowanych odsyłam do specjalistycznej literatury oraz do ukazującego się co miesiąc fachowego pisma "Przegląd Spawalnictwa" .
Trzy próbki (fot. 10...12) obrazują praktyczne możliwości opisanej spawarki. Połączenia pachwinowe wykonane zostały z użyciem materiału dodatkowego, przy czym spoina w próbce z fot. 10 i 11 została wytrawiona za pomocą specjalnej pasty (do nabycia w hurtowniach artykułów spawalniczych) oraz częściowo wypolerowana pastami polerskimi. Próbka pokazana na fot. 12 przedstawia wygląd połączenia bezpośrednio po spawaniu (bez stosowania środków chemicznych i polerowania mechanicznego).
Wszystkie trzy próbki są ze stali nierdzewnej.
Na koniec przypomnę o konieczności stosowania środków ochrony osobistej. Całe ciało podczas spawania łukowego musi być osłonięte. Dotyczy to szczególnie twarzy, którą należy osłonić odpowiednią maską spawalniczą. Ignorowanie tego zabezpieczenia grozi poważnymi następstwami dla zdrowia. Stanisław Krasicki, krasicki@ps.pl
Literatura:
Poradnik Inżyniera - Spawalnictwo, Wydawnictwa Naukowo Techniczne, tom I i II, W-wa 1983 r. doc. dr inż. Stanisław Bryś i inni.
Fot. 12. Wyglqd połqczenia bezpośrednio po spawaniu
Elektronika Praktyczna 12/2003
33
PROJEKTY
Zdalnie sterowany (DTMF) termostat, część 1
AVT-557
Opisy regulatorów
temperatury często pojawiają
się w czasopismach
elektronicznych, także EP m a
swoim kon cie kilka takich
urządzeń. Mimo tego,
a właściwie dzięki temu,
prezentujemy kolejne - jego
możliwości funkcjonalne
niemalże w 100%
odpowiadają wymaganiom
stawianym n ajczęściej
w listach od Czytelników.
Rekomendacje: w zimowe
dni zdalnie sterowany
termostat polecamy szczególnie
tym Czytelnikom, którzy lubią
rac jon alizować wydatki - jak
się przekonają, ogrzewańie
mieszkania lub domku nie
musi być wcale tak
kosztowne jak dotychczas!
Najprostszy termostat można wykonać wykorzystując rezystan-cyjny czujnik temperatury oraz komparator analogowy. Obsługa takiego termostatu nie należy do najwygodniejszych, bardzo trudne jest także jego programowanie, zwłaszcza zdalne. Termostaty wykonane na mikrokontrolerach są wprawdzie nieco droższe, ale oferują więcej funkcji i pozwalają zautomatyzować proces regulacji -chociażby poprzez ustawianie różnych temperatur dla różnych pór doby, czy zmiana dokładności nadzorowanej temperatury.
Urządzenie przedstawione w artykule wykonano na mikrokontro-lerze, dzięki czemu oferuje ono duże możliwości modyfikowania parametrów regulacji. Zakres monitorowanych temperatur wynosi O...99C, co wykracza poza wymagania stawiane typowym termostatom domowym, ale wykorzystano możliwości zastosowanego czujnika temperatury. Wartość stabilizowanej temperatury może być ustawiona z rozdzielczością 1C, a wartość zmierzonej temperatury jest wyświetlana z rozdzielczością O,1C. Dodatkowo można ustalić dokładność nadzorowania zadanej temperatury w zakresie 0,lC...2C. Ustalenie dokładności (histerezy) temperatury ma na celu z jednej strony jak najdokładniejsze jej "pilnowanie", a z drugiej zapobieganie zbyt częstym przełączaniem przekaźnika wykonawczego. Jeżeli zostanie ustawiona najlepsza dokładność - na przykład O,1C - to temperatura będzie najbardziej zbliżona do założonej, ale przekaźnik będzie przełączał się bardzo często , gdyż obni żenię temperatury otoczenia o O,1C poniżej założonej wartości spowoduje jego załączenie, a zwiększenie o O,1C spowoduje jego wyłączenie. Jak widać zmiany temperatury tylko o 0,2C powodują zmianę stanu przekaźnika. Zmianę wartości wszelkich parametrów można przeprowadzić za pomocą telefonu z dialerem DTMF. Po odpowiednim skonfigu-
rowaniu termostat może samodzielnie odebrać połączenie przychodzące i umożliwić zmianę jego parametrów.
Podczas zdalnej konfiguracji wszystkie dane na temat parametrów term o statu przekazywane są użytkownikowi w postaci komunikatów głosowych. Dzięki czemu obsługa nie sprawia trudności, gdyż o wszystkich dostępnych funkcjach jesteśmy informowani, również zmiana parametru jest potwierdzana komunikatem głosowym. Dodatkowo w czasie trwania połączenia możemy uzyskać informację o temperaturze panującej w pomieszczeniu, w którym znajduje się czujnik. Dostęp do zmiany parametrów termostatu zabezpieczony jest cztero-cyfrowym hasłem, co uniemożliwia dostęp osób niepowołanych.
Termostat może pracować w trybie automatycznym lub ręcznym. Tryb automatyczny umożliwia nadzorowanie nastawionej temperatury oraz odpowiednie sterowanie przekaźnikiem wykonawczym w zależności od wartości temperatury mierzonej i zaprogramowanej. Natomiast tryb ręczny wyłącza automatyczne nadzorowanie temperatury, a stan przekaźnika może być zmieniany za pomocą klawiatury termostatu lub w czasie obsługi zdalnej z klawiatury telefonu.
Przełączenie termostatu w tryb pracy ręcznej w połączeniu z możliwością obsługi przez telefon sprawia, że termostat może stać się przełącznikiem sterowanym telefonicznie, dzięki któremu można włączyć lub wyłączyć urządzenie podłączone do przekaźnika wykonawczego. Oprócz sterowania termostatem z klawiatury oraz ze zdalnego telefonu w trybie odbioru połączenia przychodzącego możliwe jest sterowanie przy pomocy lokalnego aparatu telefonicznego podłączonego do tej samej linii telefonicznej. Daje to możliwość sterowania termostatem na przykład z innego pomieszczenia lub telefonu bezprzewodowego bez konieczności po-
Elektronika Praktyczna 12/2003
35
Zdalnie sterowany (DTMF) termostat
noszenia kosztów związanych nawiązaniem połączenia telefonicznego.
W czasie obsługi z lokalnego telefonu procedura jest taka sama jak w przypadku obsługi zdalnej. Tak samo informację o parametrach przekazywane są w postaci głosowej, jedyną różnicą jest to, że przy takim sterowanie nie jest wymagane podanie hasła dostępu.
Opis układu
Termostat telefoniczny składa się z płytki sterownika oraz płytki wyświetlacza wraz z klawiaturą. Na rys. 1 przedstawiono schemat elektryczny sterownika. "Sercem" układu jest mikrokon-troler PIC16F876. Wyposażono go w pamięć programu o pojemności 8192 14-bito-wych słów pamięci programu, 368 bajty pamięci RAM oraz 256 bajtów nieulotnej pamięci EEPROM. Do wytworzenia sygnału zegarowego zastosowano zewnętrzny rezonator kwarcowy o częstotliwości 4 MHz.
Ponieważ komendy podczas obsługi z lokalnego lub zdalnego telefonu są wydawane za pomocą tonów DTMF, w urządzeniu niezbędne jest zastosowanie odbiornika DTMF. W tej roli pracuje układ US3. Podłączony bezpośrednio do linii telefonicznej monitoruje wszystkie pojawiające sygnały, bez względu na to, czy linia jest zajęta przez termostat, czy telefon lub nie jest w ogóle zajęta. Elementy C9, CIO, R3...R7 dopasowują poziom sygnałów pochodzących z linii telefonicznej do wartości potrzebnej do prawidłowej pracy wzmacniacza wejściowego układu US3. Jako układ odbiornika DTMF zastosowano popularny układ MT8870 pracujący z zewnętrznym rezonatorem kwarcowym o częstotliwości 3,579 MHz.
Prawidłowo odebrane tony DTMF są przekazywane na wyjście danych
Rys. 1. Schemat elektryczny termostatu sterowanego telefonicznie
36
Elektronika Praktyczna 12/2003
Zdalnie sterowany (DTMF) termostat
Podstawowe funkcje i możliwości termostatu:
- pomiar temperatury w zakresie 0C...99C z rozdzielczością 0,1C,
- nadzorowana temperatura może być ustawiona w zakresie 0C...99C z rozdzielczością 1C,
- ustawiona temperatura może być nadzorowana z programowaną dokładnością (histerezą) w zakresie 0,1 C...2C,
- wynik pomiaru temperatury oraz wartość nadzorowanej temperatury wyświetlany jednocześnie na wyświetlaczu alfanumerycznym,
- możliwe dwa tryby pracy: automatyczny oraz ręczny,
- może współpracować z linią telefoniczną (medium zdalnego sterowania),
- podczas zdalnej obstugi (za pomocą telefonu z DTMF) wszelkie informacje na temat stanu termostatu oraz dostępnych funkcji są przekazywane w postaci komunikatów głosowych,
- podczas obstugi zdalnej można uzyskać informacje o temperaturze panującej
w pomieszczeniu, w którym jest umieszczony czujnik temperatury oraz o stanie przekaźnika wykonawczego,
- przełączenie termostatu w tryb pracy ręcznej umożliwia dowolne wtaczanie i wytaczanie przekaźnika wykonawczego, dzięki czemu termostat może petnić rolę przełącznika sterowanego telefonicznie,
- możliwość zmiany liczby dzwonków, po których połączenie przychodzące zostanie odebrane przez termostat,
- możliwość wyłączenia obstugi zdalnej,
- dostęp do zdalnego programowania termostatu zabezpieczony czterocyfrowym hastem,
- możliwość sterowania przy pomocy lokalnego aparatu telefonicznego włączonego równolegle z termostatem bez dodatkowych kosztów za rozmowy telefoniczne,
- czujnik temperatury może być oddalony nawet o kilkadziesiąt metrów od płytki sterownika,
- możliwość załączania odbiorników o maksymalnej mocy 3,5 kW.
LCD 16x1 a
Ql...Q4. Po "wystawieniu" na wyjście binarnej wartości odebranego tonu na wyjściu STD układu US3 pojawia się stan wysoki informujący procesor, że został odebrany nowy kod DTMF.
Przełącznik odbiera połączenia przychodzące, musi więc być również wyposażony w detektor dzwonienia. Do wykrycia prądu dzwonienia zastosowano transoptor TSl, który wraz z elementami R18, R19, C6, C7, D2 i D3 spełnia rolę "wykrywacza" napięcia przemiennego pojawiającego się na linii telefonicznej w czasie dzwonienia. Diody D2 i D3 ograniczają tłumienie sygnałów rozmownych w czasie rozmowy. W przypadku braku diod Zenera w czasie normalnej rozmowy użyteczny sygnał byłby tłumiony przez
Rys. 2. Schemat elektryczny płytki wyświetlacza
kondensator C6, gdyż linia telefoniczna byłaby zwierana przez jego pojemność i mogłaby ograniczać pasmo rozmowne. O ile w czasie rozmowy nie jest to zbytnio kłopotliwe, o tyle praca na przykład modemu zostałaby zakłócona.
W czasie rozmowy na linii telefonicznej panuje napięcie około 10 V, więc zastosowane diody Zenera powodują blokowanie sygnałów o amplitudzie mniejszej niż 15 V, dlatego w czasie rozmowy odłączają one kondensator C6. Prąd dzwonienia o znacznie wyższej amplitudzie napięcia jest "przepuszczany". Zastosowany transoptor po stronie wejściowej składa się z dwóch diod świecących połączonych przeciwsobnie, co powoduje, że oświetlanie fototranzystora przez diody następuje w przypadku pojawienia się prądu o dowolnej polaryzacji. W zależności od polaryzacji świeci jedna z dwóch diod.
Zastosowanie transoptora dodatkowo oddziela galwanicznie mikrokontroler od linii telefonicznej . Układ całkujący zbudowany z rezystora R18 i kondensatora C7 powoduje, że detektor dzwonienia jest nieczuły na chwilowe impulsy powstające przy podnoszeniu i odkładaniu słuchawki telefonu.
Kolejnym, istotnym fragmentem urządzenia jest moduł komutacji termostatu z linią telefoniczną. W torze przesyłania dźwięków pracuje przekaźnik PKl, służący do obciążania linii telefonicznej sztucznym obciążeniem symulującym aparat telefoniczny. Przekaźnik jest włączany przy pomocy tranzystora Tl, dioda świecąca D5 (na płytce wyświetlacza) sygnalizuje, czy przekaźnik jest załączony czy też rozłączony. Mostek prostowniczy wraz z tranzystorem T2, rezystorami Rll, R12, R13 i kondensatorem C12 po dołączeniu do linii telefonicznej stanowi obciążenie dla składowej stałej sygnału i powodując obniżenie napięcia do około 10 V "zajmuje" linię telefoniczną. Jednocześnie dla sygnałów rozmownych nie wprowadzają tłumienia. Dioda Zenera D5 zabezpiecza tranzystor T2 przed zbyt wysokim napięciem pojawiającym się pomiędzy emiterem i kolektorem do wartości równej 15 V.
Linia telefoniczna jest narażona na indukowanie się wysokich napięć, dlatego został nałożony szczególny nacisk na ochronę wszystkich podzespołów przełącznika. Warystor VI wraz z rezystorami Rl i R2 pracują jako zabezpieczenie przed wysokimi napięciami, powo-
Elektronika Praktyczna 12/2003
37
Zdalnie sterowany (DTMF) termostat
.TUJ.PT2
Rys. 3. Schemat montażowy płytki sterownika
dując zwieranie linii w przypadku pojawienia się na niej napięcia przekraczającego 140 V. W tym czasie cały prąd płynie również przez rezystory Rl i R2, jeśli taki stan będzie trwał zbyt długo, to rezystory te ulegną uszkodzeniu, stanowią więc one pewnego rodzaju zabezpieczenie prądowe.
Aby zabezpieczyć wzmacniacz wyjściowy układu US2 dołączanego do linii telefonicznej, zastosowano separację galwaniczną w postaci transformatora TRI, kondensator Cl 3 eliminuje składową stałą sygnału od uzwojenia pierwotnego transformatora. Mostek prostowniczy MG2 zabezpiecza przed indukowaniem się wysokich napięć w uzwojeniu wtórnym transformatora, kondensatory C14 i C15 oddzielają składową stałą sygnału z wyjścia wzmacniacza układu US2. Takie środki ostrożności są konieczne, aby nie został uszkodzony układ US2 w wyniku przepięć często występujących szczególnie w długich liniach kablowych lub napowietrznych.
Układem najważniejszym z punktu widzenia użytkownika jest US2. Znacznie ułatwia on obsługę
przełącznika podczas zdalnej zmiany parametrów, bowiem dzięki informacjom głosowym użytkownik dokładnie wie, na jakim etapie obsługi się znaj duje. Układ ten umożliwia zapis informacji słownych o łącznym 75 sekund. Komunikaty zostają zapisane w wewnętrznej nieulotnej pamięci tego układu, następnie mogą być w dowolny sposób odtworzone. Układ ISD2575 zawiera wzmacniacz mikrofonowy, do którego został dołączony poprzez kondensatory C20 i C21 mikrofon pojemnościowy MK1. Rezystory R14...R16 i kondensator Cl 8 zasilają mikrofon. Wbudowany w układ wzmacniacz sygnału wyjściowego umożliwia bezpośrednie wysterowania głośnika, więc możliwe jest również bezpośrednie podłączenie tego wyjścia do transformatora separującego TRI, bez stosowania dodatkowego wzmacniacza.
Do pomiaru temperatury zastosowano specjalizowany układ typu DS1820. Dzięki cyfrowemu interfejsowi cała analogowa część pomiaru jest wykonywana przez ten układ, a procesor otrzymuje wartość zmierzonej temperatury w po-
IOOOOOOOOOOOOOOOOI sl Ilenrs Qf no ni
-ar narn ŚBl Hen?
Rys. 4. Schemat montażowy płytki wyświetlacza
staci cyfrowej. Komunikacja pomiędzy układem DS1820, a mikro-kontrolerem odbywa się za pomocą szeregowej jednoprzewodowej magistrali 1-Wire. Wynik pomiaru podawany jest z rozdzielczością 0,5C, lecz dzięki odczytowi rejestrów temperatury i wartości liczników oraz wykonaniu kilku operacji matematycznych, można ją zwiększyć do 0,lC. przy podanych wartościach elementów układ modelowy pracował bez problemów na skrętce telefonicznej o długości 60 metrów.
Jako układ wykonawczy załączający urządzenie grzewcze zastosowano przekaźnik PK2. Przekaźnik ten umożliwia przewodzenie prądu o maksymalnej wartości 16 A, co w konsekwencji daje moc załączaną w granicach 3,5 kW.
Do zasilania termostatu zastosowano stabilizator napięcia 5V typu LM7805. Kondensatory C1...C4 wygładzają napięcie zasilające, a dioda Dl zabezpiecza przed odwrotną polaryzacją napięcia zasilającego.
Na rys. 2 przedstawiono schemat elektryczny modułu wyświetlacza i klawiatury. Wyświetlacz alfanumeryczny wyświetla komunikaty tekstowe niezbędne podczas programowania i obsługi termostatu. Dioda D5 sygnalizuje stan linii telefonicznej, a dioda D6 stan przekaźnika wyjściowego. Aby ograniczyć liczbę połączeń pomiędzy płytką sterownika i wyświetlacza do szyny danych wyświetlacza została dołączona klawiatura, co pozwoliło na zmniejszenie o trzy liczbę potrzebnych połączeń z płytka sterownika. Rezystory R3.. ,R6 są rezystorami podciągającymi i wymuszają stan wysoki na szynie danych w czasie odczytu stanu klawiatury. W celu odczytania stanu klawiatury procesor przełącza wyprowadzenia sterujące podłączone do wyprowadzeń D4...D7 w tryb wejścia. Gdy żaden klawisz nie został naciśnięty, to procesor odczytuje same jedynki wymuszone rezystorami podciągającymi. Naciśnięcie klawisza powoduje wymuszenie zera na odpowiednim wejściu procesora. Włączone w szereg z przyciskami diody umożliwiają podawanie przez przycisk tylko masy, plus zostanie zablokowany przez te diody. Dzięki temu klawisze są
Elektronika Praktyczna 12/2003
Zdalnie sterowany (DTMF) termostat
WYKAZ ELEMENTÓW
Płytka główna Rezystory
Rl, R2: 10O
R3: lOOka
R4: 47kO
R5, R6: lOOka
R7: lOOka
R8: 300kO
R9: lka
RIO: 4,7kO
Rll: 39kO
R12: 22kO
R13: 10O
R14...R16: l,5kQ
R17: 470kO
R18: lOOka
R19: 10kO
R20:
R21: 4J
R22:
PR1: potencjometr 10ka
montażowy
Kondensatory
Cl: 1000^F/16V
C2, C3: lOOnF
C4: 100^F/16V
C5: lOOnF
C6: 220nF/250V
C7: 4,7^F/1ÓV
C8: lOOnF
C9, CIO: lOnF
Cli: lOOnF
C12: 10^F/16V
C13...C15: 1jj,F polipropylenowy
Cló, C17: lOOnF
C18: 100^F/16V
C19: ljiF polipropylenowy
C20, C21: lOOnF
C22: 4,7^F/1ÓV
C23, C24: 30pF
Półprzewodniki
Dl: 1N4007
aktywne tylko wtedy, gdy na wyprowadzeniu portu RCl pojawi się stan zero.
Jeśli na tym wyjściu jest jedynka, to diody D1...D4 nie pozwalają na przedostanie się sygnału do linii danych wyświetlacza, co zabezpiecza przed zakłóceniami spowodowanymi przez naciskanie przycisków, gdy mikrokontroler "rozmawia" z wyświetlaczem.
Montaż i uruchomienie
Montaż rozpoczynamy od płytki sterownika (schemat montażowy na rys. 3). Ze względu na duże upakowanie elementów na-
D2, D3: Dioda Zenera 15V
D4: LED 3mm czerwona
D5: Dioda Zenera 15V
D6: 1N4007
MG1, MG2: mostek prostowniczy
1A/4OOV
Tl, T3: BC547
T2: BC517
TS1: SFH620A-3
US1: PIC16F876 (zaprogramowany)
US2: ISD2575
US3: MT8870
US4: DS1813
US5: LM78O5
US6: DS1820
Różne
CONL CON3: ARK2 (5mm)
CON2, CON5: ARK3 (5mm)
CON4: goldpin 7x2 męski
PK1: przekaźnik OMRON 5V Typ
G6H
PK2: przekaźnik RM 94P-12-S
VI: warystor SIOV-S10K140
Xl: rezonator kwarcowy 4MHz
X2: rezonator kwarcowy 3,579MHz
MK1: mikrofon pojemnościowy
TRI: transformator 600/600 TR136-2
Złącze FC-14P 2 szt.
Przewód taśmowy 14 żył - 15 cm.
Płytka wyświetlacza Rezystory
RL R2: 330O R3...R6: 10kO Półprzewodniki
D1...D4: BAT43
D5: dioda LED 5mm zielona
D6: dioda LED 5mm czerwona
Różne
SW1...SW4: mikroswitch h=10mm
CONl: goldpin 7x2 męski
Wyświetlacz alfanumeryczny ló*la
leży zwrócić szczególną uwagę na poprawność montażu. Elementy montujemy poczynając od rezystorów, następnie diody oraz podstawki pod układy scalone. Gdy wlutujemy już elementy najniższe montujemy kondensatory oraz złącza, na końcu montujemy przekaźniki i transformator TRI.
Jeśli płytka sterownika została poprawnie zmontowana, przechodzimy do montażu płytki wyświetlacza (schemat montażowy na rys. 4). W pierwszej kolejności montujemy rezystory R3...R6 i diody D1...D4, następnie złącze CONl. Diody świecące D5 i D6, wyświet-
lacz oraz przyciski S Wl.. .SW4 montujemy od strony lutowania.
Po zmontowaniu obydwu płytek należy jeszcze wykonać kabel łączący płytkę sterownika z płytka wyświetlacza. Kabel ten wykonujemy przy pomocy odcinka przewodu taśmowego, 14-żyłowego o długości około 15 cm. Z obydwu końców przewód należy zakończyć złączami typu FC-14, w taki sposób, aby numery styków złącza CON4 na płytce sterownika były połączone z odpowiadającymi stykami złącza CONl na płytce wyświetlacza.
Po wlutowaniu wszystkich elementów przystępujemy do uruchomienia termostatu, w tym celu do złącza CON3 dołączamy napięcie zasilania o wartości około 12V (układy scalone wyciągnięte z podstawek) i sprawdzamy miernikiem czy napięcia na wyjściu stabilizatora i na odpowiednich wyprowadzeniach podstawek układów scalonych (według schematu) wynoszą 5 V. Jeśli napięcia odpowiadają założonym wyłączamy zasilanie i montujemy układy scalone, łączymy wykonanym wcześniej przewodem obie płytki, do złącza CON2 podłączamy czujnik temperatury US6, następnie ponownie włączamy zasilanie.
Czujnik temperatury może być oddalony od płytki sterownika nawet o nawet kilkadziesiąt metrów, do połączenia go z płytką sterownika można wykorzystać kabel telefoniczny (2x2).
Jeśli płytki przełącznika zostały zmontowane poprawnie, to po włączeniu zasilania, należy potencjometrem PRl ustawić odpowiedni kontrast wyświetlacza i na wyświetlaczu pojawi się napis (prawdopodobnie z inną wartością temperatury):
T=21.5C <*Ś 29C
Jeżeli tak nie jest, należy ponownie sprawdzić poprawność montażu. Jeśli termostat został uruchomiony poprawnie, to przechodzimy do procedury programowania.
Krzysztof Pławsiuk, EP krzysztof.plawsiuk@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: pcb.ep.com.pl oraz na płycie CD-EP12/2003B w katalogu PCB.
Elektronika Praktyczna 12/2003
39
PROJEKTY
Konwerter USB<->RS232
AVT-556
Coraz częściej mamy do
czynienia z komputerami
pozbawionymi interfejsów
RS232. Co zrobić w takiej
sytuacji? Najprościej jest
kupić przejściówkę
USB<->RS232, lecz ambitniej
samodzielnie wykonać opisaną
w ańykule.
Rekomendacje: konweńer
bardzo przydatny, a wkrótce
wręcz niezbędny
użytkownikom nowoczesnych
komputerów, którzy będą
chcieli lub musieli korzystać
z "leciwego" interfejsu RS232,
Interfejs zbudowano w oparciu
0 wyspecjalizowany układ scalony TU SB 3410. Do najważniejszych cech tego układu należą między innymi:
- pełna zgodność z interfejsem USB 2.0 (i wcześniejszymi wersjami);
- praca z prędkością 12 Mbd (tryb fuli speed)1,
- jednostka centralna układu zaprojektowana na popularnym rdzeniu 8052.
Za pomocą układu TUSB3410 można przesyłać dane z prędkością 110...921,6 kbd (w trybie IrDA do 115,2 kbd). Ramka danych może mieć od 4 do 8 bitów, bitów stopu może być: 1, 1,5 lub 2, transmisja może odbywać się z kontrolą parzystości lub bez.
Opis działania
Schemat elektryczny konwertera pokazano na rys. 1. Jest to schemat typowej aplikacji układu TUSB3410 (jego schemat blokowy pokazano na rys. 2). Sygnały D+ oraz D- (USB) doprowadzane są poprzez rezystory Rl i R2 do układu TUSB3410. Dzielnik napięcia złożony z rezystorów R4
1 R8 dostarcza napięcia o wartości 1,8 V dla układu US4. Do linii SDA oraz SCL (za pomocą zworki JPl) dołączona jest opcjonalna pamięć EEPROM (w naszym przypadku jest to 24LC64). Możemy w niej przechowywać własne wartości VID/PID/DID. Przycisk SWl jest w zasadzie nadmiarowy (ale jak się okazuje, czasami jest bardzo przydatny) i służy do zerowania układu. Elementy R7 i C21 tworzą obwód zerowania układu
po włączeniu zasilania. Konden-satoiy filtrujące C18...C20, ClO oraz C7 umieszczono blisko układu TUSB3410, przy linii zasilającej 3,3 V, natomiast C8, Cli i Cl5 przy linii zasilania 1,8 V. Układ US3 (SN75LV4737) akceptuje poziomy napięć wejściowych 0V i 5V, przy napięciu zasilania 3,3V. Układ US2 (MAX604) jest stabilizatorem o napięciu wyjściowym 3,3 V, pracującym przy niewielkiej różnicy napięć między wejściem a wyjściem (tzw. LDO -Low Drop Out). Na płytce drukowanej, wokół tego układu znajdują się dwa (po jednym z każdej strony) większe pola miedzi, mające ułatwić odprowadzenie ciepła ze stabilizatora.
Montaż i uruchomienie
Układ zmontowano na stosunkowo małej, dwustronnej płytce drukowanej, której schemat montażowy pokazano na rys. 3. Montaż najlepiej zacząć od układów US4 (TUSB3410) oraz układu US3 (SN75LV4737A). Po prawidłowym umieszczeniu elementu na jego polach lutowniczych, przylutowu-jemy skrajne wyprowadzenia i jeszcze raz sprawdzamy prawidłowość ułożenia układu na polach lutowniczych. Po tym zabiegu lutujemy pozostałe wyprowadzenia. Następnie możemy zamontować układ MAX604 (US2). W dalszej kolejności montujemy rezystory, kondensatory, a na samym końcu podstawkę pod pamięć EEPROM, rezonator kwarcowy oraz złącza USB i DB9. Po zakończeniu montażu, warto jeszcze raz sprawdzić jego poprawność, po
Elektronika Praktyczna 12/2003
41
Konwerter USB<->RS232
Rys. 1. Schemat elektryczny konwertera
42
Elektronika Praktyczna 12/2003
Konwerter USB<->RS232
12MHZ
DP.DM<- >
Oscylator 12MHZ
PLL
ROM
USB
Tranacałvar
18Kxfi RAM
* k
2Kx8 SRAM

P3(4,3,1p0)
M2CBLJS
S0LJT7IR_3OLJT
SIP^FLSIN
Rys. 2. Budowa wewnętrzna układu TUSB3410
czym możemy rozpocząć uruchamianie układu.
Do tego celu będziemy potrzebować, oczywiście oprócz komputera wyposażonego w port USB, dowolnego urządzenia ze złączem RS232, kabel USB A-B (najlepiej ekranowany) oraz sterowników,
-s^q q o ? O O O O -^
Rys. 3. Rozmieszczenie elementów na płytce drukowanej
które są dostępne na płycie CD-EP12/2003B oraz pod adresem http://www-a.ti.com/apps/ana-Iog_apps/tusb3410_uart_regis-ter.asp. W przypadku, gdy już korzystaliśmy z usług TI, wystarczy się tylko załogować, zaakceptować warunki i zacząć ściąganie sterowników (objętość pliku 2,04 MB). Jeśli jeszcze nie mieliśmy do czynienia z Texas Instruments, należy się zarejestrować, co nie powinno nam przysporzyć większych problemów. Po tej czynności możemy przystąpić do ściągnięcia odpowiednich sterowników.
Po ich rozpakowaniu i zainstalowaniu odpowiedniej wersji (dla Windows z serii 9x lub 2K), możemy podłączyć konwerter do portu USB. System powinien wykryć nasz konwerter jako UMP 3410 Unitary Dńver (rys. 4). Następnie w oknie Kreatora dodawania nowego sprzętu zaznaczamy opcję Podaj lokalizację sterownika (zaawansowane), po czym - w następ-
WYKAZ ELEMENTÓW
Rezystory
RIO: 1,5 kn 0305
R5, Ró: 1 kn 0305
R9, Rll: 10 kft 0805
R7: 15 kn 0805
R12: 32 kn 0805
Rl, R2: 33ft 0805
R8: 91 kn 0805
R4: 100 kn 0805
Kondensatory
C8, C10: lnF 0805
C9, C12...C14, Cló: l^F 0805
C15, C19: 10 nF 0805
Cl, C2: 10 ^F/1ÓV MELF1
C3, C4: 22 pF 0305
C5, Có: 33 pF 0805
C7, Cli, C18, C20: 100 nF 0805
Półprzewodniki
US1: 24LCÓ4 (opcja)
US2: MAXÓ04CSA
US3: SN75LV4737A
US4: TUSB3410 (zaprogramowany)
D2: dowolna krzemowa (np.
LL4148) Minimelf
Różne
JP1: goldpin 2x1 (opcja)
Xl: rezonator kwarcowy 12 MHz
ZL1: złqcze USB-B do druku
ZL2: zlqcze DB9, męskie, kątowe,
do druku
SW1: switch (opcja)
Rys. 4. Okno z informacją o wykryciu dołączenia konwertera do portu USB
003* U*
*^*lS*DW*|


i
h
zl
*Ś*<
Rys. 5. Okno konfigurowania konwertera wygląda tak samo jak w przypadku standardowego portu COM
Elektronika Praktyczna 12/2003
43
Konwerter USB<->RS232
nym oknie - klikamy kwadracik Określona lokalizacja i podajemy ścieżkę dostępu do sterowników, które wcześniej zainstalowaliśmy. Na zakończenie powinno być wyświetlone okienko z informacją, iż System Windows zakończył instalację nowego urządzenia sprzętowego. W ten sposób system operacyjny "widzi" nowy port: UMP3410 Serial Port (COMx),
przy czym x oznacza pierwszy wolny numer portu w chwili podłączenia interfejsu do magistrali USB. Jak widać na rys. 5, możliwe jest dowolne ustawienie parametrów portu, w tym prędkości aż do (teoretycznie, przy zastosowaniu szybszego układu interfejsu US3) 921600 b/s. Piotr Klepacz, EP piotr.klepacz@ep.com.pl
Informacje o standardzie USB można znaleźć na stronie www.usb.org.
Opracowano na podstawie mateńaiów następujących firm: Texas Instruments (www.ti.com), Maxim (www.maxim-ic.com), Microchip (www.microchip.com).
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: pcb.ep.com.pl oraz na płycie CD-EP12/2003B w katalogu PCB.
44
Elektronika Praktyczna 12/2003
PROJEKTY
Komputerowy termometr z interfejsem RS232
AVT-558
Spędzając dużo czasu
przed komputerem, często
zapomina się o otaczającym
świecie. Przedstawiony
w ańykule termometr pozwala
na kontrolę jednego
z najistotniejszych
parajnetrów otoczenia:
temperatury. Można ją śledzić
jednocześnie w dwóch
miejscach, a wynik pomiaru
jest przekazywany do
komputera poprzez poń
szeregowy, co umożliwia
wyświetlenie go na ekranie
monitora.
Rekomendacje: prosta
przystawka do komputera PC
umożliwiająca na przykład
rejestrowanie temperatury
wewnętrznej i zewnętrznej
w dłuższym okresie.
Po niewielkiej modyfikacji
może pełnić także funkcję
regulatora temperatury:
włączyć grzejnik elektryczny
lub wentylator.
Wszystkie dane wysyłane przez termometr są w kodzie ASCII, dlatego do wyświetlenia temperatury można wykorzystać dowolny program terminalowy, na przykład HyperTerminal .
Termometr pobiera niewielki prąd i dlatego do jego zasilania wykorzystano napięcie dostępne na porcie szeregowym komputera. Temperatura może być mierzona w zakresie -25...125C z rozdzielczością O,1C. Czujniki temperatury mogą być oddalone od płytki układu pomiarowego na odległość do 30 metrów.
Opis układu
Schemat elektryczny termometru przedstawiono na rys. 1. Składa się on z niewielkiej liczby el em entó w dzi ęki z a s to s o w aniu miki okoń troi er a, który komunikuje się z czujnikami temperatury i komputerem. Zastosowany mik-rokontroler PIC12F62 4 jest umieszczony w ośmionóżkowej obudowie. We wnętrzu układu znajduje się pamięć programu (Flash) o pojemności lk x 14 słów, a także 64 bajty pamięci RAM i 128 bajtów pamięci EEP-ROM oraz dwa liczniki.
Pomiar temperatury jest wykonywany za pomocą specjalizowanych układów typu DS1820. Układ DS1820 zawiera w swojej strukturze kompletny blok pomiaru temperatury i przetwarzania wyniku na postać cyfrową. Komunikacja układu DS1820 z mikio-kontiolerem odbywa się za pomocą jednoprzewodowej magistrali, co jest bardzo korzystne, gdyż procesor ma niewielką liczbę linii
I/O, a czujnik wykorzystuje tylko j e dno wy pr o w a dz enie.
Układy DS1820 umożliwiają bezpośredni odczyt temperatury z rozdzielczością 0,5C, ale udostępniają dodatkowe rejestry wykorzystywane podczas procedury pomiaru temperatury i na tej podstawie rozdzielczość pomiaru można zwiększyć do 0,lC. Zwiększenie rozdzielczości pomiarów wykonuje się przez odpowiednie operacje matematyczne na rejestrach układu DS1820 (operacje te są wykonywane przez procesor). Podłączenie czujników do dwóch wyprowadzeń procesora jest nietypowe, gdyż do jednej magistrali można podłączyć jednocześnie nawet kilkadziesiąt układów z interfejsem 1-Wire. W przedstawionym termometrze każdy układ jest podłączony do innego wyprowadzenia procesora, aby uprościć procedurę uruchamiania termometru. Podłączenie kilku układów DS1820 do jednej magistrali wymaga odczytania wcześniej numeru seryjnego każdego z nich. Jest to identyfikator konkretnego układu podłączonego do magistrali, co wiązałoby się z koniecznością ich rejestrowania. Jeśli po rejestracji czujnik zostałby wymieniony na inny egzemplarz, to konieczna byłaby jego rejestracja.
Komunikacja procesora z układem dołączonym do magistrali polega na wysłaniu na magistralę numeru seryjnego tego układu i jeśli taki będzie się znajdował, to zostanie przeprowadzona z nim wymiana danych. W tym czasie pozostałe układy są nieaktywne. Taki sposób komunikacji jest sto-
Elektronika Praktyczna 12/2003
45
Komputerowy termometr z interfejsem RS232
D1 1N4148
CON1
-w-
D2 1N414B
Q
D3 DZ5V1
C1 _ 100n
J
C2 100M
US1 PIC12F629
VCC
GP5/T1CKI/OSC1/CLKIN GP4/T1OOSC2/CLK0UT GP3TMCLJWPP
GND
GPO/CIN+/ISPDAT GP1/CIN-/ISPCLK
GPartOCKI/INTTCOUT
Rys. 1. Schemat elektryczny termometru
sowany w przypadku, gdy do magistrali jest dołączony więcej niż jeden układ. W przedstawionym termometrze również można użyć tej metody komunikacji, jednak ponieważ występują tylko dwa czujniki, zastosowane zostały dwie oddzielne magistrale. Dzięki temu rozbudowuje się procedura komunikacji jednoprzewo-dowej, ale nie ma konieczności rejestrowania dołączonych układów DS1820, gdyż przy dołączonym do magistrali tylko jednym układzie jego numer seryjny może być pomijany.
Ponieważ komunikacja z komputerem odbywa się za pomocą interfejsu RS232, dlatego należy przetworzyć poziomy napięć odpowiadające standardowi TTL (stan 0: 0...0.8 V, stan 1 (2,4...5 V)) na poziomy RS232 (stan 1: -15...-3 V, stan 0: 3...15 V). Do takiej konwersji można zastosować specjalizowany układ, na przykład MAX232, jednak z uwagi na komunikację jednostronną zastosowano prostsze rozwiązanie. Elementem przełączającym napięcie na wejściu RXD (styk 2) jest tranzystor Tl. Poziom niski jest wymuszany przez rezystor Rl dołączony do wyprowadzenia TXD (styk 3). Wyprowadzenie to jest wyjściem sygnału z komputera, ponieważ komunikacja odbywa się tylko w stronę komputera, to na wyjściu TXD (styk 3) przez cały
czas występuje niski poziom napięcia (około -10 V). Zastosowany rezystor powoduje, że na wejściu RXD(2) występuje napięcie o wartości około -5 V, co jest wystarczające do wymuszenia poziomu niskiego. Jeśli ma zostać podany poziom wysoki, to procesor załącza tranzystor, który podaje napięcie zasilania na wejście RXD (styk 2) o wartości +5 V. W ten sposób został wykonany prosty konwerter poziomów, bez rozbudowywania całego układu. Do zasilania termometru wykorzystano napięcie występujące na wyjściach RTS i DTR. Aby układ mógł pracować, program odczytujący dane z portu szeregowego musi ustawić te wyjścia na poziomie wysokim (w przypadku stosowania programu HyperTerminal poziomy te są ustawiane automatycznie po uruchomieniu programu).
Napięcie z wyjść RTS i DTR są poprzez diody Dl i D2 kierowane na wejście diody Zenera D3. Diody te zabezpieczają układ przed napięciem ujemnym występującym, gdy na wyjściach RTS i DTR występują poziomy niskie. Wydajność prądowa każdego z wyjść wynosi około 10 mA, dlatego nie ma potrzeby stosowania dodatkowego rezystora ograniczającego prąd płynący przez diodę D3. Dioda Zenera ogranicza napięcie zasilające do wartości około 5 V.
R2 2k2
US2 DS1820
R3
|2k2
Montaż i uruchomienie
Modelowy termometr zmontowano na płytce, której schemat montażowy jest przedstawiony na rys. 2. Po zmontowaniu całego układu do złącza CON2 i CON3 należy podłączyć czujniki temperatury. Czujniki są zasilane z linii transmisyjnej, dlatego do podłączenia ich z płytką wystarczą kable dwużyłowe.
Sprzężenie termometru z komputerem polega na podłączeniu go do wolnego złącza portu szeregowego i uruchomieniu aplikacji HyperTerminal. Program należy skonfigurować do pracy z prędkością 9600 bd. W tym celu należy w menu Plik->Właściwości wybrać odpowiedni port, a następnie w Kon-figuruj ustalić prędkość transmisji na 9600 bd, Po skonfigurowaniu prędkości połączenia należy ustawić czcionkę w menu Widok. Wybrana czcionka powinna być typu Courier New. Ta czcionka jest zalecana, gdyż nie dla wszystkich dostępnych rodzajów czcionek będzie prawidłowo wyświetlany znak stopni. Po skonfigurowaniu programu i nawiązaniu połączenia w oknie dialogowym będzie wyświetlana zmierzona temperatura. Pomiar jest aktualizowany co trzy sekundy. Przykładowy widok wskazywanej temperatury jest przedstawiony na rys. 3.
Osoby chcące stworzyć własne oprogramowanie dla termometru z pewnością zainteresuje format
Tab. 1. Przykład wysyłanych danych w przypadku największej i najmniejszej liczby wysłanych danych
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
OxOC I N 1 0 3 4 ? c 0 U T - 1 CNI 4 ? C
OxOC I N 4 7 ? C 0 U T 5 CNI ? c
46
Elektronika Praktyczna 12/2003
Komputerowy termometr z interfejsem RS232
Rys. 2. Rozmieszczenie elementów na płytce termometru
ramki wysyłanych danych. Liczba wysłanych danych może być różna i zależy od wartości zmierzonej temperatury. Najmniejsza liczba danych występuje dla temperatur mieszczących się w zakresie 0".9,9DC, a największa dla temperatur większych od 99,9C oraz mniejszych od -9,9C.
Transmisja rozpoczyna się znakiem kasowania linii (OxOC), na-
iltlln ł E*- w iT*rr AVpq Ś
Om Pa rot

IN 23 8 C OUT 25. A c _
Rys. 3. Widok okna programu HyperTerminal
stępnie wysyłana jest wartość temperatury zmierzonej przez czujnik pierwszy, dalej wartość temperatury zmierzonej przez czujnik drugi. W tab. 1 przedstawiono przykłady wysyłanych znaków przez termometr dla największej i najmniejszej liczby danych. Krzysztof Pławsiuk, AVT krzyszt of. plawsiuk@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: pcb.ep.com.pl oraz na płycie CD-EP12/2003B w katalogu PCB.
WYKAZ ELEMENTÓW
Rezystory
Rl:
R2, R3:
Kondensatory
Cl: lOOnF C2: 1OC^F/1ÓV C3, C4: 30pF Półprzewodniki
Dl, D2: 1N414S
D3: dioda Zenera 5,IV
Tl: BS250
US1: PIC12F629 zaprogramowany
US2, US3: DS1S20
Różne
CON1: DB9 do druku kqtowe
żeńskie
CON2, CON3: ARK2 (3,5mm)
X: rezonator kwarcowy 4MHz
Elektronika Praktyczna 12/2003
47
PROJEKTY
semi-MatrixOrbital LCD do PC, część 2
AVT-552
Moda na fantazyjną
stylizację PC-ta szybko dotarła
do naszego kraju, w związku
z czym ogromnym
powodzeniem cieszą się
wszelkie gadżety, które mogą
spowodować, że nasz
komputer staje się trendy.
W ańykule przedstawiamy
projekt układu, który chociaż
jest "gadżeciarski", to
zwiększa możliwości nadzoru
pracy PC przez użytkownika.
Rekomendacje: polecamy
wszystkim użytkownikom PC,
którzy pragną poprawić
komfoń jego użytkowania,
zwiększyć funkcjonalność
i uatrakcyjnić wygląd.
Konfiguracja LCD PC
Konfiguracji modułu wyświetlacza można dokonać za pomocą dowolnego programu terminalowego. Po jego uruchomieniu i ustawieniu parametrów transmisji na 9600/8/n/l można przystąpić do konfiguracji modułu. Jest ona bardzo prosta, a to dzięki prostemu w obsłudze menu. Aby do niego wejść należy jednocześnie nacisnąć przyciski Sl, S3 oraz S4. Menu składa się z kilku poziomów, które pokazano na rys. 6. Na rys. 7 pokazano zrzut ekranu terminala, w którym pokazane są przykłady konfiguracji. Przy wyborze w menu ustawianych parametrów należy podać cyfrę parametru, który będzie ustawiany po znaku ">" potwierdzając go klawiszem Enter. Po wyborze odpowiedniej prędkości oraz wyświetlacza LCD pojawia się przy nich gwiazdka. Podczas zapamiętywania adresu pilota RC5
MENU
Prędkość RS232 -4800 -9600 -19200
Konfiguracja LCD -16x2 -16x4 -20x2 -20x4 Adres RC5 -Koniec Rys. ó. Struktura menu sterownika
należy nacisnąć dowolny przycisk pilota a następnie klawisz Enter. Jego adres zostanie automatycznie zapisany w pamięci EEPROM. Wybrane parametry zostaną przypisane modułowi po wyjściu z trybu menu wysyłając wartość "4" potwierdzoną Enterem.
Programy współpracujące
Istnieje bardzo wiele programów czy pluginów (np. do Wi-nampa), które mogą współpracować z zaprezentowanym modułem. Mogą, choć nie muszą, bo powyższy moduł nie ma zaimple-mentowanych wszystkich poleceń jakie mają wyświetlacze Matiix OrbitaL Jest także różnica w działaniu jednego polecenia, które steruje jasnością podświetlenia zamiast poziomem kontrastu.
Rys. 7. Wykaz poleceń widoczny w oknie programu terminalowego
48
Elektronika Praktyczna 12/2003
semi-MatrixOrbital LCD do PC
ras .*h*-
Rys. S. Okno konfiguracji programu Smartie
Rys. 12. Widok zakładki Acfions
Prezentowany moduł przetestowałem z następującymi programami: Girder, Smartie, kilkoma programami współpracującymi z LCDiiver oraz pluginami do Wi-nampa. Moduł z tymi programami działał bez żadnych zastrzeżeń. Wszystkie programy oraz pluginy, które przetestowałem, są dostępne na CD-EP12/2003B. Ponieważ najbardziej rewelacyjny (oprócz wielokrotnie już opisywanego Girdera) wydał mi się program Smartie, chciałbym mu poświęcić trochę więcej uwagi.
Na rys. 8 pokazano okno
ustawień programu Smartie. ,____
Aby mógł on współpracować' z prezentowanym modułem, należy wybrać w okienku Program settings rodzaj wyświetlacza, natomiast w okienku LCD setńngs trzeba wybrać numer portu oraz prędkość transmisji danych. Ponadto, należy zaznaczyć opcje
współpracy z modułem czyli Seria/ (Matńx Orbital}. Przyciśnięcie przycisku MO settings umożliwia ustawienie kontrastu, co dla tego modułu będzie równoważne z ustawieniem jasności podświetlenia (rys. 9).
W okienku Screens setńngs są zapisywane parametry do wyświetlenia przez moduł LCD. Zaznaczenie opcji Donit scroll this linę wyłącza w danej linii wy-
Na CD-EP12/2003B publikujemy
przetestowane przez autora projektu
programy współpracujące z modułem
opisanym w artykule.
Rys. 9. Zamiast regulacji kontrastu LCD jest regulowana jasność podświetlenia
Rys. 10. Efekt przykładowej konfiguracji programu Smartie
^bM in Ś_ *.
Rys. 11. Parametry odczytywane z Winampa
świetlacza przesuwanie tekstu jeżeli nie mieści się on na ekranie LCD, natomiast zaznaczenie opcji Continue on next linę będzie powodować kontynuację wyświetlania nie mieszczącego się tekstu w następnej linii LCD.
Opcja Center text centruje tekst na wyświetlaczu LCD. Tekst napisany w liniach emulujących wybrany LCD będzie od razu wyświetlony na wyświetlaczu. Wybrane parametry są zazwyczaj poprzedzone znakiem $. Na przykład parametr $Time wyświetli aktualną godzinę, a parametr $Da-te aktualną datę. Działanie LCD z parametrami wpisanymi jak pokazano na rys. 8 widać na rys. 10. Aby wybrać parametr do wyświetlenia, należy ustawić kursor w danym wierszu wirtualnego wyświetlacza, po czym po wybraniu z bocznych zakładek parametru należy nacisnąć przycisk Insert. W jednej linii wyświetlacza można łączyć kilka parametrów jednocześnie.
Na rys. 11 pokazano parametry odczytywane z Winampa. W pierwszej linii LCD wyświetlana będzie nazwa odtwarzanego utworu,
natomiast w drugiej linii LCD będą ukazane dwa parametry dotyczące przepływności oraz częstotliwości próbkowania odtwarzanego utworu. W okienku Skip this screen if można wybrać warunek, którego spełnienie spowoduje pominięcie jego wyświetlenia. Różnie skonfigurowanych okien może być aż 20.
Program Smartie współpracuje z kilkoma programami jak Wi-namp, czy MBM 5.1, z którego pobiera informacje o temperaturze procesora, napięciach itp. Dużą zaletą progra-
___, mu Smartie jest możliwość
' odczytu stanu przycisków oraz ustawienia wielu możliwych reakcji na naciśnięte przyciski. Konfiguracja programu Smartie przebiega również prosto jak konfiguracja parametrów do wyświetlenia na LCD. Do konfiguracji funkcji, które będą wykonywane po naciśnięciu przycisku służy zakładka Actions pokazana na rys. 12. Można w niej skonfigurować nie tylko reakcję na naciśnięty przycisk, ale reakcje na dowolny inny parametr co zostanie pokazane w dalszej części artykułu. Aby ustawić warunek dla danego przycisku, należy wcześniej wybrać boczną zakładkę But-tons, w której trzeba zaznaczyć Matńx Orbital Button. Następnie należy nacisnąć przycisk dla którego chcemy skonfigurować reakcję. Kod naciśniętego przycisku powinien pojawić się w linii Button:. Następnie należy nacisnąć przycisk Insert. Po wybraniu warunku reakcji można wybrać typ reakcji w okienku Output. Ustawienie reakcji w następujący sposób: $MOButton(H}>0 then GPO-Togle(2) będzie powodować, że po każdym naciśnięciu przycisku o kodzie "H" będzie naprzemien-
Elektronika Praktyczna 12/2003
semi-MatrixOrbital LCD do PC
nie zmieniany stan uniwersalnego wyjścia 02. Warunki należy zatwierdzać przyciskiem Add, a kasować przyciskiem Delete. Na rys.
12 widać, że dodano jeszcze dwa warunki reakcji na klawisze, które powodują wybranie poprzedniego oraz następnego utworu odtwarzanego w Winampie.
Wspominałem, że reakcje mogą wywoływać nie tylko przyciski lecz dowolne inne parametry. Na rys.
13 pokazano konfigurację, w wyniku której po przyjściu więcej niż 5 listów e-mail zostanie odtworzony plik wave.wav. Jeżeli będzie potrzeba automatycznego uruchamiania programu przy starcie komputera, należy dodać odpowiedni
wpis do folderu Autostań łącznie z całą ścieżką do programu. Dodanie dodatkowego parametru -hide będzie skutkować automatycznym ukrywaniem okna programu.
Przedstawiłem tylko niektóre z bardzo dużych możliwości programu Smartie. Mam nadzieję, że przedstawione choć niewielkie informacje o Smartie pokazały co drzemie w tym programie. Ale to nie koniec, gdyż istnieje bardzo wiele innych programów obsługujących wyświetlacze LCD. Wspomnę na koniec o programach, które korzystają z LCDrivera. Jest kilkanaście programów współpracujących z tym "driverem". Są to wszelkiego rodzaju zegarki (przy-
kład pokazano na rys. 14), monitory dysków, pamięci a nawet pługi ny do Winampa, które tworzą dla nawet dwukanałowy analizator widma podobny do tego w samym Winampie. Programy korzystające z LCDrwera współpracują najlepiej z wyświetlaczami czterowierszowy-mi. Wszystkie te programy oraz kilka innych, które przetestowałem we współpracy z modułem, zamieściliśmy na CD-EP12/2003B. Marcin Wiązania, EP marcin.wiazania@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: pcb.ep.com.pl oraz na płycie CD-EP12/2003B w katalogu PCB.
50
Elektronika Praktyczna 12/2003
PROJEKTY
Konfiguracja Girdera do współpracy z odbiornikiem SIRC/RC5 (AVT-519) oraz termometrem (AVT-558)
Możliwości Girdera były
opisywane już niejednokrotnie.
Ze względu na dużą liczbę
pytań jakie otrzymujemy
w sprawie jego konfiguracji
i możliwości współpracy
z zestawami AVT do tematu
wracamy.
Rekomendacje: dla
wszystkich użytkowników
Girdera, którzy chcą
wykorzystać tkwiący w nim
ogromny potencjał, zwłaszcza
we współpracy z wiełoma
przystawkami sprzętowymi
opracowanymi w naszym
laboratorium.
V przedstawionym opisie zostały użyte nastę-puiące aplikacje, które dostępne są na stronie tvww.07rrfer/Ji oraz na CD-EP12/2003B:
1, Program Girder, wersja 3.2.9b.
2. Wiyczka Question OSD.dll. 3.WiyczkaXP_0SD.dll wersjal.3.
4. Wtyczka serial.dll wersja 3.0.15. _^m
Girder jest udostępniany bezpłatnie i można go pobrać ze strony www.girder.nl, tam także znajdują się dodatkowe pliki [plug-iny) umożliwiające rozbudowę funkcjonalną tego programu. W EP6/ 03 opisaliśmy sposób skonfigurowania Girdera do współpracy z nadajnikiem zdalnego sterowania (AVT-5104). W tym przykładzie za pomocą Girdera, po naciśnięciu odpowiedniego klawisza klawiatury, były wysyłane dane poprzez port szeregowy do nadajnika podczerwieni. Teraz przedstawimy sposób skonfigurowania Girdera do współpracy z odbiornikiem zdalnego sterowania oraz cyfrowym termometrem, z których pobierane dane będą wyświetlane na ekranie monitora. W ten sposób będzie można stworzyć nawet cyfrowy przyrząd pomiarowy i to bez znajomości żadnego języka programowania. W artykule omówimy współpracę Girdera z odbiornikiem SIRC/KC5 (AVT-519) oraz termometrem (AYT-558), jednak nic nie stoi na przeszkodzie, aby w ten sam sposób wyświetlać dane pochodzące z innych źródeł.
Obydwa wspomniane urządzenia wysyłają dane poprzez port szeregowy w postaci ciągu znaków ASCII. Dane te są formowane w ramki o różnej długości uzależnionej od parametrów odebranego kodu lub wartości temperatury. Pomimo tych różnic każda ramka ma jedną stałą cechę: pierwszym transmitowanym znakiem jest polecenie kasowania linii (OxOCh). Znak ten umożliwia rozpoznanie przez program początku transmisji. Dzięki temu na ekranie
można wyświetlić tekst z dowolnego urządzenia dołączonego do portu szeregowego, warunkiem jest jednak, aby na początku każdej transmisji został wysłany znak o wartości (OxOCh).
Do komunikacji Girdera ze światem zewnętrznym należy zastosować odpowiednią wtyczkę. Wtyczką umożliwiającą komunikację poprzez port szeregowy jest serial.dli stworzona przez Marka Fiechtnera. Wtyczkę tę należy skopiować do folderu, w którym znajduje się uprzednio zainstalowany Girder (domyślnie: C:\Pro-gram files\girder32\plugins). Następnie należy przejść do konfiguracji wymaganych parametrów portu szeregowego. W tym celu uruchamiamy Girdera i na początek, dla ułatwienia obsługi, należy zmienić język interfejsu. W tym celu wybieramy File->Settings (wygląd okna przedstawiono na rys. 1), a następnie User interface. W pozycji Language należy wybrać Polski i zatwierdzić poleceniem Appły, po tej czynności wszystkie napisy zostaną zmienione na język polski.
Następnie wybieramy opcję Wtyczki i instalujemy wtyczkę Ge-
N H [1 ^
rTdLu.^k^. .^h_ kpi'


-1 t
Rys. 1. Wyglqd okna S&ffings
Elektronika Praktyczna 12/2003
51
Konfiguracja Girdera do współpracy z odbiornikiem SIRC/RC5 oraz termometrem

WW 1010 " Ś -ifn i "r



Rys. 2. Wyglqd okna instalowania wtyczek
neric Serial Support, zaznaczając ją w oknie dialogowym (rys. 2) i zatwierdzając przyciskiem Zastosuj. Dodatkowo trzeba zaznaczyć opcję Automatycznie włącz urządzenie wejściowe. W ten sposób wtyczka została zainstalowana i można przejść do jej konfiguracji wybierając opcje Ustawienia.
Na ekranie pojawi się okno pokazane na rys. 3, w którym można wczytać plik konnguracyj-ny, wyeksportować do pliku bieżące ustawienia oraz ustawić nowe parametry dla portu szeregowego. Ponieważ jeszcze nie został stworzony plik konfiguracyjny, należy wybrać opcję New. Na ekranie pojawi się okno umożliwiające ustawienie wymaganych parametrów (rys. 4). W pozycji Name należy podać nazwę, pod którą zostaną zapisane ustawione parametry, a w pozycji Device numer portu, do którego dołączono zewnętrzne urządzenie (np. odbiór-
Rys. 3. Okno wyboru pliku
z parametrami transmisji szeregowe)
3 !Ś zj
Rys, 4. Okno konfiguracji parametrów transmisji szeregowej
nik RC5/SIRC). Prędkość transmisji danych odbiornika oraz termometru wynosi 9600 bd i taką wartość należy ustawić w pozycji Baud ratę, dodatkowo w pozycji Handshaking należy wybrać DTR/RTS power. Spowoduje to ustawienie na liniach DTR/RTS portu szeregowego Ry3i 5 stanów wysokich umożliwia- odbioru jących zasilanie dołączonego urządzenia bezpośrednio z portu. Następnie należy wybrać opcje Mes sagę Definińon->Receive. Nowe okno (rys. 5) umożliwi ustawienie sposobu przetwarzania odbieranych danych. W oknie tym należy uaktywnić opcję Character Events, następnie wybrać Yariable Length oraz ustawić wartość parametru Terminator na "0C" i uaktywnić opcje Strip Terminator. Powoduje to, że do bufora będą zapisywane dane odbierane z portu szeregowego tylko wtedy, gdy będą poprzedzone bajtem o wartości 0x0 Ch. Dodatkowo należy zaznaczyć opcję Enable Receive Timeout i ustalić wartość równą około 300 ms. Opcja ta powoduje, że strumień odbieranych danych został przerwany jeśli przerwa pomiędzy kolejnymi znakami będzie większa od 300 ms. Kolejne dane będą ignorowane, aż do momentu pojawienia się ponownie bajtu startu sygnalizującego początek nowej transmisji (w praktyce oznacza to, że ramka danych pochodząca z odbiornika RC5/SIRC lub termometru zakończyła się). Na koniec należy ustalić długość bufora odbieranych danych Message Buffer Size. Wprowadzona wartość może zawierać się w przedziale 30.. .2048, domyślnie jest równa 201. Jest ona jednak zależna od liczby bajtów wysyłanych w jednym pakiecie do komputera i może zostać zmniejszona lub zwiększona w zależności od ilości danych wysyłanych przez dołączone urządzenie. Po ustawieniu wszystkich parametrów transmisji należy zamknąć wszystkie okienka zatwierdzając wprowadzone zmiany. Tak skonfigurowany port umożliwi odbiór danych, a dodatkowo ciąg bajtów występujący po bajcie startu 0x0Ch zostanie zapisany w buforze i będzie mógł być dalej przetworzony. Parametry portu zapisywane są w czterech rejestrach:
Okno konfiguracji parametrów danych z portu szeregowego
- pldl - w tym rejestrze zapisywane są odbierane dane lub łańcuch danych,
- pld2 - rejestr określa, czy została odebrana dana, czy tylko został zmieniony stan linii wejściowej,
- pld3 - zawiera nazwę pliku konfiguracyjnego określającego parametry portu szeregowego (w przedstawionym przypadku jest Odbiornik IR),
- pld4 - zawiera nazwę używanego portu szeregowego, w naszym przypadku jest to COMl.
Do wyświetlania na ekranie monitora informacji z odbiornika RC5/SIRC i termometru wykorzystywana będzie tylko zawartość rejestru pldl.
Budowa aplikacji
Aby dane odbierane z portu szeregowego były wyświetlane na ekranie, należy tak skonfigurować Girdera, aby odpowiednio je prze-kierować. W tym celu należy stworzyć specjalną aplikację. Aplikacje i polecenia tworzy się w głównym oknie Girdera (rys. 6), po naciśnięciu prawego klawisza myszy na białym polu rozwinie się menu umożliwiające te czynność. Na początku trzeba utworzyć aplikację poleceniem Dodaj aplikację, następnie należy ją zaznaczyć, ponownie rozwinąć menu i wybrać Dodaj polecenie. Kolejnym krokiem jest dodanie Kodu zda-
Rys. 6. Okno tworzenia aplikacji (programów)
52
Elektronika Praktyczna 12/2003
Konfiguracja Girdera do współpracy z odbiornikiem SIRC/RC5 oraz termometrem
Rys. 7. Okno wczytywania Kodu zdarzenia
rżenia. Wszystkie nazwy tworzonych aplikacji i poleceń mogą być dowolnie zmieniane poprzez polecenie Zmień nazwę.
Tak zbudowany "program" będzie oczekiwał na zdarzenie zapisane w Kodzie zdarzenia i wykona polecenie zapisane w Polecenie. W typowych zastosowaniach Kod zdarzenia odpowiada jednemu konkretnemu zdarzeniu, na przykład naciśnięciu klawisza klawiatury lub odbioru z portu szeregowego konkretnego bajtu. Przy współpracy ze wspomnianymi: termometrem lub odbiornikiem RC5/SIRC, kodem zdarzenia nie jest konkretna wartość odbieranych danych, bo są one zmienne i trzeba by było wczytać ten kod dla każdej możliwej wartości, dlatego kod ten trzeba wczytać w inny sposób. Aby go wczytać należy zaznaczyć opcję Kod zdarzenia, następnie z menu (obok klawisza Wczytaj kod) wybrać opcję Zdarzenie Girdera, następnie nacisnąć przycisk Wczytaj kod. W wyniku tych zabiegów zostanie otwarte nowe okno, w którym znajdują się dwie opcje do wyboru (rys. 7). Z pierwszego menu należy wybrać On Event, natomiast z drugiego Generic Se-
Rys. S. Okno ustawień sposobu wyświetlania Prosie OSD
rial Support i zatwierdzić przyciskiem Wybierz. Po tych czynnościach polecenie Wyświetl będzie wykonywane po odebraniu dowolnych danych z portu szeregowego (dane, które spełnią warunek postawiony przy konfiguracji wtyczki Generic Serial Support). W ten sposób odebrane dane można dowolnie przetwarzać. W przedstawionym przykładzie dane te będą wyświetlanie na ekranie monitora, dlatego należy wywołać odpowiednią funkcję realizująca to zadanie. Stworzoną aplikację należy zapisać, na przykład jako plik Termometr .GML, aby ustawione parametry mogły być wczytywane przy każdorazowym uruchomieniu Girdera.
Wyświetlanie danych na ekranie
Wyświetlanie komunikatów na ekranie monitora można wykonać na kilka sposobów. Pierwszym z nich jest standardowa funkcja Girdera - Proste OSD. Umożliwia ona wyświetlanie komunikatów w dowolnym miejscu ekranu (określonym współrzędnymi), wykorzystując do tego celu czcionkę o wybranej wielkości i kolorze. Wyboru parametrów wyświetlania dokonuje się w menu Ustawienia->Ustawienia OSD (rys. 8). Wyświetlany tekst, w zależności od potrzeb może zostać umieszczony w ramce, na wybranym kolorze tła lub bez ramki i tła. Po ustawieniu parametrów OSD należy pobrać z bufora dane odebrane poprzez port szeregowy i je wyświetlić. W tym celu należy w głównym oknie Girdera zaznaczyć polecenie Wyświetl, następnie jako obiekt działania tego polecenia należy wybrać Girder (rys. 9). Następnie z menu trzeba wybrać opcję Proste OSD. W oknie Ikona/Urządz. należy wpisać tekst, który będzie wyświetlony na ekranie. Ponieważ w przykładzie wyświetlona musi zostać zawartość rejestru zawierającego dane odebrane poprzez port szeregowy, w oknie tym wpisujemy nazwę tego rejestru w nawiasie kwadratowym. W ten sposób Girder nie będzie wyświetlał wpisanej nazwy, ale zawartość rejestru o podanej nazwie. W tym miejscu można także wpisać dodatkowe rejestry: pld2, pld3, pld4, które zawierają informację o parametrach portu
"gM*r^'"J"-
Rys. 9. Okno konfiguracji wyświetlania danych poprzez Proste OSD
szeregowego. Oprócz rejestrów można wpisać dowolny tekst, który zostanie wyświetlony, na przykład obok wartości temperatury. Przykładowy sposób wyświetlania temperatury pokazano na rys. 10.
Opisany sposób wyświetlania komunikatów ma tę wadę, że informacja jest widoczna do momentu kliknięcia na niej myszką. W przypadku termometru napis jest aktualizowany po każdym pomiarze (co trzy sekundy). Jeżeli wyświetlany komunikat nie musi być wyświetlany ciągle, a tylko przez jakiś czas - na przykład po odebraniu kodu z nadajnika zdalnego sterowania - można zmienić sposób wyświetlania, aby po podanym czasie od zdarzenia wyświetlany napis automatycznie znikał. W tym celu należy zaznaczyć polecenie Wyświetl, a z menu Polecenia wybrać opcję Ustaw Timeout OSD. Po tej czynności pojawi się okno przedstawione na rys. 11, w którym należy podać czas wyświetlania komunikatu w milisekundach.
Inne możliwości wyświetlania danych na ekranie zapewnia wtyczka o nazwie Quesńon OSD, którą należy skopiować do folderu
Rys. 10. Przykład wyświetlania temperatury
a
Rys. 11. Okno ustawiania czasu wyświetlania komunikatu
Elektronika Praktyczna 12/2003
53
Konfiguracja Girdera do współpracy z odbiornikiem SIRC/RC5 oraz termometrem

1 Ś
LU 1
sssi i
Rys. 12. Okno konfiguracji wyświetlania komunikatów przy pomocy wtyczki Ouesiion OSD
wtyczek i zainstalować (analogicznie jak instalacja wtyczki serial.dli). Następnie w głównym oknie Girdera należy zmienić parametry polecenia Wyświetl. Teraz jako obiekt działania należy wybrać wtyczkę Quesńon OSD, wybierając myszką Wtyczki->Quesńon OSD (rys. 12). Dalej należy ustawić parametry tej wtyczki, wybierając przycisk Ustawienia. W nowo otwartym oknie należy wpisać numer wyświetlanego rejestru, w Timeout czas wyświetlania komunikatu w milisekundach, a w pozycji Akcja należy wybrać OpenOSD. Wpisane parametry należy zatwierdzić przyciskiem OK. Po tych czynnościach format wyświetlania będzie zależny od ustawień Proste OSD, natomiast sposób wyświetlania będzie kontrolowany przez wtyczkę Question OSD.
Większe możliwości doboru sposobu wyświetlania posiada

Samplt OSD ftisplay Settings
J__II
Rys. 13. Okno konfiguracji wyświetlania komunikatów za pomocq wtyczki XP_OSD
wtyczka o nazwie XP_OSD. Jej instalacja przebiega w taki sam sposób, jak wtyczki Question OSD, także przypisanie komendy Wyświetl wykonuje się analogicznie. Po wybraniu opcji Ustawienia dla wtyczki XP_OSD pojawi się okno konfiguracyjne przedstawione na rys. 13.
W oknie OSD Text należy wpisać numer rejestru zawierającego dane do wyświetlenia [pldl). Sposób prezentowania komunikatów jest ustalany indywidualnie i można ustawić czas wyświetlania komunikatu, rodzaj oraz wielkość czcionki, napis może być wyświetlany na wybranym kolorze tła lub bez tła. Przy współpracy z termometrem w opcjach Display Duration najlepiej jest wybrać In-finity, wtedy mierzona temperatura będzie wyświetlana przez cały czas, natomiast dla odbiornika RC5/SIRC wygodniejsze będzie użycie opcji Timeout i ustawienie czasu wyświetlania odebranego kodu z nadajnika zdalnego sterowania. W ten sposób po odebraniu kodu z pilota jego wartość zostanie wyświetlona przez ustawiony czas, a następnie zniknie.
Dodatkowo w oknie tym można ustawić przezroczystość wyświetlanego komunikatu oraz przejść do ustawień rodzaju i wymiarów czcionki. W oknie Si-ze&Posińon (rys. 14) można ustalić rozmiar okna wyświetlanych komunikatów oraz ich pozycję na ekranie. Pozycje można ustalić na trzy sposoby:
- wybierając z menu jedną ze skrajnych pozycji ekranu lub jego środek,
- poprzez podanie współrzędnych na osiach X i Y,
- trzeci sposób pozycjonuje miejsce wyświetlania poprzez przeciągnięcie myszką okna komunikatu w żądane miejsce ekranu. W okienku Background Ima-ge można wskazać plik obrazu, który będzie tłem wyświetlanych komunikatów. Okno Ani-mation umożliwia natomiast ustalenie efektów przy otwieraniu i zamykaniu okna wyświet-1 any ch komunika to w, kom uni -kat może być wyświetlony poprzez, na przykład powolne zmniejszanie przezroczystości czy rozwijanie i zwijanie okna komunikatu.
*-^_J **- I ** \ mH
Rys. 14. Pozycjonowanie wyświetlanych komunikatów przez wtyczkę XP_OSD
fk*T
it #*!>*Ś mt
Rys. 15. Okno konfiguracji parametrów startowych Girdera
Po ustawieniu parametrów wyświetlania komunikatów należy ustawić parametry startowe Girdera. W tym celu należy wybrać z menu PIik->Ustawienia->Ogólny i ustawić odpowiednie parametry pokazane na rys. 15. Jako ścieżkę dostępu do pliku Termometr.GML należy podać lokalizacje pliku zapisanego podczas tworzenia aplikacji, w ten sposób po uruchomieniu Girdera odpowiednie ustawienia zostaną wczytane automatycznie.
Krzysztof Pławsiuk, EP krzysztof.plawsiuk@ep.com.pl
Uwaga! Poprawność działania programu Girder w opisanej konfiguracji została sprawdzona w systemie Windows 98 oraz XP. Jednakże wyświetlanie komunikatów za pomocą wtyczki XP_0SD w systemie Windows 98 ma ograniczenia, gdyż niedostępne są funkcje związane z wyświetlaniem przeźroczystych komunikatów.
54
Elektronika Praktyczna 12/2003
PODZESPOŁY
W W
nie zawsze znaczy to samo
Zaczniemy od banału: technika mikroprocesorowa opanowała już niemal wszystkie dziedziny życia. Banał drugi: zdecydowana większość elektroników ma na swoim koncie choćby najprostsze opracowania mikroprocesorowe. Banał trzeci: większość z nich (nas) zna tylko jedną lub co najwyżej dwie ich rodziny, sądząc przy tym często, że ich budowa jest zgodna z powszechnie obowiązującymi zwyczajami i stanowi niepodważalny standard. Na koniec wstępu nie-banał: różnorodność dostępnych na rynku rozwiązań i pomysłowość ich konstruktorów są doprawdy imponujące, co powoduje, że współczesny konstruktor nie powinien pozwolić sobie na marazm i tkwienie w ciepłej "dolince" przyzwyczajeń. Postaramy się nieco w tym pomóc.
Von Neumann vs Harvard
W historycznie najstarszych protoplastach współczesnych komputerów, opartych głównie na technologii przekaźnikowej, stosowana była najbardziej oczywista koncepcja architektoniczna, w której przetwarzane dane oraz ciąg rozkazów - tworzący program - były rozdzielone i przechowywane na odrębnych nośnikach informacji. Przykładowo w najbardziej dojrzałej konstrukcji Niemca Konrada Zusego (fot. 1) V4 [Versuchsmodeli 4) z 1945 roku program był umieszczony na perforowanej taśmie filmowej (ze względu na jej większą trwałość mechaniczną niż taśmy papierowej) i z niej kolejno były wczytywane i wykonywane instrukcje. Miejscem przechowywania przetwarzanych danych były 1024 rejestry przekaźniko-
Elektronika Praktyczna 12/2003
55
PODZESPOŁY
Fot. 1. Konrad Zuse przy jednym ze swoich komputerów
we o długości 32 bitów każdy. Maszyna Zusego po wielu wojennych i powojennych perypetiach już jako Z4 (fot. 2) trafiła do Szwajcarii, gdzie ją z powodzeniem eksploatowano aż do lat sześćdziesiątych.
Rozwiązania konstrukcyjne zastosowanego przez Zusego były efektywne tylko w powolnych urządzeniach przekaźnikowych, w których czas realizacji rozkazu był porównywalny, czy też nawet dłuższy, od czasu wczytywania go z mechanicznego nośnika. W najbardziej znanym i pierwszym w USA komputerze przekaźnikowym MARKI, zbudowanym na Uniwersytecie Harvarda i oddanym do eksploatacji w 1944 roku, czas wykonania dodawania
2 liczb wynosił jedną trzecią sekundy, a dzielenia aż
10 sekund. Mimo tego MARKI był przez wiele lat bardzo intensywnie wykorzystywany, głównie w amerykańskim programie atomowym, pracując często po 24 godziny na dobę. Rozwiązania konstrukcyjne stosowane w maszynach przekaźnikowych były pierwowzorem współczesnego modelu architektonicznego, w którym pamięci programu i danych są rozdzielone fizycznie (czyli mają oddzielne magistrale i/lub sygnały sterujące) oraz logicznie (obsługiwane są różnymi instrukcjami). O tego typu komputerach czy mikrokon-trolerach mówi się, że mają architekturę harwardzką, wszakże tylko wtedy, gdy
Pmlfć progninu {auyfcl*
ROM li* FLASH)
Xl----------------------------
Słnwpwnlfd programu (Instnitajł) [-._
Sygnał _y\ pamlpcl programu
Xl----------------
Camlna (CPU)
-IX
p*nł (opłmndy)
V
fxr
3ygn*V >ttrowani i pwnlffd danych r-,
---------\s
Rys. 3. Schemat blokowy komputera o architekturze harwardzkiej
ra zaproponował genialny matematyk amerykański pochodzenia węgierskiego, John von Neumann. W maszynie von Neumanna zarówno program, jak i dane umieszczone są w jednej tylko, wspólnej pamięci. Te dwa rodzaje informacji stają się wobec tego fizycznie nierozróżnialne, a ich identyfikacja następuje jedynie poprzez miejsce, w którym
Klasyczne architektury komputerów
Komputery, w których pamięci programu
i danych są rozdzielone fizycznie (czyli mają
oddzielne magistrale i/lub sygnały sterujące)
oraz logicznie (obsługiwane są różnymi
instrukcjami) są nazywane komputerami
o architekturze harvardzkiej.
Z kolei architektura von Neumanna
charakteryzuje się tym, że zarówno program,
jak i dane umieszczone są w jednej, wspólnej
pamięci.
z obu pamięciami możliwa jest równoczesna komunikacja. Koncepcja taka jest obecnie często spotykana, chociaż, poza niewątpliwymi zaletami, wykazuje także pewna wady.
W 1945 roku zupełnie nowatorską strukturę kompute-
we wspólnej pamięci są umieszczone, a więc przez adres. W początkowym okresie idea von Neumanna była dość trudna realizacyjnie, wymagając znacznej pojemności pamięci, nieco później jednak dzięki swoim niewątpliwym zaletom opanowała na wiele lat technikę komputerową. Tym niemniej od kilku lat daje się zaobserwować dość wyraźne odejście od klasycznej wersji koncepcji von Neumanna oraz zwrot w kierunku architektury harwardzkiej.
Jakie są wobec tego najważniejsze cechy każdego z rozwiązań?
Fot. 2. Komputer Z4
Von Neumann
- Program może być umieszczony (i uruchomiony) w dowolnym obszarze pamięci, także
z założenia przeznaczonym dla danych. Pozwala to na dynamiczną ("w biegu") wymianę fragmentów programu podczas normalnej pracy komputera, łatwe jest też uruchamianie i testowanie nowych programów. Nie ma ograniczenia na objętość każdego z bloków pamięci, istnieje tylko ograniczenie globalne wynikające z całkowitej pojemności pamięci. W tej samej pamięci można albo umieścić większy program, operujący na niewielkiej liczbie danych, albo też mniejszy program i dużo danych.
- Stałe programowe (np. tablica z generatorem znaków alfanumerycznych, definiującym kształt znaków na wyświetlaczu) mogą być bez żadnych problemów umieszczane i odczytywane (a także czasami modyfikowane) z pamięci programu przy wykorzystaniu standardowych rozkazów.
- W najbardziej klasycznej formie rejestry obsługujące urządzenia wejścia/wyjścia mogą być traktowane jak normalne komórki pamięci, z pełną dostępnością wszystkich rozkazów i trybów adresowania jednostki centralnej.
- Budowa systemu, z pojedynczymi magistralami
Rys. 4. Schemat blokowy komputera o architekturze von Neumanna
Elektronika Praktyczna 12/2003
PODZESPOŁY
obsługującymi obie pamięci, staje się zdecydowanie prostsza, a układy scalone mają mniej wyprowadzeń.
- Wykonanie pojedynczego rozkazu wymaga zwykle wykonania kilku operacji na pamięci.
Harvard
- Długości słowa pamięci programu i danych mogą być i zazwyczaj bywają różne - np. dane są 8-bi-towe, a słowo pamięci programu 16-bitowe.
- Istnieje potencjalna możliwość równoczesnej komunikacji jednostki centralnej z obu pamięciami.
To właśnie ta ostatnia zaleta nabiera ostatnio decydującego znaczenia. Jeżeli konstrukcja jednostki centralnej pozwala na odczyt nowego rozkazu z pamięci programu jeszcze podczas transferu operandów niezbędnego dla realizacji poprzedniej instrukcji, wykonanie programu jest zdecydowanie szybsze, szczególnie, gdy kompletny rozkaz mieści się w pojedynczym słowie pamięci. Wada związana z niemożnością przechowywania stałych i tablic w pamięci programu bywa eliminowana przez wprowadzenie specjalnych rozkazów przenoszenia danych, operujących na pamięci programu.
W praktyce często spotykane są architektury mieszane, niebędące żadną z poprzednich w stanie "czystym". Typowym przykładem jest mikro kontroler 8051.
Maszyny jedno-,
dwu- oraz
trzy adresowe i tryby
adresowania
Każdy rozkaz komputera musi zawierać kompletny zestaw informacji pozwalający na jego poprawną interpretację i wykonanie. Informacje te dzieli się na dwie zasadnicze części: część operacyjną i część adresową. Jak sama nazwa
wskazuje, część operacyjna określa rodzaj operacji, jaką ma dany rozkaz wykonać (np. dodanie dwóch argumentów albo przesłanie zawartości jednej z komórek pamięci do innej). Liczba stosowanych w praktyce operacji nie jest zbyt duża, rzędu kilkudziesięciu, i bez problemów da się zakodować na niewielkiej liczbie bitów. Pojedynczy bajt, czyli uporządkowanych 8 bitów, wystarcza zazwyczaj z zapasem. Rozkazy działają jednak na jakichś argumentach i w wyniku ich realizacji powstają wyniki (argumenty i wyniki noszą nazwę operandów). Wieloargu-mentowe operacje zawsze można sprowadzić do ciągu operacji co najwyżej dwuar-gumentowych, dlatego, ze względu na dążność do maksymalnej prostoty przy zachowaniu dostatecznej uniwersalności, niezmiernie rzadko (ale jednak) spotykane są instrukcje operujące na liczbie argumentów większej od dwóch. Tak więc w najbardziej ogólnym przypadku rozkaz powinien zawierać kod operacji KO (rys. 5) oraz adresy wszystkich operandów, a zatem adres pierwszego argumentu ASl, adres drugiego argumentu AS2 oraz adres komórki pamięci, do której należy wysłać wynik AD.
Takie maszyny nazywane są trzyadresowymi. Nawiasem mówiąc, istnieje jeszcze bardziej ogólna struktura rozkazu, zawierająca kolejne pole adresowe: adres komórki pamięci programu, z której ma zostać pobrany i wykonany następny rozkaz. Koncepcja taka należy na razie do egzotycznych. Powszechnie są stosowane raczej znacznie prostsze maszyny sekwencyjne, a więc takie, w których na-
KO ASl AS2 AD
Rys. 5. Format rozkazu trzy adresowego i jego pola informacyjne
Elektronika Praktyczna 12/2003
57
PODZESPOŁY
stępny w kolejności realizacji rozkaz pobierany jest po prostu z następnej komórki pamięci programu - dodatkowy adres staje się wtedy zbędny (wyjątek stanowią tylko specjalne rozkazy skoków). Warto jednak zauważyć, że w systemach wielo-procesorowych odejście od sekwencyjności pozwala na wyraźne poprawienie efektywności realizacji całego programu, jednakże kosztem zdecydowanego powiększenia trudności w tworzeniu oprogramowania. Maszyny trzyadresowe pozwalają na uzyskanie zwartego programu, w szczególności niemal zbędne staje się stosowanie instrukcji przenoszenia danych. Wykazują jednak istotną wadę - część adresowa staje się bardzo długa, rozkaz zajmuje w pamięci dużo miejsca, a jego skompletowanie i wykonanie pochłania sporo czasu. Wyjaśnić to może przykład prostego hipotetycznego mikroprocesora trzy adres owego, o 8-bitowym słowie pamięciowym i 16-bitowym adresie. Pojedynczy rozkaz dwuargumentowy musi składać się z 7 bajtów (1 bajt to kod operacji, a 6 bajtów to 3 adresy), jego pobranie wymaga zatem 7 dostępów do pamięci. Do jego wykonania jest jeszcze konieczny odczyt 2 argumentów oraz zapis wyniku do pamięci, czyli dodatkowe 3 cykle komunikacji z pamięcią - razem aż 10. Z tego powodu maszyny 3-adresowe spotykane są bardzo rzadko wśród prostych mikroprocesorów, stanowią natomiast naturalne rozwiązane w dużych maszynach, w których cały, długi rozkaz mieści się w jednym lub co najwyżej 2 słowach pamięciowych.
Aby skrócić część adresową, można zmniejszyć liczbę pól adresowych, ograniczyć w jakiś sposób ich długość albo też zastosować oba rozwiązania równocześnie. Najprościej usunąć
trzeci adres (wyniku). W rezultacie wynik jest transferowany do domyślnego, z góry określonego miejsca. Najczęściej jest wpisywany w miejsce jednego z argumentów powodując tym samym jego zniszczenie. Zwyczajowo jest to pierwszy z argumentów, ale spotykane są też rozwiązania, w których argument zastępowany wynikiem można wybierać. W takiej sytuacji poza kodem operacji i dwoma adresami argumentów w rozkazie musi pojawić się ta dodatkowa infor-
Usunięcie kolejnego pola adresowego z rozkazu prowadzi do maszyny jednoad-resowej, w której w rozkazie wskazać można tylko jeden z argumentów operacji. Zarówno drugi argument jak i wynik muszą być adresowane w sposób domyślny (implikowany). W tym celu wprowadza się specjalny, wyróżniony rejestr związany z jednostką arytmetyczno-logiczną, zwany akumulatorem, który zawiera drugi argument operacji i do którego wpisywany jest wynik po jej wyko-
Symetria i ortogonalność jednostki centralnej
Przez symetrię rozumiane jest równouprawnienie wszystkich rejestrów jednostki centralnej i ich dostępność dla wszystkich
funkcji.
Ortogonalność to dostępność wszystkich
zaimplementowanych w danej jednostce
centralnej trybów adresowania we wszystkich
instrukcjach i dla wszystkich operandów.
macja, nazywana modyfikatorem adresu. Ogólnie rzecz ujmując, modyfikator adresu determinuje sposób interpretacji przez jednostkę centralną części adresowej rozkazu. Maszyny dwuadre-sowe pod względem funkcjonalnym są niemal równoważne trzyadresowym, przy wyraźnie krótszej części adresowej. Jest to obecnie najczęściej stosowane rozwiązanie w mikroprocesorach i mikrokontrolerach średniej, ale jednak nie najwyższej klasy.
naniu. Długość rozkazu ulega radykalnemu skróceniu, ale w programie poza rozkazami związanymi bezpośrednio z realizacją algorytmu obliczeń pojawiają się bardzo liczne rozkazy transferu operandów pomiędzy akumulatorem i pamięcią. Powoduje to wzrost stopnia komplikacji programu, powiększa jego rozmiar i wydłuża czas wykonania, a intensywnie wykorzystywany akumulator tworzy wąskie "gardło". Maszyny jednoadresowe
Kod operacji Część adresowa (N)
Operand
mają jednak przy tym niezaprzeczalną zaletę - są bardzo proste, a przez to i tanie. Pewną, dość wyraźną poprawę funkcjonalności można uzyskać, jeżeli istnieje możliwość wyboru umieszczania wyniku albo w akumulatorze, albo
w miejscu adresowanego argumentu. Takie mikroprocesory nazywane bywają półtoraadr es owymi. Przykładem mogą być tu mikro-kontrolery PIC. Z kolei dość typowym przykładem mikrokontrolera jednoadre-sowego z nieznacznym odchyleniem w stronę półtoraadr esowoś ci jest '51.
Inną możliwość ograniczenia długości części adresowej rozkazu stwarza skracanie pól adresowych, przy zachowaniu oczywistej zasady jednoznacznego wskazywania położenia operandu w pamięci. Osiąga się to poprzez stosowanie różnych trybów adresowania.
Najbardziej oczywistym trybem adresowania jest adresowanie bezpośrednie (rys. 6), w którym pole adresowe rozkazu zawiera po prostu adres operandu. Jedną z wad tego trybu, poza długością pola adresowego, jest fakt, że adres ten jest stały i nie można go w programie zmieniać (nie może być zatem wyliczany). Jeżeli - przykładowo - należy zwiększyć o jeden zawartość 100 kolejnych komórek pamięci, to w takim trybie adresowania należy w programie 100-krotnie umieścić instrukcję inkrementa-
Kod operacji Część adresowa Rozkaz
Rejestr adresowania pośredniego
Adres pamięci -
Operand
N+1
N
N-1
Adres pamięci
Rys. 6. Adresowanie bezpośrednie Rys. 7. Adresowanie pośrednie
58
Elektronika Praktyczna 12/2003
PODZESPOŁY
cji, za każdym razem operującą na innym adresie. Aż się prosi, aby pojedynczą instrukcję powtarzać w pętli 100 razy, zmieniając przy tym wraz z kolejnymi obiegami pętli adres argumentu. Czas wykonania takiego fragmentu programu co prawda się nie zmniejszy (a nawet wyraźnie powiększy), ale program będzie zawierał tylko kilka instrukcji zamiast stu.
Wyliczanie adresu ope-randu umożliwia adresowanie pośrednie (rys. 7), w którym pole adresowe rozkazu nie zawiera bezpośrednio adresu operandu, a jest jedynie pośrednim wskaźnikiem miejsca,
w którym tego adresu należy poszukiwać (jest to więc jakby adres adresu). Miejscem tym może być pamięć (rzadziej, raczej w rozwiązaniach wyższej klasy) albo wyróżniony rejestr jednostki centralnej. W tym ostatnim, dominującym w prostych mikroprocesorach przypadku, uzyskuje się przy okazji radykalne zmniejszenie długości pola adresowego, bo rejestrów służących do adresowania pośredniego jest zazwyczaj niewiele i do ich rozróżnienia wystarcza kilka bitów. W mikrokontrolerach '51 do
adresowania pośredniego 8-bitowego służą wyłącznie rejestry R0 i Rl (pole adresowe skraca się zatem do jednego bitu), a do adresowania 16-bitowego przeznaczono tylko jeden rejestr DPTR (pole adresowe w ogóle znika, ale pozostaje oczywiście modyfikator adresu!). W PIC-ach do adresowania pośredniego przeznaczono tylko jeden rejestr-fantom. W AVR-ach są to trzy pary rejestrów X, Y, Z. W MSP430 każdy z rejestrów może być wskaźnikiem adresowym. Z punktu widzenia programisty im więcej istnieje rejestrów do adresowania pośredniego , tym lepiej. Z punktu widzenia konstruktora mikroprocesora jest dokładnie odwrotnie.
Adresowanie pośrednie znalazło bardzo szerokie zastosowanie w technice komputerowej i ma liczne odmiany. Może też być łączone z innymi trybami adresowania, w szczególności względnym. Zaletą - poza możliwością wyliczania adresu - jest krótkie pole adresowe rozkazu. Jeżeli rejestry adresowe mają wystarczającą długość, to możliwe jest zaadresowanie dowolnej komórki pamięci. Wadą jest to, że do rejestru należy
Elektronika Praktyczna 12/2003
59
PODZESPOŁY
Rozkaz Kod operacji Przesuniecie (d)
;
Adres odniesienia AR ;
N+1
Rejestr adresu odniesienia r Operand N

/ / N-1
\ Sumator / d !
N=AR+d ' h i

AR

|
!
2
1
0
Adres pamięci
Rys. 8. Adresowanie względne
wcześniej wpisać docelowy adres, a więc często potrzebna jest do tego dodatkowa instrukcja, a czasem nawet dwie. Najbardziej efektywne staje się adresowanie pośrednie przy wielokrotnie powtarzanym dostępie do kolejnych komórek pamięci, np. przy pracy z danymi mającymi postać tablic, szczególnie wtedy, gdy istnieje możliwość automatycznej inkrementacji bądź dekrementacji rejestru adresowego (co jest technicznie stosunkowo proste). Ilustruje to prosty program dla mikro kontroler a '52, wstępnie zerujący wszystkie komórki pamięci:
mov RO,#255 clr A zeruj: mov @R0,A
djnz RO, zeruj
Obsługa stosu też jest przykładem specyficznego rodzaju adresowania pośredniego, w którym rejestrem adresowym jest wskaźnik stosu, a każdy zapis czy też odczyt związany jest z jego automatyczną inkrementacją bądź dekrementacją.
Istnieją liczne odmiany adresowania pośredniego, które nie będą tu bliżej omawiane - indeksowe, bazowe, indeks owo-bazo we, stronicowe, cykliczne (cyr-kulacyjne) i inne.
Kolejnym, ważnym trybem jest adresowanie względne (relatywne) - rys. 8. W tym trybie pole adresowe nie zawiera adresu operandu, ale jego przesunięcie [displacement, d)
względem jakiegoś adresu bazowego. Innymi słowy, w trybie takim w polu adresowym nie ma informacji, że operand jest zawarty w komórce pamięci o przykładowym adresie 2345, jest natomiast informacja, że operand jest umieszczony w komórce o adresie o 123 większym od adresu odniesienia. Adresem odniesienia bywa zawartość specjalnych rejestrów (np. indeksowego) albo aktualny stan licznika rozkazów. Ten ostatni przypadek tworzy adresowanie względne bieżące, stosowane przede wszystkim, ale bynajmniej nie wyłącznie, w instrukcjach skoków. Przesunięcie jest traktowane zazwyczaj jako liczba ze znakiem, może być więc dodatnie albo ujemne. Zakres adresowania
względnego jest zwykle ograniczony, co pozwala na skrócenie części adresowej kosztem pewnego zmniejszenia elastyczności programowania. W mikrokontrole-rach '51 są możliwe skoki względne w zakresie 128... + 127 w stosunku do aktualnego stanu licznika rozkazów (wskazującego zawsze następną do wykonania instrukcję). W AVR-ach jest to tylko -64...+63 (ale dotyczy słów 16-bitowych), a z kolei w MSP430 aż -512... + 511. Jedną z zalet adresowania względnego bieżącego jest fakt, że jego konsekwentne stosowanie pozwala na uzyskanie wy-
nikowych programów posiadających cechę przesu-walności (r elo kowal nych). Program taki może zostać umieszczony i uruchomiony w dowolnym obszarze pamięci, a nie tylko w jednym, z góry określonym miejscu. Ułatwia to m.in. gospodarowanie wieloma programami we wspólnej pamięci i przełączaniem pomiędzy nimi realizowanych aktualnie zadań.
Nie można pominąć także adresowania natychmiastowego (rys. 9), w którym pole adresowe rozkazu zawiera nie adres argumentu czy też wskaźnik adresowy, ale sam argument - stałą programową. Oczywiście taki tryb adresowania ma sens tylko dla argumentów, a nie dla wyniku (bo oznaczałoby to, że wynik jest znany przed wykonaniem instrukcji). Typowym przykładem może być rozkaz:
ani P3,#80h dla '51.
Z trybami adresowania wiążą się dwa ważne pojęcia: symetrii i ortogonalnoś-ci. Przez symetrię rozumiane jest równouprawnienie wszystkich rejestrów jednostki centralnej i ich dostępność dla wszystkich funkcji, w szczególności jako wskaźników adresowania pośredniego albo np. rejestrów indeksowych. Symetria jest cechą bardzo przydatną, ale stosunkowo rzadko spotykaną. O mikro-kontrolerach '51 można by było mówić, że mają symetryczny rdzeń, gdyby adresowanie pośrednie mogło się odbywać nie tylko poprzez rejestry RO i Rl, ale także przez wszystkie pozostałe (R2...R7). W wielu mikroprocesorach poszczególne rejestry pełnią tylko określone zadania i nie mogą być wykorzystywane do innych celów. Przykładem ewolucji w kierunku symetrii mogą być mikroprocesory rodziny '86. W 8086 istniały wyraźnie wyróżnione, odrębne rejestry dla adreso-
wania bazowego, indeksowego itp., w następcach (386, 486, Pentium) to ograniczenie stopniowo zanikało. Symetryczne są mikroprocesory rodziny 68000. Również w mikro-kontrolerze MSP430 niemal każdy z 16 rejestrów wewnętrznych może przechowywać dane, pełnić funkcję wskaźnika adresowego albo też rejestru indeksowego.
Ortogonalność z kolei to dostępność wszystkich za-implementowanych w danej jednostce centralnej trybów adresowania we wszystkich instrukcjach i dla wszystkich operandów. Jest to cecha bardzo rzadka, chociaż jej obecność prowadzi do bardzo interesujących rozwiązań. Z popularnych mikrokontrolerów największy stopień ortogonalności wykazuje MSP430, w którym dostępny jest przykładowo tak egzotyczny rozkaz, jak skok ze śladem (CALL) w trybie adresowania pośredniego z postin-krementacją. Zazwyczaj poszczególnym instrukcjom i ich operandom przyporządkowane są jednak tylko pewne wybrane tryby adresowania.
Dostępność operandów w wielu trybach adresowania, symetria i ortogonalność są bardzo istotnymi cechami jednostki centralnej, być może nawet ważniejszymi od bogactwa listy rozkazów i zasobów
wewnętrznych. Bardzo popularny swego czasu mikroprocesor 6502 składał się głównie z "niczego", a jego lista rozkazów zawierała bodajże niewiele ponad 50 instrukcji i to tych najprostszych. Pomimo tego konkurował z powodzeniem ze znacznie bardziej skomplikowanym Z80, przewyższając go właśnie asortymen-
Rozkaz
Rys. 9. Adresowanie natychmiastowe
Kod operacji Argument operacji
60
Elektronika Praktyczna 12/2003
PODZESPOŁY
I KO
AS
MD
B/W
MS
Rys. 10. Kodowanie rozkazów dwu argumentowych w mi krok on troi erze MSP430
tem dostępnych trybów adresowania.
Jako reprezentatywny przykład, na rys. 10 przedstawiono sposób kodowania rozkazów dwuargumento-wych w 16-bitowym mikro-kontrolerze MSP430. Każdy rozkaz zawiera 4-bitowy kod operacji KO, co teoretycznie pozwala na zakodowanie 16 rozkazów. W rzeczywistości rozkazów dwu-argumentowych jest tylko 12, a pozostałe kombinacje wykorzystywane są przez inne rozkazy (jednoargumentowe i skoki), w których odmienna jest interpretacja reszty słowa rozkazowego. Jest to bardzo często stosowana "sztuczka" konstrukcyjna. Jeden bit (B/W) zarezerwowano dla rozróżniania operacji ośmio- i szesnasto-bitowych - mikrokontroler ten pozwala na wykonywanie tych samych rozkazów nie tylko na dwubajtowych słowach, ale też na pojedynczych bajtach, z tym że oba argumenty (i wynik) muszą mieć tę samą długość, a rejestry wewnętrzne nie mogą być dzielone na dwie części. W przypadku ewentualnych konfliktów (np. dodanie 8-bitowego argumentu do zawartości jednego z rejestrów) przewidziane zostały odpowiednie, jednoznaczne reguły zachowań. Dwa 4-bitowe pola AS i AD, każde wskazujące jeden z 16 rejestrów uniwersalnych, stanowią części adresowe operandów. Interpretacja zawartości pierwszego z rejestrów zależy od związanego z nim dwubito-wego modyfikatora adresu pierwszego argumentu MS, co może sugerować, że dostępne są dla niego 4 tryby adresowania (konkretnie: bezpośrednie rejestrowe, pośrednie, pośrednie z autoin-krementacją i indeksowe). W rzeczywistości trybów
tych jest aż siedem (dochodzi jeszcze względne bieżące, bezpośrednie odniesione do dowolnej komórki pamięci oraz natychmiastowe), co wynika z oryginalnej koncepcji umieszczenia wśród równouprawnionych rejestrów uniwersalnych także licznika rozkazów. W ten sposób przykładowo adresowanie indeksowe "wchłania" niejako - odniesione do licznika rozkazów - adresowanie względne bieżące. Dla drugiego argumentu i równocześnie wyniku przewidziano już tylko jeden bit modyfikatora adresu MD, co powoduje, że może on (tzn. operand) być wskazywany tylko w dwóch trybach adresowania, tym niemniej i tak odpowiadających czterem w typowych mikroprocesorach. Jest to jedyne odstępstwo od ortogo-nalności, spowodowane po prostu ograniczoną długością słowa rozkazowego, którego wszystkich 16 bitów zostało już wykorzystanych. Sposób ułożenia tych elementów informacyjnych w rozkazie robi wrażenie nieco chaotycznego i przypadkowego, ale widocznie projektant miał tu jakieś swoje racje, a może po prostu fantazję.
Siedem rozkazów jednoar-gumentowych rozpoczyna się unikalną kombinacją 0001, po której występuje dalszy ciąg kodu konkretnej operacji, wyróżnik bajt/słowo, a następnie 4-bitowy adres rejestru i dwubitowy modyfikator adresu identyczne, jak w rozkazach dwuargumentowych.
Rozkazy skoków warunkowych rozpoczynają się kombinacją 001, uzupełnioną trzema bitami kodującymi konkretny warunek skoku i 9-bitowym adresem względnym ze znakiem. Maciej Nowiński
Elektronika Praktyczna 12/2003
61
P R Z Ę T
Programator uniwersalny UprogHS
48 Portable jest najnowszym
opracowaniem firmy RK-
System. Można powiedzieć,
że pod wieloma względami I
jest to urządzenie t
unikalne w swojej
klasie. Szereg
in terę s uj ą cych
rozwiązań oraz
zupełnie nowe
możliwości
oferowane przez
prezen to wany
programator zainteresują
pewno wielu Czytelników
Uniwersalny programator układów scalonych postrzegany jest jako urządzenie nierozerwalnie związane z komputerem. Pogląd taki wynika z przyzwyczajenia: zdecydowana większość programatorów dostępnych na rynku działa jak przystawka dołączona do komputera, sterowana sa pomocą odpowiedniego oprogramowania. Takie rozwiązanie, choć najbardziej rozpowszechnione, niesie ze sobą konieczność ciągłej ,,obecności" komputera podczas pracy z programatorem, bez niego bowiem programator jest "właściwie bezużyteczny. Dyskomfort odczuwają najbardziej ci użytkownicy, którzy często pracują w terenie, zajmując się np. serwisem urządzeń. Najlepszym wyjściem jest oczywiście zakup komputera przenośnego, jednak sumaryczny koszt takiego rozwiązania jest stosunkowo wysoki.
Rozwiązaniem problemu mobilności programatora jest UprogHS 48 Portable - najnowszy model programatora opracowany przez firmę RK-System. Ma on kilka cech, które w istotny sposób odróżniają to urządzenie od pozostałych modeli programatorów rodziny Uprog. Jednym z atutów nowego programatora jest wbudowany interfejs USP. Liczba dostępnych na rynku modeli programatorów uniwersalnych wykorzystujących ten interfejs jest ciągle niewielka.
Drugim atutem nowego programatora jest możliwość pracy samodzielnej, bez konieczności współpracy z komputerem. Niewielkie wymiary programatora
Elektronika Praktyczna 12/2003
21x12x3,5 cm oraz niewielka waga ułatwiają jego przenoszenie, a opcjonalne wyposażenie dodatkowe, w postaci estetycznej torby oraz baterii zapewniającej ,,terenowe" źródło energii, dodatkowo poprawia mobilność.
Jeśli chodzi o wygląd zewnętrzny, to UprogHS 48 Portable odbiega nieco od pozostałych programatorów rodziny Uprog. W odróżnieniu od nich nowy model wyposażony jest bowiem w wyświetlacz LCD (2x16) oraz klawiaturę membranową, które - oprócz podstawki ZIF48 - znajdują się na płycie czołowej urządzenia. Dodatki te umożliwiają użytkownikowi komunikację z programatorem pełniąc rolę interfejsu podczas pracy w trybie siand-alone. Rolę pamięci masowej, na którym przechowujemy dane w tym trybie, pełni karta typu Smartmedia z pamięcią o pojemności 16 MP lub większej. Złącze w które wsuwamy kartę, port USP oraz gniazdo zasilacza znajdują się w tylnej części programatora (fot. 1).
Tak jak w przypadku pozostałych modeli rodziny Uprog, konstrukcja UprogHS 48 Portable oparta jest o układ typu FPGA (Field Fiogiarn-rnahle Gaie Aiiay) firmy Xilinx, którego pracę wspomaga dodatkowy procesor. Zaawansowane rozwiązania części sprzętowej programatora pozwoliły na uzyskanie znakomitych czasów programowania. Ponieważ układy typu FPGA pozwalają na rekonfigurację swojej struktury, jądro procesora sterującego
programatorem oraz jego peryferia poddawane są dynamicznej modyfikacji w trakcie pracy urządzenia i dopasowywane automatycznie w zależności od potrzeb aktualnie programowanego układu. Można więc powiedzieć, że haidwaie jest automatycznie optymalizowany i zmieniany w celu maksymalnego dopasowania do wybranego w danej chwili układu. Konstrukcja części sprzętowej UprogHS 48 Portable zapewnia współpracę z dowolnym rozkładem wyprowadzeń zasilania i danych, a co za tym idzie dodawanie kolejnych układów do
i
Fot.
SPRZĘT
Rys. 2
listy układów obsługiwanych nie wymaga wprowadzania żadnych zmian w sprzęcie.
Każde z wyprowadzeń 48-stykowej podstawki ma własny sterownik, który w zależności od potrzeb umożliwia podłączenie do dowolnej nóżki układu napięcia zasilającego, masy, napięcia programującego lub sygnału zegarowego. Konieczność stosowania dodatkowych adapterów dla układów w obudowach DIP do 48 wyprowadzeń jest w tym wypadku całkowicie wyeliminowana, a dodanie kolejnego układu do biblioteki układów obsługiwanych odbywa się wyłącznie na zasadzie aktualizacji oprogramowania. Biblioteka układów obsługiwanych obejmuje wszystkie typy układów tj. EPROM, EEPROM, Flash, GAL, PAL, PALCE, PLD, CPLD oraz szeroką gamę mikro-kontrolerów różnych producentów.
Urządzenie pozwala na pracę z układami o napięciu zasilania 5 V, jak również z układami niskonapięciowymi (3,3 V, 2,7 V, 1,8 V). Producent przewidział dodatkowo możliwość programowania układów bezpośrednio w układzie docelowym (interfejsy szeregowe JTAG, SPI, ICSP, BDM), bez konieczności ich wylutowywania. W celu usprawnienia komunikacji szeregowej sygnały niezbędne do zaprogramowania układu są wyprowadzane z podstawki programatora poprzez tzw. serial programining adapter, który stanowi jeden z elementów wyposażenia opcjonalnego.
Oprócz możliwości programowania in-circuii, walory użytkowe programatora podnosi kilka innych opcji dodatkowych, które dla prezentowanego modelu będą dostępne już wkrótce. Należą do nich: uniwersalny tester układów cyfrowych, symulator pamięci 8-bitowych, symulator pamięci 16-bito-wych oraz 16-kanałowy analizator stanów logicznych. Oprócz typowych operacji związanych z programowaniem układów UprogHS 48 Portable będzie więc mógł być również wykorzystywany do innych celów związanych z uruchamianiem czy testowaniem układów elektronicznych. Uni-
wersalny tester układów cyfrowych to standardowa opcja dostępna w przypadku wszystkich modeli uniwersalnych rodziny Uprog. Dostępna ona będzie również w UprogHS 48 Portable. Wbudowany w programator symulator pamięci 8-bitowych obsługuje układy pamięci o pojemności do 128 kB. Istnieje jednak możliwość rozszerzenia pamięci wewnętrznej programatora do 512 kP. W takiej konfiguracji będzie można symulować pamięci 8-bitowe o pojemnościach do 512 kP. Czas dostępu dla symulatora pamięci 8-bitowych to ok. 10 ns. W przypadku pamięci 16-bitowych obsługiwane są odpowiednio układy o pojemnościach do 64 kP lub 256 kP w zależności od tego, ile RAM-u ma programator, a czas dostępu wynosi ok. 70 ns. Sygnały emulujące w obu przypadkach wyprowadzane są bezpośrednio z podstawki ZIF programatora i przekazywane do układu docelowego za pomocą kabla zakończonego sondą emulacyjną. Odpowiednie kable dostarczane są w zestawie. Kolejną opcją, o którą można rozbudować możliwości i zastosowania UprogHS 48 Portable jest funkcja szes-nastokanałowego analizatora stanów logicznych. Jest już ona od dłuższego czasu dostępna w programatorach UprogHS 48 oraz UprogHS 84. Sygnały zbierane z testowanego urządzenia przekazywane są do programatora poprzez gniazdo ZIF za pośrednictwem odpowiedniej przejściówki, która razem z klipsami dostarczana jest przez producenta w przypadku zakupienia opcji analizatora. Analizator stanów logicznych może pracować w trybie 8-lub 16-kanałowym. Maksymalna częstotliwość próbkowania wynosi odpowiednio 100 MHz w trybie 8-kanało-wym i 50 MHz, jeśli pomiar odbywa się w trybie 16-kanałowym.
Oprogramowanie
Oprogramowanie dołączone do UprogHS 48 Portable zapewnia obsługę programatora podczas pracy z komputerem oraz umożliwia odpowiednie przygotowanie urządzenia do pracy w trybie siand-alone. Współpracuje ono z dowolną wersją Windows począwszy od Win 95 po Win XP.
Podczas pracy z komputerem sterowanie programatorem odbywa się za pomocą szeregu ikon i przycisków dostępnych w obszarze głównego okna programu (rys. 2) oraz komend ukrytych pod prawym klawiszem myszy. Dostęp do grup ikon odpowiadających za programowanie zaprojektowany jest w postaci zakładek, co sprawia, że produkt jest wyjątkowo czytelny. Zakładki PROGRAM, READ, ERASE zawierają ikony symbolizujące poszcze-
gólne operacje składające się na proces programowania, sczytania do bufora lub skasowania zawartości pamięci układu. Aplikacja pozwala na samodzielne ustalenie, które z operacji będą wykonywane podczas danego procesu. W ten sposób możemy zadecydować, czy na przykład po zaprogramowaniu danego układu zostanie przeprowadzona weryfikacja jego zawartości itd. Koncepcja ta pozwala na zachowanie pełnej kontroli nad programatorem. Użytkownicy, którzy nie chcą korzystać z zakładek zbiorczych, mają do dyspozycji zakładkę SH--JGLE, która zapewnia niezależny dostęp do wszystkich operacji, jakie może wykonać programator na określonym układzie. Postęp i rezultat wykonywania każdej z operacji sygnalizowany jest odpowiednim komunikatem pojawiającym się na pasku OPERATION STATUS oraz na wyświetlaczu LCD urządzenia. Aplikacja posiada wszystkie funkcje, w jakie powinien być wyposażony profesjonalny programator uniwersalny oraz kilka funkcji dodatkowych, których celem jest usprawnienie obsługi urządzenia. Jednym z usprawnień jest na przykład koncepcja ,,listy podręcznej", na której użytkownik może zapamiętać do dziesięciu najczęściej używanych układów. Każdy układ znajdujący się na liście podręcznej ma przypisany własny bufor, który może być wypełniony dowolnym zbiorem danych. Szybkie przełączanie pomiędzy poszczególnymi układami znajdującymi się w kolumnie układów ,,podręcznych" wymaga jedynie kliknięcia myszą i nie wymaga ciągłego przeszukiwania biblioteki. Wybór układu z biblioteki układów dostępnych ułatwia filtr selekcji (rys. 3). Filtr ten pozwala na filtrowanie bazy pod kątem typu układu, jego producenta, umożliwia także odszukanie układu na podstawie fragmentu nazwy.
Oprogramowanie sterujące programatorem akceptuje wszystkie popularne formaty tj. hex, bin, jed, jam, svf, rom, ixt. Kod, którym chcemy zaprogramować określony układ (lub kod odczytany z układu), prezentowany jest w ob-
Rys. 3
64
Elektronika Praktyczna 12/2003
SPRZĘT
Rys. 4
szarże głównego okna programu w postaci HEX i ASCII. Odczytane z układu lub zmodyfikowane przez użytkownika dane można zachować na dysku komputera lub na karcie Flash. Oprogramowanie sterujące programatorem zapewnia oczywiście możliwość wykorzystania wszelkich dodatkowych zasobów układu, takich jak np. fuse biis czy lock biis, jak również niezależny dostęp do pamięci programu i pamięci danych w przypadku procesorów posiadających dodatkową pamięć danych. Jedną z dodatkowych funkcji, jakie daje do dyspozycji UprogHS 48 Portable, jest tzw. OPERATION RECORDER (rys. 4). Rejestrator ten stanowi rodzaj archiwizera umożliwiającego gromadzenie informacji dotyczących poszczególnych operacji (załadowanie pliku, doda nie/usunięcie układu, operacje na układzie), które są wykonywane przez użytkownika.
Inną z istotnych funkcji, jaką posiadają zresztą wszystkie programatory rodziny Uprog, w tym UprogHS 48 Portable, jest funkcja PIN CHECK kontrolująca poprawność obsadzenia układu w podstawce. Sprawdzanie poprawności styku pomiędzy programowanym układem a podstawką urządzenia odbywa się w sposób automatyczny. Prak styku na którejś z końcówek sygnalizo-
i
i h
i - H
Ś Ś 1 -
M
c
U 1
Rys. 5
wany jest odpowiednim komunikatem, a niekontaktujące nóżki wskazywane są w odrębnym oknie (rys. 5).
Oprócz programowania równoległego, czyli bezpośrednio w podstawce, UprogHS 48 Portable pozwala na programowanie szeregowe przy wykorzystaniu interfejsu SPI, JTAG, ICSP, PDM. Oczywiście dotyczy to tylko tych układów, w których zaimplementowano jeden z wymienionych interfejsów.
Podsumowanie
Programator uniwersalny UprogHS 48 Portable jest interesującą propozycją dla użytkowników urządzeń tego typu. Decyduje o tym kilka czynników: oprócz obszernej bazy obsługiwanych układów, braku konieczności stosowania wielu adapterów i wbudowanego interfejsu USP, UprogHS 48 Portable oferuje możliwość samodzielnej pracy. Jest to więc szczególnie dobre rozwiązanie dla różnego rodzaju serwisów, które często pracują w ,,terenie", a także producentów urządzeń, w których są stosowane programowane układy. W tym przypadku zakup typowego programatora wiąże się zwykle z koniecznością zakupu dodatkowego komputera, który jest potem wykorzystywany jedynie do obsługi programatora. UprogHS 48 Portable posiada poza tym specjalne funkcje, które mogą być wykorzystywane przez firmy programujące znaczne ilości układów. Jedną z nich jest np. funkcja AUTORUN usprawniająca programowanie większej partii jednakowych układów. Nie bez znaczenia jest tu również duża szybkość działania tego programatora.
Szereg unikalnych funkcji, takich jak analizator stanów logicznych, emulator pamięci, tester układów cyfrowych, to kolejne atuty prezentowanego urządzenia. Funkcje te są bowiem bardzo rzadko spotykane w typowych programatorach uniwersalnych.
Pełna uniwersalność sprzętowa UprogHS 48 Portable zapewnia ciągły rozwój listy układów obsługiwanych. Dowolny układ programowalny można bowiem ,,dopisać" do listy tylko i wyłącznie poprzez aktualizację oprogramowania bez konieczności wprowadzania zmian w części sprzętowej. KJ
Dodatkowe informacje
Cena: 3700 netto (w podanej cenie uwzględniono wszystkie akcesoria). Urządzenie do testów udostępniła firma RK-Sys-
Tem, Tel. (22) 724-30-39, mvw.rk-system.com.pl. Lista uktadów obsługiwanych przez prezentowany programator jest dostępna pod adresem: http://www.rk-system. com.pl/uprog. shtml#-Uproghs48p.
Elektronika Praktyczna 12/2003
P O D Z E
Me będzie wielką przesadą stwierdzenie, źe Latńce jest twórcą reprogramowalnych układów PLD. Nie będzie także przesadą stwierdzenie, źe firma ta przespała swój najlepszy czas. Ostatnie kilkanaście miesięcy jej działania daje jedna nadzieję, źe juź wkrótce będzie mogła podjąć równorzędną walkę o rynek układów PLD z jego tuzami - firmami Altera i Xilinx.
Nowości Latticea
Jeszcze kilka lat temu producenci układów programowalnych mieli mocno spolaryzowane oferty. Xilinx i Lucent specjalizowali się w układach FPGA, Altera i Intel skupiali się na układach CPLD, aLattice, Cypress, AMD, ICT, Te-xas Instruments, SGS Thomson (obecnie STM), National Semicon-ductors i Philips rozwijali rodziny układów SPLD, FPLA i pochodne. Po szeregu mniej lub bardziej spektakularnych sprzedaży firm lub ich działów, na rynku ustabilizowała się obecna sytuacja: najwięksi producenci (w porządku alfabetycznym: Altera, Xilinx, Lat-tice) mają w swoich ofertach no-
woczesne układy ze wszystkich grup: SPLD, CPLD i FPGA, pozostałe firmy specjalizują się w wąskich rynkowych "niszach".
Miejsce LatticeTa
Podjęte przez Lattice'a próby wprowadzenia do sprzedaży własnych układów CPLD nie zakończyły się sukcesem. O układach z rodzin ispLSI/LSUOOO, ispLSI/ LSI2000, ispLSI/LSI3000 nikt już praktycznie nie pamięta, a pierwszy na rynku interfejs ISP - opracowany przez Lattice'a specjalnie dla układów PLD - LatticelSP z "przyzwyczajenia" jest stosowany wyłącznie w układach ispGAL22V10.
łspLSI5000
Mitiyci BHP
służąca do Łączenia zasobów logicznych
BloU Mpmki HFH
Ś mmmmii UaU lifIM kwrflfim*H - ]Ś*! vortnvr MN
1/0 Bank 3
Ś RFI CAN
ŚyHO
szybkie porty we/wy.
Do programowania I rakonflguracjl układu
ŚnCoiiii Nit
Interfejs równole&ły służący do konfiguracji
ŚffCUWFU
Rys,
Sytuacja uległa znacznej poprawie po kupieniu przez Latti-ce'a firmy Vantis (ex-AMD), która produkowała dobrze przyjęte na rynku układy CPLD z serii MACH. W ten sposób Lattice uzupełnił swoją ofertę o popularne układy CPLD, które są konsekwentnie rozwijane i obecnie należą do rynkowej ekstraklasy. W podobny sposób Lattice rozwiązał problem układów FPGA w swojej ofercie - zakupiono bowiem jeden z działów firmy Lucent, w którym opracowano i produkowano układy FPGA z serii ORCA.
Nowości w CPLD
Lattice wybrał interesującą drogę rozwoju "większych" układów CPLD, która jest w znacznym stopniu zbieżna z działaniami pro-
SPLD/CPLD/FPGA
Za pomocą tych akronimów są nazywane trzy najważniejsze pośród obecnie produkowanych grupy układów programowalnych: - SPLD (Simpte Program-mabte Logic Devices) -układy PLD o niewielkiej złożoności o architekturze
pochodnej PAL,
- CPLD (Comptex
Programmabte Logic
Devices) - układy PLD
o średniej i dużej złożoności
o architekturze pochodnej
PAL,
- FPGA (Fietd Programmab-le Logic Devices) - układy
PLD o dużej i średniej
złożoności o architekturze
opartej na matrycach
ni akr okoni orek.
68
Elektronika Praktyczna 12/2003
PODZESPOŁY
Tab. 1. Zestawienie układów CPLD produkowanych przez firmę Lattice (me uwzględniono wersji stopniowo wycofywanych z produkcji - Maturę)
Układy zasilane napięciem 1,8 V
Rodzina Liczba tpD Liczba Liczba Pojemność Liczba
makrokomórek fnsl fMHzl l/O wejść LB wbudowanej wbudowanych
pamięci [kb] PLL
ispXPLD 5000MC 256...1024 3,5 300 141...381 68 64...512 2
ispMACH 4000C 32...512 2,5 400 30...208 36 - -
ispMACH4000Z 32...256 3,5 267 32...128 36 - -
Układy zasilane napięciem 2,5 V
Rodzina Liczba tpD Liczba Liczba Pojemność Liczba
makrokomórek fnsl fMHzl l/O wejść LB wbudowanej wbudowanych
pamięci [kb] PLL
ispXPLD 5000MB 256...1024 3,5 300 141 ...381 68 64...512 2
ispMACH 5000B 128...512 3,5 275 92...256 68 - -
ispMACH4000B 32...512 2,5 400 30...208 36 - -
Układy zasilane napięciem 3,3 V
Rodzina Liczba tpD Liczba Liczba Pojemność Liczba
makrokomórek fnsl fMHzl l/O wejść LB wbudowanej wbudowanych
pamięci [kb] PLL
ispXPLD5000MV 256...1024 3,5 300 141 ...381 68 64...512 2
ispMACH 4000V 32...512 2,5 400 30...208 36 - -
ispMACH 5000VG 768...1024 5 178 196...384 68 - 2
ispLSI 5000VE 128...512 5 180 72...256 68 - -
ispMACH 4A3 32...512 5 182 32...256 33...36 - -
Układy zasilane napięciem 5,0 V
Rodzina Liczba tpD Liczba Liczba Pojemność Liczba
makrokomórek fnsl fMHzl l/O wejść LB wbudowanej wbudowanych
pamięci [kb] PLL
ispMACH 4A5 32...256 5 182 32...128 33...36 - -
ducentów układów FPGA: jako jeden z niewielu producentów, Lattice wyposaża nowsze wersje układów CPLD w bloki konfigurowal-nych pamięci, dzięki czemu w efektywny sposób można w tych układach implementować jedno- i dwuportowe pamięci RAM, pamięci FIFO, CAM oraz ROM (rys. l). Takie rozwiązania są rzadko oferowane przez innych producentów w tej grupie układów. Podobnie, bardzo rzadko są spotykane w układach CPLD wewnętrzne pętle PLL służące do lokalnego wytwarzania sygnałów zegarowych, a jak widać w zestawieniu (tab. l) Lattice wyposaża w ten sposób największe produkowane przez siebie układy.
Większość układów CPLD produkowanych przez Xilinxa wypo-
sażono w interfejs JTAG (IEE-E1149.1) umożliwiający programowanie ISP. Układy z rodziny isp-XPLD są kompatybilne z nowymi zaleceniami zwartymi w normie IEEE1532. Zastosowano w nich także nieco inny sposób przechowywania danych konfiguracyjnych niż w układach starszych generacji: są one lokowane nieulotnej pamięci EEPROM i po włączeniu napięcia zasilającego są automatycznie kopiowane do pamięci SRAM (trwa to nie dłużej niż 200 jis), która jest pamięcią konfiguru-jącą układ. Zawartość pamięci konfiguracji SRAM można modyfikować poprzez interfejs szeregowy JTAG lub port równoległy sys-CONFIG, który może być taktowany sygnałem zegarowym o częstotliwości do 33 MHz. Dzięki zasto-
Bezpłatne narzędzia CAD/EDA dla PLD
Lattice bezpłatnie udostępnia oprogramowanie narzędziowe do realizacji projektów na układach przez siebie oferowanych.
System ispLever jest dostępny bezpłatnie na stronie
www.latticesemi.com. Przed ściągnięciem konieczna jest
wyłącznie rejestracja, na podstawie której otrzymuje się plik
licencyjny.
Elektronika Praktyczna 12/2003
69
P O
Z E S P
Pamięci CAM
CAM - Content Adressabte Memoty - jest to pamięć
adresowana zawartością. Pamięci tego typu są często
wykorzystywane w systemach zarządzania ruchem pakietów
danych w sieciach informatycznych.
sowanym w rozwiązaniom, układy ispXPLD mogą być rekonfiguiowa-ne nieskończoną liczbę razy (np, podczas prac uruchomieniowych) - w takich przypadkach informacje o konfiguracji są wpisywane wyłącznie do pamięci SRAM, co pozwala przedłużyć czas życia pamięci nieulotnej, która może być
kasowana i zapisywana do 1000 razy.
Ostatnią nowością, na którą warto zwrócić uwagę w grupie układów CPLD firmy Lattice są układy ispMACH4000Z, które charakteryzują się bardzo małym poborem mocy (w stanie statycznym pobierają prąd o natężeniu zaledwie 10 ^A) i jednocześnie dużą szybkością działania (czas propagacji pin-pin nie przekracza 5 ns w największym dostępnym układzie z 256 m akr oko m orkami),
Podsumowanie
Lattice wyraźnie nadrabia straty, a nowości wprowadzone do oferty (przedstawione w artykule nie są jedynymi) są - moim zdaniem -dobrze ukierunkowane. Należy mieć nadzieję, że te zabiegi nie zostaną zniweczone przez restrykcyjną politykę dystrybucyjną, która małych klientów (takich jest w Polsce większość) stawiała nie zawsze w dobrej sytuacji - dotyczy to głównie możliwości zakupu pożądanych wersji układów w ilościach adekwatnych do potrzeb (czytaj: niewielkich). Zachęcam do sprawdzenia! Piotr Zbysiński, EP piotr.zbysinski@ep.com.pl
Za miesiąc przedstawimy zestaw ewaluacyjny dla układów isp-XPLD5000, opracowany i dystrybuowany przez firmę WBC.
70
Elektronika Praktyczna 12/2003
PROGRAMY
nVisage
Konstruowanie nowoczesnych urządzeń elektronicznych coraz częściej zmusza projektanta do stosowania wielu różnych technik projektowania i metod implementacji układu. Tam, gdzie nie wystarczają typowe obwody drukowane obsadzone tradycyjnymi podzespołami, pojawiają się programowalne układy logiczne. Sprawne projektowanie tak złożonych układów wymaga posługiwania się nowoczesnymi narzędziami, które oferują wiele technik opisu, analizy oraz implementacji projektu. Takie kryteria spełnia system nVisage DXP firmy Altium.
Wielowymiarowy system projektowy firmy Altium
Dlaczego DXP to system wielowymiarowy?
Program nVisage DXP trudno zaklasyfikować jednoznacznie, ponieważ łączy w sobie kilka narzędzi pomocnych przy realizacji kolejnych etapów projektu, zarówno przy projektowaniu pod kątem implementacji na PCB, jak i w układach FPGA. Lansowane przez producenta określenie system wielowymiarowy wywodzi się z mnogości narzędzi oraz możliwości ich zastosowania i oddaje najlepiej charakter systemu nYisage.
Rys. 1. Zintegrowane w DXP narzę umożliwiajg wszechstronng analizę
Począwszy od edytora schematów, który pozwala na projektowanie hierarchiczne oraz wielokanałowe, poprzez zintegrowany symulator Spice 3f5/XSpice (rys. 1), aż po narzędzia do analizy sygnałowej obwodu, mamy do dyspozycji kompletny zestaw pozwalający na przygotowanie projektu pod kątem implementacji na płycie drukowanej. Wspomniane narzędzia do analizy, łatwe w użyciu dzięki integracji z edytorem schematów, pozwalają na wczesne wykrycie i wyeliminowanie większości problemów, jeszcze przed przystąpieniem do projektowania PCB.
Kolejny wymiar, w którym nVisage pokazuje swój potencjał, to projektowanie programowalnych układów logicznych FPGA. Program oferuje kompletny zestaw narzędzi potrzebnych do tego ro-dzia symulacyjne dzaju zadań, projektu
włącznie z symulacją i syntezą kodu VHDL. Projekt układu logicznego możemy przygotować posługując się edytorem schematów oraz gotowymi elementami logicznymi dostarczonymi w bibliotekach, jak i w formie kodu w języku VHDL. Obie techniki można stosować łącznie. Mamy do dyspozycji kompilator oraz symulator VHDL, które pozwalają na przetestowanie układu. Natomiast wbudowane na-
Elektronika Praktyczna 12/2003
71
PROGRAMY
Ry^. 2. Cechq charaktery$tycznq środowiska DXP jest doskonała integracja wszystkich narzędzi projektowych
Rys. 4. nVisage zawiera pełnowartościowe środowisko programistyczne wspierajqce kodowanie wjęzyku VHDL
rzędzia do syntezy obsługują wszystkie popularne rodziny układów FPGA, dając możliwość implementacji projektu w wybranym układzie np. firmy Xilinx lub Al-tera.
Jak na produkt firmy Altium przystało, całość jest doskonale zintegrowana za sprawą środowiska Design Explorer (DXP), znanego z programu Protel DXP. Spójność tak wielu różnorodnych narzędzi nabiera szczególnego znaczenia przy projektowaniu złożonych układów, gdzie występują równocześnie tradycyjne elementy na PCB i układy logiczne implementowane w strukturach FPGA (rys. 2).
nVisage jest pozbawiony edytora PCB oraz wszystkich narzędzi związanych z projektowaniem
i dalszą obróbką obwodu drukowanego, natomiast współpracuje doskonale z wieloma programami do projektowania PCB. Ze względu na identyczny format plików oraz integrację przez środowisko DXP, jego naturalnym uzupełnieniem, w zakresie projektowania druku, jest Protel DXP. Niemniej jednak, dzięki rozbudowanym możliwościom eksportu/importu, nVisage doskonale współpracuje również z innymi narzędziami, jak np. Or-CAD czy PCAD.
Wymagania systemowe
Prezentowany program jest bardzo rozbudowany, więc do komfortowej pracy wymaga sprzętu o dużej wydajności. Podstawowy wymóg to system operacyjny Win-
dows 2000 lub XP. nVisage DXP nie zainstaluje się na żadnym ze starszych systemów: Windows 9x, Millenium czy NT4. Minimum określone przez producenta to komputer wyposażony w system Windows 2000 Professional, procesor Pentium 500 MHz, 128 MB RAM, 620 MB wolnej przestrzeni dyskowej oraz grafika o rozdzielczości 1024x768 z 16-bitowym kolorem. Natomiast konfiguracja zalecana powinna zawierać Windows XP (Home lub Professional), procesor Pentium 1,2 GHz lub szybszy, 512 MB RAM, 620 MB przestrzeni na dysku oraz grafikę o rozdzielczości 1280x1024 z 32-bitowym kolorem.
Warto wspomnieć, że środowisko DXP obsługuje konfiguracje z dwo-
^. 3. Schematy dla obwodów PCB można lqczyć z projektami dla FPGA zapisanymi zarówno w formie schematów, jak i kodu VHDL
Rys. 5. Pracujqc z projektami FPGA, możemy dowolnie 'mieszać- schematy z kodem źródłowym VHDL, majqc pełnq swobodę wyboru optymalnej metody projektowania
72
Elektronika Praktyczna 12/2003
PROGRAMY
Św * .#

----------. ----*ilV ""*
^^F^ 1

KeJ irf 4 Hi*> - hvfc rf 1 l~liKh
i -i -^ ^ Ś-.i.\


Rys. ó. nVi$age obsługuje projekty wielokanałowe, zachowujqc hierarchię kanałów podczas całego procesu projektowego
Rys. 8. Edytor schematów nVisage potrafi importować i eksportować pliki schematów oraz bibliotek w formacie OrCAD, czyniqc migrację do nVisage szybkg iłatwg
ma monitorami, co może być wygodnym rozwiązaniem podczas pracy nad obszernymi projektami.
PCB i FPGA razem
nVisage DXP pozwala łączyć kilka metod projektowania. Możemy mieszać klasyczne schematy ideowe obwodów, projekty FPGA w formie schematów układów logicznych oraz kod w językach opisu sprzętu VHDL i CUPL (rys. 3). Takie możliwości łączenia ze sobą w jednym projekcie różnych technik czyni nVisage doskonałym punktem wyjścia zarówno dla projektów PCB, jak i FPGA. Projekty przeznaczone pod PCB oraz projekty FPGA możemy łączyć we wspólną grupę projektową, dając projektantowi łatwy dostęp do wszystkich plików związanych z danym przedsięwzięciem. nVisage jest dostarczany z obszernym zestawem presyntezowanych makr i bibliotek-
ami schematowymi komponentów logicznych dla wszystkich rodzin układów FPGA firm Altera i Xi-linx. Na potrzeby kodowania w języku VHDL mamy do dyspozycji edytor tekstowy, wyposażony w cechy specyficzne przy programowaniu, m.in. takie jak podświetlanie składni oraz automatyczne wstawianie wcięć, które czynią kod lepiej czytelnym (rys. 4).
Mechanizmy nawigacyjne wbudowane w nVisage ułatwiają poruszanie się po projektach mieszanych, w skład których wchodzą schematy oraz kod VHDL (rys. 5). Jeden panel nawigacyjny obsługuje poruszanie się po całej hierarchii projektu oraz wyszukiwanie skrośne pomiędzy arkuszem schematu i odpowiadającym mu kodem VHDL. Obsługując wiele metod opisu projektu w ramach jednej aplikacji, nVisage wnosi kolejny nowy wymiar w proces projektowania.

mBm
51
riTi
Rys. 7. Dzięki temu, że nVisage zachowuje hierarchię kanałów, projekt może być edy-towany łatwo i efektywnie
Prawdziwe schematy wielokanałowe
Środowisko projektowe nVisage obsługuje w naturalny sposób projekty hierarchiczne o dowolnym stopniu zagnieżdżenia oraz dowolnej liczbie powtarzających się kanałów (rys. 6). W przeciwieństwie do prostych edytorów schematów, które spłaszczają hierarchię i fizycznie powielają arkusze schematów, aby uzyskać wiele kanałów, nVisage zachowuje hierarchię projektu przez ca-
ły czas. Co więcej, nVisage obsługuje hierarchię zagnieżdżoną, która pozwala na tworzenie kanałów wewnątrz innych kanałów. Ponieważ hierarchia projektu jest zachowana cały czas, możemy w dowolnej chwili dokonać zmiany na schemacie, która jest automatycznie propagowana we wszystkich kanałach, bez potrzeby ręcznego kopiowania na wiele arkuszy (rys. 7). Podobnie w każdej chwili możemy zmienić liczbę kanałów, a program automatycznie zadba o wygenerowanie odpowiedniej liczby instancji danego arkusza.
W projektach wielokanałowych automatyczne generowanie wielu instancji następuje podczas kompilacji projektu. Mamy pełną kontrolę nad stylem oznaczeń elementów, który identyfikuje przynależność do kanału, jak również nad sposobem powiązania portów wyjściowych poszczególnych kanałów. Edytor schematów programu nVisa-ge wyposażono w mechanizmy translacji, które pozwalają na import oraz eksport z programu Or-cad (rys. 8), zarówno schematów, jak i plików bibliotek, dając możliwość szybkiej i łatwej migracji do n Vi sagę. Grzegorz Witek, Evatronix
Za miesiąc opiszemy narzędzia do analizy i weryfikacji projektu jakie daje do dyspozycji n Yisage, przedstawimy aspekty współpracy z programami do PCB oraz narzędziami do implementacji FPGA oraz możliwości konfiguracji środowiska, a także zastosowania programu.
74
Elektronika Praktyczna 12/2003
KURS
Niezbędnik dla amatorów i profesjonalistów W głośnikowym żywiole, część 2
Głośnikowy triumwirat
Zespół głośnikowy składa się z trzech głównych obszarów - systemu głośników (przetworników), zwrotnicy (filtrów) i obudowy. Obszary te są ze sobą oczywiście konstrukcyjnie sprzężone, choć róśne związki mają róśną siłę. Niektóre parametry samych głośników niskotonowych decydują o rodzaju i wielkości obudowy, natomiast parametry wszystkich głośników mają udział w projektowaniu układu filtrów nimi sterujących. Te związki są najważniejsze, choć są i mniej znane, a jednak dość istotne. Np. wymiary przedniej ścianki i sposób rozplanowania na niej głośników ma wpływ na charakterystyki w zakresie średnio-wy-sokotonowym, co z kolei powinno zostać uwzględnione przy projektowaniu zwrotnicy. W ten sposób obudowa ma pośrednio związek ze zwrotnicą. Mimo to proces projektowania mośna podzielić na etapy prac prowadzonych do pewnego stopnia niezależnie i różnymi metodami, choć na widoku trzeba mieć całą koncepcję. Nie ma np. sensu projektowanie obudowy z nisko-efektywną linią transmisyjną, gdy zamierza się zastosować sekcję średnio-"wysokotonową z użyciem przetworników tubowych o wysokiej efektywności, tak jak nie jest racjonalne budowanie układów czterodrośnych z 13-cm głośnikiem niskotonowym w małej konstrukcji podstawkowej, albo wręcz przeciwnie - uruchamianie baterii kilkunasot calowych wooferów, podczas gdy do dyspozycji mamy tylko jeden mały głośnik średniotonowy (i oczywiście wysokotonowy), a tym bardziej gdy jest to tylko tweeter. Przy-
Po wstępnym zachęcająco-zniechęcają cym eseju, zamieszczonym w poprzednim numerze EP, powoli przechodzimy do praktyczno-
technicznych wskazówek dla amatorów samodzielnego
konstruowania zespołów głośnikowych. Nigdzie nie będziemy
epatować teorią, równaniami, modelami, itp., które nie znajdują
zastosowania w działaniach konstruktora zespołu głośnikowego.
Rozpędzać będziemy się stopniowo. W tym numerze rozbierzemy
zespół głośnikowy na najważniejsze części. Powstrzymamy się od
schematów, wzorów, choć w samym opisie będziemy się już do
pewnych załeżności odnosić. Lekcję tę mogą sobie darować konstruktorzy już obeznani z podstawowymi faktami. Ale może
zabrniemy w jakieś ciekawostki... zarazem nowe spojrzenie nawet na elementarne problemy może okazać się pożyteczne.
KEF 207 - rzadko spotykane połqczenie układu aż czterodrożnego zmałq obudowg podstawkowg
kłady konfiguracji absurdalnych można mnożyć, chociaż czasami pewne rozwiązania absurdalnymi nie są, mimo śe na takie pozornie wyglądają. Dopiero dokładniejsze wejrzenie we właściwości zastosowanych przetworników stawia we właściwym świetle zamierzenia i umiejętności konstruktora. Na przykład najlepsza podstawkowa konstrukcja firmy KEF, model Reference 201, jest aś czterodrośna -zawiera 18-cm głośnik nisko ton owy, 18-cm nisko-średniotonowy sprzężony z 25-mm kopułką wysokotonową w ramach współosiowego podsystemu "Uni-Q", a na szczycie jeszcze 19-mm kopułkę superwy sokotonową . Z drugiej strony mośna spotkać układy dwudrośne posługujące się 20, a nawet 25-crn głośnikami nisko-śred-niotonowymi, co wymaga od nich wyjątkowo (jak na ich wielkość) daleko sięgających dostatecznie liniowych charakterystyk przetwarzania, a takśe wysokiej wytrzymałości głośnika wy so kotonowego, aby móc ustalić niską częstotliwość podziału.
Tworzenie takich i innych egzotycznych układów wymaga doskonałej znajomości stosowanych przetworników, doświadczenia i wyczucia, i nie powinno być rozważane przez początkujących konstruktorów. A przecież zagalopowaliśmy się juś niechcący w terminologię nieznaną początkującym (częstotliwość podziału, su pe rwy s oko tonowy, układ współosiowy...), wróćmy do podstaw i wyjaśnienia, dlaczego w ogóle mamy do czynienia z zespołami głośnikowymi, a nie pojedynczymi głośnikami; jaka jest rola zwrotnicy, a jaka obudowy.
Tą drogą teś dojdziemy do pytań i problemów.
Dlaczego nie solo?
Praktycznie nie istnieje pojedynczy głośnik zdolny z satysfakcjonująco niskimi zniekształceniami przetwarzać całe pasmo akustyczne. W tanich urządzeniach (np. tanie radioodbiorniki) spotykamy pojedyncze głośniki, ale oczywiście ma to związek ze zgodą na niską jakość brzmienia. Większy kłopot sprawia zinterpretowanie jakości nielicznych egzotycznych i bardzo kosztownych przetworników szerokopasmowych (np. Lowther), które wywołują apaluz pewnej części audiofi-lów i hobbistów. Rzeczywiście, niektórym firmom udało się opracować głośniki szerokopasmowe brzmiące na tyle interesująco, śe stanowią one ciekawą, ale marginalną alternatywę dla zespołów głośnikowych. Nie sięgają one "od dwudziestu do dwudziestu", mając kłopoty z przetwarzaniem zarówno najniższych, jak i wysokich tonów, mają niskie moce, ale doskonałą spójnością brzmienia, wynikającą z samej swojej "niezespołowej" natury, w pewien sposób rekompensują te niedociągnięcia.
Raczej w duecie
Powszechną popularność zdobyło konstruowanie wielodrożnych zespołów głośnikowych, z głośników wyspecjalizowanych w przetwarzaniu różnych zakresów pasma. Wystarczą juś dwa głośniki, aby stworzyć pełno pas mowy zespół głośnikowy - będą to głośniki nisko-średniotonowy i wysokotonowy, a zespół taki nazwiemy dwudrośnym. Dwudrośne zespoły głośnikowe mają dzisiaj pozycję dominującą, chociaś jeszcze niedawno wydawało się, śe dopiero zespoły trójdrośne - czyli z wyróśnionymi głośnikami niskotonowym, średniotonowym i wysokotono-
Elektronika Praktyczna 12/2003
75
KURS
Legacy Focus 20 - potężna konstrukcja pięciodrożna
"Wym - mogą być uznawane ze zespoły wysokiej klasy. Zespoły trójdroż-ne ni9 zniknęły, podaliśmy naw9t przykład zespołu cztero drożnego, a zdarzają się i pięciodrożne, ]9dnak ni9 należy sądzić, że wraz ze zwiększaniem ilości "dróg" auto ma ty es ni 9 i bezproblemowo podnosi się jakość ze społu głośnikow9go. Wi 91 od różność zespołu powinna być dobrze umotywowana. Mimo że ni9 istnieje id9alny głośnik szerokopasmowy, to właśni9 funkcjonowani9 taki9go hipotetycznego głośnika jest sp9łni9ni9m wszystkich postulatów dotyczących wysoki9J jakości przetwarzania. Wi9lo drożność układu ni9 powinna być C9l9m samym w sobi9, ale tylko sposob9m dla uzyskania optymalnych param9trów przetwarzania. Można naw9t powiedzieć, że jes to zło konieczne. Komplikowanie układu ni9si9 bowi9m ze sobą proble-my, któr9 naw9t umiejętnie rozwiązy-wane, pozostawiają p9wn9 ślady. Mówiąc krótko, trzeba wiedzieć dlaczego i po co buduJ9 się układ większy niż dwudrożny, a w myśleniu początkujące-go konstruktora proJ9ktowani9 układu dwudrożn9go, 9W9ntualni9 dwuipółdroż-n9go, powinno być sprawą oczywistą. Co to jest układ dwuipółdrożny? Jak nazwa wskazuje, to układ pośr9dni między dwudrożnym a trójdrożnym. Powstaje przez dodani9 do układu dwu-drożn9go dodatkow9go głośnika nisko-tonow9go, a od układu trójdrożn9go różni się tym, że zamiast głośnika Śr9dniotonow9go, działa w nim głośnik nisko-śr9dniotonowy, tak jak niskotono-wy przetwarzający, oprócz śr9dnich tonów, takŻ9 niski9 tony. Układ taki jest
prostszy od trójdrożn9go, poni9waż ni9 zawiera filtru dolnozaporowego dla głośnika nisko-śr9dniotonow9go. Zespo-ły dwuipółdrożn9 są ob9cni9 bardzo popularn9 i w dużym stopniu zastąpiły zespoły trójdrożn9. Znowu wdepnęliś-my w temat filtrów, ale akurat w dobrym mom9nci9.
Trzeba z tym zrobić porządek
Stwierdziliśmy, że pojedynczy głośnik ni9 moŻ9 przetwarzać cał9go pasma akustycznego - uwaga - z satysfak-cjonująco niskimi zniekształceniami. Oznacza to, że aplikując go do zespo-łu głośnikow9go, nal9Ży odfiltrować te części pasma, któr9 przetwarza ze zbyt wysokimi zniekształceniami. Jednocześ-ni9 nal9Ży podzielić pasmo pomiędzy głośniki zastosowane w zespole i najczęściej unikać szerokich zakresów, w których dwa różn9 głośniki pracują równocześnie. Zal9C9ni9 to naj lepiej spełniają filtry wysokiego rzędu, to znaczy charakteryzujące się stromymi zboczami charakterystyk. Ale... ich stosowanie niesie ze sobą jednak inne komplikacje, o których dalej, natomiast najłagodniejsze filtry 1. rzędu (spadek 6 decybeli na oktawę), też mają swoje sal ety, które skłaniają wielu konstruktorów do ich stosowania. Tutaj rozpoczyna się terytorium sporów i różnych idei, jakie filtry stosować, jednak mało kto ma wątpliwości, że w ogóle są one konieczne. Sytuacje, w których jeden z głośników nie wymaga filtrowania, bowiem jego charakterystyka przetwarzania samoistnie opada w wymaganym dla systemu zakresie, są niezwykle rzadkie, a i tak kontrowersyjne.
Biorąc na przykład prosty układ dwudrożny zwróćmy też uwagę, że nieco inne powody dyktują sposób filtrowania głośnika nisko-średniotonowego, a inne wysokotonowego fa generalnie, inne powody określają filtrowanie dolno-przepustowe, a inne górnoprzepustowe). Z głośnikiem nisko-średniotonowym sprawa jest prostsza - tak jak wspomnieliśmy, zamierzamy zostawić w jego przetwarzaniu tylko ten zakres, który obsługuje poprawnie. W przypadku głośnika wysokotonowego powody są bardziej złożone. Oprócz tego, który dotyczy wyodrębnienia zakresu przetwarzanego z najlepszą jakością, drugi odnosi się do wytrzymałości głośnika wysokotonowego. Głośnik wysokotonowy trzeba filtrować (górnoprzepustowo) już tylko z tego powodu, że nie uczynienie tego naraziłoby go na zniszczenie. W ten sposób w odfiltrowanej części pasma bardzo często głośnik wysokotonowy wykazuje się jeszcze ładną charakterystykę, z której jednak nie korzystamy, ze względu na jego bezpieczeństwo. Dlatego pierwszym, absolutnie niezbędnym elementem w zwrotnicy jest kondensator jako najprostszy filtr górnoprzepustowy dla głośnika wysokotonowego fowe anegdotyczne 4,7 |_i z moich wspomnień sprzed miesiąca).
Zespół dwudrożny z tak skromnym filtrem najprawdopodobniej będzie brzmiał bardzo ułomnie (odzywać się będzie obarczony zniekształceniami zakres charakterystyki głośnika nisko-średniotonowego) , ale ostatecznie może działać w miarę bezpiecznie (chociaż tak proste filtrowanie głośnika wysokotonowego nie zabezpiecza go tak dobrze, jak filtry wyższego rzędu). Znaną brytyjską firmą głośnikową uprawiającą taki skrajny minimalizm jest Epos, którego przynajmniej dawniejsze konstrukcje (współczesne może już nie) miały zwrotnicę składającą się właśnie z jednego tylko kondensatora; nie był to wyraz skąpstwa, ale koncepcji, i pod tym kątem przygotowywano charakterystyki samego głośnika niskotonowego. Zupełnie inną genezę mają niektóre bardzo niskiej klasy konstrukcje, w których takie rozwiązanie wypada tłumaczyć tylko chęcią obniżenia kosztów. Wreszcie można zrozumieć taki układ jako pierwsze kroki hobbisty lub prowizorkę.
Zanim dalej będziemy wnikać w tajniki filtrowania, spójrzmy dokładniej na same głośniki i ustalmy, jakie ich cechy konstrukcyjne i parametry określają, w jakich zakresach powinny być stosowane.
Długość fal?
Wracamy do początkowego problemu i pytania - dlaczego pojedynczy głośnik nie może przetwarzać całego pasma akustycznego? Moglibyśmy tutaj przedstawiać skomplikowaną teorię, ale pójdziemy na skróty. Przede wszystkim nasze obserwacje ograniczymy do przetworników dynamicznych (magnetoelekt-rycznych), które są najpopularniejszym typem głośników spotykanym w kolumnach. Do typu tego należą zarówno duże głośniki niskotonowe, jak i małe ko-pułki wysokotonowe. Już na pierwszy rzut oka widać, że głośniki mające za zadanie przetwarzać częstotliwości najniższe, są znacznie większe od przetwarzających częstotliwości najwyższe. Jest tu analogia do instrumentów muzycznych - stopa perkusji jest większa od werbla, a kontrabas od skrzypiec, a każda grubsza struna wydaje dźwięki niższe niż cieńsza, i tym niższe, na im niższych progach gramy (a więc im dłuższa część struny jest aktywna). Ma to związek z długościami fal - im niższe częstotliwości, tym są dłuższe - ale nie tylko. Przecież kilkunastocentymetrowe membrany typowych głośników nisko-średniotonowych przetwarzają częstotliwości poniżej 100 Hz, nawet jeżeli nie 20 Hz, to przynajmniej 50 Hz. A 50 Hz to fala o długości prawie 7 metrów!
Powierzchnia i amplituda!
Umiarkowana średnica membrany nie jest więc bezwzględną przeszkodą dla przetwarzania niskich częstotliwości, chociaż im większa średnica i powierzchnia, tym łatwiej to zadanie
76
Elektronika Praktyczna 12/2003
KURS
spełniać. Jest więc związek między powierzchnią membrany a częstotliwościami, jakie mają być przez nią przetwarzane, ale związek ten zawiera jeszcze jeden czynnik - amplitudę, z jaką membrana może pracować. Otóż powierzchnia membrany i jej amplituda "współpracują", i mniejsza powierzchnia membrany mośe być rekompensowana przez większą amplitudę, i odwrotnie. Ostatecznie dla zdolności przetwarzania najniższych częstotliwości znaczenie ma jak największe "wychylenie objętościowe", czyli iloczyn powierzchni membrany i jej maksymalnej amplitudy. Dlaczego? I dlaczego nie jest to tak potrzebne przetwarzaniu wysokich tonów? Ponieważ dla ciśnienia akustycznego liczy się powierzchnia membrany i prędkość jej ruchu. Wysokie tony, czyli wysokie częstotliwości drgań, wytwarzają wysoką energię fali dzięki wysokim prędkościom; nawet gdy ruch ten odbywa się na małej amplitudzie, to przecież 20 tysięcy cykli na sekundę oznacza ogromne prędkości. Chcąc osiągnąć porównywalne przyspieszenia przy 20 cyklach na sekundę, trzeba stworzyć warunki do pracy ze znacznie większymi amplitudami, i posiłkować się zwiększaniem powierzchni membrany. Teoretycznie, gdyby można było skonstruować 25-mm średnicy głośnik kopułkowy o amplitudzie powiedzmy jednego metra, głośnik taki mógłby przetwarzać niskie tony.
0 ile... jest jeszcze jeden warunek dla możliwości przetwarzania niskich tonów - częstotliwość rezonansowa układu drgającego głośnika.
Zaczynamy rezonować
W ten parametr trochę się wgryziemy, bowiem będzie on nam w przyszłości pomocny. Każdy układ mechaniczny, w którym funkcjonuje masa
1 podatność (zawieszenie), albo układ elektryczny, w którym występuje in-dukcyjność (cewka) i pojemność (kondensator), charakteryzuje się częstotliwością rezonansową, odwrotnie proporcjonalną do pierwiastka z iloczynu masy i podatności.
Dość prosta, ale nie rninirnalistyczna, typowa zwrotnica dla układu dwu drożnego
Czyli im większa masa i (lub) podatność, tym niższa częstotliwość rezonansowa. Przy częstotliwości tej zachodzą tajemnicze zjawiska, których teorię już sobie darujemy, bowiem ważne jest dla nas przede wszystkim to, że poniżej częstotliwości rezonansowej głośnik szybko traci zdolność efektywnego przetwarzania (jego charakterystyka opada). Aby granica ta leżała jak najniżej, częstotliwość rezonansowa powinna być jak najniższa, a więc podatność zawieszeń i masa membrany głośnika powinny być duże. Dlatego też nasza hipotetyczna 25-milimetrowa kopułka, aby przetwarzać niskie częstotliwości, powinna nie tylko pracować na dużych amplitudach, ale i mieć niską częstotliwość rezonansową - wielokrotnie większą, niż zwykle kopułki mają. Stąd też widać, dlaczego małe głośniki nie potrafią przetwarzać niskich częstotliwości -mają zarówno zbyt małe wychylenia amplitudowe (przypominam - powierzchnia membrany x jej amplituda), jak i zbyt wysokie częstotliwości rezonansowe (przypominam - jeden nad pierwiastek z iloczynu masy i podatności jej zawieszeń). Opanowanie myślowe tych zawiązków otwiera drogę do rozumienia kolejnych zależności, dlatego warto w to włożyć trochę wysiłku.
Rezonujemy dalej...
Rozgryźmy więc tę sprawę do końca, a będziemy mieli ją z głowy. Naświetlmy te związki jeszcze inaczej. Otóż częstotliwość rezonansowa głośnika wpłynie jednoznacznie na jego charakterystykę przetwarzania, ale na charakterystyce tej nie ujrzymy możliwości głośnika w zakresie wychylenia objętościowego! Czy nie ma tu sprzeczności? Przecież powiedziano, że wychylenie objętościowe określa możliwości pracy prsy niskich częstotliwościach? Tak, ale badanie charakterystyki przetwarzania przeprowadza się zwykle przy niskim poziomie sygnału wejściowego, który nie ujawnia, jak dużą moc głośnik jest zdolny przyjąć.
Można więc zbudować mały głośnik niskotonowy (o niewielkiej powierzchni membrany i niewielkiej dopuszczalnej amplitudzie), który dzięki dużej masie membrany i podatności zawieszeń będzie miał niską częstotliwość rezonansową, a wskutek tego charakterystykę przetwarzania (mierzoną przy niskim sygnale sterującym) sięgającą najniższych częstotliwości. Jednak już moc nieco większa niż zawarta w dotychczasowym sygnale sterującym, ale w sumie wcale nie taka duża, powiedzmy kilka watów, spowoduje że na głośniku wymuszane będą amplitudy znacznie większe, niż jest on w stanie bez przesterowania osiągać. Mówiąc żargonem, jego układ drgający będzie szybko "wypluwany". Taki głośnik specjalnie nam się nie przyda, sama niska częstotliwość rezonansowa i ładna charakterystyka przetwarzania
Podzielona na dwie płytki skomplikowana zwrotnica układu pieciodrożnego
nie dają gwarancji rzeczywiście skutecznej pracy w zakresie niskich częstotliwości. Wyobraźmy sobie przykład odwrotny - głośnik o dużej powierzchni membrany i dużej amplitudzie maksymalnej, któremu konstruktor ustalił jednak, np. za pomocą sztywnego zawieszenia (mała podatność), wysoką częstotliwość rezonansową. Charakterystyka przetwarzania takiego głośnika wykaże więc wczesny spadek w zakresie niskich tonów, a dostarczanie do niego nawet dużej mocy w zakresie niskich tonów nie doprowadzi do dużych wychyleń i wykorzystania jego możliwości amplitudowych - głośnik bowiem jest zbyt mocno "trzymany" przez zawieszenie. Dlatego przy konstruowaniu i wybieraniu głośnika niskotonowego czy nisko-śred-niotonowego, należy uchwycić właściwe proporcje między częstotliwością rezonansową a wychyleniem objętościowym. Gdzieś dalej zajmiemy się tym, że określając częstotliwość rezonansową trzeba umiejętnie dobrać masę i podatność, a określając wychylenie objętościowe - powierzchnię i amplitudę.
Dlaczego niskotonowy nie może być wysokotonowym?
Dlaczego mały głośnik, o małej masie membrany, małej jej powierzchni i wychyleniu, nie jest zdolny przetwarzać niskich częstotliwości - już wiemy. Dlatego też głośniki szerokopasmowe bardziej przypominają głośniki nis-kotonowe i nisko-średniotonowe, niż wy so kotonowe kopułki. Dlaczego jednak duży czy choćby średniej wielkości głośnik nie jest w stanie prze-
Elektronika Praktyczna 12/2003
77
KURS
Głośnik wysokotonowy cieszy się z tego, że ma membrang małq i lekkq. I w dodatku nie musi ona pracować przy dużych wychyleniach
twarzać częstotliwości wysokich? Tym razem związek między średnicą membrany a długością promieniowanych fal jest już wyraźny, ale nadal ma znaczenie również masa membrany. Powyżej częstotliwości rezonansowej układ drgający jest układem bezwładnościowym , więc masa membrany ogranicza prędkość jej ruchu wraz ze wzrostem częstotliwości. Utrzymanie w miarę płaskiej charakterystyki przetwarzania w szerokim zakresie powyżej częstotliwości rezonansowej zawdzięczamy jednak poprawiającej się relacji między średnicą membrany a długością promieniowanych przez nią fal (poprawia się tzw. rezystancja promieniowania). Kiedy długość fali (rozchodzącej się w powietrzu) przestaje być wyraźnie większa od średnicy membrany, zwiększa się efektywność. Ale ze zjawiska tego możemy korzystać tylko do pewnego momentu, a ponadto, kiedy długość fali (rozchodzącej się w membranie) staje się tak mała, że zbliża się do jej średnicy, zaczynają się nowe kłopoty. Przetwarzając fale dłuższe, membrana zachowuje się jak sztywny tłok, lub bardzo podobnie. Oznacza to, że cała jej powierzchnia pracuje w tej samej fazie, a ponieważ fale (w powietrzu) są wyraźnie dłuższe niż różnice odległości od poszczególnych części membrany (o kształcie nawet bardzo głębokiego stożka), stąd ciśnienie przed membraną jest stabilne w funkcji częstotliwości. Dla krótkich fal następują komplikacje wynikające z dwóch podstawowych powodów. Z samej stożkowej geometrii membrany wynika, że nawet gdyby wszystkie jej fragmenty poruszały się w sposób skoordynowany, to różnice w odległościach od poszczególnych części membrany do punktu oddalonego od głośnika, będą powodowały ich przesunięcia w fazie i zaburzenia charakterystyki wypadkowej. Na dodatek membrana przestaje pracować jak sztywny tłok. Fale rozchodzące się w niej zaczynają ją wyginać, co nazywa się zjawiskiem "dzielenia" membrany, Są to zjawiska niezwykle skomplikowane, zależne od prędkości roz-
chodzenia się fal w membranie (im wyższa, tym lepiej, bowiem wtedy fale określonej częstotliwości są dłuższe i ich relacja do średnicy membrany się poprawia), jej sztywności (zwykle idzie w parze z wysoką prędkością rozchodzenia się fali, ponadto do pewnego momentu to czynnik sprzyjający utrzymaniu pracy wedle zasady "sztywnego tłoka", ale powyżej powodujący gwałtowne zjawiska rezonansowe), i wreszcie od tłumienia wewnętrznego (wprowadza ono tłumienie tych rezonansów, ale trudno membranę o wysokim tłumieniu uczynić sztywną). Dzielenie się membrany powoduje, że różne jej fragmenty pracują z różnymi fazami, i w połączeniu z przedstawionymi problemami "geometrycznymi" powoduje to, że charakterystyka staje się mniej lub bardziej poszarpana. Gdy jeszcze przywołamy problem masy, powodujący spadek zdolności przetwarzania, charakterystyka ostatecznie opada i to w sposób zwykle daleki od spokojnego zbocza 6 dB/okt. A i to jeszcze nie wszystko. Wraz ze wzrostem częstotliwości, głośnik zaczyna skupiać promieniowanie na osi głównej... Co z tego wynika dla projektowania zwrotnic, zostawimy już na kiedy indziej. Teraz wychodzimy z tego gąszczu problemów upewnieni, że głośnik zaprojektowany jako niskotonowy czy nisko-średnioto-nowy, nie jest w stanie przetwarzać częstotliwości wysokich, i to z wielu powodów. Głośnik wysokotonowy nie tylko bowiem może, ale i powinien mieć membranę o małej średnicy i jak najmniejszej masie.
Membrana się nie rozdwoi
Na dłużej zajęliśmy się głośnikami, a przecież w tym odcinku mamy jeszcze choćby skrótowo przedstawić rolę, jaką odgrywa obudowa. Konieczność jej stosowania, wielkość, proporcje, budowę wewnętrzną, określają przede wszystkim wymagania głośnika przetwarzającego niskie częstotliwości -a więc niskotonowego lub nisko-śred-nioton owego. Głośnika mającego przetwarzać niskie tony nie można pozostawić bez obudowy, bowiem... nie będzie przetwarzał niskich tonów. Przednia i tylna strona membrany głośnika dynamicznego pracują w przeciwnych fazach - kiedy patrząc z przodu głośnika, membrana wykonuje ruch do przodu, sprężając powietrze, to patrząc od tyłu, cofa się, rozprężając je. Fale niskich częstotliwości mają znaczną długość, więc gdyby głośnik znajdował się w dużej odgrodzie, powstające strefy sprężania i rozprężania rozpościerałyby się na dużym obszarze odpowiednio przed i za głośnikiem. Bez odgro-dy, ciśnienie sprzed głośnika "ucieknie" do tyłu, gdzie było podciśnienie, a przy przeciwnym ruchu membrany nastąpi zjawisko odwrotne. Nastąpi efekt "zwarcia akustycznego" i cały czas wokół głośnika ciśnienie będzie
W dobrze skonstruowanym głośniku niskotonowym niska częstotliwość rezonansowa powinna iść w parze z dużym wychyleniem objętościowym. Tylko wówczas charakterystyka przetwarzania będzie sięgała niskich częstotliwości, i głośnik będzie je wstanie odtwarzać przy wysokich poziomach natężenia
bliskie zeru. Dopiero przy częstotliwościach, których fale mają długość porównywalną ze średnicą membrany, chociaż ciśnienia na osiach głównych przed i za głośnikiem zawsze będą pozostawać w przeciwnych fazach, to już "obieganie" fali dookoła głośnika spowoduje jej przesunięcia w fazie, i interferencję z falą promieniowaną przez przeciwną stronę membrany w sposób mogący dawać niezerowe ciśnienie wypadkowe. Dlatego też z głośnika niezabudowanego słyszymy średnie tony, a nie słyszymy basu. Aby usłyszeć bas, trzeba zlikwidować fazową kolizję między pracą przedniej i tylnej strony membrany. Oczywiście nie da się tego zrobić żadnymi elektronicznymi sztuczkami - przednia i tylna strona są stronami tej samej membrany, która się przecież nie rozdwoi. Odizolowanie przedniej i tylnej strony membrany w teoretycznych rozważaniach przeprowadza się za pomocą nieskończenie wielkiej odgrody. Z taką ideą ma coś wspólnego obudowa typu linia transmisyjna, a z koncepcją skończonej odgrody obudowa typu dipol (otwarta), ale w praktyce spotykamy najczęściej obudowy bass-reflex, i znacznie rzadziej zamknięte. Teoria bass-reflexu jest dość skomplikowana, teraz w jednym zdaniu powiemy, że zasada jej działania polega na wywołaniu w obudowie zjawisk rezonansowych, które powodują możliwość wypromieniowa-nia części energii produkowanej przez tylną stronę membrany w fazie zgodnej z pracą przedniej strony membrany (i bez obaw, membrana się nie rozdwoi). Natomiast obudowa zamknięta jest czymś znacznie prostszym, a jej funkcjonowanie polega na zamknięciu i wytłumieniu całej energii promieniowanej przez tylną stronę membrany. Jeżeli jednak ktoś myśli, że stwierdzenie "znacznie prostszym" oznacza, że prostym, już za miesiąc przekona się, że tak nie jest. Andrzej Kisiel
78
Elektronika Praktyczna 12/2003
NA CD KATALOGI FIRM: RFM, AMPIRE, AMIC ORAZ EAGLE 4.11 IAVR STUDIO 4.08
12/2003
grudzień
15 zł 50 gr (w tym 7% vat)
o
Data i;S
9 771640 769039 12>
Tester kabli sieciowych LAN
Skuteczny w działaniu i prosty w wykonaniu - projekt naszego Czytelnika przedstawiamy na słr. 101.
semi-MatrixOrbital LCD do PC
Druga część opisu niebanalnego PC-towego gadżetu. Słr. 48.
Stereofoniczny wzmacniacz klasy D 2x20W
Wbrew "nieczystej" naturze klasy D, wzmacniacz ten może okazać się interesujqcy także dla audlofili. Słr. 21. -
mail2led - sygnalizator e-maili dla PC
Projekt znany naszym internetowym forumowiczom. Przykład tego, że marzenia się spełniajql Słr. 79.
Przetwornica do lamp Nixie
Ciqg dalszy nixie'owych przygód w EP. Na str. 80 pokazujemy, jak łatwo i pewnie zasilić lampy z 12 V.
nVisage
"Mikroprocesor" - nie zawsze ^ znaczy to samo
Artykuł prezentowany na słr. 55 ma w naszych założeniach dogłębnie przedstawić korzenie mikrokontrolerow - podzespołów niezwykle "banalnych" dla współczesnych elektroników.
Komputerowy termometr z interfejsem RS232
Na słr. 45 przedstawiamy opis przystawki do PC, doskonale współpracujqcej ze słynnym Girderem. Ą
nVisage DXP - wielowymiarowy system projektowy firmy Altium
Prezentację środowiska DXP kontynuujemy na słr. 71.
Konwerter USB<->RS232
Projekt opracowany w ramach koncertu życzeń naszych Czytelników - kolejne podejście do USB. Słr. 41. T
Nowe sterowniki modułowe firmy Omron
Nowości z oferty firmy Omron przedstawiamy w artykule na słr. 135.
Elektronika Praktyczna 12/2003
Nowości Lattice'a A
Wielki powrót na rynek? Majq szansę, o czym przekonajq się Czytelnicy artykułu ze słr. 68.
Programator UprogHS 48 Portable
Polak naprawdę potrafi! Zainteresowanych sukcesem rodaków na skalę niemalże światowq zapraszamy na słr. 63.
W głośnikowym żywiole
Guasitechniczne wywody "głośnikowego" guru z miesięcznika Audio przedstawiamy na słr. 75. V
IKA
Nr 12 (132)
.grudzień 2003
Projekty ^^^^^^^^^^^^^^^^~
Miernik energii elektrycznej i watomierz, cześć 1 ...................14
Stereofoniczny wzmacniacz klasy D 2x20W............................21
Spawarka impulsowa do spawania metodq TIG...................27
Zdalnie sterowany (DTMF) termostat, cześć 1.........................35
Konwerter USB<->RS232..............................................................41
Komputerowy termometr z interfejsem RS232.........................45
semi-fvlatrixOrbital LCD do PC, cześć 2....................................48
Konfiguracja Girdera do współpracy z odbiornikiem SIRC/RC5(AVT-519) oraz termometrem (AYT-558).................51
Miniprojekty
--------- ---------Ś
mail2led - sygnalizator e-maili dla PC.....T..................................79
Przetwornica do lamp Nixie.......................................................80
Podzespoły
"Mikroprocesor" - nie zawsze znaczy to samo........................55
Nowości Lattice'a.......................................................................68
Przetwornice DC/DC dla urzqdzeń
elektroniki przemysłowej...........................................................13$
Sprzęt
Programator UprogHS 48 Portable............................................63
Programy
nYisage DXP - wielowymiarowy system projektowy
firmy Altium...................................................................................71
Kurs
W głośnikowym żywiole, cześć 2...............................................75
Silniki elektryczne w praktyce elektronika, cześć 1.................85
Programowe interpretery poleceń w C...................................91
Podstawy projektowania systemów
mikroprocesorowych, cześć 10.................................................98
Automatyka
Nowe sterowniki modułowe firmy Omron..............................135
Działanie sterowników S7-200- podstawy, cześć 2..............141
Projekty Czytelników^^^^^^^^^^^^^^^^H
Tester kabli sieciowych LAN.............................^*>*^............101
Z kraju i ze świata........................................................123
Kramik+Rynek..............................................................105
Bascomowe Porady......................................................95
Listy.................................................................................111
Ekspresowy Informator Elektroniczny
Wykaz reklamodawcow............................................122
Elektronika Praktyczna 12/2003
MINIPROJEKTY
Wspólną cechą układów opisywanych w dziale "Miniprojekty" jest łatwość Ich praktyczne] 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 '"Mimprojektow" 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,
mail2led - sygnalizator e-maili dla PC
Któż z nas chciałby
być natychmiast
informowany o nowej
poczcie elektronicznej
nawet przy uśpionym
komputerze? Odpowiedź
jest prosta - każdy!
Właśnie dlatego
mail2led zainteresuje
chyba każdego
komp u tero wca.
R ekom en da ej e:
układ, dzięki
odpo wi edniem u
oprogramowaniu, jest
dosłownie dla każdego.
Sprawdzanie poczty elektronicznej należy do codziennych czynności Sygnalizator poczty mail2led składa się z dwóch części: sprzętowej (schemat układu na rys. 1) i programowej (okno programu pokazano na rys. 2).
Budowa układu sygnalizatora jest tak prosta, że nawet ktoś, kto nie trzymał nigdy
DB9
200
Konto 1
Konto 2 Konto 3
Rys. I. Schemat elektryczny interfejsu mail2lecl
lutownicy w ręce poradzi sobie w 5 minut! Diody LED sygnalizatora możemy zamocować na wolnej zaślepce obudowy lub można obudować według własnego pomysłu. Możemy także zastosować diody dwukoloro-we, np. lubiane przez użytkowników PC niebieskie i białe. W modelowym układzie zastosowano zielone i czerwone diody LED o średnicy 5 mm.
Nadruk na zaślepce można wykonać następująco: drukujemy "naklejkę" na zwykłym papierze, przyklejamy do zaślepki, wiercimy otworki, a następnie obklejamy bezbarwną, samoprzylepną szeroką taśmą. Na koniec należy zrobić otworki w taśmie i zamocować diody. Efekt jest naprawdę zadowalający.
Rys. 2. Widok okno ustowień programu mail2lecl
RS232 w komputerze. Oczywiście, do sprawdzania stanu kont pocztowych potrzebny jest jeszcze odpowiedni program. Jest on darmowy (freeware) i można go rozpowszechniać do woli.
Po uruchomieniu programu (działa pod wszystkimi Windowsami, począwszy od Windows 95) pojawia się okno konfiguracyjne (rys. 2), umożliwiające wybranie portu, do którego podłączony jest sygnalizator. W tym oknie możemy także aktywować funkcję uruchamiania programu razem z Windows (bardzo zalecane!), a także zablokować pojawianie się okienek popup informujących o nowej poczcie lub błędzie. Na następnych zakładkach okna wpisujemy dane naszych kont pocztowych, a także ustawiamy czas, po którym program będzie sprawdzał dane konto w poszukiwaniu nowych listów.
Gdy wszystko jest dobrze, pozostaje nam tylko kliknię-cie przycisku Zapisz i zamknij. Wszystkie ustawienia programu przechowywane są w rejestrze Windows. Hasła do kont e-mail są szyfrowane algorytmem Bluefish, aby zapewnić choć odrobinę bezpieczeństwa danych.
Po zamknięciu okna ustawień program natychmiast rozpoczyna działanie. Oczywiście, w każdym momencie możemy kliknąć prawym kla-
Rys. 3. Menu podręczne przywołane prowym przyciskiem myszy
Gotowy układ należy podłączyć do wolnego gniazda
Rys. 4. Okienko popup informujące o nowej poczcie
wiszem myszy na ikonę na pasku zadań i przywołać menu podręczne (rys. 3).
Gdy ustawienia są wpisane do rejestru, program rozpoczyna odmierzanie czasu i sprawdzanie poczty. Jeśli jest nowa poczta, to program wyświetli okienko popup (rys. 4) i zaświeci się zielona dioda na interfejsie. Jeśli są jakieś nieprawidłowości, wtedy wyświetli się okienko popup z odpowiednim błędem, diody zaczną świecić na przemian, a lista błędów będzie wyświetlona w oknie błędów, które można wybrać poleceniem Błędy... z menu podręcznego.
Jeśli projekt mail2led zyska przychylność Czytelników, to powstanie wersja obsługująca dial-up (specjalnie dla modemowców!), a także różne wersje językowe.
Myślę, że po przeczytaniu tego artykułu każdy posiadacz komputera zbuduje sobie sygnalizator i będzie zawsze wiedział, czy na odległych skrzynkach pocztowych nie leży jakaś korespondencja.
Czekam na sugestie Czytelników i pytania pod adresem: biela@hot.pl. Paweł Biel a wski
WYKAZ ELEMENTÓW
Rezystory
Rl 200D Półprzewodniki
LEDl, LED3, LED5 diodo LED
zielono
LED2, LED4, LEDÓ diodo LED
czerwono
Różne
Jl: wtyk DB9 żeński + ew.
obudowo
przewód 4-żyłowy
Elektronika Praktyczna 12/2003
MINIPROJEKTY
Przetwornica do lamp Nixie
Opublikowane w EP
opisy zegarów
z gazowanymi
wyświetlaczami
lampowymi Nixie
zachęciły wielu naszych
Czytelników do
przeszukania swoich
magazynków. Okazuje
się, że najpoważniejszym
problemem zgłaszanym
nam przez Czytelników
jest zasilanie tych lamp.
Urządzenie przedstawione
w artykule ten problem
rozwiązuje.
Rekomendacje dla
projektantów urządzeń
lampowych, szczególnie
dobrze nadaje się do
zasilania wyświetlaczy
I amp o wych Nixi e.
Schemat elektryczny przetwornicy pokazano na rys. 1. Jest to klasyczna przetwornica impulsowa ze stabilizacją napięcia wyjściowego, wykonana na specjalizowanym sterowniku MC34063. Ponieważ układ ten integruje w sobie wszystkie bloki funkcjonalne poza końcówką mocy (w stopniu mocy pracuje tranzystor Ql), diodą kluczującą (Dl) i dławikiem (Li), budowa przetwornicy jest mało skomplikowana. Dzięki temu z jej wykonaniem nie będą mieli problemu także mniej wprawni elektronicy.
Jakość napięcia uzyskiwanego na wyjściu przetwornicy (tzn. współczynnik jego stabilizacji i napięcie tętnień) nie są zbyt wysokie, ale nie ma to istotnego znaczenia dla jakości działania lamp Nixie
czy magicznego oka, do zasilania którego można także zastosować tę przetwornicę.
Na rys. 2 pokazano schemat montażowy płytki drukowanej przetwornicy. Jej montaż nie wymaga posiadania specjalnego sprzętu ani szczególnych umiejętności. Uwagę należy zwrócić jedynie na sposób montażu tranzystora Ql - wyprowadzenie jego drenu jest jednocześnie radiatorem, który należy przylutować do odsłoniętego pola na płytce drukowanej. Czas lutowania należy skrócić do minimum, dbając jednocześnie o zapewnienie wysokiej jakości lutu.
Uruchomienie przetwornicy sprowadza się do ustawienia pożądanego napięcia na wyjściu. Przy zasilaniu
Rys. 1
Rys. 2
przetwornicy napięciem 12 V i obciążeniu jej wyjścia rezystorem 20 km można uzyskać na jej wyjściu stabilne napięcie o wartości 160 do 205 V. Andrzej G a wrył u k
WYKAZ ELEMENTÓW
Rezystory
Pl: 2,2kO
R2: 4,7kQ
R4: 330O
R3: ÓSOkQ
Rl: zworko
Kondensatory
Cl: 1000^F/25V
C2, C3: lOOnF
C4: lnF
CS: 47^F/350V
Półprzewodniki
Ul: MC340Ó3A
Gl: IFRS40S
Dl: BW29/400
Różne
Fl: CUAT
Jl, J2: ARK2
LI: 330^H (max. la/min. 15A)
Płytka drukowana jest dostępna wAVT- oznaczenie AYT-1385.
Wzory płytek drukowanych w formacie PDF są dostępne w Iniernecie pod adresem; pcb.ep.com.pl oraz na płycie CD-EP12/2003B w katalogu PCB.
80
Elektronika Praktyczna 12/2003
KURS
Silniki elektryczne w praktyce elektronika, część 1
Jak działa silnik elektryczny
"Na przewodnik z prądem w polu magnetycznym działa siła F równa...."
- tyle mniej więcej każdy pamięta ze szkoły. Żeby zrobić z tego silnik elektryczny, potrzebny jest nieruchomy sto-jan i osadzony na łożyskach wirnik. Każdy z tych elementów musi spełniać przynajmniej jeden warunek:
- musi umożliwić przepływ prądu,
- musi wytwarzać własne pole magnetyczne.
Żeby chciało się to jeszcze kręcić, potrzebna jest cykliczna zmiana kierunku przepływu prądu lub zmiana orientacji i natężenia (wirowanie) pola magnetycznego. Takie minimum teorii wystarczy do zrozumienia działania większości silników elektrycznych.
Podział silników elektrycznych
Istnieje ponad sto rodzajów silników, różniących się zasadą pracy, budową i właściwościami. Niektóre rodzaje występują tylko w podręcznikach i próżno ich szukać w sklepach. Poniższy podział obejmuje najważniejsze typy silników, produkowane masowo: Silniki prądu stałego
- komutatorowe, w rodzinie których są produkowane:
- silniki z magnesem trwałym;
- silniki szeregowe;
- silniki bocznikowe;
- silniki szeregowo-bocznikowe;
- z wirującym magnesem, w rodzinie których są produkowane:
- dwubiegunowe z czujnikami Halla,
- wielobiegunowe z czujnikami Halla lub enkodereni,
- krokowe, w rodzinie których są produkowane:
- unipolarne,
- bipolarne,
- liniowe.
Silniki prądu zmiennego
- komutatorowe (uniwersalne),
- asynchroniczne 1-fazowe, w rodzinie których są produkowane:
- kondensatorowe;
- ze zwartą fazą rozruchową;
- z odłączanym uzwojeniem rozruchowym;
- asynchroniczne 3-fazowe,
- synchroniczne.
Wybrane parametry silników elektrycznych
Podstawowe parametry silnika są zwykle podane na jego tabliczce znamionowej, pozostałe - np. moment rozruchowy, prąd rozruchowy, można znaleźć tylko w katalogach lub oszacować według właściwości poszczególnych rodzajów silników.
Moc znamionowa. Zazwyczaj jest podawana moc elektryczna w watach,
Na co dzień nie zdajemy sobie sprawy, jak olbrzymia liczba różnych silników elektrycznych nas otacza. Wielu elektroników budując sterowniki mikroprocesorowe, chciałoby skorzystać z tego bogactwa, ale nie zawsze wiadomo, jak to zrobić.
Dlatego postanowiłem przybliżyć Czytelnikom temat właściwości i sposobów sterowania typowych silników elektrycznych - może w sposób nienaukowy, przystępnie i bez stosowania wyższej matematyki.
tzn. moc pobierana przez silnik podczas pracy z normalną prędkością obrotową. Moc mechaniczna, tzw. moc na wale, jest mniejsza i zależy od sprawności silnika (typowo 40...80%).
Napięcie zasilania. Znamionowa wartość napięcia zasilającego (stałego lub zmiennego), przy której określane są inne parametry. Większość silników może być zasilana napięciem niższym (minimalnie od 5%UZ dla silników komutatorowych i od 70%U2. dla indukcyjnych). Nie należy stosować napięć dużo wyższych od znamionowego (maksimum +15%).
Moment obrotowy. W uproszczeniu jest to siła, z jaką silnik potrafi kręcić obciążeniem. Podawany jest w Nm (niu-ton * metr), typowe wartości dla małych silników: od 0,01 do 50 Nm.
Moment rozruchowy. Jest to bardzo ważny parametr, informujący o tym, czy silnik jest w stanie wystartować pod obciążeniem. Może być podany w Nm lub w procentach momentu obrotowego. W zależności od rodzaju silnika moment rozruchowy może być mały (do 150%), średni (150...250%) lub duży (powyżej 250%). Moment rozruchowy może być parametrem decydującym o przydatności silnika do określonych zastosowań. Najmniejsze wymagania stawia napęd wentylatorów - obciążenie startowe jest zerowe i rośnie z kwadratem prędkości obrotowej, można zastosować nawet silnik z momentem rozruchowym niższym od 100%. Najtrudniejsze warunki rozruchu występują w napędach sprężarek, dźwigów oraz pojazdów.
Obroty znamionowe. Zawsze są podawane obroty w normalnych warunkach pracy, tzn. przy znamionowym obciążeniu i napięciu zasilania. Obroty silników mogą zawierać się w granicach 100...100000 obr./min., ale najczęściej spotykane wartości to 1000...4000 obr./min.
Prąd znamionowy i prąd rozruchowy. Prąd znamionowy jest to pobór prądu w normalnych warunkach pracy. Prąd rozruchowy występuje tylko pod-
czas rozpędzania silnika i jest 2...8-krot-nie większy od prądu znamionowego (największe prądy rozruchowe mają silniki indukcyjne). Warto o tym pamiętać, projektując układ sterowania i zasilania silnika.
Silniki komutatorowe prądu stałego z magnesem trwałym (PMDC)
Konstrukcja silnika komutatorowego jest znana od 100 lat i mimo swoich wad silniki te nadal są powszechnie stosowane, głównie ze względu na łatwość regulacji obrotów i momentu obrotowego.
Konstrukcję silnika komutatorowego z magnesem trwałym przedstawiono na rys. 1. Uzwojenia wirnika umieszczone są w szczelinach żelaznego rdzenia i podłączone do komutatora. Komutator składa się z wielu płytek miedzianych umieszczonych na bocznej powierzchni walca, po którym ślizgają się węglowe szczotki zasilane prądem. Zadaniem komutatora jest przełączanie kierunku przepływu prądu w uzwojeniach, tak aby oddziaływanie z polem magnetycznym stojana wprawiło wirnik w ruch obrotowy. Obroty silnika komutatorowego zależą liniowo od napięcia zasilania, a moment obrotowy od natężenia prądu. Zmianę kierunku obrotów uzyskuje się poprzez zmianę bieguno-
Megnesy stojana
\4Uzwojenie rotora
Szczotki
Rys. 1. Budowa silnika komutatorowego z magnesem trwałym
Elektronika Praktyczna 12/2003
85
KURS
Obrót wirnika
Magnesy trwałe
Szczotki
Rys. 2. Budowa silnika z wirnikiem bez żelaza
wości zasilania. Obroty można łatwo regulować w szerokich granicach (od 5% do 110% obrotów znamionowych) z zachowaniem dużego momentu obrotowego. Istnieje też odmiana silnika komutatorowego - tzw. silnik z wirnikiem bez żelaza (rys. 2). W takim silniku wirnik nie posiada rdzenia żelaznego i jest wykonany podobnie do płytki drukowanej - uzwojenia są wykonane w postaci taśm miedzianych przyklejonych do krążka z laminatu. Ze względu na bardzo małą masę wirnika taki silnik ma małą bezwładność - może więc startować bardzo szybko i osiągać duże prędkości obrotowe. Szczotki są dociskane do obrzeża wirnika, rolę komutatora pełnią pola stykowe na jego obwodzie. Silniki tego typu używane są do napędu wirówek i do bardzo szybkich serwomechanizmów.
Dodatkową zaletą silników z magnesem trwałym jest łatwość hamowania. Wykorzystuje się tutaj odwracalność pracy takiego silnika: obracanie wirnikiem bez zasilania powoduje, że silnik staje się prądnicą. Wystarczy w chwili odłączenia zasilania zewrzeć zaciski silnika, aby powstał duży moment hamujący (zaawansowane sterowniki takich silników potrafią odzyskiwać energię hamowania silnika i zwracać ją do źródła zasilania).
Niestety silniki komutatorowe mają też wady. Najważniejsza z nich to zużywanie się szczotek i komutatora, co wymaga okresowej konserwacji silnika (trwałość komutatora jest szacowana na 2...3 tysiące godzin pracy). Poza tym iskrzenie na komutatorze wytwarza spore zakłócenia elektromagnetyczne, do tego dochodzi hałaśliwa praca i wysokie koszty produkcji.
Niskonapięciowe silniki komutatorowe z magnesem trwałym są powszechnie używane w zabawkach, starszych modelach magnetofonów, niektórych serwomechanizmach. Do niedawna były to najczęściej stosowane silniki w zakresie mocy do 20 W, obecnie są wypierane przez nowocześniejsze silniki bezszczotkowe z wirującym magnesem.
Silniki komutatorowe szeregowe i bocznikowe
Zamiast magnesu trwałego można do wytworzenia pola magnetycznego stojana użyć elektromagnesu, otrzymu-
jemy wtedy silnik z dwoma uzwojeniami: stojana i wirnika. W zależności od układu połączeń otrzymamy silnik szeregowy, bocznikowy lub szeregowo-bocznikowy (rys. 3). Silnik szeregowy ma bardzo duży moment obrotowy i rozruchowy, ale ,,miękką" charakterystykę obciążenia, tzn. obroty bardzo silnie zależą od obciążenia silnika. Bez obciążenia silnik szeregowy może rozpędzać się bez ograniczeń, aż do jego zniszczenia - tzw. ,,rozbieganie się" silnika. Wady tej jest pozbawiony silnik bocznikowy - jego obroty są stałe i prawie niezależne od obciążenia. Niestety silniki bocznikowe (poza bardzo małymi) wymagają skomplikowanych układów płynnego rozruchu ograniczających prąd rozruchowy, a moment rozruchowy jest dużo mniejszy niż w silnikach szeregowych. Silnik szeregowo-bocznikowy ma charakterystykę zbliżoną do szeregowego, dodatkowe uzwojenie bocznikowe ogranicza maksymalne obroty przy pracy bez obciążenia.
Regulacja obrotów jest możliwa poprzez zmianę napięcia zasilania. Kierunek obrotów jest stały bez względu na biegunowość zasilania, zmiana kierunku wymaga zamiany miejscami końcówek jednego z uzwojeń: wirnika lub stojana.
Szeregowe silniki prądu stałego na 12 V i 24 V są powszechnie stosowane w samochodach (dmuchawa - 120 W, wycieraczki - 50 W, rozrusznik - 1200 W) oraz w wiertarkach akumulatorowych. Silniki większej mocy spotyka się w napędach maszyn oraz - bardzo duże - w pojazdach szynowych. Silniki bocznikowe i szeregowo-bocznikowe używane są głównie w przemyśle -m.in. do napędu dźwigów.
Sterowniki silników komutatorowych
Opisane poniżej układy mogą być stosowane do wszystkich rodzajów silników komutatorowych, jednak zmiana kierunku obrotów i hamowanie jest możliwe tylko w przypadku silników z magnesem trwałym.
Najprostszym sposobem regulacji obrotów jest zastosowanie potencjometru o odpowiednio dużej mocy, trochę lepszym - regulowany stabilizator napięcia. Niestety podstawową wadą obu układów jest zamiana dużej traconej mocy w ciepło. Dlatego też powszechnie stosowane jest zasilanie silnika falą prostokątną o zmiennym współczynniku wypełnienia PWM. Całkowanie impulsów sterujących, dzięki czemu ruch wirnika jest płynny, odbywa
się w sposób naturalny - po- Silnik szeregowy Silnik bocznikowy Silnik szeregowo-bocznikowy
przez bezwładność wirnika.
Częstotliwość impulsów za- Rys. 3. W zależności od układu połączeń uzwojeń wiera się w przedziale od silniki mogą być szeregowe, bocznikowe lub 100 Hz do kilku kHz. Zbyt szeregowo-bocznikowe
niska częstotliwość może powodować skokowe zmiany momentu obrotowego a zbyt wysoka - straty indukcyjne w silniku. Należy tak dobrać częstotliwość, aby na każdy obrót silnika przypadało przynajmniej kilka impulsów.
Taki sposób sterowania jest bardzo wygodny w przypadku mikroprocesorów - generator PWM może być łatwo zrealizowany programowo (niektóre procesory mają też sprzętowy generator PWM). Przykładowy układ sterowania obrotami silnika 12 V/20 W przedstawiono na rys. 4. W układzie dodatkowo wprowadzono możliwość zmiany kierunku obrotów za pomocą przekaźnika sterowanego wyjściem DIR. Jeżeli nie ma takiej potrzeby to silnik podłącza się bezpośrednio między dren tranzystora mocy i ,,plus" zasilania. Przy doborze elementów należy zwrócić uwagę na kilka istotnych szczegółów:
- Dioda Dl jest nie tylko elementem tłumiącym przepięcia, ale umożliwia także zachowanie ciągłości przepływu prądu w indukcyjności silnika. Nie powinna to być zwykła dioda prostownicza 1N4001, lecz dioda szybka na prąd 1...3 A (np. BY299, BY397, BYT03, BYW72).
- Tranzystor kluczujący może być typu MOS lub bipolarny, powinien mieć dopuszczalny prąd drenu (kolektora) przynajmniej 3-krotnie większy od prądu znamionowego silnika. Jeżeli stosujemy tranzystor bipolarny (np. Darlington TIP122), to R1=R2 = 1,8 kD.
- Zastosowanie dwóch połączonych równolegle inwerterów 74HC04 ułatwia szybkie przeładowywanie pojemności bramki Tl. W tym celu można zamiennie użyć np. bufora mocy 74HC240 i Rl = 100D (dla częstotliwości kluczowania powyżej 1 kHz lepiej jest użyć tranzystora bipolarnego).
- Warto zastosować w układzie ogranicznik prądu obciążenia (lub bezpiecznik) dla uniknięcia uszkodzeń w przypadku przeciążenia silnika.
- W programie sterującym trzeba uwzględnić konieczność zatrzymania
86
Elektronika Praktyczna 12/2003
KURS
74HC04
Rys. 4. Układ sterowania obrotami silnika 12 V/20 W
silnika przed przełączeniem kierunku obrotów, w przeciwnym razie przez silnik popłynie bardzo duży prąd w momencie zmiany kierunku. - Iskrzenie komutatora może zakłócać pracę mikrokontrolera. Silnik może być fabrycznie wyposażony w szeregowe dławiki przeciwzakłóceniowe, jeżeli ich brak, to należy zastosować dwa dławiki 22...100 uH przystosowane do odpowiednio dużego prądu (miniaturowe dławiki w obudowach ,,rezystorowych" się nie nadają).
Na rys. 5 przedstawiono uproszczony schemat sterownika w układzie mostkowym X, umożliwiający sterowanie prędkością obrotową, kierunkiem obrotów oraz hamowanie silnika komutatorowego z magnesem trwałym. Jeżeli
Przydatne linki internetowe
Polskie:
- http://www.silniki.pl - dystrybutor silników i sterowników, doskonale opracowane informacje praktyczne i teoretyczne,
- http://www.robot.opole.pl - dużo teorii na temat silników komutatorowych i liniowych,
- http://www.mikroma.com, http:// www.elcar.com.pl, http:// www.wamel.com.pl - polscy producenci silników,
Zagraniczne:
- http://www.allegromicro.com -firma Allegro Microsystems - producent scalonych sterowników silników, ciekawe poradniki i noty aplikacyjne,
- http://us.st.com/stonline/books - karty katalogowe i noty aplikacyjne sterowników firmy ST Microelectronics,
- http://www.maxonmotor.com - strona renomowanego szwajcarskiego producenta silników DC,
- http://www.compumotor.com -strona firmy Parker Motion & Control, która opracowała doskonały poradnik "Motor Technologies" (dostępny także na stronie Allegro Microsystems).
przewodzą tranzystory T2 i T3, to prąd płynie od ,,plusa" zasilania przez T3, silnik, T2 i Rs do masy. W momencie zatkania tranzystorów prąd samoindukcji przepływa przez D2 iD3. Sterowanie T2 i T3 impulsami z generatora PWM pozwala na regulację obrotów silnika. W przypadku wysterowania tranzystorów Tl i T4 prąd płynie przez silnik w przeciwnym kierunku, czyli mamy zmianę kierunku obrotów. Jednoczesne przewodzenie tranzystorów Tl i T2 to zwarcie zacisków silnika - hamowanie. Napięcie z rezystora Rs jest podawane na wejście komparatora - ogranicznika prądu. Nazwa mostek X lub mostek H pochodzi od graficznego przedstawienia przepływu prądu, przypominającego literę X lub H.
Na rys. 6 przedstawiono schemat aplikacyjny scalonego sterownika A3953 firmy Allegro Microsystems, działającego według opisanych powyżej zasad. Na wejście /ENABLE są podawane impulsy z generatora PWM, a stan logiczny na wejściu PHASE decyduje o kierunku obrotów. Na wejście /BRAKE należy podać '1' (stan '0' na wejściu /BRAKE powoduje hamowanie silnika), wejście MODĘ powinno mieć stan '0'. Do wejścia REF dołącza się napięcie stałe z zakresu 0...0,65 V w celu ustalenia wartości ograniczania prądu silnika (maksymalny prąd wyjściowy układu 3953 wynosi 1,3 A). Układ może być zasilany dwoma różnymi napięciami: VBB (tranzystory wyjściowe) i Vcc (część cyfrowa), dzięki temu możliwe jest bezpośrednie sterowanie wejść A3953 z wyjść mikropro-
Silniki komutatorowe uniwersalne
Silniki uniwersalne występują w klasyfikacji jako silniki prądu zmiennego, jednak nie do końca jest to prawda. Jak wspomniano wcześniej, silnik komutatorowy szeregowy obraca się
Słowniczek wybranych angielskich terminów i skrótów
Armaturę, winding - uzwojenie
BLDC (Brushless DC motor) - bezszczotkowy silnik DC z wirującym magnesem
Brush motor - silnik komutatorowy
Cage motor - silnik indukcyjny AC z wirnikiem klatkowym
Capstan motor - potoczna nazwa silnika głównego w magnetowidach, magnetofonach
Clamp diodę - dioda zamykająca obwód dla prądu samoindukcji
PMDC (Permanent Magnet DC motor) - silnik komutatorowy z magnesem trwałym
REPM (Rare Earth Permanent Magnet) - magnes trwały wykonany z pierwiastków ziem rzadkich (np. neodym)
Spindle motor -1) potoczna nazwa silnika głównego w napędach dyskowych i CD, 2) silnik z elementem napędzanym zamocowanym bezpośrednio na osi wirnika
Rotor-wirnik
Stator - stojan
Torque-moment obrotowy
Torque ripple -wahania momentu obrotowego zależne od kąta obrotu wirnika
Voice Coil motor (actuator) - rodzaj silnika (siłownika) liniowego z ruchomą cewką
X-Bridge (H-Bridge) - mostek 4-tranzy sto rowy do bipolarnego sterowania uzwojeń silników
w tym samym kierunku niezależnie od biegunowości zasilania - czyli powinien prawidłowo pracować także przy zasilaniu prądem zmiennym. W praktyce często rdzeń wirnika i stojana jest wykonany z jednego kawałka metalu i straty wywołane prądami wirowymi byłyby bardzo duże. Dlatego też w silnikach uniwersalnych rdzenie wykonane są w formie pakietów z cienkich blaszek (jak w transformatorach sieciowych). Taki silnik może być zasilany prądem zmiennym lub stałym i dlatego nazywany jest silnikiem uniwersalnym. Tego typu silniki są powszechnie używane
Rys. 5. Uproszczony schemat sterownika w układzie mostkowym X
Elektronika Praktyczna 12/2003
KURS
w sprzęcie gospodarstwa domowego (roboty kuchenne, miksery, młynki, odkurzacze) oraz w elektronarzędziach. W przypadku używania silników uniwersalnych z odzysku, należy pamiętać o możliwości rozbiegania się silnika szeregowego przy braku obciążenia. Szczególnie dotyczy to silników z odkurzaczy: mają one prędkość znamionową ok. 12 000 obr./min. w warunkach obciążenia turbiną, a bez obciążenia potrafią osiągnąć kilkadziesiąt tysięcy obrotów. Przestrzegam przed próbami wykorzystania silnika z odkurzacza do budowy szlifierki - przy np. 30 000 obr./ min. rozpadająca się tarcza szlifierska powoduje efekt zbliżony do wybuchu granatu!
Elektroniczne układy regulacji obrotów silników uniwersalnych zwykle budowane są w oparciu o triaki ze sterowaniem fazowym. Schematy takich układów można bez problemu znaleźć w literaturze (np. z układem U2008 lub U2010B firmy Temic). Można też zasilić silnik uniwersalny prądem stałym o napięciu 230 V, ale zbudowanie odpowiedniego zasilacza nie jest rzeczą prostą - wyprostowanie i odfiltrowanie napięcia sieci da na wyjściu ok. 320 VDC.
brakeO
refO
470p
O MODĘ
ENABLEO
Rys. 6. Schemat aplikacyjny scalonego sterownika silników - A3953
Gdyby jednak to się udało, to uzyskamy odrobinę większą sprawność silnika (brak strat na przemagneso-wanie rdzenia) i możemy regulować obroty opisaną wcześniej metodą PWM. Do celów przemysłowych uży-
wa się czasem silników uniwersalnych, przewidzianych do pracy przy napięciu 320 VDC (wyprostowane napięcie sieci) lub 550 VDC (wyprostowane napięcie trójfazowe). Jacek Przepiórkowski
Elektronika Praktyczna 12/2003
89
KURS
Programowe interpretery poleceń w C
Na początek konwersja typów
Niektórzy z Czytelników z całą pewnością zetknęli się z językiem programowania Pascal oraz specyficznym typem zmiennych tzw. typem proceduralnym. W dużym uproszczeniu polegał on na tym, że odwołanie do zmiennej miało podobne konsekwencje jak wywołania procedury. Kompilator języka C nie oferuje podobnego typu zmiennych, a momentami byłby on bardzo przydatny. Ot chociażby do konstrukcji opisywanego w poprzedniej części kursu interaktywnego menu - wybranie w nim opcji mogłoby bezpośrednio powodować uruchomienie odpowiadającej jej funkcji. Realizacja tak pojętego typu proceduralnego jest możliwa dzięki wykorzystaniu wskaźników oraz mechanizmów przekształceń typów.
Na list. 1 umieściłem fragment programu wraz z definicjami odpowiednich typów zmiennych. Jako pierwszy zdefiniowano typ zmiennej będącej wskaźnikiem typu char, kwalifikowanym do przestrzeni adresowej zawierającej kod programu mikrokon-trolera [code). Za wskaźnikiem występuje lista argumentów, która w tym przypadku jest pusta. Następnie ten typ wykorzystywany jest do budowy tablicy zawierającej wykaz funkcji. Tablica również zakwalifikowana została do obszaru code, ponieważ zawiera wartości stałe, nieulegające zmianie w czasie wykonywania programu. Rozmiar tablicy - wykazu funkcji - nie jest ustalony. Jej koniec sygnalizuje znak o kodzie "0". Dla przykładu i dla uproszczenia funkcja command pokazana na list. 1, zwraca wartość umieszczoną w tablicy pod indeksem 0. Zgodnie z wcześniejszą definicją odpowiada to wskaza-
List. 1. Fragment programu z definicjami zmiennych -wskaźników do funkcji
//struktura na definicje komend
typedef struct
{
char (code *funkcja) (void) ;
}komendy;
//tablica z wykazem komend code komendy wykaz[] = {
test_l,
test_2,
char command() {
return(wykaz[0] .funkcja ());
Urządzenia wykonawcze podłączane do sterowników stosowane są w technice bardzo szeroko - począwszy od prostych sterowników typu włącz-wyłącz, skończywszy na bardzo skomplikowanych, umożliwiających regulację proporcjonalną. Najczęściej to wymagania aplikacji wyznaczają budowę układu wykonawczego i sposób jego sterowania.
W artykule przedstawię sposób wykorzystania języka C do b udowy prostego interpretera poleceń wysyłanych przez interfejs szeregowy, za pomocą których można będzie sterować pracą dowolnego układu wykonawczego.
niu adresu, pod którym umieszczona jest funkcja o nazwie test_l.
Funkcja zawarta w definicji struktury musi zwracać jakąś wartość. Najłatwiej, gdy jest to wartość typu char, którą można później wykorzystać do sygnalizacji np. błędów realizacji poleceń, jednak może to być również inny typ zmiennych. Jest to wymóg konieczny dla późniejszej realizacji polecenia return(wykaz[in-deks].funkcja()), ponieważ polecenie return nie może zwracać wartości typu void oraz z powodów, o których będzie mowa dalej. Funkcja command powinna być tego samego typu, jak określono to w definicji struktury. Oczywiście powinna, a nie musi. Jeśli typy będą różne, to nastąpi niejawna konwersja typu zwracanej wartości.
Przyjrzyjmy się teraz programowi pokazanemu na list. 2. Zawiera on fragment programu odpowiadający funkcji command po kompilacji do postaci języka asembler. Fragment ten opatrzyłem komentarzami w taki sposób, aby osoby niemające do czynienia z asemblerem, mogły zrozumieć, jak działa mechanizm wywołujący funkcję znajdującą się pod wskazywa-
nym adresem w pamięci programu. Kompilator wykonując konwersję wskaźnika do postaci char, wywołuje ukrywającą się pod wskazaniem funkcję. Jest to konieczne, aby funkcja zwróciła wartość, która będzie mogła ulec zamianie na typ char. A to, że funkcja umieszczona jest na liście i możliwe jest odwołanie do konkretnej pozycji tejże listy, tylko ułatwia realizację zadania postawionego jako cel artykułu - realizację implementacji interpretera poleceń.
Dla praktyków - przykład 1
Wykorzystując opisany wyżej mechanizm, wykonałem prosty interpreter poleceń odbieranych przez mikro-kontroler z wykorzystaniem sprzętowego interfejsu UART. Jako układ modelowy posłużyła mi płytka prototypowa z mikrokontrolerem AT89S8252 taktowanym zegarem 7,3728 MHz. Na płytce znalazł się również układ dopasowujący stany logiczne na wyprowadzeniach UART mikrokontrolera do portu szeregowego komputera PC -standardowy MAX232. Wykonując programy przykładowe, posługiwałem się kompilatorem RC-51 firmy Raiso-
Ust. 2. Polecenie return(wykaz(O),funkcja()) po kompilacji
0000 900000 R M0V DPTR,#wykaZ do rejestru DPTR młodszy bajt adresu funkcji z
tablicy wykaz
0003 7400 M0V A,#00 akumulator jako wartość indeksu do tablicy - tu 0
0005 93 M0VC A,@A+DPTR załaduj do akumulatora bajt spod adresu wykaz+0
0006 FA M0V R2 ,A przechowaj pobraną wartość w rej estrze R2
0007 900000 R M0V DPTR,#wykaZ ponownie do DPTR adres tablicy wykaz
0 0 0A 7401 M0V A,#l ale indeks tablicy w tym przypadku to 1
oooc 93 M0VC A,@A+DPTR do akumulatora starszy bajt adresu funkcj i
z tablicy wykaz+1
000D FB M0V R3,A przechowaj jego wartość w rejestrze R3
000E 8A83 M0V DPH,R2 przepisz R2 do rejestru DPH (starszy bajt DPTR)
0010 8B82 M0V DPL,R3 przepisz R3 do rejestru DPL (młodszy bajt DPTR)
0012 120000 R LCALL ?C_IHDCALL iwywołaj wewnętrzną procedurę RC-51 uruchamiającą
funkcję spod adresu wskazywanego przez DPTR
0015 22 RET powrót do programu głównego
Elektronika Praktyczna 12/2003
91
KURS
Ust. 3. Deklaracje zmiennych oraz łinclude interpretera poleceń z przykładu 1
#pragma DEFJ(TIMl_INIT=OxFE) //timer 1 jako prędkość transmisji (19200bps)
//dla rezonatora ll,0592MHz THl=0xFD; dla 7,3728MHz THl=0xFE #pragma SMALL //wybór modelu pamięci programu
#include "reg825 2.h" //dołączenie definicji rejestrów
#include "stdio.h" //dołączenie funkcj i wej ścia - wyj ścia
#define WORD unsigned int //definicja typu WORD
//definicje nagłówków funkcj i programu
char in(char data *bufor);
char out(char data *bufor);
char status(char data *bufor);
char on(char data *bufor);
char off(char data *bufor);
char help(char data *bufor);
//definicja typu dla tablicy - wykazu poleceń
typedef struct
{
char code *komenda;
char (code *funkcja)(char data *);
}komendy;
//tablica z wykazem poleceń
code komendy wykaz[] =
{
"IN", in,
"OUT", out,
"STATUS", status,
"ON", on,
"OFF", off,
"HELP", help,
"?", help,
"", HULL
//wykaz komend i powiązanych z nimi funkcj i
//koniec wykazu
Interpreter wykonuje następujące polecenia:
- IN np. IN 1 - odczyt portu o podanym numerze
- OUT np. OUT 1 0x20 - zapisuje do portu o podanym numerze liczbę,
- STATUS - podaje informację o statusie urządzenia: WYŁĄCZONY/AKTYWNY,
- ON - załączenie operacji na portach, tj. poleceń IN i OUT,
- OFF - wyłączenie operacji na portach, tj. blokowanie funkcjonowania poleceń IN i OUT,
- HELP lub ? - informacja o obsługiwanych poleceniach.
Polecenia mogą być przesyłane przez aplikację sterującą lub podawane ręcznie za pomocą programu typu terminal znakowy. Każde wysyłane polecenie musi kończyć się sekwencją 0x0D-0x0A (CR-LF).
Na list. 3 pokazano najważniejsze fragmenty programu źródłowego w języku C zawierające deklaracje zmiennych i stałych oraz dyrektywy sterujące kompilacją.
Początek to właściwe dla RC-51 polecenie ttpragma DEFJ(TIMl_INIT=OxFE) definiujące wartość zapisywaną do rejestru THl Timera 1 sterującego pracą UART. Dla rezonatora 7,3728 MHz oraz podwójnej szybkości zegara sterującego pracą interfejsu szeregowego (SMOD = 1) zapis do THl wartości 0xFE wymusza transmisję szeregową asynchroniczną z prędkością 19200 bd. W następnej kolejności dołączane są definicje rejestrów mikrokontrole-ra, biblioteka funkcji wejścia-wyjścia oraz dla czytelności programu zdefi-
niowany zostaje typ WORD. W kolejnym kroku definiowane są nagłówki funkcji będących odpowiednikami poleceń realizowanych przez interpreter. Zdefiniowanie ich w tym miejscu jest konieczne, ponieważ za moment nazwy funkcji będą użyte do konstrukcji tablicy-wykazu poleceń.
Definicja struktury o nazwie komendy zawiera więcej składników niż we wcześniejszym przykładzie. Obok znanego nam już wskaźnika do funkcji pojawił się również wskaźnik do łańcucha znaków umieszczonego w pamięci programu mikrokontrolera. Jest to nazwa, po której rozpoznawane są polecenia i jednocześnie najprostsza z metod powiązania nazwy symbolicznej z odpowiadającą mu funkcją. Dla łatwiejszej analizy przykładu nazwy funkcji są niemal identyczne z odpowiadającymi im poleceniami.
Na list. 4 znajduje się fragment programu rozpoznający polecenie oraz wywołujący odpowiadającą mu funkcję. Posłużyłem się w nim konstrukcją z pierwszego przykładu, z tym że polecenie return zawiera dynamicznie wyznaczany indeks do funkcji. Dwie zmienne ;' oraz i służą (odpowiednio) jako indeksy do poszczególnych liter przekazywanego jako argument funkcji ciągu znaków oraz poszczególnych linii tablicy - wykazu poleceń. Funkcja XOR (A) służy do sprawdzenia warunku równości znaków, a bitowe AND (&) maskuje bity odpowiadające małym literom alfabetu. Dzięki temu wielkość znaków (liter) odebranych z UART nie wpływa na interpretację polecenia.
W przypadku, gdy komenda nie zostanie odnaleziona w wykazie, wartość indeksu ;' będzie równa 0 i posłuży do wysłania komunikatu o błędzie. W innym przypadku zwracany jest wskaźnik do funkcji, którego przekształcenie do typu char owocuje wywołaniem funkcji.
Główna pętla programu zawiera tylko kilka poleceń: rezerwuje miejsce w pamięci na bufor odebranych z UART znaków, ustawia bit SMOD w rejestrze PCON mikrokontrolera, wysyła znak zachęty do terminala (znak >), wywołuje funkcję gets pobierającą ciąg znaków ze standardowego urządzenia wejścia - wyjścia (dla mikrokontrolera jest to UART), a następnie przekazuje wskaźnik do bufora opisywanej wyżej funkcji com-mand rozpoznającej odebrane polecenia. Każdorazowo zakończenie realizacji komendy sygnalizowane jest napisem OK wysłanym przez mikrokon-troler do terminala.
Dla praktyków - przykład 2
Kolejny przykład bazuje na poznanych już wcześniej. Ilustruje on jednak jeden z możliwych sposobów dołączenia zdalnego wyświetlacza sterowanego przez mikro kontroler. Dla uproszczenia funkcji sterujących użyłem wyświetlacza LCD 4 linie x 20 znaków, jednak można sobie wyobrazić zastosowanie dowolnego wyświetlacza, na przykład dołączonej do mikrokontrolera tablicy pokazującej wyniki na meczu piłkarskim, dołączonego zdalnie wyświetlacza zegara itp.
Przykładowy interpreter realizuje następujące polecenia:
- CURSOR np. CURSOR 1 -zmiana wyglądu kursora, wartość powinna się zawierać w przedziale od 0 do 2 (0 = kursor wyłączony, 1 - kursor włączony, 2 -kursor włączony i migotanie na polu kursora)
- CLR - czyszczenie ekranu LCD,
- GOTOXY np. GOTOXY 1 1 - umieszczenie kursora na pozycji (kolumna, wiersz),
- WRITE np. WRITE Driver LCD 4x20 - wyświetlenie tekstu podanego jako parametr wywołania; uwaga: tekst nie może być dłuższy niż rozmiar bufora - 7 (w tym przypadku są to 34 znaki),
- CWRITE np. CWRITE 0x01 -wyświetlenie znaku o kodzie ,
- FILL np. FILL 0x01 - wypełnienie LCD znakami o kodzie ,
- DEF .. - definicja własnego znaku użytkownika np.: DEF 0x00 0xAA 0x55 0xAA 0x55 0xAA 0x55 0xAA 0x55 umieści definicję "kratki" w generatorze znaków LCD na pozycji numer 0,
92
Elektronika Praktyczna 12/2003
KURS
Ust. 4. Fragment programu odpowiedzialny za rozpoznawanie odbieranych poleceń
//wyszukiwanie komend oraz wywołanie odpowiadających im funkcj i char command(char data *bufor)
char i, 3 ;
for (i = 0; ; )
for (j = 0; ;
//256 komend o maks. długości 256 znaków
if(wykaz[i].komenda[j] != 0) //jeśli komenda różna od znaku "pustego" { //do porównania zamiana małych liter na duże
if(((wykaz[i] .komenda[j]Abufor[j] ) & 0x5F) == 0) {
D+ + ;
continue; //następny znak }
i + + ;
break; //następna komenda
}
if( 3 == 0 ) {
printf("%s\n","BLAD: Nie rozpoznano komendy!") ; //brak komendy
//W wykazie return(0);
} else return (wykaz[i] .funkcja (bufor + j)); //wykonanie funkcj i spod //wskazanego adresu
- INIT - inicjalizacja wyświetlacza w trybie interfejsu o długości słowa równej 4 bity,
- STATUS - podaje informację o statusie WYŁĄCZONY/AKTYWNY,
- ON - załączenie akceptowania poleceń przez kontroler LCD,
- OFF - wyłączenie akceptowania poleceń przez kontroler LCD,
- HELP lub ? - informacja o realizowanych poleceniach.
Program funkcjonuje identycznie jak poprzedni, różnią się one między sobą tylko liczbą realizowanych funkcji. Ten pierwszy będzie się nadawał szczególnie dobrze do sterowania urządzeń typu włącz-wyłącz, drugi realizuje także nieco bardziej zaawansowane funkcje. Do jego implementacji wykorzystałem opisywaną we wcześniejszych odcinkach kursu bibliotekę LCD4B. Została ona dołączona do pliku projektu, a nagłówki funkcji sterujących wyświetlaczem umieszczane są w programie głównym za pomocą dyrektywy ttinclude "Icd4b.h".
Program główny, oprócz omawianych wcześniej poleceń, zawiera również wywołanie funkcji inicjalizacji oraz czyszczenia ekranu modułu LCD. Użycie wymienionego na liście realizowanych poleceń INIT nie jest konieczne. Zostało ono wprowadzone na wypadek sytuacji awaryjnej.
Uwagi końcowe
Jak wspomniałem wcześniej, do wykonania programów demonstracyjnych posłużył kompilator firmy Rai-sonance RC-51. Niestety powstający w wyniku kompilacji kod przekracza 4 kB i dlatego też nie można posłużyć się wersją demonstracyjną "wprost". Bardzo dużo miejsca w pamięci programu zajmuje zwłaszcza implementacja funkcji printf i scanf wywoływanych wielokrotnie przez różne funkcje. Ta pierwsza formatuje i przesyła ciąg znaków przez UART, ta druga odbiera, odczytuje i przekształca znaki odebrane z UART na zmienne zgodnie z podanym wzorcem. Zamiast RC-51 można również
posłużyć się innym kompilatorem C. W takim przypadku polecenie ustawiające prędkość transmisji UART może wyglądać jak niżej:
void main() {
SCON = 0x50;
TMOD = 0x20;
SMOD = 1;
TH1 = 0xFE;
TLI = -1;
TRI = 1 ;
Polecenia wysyłane przez np. program hyper terminal są odbierane za pomocą zdefiniowanej przez producenta pakietu funkcji gets(). Wymaga ona, aby każdy przesłany ciąg znaków zakończony był przez sekwencję CR-LF. Niestety większość programów typu terminal wysyła na końcu linii CR nie dbając o LF. Tak też jest w przypadku hyper terminala, który to musi mieć ustawioną opcję dodawania LF na końcu linii. Należy w nim ustawić parametr Wyślij końce wierszy ze znakiem wysu wu wiersza [Plik> Właściwości, zakładka Ustawienia>Ustawie-nia ASCII). Oczywiście można również zaimplementować inną, własną funkcję działającą jak gets().
Port UART mikrokontrolera pracuje z szybkością 19200 bd. Tę samą należy wybrać w nastawach portu COM komputera PC o ile to właśnie on używany jest do przesyłania poleceń (19200, n, 8, 1). Funkcja gets() odsyła echo wysyłanych poleceń, toteż są one widoczne na ekranie terminala.
Prezentowane wyżej przykłady programów źródłowych to tylko zachęta do samodzielnego eksperymentowania. Oczywiście mają one pewną wartość użytkową, jednak bardziej służą do wskazania możliwości niż do budowy gotowego urządzenia mającego konkretne zastosowanie. Jacek Bogusz, EP jacek.bogusz@ep.com.pl
Elektronika Praktyczna 12/2003
93
BASCOMOWE PORADY
W bascomowym "kąciku" będziemy się starać w miarę przystępnie przedstawiać rozwiązania problemów napotykanych przez naszych Czytelników podczas pisania programów w Bascomie. Rubryka ta powstała z myślą o rozwiązywaniu problemów, jakie najczęściej napotykają programiści, zatem zachęcamy wszystkich Czytelników do zgłaszania problemów, na jakie się natknęli podczas tworzenia własnych programów.
Timery - to nie musi być trudne, część 1
Większość współczesnych mikro-kontrolerów jest wyposażona w co najmniej jeden licznik-timer. Mikro-kontrolery AVR w większości przypadków mają ich dwa. Pierwszy jest zazwyczaj prostym timerem 8-bitowym, natomiast drugi to 16-bi-towy timer z dodatkowymi funkcjami: compare (porównania), capture (przećhwytywania) oraz z możliwością generowania sygnałów PWM. W artykule szczegółowo opiszemy na przykładach sposób użycia time-rów 0 oraz 1 występujących w większości mikro kontroler ów AVR. Należy mieć na uwadze, że by móc dobrze stosować timery należy znać ich budowę w wykorzystywanym mi kr o kontroler ze oraz ich działanie. W każdym z mikro kontroler ów AVR funkcje timer ów mogą się różnić.
Na początek kilka słów wstępu. Moduły licznikowe w mikrokontrole-rach AVR mogą pracować w dwóch podstawowych trybach: jako timer (czasomierz) oraz jako counter (licznik). Początkujący programiści najwięcej problemów mają najczęściej problemy z określeniem, co ile czasu wywołane będzie przerwanie, a w związku z tym jaki dokładnie będzie odmierzony czas przy określonych nastawach modułów licznikowych. Występuje tu współzależność trzech parametrów:
- częstotliwości oscylatora (najczęściej kwarcu),
- konfiguracji preskalera (timery zawarte w mikrokontrolerach posiadają preskaler, dzięki któremu
możliwe jest zmniejszenie częstotliwości taktującej), - wartości początkowej załadowanej do rejestru timera.
W Bascomie TimerO można skonfigurować instrukcją config timerO. Składnia tej instrukcji jest następująca:
W trybie czasomierza:
CONFIG TIMERO = COUNTER, EDGE = RISING I FALLING
W trybie licznika:
CONFIG TIMERO = TIMER, PRESCALE = 1 I 8 I 64 I 256 I 1024
Kiedy TimerO jest skonfigurowany do pracy w charakterze licznika (parametr TIMER0= COUNTER) wtedy należy określić parametr EDGE. Określa on czy licznik będzie zwiększany wraz z pojawieniem się narastającego zbocza sygnału [RISING) lub opadającego [FALLING). Gdy TimerO jest skonfigurowany do pracy w charakterze czasomierza (parametr TIMERO=TIMER) wtedy zamiast parametru EDGE należy określić parametr PRESCALE, który wyznacza współczynnik podziału częstotliwości sygnału zegarowego.
Każdy moduł licznikowy w mikrokontrolerach AVR może być w dowolnej chwili zatrzymany instrukcją STOP TIMERx. Ponowne uruchomienie licznika nastąpi po wykonaniu instrukcji START TIMERx. Każdy z timerów może zgłaszać przerwania. W przypadku TimeraO przerwanie jest zgłaszana jedynie po jego przepełnieniu. Przerwanie to można wykorzystać do odmierzania dość
+5
o
C1
27p C2
Hh
27p
|8MHz
PC5(ADC5/SC) PC4(ADC4/SD) PC3(ADC3) PC2(ADC2) PC1(ADC1) PC0(ADC0)
GND AREF AVCC
(RST}PC6
(RXD)PD0
CTXD}PD1
(IMT0)PD2
(IWT1)PD3
(XCKA"0)PD4
VCC GND
(XT1/0S1)PB6
(XT2/0S2)PB7
(SCK}PB5
(T1)PD5 (MIS0JPB4
(AIN0)PD6 (M0SI/0C2)PB3 (AIN1)PD7 (SS/0C1B)PB2 (ICPJPBO (0C1A)PB1
28 7
+5V
O
Rys. 1
ATMEGA8
dokładnych jednostek czasowych. Dzięki temu można timery oraz generowane przez nie przerwania wykorzystać do budowy zegarów lub innych zadań, dla których precyzyjne odmierzanie czasu ma znaczenie priorytetowe (np. multipleksowania wyświetlaczy np. LED czy matrycowych).
Aby zilustrować działanie pracy timerów, na rys. 1 przedstawiono schemat prostego systemu z dołączonym do mikrokontrolera (do wyjścia PBl) diodą LED. Część przykładów w dalszej części tego artykułu będzie powodować włączanie i wyłączanie diody LED, co odmierzony przez timery czas.
Na list. 1 przestawiono przykład odmierzania przez TimerO w przerwaniu 1-sekundowych odcinków czasu. Przedstawiony program powoduje zmianę stanu na wyjściu sterującym diodę LED dokładnie co 1 sekundę. W tym przykładzie TimerO skonfigurowano jako czasomierz z ustawionym preskalerem na podział przez 64, czyli licznik będzie zliczał impulsy o częstotliwości 8 MHz/64 = 125 kHz. Aby uzyskać częstotliwość 1 Hz należy pobielić częstotliwość 125 kHz przez 250, następnie przez 500. Wartości te umożliwiają podział częstotliwości 125 kHz bez żadnych części ułamkowych, co gwarantuje odmierzenie dokładnego czasu. Ponieważ licznik TimerO jest 8-bitowy (liczy od 0 do 255), tak więc by liczył do 250 (przerwanie było wywoływane co 250 odliczonych impulsów) należy skrócić jego cykl, poprzez załadowanie do niego po każdym przepełnieniu wartość 6. Aby odliczyć 1 sekundę należy wprowadzić dodatkową zmienną, która będzie liczyć przerwania od przepełnienia TimerO. Zliczenie 500 takich przerwań będzie oznaczać odliczenie dokładnie 1 sekundy. Wartość początkową do timeraO można załadować instrukcją: TIMERO = wartość lub instrukcją COUNTERO = wartość
gdzie wartość to liczba od której timer zlicza "w górę". Przykładowo polecenie TIMERO = 16 spowoduje
Elektronika Praktyczna 12/2003
95
BASCOMOWE PORADY
List. 1. Przykład obsługi Timera Odo odmierzania 1-sekundowych odcinków czasu
1 Przykład programu odmierzającego 1 sekundowe odcinki czasu z wykorzystaniem timerO 'TimerO będzie odmierzał dokładnie 1 sekundę 8MHz/64/250/500 = 1 sekunda
$regfile = "m8def.dat1 $crystal = 8000000
1 rej estry mikrokontrolera atmega8
1 częstotliwość taktowania mikrokontrolera
Config Pinb.l = Output 'linia pbl jako wyj ście
Config TimerO = Timer, Prescale = 64 'deklaracja timera jako czasomierza 'z prescalerem 64
1 deklaracja jaka etykieta obsługuje 'przepełnienie od timerO
~)n TimerO Przerwań i e_co_2ms
Led Alias Portb . 1
Dim Licznik As Integer
Enable Enable Interrupts TimerO
TimerO = 6
Licznik = 0
Do Loop End
Przerwanie_co_2ms: wywoływanego co 2 ms
CounterO = CounterO + 6
Incr Licznik
If Licznik = 500 Then
Toggle Led Licznik = 0 End If Return
'alias dla wyjścia b.l 'zmienna licznikowa
'odblokowanie globalnych przerwań
'odblokowanie przerwania od przepełnienia timerO
'Wpisanie wartości początkowej 6 do timera, 'czyli timer będzie zliczał 250 (256-6) impulsów 'wyzerowanie zmiennej licznikowej
'pętla główna programu
'koniec programu
'podprogram przerwania od przepełnienia timerO
'ustawienie początkowej wartości timeraO poprzez
'dodanie do niego wartości 6 (odliczone zostanie
'dokładnie kolejne 250 impulsów)
'zwiększenie licznika
'jeśli zmienna licznik równa się 500 (czyli
'odliczone zostało 500*2ms=lsek), to
'zmień na przeciwny stan wyjścia led
'wyzeruj zmienną licznik
'powrót z przerwania
odliczenie 256-16=240 taktów. Obie składnie instrukcji działają podobnie. W Bascom AVR występuje także instrukcja:
LOAD TIMERX = wartość
W tym przypadku wartość oznacza liczbę impulsów jakie timer zliczy do przepełnienia. Instrukcja ta wykonuje operację matematyczną (dla TimeraO jest to 256-wartośó) oraz ładuje obliczona wartość do rejestru timera. Jeżeli potrzebne jest odliczenie 240 impulsów to instrukcja ta załaduje do timera wartość 16 (256-240). Jak widać za pomocą tej instrukcji można bezpośrednio podać liczbę impulsów które ma zliczyć licznik. Oczywiście instrukcja ta występuje dla wszystkich timerów, a x oznacza numer timera. Przy większych wartościach preskalera - np. 1024 - trudno będzie dobrać odpowiednią wartość początkową tak, żeby uzyskać "okrągły" odstęp czasowy. Tak więc, ustawiona wartość podziału preskalera przez 64 i początkowa wartość timera 6 spowodują, że przerwania będą wywoływane dokładnie co 2 ms. Tak więc zliczenie 500 takich przerwań da jedną sekundę. W programie pokazanym na list. 1 zmienna licznik użyta została do zliczania przerwań od przepełnienia TimeraO. W każdym przerwaniu od przepełnienia TimeraO należy za-
ładować do niego wartość początkowa, dzięki czemu za każdym razem zostanie odliczone 250 impulsów. W programie wartość początkowa wpisywana do rejestru TimeraO nie została wprost załadowana lecz dodana. Umożliwia to odmierzanie dokładnych czasów. W przypadku załadowania w przerwaniu wartości początkowej do TimeraO należałoby
uwzględnić czas jaki upłynął od zgłoszenia przerwania do chwili jego obsługi, gdyż TimerO pracuje cały czas. Wtedy, w celu zwiększenia dokładności, do rejestru timera należałoby załadować wartość inną niż 6. Obliczenie dokładnej wartości ładowanej zmiennej może być trudne, a dodanie wartości początkowej zamiast jej przypisania doskonale rozwiązuje ten problem. W programie z list. 1, gdy zmienna "licznik" osiągnie wartość 500 (odliczenie 1 sekundy) jest ona zerowana oraz zmieniany jest na przeciwny stan wyjścia sterującego diodę LED.
W przypadku korzystaniu z przerwań należy obowiązkowo w programie odblokować przerwania globalne oraz przerwanie uż ywane. W przypadku przerwania od przepełnienia TimeraO będzie to instrukcja ENABLE TIMERO.
Bardziej rozbudowany niż TimerO, a co za tym idzie oferujący większą liczbę funkcji jest Timerl, który jest licznikiem 16-bitowym (zlicza do 65536 impulsów). Ma on także dodatkowe funkcje i związane z nimi dodatkowe przerwania. Składnia instrukcji konfigurującej Timerl jest następująca:
W trybie licznika:
CONFIG TIMER1 = COUNTER, EDGE = RISING I FALLING, NOICE CANCEL = 0 I 1 , CAPTURE EDGE = RISING I FALLING, COMPARE A = SET I CLEAR I TOGGLE I DISCONNECT, COMPARE B = SET I CLEAR I TOGGLE I DISCONNECT, CLEAR TIMER =011
List. 2. Przykład odmierzania czasu 1 sekundy przez Timerl
1 Przykład programu odmierzającego 1 sekundowe odcinki czasu z wykorzystaniem timerl 'Timerl będzie odmierzał dokładnie 1 sekundę 8MHz/256/31250 = 1 sekunda 'Wartość 31250 wynika z 65536-342 86 - czyli zostanie odliczonych 31250 impulsów 'do przerwania
$regfile = "m8def.dat' $crystal = 8000000
1 rej estry mikrokontrolera atmega8
'częstotliwość taktowania mikrokontrolera
Config Pinb.l=Output 'linia pbl jako wyj ście
Config Timerl = Timer, Prescale =256 ' deklaracja timera 1 jako czasomierza
' z prescalerem 64
'deklaracja przerwania od przepełnienia timera 1
On Timerl Przerwańie_co_lsek
'aliasy Led Alias Portb.1
Enable Interrupts Enable Timerl
Timerl = 34286
Do
Loop
End
Przerwańie_co_lsek:
Timerl = Timerl + 34286
Toggle Led Return
' dioda obrazuje wywołanie przerwania
'Wpisanie wartości 34286 do timera 'pętla główna programu 'koniec programu
'podprogram przerwania od przepełnienia timerl
'wywoływanego co 1 sekundę
'ustawienie początkowej wartości timeral poprzez 'dodanie do niego wartości 34286 (odliczone 'zostanie dokładnie kolejne 65536-34286 = 31250 'impulsów) 'ustawienie początkowej wartości timera
'zmień na przeciwny stan wyj scia LED
'powrót z przerwania
96
Elektronika Praktyczna 12/2003
BASCOMOWE PORADY
W trybie czasomierza:
CONFIG TIMER1 = TIMER, PRESCALE =
1
256 I 1024, CAPTURE
EDGE = RISING I FALLING, COMPARE A
= SET
CLEAR
TOGGLE
DISCONNECT, COMPARE B = SET I CLEAR I TOGGLE I DISCONNECT, CLEAR TIMER = 011
W trybie generatora PWM:
CONFIG TIMER1 = PWM, PWM =8191 10, COMPARE A PWM = CLEAR UP I CLEAR DOWN I DISCONNECT, COMPARE B PWM = CLEAR UP I CLEAR DOWN I DISCONNECT
Dla Timeral można skonfigurować następujące parametry: EDGE - ma takie samo znaczenie
jak w przypadku TimeraO. CAPTURE EDGE - można określić czy zawartość licznika ma być przećhwytywana do rejestru CAP-TUREl wraz z narastającym (RISING) lub opadającym zboczem (FALLING) sygnału pojawiającego się na końcówce ICP (lub też na wyjściu komparatora analogowego). NOICE CANCEL - Można określić czy licznik ma być odporny na drobne zakłócenia sygnału wejściowego. Wpisanie 1 włącza ta opcję. CLEAR TIMER - Wpisanie "1" włącza funkcję automatycznego kasowania zawartości licznika jeśli porównanie zawartości licznika z rejestrem COMPARElA lub COMPARE1B dało wynik pozytywny.
PRESCALE - ma takie samo znaczenie jak dla TimerO. COMPAREx - określa tryb pracy rejestrów COMPARElA lub COM-PARE1B. SET - końcówka OClx zostanie
ustawiona w stan wysoki. CLEAR - końcówka OClx zostanie
ustawiona w stan niski. TOGGLE - stan końcówki OClx zostanie zmieniony na przeciwny. DISCONNECT - stan końcówki
OClx nie będzie zmieniany. PWM - określa rozdzielczość generatora w bitach. Możliwe są wartości 8, 9 i 10 bitów. COMPARE A PWM, COMPARE B PWM - określa tryb pracy generatora PWM.
CLEAR DOWN włącza tryb normalny - im mniejsza liczba w rejestrze COMPARElx tym krócej trwa stan wysoki na wyjściu impulsów PWM.
CLEAR UP włącza tryb odwrócony - im mniejsza liczba w rejestrze COMPARElx tym krócej trwa stan niski na wyjściu impulsów PWM. Podanie DISCONNECT powoduje, że odpowiednia końcówka OClA lub OClB - przestanie być wyjściem impulsów PWM.
Jak wspomniano, timery w mikro kontroler ach AVR mogą się różnić i nie wszystkie mi kr o kontrolery posiadają rejestr COMPARElB licznika TIMERl. Wykorzystanie Timerl
jako czasomierza umożliwi bezpośrednie odmierzenia czasu 1 sekundy bez udziału dodatkowej zmiennej ze względu na jego 16 bitową pojemność. Na list. 2 przedstawiono przykładowy program odmierzający 1 sekundę z wykorzystaniem Timeral.
Program ten robi to samo co poprzedni, czyli zapala i gasi co sekundę diodę LED. W tym przykładzie częstotliwość rezonatora jest dzielona (przez preskaler) przez 25 6, natomiast Timerl do wywołania przerwania zlicza 31250 impulsów. Czyli przerwanie od przepełnienia Timeral będzie wywoływane co 8 MHz/256/3125 = 1 czyli co 1 sekundę. W tym programie dla zwiększenia dokładności odmierzanego czasu wartość początkowa jest dodawana do stanu licznika a nie wpisywana bezpośrednio.
Na koniec opisu funkcji czasomierza jedna praktyczna uwaga: nie należy przesadzać z częstotliwością wywoływania przerwania, czyli należy - o ile jest to możliwe - korzystać z najwyższych współczynników podziału częstotliwości przez preskaler. Jest to istotne, by obsługa przerwania nie zajęła całej mocy obliczeniowej mi kr o kontroler a. Marcin Wiązania marcin.wiazania@ep.com.pl Artur Starz artur.starz@ep.com.pl
Elektronika Praktyczna 12/2003
97
KURS
Podstawy projektowania systemów mikroprocesorowych, część 10
Budując urządzenie wykorzystujące mikrokontroler, musimy pomyśleć również o pewnej liczbie elementów współpracujących, które realizują potrzebne nam funkcje. W niektórych sytuacjach wystarczające staje się sięgnięcie do zasobów sprzętowych wykorzystywanego mikrokontrolera, co jest bardzo korzystne zarówno ze względów komplikacji i niezawodności urządzenia, jak i jego ceny.
Chociaż omawiane modele mikro-kontrolerów '51 to jedne z uboższych reprezentantów tej rodziny, to często ich możliwości wystarczają zupełnie do zrealizowania całego urządzenia bez dodatkowych układów peryferyjnych. Szczegółowe opisy funkcjonowania układów peryferyjnych wbudowanych w mikrokontroler znajdzie Czytelnik w specyfikacjach producenta, tutaj przedstawimy pracę tych układów w najczęściej wykorzystywanych przypadkach.
Komunikacja szeregowa
W związku z ogromnym rozpowszechnieniem się komputerów klasy PC, budowane obecnie systemy mikroprocesorowe mają zazwyczaj możliwość komunikacji z komputerem nadrzędnym. Czasami zachodzi też konieczność współpracy kilku komunikujących się mikro kontroler ów. W takich wypadkach najczęściej wykorzystuje się transmisję szeregową z wykorzystaniem wbudowanego w większości mikrokontroler ów '51 układu transmisji szeregowej. Wykorzystanie takiego, a nie innego środka komunikacji ma tę zaletę, że realizacja transmisji szeregowej jest obsługiwana sprzętowo - odpada zatem konieczność pisania odpowiednich procedur obsługi, a co za tym idzie nie musimy rezerwować odpowiedniej mocy obliczeniowej procesora na obsłużenie transmisji.
W przypadku mikrokontrolerów rodziny '51 najczęściej wykorzystuje się układ transmisji szeregowej skonfigurowany do pracy w trybie 1. Tak zaprogramowany port szeregowy pracuje asynchronicznie, wykorzystując
^r do nadawania linię TxD, a do odbioru linię RxD. Dane transmitowane są w standardowym formacie 10-bitowym (bit startu - 0, osiem bitów danych, bit stopu - 1). Jeżeli żadne dane nie są przesyłane, to obydwie linie pozostają w stanie wysokim. Prędkość transmisji jest ustawiana programowo poprzez odpowiednie zaprogramowanie licznika Tl - należy zatem zwrócić uwagę na częstotliwość taktowania mikro-kontrolera, gdyż nie zawsze będzie można uzyskać standardowe prędkości transmisji. W przypadku urządzeń wykorzystujących transmisję szeregową najczęściej wykorzystuje się częstotliwość kwarcu równą 11,0592 MHz pozwalającą na uzyskanie większości standardowych prędkości do 5 7600 bd. Dla układu licznikowego Tl wykorzystywanego w trybie 2 (automatyczne przeładowywanie) zawartość rejestru THl (wartość licznika po przeładowaniu) można wyznaczyć z zależności (dla podanej częstotliwości kwarcu): THl =2 56-23300/V (dla bitu SMOD=0, V -prędkość transmisji w bodach) lub THl=256-57600/V (dla SMOD=1). Bit SMOD (rejestr PC ON) jest bitem konfiguracyjnym układu transmisji szeregowej obsługującym blokadę wewnętrznego dzielnika przez dwa częstotliwości określającej szybkość transmisji. W tab. 1 przedstawiono wartości przeładowania licznika Tl w zależności od oczekiwanej prędkości transmisji.
Do programowej obsługi układu transmisji s z er ego w ej wy kor zy sty wa -ne są rejestry: SCON - służący do konfiguracji i obsługi transmisji oraz SBUF - będący jednobajtowym buforem nadajnika i odbiornika. Dodatkowo wykorzystywany jest też omówiony wcześniej bit SMOD rejestru PCON. Znaczenie i położenie bitów
sterujących rejestru SCON można znaleźć w specyfikacji 8051. Nas interesować tutaj będą jedynie bity: SM0 i SMl - decydujące o trybie pracy - dla trybu 1 będą ustawione odpowiednio na 0 i 1. REN - bit włączający (dla REN=1) odbiornik układu transmisji szeregowej. RI - bit ustawiany sprzętowo na
1 po odebraniu bajtu. Tl - bit ustawiany sprzętowo na 1 po zakończeniu nadawania bajtu. Programowa realizacja wysłania czy odebrania bajtu z układu transmisji szeregowej jest niezmiernie prosta. Polega ona jedynie na odpowiednim skonfigurowaniu portu oraz sprawdzaniu stanu bitów RI i Tl. Przy odbiorze danych należy sprawdzać stan bitu RI i w przypadku pojawienia się stanu 1 należy odczytać odebraną informację z rejestru SBUF oraz wyzerować bit RI. W miarę bezzwłoczny odczyt odebranego bajtu jest konieczny ze względu na możliwość zamazania jego zawartości przez kolejny odebrany bajt (na odczyt mamy w najgorszym przypadku czas równy czasowi transmisji całego bajtu). W przypadku nadawania wystarczy zapisać daną do transmisji do rejestru SBUF - proces transmisji szeregowej rozpocznie się
Tab. 1
prędkość THl dla THl dla
transmisji w bodach SMOD=0 SMOD=1
120 16
150 64 -
300 160 64
600 208 160
1200 232 208
2400 244 232
4800 250 244
9600 253 250
19200 - 253
20600 255 254
57600 - 255
98
Elektronika Praktyczna 12/2003
KURS
TTL
TxD 11
RxD
12
T1IN MAX232 T1OUT
R10UT R1IN
CU-
CI-C2+
C2-
C4
Rys. 34 1M
automatycznie. Po zakończeniu transmisji zostanie ustawiony bit TI, którego sprawdzanie pozwala na stwierdzenie gotowości układu do transmisji kolejnej danej. Po programowym wyzerowaniu TI można do SBUF wpisać kolejną daną do przesłania (zerowanie TI nie jest konieczne do rozpoczęcia kolejnej transmisji, umożliwi nam jednak określenie chwili jej zakończenia). W mi kr o kontroler ach '51 ustawienie bitów RI lub TI może również być źródłem przerwania, jednak brak jest sprzętowej możliwości rozstrzygnięcia, który bit wywołał przerwanie (trzeba to sprawdzić programowo na początku procedury obsługi przerwania, również programowo trzeba wy-zerować dany bit przed opuszczeniem procedury obsługi przerwania). Na list. 13 pokazano prosty program przeznaczony do odbioru dwubajto-wych paczek danych.
Każdy z dwóch odebranych bajtów zostaje zapamiętany w odrębnej komórce pamięci. Do rozstrzygnięcia, który bajt jest odbierany, wykorzystywana jest zmienna bitowa BYLI ustawiana w chwili odebrania pierwszego bajtu i zerowana po odebraniu drugiego. Program ten mógłby zostać napisany tak, aby bezpośrednio po odebraniu pierwszego bajtu oczekiwać na nadejście kolejnego, jednak należy pamiętać o tym, że prędkość transmisji zawsze będzie dużo niższa od prędkości wykonywania programu, więc takie bezczynne oczekiwanie jest bezcelowe i marnuje moc obliczeniową mikrokontrolera.
Drugi przedstawiony program (list. 14) jest kompletnym oprogramowa-
14
RxD
RS232
TxD
C5 1M
niem przeznaczonym dla prostego układu testera portu RS-232. Realizuje on bardzo prosty algorytm polegający na odsyłaniu odebranego bajtu i pozwalający w ten sposób sprawdzić działanie komunikacji pomiędzy urządzeniami. Po włączeniu zasilania następuje wysłanie przez układ transmisji szeregowej tekstu "OK". Transmisja odbywa się z prędkością 57600 (dla kwarcu 11,0592 MHz).
Przy wykorzystywaniu portu szeregowego do połączenia z komputerem PC należy pamiętać, że standard RS-232 wykorzystuje inne po-
ziomy napięć niż stosowany przez mi kr o kontrolery standard TTL. W celu połączenia konieczne staje się wykorzystanie dodatkowego układu zapewniającego konwersję. Można do tego wykorzystać różne metody, począwszy od tranzystorów i bramek CMOS, jednak obecnie najczęściej wykorzystuje się scalony konwerter poziomów MAX23 2 (lub zamiennik), który ma tę ogromną zaletę, że zasilany standardowym napięciem +5V sam troszczy się o wytworzenie napięcia dodatniego i ujemnego zgodnego ze standardem RS-232 oraz jest stosunkowo tani i łatwo dostępny. Schemat takiego konwertera pokazano na rys. 34. Niekiedy do uzyskania komunikacji mikrokontrolera z komputerem PC należy zadbać o połączenie ze sobą od strony złącza RS-232 PC-ta wyprowadzeń RTS-CTS oraz DTR-DSR-DCD (rys. 35), informujących komputer o gotowości mikrokontrolera do odbioru/ nadawania danych (układ transmisji szeregowej '51 nie jest wyposażony w funkcję sprzętowego blokowania transmisji - transmisja może być kontrolowana jedynie na drodze programowej) . Oczywiście należy również zadbać o ustawienie identycznej prędkości transmisji, gdyż w przeciwnym wypadku prawidłowy przesył danych nie będzie możliwy. Jeżeli transmisja szeregowa będzie wykorzystywana do komunikacji pomiędzy dwoma mikro kontrole-
List. 13
i Konfiguracja
M0V TMOD,#020H i licznik TI w trybie 2
M0V PCON,#080H i ustawienie bitu SM0D = l w rej. PCON
M0V TLI,#250
M0V THl,#250 i prędkość transmisj i 9600
CLR SM0 i ustawienie
SETB SM1 ;trybu pracy 1
CLR RI i wyzerowanie flagi
SETB TRI i Włączenie licznika TI
SETB REN i Włączenie odbiornika
CLR BYLI ;wyzerowanie flagi odbioru bajtu 1
;Podprogram obsłuc i odbioru
ODBIERZ:
JB RI,JEST1 i sprawdzenie czy nadeszła dana
RET ;i powrót do programu głównego jeśli nie
JEST1:
CLR RI i wyzerowanie flagi
JB BYL1,JEST2 ;sprawdzenie czy wcześniej odebrano pierwszy bajt,
ijeśli tak to skok do odbioru bajtu 2
SETB BYLI i ustawienie flagi odbioru pierwszego bajtu
M0V PIERWSZY,SBUF i zapamiętanie zawartości bufora w komórce pamięci
;zadeklarowanej jako PIERWSZY
RET i powrót do programu głównego
JEST2:
CLR BYLI ;wyzerowanie flagi (następny będzie bajt pierwszy)
M0V DRUGI,SBUF i zapamiętanie drugiego odebranego bajtu
RET ;powrót do programu głównego
Elektronika Praktyczna 12/2003
99
KURS
rami, wówczas sposób ich połączenia zależny jest od odległości łączącego je przewodu. Jeżeli ograniczymy się do połączenia nie dłuższego niż 1...2m (zwłaszcza przy niskich prędkościach, nieprzekracza-jących 9600 bd), możemy wtedy pozostać przy standardzie TTL i bezpośrednio połączyć pomiędzy sobą wyprowadzenia RxD i TxD mikrokontrolerów (RxD jednego z TxD drugiego) oraz połączyć masy obu urządzeń. Dodatkowo należy zastosować rezystory podciągające te linie do Vcc o rezystancji 1...2kO ze względu na konieczność szybszego przeładowania stosunkowo dużej pojemności przewodu połączeniowego. Jeżeli odległość będzie większa, to nic nie stoi na przeszkodzie, aby zastosować dwa identyczne układy konwertera omówionego wyżej. Dla dużo większych odległości (powyżej 20 m) może stać się konieczne zastosowanie innego standardu - może to być np. RS-485 lub inny wykorzystujący magistralę symetryczną. Paweł Hadam, EP pawel.hadam@ep.com.pl
List. 14 ;;Program testujący i;Konfiguracja MOV TMOD,#020H port szeregowy i licznik TI w trybie 2
MOV PCON,#080H MOV TLI,#255 MOV TH1,#255 i ustawienie bitu SMOD = 1 w rej. PCON i prędkość transmisj i 57 600
CLR SMO SETB SM1 i ustawienie ;trybu pracy 1
CLR RI SETB TI SETB TRI iWyzerowanie flagi (nic nie odebrano) i ustawienie flagi (gotowy do nadawania) i Włączenie licznika TI
SETB REN i Włączenie odbiornika
i;Transmisja "OK"
MOV SBUF,#79 CLR TI JHB TI,$ MOV SBUF,#75 CLR TI iWysłanie kodu ASCII znaku "0" i wyzerowanie flagi i oczekiwanie na zakończenie transmisji i poprzedniego baj tu iWysłanie kodu ASCII znaku "K" i wyzerowanie flagi
i;Pętla główna
PĘTLA:
JHB RI,$ i sprawdzanie czy odebrano bajt, jeśli nie, to czekaj
CLR RI i wyzerowanie flagi
MOV R7,SBUF JHB TI,$ i zapamiętanie danej w rejestrze iczekaj, jeśli jeszcze nadaje
MOV SBUF,R7 CLR TI i nadanie zapamiętanej danej i wyzerowanie flagi
SJMP PĘTLA i skok na początek
100
Elektronika Praktyczna 12/2003



g';M'"l'"n'li
HIIHIKlffil ~
leiliiiiiiiiiimi

Wyszukiwarka

Podobne podstrony:
elektronika praktyczna 2003 2
elektronika praktyczna 2002
elektronika praktyczna 2000
elektronika praktyczna 1998
elektronika praktyczna 2002 2
elektronika praktyczna 2000 2
Elektronika Praktyczna W głośnikowym żywiole Cz 04
elektronika praktyczna 09 1997
elektronika praktyczna 08 1997
Elektronika Praktyczna 1997 02
elektronika praktyczna 1998 2
elektronika praktyczna 10 1997
elektronika praktyczna 2001

więcej podobnych podstron