elektronika praktyczna 2003 2


NA CD M.IN: SYMULATOR ANALOGOWY I CYFROWY, PROGRAMY EDA, OPROGRAMOWANIE SCADA
ELEKTRONIKA
g Międzynarodowy magazyn elektroników konstruktorów
1/2003 styczeń 15 zł 50 gr (wtym7%vAT)
MODUŁ OPTYCZNEGO WEJSCIA/WYJS.^OT,. BEZPRZEWODOWY REGULATOR TEMPERATi
PROGRAMATOR UNIWERSALNY PUNCH "MÓWIĄCY" WOLTOMIERZ
"ŚLĄSKI" IMMOBILIZER YAMPP-3/USB
VOCODER
.5--
PODZESPOŁY:
ANALOGOWA KONKURENCJ DLA -51
LIN ET N6SJM0fi{j
PROGRAMY:
!UCH'KROK POKROKU IE-TOOTH '%,,,
PROJEKTY
Punch
Programator uniwersalny,
część 2
AYT-5092
Drugą część artykuiu
poświęcamy przedstawieniu
obsługi oprogramowania
sterującego pracą
programatora oraz zaleceniom,
które warto u względnić
RokoinondGcjo: programator jest podstawowym przyrządem
naszych Czytelników.
1 JSS
Obsługa programu
Po opisie działania programatora nadszedł czas, aby opisać jego program sterujący. Program ten jest odpowiedzialny za komfort obsługi przyrządu. O tym, jak trudno napisać program przyjazny, poprawnie działający z estetycznie wyglądającym interfejsem użytkownika miałem okazję przekonać się wielokrotnie. Program składa się z trzech wywoływanych kolejno pulpitów: Pulpit edycji
Służy on do weryfikacji i edycji danych, które mają być zapisane w programowanym układzie
Ohnnftokm
,'TST'
-/ ta
/ r
Śwar
Rys. 2. Opis belki narzędziowej programu sterujqcego
tach wyświetlane heksadecymahiej oraz je dno cz e ś -nie jako znaki ASCII. Ponad po-lem edycyjnym usytuowane są zwykle przyciski wyboru poszczególnych funkcji programatora i menu w trybie tekstowym, powielające funkcje przycisków. Na rys. 2 opisałem ich funkcje.
Oprócz tego, na pulpicie edycyjnym znajduje się kilka dodatkowych elementów. Na wysokości przycisków wyboru, po wczytaniu z dysku pliku danych wyświetli się jego rozmiar w bajtach. Nazwa i ścieżka dostępu do ostatnio wczytanego pliku wyświetli się na pasku statusu na dole pulpitu.
Poruszanie się po polu edycyj-
umieszczone po prawej stronie pulpitu (rys. 3). Są to: pasek przewijania i dwa duże klawisze. Wyświetlane standardowo pole edycyjne odpowiada rozmiarom pamięci programowanego elementu. Rozmiar zależy od typu ele-
AT89C2051 można maksymalnie zaprogramować 2 kB pamięci programu) oraz od wybranej funkcji (sygnatura tego procesora to od-
Elektronika Praktyczna 1/2003
Punch - programator uniwersalny
Rys.
Głów
e okn
progra
czyt 2 bajtów). W przypadku bufora o rozmiarach do lOOOh poruszanie się po nim i odnajdywanie interesujących fragmentów danych ułatwia suwak. Za pomocą dwóch dużych klawiszy można wybrać do wyświetlania kolejne
lOOOh.
Pulpit wyboru funkcji
programujących
Naciśnięcie przycisku otwierającego okno programowania (rys. 4) spowoduje przejście do pulpitu programowania. Za pośrednictwem tej części programu sterującego
danymi znajdującymi się aktualnie w buforze edycji, odczytać do tego bufora dane z układu lub wywołać inną z dostępnych funkcji związanych z programowanym elementem np. jego kasowanie, jeżeli wyposażony jest w pamięć typu EEPROM lub Flash. Na pulpicie znajduje się sporo okienek wyświetlających informacje mające ułatwić pracę, jednak na początku mogą one trochę dez-
ich liczby. Są to głównie pola edycyjne informujące o podstawowych parametrach programowanego elementu i dostępnych opcjach. Tak jak w przypadku poprzedniego pulpitu podaję po kolei (poczynając od góry) opis i przeznaczenie każdego z jego elementów:
1. Okienko z wykazem dostępnych skryptów. Wybór skryptu poprzez dwukrotne kuknięcie na-zwy spowoduje jego wczytanie. Od tego momentu programator jest gotów do programowania układów obsługiwanych przez wybrany skrypt. Wczytanie nowego skryptu spowoduje zazwyczaj zmianę zawartości pozostałych okienek znajdujących się na pulpicie.
2. W okienku z prawej strony wyświetlane są informacje, które autor skryptu przygotowanego zgodnie ze standardem języka FEMTO może w nim umieścić. Uważam, że w okienku powinna znaleźć się lista obsługiwanych przez skrypt typów elementów, informacja o producencie, typie
mieściłem w swoich skryptach.
3. Poniżej znajduje się lista rozwijana z wykazem obsługiwanych przez skrypt elementów. W obecnej wersji oprogramowania każdy skrypt może opisywać procedury programowania do 8 elementów. Po rozwinięciu listy i kliknięciu nazwy wybranego elementu program sterujący dostosowuje swoje ustawienia do dokonanego wyboru. Ponieważ w obecnej wersji każdy skrypt opisuje elementy, których procedury pro-
bór oznacza w praktyce jedynie zmianę rozmiarów dostępnej do programowania pamięci. Na przykład dla procesora AT89C2051 będzie to 2 kB, natomiast w przypadku AT89C4051 rozmiar pamięci wynosi 4 kB.
4. Po wyborze elementu z listy, w sąsiednim okienku pojawią się zwięzłe informacje dotyczące wy-
brai

5. Poniżej linii rozdzielającej górę i dół pulpitu, z lewej strony znajduje się okienko z listą funkcji dostępnych dla wybranego układu. Dostępne funkcje to np. programowanie, weryfikacja, kaso-
6. Nazwa wybranej funkcji zostanie wyświetlona w okienku z prawej strony. Sposób, w jaki dokonany zostanie wybór, określają dwa przyciski znajdujące się pomiędzy okienkami.
7. Jeżeli aktywny jest przycisk z czerwoną strzałką, możliwy jest wybór pojedynczych opcji.
8. Jeżeli aktywny jest przycisk z plusem, można wybrać więcej niż jedną z dostępnych funkcji np. zapis + weryfikacja + zabezpieczenie przed odczytem. Oczywiście nie wszystkie kombinacje są sensowne, np. zapis + kaso-
do wyświetlenia informacji o błę-
9. Jeszcze niżej, z lewej strony pulpitu znajdują się dwa okienka,
w których wyświetlany jest adres początku i końca programowanego
nia z elementem o dużej pamięci,
początku niewiele danych, można dla przyśpieszenia procesu programowania ograniczyć od góry zakres programowania do rozmiaru zapisywanego bloku. Znacznie rzadziej będzie stoso-
np. procesory wymagają, aby pewne elementy programu roz-poczynały się od zerowego adresu komórki pamięci.
10. Obok znaj duj ą się dw a pola edycyjne. Alternatywne pole edycji (APE, alternatywne w stosunku do pola edycji na pierwszym pulpicie) przeznaczone jest do wyświetlania małej ilości danych w formacie heksadecymal-nym lub tekstowym. Może mieć zastosowanie chociażby przy wyświetlaniu odczytanej sygnatury elementu. O tym, w którym oknie informacja ta zostanie wyświetlona decyduje skrypt elementu.
11. Bitowe pole edycji (BPE) przeznaczone zostało do wyświetlania i edycji także niewielkich porcji danych w postaci bitowej (dwójkowej). Taki tryb prezentacji danych jest najwygodniejszy w przypadku odczytu lub ustawiania bitów konfiguracyjnych elementu. Jeżeli takich bitów nie ma, pole pozostaje puste.
12. Jeszcze niżej znajduje się pasek pokazujący graficznie po-
a w okienku obok wyświetla się liczba bajtów pozostałych do zaprogramowania lub odczytania. W przypadku błędu weryfikacji, w kolorze czerwonym wyświetlony zostanie adres pierwszego baj-tu różnego od bajtu w buforze edycji.
Elektronika Praktyczna 1/2003
Punch - programator uniwersalny
Rys, 5, Wh
'ego
13. Na samym dole, na dodatkowym pasku statusu, mogą pojawiać się komunikaty, np. o bieżącej lub zakończonej operacji.
wej strony pulpitu z napisem Start, oznaczonego symbolem diody LED, oznacza rozpoczęcie realizacji wybranej funkcji. Spowoduje to przesłanie do części sprzętowej odpowiednich rozkazów i najczęściej dołączenie zasilania do programowanego elementu, co sygnalizowane jest świeceniem się diody LED. Przerwanie
liwe po naciśnięciu na klawiatu-rze komputera klawisza eecape. Część sprzętowa przerwie piogia-
Śntu jeszcze w jednym przypad-
ku - jei

z progu
rującym i w ciągu kilku sekund z komputera PC nie zostanie przesłany żaden rozkaz.
15. Ostatni z elementów na pulpicie - klawisz z napisem Koniec - zamyka pulpit funkcji programujących i otwiera pulpit z polem edycyjnym. Pulpit funkcji serwisowych
Projektując programator, postanowiłem rozbudować możliwości
piawności działania. Ułatwi to korzystanie z programatora, szczególnie w sytuacji, gdy użytkownik przygotowuje własny adapter, a potem chciałby go sprawdzić bez używania do tego celu często kosztownego elementu programowanego. Z tego powodu funkcje
gólnych wyprowadzeń złączy JPl iJP2.
Z lewej strony pulpitu (rys. 5) wyświetlono w uproszczeniu obydwa złącza wraz z przyjętymi dla
nich nazwami. Jeżeli przyjmiemy, że górę części sprzętowej programatora wyznacza złącze RS232, to z lewej strony znajdzie się złącze JPl, a z prawej JP2. Oprócz nazwy, obok oznaczenia każdego styku znajdzie się informacja o jego statusie: czy jest wejściem, wyjściem oraz jaki powinien być na nim poziom. W znajdujących się obok polach, po nawiązaniu łączności pomiędzy programem sterującym a częścią sprzętową programatora, wyświetlane są in-
i jego numerze. Schematycznie zaznaczona zielona dioda LED zaświeci się na chwilę po każdej poprawnej transmisji między kom-
wona dioda zaświeci się, gdy wyprowadzenie Vcc zaznaczymy jako OM, co będzie oznaczać, że po wysłaniu kolejnych danych powinien załączyć się przekaźnik
wany element. Jeżeli uprzednio wczytany został skrypt konkretnego elementu, to po naciśnięciu
symbolem otwartej książki zamiast standardowych nazw złącz pojawi się opis nóżki układu scalonego, do którego powinno zostać podłączone wyprowadzenie za pośrednictwem adaptera i podstawki programującej.
Z prawej strony pulpitu znajdują się narzędzia służące do wymuszania (w celach testowych) odpowiednich stanów logicznych na wybranych wyprowadzeniach złącz. W przypadku wyprowadzeń adresowych można to zrobić dwoma sposobami. Np. kuknięcie na oznaczenie Adr5 będzie cyklicznie przełączało jego poziom z wysokiego na niski i odwrotnie. Dla wszystkich wyjść adresowych ten sam efekt można uzyskać wpisując w polu edycyjnym dwubajto-wą liczbę, która zostanie przekształcona na odpowiednią kombinację zer i jedynek na wyjściach adresowych. Po kolejnej
LSJl
Pozostałe wyprowadzenia, zarówno DatO-7, jak i Y1-10 mogą pełnić rolę wyjść i wejść. Wyboru trybu dokonuje się zaznaczając określone pole na pulpicie. W trybie wyjścia test przebiega podobnie jak dla wyprowadzeń adresowych. W trybie wejścia można na badane złącze JPl lub 2 podać wybrany stan logiczny, który zostanie odczytany i zasygnalizowany przy opisie wyprowadzenia. Warunkiem powodzenia tego testu jest uprzednie ustawienie badanego wejścia na poziomie wysokim.
służy do testowania wypiowadze-cia programowania Vprog. Gdy
Vcc, jak i Vprog powinny być zaznaczone jako włączone, co jest sygnalizowane za pomocą symbolu świecącej się czerwonej diody LED. Użytkownik może wymusić na obu wyjściach dowolne napięcie z określonego w parametrach
czością 0,1 V. Oprócz tego, na wyprowadzeniu Y10 można wygę-
1 us lub 1 ms.
Jeszcze niżej, za pomocą listy rozwijanej użytkownik może określić, do którego portu COM będzie przyłączona część sprzętowa programatora. Ustawienie to będzie
pracy z pro gram a torem. Naciśnię-cie znajdującego si, obok klawisza Transmisja spowoduje jednokrotne
wcześniej parametrami wyprowadzeń. Klawisz Koniec zamyka funkcje serwisowe i powoduje powrót do pulpitu edycji.
Kończąc swoją pracę, program sterujący w osobnym pliku konfi-guiacyjnym zapisuje bieżące usta-
chomieniu będą one przywrócone, co dotyczy m.in. wybranego skryp-
mcja
sprzętowej części programatora. W ten sposób porównując występujący stan logiczny z zaprogramowanym, można sprawdzić poprawność działania wyjść progra-
nych czy który będzi
p
meru portu COM, iżywany przez pro-
Montaż programatora
Tym czytelnikom, których zainteresował przedstawiany projekt i przystąpią do budowy programa-
Elektronika Praktyczna 1/2003
Punch - programator uniwersalny
O O O O L,
o o o o o o'o"6 o o o o
OO o O O
o o o o
o o o o
O OOO O O O O O OO O O O
Rys. 6. Rozmieszczenie elementów na płytce programatora
tora, może przydać się parę moich rad wynikających z doświadczenia, jakie zdobyłem przy budowie trzech prototypów programatora.
Programator zaprojektowany został do montażu w plastikowej obudowie oznaczonej symbolem producenta Z50. Jest ona dostępna w kilku wariantach, ja wykorzystałem pudełka o zewnętrznej wysokości 43 mm lub 36 mm. W pudełku trzeba zamontować dwie płytki drukowane. Płytka główna (dwustronna) ma wymiary 100 x 81 mm. Dla zaoszczędzenia miejsca, wszystkie oporniki i kondensatory nieelektrolityczne są przeznaczone do montażu powierzchniowego, tak jak większość układów scalonych (rys. 6). Zastosowano elementy R i C w obudowach 1206. Tym z Czytelników, którzy nie mają dobrej lutownicy o cienkim grocie i cienkiej cyny, a przede wszystkim nie mają wystarczająco dużo cierpliwości, odradzam samodzielny montaż. Źle wlutowany element SMD trudno wylutować, a w przypadku układów scalonych oznacza to najczęściej ich zniszczenie. Po tym ostrzeżeniu przystępuję do wypunktowania czynności związanych z montażem. Moim zdaniem warto przestrzegać podanej kolejności, gdyż ułatwi to pracę:
1. Płytkę drukowaną przystosowujemy do wymiarów obudowy w ten sposób, że w obu narożni-
kach (od strony gniazda DB9) wycinamy kwadraty o wymiarach mniej więcej 10 mm (zaznaczono na płytce), aby zrobić miejsce na wewnętrznie prowadzone wkręty mocujące górę i dół obudowy.
2. Na dolnej stronie płytki lutujemy wszystkie oporniki i kondensatory SMD. Można najpierw zwilżyć cyną jeden z punktów lutowniczych i przylutować końcówkę elementu. Po sprawdzeniu, że przylega on do płytki i ewentualnej korekcie jego położenia, lutujemy jego drugą końcówkę. Radzę się nie śpieszyć, co zmniejszy ryzyko pomyłki. O ile bowiem oporniki mają wytrawione na powierzchni cyfry z oznaczeniem oporności, to kondensatory pozbawione są takich oznaczeń i mogą nie różnić się wyglądem przy zupełnie różnej pojemności.
3. Od dołu wlutowujemy jeszcze układ multipleksera Ul 2 i chwilowo przestajemy się interesować dolną częścią płytki.
4. Na górze należy wlutować montowane powierzchniowo układy scalone Ul, U2, U4, U8, U3. Tak jak w przypadku elementów RC, najpierw należy przylutować jedną, najlepiej skrajną nóżkę układu, sprawdzić jego położenie i dopiero potem lutować pozostałe nóżki.
5. Wlutowujemy pozostałe elementy od najmniejszych do największych. Lutowanie małego tranzystora, gdy wokoło znajdują
się wysokie elementy, może być bardzo stresujące. Proszę zwrócić uwagę na prawidłową lokalizację markera podstawki PLCC procesora. Ścięta krawędź powinna znaleźć się u góry po lewej stronie. Kwarc X2, jeżeli nie jest w niskiej obudowie, radzę położyć, co zapobiegnie jego wyłamywaniu przez kable. Przed jego wlutowa-niem, obszar płytki drukowanej, do której może dotykać metalowa obudowa kwarcu, należy zabezpieczyć przez przyklejenie np. kawałka taśmy izolacyjnej. Jako ostatnie należy wlutować wysokie elektrolity i gniazdo DB9.
6. Dla poprawy warunków pracy stabilizatora U6 warto zwiększyć jego chłodzenie, stosując mały radiator.
7. Jako złącza JPl i JP2 można zastosować dwurzędowe, kwadratowe szpilki stosowane w złączach komputerowych. Podobnych można użyć jako złącza dla diod LED. Zastosowanie złącz zamiast lutowanych na stałe przewodów ułatwi zarówno montaż, jak i demontaż programatora, co może się przydać szczególnie w fazie uruchamiania układu.
8. Następnie należy wykonać czynności mechaniczne związane z przystosowaniem obudowy do potrzeb programatora. W tym celu od strony gniazda RS-a i gniazda zasilającego w plastikowej płytce obudowy należy wyciąć prostokątne otwory na te gniazda.
9. Druga płytka programatora jest płytką jednostronną. Przewidziano na niej miejsce na dwa gniazda wyprowadzające na zewnątrz obudowy sygnały złączy JPl, JP2. W czasie normalnej pracy, do złączy będą wkładane adaptery programujące. Ponieważ gniazda te są przewidziane do intensywnej pracy (częste wkładanie i wyjmowanie adapterów), a jednocześnie muszą zapewniać pewny styk, muszą być dobrej jakości. Najodpowiedniejsze wydają się listwy tzw. gniazd precyzyjnych o średnicy ok. 0,8 mm (średnica większa niż gniazd precyzyjnych dla układów scalonych), których wewnętrzne styki pokryte są stopem z domieszką złota. Gniazda powinny być wlutowane dokładnie prostopadle do płaszczyzny płytki. Dodatkowo na płytce przewidziano miejsce na opór-
40
Elektronika Praktyczna 1/2003
Punch - programator uniwersalny
Rys. 7. Schemat elektryczny adaptera dla mikrokontrolerów 89C2051/4051
gujemy położenie klejonych wkrętów tak, aby ich położenie pokrywało się z otworami w płytce. Oczywiście, trzeba to robić ostrożnie, żeby nie przykleić płytki do obudowy. Klej typu POXIPOL twardnieje już po 10 minutach. Przed upływem tego czasu wyjmujemy płytkę, mając pewność, że wkręty znajdują się na właściwym miejscu, natomiast płytka nie sklei się z obudową.
12. Do płytki złącz należy teraz dolutować przewody, które ją połączą ze stykami JPl i JP2 płytki głównej. Takie połączenie można wykonać za pomocą dwóch odcinków 20-żyłowej taśmy o długości 8...10 cm zakończonych gniazdami zaciskowymi. Po roz-
niki podciągające poziom niektórych sygnałów do napięcia +5V, co może być konieczne przy długich przewodach łączących płytkę główną programatora z płytką gniazd.
10. W górnej części obudowy należy wyciąć dwie równoległe szczeliny na opisywane wyżej gniazda. Dodatkowo trzeba wywiercić dwa otwory na diody LED
0 średnicy zależnej od wymiarów zastosowanych elementów
1 ich oprawek. Moim zdaniem najlepiej mocuje się diody o średnicy 5 mm. Otwory powinny znaleźć się na obudowie od strony operatora, aby w czasie pracy programatora diody były widoczne.
11. Do zamocowania płytki gniazd do górnej
części obudowy (tej z dwiema wyciętymi wcześniej szczelinami) użyłem 4 wkrętów M3 o długości ok. 10 mm z łbami stożkowymi i kleju POXIPOL. Wkręty mocujące płytkę powinny być przyklejone do górnej części obudowy po jej wewnętrznej stronie. Miejsca klejenia należy koniecznie zmatowić alb o zarys ować, gdyż w przeciwnym przypadku żywica nie sklei wkrętów z plastikiem dostatecznie mocno. Klej powinien oblewać dolną część główki wkrętu, jednak nie może sięgać do części nagwintowanej . Zanim klej stężeje, korzystamy z płytki złącz i kory- RySi 8. Schemat elektryczny adaptera dla mikrokontrolerów 89C51/52
dzieleniu z obu stron taśmy żył na długości 15...20 mm i usunięciu izolacji, końcówki należy pobielić cyną. Taka taśma nie lutuje się najlepiej i wskazane jest użycie kalafonii (sam topnik zawarty w lucie może nie wystarczyć). Taśmę należy ułożyć równolegle na płytce i dolutować do gniazd żyła po żyle, zaczynając od skrajnych i skracając w miarę konieczności środkowe. Takie ułożeniu taśm połączeniowych, które po skręceniu obudowy ułożą się w jej wnętrzu "esowato", zapobiegnie ich ruchom w miejscach lutowania ze złączem i w efekcie obrywaniu przewodów.
13. Ostatnią czynnością tej części montażu jest przykręcenie płytki złącz do górnej części obudowy za pomocą przyklejonych wkrętów oraz zamocowanie LED-ów z przewodami i wtykiem.
Budowa adapterów
Zadaniem wymiennych adapterów jest doprowadzenie sygnałów ze złącz JPl i JP2 do podstawki programującej typu ZIF, a za jej pośrednictwem do odpowiednich wyprowadzeń programowanego elementu. Każdy adapter składa się z dwóch jednostronnych płytek drukowanych.
Elektronika Praktyczna 1/2003
41
Punch - programator uniwersalny
Dolna, w projekcie określona nazwą adapter base, jest taka sama dla wszystkich typów adapterów. Służy do wlutowania dwóch rzędów styków, które w momencie mocowania adaptera znajdą się w gniazdach JPl i JP2. Utworzone w ten sposób złącze powinno zapewniać pewny styk, a jednocześnie pozwalać na rozłączenie bez używania nadmiernej siły. Najlepiej do tego celu nadają się listwy styków tzw. złoconych okrągłych o średnicy 0,8 mm. Gorsze są styki o przekroju kwadratowym. Zdecydowanie odradzam używanie styków pokrytych stopem w kolorze srebrnym. Tworzone połączenie jest co prawda niezawodne, ale wyjęcie adaptera z takimi stykami z gniazda wymaga dużej siły i może grozić uszkodzeniem złącz.
Druga (górna) płytka adaptera ma otwory mocujące przystosowane do użytej podstawki ZIF. Podstawki mogą się od siebie różnić tak, jak różnią się typy obudów programowanych elementów np.
DIP, PLCC, FPGA itd. Różna może być także liczba wyprowadzeń, chociaż z reguły podstawki większej np. DIP40 można użyć do programowania elementów DIP o 20 nogach. Podstawki można albo na stałe wlutować do górnej płytki adaptera, albo osadzać je za pośrednictwem złączy wykonanych ze styków precyzyjnych. Tego typu rozwiązanie nie jest estetyczne, ale umożliwia wykorzystanie jednej podstawki ZIF (zwykle stosunkowo drogiej) w kilku adapterach.
Obie płytki są ze sobą łączone przewodami w sposób przypisany przez skrypt, z którym współpracują. Struktura pliku skryptu pozwala na umieszczenie w nim takich informacji przez programistę. Potem mogą być one wyświetlone przez program sterujący programatorem na pulpicie funkcji serwisowych po naciśnięciu przycisku z ikoną książki. Przykładowy schemat połączeń opisany w moich skryptach opracowanych dla programowania proceso-
rów AT89C2051/4051 i AT89C51/ 52 przedstawiono na rys. 7 i 8. Po wykonaniu połączeń obie płytki należy ze sobą złączyć, tworząc coś w rodzaju kanapki, z przewodami pomiędzy płytkami. Do mocowania można użyć 4 odcinków grubej srebrzanki i przylu-tować je od strony druku obydwu płytek. Można także użyć gwintowanych wewnętrznie tulejek dystansowych zamontowanych w czterech rogach pomiędzy obydwiema płytkami. Tulejki powinny mieć długość 6 - 8 mm. Wkręty użyte do takiego montażu powinny być oczywiście krótsze, o długości gwintu maksymalnie 5 mm. Ryszard Szymaniak, AVT ryszard.szymaniak@ep.com.pl
Opis języka i ewentualnych zmian jest dostępny na stronie http://www.aries-rs.com.pl/femto.
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdfI styczeń 03 .htm.
42
Elektronika Praktyczna 1/2003
BIBLIOTEKA EP
IV ^Bibliotece LP" 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 EP, nie będziemy publikować recenzji książek ocenianych na jedną lub dwie "lutownice", Przyjęliśmy szeroką skalę ocen, aby ułatwić Czytelnikom orientację w potencjalnej przydatności książki,
Uwaga! Większość prezentowanych książek można zamówić w Dziale Handlowym AVT (patrz str, 131), Chcemy w ten sposób udostępnić je Czytelnikom EP,
Marek Smyczek, "Protel 99SE, pierwsze kroki", BTC 2003
Kupon na bezpłatny CD-ROM z ewaluacyjną wersją Protela 99SE
tykułu publikowanego niegdyś w EP na temat domowego sposobu wykonywania płytek drukowanych za pomocą emulsji Po-sitiv oraz informacja o sposobie korzystania z folii TES2OOO, tablice przeliczeniowe jednostek miary (milsy > mm i odwrotnie), rysunki referencyjne ułatwiające zorientowanie się czy np. punkt 60 x 60 milsów jest odpowiedni, czy za mały. Oprócz tego pokazano przekrój typowych płytek drukowanych z opisem poszczególnych warstw oraz -prawdziwy hit - informacje o zalecanych parametrach elektrycznych ścieżek w zależności od różnych czynników (minimalne odstępy między nimi, zalecane szerokości w zależności od grubości miedzi i przewidywanego obciążenia, dopuszczalne przetężenia itp.). Przydatne są także opisy (niestety wybranych, ale chyba najbardziej użytecznych) skrótów klawiszowych z podziałem na stosowane w edytorze schematów, edytorze PCB i skróty Design Explorera. Orientację w treści książki ułatwia solidnie przygotowany skorowidz, który zawiera odniesienia do ogromnej liczby przydatnych haseł.
Książkę wydano w szytej, twardej oprawie. Jest ona bogato ilustrowana (dla przykładu rozdział 2. zawiera 122 zrzuty ekranu i rysunki, w rozdziale 3. jest ich 106), co znakomicie ułatwia analizę treści książki i w konsekwencji naukę obsługi programu. Wydawca zadbał także o dodatkową atrakcję dla nabywców książki: wraz z nią jest dostarczana kartka pocztowa zaadresowana do fir-
ŚMcti-onlM PraMyoznaj
Wydanie w 2003 roku książki o Protelu 99SE wydaje się być pomysłem nieco szalonym, bo przecież od co najmniej kilku miesięcy zastąpił go Protel DXP. Wydaje się jednak, że popularność zdobyta przez niemal 4 lata obecności na rynku (nie licząc wcześniejszych wersji Protela 99), łatwość zdobycia "witamin" dla wersji ewaluacyj-nej (co oczywiście nie cieszy producenta, ale zapewnia dostęp do możliwości programu wielu elektronikom majstrującym w domowym zaciszu), duże możliwości i stosunkowo łatwa jego obsługa powodują, że będzie się on cieszył powodzeniem jeszcze pTzez wiele lat. Niebagatelnym atutem Piotela 99SE w stosunku do jego następcy są także niewielkie wymagania sprzętowe, dzięki czemu "żywotność" programu w przypadku wielu mniej zasobnych użytkowników nie jest z pewnością zagrożona.
Prezentowana książka składa się z 5 części, w których umieszczono (kolejno): wstęp, omówienie sposobu obsługi edytorów schematów i PCB, opis posługiwania się edytorem bibliotek (w tym tworzenia i modyfikowania elementów bibliotecznych), podstawy symulacji układów elektronicznych oraz zbiór niezwykle przydatnych dodatków. Wśród nich znajdują się: przedruk ar-
my Evationix - na jej podstawie można otrzymać bezpłatną płytę CD-ROM zawierającą ewaluacyjną wersję Protela 99SE. Dzięki temu można oszczędzić trochę czasu i pieniędzy, ponieważ można zrezygnować z samodzielnego ściągania blisko 55 MB ze strony www.protel. com.
Moim zdaniem książka ma szansę stać się w naszym kraju publikacją referencyjną dla użytkowników Protela 99 SE. Jak sądzę, założeniem autora było przygotowanie podręcznika dla początkujących, ale zbiór zawartych w książce informacji powoduje, że mogą z niej korzystać także bardziej zaawansowani projektanci.
Z de cy do w ane pięć lutownic! Mikołaj Andrus
Elektronika Praktyczna 5/2003
129
BIBLIOTEKA EP
Andrzej Urbaniak
Legenda:
Andrzej Urbaniak, "Podstawy aut o m aty ki", Wy d a wn ic t wo Politechniki Poznańskiej 2001
Na naszym rynku "wydawniczym brakuje dobrych książek poświęconych automatyce, która - dzięki rozwojowi techniki - jest coraz bliższa elektronikom. Miałem nadzieje., że prezentowana książka może zawierać informacje podane "w sposób przyjazny czytelnikom rozumiejącym zjawiska "praktycznie" a nie "teoretycznie". W pewnym stopniu moje nadzieje znalazły odbicie w treści książki, ale niestety fz punktu widzenia praktyków) przebijające z niej silnie podłoże naukowe, zamazuje prezentacje, niezwykle interesujących zagadnień. Szczególnie interesujący jest rozdział poświęcony elementom systemów automatyki, w którym autor pokazał mało znane zagadnienia związane z budową i zasadą działania czujników różnego typu. Za przyjazną mniej doświadczonemu odbiorcy można uznać także pierwszą część książki, w której wyjaśniane są podstawowe zagadnienia z techniki cyfrowej oraz podstawy teorii regulacji i sterowania.
Książka zawiera - niestety - nieco błędów łatwych do wychwycenia przez elektronika zajmującego się techniką mikroprocesorową, nieco zabawnie w 2 001 roku fwtedy książka się ukazała) brzmią także odniesienia do literatury poświęconej mikroprocesorom z lat 1980 i 1983, współczesności nie odpowiada także schemat blokowy ilustrujący budowę sterownika PLC.
No cóż, pęd za aktualnościami to może maniera elektronika zwłaszcza, że zdecydowana większość zamieszczonych informacji można zakwalifikować do kanonu wiedzy automatyka.
Mimo wszystko, z drobnymi zastrzeżeniami, polecamy!
Andrzej Gawryluk
Czułnlfcl w pojizdach samochodowych
BO5CH
Bosch: "Czujniki w pojazdach samochodowych", WKŁ2002
Współczesne samochody są równie zelektronizowane, co sprzęt gospodarstwa domowego. Ze względu na braki dokumentacyjne oraz powszechne stosowanie przez producentów modułów elektronicznych dla samochodów specjalizowanych układów scalonych, elektronika samochodowa jest stosunkowo słabo znana. Tym cenniejsza wydaje się prezentowana książka, która nie ma ambicji spełniać roli katalogu czujników produkowanych przez firmę Eosch. Jej zadaniem jest natomiast dogłębne przedstawienie zasad działania czujników różnego typu, a także przybliżenie podstawowych informacji o metodach obróbki danych odbieranych z czujników przez komputery samochodowe.
Mikołaj Artdrus
Anna Cysewska-Sobusiak: "Modelowanie i pomiary sygnałów biooptycznych", Wydawnictwo Politechniki Poznańskiej 2001
W książce poruszono rzadko spotykaną w krajowej literaturze tematykę zastosowania różnych źródeł światła jako elementu czujników stosowanych w elektronicznej aparaturze medycznej. Autorka szeroko przedstawiła możliwości współczesnych technik pomiarowych stosowanych w urządzeniach do monitorowania sygnałów biomedycznych, omówiła zagadnienia związane z optyką tkanek i wynikające z niej parametry źródeł światła, bardzo wiele
książka wybitna, polecamy!
książka o dużych walorach praktycznych, polecamy!
może się pizydać
daleka od doskonałości
nie warto kupować
miejsca przeznaczyła także na przedstawienie opisu matematycznego niektórych zjawisk występujących w ludzkim organizmie. Nie są to oczywiście wszystkie zagadnienia poruszone w książce, ale na podstawie wielokrotnego, dość dokładnego jej przeglądania mogę stwierdzić, że książka zainteresuje z pewnością tych elektroników, którzy zajmują się elektroniczną aparaturą medyczną. Zawarte w książce wywody teoretyczne są podbudowane szeregiem interesujących przykładów, które - przynajmniej moim zdaniem -rozjaśniają wiele wątpliwości, jaki muszą się nasunąć osobom nie mającym zbyt wiele do czynienia z aplikacjami medycznymi.
Mikołaj Andrus
130
Elektronika Praktyczna 5/2003
AUTOMATYKA
Wirtualne instrumenty pomiarowe
Współczesne systemy pomiarowe bardzo często zbudowane są na
bazie komputera PC, ponieważ takie rozwiązanie znacznie ułatwia
przetwarzanie, analizę i prezentację aanycn pomiarowycn. Jedno
z możliwych rozwiązań tego typu przedstawiamy w artykule.
D ASYLab
Data Acauisition System Laboratory
l1"l"1 iHŁflBI Wił" i" 1 1"-TT"I
Połączen
współpracujących umożliwia tworzenie tzw. wirtualnych instiu-mentow pomiarowych, w których tor pomiarowy w dużej mierze zrealizowany jest poprzez odpowiednie oprogramowanie. W takich systemach pomiarowych wybór odpowiedniego oprogramowania jest bardzo istotną decyzją,
w znacznym stopniu decyduje
0 właściwościach metrologicznych
1 o funkcjonalności całego syste-
sprzętu pomiarowego dostarcza do kart i modułów bezpłatne biblioteki dli, jednak tworzenie własnego
ków wysokiego poziomu jest żmudne i czasochłonne. Zarówno
pomiarach. Najbardziej wyrafino-\\ ane pakiety k ontrolno-pomiar o-u e umożliwiają pisanie własnych programu w języku zbliżonym do C, co daje użytkownikowi duże
iżli\

'Cl<_lŁ/i kompromis pomiędzy możli-
pakietu. Na rynku dostępne są pakiety o rożnych możliwościach,
kowania. Najprostsze z nich - np. DaqView firmy IOtech - umożliwia skonfigurowanie sprzętu po-
oraz oglądanie mierzonych sygnałów w czasie rzeczywistym i po
Jednak duże możliwości okupione są przede wszystkim wysoką ceną oraz dużym stopniem skomplikowania tworzonej aplikacji, dlatego
przeznaczone dla wąskiej grupy użytkowników.
Rozwiązaniem najbardziej optymalnym wydają się być tzw. pro-gramy ikonkowe (przykłady na rys. 1, 2 i 3), gdzie aplikacje pomiarowe tworzone są poprzez graficzne łączenie bloczków funkcyjnych. Przykładem takiego oprogra-
measX. Głównym założeniem przy tworzeniu Dasylaba była łatwość tworzenia aplikacji pomiarowych, dzięki czemu DasyLab jest oprog-
Rys, 1, Monitoring temperatury
Elektronika Praktyczna 5/2003
AUTOMATYKAi
Rys, 2, Przykładowa aplikacja w Dasylab
ramowaniem bardzo intuicyjnym, w którym nawet rozbudowaną aplikację pomiarową można stworzyć w kilkanaście minut. Aplika-
foimatce odpowiednie moduły a następnie łącząc je ze sobą tworząc tym samym odpowiedni przepływ sygnałów.
Każda ikonka odpowiada jednemu z ponad 100 dostępnych modułów. Mogą to być wejścia lub wyjścia, moduły do analizy oraz pie-
Wszystkie moduły podzielone są na grupy, zależnie od przeznaczenia można wyróżnić: moduły wejść oraz wyjść, moduły do wyzwalania p o mi aiu, mo duły m a te m a ty czn e i statystyczne, moduły do przetwarzania i analizy danych pomiarowych, moduły do obsługi sieci TCP, do operacji na plikach itd.
Możliwości przyłączenia sprzętu pomiarowego do komputera jest wiele. Pakiet obsługuje większość interfejsów jakie można spotkać w komputerach PC. Mogą to być karty do komputerów sta ej on ar-nych PCI, Compact PCI, ISA, PCMCIA, zewnętrzne moduły pomiarowe dołączane do portu, drukarkowego, RS-232/485, USB, Ethernet, GPIB, CAN. DasyLab może również współpracować z oscyloskopami, multimetiami oraz generatorami funkcyjnymi kompatybilnymi z IVI (Interchangeable Virtu-
mogą być wymieniane z innymi aplikacjami poprzez mechanizm DDE lub OPC. W sumie DasyLab wyposażony jest w sterowniki do 250 kart i modułów pomiarowych 50 różnych producentów (rys. 4) np. IOtech, Advantech, National
Instruments, Keithley, jest to zatem pakiet bardzo uniwersalny. Ma to duże znaczenie w ośrodkach badawczych i na uczelniach wyższych, gdzie można spotkać karty pomiarowe kilku lub kilkunastu producentów. DasyLab jako opiog-
nownik dla większości dostępnych na rynku kart pomiarowych. Jeśli karta nie jest obsługiwana przez oprogramowanie, dostępny jest zestaw do tworzenia własnych sterowników, zawierający szczegółowy opis interfejsu pomiędzy Dasy-Labem a bibliotekami dli.
DasyLab umożliwia pióbkowa-nie sygnałów pomiarowych z częs-totliwością do 1 MHz. Zależnie od platformy sprzętowej dane mogą być wyświetlane w czasie rzeczywistym z prędkością ponad 100 tys. próbek na sekundę, a funkcja disc-streoniiug umożliwia ich zapis na dysku z częstotliwością do 200 kHz. Do oprogramowania DasyLab opcjonalnie dostępna jest nakładka Net, która umożliwia ko-
miarowej taka możliwość przydaje się np. jeśli chcemy pobrać charakterystykę czujnika, dane ka-libracyjne itp., a z drugiej strony umożliwia zapis zmierzonych i przetworzonych danych bezpośrednio do bazy danych.
DasyLab może pracować jako DDE serwer lub klient, oprogra-mowanie wykorzystuje wszystkie rodzaje połączeń (hot link, warm link, cold link). W aplikacji typu klient można zdefiniować aplikację, topie oraz itesn, jeśli nie zdefiniujemy tych parametrów DasyLab wyszuka wszystkie dostępne połączenia.
Możliwa jest również współpraca z serwerami OPC (OLE for Process Control) jako klient OPC. Program znakomicie współpracuje z serwerami OPC sterowników przemysłowych np. Rockwell Aurami HTTP/FTP zarówno przez sieć lokalną jak i rozległą. Zintegrowana przeglądarka OPC podobna jest w użyciu do przeglądarki
i protokół TCP/IP pomiędzy poszczególnymi kopiami oprogramowania. Oprócz wymiany danych możliwa jest również w ten sposób zdalna kontrola systemu po-
perymentu, wystartowanie, zatrzymanie oraz jednoczesne wystartowanie kilku systemów pomiaro-
lokalizacjach. W lokalnej sieci możliwa jest wymiana danych z prędkością do 100 tys. próbek na sekundę. Oprogramowanie może również współpracować z bazami danych poprzez mechanizm ODBC. W aplikacji kontrolno-po-
żadnych trudności nawet początkującym użytkownikom.
Dzięki rozbudowanemu interfejsowi graficznemu DasyLab może służyć do wizualizacji procesów automatyki przemysłowej. Do dyspozycji operatora są min. wirtualne rejestratory, wskaźniki po-
we, lampki kontrolne itp. ponadto jest wiele narzędzi do dokumentacji badanych procesów.
Oprogramowanie DasyLab jest stale rozwijane a w kolejnych wersjach pojawiają się nowe możli-
wią odpowiedź producenta oprog-
Elektronika Praktyczna 5/2003
AUTOMATYKAi
Rys, 4, Pomiary rozproszone z użyciem modułów ADAM ramowania na potrzeby rynku. Duża ilość bloczków funkcyjnych powstała na życzenie klientów a następnie została włączona do pakietu. Ciekawostką jest możliwość tworzenia własnych modułów fun-kcyjnych przy pomocy opcjonalnych narzędzi. Nowe moduły o nadanej przez nas funkcjonalności są w pełni zintegrowane z graficznym interfejsem użytkownika.
Od końca zeszłego roku Dasy-Lab dostępny jest w wersji 7.0. Jak zwykle w nowej edycji pojawiło się wiele nowych modułów a dotychczasowe zyskały na funk-cjonalności. Najciekawszymi mo-dułami w nowej wersji są:
Electric Characteristics Module. Moduł ten na podstawie wartości prądu i napięcia wylicza podsta-
np. przesunięcie fazowe, moc itp. w sumie 15 parametrów opisujących właściwości elektryczne.
jest również Multi-Speed Analog Input, który pozwala na zdefiniowanie częstotliwości próbkowania indywidualnie dla każdej karty
wości zainstalowanego sprzętu. Pojawiły się również nowe moduły komunikacyjne np. Modbus Module, jak nazwa wskazuje do obsługi urządzeń obsługujących protokół
Modbus. Poprawione
obsługi portów szeregowych m.in. dodano bardzo przydatny de-bugei, który ułatwia rozwiązywanie problemów z komunikacją
Bardzo ciekawym modułem jest również Black Box, czyli czarna skrzynka. W module tym można umieścić często powtarzającą się kombinację innych modułów, a na zewnątrz wyprowadzić tylko te informacje, które nas interesują, w ten sposób powstaje odpowiednik funkcji w językach programowania, który możemy wykorzystywać w kolejnych aplikacjach. Zawartość modułu Black Box może być chroniona hasłem.
również narzędzia ułatwiające tworzenie rozbudowanych aplikacji kontrolno-pomiarowych np. Seąuen-ce Control, który umożliwia rozbicie eksperymentu na kilka etapów np. kalibracja systemu, pomiary,
portów. Każdy z tych etapów może stanowić odrębną aplikację, a przy tworzeniu projektu są one powiązane w całość poprzez mechanizm Seąuence Control. Sequence Control oprócz uruchamianie poszczególnych podpiogiamów w odpowiedniej kolejności umożliwia współdzielenie plików i zmiennych przez poszczególne arkusze, dzięki czemu kilka niezależnych aplikacji ti jeden spójny projekt.
W i

Rys, 5, Wizualizacjo szybkiej transformaty Fouriera
sześć starych modułów zyskała nową funkcjonalność np. moduł PID został wzbogacony o funkcję auto-tuning, a Scaling Module ma teraz możliwość konwersji wielu jednostek np. temperatury, ciśnienia, długości itd., dzięki czemu konwersja jednostek jest bardzo prosta. Ponadto pojawiła się możnych globalnych i łańcuchów.
W wersji 7.0 pojawił się również Getting Started Guide, czyli przewodnik po oprogramowaniu dla początkujących użytkowników. Przewodnik zawiera najbardziej typowe przykłady takie jak akwizycja i przetwarzanie danych, wizualizacja, oraz przykłady zastosowania modułów, które nastręczają początkującym użytkownikom najwięcej trudności m.in. Universal
Filter, Harmonie Distortion, Rain-flow, Octave Analysis. Przewodnik może byc również pomocny dla użytkowników, którzy znają op-
dużo przykładów obrazujących sposób konfiguracji wielu modu-łów, ich funkcjonalność oraz interakcje z innymi modułami. Oprócz przewodnika z oprogramowaniem dostarczony jest obszerny plik pomocy oraz dokumentacja.
Oprogramowanie dostępne jest w 3 wersjach: Lite, Basic i Fuli, które różnią się ceną i możliwościami. W wersji Lite można jednocześnie używać do 32 bloczków funkcyjnych, a liczba dostępnych modułów powoduje, że ta wersja nadaje się jedynie do wizualizacji oraz rejestracji mierzonych sygnałów. W wersji Basic nie ma żad-
stosowanych modułów, ale moduły do analizy danych pomiarowych np. nHaimonic, FFT (rys. 5) itp. są niedostępne.
Wersja Fuli daje użytkownikowi największe możliwości, jednak
nie zawiera wszystkich dostępnych modułów. Narzędzia do tworzenia własnych sterowników oraz bloczków funkcyjnych są opcjonalne. Dotyczy to niestety również kilku modułów do wyrafinowanej
m.in. FFT Filter, Octave Analysis, Rainflow, Błock Weighting, Convo-lution i Seąuence Generator.
Do każdego z wymienionych pakietów można dokupić dowolna ilość wersji Runtime, która po-
stwoizonej przy pomocy jednej z wersji development. Użytkownik końcowy nie musi zatem kupować pakietu do tworzenia aplikacji
w programie.
Minimalne wymagania sprzętowe dla oprogramowania to maszy-
i 64 MB RAM. System operacyjny Windows NT, 98, 2000, XP. Cezary Kalista, Elmark
Dytrybutorem programu DasyLab jest Elmark Automatyka Sp. z o.o., http://www.elmark.-com.pl, tel. (22) 821-30-54 lub (22)828-29-11.
Na płycie CD-EP5/2003B publikujemy ewa-luacyjną (30-dniową) wersję Fuli programu DasyLab.
Elektronika Praktyczna 5/2003
AUTOMATYKA
Nowe radiomodemy firmy Satel
6 sierpnia 2002 roku ukazało się rozporządzenie Ministra Infrastruktury w sprawie urządzeń radiowych nadawczych lub nadawczo-odbiorczych mogących pracować bez zezwolenia. Dotyczy ono również pasma częstotliwości 868...870 MHz, w którym obecnie można już stosować urządzenia nadawcze o określonych parametrach bez konieczności zdobywania specjalnych zezwoleń. Rozporządzenie to otworzyło nowe rynki firmom produkującym m.in. radiomodemy, co skrzętnie wykorzystała firma Satel Oy.
Od dwóch lat w krajach Unii Europejskiej istnieje specjalne pasmo przeznaczone dla urządzeń do transmisji radiowej o mocy do 500 mW. Mieści się ono w zakresie częstotliwości 868... 870 MHz i jest podzielone na szereg podpasm różniących się maksymalną dopuszczalną mocą nadawania (rys. l). Istotną cechą tego pasma jest to, że użytkownicy mogą stosować w nim urządzenia bez konieczności starania się o jakiekolwiek zezwolenia, w szczególności przydział częstotliwości.
W chwili wprowadzenia wspomnianych regulacji prawnych, do
pasmo 868...870 MHz zdobyte!
sprzedaży w naszym kraju trafił radiomodemem pracujący na wspomnianym paśmie - Satelline-1870. Jest on przeznaczony do transmisji danych w trybie half-duplex (przesyłanie danych z szybkim przełączaniem kierunku). Podobnie jak pozostałe radiomodemy z rodziny Satelline, jest on "przeźroczysty" dla prowadzonej transmisji danych, dzięki czemu może być wykorzystany do połączenia wszelkich urządzeń komunikujących się za pośrednictwem standardowych łączy szeregowych.
Radiomodem Satelline-18 70 składa się z modemu, nadajnika i odbiornika radiowego, umieszczonych w bardzo małej, aluminiowej obudowie. Na zewnątrz obudowy wyprowadzono 16-styko-we (DIN41651) gniazdo portu sze-
Zgodnie z prawem
Radiomodem Satelline-1870 posiada
Potwierdzenie Zgodności nr CLBT/C/
138a/2001 w zakresie częstotliwości
868,000...870,050 MHz, przy odstępie
sąsiedniokanałowym 25,0 kHz i z mocą
wyjściową 1... 100 mW.
regowego RS232 oraz złącze antenowe typu SMA. Dodatkowo umieszczony jest zestaw diod informujących o stanie linii sygnało-
A Max moc [mW ERP]
500
100
Częstotliwość
[MHz]
Rys. 1. Pasmo 868...870 MHz podzielono na podpasma, w których można nadawać ze ściśle określoną maksymalną mocą (na czerwono oznaczono wydzielone specjalne podpasma dla transmisji informacji przez systemy alarmowe)
wych portu szeregowego. Urządzenie zasilane jest prądem stałym
0 napięciu od 8 do 30 V.
Maksymalna moc nadajnika ra-diomodemu 100 mW ERP i można ją dostosować (poprzez programowanie radiomodemu) do wymagań aplikacji. Także pozostałe parametry radiomodemu można modyfikować za pomocą zwykłego programu terminalowego. Czułość odbiornika wynosi -80...-118 dBm
1 podobnie jak moc wyjściową, można ją zaprogramować.
Satelline-1870 może pracować w trzech trybach: przesyłania danych (normalny tryb pracy urządzenia), testowym oraz programowania. W trybie testowym możliwe jest sprawdzenie transmisji radiowej poprzez przesyłanie próbnych bloków danych. Daje to użytkownikowi możliwość zbadania jakości połączenia i oszacowania propagacji fal radiowych. Tryb programowania służy do konfigurowania radiomodemu, które wykonuje się za pomocą komputera PC z użyciem standardowego terminala (np. windowsowy HyperTerminal).
Radiomodem Satelline-1870 charakteryzuje się odstępem międzykanałowym 25 kHz, w związku z czym użytkownik w dostępnym paśmie ma do dyspozycji 80 kanałów. Szybkość transmisji toru radiowego wynosi 9600 bd, a prędkość wymiany danych przez port RS232 może zostać ustawiona w przedziale 300...19200 bd. Dzięki wbudowanemu w radiomodemy "systemowi bezpieczeństwa" podczas wybierania kanału, w którym radiomodem ma pracować, jego sterownik automatycznie dostosowuje moc wyjściową nadajnika do przewidzianej w regulacjach prawnych.
Istotną zaletą radiomodemu Satelline-1870 jest mnogość funkcji dodatkowych. Jedną z nich jest mechanizm sprawdzania sumy kontrolnej podczas transmisji da-
138
Elektronika Praktyczna 5/2003
AUTOMATYKA
[mW| vs [mW ERP]
Przy analizowaniu parametrów nadajników należy zwrócić
uwagę na niepozorny akronim ERP (Equivatent Radiation
Power) oznaczający w polskim tłumaczeniu zastępczą moc
promieniowania. Jest to moc emitowana przez antenę, czyli
uwzględniająca straty pomiędzy nadajnikiem i anteną i zysk
anteny, zgodnie ze wzorem: efektywna moc wy promieniowana [dBm] = moc doprowadzona
do anteny [dBm] - straty kabla [dB] + zysk anteny [dB] Definicja zgodna z: www.astor.cont.pl/satel/pdf/DziennikUstaw-138.pdf-
nych, Radiomodem może także pracować w charakterze retiansmi-tera (tzw, repeaiera) na dwa sposoby. Pierwszy z nich to wyłącznie odbieranie i natychmiastowe przesyłanie dalej pakietów danych (o maksymalnej długości pojedynczego bloku - 1 kB), W drugiej metodzie radiomodem skonfigurowany jako repeaier może także być podłączony do innego urządzenia. Wówczas dane są przekazywane do portu (jeżeli dotyczą tego urządzenia) lub są retransmi-towane dalej. Istnieje możliwość stosowania więcej niż jednego re-peatera, dzięki czemu odległość, na którą transmitowane są informacje, można wydatnie zwiększyć. Ponadto możliwe jest budowanie rozległych sieci o architekturze masier-slave.
Oprogramowanie systemowe ra-diomodemu Satelline-1870 jest zapisane w pamięci typu Flash. Dzięki temu jest możliwa jego ak-
Tab. 1. Parametry techniczne radio modę mów Satelline-1870
Nadajnk-Odbiornic
Zakres częstotliwości.................868...870 MHz
Odstęp między kanałowy..........................25 kHz
Liczba kanałów...............................................80
Niestabilność częstotliwości.............< +2,5 kHz
Nafty*
Moc wyjściowa.......5nmW...100mWERP/50n
Moc sąsiedniokanałowa....................< -37 dBm
Promieniowanie zakłócające.............< -36 dBm
Odbiór*
Czułość............................................<-104 dBm
Selektywność........................................> 50 dB
Promieniowanie zakłócające.............< -56 dBm
poniżej 1nGHz Mcdmi
Port..........................................................FŁS232
Gniazdo.......................DIN 41651 -16-stykowa
Prędkość transmisji (FŁS232).... 1200...19200 bd
Prędkość transmisji radiowej...............9600 bd
Transmisja.................................asynchroniczna
Parametry ogólne
Zasilanie.......................................+8...+30VDC
Pobór mocy.........standardowo 0,5 VA (odbiór)
standardowo 1,1 VA (transmisja, przy 50 mW) standardowo 0,01 VA (przy DTR="0h)
Zakrestemperatur pracy.................-2O...+5OC
Złącze antenowe.........................................SMA
Wys.xnszer.xngt...................125xn57xn16mm
Waga..........................................................125g
Fot, 2, Wyglqd radiomodemu Satelline-1870
tualizacja bez konieczności dokonywania jakichkolwiek zmian sprzętowych oraz bez konieczności rozkręcania obudowy urządzenia. Uaktualnienie oprogramowania przeprowadzane jest za pośrednictwem specjalnego portu umieszczonego w obudowie, za pomocą firmowego programu Sa-Term firmy SateL
Radiomodem Satelline-18 70 (fot. 2) znacznie różni się wyglądem zewnętrznym od innych urządzeń z rodziny Satelline, Jego wymiary są znacznie mniejsze i wynoszą: 125 x 57 x 16 mm, zaś jego ciężar nie przekracza 125 g, Andrzej Gawryluk, AVT
Artykuł powstał na bazie materiałów udostępnionych przez firmę Astor.
Dodatkowe informacje
Cena netto: 695 Euro.
Radiomodemy Satelline-1870 do testów udostępniła firma Astor, www.astor.com.pl.
140
Elektronika Praktyczna 5/2003
PROJEKTY
Karta dźwiękowa USB
z nagrywaniem
i analogowymi
oraz cyfrowymi we/wy
AVT-509
W interfejs USB
wyposażone są wszystkie
współczesne komputery. Za
pośrednictwem tego interfejsu
jest możliwe dołączanie
różnorodnych urządzeń, jedno
z najbardziej efektownych
opisujemy w artykule, jest to
kańa dźwiękowa, która może
odtwarzać, jak i nagrywać,
zarówno w torze analogowym,
jak i cyfrowym [S/PDIF).
Rękom en dacj e:
prezentowana kańa dźwiękowa
znajdzie zastosowania we
wszystkich tych komputerach,
które są wyposażone w port
USB. Dzięki możliwości
nagrywania dźwięku oraz
wb u do wanym interfejsom
cyfrowym może ona
w większości przypadków
zastąpić wyrafinowane kańy
instalowane w gniazdach PCI.
Poważnym atutem opisywanej karty dźwiękowej są wejścia/wyjścia cyfrowe S/PDIF. Cyfrowy interfejs umożliwia połączenie karty ze współpracującymi urządzeniami za pomocą światłowodu lub przewodu koaksjalnego 75 O,. Wygodę użytkowania karty na pewno podniosą dodatkowe przyciski służące do regulacji głośności oraz funkcji MUTE.
Opisywaną kartę dźwiękową USB polecamy tym wszystkim użytkownikom PC, którzy chcą uzyskać dobrą jakość dźwięku oraz nie mają miejsca lub możliwości zastosowania kart montowanych do odpowiednich gniazd. Karta dźwiękowa USB nie potrzebuje do pracy zewnętrznego zasilania, do pracy wystarczy jej prąd pobierany z portu USB. Jest to niewątpliwa zaleta, zwłaszcza gdy karta będzie pracowała z laptopem.
Zastosowany w karcie układ PCM2906 produkcji TI jest kompletnym, stereofonicznym kode-
rem-dekoderem audio wyposażonym w interfejs USB zgodny ze specyfikacją 1.1 oraz S/PDIF. Schemat blokowy PCM2906 znajduje się na rys. 1. W układzie zintegrowano przetworniki A/C i C/A, pamięci FIFO, dekoder oraz koder S/PDIF, pętle PLL, kontroler pro-
Tab. 1. Podstawowe parametry układu PCM2906
/Zintegrowany interfejs USB kompatybilny
znUSB 1.1, / we/wy analogowe, /we/wy S/PDIF, /16-bitowy przetwornik Delta-Sigma A/C
oraz C/A, /parametry stereo A/C (przy zasilaniu 5V):
k THD+N: 0,01%,
k SNR: 89dB, /parametry stereo C/A (przy zasilaniu 5V):
k THD+N: 0,005%,
k SNR: 96dB, /częstotliwości próbkowania:
K A/C: S, 11,025, 16, 22,05, 32, 44,1, 48 kHz,
k C/A: 32, 44,1, 48 kHz, /napięcie zasilania: 5nV, /dodatkowe funkcje: regulacja głośności,
mute.
14
Elektronika Praktyczna 5/2003
Karta dźwiękowa USB z nagrywaniem i analogowymi oraz cyfrowymi we/wy
VCCCI VCCP1IVCCP2I VCCXI VDD AGNDC AGNDP AGNDX DGND DGNDU
------------------O--------O--------O---------O-------0---------------------O---------O---------O---------O-----------O-
5V to 3.3 V Voltage Regulator
Lock
S/PDIFEncoder
ADC
Power Manager
FIFO
ISO-ln End-Polnt
DAC
Ó*
S/PDIFEncodar
Analog PLL
Analog PLL
FIFO
O-
PLL(xB) 9BMHZ "

Control End-Point
-OSELO -6SEL1
ISO-Out End-Point
HID End-Point
-C^HIDI -OHID2
USB Pnotocol Control ler
Tracfcer (SpAct)
--O--
Rys. 1. Schemat blokowy układu PCM2906
tokołu USB, SpAct oraz kilka innych bloków niezbędnych do poprawnej pracy. SpAct jest systemem synchronizacji oraz stabilizacji sygnału zegarowego, który eliminuje jitter w sygnale generowanym przez pętlę PLL. Dzięki opatentowanemu SpAct uzyskano wysoką jakość odtwarzanego i nagrywanego dźwięku. Dodatkowe pętle PLL współpracujące z SpAct umożliwiają niezależne nagrywanie oraz odtwarzanie sygnału audio. Zewnętrzne sterowanie cyfrowym regulatorem poziomu sygnału wyjściowego i wyciszaniem możliwe jest poprzez wejścia HID [Hu-man Interface Device). Cyfrowym regulatorem można sterować także poprzez interfejs USB. Wybrane parametry układu PCM2906 zawarto w tab. 1.
Opis działania PCM2906
Transmisja danych sterujących oraz audio odbywa się po liniach D+ oraz D-. Dane wysyłane i pobierane z PCM2906 są transmitowane z wysoką prędkością, dochodzącą do 12 Mbd. W konfigu-
racji deskryptora, domyślnie maksymalny dopuszczalny prąd zasilania został określony na poziomie 500 mA, co dla zbudowanej karty jest wielką zaletą, gdyż pobiera ona podczas pracy sporo prądu. Na rys. 2 przedstawiono topologię funkcjonowania
PCM2906. Ma on cztery interfejsy sterowania blokiem audio, przy czym każdy może mieć określone ustawienia, interfejs #0 jest interfejsem kontrolnym, który można powiedzieć, że jest terminalem z pięcioma "zakończeniami" USB. ITl jest wejściem dla cyfrowego strumienia, a OT2 wyjściem już dla sygnału analogowego. Blok oznaczony FU (UID3) służy do regulacji parametrów sygnału wyjściowego. Umożliwia ona regulację głośności sygnału wyjściowego oraz sterowanie funkcją MUTE. Poziom sygnału może być regulowany od OdB do -64dB z krokiem ldB. Zakończenie IT4 jest wejściem dla analogowego sygnału audio, a OT5 wyjściem cyfrowego strumienia danych przetworzonego sygnału audio. Interfejs #1 jest wyjściowym interfejsem strumienia danych audio. Interfejs #2 jest wejściowym interfejsem strumienia danych audio. Interfejs #3 spełnia rolę standardowego urządzenia HID. Umożliwia on kontrolę nad głośnością oraz funkcją MUTE poprzez zewnętrzne wyprowadzenia układu PCM2906. Ma on cztery punkty końcowe: domyślny (EP#0), strumienia danych wyjściowych (EP#2), strumienia danych wejściowych (EP#4) oraz interfejsu HID. Punkt domyślny jest wykorzystywany do kontrolowania wszystkich podstawowych funkcji układu PCM2906 przez USB. Poprzez punkty EP#2 oraz EP#4 odbywa się przyjmowanie oraz wysyłanie danych w stan-
Analog Out
Standard Audio Control Interface (IF#0)
Analog In
PCM2904/2906
Rys. 2. Topologia funkcjonowania układów PCM2904/0Ó
Elektronika Praktyczna 5/2003
15
Karta dźwiękowa USB z nagrywaniem i analogowymi oraz cyfrowymi we/wy
Rys. 3. Schemat elektryczny karty dźwiękowej
dardzie PCM przez USB. Punkt EP#5 jest wykorzystywany do odczytu linii sterujących HIDO, HIDl oraz HID2 układu PCM2 906. Układ prócz wejść oraz wyjść analogowych ma wejścia cyfrowe (zgodne ze standardem S/PDIF. Strumień danych wyjściowych jest jednocześnie kodowany do S/PDIF jak i zamieniany na sygnał analogowy w przetworniku C/A. W przypadku sygnału wejściowego wybierane jest wejście analogowe lub cyfrowe przez wewnętrzny multiplekser. Kiedy układ otrzymuje dane na wejście S/ PDIF, automatycznie odłącza kanał przetwornika A/C. W przeciwnym wypadku dane wejściowe będą pochodzić z przetwornika A/ C. Wyjście oraz wejście S/PDF może przyjmować następujące formaty danych:
- 48 kHz 16-bit stereo,
- 44,1 kHz 16-bit stereo,
- 32 kHz 16-bit stereo.
Podobny w działaniu jest układ PCM2904, w którym brak jest jedynie interfejsu S/PDIF.
Opis działania karty dźwiękowej
Schemat ideowy karty dźwiękowej pokazano na rys. 3. Głównym układem karty jest wcześniej opisany PCM2906. Do poprawnej pracy układu Ul wymagany jest oscylator o częstotliwości 12 MHz. Elementy R17, C17 oraz C18 potrzebne są do prawidłowego działania oscylatora. Do wejść oraz wyjść analogowych dołączono aktywne filtry dolnoprzepusto-we. Zbudowane zostały w oparciu o wzmacniacz TLC272, a ich zadaniem jest wyeliminowanie zakłóceń, które mogłyby powstać przy przetwarzaniu przez DAC oraz być przetworzone przez ADC. Podczas enumeracji oraz w trybie suspend, kiedy host przestaje wysyłać pakiety SOF, wyjście ISSPND przechodzi w stan niski. Hub w tym trybie może dostarczyć prąd o natężeniu do 0,5 mA. Podczas pracy występuje na tym wyjściu stan wysoki. Wyjście to wykorzystywane jest do załączania zasilania przez U6 do układów U4, U5, U2, U7 oraz U3 i U8 oraz służy do sterowania parametrami sygnału wyjściowego poprzez S1...S3. Układ U6 jest przełącznikiem zasilania, który załą-
16
Elektronika Praktyczna 5/2003
Karta dźwiękowa USB z nagrywaniem i analogowymi oraz cyfrowymi we/wy
VBUS (Pin 3)
D+/D-
Dane audio Dane audio Ostatnie dane audio
TOUTL1 VOLJTR.
|>Odłączenie
Rys. 4. Przebiegi USB charakterystyczne dla sekwencji Start, Stop i Odłączenie
Dane audio Dane audio Dane audio
SET INTERFACE INToken / INToken / INToken,
D+/D-
Rys. 5. Przebiegi USB podczas nagrywania
czany jest przy stanie wysokim na wejściu EN, a wyłączany przy stanie niskim. Wyjściowe napięcie z U6 jest obniżane przez stabilizator U 7 do poziomu 3,8 V. Napięcie o tej wartości służy do zasilenia układu kodująco-deko-dującego. Na wyjściu VCOM występuje napięcie równe VCCCI/2, które zostało wykorzystane do polaryzacji wzmacniaczy pracujących jako dolnoprzepustowe filtry. Sygnał z cyfrowego wyjścia
DOUT steruje nadajnikiem optycznym U5 oraz poprzez inwer-tery U2D, U2C, U2E, U2F i elementy C27, R15, R16 jest zamieniany do poziomów akceptowanych przez połączenie typu Coa-xial. Połączenie tego typu jest często spotykane w domowym sprzęcie audio. Dane są przesyłane koncentrycznym przewodem, w którym zero reprezentowane jest przez napięcie -0,5 V, a jedynka przez +0,5 V. Cyfrowe dane mogą
!O
Rys. 6. Rozmieszczenie elementów na płytce drukowanej
WYKAZ ELEMENTÓW
Rezystory
R1...R4: l,5kQ
R5, R6: 22Q
R7, R22, R23, R26: 3,9kQ
R8, R18...R21, R27...R29: 12kQ
R9, R12, R13, R24, R25: 100O
RIO: 75Q
Rll: 22kO
R14: 8,2^
R15: 3ÓOQ
R16: 91O
R17: 1MQ
Kondensatory
Cl, C3, CA, CIO, Cli, Cló, C19,
C20: l|iF/16V
C2, C5: 10jiF/16V
C6, C8, C9, C12, C15: lOOnF
C7: 47^F/16V
Cl3: 220jiF/16V
C14: lOnF
C17, C18: 27pF
C2L C22, C29, C31: K8nF
C23, C24, C28, C30: 330pF
C25, C2Ó, C32, C33: 680nF
C27: 150nF
Półprzewodniki
Ul: PCM290Ó
U2: 74HC04
U3, U8: TLC272
U4: TORX173
U5: TOTX173
U6: TPS2051P
U7: TPS76038
Różne
LI: koralik ferrytowy przewlekany
L2: dławik 47^H
Xl: Kwarc 12MHz
Zl: gniazdo USB typu B
Z2, Z3: gniazdo JACK STEREO
3mm do druku
Z4, Z5: gniazdo CINCH do druku
być odbierane przez odbiornik optyczny U4 oraz z przewodu koncentrycznego (połączenie coaxial). Sygnał z wejścia coaxial (Z4) zamieniany jest przez C14, RIO, Rll oraz U2A i U2B na poziomy akceptowane przez PCM2906. Jum-per JPl umożliwia wybór sygnału z wejścia optycznego lub coaxial. Przyciski S1...S3 umożliwiają regulację głośności (ą) oraz sterowanie funkcją MUTE.
Na rys. 4 pokazano przebiegi ilustrujące sekwencje Start, Stop oraz odłączenia od magistrali. Z kolei na rys. 5 zilustrowano przebiegi sekwencji nagrywania.
Elektronika Praktyczna 5/2003
17
Karta dźwiękowa USB z nagrywaniem i analogowymi oraz cyfrowymi we/wy
SŁmai łwopp-łj itto

Rys. 7. Po dołqczeniu karty do komputera w Menadżerze urządzeń pojawia się nowe urzqdzenie
Montaż i uruchomienie
Kartę dźwiękową USB należy zmontować na płytce drukowanej, której schemat montażowy pokazano na rys. 6. Układ modelowy różni się trochę od płytki drukowanej, gdyż dodatkowo zastosowany został filtr na wejściach analogowych. Największym problemem przy montażu tego urządzenia będzie poprawne wlutowa-nie elementów SMD (Ul oraz U7], Montaż tak niewielkich elementów może odstraszyć, ale jak pokazały moje doświadczenia -nie ma się czego bać. Mając cienki grot oraz przy odrobinie staranności i ostrożności wlutowa-nie tych elementów powinno się udać. Po wlutowania SMD proponuję sprawdzić, czy nie ma pomiędzy końcówkami zwarć. Montaż pozostałych elementów nie powinien sprawić problemów. Pozostałe układy scalone proponuję umieścić w podstawkach, które ułatwią późniejszą wymianę, gdyby z jakichś powodów nastąpiło ich uszkodzenie. Płytka została zaprojektowana jako dwustronna, tak więc ciężko byłoby wylutowac układ prostymi narzędziami bez zniszczenia przelotek. Jeżeli wlu-towane zostały wszystkie elementy zgonie z polaryzacją, karta powinna od razu działać poprawnie po zainstalowaniu sterowników.
Instalacja sterowników oraz obsługa karty
Karta po dołączeniu do PC jest wykrywana jako klasyczne urządzenie HID. Sterowniki są instalowane automatycznie lub w przypadku Win 98 wymagane będzie przejście przez kreatora dodawania nowego sprzętu. Na rys. 7 oraz rys. 8 pokazano okno menedżera sprzętu systemu Windows po dołączeniu karty do komputera. Dzięki pełnej zgod-
Rys. S. Karta funkcjonuje jako urzqdzenia HID
noś ci karty ze standardowymi urządzeniami HID, jej prawidłową pracę zapewnią standardowe sterowniki dostarczane wraz z Windows 98/Me/2000/XP.
Wcześniej wspomniałem, że karta umożliwia jednoczesne odtwarzanie i nagrywanie dźwięku. Do nagrywania konieczny będzie dodatkowy program - jednym z najprostszych i dostępnych we wszystkich wersjach Windows jest Rejestrator dźwięku. Przed nagraniem sygnału należy wybrać format oraz atrybuty zapisywanego sygnału. Przykład dostępnych formatów nagrywania jest widoczny na rys. 9. Wybranie nieodpowiedniego formatu będzie skutkować brakiem rejestracji sygnału. Chcąc nagrywać sygnał z mikrofonu, należy wejście liniowe poprzedzić przedwzmacniaczem mikrofonowym. Dobry mikrofon oraz przedwzmacniacz zapewnią dobrą jakość nagranych dźwięków. Marcin Wiązania mwiazani@poczta.fm
Korzystałem z materiałów zawartych na stronie www.ń.com.
Wzory płytek drukowanych w formacie PDF są dostępne w Jnternecie pod adresem: http://www.ep.cont.pl/ ?pdf/ma jQ3.htm oraz na płycie CD-EP5/2003B w katalogu PCB.
:9 y

Ś'



.ta 1; Hl "JJłVł

Rys. 9. Widok okna Właściwości z możliwosciq ustalenia szybkości próbkowania sygnału audio
18
Elektronika Praktyczna 5/2003
PROJEKTY
Lampowy odbiornik UKF
W EP12/2002
przedstawiliśmy opis
odbiornika kryształkowo-
lampowego na zakres fal
długich. W tym ańykule
opiszemy lampowy odbiornik
UKF, bowiem większość stacji
nadaje właśnie w tym
zakresie częstotliwości.
Rekomendacje: odbiornik
niewątpliwie zainteresuje
zarówno elektroników
zajmujących się
mikrokon trolerami
i mikroelektroniką, jak i tych,
którzy zajmują się głównie
elektroniką "archaiczną".
To jeden z tych projektów,
które kochają robić prawdziwi
hobbyści, a reszta świata nie
wie po co to robią.
Przypomnijmy, a propos,
słowa Messnera -
największego alpinisty świata,
który zapytany po co wspina
się na szczyty odpowiedział:
"bo góry są".
Lampy też ciągle są
i wabią swym urokiem.
Po co budować taki odbiornik zapyta z pewnością niejeden Czytelnik. Przecież w każdym sklepie można kupić o wiele lepszy, bardziej funkcjonalny, z wbudowanymi dekoderami stereo i RDS, strojony cyfrowo.
To prawda. Jednak nie zamierzałem budować odbiornika, który dorównałby fabrycznemu. Chciałem raczej zaprezentować jakieś interesujące rozwiązanie z epoki lampowej.
Na wstępie nieco teorii
Spośród odbiorników ultrakrótkofalowych stosunkowo najłatwiej można wykonać odbiornik super-reakcyjny o bezpośrednim wzmocnieniu. Superheterodynowy odznacza się bardzo dobrymi parametrami toru odbiorczego, ale jest trudniejszy w budowie i uruchomieniu, ponieważ trzeba zestioić kilka różnych obwodów rezonansowych, co bez falomierza-genera-tora jest w zasadzie niemożliwe. Układ superre akcyjny wyróżnia się natomiast prostotą budowy i można go zestioić "na słuch". Jest to bardzo ważne dla początkujących konstruktorów. Mimo wielu wad odbiornika superreak-cyjnego - o których napiszę dalej - właśnie ten układ wybrałem.
Jak działa taki odbiornik? Opiszę układ z tzw. samowygasza-niem. Jak wiadomo, modulacja częstotliwości (FM) polega na zmianie częstotliwości nośnej w takt sygnału modulującego. Jeśli sygnał FM podamy na równo-
legły obwód LC (rys. 1), ale nastrojony tak, że częstotliwość nośnej wypada na zboczu krzywej rezonansowej, to na zaciskach tego obwodu wystąpi sygnał zmodulowany amplitudowo (AM). W ten sposób zamienia się modulację FM w AM.
Ważne jest, aby zbocze krzywej rezonansowej było możliwie prostoliniowe (przy jednoczesnym dużym nachyleniu) w otoczeniu częstotliwości fali nośnej. Wymagania te są niestety ze sobą sprzeczne, dlatego układ wnosi znaczne zniekształcenia nieliniowe albo zakres zmian napięcia zmodulowanego AM jest niewielki.
Rozpatrzmy teraz uproszczony układ odbiornika superre akcyjnego przedstawionego na rys. 2. W obwodzie siatki znajduje się obwód rezonansowy oraz rezystor RL i kondensator CL. W momencie włączenia układu (punkt A na rys. 2b), po podaniu napięcia anodowego Ea, układ zachowuje się jak wzmacniacz wielkiej częs-
Zakres zmian częrtotllwofcl syprtuUKFFM
fN - cztctotlwott fali rłośmsj (sy^Hłu modulowanego)
Rys. 1. Dostrojenie obwodu LC w dyskryminatorze częstotliwości
Elektronika Praktyczna 5/2003
21
Lampowy odbiornik UKF
a)
-Usmax
Rys. 2. Uproszczony schemat superreakcyjnego odbiornika (a) i ilustracja działania (b)
totliwości, który posiada skłonność do generowania drgań własnych. Aby zapoczątkować drgania, niezbędne są niewielkie wahania napięcia w obwodzie siatki. Zapewnia je napięcie AM z obwodu rezonansowego. Narastająca amplituda drgań (na wykresie oznaczona linią przerywaną) powoduje przepływ prądu siatkowego Is, który powoduje spadek napięcia na oporniku Rs, wytwarzając na nim ujemne napięcie (względem katody) Us = RS*IS. Napięcie to pojawia się także na kondensatorze Cs. W pewnym momencie siatka lampy osiąga ujemny potencjał równy napięciu odcięcia -Uodc. Jest to napięcie siatki, przy którym prąd anodowy przestaje płynąć. Widać to na rys. 2b, na którym narysowano także przebieg charakterystyki Ia=f(Us) - wartości prądu anodowego w funkcji napięcia siatki. W momencie osiągnięcia potencjału -Uodc drgania zostają zerwane. W tym momencie osiągnięty zostaje punkt B na krzywej punktu pracy. Na odcinku B-A' następuje rozładowanie kondensatora Cs aż do osiągnięcia napięcia siatki równego zeru. Wtedy znów możliwe jest powstanie drgań.
Są to tzw. liniowe warunki pracy. Na rys. 3 pokazano przykładowy kształt wejściowego napięcia AM oraz odpowiadające mu napięcie na siatce, anodzie i rezystorze R przy liniowej pracy układu. Przebiegi te są oczywiście idealizowane.
Na anodzie lampy występuje wzmocniony sygnał z siatki, z jednoczesnym odwróceniem fazy i obcięciem "dolnych" połówek sygnału z siatki (detekcja anodowa), wskutek nieliniowości charakterystyki Ia=f(Us). Dławik dł eliminuje składową nośną sygnału, zaś kondensator C uśrednia impulsy napięciowe występujące na anodzie, odtwarzając tym samym kształt sygnału modulującego -czyli użytecznego sygnału małej częstotliwości. Wynika stąd, że aby wiernie odwzorować przebieg napięcia małej częstotliwości, powinno się nań składać możliwie dużo impulsów. Ich liczba w jednostce czasu jest zależna od częstotliwości przebiegu A-B-A', zwanej częstotliwością wygaszania. Jak wiadomo, człowiek słyszy sygnały akustyczne o częstotliwości do około 2 0 kHz. Aby dość wiernie o dtworzyć sygnał o tej częstotliwości, potrzeba 20...40 impulsów napięciowych na anodzie w czasie trwania 1 okresu sygnału o częstotliwości 2 0 kHz. Zatem częstotliwość wygaszania winna wynieść około 400 kHz. I tutaj pojawia się trudność. Otóż zmaleje wtedy selektywność układu. Bardzo dobrą selektywność uzyska się przy częstotliwości wygaszania wynoszącą ok. 20 kHz, ale wtedy odbiornik będzie wytwarzać gwizd i sygnał m.cz. będzie bardzo marnej jakości. Są to kolejne dwa sprzeczne ze sobą warunki pracy detektora superreak-
cyjnego. Poważną wadą tego odbiornika jest promieniowanie podczas pracy sygnału UKF, przez co staje się on swego rodzaju nadajnikiem, mogącym niekiedy zakłócać odbiór pracujących w pobliżu innych odbiorników.
Na koniec należy zaznaczyć, że odbiorniki superreakcyjne uzyskały w latach 50. i 60. ubiegłego stulecia dużą popularność, gdyż tylko odbiorniki wysokiej klasy były wyposażone w głowicę UKF. Budowano więc jednolampowe przystawki dołączane do gniazd adapterowych odbiornika, wykorzystując tylko jego wzmacniacz małej częstotliwości.
Opis układu
Schemat elektryczny układu przedstawiono na rys. 4. Stopień superreakcyjny pracuje z połówką lampy VI (druga połówka jest niewykorzystana). Różni się on od poprzednio opisanego układu włączeniem obwodu rezonansowego L2, Ca między siatkę a anodę. Ażeby ograniczyć szkodliwe promieniowanie odbiornika, antena jest transformatorowo sprzężona z obwodem rezonansowym.
Częstotliwość wygaszania można ustalić, dobierając pojemność C2, co ma wpływ na czas trwania generacji drgań (odcinek A-B). Przez dobór wartości oporności Ra można ustalić czas przerwy -odcinek B-A'. Dobroć obwodu rezonansowego powinna być możli-
nipłtd* UKF AM
napięci* sygnałj ra anodite lampy
rupiach na rmytoraa R
Rys. 3. Uproszczone przebiegi ilustrujące pracę detektora AM
Elektronika Praktyczna 5/2003
Lampowy odbiornik UKF
wie duża, przy czym stosunek indukcyjności do pojemności powinien być duży. Dlatego cewka L2 o średnicy 20 mm ma 4,5 zwoju drutu srebrzonego ż = 1 mm. Odstęp między zwojami 6...7 mm. Cewka antenowa La to 5/4 zwoju tego samego drutu. Odległość między cewkami wynosi około 7 mm. Przewidziałem możliwość niewielkiej zmiany indukcyjności cewek poprzez wkręcanie niewielkiego kawałka rdzenia ferrytowego w celu dokładnego dostrojenia. Trymer Ca umożliwia zgrubne dostrojenie do żądanej stacji. Zamiast trymera można zastosować kondensator o zmiennej pojemności, przez co radio będzie można dowolnie prze-strajać.
Z powodu braku takiego kondensatora układ modelowy jest dostrojony tylko do jednej stacji - Radia Zet (w Warszawie 107,5 MHz). Kondensator C3 zwiera do masy sygnały wielkiej częstotliwości, nie dopuszczając ich do dalszych obwodów odbiornika. Dławik dła powinien mieć 60 zwojów drutu miedzianego ż = 0,2 mm na rdzeniu ferrytowym
0 średnicy 2 mm. Małe wymiary dławika są o tyle korzystne, że jego pojemność rozproszona jest niewielka. Na kondensatorze C4 odkłada się odfiltrowane napięcie małej częstotliwości. Sygnał m.cz. przechodzi przez kondensator C5, na kondensatorze C6 następuje dodatkowe jego odfiltrowanie
1 przez rezystor R3 zostaje podany na potencjometr siły głosu P2. Dzielnik R5 i R6 ustala napięcie zasilające detektor na około 95 V. Potencjometr Pa umożliwia dokładną regulację maksymalnej wartości prądu anodowego detektora, przez co można zmieniać jego punkt pracy.
Ponieważ detektor silnie promieniuje, dlatego niezbędne staje się połączenie wewnętrznego ekranu lampy z masą, zakrycie lampy ekranem i odsprzęgnięcie przewodów żarzenia filtrem C7, CH, dł9, dł3. Dławiki dł2 i dł3 powinny mieć około 30 zwojów drutu miedzianego ż = 0,2 mm na rdzeniu ferrytowym o średnicy 2 mm.
Napięcie m.cz. na potencjometrze P2 osiąga wartość z przedziału 50,.. 100 mV, przy sygnale wejściowym 5...10 |iV. Odpowiada to wzmocnieniu napięciowemu de-
Rys. 4. Schemat elektryczny odbiornika
Elektronika Praktyczna 5/2003
23
Lampowy odbiornik UKF
A2
G1 K1
KG3G1
K2
A1
Rys. 5. Wyprowadzenia lamp zastosowanych w odbiorniku
tektora około 20000 V/V. Sygnał m.cz. przez kondensator C9 jest podawany na siatkę pierwszej połówki lampy V2, która stanowi pierwszy stopień wzmacniacza m.cz. (Ku 3 0 V/V). Niewielkie ujemne napięcie siatki sterującej (około -0,5 V) uzyskuje się dzięki dużej wartości opornika siatkowego R4. Wzmocniony sygnał m.cz., występujący na anodzie lampy, jest podawany przez kondensator C10 na regulator barwy dźwięku, złożony z elementów Cai, C12, C13, C14, P3, P4, R8, R9. Poten-cjometr P3 umożliwia regulację zawartości tonów wysokich, a P4 niskich. Ten potencjometr i rezystor R9 stanowią oporność siatkową drugiego stopnia wzmacniacza napięciowego m.cz. (Ku = 30 V/V), zrealizowanego na drugiej połowie lampy V2. Regulator barwy dźwięku wprowadza pewien spadek wzmocnienia (Ku= 0,1 V/V). Kondensator C19 zapobiega wzbudzaniu się wzmacniacza napięciowego. W katodzie lampy drugiego stopnia wzmacniacza napięciowego włączony jest rezystor R10 (ustala wstępne napięcie siatki na -1,1 V i wprowadza prądowe ujemne sprzężenie zwrotne). Do katody tej lampy doprowadzony jest także sygnał ujemnego sprzężenia zwrotnego (C18, R17) w pętli obejmującej drugą połówkę lampy V2, lampę V3 i transformator głośnikowy Trl. Dzięki temu wzmacniacz m.cz pracuje z małymi zniekształceniami. Poprzez zmianę wartości elementów C18, R17 można zmieniać brzmienie wzmacniacza. Kondensator C16 doprowadza wzmocniony we wzmacniaczu m.cz. sygnał do pentody mocy V3, pracującej w klasie A. Dla jej pełnego wy-sterowania potrzebny jest sygnału o amplitudzie 4,3 V, co jest zapewnione przez wypadkowe wzmocnienie wzmacniacza napięciowego (Ku = 60 V/V), po uwzględnieniu działania sprzęże-
nia zwrotnego. Lampa V3 ma tendencje do wzbudzania się, dlatego w obwód siatki sterującej włączyć należy opornik przeciw-pasożytniczy R13. R12 jest rezystorem siatkowym lampy V3. W obwodzie katody lampy V3 znajdują się elementy R15, C17. R15 ustala ujemne napięcie siatki na -7,3 V. Kondensator C17 likwiduje prądowe ujemne sprzężenie zwrotne dla sygnału akustycznego. Rezystor R16 ustala wartość napięcia siatki osłonnej (ekranującej) lampy V3. Transformator głośnikowy Trl powinien mieć 2600 zwojów drutu miedzianego ż = 0,12 mm na uzwojeniu pierwotnym i 101 zwojów ż = 1 mm na uzwojeniu wtórnym, przy przekroju środkowej kolumny 10 cm2. Transformator ten powinien mieć szczelinę 0,15 mm.
Rezystor R14 obniża napięcie zasilania lampy V2 do około 200 V, a C15 filtruje to napięcie. Układ jest zasilany z transformatora sieciowego Tr2, dostarczającego napięcie żarzenia 6,3 VAC przy prądzie 2 A, napięcie anodowe 200 VAC przy prądzie 100 mA (podaję ze znacznym zapasem). Mostek prostowniczy Prl prostuje napięcie anodowe, filtr n (C20, C21, dł4) "wygładza" tętniące napięcie wyprostowane. Dławik dł4 powinien mieć indukcyjność przynajmniej 2 H.
Wskazówki dotyczące montażu
W zasadzie należy wykluczyć wykonanie układu na płytce drukowanej dlatego, że detektor su-perreakcyjny musi być dobrze ekranowany, a jego wewnętrzne połączenia możliwie krótkie. Powinna istnieć także możliwość modyfikacji tych połączeń. Dlatego układ został zmontowany na podstawie z blachy ocynkowanej
0 wymiarach 45 x 20 x 6 cm. Ponieważ w układzie występują wysokie napięcia, należy zachować daleko idącą ostrożność i staranność przy montażu.
Oprócz zaznaczonych na schemacie przewodów ekranowanych, ekranowane powinny być także przewody prowadzące do regulatora barwy dźwięku i siatek lamp wzmacniacza m.cz. Transformator sieciowy musi być zaekranowany
1 oddalony od detektora, gdyż oka-
zało się, że jest on wrażliwy na pola magnetyczne. Dobrze się do tego nadaje obudowa zasilacza komputera.
Jeśli chodzi o pozostałe elementy, najlepiej stosować - gdzie to możliwe - oporniki o tolerancji 1% i kondensatory dobrej jakości.
Jako detektor i wzmacniacz napięciowy m.cz. pracują lampy ECC85. W końcówce mocy pracuje lampa EL84 (są one nadal produkowane). W detektorze można zastosować obecnie wytwarzaną lampę ECC81, która elektrycznie
WYKAZ ELEMENTÓW
Rezystory
Pl: 10 kO potencjometr liniowy
P2: 1 MO potencjometr
logarytmiczny
P3, P4: 1MO potencjometr liniowy
Rl, R4: 9,1 MQ/0,25W
R2, RIO: 510Q/0,ÓW
R3, R13, R14: 10 kQ/0,ÓW
R5, R7, Rl 1: 47 kQ/0,ÓW
Ró, R8: 100 kQ/0,ÓW
R9: 22 kQ/0,ÓW
R12: 1 MQ/0,ÓW
R15: 150O/5W
R16: 1,2 ka/2W
R17: 5,1 kQ/0,ÓW
Kondensatory
Cl: trymer 5-30 pF
C2, C3: 43 pF/250V ceramiczny
C4: 2,2 nF/250V ceramiczny
C5, C9, C10: 10 nF/400V
Có: 3,3 nF/250V ceramiczny
C7, C8: 100 nF/250V ceramiczny
Cli, Cl9: 560 pF/250V
Cl2: 5,6 nF/400V
C13: 1 nF/400V
Cl4: 6,8 nF/400V
Cl5: 22 mF/400V
C16: 100 nF/400V
Cl7: 47 mF/25V
Cl8: 3,3 nF/400V
C20, C21: 100 mF/400V
Półprzewodniki
Prl: mostek prostowniczy 1A/8OOV
Różne
VI, V2: lampy ECC85
V3: lampa EL84
Podstawka z ekranem
2 podstawki bez ekranu
1 włącznik dwupozycyjny
Bl: bezpiecznik 400 mAT
Gniazdo antenowe (może być
BNC)
Transformatory, cewki, dławiki
według opisu
Elektronika Praktyczna 5/2003
Lampowy odbiornik UKF
różni się stosunkowo niewiele od ECC85 (obie przystosowane do pracy w układach UKF). We wzmacniaczu napięciowym może pracować ECC82, ECC83 lub ECC88 - po zmianie wartości niektórych elementów. Karty katalogowe wszystkich wymienionych lamp publikujemy na płycie CD-EP5/2003B. Dodatkowo zamieszczamy prosty program do obliczenia elementów stopnia końcowego m.cz. Czynimy to z myślą
0 tych Czytelnikach, którzy zechcą zastosować inną lampę mocy niż EL84.
Na rys. 5 przedstawiono rozmieszczenie wyprowadzeń lamp EL84 i ECC85.
Uruchomienie
Przystępując do uruchomienia układu, należy przede wszystkim uzbroić się w cierpliwość. Nie wkładamy na razie lampy detektora Va w podstawkę. Włączamy odbiornik. Po nagrzaniu lamp V2
1 V3 nie powinny występować żad-
ne piski czy zgrzyty z głośnika. Jeśli występują (dodatnie sprzężenie zwrotne) - należy zamienić miejscami końcówki masy i pętli sprzężenia zwrotnego C18, R17 przy transformatorze głośnikowym.
Kręcąc potencjometrami P2, P3, P4 sprawdzamy, czy nie występują żadne sprzężenia. Jeśli występują, to winę za to ponosi złe ekranowanie doprowadzeń siatek lamp lub nieodpowiednia pojemność C19.
Jeśli wszystko jest w porządku, to można odlutować rezystor R3 i między masę a potencjometr P2 przyłożyć dowolny sygnał m.cz. Powinien on być słyszalny w głośniku. Następnie przylutowujemy z powrotem R3 i uruchamiamy układ z wetkniętą lampą Va oraz przyłączoną anteną (może być to kawałek drutu lub antena teleskopowa). Potencjometr P2 ustawiamy w środkowym położeniu. Potencjometr Pa ustawia się w takim położeniu, przy którym słychać szum z głośnika. Jeśli szum nie wystę-
puje, należy dobrać w pierwszym rzędzie inną wartość Pa, potem wartość R5, dła, wreszcie Ra, C2. Następnie zmieniając pojemność Ca, próbujemy "złapać" jakąś stację. Jeśli się to nie udaje, należy nieco ścisnąć lub rozszerzyć zwoje cewki L2. Sygnał najprawdopodobniej będzie zakłócony charczeniem i szumami, spowodowanymi pracą nieliniową detektora. Aby wyeliminować ten problem, zmieniamy położenie Pa. Jeśli nie da to całkowitej poprawy, powinno pomóc dostrojenie obwodu poprzez pokręcenie rdzeniem cewek La i L2. Jeśli szum nie zniknie, winę za to może ponosić słabe sprzężenie cewek La i L2 (zbliżyć je do siebie) lub małe natężenie pola w miejscu odbioru (zmienić ustawienie anteny).
Poza tym może wystąpić zakłócenie sygnału przydźwiękiem. Pomoże wtedy zmiana ustawienia anteny.
Aleksander Zawada aleksander_zawada@ poczta.onet.pl
Elektronika Praktyczna 5/2003
25
PROJEKTY
Cyfrowy miernik pojemności
AVT-512
Do typowych prac
w elektronicznym laboratorium
wystarczają tanie multimetry,
zazwyczaj bez takich funkcji,
jak na przykład pomiar
pojemności. A jeżeli musimy
zmierzyć pojemność
kondensatora?
Rekomendacje: polecany
tym, którzy muszą wzbogacić
swoje laboratorium o przyrząd
do pomiaru pojemności.
Podstawowym przyrządem pomiarowym w pracowni elektronika jest woltomierz. Bardziej przydatny jest jednak miernik uniwersalny, za pomocą którego można zmierzyć napięcie, prąd i rezystancję, gdyż pomiar tych wielkości jest najczęściej wykonywany podczas budowy i naprawy urządzeń. Rzadziej są używane mierniki pojemności czy indukcyjnoś-ci, a to dlatego, że z reguły używa się gotowych elementów fabrycznych, na których znajdują się oznaczenia określające wartość ich indukcyjności lub pojemności.
Sprawa się jednak komplikuje, jeżeli elementy te wykonane są w technologii SMD, gdyż małe wymiary utrudniają ich opis. Dlatego producenci często zamiast pełnych oznaczeń danego elementu stosują oznaczenia skrócone, które umożliwiają zidentyfikowanie rodzaju elementów. Odczyt wartości rezystancji nie sprawia problemów, gdyż wartość ta jest przedstawiona w postaci cyfr wartości oraz mnożnika (analogicznie jak w przypadku kodu paskowego). W przypadku kondensatorów sprawa się komplikuje, gdyż opis posiadają tylko kondensatory tan-talowe i elektrolityczne, natomiast kondensatory ceramiczne nie posiadają zazwyczaj żadnych oznaczeń. Dlatego ich wartość jest znana jedynie wtedy, gdy znajdują się w opisanym pudełku lub taśmie. Po wlutowaniu identyfikacja takiego kondensatora nie jest możliwa, a kondensatory pocho-
dzące z demontażu są praktycznie bezużyteczne. Problem identyfikacji kondensatorów SMD można rozwiązać przez zmierzenie ich pojemności za pomocą miernika pojemności. Budowę takiego miernika przedstawiono w artykule.
Miernik został zbudowany w postaci sondy z czujnikiem szpilkowym, co umożliwia łatwe dołączenie wejść pomiarowych miernika do kondensatorów SMD. Przyrząd przeznaczony jest głównie do pomiaru pojemności kondensatorów umieszczonych w obudowach SMD, jednak dzięki zastosowaniu dodatkowego złącza możliwy jest również pomiar po-j emno ś ci kondens a torów um ie s z -czonych w obudowach do montażu przewlekanego.
Zastosowane złącze umożliwia dołączenie elementów o rastrze 100 mil, 200 mil, 300 mil, 400 mil, dlatego możliwe jest także łatwe mierzenie pojemności trymerów.
Miernik umożliwia pomiar pojemności w zakresie 1 pF...10 fiF, jednak dla pojemności równej 10 fiF czas wykonywania pomiaru wynosi 10 sekund, co w praktyce trwa zbyt długo, dlatego należy przyjąć, że maksymalna mierzona pojemności wynosi około 1 fiF. Czas wykonywania pomiaru jest wprost proporcjonalny do pojemności i wynosi około 1 sekundy na 1 fiF mierzonej pojemności. Wynik pomiaru jest przedstawiany na czterech wyświetlaczach siedmio -segmentowych: na trzech pozycjach jest wyświetlany wynik po-
Elektronika Praktyczna 5/2003
27
Cyfrowy miernik pojemności
VCC GND
SPOTICKI/OSCI/CLKIN G PO/ANO/C IFWISPDAT
QP4/AN3/fTG/OSC2/CLKOUT S1'!'
YncF/lorwLK
QP2/AN2m)CKI/INT/COUT
GP3/MCLFWPP
CV
QND
US2 ICM7555
D1 1N4007
U84
7805
_C4
"100n
GS
100n
Cl Z2U
Rys. 1. Schemat elektryczny miernika pojemności kondensatorów
miaru, a na czwartej jest podawany mnożnik (piko, nano, mikro). Pojemność jest mierzona w jednym z zakresów pomiarowych, a następnie wynik jest odpowiednio formatowany, aby mógł być wyświetlony na trzech cyfrach wyświetlacza. W tab. 1 przedstawiono zakresy pomiarowe, format wyświetlania i rozdzielność pomiaru miernika. Wyświetlanie wyniku na trzech cyfrach nie pozwala na prezentacje wyniku pomiaru z bardzo dużą rozdzielczością, lecz z założenia nie jest to przyrząd do bardzo dokładnych pomiarów, a do szacunkowego określenia pojemności badanego kondensatora i na tej podstawie przypisanie mu wartości z szeregu.
Budowa i działanie
Schemat elektryczny miernika pojemności przedstawiono na rys. 1. Od strony funkcjonalnej urządzenie można podzielić na dwa bloki: pomiaru pojemności i wyświetlania. Blok pomiaru pojemności składa się mikrokontro-lera typu PIC12F629. Zawiera on w swoim wnętrzu pamięć programu typu Flash o pojemności lk
x 14b, 64 bajty pamięci operacyjnej RAM oraz 128 bajtów nieulot-nej pamięci typu EEPROM. Procesor może być taktowany sygnałem generowanym przez wewnętrzny generator RC albo generator z zewnętrznymi elementami RC lub zewnętrznym rezonatorem kwarcowym. Pomiar pojemności jest oparty na pomiarze czasu, więc wymagana jest jak największa jego dokładność odmierzania. Dlatego jako źródło sygnału zegarowego zastosowano generator z rezonatorem kwarcowym. Częstotliwość zastosowanego rezonatora jest maksymalną dopuszczalną dla tego procesora. Dla tej częstotliwości jeden cykl maszynowy procesora wynosi 200 ns. Duża szybkość pracy procesora jest konieczna, gdyż najkrótszy odcinek czasu, jaki procesor musi zmierzyć, jest równy 1 |is, co przy pracy procesora z rezonatorem o standardowej częstotliwości 4 MHz nie jest możliwe.
Procesor posiada tylko sześć linii wejścia/wyjścia, z czego dwie zostały zajęte przez rezonator kwarcowy, dlatego konieczne jest wykorzystanie wszystkich pozo-
stałych linii. Wejście zerowania procesora zostało skonfigurowane jako wejście cyfrowe, a sygnał zerowania po włączeniu zasilania jest generowany przez wewnętrzny obwód.
Choć miernikim steruje mikro-kontroler, to pomiaru pojemności dokonuje układ US2. Układ ten jest nowszą wersją cieszącego się niesłabnącą sławą układu NE555. Układ ICM7555 wykonany jest w technologii CMOS, co znacznie zmniejszyło - w stosunku do wersji bipolarnej - pobierany przez niego prąd. Układ US2 pracuje w trybie monostabilnym, dlatego po podaniu krótkiego impulsu na wejście TR na wyjściu OUT pojawia się poziom wysoki. Czas trwania tego poziomu jest ściśle zależny od połączonych szeregowo
Tab. 1. Zakresy pomiarowe miernika pojemności
Zakres Rozdziel-(DfflS Foimat wyoewielaria Rzytfad
1nF 1pF XXX p 120p
10nF 10pF x.xx n 4.72n
100nF 100pF xx.x n 68.3n
1000nF 1nF xxx n 331 n
10|iF 10nF x.xx u 1.03u
Elektronika Praktyczna 5/2003
Cyfrowy miernik pojemności
rezystancji rezystora R3 i potencjometru PRl oraz dołączonej pojemności Cx i jest wyrażony wzorem: t= l,05*(R3+PRl)*Cx. Ponieważ rezystancja jest stała, to czas trwania impulsu wyjściowego jest zależny od dołączonej pojemności (w ten sposób określa się jej wartość).
Do sterowania wyświetlaczami zastosowano specjalizowany układ typu SAA1064, który może sterować dwoma lub czterema wyświetlaczami. Przy współpracy z dwoma wyświetlaczami jeden wyświetlacz jest podłączany do wyjść P1...P8, a drugi do wyjść P9...P16. Wyświetlacze muszą być typu ze wspólną anodą i anody te są dołączone do plusa napięcia zasilania. Przy współpracy z czterema wyświetlaczami konieczne jest ich sterowanie w sposób multiplekso-wy. W tym trybie w danej chwili świecą tylko dwa wyświetlacze załączone przez jeden z tranzystorów, następnie te wyświetlacze są wygaszane i następuje świecenie drugiej pary wyświetlaczy. Przełączanie pomiędzy wyświetlaczami jest wykonywane tak szybko, że widoczne jest jednoczesne świecenie wszystkich wyświetlaczy. Praca wewnętrznego układu sterującego wyświetlaniem danych na wyświetlaczu jest wykonywana w oparciu o wewnętrzny generator współpracujący z zewnętrznym kondensatorem C8 i to od jego wartości zależy częstotliwość pracy wewnętrznego multipleksera, a tym samym częstotliwość przełączania wyświetlaczy. Dodatkowo można regulować natężenie prądu płynącego przez diody wyświetlacza. Wyświetlacze mogą być zasilane prądem o wartości 3 mA, 6 mA i 12 mA. Wartość natężenia prądu jest określana poprzez wpis do rejestru sterującego układu. Najważniejszą zaletą układu SAA1064 jest łatwość jego sterowania przez układ zewnętrzny, gdyż interfejs komunikacyjny to I2C i do sterowania wymagane są tylko dwa wyprowadzenia. Fakt ten jest bardzo istotny w przedstawionym układzie, gdyż zastosowany mikrokontroler ma małą liczbę wyprowadzeń. Obsługa wyświetlacza przez procesor ogranicza się tylko do wpisania danych, a pozostały czas procesor może poświęcić na wykonywanie innych zadań. Podstawowy adres, pod
S|0 1 1 1 0 A1A0 0 A 0 0 0 0 0 SCSBSA| A | X C6C5C4C3C2C1C0| A |~" Adres układu Rejestr adresu Rejestr kontrolny
D17...........................D10|A D27...........................D20 A D37...........................D30 A D47...........................D40 A P
Cyfra 1 Cyfra 2 Cyfra 3 Cyfra 4
Rys. 2. Format danych wysyłanych do układu SAA10Ó4
którym zgłasza się układ SAA1064 na magistrali I2C jest równy 0 1 1 1 0 Al AO 0 i może być zmieniony w przypadku pracy kilku takich samych układów na jednej magistrali. Istnieje możliwość zmiany dwóch bitów adresu oznaczonych jako: AO i Al. Wartość tych bitów jest określana poprzez wartość napięcia podanego na wejście ADR. Wartości napięcia podanych na to wejście i odpowiadające mu wartości bitów AO i Al są przedstawione w tab. 2.
Sterowanie układem SAA1064 polega na wpisaniu do jego rejestru konfiguracyjnego wartości określającej wymagany tryb pracy, a następnie wpisanie wartości odpowiedniej dla każdego wyświetlacza. Format danych wysyłanych do układu SAA1064 przedstawiono na rys. 2.
Transmisja jest inicjowana przez podanie adresu układu, następnie podawany jest adres wewnętrznego rejestru, do którego mają być zapisane dane, a w dalszej kolejności mogą być zapisywane dane do kolejnych rejestrów. Po wpisie danych do rejestru zawartość licznika adresowego zostaje zwiększona o jeden i można podać dane przeznaczone do kolejnego rejestru, bez konieczności każdorazowego podawania adresu konkretnego rejestru.
Takie rozwiązanie umożliwia jednoczesny zapis danych do wszystkich rejestrów lub tylko do jednego wybranego.
Wartości rejestru adresu oraz odpowiadające mu rejestry są przedstawione w tab. 3. Ponieważ w układzie SAA1064 znajduje się tylko pięć rejestrów, do ustalenia konkretnego numeru brane są tylko trzy bity: SA, SB, SC.
Rejestr kontrolny, znajdujący się pod adresem "0", służy do ustalenia trybu pracy układu SAA1064 - znaczenie poszczególnych bitów tego rejestru jest przedstawione w tab. 4.
W mierniku do rejestru kontrolnego wpisywana jest wartość 00100111, co oznacza, że sterowane są cztery wyświetlacze w try-
bie dynamicznym, a prąd sterujący poszczególnymi segmentami wynosi 6 mA. Taka wartość prądu sterującego jest wystarczająca, gdyż zastosowane wyświetlacze są niewielkie, a odczyt jest wykonywany z małej odległości.
Po ustawieniu trybu pracy układu SAA1064 można wpisać odpowiednie wartości do poszczególnych rejestrów cyfr. Wpisywane dane muszą być wcześniej przekształcone na kod wyświetlacza siedmio segmentowego. W przedstawionym układzie wyświetlacze są dołączone inaczej niż jest to sugerowane przez producenta: inne jest przyporządkowanie poszczególnych cyfr do rejestrów układu SAA1064. Różnica polega na tym, że dane z rejestru cyfry 1 są wyświetlane na wyświetlaczu DPI, z rejestru cyfry 3 na wyświetlaczu DP2, z rejestru cyfry 2 na wyświetlaczu DP3, a z rejestru cyfry 4 na wyświetlaczu DP4. Nie wpływa to na pracę układu SAA1064, a wymaga jedynie innego sterowania przez procesor.
Procedury odpowiedzialne za wysyłanie danych do układu SA-A1064 przedstawiono na list. 1.
Obsługa układu SAA1064 jest wykonywana za pomocą dwóch procedur. Procedura pierwsza służy do zapisu trybu pracy do rejestru konfiguracyjnego. Przy wywołaniu
Tab. 2. Zakres napięcia podanego na wejście ADR i odpowiadająca mu wartość adresu układu SAA1064
Adres Al /C Napięcie na wejceciu ADR
Nkwnwn Typowo Makaron
0 0 GND - 3/16VCC
0 1 5/16VCC 3/8VCC 7/16VCC
1 0 1 1 9/16VCC 13/16VCC 5/8VCC 11/16VCC VCC
Tab. 3. Adresy poszczególnych rejestrów
SC SB SA Adres Rejestr
0 0 0 0 Kontrolny
0 0 1 1 Cyfra 1
0 1 0 2 Cyfra 2
0 1 1 3 Cyfra 3
1 0 0 4 Cyfra 4
Elektronika Praktyczna 5/2003
29
Cyfrowy miernik pojemności
Tab. 4. Funkcje poszczególnych bitów rejestru kontrolnego układu SAA1064
CO C0=0 Praca statyczna zndwoma wyświetlaczami
C0=1 Praca dynamiczna znczterema wyświetlaczami
C1 C1=0 Wyświetlacze nr 1nin3nwygaszone
C1=1 Wyświetlacze nr 1nin3nwłączone
C2 C2=0 Wyświetlacze nr 2nin4nwygaszone
C2=1 Wyświetlacze nr 2nin4nwłączone
C3 C3=1 Test, wszystkie wyświetlacze zapalone
C4 C4=1 Sterowanie prądem 3nmA
C5 C5=1 Sterowanie prądem 6nmA
C6 C6=1 Sterowanie prądem 12 mA
C7 - Nieużywany
tej procedury należy podać jako parametr liczbę wyświetlaczy oraz ich prąd sterowania. Wartości parametrów dla poszczególnych trybów pracy są zdefiniowane na początku listingu (polecenie wykonywane w mierniku ma postać: SAAl064_write_control(digit4_6m). Zapis danych do konkretnego wyświetlacza wykonuje druga procedura. Przy wywoływaniu tej procedury należy podać numer wyświetlacza oraz wartość, jaka ma być na nim wyświetlona. Numer wyświetlacza musi zawierać się w przedziale 1...4, a dana może być dowolną wartością jednobajtową. Aby jednak na wyświetlaczu były wyświetlane cyfry, podana dana musi być tak dobrana, aby powodowała zapalenie odpowiednich segmentów wyświetlacza.
Do stabilizowania napięcia zasilania całego układu miernika zastosowano monolityczny stabilizator typu LM7805, a kondensatory C1...C4 dodatkowo filtrują to napięcie. Aby zabezpieczyć cały układ przed uszkodzeniem
.4:
List. 1. Procedury służące do komunikacji procesora z układem SAA1064
// ..................... ............. ...... ..............
//Definicja stałych
łd efine SAA1064_adres_wr ObOlllOOOO //adre s zapisu zlanych, jeśli A =0, Al=0
łd efine SAA10 64_adres_r ObO 1110001 //adre s odczytu danych jeśli A =0, Al=0
łd efine digit2_3m ObOOOlOllO 112 wy swietlacz 2 I=3mA
łd efine digit2 6m ObOOlOOllO 112 wy swietlacz 3- I=6mA
łd efine digit2_12m ObOlOOOllO 112 wy swietlacz 3 I=12mA
łd efine digit4_3m ObOOOlOlll lii wy swietlacz 3 I=3mA
łd efine digit4_6m ObOOlOOlll lii wy swietlacz 3 I=6mA
łd efine digit4_12m ObOlOOOlll lii wy swietlacz 3 I=12mA
// ..................... ............. ...... ..............
// Zapisuje konfigurac e do SAA10 64 //
// ..................... ............. ...... ..............
SAA10 64_write_control(ir t control)
1 I2C starto ; //sta rt t ran s misji I2C
I2C write(SAA10 64 adr es wr); //zap i 3 a dre s u układu SAA10 64
I2C write(O); //poc a lie sul -adresu = 0, bo to zapis konfiguracj i
I2C write(control); //zap i 3 warto ści do re jestru konfigur acyjnego
// I2C_stop(); //kon i sc tran smisji 12 C
* * * * 1/
// Ś Ś Zapisuje dane na wyświetlaczu o nu ne rze po danym w numer II
SAA10 64_write_digit(int numer, int dig)
I2C_start() ; //sta rt t ran s misji I2C
I2C_write (SAA10 64_adr es wr); //zap i 3 a dre s u układu SAA10 64
I2C_write(numer); / /zap i 3 numery cyfry, której dotyczy Wpis (1...4)
I2C write(dig); //zap i 3 warto ści do re jestru podanego Wcześniej
I2C_stop(); //kon i 3-c tran smisji 12 C
// ..................... ............. ...... ..............
w przypadku błędnie dołączonego napięcia zasilania, zastosowano diodę prostowniczą Dl.
Metoda pomiaru pojemności
Zastosowana metoda pomiaru pojemności polega na pomiarze czasu trwania impulsu generowanego przez przerzutnik monosta-bilny ICM7555 o budowie wewnętrznej przedstawionej na rys. 3.
Pomiar jest przeprowadzany następująco: w stanie spoczynkowym na wyjściu OUTPUT panuje poziom niski wymuszony stanem przerzutnika zbudowanego z bramek. Taki poziom powoduje również wysterowanie tranzystora wyjściowego, co wymusza na wyjściu DIS (DISCHARGE) poziom niski. Ponieważ do tego wyprowadzenia jest dołączany badany kondensator, to zostaje on rozładowany. Rozpoczęcie cyklu pomiarowego rozpoczyna się od po-
Rys. 3. Budowa wewnętrzna układu ICM7555
dania impulsu o poziomie niskim na wejście TRIGGER. Impuls ten powoduje zmianę stanu przerzutnika, a w konsekwencji pojawienia się na wyjściu OUTPUT poziomu wysokiego oraz zablokowanie tranzystora wyjściowego. Zablokowanie tranzystora wyjściowego spowoduje, że dołączona pojemność będzie ładowana przez rezystor R3 i potencjometr PRl. Proces ten będzie trwał do momentu osiągnięcia na badanym kondensatorze napięcie równego 2/3 napięcia zasilania. Kontrola wartości tego napięcia jest przeprowadzana przez komparator A, gdyż jego wejście TRH (THRES-HOLD) jest połączone z biegunem badanego kondensatora. Po osiągnięciu wymaganej wartości napięcia następuje zmiana stanu przerzutnika i proces ładowania kondensatora zostaje zatrzymany, a wyjście OUT (OUTPUT) ponownie przyjmie poziom niski. Po odpowiednim skalibrowaniu wartości rezystancji R3 i PRl czas trwania generowanego impulsu odpowiada 1 |is dla pojemności 1 pF. Taka zależność znacznie ułatwia obliczanie wartości pojemność przez procesor.
Fragment programowej realizacji procedury pomiaru czasu trwania impulsu generowanego przez układ ICM7555 jest przedstawiony na list. 2. Pomiar czasu jest wykonywany za pomocą wewnętrznego licznika Tmrl, który jest skonfigurowany do zliczania impulsów z wewnętrznego oscylatora zegarowego (f=fosc/4). Licznik ten
30
Elektronika Praktyczna 5/2003
Cyfrowy miernik pojemności
List. 2. Fragment procedury pomiaru i wyświetlania pojemności
// Procedura pomiaru i wyświetlania pojemności
get_c() {int i;
bit_clear(tlcon,0);
tmrll=0;
tmrlh=0;
c_high=0;
enable=0;
enable=l;
bit_set(tlcon
While(tin)
{
if (tmrli)

.O);
//zatrzymaj licznik tmrl //wyzeruj rejestry licznika Tmrl
//wyzeruj pomocniczą komórkę licznika c //wyzwolenie impulsu ICM7555
//włącz licznik tmrl
//dopóki na wejściu tin stan wysoki, to
//OUT=1
//jeśli przepełnienie tmrl, to zwiększ
licz impulsy c_high
tmrli=0; c_high+ + ;
bit c_l
if( els
clear(tlcon.O); >W=makel6 (tmrlh, tmrll) ; ir=make32 (c_high, c_low) ; Lr/ = 5;
:_Var<18) c_var=0; i c_var-=18;
if(c_
var>9 _var/=10000;
//zatrzymaj tmrl
//zapisz rejestry licznika Tmrl to c_low
//zapisz c_low i c_high do c_var, tworzy liczbę 32-bitową
//wynik trzeba podzielić/5, aby wartość odpowiadała us
//należy odjąć 18, aby bez pojemności wynik był =0
//jeśli bez pojemności wynik jest mniejszy od 18, to wpisz
//jeśli 1000000 lub więcej, to wynik w uF - max 9.9 9UF //podziel 10000, aby były tylko trzy znaczące cyfry
//procedura wyświetlająca c_var w formie dziesiętnej na trzech cyfrach //dodatkowo zostanie zapalona kropka na wyświetlaczu nr 1 //a na wyświetlaczu czwartym zostanie wyświetlony znak "u"
Śe if(c_var>99999) //jeśli 100000 lub więcej, to zakres wynik w nF-max 999nF
c_var/=1000; //podziel, aby wynik był trzycyfrowy
//procedura wyświetlająca c_var w formie dziesiętnej na trzech cyfrach
//kropka nie zostanie zapalona na Żadnym wyświetlaczu
//a na wyświetlaczu czwartym zostanie wyświetlony znak "n" ) else if(c_var>9999) //jeśli wynik 10000 lub więcej, to zakres nF - max 99,9nF
c_var/=100; //podziel, aby wynik był trzycyfrowy
//procedura wyświetlająca c_var w formie dziesiętnej na trzech cyfrach //dodatkowo zostanie zapalona kropka na wyświetlaczu nr 2 //a na wyświetlaczu czwartym zostanie wyświetlony znak "n"
if(c_var>999) //jeśli wynik 1000 lub więcej, to zakre
c_var/=10; //podziel, aby wynik był trzycyfrowy
iF- max 9,99nF
}
else
i
//procedura wyświetlająca c_var w formie dziesiętnej na trzech cyfrach //dodatkowo zostanie zapalona kropka na wyświetlaczu nrl2 //a na wyświetlaczu czwartym zostanie wyświetlony znak "n"
//jeśli wynik mniejszy niż 1000, to zakres pF- max 999pF
//procedura wyświetlająca c_var w formie dziesiętnej na trzech cyfrach
//kropka nie zostanie zapalona na Żadnym wyświetlaczu
//a na wyświetlaczu czwartym zostanie wyświetlony znak "P"
ma pojemność równą 16bitów i umożliwia zliczenie maksymalnie 65 535 impulsów, co przy częstotliwości taktowania procesora równej 20 MHz pozwala na odmierzenie czasu równego 65535*200 ns = 13,107 ms. Ponieważ mierzony czas jest wprost proporcjonalny do pojemności, to maksymalna wartość mierzonej pojemności wynosiłaby około 13 nF. Aby zwiększyć zakres pomiarowy, został wprowadzony dodat-
kowy licznik 16-bitowy c_high. Zawartość tego licznika jest zwiększana po każdym przepełnieniu licznika Tmrl. W ten sposób został utworzony 3 2-bitowy licznik zliczający odcinki czasu równe 200 ns o pojemności równej 232 (odpowiada to maksymalnej wartości 4294967296). Dla maksymalnej wartości mierzonej pojemności przez miernik wymagana pojemność licznika jest równa 50000000. Wartość ta wynika z zależności:
=1 pF*107=10000000pF 10000000 pF- 10000000*1 |is
1 ? pF= 1 D|iS -> 1 niiS=5*200 ns 10000000 |is = 10000000*5 = 50000000
10|iF = 50000000
Jak widać, pojemność zastosowanego licznika znacznie przewyższa wymaganą wartość maksymalną. Pomiar rozpoczyna się od zatrzymania licznika Tmrl, następnie zerowane są rejestry licznika Tmrl (tmrll, tmrlh) oraz zmienna c_high. Następnie na wejście TR (TRIGGER) układu ICM7555 jest podawany krótki impuls powodujący rozpoczęcie ładowania kondensatora, którego pojemność mierzymy. Jednocześnie wyjście OUT zmieni swój poziom na wysoki, a w procesorze zostanie włączony licznik Tmrl. Rozpoczęty w ten sposób cykl pomiarowy będzie trwał do momentu powrotu wyjścia OUT układu US2 do poziomu niskiego. Będzie on spowodowany osiągnięciem na badanym kondensatorze wymaganej wartości napięcia. Następnie zatrzymany zostanie licznik Tmrl, a zawartość jego dwóch rejestrów tmrll i tmrlh zostanie przepisana do 16-bitowej zmiennej c_low. Zmienna ta, wraz ze zmienną c_high, zostanie przetworzona na zmienną 32-bitową c_var. W zmiennej tej znajduje się całkowita liczba zliczonych impulsów podczas cyklu pomiarowego. Zliczona liczba impulsów odpowiada liczbie 200 ns odcinków czasu, dlatego aby przetworzyć tę wartość na pojemność, należy podzielić ją przez pięć. Tak uzyskany wynik należy jeszcze skorygować o czas reakcji układu ICM7555 na impuls wyzwalający. Po wykonaniu wszystkich zabiegów obliczeniowych, w zmiennej c_var znajduje się wartość odpowiadająca wartości zmierzonej pojemności. Ze względu na trzycyfrową rozdzielczość wyświetlania pojem-
niermk pojemności C2 Plausiuk
I
Rys. 4. Rozmieszczenie elementów na płytce miernika pojemności
Elektronika Praktyczna 5/2003
31
Cyfrowy miernik pojemności
Tab. 5. Wartości dzielnika korygującego zmierzone wartości, aby były wyświetlane jako liczby trzycyfrowe
Waboeae zrriemg c_var Dzielnic Zakres pomiarowy
c_var>999999 10000 1,00|iF...9,99|iF
999999>c_var>99999 1000 1nF...999nF
99999>c_var>9999 100 100pF...99,9nF
9999>c_var>999 10 10pF...9,99nF
c_var<999 1 1pF...999pF
ności, mierzone wartości należy korygować i ustalać odpowiedni zakres pomiarowy, aby wynik był zawsze trzycyfrowy. Korekcja polega na dzieleniu tej wartości w taki sposób, aby końcowa wartość nie była większa niż 999. Wartość dzielnika dla poszczególnych zakresów pomiarowych i zakresy pomiarowe przedstawiono w tab. 5. Po odpowiednim przetworzeniu wartość końcowa zostaje wyświetlona na wyświetlaczu.
Montaż i uruchomienie
Miernik pojemności został zmontowany na płytce dwustronnej, o wymiarach dopasowanych do obudowy serii TS typu sonda. Rozmieszczenie elementów na płytce jest przedstawione na rys. 4. Ze względu na niewielkie wymiary płytki, konieczny stał się montaż po obu stronach płytki (niektóre elementy są w obudowach SMD).
Montaż elementów należy rozpocząć od wyświetlaczy DP1...DP4 - są one montowane od strony "elementów". Następnie należy zamontować układ US3 - jest on
Rys. 5. Przykładowy format wyświetlania wartości mierzonej pojemności.
montowany od strony lutowania i należy wlutować go bezpośrednio w płytkę, gdyż zastosowanie podstawki spowoduje, że cała płytka nie zmieści się do obudowy. W kolejnym etapie należy wlutować układ ICM7555 od strony elementów, a następnie procesor USl od strony lutowania. Po wlutowaniu układów scalonych US1...US3 można przyjść do montażu pozostałych elementów. Tranzystory Tl i T2 oraz stabilizator US4 i kondensator C3 należy zamontować na leżąco. Rezonator kwarcowy należy również zamontować na leżąco od strony elementów. Punkt lutowniczy znajdujący się przy rezonatorze kwarcowym jest wyprowadzeniem masy badanego kondensatora i należy dołączyć do niego odcinek przewodu, najlepiej zakończonego wtykiem szpilkowym umożliwiającym precyzyjne dołączenie tej masy do badanego kondensatora. Natomiast do punktu lutowniczego połączonego z układem ICM7555 należy przylutować dwu-centymetrowy odcinek drutu
0 średnicy około 1 mm - drut ten należy na końcu zaostrzyć, aby było możliwe dołączenie tak wykonanego czujnika sondy do dowolnego kondensatora SMD.
Po zmontowaniu układu można przejść do jego uruchomienia
1 wyskalowania miernika. W tym celu do złącza CON2 należy dołączyć napięcie zasilania o wartości około 9 V i maksymalnym prądzie obciążenia 200 mA.
Po włączeniu zasilania procesor rozpocznie pomiar i wyświetlanie wartości mierzonej pojemności. Gdy do złącza pomiarowego nie będzie dołączony żaden kondensator, to na wyświetlaczu pojawi się napis "OP". Wyświetlanie tylko jednego zera podanej wartości jest spowodowane tym, że procesor automatycznie usuwa nieznaczące zera. Przed rozpoczęciem użytkowania miernika należy go wy skalować. Dolna granica pojemności (zerowanie) jest ustalana automatycznie przez procesor i nie wymaga żadnych regulacji, natomiast górną granicę zakresu pomiarowego należy ustawić za pomocą potencjometru wieloobrotowego PRl. Do ska-librowania miernika będzie potrzebny kondensator o pojemności równej 1 |iF i jak najmniejszej to-
WYKAZ ELEMENTÓW
Rezystory
Rl, R2: 10kO 1205 R3: 1MO 1205
PRl: potencjometr wieloobrotowy Helitrim 4 7 Oka Kondensatory Cl: 22|iF/10V 6532 C2: lOOnF C3: 100^F/16V C4: lOOnF C5, Có: 27pF 1205 C7: lOOnF 1205 C8: 2,7nF 1205 C9: lOOnF 1205 Półprzewodniki Dl: 1N4007 Tl, T2: BC547
USl: PIC12F629 SO8 zaprogramowany
US2: ICM7555 SO8 US3: SAA10Ó4 US4: LM7805 Różne
DP1...DP4: wyświetlacz 9mm czerwony TDSO1153 Xl: rezonator kwarcowy 20MHz CON1: goldpin 1x2 męski kątowy CON2: goldpin 1x4 żeński-precyzyjny
Obudowa sondy typu TS o wymiarach 180x25x 15 (www.cyfronika.com.pl)
lerancji. Kondensator należy dołączyć do złącza pomiarowego CONl, a potencjometrem PRl należy tak regulować, aby na wyświetlaczu była wyświetlana wartość przyłożonej pojemności.
Po tak przeprowadzonej kalibracji miernik pojemności jest gotowy do pracy.
Jak wcześniej wspomniano, wynik pomiaru jest przedstawiany na trzech cyfrach, a na czwartej mnożnik (piko, nano, mikro). Ze względu na to, że informacja o mnożniku mierzonej wielkości jest przedstawiana na wyświetlaczu siedmiosegmentowym, to forma opisów jest uproszczona. Przykładowe wyświetlanie przez miernik wartości zmierzonej pojemności przedstawiono na rys. 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/majO3.htm oraz na płycie CD-EP5/2003B w katalogu PCB.
32
Elektronika Praktyczna 5/2003
PROJEKTY
CPU-meter do PC-ta
Przedstawiony tutaj
sprzętowy wskaźnik obciążenia
procesora PC-ta wykorzystuje
prosty i łatwo dostępny
sprzęt [poń Centronics) oraz
dosyć złożony niskopoziomowy
software w Delphi. Na
szczęście większość pracy
została już wykonana i tylko
czeka na połączenie
w działającą całość...
Rekomendacje: dla osób
chcących rozbudować swój
komputer o prosty, lecz
efektowny wskaźnik
obciążenia, będący również
doskonałą bazą dla dalszych
eksp erym en tó w.
ŚŚŚŚŚŚŚŚŚŚŚ i M
Miernik obciążenia procesora jest obecny w niemal każdym systemie operacyjnym, często bywa wręcz zintegrowany z powłoką, jak w przypadku Sun Solaris. Popularne Windo w sy również standardowo wyposażone są w Monitor Systemu i Miernik Zasobów. Proponujemy tutaj pewną alternatywę dla typowego, programowego wyświetlania czasu zajętości procesora przez przeniesienie aktualnego wskazania wraz z wykresem na zewnątrz komputera. Idealnym rozwiązaniem wydaje się zastosowanie powoli odchodzącego w niepamięć interfejsu Centronics do sterowania wyświetlaczem alfanumerycznym LCD. Ma to tym większy sens, że port równoległy bardzo często bywa niewykorzystany, jako że jego rolę przejmuje powoli USB. Całość projektu została przygotowana dla wyświetlaczy LCD kompatybilnych ze standardem HD44780. Dostępność tego typu wyświetlaczy obecnie nie jest żadnym problemem. Tak więc kluczem obwodu elektrycznego jest interfejs portu równoległego z wyświetlaczem. Sposób realizacji tego interfesju pokazano na rys. 1. Jak widać, schemat nie jest szczególnie skomplikowany, komentarz do niego nie musi być zbyt obszerny.
Magistrala danych D0...D7 jest sterowana bezpośrednio przez wyjścia danych portu Centronics. Bit przełączający między zapisem i odczytem z wyświetlacza (R/!W) został sprzętowo ustawiony na zapis. Powodem tego jest brak możliwości prostego odczytu danych z wyświetlacza, ponieważ z magistrali danych portu równoległego w standardowym trybie (SPP) nie można czytać. Dlatego implementacja odczytu danych z LCD (w tym również dosyć przydatnej flagi zajętości) bardzo by się skomplikowała i została odłożona na przyszłość. Pozostałe bity sterujące pracą wyświetlacza, tzn. przełączanie dane/komenda (RS) oraz taktowanie (E), są obsługiwane przez odpowiednie sygnały portu równoległego (SELECT IN oraz STROBE). Standardowy wyświetlacz alfanumeryczny LCD wymaga jeszcze podania dodatkowego napięcia sterującego kontrastem na wejście oznaczone Vo. W niektórych modelach wystarcza napięcie bliskie 0V, a w innych niezbędne jest wręcz napięcie ujemne. W tym celu do obwodu elektrycznego dodany został opcjonalny moduł zasilania -5 V zbudowany w oparciu o przetwornicę ICL7660. Potencjometr 10 kLł umożliwia płynną regulację na-
Elektronika Praktyczna 5/2003
35
CPU-meter do PC-ta
List. 1. Program odpowiedzialny za wysyłanie danych do portu l/O
procedurę prt(portn: word; val: byte) ;
mov al,val mov dx,portr out dx,al
pięcia kontrastu pomiędzy -5 V a +5 V. W przypadku pominięcia przetwornicy należy drugi zacisk potencjometru zewrzeć zworką do masy. W tym wypadku oczywiście nie jest możliwa generacja napięć ujemnych, ale w wielu nowych typach wyświetlaczy nie ma to znaczenia.
Teraz oprogramowanie
Po omówieniu prostego w realizacji obwodu elektrycznego pora zająć się "inteligencją" urządzenia, która oczywiście została zaszyta w oprogramowaniu. Oprogramowanie to można podzielić na dwie części: procedury sterujące wyświetlaczem oraz moduł pomiaru obciążenia procesora.
Podstawą obsługi wyświetlacza jest oczywiście umiejętność programowania poszczególnych sygnałów sterujących. W tym przypadku można to osiągnąć przez pisanie do przestrzeni adresowej portu LPT. Przestrzeń ta rozciąga się przez kilka kolejnych bajtów adresu bazowego, typowo 278h lub 378h i jest krótko podsumowana w tab. 1.
List. 2. Procedura wysyłająca dane i polecenia do sterownika wyświetlacza
procedurę write_LPT(a: byte; sterowanie
lean);
begin
if sterowanie=TRUE then
begin
prt(LPT+$02, $09) { RS=0 , E=0 )
prt(LPT+$00,a) ; { rozkaz )
prt(LPT+$02, $01) { RS=0, E=1 )
prt(LPT+$02, $09) { RS=0 , E=0 )
end else
begin
prt(LPT+$02, $08) { RS=1, E=0 )
prt(LPT+$00,a); { dana )
prt(LPT+$02,$00) { RS=1, E=l )
prt(LPT+$02, $08) { RS=1, E=0 )
Podstawową procedurą przy obsłudze portu jest wysłanie danej wartości na port I/O (odpowiada za to program pokazany na list. l), zaimplementowany dla języków Pascal firmy Borland (np. Turbo Pascal i Delphi) dzięki wbudowanemu asemblerowi. Parametrami tej procedury są oczywiście konkretna wartość oraz adres I/O, na który wartość ta ma zostać wysłana.
Dzięki powyższej procedurze można wysyłać dane lub rozkazy do wyświetlacza. Wysłanie danej od rozkazu różni się de facto tylko stanem sygnału sterującego RS, w związku z czym warto zintegrować obie te funkcje w jedną procedurę, pokazaną na list. 2. W procedurze tej zmienna globalna LPT oznacza adres bazowy wybranego portu.
Jak już stwierdzono wcześniej, działanie portu równoległego w trybie podstawowym nie po-
List. 3. Procedury realizujące: konfigurację podczas inicjalizacji, czyszczenie ekranu, powrót kursora, przesunięcie kursora, wpisywanie znaków do CGRAM
procedurę
Icd_define(do,dl,d2,d3,d4,d5,d6,d7:byte); { definicja znaku do CGRAM )
sleep(10); write_LPT(dO,FALSE) sleep(10); write_LPT(dl,FALSE) sleep(10); write_LPT(d2,FALSE) sleep(10); write_LPT(d3,FALSE) sleep(10); write_LPT(d4,FALSE) sleep(10); write_LPT(d5,FALSE) sleep(10); write_LPT(d6,FALSE) sleep(10); write_LPT(d7,FALSE) sleep(10);
procedurę lcd_init;
{ inicjalizacja wyświetlacza LCD )
begin
sleep(10);
write_LPT(32+16+8,TRUE);
sleep(10);
write_LPT(16+4,TRUE) ;
sleep(10);
write_LPT(8+4,TRUE);
sleep(10);
write_LPT(4+2,TRUE);
sleep(10);
write_LPT(l,TRUE);
sleep(1000);
write_LPT(64,TRUE);
sleep(10);
lcd_define(0,0,0,0,0,0,0,31);
lcd_define(0,0,0,0,0,0,31,31);
lcd_define(0,0,0,0,0,31,31,31);
lcd_define(0,0,0,0,31,31,31,31);
lcd_define(0,0,0,31,31,31,31,31);
lcd_define(0,0,31,31,31, 31,31, 31) ;
lcd_define(0,31,31,31,31,31,31,31);
lcd_define(31,31,31, 31,31, 31,31,31)
sleep(10);
procedurę lcd_clear;
{ czyszczenie ekranu wyświetla
write_LPT(l,TRUE);
procedurę lcd_home; { powrót kursora )
write_LPT(2,TRUE) ;
procedurę lcd_shift;
{ przesuniecie zawartości wyświetla
write_LPT(16+8+4+1,TRUE);
Rys. 1. Schemat elektryczny interfejsu
zwala na odczyt danej przez magistralę D0...D7. Nie można w związku z tym odczytać statusu sterownika wyświetlacza, a konkretnie czy jest gotowy do przyjęcia kolejnej danej (bit BF). Rozwiązano ten problem w nieco prymitywny, aczkolwiek skuteczny sposób, mianowicie przez opóźnienie o ustalanej programowo długości. Długość tego opóźnienia można zoptymalizować w ostatniej fazie testów dla konkretnego komputera. Opóźnienie to nie jest jednak obciążeniem dla systemu (nie wliczając inicjalizacji), bowiem jest zrealizowane w Delphi za pomocą timerów, które uaktywniają się tylko w określonych interwałach czasowych.
36
Elektronika Praktyczna 5/2003
CPU-meterdoPC-ta
List. 4. Najważniejsze fragmenty programu
! Zmienne globalne } yar
TestFomi: TTestFomi buf fer: stringr akt.LPT.bllf 1: lnteg
procedurę TTestForrn.TlrnerTlrner (Sender: TObject):
! procedura obsługi tlrnera gloWuego, okres Ustawiany przez użytkownika } yar i : lntegerr ] : Doubler s : stringr begln
OllectCPUDatar
J := GetCPUUsagefO^lOOr
s : = Format ('$1. 0f$$ ' , [J] ) ;
TestForm.Captlon:='CPU Usage 'łsr
ftppllcatlon.Tltle:='CPU Usage 'łsr
for 1 := 1 to 4 do buffer[1]:= s[l]r
for 1 := buf1+S doWnto S do buffer[l]:= buffer[1-1]r
buffer[5]:= chr (trunc (j/13 ) + 8 );
lcd_horne;
akt:= lr
Tlmerl.Enabled: = tnier endr
procedurę TTestForm.ForrnCreate (Sender: TObject): ! procedura przy lnlejalizaejl programu } yar 1 : lntegerr
f : TlnlFller begln
f := TlnlFlle.Create ('CpUUsage.Inl')r
Wlth f do
begln
LPT:= Peadlnteger('Conflguratlon' ,'ftddress', S2 78) ; buf1:= Readlnteger('Conflguratlon','Buffer',20); Tlrner. Interyal: = Readlnteger (' Conf lguratlon' , ' Ref resh' ,5000) ; endr
akt:= 0; lcd_lnlt r
SplrLEdltl.yalUe:= buflr
SplnEdlt^.yalUe: = Tlrner. Interyal diy 1000; buffer:= ' ' r
lf LPT = S278 then RadloButtonl.Checked:= true
else RadloButtonl.Checked:= falser lf LPT = S378 then RadloButtonl.Checked:= true
else RadloButtonl.Checked:= falser f. Free r endr
procedurę TTestForm. CZasNaZnak (Sender: TObject):
! procedura obsługi tlrnera taktowania LCD, okres np. lOrns }
begln
lf (akt < buflłS) then begln
WTlte_LPT(ord(buffer [akt] ) .FftLSE) r akt:=akt-Hr
end else Tlrnerl.Enabled: = falser endr
procedurę TTestForm. set273 (Sender: TOb]ect) ; ! procedura obsługi przycisku 27Sh } begln
lcd_lnlt r endr
procedurę TTestForm. set378 (Sender: TOb]ect) ; ! procedura obsługi przycisku 378h } begln
LPT:=S373r lcd_lnlt r endr
procedurę TTestForm.buf_change (Sender: TObject):
! procedura przy Zmianie Wartości SplnEdlta długości bufora }
begln
buf1:=SplnEdltl.yalue r endr
procedurę TTestForm.refresh_change(Sender: TObject):
! procedura przy Zmianie Wartości SplnEdlta lnterwału pomiaru }
begln
Tlmer.Interyal:= SplnEdlt2.Ualue * 1000; endr
procedurę TTestForm.ForrnClose (Sender: TObjectr yar ftctlon: TCloseftctlon) ;
! procedura przy Zakończeniu aplikacji }
yar
f : TlnlFller begln
f := TlnlFlle.Create ('CpUUsage. Inl') r
Wlth f do
begln
Writelnteger('Conf lguratlon','ftddress',LPT); Writelnteger('Conf lguratlon','Buffer',buf1); Writelnteger ('Conf lguratlon' ,'Ref resh' .Tlrner. Interyal) ; endr f. Free r endr
Za pomocą przytoczonych procedur można łatwo realizować podstawowe funkcje wyświetlacza LCD, takich jak: - konfiguracja podczas inicjali-zacji,
b)
^'ł'":I
- czyszczenie ekranu,
- powrót kursora,
- przesunięcie,
- definicja znaków do CGRAM (niezbędna do wykresu słupkowego).
Rys. 2. Wyglqd interfejsu aplikacji steruj qcej
Przykłady procedur realizujących powyższe operacje przedstawiono na list. 3.
Internetowe open-source są nieprzebranym źródłem pomysłów i niemal gotowych projektów. Również dzięki tej idei udało się prosto i bezboleśnie zrealizować pomiar obciążenia procesora. Kluczem okazał się tutaj gotowy komponent do Delphi realizujący tego typu pomiar. Spośród paru testowanych modułów najlepiej chyba w tej roli spisał się pakiet Alexeya Dynnikova {aldyn%-chat.ru) o nazwie adCPU. Moduł ten jest dostępny jako freeware pod adresem http://www.aldyn.ru. Instalacja modułu praktycznie ogranicza się do dołączenia pliku źródłowego do projektu. Dostajemy do dyspozycji trzy funkcje do pomiaru obciążenia dowolnego procesora w systemie:
- GetCPUCount - zwraca liczbę procesorów w systemie,
- CollectCPUData - zbiera informacje o aktualnym obciążeniu każdego procesora,
- GetCPUUsage(n) - zwraca poprzednio zebrany pomiar obciążenia dla procesora n.
Tab. 1 . Przestrzeń adresowa portu
Centronics
Ofeet Olcątf Nlitet
Zapis bftj
Baza Zapis 7 D7
+ 0 6 D6
Dane 5 D5
4 D4
3 D3
2 D2
1 D1
0 DO
Baza Tylko 7 Busy
+ 1 odczyt 6 /Acknowledge
Status 5 Paper End
4 Select
3 /Error
2 /IRG
1 Zarezerwowane
0 Zarezerwowane
Baza Odczyt/ 7 Zarezerwowane
+ 2 Zapis 6 Zarezerwowane
Stero- 5 Direction
wanie 4 Enable IRG
3 /Select In
2 Initialize
1 /Autoteed
0 /Strobe
Elektronika Praktyczna 5/2003
37
CPU-meterdoPC-ta
Rys. 3. Przykładowe wskazanie na wyświetlaczu
Nie wnikając w zasadę działania procedur autorstwa Alexeya Dynnikova (które można poznać, analizując niezbyt długi kod źródłowy), można w prosty sposób zmierzyć obciążenie procesora. Praktyczna realizacja w projekcie Delphi składałaby się z części ini-cjalizacyjnej oraz cyklicznie wywoływanej procedury pomiaru i wyświetlania. Kluczem jest cykliczny pomiar wartości obciążenia, który może być wywoływany sygnałem timera. Po zebraniu danych należy również zaktualizować bufor poprzednich wartości w celu stworzenia wykresu. Byłaby to bardzo dobra koncepcja, gdyby nie konieczność stosowania sztywnych opóźnień przy sterowaniu wyświetlaczem. Taki czas bezczynności byłby dużym obciążeniem dla systemu. W związku z tym wprowadzono drugi timer, który z częstotliwością wielokrotnie większą taktuje dane dla wyświetlacza po pomiarze obciążenia. Timer ten jest aktywny przez parę cykli po pomiarze, po czym po przetians-mitowaniu całości danych sam się deaktywuje. Realizacja programowa nie jest skomplikowana i można ją natychmiast zrozumieć spojrzawszy w kod źródłowy projektu (kluczowe fragmenty są przedstawione na list. 4).
Na rys. 2 przedstawiono wygląd formy surowego projektu w Delphi oraz gotowej aplikacji po skompilowaniu. Jak widać, z poziomu GUI można zmieniać
długość bufora (przydatne przy wyświetlaczach o różnej liczbie znaków), adres portu oraz inter-wał cyklu pomiarowego.
Po każdorazowym pomiarze obciążenia procesora, aktualizowany jest bufor, w którym znajdują się poprzednie wartości pomiarów. Następnie aktualna wartość pomiaru jest transmitowana do wyświetlacza w postaci numerycznej (np. 56%) oraz poprzednie wartości z bufora w postaci wykresu słupowego (dzięki znakom zdefiniowanym do CGRAM). Przykładowe wskazanie na wyświetlaczu mogłoby więc wyglądać jak na rys. 3. Długość wykresu jest oczywiście zależna od długości bufora oraz ilości dostępnych pól na wyświetlaczu.
Jak już wspomniano, kluczowe fragmentu kodu źródłowego projektu przedstawiono na list. 4. Kod ten zawiera również wiele doda tko wy ch elem entó w, któr e z punktu widzenia tego projektu są mniej istotne, a służą głównie ergonomii użycia aplikacji. Są to m.in. zapamiętywanie i odtwarzanie poprzednich ustawień w pliku CpuUsage.ini oraz formatowanie bufora i tytułu aplikacji. Czytelnicy bardziej zainteresowani stroną programistyczną z pewnością łatwo zrozumieją sens tego kodu i być może wzbogacą go o własne pomysły. Aplikację tę można w prosty sposób rozbudować o kolejne elementy, jak chociażby wyświetlanie innych danych w drugiej linijce wyświetlacza (np. aktualny czas systemowy). Dodatkowo można ją rozbudować o możliwość pracy w systemie wielo-procesorowym, np. przez cykliczne wyświetlanie wskazań dla ko-
WYKAZ ELEMENTÓW
Rezystory
Pi: lOkn Kondensatory
Cl: 100^F/lóV C2: 10^F/lóV Półprzewodniki
Ul: ICL7ÓÓO/7ÓÓOS Różne
Wl: dowolny wyświetlacz LCD
2x20 znaków
Zll: wtyk DB25
JP1: goldpiny 1x2 + jumper
lejnych procesorów. W niektórych komputerach również adres portu równoległego nie jest ustawiony na żadną z "historycznych" wartości 278h lub 378h. W związku z tym, sposób ustawiania adresu można również łatwo zmodyfikować. Delphi daje w tym względzie wręcz nieograniczone możliwości. Montaż i uruchomienie urządzenia nie powinny przysparzać żadnych trudności. Cały układ bez wyświetlacza mieści się wewnątrz obudowy złącza DB25. Otwartą kwestią pozostaje zasilanie, które niestety nie jest wyprowadzone na port Centronics, w związku z czym niezbędne jest dołączenie zasilacza zewnętrznego. Aby tego uniknąć, można zastosować sztuczkę polegającą na "podczepieniu" się do zasilania komputera na złączu klawiaturowym, gameporcie lub USB. W praktyce polecam rzadko wykorzystywany gameport (zasilanie na wszystkich skrajnych stykach - napięcie +5 V występuje na stykach 1, 8, 9 i 15, masa to styki 4 i 5). Jarek Paluszyński jarekp@ict.pwr.wroc.pl
38
Elektronika Praktyczna 5/2003
PROJEKTY
Zegar minimalisty
AVT-511
Zegar dla minimalisty jeśli
chodzi o budowę, ale nie
walory użytkowe. Budowa
zegara przedstawionego
w ańykule zapewne zaskoczy
wielu Czytelników, gdyż na
pierwszy rzut oka nie
powinien on działać.
Rekomendacje: zegar
szczególnie polecamy
wszystkim fanom nietypowych
układów użytkowych, którym
zależy na efektownym
wyposażeniu mieszkania lub
przy go to wani u
niekonwencjonalnych,
a przydatnych prezentów.
Podstawowym powodem wątpliwości Czytelników co do użyteczności prezentowanego zegara może być brak odpowiedniej liczby wyświetlaczy. Do zbudowania klasycznego zegara są konieczne przynajmniej cztery wyświetlacze lub wyświetlacz alfanumeryczny i - ewentualnie - diody świecące. W tym zegarze zastosowano tylko jeden wyświetlacz, ale jak się okazuje to zupełnie wystarcza do efektownego przedstawienia bieżącej godziny. Jako wyświetlacz zastosowałem matrycę diod o organizacji 5x7. Takie rozmieszczenie punktów świetlnych, podobnie jak to ma miejsce w wyświetlaczach alfanumerycznych LCD, jest wystarczające do wyświetlania dowolnego znaku - zarówno cyfry, jak i litery. Ponadto, wyświetlane cyfry mają znacznie "przyjemniejsze" kształty niż w przypadku wyświetlaczy siedmio segmentowych. Oczywiście, można zastosować cztery takie wyświetlacze, ale jak wyświetlić pełną informację o godzinie na jednym? W sposób najprostszy z możliwych: wyświetlanie godziny odbywa się przez płynne przewijanie wyświetlanych znaków. W ten właśnie sposób wyświetlane są cztery cyfry określające bieżący czas oraz dwukropek rozdzielający godziny i minuty.
Rozpoczęcie wyświetlania czasu rozpoczyna się od wygaszenia całego wyświetlacza, następnie następuje "wysuwanie" cyfr godziny od prawej strony wyświetlacza. Uzyskany efekt jest taki jak w przypadku reklam świetlnych,
z tą różnicą, że wyświetlany tekst jest przewijany tylko przez jeden wyświetlacz. Czas jest wyświetlany w godzinach i minutach. Godzina może składać się z jednej lub dwóch cyfr. Jeśli godzina jest jednocyfrowa, to dziesiątki godziny są wygaszane. Po wyświetleniu godziny zostaje wyświetlony dwukropek rozdzielający godziny i minuty, dzięki czemu wiadomo, jaka część danych jest wyświetlana. Następnie zostają wyświetlone minuty. Prędkość przewijania cyfr czasu może być regulowana w zakresie 50 ms...l s (20 Hz...l Hz), co pozwala na ustawienie optymalnej dla użytkownika prędkości.
Budowa i zasada działania
Schemat elektryczny zegara przedstawiono na rys. 1. Jego głównym elementem jest miki o-kontroler typu PIC16F628, który zajmuje się zarówno odmierzaniem czasu, jak również obsługą wyświetlacza. Procesor ten udostępnia dwa pełne porty ośmio-bitowe i to pomimo obudowy 18-nóżkowej. W mikrokontiolerze znajduje się wewnętrzny układ zerowania po włączeniu zasilania, co pozwala wykorzystać wejście sygnału zerującego IMCLR na dodatkowe wejście cyfrowe. Także wyprowadzenia służące do dołączenia zewnętrznego rezonatora kwarcowego (OSCl, 0SC2) zostały wykorzystane jako wyjścia. Takie wykorzystanie tych wyprowadzeń jest możliwe, gdyż wewnątrz procesora znajduje się ge-
Elektronika Praktyczna 5/2003
Zegar minimalisty
US2 UDN2981A
IN1 ouri
IN2 OUT2
IN3 OUT3
IN4 OLJT4
IN5 OUT5
IN6 OUT6
IN7 OLJT7
IN8 OLJTB
vcc GND
R1 10k
S1
I H
18
\C3_
\C4_
T
C4a -10-40p"
13
RA6/OSC2/CLKOUT
RA(VAN0
>RA1/AN1
>RA2/AN2/VREF RA3/AN3/CMP1 RA4/T0CKI/CMP2 RA5/MCLR/THV
>RB7/T10SI
RB6/T1OSO/T1CKK
_C4 lOp
Rys. 1. Schemat elektryczny zegara
nerator RC o częstotliwości 4 MHz, która może być zmniejszona do 37 kHz. Wewnętrzny generator nie jest zbyt stabilny i nie nadaje się do pracy jako wzorzec dla zegara, dlatego do odmierzania czasu został zastosowany generator z rezonatorem kwarcowym. Rezonator ten nie służy do "napędzania" procesora, a jedynie do generowania stabilnego częstotliwości owo sygnału służącego do odmierzania czasu. Rezonator ten jest dołączony do wyprowadzeń RB6 i RB7, gdyż wyprowadzenia te są również wyprowadzeniami wewnętrznego oscylatora dołączonego do licznika Tmrl. Jego budowę przedstawiono na rys. 2. Jest to licznik 16-bitowy z dodatkowym preskalerem wejściowym, który może dzielić częstotliwość wejściową w kilku stopniach: 1:1, 1:2, 1:4, 1:8, zwiększając tym samym liczbę możliwych do zliczenia impulsów przez ten licznik. Do wykonania zegara za pomocą tego licznika najdogod-niej jest dołączyć zewnętrzny rezonator o częstotliwości 32,768 kHz, gdyż po podzieleniu jej przez 32768 przepełnienie licznika będzie następowało dokładnie co jedną sekundę. Licznik Tmrl
X1
32,768 kHz
_C5 30p
umożliwia zliczenie maksymalnie 65535 impulsów, dlatego po każdym przepełnieniu należy wpisywać do niego wartość początkową równą 65535-32768. W zegarze zrezygnowano z ładowania licznika po każdym przepełnieniu i pracuje on ze swoją pełną pojemnością, w efekcie czego przepełnienie nie następuje co jedną sekundę, lecz co dwie. Jednak dla pracy zegara nie ma to znaczenia, ponieważ wyświetlane są tylko minuty i godziny, a do odliczenia jednej minuty licznik sekund nie zlicza do wartości równej 60, lecz liczy tylko do 30. Dzięki takiemu rozwiązaniu uruchomiony licznik Tmrl pracuje samodzielnie, bez konieczności ustawiania jego wartości początkowej, co z kolei upraszcza procedury obsługi przerwania od tego licznika. Dołączony do kondensatora C4 trymer C4a umożliwia precyzyjne dostrojenie częstotliwości generatora, aby czas był odliczany z jak największą dokładnością.
Do wyświetlania czasu zastosowano matrycę diodową o organizacji 5x7. Obsługa takiego wyświetlacza jest znacznie trudniejsza w porównaniu ze standardowym wyświetlaczem siedmioseg-
mentowym. Dla jednego wyświetlacza siedmiosegmentowego wystarczyłoby tylko siedem wyprowadzeń procesora sterujących katodami diod, a wspólna anoda byłaby podłączona do plusa zasilania. Do sterowania wyświetlacza matrycowego potrzebna jest większa liczba wyprowadzeń, gdyż jedna matryca jest traktowana jak pięć wyświetlaczy siedmiosegmen-towych.
Na rys. 3 przedstawiono połączenie diod w wyświetlaczu matrycowym. Aby zaświecić jeden punkt, należy na wybraną kolumnę (C1...C5) podać wysoki poziom napięcia, a na odpowiedni wiersz (R1...R7) niski poziom napięcia. Aby został wyświetlony znak, trzeba po kolei podawać plus zasilania na kolumny, a dla aktywnej kolumny podać odpowiednie poziomy na wierszach. Jeśli prze-miatanie wyświetlacza będzie wykonywane odpowiednio szybko, to oko będzie "widziało" wybrane punkty matrycy jako świecące się jednocześnie. Do każdej kolumny zostało dołączonych siedem diod, dlatego do ich sterowania jest niezbędny układ sterujący o wydajności prądowej minimum 70 mA (7 diod x 10 mA), W danej
40
Elektronika Praktyczna 5/2003
Zegar minimalisty
Ustaw flagę TMRIIFpizy
pizepełnieniu
l TMR1
TMR1H TWR1L

RBB/TIOSOmCKI
RB7/T1OSI
T1CKPS1 :T1 CKPSO SLEEP
TMR1CS
Rys. 2. Budowa wewnętrzna licznika Tmrl zawartego w układzie PIC16F628
kolumnie może być zapalona tylko jedna dioda, ale również mogą zostać zapalone wszystkie, w zależności od wyświetlanego znaku. Dlatego do sterowania kolumn konieczne było zastosowanie dodatkowych wzmacniaczy prądowych, gdyż wyprowadzenia procesora mogą być obciążane prądem równym maksymalnie 25 mA. W roli wzmacniaczy pracuje układ typu UDN2981A, zawierający osiem wzmacniaczy, które umożliwiają podawanie plusa zasilania przy maksymalnym prądzie przewodzenia równym 500 mA, co jest w zupełności wystarczające. Wiersze matrycy są sterowane z wyjść portu procesora poprzez rezystory R3...R9 ograniczające prąd. Bezpośrednie sterowanie wierszy przez procesor jest możliwe, gdyż w tym samym czasie do każdego wyjścia procesora może być dołączona tylko jedna dioda - dioda, której anoda jest połączona z plusem zasilania. W związku z tym, że anody diod są sterowane sekwencyjnie, maksymalny prąd obciążenia portu sterującego katodami diod wyniesie około 10 mA na każde wyjście. Przemiatanie wyświetlacza odbywa się z częstotliwością 1 kHz, co daje dobrą jakość wyświetlanych znaków, bez efektu migotania.
Do ustawiania parametrów zegara zastosowano klawisze Sl i S2. Ponieważ wejścia portu RA4 i RA5 nie posiadają wewnętrznych rezystorów podciągających, konieczne było zastosowanie zewnętrznych rezystorów podciągających te wejścia do plusa zasilania (Rl i R2). Do stabilizacji napięcia zasilania zastosowano stabilizator typu LM2931 o wydaj-
ności prądowej równej 100 mA. Dzięki dużej sprawności stabilizator ten może pracować przy maksymalnym obciążeniu bez wydzielania dużej ilości ciepła. Przedstawiony układ pobiera prąd
0 maksymalnej wartości około 70 mA (gdy wszystkie diody jednej kolumny zostaną zapalone) i może być zasilany napięciem o wartości 12V bez obawy o przegrzanie się stabilizatora. Kondensatory C1...C3 dodatkowo wygładzają napięcie zasilania, a dioda Dl zabezpiecza układ w przypadku podłączenia napięcia zasilania o odwrotnej polaryzacji.
Montaż i uruchomienie
Układ zegara został zmontowany na płytce dwustronnej, której schemat montażowy przedstawiono na rys. 4. Montaż należy wykonać w typowy sposób, poczynając od rezystorów i diody Dl. Następnie należy wlutować podstawki pod układy scalone, kondensatory i układ US3. Kondensatory Cl i C2 należy zamontować w pozycji leżącej. Na samym końcu należy zamontować przyciski (Sl i S2), złącze CONl
1 wyświetlacz. W zależności od obudowy, pod wyświetlacz można zastosować podstawkę, która sprawi, że wyświetlacz będzie wystawał ponad układy scalone, co umożliwi bezpośrednie przyleganie wyświetlacza do przedniej ścianki obudowy. Po prawidłowym zamontowaniu wszystkich elementów, do złącza CONl należy podłączyć napięcie zasilania o wartości około 9V i wydajności prądowej minimum 100 mA. Podłączenie zasilania spowoduje przejście zegara do wyświetlania czasu, który po włączeniu będzie
równy 0:00. Po uruchomieniu układu można przejść do obsługi zegara.
Obsługa
Zegar został wyposażony w dwa przyciski, którymi możliwa jest zmiana jego parametrów. W czasie wyświetlania czasu tekst jest przewijany z zadaną prędkością - prędkość ta może być zmieniana w zakresie 50 ms...l s. Podany czas odnosi się do czasu wyświetlania jednej sekwencji świetlnej. Tak szeroki zakres zmian prędkości pozwala na indywidualne dobranie optymalnej wartości. Prędkość przewijania tekstu może być zwiększana poprzez naciśnięcie klawisza S2, a zmniejszana za pomocą klawisza Sl. Naciśnięcie i przytrzymanie klawisza powoduje ciągłą zmianę wybranego parametru tak, jak gdyby przycisk był przez cały czas naciskany i zwalniany.
W celu przejścia do trybu zmiany czasu należy klawisze Sl i S2 nacisnąć jednocześnie na czas około dwóch sekund. Po tym czasie wyświetlany tekst zostanie przewinięty do końca, aż do wygaszenia wyświetlacza. Następnie zostanie wyświetlona cyfra dziesiątek godzin, która będzie przewijana od prawej strony wyświetlacza, aż do całkowitego jej wyświetlenia. Zmiany wartości dokonuje się klawiszem S2 w zakresie 0...2. Aby zatwierdzić liczbę dziesiątek godzin i przejść do ustawienia jednostek godzin, należy nacisnąć klawisz Sl. Po tej czynności wyświetlany tekst zostanie przewinięty w lewo aż do ukazania się całej cyfry jednostek godzin. Zmiany wartości jednos-
PIN 1 3 10 7 8 C1 C2 C3 C4 C5
Rys. 3. Wewnętrzne połączenie diod w matrycy 5x7
Elektronika Praktyczna 5/2003
41
Zegar minimalisty
o-OD-o +
INOO
OO
ooooooo on
zsn
OOOOOOOOOO
OOOOOOOOD
isn
óoooooooo (81
o.
I
Rys. 4. Rozmieszczenie elementów na płytce zegara
tek godzin dokonuje się klawiszem S2. Jednostki godzin mogą być zmieniane w zakresie 0...9 -jeśli dziesiątki godzin są mniejsze od 2 - oraz w zakresie 0...3 - jeśli dziesiątki godzin są równe 2. Ograniczanie maksymalnej zmiany wartości jednostek godzin przyjęto, aby nie było możliwości wprowadzenia nieprawidłowej godziny, na przykład godziny 2 6. Po ustawieniu godzin można przejść do ustawiania minut. W tym celu należy nacisnąć klawisz Sl, a wyświetlany tekst zostanie przewinięty i zatrzyma się na dziesiątkach minut. Ustawienie dziesiątek minut wykonuje się klawiszem S2. Zakres regulacji jest stały i wynosi 0...5. Jeśli dziesiątki minut zostały prawidłowo ustawio-
ne, to należy nacisnąć Sl, a tekst zostanie przewinięty do ustawiania jednostek minut. Jednostki minut ustawia się klawiszem S2 w stałym zakresie 0...9. Jeżeli wszystkie cyfry czasu zostały wprowadzone, to należy nacisnąć klawisz Sl. Po tej czynności wyzerowane zostaną sekundy czasu i licznik odliczający czas (Tmrl), a następnie nastąpi uruchomienie tego licznika i czas będzie odliczany z nowymi wartościami.
Podczas programowania czasu jest jeszcze jedno zabezpieczenie przed wprowadzeniem błędnej godziny. Możliwość powstania tego błędu wynika z niezależnego ustawiania dziesiątek i jednostek godzin. Przykład błędnie wpisanej godziny: wyświetlany czas ma wartość 19:01, następnie zegar zostanie wprowadzony w tryb programowania i zmieniona zostanie tylko wartość dziesiątek godzin na wartość równą 2. W takiej sytuacji wyświetlana godzina byłaby następująca: 29:01. Aby zapobiec takiej sytuacji, procesor automatycznie kontroluje jednostki godzin i po zmianie wartości dziesiątek godzin z 1 na 2, automatycznie też zostanie zmniejszona wartość jednostek godziny do wartości maksymalnej równej 3 i zmiana tej wartości będzie możliwa tylko w zakresie 0...3. Przy ustawianiu minut problem ten nie występuje, gdyż przez cały czas ich wartość może być zmieniana w takim samym zakresie: dla dziesiątek minut w przedziale 0...5, a dla jednostek minut w przedziale 0...9.
WYKAZ ELEMENTÓW
Rezystory
Rl, R2: 47kQ R3...R9: Ó8Q Kondensatory
Cl, C2: 47^F/1ÓV
C3: lOOnF
C4: lOpF
C4a: trymer 10...40pF
C5: 30pF
Półprzewodniki
Dl: 1N4007
DPI: matryca LED 5x7 (LM-035
VRB lub TA07-11EWA)
US1: PIC16F628 zaprogramowany
US2: UDN2981A
US3: LM2931
Różne
CON1: ARK2(3,5mm)
Sl, S2: mikroprzełącznik
z przyciskiem h=10mm
Podstawka DIP18 - 2szt.
Po ustawieniu prędkości przewijania oraz aktualnego czasu zegar jest gotowy do pracy. Jeżeli podczas użytkowania odmierzany czas będzie znacznie odbiegał od rzeczywistego, to poprzez regulację trymerem C4a można doświadczalnie dostroić częstotliwość pracy generatora będącego wzorcem odliczanego czasu. 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/majO3.htm oraz na płycie CD-EP5/2003B w katalogu PCB.
42
Elektronika Praktyczna 5/2003
PROJEKTY
12-kanałowy regulator mocy sterowany sygnałem DMX5127
2
Opis dotyczy zestawu
regulatorów dużej mocy, które
mogą być wykorzystane
w dużych systemach
sterowania oświetleniem
scenicznym lub estradowym.
Co prawda do tej pory
w Elektronice Praktycznej
oraz w Elektronice dla
Wszystkich opublikowano kilka
opisów różnego rodzaju
regulatorów, lecz miały one
jedną podstawową wadę,
jeżeli chodzi o zastosowanie
w systemach oświetlenia
scenicznego - brak możliwości
sterowania z większej
odległości.
Rekomendacje: projekt
przeznaczony dla
użytkowników nowoczesnych
systemów sterowania
oświetleniem scenicznym
i dyskotekowym.
Opis układu
Uff... nareszcie po tej porcji historii i teorii możemy przystąpić do opisu, jak samodzielnie przygotować system sterowania oświetleniem. Na początek zajmiemy się wykonaniem modułu regulatorów mocy, które będą sterowane sygnałem DMX. I jeszcze jedna uwaga, którą kieruję głównie do "młodych tygrysów" elektroniki: urządzenie jest zasilane z sieci trójfazowej, gdzie napięcie międzyprzewodowe wynosi 400 V (obecnie 380 V, jednak po dostosowaniu do norm UE będzie miało wartość 400 V) oraz mogą płynąć znaczne prądy. Nie ma tu więc miejsca na beztroskę oraz jakąkolwiek prowizorkę. Dlatego teź proponuję sprawdzenie układu przy zasilaniu jednofazowym i riiewielkim obciążeniu, przykładowo 12x100 W, i dopiero gdy wszystko działa prawidłowo, można podłączyć zasilanie trójfazowe, nie zapominając o przewodzie ochronnym.
Układ elektryczny jest trywialnie prosty (rys. 4) i zbudowano go z użyciem ogólnodostępnych elementów:
1. Zasilacz jest typowy, z transformatorem typu TSZZ 2,2/005M, dającym po stronie wtórnej napię-
cie o wartości 9V i prądzie 0,24A. Napięcie jest prostowane przez prostownik mostkowy i podawane na stabilizator 5V. Na wyjściu stabilizatora włączono diodę LED, która sygnalizuje obecność napięcia 5V.
2. Detektor przejścia przez zero - są to trzy identyczne układy po jednym na fazę. W skład detektora wchodzi rezystor 56kLi/2W, który ogranicza prąd płynący przez diodę tiansoptora CNY-17 oraz dodatkową diodę LED połączoną równolegle do diody tiansoptora, lecz w kierunku przeciwnym (dioda ta przewodzi prąd w czasie zmiany kierunku napięcia, gdy dioda tiansoptora jest zablokowana) i ogranicza (w zależności od diody do 1,5...2V) występujące na niej napięcie zaporowe. Po zmianie kierunku napięcia role diod się odwracają. Dodatkowo, diody LED sygnalizują obecność napięcia trójfazowego. Impulsy z detektora podawane są na wejście PD3 procesora. Pracuje ono jako wejście przerwania procesora INT0 i reaguje na opadające zbocze sygnału z detektora, które powtarza się co 20 ms.
3. Układ sterujący pracą triaków zbudowano przy użyciu mikrokon-
Elektronika Praktyczna 5/2003
47
12-kanałowy regulator mocy sterowany sygnałem DMX512
ooooo Bloooo
U7OOOOOOOOOOOOOO
Bt> 000000000000
00
CHB9.1hO O-IB4.1I-O O-IBfl.ll-O O-IB1Ł1-O
U5 OOOOOOOOOOOOOO
n o o o o o o o o o o o o o
O-IBlŁlkł O-IB14.1I-O O-iBM I-O
U4 0OO00OOOOOOO
o
DOOOOOOOOOOOOO
O-IBB.1I-O O-IB9.1I-O O-IB1Ł1-O
DHX_dimmer 12 DftB-system Lublin ver.01.20Q2 Top Lauer
i! O ÓOT)Vl O O O O O O
Rys. 7. Rozmieszczenie elementów na płytce drukowanej
trolerów AVR firmy ATMEL typu AT90S4433. Jeden mikrokontroler steruje pracą czterech triaków zasilanych z jednej fazy. Mikrokontroler, który jest równocześnie odbiornikiem sygnału DMX, pracuje jako master, pozostałe dwa jako slave. 4. Dekoder adresowy informuje mikrokontroler, od którego miejsca w paczce DMX ma zacząć odbierać dwanaście kolejnych wartości kanałowych. Nastaw dokonujemy trzema nastawnikami kodowymi typu DEC/BCD (rys. 5), za pomocą których możemy wybrać dowolny adres. Na przykład, jeżeli ustawimy adres 001, to regulator będzie odbierał wartości kanałów DMX od 1...12, a gdy adres ten ustalimy przykładowo na 100, to będą to kanały 100...111. Jeżeli wiemy, że adres regulatora będzie zmieniany sporadycznie, możemy wówczas zastosować miniaturowe nastawniki kodowe wlutowane w płytkę drukowaną, jeżeli jednak adres będzie zmieniany często, wtedy praktyczniej wykorzystać nastaw-
niki przystosowane do mocowania na płycie czołowej. Dekoder ten również zawiera dwie diody LED, z których pierwsza wskazuje obecność sygnału DMX, a druga, że są sygnały przeznaczone dla kanałów o adresie zgodnym z ustawionym w regulatorze. Diody te najlepiej jest umieścić na płycie czołowej, ponieważ wyświetlają informacje na temat sygnału DMX.
5. Układ mocy (rys. 6) został wykonany z wykorzystaniem triaków typu BTA41-600B, które mogą przewodzić prąd o natężeniu do 40 A oraz posiadają strukturę odizolowaną od radiatora. Właściwość ta pozwala umieścić wszystkie triaki na wspólnym ra-diatorze, co ułatwia konstrukcję mechaniczną modułu. Bramki triaków są sterowane za pomocą optotriaków MOC 3020, które zapewniają galwaniczną izolację pomiędzy siecią a resztą układu.
6. Generator sygnału zerującego - zastosowano układ U 6 DS1813, który jest wspólny dla wszystkich procesorów.
7. Sygnał zegarowy o wartości 8MHz uzyskiwany jest z gotowego generatora kwarcowego. Podawany jest na wejście taktujące procesora U7 XTALl (wyprowadzenie 9), następnie z wyjścia XTAL2 U7 (wyprowadzenie 10) jest podawany na wejście drugiego procesora itd.
Sygnał DMX jest doprowadzony do wejścia odbiornika U8-75176 (układ ten może pracować również jako nadajnik), następnie z wyjścia (poziomy TTL) doprowadzony jest do procesora U7 (wyprowadzenie 2). Na schemacie umieszczono jeszcze jeden układ U9-75176, skonfigurowany do pracy jako nadajnik, który możemy wykorzystać, gdy zajdzie taka konieczność, jako repeater sygnału DMX. Procesor U7 pracuje jako master, a U5, U4 jako slave. Do łączności pomiędzy procesorem głównym a podrzędnymi wykorzystano interfejs SPI. Procesory mogą być zaprogramowane w układzie za pomocą złącza K9 - ISP Interface. Wyboru procesora, który ma być programowany, dokonujemy za po-
48
Elektronika Praktyczna 5/2003
12-kanałowy regulator mocy sterowany sygnałem DMX512
4h7
T
100n
:iN414S
DMX- ,
e
H .GND
2E-atyłan gniazdo Cłntroric*
16F84
17
ioon
u
Clocfc
1+
RAO YUU
RA1
RA2
RA3
RAOTDCKI
MCLR
OSC1/CLKIN
RB1 RB2
RB4
RB4
OSC2/CLKOUT RB7
vss
10
13
?GND
Rys. S. Schemat elektryczny interfejsu LPT^DMX5l2
9...12 do U4. Po przetworzeniu sygnałów przez procesor zostają wysterowane odpowiednie tiiaki.
Pulpit DMX512
Opisaliśmy moduł regulatorów mocy sterowanych sygnałem DMX512. Aby wypróbować go praktycznie, potrzebujemy urządzenia nastawczo-regulacyjnego. Opis wykonania takiego pulpitu zastanie przedstawiony w jednym z najbliższych numerów EP. Jednak niewielkim nakładem czasu, jak i kosztów możemy zbudować prosty interfejs LPT<->DMX512, którego schemat oraz oprogramowanie zostało ściągnięte z Internetu (rys. 8). Układ ten wraz z oprogramowaniem pozwoli nam na wszechstronne przetestowanie regulatora. Postać źródłowa programu dla mikiokontiolera PIC pracującego w interfejsie oraz program test64ch.exe (rys. 9) publikujemy na CD-EP5/2003B. Andrzej Biliński
mocą jumperów JP1..JP3. Jumper programowanego układu musi być założony, pozostałe dwa muszą być zdjęte. Po zaprogramowaniu procesorów należy z powrotem założyć wszystkie jumpery.
Procesor master wykonuje następujące zadania:
1. Odczytuje nastawy dekodera adresowego. Odczyt jest dokonywany cyklicznie, więc można nastawy dekodera zmieniać w trakcie pracy.
2. Jeżeli w paczce DMX występują adresy kanałów, które wskazuje dekoder, procesor odczytuje ich poszczególne wartości. Wartości kanału 1.. .4 przetwarza sam, 5...8 zostają przesłane przez interfejs SPI do procesora U5, a kanały Rys. 9. Widok okna programu i&sió4,&x&
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http:iiwww.ep.coni.pli ?pdfimajO3Jttm oraz na płycie CD-EP5/2003B w katalogu PCB.
Elektronika Praktyczna 5/2003
PODZESPOŁY
Z "psychologią tłumu" spotykamy się na co dzień w wielu sytuacjach. Wystarczy na przykład, aby rozjuszony czymś stadionowy kibic rzucił jakąś inwektywę w kierunku sąsiedniego sektora i już rozróba na pół miasta jest gotowa. Nieopatrznie wypowiedziane przez dziennikarza słowo o polityku powoduje natychmiastowe podchwycenie wątku przez jego kolegów, a w kilka dni później cały kraj "wiesza
psy" na biedaku, który notabene może być bogu ducha winien. Takie zachowania są chyba normalne, w każdym razie tłumaczy je jakoś socjologia.
Podobnie dzieje się w naszej branży. Na rynku funkcjonuje wiele podzespołów o zbliżonych cechach funkcjonalnych, a mimo to okazuje się, że zawsze znajdzie się taki, który będzie cieszył się szczególną popularnością wśród użytkowników. Mo-
że jest to efekt umiejętnej polityki marketingowej producentów i dystrybutorów, może mając do dyspozycji Internet, sami potrafimy sobie wylansować ten najlepszy, a przynajmniej najbardziej odpowiedni.
Przed kilkunastoma laty taką nagłą popularność osiągnął mikroprocesor Z80, detronizując intelow-skiego 8080. Wydawało się, że jego panowanie będzie długie i niezagrożone.
Zilog niemałym
rzeszom elektroników
kojarzy się chyba dość
dobrze, a to głównie
za sprawą kultowego
już mikroprocesora
jakim był Z80. Od
czasu, gdy osiągał
szczyty popularności,
minęło już prawie
20 lat. Czy to
wystarczy, żeby
o nim zapomnieć
rr?
Elektronika Praktyczna 5/2003
51
PODZESPOŁY
Rys. 1. Schemat blokowy mikrokontrolera &Z80F91
Tak jednak nie było. Konkurencja nie spała i wkrótce pojawiły się nowe rodziny mikrokontrolerów, z których MCS-51 stała się "numerem jeden". Do dziś nie mogę zrozumieć, jak można było w tak łatwy sposób oddać prymat. Mik-rokontrolery rozwijały się dość dynamicznie, a kolejnym progiem było wprowadzenie pamięci Flash. Fakt ten pozostawał przez jakiś czas jakby niezauważony przez ZiLOG-a. Może był to efekt polityki, być może był to po prostu dla tej firmy próg nieco za wysoki. Technologia została jednak po jakimś czasie opanowana i teraz owocuje wprowadzaniem licznych nowości. Czy będą to produkty, które zdobędą uznanie użytkowników, czy ZiLOG znowu powróci na szczyty? To wszystko powinno wyjaśnić się już wkrótce - czas w tej branży biegnie bardzo szybko.
Trochę o rodzinie
Zaanonsowana w listopadzie 2002 roku rodzina mikrokontrolerów eZBOAc-claimi dzisiaj jest już dostępna. Tworzą ją trzy układy: eZ80F91, eZ80F92 i eZ80F93. Jak leczenie bezpłodności często kończy się ciążą mnogą, tak początkowe kłopoty z pamięciami Flash spowodowały, że po ich opanowaniu Zi-LOG oferuje teraz 8-bitowy mikrokontroler z pamięcią tego typu o wielkości aż 256 kB. Tym razem strategia firmy jest dość przejrzysta. Pierwszy układ -
eZ80F91 - stanowi bardzo silne uderzenie, a to ze względu na rozbudowane peryferia. Następne: F92 i F93 są jego uproszczonymi odmianami.
Po co 8-bitowemu mikro-kontrolerowi 2 56 kB pamięci programu - mógłby ktoś zapytać, biorąc pod uwagę to, że aktualnym standardem jest 8, 16, 32, rzadko więcej niż 64 kB. Czyżby była to próba pokonania przez ZiLOG-a dwóch schodków naraz? Może przy okazji? Tak naprawdę mikrokontrolery eZSOAcclaim! (eZSOAc-claimi jest znakiem towarowym) zostały skonstruowane z myślą o bardzo poważnych zastosowaniach, np. model F91 ukierunkowano szczególnie na aplikacje internetowe, a tam faktycznie każdy kilobajt może być bardzo cenny. Pozostałe parametry również nie są często spotykane wśród 8-bitowców: zegar 50 MHz, zdolność adresowania liniowego do 16 MB, 24-bitowa arytmetyka stałoprzecinkowa, imponujące wyposażenie w wewnętrzne peryferia, w tym tzw. EMAC {Ethernet Me-
dia Access Coniroller) zapewniający współpracę z sieciami 10/100BaseT Ethernet (występuje tylko w układzie F91). Zafascynowanie pamięcią Flash spowodowało, że w Ac-claimach zastosowano taką pamięć nawet do celów konfiguracyjnych. Zazwyczaj służy do tego EEP-ROM, który, jakby na to nie patrzeć, cechuje się większą żywotnością. Przewidywanym zastosowaniem mikrokontrolerów eZBOAc-claimi mają być m.in. terminale internetowe współpracujące z różnorodnymi urządzeniami peryferyjnymi, stąd liczne interfejsy (chyba wszystkie możliwe), a nawet zegar czasu rzeczywistego stabilizowany typowym kwarcem 215 Hz. Pamięć SRAM (16 kB) o czasie dostępu 20 ns ma ułatwiać implementację sieciowych protokołów komunikacyjnych. Równolegle z mikrokontrolerami oferowane są narzędzia do tworzenia aplikacji: oprogramowanie użytkowe asembler, linker, debuger, symulator i kompilator AN-SI C zintegrowane w ZiLOG Developers Studio IDE, kompletny stos TCP/ IP, zestaw ewaluacyjny wraz z modułem etherneto-wym. Wydawać by się mogło, że Acclaimy od starego Z80 dzieli przepaść, a jednak ZiLOG nadal zachowuje zgodność w dół swoich nowych produktów z legendarnym pierwowzorem. Czy jest to przejaw megalomanii? Chyba nie. To raczej próba docenienia olbrzymiej pracy, jaką kiedyś wykonali konstrukto-
rzy systemów mikroprocesorowych. Swego czasu powstało naprawdę bardzo dużo wartościowych aplikacji bazujących na Z80. Tworząc rodzinę Acclaim, ZiLOG postanowił nie ograniczać się tylko do swoich pomysłów. Specyficzny rodzaj gwintu, udziwniony kabel połączeniowy czy niestandardowy interfejs zgubiły już niejednego producenta. Otwarcie na świat przejawia się tym razem możliwością ustawienia zewnętrznej magistrali w tryb pracy eZ80, Z80, Intela i Motoroli. Dla lepszego zorientowania się, jak to wszystko jest poukładane w malutkiej krzemowej płytce (proszę nie brać tych słów zbyt dosłownie), na rys. 1 przedstawiono budowę wewnętrzną mikrokontrolerów eZSOAcclaim! W tab. 1 zestawiono natomiast ich najważniejsze parametry.
Bierzemy pod lupę eZ80F91Acclaim!
Mikrokontrolery Acclaim są rozwiniętymi wersjami procesorów eZ80. Po dołożeniu pamięci Flash stały się całkowicie samowystarczalnymi mikrokontrolerami, zachowując sporą jak na układy 8-bitowe moc obliczeniową. Wiemy już, że mogą pracować również w sposób identyczny jak Z80. Dziedziczą zresztą po nim pewne elementy architektury np. podwójny, przełączany bank rejestrów. Mikrokontrolery eZ8 0Acclaim! są zasilane napięciem 3,0...3,6 V, lecz ich wejścia tolerują połączenia z układami 5-woltowymi.
Tab. 1. Zestawienie parametrów mikrokontrolerów eZSOAcelaim!
UKfcd Parrieaa MAC Zegar Liczba portćw ogflhego przeanaczeria Liczniki/ CtUJOAB Zakres terrpe-ratir
Flash SRAM
eZ80F91AZ050SC 256kBt512B 16kB + SOMHz 32 4 144-nóżkowa 0-70-C
eZ80F91AZ050HC 256kBt512B 16kB + SOMHz 32 4 144-nóżkowa 0-105DC
eZ80F92AZ020SC 128kB+256B 8kB - 20MHz 24 6 100-nóżko wa 0-70-C
eZ80F92AZ020HC 128kB+256B 8kB - 20MHz 24 6 100-nóżko wa 0-105DC
eZ80F93AZ020SC 64kB+256B 4kB - 20MHz 24 6 100-nóżkowa 0-70-C
eZ80F93AZ020HC 64kB+256B 4kB - 20MHz 24 6 100-nóżko wa 0-105DC
52
Elektronika Praktyczna 5/2003
PODZESPOŁY
Wewnętrzna pamięć Flash może być programowana bez stosowania dodatkowych napięć zasilających. Jak podaje producent, wytrzymuje ona 20000 cykli zapisu, a dane przechowuje bezpiecznie w temperaturze pokojowej przez 100 lat. Niestety nie wiadomo, jak bardzo znaczący jest wpływ temperatury na ten parametr, a trzeba wiedzieć, że wersje HC układu mogą pracować w temperaturze do 105C.
Przyjrzyjmy się bliżej blokom funkcjonalnym zawartym w strukturze mik-rokontrolera:
CPU - taktowanie do 50 MHz, jednostka centralna identyczna jak w eZ80, wyposażona w mechanizm przetwarzania potokowego. Zachowuje zgodność listy rozkazów z Z80 i Z180. Rozkazy są wykonywane w jednym cyklu. Posiada podwójny wskaźnik stosu: 16-bitowy i 24-bitowy. 24-bitowe są również rejestry i ALU (Arithmetic Logic Unit). Obsługuje przerwania niemaskowalne - NMI (Nonmaskable Interrupt) i 128 wektorów przerwań maskowalnych.
pamięć - Flash 256 kB (pamięć programu) + 256 B (pamięć konfiguracyjna), 8 kB pamięci danych SRAM.
porty I/O - 32 porty ogólnego przeznaczenia indywidualnie konfigurowa-ne. Mogą pracować w trybie wejściowym, wyjściowym, open drain, open source, wejścia zgłaszania przerwań wyzwalanych poziomem wysokim lub niskim, wejścia zgłaszania przerwań wyzwalanych zboczem narastającym, opadającym lub obydwoma jednocześnie, 10 wyjść można obciążać prądem do 10 mA, 16 portów ma wejścia Schmitta.
EMAC - specjalizowany blok wykorzystywany do realizacji interfejsu ether-netowego (Ethernet Media Access ControIIer). Zawiera nadajnik, odbiornik, układ
zerowania, zegar centralny. Wbudowany arbiter realizuje komunikację pomiędzy siecią a CPU poprzez wewnętrzny układ DMA (Direct Memory Access), własną kolejkę FIFO (First In - First Out) oraz system przerwań. EMAC jest widoczny dla CPU poprzez zestaw rejestrów.
IrDA - specjalizowany układ asynchronicznej transmisji szeregowej do realizacji bezprzewodowych połączeń wykorzystujących podczerwień. Wewnętrzny enkoder/dekoder zapewnia realizację warstwy fizycznej IrDA, jest kompatybilny ze specyfikacją v 1.4. Interfejs zapewnia łączność z prędkościami od 9600 b/s do 115,2 kb/s (prędkości powyżej 9600 b/s choć możliwe, nie są przewidziane w specyfikacji). Układ enkodera/ dekodera zapewnia poprawne zmodulowanie sygnału cyfrowego, niezbędne do wysterowania nadajników podczerwieni oraz prawidłowo demoduluje odebrany sygnał.
UART - (Universal Asyn-chronous Receiver/Trans-mitter) w rzeczywistości są to dwa niezależne układy, mogące pracować z własnymi prędkościami transmisji. Do buforowania danych służą 16-bitowe kolejki FIFO. Zapewniają prawidłowe formowanie 5-, 6-, 7-, 8-i 9-bitowych ramek. Dbają
0 poprawność nadania, a przede wszystkim odbioru. Wyposażone są w bloki wykorzystywane do prowadzenia sprzętowej kontroli przepływu danych w modemach. UART umożliwia prowadzenie transmisji z szybkością do 115,2 kb/s.
I2C - to popularny interfejs (Inter-Integrated Circuit) wykorzystywany najczęściej do realizacji transmisji pomiędzy różnymi blokami systemu. W Ac-claimach może pracować w trybach: Master Trans-mit, Master Receive, SIave Transmit i SIave Receive
1 posiada własny zegar. Li-
Elektronika Praktyczna 5/2003
53
PODZESPOŁY
Rys. 2. Schemat blokowy zestawu eZ80F91 Module
nie SDA i SCL powinny być jak zwykle podciągane do "plusa" zewnętrznymi opornikami. Interfejs może pracować w trybie standardowym (do 100 kb/s) lub szybkim (do 400 kb/s).
SPI - (Serial Peńpheńal Interface) interfejs, którego przeznaczenie jest podobne do I2C. Umożliwia komunikację szeregową pomiędzy procesorem i urządzeniami peryferyjnymi wyposażonymi w podobny układ. Zapewnia synchroniczną łączność dupleksową, wykorzystując 4-przewodowe połączenia. Interfejs może być konfigurowany jako master lub slave. Przebieg zegarowy jest wytwarzany we własnym generatorze mastera z programowaną częstotliwością.
Liczniki/timery - eZ80F91 jest wyposażony w cztery 16-bitowe timery/liczniki z preskalerami. Cechuje je możliwość wyboru źródła sygnału zegarowego. Mogą pracować w trybach: licznika zdarzeń, przechwytywa-nia, porównywania, modulatora PWM z możliwością indywidualnego skonfigurowania czterech wyjść. Wszystkie liczniki/timery pracują całkowicie niezależnie, nie mają wspólnych rejestrów roboczych i sterujących, nie dzielą pomiędzy sobą przerwań. Priorytety przerwań każdego licz-nika/timera mogą być indywidualnie ustawiane. Układy mogą być skonfigurowane do pracy jedno-przebiegowej lub ciągłej.
Watchdog - specjalny ti-mer czuwający nad popra-
wnością wykonywania programu. Posiada cztery stopnie podziału częstotliwości oscylatora: 218, 222, 225 i 227. Jako źródło przebiegu zegarowego może być wybrany wewnętrzny oscyla-tor RC, zegar systemowy mikrokontrolera lub zegar czasu rzeczywistego z wewnętrznym kwarcem 32 kHz. Watchdog może generować sygnał RESET lub zgłaszać nie masko walne przerwanie (NMI).
Zegar RTC - wewnętrzny, autonomiczny zegar czasu rzeczywistego RTC (Real Time Clock). Zlicza sekundy, minuty, godziny (w systemie 24-godzin-nym), dni miesiąca, dni tygodnia, lata i wiek. Może być podtrzymywany zewnętrzną baterią. Układ może być synchronizowa-ny oscylatorem z wewnętrznym rezonatorem kwarcowym 32768 Hz, a także częstotliwością sieci energetycznej 50/60 Hz.
Oscylator wewnętrzny -układ taktujący pracę CPU i pozostałych bloków mikrokontrolera. Współpracuje z owertonowym rezonatorem kwarcowym wykorzystującym rezonans równoległy. Można również doprowadzać zewnętrzny przebieg zegarowy. Dołączane kondensatory nie powinny mieć pojemności większej niż 4 pF, co wymaga dość starannego opracowania obwodu drukowanego.
PLL - przebieg zegarowy podawany do systemu może pochodzić z wyjścia układu pętli fazowej PLL (Phase-Locked Loop). Częstotliwość oscylatora nie powinna być wówczas większa niż lOMHz. Pętla wymaga dołączenia zewnętrznego filtru RLC.
ZDI - {ZiLOG Debug Interface) to specjalny interfejs przeznaczony do prac uruchomieniowych. Został zaprojektowany w celu uzyskania maksymalnych możliwości współpracy systemu uruchamianego z emulatorem In-Circuit.
Dzięki niemu można podglądać i zmieniać zasoby mikrokontrolera (rejestry, pamięć itp.), uruchamiać program krokowo lub w trybie ciągłym z pułapkami. Do połączenia z emulatorem wymagane jest jedynie 6-stykowe gniazdo. Wykorzystując ZDI, można debugować programy napisane w języku C lub asemblerze, używając do tego ZiLOG Deve-loper Studio II (ZDSII).
JTAG - interfejs JTAG podobnie jak ZDI jest elementem składowym tzw. On-Chip Instrumentation (OCI). Jest on zgodny ze specyfikacją IEEE 1149.1. Jego przeznaczenie jest podobne do ZDI, lecz jest standardem światowym w przeciwieństwie do ZDI, który jest opracowaniem własnym ZiLOG-a.
Nie tylko mikrokontrolery
Firma ZiLOG promuje swoje nowe mikrokontrolery m.in. poprzez oferowanie klientom gotowych modułów, np.: internetowych - eZ80F92 Ethernet Module i eZ80F92 Flash Module. Jeden z nich był wykorzystywany w ZiLOG-owym webserwerze opisywanym w poprzednim numerze EP. Moduły te mogą być stosowane w aplikacjach wymagających dołączenia do sieci Internet/Intranet. Czas przeznaczony na opracowywanie odpowiedniego interfejsu jest wówczas ograniczony do minimum. Moduły bazują na mikrokont-rolerze eZ80F92. Podłączenie do sieci jest możliwe dzięki umieszczeniu na płytce typowego gniazda RJ45. eZ80F92 Ethernet Module posiada 1 MB własnej pamięci Flash i 512kB pamięci SRAM, a także 24 porty ogólnego przeznaczenia. Podtrzymanie zegara RTC zapewnia kondensator GoIdCap. W module znalazło się również miejsce na trans-ceiver IrDA i interfejs I2C i 2 UART-y. Podobne
parametry z niewielkimi zmianami posiada ez80F91 Module (rys. 2), w którym, jak wynika z nazwy, zastosowano mikro kontroler eZ80F91.
Najistotniejszym elementem promocji rodziny eZSOAcclaiml jest chyba jednak Development Kit, będący kompletnym zestawem uruchomieniowym, zawierającym oprócz płytki ewaluacyjnej także zasilacz sieciowy, ZPAK II Debug Interface Tool oraz bogatą dokumentację techniczną na CD-ROM-ie. Przyłączając do zestawu moduł ethernetowy, można zbudować np. prosty web-serwer. Wraz z zestawem użytkownik dostaje narzędzia software'owe zawierające m.in. procedury obsługi stosu TCP/IP.
Przyznam, że nie pisałem tego artykułu z myślą o wywołaniu burzy wśród projektantów systemów mikroprocesorowych i z chęci wylansowania nowego mikrokontrolera. Sam odszedłem od Zilogów kilka dobrych lat temu i jak na razie raczej nic nie wskazuje na to, bym do nich powrócił. Jednakże muszę przyznać zupełnie obiektywnie, że eZSOAcclaiml robi wrażenie. Stratedzy ZiLOG-a chyba doszli do wniosku, że raczej nie mają wielkich szans w nawróceniu takich jak ja i przygarnięciu ich do swojej rodziny, jeśli będą próbować tego tylko na płaszczyźnie małych mikro kont roi erko w wkładanych do timera dla jajek na twardo. Opracowali więc 8-bitowy, ale dość potężny mikrokontroler do zastosowań dużo poważniejszych. Z racji starej sympatii do słynnego "zeta", życzę sukcesu i wierzę, że jest możliwy. Jarosław Doliński, AVT jaroslaw.dolinski@ep.com.pl
Dodatkowe informacje
Więcej informacji można znaleźć na stronie http://www.zilog.com/ ez80acclaim/.
54
Elektronika Praktyczna 5/2003
PROJEKTY
Yampp-3/USB, część 2
Nowe wcielenie popularnego odtwarzacza MP3
W drugiej części artykułu
prezentujemy sposób obsługi
interfejsu USB oraz
oprogramowania YamppLink,
które służy do "przegrywania"
zawańości playlist do pamięci
Yamppa.
Rekomendacje: nowoczesny
odtwarzacz dla fanów
empetrójkowych nagrań,
doskonale dostosowany do
współpracy z programowymi
odtwarzaczami stosowanymi
w PC.
Instalacja sterowników USB oraz programu YamppLink
Nowy system plików YADL oraz sposób przesyłania plików do yam-ppa-3/USB wymuszają zainstalowanie w komputerze PC odpowiedniego oprogramowania. Składa się ono z dwóch niezależnych części: sterownika dla wirtualnego portu COM, dostarczonego przez producenta układu interfejsu USB (fumę FTDI), oraz właściwego oprogramowania służącego do zarządzania plikami, playlistami oraz do komunikacji poprzez ten wirtualny port. Firma FTDI udostępnia za darmo sterowniki do swoich produktów, i to w kilku wersjach przeznaczonych dla różnych systemów operacyjnych. W naszym przypadku będą potrzebne sterowniki VCP, bez obsługi Pług and Play, przeznaczone dla systemu Windows. Sterowniki te są dostępne pod adresem http:/ / www. ftdichip.com/FTDriver.htm, pod nazwą N8002101.zip lub na CD-EP12/2002B.
W przypadku ściągnięcia sterowników z Internetu musimy je rozpakować do jakiegoś tymczasowego katalogu. Następnie podłączamy yamppa do komputera za
pomocą standardowego kabla USB mającego z jednej strony wtyk typu "A", a z drugiej typu "B". Nie musimy przy tym podłączać żadnego dodatkowego zasilania do yamppa - będzie on zasilany z komputera poprzez złącze USB. Po chwili powinniśmy zobaczyć okno z informacją o wykryciu nowego urządzenia USB<->Seriał. Klikamy dwa razy Dalej, zaznaczamy "Określona Lokalizacja" i wybieramy katalog, do którego r o zp ako w aliśmy s terów niki. Następnie postępujemy zgodnie z instrukcjami ukazującymi się na ekranie. Jeżeli komputer nie wy-kiyje nowego urządzenia, należy dokładnie sprawdzić jakość lutowania w obrębie interfejsu USB na płytce yamppa. Po zakończeniu instalacji należy sprawdzić w Menedżerze Urządzeń, czy pojawił się dodatkowy port COM, nazwany USB Serial Port, i jaką nadano mu nazwę (COMx).
Jeśli wszystko jest w porządku, to sterowniki USB mamy z głowy, i pozostaje zainstalowanie programu yamppLink służącego do komunikacji z yamppem. Można go znaleźć w Internecie pod adresem http://www.yampp.com/yl oraz na CD-EP12/2003B. W tym celu należy program umieszczony na CD skopiować (zawartość katalogu yamppLink) do dowolnego katalogu na dysku twardym.
Elektronika Praktyczna 1/2003
45
Yampp-3/USB
Przygotowanie yamppa do pracy
Jeśli mamy już zainstalowane potrzebne oprogramowanie, możemy przystąpić do pierwszego uruchomienia yamppa. Najpierw trzeba wgrać właściwe oprogramowanie. Do tego celu wykorzystamy bootloader (wgrany wcześniej do procesora yamppa), złącze USB oraz aplikację yamppLink. Do wgrania oprogramowania nie jest konieczne podłączenie dysku twardego. Nie jest też wymagane dodatkowe zasilanie - yampp jest zasilany z portu USB. Najpierw uruchamiamy yamppLinka i w menu Options->Preferences wpisujemy nazwę portu COM, którą odczytaliśmy podczas instalacji sterowników FTDI. Następnie uruchamiamy bootloader poprzez naciśnięcie na klawiaturze yamppa klawisza STOP i przytrzymując go, podłączamy kabel USB do yamppa lub (jeśli jest on już podłączony) naciskamy przycisk RE-SET. Jeśli nie mamy podłączonej klawiatury lokalnej, to za pomocą dodatkowego przewodu łączymy wyprowadzenie numer 15 złącza J2 do masy. W ten sposób uaktywniamy bootloader - można puścić klawisz STOP lub usunąć zworę. Po kilku sekundach, potrzebnych na enumerację urządzeń USB, możemy wybrać z menu programu Actions->Update Fir-mware, a jako plik do załadowania wybrać yampp3_usb.bin. Jeśli wszystko przebiegnie prawidłowo, to po kilku sekundach mamy odtwarzacz gotowy do pracy. Odłączamy kabel USB, podłączamy dysk, wyświetlacz i zasilanie. Jeśli nie posiadamy wyświetlacza, to będzie nam potrzebny jakiś program terminalowy oraz kabelek RS232 podłączony do złącza J3. Terminal musi być ustawiony na prędkość 115200 bodów, 1 bit stopu i brak parzystości. Po włączeniu zasilania powinniśmy zobaczyć informację, że znaleziono nowy dysk oraz pytanie o pozwolenie na formatowanie dysku. Oczywiście musimy się na to zgodzić poprzez dwukrotne wciśnięcie przycisku PLAY lub wysłanie dwóch znaków "g" z terminala. Po poprawnym zakończeniu formatowania można podłączyć kabel USB i w programie yamp-pLink wybrać opcję Connect. Po
chwili potrzebnej na inicjalizację dysku możemy rozpocząć ładowanie plików MP3 do yamppa. Możemy dodawać pojedyncze pliki lub całe playlisty wygenerowane programem Winamp. Po zakończeniu ładowania plików klikamy Disconnect, w wyniku czego yampp zostanie wyzerowany i po naciśnięciu klawisza PLAY powinien rozpocząć odtwarzanie.
Opisałem wariant optymistyczny, ale jak to często w życiu bywa, możemy natknąć się na różnorakie problemy. Co wtedy począć? Nie popadajmy w panikę, bo z pomocą przyjdzie nam...
...program testowy
Możemy go załadować do yamppa dwoma sposobami. Jeśli próba ładowania głównego oprogramowania przebiegła pomyślnie, a problemy wystąpiły później, możemy załadować program testowy tak samo jak główną aplikację - poprzez złącze USB, wybierając do załadowania plik yampp3u_test.bin. Możemy przy tym spróbować pominąć krok aktywacji bootloadera. Jego aktywacja jest wymagana jedynie w przypadku niezaładowania oprogramowania głównego lub błędu powstałego w trakcie jego ładowania niepoz walając ego na normalne uruchomienie yamppa. Jeśli problem wystąpił już w trakcie próby ładowania przez USB, to najpierw musimy jeszcze raz sprawdzić wirtualny port COM w menedżerze urządzeń systemu Windows
(po dołączeniu yamppa) oraz zgodność jego nazwy z ustawieniami w programie yamppLink. Jeśli tu wszystko jest w porządku, a dalej nie działa interfejs USB, to musimy ponownie skorzystać z programowania poprzez interfejs SPI - czyli złącze Jl. Uruchamiamy program yapp lub inny obsługujący programator ISP i ładujemy do pamięci procesora plik yampp3u_testboot.hex. Jest to połączenie programu testowego z bootloaderem, ponieważ załadowanie samego programu testowego poprzez SPI spowodowałoby usunięcie bootloadera z pamięci procesora. Następnie musimy podłączyć kabel terminala RS232 do złącza J3, na komputerze uruchomić program terminala z parametrami 115200,n,8,1 i załączyć zasilanie yamppa. W oknie terminala powinien pojawić się tekst powitalny. Jeśli nic się nie pojawi, musimy sprawdzić kabel RS232, połączenia między procesorem a układem IC4, a jeśli wszystko jest OK, to dodatkowo zasilanie i oscylator układu VSl001 oraz napięcie na 42 nóżce procesora (powinno być bliskie 5 V). Jeśli zobaczymy tekst powitalny, to z klawiatury terminala wysyłamy znak "?", żeby zobaczyć spis komend programu testowego. Testy o numerach od 0 do 2 dotyczą układu VSl001. Negatywny wynik któregokolwiek z nich oznacza problemy z komunikacją procesora z układem VSl001. Testy od 3 do 6 również testują VSl001, lecz
Rys. 3. Rozmieszczenie elementów na płytce drukowanej
46
Elektronika Praktyczna 1/2003
Yampp-3/USB
ich wynik powinien być słyszalny na wyjściu audio. Jeśli którykolwiek test YSlOOl nie wypadł pomyślnie, należy sprawdzić montaż dekodera oraz układ 74LVC245. Jak wynika z praktyki, 90% wszelkich problemów z uruchomieniem yamppa wynika ze złej jakości lutów lub zwarć pomiędzy nóżkami układów scalonych spowodowanych przegrzaniem cyny podczas lutowania.
Następnie uruchamiamy test numer 8, czyli test pamięci RAM. Jeśli otrzymamy wynik negatywny, to w znalezieniu przyczyny pomogą nam testy numer 9 i "a", które powodują wysyłanie na kolejne linie magistrali danych oraz adresów "biegnącej" jedynki logicznej, ułatwiającej sprawdzenie magistral za pomocą oscyloskopu. Test numer 7 sprawdza poprawność pracy interfejsu ATA, a w wyniku jego działania powinniśmy zobaczyć nazwę i pojemność podłączonego dysku twardego oraz heksadecymalny zrzut pierwszego sektora dysku. Pod literą "b" mamy test interfejsu USB. Żeby go wykonać, musimy podłączyć najpierw kabel USB oraz uruchomić drugą kopię terminala na komputerze. Terminal ten powinien być skonfigurowany na połączenie przez wirtualny port COM utworzony przez sterowniki FTDI. Pozostałe parametry transmisji są nieistotne. Teraz w pierwszym oknie terminala uruchamiamy test USB. W obu oknach terminali powinien się pojawić tekst USB <-> Serial link up Enter some characters. Press ESC to end test. Następnie wpisujemy dowolne znaki w jednym z okien terminali, które powinny się pojawić w drugim. Test kończymy, naciskając klawisz ESC, przy aktywnym dowolnym oknie terminala. Jeśli coś nie działa, to sprawdzamy według schematu połączenia między procesorem a układami IC8, ICll oraz elementy współpracujące z ICll. Kolejnym testem jest test klawiatury lokalnej, który podaje aktualny stan klawiszy. Może być również wykorzystany do sprawdzenia zwarć na magistrali danych. Kolejny z testów pozwala na sprawdzenie działania odbiornika podczerwieni oraz pilota zdalnego sterowania. Po uruchomieniu tego
testu należy nacisnąć kilkakrotnie dowolny klawisz na pilocie, aby program mógł rozpoznać ustawienia transmisji. Ostatnie dwa testy umieszczone pod klawiszami "+" i "-" służą do przeglądania zawartości twardego dysku. Jeśli uporamy się już ze wszystkimi problemami, podłączamy kabel USB, uruchamiamy bootloader poprzez wciśnięcie klawisza "e", po czym ładujemy główne oprogramowanie za pomocą programu yamppLink.
Możliwości i obsługa programu yamppLink
Program yamppLink (rys. 5) został opracowany specjalnie dla odtwarzaczy yampp wyposażonych w interfejs USB. Pozwala on na łatwe zarządzanie zawartością dysku yamppa oraz zajmuje się przygotowaniem i transmisją danych poprzez łącze USB.
Po pierwszym uruchomieniu programu musimy ustawić kilka parametrów pracy programu. W tym celu z menu Opńons wybieramy Preferences. Jedną opcję już poznaliśmy przy okazji wgrywania właściwego oprogramowania - czyli ustawienie numeru portu COM. Następnie musimy podać ścieżkę dostępu do katalogu, do którego yamppLink będzie ściągał utwory z dysku yamppa - w celu ich archiwizacji lub odtworzenia na komputerze (pole Path to MP3 Storage...).
Następnie w polu Eile Naming Priority/Seąuence wpisujemy kolejność, w jakiej yamppLink będzie szukał danych o wykonawcy oraz tytule każdego ładowanego utworu. Dane te mogą być pobierane na trzy sposoby: mogą pochodzić z nazwy pliku, która musi zawierać znak "-" i której fragment przed myślnikiem jest traktowany jako nazwa wykonawcy, a po myślniku jako tytuł utworu lub mogą pochodzić z tak zwanych MP3 Tagów, czyli specjalnych danych dołączonych na końcu każdego utworu w trakcie jego tworzenia. Tagi mogą występować w wersji "vi" lub "v2'\ Sekwencja szukania nazwy może się składać maksymalnie z trzech cyfr, w zakresie od "0" do "2". Cyfrze "0" przyporządkowane jest pobieranie danych z nazwy pliku, cyfrze "1" pobieranie danych z tagów vi, a cyfrze "2" - pobieranie danych z tagów v2. Przykładowo, wpisanie w tym
LockMł-------------
F LodrflJM F Łm*B*2 r Bm* L*Bt 01 P
BwiLocfcBJMł
-Funt------------
I- CKSELO r CK5EL1 P CKSEL2 r BODŁN I* BODIEVEL F BOOTRST
Rys. 4. Konfiguracja bitów specjalnych podczas programowania mikrokontrolera
polu tylko cyfty "0" powoduje, że program będzie sprawdzał tylko nazwy plików, a wpisanie sekwencji "210" spowoduje, że yamppLink najpierw sprawdzi, czy dany plik posiada tag w wersji 2, a jeśli nie posiada, to następnie zostanie sprawdzony tag w wersji 1, a jeśli i tego nie będzie, to spróbuje pobierać dane z nazwy pliku. Pole EE-Prom Start Address jest nieistotne dla yamppa-3/usb. Jeśli chcemy, żeby nazwa wykonawcy i tytuł utworu były wyświetlane na wyświetlaczu yamppa dużymi literami, to możemy zaznaczyć pole Auto Upcase Artist and Title in Songbase Entries. Pamiętajmy, że ta opcja zadziała tylko podczas dodawania nowych utworów. Ostatnia opcja pozwala na automatyczne sprawdzanie nowych wersji programu dostępnych w Internecie. Po ustawieniu wszystkich wymaganych opcji kli-kamy "OK".
Połączenie z yamppem i transfer plików
Wyróżniamy dwa stany, w jakich może się znajdować yamppLink. Pierwszym z nich jest stan Disconnected - czyli rozłączony -w którym jedyną możliwą funkcją jest załadowanie do yamppa nowego oprogramowania systemowego (i tylko w tym stanie możemy to zrobić). Żeby przejść do drugiego stanu, należy z menu wybrać yampp -> Connect lub kliknąć na pierwszą ikonę od lewej na pasku ikon. W tym momencie yamppLink rozpoczyna komunikację z podłączonym przez port USB yamppem,
Elektronika Praktyczna 1/2003
47
Yampp-3/USB
przerywając ewentualne odtwarzanie i pobierając informacje o dysku, playlistach i bazie danych
0 utworach. Po zainicjowaniu połączenia, w oknie Playlists wyświetlane są nazwy wszystkich aktualnie załadowanych playlist, liczba utworów, jaka jest na każdej z nich oraz łączny czas trwania wszystkich utworów z danej play-listy. W oknie Artist/Band wyświetlane są nazwi ska (nazwy) wykonawców wszystkich utworów znajdujących się na dysku yam-ppa oraz liczba i łączny czas trwania wszystkich utworów danego wykonawcy. W oknie Tracks są wyświetlane informacje o każdym utworze znajdującym się na dysku, czyli: wykonawca, tytuł, długość, częstotliwość próbkowania oraz - w kolumnie Ref - liczba playlist, w których znajduje się odnośnik do danego utworu. Po lewej stronie, przy każdym utworze znajduje się ikonka oznaczająca status danego utworu. I tak, zielony znak "V" oznacza załadowany utwór, który ma odnośnik w jakiejś playliście, czarny krzyżyk oznacza załadowany utwór, do którego nie ma odnośnika w żadnej playliście - określany mianem Orphaned song, potrójna kolorowa strzałka oznacza utwór oczekujący na załadowanie do yamppa, a pojedyncza niebieska strzałka oznacza utwór, który jest właśnie ładowany na dysk yamppa. Na dole okna widoczne są dwa paski postępu. Pierwszy pokazuje postęp w ładowaniu jednego utworu, a drugi - ogólny postęp w ładowaniu wszystkich nowo dodanych plików.
Ładowanie utworów może być wykonane dwoma sposobami. Możemy dodawać przygotowane wcześniej playlisty w formacie m3u - czyli takim jaki wykorzystuje popularny Winamp lub dodawać pojedyncze utwory mp3, jednakże utwory te nie będą występowały na żadnej znajdującej się na dysku playliście, oprócz automatycznie generowanej przez yamppLinka playlisty TOTAL zawierającej wszystkie utwory znajdujące się na dysku, posortowane w porządku alfabetycznym według tytułu. W celu dodania plików
1 playlist możemy wykorzystać menu File lub lepiej - sposób "przeciągnij i upuść" - przeciąga-
jąc po prostu myszą dany plik do okna yamppLinka. Po dodaniu nowej playlisty rozpoczyna się proces sprawdzania danych o utworach, i w przypadku wystąpienia błędu generowany jest raport o przyczynach powstania błędu. Następnie rozpoczyna się ładowanie kolejnych utworów na dysk yamppa. W trakcie trwania ładowania możemy kontynuować dodawanie nowych utworów bądź playlist.
Po zakończeniu transmisji wszystkich plików, przed odłączeniem kabla USB, należy pozwolić yamppLinkowi na prawidłowe zakończenie sesji, poprzez wybranie opcji Disconnect.
Kasowanie playlist oraz zbędnych utworów
Żeby usunąć playlistę z dysku yamppa, należy ją zaznaczyć, a następnie kliknąć na ikonę z symbolem fioletowych nożyczek. Można też zaznaczyć jednocześnie kilka playlist do usunięcia, przytrzymując klawisz Control podczas zaznaczania. W ten sposób usuwamy tylko playlisty, pozostawiając na dysku yamppa wszystkie powiązane z nimi utwory. Jeśli dany utwór nie jest już powiązany z żadną playlistą, zostaje zaznaczony jako Orphaned i ma w polu Ref wartość "0". Jeśli chcemy zwolnić miejsce na dysku, możemy wykasować takie utwory, kilkając ikonę z symbolem żółtych nożyczek. Wówczas wszystkie pliki zaznaczone jako Orphaned zostają usunięte z dysku yamppa. Niestety, nie ma możliwości pojedynczego kasowania wybranych plików.
Edycja tytułów i nazw wykonawców
YamppLink umożliwia edycję nazw utworów. W tym celu w oknie Tracks należy kliknąć prawym klawiszem myszy na danym utworze oraz wybrać z menu kontekstowego pozycję Edit Artist/ Title. W ten sposób możemy zmieniać nazwy utworów już załadowanych na dysk yamppa. Dodatkowo z menu kontekstowego możemy wyświetlić informacje o danym utworze, zawarte w bazie danych utworów oraz polecić odtworzenie danego utworu przez komputer PC.
Funkcje dodatkowe
Menu Actions programu yam-ppLink umożliwia dostęp do kilku dodatkowych funkcji. Opiszę tylko kilka z nich. Funkcja Look into Logfile pozwala podejrzeć historię wykonywanych operacji. Jeśli w oknie Tracks zaznaczymy jeden lub kilka plików, to funkcja Storę selected Track(s) to Disk pozwala na ściągnięcie tych utworów z dysku yamppa do komputera PC.
Funkcja Wipe yampp Disk jest równoznaczna z szybkim formatowaniem dysku yamppa, więc należy zachować ostrożność, ponieważ cała zawartość dysku yamppa zostanie bezpowrotnie utracona po użyciu tej funkcji. Na szczęście yamppLink wymaga potwierdzenia wykonania tej operacji, wyświetlając stosowne ostrzeżenie.
Dump Data Section pozwala na zrzut zawartości bootsectora, bazy danych utworów oraz FAT-u do pliku tekstowego, umożliwiając kontrolę i analizę tych danych, co może być przydatne dla bardziej dociekliwych użytkowników yamppa.
Funkcja Write arbitrary data from file to EEPROM pozwala na zapisanie do pamięci EEPROM procesora Atmegal61 dowolnych danych pobranych z pliku. Zastosowanie tej funkcji opisane będzie w części poświęconej oprogramowaniu systemowemu yamppa.
Funkcje Write oraz Disable EEPROM Logo działają tylko wówczas, gdy do yamppa podłączymy graficzny wyświetlacz LCD - co umożliwia najnowsze oprogramowanie systemowe yamppa.
Oprogramowanie systemowe yamppa-3/USB
Oprogramowanie to zostało podzielone na dwie części (warstwy). Pierwszą z nich tworzą procedury obsługi większości urządzeń napisane w asemblerze, które można znaleźć w katalogu yampp3lib. Poszczególne pliki ASM odpowiedzialne są za obsługę konkretnych urządzeń, takich jak dysk, wyświetlacz LCD czy interfejs USB. Ponieważ procedury te są bardzo często wywoływane z głównego programu, powinny być wykonywane jak najszybciej. Dlatego też wybrano asembler jako optymalną platformę pozwalającą na pisanie
48
Elektronika Praktyczna 1/2003
Yampp-3/USB
krótkich i szybko wykonywanych procedur. Po skompilowaniu procedury te tworzą bibliotekę yampp3lib.a, która jest wykorzystywana przez program główny, czyli drugą - główną warstwę oprogramowania napisaną w języku wysokiego poziomu, czyli w C. Biblioteka ta jest dołączana do programu w trakcie linkowania gotowego kodu. Wykorzystanie do yamppa-3/USB lepszego procesora w połączeniu z nowym systemem plików dało spore pole do popisu przy pisaniu oprogramowania systemowego. Dzięki temu zyskał on trochę dodatkowych możliwości, a procedury konfiguracyjne zostały uproszczone. Szczególnie dotyczy to konfiguracji pilota zdalnego sterowania, ale o tym napiszę później. Do wprowadzenia jakichkolwiek zmian wymagających rekompilacji kodu potrzebny będzie darmowy kompilator języka "C", czyli AYR-GCC. Zalecaną wersją tego kompilatora jest kompilator wersji 3.02 wraz z biblioteką avr-libc 20011126, zawarty w pliku avr-gcc_freaks20011214a.exe. Jest on dostępny w Intemecie pod adresem ii ttp ://www. avrfreaks.net/filed-nload.php?url=/AVRGCC/Down-Ioadfavrgcc_freaks20011214a.exe. Przy zastosowaniu innej wersji kompilatora mogą wystąpić problemy z poprawną kompilacją, związane ze zmianami w bibliotekach LIBC poczynionych w kolejnych
wersjach. Sposób instalacji i korzystania z tego kompilatora był juź kilkakrotnie poruszany na łamach EP, więc nie będę go powtarzał, a skupię się na opisie poszczególnych opcji dostosowujących oprogramowanie yamppa do indywidualnych potrzeb. W większości przypadków nie jest konieczna umiejętność programowania w języku C, ponieważ program został napisany tak, aby odpowiednią konfigurację można było przeprowadzić poprzez wstawienie lub usunięcie znaków komentarza przy odpowiednich definicjach w pliku Constants.h lub zmianę wartości odpowiednich stałych (również w tym pliku).
Znakiem komentarza w języku C jest podwójny slash - "//" wstawiony na początku danej linii. Wszystkie definicje znajdujące się w pliku Constants.h są podzielone na sekcje. Pierwszą ważną definicją jest ustawienie odpowiedniej częstotliwości kwarcu taktującego układ VSl001 -ttdefine F_VSl001. Należy wybrać jedną z dwóch możliwych wartości lub dopisać swoją, pamiętając, że wpisana wartość musi być częstotliwością kwarcu podaną w hercach podzieloną przez 2000. W przypadku stosowania kwarcu i częstotliwości poniżej 15 MHz należy uaktywnić podwajacz częstotliwości zawarty wewnątrz układu VSl001 poprzez dodanie do
b* ' ni
u*-bwt-
mir mm
i
4?
Ol 01
moi
-ł-i-i
1 UM 1.
*-i a*i>l
Rys. 5. Widok okna programu yamppLink
wyliczonej wartości częstotliwości kwarcu stałej o wartości 0x8000. Jeśli przez przypadek posiadamy starszą niż "K" wersję układu VSl001, to należy również usunąć komentarz z linii ftdefine OLD_VS1001.
W kolejnej sekcji można ustawić rodzaj użytego wyświetlacza LCD oraz opcje wizualizacji. Rodzaj podłączonego do yamppa wyświetlacza LCD ustawiamy poprzez wybór jednej z siedmiu dostępnych definicji LCD_TYPE. Jeżeli do współpracy z yamppem-3/ USB chcemy wykorzystać graficzny wyświetlacz LCD stosowany w niektórych telefonach komórkowych firmy Nokia, wybieramy typ 7, lecz ten typ wyświetlacza wymaga innego sposobu podłączenia go do płytki yamppa oraz kilku dodatkowych zabiegów, co szczegółowo zostanie opisane w trzeciej części artykułu.
Usunięcie komentarza z linii tidefine ALTERNATE_SCROLL pozwala zmienić sposób przesuwania się napisów na wyświetlaczu tak, że tekst zamiast "odbijać się", będzie się przesuwał w jedną stronę.
Definicja ttdefine SCROLL_SPE-ED określa prędkość przesuwania się tekstu, a dokładniej czas pomiędzy kolejnymi przesunięciami wyrażony w dziesiątych częściach sekundy. Kolejne trzy opcje przeznaczone są wyłącznie dla graficznego LCD.
W następnej sekcji pliku Constants.h znajdują się opcje twardego dysku. Przez zmianę wartości definicji HDD_STANDBY_TIME możemy ustawić czas (w sekundach), po jakim talerze dysku twardego zostaną zatrzymane w przypadku bezczynności odtwarzacza. Jeśli podczas odtwarzania utworów wystąpiłyby problemy z dźwiękiem objawiające się krótkimi przerwami lub "czkawką", to istnieje duże prawdopodobieństwo, że usunięcie komentarza z linii tidefine FAST_IDLE_DISK spowoduje poprawę odtwarzania.
W sekcji UART OPTIONS ustawiamy opcje wizualizacji procesu odtwarzania na terminalu dołączonym do złącza RS232.
Jeśli wystąpiłyby kłopoty z pilotem zdalnego sterowania, objawiające się tym, że po próbie zmiany głośności yampp nie wi-
Elektronika Praktyczna 1/2003
Yampp-3/USB
dzi momentu puszczenia klawisza, to w sekcji Infra Red Controls należy wyłączyć opcję ENAB-LE_AUTOREPEAT. Jeśli pojedyncze naciśnięcia niektórych klawiszy pilota byłyby interpretowane podwójnie (uniemożliwiając na przykład zmianę funkcji Loudness bądź Random), to można temu zaradzić, zwiększając wartości definicji tidefine DOUBLE_TRAP.
Kolejna sekcja pliku Cons-tants.h zawiera konfigurację klawiatury lokalnej. Mamy do wyboru dwa różne układy klawiszy sterujących. Pierwszy, domyślny dla 8-przyciskowej klawiatury, oraz drugi dla 4-przyciskowej klawiatury, dostępny po usunięciu komentarza z linii ftdefine FOUR_KEYS_CONTROL. Jeżeli zaproponowany układ klawiszy nam nie odpowiada, to możemy go zmienić poprzez zmianę wpisów w linii ttdefine KBD_SHORT oraz ttdefine KBD_LONG. Sposób wprowadzenia zmian jest identyczny jak przy oprogramowaniu dla "starego" yamppa-3.
W ostatniej sekcji, wartością definicji MIN_VOLUME, można ustalić minimalny możliwy do ustawienia poziom głośności oraz liczbę kroków regulacji głośności. Usuwając komentarz z linii #c?e-fine PWR_BEEPS, możemy spowodować, że po załączeniu zasilania yampp oznajmi nam gotowość do pracy, generując potrójny dźwięk.
Konfiguracja kodów pilota
Ze względu na dwukrotnie większą pojemność pamięci Flash, możliwe było napisanie procedur znacznie upraszczających konfigu-
rację pilota. Yampp-3/USB pozwala wykonać to zadanie bez potrzeby rekompilowania kodu źródłowego. Aby uruchomić procedurę konfiguracji, należy nacisnąć na klawiaturze lokalnej klawisz Play i trzymając go, włączyć zasilanie yamppa. Drugim sposobem wejścia w tę procedurę jest wysłanie poprzez port RS2 32 znaku "!". W tym momencie rozpoczyna się procedura rozpoznania standardu (protokołu), w jakim nadaje nasz pilot, więc należy kilkakrotnie nacisnąć dowolny klawisz pilota. Po rozpoznaniu standardu zostaje wyświetlona jego nazwa i rozpoczyna się właściwa procedura ustawiania kodów. W drugiej linii wyświetlacza oraz na ekranie terminala kolejno ukazują się nazwy poszczególnych funkcji, a obok nich, po naciśnięciu jakiegoś klawisza na pilocie, kod odebranego rozkazu. Aby zapamiętać wybrany kod i przejść do ustawiania kolejnej funkcji, należy nacisnąć na klawiaturze lokalnej klawisz Play lub wysłać komendę "g" z klawiatury terminala. Jeśli nie chcemy przypisać dla którejś z funkcji żadnego klawisza na pilocie, należy zamiast klawisza Play nacisnąć klawisz Stop lub wysłać komendę "G" z klawiatury terminala. Po ustawieniu wszystkich kodów yampp wyświetli odpowiedni komunikat i przejdzie do stanu gotowości (funkcja Stop).
Obsługa za pomocą terminala
Bardzo często zdarza się, że poskładamy płytkę yamppa, lecz brakuje nam jeszcze wyświetlacza LCD i klawiatury. Chciałoby się
wypróbować, czy wszystko działa poprawnie, a tu nie bardzo jest jak. Ponieważ yampp został wyposażony w interfejs RS232, możemy go wykorzystać do sterowania jego pracą. W tym celu należy podłączyć złącze J3, znajdujące się na płytce yamppa, do gniazda portu COM komputera PC oraz uruchomić na komputerze dowolny program terminala, ustawiając parametry portu COM na: 115200 bodów, 8 bitów danych i brak parzystości oraz kontroli przepływu danych. Następnie, wydając z klawiatury odpowiednie polecenia, możemy uruchomić i sterować yamppem oraz zobaczyć status pracy w oknie terminala. Wszystkie polecenia są jednoznakowe, przy czym istotna jest wielkość liter.
Poniżej przedstawiam pełny spis komend sterujących pracą yamppa: u - Głośność + d - Głośność -N- Głośność na -12dB p - Poprzedni utwór n - Następny utwór
G- Stop
1 - Przeglądanie playlist m- Wejście do menu f - Szybkie przewijanie do przodu F - Szybkie przewijanie do tyłu s - Następna playlista S - Poprzednia playlista b - Loudness Załącz/Wyłącz r - Random Załącz/Wyłącz e - Wybór trybu Repeat t - Czas utworu/pozostały do końca ! - Uruchomienie procedury konfiguracji pilota Romuald Biały http://www.yamppsoft.prv.pl/
50
Elektronika Praktyczna 1/2003
SPRZĘT
Słowo LabTool stało się przez ostatnie łata synonimem
dobrej jakości. Zapracowały na to przez łata doskonałe
programatory, które w ostatnich miesiącach doczekały
się następców. Wygłąda na to, że godnych.
QU I PM N T
RDVRNTCH
LabToo
Nowy programator firmy Advantech
Firma Advantech Equipment zna- przez programator. Wyobraźmy so- uniwersalność i bardzo duża ilość
na z produkcji programatorów Lab- bie następującą sytuację: konstruu- obsługiwanych układów). Obecnie
Tool wprowadziła w tym roku na jemy urządzenie i chcemy do jego lista układów zawiera ponad 5300
produkcji użyć niedawno wprowa- pozycji i jest kwartalnie rozszerza-
dzonego na rynek układu scalone- na o ponad 100 nowości. Interesu-
rynek nowy model - LabTool-48XP. Zastąpił on znany od wielu lat
LabTool-48. Jego poprzednik zdobył go. W takiej sytuacji nie liczy się jące jest to, że Advantech inaczej sobie wielką popularność na całym dla nas fakt, czy układ scalony bę- niż konkurencyjni producenci rozu-świecie, przede wszystkim ze dzie programowany przy użyciu na- mie liczbę obsługiwanych przez
pięcia od 0 do 30 V z zegarem LabToola układów. Przykładem mo-Ś MHz, 3 MHz, czy może 250 kHz. że być choćby układ AT29C040A,
względu na dużą uniwersalność,
prostotę obsługi i niezawodność.
Advantech przez lata stale udosko- Nie jest ważne również, czy układ który jest produkowany przez At-
nalał urządzenie, głównie poprzez zostanie zaprogramowany w czasie mela w trzech wersjach obudowy
rozwój oprogramowania dla PC. 5 sekund, czy też 9 sekund. Ważne (DIP, PLCC, TSOP). Na liście ukła-
Ciągle poszerzano listę obsługiwa- jest, aby programator był uniwersał- dów LabToola jest on wymieniony
nych układów, istotnemu uspraw- ny (potencjalne możliwości rozbu- jako jeden układ - co jest zgodne
nieniu ulegało także menu
użytkownika. Nie dziwi za- Jeden Z atutów - szybkość
tem fakt, że jest to urządzę- programowania
nie, na którym wzoruje się Poniżej podano przykładowe czasy
programowania (na podstawie informacji pro ducenta próg rama to r a).
wielu innych producentów programatorów.
Następnym krokiem
w ewolucji LabToola było opracowanie nowego progra- t
matora - LabToola-48XP. Sprawdzenie Zmiany wprowadzone do nowego programatora są na "rogramowanie tyle duże, że konieczne Weryfikacja było napisanie nowego op- Razem rogramowania sterującego.
Intel
AMD
28F320C3B 29DL323DB
"czystości" pamięci
18,6 s
18,9 s
57, 5 s 76, 2 s
32, 5 s 33, 0 s
108 ,6 s 128 ,1 s
z intencjami firmy Atmel (umieszczenie jego opisu w jednej nocie katalogowej). Zazwyczaj inni producenci programatorów traktują każdy wariant obudowy jako trzy różne układy. Podobnie sytuacja ma się ze wszystkimi rodzinami układów (Flash, EPROM, EEPROM, MPU...). Licząc w sposób podobny do stosowanego przez innych producentów, okazuje się, że LabTool-48XP może programować
W nowej wersji zmieniono układy dowy za pomocą oprogramowania 12000 do 15000 układów, komunikacji i sterowania, co za- sterującego), szybki i niezawodny,
owocowało podniesieniem szybkoś-
Jeśli chcemy w programatorze zaprogramować
programator mógł zaprogramować wspomniany wcześniej układ interesujący nas układ. Bez tego AT29C040A w obudowie PLCC (ty-
ale najważniejsze jest dla nas, aby LabTool-48XP ci programowania i zwiększeniem uniwersalności programatora.
Zazwyczaj najistotniejszą dla nawet najszybszy programator na powy BIOS z PC-ta), to na liście
użytkownika cechą programatora świecie będzie bezużyteczny. Lab- wyboru zaznaczamy układ
jest liczba układów obsługiwanych Tool spełnia te warunki (szybkość, AT29C040A. Niestety nie da się
Elektronika Praktyczna 5/2003
SPRZĘT
Elektronika Praktyczna 5/2003 57
SPRZĘT
ŁiHtil-4111 Ś! UT 1

Rys. 1. Okno programu sterujqcego pracq programatora
podłączyć bezpośrednio układu w obudowie PLCC32 do standardowej podstawki DIL48-ZIF, w którą jest wyposażony programator. Trzeba więc użyć prostego (dzięki temu taniego) adaptera, który jest przelot-ką 1:1. Podobnie ma się sytuacja z obudową TSOP.
LabTool-48XP jest standardowo wyposażony w gniazdo 48-stykowe ZIF (Zero Insertion Force - niewy-magające dużej siły, bardzo trwałe). Mimo iż dysponuje aż 48 uniwersalnymi wyprowadzeniami - nie jest w stanie obsłużyć wszystkich układów, gdyż wiele z nich używa innych obudów niż DIL (SO, SOIC, SSOP, TSOP, PSOP, PLCC, PQFP, BGA i innych o różnych rozstawach nóżek i różnych szerokościach) często z większą liczbą wyprowadzeń niż 48. Aby temu zaradzić, firma Advantech skonstruowała wiele rodzajów adapterów. Ze względu na uniwersalność gniazda LabToola, wszystkie adaptery są jedynie prostymi przejściówkami nie-zawierającymi elementów aktywnych. Zmniejsza to późniejsze ewentualne koszty rozbudowy stanowiska pracy. Opis adapterów (tablica połączeń) jest dostępny na stronie producenta http://www.aec-com.tw, dzięki czemu do zaprogramowania kilku egzemplarzy jakiegoś elementu nie trzeba w ogóle kupować adaptera.
Ze strony producenta można pobrać (bezpłatnie!) zawsze aktu-
alną wersję oprogramowania obsługującego programator. Jeśli na stronie producenta znajdziemy nowszą wersję programu niż tę, którą mamy zainstalowaną na komputerze, to różnica między nimi sprowadza się do powiększenia listy układów w kolejnych wersjach (kwartalnie ponad 100 nowości). Oprogramowanie pracuje pod kontrolą systemu Windows w wersjach 32-bitowych (Win 95/ 98/Me/NT/2000/XP).
Inżynierowie z Advantecha pracując przez wiele lat nad poprzednim modelem programatora poznali upodobania klientów i wiedzą, jak pisać oprogramowanie przyjazne dla użytkownika (okno działającego programu pokazano na rys. l). Warto w tym miejscu wymienić kilka funkcji oprogramowania znacznie usprawniających pracę z urządzeniem. Oprócz standardowych, które posiada każdy programator (Read, Program, Blank Check, Veri-fy, Erase), jest ich wiele więcej: - Insertion Test - test poprawności włożenia układu do podstawki. Sprowadza się to do sprawdzania kontaktu między programatorem a układem. W czasie tego testu jest wykrywane każde błędne włożenie układu do podstawki (adaptera) i przez to zapobiega uszkodzeniom LabToola i samego układu. W przypadku zaprogramowania układu OTP nie istnieje możliwość poprawienia wpisa-
Podstawowe parametry programatora LabTool-48XP
Układ programowany
/ obsługa uktadów zasilanych od 3,3 V -standard + uktady 1,8 V przez adapter,
/ niepotrzebne adapterydlauktadóww obudowie DIL,
/ zabezpieczenie prądowe podstawki (uktadu w podstawce),
/ autornatycznewykrywanie obecności uktadu (przy produkcji seryjnej),
/ sprawdzanie kontaktu między uktadern a podstawką programatora,
/ możliwość weryfikacji przy różnych napięciach zasilania,
/ użytkownik może decydować o parametrach programowania,
OprogramowaniG
/dlaWindows95/98/2000/XP/NT,
/Tworzenie projektów,
/ aktualizacje dostępne bezpłatnie w Internecie,
/ zamiana bajtów w buiorze (H <-> L dla uktadów 16-bitowych),
/ generowanie raportów (przy produkcji seryjnej),
/ automatyczne rozpoznawanie Typów uktadów EPROMi FLASH,
/ opcje nadawania numerów seryjnych uktadom programowanym (przy produkcji),
/ automatycznewykrywanie rodzaju pliku wczytywanego,
Obsługiwano układy
/ pamięci: PROM, EPROM, EEPROM, Flash,
/ logiczne: PAL, GAL, CEPAL, PEEL, CPLD,
EPLD, / inne: mikrokontrolery OTP/Flash/EEPROM,
Wektory testowe PLD
/ akceptuje wektory dla 48 wyprowadzeń,
/ czas narastania sygnatu na wyjściu 2500 V/|j.s,
Formaty obsługiwanych plików
/ JEDEC, POF, BIN, Intel HEX, Intel Exl HEX, Motorola S, HP 64000ABS, Straight HEX, TektronixHEX,
/ automatyczne wykrywanie Typu i konwersja,
Wymagany komputer PC
/ sysTem operacyjny Windows 95/98/Me/NT/ 2000/XP,
/ procesor 386 lub lepszy,
/ 8 MB pamięci RAM (rekomendowane 32 MB),
/ 16 MB wolnego miejsca na dysku,
/ port równoległy pracujący w Trybie EPP,
/CD-ROM,
Ogólne
/zasilanie 100...240 VAC/47...63Hz,
/ moc pobierana - maks. 25 W (wbudowany
zasilacz impulsowy), / temperatura pracy: 5C...45C, / ciężar: 1,8kg
nych danych, a brak styku na linii danych (adresów) tego układu może spowodować zapisanie w nim złej zawartości. Funkcja Insertion Test przed tym zabezpiecza.
Auto ID - automatyczne rozpoznawanie 8-bitowych pamięci Flash lub EPROM. Większość
58
Elektronika Praktyczna 5/2003
SPRZĘT
producentów pamięci wyposaża swoje układy w funkcje odczytu ID producenta i ID układu, starając się nie powtarzać numeracji zajętej już przez innych producentów. Programator po odczytaniu ID układu porównuje je ze swoją bazą danych i pokazuje użytkownikowi do zatwierdzenia znaleziony układ. Wcześniej jest wykonywany dodatkowo test kontaktu (ze względów bezpieczeństwa). Mass Production Modę -tryb programowania seryjnego, dzięki któremu można przyśpieszyć programowani większej liczby układów. Funkcja może być zintegrowana z automatycznym numerowaniem (nadawanie numeru seryjnego programowanym układom). Obsługujący sam ustala, pod jakimi adresami pamięci oprogramowanie może wstawić numer seryjny i o jaką wartość ma być inkrementowany. Programator pracujący w tym trybie au-
tomatycznie wykrywa obecność układu w gnieździe i jego wymianę po zaprogramowaniu. Na tej
Zmiany bez zmian
Na pierwszy rzut oka nowy LabTool nic
różni się od poprzednika, wyjątkiem jest
nowa nazwa - LabTool-48XP - która
wyraźnie nawiązuje do najnowszych
Windows XP. Także oprogramowanie
sterujące jego pracą nie sugeruje
rewolucyjnych zmian, są one bowiem
ukryte w zastosowanych rozwiązaniach
sprzętowych i w "głębi" oprogramowania.
podstawie przechodzi do obsługi kolejnego układu. Można tu również wyłączyć autonumerowanie i wszystkie układy będą programowane jednakową zawartością. Bardzo ważną cechą LabToola jest jego wysoka niezawodność. Jest to spowodowane wysoką dbałością o produkt już w fazie projektu. Między innymi płyty drukowane są wielowarstwowo - dzięki temu ścieżki mogą być szersze, a odstępy między nimi większe -
zwiększa to odporność na wibracje, zwiększa również prądową wytrzymałość ścieżek. Oprócz czysto mechanicznych zabiegów (płyty drukowane, złącza, montaż) Advantech zastosował także inteligentne zabezpieczenia, minimalizujące ryzyko elektrycznego uszkodzenia programatora. Są nimi rozpoznawanie ID (producenta, typu) układu i sprawdzenie poprawności włożenia go do podstawki. Zapobiega to uszkodzeniom i czyni urządzenie niemal bezawaryjnym. Tomasz Kozłowski Elmark Automatyka Sp. z o.o.
Dodatkowe informacje
Cena programatora LabTool-48XP: 4263 zt duży rabat przy zakupie internetowym Adapter PLCC-3232-11 (BIOSY) 294 zt
ceny netto z dnia 08.04.2003.
Dystrybutorem programatorów LabTool jest firma ELMARK Automatyka Sp. z o.o., tel. (22) 821-30-54, www.elmark.com.pl.
Elektronika Praktyczna 5/2003
59
Lampowy odbiornik UKF
O tym, że lampy nadajq się nie tylko do audiofilskich wzmacniaczy mocy przekonajq się czytelnicy artykułu ze słr. 21.
CPU-meter do PC-ta A
Projekt dedykujemy miłośnikom PC-tów. Wbrew tytułowi, urzqdzenie może spełniać wiele innych - także rozrywkowych - funkcji. Słr. 35.
L:?K
Uniwersalny moduł A interfejsowy USB
Miniaturowa płytka, a jakie możliwości! Słr. 75.
12-kanałowy regulator mocy sterowany sygnałem DMX512
Opis konstrukcji sterownika oświetlenia DMX przedstawiamy na słr. 47.
Dwupunktowy termometr na RS232
Kolejny ukłon w stronę miłośników PC, zwłaszcza tych, którzy lubiq wiedzieć co też się dzieje z procesorem komputera... Słr. 76.
Zegar minimalisty
Nie, nie, to nie żart! Sprawdźcie sami na słr. 39.
LabTool-48XP - nowy programator firmy Advantech
Konkurencja na rynku programatorów wymusiła także na firmie Advantech wprowadzenie do sprzedaży nowego modelu. Przedstawiamy go w artykule na słr. 56.
Cyfrowy miernik pojemności A
Opis sympatycznego przyrzqdu laboratoryjnego na PIC-u przedstawiamy w artykule na słr. 27.
Sterowanie graficznych wyświetlaczy z telefonów komórkowych Nokia
O tym jak programować najtańsze graficzne wyświetlacze LCD za pomocq mikrokontrolera AVR piszemy na słr. 81.
Headwards! - czyli mysz się chowa
Drugq część artykułu o nagłownym sterowniku kursora myszki przedstawiamy na słr. 43.
"Śm
inyiiii
111......
iiim
Elektronika Praktyczna 5/2003
Wirtualne instrumenty pomiarowe - oprogramowanie Dąsy Lab
O tym jak zbudować laboratorium pomiarowe na bazie PC piszemy na słr. 133.
IKA
Nr 5(125)
maj 2003
Karta dźwiękowa USB z nagrywaniem i analogowymi
oraz cyfrowymi we/wy ............................................................ 14
Lampowy odbiornik UKF..........................................................21
Cyfrowy miernik pojemności...................................................27
CPU-meter do PC-ta.......................................................................... 35
Zegar minimalisty......................................................................39
Headwards! -czyli mysz się chowa, część 2........................43
12-kanałowy regulator mocy sterowany
sygnałem DMX512, część 2 ....................................................47
eZSOAcelaim! - nowy "krewny" słynnego "Z-ta"
Czyżby Zilog się obudził? Nowe mikrokontrolery tej firmy przedstawiamy na słr. 51.
Visual Micro Lab A
Jest to oprogramowanie stosunkowo słabo znane w Polsce, ale naprawdę warte poznania! Słr. 65.
Uniwersalny moduł interfejsowy USB......................................75
Dwupunktowy termometr na RS232......................................76
Programu
Protel DXP - przełom na rynku narzędzi EDA
dla elektroników, część 3........................................................60
Yisual Micro Lab - program wspomagajqcy realizację
projektów na mikrokontrolerach AVR i ST62.........................65
Autorouter Specctra, część 4.................................................7,3-
KurF
Sterowanie graficznych wyświetlaczy z telefonów
komórkowych firmy Nokia, część 1 .......................................81
Podstawy projektowania systemów
mikroprocesorowych, część 3.......................................................-85
CRC doda Ci pewności, część 5........................................... 93
Język C dla mikrokontrolerów 8051, część 12......................97
Automatyka
Wirtualne instrumenty pomiarowe - oprogramowanie
Dąsy Lab.................................................................................. 133
Nowe radiomodemy firmy Satel - Satelline-1870 - pasmo 8Ó8...870MHZ zdobyte!.......................................................... 138
Podzespoły
eZ80Acclaim! -nowy "krewny" słynnego "Z-ta" ..................51
Sprzęt]
LabTool-48XP - nowy programator firmy Advantech .........56
Zestawy lutownicze firmy JBC, część 2 .................................63
Alternatywa - Instek GDS820S.................................................70
Nowoczesne akumulatory, część 2....................................... 89
Projekty Czytelników
Miniprogramator szeregowych pamięci EEPROM, część 2 ... 99
Z kraju i ze świata........................................................119
Kramik+Rynek..............................................................101
Listy.................................................................................
Ekspresowy Informator Elektroniczny.....................1151
Wykaz reklamodawcow............................................118
Elektronika Praktyczna 5/2003
PROGRAMY
Protel
Przełom na rynku narzędzi EDA dla elektroników, część 3
Funkcje nawigacyjne aplikacji służącej do projektowania, pozwalające na sprawne poruszanie się po projekcie, są bardzo istotnym elementem każdego programu narzędziowego, gdyż
wpływają bezpośrednio na łatwość i efektywność pracy
projektanta. Dlatego środowisko Protela DXP wyposażono
w wyrafinowane narzędzia nawigacyjne, pozwalające łatwo
przemieszczać się po strukturze każdego projektu.
Nawigowanie po projekcie
Nawigowanie po projekcie jest czynnością, którą prowadzimy przez cały czas realizacji projektu. Czynności nawigacyjne mają miejsce już na początku projektu, podczas rozmieszczania i łączenia elementów, podczas analizy i weryfikowania projektu oraz w czasie wymiany danych między schematem i PCB podczas projektowania płyty drukowanej. Protel DXP dysponuje specjalnym panelem Navigator (rys. 1], który obsługuje tradycyjny tryb przeglądania projektu tzn. pokazuje na ekranie element wybrany kliknię-ciem w panelu. Oprócz tego, pozwala anali-zowaó i śledzió połączenia w projekcie, zarówno przestrzennie wprost w oknie roboczym edytora, jak i za pomocą specjalnego "pływającego" okienka Browser. Panel Navi-gator służy do przeglądania i nawigowania pomiędzy dokumentami, elementami na schematach, szynami, połączeniami oraz poszczególnymi wyprowadzeniami elementów. Pojedyncze kliknięcie dowolnego obiektu w panelu powoduje jego odszukanie i pokazanie na schemacie lub w dokumencie źródłowym VHDL, a kliknie.cie z równoczesnym
trzymaniem klawisza Alt uruchamia szukanie skrośne i wskazuje ten sam obiekt na PCB.
Wspomnieliśmy o dwóch możliwościach przemieszczania się po projekcie. Jedna z nich - nawigowanie przestrzenne - to technika przeglądania, polegająca na tym, że poruszamy sie. bezpośrednio po arkuszu schematu - klikając etykietę, sieci, podświetlamy wszystkie obiekty w danej sieci, klikając port, przeskakujemy do związanego z nim wyjścia w symbolu arkusza na schemacie nadrzędnym i tak dalej. Specjalna opcja Graph po włączeniu pokazuje powiązania pomiędzy obiektami - kolorem czerwonym sieci, a zielonym elementy, jak widaó na rys. 2 i 3.
Alternatywny sposób nawigowania po projekcie umożliwia nowy element wprowadzony w DXP - tzw. Design Browser (iys. 4). Za pomocą tego niewielkiego, "pływającego" okienka użytkownik może wygodnie anali-zowaó powiązania pomiędzy wybranymi obiektami projektu. W przeciwieństwie do prezentacji projektu "z góry na dół", charakterystycznej dla panelu Navigator, narzędzie Browser pozwala śledzió połączenia z punktu widzenia wybranego obiektu. Browser nadaje się idealnie do analizy połączeń pomiędzy dowolnymi obiektami projektu. Obiekt wybrany kliknięceim myszki jest pokazany centralnie w okienku Browser, a wokół niego są pokazane obiekty powiązane. Przykładowo, jeśli w środku okienka Browser znajduje się wyprowadzenie układu scalonego, to po lewej stronie pokazane
są informacje dotyczące całego elementu (u góry] oraz pozostałych wyprowadzeń (u dołu], natomiast po prawej stronie informacje o sieci [net], do której podłączony jest wybrany element (u góry] oraz inne elementy należące do tej samej sieci (u dołu]. Kiedy klikniemy inny obiekt, wtedy przesuwa się on do środka okienka Browser, a otaczające go informację są odpowiednio aktualizowane. Kiedy klikamy obiekt w okienku Browser, jest on równocześnie wyświetlany w oknie edytora schematów.
Jeszcze jedną użyteczną możliwośó nawigacji zapewnia tryb pracy zwany cross-pro-bing. W trybie tym kliknięcie obiektu w jednym widoku powoduje odszukanie i pokazanie jego odpowiednika winnym widoku. Przykładowo, wybranie elementu na schemacie powoduje jego odszukanie i pokazanie na PCB. Wykonanie tego w DXP sprowadza się do kliknięcia jednej z ikony w menu narzędziowym, a następnie kliknięcia elementu na schemacie - element ten
Rys. 3. Uaktywniona opcja Graph może służyć do pokazywania powiązań pomiędzy obiektami - kolorem zielonym sq zaznaczane elementy
Rys. 1. Zmodyfikowany ponel Navtgator jest jednq z nowości w Protel u DXP
Rys. 2. Specjalna opcja Graph po uaktywnieniu pokazuje powiązania pomiędzy obiektami - kolorem czerwonym sq zaznaczane sieci, a zielonym elementy
Rys. 4. Alternatywny sposób nawigowania po projekcie umożliwia Design Browser
60
Elektronika Praktyczna 5/2003
PROGRAMY
Rys. 5. Widok okno diologowego Find Simiiar Objects
zostanie odszukany na płycie drukowane] i pojawi się w okienku PCB.
Edycja danych w DXP
Środowisko DXP wprowadza zupełnie nowe sposoby zaawansowane] edycji i prezentacji danych projektu oraz nowe możliwości wyświetlania obiektów w przestrzeni roboczej z zastosowaniem filtrowania, podświetlania i maskowania obiektów.
Typowy projekt elektroniczny może zawierać setki elementów na schematach oraz tysiące obiektów na PCB. Choć tradycyjna graficzna prezentacja tych danych ma wiele zalet, nie daje projektantowi wydajnych sposobów wyszukiwania i zbiorowej edycji wielu obiektów w gęsto upakowanej przestrzeni roboczej.
Nowe możliwości edycji danych, jakie oferują nVisage i Protel DXP, stanowią kombinacje, zaawansowanego filtrowania obiektów połączoną z elastycznymi opcjami wyświetlania, dając pełną kontrole, nad wyborem, wyglądem i edycją danych.
System edycji danych składa sie. z trzech istotnych elementów - danych projektowych, widoku danych oraz systemu sterowania widokiem, System sterowania widokiem spełnia dwie funkcje - pozwala kontrolować to, co jest wyświetlane oraz jak jest wyświetlane w widoku danych.
Możliwość kontrolowania tego, co jest wyświetlane, daje system filtrowania. DXP zawiera wyrafinowany system filtrowania danych, który świetnie radzi sobie z wielką
XI


t J
Tl W* 1 *
ŚOki Lvi i*"
L4u ŚŚŚ< tu

Rys. ó. Obiekty możno wyselekcjonowoć, powiększyć i udostępnić do edycji zo pomocq ponelu Objęci inspector
ilością danych w przestrzeni roboczej. Filtrowanie może być przeprowadzone na kilka sposobów - za pomocą panelu Navigator, okienka dialogowego Find Simiiar Objects (iys. 5] lub poprzez zapytanie [ąuery]. Pierwsza z możliwości filtrowania danych - panel Navigator - została przedstawiona wcześniej, przy okazji opisu systemu nawigacji po projekcie. Drugi sposób - Find Simiiar Objects - jest wykorzystywany przy wyszukiwaniu obiektów o podobnych atrybutach, bazując na jednym wybranym. Klikamy prawym klawiszem myszki dowolny obiekt i wybieramy z menu Find Similar Objects. Pojawia sie. okienko dialogowe Find Similar Objects (poka-
zane na rys. 5], pozwalające . ,' , ' r-.^-.,-. , '. .' F, , ' widoku PCB na ustawienie atrybutów,
które chcemy dopasować podczas filtrowania. Zależnie od ustawień dodatkowych opcji, wybrany zestaw obiektów może być wyselekcjonowany oraz powiększony i udostępniony do edycji za pomocą panelu Objęci Inspector (rys. 6].
Jeszcze inne, najbardziej zaawansowane podejście do wyszukiwania obiektów, to napisanie zapytania. Protel DXP dysponuje potężnym i elastycznym językiem zapytań, który pozwala precyzyjnie określić parametry wyszukiwanych obiektów w projekcie.
Nie mniej istotne od tego, jakie obiekty są widoczne w przestrzeni roboczej, jest to, w jaki sposób są one wyświetlane. Różne zadania projektowe stawiają różne wymagania przed projektantem. Przykładowo, zmiana czcionki dla kilku ciągów znaków na schemacie wymaga ich wybrania, a następnie jednoczesnej edycji parametrów tekstu. Z drugiej strony, kiedy sprawdzamy przebieg ścieżki dla danej sieci na PCB, wybierając interesujące nas obiekty, powinniśmy widzieć wyróżnione na pierwszym planie tylko te obiekty, które tworzą dane połączenie, gdyż tylko one nas interesują.
Środowisko DXP oferuje trzy tryby wyróżniania widoku - wybieranie [selecting], powiększanie [zooming] oraz nowy tryb maskowania [masking). Maskowanie działa w taki sposób, że wszystkie obiekty w przestrzeni roboczej są przyciemnione, oprócz tych, które nas interesują. Efekt działania opcji maskowania w przypadku widoku PCB pokazano na rys. 7.
Zaawansowane systemy do filtrowania i wyszukiwania ułatwiają zlokalizowanie i wybranie interesujących nas obiektów. Kolejne narzędzia pozwalają na podgląd i edycję interesujących nas parametrów wybranego obiektu lub całej grupy obiektów - zależnie od potrzeby. Protel DXP oferuje kilka możliwości dostępu do parametrów każdego obiektu.
Najprostszy, tradycyjny sposób dostępu do parametrów pojedynczego obiektu uzyskujemy, dwukrotnie klikając jego symbol myszką. Pojawia się okienko dialogowe, którego wygląd jest zależny od typu obiektu. Jak widać na ilustracjach rys. 3...12, okienko właściwości obiektu inaczej wygląda dla symbolu elementu na schemacie, inaczej dla połączenia, a jeszcze inaczej dla elementu na PCB, punktu lutowniczego czy ścieżki na
działania opcji maskowania w przypadku
płycie drukowanej. W ten sposób uzyskujemy prosty dostęp do zestawu najważniejszych parametrów obiektu. Niektóre parametry są zobrazowane graficznie, co dodatkowo ułatwia ich interpretację. W podobny sposób uzyskujemy dostęp do wybranych parametrów pojedynczych obiektów, jednak bardziej złożone zadania edycyjne wymagają użycia alternatywnych metod, które oferuje środowisko DXP.
Tradycyjny graficzny widok projektu daje doskonałą informację o przestrzennym rozmieszczeniu obiektów, jednak nie daje dostępu do wielu ważnych atrybutów, jak dane o lokalizacji czy niektóre inne parametry. Protel DXP oferuje trzy alternatywne widoki danych projektu: tradycyjny widok graficzny - jak w oknie edytora schematu lub PCB, widok w formie arkusza kalkulacyjnego - panel List (rys. 13] oraz wcześniej prezentowany Objęci Inspector.
Panel Inspector jest użyteczny szczególnie wtedy, gdy chcemy zmodyfikować jakieś wspólne atrybuty aktualnie wybranych obiektów. Z kolei panel List pozwala łatwo porównać parametry grupy obiektów oraz wkleić dane do komórek z arkusza kalkulacyjnego.
Rys. 8. Okno dialogowe właściwości elementu na schemacie
Rys. 9. Okienko parametrów połqczenia na schemacie
Elektronika Praktyczna 5/2003
61
PROGRAMY
Rys. 13. Widok panelu Ust
Rys. 10. Okno pokazuje zestaw najważniejszych parametrów elementu PCB
Rys. 11. Właściwości punktu lutowniczego. Reprezentacja graficzna wybranych parametrów ułatwia ich interpretację
Panel List to nie tylko alternatywny widok danych projektu. Ten nowy element wprowadzony w DXP to kombinacja edytora zapytań, narzędzia do sterowania wyświetlaniem i arkusz kalkulacyjny. Kiedy wpisujemy zapytanie w górnej części panelu imamy włączoną równocześnie opcje. Mask, zawartość arkusza zmienia się na bieżąco tak, że wszystkie odfiltrowane obiekty są usuwane. W arkuszu pozostają tylko te, które spełniają kryteria określone przez zapytanie.
Arkusz kalkulacyjny zawiera wierny alternatywny widok projektu - każda operacja wykonana w arkuszu, jak na przykład selekcja grupy obiektów lub edycja dowolnego obiektu, znajduje odzwierciedlenie równocześnie w widoku graficznym.
Najważniejsze zasady edycji
Opisany pokrótce unikalny system wyszukiwania i edycji danych w DXP daje ogromne możliwości, ale wymaga też umiejętnego stosowania. Wymaga pewnej zmiany nawyków, aby w pełni wykorzystać cały szereg opcji wyszukiwania i wyświetlania obiektów przestrzeni roboczej, zarówno edytora schematów, jak i PCB. Mechanizmy przeszukiwania oraz edycji danych są ściśle ze sobą powiązane, a to powoduje, że obiekty wybrane podczas przeglądania projektu może-
E n
Rys. 12. Okienko właściwości ścieżki również w czytelny sposób pokazuje jej szerokość oraz współrzędne początku i końca
a
Um* I
. bp*m*
Rys. 14. Widok panelu Selection Memory
my od razu poddać edycji. Warto zaznaczyć, że nowe mechanizmy wyszukiwania i edycji w DXP to jedna z większych zmian w stosunku do wcześniejszych wersji programu Protel. Różnice są na tyle istotne, że osoby pracujące wcześniej z programem Protel 99SE mają często problemy ze stosowaniem tych narzędzi. Dlatego siadając do pracy z DXP, warto na wstępie poświęcić troszkę czasu na poznanie tych nowych narzędzi, zamiast próbować usilnie zrobić coś ,,po staremu", szukając na przykład nieistniejących już przycisków Global w oknie właściwości obiektu.
W środowisko DXP typowa sekwencja edycji wielu obiektów składa się z trzech kroków: wyszukiwanie (Find), wybieranie {Seleci} i edycja {Edit)\
Wyszukiwanie - mamy do dyspozycji kilka możliwości przeszukiwania projektu opisanych wcześniej, włączając w to panel Na-vigator, okienko Browser, funkcję Find Si-rnilar Objęci oraz język zapytań, za pomocą którego możemy stworzyć kwerendę.
Wybieranie - obiekty, które chcemy poddać edycji, zaznaczamy, używając opcji Se-lect dostępnej w oknie Find Similar Objęci oraz panelach Navigator i List lub wybierając ręcznie w jednym z dostępnych widoków
Edycja - włączamy Objęci Inspecioia (klawisz Fll] i edytujemy wybrane wcześniej obiekty. Narzędzie Objęci Inspecior pokazuje wszystkie parametry, które są wspólne dla wybranych obiektów. Po wprowadzeniu zmian w "inspektorze" wystarczy nacisnąć klawisz Enier, aby je zastosować.
Należy wspomnieć o jeszcze jednym elemencie ułatwiającym pracę. Otóż do dyspozycji mamy S pamięci selekcji w edytorze schematów i PCB. Pamięć ta może być wykorzystana do przechowywania i przywracania wyboru (selekcji] do ośmiu zestawów obiektów na schemacie lub PCB. Szybki dostęp do pamięci uzyskujemy z poziomu menu Edit, panelu Selection Memory widocznego na rys. 14 lub za pomocą łatwych do zapamiętania skrótów klawiaturowych np. CTRL + 1...8 - zapamiętanie selekcji, ALT + 1...8 - przywołanie selekcji z pamięci. Grzegorz Witek, Evatronix
Dodatkowe informacje
Dodatkowe informacje można uzyskać w firmie EyatroniK, www.evatronix.com.pl
62
Elektronika Praktyczna 5/2003
SPRZĘT
Firma JBC jest jednym z wiodących producentów i dostawców zestawów lutowniczych dla zakładów produkcyjnych oraz serwisów. Rozwiązania techniczne stosowane przez firmę sprawiają, że oferowany sprzęt jest ergonomiczny i przez to wygodny w stosowaniu. Charakteryzuje się także doskonałymi termicznymi parametrami. Najnowsza seria zestawów lutowniczych firmy JBC nosi nazwę Advance. Im właśnie poświęcamy artykuł.
Kolejne zestawy prezentowane w artykule jako medium grzewcze wykorzystują gorące powietrze. Ich opis poprzedzimy omówieniem zasady działani chwytaków podciśnieniowych, które znajdują się na wyposażeniu zestawów. Zastosowana technologia nagrzewania oraz wykorzystanie tych chwytaków pozwala użytkownikom wylutowywać z płytek drukowanych układy scalone o dowolnych rozmiarach bez ryzyka uszkodzenia ścieżek na płytce lub samego układu. Podczas demontażu układu wykorzystywane są: chwytak podciśnieniowy, osłona termiczna oraz lutownica na gorące powietrze współpracująca ze stacją. Zadaniem chwytaka
Zestawy lutownicze firmy JBC, część 2
podciśnieniowego jest zassać układ scalony i unieść go do góry tak, aby nie uszkodzić ścieżek znajdujących się na płytce. Siła ssąca chwytaka podciśnieniowego jest zawsze jednakowa. Przy pracy z układami, które są przyklejone do płytki lub pokryte warstwą lakieru, chwytak podciśnieniowy nie potrafi podnieść takiego układu. Konieczne jest wtedy działanie mechaniczne, aby naruszyć strukturę kleju lub lakieru. Osłona termiczna osłania w tym czasie pozostałe elementy przed działaniem strumienia gorącego powietrza oraz zapewnia akumulację gorącego powietrza wokół wylutowywanego układu. Lutownica zapewnia dostarczenie strumienia gorącego powietrza, które umożliwia roztopienie cyny.
Zestaw AM6000
Jest to zestaw składający się z wielu elementów (fot. 11), przeznaczony przede wszystkim do prac serwisowych. Może on współpracować zarówno z lutownicą, jak i szczypcami lub mikroszczypcami. Ponieważ posiada tylko jedno gniazdo zasilające, praca z tymi narzędziami może odbywać się wyłącznie przemiennie. Następne narzędzia wchodzące w skład zestawu to: rozlutownica oraz lutownica na gorące powietrze. Te dwa narzędzia zapewniają, że praca zarówno w technologii przewlekanej, jak i SMD nie sprawia użytkownikom większych kłopotów. Zdając sobie sprawę jak ważne jest poprawne pozycjonowanie nowego układu scalonego, zestaw wyposażono w chwytak podciśnieniowy.
Chwytak ten umożliwia dowolne manewrowanie nowym układem scalonym bez konieczności mechanicznego oddziaływania na jego powierzchnię przy użyciu pesety.
Stacja JT7000 oraz TE5000
Są to stacje (odpowiednio fot. 12 i fot. 13), które do nagrzewania pól lutowniczych podczas wlutowywania i wylutowywania układów scalonych używają gorącego powietrza. Są one dostarczane w zestawach, w skład których wchodzą: lutownica na gorące powietrze, podstawka do lutownicy oraz zestaw chwytaków podciśnieniowych. Lutownica jest dostarczana wraz z trzema wymiennymi dyszami. Każda ze stacji zapewnia regulację temperatury powietrza w zakresie od 90C do 450C. Wydajność stacji dużej mocy JT7OOO wynosi od 6 do 46 litrów powietrza na minutę. Stacja TE5000 przeznaczona jest do precyzyjnego lutowania lub wy lutowania elementów SMD. Jej wydajność wynosi do 15 litrów powietrza na minutę. Obydwie stacje są przeznaczone do pracy z elementami montowanymi w technologii SMD. Znajdują zastosowanie zarówno w serwisach naprawczych, jak i zakładach produkcyjnych.
Programator
Pozwala on użytkownikom stacji lutowniczych JBC modyfikować parametry pracy zestawu oraz odczytać dane statystyczne opisujące organizację na danym stanowisku pracy (fot. 14). Obsługa programatora jest bardzo prosta i polega na wprowadzeniu parametrów
Fot. 10. Stacja lutownicza AD2220
Fot. 11. Wyglqd zestawu AM6000
Elektronika Praktyczna 5/2003
63
SPRZĘT
Fot. 12. Stacja JT7000
i zatwierdzeniu wprowadzonych wartości przyciskiem oznaczonym YES. Ustawienia fabryczne umożliwiają regulację temperatury w zakresie od 90C do 370C. Korzystając z programatora, podstawowy zakres temperatury można zmieniać w zakresie +50C. Możliwość zmiany zakresu zamyka się w granicach 40C do 420C. Kolejny parametr to temperatura lutowania. Dzięki programatorowi jest możliwe ustawienie jednej stałej temperatury
Fot. 13. Stacja TE5000
pracy, która zostanie określona przez technologa produkcji. Po ustawieniu stałej temperatury za pomocą programatora jej zmiana przez obsługę nie jest możliwa. Pozostałe parametry to czas, po którym z chwilą odłożenia lutownicy na podstawkę nastąpi redukcja temperatury lutownicy oraz wartość tej temperatury. Poprawne ustawienie powyższych parametrów zapewnia ochronę grota przed nadmiernym utlenianiem. Każdy z tych para-
Fot. 14. Programator stacji lutowniczych
metrów może przyjąć inną wartość dla różnych narzędzi. Oznacza to, że inne parametry pracy dotyczyć będą lutownicy, a inne szczypiec. Odczyt danych statystycznych przeznaczony jest przede wszystkim dla technologa produkcji. Pozwalają mu na optymalną organizację produkcji. Parametry pozwalające na analizę statystyczną produkcji to: liczba wymienionych grotów, czas przebywania lutownicy w stanie czuwania (odłożenie lutownicy na podstawkę) oraz czas spoczynku (wyjęcie grota i odłożenie lutownicy na podstawkę).
Podsumowanie
Rozwiązania techniczne zastosowane przy konstruowaniu zestawów lutowniczych firmy JBC sprawiają, że zestawy te powinny być brane pod uwagę przez każdą firmę, która myśli o zakupie nowego sprzętu. W artykule przedstawiliśmy zarówno zestawy lutownicze, jak i najbardziej wyróżniające je rozwiązania techniczne.
Dodatkowe informacje
Dodatkowe informacje są dostępne u dystrybutora JBC - w firmie TME, tel. (42) 640-01-06 www.trne.pl, Trne@trne.pl.
64
Elektronika Praktyczna 5/2003
PROGRAMY
Program Visual Micro Lab przedstawialiśmy na łamach EP już kilka razy. Stworzyła go grupa inżynierów z kilku krajów, zrzeszonych w wirtualną grupę Advanced Micro Tools z siedzibą w Hiszpanii. Mimo że od ukazania się ostatniego artykułu nie minęło dużo czasu, twórcom programu udało się wypuścić do dziś już dwie kolejne wersje programu. Aktualna nosi numer 3.6. Przyjrzymy się jej dokładniej, gdyż z pewnością Visual Micro Lab zainteresuje wielu konstruktorów wykorzystujących w swojej pracy mikrokontrolery STG2 i AVR.
Program wspomagający realizację projektów na mikrokontrolerach AVR i ST62
Przypomnijmy pokrótce najważniejsze własności programu. Visual Micro Lab to zintegrowane środowisko projektowe (Iniegraied Developmeni Envi-Tonmeni - IDE], służące do uruchamiania systemów wykorzystujących mikrokontrolery ST62 lub AVR. Aktualnie obsługiwane są modele:
- w rodzinie ST6: ST6200, 01, 03, 08, 09, 10, 15, 20, 25,
- w rodzinie AVR: ATinyll, ATinyl2, ATinyl5, ATiny22, AT90S2343, AT90S2323, AT90S1200, AT90S2313, AT90S4433, AT90S4414, AT90S8515, AT90S4434, AT90S8535, ATmegaB, ATmegalG, ATme-gal61, ATmegal62, ATme-
ga32, ATmega64, ATmegal28.
Najważniejszą - i trzeba przyznać - niezbyt często spotykaną w innych programach cechą VMXAP-a jest połączenie funkcji klasycznego środowiska IDE oraz symulatora najczęściej wykorzystywanych w systemach mikroprocesorowych układów peryferyjnych, w tym analogowych. Do dyspozycji mamy m.in.: rezystor, kondensator, diodę LED, klawiaturę 4x4, wzmacniacz operacyjny, komparator, przetworniki C/ A i A/C, funktory logiczne, generatory
Ul
FILLOUT
OC1{PB3)
Rys, 1. Uproszczony schemat układu eksperymentalnego
różnych przebiegów, potencjometry, a także monitor I2C, alfanumeryczny wyświetlacz LCD oraz szeregowy port komunikacyjny TTY. W symulacji można również używać wszystkich komponentów mikrokontrolera, jak na przykład: timery/liczniki, UART, komparator analogowy, watchdog itd. Mogą one pracować w systemie przerwań, jeśli tylko jest to możliwe w ,,prawdziwym" mikrokontrolerze.
Atuty VMLAB-a
Najważniejszą cechą VMlAB-a jest połączenie funkcji klasycznego środowiska IDE oraz symulatora najczęściej
wykorzystywanych w systemach mikroprocesorowych układów peryferyjnych, w tym analogowych.
Uruchamianie wirtualnego sprzętu ułatwia również wirtualny oscyloskop wielokanałowy. Przyjęcie takiej koncepcji pozwoliło stworzyć narzędzie, które powinno uprościć etap uruchamiania aplikacji, a przede wszystkim obniżyć jego koszty. Konstruktorzy nie tracą czasu na mozolne lutowanie układu, nie muszą także korzystać z drogich emulatorów sprzętowych ICE (In Circuit Emulaior). Uniknięcie fizycznego montowania prototypu pozwala na rozbicie projektu na wiele zadań, które mogą być wykonywane jednocześnie przez cały zespół inżynierów. Do zera zmniejsza się ryzyko fizycznego uszkodzenia układu. Nie bez znaczenia jest fakt, że za pomocą jednego narzędzia można uruchamiać urządzenia bazujące na dwóch odmiennych rodzinach mikrokontrolerów.
W dalszym opisie skoncentrujemy się na mikrokontrolerach AVR.
Rozpoznanie bojom
Najlepszą metodą zapoznania się z programem będzie zrealizowanie konkretnego projektu. Posłużymy się do tego przykładem, zawartym w pakiecie, z tym że dla lepszego zilustrowania współpracy VMXAP-a z kompilatorem C asemblerowa wersja oryginalna została przetłumaczona na ten właśnie język. Program przedstawiono na list. 1. Zanim przystąpimy do pracy, musimy zainstalować środowisko Visual Micro Lab. Można to zrobić, pobierając odpowiednie pliki ze strony hiip;ffwww.ainiools.nei, wersja ewaluacyjna 3.6 jest także dostępna na naszym CD-ROM-ie (CD-EP5/2003P). Zainstalowanie wersji pełnej wymaga wypełnienia odpowiedniego formularza i dokonania opłaty. Po wykonaniu tych czynności, drogą elektroniczną dostarczane są kody dla wersji pełnej. Przed dokonaniem zakupu warto wypróbować VMXAP-a, instalując 21-dniową wersję ewaluacyjna. Jedynym jej ograniczeniem jest określony czas działania, po przekroczeniu którego nie będzie możliwe skompilowanie programu do postaci wykonywalnej. Program można rów-
Rys. 2. Zasada wytwarzania przebiegu sinusoidalnego z przebiegu PWM
Elektronika Praktyczna 5/2003
65
PROGRAMY
List. 1
ftdefine __AVR_AT90$2313__
#include // Most basie include files
#include // ńdd the necessary ones
#include // here
#include
unsigned char angle;
unsigned char sme_tbl [12S]__attribute__< (progmem) ) =
{
0,0,l,l,2,3,4,6,7,9,10,12,14,16,lS,21,23,25,2S,31, 33,36,39,42,45,4S,51,54,57,60,64,67,70,73,76,79,S2, 85,SS,91,94,96,99,102,104,106,109,111,113,115,117,118, 120,121,123,124,125,126,126,127,127,127,127,127,127, 127,126,126,125,124,123,121,120,11S,117,115,113,111, 109,106,104,102,99,96,94,91,SS.S5.S2,79,76,73,70,67, 64.60.57.54.51.48,45.42.39.36.33.31.28,25.23.21.1S.16. 14.12.10.9.7.6.4.3.2.1.1.0.0.0.0.0
SIGNALfSIG_OVERFLOWl) { unsigned char temp;
angle= (angle) &0x7f; terop=PRG_RDB(Lsine_tbl [angle++]) ; CCR1H=O;
int mainfvoid) {
DDRB=0x0S;
sbifTIMSK.TOIEl);
TCCRlA=lPWM10 I 1COM1A1;
TCCR1B=1C31O;
angle=0;
seif);
Whilefl);
nieś zobaczyć "w akcji" na filmie avi zamieszczonym na CD-EP5/2 003B.
Instalator zakłada na dysku domyślny katalog c:\VMLAB, w którym umieszcza wszystkie niezbędne pliki. Visual Micro Lab zawiera w sobie asembler obsługiwanych mikrokontrole-rów, "umożliwia również korzystanie z kompilatora GNU C (GCC) (tylko dla AVR-ów) lub dowolnego innego kompilatora generującego pliki COFF. Kompilatory muszą być jednak zainstalowane na komputerze niezależnie od VMXAB-a. Po wykonaniu wszystkich czynności niezbędnych do przygotowania sobie środowiska możemy już przystąpić do prawdziwej pracy inży-
Rys. 3. Okno kreacji projektu
nierskiej. Wracamy zatem do projektu, który będziemy wspólnie tworzyć. Będzie to generator przebiegu sinusoidalnego, wykorzystujący Tirnei 1 pracujący w trybie modulatora PWM.
Na rys. 1 przedstawiono uproszczony schemat ideowy układu eksperymentalnego. Zasada działania jest następująca. Timer 1 generuje przebieg PWW o zmienianym w dość specyficzny sposób współczyniku wypełnienia (rys. 2). Do wyjścia OCl (PB3) dołączono układ całkujący składający się z rezystora R2 i kondensatora Cl. W wyniku działania tego układu na wyjściu FIL_OUT, przy odpowiednim doborze wartości elementów R2 i Cl, uzyskuje się przebieg sinusoidalny. Wartości kolejnych próbek sinusoidy są zawarte w tablicy sine_tbl. Zmieniając jej poszczególne elementy w niemal natychmiastowy sposób, bez konieczności programowania rzeczywistego rnikrokon troi era, można zaobserwować skutek na wyjściu układu. Podobnie zresztą będziemy badać przebiegi wyjściowe dla różnych wartości elementów RC. Wartość próbki jest pobierana w przerwaniu Tirneia 1, generowanego po jego przepełnieniu.
Mając podstawy teoretyczne, możemy przystąpić do dzieła. Otwieramy nowy projekt, wybierając polecenie Projeci->New projeci. Pojawia się okno kreatora projektu (rys. 3), w którym
Rys. 4. Plik makefile generowany przez VMLAB
należy wypełnić odpowiednie pola. Po pierwsze: nadajemy nazwę np. sin-wavec.prj, po drugie: wybieramy typ mikrokontrolera, np. AT90S2313, po trzecie określamy, czy będzie to program pisany w asemblerze, czy w języku C. Przyjmujemy wersję GNU C i zgadzamy się na automatyczne wygenerowanie pliku makefile, co z pewnością ucieszy wielu z nas. Na koniec wreszcie decydujemy o tym, jakie pliki źródłowe będą wchodziły do projektu (przycisk Add ihis to lisi). W naszym przykładzie będzie to tylko jeden plik. Akceptujemy proponowaną nazwę sinewave.c, na co program odpowiada, że plikiem wynikowym będzie sinewa-ve.hex. Ustawienia akceptujemy naciśnięciem OK.
Teraz ukazują się liczne okna programu, z czego dwa są najważniejsze na tym etapie. Pierwsze z nich zawiera treść pliku makefile. Można go ręcznie wyedytowć, jeśli proponowane ustawienia są nieodpowiednie. W szczególności, często będą zapewne zmieniane opcje optymalizacji kompilatora (pozycja #compiler flags). Jak widać na rys. 4, okno ma jeszcze zakładkę sinwavec.c, w której będziemy tworzyć wersję źródłową, ale to za chwilę. Wcześniej zajmiemy się naszym wirtualnym sprzętem. W tym celu odszukujemy tzw. okno projektu, np. wybierając polecenia View->Projeci File. Są już tam pewne dane przeniesione z pliku makefile oraz dodatkowe
Rys. 5. Okno projektu
Elektronika Praktyczna 5/2003
PROGRAMY
wiednią pozycję z rozwijanej listy umieszczonej na końcu paska na-
Wszystkie miejsca, na które trzeba zwrócić uwagę, są sygnalizowane wykrzyknikami umieszczonymi przed
Rys. 6. Pasek narzędziowy programu Visual Micro Lab rzędziowego (rys. 6). treścią komunikatu Kolor żółty ozna-
informacje o montowanym układzie. Proponuję zmienić częstotliwość rezonatora kwarcowego na 8 MHz - do weryfikacji układu dysponowałem akurat taką wersją. W polu CLOCK należy więc wpisać parametr Smeg.
Teraz pozostało jeszcze dołączenie układu całkującego. Nie sposób tu omówić wszystkich możliwości, jakie daje nam w tym względzie program. Są one świetnie opisane wraz z przykładami w pomocy, niestety tylko w wersji angielskiej. Nasz układ całkujący będzie miał postać: R2 PB3 fil_out 100K ;R2 dołączony do PB3 ;i do wyjścia fil_out Cl fil_out vss lOn ;Cl dołączony do wyjścia ;fil_out i masy
Ponadto warto dołączyć oscyloskop do końcówki PP3 (przebieg PWM) i do wyjścia fil_out: .plot v(PB3) v(fil_out);podłączenie oscyloskopu
Zawartość całego pliku projektu przedstawiono na rys. 5. Po wykonaniu wszystkich czynności edycyjnych okno to można samknąć. Teraz możemy przystąpić do pisania wersji źródłowej naszego programu. Zaletą VMXAB-a jest możliwość zdefiniowania pięciu różnych organizacji ekranu. Jest to bardzo przydatna właściwość, ponieważ rozmieszczenie wszystkich okien programu nawet na monitorze 17-calowym, przy rozdzielczości 1024x768 jest prawie niemożliwe. Zapamiętywanie widoków pozwoli szybko przechodzić pomiędzy ekranami zawierającymi istotne w danym momencie informacje. Widoki zmienia się, wybierając odpo-
Pierwsza faza programu najczęściej będzie polegała na sięganiu do źródła, kompilowaniu programu, przeglądaniu komunikatów kompilatora i ponownej edycji. Warto więc w jednym z widoków podzielić ekran tylko na dwa okna: edycyjne i komunikatów. Zapewni nam to dużą czytelność i komfort podczas wstępnych prac z programem. Po doprowadzeniu tekstu programu do stanu umożliwiającego kompilację, uruchamiamy ją, wybierając polecenie Projeci->Build.
Interesujący wybór
Twórcy VMLAB-a skupili się na dwóch
rodzinach ni ikr okontr oler ów: - ST62: ST6200, 01, 03, 08, 09, 10,
15, 20, 25,
- AVR: ATinyll, ATinyl2, Alinyl5,
ATiny22, AT90S2343, AT90S2323,
AT90S1200, AT90S2313, AT90S4433,
AT90S4414, AT90S8515, AT90S4434,
AT90S8535, ATmegaS, ATmegal6, ATmegal61, ATmegal62, ATmega32,
ATmega64, Atmegal28.
Wybór jest - jak na Polskę - nietypowy,
ale dowodzi dużej popularności ST62
w innych krajach europejskich.
Można też użyć klawisza F9 lub ikony Build (środkowa ikona na pasku narzędziowym). W trakcie kompilacji w oknie Messages pojawiają się wszystkie komunikaty generowane przez kompilator. Jeśli wystąpi choćby jeden błąd, kursor edycyjny zostanie ustawiony w podejrzanym o to miejscu. Czasami jednak faktyczna nieprawidłowość może mieć miejsce gdzie indziej. Na przykład brak średnika kończącego linię programu C spowoduje wystąpienie błędu dopiero w dalszej części.
cza, że jest to tylko ostrzeżenie, program będzie działał. Przykładowo VMXAP ostrzega w ten sposób przed zadeklarowaniem zmiennej, która nie jest używana dalej w żadnym miejscu programu. Gorzej, gdy wykrzyknik ma kolor czerwony. W takiej sytuacji kompilator nie tworzy pliku wykonywalnego, a więc uruchomienie programu nie będzie możliwe. Tego typu błędy trzeba bezwzględnie poprawić. Czasami zdarza się, że jedna nieprawidłowość w źródle powoduje wygenerowanie całej listy błędów. Ich eliminacja jest tym, co programiści lubią najbardziej. Niestety wszystko co dobre szybko się kończy i wreszcie pojawia się oczekiwany mimo wszystko komunikat Suc-cessf AU ready to run (rys* 7). Od tego momentu rozpoczyna się kolejna faza uruchamiania aplikacji - symulacja. Teraz możemy stworzyć sobie kolejny ekran roboczy, który będzie zawierał przydatne do symulacji składniki - przykład pokazano na rys. 8. Na pewno warto umieścić na nim choćby niewielkie okno źródła programu. Wykorzystując krokowy tryb pracy, będzie w nim zaznaczana aktualnie wykonywana instrukcja na poziomie odpowiadającym wersji źródłowej (język C lub asembler). Jeśli program jest napisany w C, a chcemy wykonywać go na poziomie rozkazów mikrokontrolera, konieczne będzie dołożenie okna Program rnernoiy i uczynienie go aktywnym. Po lewej stronie każdej instrukcji widnieją malutkie przyciski ekranowe. Ich naciśnięcie powoduje wstawienie w danym miejscu programu pułapki (breakpoini). Aktywnych pułapek może być wiele.
Rys. 7. Przykładowy widok okna roboczego
Rys. S. Program "Visual Micro Lab" podczas pracy
Elektronika Praktyczna 5/2003
67
PROGRAMY

Rys. 9. Okno panelu sterujqcego
Podczas prac uruchomieniowych częs-to zachodzi konieczność pomiaru cza-su wykonywania się np. określonej procedury. Zadanie to nie jest najmocniejszą stroną VMXAB-a, lepiej chyba robi to AVR Studio, jednak VMLAB ma w tym względzie pewną dość atrakcyjną cechę. Wyświetla on mianowicie w oknie programu graficzną interpretację "czasu przebywania" jednostki centralnej w określonym miejscu programu. Są to żółte paski nałożone na poszczególne instrukcje. Trzeba jednak pamiętać, że skala czasu jest logarytmiczna! Trudno mówić
0 precyzji takiego pomiaru, ale w niektórych sytuacjach informacja podana w ten sposób może okazać się bardzo przydatna.
Nie sposób wyobrazić sobie uruchamiania programu bez możliwości podglądania zasobów mikro kontrolera. W Visual Micro Lab oczywiście taką możliwość mamy
1 to w dość atrakcyjnej formie (rys* 8). Poszczególne komponenty mikrokontro-lera są zgrupowane w kilku niezależnych oknach, np.: rejestry, pamięć programu, pamięć danych SRAM, pamięć EEPROM, porty oraz UART, timery, watchdog. Zawartość każdego z nich może być wyświetlana w postaci binarnej, hexadecymalnej, całkowitoliczbo-"wej, a nawet w kodach ASCII. Na "wszystkie pola jest nałożony półprzeźroczysty pasek graficzny, który w postaci analogowej pokazuje stan danego komponentu. Każdy z rejestrów może być w dowolnej chwili zmieniony. Niestety nie dotyczy to licznika programu, co oznacza, że program może być wykonany tylko w takiej kolejności, jak w układzie rzeczywistym. Użytkownik ma też możliwość podglądania zmiennych programu. Bywają z tym niestety problemy, zmienne te nie zawsze są dostępne. Nie można też modyfikować w prosty sposób ich wartości. Szkoda. Pewnym wyjściem z sytuacji jest jedynie podejrzenie miejsca przechowywania (rejestry, pamięć RAM) i edycja na tym poziomie. Specyficznym oknem VMXAB-a jest panel tzw. sterujący. Zawiera on zewnętrzne urządzenia peryferyjne wykorzystywane w aplikacji
(rys. 9). Może to być klawiatura 4x4, alfanumeryczny wyświetlacz LCD, wirtualny terminal TTY, diody świecące, potencjometry. Ich parametry konfiguru-je się w oknie projektu.
Popatrzmy teraz, jak to wszystko działa w praktyce. Program jest już wyczyszczony ze wszystkich błędów, możemy go uruchomić. Przygotowujemy sobie ekran np. tak, jak rys. 8 i naciskamy ikonkę z semaforem lub klawisz p5. Nasz wirtualny system zaczyna działać. Na oscyloskopie pojawiają się przebiegi generowane przez mikro-kontroler. Aby przyjrzeć się nieco dokładniej, jak to robi, zatrzymujemy program, naciskając ikonkę ze znakiem Stop i kolejne rozkazy wykonujemy krokowo. Tu okazuje się, że właściwa część programu to martwa pętla, w której mikrokontroler właściwie przebywa przez większość czasu. Jest to bardzo wyraźnie widoczne na wspomnianych wcześniej paskach pod instrukcjami programu. CPU jedynie na krótkie okresy przechodzi do procedury obsługi przerwania, w której następuje modyfikacja parametrów genero-
Także dla fanów AVR-GCC
Naturalnym "partnerem" VMLAB-a jest
kompilator AVR-GCC. Dzięki temu
połączeniu fani tego kompilatora
uzyskują łatwy dostęp do symulacji
pisanych programów.
wanego przebiegu PWM. Krokowe wykonywanie programu do momentu, aż zostanie wygenerowane przerwanie mogłoby trwać bardzo długo. Dlatego wygodniej będzie założyć pułapkę w procedurze przerwania i puścić program w trybie ciągłym. Po zatrzymaniu się na pułapce, kontynuujemy pracę krokowo. Wykonując program, warto przyjrzeć się, jak są mieniane zawartości rejestrów np. OCRlnAAH i OCR-nAL (okno Peripherals-> Tirnei 1). Przebieg na oscyloskopie może być dość swobodnie skalowany, umożliwiając ogarnięcie całości w większym czasie, a także przyjrzenie się detalom z rozdzielczością 100 ns/działkę. Usta-
wiając na oscylogramie dwa kursory, można dokonać prostego pomiaru czasu. Ciekawym doświadczeniem może być np. zbadanie wpływu wartości elementów R2, Cl na kształt generowanego przebiegu. Odpowiednie modyfikacje przeprowadzamy w oknie projektu.
To jest Twoja chwila prawdy
Można powiedzieć, że wszystko, co robiliśmy do tej pory, to była tylko zabawa. To dość przyjemne wrażenie, gdy opracowując poważne projekty, wykorzystując profesjonalne narzędzie, czerpiemy taką radość z pracy. Teraz jednak przechodzimy do końcowego etapu projektu. Odkładamy program, bierzemy lutownicę do ręki i... z drżeniem serca oczekujemy końcowego rezultatu. Nasz projekt nie był zbyt skomplikowany, trzeba to uczciwie przyznać. Ale zdarzało się wielokrotnie z innymi narzędziami, że nawet w takich przypadkach wyniki symulacji bywały rażąco odmienne od rzeczywistych. Mając akurat pod ręką zestaw, na którym mógłbym zweryfikować działanie opisywanego wyżej projektu, nie mogłem sobie tego odmówić. Oscylogramy układu rzeczywistego zdjęte oscyloskopem cyfrowym są przedstawione na rys. 10 i 11. Rezultat porównania jest niemal szokujący. Okazało się, że symulacja dała bardzo wierne wyniki zarówno pod względem jakościowym, jak i ilościowym. Oczywiście taki test nie może być podstawą do wydania całkowicie wiarygodnej opinii o programie. Mimo to oceniam program bardzo wysoko, a wykorzystuję go już od dość dawna. Nie jest on pozbawiony pewnych błędów, ale jak widać rozwija się w sposób ciągły, dając nadzieję na stopniowe eliminowanie błędów. Bardzo dużą zaletą jest natomiast dość dobra integracja z kompilatorem GCC oraz dużo lepsze symulowanie wewnętrznych bloków funkcjonalnych mikro-kontrolera, niż robi to AVR Studio. Zachęcam do wypróbowania. Jarosław Doliński, AVT jaroslaw.dolinski@ep.com.pl
Rys. 10. Przebieg generowany w układzie rzeczywistym
Rys. 11. Przebieg rzeczywisty w powiększeniu
68
Elektronika Praktyczna 5/2003
SPRZĘT ^m
Ekspansja układów
cyfrowych
w urządzeniach
p orni aro wych
spowodowała, że ich
parametry ułegły
znaczące/ poprawie,
natomiast ceny
zbłiżyły się do
reaiiów także mniej
zasobnych
eiektronikó w.
W artykuie
prze ds tawi amy
rynkową nowość -
cyfrowy oscyioskop
firmy Instek - który
jest ideainym przykładem nowoczesnego
urządzenia, którego parametry
pozwalają traktować poważnie, a cenę
można okreśiić jako przyjazną.
Alternatywa
Instek GDS82OS
Moja mama zawsze mawiała, że "biednego nie stać na tanie rzeczy". Ostatnio przekonałem się o tym na własnej skórze kupując w promocji w jakimś hipermarkecie T-shirta, który nie dotrwał w całości do pierwszego prania. Gdyby chociaż jakiś napis informował mnie, że jest to produkt jednorazowy...
Wyciągając wnioski z doświadczeń podobnych wspomnianemu, nieufnie przystępowałem do testów cyfrowego oscyloskopu firmy Instek zwłaszcza, że jego cena wziąwszy pod uwagę deklarowane przez producenta parametry jest atrakcyjna. Jaśniejszym punktem był fakt, że Instek nie jest firmą tak anonimową, jak być może nam się wydaje. Przypomniałem sobie bowiem, że jakiś czas temu testowałem generator arbitrarny tego samego pochodzenia, który zdobył sobie moje duże uznanie. Ośmielony nieco tym wspomnieniem z zaciekawieniem otworzyłem pudełko. Wielokrotnie, przy różnych okazjach mówi się o tzw. pierwszym wrażeniu. W tym przypadku było ono jak najbardziej pozytywne: bardzo ładnie zaprojek-
towana obudowa, a do wykonania obudowy i klawiszy zastosowano wysokiej jakości materiały. Nie razi także zastosowanie gumowych przycisków. Czołowi producenci bądź co bądź też je stosują, więc nie traktuję tego jako wady. Czytelnie i ergonomicznie rozmieszczenie poszczególnych elementów regulacyjnych okazało się bardzo istotne w praktyce.
Poddawany próbom oscyloskop cyfrowy GDS820S jest przedstawicielem rodziny sześciu przyrządów tej klasy, będących w ofercie Inste-ka. Można powiedzieć, że jest w niej "średniakiem". Posiada pasmo analogowe 150 MHz przy częstotliwości próbkowania 100 MSa/s, ale dzięki zastosowanemu patentowi (notabene Tektronixa) - Equiva-lent Time Sampling, parametr ten osiąga całkiem przyzwoitą wartość 25 GSa/s. Obowiązuje ona niestety tylko dla przebiegów okresowych. Ładny mi "średniak"...
Każdy z dwóch kanałów jest wyposażony w pamięć próbek o pojemności 125 kpunktów. Ekran LCD o przekątnej 5,7" (w badanej wersji
mono, ale są także wersje z ekranem kolorowym) jest podzielony na 12 działek w poziomie i 8 w pionie. Poza obszarem roboczym wyświetlane też są pewne informacje dodatkowe, jak wartości nastaw czy menu. Rozdzielczość pionowa ekranu wynosi 8 bitów. Częstotliwość mierzonych przebiegów jest wyświetlana na 6 cyfrach. Oscyloskop wyposażono w wiele sposobów wyzwalania, zapewniając stabilność obrazu chyba w każdych warunkach. Akwizycja danych może być prowadzona w trybie próbkowania, wykrywania impulsów szpilkowych lub uśredniania. Niezależnie od tego, mamy do dyspozycji wyświetlanie przebiegów z tzw. akumulacją. Opcja ta jest bardzo przydatna podczas analizowania fluktuacji fazowych i amplitudowych sygnału. Do określenia zaś zależności fazowych między dwoma sygnałami świetnie nadaje się praca w trybie X-Y, oczywiście również dostępna w GDS820S. Ciekawe możliwości są "zaszyte" pod klawiszem Save/Re-call. Pozwala on na zapamiętanie 15 różnych nastaw przyrządu, wy-
70
Elektronika Praktyczna 5/2003
SPRZĘT
korzystywanych później w trybie programowym, a także określenie dopuszczalnego marginesu zmian mierzonego sygnału, sprawdzanego następnie funkcją Go-NoGo. Jeśli mierzony przebieg wykroczy poza zdefiniowany zakres, generowany jest sygnał błędu, którym może być wbudowany buzzer lub specjalny sygnał Go-NoGo. Jest on wyprowadzony na tylnej ścianie oscyloskopu. Jak większość oscyloskopów cyfrowych, także GDS820S dysponuje bogatymi zdolnościami pomiarowymi. Bez problemu można określić wartość między szczytową, maksymalną i minimalną, średnią, skuteczną (RMS), częstotliwość, okres. Bez konieczności żmudnego ustawiania kursorów, oscyloskop podaje czasy narastania i opadania impulsów, a także współczynnik wypełnienia mierzonego przebiegu. Mając taki przyrząd, w wielu przypadkach staje się zbędne posiadanie analizatora widma - zastępuje je funkcja FFT. Wymianę danych pomiędzy oscyloskopem, a np.
komputerem umożliwia wbudowany interfejs RS232 oraz USB. GPIB występuje opcjonalnie.
Przesiadka z oscyloskopu analogowego, na cyfrowy może być czasami niezbyt miła. Przebiegi na ekranie LCD wyglądają nieco inaczej niż na lampie oscyloskopowej, inaczej też są tworzone (wymagają akwizycji danych). Rozdzielczość 8-bitowa wyraźnie nadaje im "cyfrowego" charakteru. W zamian za to dostajemy naprawdę wiele funkcji niemożliwych do uzyskania w oscyloskopie analogowym. Pomocny w odpowiednim ustawieniu wszystkich pokręteł i przycisków okazuje się często klawisz Auto set. Nie znam jednak chyba takiego elektronika, który od razu nie zacząłby kręcić wszystkim, czym się da. Tu niestety czyha dość duże niebezpieczeństwo - spokojnie jednak, nam nic nie grozi! Chodzi o to, że na ekranie możemy zobaczyć zupełnie co innego, niż się spodziewamy. Prawa fizyki są bezlitosne. Przed rozpoczęciem pracy z takim oscylo-
skopem jak GDS82 0S, warto zapoznać się z teorią dotycząca próbkowania sygnałów, w szczególności z twierdzeniem Nyąuista.
Jak to często bywa po przeprowadzonych testach, z żalem muszę chować przyrząd do pudełka. Tych kilka godzin, które mu poświęciłem, były dla mnie prawdziwą przyjemnością. Myślę, że podobne odczucia mają także jego użytkownicy. Z pewnością nie będzie to dla nich zabawka jednorazowa, a naprawdę bardzo użyteczne narzędzie w profesjonalnych poczynaniach. Użyteczne i niezbyt drogie. Jarosław Doliński, AVT jaroslaw.dolinski@ep.com.pl
Dodatkowe informacje
Cenanetto:............................................4100 zt.
Przyrząd do testów udostępniła firma NDN, www.ndn.com.pl,tel. (22) 641-15-47.
Szczegółowe dane techniczne są dostępne na stronie: http://www.goodwill.com.tw/Products/
GDS-820-840 E.htm.
Elektronika Praktyczna 5/2003
Aułoroułer
PROGRAMY
Inną funkcją Specctry, o której warto wspomnieć przy okazji omawiania trybu Place Modę, jest grupowanie elementów w tzw. klastry. Jest to zdefiniowana przez użytkownika (na podstawie określonych kryteriów np. powiązań elektrycznych) grupa komponentów, która w pewnych sytuacjach może być traktowana jako pojedynczy element. Wiązanie elementów w grupę może być pomocne np. gdy pewne elementy muszą pozostawać w określonym położeniu względem siebie lub nachodzić na siebie, co może zdarzyć się w przypadku gęsto upakowanych obwodów drukowanych. Definiowanie grupy odbywa się poprzez wskazanie indywidualnych elementów oraz określenie typu tworzonego klastra. Do wyboru mamy następujące typy:
- Floor Plan - grupa komponentów, która ma być umieszczona wewnątrz lub na zewnątrz zdefiniowanego obszaru (room).
- Super - grupa komponentów, których wzajemne położenie oraz rotacja ma pozostać stała w toku dalszego projektowania (chyba że klaster zostanie rozwiązany). Elementy składowe traktowane są w tym wypadku jako jeden super-komponent.
- Piggyback - grupa komponentów, które mogą "nachodzić" na siebie bez naruszania reguł projektowych.
Rys. 5.
- Super Piggyback - grupa komponentów, których wzajemne położenie oraz rotacja ma pozostać stała w toku prac projektowych. Dodatkowo w Super Piggyback elementy mogą "nachodzić" na siebie bez naruszania reguł projektowych. W celu utworzenia grupy należy skorzystać z polecenia Menu>Defi-ne>Clusier, a następnie wybrać metodę grupowania. Możemy bowiem grupować elementy, wybierając je spośród listy dostępnych (Define by Lisi - rys. 5), zgrupować elementy wcześniej zaznaczone (Selecied), utworzyć grupę zawierającą wszystkie elementy związane z wybranymi ścieżkami sygnałowymi lub zasilającymi (By Net), albo zgrupować te elementy, które są sygnałowo związane z dowolnie wybranym (Seed). Specctra pozwala na dostosowanie ustawień dotyczących obszaru roboczego i zestawu informacji, jakie są w nim prezentowane w zależności od aktualnych potrzeb projektanta. Modyfikacji tych parametrów (zarówno w trybie Place Modę, jak i w Rouie Modę) oraz właściwości aplikacji pod kątem wizualizacji projektu w obszarze roboczym możemy dokonać w oknie Layers (rys. 6). Wykorzystując okno, możemy w prosty sposób zmieniać takie właściwości jak: "widzialność" poszczególnych warstw (ich włączanie lub wyłączanie), określać warunek edycji danych grup obiektów wchodzących w skład projektu, określać priorytet oraz kierunek wytyczania ścieżek na poszczególnych warstwach, ustawiać dowolnie kolorystykę poszczególnych grup obiektów itd. Możliwość dowolnego określania tych i innych właściwości poprawia komfort pracy z aplikacją i ułatwia proces projektowania szczególnie
Zapraszamy do lektury
kolejnego artykułu z cyklu,
w którym prezentujemy
możliwości autoroutera
Specctra.
W tej części kontynuujemy
opis opcji związanych
z działaniem programu
w trybie Place Modę.
w przypadku złożonych, gęsto upakowanych płytek. Możliwość włączania lub wyłączania indywidualnych warstw i grup obiektów pozwala ponadto na lepszą kontrolę opracowywanego obwodu PCB (możemy np. wizualizować w obszarze roboczym dowolną grupę lub grupy obiektów, takich jak ścieżki, piny, przelotki lub włączać wszystkie elementy na wybranej warstwie, warstwach). Wywołanie okna Layers realizowane jest za pomocą ikony o tej samej nazwie, która znajduje się na pas-ku narzędzi lub za pomocą polecenia Layers dostępnego z poziomu Me-
nu>View. Każdy wiersz okna reprezentuje inną warstwę fizyczną lub warstwę systemową. Poszczególne warstwy fizyczne odpowiadają poszczególnym warstwom projektu, natomiast warstwy systemowe są czysto wirtualne i grupują po prostu obiekty tego samego typu (ścieżki, prze-lotki, etykiety elementów itp.), co pozwala na dowolne

=9


'" 4 I" El*-
Ptnm rl
^^_________ gB
Ś-I-PP EH
minę UlAp^dl

~ ,
Elektronika Praktyczna 5/2003
73
PROGRAMY
określanie zestawu informacji, jakie wyświetlane są w obszarze roboczym. Każda warstwa sygnałowa ma 5 przycisków: Layer ID, Routing Di-rection, Layer Pńońty, Object Selec-tion oraz Layer View, sterujących poszczególnymi "właściwościami" warstwy. Warstwy niesygnałowe mają trzy przyciski: Layer ID, Object Selection, Layer View.
W przypadku złożonych projektów bardzo pomocna może okazać się funkcja umożliwiająca wyłączanie grupy obiektów danego typu tak, aby nie można było wybrać ich do edycji "podświetlać". Obiekt "wyłączony" jest w tym trybie widoczny dla projektanta, niemożliwe jest jedynie poddanie go jakiejkolwiek edycji. Ma to znaczenie w sytuacji, jeśli elementy rozmieszczone są gęsto tak, że
obiekty związane z nimi (np. etykiety) zachodzą na siebie lub gdy elementy nakładają się wizualnie (są po przeciwnych stronach płytki).
Okno Layers pozwala ponadto na ustawianie priorytetu poszczególnych warstw na etapie wytyczania ścieżek. Opcja ta dotyczy jedynie tych warstw, na których mogą być prowadzone ścieżki. Zmiana priorytetu realizowana jest tutaj za pomocą przycisku Layer Pńońty Aktualny status danej warstwy odzwierciedla symbol ołówka znajdujący się na przycisku. Gruby ołówek symbolizuje warstwę podstawową natomiast cienki drugorzędną. W obszarze Layers możemy także ustalić kierunek wytyczania ścieżek w odniesieniu do każdej z warstw. W tym przypadku powinniśmy posłużyć się
przyciskiem Routing Direction, co umożliwi nam wybór jednego z siedmiu wariantów prowadzenia ścieżek na danej warstwie sygnałowej:
- Off - prowadzenie ścieżek zabronione,
- Vertical - pionowo,
- Hońzontal - poziomo,
- Orthogonal - pionowo i poziomo,
- Diagonal - po przekątnych,
- Positive diagonal - preferowany kierunek z dolnej lewej części płytki do górnej prawej,
- Negative diagonal - preferowany kierunek z górnej lewej części płytki do dolnej prawej.
RK
Dodatkowe informacje
Więcej informacji można uzyskać w firmie RK-System, www.rk-system.com.pl.
74
Elektronika Praktyczna 5/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 v*/yodrębnionej serii ,Miniprojekty" o numeracji zaczynającej się od 1000,
Uniwersalny moduł interfejsowy USB
Zapewne już
wkrótce interfejsy RS232
całkowicie zanikną w
komputerach, zastąpione
przez USB oraz
Firewire. Narzuca to
nowe wymogi dla
amatorsko
konstruo wa nych
urządzeń
mikroprocesorowych,
które będą komunikować
się z komputerem.
Obecnie jednak użycie
USB we własnych
urządzeniach stało się -
m.in. dzięki układom
FTDI - całkiem proste.
Przed sta wi o ny
w niniejszym
miniprojekcie
uniwersalny moduł
z układem FT8U232BM
służy właśnie do tego
celu.
Schemat modułu (rys. 1) jest jedną z typowych aplikacji proponowanych przez producenta. Układ FTSU232 pracuje tutaj w układzie z samodzielnym zasilaniem. Tranzystor Ql zabezpiecza wyłączoną magistralę USB przed podaniem napięcia z zewnątrz. Pamięć U2 pozwala na wpisanie własnych identyfikatorów modułu. Płytka umożliwia też rozdzielenie obwodów zasilania: +5 V dla FT3U232 oraz niższe napięcie (zazwyczaj +3,3 V) dla interfejsu I/O współpracującego bezpośrednio z dołączonym urządzeniem (nie lutujemy wtedy zworki R7).
Do montażu użyto możliwie jak najmniejszych elementów SMD wlutowanych obustronnie na dwuwarstwową płytkę drukowaną (rys. 2). Umożliwiło to zachowanie niewielkich rozmiarów - moduł jest przewidziany do umieszczania bezpośrednio na obudowie urządzenia (podobnie jak dawniej gniazdo RS232) i podłączenia taśmą na stałe albo poprzez wtyk (rozkład wyprowadzeń na rys. 3).
Zlutowany moduł - po w st ę p n ej og ól n ej ko ntr ol i (ew. zwarcia na druku, wadliwe luty itp.) zasilamy napięciem 5 V i konfigurujemy przy użyciu programu narzędziowego Fid2xxsi.exe (bardziej szczegółowe opisy w EP10/2002). Prototyp otrzymał nazwę "uniwersalny moduł USB", która jest użyta w załączonym przykładzie oprogramowania.
Dla przetestowania możliwości komunikacyjnych moduł został dołączony (w minimalnej konfiguracji -tylko linie RxD oraz TxD) do UART-u mi kr o kontrolera AT-mega 8 pracującego z wewnętrznym oscylatorem 8 MHz. Tutaj od razu objawia się ogromna zaleta FT8U232, polegająca na możliwości bardzo elastycznego ustawiania szybkości transmisji.
Z poziomu aplikacji PC możemy komunikować się z modułem na trzy sposoby: - używając sterownika wirtualnego portu szeregowego dla wykorzystania dotychczasowych, tradycyjnych rozwiązań obsługi portów COM (tutaj także możemy dowolnie ustawić szybkość
zmieniając wpisy w pliku, inf),
- posługując się funkcjami Classic Inteiface w połączeniu ze sterownikiem D2XX Direct Driver,
- używając interfejsu FT-Win32 API, który pozwala na proste przystosowanie dotychczasowego kodu do nowych celów.
Przykładowa aplikacja została napisana w Delphi 6 PE. Ma ona bardzo ograniczone i podstawowe możliwości gdyż służyła tylko do pierwszych testów. Wykorzystuje funkcje Classic Interface do skonfigurowania parametrów transmisji a następnie do wysłania i odebrania 32-bajtowej ramki danych. Po stronie mi kr o kontrolera obsługa transmisji jest realizowana całkowicie przy pomocy przerwań. Próbny zestaw spisał się znakomicie zarówno przy 125 jak i 250 kbd.
OP1
PS
P11
Rys. I. Schemat elektryczny uniwersalnego modułu USB
Elektronika Praktyczna 5/2003
75
MINIPROJEKTY
Rys. 2. Płytko clrukowono modułu i rozmieszczenie elementów
Wszystkie kody źródłowe znajdują się na CD-EP5/ 2003B, natomiast bardziej rozbudowany przykład apli-
GND o o +5V
RkD 0 0 T*D
CT8 0 0 RTS
DSR 0 0 DTR
Rl 0 0 DCD
VcdO 0 0 SLEEP
Rys. 3. Wyprowadzenia złgcza modułu (widok od góry)
kacji transmisyjnej Delphi znajdziemy na stronie producenta (www.fidi-chip.com), podobnie jak szczegółową dokumentację omawianych tu tylko skrótowo zagadnień. Jurek Szczesiul,AVT jerzy. szczes iu \@ ep. co m. pl
WYKAZ ELEMENTÓW Rezystory
Rl: lOOkO 1206
R2, R3: 27D 0305
R4, R9: lOkO 0305
R5: 1.5kO 0805
Ró: 470D 120Ó
R7: 0 120Ó
R8: 2,2kO 1206
Kondensatory
Cl: 1O^F/1ÓV tantalowy 3216
C2: 33nF 0805
C3...C5: lOOnF 1206 Półprzewodniki
Ul: FT8U232BM
U2: 93C4Ó SOS
Ql: tranzystor n-p-n małej
mocy SOT23
Różne
Yl: rezonator ceramiczny
6,000 MHz CSTCCÓ,00MG-TC
(Murata)
Gniazdo USB typu B
listwa golclpin 2x5
Płytka drukowana jest dostępna w AVT - oznaczenie AVT-1365. Wzory płytek drukowanych w formacie PDF są dostępne w Iniernecie pod adresem; http:llwww.ep.com.plftpdflmajQ3.htm
oraz na płycie CD-EP5/2003 w katalogu PCB.
Dwupunktowy termometr na RS232
W artykule
przedstawiamy projekt
prostego miernika
temperatury - przystawki
do PC, który można
wykorzystać zarówno do
pomiaru temperatury
otoczenia (np. wewnątrz
i na zewnątrz
mieszkania) lub
m o ni tor o wa nia
temperatury istotnych
elementów PC-ta.
R ekom en da cje:
urządzenie polecamy
zarówno tym
Czytelnikom, którzy
dzięki niemu będą
starali się uniknąć
zbliżających się upałów,
jak i miłośnikom
o verclo cking u.
Schemat elektryczny termometru znajduje się na rys. 1. Jest to prosty adapter RS232<->I2C, wyposażony dodatkowo w stabilizator napięcia +5 V, które służy do zasilania czujników temperatury DS1621 (lub DS1631). Napięcie zasilające jest pobierane bezpośrednio z portu RS232, do którego dołącza się termometr.
Układ Ul jest zamontowany na płytce interfejsu, w związku z czym można go wykorzystać do pomiaru temperatury np. wewnątrz pomieszczenia. Drugi czujnik temperatury jest montowany na osobnej płytce drukowanej, dzięki czemu można go wykorzystać np. do pomiaru temperatury na zewnątrz pomieszczenia. Zakres mierzonych temperatur wynosi: -20...+125^ (-4...257F). Należy pamiętać, że wykorzystanie w projekcie czujników z interfejsem I2C ogranicza maksymalny zasięg transmisji, w związku z czym należy unikać połączeń o długości powyżej 80 cm (wynik uzyskałem w wyniku ekspery-
mentów, w niektórych przypadkach może się okazać, że odległość ta jest nieco mniejsza lub większa).
Układ zmontowano na płytce drukowanej, której schemat montażowy znajduje się na rys. 2. Część płytki, na której zamontowano U2 można odłamać, a połączenia pomiędzy płytkami umożliwiają złącza oznaczone Jl.
Pracą termometru steruje oprogramowanie udostępniane bezpłatnie na stronie http://www.ricc i biiii. co ni/
yg^OOOOOO
D
Rys. 2. Rozmieszczenie elementów na płytce drukowanej
COM
DB8F
Rys. 1. Schemat elektryczny termometru
pc_iherni.hini, publikujemy je także na płycie CD-EP5/ 2003B. Podczas pracy program wyświetla niewielką ikonę na pasku zadań (rys. 3), dzięki czemu monitorowanie temperatury podczas pracy z komputerem jest bardzo wygodne. Andrzej Gawryluk, AVT
Opracowano na podstawie projektu Alberio Ricci Biiii, za zgodą autora.
Rys. 3. Widok paska zadań po uruchomieniu programu
WYKAZ ELEMENTÓW
Rezystory
Rl, R2: 4,7 kO Kondensatory
C3, C4: 100 nF Cl, C2: 47^F/1ÓV Półprzewodniki
Dl, D2: 1N4148
DZ1, DZ2: 5,1 V/0,25 W
Ul, U2: DS1Ó21 lub DS1Ó31
U3: LM293Ó-5 lub inny
stabilizator 5V (tow-drop)
Różne
COM: DB9F do druku
Płytka drukowana jest dostępna w A VT - oznaczenie AYF-1366.
Wzory płytek drukowanych w formacie PDF są dostępne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl majQ3.htm oraz na płycie CD-EP5/2003 w katalogu PCB.
76
Elektronika Praktyczna 5/2003
KURS
Sterowanie graficznych wyświetlaczy
z telefonów komórkowych firmy Nokia, część 1
Niejednokrotnie konstruując jakieś urządzenie wyposażone w mikrokontroler jednoukładowy chcemy wyposażyć je w wyświetlacz LCD. Ze względu na łatwość sterowania i popularność, najczęściej wybór pada na standardowy jedno- lub dwuliniowy wyświetlacz alfanumeryczny. Ma on jednak swoje wady. Najczęściej nie wystarcza on do wyświetlenia wszystkich potrzebnych informacji - jest po prostu za mały. Większe wyświetlacze, np. czteroliniowe, są drogie i zazwyczaj duże. Standardowe matryce graficzne są jeszcze droższe i na dodatek bardziej kłopotliwe w sterowaniu. W artykule przedstawię alternatywne rozwiązanie, polegające na wykorzystaniu we własnych konstrukcjach graficznego wyświetlacza LCD używanego w telefonach komórkowych firmy Nokia.
Wybrałem ten typ wyświetlacza z kilku powodów. Najważniejszym z nich jest dostępność dokumentacji opisującej zastosowany w nich kontroler oraz jego cenę kompletnego modułu (poniżej 40 zł]. Matryca wyświetlacza ma rozdzielczość 84x48 pikseli, co pozwala w trybie tekstowym na wyświetlenie 6 linii tekstu po 14 znaków w każdej z nich. Dodatkowo mamy możliwość łatwego zdefiniowania i wyświetlenia polskich znaków, dowolnej liczby symboli semigraficznych, oraz rysowania i wyświetlania grafiki. Ze względu na małe wymiary modułu -około 40x35 mm (pole widoczne 30x23 mm], przy grubości około 3 mm, wyświetlacze nadają się idealnie do urządzeń przenośnych, dla których istotną zaletą jest również niski pobór prądu wynoszący poniżej 300 |_lA przy napięciu zasilania 3,3 V.
Charakterystyka sterownika
W większości wyświetlaczy stosowanych w telefonach Nokii zastosowano wyświetlacz z kontrolerem PCD8544 produkowany przez firmę Philips lub jeden z jego odpowiedników. Układ PCD8544 j est kompletnym sterownikiem graficznej matrycy LCD, zawierającym w sobie szeregowy interfejs wejściowy, pamięć RAM wraz z licznikami i układami adresowania kolumn i wierszy, wzmacniacze kolumn i wierszy, generator zegarowy, oraz u kład wytwarzania napięć zasilających mat-
ryce LCD wraz z automatyczną kompensacją temperaturową ustawienia kontrastu. W tab. 1 znajdują się podstawowe parametry sterownika, a na rys. 1 jego schemat blokowy.
Wyprowadzenia kontrolera mają następujące funkcje:
- R0...R47 - wyjścia wierszy do matrycy LCD - podłączone wewnątrz wyświetlacza,
- C1...C8 3 - wyjścia kolumn do matrycy LCD - podłączone wewnątrz wyświetlacza,
- VSSl, VSS2 - masa zasilania wyprowadzona na złącze wyświetlacza,
- VDD1, VDD2 - zasilanie, wyprowadzone na złącze wyświetlacza,
- VLCDl - wyjście przetwornicy ładunkowej zasilającej sam wyświetlacz -
C1 toCB3
V toV
T4
BIAS VOLTAGE
iENERATOF
ą
COLUMN DRIVERS
ELfKTRONIKA
a LCD test Romuald Biały.
R0toR47
ROW DRIVERS
DATA LATCHES
3ENERATOF
DISPLAY DATA RAN
(DDRAM)
4Bx84
SHIFT REGISTER
RESET
OSCILLATOI
TIMING GENERATOR
ADDRESSCOUNTEF
DATA REGISTER

DISPLAY ADDRE6S COUNTER

PCD8544
7OBUFFER
T T T T
SDIN SCLK D/C SCE
Rys. 1. Schemat blokowy układu PCD8544
połączone z VLCD2 wewnątrz wyświetlacza i wyprowadzone na zewnątrz w postaci styku VOUT,
o - VLCD2 - wejście zasilania stopni ste-
rujących matrycą - połączone z VLCDl
OSC wewnątrz wyświetlacza, oraz wyprowa-
dzone na zewnątrz (VOUT] w celu podłączenia kondensatora filtrującego zasilanie matrycy,
- T1...T4 - wyprowadzenia testowe -niedostępne na zewnątrz modułu wyświetlacza,
- SDIN - szeregowe wejście danych,
- SCLK - wejście zegara synchronizują-cego wprowadzane dane,
- D/C - wejście wyboru trybu wprowadzania danych: H - dane, L - rozkazy,
- SCE - Chip Enabls - wejście zezwolenia na wprowadzanie danych (aktywne dla poziomu niskiego],
- RES - sygnał zerowania sterownika (aktywny dla poziomu niskiego],
Elektronika Praktyczna 5/2003
81
KURS
Fof. 2. Wyświetlacze LPH 7779 (po lewej) przyłącze niowych
LPH7366 (po prowej) od strony styków
Fot. 3. Wyświetlacze LPH 7779 (po lewej) matrycy LCD
- OSC - wejście zewnętrznego oscylato-ra (w przypadku wykorzystania wewnętrznego oscylatora musi być podłączone do VDD].
Sterownik ma wbudowany generator zegarowy sterujący wyświetlaniem obrazu na matrycy LCD. Po wpisaniu danych do pamięci kontrolera są one automatycznie wysyłane na wyświetlacz i nie ma potrzeby ich późniejszego odświeżania. Kolejną zaletą PCD8544 jest automatyczna kompensacja temperaturowa, która pozwala na utrzymanie stałego kontrastu wyświetlanego obrazu, niezależnie od temperatury otoczenia. Wbudowana przetwornica pozwala na zasilanie wyświetlacza pojedynczym napięciem VDD oraz na regulację napięcia zasilającego ciekły kryształ, co pozwala na programową regulację kontrastu wyświetlacza.
W tab. 2 znajduje się zestawienie typów wyświetlaczy oraz modeli telefonów, w których wykorzystywane są opisane wyświetlacze.
Podłączenie wyświetlacza do mikro kontrolera
Rozmieszczenie wyprowadzeń poszczególnych wyświetlaczy podano w tab. 3, przy założeniu, że patrzymy na wyświetlacz od strony wyprowadzeń i mając wyprowadzenia u góry wyświetlacza (styk numer 1 znajduje się po lewej stronie złącza]. W przypadku zastosowania wyświetlaczy z 9-stykowym złączem, wyprowadzenie OSC (styk nr 6] należy połączyć do VDD (styk nr 1].
LPH73Ó6 (po prawej) od strony
Typowe zasilanie wyświetlacza wynosi od 2,7 do 3,3 V, lecz według danych katalogowych maksymalne napięcie zasilania może wynosić 5 V. Przeprowadzane przeze mnie próby dowodzą prawidłowej pracy wyświetlacza przy napięciu rzędu 4,5 V - wyższego nie próbowałem. W związku z tym w układach zasilanych z napięcia 5 V zaleca się zasilanie wyświetlacza obniżonym napięciem oraz zastosowanie konwertera poziomów na liniach danych. W najprostszym wykonaniu może to być prosty stabilizator 3,3 V wykorzystujący rezystor i diodę Zenera, a konwersji poziomów na liniach danych można dokonać za pomocą diod lub dzielników rezystancyjnych. Lepszym sposobem jest zastosowanie układu bufora linii zasilanego napięciem 3,3 V z wejściami dopuszczającymi podanie logicznej jedynki o poziomie 5 V. Przykładem takiego bufora jest układ 74LVC245 lub 74LXC245.
Przykładowe sposoby podłączenia wyświetlacza do otoczenia zasilanego napięciem 5 V pokazano na rys. 4. Znajdujący się w układzie kondensator tanta-lowy 1 |-iF służy do filtrowania napięcia VLCD pochodzącego z wbudowanej w kontroler przetwornicy, która zasila bufory wyjściowe do matrycy LCD.
Sterowanie wyświetlaczem odbywa się przy pomocy szeregowego interfejsu SPI uzupełnionego dodatkowo dwoma sygnałami: D/C oraz Rssst. W sumie do podłączenia takiego wyświetla-
Tab. 1. Podstawowe parametry sterownika
ParamEb Min Typ Mak*. Jednosfca
Zalecane napięcie zasilania 2,7 - 3,3 V
Dopuszczalne napięcie zasilania -0,5 - +5' V
Zakres napięć zasilających matrycę 6 - 8,5 V
Pobór prądu - 240 300 uA
Pobór prądu wntrybie Power Down - 1,5 - uA
Zakres temperatur podczas pracy -25 - +70 DC
Częstotliwość odświeżania wyświetlania - 67 - Hz
Czas od załączenia zasilania do podania sygnału RESET 0 - 30 ms
Czas trwania impulsu RESET 100 - - ns
Częstotliwość sygnału SCLK 0 - 4 MHz
* - Przy użyciu wewnętrznej przetwornicy dla VL CD
Tab. 2. Zestawienie typów wyświetlaczy oraz modeli telefonów w których są one wykorzystywane
Typ LCD ModełetetefcnOw Liczba wyprowadzeń Komentarz
LPH-7366 lub LPH-7666 N5110, N5150, N6110, N6150 9 Wyprowadzenia na gumce przewodzącej, posiada plastikową matówkę do podświetlania diodami LED
LPH-7677 lub LPH-7690 N3210,N6210 S
LPH-7779 N3310, N3330, N5510 S Wyprowadzenia na złoconych stykach (moim zdaniem najlepszy wybór)
ECM-A-1091 NS210, NS250 9 Jak LPH-7366
Tab. 3. Rozmieszczenie wyprowadzeń wyświetlaczy
Nunef styku 1 2 3 4 5 6 7 8 9
Dla S-stykowych VDD SCLK SDIN D/C SCE GND VOUT RES -
Dla 9-stykowych VDD SCLK SDIN D/C SCE OSC GND VOUT RES
82
Elektronika Praktyczna 5/2003
KURS
+5V
| 470
74LVC245 20
1 LCD
le SCK c\ 18 2
)kontrc MOSI 3 A2 A3 B2 B3 17 3
D/C 4 16 4
SOE 5 15 5
s RESET 6 A5 A6 A7 A8 B5 B6 B7 B8 14 6
7 13 I 7
R 12 I 8
fi 11

G DIR i---- = 1M ~tant al
1 100n^ 3V3S
10

b)
+5V
5x4k7
3V3[
5x1N4148
SCK
MOSI
D/C
SCE
_RESEX_
Rys. 4. Sposoby podłgczenia wyświetlacza do mikrokontrolera zasilanego napięciem 5 V
cza potrzebne są 4 linie wyjściowe mikrokontrolera oraz sygnał zerujący. Wiele mikrokontrolerów posiada wbudowany sprzętowy interfejs SPI, który możemy wykorzystać do sterowania liniami SDIN i SCLK. W tym przypadku potrzebne będą jedynie dodatkowe linie dla sygnałów SCE (czyli chip se-lect) oraz dla D/C. Jeśli wybrany mik-rokontroler nie posiada sprzętowego interfejsu SPI możemy wykorzystać programową emulacje SPI, która jest bardzo prosta w realizacji. W dalszej części artykułu przedstawię przykład takiej procedury.
Maksymalna szybkość zegara synchro-nizującego wysyłanie danych do wyświetlacza może wynosić 4 MHz, co teoretycznie umożliwia wysłanie całej zawartości ekranu w czasie niewiele przekraczającym 1 milisekundę. W praktyce będzie to kilka razy więcej, lecz i tak bardzo szybko.
LSB
Organizacja pamięci obrazu
Pamięć kontrolera zorganizowana jest w 6 banków zawierających po 84 bajty statycznej pamięci RAM (rys. 5). Każdy z banków kontroluje 8 linii wyświetlacza po 84 piksele. Aktualnie używany numer banku zapisany jest w liczniku wierszy (Adres Y), który może przyjmować wartości od 0 do 5. Wykorzystując więc wyświetlacz w trybie tekstowym jeden bank pamięci odwzorowuje nam jedną linię tekstu. Każdy wysłany do wyświetlacza bajt danych odwzorowany jest na wyświetlaczu jako osiem pionowo umieszczonych pikseli, przy czym najwyżej położony piksel odpowiada najmłodszemu bitowi z wysłanego bajtu. Każdy bank pamięci zawiera więc 84 bajty danych, a aktualny numer bajtu adresowany jest poprzez licznik kolumn (Adres X).
Sterowniki prezentowanych wyświetlaczy nie mają wbudowanego generatora znaków, więc jeśli chcemy wyświetlać
MSB






-n Adres X 83

0 6
i 7
2
3
4
5 503
AdreaX
Rys. 6. Sposób zapisu danych przy adresowaniu pionowym

0 1 2
84 85 86
188 169 170
252 253 254
336 337 338
420 421 422 503
Rys. 5. Organizacja pamięci RAM wyświetlacza
AdreX
Rys. 7. Sposób zapisu danych przy adresowaniu poziomym
teksty, musimy korzystać z generatora znaków zapisanego w pamięci ROM (Flash) sterującego nimi mikrokontrolera.
Po wysłaniu do wyświetlacza każdego bajtu danych - czyli ośmiu pikseli - sterownik automatycznie zwiększa zawartość liczników kolumn i wierszy, co umożliwia wysyłanie kolejnych danych bez konieczności modyfikacji zawartości liczników kolumn i wierszy po każdym wysłanym bajcie. Sterownik ma dwa tryby adresowania wyświetlacza: pionowy i poziomy, które różnią się kolejnością zapisywania danych do pamięci kontrolera. Wyboru odpowiedniego trybu dokonujemy wysyłając do wyświetlacza komendę Function Set z odpowiednio ustawionym bitem DB0. Tryb adresowania możemy w dowolnym momencie zmienić i nie ma to wpływu na zawartość pamięci wyświetlacza.
Przy adresowaniu pionowym (rys. 6) po każdym wysłanym bajcie danych zwiększany jest licznik wierszy, a po osiągnięciu maksymalnej wartości - czyli 5 - jest on zerowany oraz zwiększa się zawartość licznika kolumn. Każde 6 bajtów wysłanych do wyświetlacza tworzy więc jedną pionową linię obrazu biegnącą przez całą wysokość wyświetlacza. Tryb ten jest wygodny podczas rysowania pełnoekranowej grafiki.
Przy adresowaniu poziomym (rys. 7) po każdym wysłanym bajcie danych zwiększany jest stan licznika kolumn, a po osiągnięciu maksymalnej wartości -czyli 83 - jest on zerowany oraz zwiększa się zawartość licznika wierszy. Tryb adresowania poziomego najlepiej jest wykorzystywać do wyświetlania tekstów zakładając wyświetlanie znaków o wysokości 8 pikseli. Przy założeniu - standardowej dla alfanumerycznych wyświetlaczy LCD - wielkości znaku 5x7 pikseli licznik wierszy adresuje jedną z 6 dostępnych linii tekstu, a wyświetlenie jednego znaku polega na wysłaniu do wyświetlacza 6 bajtów pobranych z tablicy generatora znaków. Dokładniej będzie to opisane w drugiej części artykułu. Romuald Biały
Elektronika Praktyczna 5/2003
83
KURS
Podstawy projektowania systemów mikroprocesorowych, część 3
Wykorzystanie portów we/wy mikro kontrolera
Nawet najdoskonalszy mikroprocesor będzie jedynie mniej lub bardziej skuteczną grzałką, jeśli nie podłączymy do niego żadnych urządzeń zewnętrznych, które umożliwią użytkownikowi komunikację z układem. W mikrokontrołerach rodziny 51 do realizacji takich połączeń służą porty, które są wyprowadzeniami pogrupowanymi najczęściej po 8 linii, mogącymi służyć jako wejścia lub wyjścia sygnałów cyfrowych. Mik-rokontrolery AT89C5x posiadają cztery takie porty (o oznaczeniach od PO do P3), natomiast mniejsze mikrokontrole-ry AT89CxO51 posiadają dwa porty (Pl i P3). Każde wyprowadzenie dowolnego portu może być traktowane jako pojedyncza linia - wtedy do oznaczenia portu dodajemy numer linii: na przykład Pl.4 oznacza piątą linię (numeracja od zera) portu 1. Poza funkcją standardowych linii wejścia/wyjścia niektóre porty lub niektóre ich wyprowadzenia mogą pełnić alternatywne funkcje - zostaną one omówione wraz z wykorzystującymi je układami peryferyjnymi. Należy pamiętać, że prawidłowa praca portu lub pojedynczej linii jako wejście jest możliwa jedynie po programowym ustawieniu danego portu (linii) wstań 1 (np. używając instrukcji MOV P1,#OFFH lub SETB Pl.2 - odpowiednio dla całego portu Pl pracującego jako wejście lub tylko jego pojedynczej linii). Wszystkie linie ustawiane są na "1" w wyniku zerowania mikrokon-trolera, jeśli jednak będziemy wykorzystywać daną linię zarówno jako wejście jak i wyjście, to niezbędne jest przestrzeganie tej reguły i ustawienie odpowiednich linii w trakcie wykorzystywania ich jako wejście.
W trzeciej części artykułu przedstawiamy podstawowe zagadnienia związane z obsługą programowanych portów wejść-wyjść w mikrokontrołerach '51. Jak dowodzą otrzymywane przez nas pytania, tematyka ta jest słabo znana i nie zawsze wystarczająco dogłębnie poruszana w opisach naszych projektów. Zatem nadrabiamy!
tora PNP. Nie zachodzi tutaj konieczność stosowania rezystora podciągającego linię portu, gdyż ustawienie linii w stan wysoki powoduje w rzeczywistości wejście w stan wysokiej impedancji (brak rezystora podciągającego) i przerwę w obwodzie bazy tranzystora (jego wyłączenie). Rezystor Rl ogranicza prąd bazy do wartości bezpiecznych zarówno dla mi kro kontrolera jak i dla tranzystora, i powinien być dobrany w zależności od wzmocnienia użytego tranzystora i spodziewanego prądu obciążenia - aby uzyskany prąd bazy wprowadził tranzystor w nasycenie. Rezystor R2 nie jest tutaj bezwzględnie konieczny - przyspiesza on wyjście tranzystora z nasycenia i szybsze jego wyłączenie, co może być przydatne przy dużych częstotliwościach przełączeń. Jeżeli chcemy stosować sterowanie z użyciem tranzystorów NPN, musimy zrealizować układ z rys. 9b. Tutaj rezystor podciągający Rl jest niezbędny do podania wysokiego potencjału na bazę tranzystora. Rezystor R2 nie jest konieczny, zabezpiecza on jednak wyjście mi kro kontrolera przed uszkodze-
+Uz*s {może być różna od+5V}
Właściwości i sposób wykorzystania portów przedstawimy na przykładzie dużych" mikrokontrolerów Atmel, które zgodne są pod względem ich parametrów ze swoim protoplastą - oryginalnym mik-rokontrolerem 80C51 firmy Intel.
Port PO sprawia najczęściej dużo kłopotu początkującym projektantom (zazwyczaj przy realizacji pierwszego projektu wykorzystującego taki mikrokontro-ler), gdyż zapominają oni o bardzo ważnej rzeczy - linie portu PO pracującego jako wejście/wyjście nie są wyposażone w rezystory podciągające - są standardowymi wyjściami typu otwarty dren. Często winą za niepowodzenie w próbie wysyłania lub odbioru danych z portu PO obarczany jest "uszkodzony" mikro-kontroler, gdy w rzeczywistości układ jest jak najbardziej sprawny, a jedyną winę ponosi tutaj projektant, który nie zadbał o prawidłową realizację układu sprzętowego. Na rys. 9a pokazano sposób dołączenia do portu PO obciążenia sterowanego za pośrednictwem tranzys-
\VCC
PO ,5
'51
GND
T
T1
Jiofc.iook
\vcc
P0.7
51
dowolny iJdBd cyfrowy TT1_ lub CMOS
GND
T
'LED
Rys. 9. Sposoby dołączania obciążeń różnego typu do wyjść mikrokontrolera
Elektronika Praktyczna 5/2003
KURS
+5V
+5V
Rys. 10. Różne możliwości sterowania wejść mikrokontrolera
niem wskutek uszkodzenia tranzystora -zwarcie w tranzystorze w obwodzie ko-lektor-baza spowoduje pojawienie się napięcia zasilającego obciążenie na wyprowadzeniu mikrokontrolera. Napięcie to może być wyższe od napięcia zasilania układu mikrokontrolera, co może doprowadzić do uszkodzenia napięciowego linii lub - jeśli na danym wyprowadzeniu będzie stan niski - może dojść do przeciążenia prądowego. Zastosowany rezystor ograniczy ten prąd oraz działał będzie jak dzielnik i ograniczy napięcie na wyprowadzeniu portu. Na rys. 9c przedstawiono sposób sterowania wejściami cyfrowych układów scalonych. Dla układów CMOS rezystor podciągający jest niezbędny, natomiast dla układów TTL nie jest on konieczny, lecz na pewno nie zaszkodzi (zwłaszcza, ze ktoś w urządzeniu może zastosować odpowiednik układu wykonany w technologii CMOS). Port PO może wy sterować według danych producenta do ośmiu wejść układów TTL, co pozwala obciążyć każdą końcówkę w stanie niskim prądem około 13 mA i z powodzeniem wystarcza do sterowania diodą LED (jak np. na rys. 9d).
Wykorzystując linie portu PO jako wejścia musimy także rozważyć konieczność zastosowania w razie potrzeby rezystorów podciągających. Rezystory takie są niezbędne jeżeli do mikrokontrolera chcemy podpiąć elementy stykowe lub układy cyfrowe (czy pojedyncze tranzystory) pracujące z wyjściem typu otwarty kolektor (dren). Sytuację taką przedstawiono na rys. lOa). Wartości rezystorów Rl i R2 powinny być tak dobrane, aby nie przeciążać wyjść dołączonych układów. Zastosowany rezystor R4 zapewnia stan niski na wejściu PO.4 gdy przycisk SW1 jest zwolniony, natomiast rezystor R3 zabezpiecza mikro kontroler przed przypadkowym zwarciem mogącym nastąpić, gdyby linia PO.4 została wyzerowana programowo. Jak widać wciśnięcie przycisków SW1 i SW2 wywołuje różne stany na wejściach mikro- Rys. 11. Przykłady błędnie zaprojektowanych wzmacniaczy wyjściowych
kontrolera - w zależności od potrzeby możemy wywoływać stan wysoki (SW1) lub niski (SW2). Rezystorów podciągających nie musimy stosować gdy układ współpracuje z elementami posiadającymi wyjścia komplementarne (układy cyfrowe, komparatory), co pokazano na rysunku 9b). Warto wspomnieć, że port PO pracujący jako wejście bez zastosowania rezystorów podciągających posiada bardzo dużą impedancję wejściową (zbliżoną do impedancji tranzystora MOS), co umożliwia sterowanie ze źródeł o bardzo małej wydajności.
Pozostałe porty mikrokontrolera (Pl do P3) poza faktem posiadania wewnętrznych rezystorów podciągających (w rzeczywistości są to tranzystory MOS pracujące jako źródła prądowe - można je traktować jako rezystory podciągające o wartości 50...100 kQ), posiadają także mniejszą wydajność prądową, odpowiadającą wysterowaniu czterech wejść układów TTL (maksymalny prąd w stanie niskim to około 6,5 mA). Schematy dołączeń układów peryferyjnych nie różnią się od tych podanych dla portu PO (rys. 9 i 10), za wyjątkiem braku konieczności stosowania rezystorów podciągających.
Analizując właściwości portów Pl iP3, w które są wyposażone mikrokont-rolery AT89CxO51 należy przedstawić kilka istotnych różnic wpływających na sposób ich wykorzystania do obsługi urządzeń zewnętrznych. Przede wszystkim należy wspomnieć o właściwościach
prądowych portów: zarówno linie portu Pl jak i P3 mogą w stanie niskim przewodzić prąd do 20 mA, z tym, że według zaleceń producenta, całkowity prąd wpływający jednocześnie do wszystkich wykorzystywanych linii portów nie powinien przekroczyć 80 mA - powyżej tej wartości firma Atmel nie gwarantuje deklarowanej wydajności prądowej. Producent przewidział możliwość sterowania przez port Pl katodami wyświetlaczy LED, jednak także port 3 może z powodzeniem sterować diody LED pod warunkiem zapewnienia sumarycznego prądu wszystkich wyprowadzeń Pl i P3 (będących w stanie niskim) na poziomie nie przewyższającym 80 mA. W stanie wysokim porty mają wydajność taką jak porty w ,,dużych" Atmelach. Dodatkowo trzeba pamiętać, że dwie linie portu Pl: P1.0 iPl.l nie posiadają wewnętrznych rezystorów podciągających, gdyż zakłócałyby one pracę wewnętrznego komparatora podłączonego to tych linii. Jeżeli chcemy linie P1.0 i Pl.l wykorzystywać jako zwykłe we/wy cyfrowe, to należy stosować zasady dołączania zewnętrznych urządzeń takie jak w przypadku portu PO. W spisie wyprowadzeń układów AT89CxO51 nie znajdziemy linii P3.6 - linia ta jest wewnętrznie połączona z wyjściem komparatora i może być tylko odczytywana (stan odzwierciedla stan komparatora).
Przedstawiony wyżej problem stosowania rezystorów podciągających to tylko jeden z wielu możliwych błędów popełnianych przy podłączaniu do mikrokontrolera układów współpracujących. Na rys. 11, 12, 13 i 14 przedstawiono najczęściej popełniane błędy konstrukcyjne, które uniemożliwiają poprawną pracę układu lub pogarszają jego pewność działania. Rysunki oznaczone literami a przedstawiają błędnie zaprojektowany układ, a opisane jako b pokazują poprawne rozwiązanie lub sposób naprawy błędnie zaprojektowanego układu.
Na rys. lla przedstawiono układ sterowania tranzystorem PNP z wyjścia mikrokontrolera wyposażonego w awaryjny układ zasilania. Po głębszej analizie łatwo zauważyć, że układ może działać niestabilnie, objawiając się niecałkowitym wyłączeniem tranzystora. Następowało to będzie wskutek obecności diody należącej do obwodu zasilania awaryjnego. Wskutek spadku napięcia na tej diodzie, napięcie wyjściowe w stanie
+Uzaa
86
Elektronika Praktyczna 5/2003
KURS
+Uzas
+Uzas
obc.
obc.
dużap
obc.
Rys. 12. Kolejne przykłady błędnie zaprojektowanych obwodów wyjściowych
wysokim nie będzie miało wartości napięcia zasilania, lecz będzie obniżone
0 0,6...0,8 V, co może doprowadzić do przewodzenia złącza baza-emiter tranzystora i jego otwarcie. Przy małych prądach obciążenia wystarczy to zapewne do nasycenia tranzystora i sytuacji, w której nie będzie można wyłączyć programowo sterowanego w ten sposób urządzenia. Rozwiązanie problemu może przynieść zamiana diody krzemowej na diodę Schottky ego (mniejszy spadek napięcia), lepiej jednak zastosować dodatkowy rezystor R2 o wartości mniejszej od Rl, polaryzujący bazę tranzystora. Układ taki przedstawiono na rys. llb. Rezystory Rl i R2 będą tworzyły dzielnik napięcia obniżając o połowę (lub więcej) napięcie na bazie tranzystora i nie dopuszczą do jego przewodzenia wskutek różnicy napięć wywoływanych spadkiem na diodzie.
Na rys. 12a przedstawiono układ, który według założenia powinien działać następująco: mikrokontroler steruje tranzystorem włączając i wyłączając jakieś urządzenie. Jeśli urządzenie jest włączone, to naciśnięcie przycisku ma je wyłączyć. Układ jednak nie będzie działał zgodnie z założeniami. Jeżeli mikrokontroler wyzeruje linię P3.1, to jasne jest, że urządzenie zostanie wyłączone. Jeżeli natomiast na wyjściu P3.1 pojawi się stan ,,1", to tranzystor zacznie przewodzić i włączy urządzenie -tak układ działałby, gdyby program nie wykrywał wciśnięcia przycisku. W układzie jak na rysunku mikrokontroler wyłączy urządzenie natychmiast po włączeniu. Będzie to spowodowane faktem, że wewnętrzny rezystor podciągający ma dość dużą wartość (50...100 kQ)
1 będzie tworzył z rezystorem w obwodzie bazy tranzystora dzielnik dający
na wyprowadzeniu mikrokontroler a napięcie o wartości ok. 2 V (z uwzględnieniem napięcia baza-emiter) lub mniejsze, co będzie interpretowane jako stan ,,0" - czyli wciśnięcie przycisku. Problem rozwiązać można dobierając dużą wartość rezystora Rl - powyżej 100 kQ, co wraz z napięciem baza-emiter tranzystora powinno dać na wyprowadzeniu mikrokontroler a napięcie około 3 V, które powinno być zinterpretowane jako ,,1" (rys. 12b). Wadą takiego rozwiązania jest konieczność zastosowania tranzystora o dużym wzmocnieniu (jeżeli chcemy uzyskać znaczny prąd obciążenia). Na rys. 12c przedstawiono lepsze rozwiązanie - zastosowanie dodatkowego rezystora podciągającego R2 o wartości znacznie mniejszej (przynaj-
+5V
b)
+5V
mniej kilkukrotnie) niż rezystor Rl. Takie rozwiązanie nie posiada wady jak poprzednie, ale konieczny jest dodatkowy (choć tani) element. Problem można rozwiązać jeszcze inaczej, stosując układ z rys. lid. Zastosowano tutaj układ z tranzystorem MOSFET, który jest elementem sterowanym napięciowo i wartość rezystancji Rl nie odgrywa tutaj znaczącej roli (przy małych częstotliwościach przełączeń). Rezystor Rl pełni tutaj funkcję zabezpieczającą podobnie jak na rys. 9b. Wadą takiego rozwiązania jest nieco wyższa niż w przypadku tranzystorów unipolarnych cena tranzystorów MOSFET oraz fakt dość wysokiego napięcia progowego tranzystora, co praktycznie uniemożliwia stosowanie tego rozwiązania w układach z zasilaniem mikrokontrole-ra napięciem niższym niż 5 V.
Przy budowie nowych układów szczególną uwagę projektanta powinien zwrócić fakt dołączania do mikrokont-rolera urządzeń zasilanych innym (zazwyczaj wyższym) napięciem. Niestety także tutaj można popełnić podstawowy błąd uwidoczniony na rys. 13a. W układzie tym wyjście mikrokontrole-ra steruje układem cyfrowym zasilanym napięciem 12 V. Układ nie będzie działał z bardzo prostego powodu -w układach cyfrowych CMOS próg przełączania znajduje się mniej więcej w połowie wartości napięcia zasilania, co dla przedstawionego układu wyniesie 6 V, czyli więcej niż napięcie zasilania mikrokontrolera. Wskutek tego dowolny stan logiczny poprawny z punktu widzenia napięć zasilania na poziomie 5 V będzie przez wejście bramki rozpoznawany stale jako stan niski. Pułapką czyhającą na projektanta jest fakt, że taki sam układ, w którym zamiast 12 V zastosujemy zasilanie np. 9 V może działać - nie będzie to jednak działanie pewne i rozwiązanie to może
O+12V
R1=R2 = 1k..100k
Rys. 13. Współpraca mikrokontrolera z układami zasilanymi napięciem o innej wartości
Elektronika Praktyczna 5/2003
87
KURS
+12V
Rys. 14. Sterowanie wejść mikrokon troi era z wyjść układów zasilanych wyższym napięciem
przysporzyć sporych kłopotów podczas uruchamiania układu (okresy poprawnego i błędnego działania zależne od temperatury, poziomu zakłóceń itp.). Poprawiony układ przedstawiono na rys. 13b). Problem został rozwiązany przez zastosowanie układu inwertera z tranzystorem NPN łączącym obydwa obwody. Układ gwarantuje poprawną pracę, należy jedynie zwrócić uwagę, że neguje on podawany na bramkę sygnał, co należy uwzględnić przy pisaniu oprogramowania. Innym rozwiązaniem jest zastosowanie wzmacniacza operacyjnego (komparatora), na którego wejście nie-odwracające podajemy sygnał z mikro-kontrolera, a na wejście odwracające wartość napięcia progowego - w tym wypadku zgodnie ze standardem CMOS-5V jest to napięcie 2,5 V utworzone przez dzielnik Rl i R2 (rys. 13c).
Należy pamiętać, że wzmacniacz operacyjny musi być zasilany z tego samego źródła (o takim samym napięciu) co sterowana nim bramka. Zaletą tego układu jest fakt, że nie odwraca on fazy sygnału, należy jednak pamiętać o ograniczonym zakresie częstotliwościowym wzmacniacza operacyjnego (układy z pojedynczymi tranzystorami w tej konkurencji wygrywają - są dużo szybsze).
Podobnych zasad należy przestrzegać, gdy do wejścia mikrokontrolera dołączamy zasilany wyższym napięciem komparator lub inny układ z wyjściem komplementarnym (nie dotyczy układów z wyjściem typu otwarty kolektor/dren). Na rys. 14a przedstawiono błędny układ - połączenie bezpośrednie, w wyniku którego w najgorszym przypadku może dojść do uszkodzenia wejścia mikrokontrolera i/lub wyjścia układu sterującego. Na rys. 14b przedstawiono najprostszy sposób rozwiązania problemu - zastosowanie diody blokującej pojawienie się wysokiego napięcia na wejściu mikrokontrolera. Kiedy układ współpracujący z mikrokontrolerem jest w stanie wysokim, to dioda zostaje spolaryzowana zaporowo - nie przewodzi prądu. Na wejściu mikrokontrolera
utrzymuje się również stan wysoki wskutek wbudowanego (lub w razie konieczności dołączonego) rezystora podciągającego. Stan niski na wyjściu układu współpracującego powoduje polaryzację diody w kierunku przewodzenia i przepływ prądu - napięcie pojawiające się na wyprowadzeniu mikrokontrolera ma wartość napięcia wyjściowego układu współpracującego powiększonego o napięcie przewodzenia diody (warto tutaj zastosować diodę Schottky ego ze względu na niż-
szy spadek napięcia). Problem można oczywiście rozwiązać w inny sposób, na przykład stosując omówiony wyżej układ z tranzystorem - układ z diodą jest jednak najprostszy.
Porty mikrokontrolera od strony programowej
Odpowiednie połączenie elektryczne wyprowadzeń portów to nie wszystko -konieczna jest jeszcze odpowiednia obsługa programowa. Przede wszystkim należy zwrócić uwagę na fakt, że porty mikrokontrolera są obsługiwane w sposób synchroniczny - tzn. odczyt danych z portu czy zapis do niego odbywa się zgodnie z częstotliwością cykli maszynowych mikrokontrolera (pod warunkiem wykonywania rozkazów zapisu/odczytu portu). Dlatego mikro kontroler nie jest w stanie wykryć impulsów wejściowych krótszych niż 1 cykl maszynowy (w przypadku niektórych rozkazów są to 2 cykle) oraz sam nie jest w stanie generować przebiegów o stanach krótszych niż 1 cykl (fzegara/12).
Dla programisty zapis czy odczyt portu nie różni się od zapisu czy odczytu wewnętrznej pamięci danych. Możliwy jest także zapis lub odczyt pojedynczych linii portów z wykorzystaniem adresowania bitowego. Najczęściej wykonywane instrukcje odwołujące się do portów to:
MOV Pl,#0F0H
;jednoczesny zapis ośmiu linii ;portu (np. 4 starsze ustawione na ;"1", 4 młodsze wyzerowane.
MOV Pl,A
;wysłanie do portu Pl zawartości ;akumulatora
MOV A,P1
;odczytanie zawartości linii portu ;P1 i wpisanie jej do akumulatora
SETB Pl.1 ;ustawienie
'1" na linii Pl.1
CLR Pl.1 ;wyzerowanie linii Pl.1
JB Pl.2,etykieta
;wykonanie skoku warunkowego, gdy ;na linii Pl.2 panuje stan wysoki
Te instrukcje nie stanowią pełnego zbioru rozkazów odwołań do portów. Najogólniej można powiedzieć, że do obsługi portów można użyć wszystkich rozkazów mogących wykonywać operacje na adresowanej bezpośrednio komórce pamięci lub pojedynczym bicie. Specyficzne działanie w stosunku do portów posiada pewna liczba rozkazów określanych jako instrukcje typu od-czyt-modyfikacja-zapis. Są to:
ANL - iloczyn logiczny,
ORL - suma logiczna,
XRL - suma modulo 2,
JBC - skok warunkowy i wyzerowanie
bitu,
CPL - negacja bitu, INC - inkrementacja, DEC - dekrementacja, DJNZ - dekrementacja bajtu i skok jeśli
nie zero, MOV P_._,C - przesłanie zawartości
wskaźnika C na dowolną linię portu, CLR P_._ - zerowanie linii portu, SETB P_._ - ustawianie linii portu.
Instrukcje te działają w następujący sposób: najpierw odczytywany jest wewnętrzny stan rejestrów odpowiedzialnych za stany na wyprowadzeniach portów, potem następuje modyfikacja odczytanej zawartości, a na końcu następuje zapis nowej wartości do portu. Należy zwrócić uwagę, że odczyt rejestru portu nie ma nic wspólnego ze stanami na liniach zewnętrznych -jest to wartość jaka została wpisana tam programowo, np. dla linii wykorzystywanych jako wejścia powyższe instrukcje będą odczytywały stan ,,1" niezależnie od panującego na linii napięcia. Będzie to spowodowane tym, że chcąc korzystać z linii jako wejście programista musiał wcześniej wpisać do odpowiedniego rejestru jedynkę i to właśnie ona będzie odczytywana. Szczególną ostrożność należy zachować w przypadku nieprzemyślanego zastosowania instrukcji JBC P_._,etykieta. Także tutaj skok i wyzerowanie podanego bitu (pojedynczej linii portu) nastąpi jeśli w rejestrze portu będzie na danej pozycji stan ,,1", niezależnie od faktycznego stanu występującego na wyprowadzeniu mikrokontrolera (w odróżnieniu od instrukcji JB, JNB i CJNE -one odczytują stany linii zewnętrznych). Nieprzemyślane wykonanie instrukcji typu odczyt-modyfikacja-zapis często prowadzi do trudnych do zlokalizowania błędów programowych. Mimo tego nie należy się bać i rezygnować z tych instrukcji - są one bardzo przydatne, należy jednak stosować je w sposób świadomy i zdawać sobie sprawę ze sposobu ich działania. Paweł Hadam
Elektronika Praktyczna 5/2003
7f ^
r. - *j^^
^^^^^^^^H SPRZĘT
Na rynku pojawił się nowy produkt firmy Texas Instruments - przetwornik analog owo-cyf rowy zintegrowany z mikro kontrolerem rodziny 8051 i z wbudowaną pamięcią Flash. Nie ma w tym nic nadzwyczajnego (dostępnych jest wiele podobnych mikrokontrolerów) poza tym, że przetwornik A/C jest 8-kanałowy i ma rozdzielczość 24 bitów. W artykule przedstawiamy także zestaw uruchomieniowy pozwalający zapoznać się z możliwościami
układu MSC1210.
Analogowa konkurencja dla '51
Wprowadzenie tego układu jest odważnym posunięciem producenta, który nie bazuje w swoich mik-rokontrolerach na rdzeniu 8051. Te-xas Instruments kojarzy się głównie z techniką DSP, mikro kontrolerami
MSP oraz innymi elementami techniki cyfrowej. Po przejęciu firmy Burr-Brown do oferty Texas Instruments trafiły bardzo dobre układy analogowe, w tym m.in. układy do zastosowań przemysłowych. Zajmu-
ją one szczególne miejsce w ofercie firmy, zwłaszcza układy przetworników A/C Sigma-Delta o rozdzielczości od 18 do 24 bitów. W oparciu o te przetworniki TI wyprodukował układ MSC1210.
Elektronika Praktyczna 1/2003
51
SPRZĘT
REFIN+ REFIN-
-----O------
Rys. 1
MSC1210 od środka
Połączenie w jednej strukturze precyzyjnego przetwornika A/C z szybkim mikrokontrolerem umożliwiło powstanie układu o bardzo specyficznych możliwościach, a jednocześnie dużej uniwersalności. Układ składa się z bloków rzadko spotykanych w tego typu opracowaniach (rys. 1). Do najważniejszych z nich należą:
- przetwornik A/C 24-bitowy z ośmiowejściowym multiplekserem,
- precyzyjne źródło napięcia odniesienia,
- szybki rdzeń 8051, któremu wystarczają cztery cykle zegarowe na wykonanie jednej instrukcji,
- do 32 kB pamięci Flash
z możliwością programowania w układzie,
- 1,28 kB wewnętrznej pamięci SRAM,
- podwójny interfejs szeregowy UART,
- dodatkowy 32-bitowy akumulator,
- trzy liczniki i czasomierz systemowy,
- 16-bitowy układ PWM,
- układ watchdoga,
- układ kontroli napięcia zasilającego,
- układ zerowania po załączeniu zasilania (POR),
- interfejs SPI z układem DMA,
- układ kontroli poboru mocy. Analogowy sygnał wejściowy,
poddawany konwersji do postaci cyfrowej, można wzmocnić w ukła-
dzie PGA [Programmable Gain Am-plifier - wzmacniacz o programowanym wzmocnieniu), którego zakres regulacji wzmocnienia mieści się w przedziale od 1 do 128 V/V. Wewnętrzne źródło napięcia referencyjnego może być przełączane pomiędzy 1,25 Va 2,5 V. Można podłączyć także zewnętrzne źródło napięcia w zakresie od 0V do napięcia o wartości równej napięciu zasilania części analogowej. Źródła prądowe umieszczone za multiplekserem pozwalają wykryć podłączenie czujnika lub zwarcie wejścia analogowego.
Burr-Brown (Texas Instruments) ze swoim
MSC1210 wkroczył na ścieżkę przetartą już
przez innych producentów, m.in. Analog
Dcvices i Maxima.
W stosunku do klasycznego układu 8051, jednostka centralna MSC1210 jest znacznie szybsza, ponieważ do wykonania jednej instrukcji potrzebuje tylko czterech cykli zegarowych. Daje to co najmniej 3-krotne zwiększenie szybkości pracy, a biorąc pod uwagę dużą maksymalną częstotliwość taktowania, wynoszącą 3 3 MHz, wypadkowe zwiększenie szybkości działania może wynosić do 6 razy. W zależności od wersji układu, pamięć programu Flash może mieć pojemność do 3 2 kB. Użytkownik może ją podzielić, według własnych potrzeb, na część przeznaczoną na program i dane.
Na szczególną uwagę zasługuje wbudowany w jednostkę centralną
dodatkowy akumulator, który może między innymi uśredniać wartości zmierzone przez przetwornik A/C (do 256 próbek). Oprócz trzech standardowych liczników
wMSCl210 wbudowano również czasomierz systemowy pozwalający na odmierzanie zadanych odcinków czasu. Można go wykorzystać m.in. jako zegar czasu rzeczywistego.
Mi kro kontroler został wyposażony w cztery programowalne porty wej-ścia-wyjścia. Każdy z portów oprócz standardowej funkcji wejścia/ wyjścia może realizować również dodatkowe zadania, np. interfejs szeregowy UART, SPI, obsługę zewnętrznej pamięci programu i danych, można je skonfigurować także jako wejścia przerwań zewnętrznych. Należy zaznaczyć, że wejścia analogowe nie wymagają współdzielenia portów mikrokontro-lera. Rozbudowany został również system przerwań, który daje możliwość obsługi w sumie 21 źródeł przerwań (w tym 6 zewnętrznych).
Zalety opisywanego układu można wymieniać bardzo długo, ale w końcu trzeba go sprawdzić w praktyce.
Zestaw uruchomieniowy
Producent udostępnił dla MSC1210 narzędzie uruchomieniowe MSC121OEVM składające się z: płytki ewaluacyjnej z mikrokontrolerem oraz niezbędnym otoczeniem (konwerter napięć RS232<->TTL dla obydwu interfejsów, podwójny stabilizowany zasilacz, zewnętrzna pamięć RAM, 16-bitowy przetwornik C/A, układ generacji przebiegów do wejść analogowych), zestawu programów narzędziowych, kabla RS232, zasilacza sieciowego i drukowanej dokumentacji.
Na CD-ROM-ie znajdziemy oprogramowanie narzędziowe w postaci pakietu IDE firmy Keil. Nie będę tutaj wymieniał zalet tego pakietu, gdyż jego możliwości są powszechnie znane. W wersji ewaluacyjnej kompilator języka C może generować kod wynikowy o ograniczonej do 4 kB objętości. Do ładowania programu użytkownika producent udostępnił specjalny program 77 Downloader, który również znajduje się w zestawie. Dostarczona dokumentacja przejrzyście przedstawia sposób uruchomienia zestawu.
Elektronika Praktyczna 1/2003
SPRZĘT
Na podstawie przykładowych projektów zamieszczonych w katalogu MSC1210 TI Examp!es, można szybko zacząć pracę i sprawdzić działanie poszczególnych bloków układu MSC1210. Wystarczy skompilować przykładowy program, a zostanie on automatycznie załadowany i uruchomiony. Dzięki prezentacjom zamieszczonym na płycie możemy zobaczyć,
przykłady obsługi przetwornika A/C pozwalają ocenić, jak pracuje i stwierdzić, czy jest wystarczający do aplikacji użytkownika.
Podsumowanie
Układ MSC1210 jest groźnym konkurentem dla podobnych układów oferowanych przez innych producentów. Jego obszarem zastosowań jest przede wszystkim
Układ MSC1210 jest kompletnym,
dobrze wyposażonym mi kro kont roi erem '51
z wbudowanym precyzyjnym
przetwornikiem A/C.
jak jest uruchamiany program do ładowania aplikacji ze środowiska uVi-sion2.
Wszystkie porty mikro-kontrolera wyprowadzono na złącza szpilkowe. Ponadto producent przewidział możliwość instalowania na płytce dodatkowych elementów. Wejścia analogowe zostały wyprowadzone na złącza ARK, co ułatwia dołączenie sygnałów zewnętrznych. Na płytce są zainstalowane oddzielne stabilizatory do zasilania części analogowej i cyfrowej mikrokont-rolera. Masy obydwu stabilizatorów łączą się dopiero pod samym układem MSC1210, co minimalizuje zakłócenia w części analogowej. Udostępnione
rejestracja i przetwarzanie przebiegów wolnozmiennych. Może więc znaleźć zastosowanie w urządzeniach pomiaru ciśnienia, analizy krwi, przemysłowych układach sterowania oraz inteligentnych czujnikach.
Po raz kolejny przekonujemy się, że '51 jest chyba skazany na nieśmiertelność. Sławomir Kacprzak
Dodatkowe informacje
Zestaw prezentowany w artykule udostępniła firma Contrans 71 tel. (71) 325-26-21, www.contrans.com.pl.
Szczegółowe informacje o układzie MSC1210 i oprogramowaniu można znaleźć w Internecie, pod adresem: http://focus.ti.com/docs/ prod/productfolder.jhtml?-genericPartNumber=MSC1210.
Elektronika Praktyczna 1/2003
53
SPRZĘT
Nowoczesne akumulatory
Sposoby tadowania i obstuga
Dostajemy wiele pytań związanych z ładowaniem współczesnych akumulatorów różnego typu. Zagadnienie jest rzeczywiście złożone, ponieważ różnorodność dostępnych na rynku odnawialnych źródeł zasilania jest ogromna, a informacji stosunkowo niewiele.
W artykule odpowiemy na pytania pojawiające się najczęściej
w listach nadsyłanych do redakcji.
RAM - ladowalne ogniwa alkaliczne
Wywodzące się z niedostatków ubiegłej epoki liczne pomysły regenerowania baterii jednorazowych (pierwotnych) paradoksalnie doczekały się po latach realizacji w postaci ładowal-nych baterii alkalicznych w technologii RAM [Rechargeable Alkalirte Moda-les). Akumulatory te, będące twórczym rozwinięciem, powszechnie znanych, ogniw alkalicznych opartych na układzie elektrochemicznym cynk (Zn) -dwutlenek manganu (MnO2), mogą w pewnych warunkach stanowić interesującą alternatywę dla akumulatorów Ni-Cd i Ni-MH.
Cylindryczne ogniwo alkaliczne (w stanie naładowanym) tworzą dwie elektrody:
- dodatnia - w postaci cylindrycznego płaszcza sprasowanego z masy składającej się m.in. z dwutlenku manganu (MnO2, braunsztynj jako substancji czynnej oraz grafitu poprawiającego przewodnictwo elektryczne;
- ujemna - umieszczona w osi cylindra zawierająca sproszkowany cynk jako substancję aktywną. Pomiędzy elektrodami znajduje się
porowaty separator nasycony stężonym roztworem wodorotlenku potasowego [KOHJ. Podczas rozładowania, dwutlenek manganu MnO2 znajdujący się na elektrodzie dodatniej przechodzi w uwodniony tlenek manganu MnOOH (redukcja Mn4ł do Mn3+), natomiast cynk na elektrodzie ujemnej zostaje
utleniony (Zn2ł) do tlenku cynku ZnO. Ogniwo RAM jest zaprojektowane asymetrycznie co oznacza, że elektroda ujemna (cynkowa) ma rnniej- SS3 pojemność od dodatniej. Dlatego w rozładowanym ogniwie na elektrodzie dodatniej zawsze pozostaje pewna ilość nie zredukowanego MnO2, co ma zapobiegać niepożądanemu redukowaniu manganu do niższych stopni. Niestety, taka ochrona nie jest całkowicie skuteczna, co powoduje (jedna z przyczyn) stopniową degradację pojemności akumulatora w kolejnych cyklach ładowania/rozładowania. Dodajmy przy tym, śe im głębiej ogniwo zostało rozładowane, tym szybciej zachodzi utrata pojemności.
Zmiany konstrukcyjne, dzięki którym ogniwa alkaliczne stały się ładowalne, polegają m.in. na:
- wprowadzeniu do składu elektrody dodatniej katalizatora powodującego utlenianie wydzielającego się wodoru, a tym samym chroniącego przed nadmiernym wzrostem ciśnienia wewnątrz obudowy;
- opracowaniu specjalnego dwuwarstwowego separatora uniemożliwiającego narastanie dendrytów cynku w kierunku elektrody dodatniej -właśnie powstawanie dendrytów prowadzące do występowania zwarć było jednym z powodów uniemożliwiających skuteczną regenerację ogniw jednorazowych. Akumulatory RAM, podobnie jak
zwykłe alkaliczne ogniwa pierwotne, mają wartość SEM (siły elektromotorycznej) równą ok. 1,5 V. Cechuje je również podobna, ,,miękka" charakterystyka rozładowania przebiegająca od 1,5 V w stanie naładowania do 0,9 V po całkowitym wyczerpaniu ogniwa. Od baterii jednorazowych różni je mniejsza pojemność początkowa (porównywalna z ogniwami Ni-CdJ, a także większa re-
zystancja szeregowa sprawiająca, że ogniwa RAM nie tolerują dużych prądów rozładowania. Przykładowo, dla ogniw o rozmiarze AA (R6j zaleca się rozładowywanie prądem nieprzekracza-jącym 0,5 A przy obciążeniu ciągłym i maks. 0,9 A przy obciążeniach krótkotrwałych. RAM w porówaniu z akumulatorami niklowymi mają także mniejszą trwałość (określaną jako 25...500 cykli), silnie zależną od warunków eksploatacji.
Jak można wywnioskować z dotychczasowego opisu, ogniwa RAM posiadają wiele ograniczeń. Co w takim razie przemawia za ich stosowaniem? Otóż do najważniejszych zalet można zaliczyć:
- Bardzo małe samorozładowanie. Po pięciu latach przechowywania naładowane ogniwo powinno zachować min. 80% pierwotnego ładunku.
- Całkowity brak efektu pamięciowego. Co więcej - ogniwa RAM preferują pracę w płytkich cyklach i ,,lubią" być zawsze naładowane (odwrotnie niż akumulatory Ni-Cd i Ni-MHJ.
- Stosunkowo proste metody ładowania niewymagające stosowania złożonych układów nadzoru stanu ogniwa.
Podobne cechy (małe samorozładowanie, brak pamięci) mają również np. ogniwa litowo-jonowe, jednak ich cena jest nieporównywalnie wyższa od akumulatorów RAM. Te cechy łado-walnych ogniw alkalicznych predestynują je np. do awaryjnego zasilania urządzeń elektronicznych o niewielkim poborze mocy.
Ładowanie baterii RAM może odbywać się w jednym z dwóch trybów:
- Ładowanie standardowe. Polega na ładowaniu ogniw do stałego napięcia o wartości 1,65 (ą0,05) y/ogniwo. Początkowy prąd ładowania musi być ograniczony przez układ ładowania do wartości 150 rnA (dla ogniw AA). Czas ładowania całkowi-
Elektronika Praktyczna 5/2003
89
SPRZĘT
NaplęcWoflnlwo
1,65V
3 Czas, [h]
Rys. 5. Przykładowa charakterystyka ładowania cyklu RAM w trybie szybkim
cie rozładowanych ogniw zawiera się w przedziale 8...16 h. Do wykonania tak prostej ładowarki wystarcza jeden układ LM317 + kilka elementów dyskretnych.
- Ładowanie impulsowe (przyspieszone). Polega na ładowaniu baterii ogniw impulsami prądowymi o stałej wartości (500...750 mA dla wersji AA) i wypełnieniu ok. 70% (rys. 5). W przerwach pomiędzy impulsami następuje pomiar napięcia na zaciskach akumulatora. Jeżeli jego wartość przekracza próg 1,65 (ą0,05) y/ogniwo, to kolejne impulsy zostają zablokowane, aż do ponownego obniżenia napięcia poniżej wartości progowej. W przykładowej ładowarce opracowanej przez firmę Rayovac zastosowano impulsy o częstotliwości 100 Hz uzyskiwane z niefiltrowanego wyjścia prostownika dwupołówkowego. Czas pełnego ładowania ogniw w tym trybie zawiera się w przedziale 2...8 h. Uwaga! Baterie RAM nie mogą być
ładowane stałoprądowo, czyli próba zastosowania ładowarki przeznaczonej dla akumulatorów Ni-Cd/Ni-MH może doprowadzić do ich zniszczenia.
Hermetyczne akumulatory
ołowiowo-kwasowe
Akumulatory te [Sealed Lead-Acid) są modyfikacją, znanych od niemal 150 lat, powszechnie stosowanych kwasowych akumulatorów ołowiowych. Wprowadzone zmiany konstrukcyjne miały na celu przede wszystkim wyeliminowanie kłopotliwej obsługi (pomiaru gęstości i uzupełniania elektrolitu) i zamknięcie ogniw w hermetycznej obudowie. Stało się to możliwe w wyniku:
- Wprowadzenia dodatków żelujących do elektrolitu (stąd potoczna nazwa: akumulatory żelowe) lub zastosowania chłonnej warstwy separującej z nietkanego włókna szklanego (AGM - Absorbed Glass Mat). Akumulatory AGM charakteryzują się nieco niższą rezystancją wewnętrzną i wyższą pojemnością od ich żelowych odpowiedników.
- Wyeliminowania gazowania akumulatora w końcowym okresie ładowania. Konstrukcja akumulatora umożliwia migrację powstającego na elektrodzie dodatniej tlenu do elektrody ujemnej, gdzie może ulec neutralizacji.
- Zastosowania zaworów zwrotnych chroniących przed rozerwaniem obudowy w razie wystąpienia nadciśnienia (np. w wyniku przeładowania) i jednocześnie chroniących przez dostępem powietrza do wnętrza obudowy (VRLA - Valve Regulated Lead Acid). Elektrody płytowe stosowane w akumulatorach ołowiowych powstają w wyniku wprasowania porowatej masy czynnej w siatkowe ramki ze stopu ołowiu (a ściślej stopu PbSnCa). W odróżnieniu od akumulatorów zasadowych, kwas siarkowy (H2SO4) stanowiący zasadniczy składnik elektrolitu bierze czynny udział w zachodzących reakcjach elektrochemicznych, a jego stężenie maleje w miarę rozładowywania akumulatora. Substancjami aktywnymi w naładowanym ogniwie są:
- Na elektrodzie dodatniej - dwutlenek ołowiu PbO2 przechodzący w wyniku rozładowania w siarczan ołowia-wy PbSO4 (co odpowiada redukcji z Pb4+ do Pb2+).
- Na elektrodzie ujemnej - metaliczny ołów (Pb) przechodzący podczas rozładowania również do postaci PbSO4 (co odpowiada utlenieniu Pb do Pb2+).
Stosunkowo duża masa i delikatna konstrukcja elektrod płytowych sprawia, że tego typu akumulatory są nieodporne na wstrząsy (uwaga rowerzyści!). Przewidując eksploatację w ekstremalnych warunkach, należy raczej sięgnąć po (droższe) akumulatory o elektrodach zwijanych, charakteryzujące się znacznie większą trwałością i wytrzymałością mechaniczną (np. Cyclon firmy Hawker: http://www.hepi.com/cyclon.htm).
Prawidłowa eksploatacja akumulatora kwasowego wymaga przestrzegania kilku zasad:
- Dysponowana pojemność akumulatora maleje ze spadkiem temperatury. Przyjmując, że znamionowa temperatura pracy wynosi 20C, to np. w temperaturze 0C można uzyskać już tylko 85% pojemności nominalnej.
- Trwałość akumulatora ołowiowego szybko maleje ze wzrostem temperatury. Przyjmuje się, że podniesienie temperatury pracy o każde 8 stopni powyżej temperatury znamionowej skraca jego żywotność o połowę (sic!). Dlatego należy szczególnie zadbać o dobrą wentylację i stanowczo unikać nagrzewania akumulatora w urządzeniu, np. przez sąsiadujące radiatory.
- Głębokie rozładowanie, a w szczególności długotrwałe przetrzymywanie w stanie rozładowanym prowadzi do zasiarczenia akumulatora (osadzenia trudno rozpuszczalnego, grubokrysta-licznego PbSO4 na elektrodach) i w konsekwencji do nieodwracalnej utraty pojemności.
- Dopuszczalne końcowe napięcie rozładowania akumulatora zależy od prądu rozładowania. Jako punkt odniesienia przy znikomym obciążeniu należy przyjąć wartość 1,75 y/ogniwo. Przy rozładowaniu większym prądem procesy elektrochemiczne zachodzące w akmulatorze "nie nadążają" za zapotrzebowaniem, co możemy obserwować jako przyspieszony spadek napięcia na zaciskach. Orientacyjnie można przyjąć, że napięcie jednego ogniwa nie powinno spaść poniżej następujących wartości:
prąd napięcie
rozładowania końcowe
[V/ogniwo]
I<0,2 C 1,75
0,2 C0,5 C1,0 C>I 1,30
- Maksymalny prąd rozładowania bezob-sługowego akumulatora ołowiowego zazwyczaj nie powinien przekraczać wartości 3C. Szukając zamiennika, np. do zasilacza UPS, należy sięgnąć po specjalne wersje przystosowane do pracy z dużymi prądami rozładowania. Zalecana metoda ładowania akumulatorów ołowiowych polega na ładowaniu do stałego napięcia, z ograniczeniem wartości prądu początkowego [constant-curent/constant-voltage). Najważniejszą regułą, o jakiej trzeba pamiętać, jest niedopuszczanie do gazowania elektrolitu. Niewielkie ilości gazów powstające nieuchronnie w procesie ładowania ulegają chemicznej resorpcji, nie zakłócając pracy akumulatora. Jednak intensywne przeładowanie może doprowadzić do ucieczki gazu przez zawory wyrównawcze, a tym samym do nieodwracalnej utraty wody z elektrolitu i degradacji ogniwa. Niestety konstrukcja cel całkowicie uniemożliwia uzupełnienie powstałych ubytków.
W zależności od sposobu eksploatacji zaleca się jeden z dwóch podstawowych trybów ładowania:
- Ładowanie okresowe [cycle use) -stosowane np. w urządzeniach przenośnych, jedynie co pewien czas podłączanych do ładowarki. Ładowanie w tym trybie prowadzi się do osiągnięcia napięcia końcowego równego 2,4 5 V/ogniwo (przy 25C) z ograniczeniem prądu ładowania do wartości maks. 0,4C. Ładowanie powinno zostać zakończone po upływie zadanego czasu.
Elektronika Praktyczna 5/2003
SPRZĘT
- Ładowanie buforowe [backup use) -stosowane m.in. w układach zasilania rezerwowego. Przyjmuje się napięcie końcowe równe 2,20...2,30 V/ ogniwo z ograniczeniem prądu lądowania do wartości nieprzekraczającej 0.15C.
- Ładowanie dwuetapowe (rys. 6) -może być stosowane np. w zasilaczach UPS w celu szybkiego odtworzenia rezerwy energii po przywróceniu zasilania sieciowego. W pierwszym etapie należy ładować akumulator tak jak przy pracy okresowej. Gdy prąd ładowania spadnie poniżej wartości progowej (0,02C), należy przejść do trybu ładowania buforowego.
Podane napięcia końcowe dotyczą ładowania w temperaturze pokojowej (2O...25C). Jeżeli temperatura otoczenia może ulec istotnym zmianom, należy je odpowiednio korygować, przyjmując współczynnik korekcyjny o wartości -3...-5 mV/stopień/ogniwo, aczkolwiek zalecenia różnych producentów nie są pod tym względem jednolite, m.in. firma Panasonic proponuje, aby ze wzrostem temperatury powyżej 30C końcowe napięcie ładowania w trybie buforowym malało, zbliżając się asymptotycznie do wartości ok. 2,22 V/ogniwo.
Ogniwa litowo-jonowe (Li-Ion) i litowo-polimerowe (Li-Po)
Lit, z racji zajmowania pierwszego miejsca w szeregu elektrochemicznym metali (-3,024 V) a jednocześnie małej masy atomowej (6,94) i bardzo małego ciężaru właściwego (0,53 g/cm3), jest jednym z najbardziej obiecujących materiałów do konstrukcji ogniw elektrochemicznych. Jednak, należąc do tej samej grupy co sód i potas, jest zarazem pierwiastkiem niezwykle aktywnym chemicznie, przez co przysparza poważnych problemów związanych z bezpieczeństwem użytkowania. Przekonali się o tym konstruktorzy pierwszych, lado walnych ogniw litowych. Stosowane w nich elektrody z metalicznego litu po osiągnięciu temperatury 150C wchodziły w niekontrolowaną, prowadzącą do eksplozji reakcję z łatwopalnym elektrolitem. Jednocześnie metaliczny lit wykazywał tendencję do tworzenia dendrytów penetrujących warstwę separatora i powodujących powstawanie zwarć międzyelek-trodowych. Seria wypadków wywołanych przez przegrzanie akumulatora w wyniku zwarcia lub nieumiejętnego ładowania doprowadziła do wycofania tego typu ogniw z rynku. Renesans wtórnych ogniw litowych nastąpił dopiero po rezygnacji ze stosowania litu
2,5
2.4
2,3
o 2.2
12.1
Etapi
Ładowanie szybkie do napięcia 2,45 V/ogniwo
Etap 2
Ładowanie buforowe do napięcia 2.30 V/ogniwo
1.9
1,8-
1,7
0.5C
0.4C
0.3C
0,2C
0,1 C
0.02C
4 5
Czas, [h]
Rys. 6. Dwuetapowe ładowanie ogniw kwas owo-ołowiowych
metalicznego i zastąpienia go jonami (stąd nazwa Li-Ion) wbudowanymi w materiał elektrod. Pod względem budowy wewnętrznej, współczesny akumulator litowo-jonowy ma najczęściej postać trzywarstwowej zwijki złożonej z dwóch elektrod przedzielonych separatorem. Przestrzeń międzyelektrodową wypełnia elektrolit organiczny z rozpuszczonymi solami litu. Zadanie separatora polega na izolacji elektrycznej umożliwiającej zarazem niezakłócony przepływ jonów litu pomiędzy elektrodami. Do wykonania elektrod używa się materiałów zdolnych do wbudowy-wania i oddawania atomów litu bez jednoczesnej zmiany swojej struktury krystalicznej (tzw. interkalacja). Materiał używany do wytwarzania elektrod ujemnych powinien mieć możliwie wysoki potencjał elektrochemiczny względem potencjału odniesienia (tzn. neutralnej elektrody wodorowej). Najlepszy do tego celu okazał się grafit lub specjalnie preparowana odmiana węgla bezpostaciowego. Ze strony elektrody dodatniej najczęściej używa się obecnie tlenku litowo-kobaltowego (LiCoO2) mającego tę szczególną cechę, że ilość zawartego w nim litu nie jest określona przez proporcje stechiomet-ryczne i może się zmieniać w pewnych granicach. W czasie rozładowywania ogniwa litowo-jonowego atomy litu znajdujące się w elektrodzie dodatniej oddawszy jeden elektron ulegają jonizacji i w postaci jonów Li+ migrują do elektrody ujemnej, gdzie otrzymują brakujący elektron i zostają wbudowane w strukturę krystaliczną węgla. W miarę rozładowywania maleje ilość litu w elektrodzie dodatniej a rośnie po stronie przeciwnej. Ładowanie ogniwa Li-Ion odwraca ten proces. Atomy litu po zjonizowaniu
opuszczają elektrodę węglową i migrują na drugą stronę, gdzie zostają wbudowane w strukturę LiCoO2. Nominalne napięcie wtórnego ogniwa litowego wynosi 3,6...3,7 V (zależnie od szczegółów wykonania elektrody ujemnej).
Rezygnacja ze stosowania metalicznego litu zdecydowanie poprawiła bezpieczeństwo użytkowania tych ogniw, eliminując ryzyko niestabilności termicznej i eksplozji. Jednak w hermetycznie zamkniętej obudowie wciąż znajduje się organiczny elektrolit określany w kartach bezpieczeństwa jako extra flammable. Przegrzanie ogniwa np. w wyniku przeładowania może spowodować rozszczelnienie obudowy, wyciek i zapłon elektrolitu. Istotnym krokiem w kierunku wyeliminowania również tego zagrożenia było zastąpienie ciekłego elektrolitu warstwą polimeru organicznego umożliwiającego dyfuzję jonów litu. W ogniwach lito-wo-polimerowych (Li-Po) zachowano jedynie szczątkową zawartość elektrolitu służącego zmniejszeniu rezystancji wewnętrznej. Jednocześnie stało się możliwie wyeliminowanie masywnej metalowej obudowy, a samo ogniwo ma postać folii o grubości poniżej 1 mm, która może być zwijana, składana w harmonijkę itp. Dzięki temu uzyskano zwiększoną gęstość energii zgromadzonej w jednostce objętości i niespotykane możliwości zastosowań np. umieszczenia we wnętrzu karty chipowej.
Wbrew obiegowym opiniom, technika ładowania akumulatorów litowych jest stosunkowo nieskomplikowana, zwłaszcza jeżeli porównamy ją z ogniwami Ni-MH. Zasadniczo sprowadza się do wspomnianej już wcześniej metody constant current/constant voltage, czyli ładowania stałym prądem aż do
Elektronika Praktyczna 5/2003
91
SPRZĘT
-----------Naplęcle/ognhro
-----------Prąd ładowania
1.25C
1.0OC
i
| 0.75C
; o,soc
r
0.25C 0.033C

/ >
\ \ \
/ s
--------
4.20
4
2 1
2 Czas, [h]
Rys. 7. Typowy przebieg ładowania ogniw litowo-jonowych
osiągnięcia zadanego napięcia końcowego, po czym następuje stopniowy spadek prądu aż do wartości, przy której ładowanie powinno zostać zakończone. W odróżnieniu od ogniw innych rodzajów, akumulatory litowe są jednak szczególnie czule na warunki ładowania. Z jednej strony grają tu rolę względy bezpieczeństwa, a z drugiej bardzo duża wrażliwość na przeładowanie. Nawet przekroczenie o 1% nominalnej pojemności może doprowadzić do destrukcji ogniwa.
Ładowanie odbywa się ze sprawnością ok. 99,8%, niespotykaną winnych rodzajach ogniw (nie dotyczy to pierwszego ładowania formującego mającego mniejszą sprawność). Dlatego pakiet Li-Ion w czasie ładowania powinien być całkowicie zimny. Ładowanie powinno odbywać się w dwóch fazach (rys. 7):
1. Faza wstępna. Polega na ładowaniu ogniwa stałym prądem aż do osiągnięcia napięcia końcowego. Maksymalny dopuszczalny prąd ładowania wynosi 1C dla małych ogniw Li-Ion, 0,8C dla ogniw dużych (np. popularnego w notebookach typu 18650) i 0,5C w przypadku ogniw Li-Po. Prąd ładowania nie jest limitowany od dołu (przypomnijmy sobie zastrzeżenia jakie były w przypadku Ni-MH). Jeżeli napięcie rozładowanego ogniwa spadło poniżej 2,9 V, należy zacząć ładowanie od prądu nieprzekraczającego O,1C. Napięcie końcowe ładowania powinno wynosić 4,20 V ą0,05 y/ogniwo. Akumulator naładowany do napięcia 4,10 V/ogniwo będzie miał pojemność mniejszą o ok. 10% od nominalnej, zyskując w zamian na trwałości. Faza wstępna trwa ok. 1 h (przy prądzie 1C) i dostarcza ogniwu ok. 70% energii znamionowej.
2. Faza ładowania końcowego. Odbywa się przy stałym napięciu równym napięciu końcowemu (4,20 V). Prąd ładowania spada w miarę doładowywa-nia ogniwa. Gdy jego wartość spadnie do poziomu 0,033C, ładowanie należy bezwzględnie zakończyć. Pamiętajmy,
że akumultory litowe nie są zdolne do przyjęcia przeładowania.
Akumulatory przechowywane przez dłuższy czas mogą być poddawane okresowemu ładowaniu konserwującemu. Polega ono na pomiarze napięcia na zaciskach i po stwierdzeniu obniżenia do poziomu 4,05 V/ogniwo, okresowym (co ok. 3 tygodnie) doładowy-waniu do poziomu 4,20 V/ogniwo.
Ze względów na bezpieczeństwo użytkowania i trwałość drogich akumulatorów należy spełnić jeszcze kilka dodatkowych warunków:
- Ładowanie musi odbywać się w zakresie temperatur O...45C.
- Układ ładowania powinien posiadać niezależne zabezpieczenie przed przeładowaniem ustalone na poziomie 4,30 V/ogniwo (zaledwie 0,1 V powyżej nominalnego napięcia ładowania!). Po przekroczeniu tej granicy następuje osadzanie metalicznego litu na elektrodzie ujemnej. Jednocześnie materiał elektrody dodatniej staje się utleniaczem, traci stabilność i zaczyna wydzielać tlen. W konsekwencji ogniwo ulega przegrzaniu, skutkiem czego może ulec rozszczelnieniu i samozapłonowi.
- Automatyka zasilanego urządzenia powinna zapobiegać przed rozładowaniem poniżej granicy 2,50 y/ogniwo (typowo powinno się utrzymywać min. 2,7...3,0 V/ogniwo). Nie wolno ładować ogniw doprowadzonych przez dłuższy czas (kilka dni) do stanu głębokiego rozładowania (poniżej 1,5 V/ogniwo). Zmiany elektrochemiczne zachodzące w jego wnętrzu mogą powodować skłonność do powstawania zwarć międzyelek-trodowych i grożą niestabilnością, przegrzaniem i zapłonem ogniwa. Fabryczne pakiety ogniw Li-Ion
często zawierają wbudowane zabezpieczenia przez przekroczeniem dopuszczalnego napięcia (4,30 V), temperatury (90C) lub nadmiernego ciśnienia wewnętrznego. Ładowanie baterii litowych jest znacznie prostsze niż np. akumulatorów niklowych, m.in. dzięki jednoznaczności z jaką można stwierdzić moment zakończenia procesu. Z drugiej strony, wymagają bardzo precyzyjnej kontroli warunków ładowania. Dlatego warto powierzyć je specjalizowanym układom produkowanym przez wiele firm m.in. Maxim, Linear Tech., Phillips i in.
Podsumowanie
Przygotowując powyższe zestawienie, skoncentrowałem się przede wszystkim na zwięzłym omówieniu zasadniczych cech konstrukcyjnych rzutujących na sposób eksploatacji, a w szczególności na proces ładowa-
Odnośniki
Zestawienie odnośników do najciekawszych materiaiów internetowych zawierających
informacje na poruszone tematy: Ogćhe
* http://www.batteryuniversity.com M-Cd^i-WH
* http://www.panasonic.com/industrial/battery/ oem/chem/niccad/index.html
* http://data.energizer.com/batteryinfo/ application_manuals/nickel_cadmium.htm
* http://www.panasonic.com/industrial/battery/ oem/chem/nicmet/index.html
* http://data.energizer.com/batteryinfo/ application_manuals/nickel_metal_hydride.htm
Lead-Aćd
* http://www.emu.com.pl/infosla.html
* http://www.mkbattery.com/pdf/GelBattery-Charging.pdf
* http://www.mkbattery.com/pdf/AGMBattery-Charging.pdf
RAM
* http://www.rayovac.com/busoem/oem/specs/ ren7.shtml
* http://web.tin.it/rms_international/guide-page.html
U-lon/LJ-Po
* http://www.panasonic.com/industrial/battery/ oem/images/pdf/Panasonic_Lilon_-Overview.pdf
* http://www.batteryuniversity.com/partone-12.htm
* http://www.ulbi.com/whitepapers/LIBI-5112_Li-ion_Li-Poly_Precautions.pdf
Rpyie
* http://www.wamtechnik.com.pl (m.in. ogniwa HAWKERCYCLON)
* http://sklep.batimex.pl (ogniwa Li-Ion m.in. 18650)
nia. Mam nadzieję, że chociaż w niewielkim stopniu ułatwię w ten sposób np. samodzielną konstrukcję ładowarek i świadome dobieranie warunków pracy, wykraczające poza bierne skopiowanie noty aplikacyjnej kolejnego układu scalonego. Należy jednak zdawać sobie sprawę, że temat eksploatacji jest bardzo rozległy i w zasadzie został jedynie zasygnalizowany. Niemal całkowicie pominąłem kwestię wpływu temperatury na osiągi akumulatorów, metody oszacowania stanu rozładowania itd. Ponadto, porównanie materiałów publikowanych przez różnych wytwórców uwidacznia istotne różnice pomiędzy, na pozór silnie zunifikowanymi, produktami. Dlatego zachęcam do uważnej lektury dostępnych kart katalogowych i not aplikacyjnych, a włożony wysiłek niewątpliwie zostanie nagrodzony dłuższą (tańszą!) pracą wykorzystywanych akumulatorów. Marek Dzwonnik, AVT marek.dzwonnik@ep.com.pl
Reklama czołowego producenta akumulatorów i ogniw zasilających -firmy GP Batteries - znajduje się na stronie 74.
Elektronika Praktyczna 5/2003
KURS
CRC doda Ci pewności, część 5
To już ostatni odcinek kursu. Jak się przekonamy cały trud związany z przedzieraniem się przez meandry wiedzy, o której nie można powiedzieć żeby była "iekkostrawna"', bardzo się teraz przyda. Procedury obhczeniowe wydają się prostsze niż można by początkowo przypuszczać. Potwierdzają to zamieszczone przykłady.
W poprzednim odcinku mieliśmy okazję prześledzić program napisany w języku C, realizujący parametryczną metodę obliczania CRC. Wszystko wyglądało dość poważnie. Sama procedura obliczająca CRC może być -przy wprowadzeniu pewnych założeń wstępnych - znacznie uproszczona. Oczywiście usprawiedliwieniem dla poprzednich rozważań był zamiar stworzenia programu uniwersalnego. Tym razem zdecydujmy się na jedną (konkretną) wersję metody: normalną albo odwróconą. Jeśli przyjmiemy metodę normalną, będzie to odpowiadało nadaniu zmiennym Tefin i refoi wartości FALSE. Dla metody odwróconej obydwie zmienne mają wartość TRUE. Założenia takie pozwalają zrezygnować z powyższych zmiennych kosztem napisania dwóch niezależnych procedur. Nasz generator będzie zaszyty w tablicy. Pozostałe parametry: INIT i XOROT mogą być zdefiniowane jako makra. Procedura 32-bito-wa, normalna będzie więc wyglądała
jak na list. 3, odwrócona zaś jest przedstawiona na list. 4.
Generowanie tablic wykorzystywanych w opisywanych algorytmach (Lookup Tabie)
My tu sobie gadu-gadu, rozpatrujemy różne warianty, raz coś skomplikujemy, raz coś uprościmy, a tym czasem nie mamy najważniejszego elementu naszego programu, czyli tablic służących do obliczeń. Tablice takie mogą być obliczane w biegu przez funkcję cm_tab, mogą być też obliczane wstępnie i wstawiane do kodu programu pisanego w języku C. Zwróćmy uwagę na to, że w każdym przypadku będą one zależały jedynie od parametrów POŁY oraz REFIN (i REFOUT). Uściślając: jeśli zdecydujemy się na konkretną metodę, to będziemy mogli wygenerować jedynie odpowiednią wersję tablicy (normalną lub odwróconą). Na list. 5 przedstawiono pro-
List. 3. Procedura normalna obliczania CRC
un^igned long crc_norinal {);
unsigned long crc_norinal (blk_adr,blk_len)
unsigned char *blk_adr;
Un^lgned long blK_len;
1
unsign&d long crc = INIT;
Whlle (blk_len--J crc = crctable[ ((crc24) "Ś *blk_adr++) &
return crc "Ś KOROT;
(crc
List. 4. Procedura odwrócona obliczania CRC
un^igned long crc_reflected {);
unsigned long crc_reflected (blk_adr,blk_lenj
unsigned char *blk_adr;
Un^lgned long blk_len;
1
Unslgned long crc = INIT_REFLECTED;
Whlle (blk_len--J
crc = crctable[ (crc "Ś *blk_adr+ + ) & OkFFL] "Ś (crc >>
return crc ŚŚ KOROT;
gram generowania 16- lub 32-bitowej tablicy CRC (CRC Lookup Tobie).
Krótkie podsumowanie poznanych metod
Jako uzupełnienie dotychczasowych przykładów na list. 6 i 7 prezentujemy (w wersji oryginalnej) jeszcze dwie wersje gotowych procedur służących do obliczeń CRC. W tym momencie właściwie możemy uznać, że dobrnęliśmy do końca kursu. Zaczynaliśmy od metod najprostszych, wykorzystujących niemal naturalne przełożenie teorii na język programowania, by w kolejnych krokach coraz bardziej je komplikować. Nie była to jednak sztuka dla sztuki. Zamierzeniem było uzyskanie jak największej wydajności algorytmów, a więc i szybkości działania końcowych programów. Doszliśmy do wniosku, że najlepsze rezultaty osiągniemy metodami tablicowymi. Ich wadą jest niestety zajmowanie sporej części pamięci programu. Wyboru należy dokonywać w zależności od potrzeb i możliwości w konkretnych przypadkach.
Metod sprawdzania poprawności transmisji obliczających CRC nie będziemy zapewne stosować w prostych aplikacjach, w których ewentualna utrata danych nie będzie stanowiła wielkiego problemu. Decyzja o rezygnacji będzie tym bardziej zasadna, jeśli będziemy mieli do czynienia
Elektronika Praktyczna 5/2003
93
KURS
Słowniczek
Suma kontrolna - liczba wyliczona na podstawie treści pewnego komunikatu (rozumianegotutajjakociąg bajtów, niekoniecznie reprezentującego informacje tekstowe) i dołączana do niego w celu późniejszej kontroli prawidłowości odczytu. Przykładowe zastosowania: transmisja danych, rejestracja danych na nośnikach magnetycznych itp. Stówo "suma" niekoniecznie musi być rozumiane w dosłownym znaczeniu. Najczęściej będą to bardziej wyrafinowane metody obliczeniowe.
CRC - "Cyclic Redundancy Code" - akronim określający metody kontrolowania poprawności odczytu danych bazujące na dzieleniu wielomianów.
Komunikat, wiadomość {message) -dane wejściowe, których poprawność transmisji, zapisu itp. będzie sprawdzana w podczas odczytywania. Nie koniecznie rozumiane w dosłownym znaczeniu -jako informacja tekstowa. Najczęściej będą to struktury zorganizowane w sekwencje bajtów.
Generator {poły) - robocza nazwa "wielomianu generującego", będącego podstawowym parametrem algorytmów obliczania CRC.
Wielomian generujący {poiynomiai) -wielomianem generującym nazywamy dzielnik używany podczas obliczeń CRC. Jakjuż wiadomo metody stosowane do tego celu bazują na operacji dzielenia wielomianów.
Liczba odwrócona (odbita) - liczba binarna, której wszystkie bity zostały zamienione miejscami dookoła punku centralnego, np. liczba 1101 jest odbiciem liczby 1011.
ROCKSOFT MODEL CRC ALGO-RITHM - sparametryzowany algorytm obliczania CRC. Poprzez podanie odpowiednich parametrów wejściowych pozwala prowadzić obliczenia różnymi metodami.
Szerokość algorytmu {width) - szerokość algorytmu odpowiada szerokości wielomianu generującego minus jeden (czyli jego stopniowi). Np. jeśli generatorem jest 11010, szerokość będzie równa 4. Szerokość algorytmu jest najczęściej wielokrotnością liczby 8.
List. 5. Program generowania 16- lub 32-bitowej tablicy CRC
Proąram crctable.c
Autor: Ross Williams (rossSguest.adelaide.edu.au.)
Data: 3 czerwca 1993.
Wersja: 1.0.
Status : Public domain.
*/
*/ */ */ */
*/
Opis: Program generuje tablicę CRC (lookup table), która może być dołączana */ do programów W języku C, obliczających CRC metodą tablicową. */
Wygenerowana tablica jest zapisywana w pliku wyjściowym. */
Tablice mogą być wykorzystywane w obliczeniach wykorzystujących */ "RocksoftAtm Model CRC Algorithm" opisany w poprzednich */
odcinkach kursu. Materiał źródłowy nosi tytuł "A Painless Guide to CRC*/ Error Detection Algorithms" */
ross Williams (rossSguest.adelaide.edu.au.) */
Dokument ten jest do pobrania z adresu: */
Nie określono zakładki. */
*/
/*Uwaga: Rocksoft jest znakiem handlowym Rocksoft Pty Ltd, Adelaide, Australia */
tinclude tinclude tinclude "crcmodel.h"
generowania tablicy. W zależności oć
PARAMETRY TABLICY
Poniższe parametry określają eposi! potrzeb należy je zmienić.
TB_FILE - nazwa pliku wyjściowego TB_WIDTH - szerokość tablic w bajtach (2 or 4)
TB_P0LY - wielomian generujący, musi mieć szerokość taką jak TB_WIDTH TB_REVER - zmienna określająca, czy ma być użyty algorytm prosty, czy odwrócony
Przykład:
#define TB_FILE "crctable.out"
#define TB_WIDTH 2
#define TB_P0LY 0x8005L
#define TB_REVER TRUE
1 crctable.out"
#define TB_FILE
#define TB_WIDTH 4
#define TB_P0LY OxO4CllDB7L
#define TB_REVER TRUE
/* Definicje
#define LOCAL static
FILE *outfile;
#define WR(X) fprintf(outfile,(X))
#define WP(X,Y) fprintf(outfile, (X) , (Y)
LOCAL void chk_err P_((char *)); LOCAL void chk_err (mess) char *mess;
if (mess[0] != 0 if (ferror(outfile;
{printf("%s\n",mess) {perror("chk_err");
exit(EXIT_FAILURE) ; } exit(EXIT_FAILURE) ; }
LOCAL void chkparam P_((void)); LOCAL void chkparam () { if ((TB_WIDTH != 2) && (TB_WIDTH != 4))
chk_err("chkparam: Width parameter is iilegał."); if ((TB_WIDTH == 2) && (TB_P0LY & 0xFFFF0000L))
chk_err("chkparam: Poły parameter is too wide."); if ((TB_REVER != FALSE) && (TB_REVER != TRUE))
chk_err("chkparam: Reverse parameter is not boolean.
LOCAL void gentable P_((void) LOCAL void gentable ()
CRC LOOKUP TABLE
WR( " /*
WR( " /*
WR ( "/*
WR ( "/*
WR( "/*
WP( "/*
(ul
if (TB
WP( "/*
(Ul
else
The following CRC lookup table was generated automagically by the RocksoftAtm Model CRC Algorithm Table Generation Program VI.0 using the following model parameters:
Width : %llu bytes. ong) TB_WIDTH); _WIDTH == 2)
Poły : 0x%041X ong) TB_POLY);
V\n" ) ; V\n") ; V\n") ; V\n") ; V\n") ; V\n") ; V\n") ; V\n") ; */\n"
V\n"
94
Elektronika Praktyczna 5/2003
KURS
List. 5. cd.
WP("/* Poły : 0x%0 81XL */\i
(Ulong) TB_POLY); if (TB_REVER) WR (" / else WR (" / WR (" /
WR("/* For morę information on the RocksoftAtm Model CRC Algorithm, WR("/* see the document titled \"A Painless Guide to CRC Error WR("/* Detection Algorithms\" by Ross Williams
(rossSguest.adelaide.edu.au.). This document is likely to be in the FTP archiye \"ftp.adelaide.edu.au/pub/rocksoft\".
Reyerse: TRUE. Reyerse: FALSE.
WR( WR (
WR("/*' WR("\n" switch
V\n") ;
V\n") ;
*/\n");
*/\n");
*/\n")
*/\n")
*/\n");
*/\n"
*/\n");
!*/\n") ;
(TB_WIDTH)
case 2 : WR("unsigned short crctable[256] =\n{\n") case 4: WR("unsigned long crctable[256] =\n{\n" default: chk_err("gentable: TB_WIDTH is inyalid. }
chk_err(" " ) ; {
int i; cm_t cm;
char *form = (TB_WIDTH==2) ? "0x%041X": "0x%0 81 int perline = (TB_WIDTH==2) ? 8: 4; cm.cm_width = TB_WIDTH*8; cm.cm_poly = TB_POLY; cm.cm_refin = TB_REVER; for (i=0; i<256; i++) {
WR(" ");
WP(form, (ulong) cm_tab(Scm,i)); if (i != 255) WR(",");
if (((i+1) % perline) == 0) WR("\n"); chk_err(" " ) ;
End of CRC Lookup Table
break; break;
WR(" };\n
WR(" \n")
WR(" /***
WR(" /*
WR(" /***
WR(" ") ;
chk_ err (
;**** ****
main 0
*/\n"
printf("\n");
printf("RocksoftAtm Model CRC Algorithm Table Generation Program V1.0\n"
printf ("--------------------------------------------------------------------\n"
printf("Output file is \"%s\" . \n",TB_FILE);
chkparam();
outfile = fopen(TB_FILE,"W")i chk_err("");
gentable();
if (fclose(outfile) != 0)
chk_err("main: Couldn t close output file."); printf("\nSUCCESS: The table has been successfully written.\n") ;
Koniec crctable.c
z dobrym, niezaszumionym i niezakłóconym kanałem transmisyjnym. Przykładem może być choćby telemetryczna akwizycja danych o temperaturze z czujnika oddalonego od stacji zbierającej dane z wielu punktów. Utrata jednego pomiaru nie będzie wielką stratą, gdyż już w chwilę później nadejdzie kolejna dana. Dla bezpieczeństwa, zobrazowanie (lub dalsza obróbka) wyników może być poprzedzone uśrednieniem danych z kilku transmisji. W ostateczności można zastosować dużo prostszą metodę, do tego bardzo łatwą w praktycznej realizacji, jaką jest kontrola parzystości na poziomie transmitowanych bajtów. Jeśli
jednak staniemy przed problemem np. przesłania dużej liczby danych z jednego urządzenia do drugiego lub zależy nam na jak najmniejszym prawdopodobieństwie błędu choćby ze względu na znaczenie danych, metody CRC mogą być nieodzowne. Czynnikiem wpływającym na podjęcie decyzji o stosowaniu kontroli transmisji może być również prowadzenie transmisji danych z urządzeń w czasie normalnego ich funkcjonowania (on-line). W krytycznej sytuacji może się nawet okazać, że zabraknie nam mocy obliczeniowej mikro-kontrolera. Trzeba wówczas sięgać po metody sprzętowe. Przykładem takie-
Ust. 6. Zestaw procedur do obliczania CRC
crc.c - straightforward 16 bit CRC
by Alberto Ricci Bitti
released to public domain
compatibility notes:
Works on little-endian machines only,
assumes 32 bit long integers,
16 bit integers and 8 byte characters
/*crc-16 standard root*/ #define POLYHOMIAL 0x8005
/*place your own here*/ #define IHITIAL_VALUE 0x0000
unsigned long Whole; struct
unsigned char Data; unsigned int Remainder; unsigned char Head; } Part; } CRC_buffer;
/*internal use only - puts a byte*/ static void PutCRC(unsigned char b)
unsigned char i; CRC_buffer.Part.Data = b; for (i=0; i<8; i++)
CRC_buffer.Whole = CRC_buffer.Whole 1; if (CRC_buffer.Part.Head & 0x01) CRC_buffer.Part.Remainder A= POLYHOMIAL;
/*call this routine with your own data buffer yes! it's really that simple!*/
unsigned int CRC (unsigned char *
Data, unsigned int Length)
{
CRC.Part.Remainder = INITIAL_VALUE;
While (Length > 0)
PutCRC(*Data++);
PutCRC(0);
PutCRC(0);
return CRC_buffer.Part.Remainder;
go rozwiązania może być układ 74F401 [Fairchild), będący generatorem/kontrolerem CRC. W zależności od ustawienia bitów sterujących, umożliwia on pracę w trybach CRC-16 (X16+X15+X2+l), CRC-16 REVERSE (X16+X14+X + l), X16+X15+X13+X7+X4+X2+X1+l, CRC-12 (X12 + X11 + X3+X2+X + l), X8+X7+X5+X4+X + l, LRC-8 (X8+l), CRC-CCITT (X16+X12+X5+l) oraz CRC-CCITT REVERSE (X16+Xn+X4+1). Pełna nota katalogowa układu jest zamieszczona na płytce CD-ROM dołączonej do tego numeru EPooL.
Literatura:
1. Boudreau, Steen, "Cyc lic Re-dundancy Checking by Program" AFIPS Proceedings, Vol. 39, 1971.
2. Davies, Barber, "Computer Networks and Their Protocols" J. Wi-ley &Sons, 1979.
Elektronika Praktyczna 5/2003
95
KURS
Ust. 7. Zestaw procedur do obliczania CRC stosowanych w protokole Modbus
/*> FUNCTION: crc_calc () <<<<<<<<<<<<<<<<<<<<<<<< */
/* */
/* Purpose: Generate the CRC checksum's used by the Modbus Protocol. */
/* */ /* Notes: This routine will simulate a "reverse" CRC Hardware circuit. */
/* (Used in the Modbus Protocol). */
/* */
/* This function uses the CRC-16 16 bit CCITT polynomial. */
/* CRC Polynomial Used: Xl6+xl5+x2+xl */
/* */
/* Entry: The calling routine must pass an unsigned char (byte) value */
/* to perform the CRC calculations on, and a pointer to an */
/* unsigned integer location for the storage of the generated */
/* CRC word (2 bytes). It is the calling functions */
/* responsibility to initialize the "crc_accum" location to Oxffff */
/* prior to calling this routine for the first time. Only init */
/* the location after the seąuence of characters used in the */
/* CRC generation are complete. */
/* */
/* Example: If the character string is: 06 03 Ob b9 00 01 */
/* The calculated CRC Will be: 7c 56 */
/* (Notę: Swap bytes for serial transmission - the */
/* complete transmission seąuence will be: */
/* */
/* 06 03 Ob b9 00 01 56 7c */
/* <-------+--+ */
/* Data Flow CRC */
/* */
/* Exit : Location crc_accum will have a 16 bit (two bytes) value of */
/* the new calculated CRC. */
/* */
/* Programmer: Rick Vaughn Eagle Systems, Santa Fe, Texas */
/* */
/* Reyisions: 8/26/94 (Orig) --Rick Vaughn-- */
/* */ /*>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ void crc_calc(uchar work_data)
code uint genpoly = 0xa001; /* Reversed polynomial */ uchar i;
/* Convert the received byte to an integer */ crc_accum = crc_accum A (uint)work_data; for(i=8; i>0; i--)
/* Loop 8 times to test each bit of the new character */ if ((crc_accum) & 0x0001)
crc_accum = ((crc_accum) 1) A genpoly; else (crc_accum) = 1;
3. Higginson, Kirstein, "On the Computation of Cyclic Redundancy Checks by Program", The Computer Journal (British), Vol. 16, No. 1, Feb 1973.
4. McNamara, J. E., "Technical As-pects of Data Communication" 2nd Edition, Digital Press, Bedford, Massachusetts, 1982.
5. Marton and Frambs, "A Cyclic Redundancy Checking (CRC) Al-gorithm", Honeywell Computer Journal, Vol. 5, No. 3, 1971.
6. Nelson M., "File verification us-ing CRC", Dr Dobbs Journal, May 1992, str. 64-67.
7. Ramabadran T.V., Gaitonde S.S., "A tutorial on CRC computa-tions", IEEE Micro, Aug 1988.
8. Schwaderer W.D., "CRC Calculation", April 85 PC Tech Journal, str. 118-133.
9. Ward R.K, Tabandeh M., "Error Cor-rection and Detection, A Geometrie Approach", The Computer Journal, Vol. 27, No. 3, 1984, str. 246-253.
10. Wecker, S., "A Table-Lookup Al-gorithm for Software Computation of Cyclic Redundancy Check (CRC)", Digital Eąuipment Corporation memorandum, 1974.
Jarosław Doliński, AVT jaroslaw.dolinski@ep.com.pl
Artykuł powstał na podstawie publikacji "A painless guide to CRC error detection algorithms", Autor Ross N. Williams. Można go znaleźć pod adresem http: I' I'www,ri c cihit-ti, coml creguide ,h tm,
96
Elektronika Praktyczna 5/2003
KURS
8O51
ostatniej części cyklu poświęconego obsłudze
klawiatur za pomocą mikrokontrolerów programowanych w języku C przedstawiamy najbardziej ekonomiczny - z punktu widzenia wydajności pracy mikrokontrolera - sposób obsługi klawiatury: za pomocą przerwań sprzętowych.
Obsługa klawiatury w C, część 3
Przerwania i klawiatura
Dotychczas we wszystkich prezentowanych przykładach klawiatury były obsługiwane z wykorzystaniem techniki zwanej odpytywaniem lub przeglądaniem [pooling). Teraz pokażę przykład klawiatury, która obsługiwana będzie na żądanie, po naciśnięciu klawisza. Do jej wykonania wykorzystam przerwanie zewnętrzne INTO mikrokontrolera 8051, jak to pokazano na rys. 6.
Podobnie jak poprzednio wykorzystujemy przyciski zajmujące bity od 0 do
4 portu Pl. W sumie daje to pięć klawiszy. Identycznie jak w poprzednich przykładach stanem aktywnym jest stan niski - jego pojawienie się na wejściu mikrokontrolera oznacza wciśnięcie klawisza. Do poszczególnych bitów portu podłączone są rezystory pull-up, których zadaniem jest zwiększenie odporności mikrokontrolera na zakłócenia. Jeśli używasz niewielkiej, lokalnej klawiatury podłączonej blisko układu mikrokontrolera (przewód nie dłuższy niż 15...20 cm) - możesz ich nie stosować. Wejścia portów podłączone są
List. 6. Przykładowy program obsługujgcy klawiaturę w przerwaniu INTO
/* prosty program demonstracyjny "przerwanie generowane po wciśnięciu klawisza" wykorzystane są bity P1.0 do P1.4 oraz wej ście zewnętrznego przerwania INTO rezonator kwarcowy 8MHz */
tinclude tinclude
#define PortKey Pl
#define Key_l #define Key_2 #define Key_3 #define Key_4 #define Key_5 #define mask
ObOOOOOOOl ObOOOOOOlO ObOOOOOlOO ObOOOOlOOO ObOOOlOOOO ObOOOlllll
unsigned char status =
//dołączenie definicji rejestrów mikrokontrolera //prototyp funkcj i printf
//definicja bitu portu klawisza
//maski dla poszczególnych bitów klawiszy
//maska bitów klawiatury dla operacj i logicznych //status, ustawiany w obsłudze przerwania
//odczyt klawiatury podłączonej do PortKey
//jest to funkcja obsługi przerwania używająca banku rejestrów 1
void KbdRead() interrupt 1 using 1
{
int i;
unsigned char p;
p = PortKey;
p = ~p &. mask;
for (i=0; i<1300; i++);
status = PortKey;
status = -status &. mask;
if (p != status) status
//początek programu głównego Void main(void)
PortKey I EX0 = 1; EA = 1; While (1)
-mask;
//odczyt bitów portu
//pauza 2 0 ms dla rezonatora 8MHz
//ponowny odczyt bitów klawiatury dla weryfikacj i
//ustawienie zmiennej status
//ustawienie linii klawiatury //zezwolenie na przyjmowanie przerwań INTO //załączenie przerwań //pętla nieskończona
if {
(status)
if (status &.&. Key_l) printf ("%s\n", "Klawisz I1
if (status && Key_2) printf("%s\n","Klawisz 21
if (status && Key_3) printf("Ls\n","Klawisz 31
if (status && Key_4) printf("%s\n","Klawisz 41
if (status && Key_5) printf("%s\n","Klawisz 51 status = 0;
do wejść ośmi owej ś ci owej bramki NAND (7430). Jej zadaniem jest wygenerowanie sygnału przerwania w momencie naciśnięcia klawisza. Na wyjściu bramki NAND (negacja iloczynu) pojawia się jednak sygnał o fazie przeciwnej niż nam potrzebna: w sytuacji, gdy wszystkie wejścia bramki są w stanie wysokim (czyli nie jest wciśnięty żaden z klawiszy), wyjście bramki jest w stanie niskim. Gdy na dowolnym z wejść pojawi się stan logiczny niski, to wyjście bramki przyjmuje stan wysoki. Odpowiada to narastającemu zboczu sygnału na wejściu przerwania INTO po wciśnięciu klawisza. Opadające zbocze, które wyzwala przerwanie (jest to związane z zasadą działania mikrokontrolera z rodziny 8051, który wymaga opadającego zbocza lub poziomu niskiego, aby uruchomić procedurę obsługi przerwania), pojawi się dopiero po zwolnieniu przycisku. Niestety, jest to zbyt późno, ponieważ nie będziemy w stanie sprawdzić, który przycisk został wciśnięty. W związku z tym wymagane jest użycie układu inwertera dla odwrócenia fazy sygnału. Faktycznie realizowana jest więc funkcja AND, a nie NAND.
Można również pokusić się o wykonanie bramki AND za pomocą diod (rys. 7). Jest to rozwiązanie bardzo oszczędne, jeśli rozpatrywać je pod kątem ceny użytych do konstrukcji elementów. Może nie tak ,,eleganckie" jak z wykorzystaniem układów scalonych, jednak tanie i równie skuteczne.
Nowatorska jest w tym przykładzie tylko metoda. Nie angażujmy mikrokontrolera w przeglądanie stanu klawiatury, zajmujemy się nią tylko wówczas, gdy jest to konieczne. Na życzenie możliwe jest również wyłączenie obsługi klawiszy poprzez prostą blokadę przyjmowania przerwania z INTO (zerowanie bitu IE0). Metoda ta jak każda ma swoje wady i zalety: nie będziemy ich tu dyskutować, zajmijmy się programem obsługi.
Najważniejszą częścią programu jest funkcja obsługująca przerwanie. Zajmuje się ona rozpoznaniem, który z klawiszy został naciśnięty, ustawia bity zmiennej status. Podobnie jak poprzednio funkcja printf wysyła, korzystając z UART, numer wciśniętego klawisza. Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Elektronika Praktyczna 5/2003
97
KURS
vcco
-5-XTAL1 -4-JCTAL2
6
2
A
P1.0/AIN0 P1.1/AIN1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
P3.2/INT0 P3.3/INT1 P3.7
P3.4/T0 P3,0/RXD P3.1/DCD
AT89C2051
7404
7430
12
vcc
-5-XTAL1
RSTA/PP P1.0/AIN0 P1.1/AIN1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
6 -S P3.4/T0
P3.2/INT0
P3.3/INT1 P3.7
P3.0/FWD P3.5/T1 P3.1AXD
VCCO
AT89C2051
*vcc
Rys. 6. Schemat elektryczny klawiatury generujgcej sygnał przerwania po naciśnięciu dowolnego przycisku
Rys. 7. Schemat elektryczny klawiatury generujgcej sygnał przerwania po naciśnięciu dowolnego przycisku z bramkg AND zbudowang z diod
98
Elektronika Praktyczna 5/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.
Miniprogramator szeregowych pamięci EEPROM, część 2
W drugiej części
artykułu przedstawiamy
opis obsługi programatora
pamięci szeregowych, który
można wykorzystać także
jako programowy interfejs
do obsługi wielu innych
układów wyposażonych
w interfejs I2C
Obsługa
Zwykle tak bywa, że im prostsze urządzenie, tym bardziej jest rozbudowane jego oprogramowanie. Tak jest i tym razem. Program obsługujący został napisany w języku C++ i zajmuje prawie 450 kB. Można go uruchomić pod każdym systemem operacyjnym, nawet przy starszych wersjach okienek fod wersji 3.11 wzwyż). Instalacja nie jest konieczna, wystarczy uruchomić program i przystąpić do jego konfiguracji.
W pierwszej kolejności należy ustawić adres bazowy portu równoległego. W tym celu naciskamy przycisk Ba-se (rys* 4) i wybieramy właściwy adres. Wartością domyślną jest 378h. Jeśli nie znamy adresu portu LPT, należy go odnaleźć w U stawieni a>Panel Sierowania>System. W Menedżerze Urządzeń odszukujemy gałąź porty fCOM & LPT), wybieramy port drukarki i klikamy. Na karcie zasobów znajdziemy już właściwy adres portu. Typ portu LPT nie ma znaczenia dla programu. Po ustawieniu adresu możemy zainstalować programator w gnieździe LPT i przystąpić do pracy. W menu Plik znajdują się opcje odczytu (klawisz Fl) i zapisu (klawisz F2) bufora danych programu. Sto-
Projekt
109
suje się je odpowiednio podczas programowania i odczytu pamięci EEPROM. Rozmiar załadowanego pliku można sprawdzić w menu Sysiem>In-formacje (klawisz F3). Naciśnięcie przycisku IIC opcji menu Operacje>Magisirala IIC, lub klawisza F5 otwiera okno Operacji IIC (rys. 5). Z tego poziomu możemy bezpośrednio sterować magistralą, wystawiać bity START, STOP, ACIC oraz wysyłać i obierać dane. Stan transmisji wyświetlany jest w linii na dole okna. Przycisk Nowa kasuje zawartość linii statusu. Na samej górze okna znajdują się trzy przyciski. Pierwszy z lewej -Wykryj - powoduje przejście do okna pokazanego na rys. 6. Za jego pomocą można zeska-nować magistralę I2C, wciskając kolejny przycisk Wykryj. W górnym prawym rogu pojawią się aktywne adresy urządzeń. W przypadku pracy
z pamięcią EEPROM wybieramy najwyższy z nich (zwykle 10100000) i klikamy. Typ rozpoznanej pamięci zostanie wyświ etlony ponad przyciskami. W przypadku układów większych od 24C16 należy zaznaczyć właściwy typ za pomocą przycisków. Dla starych pamięci EEPROM (np. 24C04 firmy ST), nieobsługujących trybu odczytu sekwencyjnego, należy dodatkowo zaznaczyć checkboz 8B. W tym trybie odczyt odbywa się paczkami po 8 bajtów, co zapewnia zgodność ze starymi układami. Naciśnięcie przycisku Zapis i Odczyt wywołuje odpowiednie operacje. W oknie Operacji IIC znajdują się jeszcze dwa przyciski: Zamień i P. Pierwszy z nich pozwala wprowadzić konkretną wartość adresu dla magistrali I2C w dowolnym formacie (dziesiętnym, szesnastkowym i binarnym) . Drugi natomiast przenosi do okna Operacji pakietowych. Ma ono zastosowanie w przypadku pamięci i innych układów, z których można pobierać dane, adresując poszczególne bajty. Format jest następujący: bit startu, adres urządzenia (R/W = 0), adres bajtu (8 lub 16 bitów), bit startu, adres urządzenia (R/W = 1), po czym następuje odczyt bajtu i bit
Rys. 4. Przed rozpoczęciem procy ustowiomy adres bazowy portu równoległego
Rys. 5. Wyglgd okna Operacje IIC
Rys. ó. W tym oknie sq dostępne narzędzia do skanowania magistrali I2C
Elektronika Praktyczna 5/2003
99
PROJEKTY CZYTELNIKÓW
Rys. 7. Okno Operacji pakietowych z listami
stop. Okno Operacji pakietowych ułatwia tego typu odczyt i zapis. Przycisk Odczyt powoduje odczytanie bajtu z ustawionego niżej adresu. Po uruchomieniu okna adres ten jest równy zero. Przycisk Zapis zapisuje bajt wprowadzony niśej pod ustawiony adres. Przyciski i służą do przewijania adresu o 1 w lewo i w prawo. Tuż nad przyciskiem Koniec znajduje się mały przycisk Listy. Po jego naciśnięciu przechodzimy do okna Operacji pakietowych z listami (rys* 7). Jego obsługa jest dość złożona, jednakże ofe-
ruje najwięcej możliwości w stosunku do poprzednich okien. Służy ono do programowania magistrali I2C na najniższym poziomie, co ma szerokie zastosowanie w przypadku niestandardowych pamięci i innych układów. Na początku naciskamy przycisk Zapis lub Odczyt, w zależności od operacji, jaką chcemy przeprowadzić. Następnie w okienku edycji bajtu wprowadzamy binarnie liczby, które możemy przenosić do ramki wykonawczej przyciskiem ->, zaś przyciskiem <- pobieramy zaznaczone bajty z ramki do pola edycji. Niżej znajduje się przycisk wstawiający bit powtórzonego startu fdla odczytu pamięci). Liczbę bajtów do odbioru fw trybie odczytu pamięci) można modyfikować za pomocą przycisków < i >. Przycisk Usuń kasuje zaznaczony bajt z ramki wykonawczej, zaś Usuń wszystko kasuje całą zawartość ramki. Umieszczony pod ramką przycisk Wykonaj uru-
chamia widoczną w ramce sekwencję. W trybie odczytu pobrane z urządzenia dane wyświetlane są w postaci binarnej w ramce wykonawczej.
Uwagi końcowe
W przypadku programowania starszych pamięci EEP-ROM należy ustawić właściwą wartość opóźnienia. Dokonuje się tego, wchodząc w opcję programu sterującego System, a następnie Informacje, lub wciskając po prostu F3. Wartość opóźnienia magistrali I2C należy dobrać eksperymentalnie. Należy zaznaczyć, że ta wartość nie zależy znacząco od szybkości komputera. Programator został przetestowany zarówno na systemie z 4860X4-133 MHz, jak i na PIH 667 MHz. W obu przypadkach działanie było poprawne przy tej samej wartości opóźnienia. Pewne znaczenie dla opóźnienia ma wydajność prądowa portu LPT. Przy zbyt niskim napięciu na wyjściach portu pamięć nie zostanie zaprogramowana w całości.
Opóźnienie umożliwia przedłużenie czasu pomiędzy energochłonnymi operacjami zapisu i odczytu. Obniżenie pobieranego prądu w czasie oczekiwania pozwala na uzupełnienie energii w buforze Cl. Poprawne programowanie pamięci typu 24C256 firmy Atmel po opóźnieniu trwa około 20...30 sekund, odczyt zaś około 9...12 sekund. W takich warunkach otrzymano w każdym testowanym przypadku poprawne dane zarówno podczas programowania, jak i odczytu. Program sterujący programatorkiem jest ciągle rozwijany i ulepszany, dlatego informacje o wszelkich błędach pozwolą na ich wyeliminowanie w nowszych wersjach. Michał Szajner mi_sza@yahoo.de
Bibliografia
1. Dane katalogowe firmy Atmel - www.atmel.com
2. Tomasz Jakubik - "Co w LPT-cie piszczy" -EP12/2001.
100
Elektronika Praktyczna 5/2003
AUTOMATYKA
Kameleon - to określenie najlepiej oddaje filozofię karty APCI-1710 produkowanej przez niemiecką firmę Addi-Data. Raz zainstalowana w komputerze, może zmieniać funkcję zależnie od bieżących potrzeb użytkownika. Może odczytywać stany enkoderów, zliczać sygnały impulsowe, mierzyć częstotliwość impulsów lub komunikować się z innym komputerem. Funkcje karty nie są zdeterminowane sprzętowo, lecz przez użytkownika, który decyduje o tym, jak karta ma pracować w określonej aplikacji.
Wielofunkcyjna programowalna karta licznikowa APCI-1710
Karta AFG-1710 składa się z czterech programowalnych licznikowych modułów funkcyjnych, których pracą zarządza program SET1710 (rys. 1). Dzięki temu oprogramowaniu użytkownik jednym pociągnięciem myszki może załadować wybrane przez siebie funkcje do modułów karty. Każdy z 4 modułów karty można skonfigurować jako:
- licznik/układ czasowy,
- 32- lub 2x 16-bitowy licznik en-kodera przyrostowego,
- interfejsy enkoderów bezwzględnych/SSI,
- miernik częstotliwości,
- generator sygnałów PWM,
- miernik czasu trwania impulsu,
- 8 we/we cyfrowych, 24V, TTL, RS422.
Kartę można zaprogramować jednocześnie dowolną kombinacją
czterech funkcji. Można też jedną funkcją zaprogramować wszystkie 4 moduły.
Jednym z możliwych zastosowań karty APCI-1710 jest odczyt enkoderów przyrostowych lub bezwzględnych (SSI). Enkodery SSI zamieniają informację o położeniu na dane szeregowe i przesyłają je za pomocą interfejsu synchronicznego do odbiornika. Enkodery przyrostowe generują z kolei pewną liczbę impulsów na obrót. Dwa sygnały wyjściowe, przesunięte w fazie o 90 stopni, dają informacje o szybkości i kierunku obrotów. Oba typy enkoderów mogą być obsługiwane przez APCI-1710, przy różnych podłączeniach sygnałów, zaprogramowanych odpowiednio dla wybranej funkcji modułu. Każdy z 4 modułów ma 12 izolowanych optycznie linii sygnałowych, wyprowadzonych na złącze D-SUB50. Do obsługi enko-dera przyrostowego w trybie licznika 32-bitowego jest wykorzystywane 8 sygnałów (w tym sygnał indeksu i błędu). Alternatywą jest podłączenie dwóch enkoderów do modułu w trybie dwóch liczników 16-bitowych, jednak bez sygnału indeksu i błędu. Dla enkodera SSI potrzebne są tylko 2 sygnały. Do jednego modułu można więc pod-
łączyć jednocześnie 3 takie enkodery. W przypadku pracy z dwoma enkoderami podłączonymi do modułu w trybie liczników 16-bitowych, prowadzona jest analiza zboczy dla sygnałów A i B oraz C i D. Te cztery sygnały są odczytywane w takt wspólnego zegara CLKX i buforowane. Częstotliwość zegara musi być co najmniej czterokrotnie wyższa od częstotliwości sygnałów A, B, Ci D. Kierunek obrotu poszczególnych osi jest określany przez układ analizy zboczy na podstawie przesunięć w fazie sygnałów A i B oraz C i D. Karta APCI-1710 jest dostarczana ze sterownikami czasu rzeczywistego dla Windows NT oraz standardowymi dla Windows 95/ 98 iLabVIEW, a także z przykładami programowania w C, C+ + , Yisual Basic, Delphi. Karta do-
Rys, 2
132
Elektronika Praktyczna 6/2003
AUTOMATYKA
Elektronika Praktyczna 6/2003 133
AUTOMATYKA
/-mm
stęp na jest też w wersji dla magistrali CompactPCI - CPCI-1710.
APCI-1710 w praktyce
Możliwości karty zilustrujemy kilkoma przykładami. Jako pierwszy omówimy pomiar długości drogi (rys. 2) i wpływ przyjętej zasady pomiaru na jego dokładność.
W prostym trybie pomiarowym można zmierzyć drogę czterokrotnie dłuższą niż w trybie poczwórnym, przy takiej samej długości licznika. Dlatego tryb prosty jest bardziej odpowiedni dla dużej liczby obrotów lub szczególnie długich dróg, W trybie poczwórnym pozycję przy obrotach można określić z czterokrotnie wyższą dokładnością, dlatego ten tryb nadaje się bardziej do dokładnych pomiarów. Tryb podwójny jest rozwiązaniem kompromisowym. W ten sposób liczniki można dostosować do różnych aplikacji w zależności od tego, czy wymagają one maksymalnej długości drogi, czy maksymalnej dokładności odczytu.
Innym przykładem jest pomiar prędkości (rys. 3). Programowalny układ czasowy (timer) z określoną częstotliwością odniesienia wyznacza czas, podczas którego enkoder przyrostowy musi określić przebytą drogę. Gdy układ czasowy star-
Rys, 4
tuje, licznik enkodera jest ustawiony na "0". Wartość licznika jest zapamiętywana, gdy układ czasowy zostaje wyzerowany. Prędkość obrotową otrzymuje się przez podzielenie wartości licznika przez częstotliwość. Kartę można skonfigurować także do jednoczesnego zliczania i rozpoznawania kierunku obrotów. Tak długo, jak enkoder obraca się do przodu (sygnał A "wyprzedza" sygnał B), licznik zlicza w górę. Gdy zmienia kierunek obrotów, licznik zlicza w dół. Takie automatyczne rozpoznawanie kierunku jest stosowane w pozycjonowaniu, kiedy trzeba określać zmiany kierunku -np. przy układaniu elementów przez ramię robota.
W trybie bezpośrednim licznik można zaprogramować także do pracy jako przełącznik zegar/bramka do pomiarów częstotliwości lub okresów (rys. 4). Sygnał na wejściu bramki uruchamia (zboczem opadającym) i zatrzymuje (zboczem narastającym) zliczania impulsów na wejściu zegara - sygnał bramki decyduje o czasie zliczania. Pomiar długości impulsu lub częstotliwości jest możliwy tylko wtedy, gdy na wejście bramki (pomiar długości impulsu) lub zegara (pomiar częstotliwości) podawany jest refe-

m


Rys, 5
rencyjny sygnał zegarowy ze zdefiniowaną i stabilną częstotliwością. Jeśli bramka otwarta jest przez 1 sekundę, liczba zliczonych impulsów odpowiada zmierzonej częstotliwości. Przy pomiarze czasu trwania impulsu, bramka jest otwierana i zamykana przez mierzony sygnał, tak więc okres można określić przez zliczone na wejściu zegarowym impulsy.
Za pomocą prezentowanej karty można mierzyć także długość impulsów i ich częstotliwość (rys. 5). Przed rozpoczęciem pomiarów kierunek zliczania (w górę lub w dół) można określić programowo. Akwizycja i analiza długości impulsu jest używana zwłaszcza do pomiarów długości elementów metalowych za pomocą indukcyjnych czujników zbliżeniowych. Pomiar częstotliwości jest odpowiedni dla pomiarów prędkości za pomocą enkoderów, ponieważ sygnał indeksu generuje typowo jeden impuls na obrót. EG
Dodatkowe informacje
Opracowano na podstawie rnaleriatów firmy Addi-Daia. Dyslybulorern lej firmy w Polsce jest Egmonl Inslrumenls, lei. (22) 6686975, 8233017, lax: (22) 6592611, hllp://www.-egmonl.com.pl, addidala@egmonl.com.pl.
134
Elektronika Praktyczna 6/2003
AUTOMATYKA
Nowoczesne sterowniki PLC
Urządzeniom produkowanym przez firmę GE Fanuc poświęcaliśmy dotychczas niezbyt wiele miejsca w EP, ale teraz nadrabiamy to zaniedbanie, zaczynając od prezentacji rodziny sterowników PLC VersaMax.
System VersaMax jest systemem modułowym, w skład którego wchodzi - oprócz jednostek centralnych - szereg dodatkowych modułów funkcjonalnych (rozszerzenia 1/0 w tym analogowe, interfejsy komunikacyjne - m.in. DeviceNet, Genius, Profibus/Profibus DP, ASi (Master), Ethernet, zasilacze itp.).
Jednostki centralne VersaMax
Jednostki centralne VersaMax umożliwiają obsługę do 8 modułów i 7 kaset rozszerzających, z kolei do każdej z kaset można dołączyć również do 8 modułów (maksymalna odległość, na jaką można oddalić kasety rozszerzające od jednostki centralnej, wynosi 750 m). Każda jednostka CPU jest standardowo wyposażona w zegar czasu rzeczywistego oraz dwa porty komunikacyjne: RS232 i RS485 (z zaimplementowaną obsługą protokołów SNP/SNP-X, Modbus RTU {Masiei/Slave) i Gustom ASCII Readf Wriie). Jednostkę centralną CPUE05 (tab. 1) wyposażono w interfejs sieciowy Ethernet, za pomocą którego moż-
na dołączyć ją do dowolnej sieci pracującej z prędkością 10 lub 100 Mb/s z zapewnioną obsługą protokołu SRTP lub EGD (Ethernet Global Data).
Jednostki centralne umożliwiają wykonywanie operacji zmienno przecinkowych oraz wykorzystanie procedur i regulatorów PID o konfigurowanych parametrach w programach sterujących ich pracą. Zestawienie najważniejszych parametrów sterowników VersaMax znajduje się w tab. 1.
Co to jest VersaMax?
Sterowniki VersaMax to nowa rodzina uniwersalnych, modułowych sterowników
PLC, które mogą pracować jako
sterowniki niezależne, a także jako
część większego, rozproszonego
systemu sterowania.
Sterowniki VersaMax wyposażono w możliwość wymiany programu sterującego podczas pracy (np. za poprzez interfejs sieciowy). Standardowo sterowniki VersaMax są wyposażone w pamięć typu Flash, a opcjonalnie w podtrzymywaną bat ery j nie pamięć RAM umożliwiającą przechowanie programu sterującego, danych oraz predefiniowanych stanów rejestrów. Oprócz typowych wejść i wyjść (cyfrowych i analogowych), jednostki centralne obsługują liczniki impulsów wysokiej częstotliwości oraz wyjścia impulsowe PTO i PWM.
Rolę interfejsu użytkownika w sterownikach VersaMax spełnia 7 diod LED, sygnalizujących m.in. obecność napięcia zasilającego 5 V, poprawne
lub błędne zakończenie procedury au-todiagnostycznej, pracę lub zatrzymanie sterownika.
Co nieco o peryferiach
W skład systemu VersaMax wchodzą m.in. moduły rozszerzające, których są dwa rodzaje: nadawcze i odbiorcze. Moduł IC200ETM001 jest modułem nadawczym pozwalającym na dołączenie do jednostki centralnej VersaMax do 7 kaset rozszerzających. Moduł wyposażony jest w port do podłączania kaset rozszerzających na odległość do 750 m. Maksymalna długość kabla do kaset rozszerzających uzależniona jest od użytego modułu odbiorczego oraz wymaganej prędkości transmisji i wynosi:
- do 15 m - dla IC200ERM002,
- do 250 m - dla IC200ERM001 i prędkości transmisji 1 Mb/s,
- od 250...750 m - 250 kb/s dla IC200ERM001.
Moduł oznaczony symbolem IC200ERM001 jest z kolei galwanicznie izolowanym odbiornikiem dla kaset rozszerzających sterownika lub modułów wejść/wyjść. Można zastosować maksymalnie 7 kaset rozszerzających, zawierających po 8 modułów wejść/ wyjść lub modułów specjalnych. Ostatnim modułem rozszerzającym jest IC200ERM002, któiy zapewnia komunikację na odległość do 15 metrów. Można zastosować maksymalnie 7 kaset rozszerzających, zawierających po 8 modułów wejść/wyjść lub modułów specjalnych. Moduł ERM200 może być podłączany bezpośrednio do jednostki centralnej (interfejsu komunikacyjnego)
Elektronika Praktyczna 6/2003
135
AUTOMATYKA
w wypadku, gdy dołączana jest tylko jedna kaseta rozszerzająca i jej odległość od modułu nie przekracza 1 m.
W ramach systemu VersaMax oferowane są różnorodne moduły wejściowo-wyjściowe, których nie będziemy szczegółowo omawiać ze względu na ich dużą liczbę i relatywnie prostą funkcję spełnianą w systemie. Dla orientacji warto wiedzieć, że dostępnych jest 22 wersji wejść-wyjść dyskretnych oraz 18 wersji wejść-wyjść analogowych i mieszanych.
Atutem systemu VersaMax jest różnorodność dostępnych w nim sieciowych interfejsów komunikacyjnych. Na przykład moduł IC200DBI001 jest interfejsem komunikacyjnym sieci DeviceNet, umożliwiającym podłączenie do systemu grupy lokalnych modułów wejść/wyjść. Wymiana danych z jednostką centralną może obejmować maksymalnie 128 bajtów danych wejściowych i 128 bajtów danych wyjściowych oraz 2-bajto-we słowo stanu i 2-bajtowe słowo sterujące. Także moduł IC200PBI001 jest interfejsem komunikacyjnym - tym razem sieci Profibus-DP - umożliwiającym podłączenie lokalnych modułów wejść/wyjść. Pracuje on jako urządzenie podrzędne (Slave). Z urządzeniem nadrzędnym (Master) może wymieniać każdorazowo 375 bajtów danych wejściowych i wyjściowych. Interesującym modułem komunikacyjnym jest IC200EBI001, spełniający rolę interfejsu Ethernet. Umożliwia on podłączenie modułów systemu VersaMax do sieci Ethernet i wymianę 1024 bajtów danych (na które składa się po 256 bajtów na każdy z typów danych: wejściowych dyskretnych, wyjściowych dyskretnych, wejściowych analogowych, wyjściowych analogowych). Czwartym interfejsem komunikacyjnym jest IC200GBI001, za pomocą którego można podłączyć do systemu sieciowego Genius (natywny system sterowników VersaMax) grupę lokalnych modułów wejść/wyjść. Wymiana danych z jednostką centralną może obejmować maksymalnie 128 bajtów
danych wejściowych i 128 bajtów danych wyjściowych (w tym maksymalnie 64 kanały analogowe). Z kolei IC200BEM002 spełnia rolę modułu komunikacyjnego do sieci Profibus DP. Pozwala on na wysłanie 384 bajtów danych w tym maksymalnie 244 bajtów danych wejściowych i tyleż samo wyjściowych. IC200BEM104 jest to moduł komunikacyjny AS-i Master. Może on spełniać rolę interfejsu pomiędzy jednostką centralną VersaMax lub modułem NIU a siecią AS-i. Umożliwia wymianę danych dyskretnych (20 bajtów z wejść i 20 bajtów z wyjść dyskretnych) z 31 urządzeniami podrzędnymi (Slave). W przypadku
Przemyślana konstrukcja
Moduły VersaMax montowane są
w podstawkach, spełniających rolę
części magistrali i wyposażonych
w terminale przyłączeniowe. Podstawki
montowane są na szynie D1N i łączone
ze sobą zatrzaskowo.
współpracy z siecią DeviceNet niezbędny będzie moduł IC200BEM103. Może on pracować w sieci jako Master lub Slave, a także spełniać obie te role jednocześnie. Za jego pośrednictwem można nadawać 512 bajtów danych (przesyłane jako bity lub jako słowa) i tyle samo odbierać. W sumie w ramach systemu VersaMax oferowanych jest siedem różnych modułów komunikacji sieciowej, dzięki czemu urządzenia VersaMax mogą współpra-
Dodatkowe iirfoimacje
Zestaw uruchomieniowy VersaMax udostępniła redakcji firma Astor.tel. (12)428-63-00, fax: (12) 428-63-09, www.astor.com.pl.
Dodatkowe informacje i oprogramowanie dla sterowników VersaMax są dostępne w Interne-cie pod adresami:
- http://www.astor.com.pl/Getanuc/ VersaMax.htm.
- http://www.astor.com.pl/Getanuc/Serwis/ sottware.asp.
cować z praktycznie dowolnymi innymi sterownikami w ramach jednego systemu sterowania.
Podsumowanie
Z tej krótkiej prezentacji widać, że VersaMax jest uniwersalnym systemem sterującym, w którym sterownik PLC może spełniać rolę lokalnej "centrali" zarządzającej pracą wielu modułów interfejsowych. Modułowość konstrukcji jest zaletą systemu VersaMax, ponieważ dzięki niej łatwo jest dostosować budowę systemu sterującego do wymagań aplikacji, co wiąże się z optymalizacją kosztów jego wykonania. Możliwość zintegrowania w ramach systemu praktycznie dowolnego interfejsu sieciowego znakomicie ułatwia współpracę systemu VersaMax z urządzeniami dostarczanymi przez innych producentów, znacznie zwiększa to elastyczność budowanych systemów. Andrzej Gawryluk, AVT
Tab. 1. Zestawienie podstawowych parametrów modułów CPU VersaMax
Pa ra mełiyjechostekcenliahych CPU001 CPU002 CPU005 CPUE05
Przełącznik trybu pracy Rur/Stop -I- + -i- -i-
Podtrzymywanie pamięci RAM/pamięć Flash +/+ +/+ +/+ +/+
Diody statusowe LED + + + +
ProgramowariezDużyciem listy instrukcji oraz wnlogice drabinkowej + + + +
Liczba procedur 64 64 64 64
Instrukcje zmiennoprzecinkowe + + + +
Zegar czasu rzeczywistego + + + +
PrędkośćwykonywanialnkB prostego programu logicznego 1,8ms 1,8ms 0,5 ms 0,5 ms
Wielkość pamięci przeznaczonej na program sterujący konfiguro-walna34kE konfiguro-walna42kB konfiguro-walna 64 kB konfiguro-walna 64 kB
Pamięć rejestrowa (%R) 2048 słów konfiguro-walna 2048 słów konfiguro-walna 2048 słów konfiguro-walna 2048 słów konfiguro-walna
Wejścia dyskretne (%l) 2048 2048 2048 2048
Wyjścia dyskretne (%Q) 2048 2048 2048 2048
Wejścia analogowe (%AI) 256 bajtów 256 bajtów 256 bajtów 256 bajtów
Wyjścia analogowe (%AQ) 256 bajtów 256 bajtów 256 bajtów 256 bajtów
Wewnętrznezmien ne dyskretne zn pamięcią (%M) 1024 1024 1024 1024
Wewnętrzne zmienne dyskretne bez pamięci (%T) 256 256 256 256
Wymiary [mm] 66,8x128 66,8x128 106,7x128 126x128
Pobór prądu 100mA 100mA 290 mA 650 mA
136
Elektronika Praktyczna 6/2003
PODZESPOŁY
Li net
etwork
Kilkanaście lat temu zaczęło być jasne, że nie jest możliwy dalszy rozwój systemów informatycznych bez zapewnienia łatwej i szybkiej komunikacji pomiędzy oddalonymi od siebie komputerami. Jak s pewnością zauważyli Czytelnicy EP, teraz nastały takie czasy, śe nawet najtańsze mikrokontrole-ry muszą potrafić komunikować się z innymi urządzeniami. Typowe systemy sieciowe fjak np. Ethernet i jego pochodne) doskonale nadają się do łączenia ze sobą odległych komputerów, nie zawsze ich zastosowanie daje optymalne wyniki w przypadku prostych systemów nadzoru i sterowania, w których szybkość wymiany danych gra drugorzędną rolę, a istotna jest wygoda aplikowania. Takim właśnie systemem jest Lighi Conirol Neiwork fińskiej firmy Linet.
LCN od środka
Wbrew sugestywnej nazwie Lighi Conirol Neiwork może służyć nie tylko do sterowania oświetleniem, chociaż jego najbardziej spektakularne aplikacje zostały wykonane w tym właśnie obszarze zastosowań.
Atutem systemu Lighi Conirol Nei-work jest przesyłanie danych tą samą parą przewodów, którą jest rozprowadzane zasilanie do urządzeń. Pozwala to na istotne ograniczenie inwestycji w niezbędną infrastrukturę, oczywiście pod warunkiem, śe do zasilania urządzeń wykonawczych (ża-rówek, przekaźników itp.) wystarczy napięcie 24 V.
Fizyczna struktura sieci opracowanej przez Linet jest bardzo prosta, składa się bowiem z pary przewodów, którymi oprócz danych jest przesyłane zasilanie do interfejsów węzłów sieciowych (rys. 1). Na rysunku nie pokazaliśmy kontrolera, który oprócz synchronizacji transmisji danych z węzłami spełnia także
Rys.
Nowa sieć na nowy wiek
O systemie sieciowym firmy Linet pisaliśmy już na lamach
EP (912000), ale do tematu wracamy ponieważ pojawi! się
kra/owy dystrybutor podzespołów tej firmy.
rolę ich zasilacza. Ze względu na konieczność zapewnienia w miarę równomiernych warunków zasilania dla wszystkich węzłów sieci, kontroler powinien być umieszczony w centralnym miejscu sieci, jak to widać na rys. 2a.
Maksymalna dopuszczalna długość kabla w jednej sekcji sieci wynosi 200 m, a maksymalna dopuszczalna liczba węzłów 200. Ani polaryzacja linii dołączonych do wejść węzłów, ani topologia sieci fpoza warunkami zasilania) nie ma żadnego znaczenia dla jej funkcjonowania. Dzięki wykorzystaniu transmisji cyfrowej z wykorzystaniem ,,a nalo gowego " medium fsinusoida o częstotliwości 20 kHz i amplitudzie 40 Vpp) nie ma konieczności zamykania końców linii transmisyjnych terminatorami. Niska częstotliwość nośna w znacznym stopniu determinuje maksymalną szybkość przesyłania danych, która wynosi 80 b/s dla każdego z węzłów sieci fdla liczby węzłów powyżej 50) lub 320 b/s dla każdego węzła sieci w przypadku ograniczenia ich maksymalnej liczby do 50.
Kontroler sieci Linet
Ponieważ dane ze wszystkich węzłów są przesyłane jedną parą przewodów, producent opracował bezkolizyjny protokół wymiany danych, który wykorzystuje ideę dostępu z podziałem czasu. W 253 bitowej ramce każdy węzeł ma swoje stałe miejsce i przesyła tylko jeden bit danych. Takich ramek wciągu sekundy kontroler inicjuje 80. Obsługa transmisji i jej ,,otoczenia" jest dzięki kontrolerowi sieci przeźroczysta dla użytkownika, który dostęp do niej ,,widzi" jako standardowy interfejs RS232/485.
Linet produkuje zintegrowany moduł kontrolera sieci, który oznaczono symbolem LIN03-1. Dostarcza on do węzłów napięcia zasilającego 24VDC, a maksymalny pobierany przez nie prąd nie może przekroczyć 1A.
54
Elektronika Praktyczna 1/2003
PODZESPOŁY
węzły
*u
przewody
B
Zalecana top logia
Rys. 2
Poprawna topologia
DopuBzczalna topologia
misji może wynosić stan- dardowe 80 b/s, jak i 160/320 b/s.
Na rys. 3 pokazano schemat elektryczny kompletnego modułu wykona- neg0 na układzie
Węzły sieci Linet
Prosty w wykonaniu jest moduł spełniający rolę wykonawczego węzła sieci, ponieważ Linet produkuje specjalizowane układy scalone do tego celu. Obecnie dostępne są dwie wersje: wycofywana z produkcji LIN02-1 oraz kompatybilny z nią następca, oznaczony symbolem LIN03-1 (z układem LN1003). Najpoważniejszymi widocznymi dla użytkownika modyfikacjami wprowadzonymi do LN1003 w stosunku do LN02 jest:
- wbudowanie stabilizatora o napięciu wyjściowym 3,3 V, który można wykorzystać jako źródło zasilania układów współpracujących z tym układem,
- możliwość łączenia podczas transmisji danych wolnych ramek danych, dzięki czemu prędkość trans-
LN1003. Każdy węzeł można wykorzystać jako lokalny sterownik lub interfejs w prostych systemach sterowania, a to dzięki wbudowaniu w jego strukturę 12-bito-wego przetwornika A/C (zakres napięcia wejściowego wynosi O... + l,25 V) i przetwornika C/A wykorzystującego zdalnie programowane wyjście PWM. Wykorzystując taki układ można także dwukierunkowo przesyłać przez węzeł dane przy pomocy szeregowego interfejsu SPI. Na rys. 4 przedstawiono dostępne w modułach LIN03-1 (kompletny, hybrydowy węzeł sieci, z układem LN1003) interfejsy do komunikacji z otoczeniem i sterowania.
Plusy i minusy
Prezentowany w artykule system sieciowy jest niezwykle łatwy w stosowaniu i to zarówno od strony instalacyj-
Rys. 3
LCN
Rys. 4
duży
SCK SDI SDO TRIO NETA PWM NETB POI XO FOUT SWNO AIN 11
12
13
1
2
20
18
S
6
19

mały
standardowe systemy
sieciowe
lokalne, projektowane 'na sztywno'
Ś
LCN
Ś
mała
elastyczność
duża
Rys. 5
nej, jak i dla projektantów modułów współpracujących z siecią. Jedyną -i to nie we wszystkich aplikacjach -wadą tego rozwiązania jest stosunkowo mała szybkość transmisji danych, przy czym należy pamiętać, że w planowanych aplikacjach jest ona co najmniej wystarczająca. Z kolei łatwość stosowania i modyfikacji konfiguracji sieci LCN powodują, że może ona być konkurencyjna w stosunku do rozwiązań klasycznych (rys. 5). Andrzej Gawryluk, AVT
Dodatkowe informacje
Dystrybutorem układów firmy Linet jest: Vicom, tel. (71) 345-54-16, (0) 601-78-62-78, fax: (71) 344-07-13,www.vicom.pl.
Dodatkowe informacje o systemie LSC oraz układach produkowanych przez firmę Linet można znaleźć wlnternecie pod adresem: http:// www.linet.fi/.
56
Elektronika Praktyczna 1/2003
PROJEKTY
Akwizycja danych
przez Ethernet
Zdalny moduł pomiarowy,
PROJEKT Z OKŁADKI
Jako przykład zastosowania
opisywanego niedawno
modemu ST7537 wykonano
eksperymentalny tor
pomiarowy. Wielkością
mierzoną jest temperatura
zewnętrzna. Może być
odczytywana na intranetowej
[działającej w obrębie firmy)
witrynie WWW, dzięki czemu
jest na bieżąco dostępna
w przeglądarce każdego
komputera mającego dostęp
do sieci Ethernet.
Rękom en dacj e:
prezentujemy urządzenie
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.
Schemat blokowy ,-m ^r całego toru pomiarowego
przedstawiono na rys. 1. Jednym z elementów toru transmisji danych jest para modemów wykonanych na układach ST7537 (opis w EP11/2OO2), za pomocą których można przesyłać dane po p rz e w o da ch dom o w ej ins tal a c ji elektrycznej. Opis urządzenia rozpoczniemy od prezentacji jego poszczególnych bloków.
Termometr PtlOOO: czujnik platynowy i wzmacniacz pomiarowy
Czujniki platynowe - pomimo wielkiego postępu w konstrukcji sensorów półprzewodnikowych -są nadal stosowane w technicznych pomiarach temperatury. Składa się na to ich niezawodność, duża dokładność, szeroki zakres pomiarowy, a także powtarzalność parametrów uzyskiwana dzi ęki znoim ali z o w anemu wyko -naniu. Różnorodny asortyment obudów, wielkości, sposób montowania (fot. 2) - przy identycz-
nych technicznych parametrach pomiarowych (z wyjątkiem czasu reakcji wynikającego z budowy), pozwala na użycie takiego czujnika praktycznie w każdych warunkach. Czujnik stawia jednakże pewne wymagania:
- konieczna jest dobra kompensacja rezystancji (i jej zmian) linii podłączeniowej, wiąże się też z tym zalecenie stosowania okablowania o dużych przekrojach,
- potrzebny jest dokładny, stabilny i odpowiednio skalibrowany wzmacniacz wejściowy dla przetworzenia niewielkich zmian rezystancji (dla PtlOO 3C to w przybliżeniu 1 O.) na sygnał napięciowy lub prądowy "zrozumiały" dla urządzeń w dalszej części toru pomiarowego.
Czynniki te - w połączeniu ze sporą ceną i małą dostępnością w handlu detalicznym - wyjaśniają niewielką popularność czujników platynowych w konstrukcjach amatorskich. Tym razem jednak zastosowaliśmy do pomiaru temperatury typowe komponenty
14
Elektronika Praktyczna 6/2003
Akwizycja danych przez Ethernet - zdalny moduł pomiarowy
PT 1000
ADT70 AD7B93
5PI
AT88S 8252
PC-WINDOWS 98
SERWER KTTF APACHE
MODUŁPHP4
SERWER MYSOL
PT1OOO.EXE
SIMSTART,EXE
6DCCIDE
INTEL H EX
Rys. 1. Schemat blokowy przykładowego toru pomiarowego zużyciem modemów ST7537 (na szaro zaznaczono bloki opisane już wEP)
przemysłowe. Jako sensor posłużył czujnik temperatury zewnętrznej PtlOOO firmy Danfoss (typ ESMP stosowany w pogodowych regulatorach obiegu centralnego ogrzewania w węzłach cieplnych). Współpracujący z czujnikiem przetwornik został zbudowany na bazie specjalizowanego układu ADT70 firmy Analog Devices. Schemat blokowy tego układu pokazano na rys. 3. Znajdziemy na nim wszystkie elementy stosowane zazwyczaj w układach z elementów dyskretnych:
- dwa zrównoważone źródła prądowe (o prądzie nominalnym ok. 1 mA] do zasilenia rezystora wzorcowego oraz czujnika Pt,
- wzmacniacz pomiarowy o regulowanym wzmocnieniu i możliwości wprowadzenia stałego offsetu dla sygnału,
- źródło napięcia odniesienia 2,5 V.
Scalenie tych zespołów pozwala na dokonanie w procesie produkcyjnym dokładnej kalibracji toru pomiarowego oraz umożliwia prawidłową pracę w szerokim zakresie warunków zewnętrznych. Układ jest wyposażony w tryb obniżonego poboru mocy (shut-down) oraz wzmacniacz operacyjny ogólnego stosowania. Wszystko to pozwala na szybkie i niekłopot-liwe zbudowanie precyzyjnego przetwornika dla sensora Pt, czyli eliminuje jedną z głównych przeszkód zastosowania tego czujnika w amatorskiej konstrukcji.
Zasada działania nie jest skomplikowana: źródła prądowe zasilają jednakowym prądem rezystor wzorcowy 1 kLi oraz czujnik PtlOOO. Rezystancja czujnika przy zmianach temperatury zmienia się zgodnie z jego charakterystyką. Ogólnie biorąc, nie jest ona idealnie liniowa w szerokim zakresie temperatury, co wymaga odpowiedniej układowej albo programowej kompensacji. Przy ograniczeniu zakresu do typowych wartości klimatycznych można jednak z powodzeniem przyjąć zależność liniową 3,85 Li/C. Napięcia z rezystora wzorcowego oraz czujnika są podane na wejścia wzmacniacza pomiarowego. Zastosowanie
Fot. 2. Czujniki platynowe sq oferowane w różnych obudowach
zewnętrznego rezystora odniesienia (zamiast wbudowania go w strukturę) umożliwia użycie różnych odmian czujnika: PtlOO, Pt500 albo PtlOOO.
Wzmocnienie napięcia różnicowego jest regulowane pojedynczym rezystorem RX - dzięki temu możemy dopasować zakres napięcia wyjściowego układu do rodzaju czujnika oraz do zakresu mierzonej temperatury. W zależności od potrzeb możemy też ustalić sposób pomiaru temperatury ujemnej . Zasilenie wejścia V- napięciem ujemnym pozwala na uzyskanie skali "naturalnej": 0 V na wyjściu przy 0C i ujemne napięcie wyjściowe przy temperaturach poniżej zera. Jeśli chcemy pozostać przy pojedynczym zasilaniu - przesuwamy poziom napięcia wyjściowego dla 0C za pomocą wejścia Offset. Takie rozwiązanie zastosowano w modelu termometru, zarówno ze względu na uproszczenie zasilania, jak i na zastosowany przetwornik AC o zakresie wejściowym 0...2,5 V. Różne możliwości wykorzystania układu znajdziemy w notach katalogowych dostępnych na stronie producenta -ii ttp ://www. analog, com /.
Precyzyjne _ą__zrńwnoważente ąnMei
V+
1Ną
Dodatkowy
M: wzmacniacz
Wytoczenie
Offset Vout GND
Rys. 3. Schemat blokowy układu ADT70
Elektronika Praktyczna 6/2003
15
Akwizycja danych przez Ethernet - zdalny moduł pomiarowy
->B ZŁŁŁ Q.D-D-Q.Q.irQ.ZQ.O.Q.Q.Q.Q.O.XX>
Rys. 4. Schemat elektryczny termometru z czujnikiem PtlOOO
16
Elektronika Praktyczna 6/2003
Akwizycja danych przez Ethernet - zdalny moduł pomiarowy
Praktyczny układ termometru
Schemat elektryczny termometru pokazano na rys. 4. Jego układ był w znacznej mierze zależny od posiadanych "pod ręką" zapasów i jest oczywiście jednym z wielu możliwych:
- jako przetwornik AC posłużył układ AD7893-2 z pojedynczym zasilaniem, zakresem wejściowym 0...2.5 V, odczytem szeregowym kompatybilnym z SPI oraz wymaganym zewnętrznym napięciem odniesienia 2,5 V (co nie jest żadną komplikacją, bo właśnie takie napięcie referencyjne zapewnia ADT70).
- "silnikiem" termometru został mikrokontroler AT89S8252 ze względu na dobrą współpracę z płytką modemu, wbudowanym interfejsem SPI, a także możliwością programowania w układzie - co stworzyło okazję do wypróbowania modułu ISP dopisanego do środowiska SDCC (z wykorzystaniem opisanego już w EP optoizolowanego adaptera do portu szeregowego połączonego z niewielką przystawką).
Jak widać, wykorzystano wszystkie pomocnicze sygnały z płytki ST7537 (dołączonej za pośrednictwem 10-stykowego złącza Hl), tzn. sygnał zegarowy 11,059 MHz, po-wer-on-reset oraz watchdog. 6-sty-kowe złącze P3-P8 służy do podłączania programatora ISP (jego konstrukcja pozwala podczas uruchamiania na dołączenie na stałe bez zakłócania pracy układu). Zwróćmy uwagę na diody Dl i D2
- służą one do eliminacji konfliktu poziomów na wyjściu zerowania programatora oraz ST7537.
Punkty lutownicze P13...P16 służą do wyprowadzenia zrealizowanej programowo magistrali PC. Za jej pomocą jest sterowany moduł typowego wyświetlacza LCD 3,5 cyfry (opisywany w EP4/ 99). Dodatkowy układ komutacyjny zbudowany z popularnych układów 4093 i 4066 (U4 i U5) pozwala na:
- pomiar dodatkowego sygnału napięciowego (podawanego na wejście P9),
- podłączenie dodatkowego zewnętrznego przycisku sterującego (wejście P12),
- odseparowanie ADC od magistrali SPI w czasie programowa-
nia (AD7893 nie posiada żadnego wejścia zezwalającego, więc konieczne było wykonanie dodatkowego układu).
Wbudowane w płytkę przyciski Pl i P2 służą do programowej regulacji offsetu sygnałów wejściowych. Dodatkowe poprawki offsetu (zapamiętane w wewnętrznej pamięci EEPROM mikro-kontrolera) upraszczają kalibrację obwodów wejściowych oraz umożliwiają łatwą kompensację rezystancji linii przyłączeniowej czujnika Pt.
Dioda świecąca D3 ma charakter jedynie kontrolny - wspomaga uruchamianie, a później sygnalizuje poprawną pracę układu.
Dobór elementów i kalibracja toru pomiarowego
Część cyfrowa nie wymaga komentarzy - występują tu tylko rezystory podciągające niewyma-gające specjalnej precyzji w doborze. Więcej uwagi musimy natomiast poświęcić otoczeniu ADT70. Jako R6 należy zastosować dokładny rezystor o dobrej stabilności temperaturowej (w prototypie użyto 0,l%/25 ppm obecnie łatwo dostępny oraz w stosunkowo niskiej cenie) - od niego zależy dokładność prowadzonych pomiarów.
Zakres pomiarowy przyjmiemy jako -5O...+5OC, co wystarczy nawet w przypadku ekstremalnych "wybryków" klimatu. Ten zakres temperatury ma odpowiadać zmianie napięcia wyjściowego od 0 do +2,5 V (zgodnie z napięciem wejściowym użytego przetwornika A/ C). Jak wynika z powyższego, wzmocnienie układu powinno wynosić: k = 2500 mV/100C = 25 mV/C
Z noty aplikacyjnej ADT70 wiemy, że dla PtlOOO wartość RX wynosi 49,9 kQ przy wzmocnieniu 5 mV/C oraz że wzmocnienie jest odwrotnie proporcjonalne do RX. Stąd znajdujemy potrzebną wartość jako: RX = 49,9kQ * (5/25) = 9,98 kQ
W prototypie przewidziano możliwość dokładnego ustawienia RX poprzez złożenie go z szeregowo połączonych R4 i R5 oraz precyzyjnego potencjometru montażowego. W ten sposób można wykorzystać posiadane w szufla-
dzie zapasy elementów. Przy większej serii układów warto zamówić docelową wartość (jest to obecnie możliwe w ilościach detalicznych). Jeszcze inna droga to użycie typowej wartości 10 kQ i poprawkowe przeliczanie w programie mikrokontrolera.
Przesunięcie 0C uzyskujemy poprzez podanie na wejście OFFSET napięcia 1,25 V. Uzyskujemy je z Vref za pomocą dzielnika R2, R3. Obciążenie dzielnika minimalizujemy, wykorzystując dodatkowy wbudowany wzmacniacz operacyjny jako wtórnik. Dokładna regulacja dzielnika nie jest wymagana - ustawienie napięcia offsetu jest realizowane na drodze programowej. Zarówno obwód RX, jak i dzielnik muszą być wykonane z rezystorów metalizowanych
0 dużej stabilności temperaturowej.
Bardzo ważna jest też rola filtra wej ściowego R7, C4, C6. Długi przewód podłączeniowy czujnika działa jak antena zbierająca wszelkie zakłócenia i przydźwięki. Dołączenie go bezpośrednio do wejścia wzmacniacza pomiarowego wpłynęłoby znacząco na stabilność
1 dokładność pomiaru.
Potencjometr montażowy R8 służy do precyzyjnego zsynchronizowania źródeł prądowych. Praktyka pokazała, że nie ma on zbyt wielkiego wpływu - w ostateczności można go pominąć.
Kalibracja sprowadza się do ustawienia potencjometrem R9 wyznaczonej wartości RX (pomiędzy wyprowadzeniami RGA i RGB układu ADT70) - co wykonujemy przy wyłączonym zasilaniu. Następnie zamiast czujnika dołączamy precyzyjny rezystor 1 kQ i potencjometrem R8 wyrównujemy napięcia na wejściach -IN/+IN.
Montaż i uruchomienie
Ponieważ układ miał w znacznej mierze charakter testowy, został zmontowany (kosztem zwiększonej liczby zworek) na taniej płytce jednowarstwowej. Jej schemat montażowy pokazano na rys. 5. Przy okazji informacja praktyczna dla Czytelników zajmujących się samodzielnym projektowaniem druku. Otóż oszczędność została w prototypie płytki zrealizowana w zbyt prosty sposób -usunąłem z projektu górną warstwę druku (składającą się tylko
Elektronika Praktyczna 6/2003
17
Akwizycja danych przez Ethernet - zdalny moduł pomiarowy
J.S. AVT 2002
O
? O O
oooooooooa
oooooooooo
ni R9 \-n n-i ffl io
oooooo oooooooo
OO OO
OO = OO OO ~* ? O
?tło o o o
oooooooo oooooo
O]
\o~ ?? ? ???? Ś>t Sio ^ ufuin
TESTOWA PŁYTKA PT1000
Rys. 5. Rozmieszczenie elementów na płytce termometru
z prostych odcinków ścieżek), aby przy montażu zastąpić ją zworka-mi. Przy samodzielnym wytrawieniu i owierceniu płytki dało to spodziewany efekt.
Montaż jest typowy i nie wymaga specjalnego komentarza, należy jedynie uważać, aby nie zapomnieć o zworach pod układami scalonymi. Wszystkie złączki (2x5 do płyty modemu, 1x6 do programatora, 1x4 do modułu LCD) w prototypie wykonano z listew goldpin, ale można je oczywiście skompletować w dowolny sposób, korzystając z posiadanych zapasów.
Po zweryfikowaniu poprawności lutowania i sprawdzeniu, czy nie ma zwarć, łączymy płytkę z modułem modemu ST7537
(EPll/2002) 10-żyłową taśmą z zaciskanymi wtykami (ponieważ gniazda są zrobione ze zwykłych listew podwójnych i nie mają żadnych kluczy, zwróćmy uwagę na zgodność mas i zasilań). Po włączeniu zasilania modemu sprawdzamy najważniejsze napięcia (+5 V, +2,5 V referencja, +1,25 V offset) i jeśli wszystko działa prawidłowo, możemy przystąpić do zaprogramowania mikrokontrolera. Program (dostępny również w postaci źródłowej w materiałach pomocniczych, które opublikujemy na CD-EP7/2003) jest napisany w C i skompilowany za pomocą bezpłatnego SDCC (opisywanego już na łamach EP). Nie jest specjalnie rozbudowany - jego funkcje są następujące:
- cykliczne odczytywanie wartości mierzonej poprzez SPI i ładowanie do bufora,
- uśrednianie wyniku z 4 ostatnich pomiarów,
- obsługa modułu wyświetlacza LCD 3,5 cyfry poprzez programowy interfejs PC,
- wysyłanie wartości temperatury w odpowiedzi na komendę oddalonego terminala,
- obsługa przycisków korekty offsetu i zapis poprawek do wewnętrznej EEPROM,
- realizacja 0,5 s opóźnienia dostępu do SPI po zerowaniu (zalecenie Atmela dla uniknięcia blokady ISP).
Wszelkie szczegóły dotyczące konkretnych rozwiązań programowych zainteresowani znajdą w kodzie źródłowym. Program możemy wpisać do pamięci Flash za pomocą dowolnego programatora, korzystając z pliku wynikowego *.ihx kompilatora SDCC. Jest to zwykły format Intel Hex tylko
DTRO
GND
Rys. 6. Schemat przystawki do programowania ISP
WYKAZ ELEMENTÓW
Rezystory
Rl, Rll: 3,3kQ
R2, R3: lOka 1% metalizowane
R4: dobierany 1% metalizowany -
w prototypie 8,óókQ
R5: dobierany 1% metalizowany -
w prototypie 1,30kQ
R6: precyzyjny 0,1% 25 ppm
R7: 4,7kQ 1% metalizowany
R8: potencjometr montażowy
wieloobrotowy 47kO
R9: potencjometr montażowy
wieloobrotowy 100O
RIO: 4,7kQ
R12: lka
Kondensatory
C1...C3, Có, C7: monolityczne
100nF/50V
C4: tantalowy 33|iF/10V
C5: elektrolityczny 10jiF/16V
Półprzewodniki
Ul: AT89S8252 (zaprogramowany)
U2: AD7893-2
U3: ADT70
U4: 4066
U5: 4093
DL D2: 1N4148
D3: LED
Różne
Podstawka PLCC44
Zl: zacisk śrubowy podwójny
listwy goldpin podwójne
i pojedyncze
Taśma 10x i wtyki zaciskane
Moduł wyświetlacza LCD 3V2
cyfry (EP4/99, AVT-809)
Przystawka programująca Rezystory
R1...R3: 330O
R4: 10kO
Kondensatory
Cl: lOOnF
C2: lOnF
Półprzewodniki
Dl: uniwersalna dioda
Schottky'ego np. BAT 85
Ul: 74HC640
Różne
Listwa goldpin kątowa
z innym rozszerzeniem (zwróćmy jednak uwagę, aby nasz programator umiał szeregować rekordy według rosnących adresów - plik *.ihx nie zawsze jest uporządkowany). Jeśli natomiast decydujemy się na użycie opisywanego w EP wspomagającego środowiska dla SDCC, warto wyposażyć się
18
Elektronika Praktyczna 6/2003
Akwizycja danych przez Ethernet - zdalny moduł pomiarowy
Rys. 7. Okno programatora ISP w środowisku SDCC
w dedykowany specjalnie dla niego program a tor ek.
Po wprowadzeniu programu i zerowaniu powinna powoli migotać dioda kontrolna D3. Wyświetlacz pozostaje wygaszony do chwili wypełnienia bufora uśredniania (4 pomiary). Gdy dołączymy do zacisków Zl rezystor wzorcowy 1 kLi, wyświetlacz powinien pokazać temperaturę około zera -sprowadzamy ją do wartości zerowej przyciskami korekty offsetu Pl i P2. Dla sprawdzenia zdalnego odczytu musimy mieć przygotowany zestaw modemów opisanych wEPll/2002. Płytki modemów łączymy prowizorycznie odcinkiem przewodu i próbujemy połączyć się z termometrem za pomocą programu testowego. Jeśli wszystko działa, można zmontować układ w konfiguracji docelowej.
Pozostaje nam sprawdzenie, czy transmisja w sieci działa oraz korekta offsetu dla wyeliminowania wpływu rezystancji linii podłączeniowej czujnika PtlOOO (przy jej większej długości). Możliwe kłopoty z transmisją były opisane w artykule o modemie - w razie potrzeby należy tam sięgnąć po dodatkowe informacje.
Programator ISP82 52 dla IDE SDCC
Programator korzysta z portu szeregowego komputera z podłączonym adapterem optoizolacyj-nym opisanym w miniprojektach w EPll/2002. Jedną z głównych
zalet tego rozwiązania jest całkowita separacja galwaniczna portu od uruchamianego układu. Pomiędzy optoizolatorem a mikio-kontiolerem jest dołożona mała przystawka, której schemat pokazano na rys. 6. Uwaga! Opisy styków RS232 służą wyłącznie do ich identyfikacji - przystawki absolutnie nie należy dołączać bezpośrednio do portu COM komputera!
Za pomocą przystawki można:
- uzgadniać poziomy na liniach sterujących,
- wykonywać zalecaną przez producenta sekwencję przełączenia w tryb programowania (obwód opóźniający R4, C2 włącza zerowanie dopiero po ustabilizowaniu na SCK "silnej" masy),
- ustawiać linie sterujące w stan wysokiej impedancji po zakończeniu programowania, co pozwala na normalną pracę uruchamianego układu bez odłączania programatora.
Przy użyciu tego interfejsu możemy ładować kod bezpośrednio ze środowiska SDCC (F12 albo automatycznie po poprawnej kompilacji). Programowanie obserwujemy w okienku wskaźnika postępu - rys. 7. Najnowsza wersja środowiska SDCC z obsługą opisywanego programatora jest dostępna pod adresem http://www.-ea sy- soft. tsn et.pl /. 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/czerwiecO3Jtim oraz na płycie CD-EP7/2003B w katalogu PCB.
Elektronika Praktyczna 6/2003
PROJEKTY
Korektor sygnału wideo
Velleman K8036
Prawdopodobnie niskie ceny
magnetowidów powodują, że
są one nadal popularne, i to
pomimo anachronicznego (jak
na początek XXI wieku)
sposobu rejestracji sygnału
wideo. Dostrzegając to,
Velleman przygotował łatwy
w wykonaniu korektor sygnału
wideo, za pomocą którego
można przywrócić pierwotny
"blask" wielokrotnie
kopiowanym filmom.
Rekomendacje: układ
polecamy każdemu
użytkownikowi magnetowidu,
który jest przywiązany do
swojej kolekcji filmów
i chciałby poprawić jakość
oglądanych obrazów.
Zestaw Yellemana K8036 przeznaczony jest do poprawiania jakości sygnału wideo. Układ należy włączyć w torze wizji między wyjściem magnetowidu a odbiornikiem telewizyjnym lub wejściem innego magnetowidu. Korektor jest zbudowany w oparciu o cztery układy scalone. Jego schemat elektryczny przedstawiono na rys. 1. Układ w zasadzie nie zmienia sygnału luminancji i chrom inan-cji, a jego działanie dotyczy tej części sygnału wizyjnego, która jest związana z impulsami wygaszania linii i ramki.
Zapewne wszyscy Czytelnicy wiedzą, źe właśnie w tym mo-
mencie do sygnału wizji niosącego informacje o obrazie są "wmontowywane" impulsy synchronizacji pozwalające na prawidłowe odtwarzanie obrazu na ekranie telewizora. Pozornie te sygnały nie mają wpływu na to, co widać na ekranie gdyż - jak sama nazwa wskazuje - sygnał wizji jest wtedy wygaszany. Tym niemniej zachodzi wtedy kilka procesów istotnych z punktu widzenia jakości obrazu. Jeżeli w trakcie trwania wygaszania, oprócz impulsów synchronizacji pojawią się jeszcze impulsy zakłócające o odpowied-
Podstawowe parametry układu:
/ gniazda wejściowe typu S-Video inComposite, / gniazda wyjściowe typu S-Video inComposite, /przeznaczenie do pracy znsygnałem PAL
inWTSC,
/zasilanie +9V/100mA, /wymiary płytki 100 xnS4mm, /maksymalna wysokość zamontowanych
elementów 25mm.
Elektronika Praktyczna 6/2003
21
Korektor sygnału wideo
;? 3 a UJ UJ UJ
s*
Rys. 1. Schemat elektryczny korektora
nio dużej amplitudzie i czasie trwania, może dojść do zaburzenia synchronizacji lub jej utraty, co uniemożliwi zobaczenie czegokolwiek na ekranie telewizora. Oprócz tego, w czasie wygaszania ma miejsce proces odtwarzania poziomu czerni, czyli ustalenie poziomu odniesienia dla najciemniejszych i najjaśniejszych fragmentów sygnału wizji. Poziom ten powinien być stały i nie może na niego wpływać uśredniona wartość sygnału w momencie, gdy ekran świeci jasno lub jest ciemny. Jeżeli odtwarzanie poziomu czerni działa wadliwie, ekran telewizora będzie pulsował. Mogą też pojawiać się na nim ciemne i jasne pasy, co bardzo przeszkadza w oglądaniu.
Na zaburzenie procesu odtwarzania poziomu czerni mogą mieć wpływ przypadkowe zakłócenia, odtwarzanie przez magnetowid zu-
WYKAZ ELEMENTÓW
Rezystory
Rl: 12kQ
R2, R6: 470O
R3, R4: 220O
R5: 430kQ
R7, R14: 560O
R8, R12: 270O
R9: 820O
RIO: 100O
Rl 1: l,5kQ
R13: lOii
Kondensatory
CL C2: 560pF
C3...C9: lOOnF
CIO: 10ru.F/6,3V
C11...C13: 220^F/25V
Półprzewodniki
Dl: BAT95
D2, D3: 1N4148
D4: 1N4007
LD1: LED czerwony
LD2: LED zielony
IC1: PIC12C50ÓA
IC2: CD40Ó6B
IC3: LM1881N
IC4: TLO72
Tl: BC557
T2: BC547
VR1: ^A7805
Różne
SK1: gniazdo zasilania DC
SK2: podwójne gniazdo Chinch
do druku
SK3: gniazdo miniDIN
Elektronika Praktyczna 6/2003
Korektor sygnału wideo
żytej kasety lub świadomie wprowadzane do sygnału impulsy zakłócające, co jest stosowane w prostszych systemach zabezpieczających przed kopiowaniem.
W korektorze wykorzystano układ LM1881, który z całkowitego sygnału wizji odfiltrowuje impulsy synchronizacji linii i ramki oraz tzw. "burst" koloru, którego położenie w sygnale systemu PAL określa koniec wygaszania i początek nowej linii wizji. Te impulsy podawane są na porty wejściowe QP3 i QP4 procesora ICl, który "wygładza" sygnał wizji w czasie trwania okresu wygaszania tak, aby oprócz impulsów synchronizacji nie pojawiały się inne impulsy zakłócające. W tym celu procesor wykorzystuje cztery klucze elektroniczne układu IC2 oraz dwa wtórniki zbudowane na wzmacniaczach operacyjnych układu IC4, a także napięcie odniesienia VREF wytwarzane z napięcia zasilania dzielnikiem rezystancyjnym R3
i R4. Gdy w linii obrazu transmitowany jest sygnał luminancji i chrominancji, układ nie ingeruje w treść sygnału. Sygnał z wejścia VIDEO IN jest podawany, poprzez kondensator Cli, rezystor R9 i stopień wyjściowy zbudowany z tranzystorów Tl i T2, na wyjście VIDEO OUT. W odpowiednich momentach wygaszania, dzięki załączeniu odpowiednich kluczy, poziom sygnału ustalany jest na wartość odpowiadającą poziomowi VREF.
Oprócz sterowania całym procesem, mikrokontroler PIC12C508 sygnalizuje obecność lub brak sygnału wizji poprzez zapalenie lub zgaszenie diody LED D2. Dioda Dl świeci się, gdy do układu dołączone jest zasilanie. Ryszard Szymaniak, AVT ryszard.szymaniak@ep.com.pl
Zestawy firmy Velleman są dostępne w sieci handlowej AVT, można je zamawiać także poprzez sklep internetowy www.sklep.avt.com.pl.
Elektronika Praktyczna 6/2003
23
PROJEKTY
PHANTOM
Dekoder surround, część 1
L-ŁJnta LP-Wnn IT-Wtm
te U "*
Dźwięk dookólny jest coraz
częściej wykorzystywany
w sprzęcie audio
powszechnego użytku. Nie
oznacza to jednak, że
użytkownicy wiedzą, i mają
gdzie się dowiedzieć, na
czym polega działanie
dekoderów surround i jakie
posiadają one możliwości.
Mamy nadzieję, że
prezentowany projekt pomoże
w wyjaśnieniu najczęstszych
wątpliwości.
Rekomendacje: projekt
polecamy wszystkim
a u di ofi łom -miio śn ikom
eksperymentów z dźwiękiem,
których wymagań nie
spełniają standardowe
dekodery surround.
Posiadając stacjonarny odtwarzacz DVD bez wbudowanego dekodera oraz amplituner stereo, postanowiłem zbudować analogowy dekoder surround kompatybilny z analogowym systemem kodowania dźwięku Dolby SurrouncL Jest to dekoder niepełny, ponieważ nie dekoduje kanału centralnego. Dekoder surround odtwarzający kanał centralny przez dwa głośniki jest nazywany Phantom. Ponieważ zdobycie układu scalonego będącego dekoderem Dolby Surround Pro Logic było niemożliwe, do budowy mojego dekodera użyłem scalonego procesora audio TDA7429S z matrycą surround.
Krzemowa moc
Układ TDA7429S jest zintegrowanym procesorem audio sterowanym cyfrowo za pomocą magistrali 12C. Ma 3 wejścia stereofoniczne, 3-pasmowy układ regulacji barwy tonu, wbudowane 4 przesuwniki fazy oraz 2 wyjścia stereofoniczne (4 kanały) . Schemat blokowy tego układu pokazano na rys. 1.
Sam układ TDA7429S nie spełnia w pełni funkcji dekodera surround, ponieważ nie ma wbudowanej linii opóźniającej, a wbudowana matryca surround zapewnia separację kanałów na poziomie jedynie 3 dB. Z tego względu układ ten wymagał wzbogacenia o kilka dodatkowych bloków:
- automatycznego balansu sygnałów L i R (zbudowany na układzie scalonym NE5 70) - niezbędnego do zwiększenia separacji kanałów do poziomu około 20 dB,
- linii opóźniającej (około 12 ms)
zbudowanej na układzie MN3207,
- bloku sterowania fazą sygnału zasilającego głośniki tylne,
- multipleksera dla kanałów tylnych pozwalającego sterować kanały tylne bezpośrednio z 4 wejść (4 wejścia -> 4 wyjścia).
Cały moduł spełnia funkcję przedwzmacniacza z dodatkową funkcją dekodera. Podłączony do stacjonarnego DVD bez wbudowanych dekoderów pozwala z deko-dować dźwięk na 4 głośniki: prawy przedni, lewy przedni, prawy tylny, lewy tylny. W celu uzyskania pełnej, "stacjonarnej" funkcjonalności, moduł powinien być wyposażony we wbudowany mik-rokontioler, np. AT90S2313 lub podobny, który sterowałby (magistralą I2C) wszystkimi funkcjami
Podstawowe dane układu TDA7429S:
/Stosunek sygnał szum: 106 dB / Separacja kanałów: 90 dB /Typowy poziom zniekształceń
dla napięcia 1nVRMS: 0,01 % /Mapięcie wyjściowe (RMS): 2nVn /Mapięcie szumów na wyjściu wntrybie
Stereo: 5u\N /Mapięcie szumów na wyjściu wntrybie
Mewie...Musie: 30 u.V
Elektronika Praktyczna 6/2003
25
PHANTOM - dekoder surround
oraz 4 końcówkami mocy. Moc kanałów wzmacniaczy przednich powinna wynosić 5 0... 100 W, a kanałów tylnych 25...50 W. Dekoder modelowy jest sterowany z komputera PC za pomocą specjalnego programu. Komunikuje się on z modułem dekodera poprzez interfejs RS2 32.
Downmix
Według mojej wiedzy, ponad 90% odtwarzaczy DVD bez dekoderów dekoduje w trybie normalnym ścieżki Dolby Digital 5.1 i koduje je jako Dolby Surround Compatibile Downmix. W tym systemie kanał LFE nie jest wykorzystywany (rys. 2). W większości przypadków inne tryby down-miksu podbijają sygnały kanałów tylnych, zmniejszając jednocześnie poziom sygnału w kanale centralnym. Istnieje również system Stereo Compatibile Downmix, który jest rzadko stosowany. Przy pracy z naszym dekoderem najlepiej wybrać Dolby Surround Compatibile Downmix.
W analogowym dekoderze surround nie można uzyskać dźwięku w pełni wielokanałowego. Dekoder analogowy potrafi natomiast wytworzyć pole dźwiękowe
0 określonym w danej chwili kierunku dominującym. Jeśli np. sygnały w kanałach wejściowych L
1 P są w zgodnej fazie i o zbliżonej amplitudzie, to kierunkiem dominującym będzie przód (środek między kanałami przednimi). Natomiast w przypadku, gdy sygnał wejściowy pojawia się tylko w jednym kanale (np. prawym), to kierunkiem dominującym będzie prawy przedni głośnik (ze względu na przesłuchy między kanałami stłumiony dźwięk pojawi się również w pozostałych głośnikach). Natomiast w przypadku jeśli sygnały w kanałach wejściowych L i P są w fazie przeciwnej i o zbliżonej amplitudzie, to kierunkiem dominującym będzie tył (głośniki surround). Do prawidłowej lokalizacji pozornych źródeł dźwięku bardzo ważna jest faza wszystkich czterech głośników.
Opis układu
Schemat blokowy dekodera pokazano na rys. 3. Zastosowany w dekoderze układ TDA7429S wykorzystano w sposób niestandar-
= C
Rys. 1. Schemat blokowy układu TDA7429S
26
Elektronika Praktyczna 6/2003
PHANTOM - dekoder surround
niewykorzystywany
Rys. 2. Schemat blokowy układu downmix
dowy. Do jego schematu aplikacyjnego wprowadzono bowiem następujące zmiany:
1. Wykorzystano sygnały wyjściowe pomocnicze (AUXOUT_L, AUXOUT_R) do sterowania wzmacniaczami mocy głośników przednich, a sygnały "główne" (L_OUT, R_OUT) do sterowania wzmacniaczami mocy głośników tylnych. Zamiana miejscami sygnałów wyjściowych związana jest z tym, że na głośniki tylne nie podaje się sygnału REAR występującego wewnątrz układu scalonego TDA7429S, lecz przez multipleksery zewnętrzne (M_V_L i M_V_R) odpowiednio przetwo-
rzone sygnały SURR_L i SURR_R lub sygnał kanałów tylnych doprowadzony z zewnątrz.
2. Między wyjścia BAS-SO a wejścia VAR włączono zamiast kondensatorów multipleksery analogowe (oraz kondensatory). Wyj-ścia multiplekserów M_V_L i M_V_R zostały połączone z wejściami VAR_L i VAR_R. Po wprowadzeniu tych zmian można uzyskać różne sygnały wyjściowe zgodnie z tab. 1.
3. Zmieniono wartości kondensatorów kształtujących charakterystykę regulacji barwy tonu dla basów. Dla C26=C27=C28=C29=100 nF charakterystyka częstotliwościowa wykazuje maksimum dla częstotliwości 100 Hz. Po zastosowaniu następujących pojemności: C26=C27=220 nF oraz C28=C29=470 nF charakterystyka ta wykazuje maksimum dla częstotliwości około 3 5 Hz (rys. 4). Daje to lepsze przetwarzanie najniższych częstotliwości. Fragment schematu z elementami kształtującymi charakterystykę częstotli-
Tab. 1. Tryby pracy dekodera i uzyskiwane efekty
Kana^ przednie Kana^ tyfcie
Nazwa Opis Nazwo Opis
3BAND Sygnał kanałów przednich znregulatorów barwy tonu SURR Sygnał kanałów tylnych po przejściu przez układy: DELAY, barwy tonu inkorektora fazy
Surround Sygnał kanałów przednich znmatrycy surround Direct Sygnał kanałów tylnych wprost znwejścia
Rear Sygnał kanałów tylnych (mono) Direct BT Sygnał kanałów tylnych znwejścia po przejściu przez układ barwy tonu
FIX Sygnał kanałów przednich bezpośrednio znwejścia 3BAND Sygnał kanałów przednich znregulatorów barwy tonu
FIX Sygnał kanałów przednich bezpośrednio znwejścia
Out_MONO
Rec_L_Out
BassOJ.
VAR_L
SPKR_ATT
LR_Out
RR_Out
RF_Out
Rap_R_Out
M_AUTO
VAR_R
R8p_U_Out AUTO BALANS
l8c_R_0ut

BbbbOJ
M_MIX
DELAY
10 ms
Barwa
tonu
LRJiract
Barwa
tonu
SUHR_L
M_V_L
LR_Dlrect
BT_OJT_L
BassOJ.
VAR_L
RR_Dlrect
Barwa
tonu
M_V_R
BTJLTTJ
VARJ
Rys. 3. Schemat blokowy dekodera Phantom
Elektronika Praktyczna 6/2003
27
PHANTOM - dekoder surround
TDA7429S
18 17
C28 C26
470n~ 220n
1R31 4k99
20.00 dB
17.50 dB
15.00 dB
12.50 dB
10.00 dB
7.50 dB
5.00 dB
2.50 dB
0.00 dB


\
/ \
/ \
\
\
7 \ \

i i iii I I

10.0 Hz
100.0 Hz
1.0 kHz
Rys. 4. Zmodyfikowana charakterystyka częstotliwościowa regulatora tonów niskich
wościową dla basów i przebieg tej charakterystyki przedstawiono na rys. 4.
4. Zmieniono wartość kondensatora w 4 przesuwniku fazy z 22 nF na 10 nF. Uzyskano w ten sposób inny zakres częstotliwości, dla których przesunięcie fazy wynosi 90. Oryginalnie były to częstotliwości 185...600 Hz, po zmianie są to częstotliwości 400...1300 Hz. Standardowo prze-
WYKAZ ELEMENTÓW
Kondensatory
Cl: L2nF MKT
C2, CÓ...C9, C54...C64: lOOnF SMD
C3...C5, C48...C51: lOOnF MKT
C10...C17, C38: 680nF MKT
C18...C20: ljiF MKT
C21...C24: 22nF MKT
C25, C42: lOnF MKT
C2Ó, C27, C40, C41: 220nF MKT
C28...C31: 470nF MKT
C32, C33: 18nF MKT
C34...C37: 4,7nF MKT
C39, C52, C53: 6,8nF MKT
C43: 270pF monolityczne
C44: 680pF monolityczne
C45, C47: 180pF monolityczne
C46: lóOpF monolityczne
CEL CE19: 470jiF/16V
CE2, CE8, CE17: 47u/10V
CE3, CE4, CE9...CE12: 47^F/16V
CE5, CE25: 10^F /16V
CEÓ, CE7: 22jiF/10V
CE13, CE15, CE18: 4,7^F/1ÓV
CE14, CE1Ó: KOjiF/lóy
CE20...CE24: 100jiF/16V
CE23: 100^F/6V
Półprzewodniki
UL U2: CD4053N
U3: TDA7429S
U4, U5: TL072
suwniki 3 i 4 powinny przesunąć fazę o 90 dla częstotliwości 400 Hz. Przesunięcie takie można programowo uzyskać nawet po wprowadzonych zmianach - wpisując do drugiego rejestru w TDA7429S EAH (zamiast AAH).
5. W nietypowy sposób wykorzystano wyprowadzenie LP (nóżka 5 układu TDA7429S). Normalnie powinien być tam podłączony kondensator filtru dolnoprzepustowego
Uó: NE570
U8: MN3207
U9: TL074
U10: LM78L08 lub LM7808T
Uli: MN3102
U12: LM7908T lub LM79L08
U13: DG409 opcjonalnie
U14: LM833
U15: PCF8574A
U16: 74HC05
E3: CD4052N
Tl, T2: BC557
T3, T4: BC237
DL D2, D3, D4, D5, Dó, D7, D8,
D9, D10, D1L D12: BAVP18
D13, D14: 1N4004
DZL Dioda Zenera C5V6
DZ2, DZ3: Dioda Zenera C9V1
DX1: DA4148A drabinka diod
DX2: DA4148K drabinka diod
Rezystory
RL R3, R5: 100O SMD1206
R2, R4, R56...R58: 220O SMD120Ó
R6...R18, R22: lkn SMD1206
R19...R21: lkO/0/125W 1%
R23, R24, R27, R29: 4,7kQ SMD1206
R25, R26, R28, R30, R85: 10kO
SMD 1206
R31...R33, R82...R84: 4/99kQ/0,125W 1%
R34, R44: 24/9kO/0/125W 1%
TDA7429S
ok. lOk
LP
Rys. 5. Fragment wewnętrznej struktury układu TDA7429S
o wartości 1,2 nF (między nóżkę 5 a masę). Analizując schemat wewnętrznej struktury układu TDA7429S (rys. 5), postanowiłem jednak podłączyć w to miejsce wyjście z multipleksera M_AUTO (rys. 6). Wyjście wzmacniacza operacyjnego Wl (wewnątrz układu TDA7429S) jest połączone przez rezystor o wartości około 10 kQ z nóżką 5 tego układu i jednocześnie połączone z wejściem wzmacniacza operacyjnego W2. Ponieważ impe-dancja multipleksera (i wyjścia wzmacniacza operacyjnego LM833) jest dużo mniejsza od 10 kQ (wynosi około 200 Q), potraktowałem nóżkę 5 układu TDA7429S
R35...R40: 100kO/0/125W 1% R4L R42: 22kQ SMD1206 R43, RÓO, R7CT2: 47kQ SMD1206 R45...R50: 120kO SMD1206 R5L R52: 2,74kQ/0/125W 1% R53, R68, R70, R7L R86, R87, R7L2: 5LlkQ/0,125W 1%
R54, R88, R89: 2,15kQ/0/125W 1%
R55, R90, R91: 121kQ/0,125W 1%
R59: 10n SMD1206
RÓ2, R63: 33/2kO/0/125W 1%
R64, R65: lukQ/0,125W 1%
R66, R67, R73: 27,4kQ/0/125W 1%
R69, R69y2: 100kO/0/125W 1%
R72, R76, R77: 5/6kO/0/125W 1%
R74: 20/5kO/0/125W 1%
R75: 2L5kQ/0,125W 1%
R78...R81: 200kO SMD1206
R91: 10n 0,125W 1%
RX1: 8xl0kO drabinka
PRL 50kO montażowy
Różne
Zl: gold pin 3x1
JP1 JP2: gold pin 4x1
J_IN_1 J_IN_23 J_OUT: gold pin
6x1
J_CTRL J_IN_1F J_IN_1R J_IN_2
J_IN_3 J_OUT_1 J_OUT_2 J_OUT_F
J_OUT_M: SIP4
LZL 2x3,81 mm
LZZ: 3x3,81 mm
Elektronika Praktyczna 6/2003
PHANTOM - dekoder surround
Rys. 6. Schemat elektryczny dekodera, układ barwy tonu i przesuwnika fazy
Elektronika Praktyczna 6/2003
29
PHANTOM - dekoder surround
R13
wejście
TDA7429S
Rys. 7. Schemat elektryczny obwodu zabezpieczenia antyprzepieciowego zastosowanego na wejściach dekodera
jako wejście sygnału surround na wewnętrzną matrycę surround. Multiplekser M_AUTO załącza albo kondensator 1,2 nF, albo wyjście z zewnętrznego wzmacniacza operacyjnego - sygnał różnicy kanałów prawego i lewego (R-L) z układu autobalansu.
Dekoder posiada jedno wejście czterokanałowe, które można wykorzystać również jako stereo:
- wejście 1: sygnały INlL, INlR, LR_Direct, RR_Direct
oraz dwa wejścia stereo:
- wejście 2: sygnały IN2L, IN2R,
- wejście 3: sygnały IN3L, IN3R.
Wejście 1 może pracować jako stereo (sygnały INlL, INlR) lub czterokanałowe (kanały przednie INlL i INlR oraz kanały tylne LR_Direct i RR_Direct). Źródłem czterech sygnałów wejściowych może być karta dźwiękowa komputera PC lub odtwarzacz DVD wyposażony w dekodery.
Wejścia są przełączane przez multipleksery M_IN_L, M_IN_R oraz M_V_L i M_V_R. Wyjścia multiplekserów M_IN_L i M_IN_R dają dwa sygnały wyjściowe Rec_L_Out i Rec_R_Out, które można doprowadzić na gniazda cinch i wykorzystać do nagrywa-
nia przez magnetofon, rekorder minidysków lub kartę dźwiękową komputera PC. Sygnały z multiplekserów M_IN_L i M_IN_R podawane są na regulatory wzmocnienia ATT_L iATT_R. Układ TDA7429S pozwala sterować ich wzmocnieniem (jednocześnie w kanale lewym i prawym) w zakresie 32 dB (O...-31,5dB). Regulację wzmocnienia należy traktować jako korektę wzmocnienia dla różnych źródeł - po włączeniu au-tobalansu należy ustawić to wzmocnienie na około 3 dB. Dalej sygnały kanału lewego i prawego trafiają na sumator i wzmacniacz różnicowy. Wyjście sumatora jest wyprowadzone na zewnątrz i można je wykorzystać (Out_MONO) jako źródło sygnału fonii dla telewizora mono. W zależności od tego, w jakim trybie pracuje układ TDA7429S, są aktywne lub nie przesuwniki fazowe FS1...FS4. Kanały przednie mogą mieć regulowaną barwę tonu w trzech pasmach: bas, średnie i wysokie.
Wszystkie wejścia układu scalonego zostały zabezpieczone przed zniszczeniem od napięć przekraczających napięcie zasilania (rys. 7). Takie napięcia mogą się pojawić w chwili łączenia ze sobą dwóch urządzeń (np. wzmacniacza z komputerem). Działanie zabezpieczenia jest następujące: jeśli na wejściu w punkcie A pojawi się krótkotrwałe napięcie nawet o wartości kilkudziesięciu V, to popłynie prąd o wartości kilkudziesięciu mi-liamperów przez rezystor Rl3 i jedną z diod (DXl lubDX2). W punkcie B napięcie zawsze będzie mieściło się w przedziale -0,7...+8,7V. Rezystor Rl8 ogranicza prąd wpływający/wypływający do/z chronionego układu scalonego do wartości kilku miliamperów. Zbyszko Przybył
Wzory płytek drukowanych w formacie PDF są dostępne w Jnternecie pod adresem: http://www.ep.cont.pl/ ?pdf/czerwiecQ3htm oraz na płycie CD-EP7/2003B w katalogu PCB.
30
Elektronika Praktyczna 6/2003
PROJEKTY
De koder-ste równik 7-segmentowego
wyświetlacza LCD VHDL
w
Do podjęcia tego tematu
zachęcił mnie post na
pł.misc.elektronika, w którym
jeden z grupowiczów zwrócił
uwagę na pewien problem
przy opisie układu w języku
VHDL - przypisanie
jednobitowego sygnału do
wielobitowego wektora. Przy
okazji przedstawiamy
przydatny, aczkolwiek niezbyt
często stosowany
w praktycznych aplikacjach
blok funkcjonalny, który -
dzięki uniwersalnemu językowi
opisu - można traktować jak
klasyczny blok IP [Intellectual
Propeńy core).
Rekomendacje: moduł IP
przydatny we wszelkiego
rodzaju aplikacjach,
w których zastosowano
klasyczn e, 7- segmen towe
wyświetlacze LCD.
Dekoder-sterownik opisany w artykule był kilkakrotnie sygnalizowany przez Czytelników, ale ze względu na jego podobieństwo do scalonego dekodera-sterownika 7-segmentowych wyświetlaczy LED typu 4543 (układ z serii CMOS) nie zamierzałem się nim zajmować. Niesłusznie - w budowie tego układu tkwi "kruczek", który sprawia sporo kłopotów początkującym konstruktorom korzystającym z VHDL.
Wyświetlacze LCD-TN
LCD to akronim pochodzący od Liąuid Crystal Dispłay, co oznacza wyświetlacz ciekłokrystaliczny. Ciekłe kryształy posiadają
Waratwa polimeru
Poluryzator
Elektroda
Warstwa przewodząca
Ciekły krysztal
Polaiyzator
Lustro
Rys. 1. Przekrój ilustrujqcy budowę klasycznego wyświetlacza LCD
fizyczne własności zarówno ciała stałego, jak i płynu. Jedną z ich właściwości jest to, źe zmieniają one swoje położenie w zależności od przyłożonego napięcia (w zasadzie od natężenia pola elektrycznego pomiędzy okładkami "kondensatora", w którym dielektrykiem jest ciekły kryształ).
Ciekłe kryształy w wyświetal-czach stosuje się najczęściej w postaci cienkiej warstwy umieszczonej między dwiema szklanymi płaszczyznami, które spełniają rolę elektrod (rys. 1). Oddziaływania powierzchniowe między cząsteczkami ciekłego kryształu a materiałem elektrod powodują powstanie określonego ułożenia (tekstury) cząsteczek w warstwie ciekłokrystalicznej. Spośród wielu znanych tekstur molekularnych ciekłych kryształów najważniejsze są: tekstura planarna, charakteryzująca się równoległym ułożeniem cząstek ciekłego kryształu w stosunku do płaszczyzny elektrod i tekstura homeotiopowa - o prostopadłym układzie cząsteczek. Bardzo ważną odmianą tekstury planarnej jest konfiguracja TN (Twisted Nemańcs), czyli tzw. skręconego nematyka, która charakteryzuje się skręceniem osi
Elektronika Praktyczna 6/2003
31
Dekoder-sterownik 7-segmentowego wyświetlacza LCD w VHDL
Polaryzator
Szkło
Orientacja ciekłego kryształu
Szkło
Polaryzator

Rys. 2. Zasada działania wyświetlaczy LCD-TN
Orientacja ciekłego kryształu widzianego od góry wyświetlacza
1 ov
backplane i Ś a
segment 5Vpp
włączony r
segment wyłączony V

1--------------------------------------------------------------------------------------->
w
OVpp
Rys. 3. Włączenie segmentu wyświetlacza LCD wymaga wysterowania elektrody backplane sygnałem o przeciwnej fazie niż sygnału sterującego segment
więc przepuszczone. Po przyłożeniu napięcia, cząsteczki białego kryształu ustawią się prostopadle do powierzchni szkła i polaryza-torów. Nie będą skręcały płaszczyzny polaryzacji światła. Zostanie więc ono zatrzymane przez drugi, dolny polaryzator.
Właściwości ciekłych kryształów pozostają w ścisłym związku z ich budową chemiczną. Najogólniej można powiedzieć, że są to substancje, których cząsteczki o wydłużonych kształtach mają charakter polarny, tzn. w ich molekułach występuje nierównomierny rozkład ładunku elektrycznego. Cząsteczki o takich właściwościach będą reagowały na pole elektryczne.
Współcześnie produkowane wyświetlacze LCD, ze względu na słabą odporność stosowanych ciekłych kryształów na długotrwałą polaryzację napięciem stałym (polem elektrycznym o stałym, dość dużym natężeniu i kierunku), wymagają sterowania impulsowego. Polega ono na przyłożeniu do wspólnej elektrody wszystkich segmentów [backplane) sygnału prostokątnego o częstotliwości
cząsteczek równolegle ułożonych warstwą orientującą i warstwą 30...300 Hz i napięciu o wartości przy obu powierzchniach o kąt 90 skręconego nematyka wstawimy 2...5 V. Maksymalna wartość na-lub 45 (rys. 2). Strukturę skrę- między skrzyżowane polaryzatory pięcia stałego polaryzującego seg-conego nematyka można uzyskać (rys. 2), to światło białe przejdzie menty zazwyczaj nie może być ze zwyczajnych prętopodobnych przez górny polaryzator jako spo- większa od 50 mV. Wyświetlacze cząsteczek. Wymaga to jednak laryzowane, w warstwie skręcone- LCD-TN są stosunkowo wolne -specjalnej obróbki powierzchni go nematyka kierunek drgań uleg- w temperaturze 25C czas włą-płytek szklanych. Ich powierzch- nie skręceniu o 90 i padając na czania segmentu wynosi co naj-
drugi skrzyżowany polaryzator, bę- mniej 60 ms, natomiast czas dzie miało kierunek drgań zgodny wyłączania zazwyczaj nie jest leruje w jednym kierunku. Pręto- z dolnym polaryzatorem. Zostanie krótszy niż 80 ms. podobne cząsteczki ustawiają się
zgodnie z kierunkiem polerowa- ^^h r\ * ^l ^^^H
nia. Jeżeli drugą szklaną płytkę ^^ Dzieło przypadku Ś
Ciekłe kryształy, podobnie do większości wynalazków, odkryto przez przypadek. W 1888 roku austriacki botanik Friedrich Reinitzer badał, jaką rolę odgrywa w roślinach cholesterol. W jednym z eksperymentów wystawił on badany materiał na działanie ciepła, przy czym odkrył, że kryształ w temperaturze 145C staje się mętnym płynem, zaś przy 179C przechodzi całkowicie w stan płynny. W dwa lata później, w Karlsruhe, niemiecki fizyk Otto Lehman wprowadza pojęcie: ciekły kryształ, stwierdzając ich specyficzną strukturę fazową. Ponownie do substancji o właściwościach ciekłych kryształów wrócono w latach sześćdziesiątych XX wieku, kiedy Amerykanin James L. Ferguson stwierdził, iż ciekłe kryształy można zastosować jako wskaźniki temperatury, zaś George Heilmeier I z Princeton odkrył zjawisko tzw. zakłóceń dynamicznych światła przechodzącego przez ciekły kryształ w polu elektrycznym. Jego publikacje z roku 1968 można uznać za początek technicznego zastosowania ciekłych kryształów.
nię pokrywa się cienką, przezroczystą warstewką polimeru i po-
wypolerowaną analogicznie przekręcimy o 90 i między te płytki wprowadzimy ciekły kryształ ne-matyczny, to przyjmie on strukturę skręconą o 90. Taka struktura skręca płaszczyznę polaryzacji światła o 90. Jeżeli powierzchnie płytek szklanych pokryjemy cienką, przezroczystą warstwą przewodzącą, to mamy możliwość wytworzenia pola elektrycznego pomiędzy okładzinami "kondensatora". Prętopodobne cząsteczki będą się ustawiały zgodnie z liniami sił pola elektrycznego, prostopadle do powierzchni szkła.
Jeżeli przygotowane płytki z warstwą przewodzącą (rys. 1),
32
Elektronika Praktyczna 6/2003
Dekoder-sterownik 7-segmentowego wyświetlacza LCD w VHDL
a_stat
dlnO b_8tat
dlni \ ,_y c_8tat
din2 ] |^ d_stat
j din3 o l^g e_stat f stat
B_stat
clk 30...300 Hz
Rys. 4. Schemat blokowy dekodera BCD-> 7 segmentów
Widoczne ("włączone") segmenty wyświetlacza muszą być sterowane napięciem o takiej samej wartości, lecz fazie odwróconej o 180. Do segmentów, które mają być niewidoczne ("wyłączone"), należy przyłożyć napięcie o takiej samej amplitudzie i fazie, jak przyłożone do elektrody wspólnej. Na rys. 3 pokazano przebiegi sterujące dwoma segmentami wyświetlacza LCD: jeden z nich jest włączony, drugi wyłączony.
7-segmentowego. Jego schemat blokowy pokazano na rys. 4. Jak widać, składa się on z dwóch bloków: - standardowego transko-dera kodu BCD na kod wskaźnika 7-segmentowego (z wyjściami aktywnymi w stanie "1"), -zespołu sterowanych inwerterów, które od-wrac aj ą fazę sygnał ów sterujących segmentami o 180 w stosunku do sygnału zasilającego backplane w przypadku , gdy wybrane segmenty mają być włączone, lub powtarzających sygnał backplane - w przypadku, gdy sterowane segmenty mają być wyłączone.
Narzędzia za darmo Wszyscy liczący się producenci układów programowalnych udostępniają do celów edukacyjnych bezpłatne narzędzia do projektowania. Pomimo tego, że są udostępniane za darmo, ich funkcjonalność jest porównywalna z narzędziami komercyjnymi i bez trudu można za ich pomocą Ś wykonać także zaawansowane projekty.
Opis projektu
Biorąc pod uwagę wymagania stawiane sterownikom przez wyświetlacze LCD-TN, musimy zaprojektować dekoder, na wyjściach którego będą występowały sygnały sterujące poszczególnymi segmentami wyświetlacza i - oczywiście - elektrodą wspólną [backplane). Dla przykładu skupimy się na zaprojektowaniu dekodera dla ciekłokrystalicznego wyświetlacza
a stat
Rys. 5. Jednym z możliwych rozwiązań sterowanego inwertera jest zastosowanie bramek Ex-OR
Sterowane inwertery można zrealizować na wiele sposobów, spośród których najodpowiedniejszym dla celów tego projektu są bramki Ex-OR połączone w sposób pokazany na rys. 5. Wejściowy sygnał clk połączony bezpośrednio z wyjściem bp jest podawany na jedno z wejść każdej z bramek Ex-OR, natomiast na każde drugie wejście jest podawany sygnał z dekodera BCD->7 segmentów [a...g_stat). W zależności od stanów na tych wejściach, na wyjściach bramek wystąpią przebiegi prostokątne będące w fazie z sygnałem clk (jeżeli na odpowiednim wejściu a...g_stat jest logiczne "0") - wtedy tak sterowany segment nie jest włączony, lub w przeciwfazie (jeżeli na odpowiednim wejściu a...g_stat jest logiczna "1"), co powoduje włączenie segmentu.
Jak to zrobić w VHDL-u?
Przejdźmy do pokazania sposobu zapisania w języku VHDL dekodera zbudowanego zgodnie ze schematem blokowym z rys. 4. Jeden z możliwych wariantów opisu pokazano na list. 1.
W opisie architektury dekodera znajdującym się po deklaracji jednostki entity zastosowano instrukcję selekcjonującą przypisania with...select, dla której szablonem wyrażeń selekcjonujących jest 4-bitowy wektor din. Wektor segm jest zadeklarowany jako pomocniczy sygnał wewnętrzny (za pomocą deklaracji signal segm: stdlo-gic_vector(6 downto 0)) i odpowiada on sygnałom a...g_stat, pokazanym na rys. 4 i 5. Wykorzystanie instrukcji with...select wymaga zdefiniowania odpowiedzi układu na wszystkie możliwe wartości wyrażenia selekcjonującego, w związku z czym jako ostatnią trzeba zastosować klauzulę "0000000" when others - bez niej kompilacja się nie uda. Założono, ^^^ że wyświetlacz będzie wy-^^^ łączony (żaden segment nie będzie widoczny) dla kodów wejściowych powyżej 9 (1001), czyli dekoder jest przeznaczony wyłącznie do wyświetlania cyfr z zakresu 0...9. Nic nie stoi na przeszkodzie, aby w razie takiej potrzeby samodzielnie zdefiniować znaki o kodach A...Fh (dziesiętnie 10...15), czego przykład pokazano na list. 2. Należy zwrócić uwagę, że pomimo jawnego zadeklarowania wszystkich wartości wektora
List. 1. Przykładowy opis w języku VHDL dekodera-sterownika 7-segmentowego wyświetlacza LCD
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UWSIGWED.ALL;
entity lcd_dek is port (
din: in std_logic_vector(3 downto 0);
clk: in std_logic;
bp: inout std_logic;
segm_o: out std_logic_vector(6 downto 0)
); lcd_dek;
chite
ar_dyn of lcd_dek is 3td_logic_vector(6 downto 0)
gfedc
0111111 When "0000"
0000110 When "0001"
1011011 When "0 010"
1001111 When "0011"
1100110 When "0100 "
1101101 When "0101"
1111101 When "0110"
0000111 When "0111"
1111111 When "100 0"
1101111 When "1001"
0000000 When others
(0) (l) (2) (3J (4) (5)
id ar_dyn
Elektronika Praktyczna 6/2003
33
Dekoder-sterownik 7-segmentowego wyświetlacza LCD w VHDL
List. 2. Przykładowa modyfikacja
programu z list. , dzięki której
dekodowane sq także wektory
wejściowe A...Fh
"1111111" Whr ?n "1000" -- s
"1101111" Whr ?n "1001" __ 9
"1110111" Whr ?n "1010" -- kod 10 - Znak k"
"1111100" Whr ?n "1011" -- kod 11 - Znak b"
"0111001" Whr ?n "1100" -- kod 12 - Znak C"
"1011110" Whr ?n "1101" -- kod 13 - Znak d"
"1111001" Whr ?n "1110" -- kod 14 - Znak E"
"1110001" Whr ?n "1111" -- kod 15 - Znak F"
"0000000" Whr
din nadal jest stosowana klauzula when others. Wynika to z faktu, źe kompilatory rozpoznają także inne stany niż "0" i "1" (min. słabe zero i słabą jedynkę, stan wysokiej impedancji itp.) na wejściach din, dla których zadeklarowano typ std_Iogic_vector.
W dalszej części list. 1 znajduje się opis sterowanego inwer-tera, wykonanego na bramkach Ex-OR. W jego opisie pojawia się właśnie problem, o którym wspomniałem na wstępie - chodzi o zapisanie sumy Ex-OR pomiędzy 7-bitowym wektorem składającym się z sygnałów sterujących segmentami wyświetlacza a 1-bitowym sygnałem clk. Niektóre syntezery VHDL (niezgodnie z obowiązującymi w VHDL normami) pozwalają na przeciążanie operatorów logicznych (w tym xor) w taki sposób, że możliwy byłby zapis segm_o <= segm kot bp - domyślnie jest implementowane siedem sum logicznych dla każdego sygnału z wektora segm z sygnałem bp. Standardowo operatory logiczne są przeznaczone do wykonywania operacji na wektorach o jednakowej długości, która może być większa od 1 bitu - przykład pokazano na list. 3.
List. 3. Alternatywny w stosunku
do pokazanego na list. 1 sposób
zapisu wielobitowej sumy Ex-OR
bp_lnt(0) <= bpr
bp_lnt(1) <= bpr
bp_lnt(2) <= bpr
bp_lnt fi ) <= bpr
bp_lnt(4) <= bpr
bp_lnt(5) <= bpr
bp_lnt(6) <= bpr
segin_o <= segin Xor bp_li
List. 4. Alternatywny, najbardziej elastyczny, zapis wielobitowej sumy Ex-OR, ścisłego odpowiednika zapisu z list. 1
mb_Xor: for 1 ln 0 to S generate segin_o(l) <= segin(l) Kor bpr end generate r
Język VHDL uchodzi za jeden z bardziej skomplikowanych języków opisu sprzętu (HDL - Hardware Description Language). Pomimo dość rygorystycznych reguł formalnych obowiązujących podczas pisania programu, język ten charakteryzuje się znaczną uniwersalnością, co w praktyce oznacza, że dobrze przygotowany opis bloku funkcjonalnego będzie można "wbudować" zarówno w układy PLD, jak i AS1C pochodzące od różnych producentów. Niebagatelne znaczenie dla projektantów systemów cyfrowych ma fakt, że podzbiór języka VHDL, który jest obsługiwany przez programy do syntezy logicznej, jest niewielki i stosunkowo łatwy do nauczenia się.
Istotną cechą VHDL-a jest możliwość opisywania projektowa- J nego układu na wiele sposobów m.in.: przepływowy (RTL -do którego sprowadzane są inne), behawioralny (opis zachowania się bloku w zależności od sygnałów zewnętrznych | i wewnętrznych) czy też strukturalny (zwykle hierarchiczny opisujący budowę układu).
Niestety, taki zapis, podobnie do pokazanego na list. 1, nie jest zbyt wygodny, zwłaszcza gdy długość XOR-owanego wektora jest duża. Jakakolwiek zmiana w tej funkcji wymusza koniecz-
ność modyfikowania wielu miejsc programu, co jest czasochłonne i może być przyczyną błędu. Na list. 4 pokazano uproszczony zapis wielobitowej funkcji Ex-OR, w której długość wektora można
Rys. ó. Jednym z mniej znanych narzędzi projektowych jest zdalny kompilator WebFitter udostępniony bezpłatnie przez firmę Xilinx
34
Elektronika Praktyczna 6/2003
Dekoder-sterownik 7-segmentowego wyświetlacza LCD w VHDL
swobodnie regulować za pomocą wartości parametru i. Utworzono ją za pomocą instrukcji powielania generate. Zapis pokazany na list. 4 jest ścisłym odpowiednikiem opisu zastosowanego na list. 1.
Implementacja
Dzięki zastosowaniu jako języka opisu sprzętu VHDL-a, z prezentowanego projektu mogą skorzystać użytkownicy dowolnej rodziny układów PLD. Dekoder zajmuje 8 makrokomó-rek w układach SPLD/CPLD (zmieści się więc nawet w układzie GAL22V1O lub GAL16V8 -po niewielkiej modyfikacji). Projekt był testowany na płytce ewaluacyjnej opisanej w EP9/ 2002, na której znajduje się
układ XC 9 510 8 (programowany w systemie CPLD ze 108 makro-komórkami). Dla wszystkich sygnałów jest niezbędne 13 wyprowadzeń (5 wejść i 8 wyjść).
Plik z opisem projektu (list. 1) skompilowano za pomocą bezpłatnych pakietów narzędziowych: Max+Plus II Student Edition (obsługuje VHDL), Cmartus II 2.2 Web Edition - obydwa firmy Altera i WebPack ISE 4.2 firmy Xilinx.
Mało znanym, lecz równie skutecznym jak narzędzia stacjonarne (instalowane na komputerze użytkownika), jest zdalny internetowy kompilator firmy Xi-linx - WebFitter (dostępny po zarejestrowaniu pod adresem: http://'www.xilinx.com/xlnx/ xil_prodcat_landingpage.jsp?tit-
le=WebFITTER). Za jego pomocą można skompilować prezentowany projekt do postaci *.jed, czyli wynikowej, przeznaczonej do programowania układu docelowego. WebFitter generuje wszystkie niezbędne raporty, pozwala także kompilować projekty hierarchiczne. Widoki kilku okien pracującego WebFittera pokazano na rys. 6. Piotr Zbysiński, AVT piotr.zbysinski@ep.com.pl
Projekty dla system u Web-Pack ISE 4.2 wraz z kodami źródłowym trzech wersji projektu są dostępne na stronie interne-towej www.ep.com.pl w dziale Download> Dokumentacje. Publikujemy je także na płycie CD-EP7/2003B.
Elektronika Praktyczna 6/2003
35
PROJEKTY
"Przedłużacz"
do cyfrowego toru audio
AVT-514R
AVT-5140C
AVT-514C0
Do zalet transmisji sygnału
audio w postaci cyfrowej nie
trzeba przekonywać. W ten
sposób można przesyłać
sygnał bez ryzyka zwiększenia
poziomu szumów lub
wystąpienia przydźwięku, ale
zazwyczaj na niewielkie
odległości.
Rekomendacje: przystawka
dla wszystkich audiofilów
umożliwiająca przesyłanie na
większe odległości sygnałów
pomiędzy urządzeniami
tworzącymi zestaw audio.
Regenerator optyczny S/PDIF
W urządzeniach audio do przesyłania cyfrowych danych wykorzystywany jest przewód koncentryczny lub światłowód, który zapewnia dużą odporność sygnału na zakłócenia zewnętrzne. Wiele dostępnych urządzeń audio umożliwia przesłanie danych światłowodem na odległość nieprzekraczająca 10 m. Niekiedy potrzebne jest przesłanie sygnału audio na większą odległość, np. z oddalonego komputera do pomieszczenia, w którym znajduje się zestaw audio. Połączenie zwykłym przewodem ekranowanym na pewno nie zapewni jakości dźwięku, jaką otrzymuje się przesyłając dźwięk cyfrowo. Dystans przesyłanego światłowodem sygnału można w prosty sposób zwiększyć, stosując dodatkowy regenerator. Jego działanie polega na odbieraniu sygnału ze światłowodu, wzmacnianiu go oraz przesłaniu dalej. Zastosowanie regeneratora powoduje radykalne zwiększenie odległości, na jaką mogą być przesyłane światłowodem cyfrowe sygnały audio.
Regenerator (AVT-514R)
Schemat elektryczny regeneratora przedstawiono na rys. 1. Sygnał ze światłowodu odbierany
jest przez odbiornik optyczny U2 i przechodzi dalej przez inwertery U3A, U3B. Dodatkowe inwertery poprawiają zbocza odbieranego sygnału. Sygnał po przejściu przez inwertery podawany jest do nadajnika optycznego U4. Rezystor Rl ogranicza prąd płynący przez diodę zawartą w nadajniku U4. Elementy U 2 oraz U4 zastosowane w regeneratorze umożliwiają przesłanie sygnału na odległość nie-przekiaczającą 10 metrów. Prostownik Bl zapewnia odpowiednią polaryzację napięcia zasilającego, natomiast stabilizator Ul zapewnia jego odpowiednią wartość (5 V). Rezystor R2 ogranicza prąd diody Dl, która jest wskaźnikiem napięcia zasilania. Pozostałe elementy filtrują napięcie zasilające regenerator.
Na rys. 2 przedstawiono schemat montażowy płytki drukowanej. Z montażem regeneratora nie powinno być żadnych problemów. Po zmontowaniu układ jest od razu gotowy do pracy. Do zasilania regeneratora można użyć dowolnego z dostępnych na rynku zasilaczy wtyczkowych o napięciu wyjściowym 12...16 VDC lub 8...12 VAC oraz o wydajności prądowej nie mniejszej niż 100 mA. Płytka
Elektronika Praktyczna 6/2003
37
"Przedłużacz" do cyfrowego toru audio
ovcc
B,"18V
74HC04
Rys. I. Schemat elektryczny regeneratora
regeneratora została zwymiarowa-na pod obudowę Z24A. Przed umieszczeniem układu w obudowanie należy ściąć rogi płytki w miejscach zaznaczonych kreskowaną linią. Po takim zabiegu płytka powinna bez problemu mieścić się w obudowie (fot. 3), w której należy jeszcze wyciąć otwory na złącza oraz diodę LED. Obudowę regeneratora można odpowiednio oznaczyć naklejkami informujących o wyjściach oraz wejściach światłowodu.
Konwerter S/PDIF
Optical->Coaxial
(AVT-514OC)
Wiele urządzeń audio jest wyposażonych w cyfrowe wejścia oraz wyjścia, przy czym występują zazwyczaj dwa rodzaje połączeń: optyczne oraz koaksjalne, przy którym wykorzystywany jest przewód koncentryczny 75 O,. Niektóre urządzenia audio umożli-
wiają stosowanie połączenia zarówno poprzez przewód koncentryczny, jak i światłowód, ale istnieją też takie, które pozwalają na stosowanie tylko jednego z nich. Problem powstaje, gdy posiadamy jedno urządzenie przystosowane do połączeń koaksjalnych, a drugie optycznych. Rozwiązaniem tego problemu będzie prosty konwerter OpticaI->CoaxiaL Prezentowany konwerter Optical->Coaxial wraz z opisanym dalej konwerterem Coaxial->Optical, może służyć do zamiany połączeń z koncentrycznych na optyczne oraz odwrotnie. Jeżeli urządzenia będą oferowały połączenie typu coaxiał, to bez problemu za pomocą konwerterów będzie można zamienić połączenie na optyczne i odwrotnie. Gdy sygnał będzie transmitowany światłowodem na
Rys. 2. Rozmieszczenie elementów na płytce regeneratora
Rys. 3. Widok zmontowanego regeneratora
74HC04
odległość większą od 10 m, to będzie konieczne zastosowanie dodatkowego regeneratora.
Działanie konwertera Opńcal->Coaxial jest bardzo proste i polega jedynie na odbieraniu sygnału, jego wzmacnianiu oraz konwertowaniu do postaci zgodnej z połączeniem coaxiaL W połączeniu coaxial "zero" jest reprezentowane przez napięcie -0,5 V, a "jedynka" przez +0,5 V. Zastosowanie konwertera radykalnie zwiększy funkcjonalność domowych czy komputerowych urządzeń audio.
Schemat ideowy konwertera OpticaI->CoaxiaI pokazano na rys. 4. Sygnał ze światłowodu jest odbierany przez odbiornik optyczny U2, z wyjścia którego przecho-
WYKAZ ELEMENTÓW
Regenerator Rezystory
Rl: R2: Kondensatory
Cl: 100^F/lóV C2, C3, C4: lOOnF C5: 47^F/1ÓV Półprzewodniki
Ul: 7SL05
U2: TORX173
U3: 74HC04
U4: TOTX173
Dl: LED 3mm zielona
Bl: mostek prostowniczy 1A
okrqgły:
Różne
LI: dławik 47^H
Zl: złqcze zasilajqce do druku
Obudowa Z24A
38
Elektronika Praktyczna 6/2003
"Przedłużacz" do cyfrowego toru audio
ovcc
fl...16V
74HC04
Rys. 4. Schemat elektryczny konwertera, kabel optyczny-koncentryczny
dzi przez inwertery U3A - U3F. Poprawiają one "kształt" odbieranego sygnału. Połączone równolegle inwertery U3B...F zwiększają wydajność prądową wyjścia. W obwodzie z elementami C6, Rl, R3 zamieniany jest poziom sygnału do akceptowanego przez połączenie typu coaxiaL Mostek Bl prostuje napięcie zasilające, natomiast stabilizator Ul utrzymuje je na poziomie 5V. Rezystor R2 ogranicza prąd diody Dl, która jest wskaźnikiem napięcia zasilania. Pozostałe elementy są filtrem napięcia zasilającego konwerter.
Na rys. 5 przedstawiono schemat montażowy płytki drukowanej . Po zmontowaniu układ jest gotowy do pracy. Do zasilania konwertera można zastosować zasilacz wtyczkowy o napięciu wyjściowym 12...16 VDC lub 8...12 VAC oraz wydajności prądowej nie mniejszej niż 100 mA. Płytka konwertera została zwymiarowana
pod obudowę Z24A (fot. 6). Przed umieszczeniem układu w obudowie należy ściąć rogi płytki w zaznaczonych miejscach. Po takim zabiegu płytka powinna bez problemu mieścić się w obudowie, w której należy jeszcze wyciąć otwory na złącza oraz diodę LED. Obudowę konwertera można odpowiednio oznaczyć naklejkami informujących o wyjściach oraz wejściach dołączanych przewodów.
Konwerter S/PDIF
Coaxial->Optical
(AVT-514CO)
Konwerter CoaxiaI->OpticaI nie różni się wiele od przedstawionego wcześniej konwertera Opńcal->CoaxiaL Przeznaczenie tego konwertera jest takie samo, z tą różnicą, że zamienia on sygnał z kabla koncentrycznego na optyczny.
Rys. 5. Rozmieszczenie elementów na płytce konwertera
Rys. ó. Widok zmontowanego konwertera
Działanie konwertera Coaxial ->OpticaI polega na przekształcaniu sygnałów zgodnych z coaxial na sygnały akceptowane przez nadajnik optyczny.
Schemat elektryczny konwertera Coaxial->Optical zamieszczono na rys. 7. Poziomy sygnału pochodzące z wejścia coaxial (Z2) zamieniane są w obwodzie z elementami C4, R4, R5 oraz inwertery U3E i U3D na akceptowane przez nadajnik optyczny U2. In-werter U3E wraz z R3 jest wzmacniaczem, natomiast U3D poprawia parametry wzmocnionego sygnału podawanego na nadajnik U2. Rezystor Rl ogranicza prąd płynący
WYKAZ ELEMENTÓW
Konwerter S/PDIF Opticat- >Coaxiat Rezystory
Rl: R2: R3: Kondensatory
Cl: 100^F/lóV
C2, C3, C4: lOOnF
C5: 47^F/1ÓV
Có: 150nF
Półprzewodniki
Ul: 7SL05
U2: TORX173
U3: 74HC04
Dl: LED 3mm zielona
Bl: mostek prostowniczy 1A
okrqgły
Różne
LI: dławik 47^H
Zl: złqcze zasilajqce do druku
Z2: gniazdo CINCH do druku
Obudowa Z24A
Elektronika Praktyczna 6/2003
"Przedłużacz" do cyfrowego toru audio
OVCC
Rys. 7. Schemat elektryczny konwertera kabel koncentryczny-optyczny
przez diodę zawartą w nadajniku U2. Mostek Bl prostuje napięcie zasilające, natomiast stabilizator Ul utrzymuje je na poziomie 5 V. Rezystor R2 ogranicza prąd diody Dl, która jest wskaźnikiem napięcia zasilania. Pozostałe elementy filtrują napięcie zasilające konwerter.
Na rys. 8 przedstawiono schemat montażowy płytki drukowanej. Montaż będzie przebiegał podobnie jak konwertera Optical->CoaxiaL Zalecany zasilacz oraz
przebieg montażu układu w obudowie Z24A (fot. 9) jest taki sam jak zalecany dla poprzedniego konwertera. Także dla tego konwertera obudowę proponuję oznaczyć naklejkami informującymi o wyjściach oraz wejściach dołączanych przewodów. Marcin Wiązania
Rys. S. Rozmieszczenie elementów na płytce konwertera
Rys. 9. Widok zmontowanego konwertera
WYKAZ ELEMENTÓW
Konwerter S/PD1F Coaxiat -> Optic at Rezystory
Rl:
R2:
R3: 22kft
R4: 75O.
R5: lOOft
Kondensatory
Cl: 100^F/lóV
C2, C3: lOOnF
C4: lOnF
C5: 47^F/1ÓV
Półprzewodniki
Ul: 7SL05
U2: TOTX173
U3: 74HC04
Dl: LED 3mm zielona
Bl: mostek prostowniczy 1A
okrqgły
Różne
Zl: złqcze zasilajqce do druku
Z2; gniazdo CINCH do druku
Obudowa Z24A
Wzory płytek drukowanych w formacie PDF są dostępne w Jnternecie pod adresem: http://www.ep.cont.pl/ ?pdf/czerwiecQ3htm oraz na płycie CD-EP7/2003B w katalogu PCB.
40
Elektronika Praktyczna 6/2003
PROJEKTY
"Klocki" RS485, część 1
Magistrala i interfejs RS485
cieszą się niesłabnącą
popularnością, a jak wykazują
częste pytania docierające do
redakcji, jest ciągle zbyt mało
informacji na ich temat.
W związku z tym
przedstawiamy "klocki" RS485,
dzięki którym - na
interesujących przykładach -
łatwo będzie poznać
i zrozumieć prawa rządzące
RS485.
Rekomendacje: zabawę
w "klocki" RS485 polecamy
szczególnie tym Czytelnikom,
którzy zajmują się
przesyłaniem danych na duże
odległości z relatywnie dużą
prędkością.
"KlockrRS485tO:
- 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.
Tab. 1. Adresy przyjęte dla modułów z interfejsem RS485
Lp. Rodzaj modifu utykcrawczego Pizyptsarry adres (znak ASCI)
1 Karta przekaźników 1
2 Karta triaków 2
3 Karta wyjść cyfrowych - stan aktywny GND(0,5A) 3
4 Karta wyjść cyfrowych - stan aktywny VCC(0,5A) 4
5 Karta wejść cyfrowych 5
6 Karta wejść analogowych 6
7 Wyświetlacz LED (cztero cyfrowy) 7
B Wyświetlacz LCD (2x16 znaków) S
W artykule przedstawiamy system wymiany danych pomiędzy różnorodnymi urządzeniami (m.in. karta przekaźników, moduły wyświetlaczy, karty wejść analogowych i cyfrowych itp.) wyposażonymi w interfejs RS485. Cały system w podstawowej wersji składa się z jednego modułu sterującego i ośmiu modułów wykonawczych (schemat blokowy przedstawiono na rys. 1) . System przeznaczony jest głównie do sterowania za pomocą komputera wyposażonego w port szeregowy, ale można również zastosować mikiokontioler. Komunikacja pomiędzy modułami odbywa się w systemie RS485, co umożliwia zbudowanie sieci o maksymalnej długości do 1200 m. Zmiana systemu transmisji jest konieczna, gdyż przesył danych w standardzie RS232 jest możliwy na odległość zaledwie kilkunastu metrów, co ograniczałoby rozmieszczenie modułów tylko do jednego pomieszczenia.
Komunikacja pomiędzy komputerem nadrzędnym odbywa się z prędkością 1200 b w trybie hałf-duplex, co oznacza, że w tym samym czasie komunikacja może być przeprowadzana tylko w jedną stronę. W przestawionym systemie taki sposób komunikacji jest zupełnie wystarczający, gdyż wszystkie moduły w czasie spoczynku znajdują się w trybie odbioru danych i dopiero podanie poprawnej komendy dla konkretnego modułu wykonawczego przez moduł sterujący może uaktywnić wybrany moduł do nadawania, co
eliminuje możliwość powstania konfliktów w przypadku jednoczesnego wysyłania danych przez kilka modułów.
Wszystkie moduły są podłączone do wspólnej magistrali dwuprzewodowej, a sterowanie odbywa się poprzez podanie przez moduł nadrzędny znaku początku transmisji oraz adresu modułu, do którego będą wysyłane dane. Każdy moduł posiada inny adres i jego podanie powoduje, że pozostałe moduły ignorują pojawiające się dane na linii transmisyjnej.
System zdalnego sterowania w podstawowej konfiguracji składa się z ośmiu modułów wykonawczych: ośmiobitowej karty przekaźników, ośmiobitowej karty tiiaków, ośmiobitowej karty wyjść cyfrowych (aktywne GND), ośmiobitowej karty wyjść cyfrowych (aktywne VCC), ośmiobitowej karty wejść cyfrowych, ośmiowejściowej karty wejść analogowych, cztero cyfr owego wyświetlacza LED, 32-znakowe-go wyświetlacza LCD.
Wybór konkretnego modułu wykonawczego dokonuje się przez podanie jego adresu. W zaprogramowanych modułach są to adresy odpowiadające cyfrom 1...8. W tab. 1 są przedstawione numery przypisane do odpowiednich modułów.
System sterowania może zawierać od jednego do 31 modułów wykonawczych. W przypadku dołączenia kilku takich samych modułów powstałby konflikt, gdyż wszystkie reagowałyby jednocześnie (mają jednakowy adres). Aby uniknąć takiej sytuacji i uzyskać
Elektronika Praktyczna 6/2003
41
"Klocki" RS485
R8232
RS4S5

KONWERTER RS232-RS485 KARTA PRZEKAŹNIKÓW ADRES-1 CYFROWE WEJŚCIA STAN AKTYWNY "O" ADRES-3


WYŚWIETLACZ LCD 2x16 ADRES-8 WYŚWIETLACZ LED 4x7 SEG. ADRES-7 CYFROWE WEJŚCIA ADRES-5

ANALOGOWE WEJŚCIA ADRES-6 CYFROWE WEJŚCIA STAN AKTYWNY "1" ADRES-4 KARTA TRIAKÓW ADRES-2
Rys. 1. Schemat blokowy systemu zdalnego sterowania
możliwość dołączenia dowolnej liczby takich samych modułów, wszystkie moduły mają możliwość zmiany adresu. Zmiany adresu dokonuje się poprzez komputer sterujący, a adres ten może być dowolnym znakiem ASCII.
Transmisję danych oparto na standardowych znakach ASCII, przez co do obsługi systemu nie trzeba stosować dodatkowego oprogramowania. Do komunikacji wystarczy dowolny komputer wyposażony w port szeregowy, jako aplikację sterującą można zastosować dowolny program terminalowy (Terminal dla DOS, HyperTermi-nal pod Windows lub inny). Przedstawiony opis sposobu komunikacji może być wykorzystany do stworzenia własnej aplikacji sterującej modułami. Transmisja nie
RS232
CON2 DBS
jest zabezpieczona przed błędami, gdyż ilość transmitowanych danych nie jest wielka, co przy wolnej transmisji dodatkowo ogranicza możliwość powstania błędów. Aby mieć pewność, że wysłane dane dotarły odpowiednio do układów wykonawczych, każdy z nich umożliwia odczyt wcześniej zapisanych danych, dzięki czemu jest możliwa ich weryfikacja przez komputer sterujący. Ponadto w każdej chwili można sprawdzić stan wejść lub wyjść dowolnego modułu i upewnić się, że wydana komenda została wykonana.
Konwerter RS232<->RS485 AVT-530
Konwerter RS232<->RS485 służy do zamiany poziomów napięć odpowiadających odpowiednim
standardom. W konwerterze tym napięcia charakterystyczne dla RS232 (-3...-15V dla zera logicznego i +3...+15V dla jedynki logicznej) są zamieniane na poziomy mieszczące się w standardzie TTL (O...O,8V dla zera logicznego i 2,4...5V dla jedynki logicznej). Następnie poziomy TTL są zamieniane na poziomy akceptowane przez RS485. W systemie tym stan logiczny jest określany na podstawie napięcia różnicowego pomiędzy liniami A i B. Jeśli napięcie na linii A jest większe od napięcia na linii B o co najmniej 0,2 V, to jest to stan logicznej jedynki, jeśli natomiast na linii B jest napięcie większe o co najmniej 0,2 V niż na linii A, to jest to stan zera logicznego. Konwerter dodatkowo posiada automatyczny przełącznik pomiędzy nadawaniem i odbiorem, który przełącza konwerter w tryb nadawania tylko na czas nadawania znaku przez komputer, a następnie przełącza go w tryb odbioru, aby nie zajmował niepotrzebnie linii komunikacyjnych.
Opis układu
Schemat elektryczny konwertera RS232<->RS485 przedstawiono na rys. 2. Ze względu na sposób transmisji zgodnej czasowo z interfejsem RS2 32, przedstawiony konwerter stanowi układ dopasowujący poziomy napięć odpowiadające odpowiednim rodzajom transmisji. Do zamiany poziomów
RS485
Rys. 2. Schemat elektryczny
42
Elektronika Praktyczna 6/2003
"Klocki" RS485
Rys. 3. Budowa wewnętrzna układu MAX485
napięć od strony portu szeregowego RS232 zastosowano układ USl. Zawiera on przetwornicę napięcia, zamieniającą wejściowe poziomy napięcia w standardzie TTL (0...5 V) na napięcia wymagane przez port szeregowy: -10 V i +10 V. Dodatkowo sygnały podawane ze złącza komputera (-15 V, +15 V są przetwarzane na poziomy TTL (0/5 V). Po przetworzeniu napięć, na wyjściu układu USl otrzymuje się poziomy TTL, które następnie należy przetworzyć na poziomy standardu RS485 (UA+UB>0,2 V, UA-UB>0,2 V). Do tego celu zastosowano specjalizowany układ MAX485. Jego budowę wewnętrzną przedstawiono na rys. 3. Układ ten jest przystosowany do pracy w trybie half-duplex. Zawiera on w swojej strukturze odbiornik i nadajnik linii. Wyjście nadajnika jest połączone z wypro-
?
?
Rys. 4. Rozmieszczenie elementów na płytce konwertera RS232<->RS485
wadzeniami układu scalonego i jednocześnie z wejściem odbiornika linii, przez co kierunek transmisji jest określany przez stan wejść DE - dla nadajnika i !RE - dla odbiornika. W przedstawionym układzie wejścia te są połączone ze sobą, co powoduje, że podanie stanu niskiego przełącza układ MAX485 w tryb odbioru, a podanie stanu wysokiego umożliwia nadawanie. Aby nie "blokować" linii, w czasie spoczynku, gdy wszystkie układy dołączone do linii są w trybie odbioru - panują na niej stany nieustalone, które mogą być błędnie interpretowane przez odbiorniki. Aby zapobiec takiej sytuacji, linia przesyłowa jest wstępnie ustawiana w stan jedynki logicznej przez rezystory R2...R4.
Aby nie było potrzebne oprogramowanie sterujące trybem pracy układu MAX485, zastosowano automatyczny przełącznik trybu pracy. Przełącznik ten został zrealizowany na układzie NE555 (US4). Pracuje on w trybie przerzutnika monostabilnego, wyzwalanego sygnałem danych odbieranych z portu szeregowego. Pojawienie się stanu niskiego na wyjściu RlOUT układu USl (np. bit startu) powoduje wyzwolenie monowibrato-ra. Dioda D2 powoduje szybsze rozładowanie pojemności kondensatora C5 i natychmiastową reakcję układu NE555 na sygnał wejściowy. W momencie wykrycia bitu startu, na wyjściu OUT układu US4 pojawia się stan wysoki, który przełącza układ MAX485 w tryb nadawania i umożliwia wysłanie danych. Po wysłaniu odpowiedniego bitu następuje automatyczne przełączenie układu MAX485 w tryb odbioru. Takie sterowanie trybem pracy umożliwia zwolnienie linii już w około 40 |is po zakończeniu wysyłania danych, co jest istotne w przypadku odczytu danych z dołączonych modułów. Po wydaniu komendy odczytu do modułu wykonawczego odpowiedź jest wysyłana przez niego już po około 100 |is.
Do zasilania zastosowano monolityczny stabilizator typu LM7805. Kondensatory C1...C4 filtrują napięcie zasilania, a dioda Dl zapobiega uszkodzeniu US3 w przypadku podłączenia napięcia o odwrotnej polaryzacji.
WYKAZ ELEMENTÓW
Rezystory
Rl: 3,9kQ
R2, R4: 510O
R3: 120O
Kondensatory
Cl, C3: 100^F/16V
C2, C4, C12: lOOnF
C5, Có: lOnF
C7...C10: 10mF/16V
Cli: 47mF/16V
Półprzewodniki
Dl: 1N4007
D2: BAT43
USl: MAX232
US2: MAX485
US3: LM7805
US4: NE555
Różne
CON1: ARK2(5mm)
CON2: DB9 żeńskie do druku
kątowe
CON3: ARK2(5mm)
Podstawki DIP8-2 szt., DIP1Ó-1 szt.
Montaż
Montaż należy rozpocząć od elementów o najmniejszych gabarytach, czyli od rezystorów, następnie diod. W kolejnej fazie należy wlutować podstawki pod układy scalone, następnie kondensatory, stabilizator napięcia i złącza CON1...CON3. Płytka konwertera nie wymaga uruchamiania, a prawidłowość jej działania będzie można sprawdzić dopiero po dołączeniu modułu wykonawczego. Należy jedynie przygotować zasilacz o napięciu wyjściowym równym około 9 V i kabel zakończony złączami typu DB9. Kabel musi być zakończony z jednej strony złączem żeńskim, które należy połączyć ze złączem portu szeregowego w komputerze, drugi koniec kabla ze złączem typu męskiego należy połączyć ze złączem CON2 na płytce konwertera. Do złącza CONl można podłączyć napięcie zasilania lub wykonać to po połączeniu konwertera z modułem wykonawczym. 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/ ?pdflczerwiecO3.htm oraz na płycie CD-EP7/2003B w katalogu PCB.
Elektronika Praktyczna 6/2003
43
PROJEKTY
Girder - współpraca z nadajnikiem RC5 AVT-5104
'*#Ś
V
W EP3/2003
przedstawiliśmy projekt
uniwersalnego nadajnika
zdalnego sterowania
pracującego w systemach RC5
i SIRC, O tym, jak można
go "sprząc" z popularnym
Girderem, piszemy na żądanie
Czytelników, którzy dostrzegli
nowe pola aplikacyjne dla
AVT-5104.
Rekomendacje: ańykui
polecamy elektronikom-fanom
PC, którzy chcą zwiększyć
możliwości współpracy
komputera z domowymi
urządzeniami multimedialnymi
i sprzętem A V.
Nadajnik AVT-5104 (fot. 1) współpracuje z komputerem poprzez port szeregowy. Do sterowania nim można wykorzystać dowolny program terminalowy -na przykład HyperTerminal, będący standardowym wyposażeniem Windows. Sterowanie nadajnikiem za pomocą tego programu jest utrudnione, gdyż w celu wysłania jednego kodu należy wpisać z klawiatury w zależności od systemu od pięciu do siedmiu znaków. Dlatego taki sposób sterowania ogranicza się do testowania urządzeń pracujących w tych systemach niż sterowania nimi za pomocą klawiatury komputera. Można wprawdzie stworzyć własną aplikację sterującą nadajnikiem, lecz wymaga to umiejętności tworzenia oprogramowania. Na szczęście można znaleźć rozwiązanie tego problemu i uzyskać swobodę sterowania bez umiejętności programowania. Rozwiązaniem jest wykorzystanie gotowych programów, głównie umożliwiających zdalną kontrolę nad komputerem. Przykładem takiego programu jest program Girder.
Program ten w podstawowej konfiguracji służy do zdalnego sterowania komputerem. Za pomocą tego programu można, na przykład dowolnym pilotem, uruchomić każdą aplikację systemu Windows. Dodatkowo po uruchomieniu danego programu można zdalnie zmieniać jego parametry. Funkcje te są przydatne szczególnie przy sterowaniu programami służącymi do odtwarzania plików audio. Można wtedy używać komputera jako odtwarzacza CD lub MP3, kontrolując siłę głosu czy wybierając numer piosenki za pomocą pilota.
Przedstawione powyżej funkcje to tylko niewielka część możliwości programu Girder. Możliwości programu mogą być zwięk-
szane poprzez instalowanie plików plug-in, dzięki którym możliwe jest sterowanie programem poprzez klawiaturę czy port szeregowy.
Choć Girder służy głównie do zdalnej obsługi komputera, to dzięki wspomnianym "wtyczkom" programowym możliwe jest także sterowanie komputerem dołączonych do niego urządzeń. Dzięki temu za jego pomocą można w prosty sposób wysyłać odpowiednie komendy do nadajnika RC5/SIRC. Dodatkowo program można tak skonfigurować, że po wysłaniu komendy na monitorze pojawi się wpisany wcześniej komunikat, odpowiadający wysłanej komendzie.
Jak widać, możliwości tego programu są ogromne i mogą być do w olnie p o wi ęks z ane p opr zez stosowanie odpowiednich "wtyczek", a liczba i rodzaj pełnionych funkcji zależy od stworzonych algorytmów. W zależności od wymaganego sposobu działania wpisywanie własnych funkcji może być czasochłonne, gdyż każde polecenie trzeba niezależnie skonfigurować. To jednak jest zaletą tego programu, gdyż każde polecenie można dostosować do indywidualnych potrzeb. Najważniejszą cechą Girdera jest fakt, że jest on udostępniany bezpłatnie.
Konfiguracja "wtyczek"
Ponieważ sam program nie umożliwia wykonywania żadnych funkcji sterujących, dlatego
Fot. 1. Wyglqd nadajnika AVT-5104
Elektronika Praktyczna 6/2003
45
Girder - współpraca z nadajnikiem RC5 AYT-5104


Ś I1
1 sJ

I 1
Rys. 2. Wyglqd okna Seffings
wszystkich reakcji na naciskane klawisze trzeba go nauczyć. Wcześniej jednak do katalogu, w którym znajdują się wszystkie pluginy należy skopiować dodatkowe "wtyczki" potrzebne do sterowania nadajnikiem zdalnego sterowania. Domyślnie katalog ten znajduje się na dysku - C:\Pro-gram files\girder32\plugins. Niezbędne "wtyczki" znajdują się na stronie domowej Girdera: http:// www.girder.nl/plugins.php. Do współpracy z nadajnikiem będą potrzebne następujące "wtyczki":
- XP_OSD - umożliwia wyświetlanie komunikatów tekstowych na eki ani e m onitor a,
- Serial port - odpowiada za wysyłanie danych poprzez port szeregowy, dodatkowo za jej pomocą można odczytywać dane z portu szeregowego, lecz w tym zastosowaniu funkcja ta nie jest wykorzystywana,
- Keyboard Ex - służy do odczytywania komend wydawanych z klawiatury komputera.
Tab. 1. Przyporządkowanie klawiszy klawiatury do wykonywanych poleceń
Klawisze Koci RC5 Kcd SIRC Dziabnie
Alt+1 R1001 S01000 Kanał 1
Alt+2 R1002 S01001 Kanał 2
Alt+3 R1003 S01002 Kanał 3
Alt+4 R1004 S01003 Kanał 4
Alt+5 R1005 S01004 Kanał 5
Alt+6 R1006 S01005 Kanał 6
Alt+7 R1007 S01006 Kanał 7
Alt+S R100S S01007 Kanał S
Alt+9 R1009 S0100S Kanał 9
Alt+0 R1000 S01009 Kanał 0
Alt+ł R1032 S01016 Pro gram+
Altł- R1033 S01017 Pro gram-
AIU* R1016 S0101S Głost
Altł/ R1017 S01019 Głos-
Altł, R1012 S01047 Włącz/Wyłącz
Po skopiowaniu potrzebnych "wtyczek" można przejść do konfiguracji programu. W tym celu należy wybrać menu ustawienia: File->Setńngs (wygląd okna przedstawiono na rys. 2), a następnie User interface. W pozycji Langua-ge wybieramy język polski i zatwierdzamy Apply. Od tej chwili wszystkie teksty będą wyświetlane po polsku, co ułatwi dalszą zm ianę p ar am e tiów .
Teraz przechodzimy do instalowania potrzebnych "wtyczek", wybierając menu Wtyczki. Ze wszystkich dostępnych wtyczek należy wybrać trzy: XP_OSD, Keyboard driver oraz Generic Serial Support i zaznaczyć opcję Automatycznie włącz urządzenie wejściowe (rys. 3). Pierwsze dwie "wtyczki" nie wymagają żadnych dodatkowych ustawień, dlatego należy je tylko zaznaczyć. "Wtyczka" obsługująca port szeregowy wymaga ustawienia dodatkowych parametrów, dlatego po jej zaznaczeniu należy wybrać opcję Ustawienia. W nowo otwartym oknie należy wybrać New i wtedy zostanie otwarte okno służące do konfiguracji portu szeregowego. Wszystkie parametry należy ustawić tak, jak pokazano na rys. 4.
Po ustawieniu odpowiednich wartości należy jeszcze wybrać w menu Message Definińons opcję Transmitt. Wtedy zostanie otwarte kolejne okno umożliwiające ustawienie dodatkowych parametrów transmisji szeregowej (rys. 5). W oknie tym trzeba wybrać tylko opcję Terminator, a jako parametr wpisać wartość Od. Wpis ten spowoduje, że na zakończenie każdej transmisji poprzez port szeregowy oprócz zadeklarowanych danych dodatkowo zostanie wysłana wartość OxOD, co odpowiada naciśnięciu klawisza Enter. Wartość ta jest interpretowana przez nadajnik zdalnego sterowania jako zatwierdzenie wcześniej podanych wartości komendy, dlatego ułatwi to późniejszy etap programowania komend. Powyższe ustawienia można wyeksportować do pliku, w którym zostaną zapisane wszystkie parametry transmisji i w przypadku dokonania zmian będzie można przywrócić ustawione parametry, wczytując ten plik. Po ustawieniu parametrów należy zamknąć okna usta-
Rys. 3. Wyglqd okna instalowania wtyczek
Rys. 4. Okno konfiguracji parametrów transmisji szeregowej
wień poprzez zatwierdzanie wszystkich ustawień i można przejść do trybu programowania poleceń.
Programowanie własnych poleceń
Jako przykład zostanie przedstawiona budowa aplikacji umożliwiającej sterowanie odbiornikiem telewizyjnym firmy Sony, którego adres w systemie zdalnego sterowania SIRC jest równy 01, oraz tunerem satelitarnym pracującym w systemie RC5 o adresie urządzenia równym 10. Budowana aplikacja będzie umożliwiała wysyłanie kodów klawiszy numerycznych 0...9, Program+, Program-, Głos+, Głos- oraz włączanie. W tab. 1 przedstawiono spis klawiszy klawiatury komputera przyporządkowanych pełnionej funkcji, kody wysyłane do nadajnika zdalnego sterowania RC5/ SIRC oraz odpowiedź urządzenia na wysłany kod. Do realizacji wszystkich funkcji została wykorzystana część numeryczna klawiatury komputera, jednak konfiguracja klawiszy może być dowolnie zmieniana według własnych potrzeb. Jako klawisze sterujące mogą być również użyte klawisze
46
Elektronika Praktyczna 6/2003
Girder - współpraca z nadajnikiem RC5 AYT-5104
TiamniH fclntflt* iMIn
Cnrifc
Rys. 5. Wyglqd okna dodatkowych opcji transmisji szeregowej
funkcyjne F1...F12 oraz inne klawisze dostępne w przypadku klawiatur multimedialnych.
Aby rozpocząć budowę oprogramowania, należy przejść do głównego okienka programu i w menu Plik wybrać opcję Nowy, a następnie Zapisz jako..., podając nazwę pliku, w którym zostaną zapisane wszystkie parametry programowanych funkcji (na przykład Nadajnik RC5_SIRC) i można przejść do składania "klocków".
Na rys. 6 przedstawiono przyporządkowanie wszystkich poleceń. Menu dodawania funkcji otwiera się po kliknięciu prawym klawiszem myszki na białym polu. W menu tym znajduje się kilkanaście działań do wykonania, jednak na tym etapie tworzenia wykorzystywana będzie tylko druga grupa. Na początku należy utworzyć trzy nowe aplikacje funkcją Dodaj aplikację i odpowiednio je nazwać (np. tak jak na rysunku). W każdej aplikacji należy utworzyć makro poleceniem Dodaj makro. Liczba makr jest uzależniona od liczby wykonywanych funkcji przez nadajnik zdalnego sterowania. W każdym makro zawierają się już konkretne działania, które będą wykonane, jeśli zostanie odebrany kod zdarzenia zgodny z wcześniej zaprogramowanym.
Proces ustawiania parametrów rozpoczniemy od aplikacji Tuner_RC5. W aplikacji tej należy utworzyć odpowiednią liczbę makr, nazywając je tak jak na rys. 6. W pierwszym makro - Progi -tworzymy dwa polecenia (Dodaj polecenie) oraz jeden kod zdarzenia. Następnie zaznaczamy kod zdarzenia i naciskamy polecenie
Wczytaj kod. Po tym działaniu program oczekuje na naciśnięcie klawisza klawiatury, którego późniejsze naciśnięcie spowoduje wysłanie nadajnikiem zdalnego sterowania kodu o wartości "1", zgodnie z tab. 1. W tym przykładzie są to klawisze AIt+1.
Teraz należy ustawić parametry poleceń. Zaczynamy od polecenia o nazwie "1", które służy do wysłania poprzez port szeregowy odpowiedniej sekwencji danych, aby tuner odebrał je jako naciśnięcie klawisza o numerze "1" na klawiaturze standardowego pilota. Po zaznaczeniu tego polecenia będzie możliwy wybór rodzaju działania. Dla tego polecenia wybieramy menu Wtyczki, następnie zaznaczamy "wtyczkę" Generic Serial Suport i wybieramy opcje ustawień. Wtedy zostanie otwarte okno przedstawione na rys. 7, w którym należy wybrać opcję Send data, a jako parametr wpisać kod, jaki ma być wysłany do nadajnika RC5/SIRC poprzez port szeregowy. Dla ustawienia kanału numer 1, należy wpisać sekwencję rlOOl (zgodnie z tab. 1). Nadajnik zdalnego sterowania wymaga potwierdzenia klawiszem Enter podanej sekwencji, ale potwierdzenie jest wykonywane automatycznie, gdyż zostało wcześniej wpisane przy ustawianiu parametrów portu szeregowego. Teraz można zamknąć to okno, zatwierdzając dane przyciskiem OK. Na tym etapie zostało stworzone polecenie, które po naciśnięciu przycisków AIt+1 wysyła poprzez port szeregowy sekwencję danych rlOOl+enter. Aby wyświetlić na ekranie komputera informację o wysłanej komendzie,
należy przejść do właściwości polecenia Wyświetl 1. Ustawianie parametrów tego polecenia wykonuje się w analogiczny sposób, wybierając w opcjach "wtyczkę" XP OSD i wchodząc w opcję Ustawienia. Widok okna konfiguracyj-nego wyświetlanych komunikatów przedstawiono na rys. 8. W oknie OSD Text należy wpisać tekst, który ma być wyświetlony po wysłaniu komendy przez nadajnik zdalnego sterowania, w tym przypadku jest to cyfra "1". 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. Dodatkowo można ustawić przezroczystość wyświetlanego komunikatu. W oknie Si-ze&Position (rys. 9) można ustalić rozmiar okna wyświetlanych komunikatów oraz ich pozycję na ekranie. Pozycję można ustalić na trzy sposoby:
- wybierając z menu jedną ze skrajnych pozycji ekranu lub środek,
- poprzez podanie współrzędnych na osi X i Y,
- poprzez przeciągnięcie myszką okna komunikatu w żądane miejsce ekranu.
W okienku Background Image można wczytać plik obrazu, który będzie tłem wyświetlanych komunikatów. Okno Animańon umożliwia ustalenie efektów przy otwieraniu i zamykaniu okna wyświetlanych komunikatów.
Po ustawieniu wszystkich parametrów zostało stworzone makro, które w wyniku naciśnięcia klawiszy AIt+1 spowoduje wysłanie danych przez port szeregowy do nadajnika RC5/SIRC, który z kolei wyśle odpowiednią komendę świetlną do tunera, aby
Rys. ó. Struktura tworzonych poleceń
Rys. 7. Okno wpisywania komendy wysyłanej przez port szeregowy
Elektronika Praktyczna 6/2003
47
Girder - współpraca z nadajnikiem RC5 AYT-5104
:.......\
? TllIłllllfcJBIllI
Rys. S. Okno ustawiania parametrów wyświetlanych komunikatów
ten ustawił kanał o numerze "1". Równocześnie na ekranie monitora zostanie wyświetlony komunikat w postaci cyfry "1" informujący o tym fakcie (rys. 10).
Dla pozostałych programów i funkcji trzeba powtórzyć powyższe kroki, wpisując dane odczytywane z tab. 1. W celu sterowania odbiornikiem telewizyjnym w systemie SIRC również należy wprowadzić wszystkie komendy, zmieniając parametry wysyłanych danych przez port szeregowy, zgodnie z tab. 1. W ten sposób zastaną stworzone dwie grupy służące do sterowania tunerem w systemie RC5 i telewizorem w systemie SIRC. W obu grupach użyto tych samych klawiszy klawiatury, przez co po naciśnięciu
Rys, 9. Okno konfiguracji pozycji wyświetlanych komunikatów
klawisza dane będą wysyłane najpierw w systemie RC5, a następnie SIRC. Aby zapobiec takiej sytuacji, poszczególne grupy można aktywować lub dezaktywować. Aktywowanie grupy odbywa się poprzez jej zaznaczenie myszką w głównym oknie programu (rys. 6) i zaznaczenie opcji Włączony. Wyłączanie danej grupy wykonuje się w analogiczny sposób.
Przełączając grupy, można wysyłać dane niezależnie do tunera lub telewizora za pomocą tych samych klawiszy. Taki sposób przełączania jest niewygodny, gdyż przy każdej zmianie systemu nadawania trzeba uruchamiać okno programu Girder. Aby zautomatyzować przełączanie pomiędzy grupami, należy stworzyć dodatkową aplikację zarządzającą grupami.
Zarządzanie grupami
Do zarządzanie grupami została stworzona aplikacja o nazwie Sterowanie_IR. Aplikacja ta umożliwia za pomocą jednego klawisza wykonać następujące działania: uaktywnić nadawanie w systemie RC5 (Tuner_RC5), uaktywnić nadawanie w systemie SIRC (Telewizor_SIRC) oraz całkowicie wyłączyć jakiekolwiek nadawanie. Komendy zawarte w tej aplikacji przedstawiono na rys. 11. Wszystkie polecenia podzielone są na trzy główne komendy, w każdej z nich zgrupowane są po trzy podstawowe polecenia. Pierwsza komenda główna służy do uaktywnienia grupy Tuner_RC5 umożliwiającej sterowanie tunerem satelitarnym i jednoczesną dezaktywację grupy Telewizor_SIRG, aby w danym czasie była aktywna tylko jedna grupa. Dodatkowo na ekranie zostanie wyświet- ^'r*ł lony komunikat, że system pracuje jako nadajnik RC5. W skład tej komendy wchodzą polecenia: 1 _Wyś-wietl_R C5, 1 _SIR C_ OFF, 1_RC5_ON.
Druga główna komenda służy do wyłączenia grupy Tuner_RC5, włączenia grupy Telewizor_SIRC i wyświetlenia informacji o nadawaniu w systemie SIRC. W skład tej komendy wchodzą polecenia: 2_Wyswietl_SIRC, 2_RC5_OFF, 2_SIRC_ON.
im ekranie
Rys. 10. Przykład wyświetlania na ekranie monitora tekstu przypisanego poleceniu
Ostatnią komendą jest komenda wyłączająca obydwie grupy, przez co niezależnie od stanu klawiatury komputera żadne dane nie zostaną wysłane do nadajnika RC5/SIRC. W skład tej komendy wchodzą polecenia: 3 _ Wyświetl _OFF, 3_SIRC_OFF, 3_RC5_OFF.
Poszczególne komendy są kon-figurowane w analogiczny sposób, jak to miało miejsce w przypadku komend dla grupy Tuner_RC5. Odpowiednio dla komendy 1 _Wyświetl_RC5 należy wybrać "wtyczkę" XP OSD i wpisać komunikat, jaki ma być wyświetlony. W tym przypadku będzie to tekst RC5. Dla komendy 2_Wy-swietl_SIRC tekst będzie miał postać SIRC, a dla komendy 3_Wy-świetl_OFF - OFF.
Polecenie 1_SIRC_OFF służy do dezaktywacji grupy Telewi-zor_SIRC, dlatego po jego zaznaczeniu zamiast okna Wtyczki należy wybrać okno Girder (rys. 12). Z menu okna Girder należy wybrać opcję Wyłącz grupę, a następnie Przeglądaj. Wtedy zostanie wyświetlone nowe okno, w którym można wybrać grupę, która będzie wyłączana tym poleceniem - w tym przypadku jest to grupa Telewizor_SIRG. Następnie należy zatwierdzić wybór poleceniem Zastosuj. Dla kolejnego polecenia - 1_RC5_ON procedurę należy wykonać w taki sam spo-

Rys. 11. Aplikacja służqca do zarzqdzania grupami
48
Elektronika Praktyczna 6/2003
Girder - współpraca z nadajnikiem RC5 AYT-5104
lwu*,**


Rys. 12. Wyglqd głównego okna Girdera z przeglqdarkq poleceń
sób, z tą różnicą, źe w oknie Girder należy wybrać opcję Włącz grupę i wskazać grupę Tuner_RC5. Dla pozostałych poleceń należy wykonać takie same operacje, włączając lub wyłączając wskazaną w nazwie polecenia grupę.
Po wskazaniu działań wykonywanych przez poszczególne polecenia należy wczytać kod zdarzenia. Kod ten jest taki sam dla wszystkich poleceń całej aplikacji, dla tego przykładu jest to klawisz klawiatury o nazwie PausefBreak. W podstawowej konfiguracji naciśnięcie tego klawisza spowoduje wykonanie wszystkich poleceń zawartych w makro ON_OFF, ale w przedstawionym przykładzie polecenia mają być wykonywane kolejno, po każdym naciśnięciu klawisza. Po pierwszym naciśnięciu powinny być wykonane pierwsze trzy polecenia (włączenie grupy Tuner_RC5), po drugim naciśnięciu następne trzy (włączenie grupy Telewizor_SIRC), a po trzecim naciśnięciu ostatnie trzy
Rys. 13. Okno konfiguracji licznika stanów
(wyłączenie obydwu grup). Do realizacji kilku różnych poleceń za pomocą jednego klawisza trzeba wykorzystać funkcję Ustawienia stanów. Funkcja ta umożliwia uruchomienie licznika, który będzie zliczał ilość naciśnięć tego klawisza i w zależności od jego wartości będą wykonywane odpowiednie polecenia. Ustawienia stanów trzeba wykonać dla wszystkich poleceń tego makra. Menu ustawiania stanów otwiera się poprzez kliknięcie prawym klawiszem myszki na wybranym poleceniu, jest to to samo menu, które było używane do tworzenia nowych poleceń, lecz tym razem należy wybrać opcję Ustawiania stanów. Nowo otwarte okno pozwoli na ustalenie wartości licznika stanów odpowiednio dla każdego polecenia, widok tego okienka przedstawiono na rys. 13. Dla wszystkich poleceń licznik stanów należy ustawić na wartość równą trzy, ponieważ mają być rozróżniane trzy stany w zależności od liczby naciśnięć klawisza PausefBreak. O tym, które polecenie b ę dzi e wy konane, decyduje wartość stanu początkowego. Dla poleceń: l_WyświetI_RC5, l_SIRC_OFFi l_RC5_0N wartość początkową należy ustawić na "1". Dla poleceń: 2_Wyświetl_-SIRC, 2_RC5_OFF, 2_SIRC_ON stan początkowy wynosi "2". Dla poleceń: 3_Wyświetl_-OFF, 3_SIRC_OFF, 3_RC5_OFF stan ten należy
W ten sposób została stworzona funkcja, która po pierwszym naciśnięciu klawisza PausefBreak uaktywni grupę Tuner_RC5 i wyświetli komunikat RC5, po drugim naciśnięciu klawisza zostanie uaktywniona grupa Telewizor_SIR C i wyświetli komunikat SIRC. Naciśnięcie klawisza po raz trzeci spowoduje wyłączenie obydwu grup i nie będzie można wysłać żadnego kodu. Ponowne naciśnięcie klawisza rozpocznie procedurę od początku, aktywując grupę Tuner_RC5.
Po zaprogramowaniu parametrów wszystkich komend należy jeszcze przeprowadzić końcową konfigurację programu, aby po uruchomieniu systemu Windows był gotowy do pracy. W tym celu należy otworzyć okno: Plik->Usta-wienia-> Ogólny (rys. 14). W okienku tym należy zaznaczyć opcję Wczytaj przy starcie i podać ścieżkę dostępu do stworzonego pliku Nadajnik_RC5_SIRC.GML spowoduje to, że podczas uruchamiania program Girder będzie automatycznie wczytywał plik z zapisanymi parametrami umożliwiającymi sterowanie nadajnikiem zdalnego sterowania. Następnie należy zaznaczyć opcję Ukryj przy starcie. Powoduje to zamykanie okna programu po jego starcie i pojawienie się ikony na pasku zadań. Dodatkowo można zaznaczyć op-cj ę Pokaż logo program u przy starcie, co będzie powodowało wyświetlenie okienka informacyjnego przy uruchamianiu systemu Windows. Wprowadzenie tych ustawień kończy proces tworzenia aplikacji sterującej nadajnikiem z dalneg o s terów ania.
Procedura tworzenia poleceń na pierwszy rzut oka wydaje się


Uwlw f" Naw



|=i N | I
ustawić na "3'
Rys. 14. Okno konfiguracji parametrów startowych Glrć&ra
Elektronika Praktyczna 6/2003
Girder - współpraca z nadajnikiem RC5 AYT-5104
Uwaga! Działanie programu było testowane w systemie operacyjnym Windows XP i prawidłowa praca w innych systemach nie jest gwarantowana. Przystosowanie programu do pracy w innych wersjach systemu Windows może wymagać zastosowania innych plików-wtyczek.
dość skomplikowana, jednak po stworzeniu kilku poleceń i zapoznaniu się z możliwościami programu okazuje się, że mozolne deklarowanie każdego polecenia można zautomatyzować, dzięki możliwości swobodnego kopiowania i przemieszczania poleceń. W przypadku stworzonej w przykładzie aplikacji wszystkie mak-ropolecenia i polecenia można wykonać tylko dla pierwszej grupy, a następnie skopiować je do dru-
giej i zmienić jedynie wysyłane komendy poprzez port szeregowy. Dodatkowo dla każdego polecenia można ustawić parametry wyświetlania komunikatu, jego wielkości czy pozycji na ekranie.
Jak widać, program daje niemal nieskończone możliwości tworzenia poleceń, których działanie jest ograniczone jedynie wyobraźnią użytkownika. Dodatkową zaletą programu jest fakt, że pracuje "w tle", przez co nie trzeba otwierać okna w celu wysłania żądanej komendy, ponieważ jest ona wysyłana po wykryciu wcześniej zapisanej sekwencji klawiszy niezależnie od aktualnie uruchomionej aplikacji systemu Windows. Daje to możliwość szybkiego wykonania żądanej komendy, w przedstawionym zastosowaniu można bardzo sprawnie sterować urządzeniami, bez konieczności odrywania oczu od monitora, a informacja tekstowa wyświetlona na
ekranie monitora znacznie zwiększa komfort użytkowania nadajnika RC/SIRC. Krzysztof Pławsiuk krzysztof.plawsiuk@ep.com.pl
W przedstawionym opisie zostały użyte następujące aplikacje:
1. Program: Girder wersja 3.2.9 (http://www.girder.nl/downloadn.-php)- autor Ron Bessems
2. Wtyczka: " Keyb oard_Ex " wersja 2.2 (h ttp :lIwww. gird er. n II plugins.php) - autor Mario Ivan-kovits
3. Wtyczka "XP_OSD" wersja 1.3 (http://www.girder.nl/plugins.-php) - autor Steven Vibert
4. Wtyczka "Serial port" wersja 3.0.10 (http://www.girder.nl/ plugins.php) - autor Mark Fiech-tner
Pliki stworzone w przykładzie Nadajnik_RC5_SIRC.GML i Na-dajnik_RC5_SIRC.ini są dostępne na stronie internetowej EP.
50
Elektronika Praktyczna 6/2003
NOTATNIK PRAKTYKA
Prototyp w godzinę
- precyzja niemal przemysłowa
Płytki drukowane w domu, część 1
Wstęp
Potrzeba łatwego dostępu do płytek drukowanych towarzyszy elektronikom niemal od początku obecności technologii PCB na rynku. Jeszcze we wczesnych latach 90. możliwości wyboru zawierały się pomiędzy żmudnym malowaniem ścieżek lakierem do paznokci bądź alchemią ciemni fotograficznej a wydaniem okrągłej sumki na płytkę wykonaną profesjonalnie lub poświęceniem należnej liczby godzin na zabawę z kynarem i płytką uniwersalną. Na przestrzeni ostatnich kilku lat problem amatorskich PCB zaczął jednak nabierać nowego wymiaru. Otóż coraz większa liczba interesujących układów
scalonych opuszcza fabryki wyłącznie w obudowach SMD o gęstości wyprowadzeń przekraczającej możliwości jakichkolwiek płytek uniwersalnych. Z drugiej strony oferta zakładów zajmujących się profesjonalną technologią PCB staje się coraz łatwiej dostępna (przede wszystkim finansowo) dla zwykłych śmiertelników. Do przeszłości należą kłopotliwe pytania o listy apertur oraz własnoręczne przygotowywanie plików Gerbera i listy wierceń. Większość zakładów bez oporów przyjmuje pliki zapisane w formacie popularnych narzędzi projektowych. W zasadzie nie stanowi już w tej chwili większego problemu
W artykule omówiono popularne, domowe
metody wykonywania płytek drukowanych,
ze szczególnym uwzględnieniem czynników
warunkujących powtarzalność procesu
i przyczyn najczęściej popełnianych
błędów.
W pierwszej części artykułu
przedstawiamy przegląd najbardziej
popularnych metod wykonywania płytek
drukowanych, za miesiąc opublikujemy
opis metody pozwalającej w warunkach
domowych uzyskać powtarzalne ścieżki
6-miIsowe.
Elektronika Praktyczna 6/2003
51
NOTATNIK PRAKTYKA
złożenie zamówienia na wykonanie precyzyjnych, jednostkowych płytek przeznaczonych do prototypu urządzenia. Jednak wciąż pozostaje kilka istotnych ,,ale"... Rozmiary jednostkowego zamówienia są zazwyczaj znacznie mniejsze od rozmiarów typowych formatek stosowanych w procesie technologicznym. Dlatego wykonawcy czekają, aż zbierze się odpowiednia liczba "detalis-tów" potrzebna do wypełnienia formatki produkcyjnej lub odpowiednio podnoszą ceny obowiązujące przy małych zamówieniach. Również koszt przygotowania dokumentacji produkcyjnej wnosi swój niebagatelny udział do finalnej kwoty widniejącej na fakturze. Oczywiście można powiedzieć, że ,,prototyp musi kosztować". Jednak niezależnie od posiadanego budżetu nie da się zniwelować czasu, jaki musi upłynąć od zapisania na dysku projektu PCB do chwili wzięcia do ręki upragnionego kawałka laminatu. Nawet zamawiając usługę 24-godzinną według specjalnych supereks-presowych stawek, nie uniknie się konieczności fizycznego dostarczenia płytki do zleceniodawcy. Dlatego amatorskie metody wytwarzania PCB wciąż budzą żywe zainteresowanie. Uściślijmy przy tym, że pojęcie ,,amatorskie" nie odnosi się do rangi i stopnia komplikacji samych projektów, a raczej oznacza brak dostępu do rozbudowanego zaplecza technologicznego. Z punktu widzenia hobbysty, techniki te stwarzają możliwość ominięcia kosztów stawiających pod znakiem zapytania sens realizacji wielu zamierzeń. Dla projek-tanta-profesjonalisty kryje się w nich łatwość szybkiego prototypowania i wprowadzania zmian do projektowanych układów. Dysponując technologią amatorską, nawet o gorszej jakości niż technologie profesjonalne, ale za to dostępną na zawołanie, można ją efektywnie wykorzystać przy uruchamianiu niekrytycznych fragmentów układu. Jak zresztą zobaczymy w drugiej części artykułu, rezultaty osiągalne po nabraniu pewnego doświadczenia są co najmniej godne uwagi.
Najefektowniejsza, a zarazem precyzyjna metoda szybkiego wytwarzania jednostkowych płytek prototypowych polega na bezpośrednim grawerowaniu mozaiki na powierzchni laminatu. M.in. w EP8/2001
opisywaliśmy marzenie projektanta - specjalizowane plotte-ry grawerujące firmy LPKF. Niestety urządzenia te, z racji ceny, leżą w zasięgu możliwości jedynie nielicznych zespołów projektowych, a dla większości z nas pozostaną właśnie marzeniem.
Tajniki technologii
Zdecydowana większość współczesnych technologii PCB opiera się na metodach fotochemicznych, przy czym rozróżniamy tu dwie zasadnicze grupy:
- metody subtraktywne polegające na selektywnym usuwaniu zbędnych obszarów miedzi z powierzchni laminatu,
- metody addytywne (lub pół-addytywne) wykorzystujące selektywne osadzanie miedzi tworzącej mozaikę ścieżek.
łości wąskich ścieżek i nie-powodowanie zwarć blisko położonych elementów mozaiki. Od minimalnych osiągalnych rozmiarów ścieżek i dzielących je separacji zależy m.in. jakich typów obudów elementów będziemy mogli używać w swoich projektach.
- dokładne zachowanie rozmiarów całego projektu, umożliwiające m.in. dopasowanie precyzyjnych elementów o dużych rozmiarach, takich jak np. wielostykowe złącza lub gniazda pamięci DIMM.
- ze względu na warunki warsztatowe dodajmy jeszcze brak wymagań dotyczących kosztownego wyposażenia, trudno dostępnych bądź toksycznych odczynników itp. Obecnie możemy w zasadzie
mówić o trzech ,,domowych"
Termotransferową metodę wykonywania płytek
polecamy w szczególności:
Amatorom - jako tani sposób wytwarzania
jednostkowych płytek do własnych projektów
nie wymagający korzystania z ciemni
i czystego laboratorium.
Zawodowcom - jako sposób na szybkie
wykonywanie płytek prototypowych. W ramach
zachęty zasygnalizujemy, że wykonanie
jednostronnej płytki drukowanej dobrej
jakości zajmuje mniej niż 1 h i daje się
przeprowadzić niemalże na biurku obok
komputera.
Metody addytywne, a do nich należą niestety prawie wszystkie sposoby metalizacji otworów, do chwili obecnej leżą poza zasięgiem działań amatorskich. Wynika to zarówno z konieczności korzystania ze skomplikowanych procesów chemicznych (aktywacja powierzchni nieprzewodzą-cych, chemiczne i elektrochemiczne osadzanie miedzi), jak również z konieczności użycia precyzyjnych wysokoobroto-wych wiertarek niezbędnych do wykonania otworów o równych, gładkich ściankach.
Tak więc, w domenie amatorów pozostają wyłącznie jedno- lub dwuwarstwowe płytki drukowane wykonywane metodą subtraktywną, czyli wykonywane przez selektywne maskowanie i trawienie nieosłoniętej miedzi.
Uściślijmy zatem, jakie wymagania powinna spełniać zadowalająca technologia wytwarzania PCB:
- wierne odwzorowanie szczegółów projektu, a w szczególności zachowanie ciąg-
sposobach maskowania powierzchni miedzi:
- malowanie ścieżek pisakiem odpornym na trawienie,
- zastosowanie emulsji światłoczułej (fotolitografia),
- nanoszenie maski ochronnej metodą termo transferu.
O malowaniu pisakiem che-moodpornym wspominam jedynie z kronikarskiego obowiązku, gdyż nadaje się wyłącznie do bardzo prostych urządzeń. Ręczne naniesienie punktów lutowniczych pod układ w obudowie DIP wymaga pewnej ręki i nie zawsze udaje się bez błędów. Posiadanie odpornego na trawienie pisaka z bardzo cienką końcówką (np. 0,3 mm) może jednak okazać się przydatne do ew. retuszu masek wykonanych innymi metodami.
Kolejne dwie techniki są przedmiotem niekończącej się rywalizacji pomiędzy zwolennikami emulsji światłoczułej Positiv 20 a użytkownikami folii TES-200 oraz - od niedawna - fanami obiecującej metody termotransferowej wy-
korzystującej papier kredowy w roli nośnika. Pierwsze dwie metody, tzn. Positiv i TES-200 są powszechnie znane, a ich opisy łatwo dostępne w Inter-necie. Artykuł poświęcony fotochemicznemu wytwarzaniu płytek PCB znalazł się też kiedyś na łamach EP (listopad 1994) i jest również dostępny na internetowej stronie EP (http://www.ep.com.pl/7ftp/ma-kepcb/index.html). Jednak urok każdej technologii tkwi w szczegółach, a posiadanie jej opisu nie oznacza jeszcze prostej drogi do sukcesu. Nieprzypadkowo najcenniejszym tomem dokumentacji technologicznej w wielu zakładach jest zeszyt z odręcznymi notatkami głównego technologa. Dlatego, zamiast powtarzać ogólnie znane wyjaśnienia, skoncentruję się przede wszystkim na omówieniu czynników decydujących o jakości wykonania oraz na mechanizmach najczęściej popełnianych błędów. Pewną nowością, znaną dotychczas głównie uczestnikom internetowych grup dyskusyjnych, jest zmodyfikowana metoda termotransferowa wykorzystująca papier kredowy. Opierając się na bardzo prostym pomyśle, pozwala ona na osiągnięcie zaskakująco dobrych i powtarzalnych wyników. Nie będę ukrywał, że technika ta najbardziej przypadła mi do gustu, dlatego poświęcę jej drugą część artykułu, próbując zarazem określić, gdzie leżą granice jej możliwości.
Fotolitografia
z wykorzystaniem
Positivu
Starsi stażem Czytelnicy pamiętają zapewne skomplikowane przepisy przygotowania i stosowania negatywowych emulsji światłoczułych sporządzonych na bazie albuminy, kleju stolarskiego lub szelaku i uczulanych dwuchromianem potasu lub amonu. Można zaryzykować stwierdzenie, że dopiero upowszechnienie preparatu Positiv 20 otworzyło drogę do wytwarzania dobrych jakościowo płytek drukowanych w warunkach domowego warsztatu. Łatwość nanoszenia emulsji, doskonała rozdzielczość, dobra światłoczułość i prosty sposób wywoływania niezmiernie uprościły i skróciły proces technologiczny. Fotolitografia oferuje również potencjalnie najwyższą precyzję odwzorowania. Jednak, z drugiej strony, metoda fotoche-
Elektronika Praktyczna 6/2003
NOTATNIK PRAKTYKA
niiczna to wciąż czasochłonny, łdlkuetapowy proces o wielu stopniach swobody, a błędy popełnione na którymkolwiek z etapów powodują, że pracę trzeba zacząć od początku. Uzyskanie powtarzalnych wyników wymaga ścisłego przestrzegania reżimu technologicznego. Wymieńmy zatem najważniejsze etapy decydujące
0 jakości finalnego produktu:
- przygotowanie powierzchni laminatu,
- nanoszenie warstwy światłoczułej (fotorezystu),
- suszenie fotorezystu,
- naświetlanie,
- wywoływanie,
- trawienie miedzi,
- usuwanie rezystu.
Przygotowanie powierzchni płytki
W odniesieniu do Positiv 2 0, producent (firma CRC Kontakt Chemie) często w swoich materiałach używa określenia ,,lakier". Faktycznie, opakowanie aerozolowe
1 stosowane rozpuszczalniki (m.in. aceton, eter dwumetylo-wy) blisko kojarzą się z malowaniem, a zamierzając uzyskać powłokę o dobrej przyczepności, również powinniśmy stosować się do zasad panujących w tej dziedzinie. Do wykonania płytek drukowanych należy wybierać laminat pozbawiony wgnieceń, głębokich rys i śladów korozji. Przygotowanie powierzchni polega na delikatnym, równomiernym zmatowieniu miedzi (rozwinięcie powierzchni poprawia adhezję lakieru) oraz bardzo dokładnym odtłuszczeniu. W praktyce dosyć dobrze zdają egzamin detergentowe, "nierysują-ce" mleczka do czyszczenia urządzeń sanitarnych (np. CIF, Skrzat itp.) lub płyny do mycia naczyń. Można również posłużyć się bardzo drobnym, wodoodpornym papierem ściernym o gradacji >1000, szlifując płytkę na mokro -najlepiej pod strumieniem bieżącej wody. O dobrym odtłuszczeniu świadczy równomierne zwilżanie przez wodę
Tab. 1. Grubość powłoki emulsji Positiu 20 można ocenić po kolorze pokrycia
Barwa OtnDGBe powłoki kun]
Jasna szaroniebieska 1...3
Ciemna szaroniebieska 3...6
Niebieska 6...8
Ciemnoniebieska >8
całej powierzchni. Nie muszę chyba dodawać, że od tego momentu nie wolno już dotykać miedzi palcami. Ponieważ czysta powierzchnia miedzi ulega stopniowemu utlenianiu i zabrudzeniom, nie należy też niepotrzebnie zwlekać z lakierowaniem.
Nanoszenie fotorezystu
Podobnie jak w przypadku powłok lakierniczych, przy nakładaniu fotorezystu zależy nam na równomiernym, szczelnym pokryciu całej powierzchni podłoża. Dodatkowo jednak, szczególnego znaczenia nabiera grubość naniesionej warstwy przekładająca się bezpośrednio na wartość energii promieniowania potrzebnej do jej prawidłowego naświetlenia. Nierówno mierność warstwy może spowodować problemy z doborem czasu ekspozycji, a w skrajnym przypadku uniemożliwić poprawne naświetlenie całego pola roboczego. Grubość warstwy światłoczułej decyduje również o osiągalnej rozdzielczości odwzorowania -aczkolwiek zalecana powłoka Positivu jest stosunkowo cienka (ok. 6...8 um), dzięki czemu w zastosowaniach PCB jej grubość nie wywiera znaczącego wpływu na rozdzielczość metody. Do oszacowania grubości można posłużyć się oceną barwy - zgodnie z tab. 1. Podane barwy odnoszą się do emulsji naniesionej na podłoże bezbarwne - np. aluminium. Na skutek mieszania barw, lakier naniesiony na powierzchnię miedzi zyskuje odcień fioletowy.
Nakładanie powłoki najlepiej wykonywać przy żółtym świetle, aczkolwiek w stanie mokrym emulsja jest słabo wrażliwa i toleruje krótkotrwałe oświetlenie przytłumionym światłem dziennym. W miarę schnięcia jej światło czułość istotnie wzrasta, dlatego suszenie powinno odbywać się już w ciemności.
Płytka przeznaczona do lakierowania musi być dokładnie wysuszona po myciu. Do malowania natryskiem układamy laminat poziomo lub nachylony pod niewielkim kątem. Malowanie prowadzi się jednym nieprzerwanym ruchem, rozpoczynając natrysk poza płytką, a następnie wodząc dyszę wzdłuż linii zygzakowatej, począwszy od górnego narożnika. Przed skierowaniem strumienia na płytkę warto poświęcić kilka kropel preparatu na przedmuchanie dyszy i uwolnienie ewentual-
Elektronika Praktyczna 6/2003
53
NOTATNIK PRAKTYKA
nych skrzepniętych ,,kłaczków". Przy malowaniu należy uważać, aby trzymać opakowanie możliwie blisko pionu. Przechylenie do poziomu powoduje niepotrzebną ucieczkę gazu nośnego i występowanie przerw w strumieniu, co odbija się na jednorodności powłoki. Nanoszony lakier w pierwszym momencie osiada na płytce w postaci ,,pomarańczowej skórki", a dopiero po chwili rozpływa się w jednolitą, gładką warstwę. Ponadto rozpływająca się emulsja wykazuje tendencję do tworzenia zgrubień na krawędziach laminatu, dlatego należy pamiętać o zachowaniu odpowiednich marginesów wokół pola roboczego.
Nakładaniu cienkich powłok sprzyja bardzo niska lepkość preparatu, jednak natryśnięcie pokrycia o stałej, powtarzalnej grubości wymaga sporej wprawy. Dlatego, szczególnie przy precyzyjnych projektach, rozprowadzanie lakieru powinno być wspomagane wirowaniem płytki. Dzięki małej lepkości wystarczają stosunkowo niewielkie prędkości wirowania -rzędu 100 obr./min. W warunkach amatorskich można wykonać prostą wirówkę, adaptując np. typowy wentylator z silnikiem stałoprądowym 12 V zasilany obniżonym napięciem.
Emulsja Positiv 20 ma ograniczoną trwałość (w temperaturze max. 25C nominalnie 1,5 roku od daty konfekcjonowania), a przekroczenie daty ważności objawia się np. w postaci nierównomierności nałożonej warstwy (powstawanie ,,kłaczków"). Znacznie krótszy czas przydatności charakteryzuje suchą emulsję naniesioną na powierzchnię laminatu. Według danych producenta, okres przechowywania w temperaturze pokojowej nie może przekraczać 4 tygodni. Zwróćmy uwagę, że okres ten dotyczy również gotowych lakierowanych płytek oferowanych przez niektórych dystrybutorów. Przedłużeniu trwałości sprzyja składowanie w temperaturze obniżonej do +8... + 12C. Trzeba jednak pamiętać, żeby (z uwagi na kondensację pary wodnej) przed użyciem ogrzać płytki do temperatury pokojowej.
Suszenie
Naniesiona warstwa musi być dokładnie wysuszona przed naświetlaniem. Jakość wysuszenia decyduje o przyczepności rezystu do podłoża,
a także, o czym już wspomniałem, o jego efektywnej czułości na światło. Na całkowite wyschnięcie lakieru w temperaturze pokojowej potrzeba co najmniej 24 h.
Z jednej strony czas ten powinien być jak najkrótszy, gdyż lepka powierzchnia lakieru jest szczególnie podatna na chwytanie zanieczyszczeń z powietrza. Z drugiej - zbyt intensywne suszenie może spowodować wytworzenie ,,skórki" i pomarszczenie powłoki.
tło projektu stają się rozpuszczalne i zostają usunięte podczas wywoływania odsłaniając powierzchnię miedzi. Dla porównania przypomnijmy, że tradycyjne, amatorskie emulsje chromianowe należały do grupy negatywowej, tzn. pod wpływem światła następowało w nich garbowanie białek i utrata rozpuszczalności. Dlatego też wymagały naświetlania rysunkiem w negatywie -w miejscach przezroczystych ścieżek następowało utrwalenie
Błędy, których przyczyn nie widać
Wydaje się, że 5 mils to niewiele, ale tylko
błąd naświetlania może udaremnić próbę
wykonania ścieżek o szerokości mniejszej od
10...12 mils.
Uwzględniając oba wymagania, producent zaleca suszenie przyspieszone w temperaturze 70C w suszarce z promiennikiem IR lub obiegiem ciepłego powietrza. Po umieszczeniu płytki w komorze, należy powoli podnosić temperaturę, a po osiągnięciu maksimum odczekać jeszcze 15...20 minut do całkowitego wyschnięcia. Przypomnijmy, że suszenie powinno odbywać się w ciemności, w otoczeniu wolnym od kurzu. Przekroczenie temperatury 80C powoduje, że fotorezyst ulega nieodwracalnym przemianom, stopniowo tracąc rozpuszczalność.
Naświetlanie
Naświetlanie emulsji jest najbardziej krytycznym etapem fotolitografii, a ze względu na dużą liczbę parametrów również najtrudniejszym z punktu widzenia powtarzalności procesu. Wymieńmy zasadnicze czynniki decydujące o powodzeniu procesu:
- dobór diapozytywu (rysunek w pozytywie, właściwa gęstość optyczna),
- dobór źródła światła (charakterystyka widmowa, gęstość mocy, kolimacja),
- równomierny docisk kliszy do laminatu,
- dobór czasu naświetlania,
- zachowanie czystości.
Diapozytyw
Positiv 20 należy do grupy emulsji pozytywowych, tzn. uzyskujących rozpuszczalność w wyniku naświetlenia. Dlatego na diapozytywie użytym do naświetlania musi się znajdować pozytywowy rysunek mozaiki - tzn. czarne ścieżki na przezroczystym tle. Naświetlone obszary fotorezystu, czyli
emulsji chroniącej później miedź przed trawieniem.
Niedoświetlenie skutkuje słabą rozpuszczalnością fotorezystu utrudniającą odsłonięcie tła i powodującą powstawanie zwarć pomiędzy ścieżkami. Natomiast prześwietlenie powoduje m.in. podmywanie ścieżek, a w skrajnym przypadku spłynięcie całej emulsji podczas wywoływania.
Zakres swobody w doborze czasu naświetlania jest ograniczony przez kontrast posiadanego diapozytywu, a w praktyce przede wszystkim przez jego gęstość optyczną (D) w obszarach zaczernionych (czyli loga-rytm dziesiętny ze stosunku ilości światła padającego do przechodzącego). Zbyt mała gęstość optyczna objawia się naruszeniem powierzchni miedzi na płaszczyznach, które powinny pozostać nietknięte. Najlepszą gęstość optyczną (D>3,5) mają klisze wykonane na fotoploterze lub naświetlarce rastrowej. Natomiast gęstość pokrycia uzyskanego na wydruku z drukarki laserowej lub atramentowej często okazuje się niewystarczająca. Ponadto na wydrukach z niektórych drukarek laserowych występuje również tendencja do niejednolitego krycia dużych obszarów. W przypadku drukarki laserowej lub ksero można uzyskać znaczącą poprawę, umieszczając wydruk na kilkadziesiąt minut w parach acetonu lub rozpuszczalnika nitro, powodujących spęcznienie tonera i w efekcie jego optyczne uszczelnienie.
Źródło światła
Maksimum czułości widmowej Positivu przypada w zakresie bliskiego ultrafioletu UVA - czyli w przedziale
340...420 nm. Gęstość energii wymagana do naświetlenia warstwy fotorezystu o grubości 8 urn wynosi orientacyjnie 100 mj/cm2. Najlepszym dostępnym źródłem światła o odpowiedniej charakterystyce widmowej są wyładowcze lampy rtęciowe (np. przezroczysta świetlówka UV lub jarznik pozyskany z wysokoprężnej lampy rtęciowej). Aczkolwiek wystarczająco dobre rezultaty daje również zastosowanie żarowej lampy halogenowej, a nawet bezpośredniego światła słonecznego. Ze względu na trudność obiektywnego pomiaru natężenia ultrafioletu w warunkach amatorskich, najłatwiej ustalić właściwy czas ekspozycji eksperymentalnie, wykonując serię próbek o różnym stopniu naświetlenia. Zamiast stosowanego profesjonalnie klina szarości, wystarczy wielokrotne naświetlanie próbki ze stopniowym odsłanianiem kolejnych partii fotorezystu. Spodziewane czasy naświetlania przy użyciu typowych źródeł (lampa kwarcowa, halogen 500 W) i odległości rzędu 0,3...0,5 m plasują się zazwyczaj w przedziale kilku...kilkunastu minut.
Dobór źródła światła powinien uwzględniać jeszcze dwa aspekty - jednorodność oświetlenia całej powierzchni pola roboczego oraz kolimację światła. Równomierność
oświetlenia nie wymaga, jak sądzę, szczegółowego uzasadnienia. Można ją uzyskać, stosując jednorodne źródło światła o powierzchni porównywalnej z powierzchnią stołu roboczego (np. zespół równoległych świetlówek UV z reflektorami parabolicznymi) lub źródło punktowe znacznie oddalone od płaszczyzny roboczej. Drugie zagadnienie wymaga jednak kilku słów wyjaśnienia. Otóż rozmiary obiektu odwzorowanego w fotorezyście nigdy nie będą identyczne z rozmiarami tego samego obiektu na kliszy. Zjawisko to, zwane podcięciem krawędzi jest skutkiem podświetlania fotorezystu położonego pod zaczernionym fragmentem kliszy (rys. 1). Przyjmując, że stosujemy fotorezyst pozytywowy (czyli np. Posi-tiv), którego naświetlenie powoduje rozpuszczalność emulsji, zaobserwujemy efekt polegający na zwężeniu ścieżek w stosunku do wymiarów założonych w projekcie. Zwróćmy uwagę, że skutki podcięcia krawędzi fotorezystu kumulują się ze zwężeniem ścieżek po-
54
Elektronika Praktyczna 6/2003
NOTATNIK PRAKTYKA
klisza
fotorezyst Cu
Rys. 1. Jedną z przyczyn podświetlania krawędzi podczas naświetlania jest niedokładne dociśnięcie kliszy do powierzchni fotorezystu
wstającym na skutek podtra-wiania miedzi. Jednym ze sposobów kolimacji, przydatnym szczególnie w przypadku naświetlania za pomocą płaskiego zespołu świetlówek UV, może być zastosowanie koli-matora kratownicowego, czyli grubej przesłony w postaci kratownicy o niewielkim przekroju otworów i cienkich ściankach pochłaniających światło. W warunkach amatorskich za wystarczające można jednak uznać zastosowanie źródła punktowego (o niewielkich rozmiarach) oddalonego od powierzchni płytki. W swojej praktyce używałem, z dobrym skutkiem, archaicznej lampy kwarcowej do opalania, z krótkim jarznikiem rtęciowym
0 mocy 125 W umieszczonej na wysokości ok. 50 cm nad kopioramką.
Docisk kliszy
Niedokładne przyłożenie
1 docisk kliszy, w połączeniu z brakiem kolimacji oświetlenia jest istotnym, chociaż często niedocenianym źródłem błędów. Jestem skłonny zaryzykować stwierdzenie, że właśnie w tym miejscu kryje się praktyczne ograniczenie rozdzielczości domowej fotolitografii. Jak już wspomniałem oświetlenie płytki pod kątem różnym od 90 (deklinacja) w połączeniu z nierównoleg-łością wiązki światła (brak kolimacji) skutkuje podcinaniem krawędzi i zwężaniem ścieżek (rys. 1) Spróbujmy przeprowadzić szybkie oszacowanie. Załóżmy, że dysponujemy oświetleniem o maksymalnym kącie deklinacji a=15, a jednocześnie pomiędzy fotorezys-tem a niedokładnie dociśniętą
kliszą powstała szczelina Rys. 2. Rysunek przekrojowy ilustrujący budowę kopioramy podciśnieniowej
AY=0,5 mm. Przyjęty maksymalny kąt padania światła odpowiada mniej więcej zastosowaniu typowej oprawy oświetleniowej z liniowym żarnikiem halogenowym 500 W umieszczonej na wysokości 40 cm nad płytką.
Z prostego układu geometrycznego możemy wyliczyć, że krawędzie ścieżek na foto-rezyście zostaną podświetlone na głębokość:
AX = AY Ś tg(15) = 0,13 mm, czyli ok. 5 mils (mils = 0,001 cala jest jednostką powszechnie stosowaną w projektowaniu PCB)
Oczywiście w obliczeniu pominęliśmy wszelkie subtelności, takie jak: różne współczynniki załamania światła w materiale kliszy i warstwie światłoczułej, ugięcie światła na krawędzi maski, wsteczne odbicie światła od miedzi, a także charakterystykę czułości fotorezystu.
Jakie to ma znaczenie praktyczne? Wydaje się, że 5 mils to niewiele, ale tylko ten jeden błąd naświetlania może udaremnić próbę wykonania ścieżek o szerokości mniejszej od 10...12 mils.
Występowanie szczelin pomiędzy maską optyczną a fo-torezystem zależy przede wszystkim od zastosowanej metody docisku - ale nie tylko. Przede wszystkim klisza musi leżeć na płytce emulsją (lub tonerem) do dołu! Grubość kliszy wynosząca 0,1...0,2 mm jest już wystarczająca aby, przy niewłaściwym ułożeniu, spowodować zauważalne podświetlenie krawędzi. Często stosowany docisk za pomocą szyby (szklanej lub PMMA) niestety nie zawsze zdaje egzamin. Nawet niewielkie zwichrowanie płytki laminatu zazwyczaj uniemożliwia równomierne przyciśnięcie maski na całej powierzchni. Ponadto szkło pochłania część ultrafioletu, natomiast miękkie plexi łatwo ulega zarysowaniom. Jedynym skutecznym sposobem wydaje się zastosowanie kopioramy z dociskiem próżniowym. Mimo poważnie brzmiącej nazwy jest to urządzenie łatwe do wykonania, a doraźnie dające się zastąpić nawet torebką z przezroczystej folii PE. Na swoje potrzeby wykonałem prostą kopioramkę złożoną z kwadratowej, drewnianej ramki z zagłębioną płytą szklaną (rys. 2, fot. 3). Użycie szkła wynikało z potrzeby zastosowania płaskiej gładkiej płyty, ale przy okazji ułatwia optyczne centrowanie masek podczas wykonywania płytek dwustronnych. Krawędzie ramki zostały pokryte warstwą silikonu sanitarnego i wygładzone na mokro. Powierzchnia gumy silikonowej przez dłuższy czas zachowuje pewną lepkość, dzięki czemu doskonale zdaje egzamin jako uszczelnienie. Zaznaczona na rysunku i widoczna na zdjęciu rurka z otworami, biegnąca wzdłuż krawędzi ramki służy jako doprowadzenie podciśnienia. Ze względu na niewielkie wymagania odnośnie wydaj-
ności i ciśnienia końcowego, w roli pompy próżniowej może wystąpić prosta, inżektoro-wa pompa wodna, a nawet agregat sprężarkowy wymontowany ze złomowanej lodówki. Naświetlaną płytkę wraz z maską należy położyć na ko-pioramie, fotorezystem do góry, a następnie całą ramkę nakryć cienką, przezroczystą folią polietylenową (stretch) stosowaną do pakowania żywności (fot. 4). Folia PE o grubości ok. 10 urn praktycznie nie pochłania ultrafioletu a wprowadzane przez nią ewentualne załamania światła nie odwzorowują się na foto-rezyście. Naprężona, czysta folia bardzo łatwo przylega szczelnie do powierzchni silikonu. Po włączeniu podciśnienia, ulega ugięciu o 2...3 mm, praktycznie nie przemieszczając się w płaszczyźnie poziomej. Dzięki temu cała powierzchnia maski zostaje równomiernie dociśnięta do laminatu, bez ryzyka przesunięcia względem otworów centrujących.
Wróg numer 1 - kurz
Wymóg sterylnej niemalże czystości - od początku nanoszenia emulsji do chwili wyjęcia płytki z kopioramy, jest wspólną cechą wszystkich fotolitografii. Jakkolwiek wymogi czystości niezbędnej przy wykonywaniu PCB są nieporównywalne z rygorami panującymi w cleanroomach laboratoriów półprzewodnikowych, to jednak przyjmuje się, że przy fotolitografii wysokopre-cyzyjnych PCB pomieszczenia laboratoryjne muszą być utrzymywane w klasie czystości ,,10000", co znaczy, że liczba cząstek stałych o średnicy >0,5 urn nie może przekraczać (po przeliczeniu na jednostki metryczne) 350 szt./dm3 powietrza, natomiast cząstek o średnicy >5 urn już tylko 2,3 szt./dm3.
\ M I \
laminat + klisza
rurka perforowana
folia "stretch"
56
Elektronika Praktyczna 6/2003
NOTATNIK PRAKTYKA
Fot. 3. Podciśnienie dociskające folię można uzyskać dzięki wprowadzeniu pod folię polietylenowej rurki z otworami
Drobiny kursu przyklejone w czasie natryskiwania emulsji powodują powstawanie widocznych zgrubień. Z drugiej strony, wysoka rozdzielczość fotorezystu paradoksalnie skutkuje zwiększoną wrażliwością na zanieczyszczenia obecne w czasie naświetlania. Niewidoczne gołym okiem włókienko pomiędzy kliszą a warstwą światłoczułą może zostać odwzorowane jako cieniutka "szpilka" zwierająca dwie sąsiednie ścieżki.
W moim odczuciu, kłopoty z utrzymaniem czystości stanowią jedną z najważniejszych przyczyn niepowodzeń domowej fotolitografii. Oczywiście nie chcę nikogo przekonywać o celowości budowy amatorskiego cleanroomu ze śluzą oddzielającą strefy: szarą i białą, filtracją powietrza i przepływem laminarnym. Jednak warto zdawać sobie sprawę z obowiązujących zasad postępowania. Na laboratorium najlepiej wybierać pomieszczenia pozbawione "łapaczy kurzu" w postaci zasłon, wykładzin itp., wyposażone w wentylację, ale nie wywołującą przeciągów. Uporawszy się ze sprzątaniem, warto przed przystąpieniem do pracy, zwilżyć spryskiwaczem najbliższe otoczenie, co skutecznie ograniczy ilość kurzu unoszącego się w powietrzu. Najbardziej śmiecącym obiektem w laboratorium jest jednak sam człowiek. Dlatego należy zadbać o niepylące ubranie obejmujące w szczególności czepek na włosy (sic!) i fartuch ze ściąganymi mankietami, nie nachylać się bezpośrednio nad płytką, a przede wszystkim unikać wykonywania gwałtownych ru-
chów. Opanowanie emocji przydaje się nie tylko ze względu na unoszący się kurs. Płytka laminatu od momentu naniesienia emulsji do chwili wyjęcia z kąpieli trawiącej podlega wielu operacjom, w czasie których bardzo łatwo o zarysowanie warstwy fotorezystu. Równie kłopotliwa może okazać się drobna, słabo widoczna rysa na kliszy fotograficznej. Dzięki dużej rozdzielczości zostanie odwzorowana np. jako słabo widoczna, cienka przerwa naruszająca ciągłość ścieżki.
Wy w o tyw an ie
Pod wpływem światła fotore-zyst staje się rozpuszczalny i poddaje się wymywaniu w kąpieli wywołującej. Natomiast obszary ciemne pozostają nienaruszone, chroniąc powierzchnię miedzi w czasie późniejszego trawienia. Wywoływacz zalecany przez producenta powinien składać się z 0,7% roztworu wodorotlenku sodowego (7 g NaOH w 1 dm3 wody) o temperaturze pokojowej. W warunkach domowych można sięgnąć po preparat do udrażniania rur (np. "Kret"), składający się głównie z NaOH. Poprawnie naświetlony rysunek powinien ulec całkowitemu wywołaniu w czasie ok. 1 min. Zbyt wysokie stężenie wywoływacza powoduje natychmiastowe spłynięcie całej warstwy światłoczułej. Z drugiej strony stężenie zbyt małe lub zużycie NaOH stwarza trudności z wymyciem naświetlonej emulsji, interpretowane jako niedoświet-lenie i mylnie korygowane wydłużaniem czasu naświetlania. Zwróćmy uwagę, że wodorotlenek sodowy, stojąc w otwartym naczyniu, zużywa się, wiążąc
Fot. 4. Niezbędnym elementem wyposażenia kopioramy jest folia kuchenna stosowana do pakowania żywności
obecny w powietrzu dwutlenek węgla. Mimo że wywoływanie to czynność stosunkowo prosta do wykonania, to jednak wydaje się, że błędy na tym etapie są popełniane wyjątkowo często i niestety wymagają powtórzenia całego procesu od początku.
Trawienie
Positiv wykazuje odporność wobec większości kąpieli trawiących stosowanych w technologii PCB począwszy od łagodnie alkalicznych kąpieli amoniakalnych, przez roztwór chlorku żelazowego (FeCl3), roztwór nadsiarczanu amonu HNH4)^S^OS), aż do kąpieli kwaśnych (HCl lub H2SO4) z dodatkiem perhydro-lu (H2O2). Natomiast mniej znany jest fakt, że w wyniku utrwalania termicznego (przeciętnie 10...30 minut w temperaturze 120C, a przy szczególnych wymaganiach 16O...19OC) można uodpornić powłokę re-zystu na działanie tak agresywnych czynników jak np. stężony kwas azotowy (65% HNO3) lub fluorowodorowy (40% HF). Podaję tę informację jako ciekawostkę, sygnalizując zarazem, że potencjalny zakres zastosowań rozciąga się znacznie poza wytwarzanie PCB, pozwalając również na fotolitografię np. stali, srebra, szkła, aluminium itp.
Usuwanie maski ochronnej
Niewielkie powierzchnie nienaświetlonego Positivu można łatwo usunąć za pomocą popularnych rozpuszczalników organicznych (aceton, estry - np. rozpuszczalnik "nitro"). W przypadku zmywania dużych powierzchni lub usuwania emulsji poddanej łagodnemu utrwalaniu termicznemu
wygodniej będzie posłużyć się roztworem wodorotlenku sodowego (NaOH) o stężeniu 5..30% (uwaga - żrące!). Emulsja poddana utrwalaniu wysokotemperaturowemu jest praktycznie nierozpuszczalna i nadaje się wyłącznie do usunięcia mechanicznego.
Podsumowując wyniki amatorskiej fotolitografii, określiłbym je jako świetny przykład niewykorzystanych możliwości. Jedynie nielicznym osobom udało się uzyskać wymiary ścieżek/ sępa racji rzędu 5/5 mils. Większość użytkowników uznaje za sukces powtarzalne wykonywanie płytek ze ścieżkami o szerokości 10...12 mils. Fotolitografia z natury rzeczy wymaga dużej staranności i powtarzalności parametrów, trudnych do uzyskania ad hoc poza laboratorium. Dodajmy przy tym, że cały proces zajmuje kilka godzin, a błąd popełniony nawet na końcowym etapie wymaga powtórzenia całej ścieżki od początku. Wysokie wymagania i pracochłonność metody fotochemicznej tłumaczą w pewnym stopniu zainteresowanie, jakim cieszą się inne, konkurencyjne i jednocześnie mniej wymagające sposoby wytwarzania PCB.
Termotransfer - folia TES-200
Małą rewolucję w dziedzinie amatorskich PCB wywołało spostrzeżenie, że polimerowy toner stosowany w większości drukarek laserowych wykazuje zadowalającą odporność na działanie popularnych kąpieli trawiących. Wykonanie maski ochronnej na laminacie polega na wydrukowaniu mozaiki ścieżek na specjalnej folii transferowej, a następnie przeniesieniu na gorąco (naprasowaniu - stąd
58
Elektronika Praktyczna 6/2003
NOTATNIK PRAKTYKA
też pochodzi żartobliwa nazwa ,,metoda żelazkowa") tonera z wydruku na powierzchnię laminatu. Prasowanie może odbywać się różnymi metodami: np. przez przykładanie żelazka od góry do folii albo potraktowanie żelazka jako stolika podgrzewającego laminat i wpraso-wywanie tonera od strony folii z użyciem tamponu lub gumowego wałka. Po ostudzeniu i oderwaniu folii warstwa tonera powinna pozostać na laminacie. Stosowany nośnik transferowy musi jednak spełniać dwa zasadnicze wymagania: - Folia nie może ulegać deformacji w temperaturze mięknięcia tonera tzn. w podczas utrwalania termicznego w drukarce oraz przy przenoszeniu wydruku na płytkę.
- Toner musi wykazywać większą adhezję do miedzi niż do folii, dzięki czemu przy zrywaniu nośnika polimerowy nadruk pozostaje na powierzchni płytki. Folia transferowa dostępna
w Polsce nosi oznaczenie TES-200. Użytkownicy metody ter-motransferowej sugerują również wypróbowanie konkurencyjnych nośników - zwykłej folii do wydruków laserowych oferowanej przez różnych producentów, a także np. woskowanego papieru podkładowego z etykiet samoprzylepnych. Niestety w praktyce, z kilku powodów, trudno o uzyskanie zadowalających wyników:
- Jakość wydruku laserowego na folii różni się niestety od jakości wydruku możli-
wego do uzyskania na papierze. W niektórych typach drukarek toner ma tendencję do niedokładnego krycia płaszczyzn i gromadzenia się na krawędziach ścieżek. Punkt mięknięcia folii leży niewiele powyżej temperatury transferu tonera (wynoszącej ok. 15O..16OC). Nawet niewielkie przegrzanie może spowodować popłynięcie folii i zmianę wymiarów wydruku. Ponadto folia wykazuje skłonność do ślizgania się na wałkach prowadzących w drukarce, co może powodować skrócenie wydruku wzdłuż osi równoległej do kierunku ruchu arkusza.
Krytycznym punktem tej metody jest sposób odrywa-
nia folii. Według powszechnych zaleceń gorącą płytkę należy - przed oderwaniem folii - szybko schłodzić przez włożenie do zamrażal-nika. Niestety, jak wynika z moich doświadczeń, na powierzchni zerwanej folii zawsze pozostaje część tonem - zazwyczaj w postaci obrysu ścieżek, ale czasem także oddzielonych większych fragmentów mozaiki. - Cena folii, plasująca się w okolicach 3 zł za arkusz A4, nie sprzyja eksperymentom. Zwłaszcza że niedokładne wykonanie transferu oznacza zazwyczaj konieczność sięgnięcia po następny arkusz.
Marek Dzwonnik, AVT marek.dzwonnik@ep.com.pl
60
Elektronika Praktyczna 6/2003
PHANTOM - dekoder surround A
Dekodery dźwięku dookolnego cieszq się sporym zainteresowaniem wśród naszych Czytelników. Jeden z możliwych do wykonania wariantów przedstawiamy na słr. 25.
Korektor sygnału wideo >
Projekt z cyklu Jak to robiq inni" -proste w wykonaniu, lecz skuteczne opracowanie przedstawiamy na słr.
21
"Klocki" RS485 A
Interfejs RS485 cieszy się uzasadnionym zainteresowaniem wśród elektroników, którym potrzebne jest medium pozwalajqce przesyłać dane na duże odległości. Słr. 41.
Krokowy sterownik silnika DC
Proste urzqdzenie, którego opis przedstawiamy na słr. 72 pozwala ekonomicznie regulować obroty silnika DC.
Sterowanie graficznych wyświetlaczy z telefonów komórkowych firmy Nokia >
Druga część artykułu, w którym autor Zdradza tajniki sterowania najtańszych wyświetlaczy graficznych. Słr. 83.
Dekoder-sterownik 7-segmento-wego wyświetlacza LCD w VHDL
Kolejny IP-projekt ilustrujqcy możliwości jednego z języków HDL i współczesnych układów programowalnych. Słr. 31.
Kamera termograficzna V-20
Polacy nie gęsi... Sprawdźcie to stwierdzenie na słr. 126. w
"Przedłużacz" do cyfrowego toru audio
Projekt prezentowany na słr. 37 przyda się użytkownikom nowoczesnego sprzętu audio, w którym w nie zawsze ustalonym porzqdku występujq wejścia/wyjścia optyczne I koaksjalne,
Czujniki zbliżeniowe firmy Omron
Omron dla automatyki robi niemal wszystko - słr. 129h
Zimno, zimno, ciepło, A czyli Ldmpómittari
Dotrzymujemy słowa i na słr. 77 przedstawiamy opis programu na PC, spełniajqcego rolę termometru współpracujqcego z czujnikami DS18x20.
Płytki drukowane A w domu
Domowe sposoby wykonywania płytek drukowanych "pachnq" wiedzq tajemnq. Ich tajniki przedstawiamy w pierwszej części artykułu na słr. 51.
VersaMax - nowoczesne sterowniki PLC
GE Fanucjest producentem sporej rodziny interesujqcych sterowników PLC. Garść podstawowych informacji na ich temat przedstawiamy na słr. 135. w
IKA
Nr 6(126)
czerwiec 2003
14 21 25
31 37 41 45
Ś
71 72
51
Akwizycja danych przez Ethernet -zdalny moduł pomiarowy, część 1 ...............................................................
Korektor sygnału wideo.........................................................
PHANTOM - dekoder surround, część 1 ..............................
Dekoder-sterownik 7-segmentowego wyświetlacza LCD wYHDL......................................................................................
"Przedłużacz" do cyfrowego toru audio.............................
"Klocki" RS485, część 1 ..........................................................
Girder -współpraca z nadajnikiem RC5 AYT-5104............
Mi ni projekty
Regulator temperatury w akwarium...............
Krokowy sterownik silnika DC.........................
Notatnik Praktyka
Płytki drukowane w domu, część
Programy]
Protel DXP - przełom na rynku narzędzi EDA
dla elektroników, część 4........................................................62
Autorouter Specctra, część 5.................................................69
Zimno, zimno, ciepło, czyli Lampomittari..............................77
Sprzęt |
Sound Blaster Audigy 2 Platinum eX..............
Podstawy projektowania systemów
mikroprocesorowych, część 4................................................81
Sterowanie graficznych wyświetlaczy z telefonów komórkowych firmy Nokia, część 2.......................................83
Język C dla mikrokontrolerów 8051, część 13......................86
Automatyka
Kamera termograficzna V-20............................................... 126
^Czujniki zbliżeniowe firmy Omron......................................... 129
Wielofunkcyjna programowalna karta
licznikowa APCI-1710.............................................................;," 132
VersaMax - nowoczesne sterowniki PLC............ixw,......... 135
Projekty Czytelników
Inteligentna ładowarka akumulatorów NiCd/NiMH...........89
Z kraju i ze świata........................................................115
Kramik+Rynek.....".........................................................93
Listy...................................................................................99
Ekspresowy Informator Elektroniczny.....................111
Wykaz reklamodawcow............................................114J
Elektronika Praktyczna 6/2003
PROGRAMY
Protel
Przełom na rynku narzędzi EDA dla elektroników, część 4
W tej części artykułu przedstawiamy zagadnienia dotyczące bibłiotek ełementów w DXP oraz mechanizmy wykorzystywane
przez Proteia, które zapewniają synchronizację danych
wykorzystywanych w projekcie. To właśnie te mechanizmy
dbają o to, aby połączenia na płytce drukowanej ścisłe
odpowiadały schematowi.
W programach nVisage i Protel DXP symbol schematowy jest "centrum" zawierającym kompletną definicję elementu. Podstawową reprezentacją elementu jest symbol graficzny, wykorzystywany do umieszczania na schemacie. Poza symbolem schematowy m, użytkownik może korzystać także z dołączanych do niego modeli, które opisują m.in. obudowę elementu, jego parametry elektryczne (wykorzystywane podczas symulacji] itp. nVisage obsługuje kilka rodzajów modeli, włączając w to: footprint (używany na PCB], symulacyjny (używany podczas symulacji obwodu], VHDL, EDIF oraz model analizy sygnałowej. Łącze do każdego wymaganego pliku modelu jest dodane do elementu, bądź na poziomie biblioteki elementów lub bezpośrednio na schemacie.
Tak samo, jak informacje wizualne i elektryczne są reprezentowane przez symbol schematowy i związane z nim pliki modeli, również wiele innych atrybutów lub parametrów może być zawartych w opisie elementu. Mogą to być np. parametry elektryczne ważne dla projektu (jak moc lub tolerancja parametrów elementu], jak również informacje potrzebne przy produkcji (takie jak numer magazynowy lub numer referencyjny w katalogu dostawcy]. Do opisu elementu możemy dodać dowolną liczbę parametrów, zarówno w bibliotece, jak i bezpośrednio na schemacie. Parametry mogą być również powiązane z bazą danych, obsługującą przykładowo firmowy system magazynowy.
- siJ.jm. [~ *
Rys. 1. Właściwości elementów sq dostępne z poziomu okienko dialogowe-
Właściwości elementu, włącznie z modelami i parametrami, dostępne są z poziomu okienka dialogowego Cornponent Proper-ties (rys. 1).
Zintegrowane biblioteki elementów
Zazwyczaj każdy rodzaj modelu jest zdefiniowany w osobnym pliku zawierającym opis modelu lub bibliotece, z których każdy ma inny format. Potrzeba obsługi wielu zróżnicowanych formatów modeli powoduje, że nie są one przechowywane w symbolu schematu, tylko połączone z nim. Dzięki temu, jeden model może być powiązany z wieloma elementami - np. ten sam model symulacyjny wzmacniacza operacyjnego może dotyczyć wielu elementów różnych producentów, podobnie jak ten sam model obudowy [PCB footprint) może być identyczny dla wielu elementów na schemacie. Takie podejście powoduje niedogodność, polegającą na tym, że musimy zarządzać wieloma plikami. W bibliotece zawierającej dużo elementów, z których każdy wykorzystuje wiele modeli, liczba plików może być ogromna.
Aby rozwiązać ten problem, środowisko DXP wspomaga tworzenie oraz obsługę tzw. zintegrowanych bibliotek elementów. Zintegrowana biblioteka elementów to kompletny i przenośny pakiet symbolów schematowych, obudów, modeli Spice, VHDL, EDIF i modeli analizy sygnałowej.
Bibliotekę zintegrowaną budujemy, tworząc tzw. library packags. Jest to specjalny typ projektu, który określa, jakie elementy wchodzą w skład biblioteki zintegrowanej. Po skompilowaniu tworzy pojedynczy, przenośny plik biblioteki zintegrowanej (*.IntLib). Taka skompilowana forma biblioteki nie może być edytowana, ale może być dodana i używana w środowisku DXP podobnie jak inne rodzaje bibliotek.
Z arz ą dz an ie p ar ametr am i elementów
Jak wspomnieliśmy wcześniej, oprócz wielu informacji elektrycznych i graficznych dostępnych w symbolu schemato-wym, opis elementu może zawierać cały
szereg dodatkowych informacji, przydatnych podczas projektowania, zamawiania elementów lub montażu urządzenia. Definiujemy je w postaci parametrów, które możemy dodawać do elementu na poziomie biblioteki lub wprost na schemacie.
Edytor schematów DXP zawiera potężny edytor parametrów, ułatwiający zarządzanie parametrami elementów. Dostępny jest z poziomu menu Tools>Poi-ainstr Manager. Po uruchomieniu, w pierwszej kolejności określamy zakres obiektów, których parametry chcemy przeglądać lub modyfikować. Następnie pojawia się tabela Parametr Table Editor (rys. 2], która pozwala na dodawanie i usuwanie parametrów oraz edycję jednego lub wielu parametrów jednocześnie.
Łączenie elementów z bazą danych
Projektowanie w programie nVisage lub Protel jest jednym z etapów opracowania produktu. Aby sprawnie zarządzać całym procesem projektowania (zwłaszcza w warunkach firmowych], wskazane jest zapewnienie przepływu danych pomiędzy środowiskiem DXP oraz innymi systemami funkcjonującymi w przedsiębiorstwie, jak np.
Rys. 2. Tobelo Parametr Tobie Editor pozwalająca na dodawanie, usuwanie i edycję parametrów
Rys. 3. Widok okna Dotobose Link
62
Elektronika Praktyczna 6/2003
PROGRAMY
Rys. 4. Pierwszy krok działania kreatora Updofe Prom Llbrary pozwala m.in. wybrać arkusze schematowe do zaktu-
bazą danych elementów. Możemy to osiągnąć tworząc łącza pomiędzy elementami na schemacie i zewnętrzną bazą danych. Łączenie elementu z bazą danych pozwala na wprowadzenie dowolnych danych z basy do elementu. Dane te mogą być następnie wykorzystane podczas projektowania lub włączone do zestawień elementów tworzonych na zakończenie projektu.
Łącza są tworzone pomiędzy parametrami elementów na schemacie i zewnętrzną bazą danych za pośrednictwem tzw. Database Link (plik *.DBLink) dodanego do projektu. Program do realizacji łącza z bazą danych wykorzystuje standardowy interfejs ODBC systemu Windows lub wbudowany interfejs do obsługi baz MS Access i MS SQL Server. Oparcie na standardzie ODBC daje w praktyce możliwość sprzęgnięcia z dowolną bazą danych.
Zestawiając połączenie, w pierwszej kolejności wybieramy bazę danych, następnie wskazujemy pola tabeli, które będą odwzorowane w postaci parametrów projektowych oraz określamy sposób aktualizowania zmian. Wszystkie ustawienia możemy określić za pomocą narzędzia Database Link (rys. 3).
Zarządzanie aktualizacją elementów
Istotny problem z zakresu zarządzania elementami stanowi kontrola propagowania zmian wprowadzonych w elementach bib-
liotecznych do projektów, które ich używają. Kreator Updais Froin Library (rys. 4] daje pełną kontrolę nad procesem aktualizacji elementów, pozwalając na aktualizację na jednym lub więcej arkuszach schematów aktywnego projektu, z wykorzystaniem wybranej biblioteki. Aktualizacja danego typu elementu może być przeprowadzona dla jego wszystkich wystąpień w projekcie lub indywidualnie dla pojedynczych instancji.
Kreatora aktualizacji uruchamiamy z menu Tools>Updais ftorn Librariss. Jeśli jego ustawienia nam odpowiadają, wystarczy kliknąć przycisk Finish, żeby uruchomić aktualizację. Pojawi się typowe okienko funkcji ECO [Er/gineering Change Order), widoczne na rys. 4, które pokazuje szczegółowo wszystkie zmiany, jakie zostaną naniesione. Klikając przycisk Execiite Changes, ostatecznie uruchamiamy proces aktualizacji.
Jeśli zależy nam na indywidualnej aktualizacji poszczególnych wystąpień tego samego elementu na schemacie, przechodzimy do drugiej strony kreatora, naciskając przycisk Next. Na rys. 5 widać, że mamy indywidualny dostęp do każdego elementu i możemy indywidualnie konfigurować parametry aktualizacji. Następnie przyciskiem Finish uruchamiamy nanoszenie zmian, co powoduje start funkcji ECO i w efekcie dokonanie odpowiednich zmian w projekcie.
Definiowanie reguł projektowych PCB na schemacie
Protel DXP pozwala na definiowanie, już na poziomie schematu, reguł projektowych PCB, które określają szczegółowe parametry obwodu drukowanego, jak np. szerokość ścieżki lub wielkość odstępu pomiędzy elementami na płycie.
Reguły te dodajemy na schemacie w postaci parametrów, wykorzystując przycisk Add as Riile. Zasięg działania reguły jest uzależniony od miejsca na schemacie, w którym umieścimy określający ją parametr. Przykładowo, reguła zdefiniowana dla elementu na schemacie będzie się odnosić do jego odpowiednika na PCB, reguła określona dla połączenia na PCB ma
nVisage vs Protel DXP
nVisage DXP to nowy program firmy Altium, przeznaczony dla projektantów elektroników. Wykorzystuje on środowisko DXP - to samo, co Protel DXP. nVisage jest kompatybilny zDprogramem Protel DXP-projekty stworzone wDnVisage mogą być otwierane iDprzetwa-rzanewDProtelu. nVisage jest określany mianem multi-dimensionaldesign capturetool, ponieważDintegruje kilka różnych narzędzi potrzebnych do tworzenia iDanalizy projektów na wiele sposobów, zarówno pod kątem ich implementacji na płycie PCB, jaki DwDdowolnym układzie FPGA. Całość jest doskonale zintegrowana za sprawą środowiska Design Explorer (DXP). nVisage zawiera m.in. edytor schematów, wspomagający tworzenie projektów hierarchicznych i D wielo kanałowych, za pomocą którego możemy budować projekty przeznaczone zarówno do implementacji wDukładach programowalnych FPGA, jak iDna płycie drukowanej, np. zD wy korzy staniem edytora PCB programu Protel. Wbudowany kompilator kodu VHDL pozwala na projektowanie układów logicznych wQjęzykuVHDL, lub używając obu technik jednocześnie-schematówDiDkoduVHDL.nVisage oferuje również kilka narzędzi do analizy i Dweryfikacji, m.in. analogowo-cyf rowy symulator obwodów klasy Spice 3f5/ XSpice, symulator VHDL oraz moduł Signaifntegrity za pomocąDktórego możemy przeprowadzić przybliżoną analizę sygnałową obwodu na podstawie schematu.
Rys. 5. W drugim kroku działania kreatora Updote Prom Librory mamy dostęp do każdego elementu i możemy indywi-
zasięg sieci (net) związanej z danym połączeniem.
Możliwość definiowania reguł PCB na schemacie nie przeszkadza ani nie wyklucza możliwości ich określania wprost w edytorze PCB. Jednak w pewnych warunkach jest to wygodniejsze, ponieważ schemat ideowy pozwala prościej wyodrębnić fragmenty, dla których parametry obwodu drukowanego powinny być ściśle określone.
Interfei s do Sys tem u Zarządzania Wersjami
Kolejną cechą Protela DXP, o niebagatelnym znaczeniu dla większych biur projektowych, jest możliwość współpracy z systemem zarządzania wersjami. Systemy takie pozwalają na synchronizację pracy kilkuosobowego zespołu nad jednym projektem, ułatwiając utrzymanie spójności projektu i dostępność najbardziej aktualnych wersji dokumentów dla wszystkich członków zespołu. Protel DXP posiada interfejs kompatybilny ze standardem Visti.al SourceSafe. Dostęp do wszystkich funkcji systemu zarządzania wersjami odbywa się wprost ze środowiska DXP.
Synchronizacja projektu
Jednym z zasadniczych wyzwań stojących podczas projektowania PCB jest utrzymanie zgodności pomiędzy schematem i PCB. W czasie pracy wprowadzamy ciągłe zmiany - na schematach, na PCB lub równocześnie w kilku miejscach -i zmiany te muszą być przenoszone do innych dokumentów projektowych. Tradycyjnie (m.in. w Protelu 99SE] jest to robione za pomocą różnego rodzaju plików, na przykład za pomocą listy połączeń (netlist) lub pliku ECO. Inaczej jest w środowisku DXP, gdzie synchronizacja jest wykonywana bezpośrednio pomiędzy schematem
Rys. ó. W tym oknie dialogowym jest pokazywany stan wzajemnych powiązań elementów
64
Elektronika Praktyczna 6/2003
PROGRAMY
Rys. 7. Widok okno dialogowego Engi-neering Chonge Order
ZSZ I2T


Rys. 8. W tym oknie jest wyświetlono listo rozbieżności wygenerowano w efek-
i PCB. Synchronizacja w DXP jest również dwukierunkowa, to znaczy, że zmiany mogą być przenoszone w obu kierunkach podczas jednego procesu synchronizacji.
U podstaw synchronizacji projektu w programach nVisage i Protel DXP leży potężny mechanizm porównujący, tzw. coinparison engine. Mechanizm ten jest wykorzystywana do porównywania dokumentów źródłowych (schematów] projektu z PCB. Mechanizm porównujący dokonuje kompletnego porównania wszystkich istotnych aspektów każdego projektu, włączając w to dane elementów, takie jak oznaczenie, wartość, model PCB i związane z nimi parametry, jak również informacje o połączeniach, włączając w to nazwy sieci i ich węzły.
Kluczem do synchronizacji pomiędzy schematem i PCB jest powiązanie każdego elementu na schemacie z odpowiadającym mu elementem na PCB. W programie Protel DXP może to być zrobione na dwa sposoby - poprzez oznaczenie elementu lub unikalny identyfikator. Stan powiązań elementów możemy sprawdzić, wybierając polecenie Coinponent Links z menu Project w edytorze PCB . W oknie dialogowym widocznym na rys. 6 jest widoczny stan powiązań elementów. Elementy, które są powiązane za pomocą
O).
unikalnego ID, są pokazane w części Mai-ched Coinponents po prawej stronie okna, zaś elementy, które nie są dopasowane przez unikalny ID, są pokazane w dwóch polach po lewej stronie. Posługując się kontrolkami u dołu okna dialogowego, możemy szybko dopasować elementy według określonych kryteriów, takich jak oznaczenie, komentarz czy foot-prini. Możemy również wybrać z listy niedopasowane elementy schematu i PCB i powiązać je ręcznie.
Wspomnieliśmy wcześniej, że podczas synchronizacji program bazuje na powiązaniach elementów za pomocą unikalnych ID lub oznaczeń, ale nie na podstawie innych parametrów jak np. footp-rint czy komentarz. Najlepiej jest dopasowywać elementy, używając unikalnych ID, ponieważ pozwala to na większą swobodę przy zmianie oznaczeń na schemacie lub PCB, bez obawy o utratę synchronizacji po renumeracji elementów. Program automatycznie generuje unikalne identyfikatory podczas rozmieszczania elementów na PCB. Konieczność ręcznego powiązania występuje rzadko, w nietypowych sytuacjach, kiedy np. ręcznie umieścimy jakiś element wprost z biblioteki na PCB. Wtedy powiązania musimy utworzyć ręcznie, posługując się opisanym wcześniej narzędziem Coinponent Linking.
Synchronizację projektu, czyli przenoszenie zmian pomiędzy schematem i PCB uruchamiamy za pomocą funkcji Updats z menu Dssign. W wyniku tego pojawia się okno dialogowe Engine er ing Chonge Order widoczne na rys. 7, w którym są pokazywane wszystkie zmiany, jakie muszą być wprowadzone w dokumentach docelowych, aby je zsynchronizować.
Nie wszystkie różnice mogą być automatycznie skorygowane - przykładowo zmiany połączeń nie mogą zostać przeniesione wstecz z PCB do schematu. W takim przypadku pojawia się szczegółowa informacja o liczbie i przyczynach niemożliwości przeniesienia pewnych zmian.
Wspomnieliśmy wcześniej, że podstawą synchronizacji jest zaimplementowany w programie rozbudowany mechanizm porównujący, który w ogólnym przypadku może służyć do porównywania dowolnych dokumentów projektu np. PCB z listą połączeń, dwóch list połączeń pomiędzy sobą, arkusza schematu lub całego projektu z innym arkuszem schematu lub projektem itp.
Warto przyjrzeć się bliżej, jak pracuje mechanizm porównujący. Proces wykrywa-
b)

i i |l i I i * ;
-Ś" ^
* * 'Ś Ś * Ś ' z:
1 * ł "1 Ś
1
5 Ś t: i :
* Ś ! ! Ś
Ś
Rys. 9. Przykładowe dwa warianty tej samej płyty drukowanej: pozbawiona części
Rys. 10. Widok okna dialogowego Voriont Management, w którym sq
ni a i rozwiązywania różnic przebiega w kilku etapach:
- Porównanie widoków projektu: typowo jest to schemat i PCB. Proces porównywania uruchamiamy, wybierając Update z menu Design lub wybierając Show Dif-ferences z menu Project.
- Generowanie listy różnic: jeśli wybraliśmy polecenie Update, to Protel DXP wie, w którą stronę chcemy przenieść zmiany, więc okno dialogowe Differen-ces się nie pojawia. Jeśli wybraliśmy Show Differences, to wszystkie różnice pokazują się w okienku Differences.
- Ustawienie kierunku zmian: możemy ustalić kierunek przenoszenia zmian np. ze schematu do PCB lub odwrotnie, identyczny dla wszystkich wykrytych różnic lub dla każdej indywidualnie.
- Generowanie listy różnic: po ustawieniu kierunku zmian, generujemy tzw. ECO -jest to lista czynności, które zostaną wykonane, aby usunąć różnice.
- Zastosowanie zmian: uruchamiamy ECO, aby wprowadzić wszystkie zmiany. Okno pokazane na rys. 8 pokazuje przykładową listę rozbieżności wygenerowaną w efekcie uruchomienia mechanizmu porównującego z poziomu menu Pro-}ect>Show Differences.
Warianty złożeniowe
nVisage i Protel DXP obsługują warianty złożeniowe. Tworzymy je, kiedy chcemy zaprojektować jeden obwód PCB, ale obsadzony elementami w różnych konfiguracjach - każda konfiguracja to jeden wariant złożeniowy.
Warianty definiujemy po uprzednim zaprojektowaniu kompletnej płyty PCB. Po wybraniu z menu Pio}ect>Variants, pojawia się okno dialogowe Variant Management (rys. 10], które pokazuje zestaw elementów występujących w całym projekcie. Możemy usunąć wybrane elementy z danego wariantu, ustawiając opcją Not Fitted w odpowiednim miejscu tabeli widocznej na rys. 10. Dla każdego wariantu możemy wygenerować właściwe dla niego zestawienia elementów, pliki sterujące do maszyny montującej elementy oraz rysunki montażowe. Grzegorz Witek, Evatronix
Dodatkowe informacje
Dodatkowe informacje można uzyskać w firmie Evatronix, www.evatronix.com.pl
Elektronika Praktyczna 6/2003
65
SPRZĘT
Wykrywanie losowych cz?sc 2 anomalii sygnału za pomocą oscyloskopów cyfrowych
Zgodnie z obietnicą sprzed miesiąca, w drugiej części artykułu postaramy się dowieść, że na podstawie zapamiętanych próbek fragmentu sygnału zawierającego zaburzenie można wykryć poszukiwań ą anomalię w tym sygnale.
Taka sytuacja wy-stępuje jednak tylko wtedy, gdy zabiegi mające na celu minimalizację czasu martwego oscyloskopu nie prowadzą jedno- -^ cześnie do ograniczenia rozdzielczości (częstotliwości próbkowania i głębokości pamięci) z jaką jest reprezentowany sygnał w czasie trwania akwizycji. Na rys. 2 pokazano, jak odległości między kolejnymi próbkami sygnału (rozdzielczość czasowa) wpływają na zdolność wykrycia przez oscyloskop zaburzenia sygnału. Słuszny może być wniosek, że klasyczna definicja prawdopodobieństwa wykrycia losowych zaburzeń jest niewystarczająca i istnie-
rui
Badany sygnał z zaburzeniem
Odwzorowania z dobrą rozdzielczością
Odwzorowanie ze zbyt małą rozdzielczością
rvr\J
Rys. 2
je potrzeba wprowadzenia nowej miary uwzględniającej oprócz czasu martwego również inne - mające wpływ na zdolność wykrywania anomalii -parametry oscyloskopu. Dobrą miarą, obejmującą zarówno prawdopodobieństwo pojawienia się zaburzenia w czasie akwizycji, jak i prawdopodobieństwo wykrycia go na podstawie zebranych próbek, jest liczba punktów zebranych w dłuższym czasie, obejmującym okresy akwizycji i okresy martwe. Dla uproszczenia nazwijmy ten nowy parametr średnią częstotliwością próbkowania i wyjaśnijmy różnicę między nim a częstotliwością próbkowania podawaną zwykle w specyfikacjach technicznych oscyloskopów. Otóż częstotliwość próbkowania okreś-
la liczbę próbek zebranych w jednostce czasu w okresie akwizycji sygnału, natomiast średnia częstotliwość próbkowania to liczba punktów przebiegu (próbek) zebranych w okresie, który obejmuje zarówno czas akwizycji, jak i czas martwy oscyloskopu. Średnia częstotliwość próbkowania zawiera zatem oprócz informacji o rozdzielczości czasowej także informację o częstotliwości odświeżania ekranu. Obejmuje więc obydwa czynniki wpływające na prawdopodobieństwo wykrycia losowych zaburzeń sygnału.
Na rys. 3 przedstawiono wykresy zależności średniej częstotliwości próbkowania od szybkości podstawy czasu dla czterech różnych oscyloskopów. Dwa z nich są wyposażone w tryb pra-
Elektronika Praktyczna 1/2003
57
SPRZĘT
50ns/div
Średnia częstotliwość próbkowania
100na/div 5 ma/div 200 ma/div
w zależności od szybkość podstawy czasu
Agllent 54832B
Agllent 54642A
FA1
FA2
Rys. 3
cy Fast Acąuisition (FAl i FA2), natomiast dwa są produktami firmy Agilent wyposażonymi w głęboką pamięć typu MegaZoom. Są to reprezentanci rodziny Infinium (54832B oraz 54642A) zawierającej 9 modeli (546xx), której główną cechą - obok pamięci MegaZoom - jest system zobrazowania Me-gaVision oparty na monochromatycznym wyświetlaczu typu CRT. System MegaVision charakteryzuje się wysoką rozdzielczością (1000 punktów w poziomie) oraz ąuasi-trójwymiarowym (takim, jak w oscyloskopach analogowych) odwzorowaniem przebiegu, które uzyskiwane jest dzięki 32 poziomom intensywności świecenia sterowanej cyfrowo lampy CRT. Jak wcześniej pisaliśmy, pomysł zastosowany przez
projektantów oscyloskopów wyposażonych w tryb FA polega na minimalizacji czasu martwego oscyloskopu za cenę redukcji częstotliwości próbkowania i głębokości pamięci w tym trybie pracy w stosunku do maksymalnych wartości tych parametrów podanych w specyfikacji producenta. Wyniki takiego podejścia są bardzo dobrze widoczne na rys. 3. Dla szybkich podstaw czasu oscyloskopy FAl i FA2 są w stanie zebrać znaczną liczbę punktów, ponieważ odświeżanie ekranu dokonuje się z bardzo dużą szybkością i parametr ten w tych warunkach wpływa w sposób kluczowy na średnią częstotliwość próbkowania. Dla wolniejszych podstaw czasu zaczynają dominować efekty związane z ograniczeniem w trybie FA częstotliwości próbkowania oraz głębokości pamięci. Inaczej jest w przypadku oscyloskopów firmy Agilent. Położenie nacisku na efektywne zarządzanie głęboką pamięcią oraz optymalizację rozdzielczości w czasie pracy oscyloskopu daje o wiele większą średnią częstotliwość próbkowania w dość szerokim zakresie nastaw podstawy czasu w stosunku do oscyloskopów FA, a tym samym więk-
sze prawdopodobieństwo wykrycia losowego zaburzenia sygnału.
Reasumując możemy stwierdzić, że wybór odpowiedniego oscyloskopu pod kątem wykorzystania go do wychwytywania rzadko występujących losowych zaburzeń sygnałów zależy od typu aplikacji. Tam, gdzie można użyć bardzo szybkich podstaw czasu, np. gdy chcemy wychwycić stany metastabilne przerzutników, lepsze będą oscyloskopy pracujące w trybie FA. Natomiast aplikacje wymagające wykrywania losowych nieprawidłowości w przebiegach transmisji cyfrowych, gdzie potrzebna jest duża rozdzielczość, przy jednocześnie relatywnie wolnej podstawie czasu, stanowią znakomite pole wykorzystania interesujących właściwości oscyloskopów z pamięcią MegaZoom firmy Agilent Technologies.
MegaZoom - nowy sposób zarządzania pamięcią oscyloskopu
Oscyloskopy firmy Agilent osiągają bardzo duże średnie częstotliwości próbkowania, a co za tym idzie duże prawdopodobieństwa wykrywania rza-
dko występujących anomalii sygnału w szerokim zakresie szybkości podstaw czasu, dzięki zastosowaniu techniki efektywnego zarządzania pamięcią MegaZoom. Implementacja tej techniki wymagała modyfikacji znanej dotąd klasycznej architektury oscyloskopu cyfrowego. Ideę tej modyfikacji zaprezentowano na rys. 4.
W dotychczasowych konstrukcjach oscyloskopów centralny procesor obsługiwał wiele funkcji. W sekwencyjny sposób wykonywane były działania związane z czytaniem z pamięci akwizycji, przetwarzaniem zebranych próbek sygnału, wyświetlaniem wyliczonych punktów na ekranie oraz monitorowaniem nastaw na panelu czołowym. W czasie pracy z dużymi strumieniami danych (z głęboką pamięcią) dochodziło więc do przeciążenia procesora, co wiązało się z bardzo wolnym odświeżaniem ekranu oraz mocno spóźnionymi reakcjami przyrządu na zmiany ustawień parametrów pracy. Wprowadzając wieloprocesorową architekturę typu MegaZoom, wydzielono funkcje związane z szybkim (typu ping-pong) odczytywaniem i zapisywaniem pamięci akwizycji oraz przetwarzaniem sygnałów (generacja przebiegu przeznaczonego do wyświetlenia na ekranie, obliczanie wyników pomiarów z próbek) i zaimplemento-wano je sprzętowo w specjalizowanym układzie ASIC, który komunikuje się z pozostałymi blokami systemu komputerowego oscyloskopu za pośrednictwem magistrali PCI. Pozostałe funkcje oscyloskopu pozostały w gestii centralnego procesora systemowego.
Przedstawione podejście zaowocowało około 25-krotnym zwiększeniem szybkości odświeżania ekranu oraz znaczną poprawą szybkości reakcji oscyloskopu na zmianę nastaw na panelu czołowym. Ważną właściwością prezentowanego rozwiązania jest również to, że głębokie pamięci (rzędu od 2 Mpkt. do 16 Mpkt.) wykorzysty-
Architektura konwencjonalnego oscyloskopu cyfrowego
Architektura oscyloskopu typu ME$J
oum
Przetworniki A/C
Układ
specjalizowany MegaZoom
Procesor CPU
Ekran oscyloskopu
Rys. 4
Głęboka
pamięć
akwizycji
58
Elektronika Praktyczna 1/2003
SPRZĘT
4GSa/s 200 |is/div
Rys. 5
wane są przez cały czas pracy oscyloskopu, a nie tylko w specjalnym trybie, jak miało to miejsce we wcześniejszych konstrukcjach. Specjalnie zaimplementowany algorytm ustawia głębokość pamięci tak, aby dla danej nastawy podstawy czasu uzyskać maksymalną częstotliwość próbkowania, co jest równoznaczne z maksymalną, możliwą do uzyskania rozdzielczością. Rozdzielczość ta jest dla szybkich podstaw czasu ograniczona maksymalną częstotliwością próbkowania oscyloskopu, zaś dla powolnych - maksymalną głębokością pamięci. Zachowanie optymalnej rozdzielczości podczas pracy oscyloskopu przy jednoczesnym zastosowaniu głębokiej pamięci i szybkiego próbkowania stwarza, oprócz podkreślanej już wcześniej wysokiej szybkości odświeżania ekranu, możliwość akwizycji bardzo dużej liczby próbek, co z kolei umożliwia uzyskanie bardzo efektywnej lupy czasowej (funkcja zoom). "Działanie" tej funkcji pokazano na rys. 5. Na górnym ekranie widać ciąg impulsów transmisji cyfrowej z zakłóceniami, który uzyskano przy nastawach: częstotliwość próbkowania - 4 GSa/s, głębokość pamięci -
16,5 Mpkt., podstawa czasu - 200 jis/ dz. Następnie zatrzymano akwizycję i zmieniono nastawę podstawy czasu na 200 ns/dz., kontrolując jednocześnie, aby zakłócony fragment sygnału był cały czas widoczny na ekranie oscyloskopu. Dzięki funkcji zoom (a-kwizycji bardzo dużej liczby próbek) możemy, jak widać, dokładnie "przyjrzeć" się zakłóceniom sygnału. Właściwość ta przydaje się również w innych sytuacjach, jak np. przeglądanie długich odcinków czasowych sygnałów czy poszukiwanie charakterystycznych cech przebiegu w sytuacji, kiedy nie bardzo wiadomo, w jaki sposób ustawić wyzwalanie, aby spowodować pojawienie się ich na ekranie oscyloskopu.
Podsumowanie
Potrzeba detekcji i analizy sporadycznych losowych anomalii sygnałów pojawiła się w wielu współczesnych aplikacjach sprzętowych i z tego względu zdolność oscyloskopów do wychwytywania tego typu zakłóceń w odpowiednio krótkim czasie stała się ich istotną i pożądaną cechą. Miarą tej zdolności jest prawdopodobieństwo wykrycia rzadko występujących
zaburzeń sygnału, które dotychczas wyznaczane było jedynie na podstawie szybkości odświeżania ekranu oscyloskopu. Przeprowadzona w niniejszym artykule analiza wykazała, że takie podejście jest niewystarczające i nie w pełni adekwatne do rzeczywistości. Zaproponowano zatem nową miarę, a mianowicie średnią częstotliwość próbkowania, która obejmuje nie tylko prawdopodobieństwo pojawienia się zaburzenia w czasie akwizycji, ale szacuje również szansę na to, że rozdzielczość z jaką pracuje wtedy oscyloskop pozwoli na rozpoznanie zakłócenia, a być może umożliwi również bliższe "przyjrzenie" się jego naturze.
W artykule opisano również krótko dwie, wprowadzone przez duże korporacje produkcji sprzętu pomiarowego, metody konstrukcji oscyloskopów o nowoczesnej architekturze, których celem jest między innymi maksymalizacja prawdopodobieństwa detekcji rzadko występujących anomalii sygnału. Pierwsza z nich (oscyloskopy ze specjalnym trybem Fast Aącuisi-tion) kładzie nacisk tylko na maksymalizację częstotliwości odświeżania ekranu oscyloskopu w trybie FA, dzięki czemu uzyskuje się wysokie średnie częstotliwości próbkowania dla szybkich podstaw czasu. Rezultatem zastosowania drugiej - szerzej opisanej w artykule - metody projektowej są oscyloskopy typu MegaZoom firmy Agilent Technologies. Przyrządy te, dzięki efektywnemu zarządzaniu pamięcią, osiągają bardzo wysokie średnie częstotliwości próbkowania w szerokim zakresie nastaw podstawy czasu. Porównanie obydwu tych podejść skłania do wniosku, że wybór odpowiedniego oscyloskopu do wychwytywania i analizy sporadycznych zaburzeń sygnału zależy generalnie od rodzaju aplikacji. Jacek Falkiewicz AM Technologies Polska jacek.falkiewicz@amt.pl
60
Elektronika Praktyczna 1/2003
REKLAMA
Przetwornice DC/DC o mocy 20 W do montażu SMD
W ofercie firmy Traco Power pojawiła się nowa \ rodzina przetwornic DC/DC o mocy wyjściowej 20 W - TES-20. Ich najważniejsze cechy i właściwości przedstawiamy w artykule.
TES-20 to nowocześnie zaprojektowane i wykonane przetwornice DC/DC przystosowane do montażu powierzchniowego. Są to przetwornice należące do rodziny TES-xx, której cechą charakterystyczną jest przystosowanie do montażu powerzchniowego (fot. 1).
Przetwornice TES-20 są dostarczane w obudowach o wymiarach zbliżonych do DIP18 (fot. 2), przy czym końcówki wyprowadzeń są podgięte w laki sposób, że .kładą" się na punktach lutowniczych. Na spodzie obudowy znajdują się dwa kołeczki pozycjonujące, dzięki którym przetwornica po umieszczeniu na płytce (przed lutowaniem) nie zmienia swojego położenia. Ciężar kompletnej przetwornicy wynosi 32 gramy.
Przetwornice TES-20 charakteryzują się dużą sprawnością energetyczną (81 ...87%, w zależności od modelu), mogą pracować w szerokim zakresie temperatur: -25...+71C (zwłaszcza, że nie wymagają zewnętrznego radiatora), a gwarantowane przez producenta napięcie przebicia izolacji pomiędzy wejściem i wyjściem wynosi 1,6 kV. Gwarantowany średni czas bezawaryjnej pracy prezentowanych przetwornic wynosi 340000 godzin (ponad 38 lat), który uwiarygadnia 2-letnia gwarancja udzielana na wyrób przez producenta.
Wszystkie oferowane wersje przetwornic TES-20 są przystosowane do zasilania napięciem 48 VDC, ale jest dopuszczalne zasilanie napięciem z przedziału 36..75 VDC. Dostępnych jest pięć wariantów przetwornic o napięciach wyjściowych: 2, 3,3, 5, 12 i 15 V (najwyższą sprawność energetyczną osiągają przetwornice o napięciach wyjściowych 5, 12 i 15 V). Obwody wyjściowe zabezpieczono za pomocą bezpiecznika przeciwzwarciowego, który zapewnia bezpieczeństwo obwodom elektronicznym podczas zwarcia trwającego nieskończenie długo. Stabilność temperaturowa napięcia wyjściowego we wszystkich przetwornicach wynosi ok. ą0,02%/K, a stabilność w funkcji obciążenia nie
POWER
jest gorsza niż ą1% przy zmianie prądu wyjściowego od
0 do 100%. Według specyfikacji producenta, napięcie tętnień występujących na wyjściu przetwornicy może osiągać wartość 50 mVpp w przypadku wersji o napięciach wyjściowych 2 i 3,3 V i ok. 75 mVpp w przypadku przetwornic o wyższych napięciach wyjściowych. Dzięki wyposażeniu przetwornic w wejście zdalnego sterowania, można je włączać
1 wyłączać przez podanie na nie napięcia sterującego o odpowiedniej wartości. W stanie .uśpienia" przetwornice pobierają prąd o maksymalnym natężeniu 16 mA (i ok. 35 mA podczas pracy bez obciążenia). Standardowym wyposażeniem przetwornic TES-20 jest także wejście służące do korekcji wartości napięcia wyjściowego. W tym celu niezbędne jest dołączenie do przetwornicy zewnętrznego potencjometru lub dwóch rezystorów o dużej dokładności i stabilności temperaturowej.
Fot, I, Wyglgd przetwornic z rodziny TES-xx
Fot, 2, Wyglgd przetwornic1/ TES-20
Niezależnie od modelu, pracują one ze stałą częstotliwością taktowania wynoszącą 300 kHz, a napięcie wyjściowe jest regulowane za pomocą modulacji PWM. W przetwornice wbudowano filtry przeciwzakłóceniowe, dzięki którym spełniają one ostre wymagania norm EN55022, Class A oraz FCC, Class A. Producent zadbał także o bezpieczeństwo ich użytkowania, co zostało potwierdzone certyfikatami UL1950 i EN60950/IEC60950.
Nowe przetwornice firmy Traco Power, ze względu na .przemysłową" wartość napięcia zasilającego, są przeznaczone przede wszystkim dla aplikacji telekomunikacyjnych i przemysłowych. Ich duża trwałość i niezawodność z pewnością otworzą drogę także do szeregu innych wysublimowanych aplikacji.
Dystrybutorem firmy Traco jest Amtek spof. sr.o.tef. (22) 874-02-34, amtek@amtek.pl www.amtek.cz.
Dodatkowe informacje techniczne są dostępne w fnternecie pod adresem http:jjwww.tracopower.comjproductsltes20.htm.
66
Elektronika Praktyczna 6/2003
SPRZĘT
Sound Blasłer Audigy 2 Plałinum eX CREATWE
Nieco historii
A na początku był Chaos. Zaraz po nim, w komputerowych kartach dźwiękowych pojawi! sie. SoundBlaster. I tak już zostało: SoundBlaster = Standard Dźwięku w komputerach PC. Istotnym zjawiskiem jest to, że karty Sound Blaster od czasu pojawienia się modelu AWE32, są również najpopularniejszymi kartami dźwiękowymi wśród muzyków -w końcu osób o znacznie większych wymaganiach jakościowych, niż przeciętny użytkownik PC.
Fundamentalna w tym zasługa specjalistów z firmy E-mu Systems -prekursorów nowoczesnych technologii dźwięku cyfrowego, w tym zaawansowanego samplingu. Wystarczy powiedzieć, że stworzony przez zespół Dave a Ros-sum a chipset dźwiękowy EMUS000 jest powszechnie wykorzystywany od prawie 10 lat!
Stworzenie chipsetu EMU10K1 to kolejny duży krok technologiczny w historii dźwiękowych układów do komputerów PC. Seria kart Live! udostępniając jako pierwsza zaawansowane technologie tworzenia dźwięku dookól-nego oraz dźwięku środowiskowego EAX z 32-bitowyrn, 5-kanałowym, 5-torowym rnul-tiprocesorem efektów stała się liderem rynku. Jej następcą jest seria kart Audigy z procesorem sygnałowym EMU10K.2 o dwukrotnie większej mocy obliczeniowej niż poprzedni.
Coraz większego znaczenia nabierają standardy dźwięku dookólnego, w którym sygnał jest rejestrowany i replikowany z rozdzielczością 24-bitową przy częstotliwości próbkowania 192 kHz. Producenci sprzętu audio wprowadzili normę techniczno-jakoś ci ową THX Lucas Film, której spełnienie gwarantuje najwyższej klasy dźwięk dookólny dla DVD Audio. Sound Blaster Audigy2 Platinum jest pierwszą kartą, która spełniła wysokie wymagania jakościowe i otrzymała certyfikat THX. System dźwiękowy Audigy 2 Platinum eX umożliwia również nagrywanie dźwięku w 6-kanałowym (5.1) standardzie 24-bit/96 kHz.
Przetworniki A/C i C/A
Na kompletny system audio składa się karta PCI oraz zewnętrzny insterfejs audio/MIDI. Dlaczego zewnętrzny? Wnętrze komputera to bardzo nieprzyjazne dla systemów dźwiękowych środowisko - zakłócenia powodowane są przez pracujące dyski, pola elektromagnetyczne, zasilacze i wentylatory. Wyprowadzenie na zewnątrz PC najbardziej wrażliwych na zakłócenia elementów - przetworników analogowo-cyfrowych - owocuje znakomitymi parametrami audio. Szczególnie, że w syste-
mie zastosowano najwyższej klasy 24-bitowe przetworniki analogowo-cyfrowe i cyfrowo -analogowe z S-krotnym nadpróbkowaniem {oversarnpling).
Dekodery dźwięku przestrzennego
Niezwykle istotną zaletą systemu dźwiękowego Audigy 2 Platinum eX jest wyposażenie we wspomagane sprzętowo algorytmy de-kodowania dźwięku cyfrowego standardów Dolby Digital (AC-3J, Dolby Pro Logic i Dolby Digital eX. Duże możliwości konfiguracji karty umożliwiają skierowanie drogą cyfrową zakodowanego sygnału z nośnika źródłowego tak na złącza optyczne, jak elektryczne.
Oprogramowanie sterujące
Nawet najdoskonalszy technicznie dźwiękowy system komputerowy jest tylko kawałkiem "żelastwa" bez odpowiedniego oprogramowania sterującego. Poziom komplikacji i złożoność konstrukcji takiej konstrukcji, jak Audigy 2 Platinum eX sprawia, że nie wystarczą jedynie proste sterowniki, by system operacyjny mógł "widzieć" kartę. Niezbędne jest zaawansowane oprogramowanie kontrolujące pracę wszystkich podsystemów karty.
A jest czym zarządzać! Sound Blaster Audigy 2 Platinum eX to złożony system składają cysię m.in. z:
- 24-bitowego, 6-kanałowego interfejsu wej-ścia-wyjścia z przetwornikami analogowo -cyfrowymi i cyfrowo-analogowy mi o dużej rozdzielczości,
- procesor dźwięku przestrzennego wraz z dekoderem Dolby Digital pracujący w trybie 5.1 (w domenie cyfrowej i analogowej) oraz 6.1 (w domenie analogowej),
- sprzętowo realizowany system dźwięku środowiskowego EAX i EAX Advanced HD,
- moduł zarządzania wielokanałowym systemem głośnikowym CMSS 3D,
- zaawansowane algorytmy skalowania czasowego plików dźwiękowych i zmiany wysokości dźwięku,
- procesor renowacji dźwięku z takimi elementami, jak declicker (eliminator trzasków płyt winylowych) czy denoiser (eliminator szumu),
- profesjonalny 64-głosowy sprzętowy sarnp-ler oparty na technologii E-mu System z możliwością współpracy z bogatą biblioteką barw i sampli standardu Sound-Font 2.1 z opatentowaną przez Creative Labs technologią S-punktowej interpolacji dźwięku,
- programowy syntezator o nieograniczonej polifonii.
Jeszcze pięć lat temu
posiadanie w domu
pełnowartościowego studia
nagraniowego pozwalającego
nagrywać i odtwarzać dźwięk
dookólny pozostawało
w sferze marzeń. Dzięki
najnowszej propozycji
potentata na rynku muzycznych kart dźwiękowych
do komputerów - firmy
Creative Labs - problem ten
został rozwiązany.
Sercem systemu zarządzania dźwiękiem środowiskowym jest konsola miksera, z poziomu którego mamy dostęp do wszelkich elementów konfiguracyjnych sterujących systemem EAX Advanced HD i konfiguracją wielokanałowego systemu głośnikowego.
Podłączamy
Cechą charakterystyczną systemu dźwiękowego kart Sound Blaster Audigy 2 Platinum eX jest duża liczba złączy audio. Na karcie PCI dostępne są trzy złącza stereofoniczne do podłączenia analogowych zestawów głośnikowych dźwięku dookólnego 5.1 wyposażony w 24-bitowe przetworniki analogowo-cyfrowe.
Dostępne są właściwie wszelkie typy przyłączeń zarówno cyfrowych jak i analogowych. Cyfrowe są reprezentowane przez elektryczne wejście i wyjście S/PDIF (cinch), optyczne wejście i wyjście (TOS-Link) oraz wyjściowe złącze cyfrowe służące do podłączenia cyfrowego zestawu głośnikowego dźwięku dookólnego 5.1. Złącza cyfrowe pracują niezależnie od siebie, czyli można jednocześnie używać podłączeń elektrycznych, jak i optycznych.
Zastosowania muzyczne
Potencjał testowanej karty znacząco wykracza poza zastosowania domowe - producent przygotował Audigy 2 Platinum eX również do tworzenia i nagrywania muzyki. Wyposażenie karty w nowoczesne sterowniki ASIO 2 oferujące minimalne opóźnienie sygnału na poziomie 2 ms (!) czyni z niej idealne narzędzie dla muzyka pracującego na komputerze. Do karty jest dołączane bardzo wartościowe oprogramowanie muzyczne obejmujące wielokanałowy system rejestracji i miksowania muzyki audio/MIDI (Steinberg Cubasis VST 4.0) z dołączonymi wirtualnymi instrumentami VSTi i procesorami efektów VST, zaawansowany edytor plików dźwiękowych (Steinberg WaveLab Lite), program miksujący dla Djów (NI Tractor2) oraz zaawansowany multi instrument FruityLoops 3. Najistotniejsze jednak w tym wszystkim jest to, że wszystkie te programy są bardzo intuicyjne i proste w obsłudze. Z takim "uzbrojeniem" nietrudno pokusić się o komponowanie. CL
68
Elektronika Praktyczna 6/2003
Aułoroułer
PROGRAMY
Prezentację oprzemy na jednym z plików przykładowych (rys. 7). Przyjmując, że dokonaliśmy ustawień dotyczących wymaganego rastra, jaki chcemy stosować w naszym projekcie oraz narzuciliśmy żądane reguły projektowe związane z rozmieszczeniem elementów (patrz poprzedni odcinek), możemy przystąpić do rozmieszczania złącz i innych elementów, których położenie na płytce musi być z takich czy innych względów ściśle określone. Ten etap projektowania najlepiej wykonać ręcznie. Pozostałe elementy możemy również układać manualnie (na różne sposoby, o których powiemy za chwilę), można także wykorzystać do tego celu funkcję autoplace. Najprostszą metodą ręcznego rozmieszczania elementów jest rozmieszczanie za pomocą myszki. Każdy element po wskazaniu go kursorem i kliknięciu lewym klawiszem myszy może zostać przeniesiony przez projektanta w żądane miejsce na projektowanym druku. Ponieważ widoki obudów (fooiprinis) mogą być wspólne dla różnych elementów, warto w tym wypadku włączyć etykiety (labels), które pomogą nam jednoznacznie zidentyfikować dany komponent (wystarczy wybrać polecenie Labels z menu View i w wywołanym oknie View Labels zaznaczyć opcję Ref Des). W ten sposób możemy również wyświetlać zestawy innych informacji związanych z każdym z elementów np.: nazwę obudowy, numerację wyprowadzeń itd. Często zdarza się, że obrys niektórych elementów - np. złącza krawędziowego - wykracza poza przyjęty obszar płytki, warto więc przed
i
V.
Rys. 7. Przykładowy projekt wczytany do edytora Specctry
przystąpieniem do rozmieszczania specyficznych elementów wyłączyć funkcję Checking kontrolującą nasze posunięcia. Najdokładniejszą metodą rozmieszczania ręcznego jest ułożenie komponentu na podstawie zadanej lokalizacji X, Y. Funkcja ta jest szczególnie wygodna, jeśli druk i znajdujące się na nim specyficzne elementy typu gniazda, złącza itp. muszą być precyzyjnie dopasowane do istniejącej już obudowy lub innej płytki stanowiącej jeden z elementów tworzonego czy też modernizowanego urządzenia. Po rozmieszczeniu elementów, których lokalizacja jest krytyczna dla działania układu, warto je zablokować (lock), czyli zabezpieczyć przed przypadkowym przemieszczeniem podczas dalszych prac projektowych. Blokować w ten sposób możemy całe grupy elementów. Zablokowane elementy są zaznaczane na różowo (rys. 8).
Jeżeli w trakcie prac projektowych konieczne będzie odblokowanie któregoś z komponentów, wystarczy kliknąć w ikonę Locie Component, a następnie wskazać ten element kursorem.
Po rozmieszczeniu elementów krytycznych, edycji poddajemy zwykle elementy o dużych gabarytach. Przypominamy, że Specctra dzieli elementy na duże (4 lub więcej końcówek) i małe (3 lub mniej końcówek). W przypadku rozmieszczania ręcznego procedura jest taka sama jak dla elementów krytycznych. Na tym etapie możemy już jednak skorzystać z funkcji auioplace. Dobierając odpowiednio ustawienia poszczególnych parametrów tej funkcji, możemy np.:
Rozmieścić w sposób automatyczny wszystkie "duże" elementy projektu lub tylko te, które wcześniej zaznaczyliśmy (podświetliliśmy). Ewentualnie stawiając znacznik wyboru przy #Mosi Highly Connecied, możemy ustalić liczbę elementów, które poddane zostaną edycji.
Określić preferowane odstępy pomiędzy elementami (Placeineni Spa-cing), przy czym podane tu odstępy będą zastosowane podczas rozmieszczania jedynie wtedy, jeśli są większe od tych, które ustawiliśmy z poziomu Rules>Pcb>Spacing.
W tym odcinku kończymy
prezentację zagadnień
związanych z trybem
rozmieszczania elementów
autoroutera Specctra.
Ponieważ nic tak nie
przemawia do wyobraźni
jak konkretny przykład,
przedstawimy je na
przykładzie prostej płytki
drukowanej.
Nakazać automatyczne wyrównywanie wzajemnego położenia elementów (Align Coinponenis).
Pozostawić miejsce na tej stronie płytki na której układane są elementy duże dla powiązanych z nimi elementów małych (Smali Coinponenis On Same Side).
Kontrolować podczas rozmieszczania wtórne połączenia sygnałowe elementów (np. w przypadku, jeśli dwa elementy duże powiązane są poprzez inny mały element, auio-roiiier będzie próbował rozmieścić je obok siebie nawet wtedy, gdy bezpośrednio połączone są one tylko jedną ścieżką sygnałową).
Ustalić orientację elementów (poziomą, pionową lub specyfikowaną przez kąt obrotu) osobno dla elementów przewlekanych oraz typu SMD niezależnie dla każdej ze stron płytki.
Zatwierdzenie ustawień dokonanych w oknie Iniiplace Large Coinponenis za pomocą przycisku OK skutkuje automatycznym rozmieszczeniem elementów dużych.
Rozmieszczanie elementów małych przy wykorzystaniu funkcji auioplace w najprostszym przypadku odbywa się na podobnej zasadzie. Jedną z funkcji przydatnych podczas rozmieszczania kondensatorów od-sprzęgających (należących do grupy elementów małych) jest Smali Comp Paiiern. Funkcja ta umożliwia "nauczenie" autoroutera, w jaki sposób
Rys. 8. Po rozmieszczeniu położenia wybranych elementów można zablokować
Elektronika Praktyczna 6/2003
69
PROGRAMY
Rys. 9. Wynikiem działania funkcji Mgn Compon&nis jest regularne rozmieszczenie elementów
ma automatycznie rozmieścić kondensatory w odniesieniu do powiązanych z nimi elementów dużych. Ponieważ zasada działania opisywanej funkcji polega na powieleniu reguły/zasady rozmieszczania zastosowanej przez użytkownika, pierwszym krokiem, jaki należy w tym przypadku wykonać, jest ręczne umieszczenie jednego z kondensatorów w pobliżu powiązanego z nim elementu dużego.
Jeżeli automatyczna obróbka tworzonego druku pod kątem rozmieszczania elementów jest z określonych powodów niezadowalająca, zawsze możemy dokonać ręcznych korekt. W trybie rozmieszczania ręcznego możemy wesprzeć się funkcją Push Component, której działanie polega na odsuwaniu (przepychaniu) rozmieszczonych elementów, jeśli dla aktualnie układanego brakuje miejsca. Inną funkcją ułatwiającą życie projektantowi jest Align Compo-nenis. Pozwala ona na automatyczne wyrównywanie elementów względem wybranego elementu odniesienia. Rezultat jej działania pokazano na rys. 9.
Po rozmieszczeniu elementów warto dokonać oceny gęstości połączeń występujących przy przyjętym rozkładzie elementów. Analiza gęstości po-
łączeń dokonywana jest przez edytor automatycznie, a wynik analizy prezentowany (w postaci bargrafu, polecenie Au.ioplace>Crossing Histogram) i/lub z podziałem płytki na cele (Au-ioplace>Densiiy Analysis).
Opisane funkcje Specctry związane z rozmieszczaniem elementów to tylko niektóre z funkcji dostępnych na tym etapie projektowania. Aplikacja udostępnia bowiem kilka "bardziej zaawansowanych" opcji pozwalających m.in. na:
- określenie priorytetów poszczególnych ścieżek, a właściwie elementów, które są z nimi powiązane tak, że w toku rozmieszczania w trybie auto elementy te traktowane będą jako priorytetowe i poddawane rozmieszczaniu w pierwszej kolejności,
- określenie powiązania elementu(-ów) małego z elementem dużym. Podczas automatycznego rozmieszczania elementów małych elementy powiązane z jednym z dużych komponentów zostaną usytuowane w jego najbliższym otoczeniu,
- automatyczne dopasowanie położenia elementów już rozmieszczonych w celu zoptymalizowania projektowanego druku (Specctra udostępnia kilka funkcji optymalizujących rozmieszczenie),
- określenie właściwości elementu lub grup elementów np.: ich typu, wymiarów (wysokości), parametrów termicznych. Właściwości te mogą być później wykorzystywane podczas aiiioplaceirieniii tak, że komponenty o określonej wysokości mogą być na przykład lokalizowane tylko i wyłącznie w wybranym miejscu płytki czy na jej wybranej stronie.
RK
D o dat ko we i nf o rma ej e
Więcej informacji można uzyskać w lirmie RK-System, www.rk-system.com.pl.
70
Elektronika Praktyczna 6/2003
MINIPROJEKTY
Wspólną cechą układów opisywanych w dziale "Miniprojekty" jest łatwość ich praktycznej realizacji. Zmontowanie układu nie zabiera zwykle więcej niż dwa, trzy kwadranse, a można go uruchomić w ciągu kilkunastu minut. Układy z "Miniprojektów" mogą być skomplikowane funkcjonalnie, lecz łatwe w montażu i uruchamianiu, gdyż ich złożoność i inteligencja jest zawarta w układach scalonych. Wszystkie układy opisywane w tym dziale są wykonywane i badane w laboratorium AVT. Większość z nich znajduje się w ofercie kitów AVT, w wyodrębnionej serii "Miniprojekty" o numeracji zaczynającej się od 1000.
Regulator temperatury w akwarium
Timer 555 cały czas
zadziwia swoimi
m ożliwoś ciami.
W artykule
przedstawiono opis
prostego regulatora
temperatury,
składającego się z kilku
łatwo dostępnych
i tanich części. Może
on być z powodzeniem
stosowany np. do
regulacji temperatury
wody w akwarium,
sterowania wentylatorem
czy nagrzewnicą.
Rekomendacje: ze
względu na prostotę
wykonania i duże
walory praktyczne
wykonanie tego układu
polecamy szczególnie
początkującym
elektronikom, którzy
chcą sobie lub
znajomym nieco
zautomatyzować
akwarium.
Schemat elektryczny układu znajduje się na rys. 1. Układ NE555 pracuje jako komparator z histerezą. Wejście THRESHOLD dołączono do plusa zasilania poprzez rezystor Rl. Histerezę uzyskujemy łącząc rezystorem R2 wejście CONTROL VOLTAGE z wejściem DISCHARGE. Dodatkowo , aby przeciwdziałać wzbudzaniu się układu na wielkich częstotliwościach, pomiędzy wyprowadzenia 5 i 7 włączono rezystor R3 i kondensator Cl spełniające rolę filtru. Do wejścia TRIGGER dołączono dzielnik napięcia z termis-torem pomiarowym. Cewka przekaźnika PKl jest sterowana bezpośrednio z wyjścia układu NE555. W kierunku zaporowym równolegle z przekaźnikiem włączono diodę zabezpieczającą wyjście przed przepięciami indukującymi się w cewce przekaźnika. Potencjometr POTl służy do ustalenia zakresu regulacji, a POT2 do ustawiania temperatury załączenia. Termistor należy umieścić w miedzianej rurce o przekroju zależnym od średnicy użytego termistora i długości według własnego uznania. Jeden koniec rurki należy zlutować bardzo dokładnie, tak
aby nie przedostawała się do środka woda. Do końcówek termistora przylutowujemy przewody i naciągamy koszulki izolacyjne. Tak przygotowany termistor smarujemy pastą silikonową i umieszczamy we wcześniej przygotowanej rurce. Na końcówkę naciągamy koszulkę termokurczliwą, którą ostrożnie zgrzewamy palnikiem lub zapałką. Tak przygotowany czujnik dość dobrze zabezpiecza przed wilgocią umieszczony w środku termistor.
Układ zmontowano na jednostronnej płytce drukowanej, której schemat montażowy pokazano na rys. 2. Urządzenie wraz z transformatorem sieciowym najlepiej umieścić w obudowie plastikowej. Należy pamiętać o tym, że przekaźnik PKl załącza obwód będący pod napięciem 220 V, w związku z tym zalecam zachowanie szczególnej ostrożności.
Zmontowany układ po włączeniu zasilania wymaga tylko przeprowadzenia skalowania, tak żeby była możliwość regulacji w zakresie od 20 do 30 stopni Celsjusza. Środek zakresu należy wyznaczyć doświadczalnie za pomocą POT2. Krzysztof Górski, AVT krzysztof.gorski@ep.com.pl
WYKAZ ELEMENTÓW
Rezystory
Rl: 4,7kQ
R2: 390kQ
R3: 2,2kQ
R4: 20kQ
POTl, POT2: 5kQ
Termistor NTC: 10kQ
Kondensatory
Cl: 4,7nF
C2: 1000^F/16V
C3, C4: lOOnF
C5: 220^F/16V
Półprzewodniki
US1: NE555
US2: 7805
Dl: 1N4148
Ml: 1,5A
Różne
PKl: MH4-5V
ARK 1x2 500V 2 szt.
Włgcznik sieciowy 1 szt.
TRI TS2/14
Płytka drukowana jest dostępna w AVT - oznaczenie AVT-1367.
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: h ttp ://www. ep.com.pl/?p dfl czerwiec03.htm oraz na płycie CD-EP7/2003 w katalogu PCB.
Rys. 1
Rys. 2
Elektronika Praktyczna 6/2003
71
MINIPROJEKTY
Krokowy sterownik silnika DC
Prezentowany układ
służy do sterowania
prędkością obrotową
silnika prądu stałego.
Moc sterowanego silnika
zależy od użytych
elementów
wykonawczych oraz
źródła zasilania. Układ
modelowy został
dostosowany do
sterowania silniczkami
małej mocy.
R ekom en da ej e:
doskonały regulator do
wszelkiego typu silników
stałoprądowych, który
można wykorzystać np.
do regulacji obrotów
wentylatora nagrzewnicy
w samochodzie lub jako
regulator obrotów śmigła
wentylatora.
Na rys. 1 przedstawiono schemat elektryczny regulatora. Urządzenie składa się z następujących bloków funkcjonalnych: generatora monostabilnego (służy do likwidacji drgań styków Pl), licznika dekadowego, generatora as-
tabilnego oraz bloku wykonawczego. Działanie układu jest bardzo proste: każde naciśnięcie przycisku Pl powoduje zmianę stanu na wyjściach licznika IC2 i w kon-sekewneji zmianę częstotliwości pracy multiwibratora IC3, od której zależy szybkość obrotowa dołączonego silnika.
Licznik dekadowy IC2 zlicza impulsy pochodzące z ti-mera ICl, które występują każdorazowo po naciśnięciu przycisku Pl. W szereg z każdym wyjściem licznika włączono rezystor (o dobieranych rezystancjach) oraz diodę, której zadaniem jest wzajemne odseparowanie rezystorów. Przy zmianach stanów na wyjściach licznika IC2, w zależności od wartości "aktywnego" jednego z rezystorów R9...R18, zmienia się napięcie podawane na wy-
WYKAZ ELEMENTÓW
Rezystory
Rl: 220kO
R2, R3: 10kQ
R4: 470kO
R5: 5ókO
Ró: lkG
R7: 330O
R8: 120D
R9...R18: dobroć (4,7kQ...lMG)
Kondensatory
Cl: 4,7^F/1ÓV
Wzory pfyiek drukowanych w formacie PDF są dostępne w Inier-necie pod adresem; http://www.ep.conj.plf7pdflczerwiec03.htnj
oiaz na płycie CD-EP7/2003 w katalogu PCB.
C2, C4: 10nF C3: 22^F/1ÓV CS: ÓSOnF Półprzewodniki
ICl, IC3: NE555
IC2: CD4017
Tl: BD13Ó
T2: BD254 lub podobny
D1...D10: 1N4148
Dli, D12: 1N4007
prowadzenie 7 układu IC3. Układ ten pracuje jako generator astabilny, na wyjściu którego pojawia się ciąg impulsów sterujących silnikiem. Blok wykonawczy złożony z tranzystorów Tl i T2 steruje pracą silnika. Układ zasi-
lany jest z zewnętrznego źródła zasilania o napięciu 12 VDC i wydajności prądowej zależnej od użytego silnika.
Sterownik został wykonany na jednostronnej płytce drukowanej, której mozaikę
Rys. 1
Rys, 2
przedstawiono na rys. 2. Niewielka liczba zastosowanych elementów powoduje, że układ jest tani w wykonaniu, a czas poświęcony na montaż nie przekracza kilkunastu minut. Stosownie do potrzeb należy dobrać wartości rezystorów R9...R18 lub zastosować w ich miejsce potencjometry i ręcznie dokonać regulacji. Krzysztof Górski, AVT krzysztof.gorski@ep.com.pl
72
Elektronika Praktyczna 6/2003
PROGRAMY
Zimno, zimno, ciepło, czyli
Od pewnego czasu zadziwia mnie niezwykłe wręcz zainteresowanie pomiarami temperatury przejawiające się obfitą wymianą doświadczeń na internetowych listach dyskusyjnych. No tak, zbudowanie elektronicznego termometru w dzisiejszych czasach to tyle, co usiąść, otworzyć szufladę, wyciągnąć parę elementów, wykonać kilka połączeń lutowanych i właściwie gotowe. ^^^
Jeszcze kilka lat temu co ^^P druga praca dyplomowa w szkołach technicznych nosiła tytuł "Termometr elektroniczny z wyświetlaczem cyfrowym". Wtedy jednak przedsięwzięcie takie faktycznie zasługiwało na tak poważne traktowanie. Należało przecież zdobyć czujnik, wykonać wzmacniacz pomiarowy, w jakiś sposób przekształcić analogowe wskazania na postać cyfrową, no i wreszcie wyświetlić wyniki na wyświetlaczu cyfrowym. W roli czujników często występowały zwykłe diody półprzewodnikowe, które zachowując dość dobrą liniowość, były łatwo dostępne. Niestety taki układ wymagał dość kłopotliwej kalibracji, a z zachowaniem dobrych parametrów w czasie bywało różnie. Część cyfrowa wykonywana w technice TTL (nieśmiertelne 7490) powodowała, że praktycznie odpadała praca z zasilaniem bateryjnym.
Jak jest dzisiaj? Dzisiaj bez trudu można znaleźć na rynku gotowe układy, które wystarczy tylko dołączyć np. do komputera za pomocą prostego interfejsu. Całą resztę wykona odpowiedni program, a te pisują przecież już niemal przedszkolaki. No dobrze, może trochę przejaskrawiam sprawę. Napisanie naprawdę
"Wynalazki" Dallasa często stawały się przebojami w świecie elektroniki. Swą popularność zawdzięczają niezwykle oryginalnym konstrukcjom i łatwości stosowania w najrozmaitszych aplikacjach. Jednym ze sztandarowych produktów obecnego Maxima-Dallasa są czujniki temperatury DS1820, które - można powiedzieć - ustaliły standard pomiaru
tej wielkości fizycznej.
dobrego programu nie jest sztuką łatwą, a zrobienie tego za zupełną "darmochę" w dzisiejszym skomercjalizowanym świecie budzi wątpliwość: czy z autorem na pewno wszystko jest w porządku?
Interfejs do Lampómittari
Opis budowy interfejsu do układów
DS18x20 przedstawiliśmy w kwietniowych
Minip roj ektach.
Od czasu do czasu można na szczęście natrafić na taki przypadek. Niewątpliwie jest nim Timo Sara-aho autor świetnego programu Lampómittari, obsługującego czujniki temperatury DS182O. Program znakomicie wykorzystuje możliwość łączenia tych układów w sieć opartą na jednoprzewodowej magistrali 1-Wire.
Krótko o sieci 1-Wire i układach DS1820
Sieć 1-Wire została opracowana przez firmę Dal las Sernic o nductor w czasach, gdy firma ta istniała jeszcze samodzielnie. To, że magistrala jest jednoprzewodowa, nie oznacza oczywiście, że do dołączenia układów do sieci, np. czujników DS182O, potrzebny będzie tylko jeden przewód. Aż tak dobrze niestety jeszcze nie jest. Oznacza natomiast, że do obsługi wielu układów wystarczy zaledwie np. jeden port mi kro kontrolera albo komputera. Interfejs 1-Wire zapewnia przy tym dwukierunkową transmisję danych, odpowiednie zaś oprogramowanie zaimplementowane
w układzie Master dba o porządek w tak stworzonej sieci. A porządek jak wiadomo musi być. Układ nadzorczy master po sprawdzeniu obecności w sieci kolejno odpytuje wszystkie układy Slave (każ dy dołą-^^^^ czony DS182O), wykorzystując ^^^^ przydzielone im na etapie produkcyjnym niepowtarzalne numery seryjne. Dzięki specjalnemu protokołowi Master zawsze wie, ile układów z nim współpracuje i zna ich identyfikatory. Układy Slave odzywają się tylko na wyraźne żądanie nadzorcy. Jednoprzewodowość sieci narzuca w sposób naturalny zastosowanie szeregowego rodzaju transmisji. Rozpoznawanie układów oraz wysyłanie poszczególnych bitów danych odbywa się poprzez tzw. szczeliny czasowe (słoty). Bitowi o wartości "0" odpowiada utrzymanie linii w stanie niskim przez czas trwania slotu - 60 do 120 u.s. Bit o wartości "1" to krótkie, 1 u.s zwarcie linii, po czym do końca slotu musi ona pozostać w stanie wysokim (rys. 1). Bezpieczeństwo wymiany danych jest zapewnione dzięki kontroli CRC. Zastosowany tu wielomian generujący ma postać x8+x5+x4 + l. Dwukierunko-wość sieci jest możliwa dzięki wyjściom typu open-drain po obu stronach połączenia. Parametry interfejsu 1-Wire pozwalają na budowę połączeń o długości dochodzącej do 300 m. Ze szczegółami dotyczącymi zasad budowy i wykorzystywania sieci 1-Wire można zapoznać się w nocie aplikacyjnej AN148, dostępnej pod
Elektronika Praktyczna 6/2003
77
PROGRAMY
Początek slotu
1-Wire
GND
1-Wire
GND
Slot zapisu "0" MASTER-a
Początek slotu
Slot zapisu "1" MASTER-a H-1usPrzykłady dla DS18B20 MIN TYP MAX
15us
15us
30us
Slot odczytu '0' MASTER-a
-W U- Próbkowanie _ przez Master-a
^------------- 45us
Przykłady dla DS18B20 MIN TYP MAX
15us
15us
30us
Slot odczytu "1" MASTER-a
Stan '0' wymuszony przez Master-a
--------DS18B20Stan"0"
wymuszony przez układ DS18B20
Stan wymuszony
przez rezystor podciągający
Rys. 1. Zasada działania interfejsu 1-Wire
adresem: http://pdfserv.maxim-ic.com/arpdf/AppNotes/appl48.pdf.
Układ DS18B2O umożliwia standardowo dokonywanie pomiaru temperatury z 9-bitową rozdzielczością w zakresie od -55 do +125C, przy czym dokładność ą0,5C jest gwarantowana dla zakresu -10 do +85C. Wykorzystanie specjalnych procedur pozwala zwiększyć rozdzielczość odczytu nawet do 12 bitów (0,04C - Uwaga! Dokładność pozostaje bez zmian: ą0,5C), co może być wykorzystywane tam, gdzie istotne są wyniki względne, np. przy pomiarach wilgotności metodą termometru suchego i wilgotnego. Czas konwersji układu nie jest niestety zbyt krótki, wynosi ok. 750 ms. W wewnętrznej pamięci nie-ulotnej można zachowywać ustawienia dotyczące alarmów (np. przekroczenie zadanej temperatury). Jedną z ciekawszych cech tego układu jest to, że do pracy nie wymaga dodatkowych linii zasilających, może być zasilany bezpośrednio z linii interfejsu 1-Wire.
Lampómittari znaczy termometr
Program Lampómittari zbiera bardzo pozytywne oceny od jego użytkowników i rzeczywiście, dysponuje sporymi możliwościami i bardzo atrakcyjną formą prezentacji wyników. Po pierwszym uruchomieniu może nieco razić mało profesjonalny wy-
gląd okna głównego, a pracując z nim dłużej, można również dostrzec kilka niedociągnięć. Możliwości, jakimi dysponuje, mogą być jednak porównywalne - jak mi się wydaje - z niejednym produktem profesjonalnym. W skład programu wchodzą trzy moduły:
- edytor znaków wyświetlanych na wirtualnym, matrycowym wskaźniku alfanumerycznym,
- Analog Configurator służący do projektowania własnych wskaźników analogowych,
- główny moduł akwizycji i wizualizacji danych pomiarowych.
Jest taka strona...
Najnowsze wersje oprogramowania
dostępne na stronie autora: http://www.sunpoint.net/~thermometer/
Po uruchomieniu modułu głównego (pomiarowego) uwagę zwraca dość nietypowy pasek narzędziowy bez tradycyjnego menu. Tło okna stanowi delikatna faktura, a nie jak to zwykle bywa gładka powierzchnia. Brak menu tekstowego jest dość uciążliwy, gdyż wieloletnie doświadczenia z różnymi programami sprawiają, że użytkownik czuje się bezpieczniej, gdy ma możliwość wyboru poleceń w taki właśnie sposób. Menu tekstowe pozwala ponadto na wybór opcji poprzez naciśnięcie klawisza Alt z wybraną literą, którego tro-
chę w Lampómittari brakuje. Do dyspozycji mamy jedynie ikony. Na szczęście po przytrzymaniu kursora na każdej z nich jest wyświetlana słowna podpowiedz tłumacząca akcję, jaka będzie wykonana po klik-nięciu myszką. Z drugiej strony trzeba przyznać, że zastosowane symbole graficzne są bardzo sugestywne i zrozumiałe.
Jedną z ważniejszych cech programu jest różnorodny i ciekawy sposób prezentowania wyników. Skazani na wszechobecne aktualnie wyświetlacze cyfrowe na pewno będziemy zadowoleni z możliwości prezentowania wyników na tradycyjnym wskaźniku analogowym. Jego wygląd możemy ponadto zaprojektować własnoręcznie. Służy do tego celu specjalny program narzędziowy Analog Configurator (rys. 2). Za jego pomocą można utworzyć całkowicie dowolny wygląd tarczy miernika. Przedstawiona na rys. 2 została wykonana w Co-relu i przekonwertowana do formatu, hmp. W konfiguratorze deklaruje się dopuszczalny kąt obrotu wskazówki, punkt zaczepienia jej osi, długość, grubość i kolor. Podaje się zakres pomiarowy termometru. Zadeklarowane ustawienia można - przynajmniej teoretycznie - zapisać na dysku, do ewentualnego późniejszego wykorzystania. Niestety, podczas prób sztuka ta nie udała mi się. Program jest zresztą pod tym względem trochę ułomny, gdyż operacje dyskowe nie są wspierane typowymi oknami dialogowymi, w których w sposób przejrzysty i wygodny można zobaczyć zawartość katalogu, a w razie potrzeby nawet go zmienić. Tu przydają się umiejętności z zapomnianego już pewnie przez większość użytkowników PC-tów DOS-a, gdzie wpisywało się mozolnie całą ścieżkę dostępu wraz z nazwą pliku i jego rozszerzeniem. Program jest jednak windowsowy i należałoby wymagać od niego zachowania pewnych standardów. Na zakończenie projektowania wskaźnika warto sprawdzić, jak będzie on działał. W tym celu w polu Test value należy podać dowolną wartość temperatury, mieszczącą się w zakresie pomiarowym i po naciśnięciu klawisza o takiej samej nazwie -Test value - obejrzeć, jak ustawi się wskazówka. Klawisz Rangę pozwala zaobserwować przemieszczenie wskazówki w sposób ciągły w całym zakresie pomiarowym.
są I
78
Elektronika Praktyczna 6/2003
PROGRAMY
-J Ś*
Rys. 2. Projektowanie własnego wskaźnika analogowego za pomo-cq programu Analog Configurafor
Drugi moduł pomocniczy - ForrtEd - jak już wiemy, służy do projektowania własnych znaków wyświetlanych później na wirtualnym wyświetlaczu LCD programu Lampo-mittari. Tym razem został napisany przez Szweda o czeskobrzmiącym nazwisku - Peter Czidlina. Nie jest to pierwszy przypadek, w którym mamy do czynienia z wielonarodowym zespołem autorów. Jak dotąd rezultaty były zawsze zadawalające. Okno programu FontEd wygląda podobnie jak modułu głównego, przy czym dodano tradycyjne menu (rys. 3). Przystępując do pracy, należy zadeklarować wielkość matrycy. Maksymalny rozmiar to 50 x 50, ale najczęściej będziemy zapewne korzystać z typowego 5x7, przybliżającego nas do rzeczywistego wyświetlacza. Wybieranie danego znaku do edycji polega na przewijaniu zestawu za pomocą ekranowych klawiszy strzałek, umieszczonych na pasku narzędziowym. Towarzyszy temu wyświetlanie kolejnych znaków ASCII wraz z ich kodami. Po wybraniu odpowiedniego można przystąpić do edycji. Projektowanie prowadzi się przy dużym powiększeniu. Kliknięcie na wybrany piksel powoduje zmianę jego stanu (zapalenie lub zgaszenie). Efekt końcowy - w naturalnych rozmiarach -może być natychmiast obserwowany w specjalnym oknie podglądu - Cha-racier Preview. Znak może być też przesuwany zarówno w pionie, jak i w poziomie w obrębie pola roboczego. Trzeba jednak przy tym uważać, gdyż wysunięcie go poza obręb tego
pola powoduje utratę zdefiniowanych wcześniej punktów. Fazę projektowania kończy, jak to zwykle bywa w takich przypadkach, zapisanie zestawu na dysku.
Pomiary
Czas najwyższy zapoznać się z podstawowym modułem, za pomocą którego będziemy mierzyć temperaturę. W trakcie instalacji, w menu startowym jest umieszczany odpowiedni skrót ułatwiający uruchomienie programu. Przed przystąpieniem do pomiarów należy prawidłowo skonfigurować program. Wcześniej do portu szeregowego komputera powinny być dołączone czujniki temperatury DS182 0. Odpowiedni interfejs był przedstawiony w numerze EP4/ 2003. Czujniki stanowią sieć rozpoznawaną przez program jako DS9097E. Naciśnięcie na ikonę Ustawienia powoduje otwarcie okna, w którym wprowadza się dane konfiguracyjne. Są to m.in.: definicje początku i końca nocy, określenie histerezy, odstępu czasu pomiędzy pomiarami, katalogu roboczego i języka. Tu miła niespodzianka, bo wśród dostępnych wersji językowych jest też polska. Po prawidłowym wyborze sieci i podaniu portu, do którego dołączono czujniki, powinny być one rozpoznane po numerach seryjnych. Ze względów praktycznych warto nadać im nazwy najlepiej kojarzące się z miejscem umieszczenia. Dla każdego czujnika indywidualnie można również podać wartości temperatur alarmowych. Każdorazowo po przekroczeniu zadanej wartości (z uwzględnieniem histerezy) wszczynany będzie alarm, którym może być dowolnie wybrany sygnał dźwiękowy w formacie.wav. Ale to nie koniec -alarm może spowodować także uruchomienie wybranego programu. Podobne reakcje może wywołać również wykrycie zmiany trendu temperatury. Program Lampomittari potrafi wykorzystać DS-y do granic możliwości. W zależności od potrzeb deklaruje się ich rozdzielczość 9-, 10-, 11- lub 12-bitową. Zaskoczeniem, jak na bądź co bądź amatorski program, jest nawet uwzględnienie parametrów kompensujących nieliniowość czujników. Zależność błędu pomiaru temperatury jest dla czujników DS1820 zależnością kwadratową o dość łatwych do obliczenia parametrach. Wyznaczają one położenie minimum funkcji błędu oraz określają kształt
krzywej. Szczegóły są zawarte w nocie AN208, którą można znaleźć na stronie internet owej Maxima-Dallasa. Wprowadzenie parametrów korygujących może 10-krotnie zmniejszyć błąd pomiarowy w całym zakresie. Wszędzie tam, gdzie może to mieć znaczenie, warto je więc wprowadzić. Jeśli natomiast nie zależy nam na takiej dokładności, można pozostawić wartości zerowe.
Musimy sobie zadać pytanie, do czego właściwie ma służyć program Lampomittari? Odpowiedź jest prosta: do monitorowania temperatury w wielu punktach, nawet dość znacznie oddalonych od siebie. W rezultacie otrzymujemy wyniki podawane na kilka sposobów. Wybieramy formę, która będzie najodpowiedniejsza w konkretnym przypadku. Może to być analogowy miernik wskazówkowy, matrycowy wyświetlacz alfanumeryczny, wykres trendu obejmujący określony okres pomiaru, wykres historii. Jedną z ciekawszych form wizualizacji pomiarów będzie np. podłożenie fotografii monitorowanego pomieszczenia pod wirtualne wskaźniki umieszczone na ekranie w odpowiednich miejscach. Taka metoda bardzo sugestywnie pokazuje rozkład temperatur w obiekcie. Poszczególne czujniki sieci mogą być przydzielone do specjalnych grup. Dla nich definiuje się np. grupowy wyświetlacz alfanumeryczny pokazujący temperatury na zespolonym polu odczytowym. Także zbiorczy wykres będzie świetnie oddawał relacje pomiędzy poszczególnymi punktami pomiarowymi. Dla szybkiego określenia, w jakim przedziale temperatur pracują
B
Rys. 3. Okno robocze programu FonfEd
Elektronika Praktyczna 6/2003
79
PROGRAMY
Rys. 4. Przykładowa sesja pomiarowa
poszczególne czujniki, ich wskazania mogą być wyświetlane trzema kolorami oznaczającymi temperaturę w normie, temperaturę poniżej minimalnej lub powyżej maksymalnej. Ponadto na bieżąco jest generowany raport, w którym jest podawana informacja o zmierzonych temperaturach ze wszystkich czujników, ich wartościach średnich, wykrytych maksimach i minimach. Odpowiedni log jest zapisywany w formacie tekstowym na dysku. Dodatkową atrakcją mogą być obrazki używanych wskaźników, które są również zapisywane w zadanych interwałach czasowych na dysku. Przykładową sesję pomiarową przedstawiono na rys. 4. Nie trzeba dodawać, że wyniki rejestracji jak w większości programów okienko-
wych są łatwe do bezpośredniego wydrukowania, a zapisane na dysku widoki poszczególnych wskaźników w prosty sposób mogą być umieszczane w dokumentacji technicznej.
Lepsze jest wrogiem dobrego
Po zapoznaniu się z możliwościami programu Lampomittari trzeba wyrazić uznanie dla autora, który musiał włożyć sporo wysiłku w jego przygotowanie. Na uwagę zasługuje ciekawy pomysł wykorzystania popularnych czujników temperatury i bardzo atrakcyjna forma prezentacji wyników pomiarowych. Autor nie spoczywa na laurach i rozwija swoje dzieło już od trzech lat. Możemy więc mieć nadzieję, że zaskoczy nas jeszcze niejednym. Choć z każdą no-
wą wersją programu rosną (ego walory użytkowe, to niestety jak to często w takich przypadkach bywa, poprawiając jeden element, łatwo zepsuć inny. Mam wrażenie, że tak było w przypadku najnowszej wersji 1.12.7. Największe wątpliwości wzbudzają niemal wszystkie operacje dyskowe. Przykładowo zapisywanie zaprojektowanego wskaźnika analogowego na dysku nie kończy się bynajmniej utworzeniem jakiegokolwiek pliku. Nie jest przy tym wyświetlany żaden komunikat. Najwyraźniej autor zapomniał wstawić w programie stosowną instrukcję albo, co bardziej prawdopodobne, wstawił ją, tylko później usunął. Zauważyłem też pewne problemy w rozpoznawaniu sieci w wersji 1.12.7. Jeśli czynność ta była wykonana we wcześniejszej wersji programu, to później wersja najnowsza działała już bez zarzutu. Ponadto program zupełnie nie chciał działać na komputerze z systemem Windows 95, a w Windows Me zdarzało się, że się zawieszał. Pozostaje więc mieć tylko nadzieję, że wszystkie niedociągnięcia zostaną dopracowane, co z dużym prawdopodobieństwem nastąpi.
Przymykając oko na drobne niedociągnięcia Lampomittari, należy uznać ten program za bardzo udany. Po kilku godzinach testów zrozumiałem chyba, dlaczego ludzie się tak pasjonują pomiarami temperatury. Trzeba jednak sprawiedliwie dodać, że współtwórcą sukcesu jest firma Dal las, która opracowała naprawdę rewelacyjny do takich zastosowań układ DS1320. Jarosław Doliński, AVT jaroslaw.dolinski@ep.com.pl
80
Elektronika Praktyczna 6/2003
KURS
Podstawy projektowania systemów mikroprocesorowych, część 4
Urządzenia wyjściowe -statyczne sterowanie wyświetlaczy i diod LED
System mikroprocesorowy zazwyczaj realizuje zadania, w wyniku których otrzymywany jest jakiś wynik. Wynik ten jest bezużyteczny tak długo, dopóki nie znajdziemy sposobu aby przesłać go na zewnątrz systemu. Do realizacji tego zadania służą w systemach mikroprocesorowych urządzenia wyjściowe. W zależności od formy w jakiej ma być ów wynik przekazany, mogą to być różnego rodzaju wskaźniki i wyświetlacze, układy transmisji cyfrowej w określonym protokole, czy inne systemy przekazywania danych.
W tej części kursu przedstawiamy sposoby statycznego sterowania diodami i wyświetlaczami LED za pomocą portów mikrokontrolera.
Zagadnienie niby dość proste, ale - jak pokazuje praktyka - nie do końca poznane.
stąpienia emisji światła, dlatego podczas projektowania zespołu wyświetlacza trzeba uwzględnić ten parametr i porównać go z maksymalnym prądem obciążenia linii portu mikrokontrolera. Jeżeli obciążalność prądowa portu będzie niewystarczająca, to należy zastosować układy pośredniczące - tranzystory lub układy scalone (drivery) o odpowiedniej wydajności prądowej.
Warto przypomnieć, że w większości mikrokontrolerów bezpośrednie dołączenie diody LED (wraz z rezystorem ograniczającym prąd płynący przez diodę) jest możliwe tylko w konfiguracji, w której prąd wpływa do portu mikrokontrolera (LED włączony między "+" zasilania a linię portu - rys. 15a). W tym przypadku ustawienie stanu niskiego na wyprowadzeniu powoduje zaświecenie się diody. Rezystor ograniczający prąd diody w tym układzie należy dobrać z zależności:
Rogr = (5 - 0,5 - Ui)/If, gdzie: Uf - napięcie przewodzenia diody
(zależy od koloru świecenia), If - prąd przewodzenia diody, jego wartość maksymalna nie może przekraczać 20 mA.
odczyt rejestru
Najbardziej rozpowszechnionym sposobem obrazowania pracy niewielkich systemów z mikro kontrolerami jednoukładowymi są diody LED i oparte na nich wyświetlacze siedmiosegmentowe. Umożliwiają one szybki, bezpośredni odczyt parametrów pracy urządzenia, a ich zaletą jest czytelność, nawet w całkowitych ciemnościach. Jednym z podstawowych parametrów charakteryzujących wyświet-
Parametry zawsze z noty katalogowej Podczas dobierania wartości rezystorów
ograniczających prąd płynący przez segment wyświetlacza lub diodę, należy zawsze sprawdzać w notach katalogowych wartości parametrów takich jak: maksymalny prąd wyjściowy portu i napięcie przewodzenia diody LED. Dobieranie wartości rezystora ograniczającego prąd "na oko" nie jest zgodne ze sztuką projektowania i może doprowadzić do uszkodzenia element ów.
lacze LED (zarówno wyświetlacze siedmiosegmentowe jak i pojedyncze diody) jest prąd konieczny do wy-
Rys. 15. Różne sposoby sterowanie diod LED zwyjścia mikrokontrolera: najczęściej stosowany wmikrokontrolerach zrodziny '51 (a), możliwy do zastosowania w niektórych mikrokontrolerach '51 (b), niezalecany (c)
zapis rejestru
odczyt stanu llnl[ odczyt rejestru
wyprowftdzanfe mlkrotontrolara
Rys. 16. Budowa typowego portu l/O w mikrokontrolerach '51
Elektronika Praktyczna 6/2003
81
KURS
Rys. 17. Tranzystor NPN jako wzmacniacz prądowy do sterowania diodą LED
Układ w którym dioda byłaby włączona między linię portu a masę jest nieprawidłowy - dioda nie będzie się świecić lub będzie się świecić bardzo słabo z powodu zbyt małej obciążalności portu w stanie "1" (rys. 15b). Można co prawda zrezygnować z szeregowego rezystora ograniczającego wbudowanego wewnątrz mikrokontrole-ra '51 (rys. 16) i dołączyć do linii portu dodatkowy rezystor podciągający o podobnej rezystancji (rys. 15b). Jednak układ ten nie jest stosowany ze względu na duży pobór prądu - w chwili gdy dioda nie świeci jest on większy niż podczas jej świecenia!
W sytuacji, gdy wykorzystujemy linię portu mi kro kontrolera niezdolną samodzielnie do prawidłowego wysterowania diody LED, należy zastosować układ pośredniczący, zapewniający odpowiednią wydajność prądową. W zależności od liczby dołączanych diod możemy zastosować układ z tranzystorem (rys. 16)
lub wykorzystujący scalony driver, np. ULN2803A w układzie przedstawionym na rys. 18. Ten drugi wariant nadaje się szczególnie dobrze do sterowania diod o dużej mocy (kilku... kilkunastu W), ponieważ wydajność prądowa driverów zintegrowanych w układzie ULN2803 jest większa niż wymagana przez klasyczne LED-y.
Omówione powyżej sposoby sterowania wyświetlaczy i diod LED należą do grupy statycznych - świecenie lub nie dołączonej do układu diody zależy tylko od stanu wyprowadzenia portu mikro-kontrolera. Takie sterowanie powoduje, że obsługa programowa jest bardzo prosta. Wystarczy tylko wykorzystać rozkazy ustawiania lub zerowania linii mi kro kontrolera {SETB Px.y, CLR Px.y), a w przypadku wykorzystywania całego portu mikrokontrolera do sterowania diodami LED do ich obsługi można wykorzystać także rozkaz przesłania bajtu danych do portu [MOV Px,#{wartość}).
W układach mikroprocesorowych bardzo często zachodzi konieczność podłączenia większej liczby wyświetlaczy 7-segmento-wych czy diod LED, niż pozwala na to liczba wyprowadzeń zastosowanego mikrokontrolera. Wyjściem z sytuacji są układy wyświetlaczy dynamicznych (wyświetlacze multipleksowane). Zasada ich działania polega na współdzieleniu wyprowadzeń mikrokontrolera przez połączone w grupy diody LED (np. jedna grupa - jeden wyświetlacz sied-miosegmentowy) i dołączeniu dodatkowych układów sterujących zasilaniem poszczególnych grup -odpowiednio szybkie zapalanie i gaszenie poszczególnych grup (wraz z wymuszeniem żądanych stanów świecenia) oraz bezwładność ludzkiego wzroku daje w efekcie złudzenie świecenia całego wyświetlacza.
Szczegóły takich rozwiązań przedstawimy za miesiąc. Paweł Hadam
Rys. 18. Jeżeli mikrokontroler steruje większą ilością diod lub segmentów wyświetlaczy można pokusić się o zastosowanie scalonego drivera np. ULN2803
82
Elektronika Praktyczna 6/2003
KURS
Sterowanie graficznych wyświetlaczy
z telefonów komórkowych firmy Nokia, część 2
W drugie/ części artykułu przedstawiamy protokół komunikacyjny sterownika PCD8544, poiecenia nim sterujące oraz napisaną w asembłerze procedurę inicjującą sterownik po włączeniu zasiiania.
Protokół transmisji
Kontroler może interpretować wysyłane do niego informacje na dwa sposoby. Jeśli linia D/C jest w stanie wysokim, to przyjmowane dane są wpisywane do pamięci RAM kontrolera. Jeśli linia D/C jest w stanie niskim, to wysłany bajt interpretowany jest jako komenda sterująca. Kolejne bajty danych wysyłane są do wyświetlacza poprzez linię SDIN w takt sygnału zegarowego podanego na linię SCLK (rys. 8). Poszczególne bity wysyłane są w kolejności od najstarszego do najmłodszego. Stan linii SDIN jest sprawdzany podczas narastającego zbocza sygnału SCLK, a stan linii D/C jest sprawdzany podczas odbioru ostatniego bitu należącego do jednego bajtu danych. Jeśli linia SCE jest w stanie wysokim, to wyświetlacz ignoruje wszelkie dane pojawiające się na wejściu SDIN, a interfejs szeregowy kontrolera pozostaje w trybie obniżonego poboru mocy. Opadające zbocze na linii SCE inicjuje pracę interfejsu wejściowego i jest zarazem wyznacznikiem początku transmisji bloku danych. W jednym bloku mogą być transmitowane zarówno komendy, jak i dane, w dowolnej kolejności (rys. 9).
K o men dy s teruj ąc e
W tab. 4 pokazano pełny zestaw komend sterujących pracą wyświetlacza opartego na kontrolerze PCD8544. Istnieją dwa zestawy komend: standardowy i rozszerzony. Aby skorzystać z rozszerzonego zestawu komend, należy najpierw wysłać do wyświetlacza komendę FunctioTi set z ustawionym bitem H -czyli DBO, a następnie wysłać dowolną ilość komend trybu rozszerzonego. Zęby powrócić do standardowego zestawu, należy wysłać komendę Fur/ction set, lecz z wyzerowanym bitem H. Zapis danych do pamięci RAM wyświetlacza (D/C = 1] jest możliwy zawsze, niezależnie od wybranego zestawu komend.
Niektóre wersje wyświetlaczy (np. LPH-7779 ze stykami w postaci złoconych padów, a nie sprężystych blaszek] wykorzystują jako kontroler
układy firmy Seiko-Epson, które są bardzo zbliż one do kontrolerów
PCD8544. Większość komend sterujących jest identyczna, lecz niektóre komendy nie działają na kontrolerach Epsona. Przykładem jest tryb negatywowy lub brak możliwości regulacji kontrastu -wyświetlacze z kontrolerami Epsona mają optymalnie ustawiony kontrast w fazie ich produkcji.
Ustawienie kontrastu
i ko mp en s ac j i temp er aturo we j
Aby treść wyświetlana na matrycy LCD była widoczna, należy ustawić odpowiednią wartość napięcia zasilającego matrycę, co jest równoznaczne z ustawieniem optymalnego kontrastu wyświetlacza. Prze-
SCE
cyc
SCLK
ELEKTRONIKA FTOKHCZNt
No* i a LCD test Rohuald Biały,
SDIN
Rys. 8. Sposób transmisji do wyświetlacza jednego bajtu danych
widziano do tego komendę Set Vop dostępną w rozszerzonym zestawie komend. Teoretycznie można wybrać jedną ze 128 możliwych wartości, lecz praktycznie użyteczny zakres regulacji kontrastu wynosi od 32 do 88, czyli heksadecymalnie od 0x20 do 0x58. Należy pamiętać, że komenda Set Vop ma ustawiony bit DB7, więc do podanych wartości należy przed wysłaniem do wyświetlacza dodać 128 oraz wcześniej przełączyć się na rozszerzony zestaw komend. Nie należy również przekraczać podanego górnego zakre-
SCE
DfC
SOK
DB7 DG6 DB5 DB4 DB3 D62 DB1 DBD DB7 DBB DB5 DB4 DB3 DB2 DB1 DBO 067 DB6 DBS
Elektronika Praktyczna 6/2003
83
KURS
Tab. 4. Wykaz poleceń sterujących pracą kontrolera PCD8544
kistnJccja DC Bajt komendy Opis
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DBO
H=0Lb1 -obazestawykomend
NOP 0 0 0 0 0 0 0 0 0 Brak akcji
Function set 0 0 0 1 0 0 PD V H Kontrola trybu Power Down Tryb adresowania (V) Rozszerzone komendy (H)
Write data 1 D7 D6 D5 D4 D3 D2 D1 DO Zapis danych do pamięci RAM
H =0 - podstawowy zestaw komend
Zarezerwowana 0 0 0 0 0 0 1 X X Nie używać
Display Control 0 0 0 0 0 1 D 0 E Konfiguracja wyświetlacza
Zarezerwowana 0 0 0 0 1 X X X X Nie używać
SetYnaddress 0 0 1 0 0 0 Y2 Y1 YO Ustawienie licznika wierszy (Y=0...5)
SetXnaddress 0 1 X6 X5 X4 X3 X2 X1 X0 Ustawienie licznika kolumn (X = 0...83)
H = 1 -rozszerzony zestaw komend ^^^^^^_
Zarezerwowana 0 0 0 0 0 0 0 0 1 Nie używać
Zarezerwowana 0 0 0 0 0 0 0 1 X Nie używać
Temperaturę control 0 0 0 0 0 0 1 TC1 TCO Ustawienie współczynnika korekcji temperaturowej (Tc = 0...3)
Zarezerwowana 0 0 0 0 0 1 X X X Nie używać
Bias system 0 0 0 0 1 0 BS2 BS1 BSO Ustawienie trybu multipleksowania
Zarezerwowana 0 0 1 X X X X X X Nie używać
Set Vop 0 1 Vop6 Vop5 Vop4 Vop3 Vop2 Vop1 VopO Ustawienie napięcia zasilania matrycy, czyli kontrastu
Legenda:
Xn-bit nieistotny
PD- \u=\v^ Power Down, On= kontroler aktywny
Vn-1 o adresowaniewntrybie pionowym, On= adresowanie wntrybie poziomym
Hn-1 n= wybór rozszerzonego zestawu komend, On= wybór podstawowego zestawu komend
D, En- 00 = wyświetlacz wygaszony, 10 = tryb standardowy, 01 = test załączający wszystkie pikse-
le, 11= tryb negatywowy
TC1, TCO - Wartość korekcji temperaturowej - standardowa wartość 2n(cała komenda to 0x06)
BS2...BS0- Dla opisywanych wyświetlaczy powinno być 3n (cała komenda to 0x13)
Vop6...VopO - Standardowa wartość to 0x48 (cała komenda to 0xC8)
su wartości, ponieważ przy niskich temperaturach otoczenia możemy przekroczyć maksymalne napięcie zasilania matrycy i uszkodzić matrycę lub kontroler - czyli cały wyświetlacz.
Konieczność wprowadzenia dodatkowej automatyczne] korekcji napięcia Vlcd w funkcji temperatury podyktowana jest zmienną czułością ciekłego kryształu w zależności od temperatury oraz nieze-rowym współczynnikiem temperaturowym samego układu kontrolera. Układ PCD8544 posiada możliwość wyboru jednej z 4 predefiniowanych charakterystyk kompensacji o nachyleniu charakterystyki od 1 mV7K do 24 mV/K. W większości zastosowań wystarcza ustawienie trzeciej charakterystyki (17 mV/K) poprzez ustawienie bitów TCl i TCO na 1,0, co wymaga wysłania w trybie komend rozszerzonych bajtu o wartości 0x06. Oczywiście jeśli się zdarzy, że nasz wyświetlacz będzie wykazywał tendencje do zmiany kontrastu spowodowanej zmianami temperatury otoczenia, możemy spróbować zminimalizować ten efekt poprzez ustawienie jednej z 3 pozostałych charakterystyk kompensacji.
Procedura inicjalizacji wyświetlacza
Bezpośrednio po załączeniu zasilania wyświetlacza zawartość rejestrów wewnętrznych kontrolera oraz jego pamięci graficznej RAM jest nieokreślona. Dlatego też bardzo ważną czynnością jest doprowadzenie do wyświetlacza prawidłowego sygnału RESET w czasie maksimum 30 ms po załączeniu zasilania, o poziomie niskim i czasie jego trwania minimum 100 ns. Według materiałów firmy Philips brak poprawnego zerowania może nawet doprowadzić do uszkodzenia wyświetlacza. Po wyzerowaniu kontrolera znajduje się on w trybie Power Down, ma ustawione adresowanie poziome, wyświetlacz jest wygaszony (D=E = 0), a przetwornica generująca Vlcd ]est wyłączona. Zawartość pamięci RAM nie jest zerowana.
Żeby poprawnie zainicjować wyświetlacz, należy wykonać następującą sekwencję:
- ustawić linie SCE oraz D/C w stan niski,
- wysłać bajt 0x21 - przełączenie na komendy rozszerzone,
- wysłać bajt 0xC8 - ustawienie Vop, czyli kontrastu (może wymagać zmiany wartości kontrastu),
- wysłać bajt 0x06 - ustawienie współczynnika korekcji temperaturowej,
- wysłać bajt 0x13 - ustawienie współczynnika multipleksowania 1:48,
- wysłać bajt 0x20 - przełączenie na komendy standardowe, adresowanie poziome (0x22 dla adresowania pionowego),
- wysłać bajt 0x0C - Display Control -tryb standardowy,
- wysłać bajt 0x40 - zerowanie licznika wierszy,
- wysłać bajt 0x80 - zerowanie licznika kolumn,
- ustawić linie D/C w stan wysoki,
List. 1. Procedura inicjujgca interfejs SPI mikrokontrolera AVR oraz podłgczony do niego wyświetlacz
i CS = H
;CS port jako wyjście
i C/D jako wyj ście
iinicjalizacja interfejsu SPI
i CD = L
;przełącz na rozszerzone komendy
iUstaw Vop (kontrast)
;ustaw współczynnik temperaturowy
iUstaw multipleks na 1:48
;przełącz na standardowe komendy, i oraz włącz adresowanie poziome ;włącz tryb standardowy
zeruj licznik kolumn zeruj licznik wierszy
;504 bajty 12= 252 obroty pętli
i pętla kasowania zawartości RAMu wyśw.
iWyślij bajt 0 do RAMu
iWyślij bajt 0 do RAMu
lcd_lnlt: sbl CS_ PORT,CS _PIH
sbi CS_ PORT-1, CS_PIH
sbi DC_ PORT-1, DC_PIH
cali SPI _init
cbi DC_ PORT,DC _PIH
ldi r24 , 0x21
rcall led _wr
ldi r24 , 0xC8
rcall led _wr
ldi r24 , 0x06
rcall led _wr
ldi r24 , 0x13
rcall led _wr
ldi r24 , 0x20
rcall led _wr
ldi r24 , 0x0C
rcall led _wr
lcd_clrscr: cbi DC_ PORT,DC _PIH
ldi r24 ,0x40
rcall led _wr
ldi r24 , 0x80
rcall led _wr
sbi DC_ PORT,DC _PIH
ldi r21 , 252
LCD_CLEAR_1: clr r24
rcall led _wr
clr r24
rcall led wr
84
Elektronika Praktyczna 6/2003
KURS
List. 1. - cd.
dec r21 iZmniejsz licznik
brnę LCD_CLEAR_1
ret i koniec inicjalizacji
SPI_init: sbi DDRB, PB5 iUstawienie MOSI jako wyjście
sbi DDRB, PB4 iSS musi być wyjściem dla trybu master
cbi PORTB, PB7 i ustawienie SCK na L
sbi DDRB, PB7 i ustawienie SCK jako wyj ście
ldi r24, (1MSTR) (1SPE); ;Tryb Master, fCPU/4
out SPCR,r24
in r24,SPSR ;czyść status SPI
ret i koniec inicjalizacji SPI
lcd_wr: cbi CS_PORT,CS_PIN iSCE = L
out SPDR,r24 ;załaduj bajt do rejestru danych SPI
SPI_SEHD_ 0: sbis SPSR,SPIF
rjmp SPI_SEHD_0 i zaczekaj na wysłanie bajtu
in r24,SPDR ;porzuć odebrany baj t
sbi CS_PORT,CS_PIN iSCE = H
ret
- wysłać 504 bajty o wartości 0x00, co spowoduje wyzerowanie pamięci RAM kontrolera,
- zakończyć inicjalizację poprzez ustawienie linii SCE w stan wysoki.
Oczywiście można również ustawiać linie SCE w stan niski przed wysłaniem każdego jednego bajtu i przełączać w stan wysoki po jego wysłaniu, co zmniejsza możliwość rozsyncłironizowa-nia się transmisji, a co za tym idzie zapisania błędnych informacji do rejestrów kontrolera. Na list. 1 przedstawiono przykładową, napisaną w asemblerze, sekwencję inicjującą interfejs SPI mikro-kontrolera AVR oraz podłączony do niego wyświetlacz. Romuald Biały
Elektronika Praktyczna 6/2003
85
KURS
Pisząc program w języku C, czasami zadajemy sobie
pytanie: czy naprawdę muszę tworzyć funkcję dokonującą konwersji wartości
dziesiętnej na szesnastkową? Przecież chociażby biblioteka o nazwie STDIO
zawiera w sobie możliwość formatowania zarówno danych wejściowych, jak
i wyjściowych. Czy nie ma możliwości skorzystania z czyjejś pracy
i zaoszczędzenia własnego czasu?
printf() - jak korzystać z tej funkcji?
Kilka słów o STDIO.H
Biblioteka o nazwie STDIO.H [STan-Dard Input-Output) zawiera szereg funkcji umożliwiających odczyt i wyprowadzanie znaków do (z) standardowego urządzenia wejścia/wyjścia. W ,,dużym" komputerze role tych urządzeń spełniają klawiatura i monitor. W przypadku mikrokontrolera przyjęto, że funkcje STDIO wykorzystują interfejs szeregowy UART (po konwersji poziomów napięć wyjściowych - RS232), traktując go jako standardowe urządzenie do komunikacji z użytkownikiem.
W przypadku kompilatora RC-51 (vnny.rajsoiiaiice.com) nastawy UART dokonywane są tuż po uruchomieniu napisanej dla mikrokontrolera aplikacji. Zajmuje się tym funkcja _C_INIT_IO. Ustawia ona TIMERl w mikrokontrolerze e51 jako generator sterujący transmisją, nadając jego rejestrowi THl predeliniowaną wartość początkową. Domyślnie jest to 0xE8, co odpowiada prędkości transmisji 1200 bps przy częstotliwości zegara 11,0592 MHz. Wartość tę można zmienić, używając polecenia #pragma (na przykład polecenie ttpragma DEFj[TIMl_INIT=0xFD) przy tej samej częstotliwości generatora zegarowego, ustawi prędkość transmisji na wartość 19200 bps). Ale jeśli byłyby to tylko i wy-
Funkcje STDIO.H predefiniowane przez Raisonance, producenta pakietu RC-51
extern int _getkey(void);
extern int getchar (void);
extern char imgetchar (char c) reentrant;
extern char *gets (char *s) reentrant;
extern int putchar (const int c I ) ;
extern int puts (const char *s ) reentrant;
extern int printf(const char * format,...) reentrant;
extern int sprintf(char *buffer, const char * format,...) reentrant;
extern int scanf(const char * format,...) reentrant;
extern int sscanf(const char *buffer, const char *format,...) reentrant,
łącznie instrukcje wysyłania oraz odbioru znaków, nie warto by było poruszać tego tematu. Istnieje bowiem mnóstwo dobrych opracowań na temat bibliotek wykorzystywanych przy programowaniu w języku C.
printf() = formatowane wyjście
Każdy, kto kiedykolwiek wykorzystywał funkcje predefiniowane w STDIO.H wie, że umożliwiają one formatowanie danych. Zgodnie ze specyfikacją standardu ANSI, szereg z nich dokonuje przekształceń wewnętrznych wartości na zna-
Tab. 1. Podstawowe przekształcenia funkcji printff)
Znak formahj^cy Typ przekształcanego argunertu Opis przekształcenia Przekształcenie do postaci:
d lubi int liczba dziesiętna ze znakiem
0 int liczba ósemkowa bez znaku i bez wiodącego zera
x lub X int liczba szesnastkową bez znaku i bez wiodącego zera z użyciem małych liter dla wzorca 0x i dużych dla 0X
u int liczba dziesiętna bez znaku
c int pojedynczy znak po przekształceniu do typu unsignedchar
s char* tekst wypisywany do napotkania znaku końca łańcucha/O lub osiągnięcia zadanej precyzji
f double liczba dziesiętna ze znakiem w postaci [-]x>cx.yyy, gdzie liczba cyfr po kropce (yyy) określona jest przez precyzję
elubE double liczba dziesiętna ze znakiem w tzw. notacji inżynierskiej (na przykład 3.45234e-10); podobnie jak wyżej, liczba cyfr po kropce określana jest przez precyzję
g lub G double jeśli wykładnik potęgi jest mniejszy od -4 lub>= precyzji, to przyjmuje się specyfikację identyczną z wzorcem e (L); inaczej stosowana jest specyfikacja /
P void* wskaźnik- reprezentacja zależy od konkretnej implementacji
n int* liczbę znaków wypisanych w TYM wywołaniu printf zapisuje się do odpowiedniego argumentu; nie są wykonywane żadne przekształcenia
% nie ma przekształcenia (%%); zostanie wypisany znak%
ki lub odwrotnie. W tym odcinku kursu szczególną uwagę poświęcimy funkcji printfO dającej programiście nie tylko szereg możliwości wykorzystania, lecz również pozwalającej na redukcję czasu koniecznego do stworzenia aplikacji. Wyjściowa funkcja printfO tłumaczy wewnętrzne wartości na znaki. Jednym słowem
- bajty danych zamieniane są na postać zrozumiałą przez człowieka:
int printffchar *wzorzec, argument_l, argument_2... )
Przekształcenie odbywa się według i pod nadzorem wzorca zapisanego we ,,wzorzec". Funkcja przekształca, formatuje i wypisuje swoje argumenty do standardowego wyjścia. Jak wspomniałem wcześniej, w przypadku mikrokontrolera 8051 jest to interfejs UART. Wzorzec zawiera obiekty dwojakiego rodzaju: zwykłe znaki, które są przesyłane do wyjścia oraz specyfikacje przekształceń. Każda z nich wskazuje na sposób, w jaki zostanie przekształcony i wypisany dany argument. Specyfikację przekształcenia rozpoczyna znak %, a kończy znak dla niego charakterystyczny. Między znakiem % i znakiem przekształcenia mogą - według następującej kolejności - wystąpić:
- znak ,,-" (minus) polecający dosunięcie przekształconego argumentu do lewego krańca jego pola,
- liczba określająca rozmiar pola (argument zostanie wypisany w postaci o rozmiarze co najmniej pola, a jeśli będzie taka potrzeba, zostanie uzupełniony znakami odstępu z prawej lub lewej strony w zależności od żądania dosunięcia znaków w lewo),
- znak ,,." (kropka) oddzielający rozmiar pola argumentu od jego precyzji,
- liczba określająca precyzję, to jest
86
Elektronika Praktyczna 6/2003
KURS
List. 1. Przykłady użycia funkcji printfO
const char* TEKST = "Tekst przykla dowy";
printf( " %s:",TEKST); Tekst przyklac owy:
prlntf( " %10s:",TEKST); Tekst przyklac owy:
prlntf ( " %.10s:",TEKST); Tekst przy:
printf( " %25.s:",TEKST); Tekst przykładowy:
printf( " %-25.s:",TEKST); Tekst przyklat owy :
printf ( ŚŚ %025.10s:",TEKST); Tekst przy
int X = 123;
printf( "%s %04X %s", "123 Dec. =", X, "Hex ') i 12 3 Dec. = 007B Hex
printf( "%s %o %s", "123 Dec. =", X "Oct") 12 3 Dec. = 173 Oct
maksymalną liczbę znaków dla tekstu, liczbę cyfr po kropce dziesiętnej dla liczb zmienn opozycyjnych, minimalną liczbę cyfr dla wartości całkowitych, - litera ,,h", jeśli argument całkowity należy wyprowadzić w postaci short, lub ,,1" (litera ,,1") jeśli argument należy wyprowadzić jako long.
W tab. 1 zestawiono podstawowe znaki przekształcenia dla funkcji printf(). Szerokość pola lub precyzję można w specyfikacji zastąpić znakiem ,,*" (gwiazdki), co oznacza, że żądany argument należy wyprowadzić i przekształcić, korzystając z kolejnego argumentu funkcji (uwaga -musi on być typu int\). Na przykład, wypisanie co najwyżej max znaków z S wygląda następująco: printf("%.*s", max, S); Stosując funkcję printf(), należy pamiętać, że wykorzystuje ona swój pierwszy argument do określenia typu, rozmiarów i liczby pozostałych argumentów. Jeśli programista poda zły wzorzec przekształceń, to mimo opisywanej wcześniej filozofii języka C (zaufaj programiście, on wie co robi), funkcja będzie ,,zdezorientowana" i na wyjściu wyprowadzone zostaną błędne rezultaty jej pracy. Programista powinien mieć świadomość, że efekt wywołań funkcji printfO w postaci printf(s) oraz printf[,,%s",s) może być zupełnie odmien-
List. 2. Przykład programu zmieniajgcego definicję funkcji putcharO
i i zamiana funkcji putchar()
// oryginalnie funkcja PUTCHAR
// wykorzystuje tylko rejestr R7
// i akumulator
// jeśli poniższa używa czegoś więcej
// - może nie funkcjonować
// należy uważnie przyglądać sie
// rejestrom
#include #include #include
// zmiana definicji putchar(), // metoda 1, mniej bezpieczna int putchar (const int c) {
LcdWrite(c);
return (0);
void main (void) {
int X = 241;
// inicjalizacja LCD w trybie 4 bity
Lcdlnitialize();
LcdClrScrO ;
// zamiana liczby X na wartość
// szesnastkowa
printf("Ld %s L02x %s", x, "dec =",
x, "hex"); // koniec programu While (1);
ny, aczkolwiek kompilator języka C dopuszcza stosowanie jednej i drugiej postaci. Jeśli jednak nie podamy wzorca wyprowadzanego łańcucha, to może się okazać, że gdy w zmiennej s wystąpią znaki specjalne (%, *), łańcuch, który zamierzamy wyprowadzić, zostanie potraktowany jako wzorzec. Na koniec tej krótkiej prezentacji warto również wspomnieć o funkcji sprintfO, będącej odmianą printfO, lecz z tą różnicą, że nie wyprowadza ona danych, tylko zapisuje je w pamięci.
Dla praktyków - obsługa
wyświetlacza LCD
z wykorzystaniem funkcji
printf()
Teraz dotarliśmy wreszcie do meritum tego artykułu. Oczywiście, chciałem w krótki sposób zaprezentować funkcje STDIO.H, jednak celem tego artykułu jest nie tyle ich prezentacja, ile wytłumaczenie metody, dzięki której można zaprząc je do pracy. Z doświadczenia wiem, że 80% tworzonych przeze mnie aplikacji nie korzysta z interfejsu UART i nic nie stoi na przeszkodzie w wykorzystaniu STDIO.H dla innych potrzeb.
Funkcja printfO jest zaimplementowa-na od szczegółu do ogółu. Co to oznacza? U podstaw jej działania leży funkcja putcharO wysyłająca pojedynczy znak przez UART. Funkcja printfO nie wie, gdzie i za pomocą jakiego interfejsu wyprowadzane są dane. Zajmuje się tym putcharO i to ją właśnie należy zmienić, aby znaki wysyłane były nie przez UART, ale na przykład na wyświetlacz LCD. Oczywiście, o ile UART i jego obsługa są pewnym standardem w obrębie rodziny mikrokontrolerów 8051, otyłe implementacja obsługi wyświetlacza zależy od konkretnego środowiska, w którym pracuje mik rok on troi er.
W przykładzie programu pokazanym na list. 2 dokonałem zmiany definicji putcharO w taki sposób, że znaki wysyłane są na wyświetlacz LCD, a nie przez UART. Wykorzystałem tu bibliotekę funkcji obsługi LCD z jednego z poprzednich odcinków kursu.
Jak widać na podstawie przykładu programu, redefinicja putcharO nie jest zbyt trudna do wykonania. Nagłówek funkcji musi być zgodny ze zdefiniowanym wcześniej przez producenta pakietu. Można zobaczyć jego pożądany wygląd, otwierając właściwy zbiór nagłówkowy o rozszerzeniu ,,H" (np. STDIO.H). Ciało może być zestawem dowolnych instrukcji.
Tworząc redefinicje, należy zwrócić szczególną uwagę na to, jakie rejestry będą modyfikowane przez nową funkcję.
Zgodnie z dokumentacją producenta (a do niej należy każdorazowo odwoływać się tworząc redefinicje) funkcja printfO spodziewa się, że putcharO modyfikuje wyłącznie zawartość rejestrów UART, R7 i ACC mikrokontrolera oraz przydzielonego na zmienne obszaru pamięci. Jeśli nowo napisana funkcja zmienia zawartość również innych rejestrów, musi być zastosowana inna metoda redefinicji, zaprezentowana w przykładzie na list. 3. Przed użyciem putchar_c() wewnątrz putcharO, wszystkie żywotne rejestry mikrokontrolera są zapamiętywane na stosie i odtwarzane po powrocie z wywołania funkcji. Na listingu pokazano również fragment kodu w asemblerze 8051 wykonywany podczas wywołania putcharO-
List. 3. Bezpieczna redefinicja putcharO oraz odpowiadajgcy jej listing programu po kompilacji -zauważyć można, że wszystkie ważne rejestry zapamiętywane sq na stosie przed wywołaniem putchar (PUSH) i odtwarzane po powrocie (POP)
#include #include #include
// zamiana funkcj i putchar(),
// metoda 2, bezpieczna
void putchar_c (const int c) reentrant
{
LcdWrite(c);
int putchar (const int c)
putchar_c(c); return(0);
void main (void) {
int X = 134;
// inicjalizacja LCD w trybie 4 bity
Lcdlnitialize();
LcdClrScrO ;
// zamiana liczby X na wartość
// szesnastkowa
printf("Ld %s L02x %s",x,"dec.to",
x,"hex"); //koniec programu While (1);
; FUHCTIOH _putchar (BEGIH)
SOURCE
0000
0002
0004
0006
0008
0 0 0A
000C
000E
0010
0012
0014
LINĘ C0F0 C083 C082 C0D0 C000 C001 C002 C003 C004 C005 C006
15
PUSH PUSH PUSH PUSH PUSH PUSH PUSH PUSH PUSH PUSH PUSH
0016 0019 001B 001D 001F 0021 0023 0025 0027 0029 002B 002D 002F
120000
D006
D005
D004
D003
D002
D001
D000
D0DQ
D082
D083
D0F0
22
DPH
DPL
PSW
ARO
AR1
AR2
AR3
AR4
AR5
AR6
; Register R4R5 is ; assigned to parameter c R LCALL ?putchar_c POP AR6 POP AR5 POP AR4 POP AR3 POP AR2 POP AR1 POP ARO POP PSW POP DPL POP DPH POP B RET
Elektronika Praktyczna 6/2003
87
KURS
Słowo kluczowe reentrant języka RC-51 informuje kompilator o tym, że funkcja może być wywoływana przez wiele procesów jednocześnie.
Inny przykład redefinicji putchar (tu wykorzystano również metodę mniej bezpieczną) pokazano na list. 4. Oryginalnie (i zgodnie ze specyfikacją standardu AN-SI C) putchar wysyła po każdym argumencie o wartości OxOA znak o kodzie OxOD. Tworzą one w sumie sekwencję składającą się na znak nowej linii (powrót karetki - CR=0x0D oraz znak nowej linii - LF=0x0A). W niektórych aplikacjach
jest to jednak cecha niepożądana, a wręcz przeszkadzająca. Nowa definicja funkcji putchar nie posiada już tej właściwości. Przedstawione tu przykłady tworzenia własnych funkcji zamieniających oryginalne definicje to wierzchołek góry. Istnieje bowiem cały szereg różnych możliwości -począwszy od bibliotek obsługi standardowego wejścia - wyjścia aż po bibliotekę MATH (operacje matematyczne na liczbach zmiennopozycyjnych). Wszystko zależy od inwencji programisty i od faktycznych potrzeb aplikacji. Wykorzystując biblioteki, należy jednak pamiętać o tym, że oferują
List. 4. Przykład własnej definicji
putcharO
//nowa definicja funkcj i putchar
//wysyłająca dane przez UART
int putchar (const int c)
SBUF = c;
TI = 0;
While ( !TI) ;
one szereg różnych możliwości kosztem zajętej pamięci programu mikrokontrolera. Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Elektronika Praktyczna 6/2003
PROJEKTY CZYTELNIKÓW
Dziaf "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 260,- zł (brutto) za 1 stronę w EP. Przysyłanych tekstów nie zwracamy. Redakcja zastrzega sobie prawo do dokonywania skrótów.
Inteligentna ładowarka akumulatorów NiCd/NiMH
Rosnąca liczba urządzeń
przenośnych stawia przed
elektronikami nowe
wyzwania. Jedno z nich
podjął Czytelnik, w wyniku
czego powstał projekt
prezentowany w artykule.
Rekomendacje: łatwy
w wykonaniu projekt
szybkiej ładowarki do
popularnych akumulatorów
stosowanych m.in.
w przenośnym sprzęcie
audio.
Z pewnością każdy użytkownik przenośnych urządzeń zasilanych bateryjnie został kiedyś zaskoczony, gdy próbując włączyć swoje elektroniczne cacko, dowiedział się, że... akumulatory się wyładowały. Nie ma z tym większego problemu, gdy jest to telefon komórkowy wyposażony w specjalną ładowarkę. Po godzinie czy dwóch możemy na nowo korzystać z urządzenia. W dużo gorszej sytuacji są ci, którzy słuchali muzyki z kasety czy płyty, lub w środku nocy odmówiła pracy klasyczna latarka na dwa ,,paluszki". Zaopatrzeni w sklepową ładowarkę muszą oni odstawić baterie na kilka godzin w celach regeneracyjnych. No i niestety walkman, małe ręczne radio, discman i latarka stały się bezużyteczne. Ale - głowa do góry - nadchodzi odsiecz...
Układ, który chciałbym zaprezentować, nie jest żadną rewelacją, aczkolwiek posiada kilka przydatnych funkcji, które w kilku słowach postaram się przybliżyć.
Dostępne na rynku popularne akumulatorki NiCd charakteryzują się znamionowym napięciem równym 1,25 V. Jest to teoretyczne napięcie ogniwa rozładowanego do połowy pojemności. Reakcje elektrochemiczne zachodzące w ogniwie podczas rozładowywania są odwracalne pod warunkiem, że nie nastąpi utrata gazu (tlenu w ogniwach NiCd, wodoru w NiMH). Przyczyną ,, wy cieku" może być nadmierne rozłado-
/ palne na
wanie ogniwa (szeregowe połączenie kilku ogniw w baterię) - gdy jego napięcie spadnie do zera, płynący wówczas wsteczny prąd powoduje nagrzewanie, ulatnianie się gazu i w efekcie zniszczenie lub nawet eksplozję akumulatora. Również podczas ładowania dużym prądem istnieje niebezpieczeństwo przeładowania ogniwa, co niesie podobne skutki. Dla uniknięcia tego typu sytuacji uniwersalne ładowarki regenerują ogniwa prądem niegrożącym przeładowaniem, niestety jest on tak mały (zwykle C/10 lub C/15, C - pojemność ogniwa), że ładowanie trwa nawet 12 godzin. Przy tak odnawianych ogniwach istnieje niebezpieczeństwo do-ładowywania ogniw nierozła-dowanych. Występujący tzw. efekt pamięciowy powoduje redukcję pojemności w kolejnych cyklach doładowywania.
Szybka regeneracja polega na przepływie dużego (rzędu C) prądu przez ogniwa, dzięki czemu czas regeneracji skraca się radykalnie. Stosowane są dwie metody szybkiego ładowania: stałym prądem lub stałym napięciem. Kilka słów na temat tej pierwszej, którą zastosowałem w moim projekcie.
Dla naładowania baterii wymusza się przepływ stałego prądu przez połączone szeregowo ogniwa. W miarę upływu czasu napięcie na akumulatorach wzrasta. Moment pełnego naładowania j est wykrywany dzięki ujemnemu przyrostowi jego wartości. W ostatniej fazie procesu odnotowujemy także
Projekt
110
spadek temperatury ogniwa, co również może zagwarantować wykrycie chwili naładowania. Ta metoda jest jednak mniej skuteczna ze względu na trudności związane z pomiarem temperatury - wewnętrzny jest niemożliwy, a zewnętrzny mało dokładny. ,, Książko wy" przebieg napięcia ładowanych ogniw widać na rys. 1. Z kolei na rys. 2 pokazano charakterystykę rozładowywania ogniw NiCd i NiMH.
Opis projektu
Przejdźmy teraz do omówienia działania prostego układu, który pozwoli w stosunkowo krótkim czasie na bezpieczne zregenerowanie rozładowanych akumulatorów. Składa się on z dwóch układów scalonych i kilku elementów dyskretnych, a koszt jego budowy na pewno nie przekroczy ceny, za jaką są oferowane zwykłe 12-godzinne ładowarki. ,,Mózgiem" układu jest popularny mikrokontroler AT89C2051 współpracujący z układem firmy Philips -PCF8591. Jest to poczwórny przetwornik analogowo-cyfrowy sterowany interfejsem I2C. Układ ten w swojej strukturze zawiera również przetwornik C/A. Dane wejściowe mikroprocesora stanowią trzy jedno-bajtowe liczby będące rezulta-
10 20 30 40 50 60 70 80 90 100 110 120 130 140 150
1,5
0,8
X
X
Rys. 1
Rys. 2
7 S 9
Czas [min]
10 11 12 13 14 15
Elektronika Praktyczna 6/2003
89
PROJEKTY CZYTELNIKÓW
AT89C2051
VCC
BD244
Rys. 3
tem pomiarów wykonanych przez układ PCF8591. Są to napięcia odpowiednio na jednym ogniwie, na całej baterii i napięcie informujące o prądzie ładowania, powstające na rezystorze włączonym w szereg z ogniwami. Przetwornik pracuje w standardowej konfiguracji z diodowym zabezpieczeniem wejść analogowych. Do sterowania częścią mocy układu wykorzystano analogowe wyjście przetwornika C/A, który określa wartość prądu ładowania (schemat elektryczny na rys. 3). Do komunikacji z użytkownikiem służy wyświetlacz LCD pracujący z czterobitową magistralą danych oraz dioda LED sygnalizująca stan ładowarki. Wprowadzeniu nastaw służą dwa
START
Weryfikacja ogniw------^ Rozładowanie
I OK
Ustawienie prądu ładowania
I
Ładowanie wstępne
I
Ładowanie szybkie
I
Zakończenie procesu
KONIEC
Rys. 4
przyciski chwilowe oznaczone jako WYBÓR (zmiana parametrów) i OK (zatwierdzenie). Bezpośrednie podłączenie wyprowadzenia 14 (Vref) przetwornika PCF8591 wprost do szyny zasilania nie jest dobrym rozwiązaniem ze względu na niewielką stabilność napięcia. Alternatywnie, do stabilizacji napięcia referencyjnego można zastosować układ LM3 85. Tranzystor mocy BD244 przy napięciu zasilania 5 V i prądzie ładowania 500 mA praktycznie nie wymaga radiatora, ale należy pamiętać, że przy wzroście wartości prądu czy napięcia niewielki kawałek aluminium zredukuje jego temperaturę do bezpiecznego poziomu. Wartości wszystkich elementów dyskretnych nie są krytyczne i mogą być dobierane indywidualnie przez każdego użytkownika-elektronika. Ważne jest jedynie, aby tranzystory dysponowały odpowiednią mocą strat i maksymalnymi prądami kolektorów przekraczającymi wartość przewidywanego prądu przy pracy układu. Dla wykorzystania pełnej skali prądowej ładowarki, przy występowaniu tranzystora BC211 (ok. 5 V na bazie) przez tranzystor ładujący BD2 44 przy potencjale jego kolektora ok. 3 V powinien płynąć prąd o natężeniu ok. 1 A. Zespół rozładowujący powinien
umożliwić przepływ prądu o wartości ok. 150 mA przy napięciu na ogniwach ok. 2 V. To chyba wszystko, jeśli chodzi o fizyczną stronę układu, a teraz jego działanie.
Uproszczony diagram stanów układu przedstawiono na rys. 4. Został on zapisany w Basicu i skompilowany za pomocą Bascoma (kody źródłowe są dostępne w dziale Download na stronie www.ep.com.pl, znajdą się także na CD-EP7/2003B).
Po włączeniu zasilania ładowarka sprawdza obecność ogniw. W przypadku ich nie-znalezienia na wyświetlaczu pojawia się komunikat: BRAK OGNIW. Po włożeniu baterii układ przystępuje do sprawdzenia ich stanu. W tym celu na 3 minuty zostaje załączony tranzystor rozładowujący, a procesor mierzy w tym czasie napięcie na obu ogniwach, aby nie dopuścić do nadmiernego rozładowania któregokolwiek z nich. Możliwe są trzy przypadki:
1. Na obydwu ogniwach napięcie spadnie poniżej ok. 0,8 V.
2. Któreś z ogniw będzie nierozładowane.
3. Ogniwa nie wymagają ładowania.
W drugiej sytuacji układ poprosi o wymianę zestawu, w trzecim poinformuje, że ogniwa są naładowane. W obu przy-
padkach możliwe jest kontynuowanie ładowania przez przytrzymanie klawisza OK na 2 sekundy, lecz jest to sytuacja niezbyt zdrowa dla baterii, co jest sygnalizowane pojawieniem się symbolu wykrzyknika na wyświetlaczu podczas ładowania. Pierwszy przypadek to sytuacja podręcznikowa - ogniwa wymagają ładowania -przechodzimy do menu, gdzie możemy wybrać prąd ładowania w zakresie 100...1000 mA z rozdzielczością 100 mA. Oczywiste jest, że większy prąd to krótszy czas, jednak nie wszystkie ogniwa znoszą trudne warunki narzucone przez użytkownika. Na uwadze należy mieć ich pojem-
WYKAZ ELEMENTÓW
Rezystory: 10Q/5W; 3x3,3kQ; 10kQ; lkQ; 500Q; 1Q/5W; 3O/1W Kondensatory: 2x33pF; 2xl00nF; 25V;
Półprzewodniki:
- układy scalone: AT89C2051 (zaprogramowany); PCF8591; LM7805,
- diody: 6x 1N4148; LED (np. zielona),
- tranzystory: 2xBD244/ BC313, BC211(lub podobne)
Różne: rezonator kwarcowy 4MHz; 2 x mikroprzełgczniki; LCD 16*1; goldpiny; ARK2
90
Elektronika Praktyczna 6/2003
PROJEKTY CZYTELNIKÓW
ność i zalecenia producenta co do maksymalnego dopuszczalnego prądu ładowania. Po wybraniu stosownej opcji potwierdzamy ją za pomocą OK i układ rozpoczyna ładowanie. Okazuje się, że ogniwa nie lubią nagłych zmian prądu jak również temperatury, dlatego ładowarka stopniowo przez okres 3 minut zwiększa wartość prądu. Po osiągnięciu zadanej wartości układ - dzięki
sprzężeniu zwrotnemu - utrzymuje stałą jego wartość, monitorując jednocześnie napięcie na ogniwach w celu wykrycia stanu pełnego naładowania. W przypadku wyjęcia ogniw podczas regeneracji układ informuje o ich braku i przerwaniu ładowania. Proces ładowania można oczywiście zatrzymać, choć nie jest to wskazane, naciskając oba przyciski na 2 sekundy. Po wykry-
ciu stanu naładowania układ stopniowo zmniejsza prąd do zera, po czym informuje o zatrzymaniu ładowania zapaloną diodą i informacją na LCD. Można teraz bezpiecznie wyjąć jeszcze ciepłe nowe ogniwa, a układ będzie gotów do załadowania nowego zestawu do regeneracji.
Układ był testowany na ogniwach AA firmy Panasonic o pojemności 800 mAłi.
Przy prądzie regeneracji 1000 mA ładowarka pracowała niewiele ponad godzinę.
Wszelkie uwagi, spostrzeżenia, wykryte błędy w programie i sprzęcie proszę kierować na adres: iram@pocz-ta.onet.pl. Mariusz Żądło
Uwaga! Program źródłowy do projektu opublikujemy na CD-EP7/2003B.
Elektronika Praktyczna 6/2003
91
Punch - programator uniwersalny
Na słr. 37 przedstawiamy drugq część opisu nowoczesnego programatora uniwersalnego, który powstał w naszym laboratorium.
Moduł optycznego wejscia-wyjscia do karty SoundBlaster Live!
Miniprojekt opracowany na żqdanie sporej grupy Czytelników. Słr. 83.
vYampp-3/USB
Drugq część opisu udoskonalonej wersji Yamppa przedstawiamy na słr. 45.
Vocoder ^
Rozrywkowy projekt pozwalajqcy zmienić głos w taki sposób, że użytkownik może udawać krasnoludka lub straszyć baryto nem Schwarzeneggera. Słr. 21.
Środowisko projektowe dla AVR-GCC
Z inicjatywy Jurka Szczesiula powstaje windowsowy interfejs graficzny (IDE) dla kompilatora AYR-GCC. Szczegóły swojego pomysłu prezentuje na słr. 63. Ą
Bezprzewodowy regulator temperatury
Urzqdzenie, którego opis publikujemy na słr. 35 pozwala utrzymywać temperaturę w pomieszczeniu na zadanym poziomie, ale centra-ę sterujqcq łqczy z modułem wykonawczym - zamiast kabla - tor radiowy. Tanio, prosto, pewnie i wygodnie.
Sterowanie alfanumerycznych wyświetlaczy VFD
Wyświetlacze VFD pociqgajq użytkowników swoim niewqtpliwie urokliwym sposobem świecenia. O tym jak je obsługiwać piszemy w artykule na słr. 93.
"Mówiqcy" woltomierz
Na słr. 25 przedstawiamy opis budowy urzqdzenia o niezwykłych możliwościach -jest to woltomierz informujqcy o wyniku pomiaru ludzkim głosem.
T
Szybki jak '51
Na słr. 77 przedstawiamy niektóre tajniki superszybkich '51.
Serwonapędowe nowości firmy Omron
O nowoczesnych serwonapędach stosowanych w systemach automatyki piszemy na słr. 141.
Elektronika Praktyczna 1/2003
Linet Network - nowa sieć na nowy wiek
Po raz drugi na łamach EP przedstawiamy system sieciowy dla systemów nadzoru i sterowania opracowany przez firmę Linet. Słr. 54.
Analogowa konkurencja ^ dla'51
'51 niejedno ma imię. Także Burr-Brown (teraz już jako Tl) włqczył do swojej oferty wysublimowana wersję tego mikrokont-rolera. Słr. 51.
Wonderware InTouch krok po kroku
Pierwsza część kursu obsługi oprogramowania SCADA firmy Wonderware - słr. 137.
ro
- ŚŚ* - -= * i 4
IKA
Nr 1 (121)
styczeń 2003
Projekty
Konwerter USB<->IDE.................................................................. 14
Yocoder.....................................................................................21
"Mówiqcy" woltomierz, część 1 ............................................. 25
Bezprzewodowy regulator temperatury, część 1 ................35
Punch - programator uniwersalny, część 2..........................37
Yampp-3/USB,część2.............................................................45
Moduł optycznego wejścia-wyjścia do karty
SoundBlaster Live!.....................................................................83
Środowisko projektowe dla AVR-GCC..................................63
Kurs
CRC doda Ci pewności, część
Sterowanie alfanumerycznych wyświetlaczy VFD.............. 93
Język C dla mikrokontrolerów8051, część 8........................97
Automatyka
Wonderware InTouch krok po kroku - kurs
obsługi, część 1...................^^-t^n....................................... 137
Serwonapędowe nowości firmy Omron............................. 141
Konkurs dla automatyków.................................................... 144
Linet Network - nowa sieć na nowy wiek.............................54
Szybki jak '51 ............................................................................. 77
Sprzęt ^^^^^^^^^^^^^^^^^^^^^^^^^^^J
Analogowa konkurencja dla '51 ...........................................51
Wykrywanie losowych anomalii sygnału za pomocq oscyloskopów cyfrowych, część 2......................................... 57
Bluetooth - bezprzewodowa transmisja danych na niewielkie od I egłoś ci, część 2...................................................................80
Projekty Czytelń i ków^^^^^^^^^^^^^^^^^^H
"Ślqskr immobilizer......................................................".............99
Z kraju i ze świata........................................................ 123
Biblioteka EPTZ^^^^^^^^^^^^^^^^
Kramik+Rynek..............................................................101 fl
Listy..............................................................,.,v""as.. 1071
Ekspresowy Informator Elektroniczny.TTTTTTT. 119 Wykaz reklamodawców............................................122fl
Elektronika Praktyczna 1/2003
BIBLIOTEKA EP
ŚMctronlld PraMyoznoj
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, 135), Chcemy w ten sposób udostępnić je Czytelnikom BP,
Andrzej Daniluk: RS232C - Praktyczne programowanie od Pascala i C++ do Delphi i Buildera, Helion 2002, zawiera CD-ROM
mistycznych (Delphi i C++ Buil-der), dzięki czemu każdy programista korzystający z interfejsu szeregowego znajdzie dla siebie w niej coś interesującego.
Oprócz podstawowego kursu obsługi portu COM, autor - z myślą
0 początkujących - poświęcił nieco miejsca na omówienie możliwości
1 sposobów konfiguracji prostych programów terminalowych, korzystanie z których może być w pewnych sytuacjach niezbędne, z kolei bardziej zawansowanych programistów ucieszy z pewnością omówienie zagadnień dotyczących graficznej prezentacji wyników z danych odbieranych za pomocą interfejsu COM. Niebagatelną dla praktyków wagę mają także przygotowane na potrzeby książki wyspecjalizowane przykładowe aplikacje terminalowe, na przykładzie których można poznać tajniki budowania kompletnego oprogramowania tego typu. Dla zapewnienia możliwie kompletnej wiedzy czytelnikom, autor przybliżył także nieco sposób budowania komponentów, które są wykorzystywane do budowania bardziej zaawansowanych programów.
Na płycie dołączonej do książki znalazły się źródłowe wersje
Na rynku pojawiło się już drugie wydanie tej unikatowej książki, której zawartość została nieco rozszerzona i zaktualizowana. Największe nadzieje wiązaliśmy z zapowiadanym omówieniem obsługi portu USB, ale - niestety - temat został zaledwie liźnięty i to w sposób odległy od możliwości oferowanych przez współczesną elektronikę.
Nie budzą natomiast żadnych zastrzeżeń pozostałe części książki. Autor dokładnie opisuje problemy związane z obsługą RS232 w DOS-ie, Windows (w tym wykorzystanie bezpiecznego z punktu widzenia pewności działania programu - API), a także zagadnienia związane z tworzeniem komunikacyjnych aplikacji wielowątkowych. Niewątpliwą zaletą książki jest odnoszenie się jej autora do najpopularniejszych środowisk progra-
projektów ilustrujących wykład. Podzielono je na dwie kategorie: dla Buildera oraz dla Delphi.
Pomimo drobnych niedociągnięć (ach te USB) - polecamy!
J. MerkiszT St. Mazurek: Pokładowe systemy diagnostyczne pojazdów samochodowych, WKŁ 2002
Nareszcie książka dla elektroników interesujących się samochodami (od środka) i mechaników samochodowych zainteresowanych silnie zelektronizowa-nym krwioobiegiem współczesnych samochodów. Z listów, jakie otrzymywaliśmy od Czytelników wynika, że bardzo brakowało takiej publikacji.
Autorzy książki zawarli w niej prawdziwe kompendium wiedzy na temat współczesnych elektronicznych systemów diagnostycznych, a także norm i zaleceń obowiązujących w różnych krajach.
Zdecydowanie najwięcej miejsca poświęcono omówieniu zasad działania i budowy systemów diagnostycznych OBD II i EOBD, w tym (co pewnie dla elektroników jest najbardziej interesujące) interfejsów komunikacyjnych, w tym m.in. CAN bus, PWM, VPW i DLC. Przy okazji przedstawiono także możliwości i sposób obsługi oprogramowania diagnostycznego, służącego do wykrywania usterek w systemach pokładowych samochodów.
[ftuaiłwe Ś'ŚŚ-sysleny diagnostyczne
Elektronika Praktyczna 1/2003
133
BIBLIOTEKA EP
Książka jest bogato ilustrowana, zawiera wiele kolorowych zdjęć, niewątpliwego uroku dodaje jej twarda oprawa i szyte strony. Z kolei wysoki poziom merytoryczny publikowanych informacji jest zagwarantowany autorytetem Instytutu Transportu Samochodowego, który jest współwydawcą książki.
Bogdan Buczek: Automatyka i robotyka w ExceluT Mikom 2002T zawiera dyskietkę
Legenda:
Interesujące założenia przedstawione przez autora książki w słowie wstępnym zostały naszym zdaniem zrealizowane tylko częściowo. Nasze poważne zastrzeżenia budzi przyjęta konwencja, polegająca na "zatrudnieniu" Excela do analizy zagadnień związanych z systemami sterowania, co powoduje, że książka sprawia wrażenie instrukcji obsługi arkusza kalkulacyjnego, a nie podręcznika wyjaśniającego merytoryczne tajniki poruszanych zagadnień. Pewnym usprawiedliwieniem takiego podejścia jest umieszczenie książki w serii Ćwiczenia z..., ale są to raczej ćwiczenia z Excela niż z automatyki (przynajmniej na wstępie większości rozdziałów).
Niewątpliwie, po pokonaniu trudności związanych z obsługą Excela, czytelnik z przyjemnością będzie mógł poddać dowolnej analizie samodzielnie zaprojektowany układ sterujący - żmudne obliczenia wykona za niego komputer. Tu słowa uznania dla autora, który opanował obsługę Excela w stopniu, który zadziwiłby pewnie nawet speców od marketingu firmy Microsoft. Przygotowane przykłady obliczeń i prezentacja uzyskanych wyników budzi szacunek. Wszystkie przykłady prezentowane w książce zostały zamieszczone na dyskietce znajdującej się w książce, dzięki czemu czytelnicy nie będą musieli wklepywać długich formuł i będą mogli od razu rozpocząć zabawę.
książka wybitna, polecamy!
książka o dużych walorach praktycznych, polecamy!
może się przydać
daleka od doskonałości
nie warto kupować
Wiesław Haligowski, Michał Kwaśniewski: Układy scalone wideo - aplikacje, tom lT Wiesław Haligowski 2002
Jest to zbiór 302 schematów aplikacyjnych najpopularniejszych układów stosowanych w sprzęcie wideo. Nie zawierają one informacji o parametrach elektrycznych prezentowanych układów, w większości przypadków są to tylko mniej lub bardziej uproszczone schematy aplikacyjne, a w wielu (niestety) przypadkach schematy blokowe układów ze skróconym opisem wyprowadzeń. Jakkolwiek zasób informacji umieszczonych w książce nie jest zbyt duży, w zupełności wystarczy do typowych prac serwisowych.
Układy scalone Ś -aplikacje
w
134
Elektronika Praktyczna 1/2003
BIBLIOTEKA EP
EleMronlU PraKtycznej
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, 131), Chcemy w ten sposób udostępnić je Czytelnikom BP,
James Aff. Sibigttoth: "Zrozumieć małe mikrokontrolery", BTC 2003
temów kodowania liczb, nie wiedzą czym w rzeczywistości różni się "0" od "1", a także co to jest i do czego służy mnemonik, czym się różni kod maszynowy od programu...
Można by tak wymieniać w nieskończoność, ale taka właśnie jest ta książka: autor przedstawia w niej skomplikowaną tematykę od podstaw, udzielając odpowiedzi na 99% pytań, jakie zadają sobie początkujący elektronicy, pragnący rozpocząć samodzielną prsygo-dę z mikrokontrolerami.
Autor - pracownik Motoroli - swój wykład oparł na jednej z najstarszych (ciągle obecnych na rynku) rodzin mik-rokontrolerów 68HC05. Nie oznacza to jednak, ie jest to książka wyłącznie o mikrokontrolerach z rodziny HC05 -zawarte w niej informacje zostały podane w sposób uniwersalny, pozwalający przede wszystkim zrozumieć prezentowane zagadnienia, a odniesienia do konkretnych rozwiązań sprzętowych służą w zdecydowanej większości przypadków za ich ilustrację.
Tak więc, niezależnie od tego, jakimi mikrokontrolerami chcesz się Czytelniku zająć w przyszłości, już teraz możesz "zrozumieć małe mikrokontrole-ry" korzystając z tej lekko napisanej książki.
Pewne wątpliwości wzbudzić może nasza ocena książki: 4 lutownice. Odją-
Polska edycja popularne] na świecie, głównie wśród fanów mikrokontro-lerów firmy Motorola, książki "Under-standing smali microcontrollers". W odróżnieniu od pierwowzoru, polską edycje, "opakowano" w twardą okładkę., co zdecydowanie przedłuża żywotność książki. W swoim czasie była to jedna z pierwszych publikacji wprowadzająca czytelników mniej wprawnych w technice cyfrowej w magiczny świat mikro-kontrolerów, a nie będzie chyba przesadą stwierdzenie, że jest to pierwsza książka tego typu na naszym rynku wydawniczym. "Tego typu" oznacza, że jest to książka przede wszystkim dla początkujących elektroników, którsy nie wiedzą jak działa mikrokontroler i jak się go programuje, dla tych, którsy nie wiedzą co to jest prserwanie, jak działa timer i jak konfiguruje się porty wej-ścia-wyjścia. Jest to książka także dla tych, którsy nie znają najczęściej stosowanych w systemach cyfrowych sys-
matę
nikroko
łem punkt za wyczuwalną w treści "amerykańskość" (cóż dziwnego, autor jest Amerykaninem), której to cechy nie uważam za zaletę. Andrzej Gawry luk
Praca zbiorowaT "Układy sterujące w zasilaczach i przetwornicach - aplikacje i dane techniczne, część 1"T Wiesław Haligowski 2002
Jest to publikacja o ambicjach " katalogowych", w której autorzy zgromadzili noty aplikacyjne oraz podstawowe dane katalogowe kilkudziesięciu typów sterowników zasilaczy impulsowych, scalonych przetwornic DC/DC oraz stabilizatorów liniowych. Zdecydowana większość materiałów zawartych w książce dotyczy układów stosowanych w zasilaczach monitorów, telewizorów, magnetowidów i temu podobnego sprzętu, co
precyzyjnie definuje grupę jej odbiorców.
Uniwersalności książce odbiera fakt, że znaczna część prezentowanych w niej układów nie została w ogóle opisana (zamieszczono tylko schemat aplikacyjny - często uproszczony, zdarzają się także same schematy blokowe, które w szczególnych przypadkach nie niosą informacji niezbędnych serwisantowi). Nie podano także parametrów elektrycznych większości układów, co znacznie zmniejsza praktyczne walory publikacji. Jest to o tyle dziwne, że po krótkiej weryfikacji obecności not katalogowych kilku bardziej interesujących typów na stronach producentów, okazało się, że są one dostępne. Wystarczyło zatem sięgnąć po nie i wyekstrahować najważniejsze dla prac serwisowych parametry. Czemu tak się nie stało?
(Ihłiidy itoruftct w I przetwornicach
Elektronika Praktyczna 2/2003
129
BIBLIOTEKA EP
Legenda:
Tim Parker i Karanijt
S. Sjyan" "TCP/IP - Księga
eksperta11, Helion 2002
Drugie wydanie jednej z najlepszych książek poświęconych protokołowi TCP/IP. Zamiarem autorów było przygotowanie solidnego podręcznika dla użytkowników komputerów osobistych specjalizujących się w konfiguracji systemów sieciowych TCP/IP, ale zawarte w 44 rozdziałach (na blisko 1000 stron!] informacje przydadzą się także tym projektantom systemów mikroprocesorowych, którzy zamierzają samodzielnie tworzyć programowe implementacje stosów TCP/IP lub korzystają ze sprzętowych stosów TCP/IP, jak choćby sławny iChip firmy Seiko. Warto!
Waldemar Nawrocki: "Komputerowe systemy pomiarowe", WKŁ 2002
Swoista monografia prezentująca różnego rodzaju interfejsy stosowane w systemach pomiarowych wykorzystujących komputery osobiste. Największy nacisk autor położył na omówienie interfejsu IEEE-488 (IEC-625), który jest nadal dość często stosowany w systemach pomiarowych. Jeden rozdział zawiera zbiór informacji o najpopularniejszych interfejsach szeregowych RS 232/42 2/ 449/485/5 30, nieco miejsca poświęcono także na skrótowe omówienie magistral: Profi-Bus, CAN oraz MicroLAN (firmy Dallas]. Bardzo interesujące informacje zawiera rozdział poświęcony bezprzewodowym systemom komunikacyjnym, w którym to znajduje się szereg przydatnych informacji o zastosowaniach GSM/GPRS, interfejsów IrDA i Bluetooth oraz klasycznych radiomodemów do komunikacji pomiędzy urządzeniami tworzącymi system pomiarowy. Cały drugi rozdział książki zajmuje omówienie zasad działania przetworników A/C i C/A różnego
książka wybitna, polecamy!
książka o dużych walorach praktycznych, polecamy!
może się przydać
daleka od doskonałości
nie warto kupować
typu, przy czym autor oprócz niezbędnej dawki teorii umieścił w nim kilka przykładowych schematów elektrycznych omawianych rozwiązań, co ułatwia odbiór wykładu elektronikom. W ostatnim rozdziale zgromadzono z kolei szereg informacji o "kasetowych" systemach pomiarowych (CAMAC, VXI i PXI], a także zastosowaniach interfejsu Centronics jako uniwersalnego portu l/O.
Szereg interesujących informacji na poziomie podstawowym znalazło się także we wprowadzającym rozdziale książki, gdzie autor skrótowo przedstawia podstawowe cechy interfejsów USB i IEEE-1394 oraz cechy typowych magistral stosowanych w komputerach PC.
Reasumując: dobrze napisany podręcznik, zawierający najważniejsze informacje praktyczne o podstawowych interfejsach szeregowych oraz o wielu innych, w tym bardzo nowoczesnych, rozwiązaniach komunikacyjnych.
130
Elektronika Praktyczna 2/2003
AUTOMATYKA
Wskaźniki pomiarowe firmy Omron
Ostatnio wprowadzoną do sprzedaży nowością Omrona jest r o dzin a w ska źników p an el owy ch OMA, w ramach której są dostępne trzy moduły:
- K3MA-J - nazywany w nomenklaturze producenta wskaźnikiem procesowym, spełnia rolę uniwersalnego monitora wszystkich standardowych sygnałów analogowych (pętle prądowe 0-20 i 4-20 mA, wejście napięciowe 0-5/l-5/ą5 Vi ą10 V) występujących w systemach automatyki.
- K3MA-L - wyspecjalizowany moduł wskaźnika temperatury, na wejściu którego zastosowano uniwersalny moduł dopasowujący zakres i charakterystykę przetwarzania do dołączanych czuj-
ników (termopary K, J, T, E, L, U, N, R, S, B oraz czujniki re-zystancyjne PtlOO/PtlOOO). - K3MA-F - moduł przeznaczony do pomiaru częstotliwości i okresu impulsów podawanych na wejście. Obwody wejściowe tego modułu są przystosowane do współpracy z czujnikami wyposażonymi w wyjścia napięciowe, stykowe, a także tranzystorowe: NPN iPNP.
Wszystkie prezentowane moduły wyposażono w wyświetlacz LCD (4- lub 5-cyfrowy, wyświetlane znaki mają wysokość 14,2 mm), którego kolor podświetlenia może się zmieniać, w zależności od wyświetlanej wartości. Progi przełączania można oczywiście zaprogramować. Oprócz symboli cyfr służących do wyświetlania wartości śledzonego parametru, na wyświetlaczach znajduje się dodatkowa (mniejsza cyfra) wskazująca poziom zagłębienia w menu konfiguracyjnym oraz kilka dodatkowych wskaźników, min. dla wartości maksymalnej, minimalnej i sygnalizacji przekroczenia ustalonych progów komparacji).
Nadzór nad przebiegiem różnego rodzaju procesów
wymaga zastosowania
odpowiednich czujników
i urządzeń prezentujących
wyniki pomiarów. W ofercie
firmy Omron pojawiła się
nowa rodzina wskaźników
panelowych, które oprócz
nowoczesnej budowy
charakteryzuje znaczna
elastyczność, uzyskana
oczywiście dzięki całkowitemu
ich zelektronizowaniu.
Na płycie czołowej (o wymiarach 48 x 96 mm), oprócz wyświetlacza, znajduje się także 5-przyciskowa klawiatura, za pomocą której użytkownik może ustawić konfigurowalne parametry pracy modułów. Jakkolwiek z ze-
omRon
Elektronika Praktyczna 2/2003
133
AUTOMATYKA
wnątrz są one niemalże identyczne, to sposób konfiguracji każdego z nich przebiega nieco inaczej, ze względu na szereg specyficznych parametrów wynikających z charakteru docelowych aplikacji każdego z modułów.
Kolejną wspólną, niezwykle cenną, cechą paneli czołowych
Tab. 1. Odporność obudów urządzeń na ingerencje z zewnątrz oznaczana za pomocą kodów IP
Znaczenie cyfry kodzie IP-xy, która określa współczynnik zabezpieczenia przed możliwością penetracji wnętrza obudowy przezelementy stałe Cyfra Opis
Niezabezpieczona
Zabezpieczenie przed elementarni o średnicy 50 mm (np ręka)
Zabezpieczenie przed elementami o średnicy 12,5 mm (np palec)
Zabezpieczenie przed elementami o średnicy 2,5 mm (np wkrętak)
Zabezpieczenie przed elementami o średnicy 1,0 mm (np przewód)
Zabezpieczenie przed kurzem zewnętrznym, który może zmniejszać bezpieczeństwo pracy urządzenia
Zabezpieczenie przed kurzem przenikającym do wnętrza obudowy, który może zmniejszać bezpieczeństwo pracy urządzenia
Znaczenie cyfry yvj kodzie IP-xy, która określa współczynnik zabezpieczenia przed możliwością penetracji wnętrza obudowy przez wodę i inne ciecze
Cyfra Opis
Niezabezpieczona
Spadające pionowo krople nie wywołują zaburzeńw pracy urządzenia
Krople, które spadają pionowo me zaburzają pracy urządzenia odchylonego od położenia roboczego o ą15
Ciecz napylona pod dowolnym kątem (mniejszym nizG0w stosunku do pionu) na obudowę nie wywołuje zaburzeńw pracy urządzenia
Ciecz nachlapywana na obudowę
z dowolnej strony nie wywołuje zaburzeń
w pracy urządzenia
Ciecz natryskiwana na obudowę
z dowolnej strony nie wywołuje zaburzeń
w pracy urządzenia
Ciecznachlapywanapod znacznym ciśnieniem na obudowę z dowolnej strony nie wywołuje zaburzeń w pracy urządzenia
Krótkotrwałe zanurzenie urządzenia w cieczy (czasi ciśnienie jest zestandardyzowane) nie powoduje zaburzeńwjegopracy
Krótkotrwałe zanurzenie urządzenia w cieczy (czas zanurzenia i ciśnienie podlega negocjacji pomiędzy producentem i odbiorcą, ale warunki muszą być znacznie Trudniejsze mz w punkcie 7) me powoduje zaburzeń w jego pracy_____________________
wszystkich prezentowanych modułów jest ich wysoka odp or-ność na zalanie i ingerencję mechaniczną z zewnątrz - spełniają one bowiem zalecenia normy IP66 (tab. 1). Pozostała część obudowy (przy standardowym montażu ulokowana za panelem montażowym) ma klasę odporności IP20,
Moduły K3MA-J i K3MA-F wyposażono w dwa przekaźniki ze stykami SPST (NO - Norma! Open), za pomocą których można sterować urządzenia zewnętrzne. Progi załączenia i wyłączenia styków przekaźników są programowane, tak więc wskaźniki mogą spełniać rolę prostych regulatorów. Jest to o tyle łatwe, że styki przekaźników można obciążać prądem 5A przy napięciu zasilania 250 VAC lub 30 VDC. Moduł K3MA-L wyposażono w jeden przekaźnik o takich samych jak podano parametrach elektrycznych.
Dzięki zastosowaniu w modułach mikiokontiolerów, możliwości obróbki wyświetlanych wyników są bardzo duże, min,: możliwe jest programowe uśrednianie wyników, skal o w an ie wy ś w i e tl a -nych wyników, a także ustalanie histerezy analogowych interfejsów wejściowych.
Moduły mają wbudowane zasilacze przystosowane do współpracy ze źródłami o napięciach 100...240 VAC lub 24 VAC. Wewnętrzny stabilizator napięcia zasilającego w module K3MA-F zaprojektowano w taki sposób, aby mógł on zasilić dołączany z zewnątrz czujnik częstotliwości. Maksymalna obciążalność prądowa tego wyjścia wynosi 40 mA.
Jak łatwo ocenić (pomocne będzie zbiorcze zestawienie cech użytkowych modułów przedstawione w tab. 2), są one atrakcyjną alternatywą dla samodzielnie budowanych paneli nadzorczych zwłaszcza, że sugerowana cena sprzedaży modułów serii K3MA jest atrakcyjna. Andrzej Gawry!uk, AVT
Dodatkowe informacje
Artykut powstat na podstawie materiałów udostępnionych przez firmę Omron, tel. (22) 645-78-60, www.omron.com.pl.
Tab. 2. Zestawienie podstawowych funkcji i parametrów modułów z serii K3MA-x
Parametr K3MA-J K3MA-L K3MA-F
Funkcja Wskaźnik procesowy Wskaźnik Temperatury Wskaźnik częstotliwości/ okresu
Rodzaj wejścia 0-20/4-20 mA lub 0-5/1-5/ą5/10V PT100.PT100, Termopary K, J, T, E. L.U. N. R. S.B Stykbeznapięciowy do30Hz, NPN/PNP lub napięcie do 5 kHz
Zakres wskazań -19999 99999 -1999 9999 -19999 99999
Okres próbkowania 250 ms 500 ms -
Dokładność pomiaru ą0,1% skali ą1 cytra (20 26C) ą0,5% wartości wskazania lub ą1 cytra ą0,1% skali ą1 cytra (18 28C)
Wyjścia 2x przekaźnik SPST-NO 5A/250VAC/30VDC przekaźnik SPDT 5A/250VAC/30VDC 2x przekaźnik SPST-NO 5A/250VAC/30VDC
Zasilanie 100 240 VAC/24VAC/VDC (50/60 Hz)
Wymiary 48 (W)x96(S)x 80 (G) mm
Funkcje dodatkowe Programowany kolor wyświetlacza, uśrednianie wyników, przełączanie wyjść porównujących, programowana histereza, skalowanie wyniku, wymuszanie wskazania zerowego poniżej określonej wartości, zerowanie wskazań Programowany kolor wyświetlacza, uśrednianie wyników, przełączanie wyjść porównujących, programowana histereza, przesunięcie charakterystyki Temperaturowej czujnika Programowany kolor wyświetlacza, uśrednianie wyników, przełączanie wyjść porównujących, programowana histereza, automatyczne zerowanie, kornpensacjazałączama
134
Elektronika Praktyczna 2/2003
AUTOMATYKA
Konkurs dla automatyków
Elmark Automatyka Sp. z o.o. -
autoryzowany przedstawicie! firmy
Unitronics na Po!skę - oraz Elektronika
Praktyczna ogłaszają konkurs, w którym
głównymi nagrodami są trzy sterowniki
serii M90, Należy wymyślić aplikację dla
sterownika rodziny M90 i napisać
program realizujący przedstawione
poniżej założenia. Przygotowany opis
aplikacji należy przesłać do firmy Elmark
Automatyka do dnia 10/03/2003,
Rozstrzygnięcie konkursu nastąpi w dniu
20/03/2003, a o wynikach laureaci
zostaną powiadomieni telefonicznie. Rozdanie nagród odbędzie się na targach Automaticon 2003 na stoisku firmy Elmark Automatyka,
wygraj sterownik firmy Unitronics!
Pomoc do konkursu 2: posługiwanie się programem narzędziowym wspomagającym tworzenie programów działania sterownika
Przygotowywanie przykładowego programu w języku drabinkowym zaczynamy od elementów porównujących i cewki ustawiającej SET. Wybieramy z zakładki "funkcje porównań" blok porównań A = B i umieszczamy go w polu programu drabinkowego. Pojawi się okienko argumentu operandu i adresu zmiennej. Wybieramy SI2, co odpowiada aktualnemu wyświetlaczowi ekranu HMI. Następnie - po zatwierdzeniu - pojawi się okienko zmiennej B. Wybieramy # (oznaczające wartość stałą), wpisujemy liczbę 3 i zatwierdzamy. Tak samo postępujemy z drugim
bloczkiem, z tym, że jako wartość A wybieramy MI4, co odpowiada np. nazwie z listy, jaką możemy stworzyć wpisując odpowiednie komunikaty
Program narzędziowy jest dostępny na stronie:
htt p: //su p po r t. elm ar k. com. pl/unit r onics/
literatura-htm, firma Elmark wysyła go także
drogą tradycyjną po zgłoszeniu na e-mail
sterowniki%e1mark.com.pt z dopiskiem
"Konkurs".
w polu tekstowym, a jako wartość stałą liczbę 10. Teraz umieszczamy w programie cewkę wyjściową ustawiającą SET, wybierzemy MB 10 i możemy wpisać opis.
Mamy w tej chwili gotowy jeden szczebel programu, który można zinterpretować następująco: jeżeli aktualnie wyświetlanym komunikatem jest
i a1. -,-n - >* '
Rys. 1
1

'VII

\ l " i n- - ----
komunikat trzeci (czyli SI2 ma wartość 3) oraz wartość zmiennej MI4 wynosi 10, to bit MB10 będzie ustawiony na jeden. Cewka ustawiająca SET ma za zadanie pozostawienie bitu MB10 nawet po zmianie komunikatu na inny (rys. 1). Aby zmienić wartość bitu MB10 na zero, należy wykorzystać cewkę zerującą typu RESET. Oczywiście można kopiować poszczególne szczeble programu, co istotnie skraca czas pisania programu. W tym celu klikamy lewym klawiszem myszki i przeciągamy w ramki część szczebla, którą chcemy skopiować, a następnie wciskamy wklej i wskazujemy kursorem myszki miejsce, w które ma być wklejona część skopiowana programu.
Następna część programu (rys. 2) będzie zawierała styk normalnie ot-


' 1
'* ***ŚŚ* Ś 1.....
Rys. 2
Rys. 3
136
Elektronika Praktyczna 2/2003
AUTOMATYKA
warty, który po przyjęciu wartości równej jeden ustawia cewkę wyjściową MB20 (np. maszyna może być włączona). Jeżeli wyświetlanym komunikatem jest komunikat trzeci i bit MB20 ma wartość jeden, wówczas bit MB7 musi przyjąć wartość jeden i następuje skok do komunikatu numer 3. W tym celu będzie nam potrzebny blok porównujący, styk normalnie otwarty, styk wykrywający zbocze narastające (Posiiive Rise), blok zegara i cewka wyjściowa. Interpretacja drugiej części programu jest następująca: jeżeli aktualnym komunikatem jest komunikat trzeci (SI2 ma wartość 3) oraz maszyna może zostać uruchomiona (MB20 ma wartość jeden), wówczas włączany jest zegar 7, który zacznie odliczać czas 4 sekund. Jeżeli zegar 7 odliczy zadany czas, wówczas bit MB7 zostanie ustawiony na jedynkę.
Teraz musimy zaimplementować warunek sprawdzający, kiedy jest wyświetlany komunikat drugi i bit MB20 nie jest jedynką. Wówczas bit MBS
musi przyjąć wartość jeden i nastąpi skok do komunikatu pierwszego (rys. 3). Do tego celu będzie nam potrzebny blok porównań, styk normalnie zwarty, zegar, styk wykrywający narastające zbocze oraz cewka wyjściowa.
Tę część programu możemy zinterpretować następująco: jeżeli aktualnie wyświetlanym komunikatem jest komunikat trzeci (SI2 ma wartość 3) i bit MB20 ma wartość 0, wówczas zostanie włączony zegar 8. Kiedy zegar odliczy zadany czas, ustawia bit MBS na jeden. Jeżeli nie byłoby opóźnień, to wtedy operator mógłby nie zdążyć zobaczyć komunikatu (który pojawiałby się w zależności od tego czy warunek został spełniony, czy nie), który pojawia się po wpisaniu prawidłowego numeru identyfikacyjnego.
W tych dwóch krótkich przykładach zostały przedstawione podstawowe możliwości, jakie posiadają sterowniki serii M90/91. Nie zostały opisane moż liwości komunikacji GSM, łączenia w sieć poprzez port CANbus czy możliwości wizualizacji poprzez OPC Server z systemami nadrzędnymi typu SCADA oraz aplikacjami systemu operacyjnego Windows (np. Excel).
Dodatkowe informacje
Więcej informacji dotyczących konkursu na stronie: http://www.elinark.corn.pl/unitronics/
konkurs.htrn, a także w tirrnieElrnark Automatyka Sp. z o.o., tel. (22) 828-29-11, www.elrnark.-com.pl/unitronics/, sterowniki@elmark.com.pl.
Regulamin konkursu:
1 Korzysta|ąc z dokumentacji i programu narzędziowego (można ściągnąć z Interne-tu), należy przygotować projekt aplikacji, do której można wyko rzy stać sterownik rodziny M90 z programem realizującym przyjęte założenia
2 Projekt powinien zawierać
- opis aplikacji (charakterystyka obiektu, typ zastosowanego sterownika i schemat połączeń sprzętowych),
- program zapewniający sterowanie obiektem oraz interfejs operatora
3 Termin napływania zgłoszeń 10/03/2003
4 Rozstrzygnięcie konkursu nastąpi w dniu 20/03/2003 Nazwiska laureatów zostaną umieszczone na stronie www.elmark.com.pliunitronics, a oni powiadomieni telefonicznie
5 Rozdanie nagród 1/04/2003 na targach Automaticon o godz 12 00 na stoisku El-mark Automatyka
6 Nagroda trzy pierwsze miejsca są nagradzane sterownikiem serii M90
7 Informacje o oprogramowaniu można znaleźć na stronie WWW (hffpiisupporf-elmark.com.pliunitronicsiliteratura.htm) lub wyślemy pocztą (należy przysłać adres na e-mail sierowniki@elmark.com.pl)
8 Projekty należy kierować do Elmark Automatyka Sp zoo ul Radna 12/5, 00-341 Warszawa z dopiskiem "Konkurs" lub e-mailem sterowniki@elmark.com.pl
9 Elmark Automatyka Sp zoo zastrzega sobie prawo do wykorzystania nadesłanych prac w materiałach techniczno-handlowych
Elektronika Praktyczna 2/2003
137
AUTOMATYKA
W cyklu artykułów publikowanych na lamach EP zamierzamy zaprezentować możliwości oprogramowania wizualizacyjnego (SCADA) Wonderware InTouch. Na płycie CD-EP1/2003B zamieściliśmy demonstracyjną, polskojęzyczną wersję oprogramowania InTouch 7.11 PL.
Kurs obsługi, część 2
W cyklu artykułów pokażemy krok-po-kroku, jak za pomocą InTouch 7.11 PL można zaprojektować przykładową aplikacje., która będzie symulować proces produkcji mleka czekoladowego. Zaprojektowana aplikacja wizualizacyjna będzie komunikować się z symulatorem programu komunikacyjnego, w którym jest realizowany algorytm pracy zbiornika do produkcji mleka czekoladowego. W rzeczywistych wdrożeniach program komunikacyjny wymienia dane bezpośrednio ze sterownikami i urządzeniami.
Ożywianie grafiki
Po utworzeniu obiektu lub elementu graficznego może on zostać ożywiony przez przypisanie do niego połączeń ani-macyjnych. Połączenia animacyjne powodują zmianę wyglądu obiektu, który odzwierciedla zmiany wartości zmiennej. Na przykład, pompa może mieć kolor czerwony, gdy jest wyłączona, a zielony podczas pracy. Pompa jako obiekt może pełnić również rolę wyłącznika przyciskowego, który umożliwia jej wyłączanie i włączanie z poziomu ekranu. Ten oraz wiele innych efektów animacyjnych można uzyskać definiując odpowiednie połączenia animacyjne dla wybranego elementu lub obiektu. Niektóre połączenia animacyjne umożliwiają wykorzystanie (poza samymi zmiennymi) wyrażeń logicznych do obliczania wartości zmiennych, uaktywniania lub wyłączania innych połączeń animacyjnych, itp.
Na przykład, jeżeli element graficzny ma być widoczny tylko wtedy, gdy poziom cieczy w zbiorniku przekracza wartość 400, wyrażenie logiczne połączenia animacyjnego odpowiedzialnego za widoczność tego obiektu będzie wyglądać następująco: poziom_zbiornika > 400, gdzie poziom_zbiornika jest zmienną reprezentującą tę wartość.
A więc co to jest zmienna w aplikacji wizualizacyjnej? Zmienna [punki, bramka) - jest to struktura przechowują-
Rys. 23
ca informację np. liczbową [Discreie, In-ieger, Real) lub tekstową [Message]. Wartość ta może być obliczana przez samą aplikację wizualizacyjna [zmienne Memory] lub pobrana z innej aplikacji np. programu komunikacyjnego [I/O Server), który bezpośrednio komunikuje się z urządzeniami np. sterownikami PLC. Zmienne, które przechowują informacje pobrane z innych aplikacji są zmiennymi typu zewnętrznego [zmienne I/O).
Teraz wracamy do naszego projektu: zaznaczamy górny zawór (mleka - rys. 23) i naciskamy Enier lub dwukrotnie kilkamy lewym przyciskiem myszy zaznaczony obiekt.
Pojawia się okno Połączeń animacyjnych, w którym można wybrać, co za pośrednictwem wskazanego obiektu można będzie zrealizować - te opcje znajdują się w całej grupie Połącz dotykowe [rys. 24) lub co się będzie zmieniało w narysowanym obiekcie - pozostałe opcje.
Załóżmy, że wymagana jest zmiana koloru zaworu i linii rurociągu, w zależności od wartości śledzonej zmiennej. Aby moina było taką funkcjonalność zdefiniować, należy w oknie połączeń animacyjnych z grupy Kolor wypełnienia wybrać przycisk Dyskretny.
Pojawi się okno dialogowe pokazane na rys. 25, w którego polu Wyrażenie należy wpisać nazwę zmiennej Za-wór_mleka. W celu zdefiniowania koloru, jaki zawór będzie przyjmował gdy zmienna Zawór_mleka przyjmie wartość 0 lub 1, należy wskazać myszą okienko dla stanu 0,FAłSZ,WYŁ, a potem okienko dla stanu 1,PRAWDA,WŁ. W obu przypadkach pojawi się dostępna paleta kolorów, na której należy wskazać wybrany kolor. Po wybraniu kolorów należy nacisnąć przycisk OK.
Ponieważ na liście zmiennych programu InTouch nie ma zdefiniowanej zmiennej o nazwie Zawór_mleka, dlatego program zapyta się, czy taką zmienną zdefiniować. Należy wtedy kliknąć przycisk OK i zdefiniować zmienną w oknie, które pokazujemy na rys. 26.
Aby zdefiniować zmienną, należy w polu Zmienna wpisać nazwę zmiennej (pole to zostało automatycznie wypełnione przez InToucha). Następnie wybieramy typ zmiennej naciskając przycisk Typ... i zaznaczamy na liście typ I/O Discreie.
Teraz klikamy przycisk Nazwa dostępu..., a następnie przycisk Dodaj.... W tym miejscu zostanie określone, do jakiej aplikacji zewnętrznej będzie sięgał InTouch, w celu pobrania informacji,
która będzie przypisana do zmiennej Za-wór_mleka. Okno Nowa nazwa dostępu zawiera następujące informacje (rys. 27):
Nazwa dostępu - czyli jaka nazwa ma zostać przypisana definiowanej nazwie dostępu. Może to być dowolna nazwa, np. PLC1.
Nazwa komputera - jest to pole, w którym należy wpisać nazwę sieciową komputera, ale tylko w takim przypadku gdy program z którym InTouch ma się komunikować, będzie pracował (został zainstalowany) na innym komputerze. W naszym przypadku program, z którym InTouch będzie komunikował się, jest zainstalowany na tym samym komputerze co InTouch, więc tego pola nie wypełniamy!
Nazwa aplikacji - jest to pole, w którym należy wpisać nazwę aplikacji z którą InTouch, będzie się komunikował. W tym polu wpisujemy SIMULATE. Jest to nazwa pliku, który uruchamia program SIMULATE, który jest symulatorem programu komunikacyjnego. Ten program, jako symulator rzeczywistego połączenia ze sterownikiem, pozwoli na pokazanie idei ko-
Rys. 24
t-* _.*.,
Rys. 25
Rys. 26
138
Elektronika Praktyczna 2/2003
AUTOMATYKA
nn
* KT
Rys. 27
munikacji z zewnętrznymi urządzeniami, bes konieczności posiada takich urządzeń. Pamiętajmy, że w polu Nazwa aplikacji nigdy nie należy wpisywać rozszerzenia pliku ani ścieżki dostępu do pliku!
Nazwa tematu - w tym polu, należy wpisać nazwę tematu, czyli kanału komunikacyjnego, przez który program komunikacyjny łączy się i wymienia informacje z sterownikami. Pamiętajmy, że zawsze istnieje konieczność zdefiniowania w programie komunikacyjnym tematu. W przypadku InToucha, również taki temat (kanał komunikacyjny) trzeba wskazać, aby InTouch wiedział, o który temat ma się pytać w programie komunikacyjnym. Tak więc, w polu Nazwa tematu wpisujemy PLC. Również taki temat będziemy musieli zdefiniować w symulatorze programu komunikacyjnego SIMULA-TE, ale zostanie to zrealizowane później.
Po wypełnieniu wszystkich pól w definiowanej nazwie dostępu, naciskamy przy-cisk OK, w celu zatwierdzenia definicji. Pojawi się znowu okno do definiowania zmiennej, ale już z przypisaną do zmiennej Zawćr_mleka, nazwą dostępu PLCl.
Pozostało do wypełnienia pole Element. W tym polu należy wskazać o co InTouch ma się dokładnie odpytywać program komunikacyjny. W przypadku symulatora programu komunikacyjnego SIMULATE, w jego logice zdefiniowane są już Elementy, o które można się od-pytać, Wpisujemy więc w polu Element; wartość VI (rys. 2B).
Należy pamiętać, że w każdym rzeczy-wistym programie komunikacyjnym takie Elementy występują i są one inne dla różnych rodzajów sterowników. Wynika to z różnej notacji, przyjętej przez producentów programów komunikacyjnych.
Rys. 29
Wypełnienie pola Element zakończyło definiowanie zmiennej. Teraz pozostaje zapisać zmiany przyciskiem Zapisz i wyjść z okna definicji zmiennej za pośrednictwem przycisku Zamknij. Pojawi się okno Kolor wypełnienia - wyrażenie dyskretne, w którym należy wybrać dolny przycisk OK. W ten sposób na ekranie pozostanie okno połączeń animacyj-nych, w którym należy tym razem wybrać z grupy Kolor linii przycisk Dyskretny (rys. 29). Pojawi się okno dialogowe uzależniające kolor linii obiektu graficznego od wartości zmiennej dyskretnej. W polu Wyrażenie należy wpisać nazwę zmiennej, ale zamiast wpisywać nazwę zmiennej ręcznie, można dwukrotnie kliknąć lewym przyciskiem myszy w pole Wyrażenie. Wtedy pojawi się przeglą-darka zmiennych, z której należy wskazać zdefiniowaną wcześniej zmienną
0 nazwie Zawór_mleka (rys. 30).
Po wyborze zmiennej Zawór_mleka z listy zmiennych, należy nacisnąć przycisk OK, a potem zamknąć okno połączeń animacyjnych górnym przyciskiem OK.
Teraz należy zaznaczyć narysowany na oknie obiekt graficzny reprezentujący zawór syropu i nacisnąć Enier lub na zaznaczonym obiekcie kliknąć dwukrotnie lewym przyciskiem myszy. Pojawi się okno Połączeń animacyjnych, w którym z grupy Kolor wypełnienia należy wybrać przycisk Dyskretny [sys. 31). Pojawi się kolejne okno dialogowe. W polu Wyrażenie należy usunąć nazwę zmiennej Zawór_mleka
1 wpisać nazwę zmiennej Zawói_syiopu. W celu zdefiniowania koloru, jaki zawór będzie przyjmował gdy zmienna Zawói_sy-iopu będzie przyjmowała wartość 0 lub 1, należy wskazać myszą okienko dla stanu 0,EAłSZ,WYŁ, a potem okienko dla stanu 1,PRAWDA,WŁ. W obu przypadkach pojawi się dostępna paleta kolorów, w której należy wskazać wybrany kolor. Po wybraniu kolorów należy nacisnąć przycisk OK. Ponieważ na liście zmiennych InToucha nie ma zdefiniowanej zmiennej o nazwie Zawói_syiopu, dlatego InTouch zapyta się, czy taką zmienną zdefiniować.
Następnie klikamy przycisk OK i definiujemy zmienną w kolejnym oknie. Wybierając przycisk Typ... należy na liście wskazać typ I/O Discreie. Zwróćmy uwagę na to, że nazwa dostępu PLCl została przypisana automatycznie. Zmieniamy w polu Element; VI na V2 - jest to Element w programie SIMULATE, który odpowiada za otwieranie i zamykanie zaworu syropu (rys. 32). Teraz pozostaje zapisać zmiany przyciskiem Zapisz i wyjść z okna definicji zmiennej za pośrednictwem przycisku Zamknij. Pojawi się okno Kolor wypełnienia - wyrażenie dyskretne, w którym należy wybrać dolny przycisk OK. W ten sposób na ekranie pozostanie okno Połączeń animacyjnych, w którym należy tym razem wybrać z grupy Kolor linii przycisk Dyskretny (rys. 33). Pojawi się okno dialogowe uzależniającego kolor linii obiektu graficznego od wartości zmiennej dyskretnej. W polu Wyrażenie należy wpisać nazwę zmiennej, ale zamiast wpisywać nazwę zmiennej ręcznie, można dwukrotnie kliknąć lewym przyciskiem myszy w pole Wyrażenie. Wtedy pojawi się przeglądarka zmiennych, w której należy wskazać zdefiniowaną wcześniej zmienną o nazwie Za-wói_syiopu (rys. 34). Po wyborze zmiennej Zawói_syiopu z listy zmiennych, nale-
ży nacisnąć przycisk OK, a potem zamknąć okno Połączeń animacyjnych górnym przyciskiem OK.
Kolejnym etapem tworzenia aplikacji jest przygotowanie animacji zbiornika, który będzie pokazywał ilość wyprodukowanego mleka czekoladowego. W tym celu należy zaznaczyć narysowany na oknie obiekt graficzny reprezentujący zbiornik i nacisnąć Enier lub na zaznaczonym obiekcie kliknąć dwukrotnie lewym przyciskiem myszy. Ponownie pojawi się okno Połączeń animacyjnych, w którym z grupy Wypełnienie należy wybrać przycisk Pionowe (rys. 35). Pojawi się okno dialogowe pokazane na rys. 36. W polu Wyrażenie należy wpisać nazwę zmiennej Po-ziom_zbiornika, w polu Wart. przy maks. wypełnieniu wartość 1000, a w polu Wart przy min. wypełnieniu cyfrę 0. Z kolei w polu Maks. wypełnienie (%} wprowadzić należy wartość 100, a w polu Mii?. wypełnienie (%} wartość 0. Wprowadzone parametry liczbowe oznaczają, że naryso-
Rys. 30
Rys. 31
M__I .
Rys. 32
Rys. 33
Elektronika Praktyczna 2/2003
139
AUTOMATYKA
E^__5^
Rys. 34
Rys. 35
wany zbiornik będzie maksymalnie pokazywał wartość 1000 jednostek, która reprezentuje 100%, a minimalnie 0, czyli 0%. W momencie gdy pojawi się wartość np. 500, to wtedy zbiornik będzie wypełniony do połowy (50%).
Z kolei parametr Kierunek określa, w którym kierunku obiekt będzie wypełniany mlekiem czekoladowym - zaznacza-my Do góry. Do ustalenia pozostaje jeszcze kolor tła obiektu. Po kliknięciu na prostokąt obok napisu Kolor tła:, można wybrać kolor tła zbiornika, z dostępnej w programie palety kolorów. Po wybraniu koloru należy nacisnąć przycisk OK Ponieważ na liście zmiennych InToucha nie ma zdefiniowanej zmiennej o nazwie Poziom _zbiornika, dlatego InTouch zapyta się, czy taką zmienną zdefiniować. Należy potwierdzić za pomocą kliknięcia w przycisk OK i zdefiniować zmienną w oknie pokazanym na rys. 37.
Aby zdefiniować nową zmienną, należy w polu Zmienna wpisać nazwę zmiennej (pole to zostało automatycznie wypełnione przez InToucha). Następnie wybieramy typ zmiennej naciskając przycisk Typ... i zaznaczyć na liście typ I/O Inieger. Następnie zmieniamy parametry Mii?, inż. na 0, Maks. inż. na 1000, Mii? I/O na 0, a Maks. I/O na 1000. Pola te umożliwiają wykorzystanie skalowania (Konwersja). Dostępne są dwie konwersje: Liniowa i Pier-wiastkowa, Pola Mii?. I/O oraz Maks. I/O określają odpowiednio najmniejszą i największą wartość którą będzie można odczy-
Rys. 36
tać/zapisać z/do sterownika, natomiast pola Mii?, inż. oraz Maks. inż. - wartość minimalną i maksymalną po przeskalowaniu, czyli taką, jaka zostanie pokazana w aplikacji wizualizacyjnej. Na przykład, jeżeli wiadomo, że zmienna będzie reprezentowała wartości odczytywane ze sterownika z zakresu od -100 (Mii?. I/O) do 10000 [Maks. I/O), a chcemy je przedstawić w aplikacji wizualizacyjnej jako wartości z zakresu od 0 do 100, to wtedy w polu Mii?. inż. należy wpisać wartość 0, a w polu Maks. inż. wartość 100 i wskazać w grupie Konwersja, parametr Liniowa.
W projektowanej aplikacji nie ma potrzeby korzystania z konwersji, a więc powyższe pola należy wypełnić według przytoczonych wskazówek.
Naciskamy przycisk Nazwa dostępu. i wskazać PLC1, jako zdefiniowaną nazwę dostępu, do której będzie przypisana zmienna Poziom_zbiornika, a z kolei w polu Element należy wpisać LI. Jest to element zdefiniowany w programie SI-MULATE, który reprezentuje ilość wyprodukowanego mleka czekoladowego. Teraz pozostaje zapisać zmiany przyciskiem Zapisz i wyjść z okna definicji zmiennej za pośrednictwem przycisku Zamknij oraz zamknąć okno Połączeń animacyjnych górnym przyciskiem OK.
W podobny sposób są konfigurowane kolejne obiekty graficzne - czyli tekst #, znajdujący się poniżej prostokąta, Symbol ten będzie wyświetlać wartość liczbową znajdującego się w zbiorniku wyprodukowanego mleka czekoladowego. Aby mógł on realizować takie zadanie, należy go odpowiednio skonfigurować. W tym celu należy zaznaczyć symbol # w oknie i nacisnąć Enier lub na zaznaczonym obiekcie kliknąć dwukrotnie lewym przyciskiem myszy. Pojawi się okno Połączeń animacyjnych, w którym z grupy Wyświetlanie wartości należy wybrać przycisk Analogowe. W polu Wyrażenie kolejnego wyświetlonego okna należy wpisać nazwę zmiennej, której wartość będzie wyświetlana, ale zamiast wpisywać nazwę zmiennej ręcznie, dwukrotnie klikamy lewym przyciskiem myszy w pole Wyrażenie. Wtedy pojawi się przeglądarka zmiennych, z której należy wskazać zdefiniowaną wcześniej zmienną o nazwie Poziom_zbiornika. Po wyborze zmiennej Poziom_zbiornika z listy zmiennych, należy nacisnąć przycisk OK, a potem zamknąć okno Połączeń animacyjnych górnym przyciskiem OK.
Ostatnim obiektem graficznym, który należy skonfigurować jest przycisk z napisem Start. Obiekt ten jest inny, niż definiowane wcześniej, gdyż za jego pomocą będzie można wprowadzać wartości 1 lub 0 odpowiadające uruchomieniu lub zatrzymaniu procesu produkcji mleka czekoladowego. Aby skonfigurować przycisk, należy zaznaczyć przycisk w oknie edycyjnym i nacisnąć Enier lub na zaznaczonym obiekcie kliknąć dwukrotnie lewym przyciskiem myszy. Pojawi się okno Połączeń animacyjnych, w którym z grupy Przyciski należy wybrać przycisk Dyskretny (rys. 38). Pojawi się okno dialogowe, w którym w polu Zmienna wpisujemy nazwę zmiennej Start. Z grupy Sposób działania wybieramy Przełączanie. Spowoduje to, że po pierwszym naciśnięciu przycisku, stan zmiennej zostanie ustawiony na 1, a po kolejnym na-
Rys. 37
Rys. 38
ciśnięciu, stan zmiennej przyjmie wartość 0. Zmiany zapisujemy poprze klik-nięcie klawisza OK. Podobnie jak we wcześniejszych przypadkach InTouch zapyta się, czy zdefiniowaną zmienną zapisać.
Następnie, poprzez kliknięcie przycisku Typ... należy wybrać z listy zmiennych typ I/O Discreie. Z kolei, wybierając przycisk Nazwa dostępu, przypisujemy do zmiennej Start nazwę dostępu PLCl, a następnie zaznaczamy opcję Użyj nazwy zmiennej jako nazwy elementu, w celu wykorzystania w polu Element nazwy zmiennej, a więc Start. Teraz pozostaje zapisać zmiany przyciskiem Zapisz i wyjść z okna definicji zmiennej za pośrednictwem przycisku Zamknij. Pojawi się okno Przycisk - wartość dyskretna, w którym należy wybrać dolny przycisk OK. W ten sposób na ekranie pozostanie okno połączeń animacyjnych, w którym należy tym razem wybrać z grupy Wyświetlanie wartości przycisk Dyskretne.
Pojawi się okno dialogowe, w którym w polu Wyrażenie należy wpisać nazwę zmiennej Start lub dwukrotnie klikając lewym przyciskiem myszy w pole Wyrażenie, wskazać zmienną w przeglądarce zmiennych.
Pozostaje jeszcze wypełnić pola Gdy prawdziwe oraz Gdy fałszywe, w których należy wpisać tekst lub wartość liczbową, która będzie wyświetlana, gdy zmienna Start przyjmie wartość 1 [Gdy prawdziwe) lub 0 (Gdy fałszywe). W polu Gdy prawdziwe wpisujemy tekst Uruchomiony, natomiast w polu Gdy fałszywe tekst Zatrzymany. Po wpisaniu tekstów w odpowiednie pola, zamykamy okno Połączeń animacyjnych górnym przyciskiem OK.
Skonfigurowanie przycisku Start zakończyło etap projektowania aplikacji. Jedynie co pozostało do zrealizowania, to konfiguracja programu komunikacyjnego (program WindowMaker pozostawiamy uruchomiony). Marcin Legutek, A stor ML@astor.com.pl
Dodatkowe informacje
Ewal uacyjnę wersj ę programu InTouch 7.11 PL
zamieściliśmy na CD-EP1/2003B.
140
Elektronika Praktyczna 2/2003
PROJEKTY
VHDL i lampy, część 1
PROJEKT Z OKŁADKI
No tak, Elektronika
Praktyczna wzięła się za
"odgrzewanie kotletów",
pomyślą pewnie ci spośród
naszych Czytelników, którzy
pamiętają polską elektronikę
z końca lat 80. Akceleracja,
jakiej jesteśmy poddawani
przez ostatnich 12 lat -
chodzi głównie o dostęp do
nowoczesnych podzespołów -
spowodowała, że jeszcze
niedawno traktowane
pogardliwie lampy Nixie
nabrały wyjątkowego "smaku".
Pomysłem na ich
zastosowanie dzielimy się
z Wami w ańykule.
Rekomendacje: projekt
z popularnego na Zachodzie
gatunku "Vintage Electronics",
czyli chwytające za serce
(i zazwyczaj oko) praktyczne
starocie. O tyle dopasowany
do EP-owskiej doktryny
nadążania za nowościami, że
cała część cyfrowa została
opisana w VHDL-u.
Nastały nieco zwariowane czasy. Z jednej strony są powszechnie dostępne układy scalone w miniaturowych obudowach CSP (Chip Scalę Package), z drugiej do mody wracają lampy, niewątpliwie element z minionej epoki. Dzięki narzędziom takim jak Bas-com, w wielu aplikacjach AVR-ek zastępuje timer 555 lub realizuje b ar dzi ej skompliko w ane z a dania, ale jednocześnie elektronicy zafas-cy no w ani ,, 1 amp owym'' brzm ie -niem budują wzmacniacze in.cz. (na ogół o fatalnych - jak wykazują pomiary - parametrach). Nie brakuje także zwolenników tunerów FM budowanych na lampach w czystym układzie heterodyno-wym. Powstają także nowe "lampowe" fankluby, jak choćby TYBulbs z miasta Aurelia w Australii, którego członkowie uznali, że najlepszą jakość obrazu TV można uzyskać jedynie w lampowych odbiornikach telewizyjnych. ..
Mody "lampowe" docierają do naszego kraju z pewnym opóźnieniem w stosunku do Zachodu, czego przyczyną jest prawdopodobnie nasze stosunkowo późne
wkroczenie w świat nowoczesnej elektroniki. O tym, że spore grono naszych Czytelników jest zainteresowanych tą tematyką, dowodzą zarówno wyniki naszej interneto-wej ankiety, jak i listowe reakcje na projekty publikowane ostatnio w EP (lampowy equalizer czy też odbiornik kryształkowy ze wzmacniaczem lampowym).
Traktując entuzjastyczne listy jako zachętę do przybliżania fascynujących możliwości lamp różnego rodzaju, przygotowałem projekt o niezaprzeczalnych walorach użytkowych i estetycznych, a przy tym sporych - także dla Czytelników niezbyt zainteresowanych lampami - walorach edukacyjnych.
Przyjemne z pożytecznym
Podczas przeszukiwania internę to wy ch zasobów przypadkowo (bo przecież nie interesują mnie lampy) natknąłem się na kilkanaście kolekcji zdjęć i co najmniej kilkadziesiąt opisów projektów zegarów, których możliwości funkcjonalne nie były zazwyczaj oszałamiające, ale zamiast wyświetlaczy LED lub energooszczędnych LCD, zastosowano w nich mniej-
14
Elektronika Praktyczna 2/2003
AVTNixieClock
1OMC1-12 ltitfMCI-13 OGCK3MC1-14 OPJC1-15
UOMC3-12 \fOfMCa-M
WMC3-10 OWC3-9
"TT
Ta
CII IOOOuF
Vin
=C12 lOOnF

veut
ci 3
47uF
Ś |iSrF
VIN VOUT
a z 2 z o tu
C15
w
IO
X
C16 "
47uF
C17 100nF
Rys. I. Schemat elektryczny sterownika zegara
sze lub większe lampy! Takie zegary muszą mieć duże wymiary, do zasilania wymagają relatywnie wysokich napięć i z tego powodu do ich wykonania niezbędne są dość specyficzne elementy. Pobierają dużo energii, zazwyczaj mają jeszcze kilka innych wad, ale zastosowano w nich wyświetlacze lampowe! To wystarczy, aby się nimi zainteresować. Po prostu prezentują się efektownie, są ładne.
Podglądnięte rozwiązania układów z e g ar owy ch z af a s cyno w ały mnie do tego stopnia, że postanowiłem zaprojektować i wykonać taki zegar, przy czym - tu się kłaniają walory edukacyjne pro-
jektu - zamiast klasycznych rozwiązań "dyskretnych" na układach CMOS lub TTL, postanowiłem przygotować mieszankę nowoczesności z retro: wyświetlacze Nbde sterowane (oczywiście poprzez bufory napięciowe) przez nowoczesny układ PLD produkowany przez firmę Xilinx, w którym zaimplementowano zegar opisany w języku VHDL.
Zastosowanie układu programowalnego - wbrew obiegowym poglądom - nie wiąże się ze wzrostem kosztu wykonania zegara, a dzięki możliwości programowania układu w systemie i dostępnym bezpłatnym narzędziom do kompilacji opisów w VHDL
(WebPack ISE oraz WebFitter firmy Xilinx - z tego drugiego można korzystać zdalnie przez Internet!) elastyczność tak przygotowanego projektu jest bardzo duża.
Opis układu
Zegar składa się z trzech zasadniczych części, których schematy przedstawiono kolejno na rys. 1...3: sterownika zegara, zespołu wyświetlaczy i zespołu kluczy tranzystorowych.
Sterownik zegara jest zintegrowany z preskalerem częstotliwości wzorcowej. Sygnał podstawy czasu jest wytwarzany w generatorze kwarcowym zbudowanym z tranzystora T30 i elementów biernych
Elektronika Praktyczna 2/2003
15
AVTNixieClock
tVA
Rys. 2. Schemat elektryczny bloku wyświetlania
R39, R40, R41, C7, C9 i Xl (częstotliwość rezonansowa kwarcu wynosi 21* Hz = 32,768 kHz). Oprócz generatora, na zewnątrz układu Ul znajduje się stosunkowo niewiele elementów, co wynika ze zintegrowania w jego wnętrzu wszystkich bloków funkcjonalnych zegara. Działanie układu Ul omówimy w dalszej części artykułu.
Przełącznik Sl służy do włączania trybu szybkiego ustawiania, S2 do włączania trybu wolnego ustawiania, natomiast S3 służy do przełączania trybu pracy zegara pomiędzy zliczaniem czasu i ustawianiem. Ponieważ w układzie Ul zaimplementowano układy synchroniczne (liczniki), przed rozpoczęciem pracy wymaga on zerowania. Rolę układu automatycznie zerującego wszystkie wbudowane w Ul bloki synchronicz-
ne spełnia dołączony do globalnego wejścia zerującego Ul obwód różniczkujący C3, R26.
Na rys. 1 zamieszczono także schemat elektryczny zasilacza dostarczającego napięcie anodowe 220 VDC dla wyświetlaczy Nbde oraz stabilizowane napięcia +5 VDC - U2 (zasilanie generatora i programatora ISP) i +3,3 VDC -U3 (zasilanie układu Ul). W obydwu liniach zasilających zastosowano kondensatory filtrujące, przy czym ich łączna pojemność (nie licząc kondensatora pierwszego filtru tętnień Cli) jest niezbyt duża, ale wystarczająca dzięki bardzo małemu poborowi prądu przez układ Ul.
Pamięć konfiguracji zastosowana w układzie Ul jest typu Flash, dzięki czemu jej zawartość można modyfikować po zamontowaniu układu w systemie. Do tego celu służy wyspecjalizowany interfejs JTAG, którego linie sygnałowe zostały doprowadzone do złącza J2 widocznego na schemacie pokazanym na rys. 1. Pomimo tego, że Ul jest zasilany napięciem o wartości 3,3 V, wszystkie jego linie I/O (w tym także linie interfejsu JTAG) mogą współpracować (w obydwie strony!) ze standardowymi układami cyfrowymi zasilany-
mi napięciem 5 V. Dlatego też, do styków 1 i 2 złącza J2 doprowadzono napięcie o tej wartości, które można wykorzystać do zasilenia programatora ISP (opis budowy takiego programatora opublikowaliśmy w EP4/2001, można go znaleźć także w Internecie pod adresem: http://www.ep.com.pl/ archiwum/pdf/2001 /04/SO.pdf}.
Uważni Czytelnicy zarzucą mi po analizie schematu zasilacza pewnie niekonsekwencję, ponieważ pomimo zastosowania transformatora Trl, zasilanie zegara
Historia Nixie
Wyświetlacz Nixie opracowali w 1952 roku dwaj braciar węgierscy emigranci zamieszkali w Stanach Zjednoczonych George i Zoltan Haydu, Byli oni właścicielami firmy produkującej lampy elektronowe i inne elementy stosowane w ówczesnych urządzeniach elektronicznych, głównie do zastosowań militarnych (min, pierwsze alianckie radary, stosowane podczas bitwy o Wielka Brytanię, były budowane z wykorzystaniem podzespołów produkowanych przez braci Haydu),
W 1953 roku prawa do produkcji wyświetlaczy Nixie zakupiła firma Burroughs Corp,, jeden z największych wówczas producentów biurowych maszyn liczących. Nad projektem wdrożenia wyświetlaczy do masowej produkcji czuwał Saul Kuchinsky, który nadał mu nazwę Numerical Indicator eKperitnentat - 1, czyli w skrócie NIX-1, Już w 1954 w prasie fachowej nadano nowemu produktowi firmy Burroughs nazwę Nixie, która aż do dzisiaj nieodłącznie kojarzy się ze znakami jarzącymi się na pomarańczowo w szklanej bańce.
Panowanie lamp Nixie na świecie trwało aż do początku lat ł70" kiedy to bardzo szybko zostały wyparte przez 7-segmentowe wyświetlacze LED, Nieco dłużej stosowane były w naszym kraju (i pozostałych, należących do Bloku Wschodniego), co było objawem technologicznego zacofania krajowego przemysłu elektronicznego. Jeszcze w drugiej połowie lat '80 warszawska firma Meratronik produkowała laboratoryjne multimetry (m,in, V-543, V-560) wyposażone w wyświetlacze Nixie produkowane m,in, przez wrocławski Dolam,
i
i
16
Elektronika Praktyczna 2/2003
AVTNixieClock
jmO
kJmO
MPSA42
kjma
k_dzmO
K_dzm4
Rys. 3. Schemat elektryczny bloku wzmacniaczy wysokonapięciowych
+VA
nie jest odizolowane od sieci energetycznej. Dzieje się tak dlatego, źe napięciem anodowym jest napięcie uzyskane przez wyprostowanie za pomocą mostka Graetza M2 napięcia podawanego wprost z sieci energetycznej. Czyli prosty wniosek: albo transformator Trl jest nadmiarowy, albo brakuje transformatora w obwodzie zasilania anod wyświetlaczy. Wbrew pozorom takie rozwiązanie nie jest wynikiem błędu konstrukcyjnego, ale kompromisu pomiędzy łatwością uruchomienia i bezpieczeństwem pracy wykonawcy zegara a możliwościami samodzielnego wykonania (lub zdobycia inną drogą) odpowiedniego transformatora. Szczegóły zostaną omówione w dalszej części artykułu.
Zespół wyświetlaczy na lampach Nixie jest kolejnym blokiem, którego schemat przedstawiono na rys. 2. W anody lamp L1...L4 włączono rezystory ograniczające prąd płynący przez lampę do ok. 3,4 mA. Nie jest konieczne równoległe łączenie par rezystorów: R17 i R18, R19 i R36, R37 i R38, a także R44 i R45, gdyż można zastosować pojedyncze rezystory o rezystancji ok. 22...24 kLi i mo-
cy co najmniej 0,3 W.
Na rys. 2 zamieszczono w ramce narysowanej linią przerywaną dwie neonówki dołączone do złącza J5. Służą one do wyświetlania dwukropka i są umieszczone na osobnej płytce drukowanej, zamontowanej prostopadle do płyty bazowej.
Katody lamp L1...L4 i obydwie neonówki są sterowane przez wysokonapięciowe tranzystory, połączone jak to pokazano na schemacie elektrycznym zespołu kluczy tranzystorowych.
Zespół kluczy (rys. 3) zawiera tranzystory T1...T29 pracujące w konfiguracji kluczy emiterowych z obciążeniami w postaci lamp i neonówek (T29) włączonymi w obwody kolektorów. Zastosowane w modelowym egzemplarzu tranzystory KSP42 (ścisły odpowiednik MPSA42) są przystosowane do pracy z napięciem Uceo
0 wartości do 300 V, a maksymalny prąd kolektora może wynosić do 500 mA. Spełniają więc z naddatkiem wymagania stawiane przez aplikację, ale ich niska cena
1 dostępność na rynku spowodowały, że wybrano je do prezentowanego układu.
Co to jest Nisie?
Nixie jest tzw. "zimną" lampą, ponieważ do jej działania nie jest konieczne podgrzewanie katody. Zatopione w szklanej bańce katody mają kształty wyświetlanych symboli. Są one otoczone anodą, która ma perforację od strony "czołowej" (lub są zwrócone katodami do strony "czołowej"), zapewniającą odpowiednią widoczność wyświetlanych znaków. Ponieważ podczas produkcji z wnętrza lampy jest usuwane powietrze, a w jego miejsce _ wprowadzany jest gaz H
szlachetny (neon) o niewielkim ciśnieniu, to po przyłożeniu odpowiednio dużego napięcia pomiędzy anodę i katodę gaz ten ulega jonizacji wokół katody i świeci, czyniąc widocznym wybrany znak. Z punktu widzenia elektrycznego lampę Nixie można porównać z zespołem neonówek z jedną elektrodą wyprowadzoną wspólnie. Icł liczba odpowiada liczbie wyświetlanych znaków.
Elektronika Praktyczna 2/2003
17
AVTNixieClock
JTAG
3/
Sterownik JTAG
I/0E3-
I/0E3-
I/0E3-
I/0E3-
I/0E3-
I/0E3-
I/0E2-
1/0 L2-
I/O/GCK L2-I/O/GSR E3-
V
1/0/GTS E3-
Modut programowania ISP
S * &
18
Blok funkcjonalny 1
Makrakomórki 1..18
54,
18
Blok funkcjonalny 2
Makrakomórki 1..18
18
Blok funkcjonalny 3
Makrokomórki 1..18
18
Blok funkcjonalny n
Makrokomórki 1..18
Rys. 4. Schemat blokowy ilustrujący wewnętrzną budowę układu XC9572XL
Ul od środka
Jak wcześniej wspomniałem, "sercem" prezentowanego zegara jest układ programowalny CPLD [Complex Programmable Logic De-vice). Zastosowany układ należy do rodziny XC9500XL, która jest zmodernizowaną wersją znanych od lat układów rodziny XC9500, przystosowanych do pracy niskonapięciowej. Budowę wewnętrzną układu XC9572XL pokazano na rys. 4. W strukturze układu zintegrowano duże (jak na potrzeby projektu, wykorzystano bowiem 51 spośród 72 dostępnych mak-
rokomórek) zasoby logiczne, w tym aż 72 makrokomórki o niezwykle dużych możliwościach konfiguracyjnych. Makrokomórki są pogrupowane w bloki po 18. Komunikację pomiędzy nimi umożliwia programowana matryca połączeniowa. Budowę pojedynczej makrokomórki układu XC9572XL pokazano na rys. 5. Schemat blokowy układu zegara zaimplementowanego w ukła-
M M Ś Ś M i" Z^.-----------
List. 1. Opis działania licznika dziesiątek minut w języku VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGWED.ALL;
entity licznik_dzm is Port ( clk: in std_logic;
clk_o: out std_logic;
res: in std_logic;
outp: inout std_logic_vector(5 downto 0)
end licznik_dzm;
architecture beh of licznik_dzm is
signal din: std_logic;
begin
process (clk, res) begin
if res = '1' then
outp <= "000001";
elsif clk'event and clk = '1' then
outp <= outp(4 downto 0) & outp(5);
end if;
beh;
outp(5);
Dodatkowe i termy 1 (z sąsiednich
makrokomórek)
Term Set
1
W 3,3V vs 5V
Zastosowanie w projekcie układu zasilanego napięciem 3,3 V ma tylko jedną przyczynę: był on znacznie tańszy od odpowiednika w klasycznej wersji zasilanej napięciem 5 V. Dzięki pełnej kompatybilności linii wejściowych i wyjściowych układu XC9572 z układami TTL i CMOS zasilanymi napięciem 5 V, korzystanie z niego w aplikacjach z mieszanymi napięciami zasilającymi nie jest kłopotliwe.
dzie Ul pokazano na rys. 6. W układzie zrealizowano wszystkie bloki niezbędne do działania zegara, w tym także preskaler częstotliwości wzorcowej. Opisy wszystkich bloków widocznych na rys. 6 przygotowano w języku VHDL, a dwa najciekawsze omówimy nieco bardziej szczegółowo. Liczniki czasu, ze względu na specyficzny sposób sterowania wyświetlaczy Nixie (dekodowanie 1 z n), zostały opisane jako liczniki Johnsona (z krążącą jedynką). Opis liczników jednostek i dziesiątek minut jest dość prosty (list. l), ponieważ nie ma konieczności ręcznego przypisywania stanów wyjść określonej liczbie zliczonych impulsów. Nieco więcej pracy wymagało przygotowanie opisu licznika godzin (jednostek i dziesiątek, list. 2), ponieważ ten blok
Tam Clock Enable
Term Ctocfe
Tflim Reset
Term OE
Dodatkowe i termy
1 (z sąsiednich ! makrokomórek)
Do matrycy
połączeniowej
FasłCONNECTII
D/f Q CE
tHT
h. PT
P---"
PTOE
Rys. 5. Uproszczony schemat budowy makrokomórki w układzie XC9572XL
18
Elektronika Praktyczna 2/2003
AVTNixieClock
List. 2. Opis działania licznika godzin (jednostek i dziesiqtek) w jeżyku VHDL
llbrary IEEEr
Use IEEE STI'_L0GIC_1164. ftLL;
lise IEEE
entlty licznik h ls
Port ( clk: ln s td_logier
res, modę : ln std_lc gier - niode=0 -> 24h ---<- ir..4-. i- Jn _"1-rx-4-_ ^-Ś^
OUtp_dZ: lnoUt std_loglc_yector(2 doWnto 1)
.Ś . end llcZnlk_hr
arcliltecture beh of llcZnlk_h 1 s
slgnal stan: std_loc lc_Vector(ll doWnto 0);
constant godzina_0: std_loglc_' ecto (11 doWnto 0):= "000000000001":
constant godzina_l: std_loglc_' ecto (11 doWnto 0):= "000000000010";
constant godzina_2 : std_loglc_' ecto (11 doWnto 0):= "000000000100";
constant godzina_? : std_loglc_' ecto (11 doWnto 0):= "000000001000";
constant godzina_4: std_loglc_' ecto (11 doWnto 0):= "000000010000";
constant godzina_5: std_loglc_' ecto (11 doWnto 0):= "000000100000";
constant godzina_S: std_loglc_' ecto (11 doWnto 0):= "000001000000";
constant godzina_7: std_loglc_' ecto (11 doWnto 0):= "000010000000";
constant godzina_S : std_loglc_' ecto (11 doWnto 0):= "000100000000";
constant godzina_9 : std_loglc_V ecto (11 doWnto 0):= "001000000000";
constant godzina_10: std_lóglc_yector(ll doWnto 0)-.= "010000000001";
constant godzina_ll: std_loglc_yector(ll doWnto 0)-.= "010000000010";
constant godzina_12 : std_loglc_yector(ll doWnto 0)-.= "010000000100";
constant godzina_13 : std_loglc_yector(ll doWnto 0)-.= "010000001000";
constant godzina_14: std_loglc_yector(ll doWnto 0)-.= "010000010000";
constant godzina_15: std_loglc_yector(ll doWnto 0)-.= "010000100000";
constant godzina_lS: std_loglc_yector(ll doWnto 0)-.= "010001000000";
constant godzina_17: std_loglc_yector(ll doWnto 0)-.= "010010000000";
constant godzina_lS : std_loglc_yector(ll doWnto 0)-.= "010100000000";
constant godzina_19 : std_loglc_yector(ll doWnto 0)-.= "011000000000";
constant godzina_2 0: std_loglc_yector(ll doWnto 0)-.= "100000000001";
constant godzina_21: std_loglc_yector(ll doWnto 0)-.= "100000000010";
constant godzina_2 2 : std_loglc_yector(ll doWnto 0)-.= "100000000100";
constant godzina_2 3 : std_loglc_yector(ll doWnto 0)-.= "100000001000";
begln
proces s (clk, res
begln
lf res = ' 1' and niode = 0' then
stan <= godzina_Or
elslf res = '1 and niode = ' 1' then
stan <= godzina_12r
elslf clk'eVent and clk = '1' then
lf niode = 0' then
case stan ls
When godzina_0 = > stan <= godzina_lr
When godzina_l => stan <= godzina_2r
When godzina_2 => stan <= godzina_3r
When godzina_3 = > stan <= godzina_4r
When godzina_4 = > stan <= godzina_5r
When godzina_5 = > stan <= godzina_Sr
When godzina_S = > stan <= godzina_7r
When godzina_7 => stan <= godzina_Sr
When godzina_S => stan <= godzina_9r
When godzina_9 = > stan <= godzina_10r
When godzina_10 => stan <= godzina_llr
When godzina_ll = > stan <= godzina_12r
When godzina_12 = > stan <= godzina_13 r
When godzina_ll => stan <= godzina_14r
When godzina_l' => stan <= godzina_15r
When godzina_15 = > stan -v= godzina_ier ^^^^^^^^T
When godzina_lS = > stan -v= godzina_17r ^^^^^^^^^^^^^^^^
When godzina_17 = > stan -v= godzina_lSr ^^^^^^^^^^^^^^^^K.
When godzina_lS = > stan -v= godzina_l?r ^^^^^^^^B^^^K^^^
When godzina_19 = > stan -v= godzina_2dr ^^^^^^^^^2^H
When godzina_2 0 = > stan -v= godzina_21r ^^^^^^^^^^^^V
When godzina_21 = > stan -v= godzina_22r ^^^^^^^^V^Bm^S.
When godzina_2 2 = > stan -v= godzina_23r ^^^^^^^^gg vi
When godzina_2 3 = > stan -v= godzina_dr ^^^^^^^V P \ł
When others => stan -v= godzina dr ^^^^^^^P T U
end caser
elslf niode = '1' then
case stan ls
When godzina_12 = --- stan -v= godzina_lr ^^^^^^^^^H^H
When godzina_l = > stan -v= godzina_2r ^^^^^^^^^H^li
When godzina_2 = > stan -v= godzina_3r ^^^^^^^^^ftlHl
When godzina_3 = > stan -v= godzina_4r ^^^^^^^^^^^Hl
When godzina_4 = ':-' stan -v= godzina_^r ^^^^^^^^^^^^^^V*
When godzina_5 = ':-' stan -v= godzina_Lr ^^^^^^^^^^^^KV .
When godzina_S = > stan -v= godzina_7r ^^^^^^^^^^I^^^^^L_
When godzina_7 = ':-' stan -v= godzina_Sr ^^^^^^^^^^^^^^^^^^^^^^^k
When godzina_S = ':-' stan -v= godzina_?r ^^^^^^^^^^^^^^^^^^^^^^^H
When godzina_9 = > stan -v= godzina_ldr ^^^^^^^^^^^^^^^^^^^H
When godzina_10 = > stan -v= godzina_llr ^^^^^^^^^^^^^^^^^^^^hl
When godzina_ll = > stan -v= godzina_12r ^^^^^^^^^^^^^^^^^^^^^|
When others => stan -v= godzina 12 - t ^^^^^^^^^^^^^^^^^^^Ł
end case
end lfr
enc lfr
oUtp_] <= stan(9 doWnto 0) ;
oUtp_dz <= stan(11 doWnto 10)r
end processr
end behr
WYKAZ ELEMENTÓW
Rezystory
R1...R1Ó, R20...R25, R27...R33: 20kn R17...R19, R3Ó...R3S, R44, R45:
sMada się z dwóch połączonych szeregowo liczników Johnsona o modyfikowanym trybie zliczania (12/24 godziny - służy do tego celu wejście modę). Z tego powodu najprostszym sposobem jego opisu było zdefiniowanie stanów
wyjsc wraz z przypisaniem wartości odpowiadających określonym godzinom (za pomocą przypisań constant). Należy pamiętać, że przedstawione sposoby opisu są jednymi z wielu możliwych i dzięki elastyczności języka VHDL
R2ó: lkn
R34, R35:
R39;
R40:
R41:
R42, R43:
Kondensatory
Cl, C4...CÓ, CIO, C12, C14, C17:
lOOnF
C2, CS: 10fiF/10V
C3: 4,7^F/10V
C7, C9: 30pF
Cli: 1OOO^F/1ÓV
C13, Cló: 47^iF
C15: lOnF
Lampy
LI..14: Z5ÓS0M lub podobne
LP1, LP2: neonówki E10 220V
z podstawkami (np. Elfa 33-643-04
+ 33-802-35)
Półprzewodniki
Ul: XC9572XL-10TG100C
(za próg ra mowa ny)
U2: 7SL05
U3: REG103-3.3
Ml, M2: np. W04G mostki
prostownicze 500mA/400V
T1...T29: MPSA42/KSP42 lub
podobny
T30: 2N3904
Różne
Jl: gniazdo dla wtyków goldpin
óxl
J2: listwa goldpin óxl
J3: ARK2
J4: listwa goldpin 3x1
J5: kqtowa listwa goldpin óxl
Xl: kwarc 32,768 kHz
Fl: ó3mAT
Sl, S2, S3: przełączniki Digitast
Trl: TEZ0,5/D-9V (Breve Tufvassons)
praktycznie każdy projektant może opracować własne wersje wszystkich bloków funkcjonalnych.
Pliki źródłowe wraz z kompletnym opisem projektu udostępniamy na płycie CD-EP2/2003 oraz na naszej stronie internę towej w dziale Download.
Opis zegara w VHDL-u został skompilowany za pomocą bezpłatnego kompilatora WebPack ISE (wersja 4.2 WP2) udostępnianego przez firmę Xilinx w Internecie
Elektronika Praktyczna 2/2003
AVTNixieClock
dzh[1...O]
modę
set a
tt ttttttntt
outp_dz outpj[9...0]
[2-1]
modę
clk res
Ucznlk godzin (jednostek i dziesiątek)
clk_1
dzm[5...O]
mm
outp[5...0]
clk_o
elk< res
Licznik dziesiątek minut
clk_0
tttttttttt
outp[9...0]
clk_o
Clk res
Licznik |ednostek minut
Przeizutnik RS Przerzutnik D
set a
clk a
nie_clk_a
. clk_min_set
inO
adr
>clk_a
d la
U1
(XC9572XL)
wy_1_min clk_1_Hz clk_4_Hz ras clk<
wolno szybko
Preskaler
clk set
ur dk
clk ref
szybko wy wolno_wy
Rys. 6. Schemat blokowy zegara (Ul po skonfigurowaniu)
[http://www.xilinx.com/support/ download.htm). Ściągnięcie programu jest możliwe po uprzednim zarejestrowaniu się użytkownika za pomocą specjalnego formularza na stronie internetowej firmy Xi-linx. Oprogramowanie WebPack ISE publikowaliśmy także na płytach CD-EP11/2002B i 12/2002B. Alternatywnym sposobem skompilowania opisu i implemen-
tacji projektu jest skorzystanie z bezpłatnego zdalnego oprogramowania WebFitter, które z punktu widzenia użytkownika działa (oczywiście przy założeniu, że ma on stały dostęp do Internetu) w sposób równie wygodny, co instalowany lokalnie WebPack ISE. Jak sprawdziłem, wyniki kompilacji za pomocą każdego z wymienionych narzędzi są takie
Gaz zjonizowany wokół katody świeci
/ Anoda
Katody
Jak
Do zasilania lamp Nixie
niezbędne jest źródło
napięcia stałego o wartości
130...170 V (zależnie od
typu lampy). Napięcie to
(nazywane napięciem
zapłonowym) musi być
przyłożone pomiędzy
anodę i katodę, powodując
zjonizowanie gazu wokół
tej ostatniej i w konsekwencji wyświetlenie znaku o kształcie
odpowiadającym kształtowi katody. Po zjonizowaniu gazu
wewnątrz lampy ("zapaleniu" znaku) napięcie pomiędzy anodą
i katodą spada do wartości roboczej, co wymusza konieczność
włączenia w szereg z którąś z elektrod (zazwyczaj anodą)
rezystora ograniczającego prąd do wartości przewidzianej
w danych katalogowych. Jonizacja gazu powoduje także, że
lampa zachowuje się jak stabilizator napięcia pomiędzy anodą
i katodą. Napięcie to jest nazywane roboczym, a jego wartość
jest mniejsza zazwyczaj o ok. 8...10% od wartości napięcia
zapłonowego. Wygaszenie gazu wokół katody jest możliwe po
zmniejszeniu wartości napięcia przyłożonego pomiędzy anodę
i katodę poniżej napięcia podtrzymania.
same, w związku z czym nie ma powodu, aby szczególnie polecać któreś z nich.
Przypisanie sygnałów do wyprowadzeń I/O układu XC9572XL w obudowie TQFP1OO pokazano na rys. 7. Rozmieszczenie sygnałów zostało narzucone podczas projektowania za pomocą pliku wymuszeń użytkownika [User Constraint File), który jest akceptowany przez obydwa wspomniane narzędzia EDA.
O Nixie słów kilka
Niewątpliwym atutem wizualnym prezentowanego zegara są zastosowane w roli wyświetlaczy lampy Nixie. Wysokość znaków wyświetlanych przez lampy Z5680M wynosi 50 mm, co (według danych katalogowych dostępnych m.in. pod adresem: http://www.mif.pg.gda.pl/home-pages/frank/sheets/084/z/ Z560M.pdf) zapewnia ich widoczność z odległości do 30 metrów. Lampy te produkowała m.in. wschodnioniemiecka fabryka RFT, ale ich odpowiedniki były wytwarzane także przez wiele innych firm. Niestety, obecnie nie jest łatwo takie lampy kupić, a ze względu na rosnącą wśród amatorów lamp popularność Nixie na Zachodzie, ich ceny są dość wygórowane (od ok. 20 EUR za sztukę + koszty wysyłki). Po
Elektronika Praktyczna 2/2003
AVTNixieClock
długich poszukiwaniach kupiłem lampy na internetowej giełdzie e-Bay i po trzech tygodniach odebrałem paczkę z Australii. Nie byłoby to szczególnie frapujące, gdyby nie fakt, że te właśnie lampy wyprodukowano w NRD.
O tym, że nie tylko lampy kosztują, boleśnie przekonają się także Czytelnicy poszukujący wysokonapięciowych sterowników lamp Nixie z rodziny TTL: 7441 oraz 74141. Jedynie firma dystrybucyjna Mouser ma je w ciągłej sprzedaży. Układy dostępne pod oznaczeniem NTE71414 przy zakupie 100 szt. kosztują 6,36 USD każdy. Zdecydowanie rozsądniej i bardziej ekonomicznie jest zastosować tranzystory MPSA42/ KSP42, które podczas zbierania elementów do modelowego egzemplarza były dostępne po ok. 0,6 PLN brutto. Piotr Zbysiński, AVT piotr.zbysinski@ep.com.pl
W artykule wykorzystano zdjęcia i informacje pochodzące ze stron:
- http://www.wehx.dk/oz2cpu/index.htm,
- http://www.arttec.net/art/Relevators.html,
- http://www.amug.org/~jthomas/iee-enix.html,
- http://wl.871.telia.com/~u87127080/ ind/z560m.htm,
- http://www.mif.pg.gda.pl/homepages/ frank/sh eets/0 84 /z/Z 5 6 OM.pdf.
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdfZlutyO3.htm oraz na płycie CD-EP2/2003B w katalogu PCB.
Device : XC9572XL-10-TQ100
d d
z z j j PPPhhPmm
P m m
3 1 m m
3 3 3 3 mmmm
V < G G G C 0 N N N C > D D D
<D
D O
C > > > >
/100 98 96 94 92 90 88 B6 84 82 80 78 76
99 97 95 93 91 89 87 85 83 81 79 77
jh Ś-i 75 GND
NC 2 74 PGND
jh<2> 3 73 NC
jh<3> 4 72 dzm<5>
VCC 5 71 dzm<4>
jh<4> 6 70 dzm<3>
NC 7 69 GND
jh<5> 8 68 PGND
jh<6> 9 67 dzm<2>
jh<7> 10 66 dzm
jh<8> 11 65 dzm<0>
jh<9> 12 64 PGND
PGND 13 XC9572XL-10-TQ100 63 PGND
PGND 14 62 GND
PGND 15 61 PGND
Ster_dk 16 60 PGND
clk_set 17 59 PGND
szybko_wy 18 58 PGND
NC 19 57 VCC
wolno_wy 20 56 PGND
GND 21 55 PGND
clk_ref 22 54 PGND
PGND 23 53 PGND
NC 24 52 PGND
PGND 25 51 VCC
27 29 31 33 35 37 39 41 43 45 47 49
\26 28 30 32 34 36 38 40 42 44 46 48 50 i
VPPPPGPmNPPPVrsPPNGTNTTPP
CGGGGNGoCGGGC
CNNNNDNd NNNC
DDDD De DDD
eeGGCNDCMCGG
StNN DI SKNN
D D D D
Legend
NC = Not Connected, unbonded pin PGND = Tie pin to GND for additional ground path or leave unconnected
VCC = Dedicated Power Pin
GND = Dedicated Ground Pin
TDI = Test Data In, JTAG pin
TDO = Test Data Out, JTAG pin
TCK = Test Clock, JTAG pin
TMS = Test Mode Select, JTAG pin
PE = Port Enable pin
PROHIBITED = User reserved pin
Rys. 7. Przypisanie sygnałów do wyprowadzeń układu Ul
Elektronika Praktyczna 2/2003
21
AUTOMATYKA
W cyklu artykułów publikowanych na łamach EP zamierzamy zaprezentować możliwości oprogramowania wizualizacyjnego (SCADA) Wonderware InTouch. Na płycie CD-EP1/2003B znajduje się demonstracyjna, polskojęzyczna wersja oprogramowania InTouch 7.11 PL.
Kurs obsługi, część 1
W cyklu artykułów pokażemy krok-po-kroku, jak za pomocą InTouch 7.11 PL można zaprojektować przykładową aplikację, która będzie symulować proces produkcji mleka czekoladowego. Zaprojektowana aplikacja wizualizacyjna będzie komunikować się z symulatorem programu komunikacyjnego, w którym jest realizowany algorytm pracy zbiornika do produkcji mleka czekoladowego. W rzeczywistych wdrożeniach program komunikacyjny wymienia dane bezpośrednio ze sterownikami i urządzeniami.
Konfiguracja nowej aplikacji
Przed rozpoczęciem tworzenia aplikacji należy utworzyć katalog dla aplikacji. W tym celu z menu Siari\Prograiriy\Wonderware Factory-Suiie\In To uch należy uruchomić główny program InTouch. Pojawi się okno informacyjne z komunikatem, że InTouch został uruchomiony po raz pierwszy (rys. 1). Należy kliknąć
Rys.
przycisk Dolej, co spowoduje przejście do następnego okna.
W kolejnym oknie (rys. 2) należy wskazać ścieżkę dostępu do katalogu, w którym domyślnie mają być umieszczane nowe aplikacje (zwykle jest to katalog, w którym InTouch został zainstalowany np. D:\Piogia m Fi-Ies\FaciorySuiie\InTouch). Po wskazaniu katalogu, należy kliknąć przycisk Zakończ, co spowoduje wyświetlenie okna eksploratora aplikacji (rys. 3).
Następnie wybieramy polecenie Plik\Nowa..., co powoduje pojawienie się okna kreatora projektu (rys. 4), który poprowadzi nas przez kolejne etapy konfigurowania nowej aplikacji. W następnym wyświetlonym oknie (rys. 5) należy podać nazwę katalogu, w którym będzie znajdować się nowa aplikacja. Domyślnie InTouch podaje nazwę NewApp, ale można również wpisać dowolną nazwę, po której będzie rozpoznawana aplikacja. Ponadto, za pomocą klawisza Przeglądaj, można wskazać istniejący już na dysku katalog. Jeżeli została wprowadzona nazwa katalogu, należy kliknąć przycisk Dolej. Na ekranie pojawi się okno służące do określenia nazwy i wprowadzenia opisu projektowanej aplikacji (rys. 6). W polu Nazwo należy wpisać nazwę projektowanej aplikacji, natomiast w polu Opis informacje o projektowanej aplikacji. Jeżeli oba pola zostały wypełnione, należy wybrać przycisk Zakończ. W oknie eksploratora aplikacji (rys. 7) powinna pojawić się nazwa nowej aplikacji. Za pomocą myszki należy podświetlić nazwę nowej aplikacji i nacisnąć ikonkę WindowMakei (zaznaczono ją kółkiem na rys. 7).
1 l\, t,l,im
"I
1 In iii-*----'
Aplikacja wizualizacyjna jest budowana jako zbiór powiązanych ze sobą podstawowych obiektów graficznych - jakim są okna (ekrany) - tworzonych za pomocą programu do projektowania aplikacji - WindowMakei. Okno może zajmować cały ekran lub tylko jego część, zgodnie z wymaganiami aplikacji. Liczba okien, które mogą być wyświetlane jednocześnie, zależy od rozmiaru okien w odniesieniu do miejsca dostępnego na ekra-
Rys. 4
Rys. 5
Rys. 2
Rys. 3
Rys. ó
Elektronika Praktyczna 1/2003
137
AUTOMATYKA
ID M
V
r
Rys. 7
Rys. S
nie. Program, który służy do uruchamiania zaprojektowanej w środowisku WindowMaker aplikacji, nosi nazwę Win dowViewer. Program ten tworzy środowisko, w którym zaprojektowana aplikacja pracuje, czyli utrzymuje komunikację ze światem zewnętrznym, np. ze sterownikami.
Tworzenie aplikacji wizualizacyjnej w WindowMaker
Aby utworzyć pierwsze okno, należy wybrać z menu Plik\Nowe okno. Spowoduje to pojawienie się okna dialogowego z cechami okna (Właściwości okna - rys. 8). W pole Nazwo należy wprowadzić unikatową nazwę okna (w aplikacji nie może być dwóch okien o takiej samej nazwie), która będzie pojawiała się w linii tytułowej definiowanego okna (maksymalnie 32 znaki, włączając w to odstępy). Można również wybrać kolor tła okna, wskazując prostokąt obok napisu Kolor okno. Na ekranie pojawi się paleta barw, umożliwiająca wybór pożądanego koloru. Pozostałe pola można pozostawić jako wartości standardowe, przyjmowane domyślnie. Po zakończeniu konfiguracji okna należy zatwierdzić nastawy przyciskiem OK. Należy pamiętać również o tym, że typ okna, zawartość i jego cechy można zmieniać zawsze, gdy pozostaje ono otwarte w programie do tworzenia aplikacji Win dowMaker, po-
Rys.
przez wywołanie z menu polecenia: Okn a fWła ściwości okn a.
Podczas konfiguracji każdego okna, należy określić jego typ. Do wyboru są następujące typy okien:
- Okno podmieniające (Zamień) zastępuje każde okno (włącznie z dominującym Popup), którego dotyka pojawiając się na ekranie. Każde dotknięte okno zostaje usunięte automatycznie z ekranu, a związane z nim zmienne nie są dalej aktualizowane.
- Okno przykrywające (Nakładka) jest otwierane na aktualnie otwartym oknie (oknach), z wyjątkiem okien dominujących (Popup). Gdy okno przykrywające zostaje zamknięte, okno (okna), które było nim zasłonięte, pojawia się ponownie. Wy- Rys ] 2 branie myszą widzialnego fragmentu okna pod oknem przykrywającym spowoduje przywrócenie przykrytego okna jako okna aktywnego.
- Okno dominujące (Popup) jest podobne do okna przykrywającego, ale zawsze pozostaje na wierzchu wszystkich otwartych okien, nawet jeśli wybrane zostanie inne okno. U sunięcie okna dominującego
zwykle wymaga specjalnego polecę- RYS 'Ś-> nia ze strony operatora (np. potwierdzenia alarmu).
Należy pamiętać o tym, aby (gdy tylko jest to możliwe) stosować okna podmieniające (Zamień). Okna tego typu powodują usunięcie każdego dotkniętego okna, przyspieszając tym samym działanie programu, gdyż wówczas nie ma potrzeby odświeżania punktów wszystkich przykrytych okien oraz punktów nowo otwartego okna.
Kolejnym krokiem jest rysowanie obiektów graficznych na zdefiniowanym oknie. Ponieważ okno jest już
-
Rys. 14


U Ś** s * 4 I V . . i j

Naciśnięcie prawego przycisku myszy
w obszarze okna powoduje pojawienie się
kontekstowego menu,
zdefiniowane i otwarte, aktywny jest zestaw narzędzi programu WindowMaker. Na początek należy wybrać narzędzie Prostokąt z zaokrąglonymi rogami (narożnikami) z zestawu narzędzi Rysowanie (rys. 9). Na ekranie rysujemy zbiornik do gromadzenia mleka czekoladowego.
Jeżeli istnieje potrzeba zmiany kształtu obiektu, można to bardzo łatwo zrobić poprzez wybranie myszą
Rys. 9
Rys. 10
i przeciągnięcie jednego z małych kwadracików (uchwytów) elementu graficznego (symbolu), które pojawiają się wzdłuż krawędzi elementu. Natomiast aby przemieścić obiekt graficzny na oknie, wystarczy wskazać lewym przyciskiem myszy na obszar wewnątrz obiektu graficznego, który ma zostać przesunięty, a następnie przytrzymując lewy przycisk myszy, przesunąć obiekt na dowolne miejsce na oknie.
Jest możliwe także zwiększanie lub zmniejszanie promienia zaokrąglenia rogu prostokąta. Aby zmienić zaokrąglenie, należy przytrzymać naciśnięty klawisz Shift i nacisnąć klawisz + lub - na klawiaturze numerycznej.
Kolejnym krokiem jest narysowanie zaworu sterującego dopływem mleka. Wybieramy narzędzie Wielokąt z zestawu narzędzi Rysowanie. Po naciśnięciu lewego przycisku myszy w dowolnym punkcie okna nastąpi zaczepienie elementu na ekranie (rys. 10). Po przeciągnięciu myszy ku do-
138
Elektronika Praktyczna 1/2003
AUTOMATYKA
1BE2
Rys. 15
^
łowi ekranu zostanie narysowany odcinek stanowiący bok trójkąta. Na końcu odcinka naciskamy lewy przycisk myszy w celu zaczepienia odcinka na oknie (symbol 1 na rys. 10). Następnie przeciągamy mysz na ukos (w prawo i w górę) w celu utworzenia zarysu pierwszego kąta (symbol 2 na rys. 10). W tym miejscu dwukrotnie naciskamy lewy przycisk myszy, co spowoduje, że InTouch automatycznie domknie rysowany element (symbol 3 na rys. 10). Po narysowaniu wieloką-ta można zmienić jego kształt. W tym celu należy zaznaczyć wielokąt i wybrać z menu polecenie Edycja/Zmień kształt obiektu (edycja i zmiana kształtu elementu - kombinacja klawiszy "Ctrl"+"R").
Następny krok to narysowanie drugiego trójkąta, który powinien być lustrzanym odbiciem trójkąta, który już został narysowany. Zamiast rysować taki trójkąt, można skopiować narysowany trójkąta i "odbić" go względem osi pionowej. W tym celu zaznaczamy narysowany trójkąt, następnie wybieramy narzędzie Powiel z zestawu narzędzi Ogólne (rys. 11). Aby obrócić nowo powstały trójkąt wokół osi pionowej, należy wybrać narzędzie Odbicie lustrzane w poziomie z zestawu narzędzi Położenie (rys. 12) lub nacisnąć przycisk F7.
Mając wciąż zaznaczony skopiowany element, należy ustawić obydwie połowy rysowanego zaworu symetrycznie względem osi poziomej (można to zrobić za pomocą klawiszy kursorów).
Aby ustawić element na ekranie dokładnie w żądanym miejscu (z dokładnością do jednego punktu ekranowego - piksela), należy wyłączyć narzędzie Siatka z zestawu narzędzi Widok. Naciśnięcie i przytrzymanie klawisza
Shift spowoduje przemieszczenie się elementu o 10 punktów po każdorazowym naciśnięciu klawisza kursora. Naciśnięcie i przytrzymanie klawisza Ctrl spowoduje przemieszczenie się elementu o 50 punktów po każdorazowym naciśnięciu klawisza ze strzałką.
Gdy narzędzie Siatka pozostaje włączone i stosowany jest opisany powyżej sposób przemieszczania elementu graficznego, każde naciśnięcie klawisza ze strzałką spowoduje przesu- Rys. 17 nięcie elementu wzdłuż ekranowej siatki współrzędnych. Naciśnięcie i przytrzymanie klawisza Shift spowoduje przemieszczenie się elementu o 2 działki siatki po każdorazowym naciśnięciu klawisza ze strzałką, a naciśnięcie i przytrzymanie klawisza Ctrl spowoduje przemieszczenie się elementu o 4 działki siatki po każdorazowym naciśnięciu klawisza ze strzałką.
Kolejnym etapem jest narysowanie trzpienia zaworu. W tym celu wybieramy narzędzie Prostokąt z zestawu
Qł/ts F
- J
Każdy zestaw narzędzi (pasek narzędziowy) można przemieszczać i zakotwiczać
w dowolnym miejscu okna InToucha,
chwytając za krawędź paska oznaczoną
dwoma pionowymi kreskami.
narzędzi Rysowanie i rysujemy prostokątny trzpień (rys. 13). Aby poprawnie ustawić trzpień względem pozostałych elementów, można wykorzystać klawisze ze strzałkami (kursory).
Aby uzyskać wyraźniejszy rysunek zaworu, można ustawić trzpień zaworu za jego korpusem. W tym celu, po zaznaczeniu trzpienia, należy wybrać narzędzie Przesuń pod spód z zestawu narzędzi Położenie.
Na koniec należy umieścić na zaworze pokrętło. W tym celu wykorzystamy narzędzie Elipsa z zestawu Rys. 18 narzędzi Rysowanie (rys. 14). Narysowaną elipsę umieszczamy na d^Z^^H trzpieniu.
Teraz zgrupujemy pojedyncze elementy tworzące zawór w jeden obiekt. Aby to zrobić, należy przy wciśniętym klawiszu Shift wskazać myszką po kolei wszystkie elementy graficzne two- -^^ rżące zawór. Po zaznaczeniu wszyst- m-|.k -kich elementów wybieramy narzędzie L J -*-1* Utwórz symbol (rys. 15) z zestawu na- Rys. 19 rzędzi Położenie, co spowoduje przekształcenie pojedynczych elementów graficznych w jeden obiekt.
Teraz można zmienić wymiary zaworu poprzez wybranie myszą i przeciągnięcie jednego z uchwytów umieszczonych w rogach obiektu (uchwyty umieszczone w narożach powodują jednoczesną zmianę szerokości i wysokości obiektu - propor-cjonlana zmiana wielkości obiektu). Rys 20
Następnie przesuwamy gotowy element we właściwe położenie. Można to zrobić dwoma sposobami: za pomocą klawiszy kursorów albo wskazując lewym przyciskiem myszy na obszar wewnątrz obiektu graficznego, a następnie przytrzymując lewy przycisk myszy przesunąć obiekt na miejsce na oknie.
Teraz połączymy za pomocą rurociągu zawór mleka ze zbiornikiem do gromadzenia mleka czekoladowego. W tym celu wybieramy narzędzie Linia pionowa/pozioma z zestawu narzędzi Rysowanie (rys. 16) i wskazujemy myszką punkt początkowy linii. Trzymając naciśnięty lewy przycisk myszy, przesuwamy mysz do punktu końcowego. W punkcie końcowym należy zwolnić przycisk.
Narysowana linia ma standardowo grubość jednego punktu (piksela). Aby zmienić grubość linii, należy za-
Elektronika Praktyczna 1/2003
139
AUTOMATYKA
Rys. 21
Rys. 22
znaczyć kursorem myszy linię i przejść do opcji Linio z dostępnego u góry menu. Dla zaznaczonej linii należy wybrać jedną z dostępnych grubości (rys. 17).
Można zauważyć, że narysowana linia znajduje się na pierwszym planie, przed zaworem i zbiornikiem do gromadzenia mleka czekoladowego. Aby uzyskać lepszy wygląd rysunku, można przesunąć tę linię za pozostałe dwa obiekty. W tym celu należy zaznaczyć kursorem myszy linię, i wybrać narzędzie Przesuń pod spód z zestawu narzędzi Położenie. Teraz linia znajduje się pod zaworem i zbiornikiem.
Ponieważ podczas pracy aplikacji w programie WindowViewer można dynamicznie zmieniać kolor zaworu wraz z linią w zależności od stanu rzeczywistego zaworu, dlatego linie i zawór połączymy w jeden złożony obiekt. Trzymając wciśnięty klawisz Shift, zaznaczamy kursorem myszy obiekty: linię i zawór. Po ich wskazaniu należy wybrać narzędzie Utwórz
symbol z zestawu narzędzi Położenie, co spowoduje, że linia i zawór zostaną zgrupowane w jeden obiekt.
Kolejny krok to narysowanie zaworu syropu czekoladowego i odpowiedniego rurociągu. Aby nie rysować od początku zaworu, należy skopiować zawór mleka i ustawić go w miejscu, w którym będzie reprezentował zawór syropu czekoladowego. Najprościej można to zrobić poprzez zaznaczenie myszką wcześniej utworzonego zaworu mleka i wybranie narzędzia Powiel z zestawu narzędzi Ogólne (rys. 18).
Po przemieszczeniu nowego zaworu we właściwe miejsce, można wyrównać jego położenie w stosunku do pierwszego zaworu. Aby to zrobić, należy przy wciśniętym klawiszu Shift wskazać myszką obydwa obiekty, następnie wybrać narzędzie Wyrównaj do lewej z zestawu narzędzi Położenie (rys. 19). Lewe krawędzie wszystkich zaznaczonych obiektów zostaną wyrównane do najbardziej wysuniętego punktu z lewej strony.
Kolejny krok to utworzenie pola tekstowego, w którym będzie wyświetlany poziom cieczy w zbiorniku. Należy również przypisać nazwy narysowanym zaworom. W tym celu należy wybrać narzędzie Tekst z zestawu narzędzi Rysowanie (rys. 20), a następnie narzędzie Czcionko z zestawu narzędzi Formatowanie (rys. 21), aby przypisać odpowiednią czcionkę wpisywanemu tekstowi.
Następnie wskazujemy myszką dowolne miejsce na oknie i naciskamy lewy przycisk myszy (spowoduje to "zaczepienie" wpisywanego tekstu). Wpisujemy znak # i naciskamy klawisz Enier. Naciśnięcie tego klawisza oznacza zakończenie wpisywania pierwszego ciągu znaków tekstowych i umożliwia utworzenie następnego ciągu znaków. Wpisujemy tekst Zawór mleka, ponownie naciskamy klawisz Enter i wpisujemy tekst Zawór syropu.
Po zakończeniu wpisywania tekstu trzeba wcisnąć lewy przycisk myszki.
Przesuwamy tekst # pod zbiornik z mlekiem (prostokąt z zaokrąglonymi rogami), tekst Zawór mleka pod obiekt reprezentujący zawór mleka, a tekst Zawór syropu pod obiekt reprezentujący zawór syropu. Kolor każdego tekstowego ciągu znaków można zmienić poprzez wskazanie myszką ciągu znaków, którego kolor ma być zmieniony, a następnie wybranie narzędzia Kolor tekstu z zestawu narzędzi Formatowanie. Procedurę tę można również stosować w przypadku zmiany kolorów elementów rysunków, wykorzystując narzędzia Kolor wypełnienia oraz Kolor linii.
Ostatni element, który należy utworzyć, to przycisk umożliwiający uruchomienie procesu. Wybieramy narzędzie Przycisk z zestawu narzędzi Rysowanie (rys. 21) i rysujemy obiekt. Po utworzeniu tego elementu pojawi się na nim napis Texi. Aby zmienić opis przycisku, zaznaczamy go, następnie naciskamy klawisze "Cirł"+"L" lub wybieramy polecenie Specjal-ne\Zasiępowanie tekstu... W wyświetlonym oknie usuwamy ciąg znaków Texi i w jego miejsce wpisujemy Start. Po zatwierdzeniu wymiany na przycisku pojawi się napis Start.
W tym momencie opracowywanie graficznego zobrazowania procesu produkcji mleka czekoladowego zostało zakończone. Aby w pełni przygotować aplikację, należy jeszcze zrealizować dwa etapy: zdefiniować zmienne (najważniejsze elementy aplikacji) i przygotować animację obiektów (ożywianie grafiki). Ale o tym napiszemy w kolejnym wydaniu EP. Marcin Legutek, Astor ML@astor.com.pl
Dodatkowe infoimacje
Ewaluacyjnę wersję programu InTouch 7.11 PL publikujemy na CD-EP1/2003B.
140
Elektronika Praktyczna 1/2003
NA CD: KATALOG FIRMY ATMEL, PROGRAMY DO PROJEKTOWANIA PCB (M.IN. PROTEL DXP Z SP2)
2/2003
luty
15 zł 50 gr (w tym 7% vat)
DETEKTOR RUCHU Z
WYM AUTOMATEM INFORMACYJNYM
KONWERTER USB<->RS485 Z SEPARACJĄ GALWANICZNĄ PROGRAMATOR PROCESORÓW AT89Cx051/AT89C5x YAMPP-3/USB Z WYŚWIETLACZEM GRAFICZNYM BEZPRZEWODOWY REGULATOR TEMPERATURY 4-KANALOWY TERMOMETR NA GAMĘ PORT MUZYCZNE EAfiffl"*ZJE NA-BlCsACH ^
GRA W KOLKQ -UKRZY.Zy^,
PROGRAMY: AUTOROUTER SPECCT CODEWARRIOR IDE
iPoa/offŁim IS iffto-Tf IS
9 771640 769039 D2>
PaDZESPOŁY:
WIRTUALNE PERYFERIA
PROJEKTY
Konwerter USB<->RS485 z separacją galwaniczną
AVT-5098
Przedstawiamy kolejną
aplikację interfejsu USB, który
- dzięki układom firmy FTDI
- można łatwo zastosować
w dowolnym, także
samodzielnie budowanym
urządzeniu.
Rekomendacje: projekt
szczególnie interesujący dla
tych, którzy muszą korzystać
z kablowej transmisji danych
na znaczne odległości [np.
do tworzenia mi ni siec i),
a także automatyków
wykorzystujących w swoich
systemach interfejs RS485.
Konwerter USB<->RS485 jest kolejnym projektem zrealizowanym z użyciem układu FT8u232. Zastosowałem w nim starszą wersję (oznaczoną sufiksem AM), ponieważ jej udoskonaloną odmianę (oznaczoną sunksem BM) firma FTDI wprowadziła już w trakcie wykonywania płytki drukowanej. Na szczęście producent zapewnia utrzymanie dostaw wersji AM -właśnie dla potrzeb już opracowanych rozwiązań. Nie ma więc potrzeby natychmiastowej aktualizacji projektu.
Opisywanej w EPlO/2002 aplikacji Ft8u2 32 (był to konwerter RS232C) można było zarzucić powielanie rozwiązań tanich i powszechnie dostępnych na rynku wyposażenia komputerowego. Jednak jej celem było przede wszystkim samodzielne przetestowanie układu i poznanie jego możliwości.
Projekt prezentowany w tym artykule może stać się korzystną cenowo alternatywą dla innych rozwiązań przy kompletowaniu elektronicznego warsztatu.
RS485 - dla przypomnienia
Protokół transmisji szeregowej RS485 był już niejednokrotnie opisywany na łamach EP (łącznie z konwerterami RS232<->RS485). Nie ma więc potrzeby jego szczegółowego objaśniania. W skrócie -dla odświeżenia wiedzy - przyto-
czymy tylko podstawowe cechy tego interfejsu:
- Zamiast sygnału niesymetrycznego (napięcie względem masy stosowanego w RS232C), używany jest sygnał symetryczny (napięcie różnicowe w parze przewodów), znacznie bardziej odporny na wszelkiego rodzaju zakłócenia. W związku z tym możliwe jest realizowanie połączeń na znacznie większe odległości i osiąganie dużo większych szybkości transmisji.
- Transmisja może mieć charakter półdupleksowy (nadawanie i odbiór naprzemiennie po jednej parze przewodów) albo pełno -dupleksowy (nadawanie i odbiór jednoczesne z użyciem dwóch par przewodów).
- Do linii może być dołączonych wiele nadajników/odbiorników (w przypadku półdupleksu są to przełączane układy nadawczo-odbiorcze). Nie ma jednak żadnego mechanizmu samoczynnie zapobiegającego konfliktom przy jednoczesnym uruchomieniu dwóch lub więcej nadajników. Zadanie to spoczywa na odpowiednio opracowanym protokole komunikacji. Może on być różny dla różnych zastosowań. Najbardziej popularny i najprostszy jest model master-slave: jeden z układów pełni rolę nadrzędną i kolejno wywołuje pozostałe układy, czekając na ich odpo-
Elektronika Praktyczna 2/2003
23
Konwerter USB<->RS485 z separacja galwaniczna
2Sj AC1
27] AC2
26] IS0VK1
s]b
24] iso ro drv
23] A
ISO Dl IN Zł] ISO DE IN 20] IS0C0M1 19] ISO Dl DRV H ISO Vccz 17] ISO DE DRV 16] ISOC0M2 15] ISO RO LED
Bariera izolacyjna
Rys. 1. Schemat blokowy izolowanego interfejsu RS485 typu MAX1480
wiedź. Taki system często spotykamy w rozwiązaniach akwizycji danych pomiarowych obsługiwanych przez centralny komputer PC.
- Tor transmisyjny nie posiada wydzielonej linii sygnału zegarowego - transmisja przebiega w sposób asynchroniczny, przy zastosowaniu takich samych formatów ramek jak w przypadku RS232C.
- Dla sygnału różnicowego nie jest wymagane połączenie mas oddalonych urządzeń. Obwody wejściowo-wyjściowe interfejsu linii "tolerują" znaczny poziom napięcia wspólnego w parze różnicowej. Jednak są przypadki występowania znacznie wyższych niż dopuszczalne różnic napięcia pomiędzy potencjałami mas. Może to wystąpić np. przy połączeniu urządzeń zasilanych z różnych faz sieci energetycznej, umieszczonych w osobnych, niezależnie uziemionych budynkach itp. W takich przypadkach należy stosować interfejsy izolowane.
Kilka słów
o zastosowanym układzie
interfejsu
W projekcie zastosowałem galwanicznie izolowany interfejs RS485. Nawet jeśli nie będziemy się dołączać do rozległej sieci z dużą różnicą między potencjałami mas, używanie konwertera przy rozmaitych pracach warszta-
towych wiąże się zawsze z ryzykiem narażenia portu komputera na uszkodzenie (większe wartości napięć, przepięcia przy rozmaitych przełączeniach itp.), co zazwyczaj pociąga za sobą znaczne koszty i kłopoty.
Aby jak najbardziej uprościć układ, wybrałem scalony konwerter MAX148O. Jego schemat blokowy przedstawiono na rys. 1. W jednej obudowie układu zawarto znane z rozwiązań tradycyjnych obwody:
- przetwornicę napięcia DC/DC (MAX845, transformator, diody prostownicze),
- blok interfejsu RS485 (MAX487),
- separatory sygnałów zbudowane w oparciu o szybkie transoptory.
Układ MAX148O jest przeznaczony do łączności półduplekso-wej, którą zazwyczaj stosujemy we własnych systemach mikroprocesorowych oraz w amatorskich, niewielkich sieciach akwizycji danych i sterowania. Jest on produkowany w 3 odmianach: A, B, C. Wersja A zapewnia największą szybkość przesyłu - 2,5 Mb/s i dużą szybkość przełączania nadawanie/odbiór (200 ns). Wersja B (użyta w prototypie) jest przystosowana do linii transmisyjnych gorszej jakości. Dzięki ograniczeniu stromości zboczy przebiegów maleją generowane zakłócenia, a zwłaszcza odbicia związane z niedopasowaniem linii. Następuje to kosztem ograniczenia maksymalnej szybkości transmisji (250 kb/s) i przełączania (35 |is). Wersja ta jest najbardziej dogodna w zastosowaniach warsztatowych i eksperymentalnych. Wersję C dobieramy w szczególnym przypadku, gdy przy ograniczonej szybkości transmisji (250 kb/s) zależy nam na przyspieszonym (500 ns) przełączaniu nadajnik/odbiornik.
Poszczególne wersje układów zachowują zgodność wyprowadzeń, można więc zastosować na płytce dowolny, zgodny z potrzebami. Inne są jednak wymagane wartości rezystorów zewnętrznych dla każdej wersji układu - sama wymiana układu w podstawce nie wystarczy więc dla uzyskania innej szybkości pracy.
Jeszcze słowo o kosztach. Cena układu MAX148O może wydawać się wygórowana, jednak gdy policzymy łączną wartość elementów
niezbędnych do dyskretnej realizacji takich układów, to okaże się, że inwestycja jest bardzo opłacalna
- nie uwzględniając nawet uproszczenia płytki i montażu.
Budowa konwertera
Schemat konwertera przedstawiono na rys. 2. Podłączenie do magistrali USB oraz podstawowe otoczenie układu Ft8u232AM jest identyczne jak w konwerterze RS232 (EP10/2002), nie będziemy więc go ponownie opisywać. Jedyna istotniejsza różnica to zasilenie obwodu zerowania powielacza częstotliwości (R8, Cl 2) z głównego wejścia zerującego, a nie napięciem zasilania (co zawsze zapewnia wymagane przez układ opóźnienie startu powielacza w stosunku do momentu uruchomienia oscylatora).
Nowości pojawiają się w opisie współpracy z MAX148O.
Przełączanie nadawanie/ odbiór
Specjalnie dla potrzeb półdup-leksowej transmisji RS485, układ Ft8u232 wyposażono w wyjście TXDEN. Przyjmuje ono poziom wysoki, jeśli w buforze nadajnika znajdują się niewy słane jeszcze znaki (bajty). Ułatwia to programową obsługę transmisji, zwłaszcza w aspekcie wykrycia końca nadawania.
Obsługa sesji komunikacyjnej RS485 z poziomu mastera przebiega następująco:
- przełączenie interfejsu na nadawanie,
- wysłanie komunikatu zaadresowanego do określonego układu slave,
- przełączenie interfejsu na odbiór,
- przyjęcie i interpretacja odpowiedzi, ewentualnie zgłoszenie przekroczenia czasu oczekiwania (ti-meout) w przypadku jej braku.
Gdy masterem jest komputer PC, pojawiają się często problemy z przełączeniem kierunku. Wynika to z nie w pełni spójnej współpracy systemowego sterownika (w przypadku systemu Windows) z nowoczesnymi UART-ami, wyposażonymi we własny bufor FI-FO. Od strony programowej wysłanie pakietu danych jest zakończone w momencie przesłania ostatnich bajtów do UART-a. Jeśli
Elektronika Praktyczna 2/2003
Konwerter USB<->RS485 z separacja galwaniczna
Rys. 2. Schemat izolowanego konwertera USB<->RS485
w tym momencie zostaje wydana komenda przełączenia kierunku (używa się do tego zazwyczaj jednej z linii kontrolnych RTS lub DTR), to może się zdarzyć, że wyłączymy nadajnik RS485 przed całkowitym opróżnieniem sprzętowego bufora UART-a -wysłany pakiet danych będzie niekompletny. W przypadku konwertera zagrożenie jest podwójne, bo wysyłane dane są dodatkowo buforowane w samym Ft8u232. TXDEN zabezpiecza przed taką nieprawidłowością działania, utrzymując tryb nadawania aż do zakończenia wysyłania ostatniego bajtu z bufora.
Należy jednakże pamiętać (informuje o tym producent w nocie aplikacyjnej), że mechanizm ten nie jest do końca dopracowany: czasami może występować "obcinanie" ostatniego bitu stopu. Usterka ta została usunięta w wersji BM, natomiast w przypadku AM zaleca się stosowanie dodatkowego obwodu opóźniającego RC na wyjściu TXDEN. Na schemacie nie jest on zaznaczony, ale płytka drukowana jest przystosowana do wlutowania dodatkowych elementów (pomiędzy TXDEN a bramką U3A).
Inny aspekt przełączania kierunku wiąże się z zastosowaniem układu MAX148OB. Nie możemy w tym przypadku polegać jedynie na samoczynnym włączeniu nadajnika w momencie napełnienia bufora nadawczego. Czas reakcji przełącznika kierunku jest znaczny i przy większych szybkościach transmisji możemy utracić początek komunikatu. Dlatego przewidziano także oddzielne sterowanie kierunkiem za pomocą linii DTR w celu odpowiednio wczesnego przełączenia interfejsu. Sygnały DTR i TXDEN są zsumowane w bramkach US3A i B, co pozwala na ich kontrolę programową, a jednocześnie samoczynnie zapewnia prawidłowe zakończenie nadawania, nawet jeśli wyłączymy DTR zbyt szybko.
Elektronika Praktyczna 2/2003
25
Konwerter USB<->RS485 z separacja galwaniczna
Linie TxD oraz RxD
W związku z zastosowaniem transoptorów, konieczne jest odpowiednie dopasowanie poziomów napięć w linii RxD. Dla linii TxD sprawa jest prosta - poziom aktywny (niski) powoduje zapalenie diody LED transoptora nadawczego dołączonego do linii przez rezystor R20 (wydajność prądowa wyjść Ft8u2 32 jest do tego celu wystarczająca). Natomiast sygnał RxD wymaga odwrócenia fazy za pomocą bramki U3C (dla poziomu nieaktywnego linii odbiorczej transoptor odbiornika jest włączony i na jego wyjściu (RD) występuje poziom niski, z kolei poziom aktywny linii powoduje wyłączenie transoptora i rezystor R19 wymusza poziom wysoki - odwrotnie niż dla standardowego UART-u).
Zasilanie
Konwerter jest przewidziany do zasilania z magistrali USB, co radykalnie zwiększa dogodność jego użytkowania. Wiąże się z tym jednak konieczność zapewnienia wydajności prądowej powyżej 100 mA gwarantowanej przez USB oraz zastosowania dodatkowych obwodów wyłączających. Układ MAX 1480 posiada wejście shutdown powodujące praktycznie wyłączenie układu (pobór prądu spada do 0,2 |iA). Jednak w wersji A obwód shutdown nie odcina zasilania szybkich transoptorów separujących (pobierających ok. 10 mA). Dlatego zastosowano dodatkowy tranzystor MOSFET-P do wyłączania zasilania VCC4 i VCC5. Ten system wyłączenia interfejsu działa podczas: - zerowania (niski poziom podany
przez R8 z RESET na RCCLK
i bramkę U3D),
- enumeracji (wyjście USBEN przyjmuje poziom wysoki po zakończeniu konfigurowania Ft8u232 przez hosta - zanim to nastąpi bramka U3D otrzymuje poziom niski, podtrzymywany dodatkowo przez dołączenie rezystora R22 do masy, ze względu na wysoką impedancję USBEN podczas zerowania),
- trybu uśpienia (zamiast wyjścia SLEEP zostało wykorzystane wyprowadzenie RCCLK, które w tym przypadku pracuje jako wyjście wymuszające poziom niski).
Jednocześnie należy pamiętać, że:
- konwerter musi być podłączany wyłącznie do huba posiadającego własne zasilanie (w przeciwnym przypadku nie otrzyma więcej niż 100 mA),
- w układzie nie możemy tym razem pominąć pamięci EEP-ROM - w deskryptorze urządzenia musimy wpisać maksymalną wartość pobieranego prądu.
Dołączenie konwertera do linii transmisyjnej
Od strony linii układ zawiera tylko kilka elementów. Poza rezystorami zasilania transoptorów separujących są to:
- R14 - rezystor ograniczający prąd w przypadku zwarcia przewodu sygnałowego z ekranem,
- Zl, Z2 - transile małej mocy (nazwa handlowa Transguard) eliminujące przepięcia szpilkowe,
- R23 - terminator linii.
Montaż terminatorów zależy od przestrzennej konfiguracji naszej sieci. Powinny one być wstawione na końcach linii transmisyjnej, w celu eliminacji (poprzez dopasowanie impedancji falowej) odbić sygnału. Wlutujemy go więc, jeśli komputer z podłączonym konwerterem będzie skrajnym elementem sieci. Przy zastosowaniu MAX148OB i użyciu niewielkich szybkości (np. typowych w układach z mikrokontrolerami: 19200 lub 57600 baud), można próbować zestawić połączenie w ogóle bez terminatorów. Jerzy Sczesiul, AVT jerzy.szczesiul@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdfllutyO3.htm oraz na płycie CD-EP2/2003B w katalogu PCB.
WYKAZ ELEMENTÓW
Rezystory
Rl, R2: 10R 0805
R3: l,5kQ 1206
R4, R6: 220O 1206
R5: 470O 1206
R7, R8, Rl 1, R13, R22: 100ka 1206
R9: 10kO 1206
RIO, R16: 2,2kQ 1206 (R16 dla
MAX1480B)
R12: 470kO 1206
R14: 100O 1206
R15, R19: 3kO 1206 (dla MAX
1480B)
R17, R20: 200O 1206
R18: 510O (dla MAX 1480B)
R23: 120O 0,5W przewlekany
Wartości rezystorów R15, R16, R18
IR19 zależą od typu MAX 1480.
W przypadku stosowania wersji A lub
C należy wlutować rezystory
zgodnie z notą katalogową.
Kondensatory
Cl, C13: lOnF 0805
C2, C3, C4, C10, C12: lOOnF
1206
C9: tantalowy 47 ^F/10V 7343
Cli: 33nF 1206
Półprzewodniki
DL D2: diody LED
Ql: PNP bipolarny SMD - np.
BC857
Q2: MOSFET-P SMD np. BSP171 -
jego parametry znacznie
przekraczają potrzeby, ale dzięki
temu otrzymujemy bardzo małą
rezystancję przewodzenia.
Ul: Ft8u232AM
U2: MAX1480B
U3: 74HC132 (odmiana HC jest
istotna ze względu na wymaganą
dla zasilania transoptorów
wydajność prądową wyjść)
U4: 93C46
Zl, Z2: transile Transguard 18V
1206
Różne
Jl: gniazdo USB typu B
ZAC1: zacisk śrubowy do druku
ew. podstawka precyzyjna DIL
28/600
Obwód opóźniajqcy RC nieuwzględniony na schemacie
R21: 2,2kQ 1206
R24: 47nF 1206 (na płytce błędnie
opisany jako rezystor).
Wartości te zostały przyjęte
szacunkowo - być może
dokładniejszy test konwertera
wykaże konieczność ich zmiany.
26
Elektronika Praktyczna 2/2003
PROJEKTY
Detektor ruchu
z głosowym automatem
informacyjnym
AVT-5099
Prezentowany w artykule
układ umożliwia, po
stwierdzeniu poruszających się
osób (obiektów) między
czujnikami, odtworzenie
komunikatu głosowego.
Rekomendacje: detektor
można zastosować np.
w sklepie, biurze lub
w domu - jako gadżet
zaskakujący odwiedzających
nas gości.
Komunikat głosowy jest zapisany w specjalizowanym układzie, dzięki czemu cały proces nagrywania i odtwarzania jest wykonywany przez ten układ. Co z kolei przyczyniło się do znacznego ograniczenia liczby niezbędnych elementów. Do wykrywania przemieszczania się osób zastosowano czujniki reagujące na światło podczerwone. Zastosowanie dwóch odbiorników światła podczerwonego umożliwiło w prosty sposób wykonać czujnik przemieszczania się z określeniem kierunku. Dzięki temu, w zależności od kierunku poruszania się osoby przechodzącej, wypowiadany komunikat może być różny. Dlatego prezentowany układ doskonale nadaje się na przykład do sklepu, gdzie wchodzącym klientom może mówić "DZIEŃ DOBRY", a wychodzącym "DO WIDZENIA". Maksymalna długość każdego komunikatu wynosi 10 sekund, można więc nagrać dłuższy komunikat powitalny lub pożegnalny.
Układ może również znaleźć zastosowanie w domu, gdyż nagranie zabawnego komunikatu na pewno dostarczy dobrej zabawy przychodzącym w odwiedziny gościom. Automat informujący został wyposażony we wzmacniacz z cyfrową regulacją poziomu głośności, przez co głośność odtwarzanych komunikatów można komfortowo regulować za pomocą dwóch przycisków.
Budowa i zasada działania
Schemat elektryczny automatu informacyjnego przedstawiono na rys. 1. Urządzenie składa się z trzech płytek: płytki sterownika, płytki diod nadawczych oraz płytki odbiorników podczerwieni.
Płytka sterownika składa się z modułu sterowania diodami nadawczymi zbudowanego przy pomocy układów US5 i US6. Układ US6 wytwarza przebieg prostokątny o częstotliwości około 36 kHz, częstotliwość tą można precyzyjnie dostroić przy pomocy potencjometru PRl. Przebieg ten stanowi sygnał nośny do sterowania diod nadawczych Dl i D2 na płytce diod. Generowany przez układ US6 jest modulowany przez drugi generator zbudowany przy użyciu układu US5. Sygnał o częstotliwości około 700 Hz z wyjścia tego układu jest kierowany na wejście zerujące układu US6, w efekcie czego diody nadawcze są sterowane "paczkami" impulsów o częstotliwości nośnej. Tak uformowany sygnał jest kierowany do złącza CON2, poprzez rezystor szeregowy R3. Rezystor ten ogranicza prąd płynący przez diody do wartości zaledwie kilku miliamper, ze względu na niewielka odległość diod nadawczych i odbiorników taka wartość prądu jest w zupełności wystarczająca.
Elektronika Praktyczna 2/2003
27
Detektor ruchu z głosowym automatem informacyjnym
Rys. 1. Schemat elektryczny automatu informującego
Przebiegi czasowe w charakterys- jest następnie odbierany przez
tycznych punktach układu przed- dwa odbiorniki światła podczer-
stawiono na rys. 2. wonego, układy USl i US2 na
Wysyłany przez diody Dl i D2 płytce odbiorników. Układ
(na płytce diod) sygnał świetlny TSOP1736 zawiera w swojej struk-
turze kompletny odbiornik światła podczerwonego wraz wzmacniaczem i filtrem, przez co na jego wyjściu otrzymywany jest cyfrowy sygnał reprezentujący światło padające na jego strukturę. Zastosowana wersja układu jest dostrojona do częstotliwości 3 6 kHz i z taką częstotliwością są sterowane diody nadawcze, aby zapewnić jak największe dopasowanie. W naszym przypadku po oświetleniu diodami nadawczymi, na wyjściach obydwu układów pojawi się przebieg prostokątny o częstotliwości równej częstotliwości modulującej świeceniem diod, czyli około 700 Hz.
Sygnały te trafiają następnie na wejścia dwóch multiwibratorów monostabilnych zawartych wewnątrz układu US3. Układy TSOP1736 posiadają wewnętrzne rezystory podciągające, ale ze względu na znaczne oddalenia układów TSOP1736 od płytki sterownika, w celu eliminacji zakłóceń zostały zastosowano dodatkowe rezystory R7 i R8. Układy multiwibratorów reagują na zbocze opadające sygnału wejściowego z możliwością ponownego wyzwolenia. Zastosowanie układu US3 powoduje więc wydłużanie przebiegów pojawiających się na wyjściach odbiorników TSOP1736, co sprawia, że w czasie gdy odbiorniki są oświetlone, to na wyjściach "Q" obydwu układów panuje stan wysoki, a na wyjściach "NotQ" stany niskie powodujące świecenie diod D2 i D3. Diody te zostały zastosowane w celu wizualnej sygnalizacji poprawności transmisji świetlnej pomiędzy diodami nadawczymi i odbiornikami. Sygnalizacja ta będzie przydatna przy uruchamianiu układu. Sygnał z wyjścia "Q" mul-tiwibratora US3B trafia bezpośrednio na wejście wyzwalanie komunikatu układu USl. Natomiast z wyjścia multiwibratora US3A sygnał przechodzi przez zworkę JPl. Zworka ta służy do przełączania pomiędzy trybem odtwarzania i nagrywania, szczegółowo zostanie opisana przy opisie programowania. W celu przedstawienia zasady działania detektora zostaje przyjęte, że zworka JPl znajduje się w pozycji 1-2, przez co sygnał z wyjścia "Q" układu US3A trafia na wejście adresowe
Elektronika Praktyczna 2/2003
Detektor ruchu z głosowym automatem informacyjnym
Wyjście nr 3 US6 Fl Fl Fl
f=36kHz ____| U U L
nmi
juuin
Wyjście nr 3 US5 f=700Hz
_r
Wyjście układu US1 I
(płytka odbiorników) L
Wyjście układu US2 (płytka odbiorników)
i_
Wyjście Q US3A_____f
Wyjście Q US3B
Rys. 2. Przebiegi czasowe w charakterystycznych punktach układu
"A6" układu USl. Układ USl jest jednoukładową pamięcią dźwięku o czasie nagrania 20sekund. Układ ten pracuje w standardowej aplikacji z zewnętrznym mikrofonem MK i zewnętrznym wzmacniaczem
układem US2. Do zasilania mikrofonu zastosowano rezystory R14...R17 i kondensator C16.
Kondensatory C13 i C14 oddzielają składowa stałą od wejścia wzmacniacza wejściowego zawartego wewnątrz układu USl. Dioda świecąca D4 służy do sygnalizacji stanu nagrywania oraz końca komunikatu podczas odtwarzania. Zworka JP3 umożliwia wprowadzenie układu w stan zapisu.
Ponieważ wzmacniacz zawarty w układzie ISD1420 posiada niewielką moc, zastosowano dodatkowy wzmacniacz o mocy 0,8 W. Zastosowany układ TDA8551 oprócz stopnia wzmacniacza zawiera wejściowy regulator poziomu dźwięku oraz wejście umożliwiające sterowanie poborem mocy przez ten układ. Do sterowania trybem pracy służy wejście oznaczone jako "MODĘ", jeśli na tym wejściu panuje stan wysoki, to układ znajduje się w trybie "STANDBY" i pobiera prądu o natężeniu zaledwie 10 |o,A. Podanie na to wejście napięcia o wartości odpowiadającej połowie napięcia zasilania przełączy układ w stan "MUTE" i wzmac-
niacz będzie pracował, ale dźwięk będzie wyciszony. Ostatnim trybem pracy jest tryb aktywny, który jest włączany po podaniu na wejście "MODĘ" stanu niskiego, ten tryb jest wykorzystywany w przedstawionym układzie. Zrezygnowano z przełączania układu w tryb czuwania jeśli nie jest wypowiadany komunikat, gdyż cały układ i tak musi być zasilany z zasilacza i oszczędzanie pobieranego prądu nie jest niezbędne. Funkcję tą można wykorzystać jeśli wzmacniacz pracowałby w układzie zasilanym bateryjnie. Do zmiany poziomu głośności służą dwa przyciski SW1 i SW2, przycisk SWl powoduje zwiększenie poziomu głosu, a przycisk SW2 jego zmniejszenie.
Układ ISD1420 jest skonfigurowany do pracy adresowej, przez co odtwarzanie komunikatu rozpoczyna się od adresu podanego na wejścia adresowe A0...A7. Ponieważ w przedstawionym układzie wypowiadane są tylko dwa komunikaty, jego pamięć została podzielona na dwa obszary 10 sekundowe. Wszystkie wejścia adresowe, oprócz A6 są zwarte do masy, podanie więc na wejście A6 stanu niskiego powoduje odtwarzanie komunikatu zapisanego od adresu równego zero, jeśli zaś na wejście A6 zostanie podany
stan wysoki, to będzie odtworzony komunikat zapisany od adresu odpowiadającego połowie pamięci układu, czyli około lOsekund. Wybór odpowiedniego komunikatu jest dokonywany w zależności od kierunku przemieszczania się osoby. Na rys. 3 przedstawiono stany na wyjściach "Q" multiwib-ratorów zawartych w układzie US3 podczas przemieszczania się osoby w dwóch kierunkach(podczas wchodzenia i wychodzenia).
Jak już wcześniej wspomniano po oświetleniu odbiorników TSOP1736 na wyjściach "Q" obydwu multiwibratorów panują stany wysokie. W momencie przechodzenia osoby wiązka światła zostanie przerwana i na tych wyjściach pojawią się stany niskie. Ze względu na to, ze zarówno diody nadawcze, jak i odbiorniki umieszczone są obok siebie odbiorniki nie zastaną przesłonięte jednocześnie lecz z pewnym opóźnieniem. O tym który odbiornik zostanie przesłonięty później decyduje kierunek przemieszczania się osoby. W każdym przypadku stan niski na wyjściu "Q" układu US3B spowoduje wyzwolenie komunikatu, a stan na wyjściu "Q" US3A decyduje o tym, który komunikat zostanie odtworzony. Jak wynika z rys. 3 podczas wchodzenia, w momencie wyzwolenia odtwarzania komunikatu(pojawienie się stanu niskiego na wyjściu US3B), na wejściu adresowym "A6" układu ISD1420 panuje stan niski podany z wyjścia układu US3A. Dlatego w takim przypadku zostanie odtworzony komunikat rozpoczynający się od początku pamięci.
W drugim przypadku (podczas wychodzenia), w momencie wyzwolenia odtwarzania komunikatu na wejściu adresowym "A6" panuje jeszcze stan wysoki, gdyż ten odbiornik został przysłonięty później i nastąpi odtworzenie drugiego komunikatu.
Wyjście OUS3A
Stan spoczynku
obydwa odbiorniki
oświetlone
Przesłonięcie
odbiorników
podczas wejścia
Stan spoczynku
obydwa odbiorniki
oświetlone
Przesłonięcie
odbiorników
podczas wyjścia
Stan spoczynku
obydwa odbiorniki
oświetlone
Wyjście Q US3B
Rys. 3. Przebiegi czasowe na wyjściach multiwibratorów w czasie wejścia i wyjścia
Elektronika Praktyczna 2/2003
29
Bezprzewodowy regulator temperatury
Zasilacz 9V/200mA
-Głośniki W/M)
'Płytka sterownika
Rys. 4. Schemat montażowy płytek drukowanych
Rys. 5. Sposób zamontowania diod nadawczych i odbiorników w drzwiach
W ten sposób układ dokładnie wie, w jakim kierunku przemieszcza się przechodząca osoba i wybiera odpowiedni komunikat.
Do zasilania modułu sterującego automatem informującym zastosowano układ stabilizatora monolitycznego typu LM7805, który dostarcza napięcia równego 5V do wszystkich układów. Do poprawienia parametrów tego napięcia zarówno na jego wejściu jak i wyjściu zastosowany kondensatory wygładzające. Dioda Dl zabezpiecza przed odwrotną polaryzacją napięcia zasilania.
Montaż i uruchomienie
Schematy montażowe płytek drukowanych pokazano na rys. 4. Montaż rozpoczynamy od płytki sterownika, elementy montujemy poczynając od tych, o najmniejszych gabarytach, czyli rezystory, podstawki pod układy scalone, kondensatory i złącza. Przy montażu układu US2 należy zachować szczególną ostrożność, gdyż umieszczony w obudowie SO8 układ wymaga dużej precyzji podczas lutowania. Nie należy również zbyt długo przytrzymywać rozgrzanego grotu lutownicy przy wyprowadzeniach tego układu, aby nie uległ uszkodzeniu z powodu przegrzania. Ze względu na niewielką liczbę wyprowadzeń montaż tego układu można jednak
wykonać przy użyciu lutownicy transformatorowej. Przyciski SWl i SW2 umieszczone są poza płytką i montowane są na odcinku przewodu czterożyłowego, który z jednej strony należy przyluto-wać do złącza CON4, a z drugiej do wspomnianych przycisków.
Po zmontowaniu płytki głównej można przystąpić do montażu elementów na płytkach diod nadawczych i odbiorników. Płytka diod nadawczych składa się z tylko trzech elementów, więc ich montaż nie sprawi trudności. Montaż elementów na płytce odbiorników rozpoczynamy od układów USl i US2. Przed wlutowa-niem należy ich wyprowadzenia zagiąć pod kątem 90, tak aby można było ułożyć je na leżąco, następnie montujemy kondensator Cl i złącze CONl.
Po zmontowaniu wszystkich modułów można przystąpić do zamontowania czujników w futrynie drzwi. Na rys. 5 przestawiono sposób umieszczenia diod nadawczych i odbiorników podczerwieni. Obydwa moduły należy umieścić dokładnie na przeciw siebie i na takiej samej wysokości (około 90 cm). Płytki diod i odbiorników wymiarami dopasowanie są do obudowy typu Z43 (obudowy nie wchodzą w skład zestawu), można więc je przymocować bezpośrednio do futryny przy pomocy wkrę-
tów lub wmontować w obudowy. Jeśli zostaną zastosowane obudowy, to należy wykonać w nich odpowiednie otwory, aby światło emitowane przez diody nadawcza trafiało bez przeszkód do odbiorników. Jeśli płytki czujników zostały zamontowane, należy połą-czyć je z płytka główną, w tym celu złącze CONl na płytce diod nadawczych należy połączyć przewodem dwużyłowym ze złączem CON2 na płytce głównej. Płytkę odbiorników łączymy (złącze CONl) z płytką główną (złącze CON3) przy pomocy przewodu czterożyłowego. Należy pamiętać, aby zastosowane przewody nie przekraczały długości około trzech metrów.
Po podłączeniu wszystkich płytek do złącza CON5 na głównej płytce podłączamy głośnik, a do złącza CONl napięcie zasilania o wartości około 9 V. Zastosowany zasilacz powinien mieć wydajność prądową minimum 200 raA, Jeśli montaż wszystkich modułów został wykonany prawidłowo, to po podłączaniu zasilania powinny zapalić się diody D2 i D3 na płytce głównej. Jeśli tak nie jest, to należy potencjometrem PRl zmienić częstotliwość sterowania diod nadawczych, tak aby zapaliły się obydwie diody D2, D3. Jeśli regulacja nie częstotliwości nie powoduje ich zapalenia, to świadczy
30
Elektronika Praktyczna 2/2003
Detektor ruchu z głosowym automatem informacyjnym
to o tym, że układ lub połączenia poszczególnych płytek są wykonane błędnie i należy ponownie prześledzić wszystkie połączenia.
Jeżeli jednak diody się zaświeciły, to cały układ działa poprawnie i można przejść do nagrania odpowiednich komunikatów. W tym celu zworkę JPl należy ustawić w pozycji 2-3, a zworkę JP2 w pozycji 1-2. W ten sposób zostanie ustawiony adres pierwszego komunikatu, następnie należy zewrzeć zworkę JP3 i rozpocznie się jego nagrywanie, nagrywanie będzie trwało aż do rozwarcia tej zworki. W czasie nagrywanie będzie się świeciła dioda D4. Należy pamiętać, aby czas nagrywania pierwszego komunikatu nie przekroczył 10 sekund. Przykładowy komunikat może mieć postać: "DZIEŃ DOBRY". W celu nagrania drugiego komunikatu należy zworkę JP2 przestawić w pozycję 2-3, co spowoduje ustawienie adresu drugiego komunikatu. Tak jak wcześniej nagrywanie rozpoczynamy zwarciem zworki JP3, w tym przypadku nie jest konieczne kontrolowanie długości nagrywanego komunikatu, ponieważ po przekroczeniu maksymalnego czasu nagrania układ ISD1420 sam przerwie proces nagrywania, co objawi się samoczynnym zgaszeniem diody D4. Drugi komunikat może być następujący: "DO WIDZENIA".
Po zakończeniu nagrywania przełączamy zworkę JPl w pozycję 1-2, w ten sposób wybór nagranych komunikatów będzie odbywał się automatycznie.
Od tej pory przejście pomiędzy czujnikami będzie objawiało się
WYKAZ ELEMENTÓW
Płytka główna Rezystory
Rl, R4: 4,7kQ
R2: 27kQ
R3, RIO, Rl 1: 470O
R5: 12kQ
Ró, R9: 39kQ
R7, R8, Rló, R17: 10kO
R12: lOOkO
R13, R14: lkO
R15: 5,1 kQ
R18: 470kQ
PR1: potencjometr montażowy
10ka
Kondensatory
Cl, C4, Cló: 220^F/16V
C2, C3, C9...C14, C19: lOOnF
C5...C7: 47nF
C8: lnF
C15: 4,7^F/16V
Cl7: 330nF
C18: 100^F/16V
Półprzewodniki
Dl: 1N4007
wypowiedzeniem odpowiedniego komunikatu, w momencie przerwania wiązki światła zostaną zgaszone diody D2 i D3. Do ustalenia poziomu głośności tych komunikatów służą przyciski SWl i SW2.
Jeśli odtwarzanie komunikatów nie będzie prawidłowe, na przykład przy wchodzeniu będzie wypowiadany komunikat "DO WIDZENIA", to należy jeszcze raz przeprowadzić procedurę nagrywania, lecz odpowiednie komunikaty zapisać w odwrotnej kolejności. Sytuacja błędnie wypowiadanych komunikatów będzie występowała w przypadku umieszczenia w nie-
D2, D4: LED 5mm czerwona
D3: LED 5mm zielona
US1: ISD 1420
US2: TDA8551 SMD
US3: CD4538
US4: LM7805
US5, US6: NE555
Różne
CON1, CON5: ARK2(5mm)
CON2: goldpin 1x2 męski
CON3, CON4: goldpin 1x4 męski
JPl, JP2: goldpin 1x3 +Jumper
JP3: goldpin Ix2+Jumper
MK: mikrofon pojemnościowy
SWl, SW2: mikrowłącznik
Głośnik 1W/8O
Płytka odbiorników Cl: 4,7^F/16V tantalowy US1, US2: TSOP1736 CON1: goldpin 1x4 męski kątowy
Płytka diod nadawczych Dl, D2: dioda nadawcza podczerwieni CON1: goldpin 1x2 męski kątowy
prawidłowej kolejności odbiorników TSOP1736, co z kolei zależy od tego, po której stronie futryny zostały umieszczone. Aby naprawić błędne wypowiadanie komunikatów można również zamienić miejscami diody nadawcze i odbiorniki, ale znacznie prościej jest nagrać komunikaty w odwrotnej kolejności.
Krzysztof Pławsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lutyO3.htm oraz na płycie CD-EP2/2003B w katalogu PCB.
Elektronika Praktyczna 2/2003
31
PROJEKTY
Gra w kółko i krzyżyk
AVT-5101
Przedstawiamy łatwy
w wykonaniu układ
elektronicznej wersji jednej
z najpopularniejszych gier
towarzyskich: kółko i krzyżyk.
Rekomendacje: grę
polecamy szczególnie uczniom
i studentom, którym pomoże
ona zabić lekcyjną
(wykładową) nudę, a także
wszystkim fanom dobrej
rozrywki.
Początkowo planowałem wykonanie kolejnego wcielenia gry w kości, ale po przemyśleniu uznałem, źe temat jest tak wyeksploatowany, źe zapewne niewielu Czytelników poświęciłoby uwagę takiemu opracowaniu. O dziwo nigdy nie spotkałem się z elektroniczną wersją popularnej towarzyskiej gry w kółko i krzyżyk. Pierwszym odruchem była chęć zastosowania wyświetlacza graficznego, lecz koszt wykonania takiej zabawki byłyby nieporównywalnie duże w stosunku do przydatności. Ponieważ w grze mamy do postawienia tylko dwa możliwe symbole, najprostszym rozwiązaniem okazało się użycie matrycy 3x3 diod dwukolor owych wraz z zestawem przycisków. Program umożliwia grę w dwójkę oraz z urządzeniem. Mamy do wyboru 3 poziomy trudności. Gramy do 3 zwycięstw, remisy nie dają punktów nikomu.
Zachęcam wszystkich do wykonania tej że gry - na pewno uchroni nas przed stosem pokreślonych kartek i zapewni rozrywkę np. na nudnych lekcjach czy wykładach.
Opis działania
Układ sterowania sprowadza się do nieśmiertelnego procesora 89C4051, sześciu inwerterów służących za bufory wyjściowe oraz
3 tranzystorów. Na rys. 1 pokazano schemat elektryczny urządzenia. Mikiokontioler pracuje w typowej dla siebie aplikacji. Kondensator Cl ładuje się po włączeniu zasilania, zapewniając zerowanie mikiokontiolera. Do zasilania całości służy miniaturowy stabilizator napięcia 78L05. Układ został przewidziany do zasilania z baterii 9 V.
Bliższego omówienia wymaga część sterująca diodami LED i przyciskami. Matryca jest sterowana multipleksowo co oznacza, że tylko jedna kolumna LED-ów jest zapalona w danym momencie. Jednocześnie podczas "przemiata-nia" matrycy diod, skanowana jest klawiatura. Procesor podaje stany
0 na bazy kolejnych tranzystorów włączając kolumnę trzech diod. Następnie z drugiej strony poprzez inwertery zapewniające odpowiednio dużą wydajność prądową (porty procesora w stanie
1 mają ją bardzo małą) zapalane są wybrane diody. Cały cykl powtarza się na tyle często, że mamy wrażenie ciągłego Świecenia wszystkich LED-ów. Gdy na bazie danego tranzystora występuje 0 i w danej kolumnie naciśnięty jest przycisk zaczyna przewodzić dioda i port mikiokontrolera jest zwierany do masy. Diody są niezbędne, aby naciśnięcie przycisku nie zwierało linii na stałe
Elektronika Praktyczna 2/2003
33
Gra w kółko i krzyżyk
G2
Rys. 1. Schemat elektryczny gry
do "+" zasilania, gdy nie jest ona wybrana. Oporniki podciągające R12...R14 dodano profilaktycznie, aby uniknąć zakłóceń. Z kolei R15...R16 są wymagane do poprawnej pracy układu jeśli zastosujemy inwertery w wersji CMOS (porty Pl.O i Pl.l są typu otwarty kolektor).
Na płytce drukowanej zamiast 5 rezystorów zastosowano R-Pack. Rezystory R1...R6 ograniczają prąd diod do ok. 10 mA, co zapewnia wystarczającą jasność i maksymalny pobór prądu z baterii ok. 30 mA. Dodatkowym osprzętem jest przetwornik piezoceramiczny z wbudowanym generatorem oraz
dwie diody świecące - czerwona i zielona, które wskazują gracza. Zamiast buzzera można zastosować membranę piezo, lecz generowany dźwięk jest niskiej jakości z powodu cyklicznie wywoływanej procedury odświeżania matrycy. Odpowiednio zmodyfikowane wersje programów można znaleźć na płycie CD-EP2/2003B.
Działanie programu, obsługa gry
Oprogramowanie powstało w Bascom ie 8051. Całkowita wielkość kodu to ok. 3500 bajtów. Jest to dość dużo, ale wynika to po części ze słabych optymalizacji
niektórych funkcji przez kompilator i braku obsługi zmiennych tablicowych dwuwymiarowych, które znacznie ułatwiły by np. sprawdzanie czy któryś z graczy stworzył linię.
Zaraz po uruchomieniu jest sprawdzane, czy któryś z klawiszy nie jest wciśnięty. Jeśli tak, to zostaje całkowicie wyłączony buz-zer, co umożliwia nam granie nie zwracając na siebie uwagi ciągłym pikaniem.
Do wyboru grę w jednym z dwóch trybów: single player oraz dual player. Aby zmienić bieżący tryb pracy należy nacisnąć przycisk pod diodą w dolnym
34
Elektronika Praktyczna 2/2003
Gra w kółko i krzyżyk
^h Czeiwony
r~") Zielony Start rozgiywkl
Zmiana trybu Gra w pojedynkę
Rys. 2. Konfiguracja gry
Gra wb dwAJkf
lewym rogu, a następnie przycisk przeciwległy w celu rozpoczęcia rozgrywki (rys. 2).
Gdy gramy z urządzeniem musimy wybrać stopień trudności gry. Żeby to zrobić naciskamy jeden z przycisków w środkowej kolumnie (rys. 3).
Sztuczna "inteligencja" naszej zabawki jest stosunkowo ograniczona:
- tryb bardzo łatwy: program sprawdza tylko czy może zrobić ruch tworzący linię, jeśli nie -losuje,
- tryb łatwy: jw., sprawdza czy może zablokować zwycięstwo przeciwnika, jeśli tak to losuje czy ma to zrobić,
- tryb normalny: jw., zawsze blokuje kombinacje przeciwnika umożliwiające wygraną.
Po wybraniu ustawień zaczyna się rozgrywka. Zawsze pierwszy jest gracz czerwony. Migająca dioda ponad polem gry informuje który gracz musi teraz wykonać ruch. Przykładowa pole gry pokazano na rys. 4. W takim wypadku, po wybraniu przez czerwonego gracza pola w górnym prawym rogu, zwycięska kombinacja mignie 3 razy i program przedstawi nam punktację, jak przykładowo pokazano to na rys. 5.
Remis jest sygnalizowany 3 piknięciami i nikomu nie jest przyznawany punkt. W lewej kolumnie znajduje się punktacja gracza zielonego, a w prawej czerwonego. Teraz naciśnięcie dowolnego przycisku spowoduje przejście do następ-
Normalny
Łatwy
B. łatwy
Rys. 3. Wybór stopnia trudności gry
nej partii. Zawszę partię rozpoczyna zwycięzca z poprzedniej. Gdy wystąpił remis gracz inicjujący jest losowany. Jeśli któryś gracz wygrał p o raz 3, to po wyświetleniu wyniku całe pole zapali się na kolor gracza i mignie 3 razy. Naciśnięcie dowolnego klawisza spowoduje powrót do menu wyboru trybu gry.
Oprogramowanie wykorzystuje do odświeżania wyświetlacza wewnętrzny timer procesora 8051. Nie będę przytaczał całego programu, ale procedura wyświetlająca (list. l) jest o tyle godna uwagi, że uzupełni wiedzie o działaniu sprzętu.
W programie najważniejszą rolę pełnią dwie zmienne tablicowe L(x) oraz S(x). Zawierają one informacje o tym, które diody mają być zapalone (L) oraz które przyciski są naciśnięte. Cała procedura jest ujęta w warunku IF sprawdzającym ile razy zostało wywołane przerwanie. Służy to zmniejszeniu częstotliwości skanowania. Następnie, w zależności od wartości zmiennej refresh, program przepisuje zawartość tablicy L(x) do tablicy TL(x). Jest to przydatne gdy nasza sztuczna "inteligencja" sprawdza różne możliwe kombinacje - poprzez wyłączenie przepisywania na ekranie nie będzie widać "śmieci". Wszystkie wyjścia przechodzą w stan nieaktywny. Następnie program w zależności od zawartości zmiennych Pil i Pl2 zapala diody umieszczone ponad polem gry. Wewnątrz warunku jest umieszczona swego rodzaju pętla, dzięki której stan diody jest negowany po ok. 2 00 odświeżeniach - zapewnia to migotanie z częstotliwością ok. 1 Hz. Kolejny warunek sprawdza, czy nie przekroczyliśmy dopuszczalnej wartości licznika kolumn. W zależności od kolumny zmiennym vi, v2, v3 oraz vcol przypisywane są odpowiednie wartości. Zmienne vx zawierają numery pozycji z tablicy do wyświetlenia, a vcol wartość sterującą tranzystorami kolumn. W wartościach tablicy L(x) bit
0 steruje diodą zieloną, a bit
1 czerwoną. Wartości są przepisywane na odpowiednie wyprowadzenia portu Pl. Następnie włączany jest tranzystor kolumny (odpowiednia wartość w vcol).
O O O O O
o o
Rys. 4. Wygląd przykładowego pola gry
Dalej program sprawdza, czy któryś z przycisków nie jest wciśnięty. Jeśli tak - ustawia odpowiedni element tablicy S(x) na 1.
Pewnym problemem było wykrycie, czy gracz ułożył zwycięską kombinację, ponieważ Bascom nie
List. 1 Procedura obsługująca
wyświetlanie matrycowe
Scan:
In er Tiro
If Ti m = 3 Th en
Ti m = 0
If Re fresh = 1 Then
Fo r Rte rop = 1 To 9
Tl(rtemp) = L (rtemp)
Ne xt Rt emp
En d If
Pl _ Pl Or &B00111111
P3 = P3 Or &B01111111
If Pil = 1 Then
In er Ti ml
If Timl = 2 50 Then
P1.7 = Not P1.7
Timl = 0
En d If
El se
Pl .7 = 1
En d If
If P12 = 1 Then
In er Ti m2
If Tim2 = 2 50 Then
P1.6 = Not P1.6
Tim2 = 0
En d If
El se
Pl . 6 = 1
En d If
If Co 1 = 4 Then Col = 1
Se lec t Cas e Col
Ca se 1:
VI = 1
V2 = 2
V3 = 3
Vc ol = &B01111110
Ca se 2:
VI = 4
V2 = 5
V3 = 6
Vc ol = &B01111101
Ca se 3:
VI = 7
V2 = 8
V3 = 9
Vc ol = &B01111011
En d S elect
Pl .0 = Not Tl(vl) .0
Pl .1 = Not Tl(v2) .0
Pl .2 = Not Tl(v3) .0
Pl .3 = Not Tl(vl) .1
Pl .4 = Not Tl(v2) .1
Pl .5 = Not Tl(v3) .1
P3 .0 = 0
P3 .1 = 0
P3 .2 = 0
P3 = P3 Or Vcol
Te rop = P3 ftnd &B00111000
Se lec t Cas e Temp
Ca se &B00011000: S(Vl) = 1
Ca se &B00101000: S(V2) = 1
Ca se &B00110000: S(V3) = 1
Ca se Else:
S(Vl) = 0
S(V2) = 0
S(V3) = 0
En d S elect
In er Col
End If
Retum
Elektronika Praktyczna 2/2003
35
Gra w kółko i krzyżyk
o o o o o o o
Rys. 5. W ten sposób jest sygnalizowana punktacja gry
pozwala na tworzenie tablic dwuwymiarowych. Postanowiłem więc zastosować sprawdzanie wszystkich możliwy kombinacji. Zachęcam zainteresowanych do przejrzenia całego programu - do ściągnięcia z Internetu, dostępny jest także na płycie CD-EP2/2003B.
Małego wyjaśnienia wymaga jeszcze procedura obsługi buzzera, którą przedstawiono na list. 2.
Zmienna beepoff zostaje ustawiona, gdy przytrzymamy przy starcie jakiś klawisz (patrz wy-
List. 2. Procedura obsługi sygnalizatora akustycznego
Sub EeepO
If Beepoff = 0 Then For Eeepx = 1 To 20
P3.7 = 0 Delay
P3.7 = 1 Delay
Wext Eeepx End If End Sub
O Xl O | |O O O O O O OjDRl |OC2O|OC3Ol
Rys. 6. Rozmieszczenie elementów na płytce drukowanej
żej). Pętla for tworzy prosty generator o częstotliwości teoretycznie 5 kHz (opóźnienie delay ok. 100 |is), lecz jest to w praktyce znacznie mniej, ponieważ praca jest przerywana przez procedurę odświeżania wyświetlacza i dochodzą opóźnienia pętli. W przypadku zastosowania gotowego generatora z przetwornikiem piezoceramicz-nym procedura upraszcza się do postaci pokazanej na list. 3.
Montaż
i uruchomienie
Urządzenie zmontowano na płytce drukowanej o wymiarach ok. 70 x 80 mm, której schemat montażowy pokazano na rys. 6. Jest ona przystosowana do obudowy KM33B (ważne - wersja bez litery B w oznaczeniu ma maskownicę do głośnika i nie nadaje się do naszego układu). W obudowie przewidziano miejsce na baterię 9V.
Pewien problem stanowi to, że standardowo płytka jest znacznie odsunięta od przedniej ścianki obudowy - należy zastosować mikro-
WYKAZ ELEMENTÓW
Rezystory
R1....R6: Ó8Q
R7, R8: 100O
R9, RIO, Rll: lkO
R12...R16: 10kO
Kondensatory
Cl: l|iF/16V
C2, C3: 33pF
C4: 10|iF/16V
C5, Có: lOOnF
Półprzewodniki
D1...D9: 1N4148
DL1...DL9, LED11: LED czerwona
LED10: LED zielona
T1...T3: BC556
Ul: AT89CX051 (zaprogramowany)
U2: SN7404N
U3: 78L05
Różne
Bl: BUZZER
Xl: 12MHz
S1...S9: SW-PB
List. 3. Procedura obsługi generatora akustycznego
Sub EeepO
If Eeepoff = 0 The P3.7 = 0 Waitms 10 P3.7 = 1
End If
przełączniki z przyciskami o długości 9 mm, diody wlutować tak aby były na równi z "łepkami" przycisków.
Po dopasowaniu otworów w przedniej ściance, musimy przyciąć kołki wewnątrz obudowy i dobrać odpowiednio długie wkręty do skręcenia całości. Żeby płytka nie spadała do wnętrza obudowy można zastosować odpowiedniej długości tulejki dystansowe lub "na drodze" wkręta wstawić ucięte fragmenty kołków.
Układ po złożeniu i zaprogramowaniu procesora działa od razu (w zależności od zastosowanego kondensatora Cl może startować dopiero po np. sekundzie). Michał Wysocki m wsof t@ sa tka b e I. co m. p I www. mwsof t .prv.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lutyO3.htm oraz na płycie CD-EP2/2003B w katalogu PCB.
36
Elektronika Praktyczna 2/2003
PROJEKTY
Yampp-3/USB, część 3
Graficzny wyświetlacz LCD w Yamppie 3/USB
CieMokry sta Ii czn e
wyświetlacze graficzne są
coraz częściej stosowane
w konstrukcjach amatorskich.
Można je bowiem
wymontować z tanich,
używanych telefonów
komórkowych. W ańykule
opisujemy sposób
wykorzystania wyświetlacza
graficznego z telefonu Nokia
w Yamppie.
Rekomendacje: nowoczesny
odtwarzacz dla fanów
empetrójkowych nagrań,
doskonale dostosowany do
współpracy z programowymi
odtwarzaczami stosowanymi
w PC.
Jak wcześniej wspomniałem, do yamppa-3/USB zamiast wyświetlacza alfanumerycznego można podłączyć graficzny wyświetlacz LCD. Oprogramowanie systemowe umożliwia obsługę wyświetlaczy wykorzystywanych w większości telefonów komórkowych firmy Nokia. Są to wyświetlacze o wymiarach około 40x35 mm (pole widoczne 30x23 mm), o organizacji 84x48 pikseli i mają wbudowany kontroler PCD8544 firmy Philips. W tab. 1 zawarto zestawienie typów wyświetlaczy oraz modeli telefonów, które można wykorzystać w yamppie.
Krótka charakterystyka kontrolera
PCD8544 jest jednoukładowym kontrolerem graficznej matrycy LCD, zawierającym szeregowy interfejs wejściowy, pamięć RAM wraz z licznikami oraz układami adresowania kolumn i wierszy, drivery kolumn i wierszy, generator zegarowy oraz układ wytwarzania napięć zasilających matryce LCD wraz z automatyczną kompensacją temperaturową ustawienia kontrastu. Można go zasilać
napięciem o wartości od 2,7 do 3,3V. Charakteryzuje się niskim poborem prądu oraz minimalną liczbą elementów zewnętrznych potrzebnych do jego prawidłowej pracy. Na rys. 6 przedstawiono schemat blokowy układu PCD8544. Pamięć RAM kontrolera jest zorganizowana tak, aby umożliwić wyświetlenie 6 linii tekstu po 14 znaków w każdej. Ze względu na brak wbudowanego generatora znaków, wzory zdefiniowanych czcionek muszą być umieszczone w pamięci mik-rokontiolera, a do wyświetlacza wysyłane są dane powodujące bezpośrednie odwzorowywanie znaków przez "zapalenie" lub "zgaszenie" pikseli wyświetlacza. Dane do sterownika wprowadzane są szeregowo poprzez wejście SDIN, w takt sygnału zegarowego podanego na wejście SCLK. Sygnał SCE jest sygnałem zezwolenia na przyjmowanie danych do rejestrów, a sygnał D/C służy do wyboru trybu wprowadzania danych lub komend. Sygnały SDIN, SCLK i SCE są zgodne z sygnałami popularnego standardu magistrali szeregowej SPI, co ułatwia podłączenie wyświetlacza do mikiokontiolera posiadającego taki interfejs - a zastosowany w yamppie Atmegal61 do takich należy.
Elektronika Praktyczna 2/2003
Yampp-3/USB
C110 C83
H0tOH47
VLCD2
VLCD1"
'DD1
to Vi
DD2
*> VSS2
T3-
T4
BIAS
V0LTAGE
GENERATOR
COLUMN DRIVERS
ROW DFWERS
DATA LATCHES
VLCD GENERATOR
DISPLAY DATA RAM (DDRAM) 4flxB4
SHIFT REGISTER
RESET
OSCILLATOR
TIMING GENERATOR
ADDRESS COUNTER
DATA REGISTER
DISPLAY ADDRESS COUNTER
PCD8544
l/O BUFFER
RES
osc
SDIN SCLK D/C SCE
Rys. 6. Schemat blokowy układu PCD8544
Oprócz magistrali SPI, do wyświetlacza należy doprowadzić sygnał D/C, sygnał Reset, napięcie zasilania oraz do wyprowadzenia V0UT (VLCD) podłączyć kondensator filtrujący napięcie zasilające matrycę. Należy podkreślić, że do prawidłowej pracy wyświetlacza niezbędne jest podanie sygnału RESET po załączeniu zasilania. Maksymalna prędkość przesyłania danych do wyświetlacza jest duża i wynosi 4Mb/s (yampp wysyła dane z prędkością około 2 Mb/s). Pełna specyfikacja tego kontrolera dostępna jest na płycie CD-EP2/ 2003 lub w Internecie pod adresem http:// www. sernic o nduc -tors.philips.com/acrobat/da-tasheets/PCD8544_l.pdf.
Podłączenie wyświetlacza graficznego do yamppa
Jednoczesna praca dekodera MP3 oraz wyświetlacza, podłączonych do tej samej magistrali SPI, jest możliwa ze względu na zastosowanie oddzielnych sygnałów aktywujących zapis danych do dekodera - sygnały MP3 i BSYNC oraz wyświetlacza - czyli sygnał LCD_E dołączony do wejścia SCE wyświetlacza. Znajdujący się wewnątrz dekodera bufor dla strumienia MPEG umożliwia bezproblemową obsługę wyświetlacza, nie powodując żadnych przerw w procesie dekodowania.
Ponieważ yampp był pierwotnie przystosowany do wyświetlaczy alfanumerycznych, nie posiada specjalnego złącza do podłączenia graficznego ekranu LCD, aczkolwiek niewykluczone jest, że nowe wersje płytek drukowanych tego odtwarzacza będą takie złącze posiadać.
Na razie musimy więc poradzić sobie inaczej. Istnieją dwa sposoby podłączenia wyświetlacza. Pierwszy - prostszy - polega na bezpośrednim przy lutowaniu przewodów z wyświetlacza w odpowiednie punkty płytki yamppa, jak pokazano na rys. 7. Magistrala SPI oraz sygnał RESET są podłączone do wyświetlacza w tym samym miejscu co dekoder MP3, czyli za konwerterem poziomów IC6. Sygnał SCE doprowadzony jest poprzez jedną, niewykorzystaną wcześniej, bramkę układu IC6, a odpowiedni poziom sygnału D/C zapewnia dodatkowy re-
zystor podciągający oraz dioda podłączona do nóżki 8 układu ICl. W tym przypadku wyświetlacz zasilany jest napięciem 3,3 V pochodzącym ze stabilizatora IC5. Dodatkowo należy połączyć przewodem wyprowadzenie numer 26 procesora ICl z nóżką 9 układu IC6, a pomiędzy wyprowadzenie sygnału RESET yamppa (wyprowadzenie 4 układu ICl) a masę wlutować dodatkowy kondensator 100 nF, ewentualnie zastosować scalony układ zerujący (np. DS1813). Niestety, ten sposób podłączenia ogranicza dopuszczalną długość przewodów łączących LCD z płytką yamppa do około 15...20 cm.
Na rys. 8 pokazano alternatywny sposób podłączenia wyświetlacza do istniejących na płytce yamppa złącz: Jl (złącze programujące) oraz J2 (złącze wyświetlacza) z możliwością zastosowania nieco dłuższych przewodów połączeniowych. Jego wadą jest konieczność wykonania dodatkowej płytki konwertera poziomów, znajdującej się w pobliżu wyświetlacza. W skład tego konwertera wchodzi układ 74LVC245 - taki sam jak układ U6 zastosowany na płytce yamppa - oraz stabilizator napięcia 3,3 V w postaci szeregowego rezystora i diody Zenera. Ten sposób podłączenia również wymaga dodania kondensatora lOOnF lub scalonego układu generującego sygnał RESET.
Jeżeli zastosujemy wyświetlacz typu LPH-7779, to podłączenie do niego przewodów nie stwarza żadnego problemu, ponieważ można je przylutować wprost do złoconych styków wyświetlacza. Zastosowanie wyświetlacza z wyprowadzeniami dostosowanymi do gumy przewodzącej pociąga za sobą konieczność wykonania płytki drukowanej z polami kon-
Typ LCD Modele telefonów Liczba wyprowadzeń Komentarz
LPH-7366 lub LPH-7666 N5110, N5150, N6110, N6150 9 Wyprowadzenia na gumce przewodzącej, posiada plastikową matówkę do podświetlania diodami LED
LPH-7677 lub LPH-7690 N3210, N6210 8
LPH-7779 N3310, N3330, N5510 8 Wyprowadzenia na złoconych stykach. Najlepszy wybór
ECM-A-1091 N8210, N8250 9 Jak LPH-7366
40
Elektronika Praktyczna 2/2003
Yampp-3/USB
YMMPP
20 ice ^----
LCD
-A VDD
lOk
siei
17IO6 18 IC6 11 |C6 15 ICS
10 ice
L
11 u F/25 V "-Tantal
_T____
D/C
SCLK
SDIN
SCE
RES
VOUT
GND
Rys. 7. Schemat dołączenia wyświetlacza LCD do płytki yamppa
taktowymi lub wykorzystania fragmentu płytki z uszkodzonego telefonu komórkowego - po odpowiednim przycięciu i przyluto-waniu przewodów do istniejących ścieżek bądź przelotek. Wykonanie takiej płytki we własnym zakresie wymaga trochę precyzji i cierpliwości, ponieważ odległość pomiędzy poszczególnymi stykami wyświetlacza wynosi 1 mm, a wymagana szerokość ścieżki pola stykowego około 0,4 mm. Rozkład wyprowadzeń poszczególnych wyświetlaczy podano w tab. 2. Jeżeli patrzymy na wyświetlacz od strony wyprowadzeń i mamy wyprowadzenia u góry wyświetlacza, to styk numer 1 znajduje się po lewej stronie złącza. W przypadku zastosowania wyświetlaczy z 9-stykowym złączem wyprowadzenie OSC (styk 6) należy połączyć z VDD (styk 1).
Uruchomienie oraz konfiguracja
Po wykonaniu niezbędnych modyfikacji i połączeń do wyświetlacza, możemy przystąpić do
Tab. 2
Numer styku: 1 2 3 4 5 6 7 8 9
Dla 8-stykowych: VDD SCLK SDIN D/C SCE GND VOUT RES -
Dla 9-stykowych: VDD SCLK SDIN D/C SCE OSC GND VOUT RES
konfiguracji oprogramowania oraz do uruchomienia odtwarzacza. Najpierw musimy załadować do procesora tablicę generatora znaków dla graficznego wyświetlacza, która ze względu na obszerność jest umiejscowiona na samym końcu pamięci Flash procesora - za programem bootloadera. W tym celu wykorzystamy specjalny program loadera, który po załadowaniu go do procesora przepisze tablicę znaków w odpowiednie miejsce pamięci Flash mikrokon-trolera. Najpierw podłączamy do yamppa kabel USB i uruchamiamy yamppLinka. Jeśli w pamięci yamppa nie ma poprzedniej wersji oprogramowania, czyli zawiera ona jedynie bootloader, to należy go uaktywnić przez naciśnięcie i przytrzymanie klawisza STOP na klawiaturze lokalnej oraz naciśnięcie przycisku RESET na płytce yamppa. Następnie z menu Ac-tions programu yamppLink wybieramy Update Firmware i ładujemy do yamppa plik o nazwie char-gen_loader.bin, znajdujący się wewnątrz folderu y3u_Graph_LCD pakietu oprogramowania systemowego. Jeśli wszystko przebiegło pomyślnie oraz wyświetlacz został podłączony prawidłowo, to po 2...3 sekundach powinniśmy zobaczyć na wyświetlaczu LCD komunikat świadczący o jego prawidłowym działaniu (oraz instrukcję w języku angielskim o dalszym postępowaniu). Ładowanie generatora znaków wykonujemy
A1 B1
A2 B2
A3 B3
A4 B4
A5 B5
A6 B6
A7 B7
A8 BS
18 \
1 /
17 16 J
15 14 1 C
13
12 \
11

\
1 u R/25 V
Rys. 8. Alternatywny sposób dołączenia wyświetlacza LCD do płytki yamppa
tylko raz i podobnie jak w przypadku bootloadera, nie ma konieczności jego powtarzania przy okazji wymiany oprogramowania czy innych zmian w konfiguracji yamppa, chyba że skorzystamy z programowania poprzez interfejs SPI, co powoduje wykasowanie całej zawartości pamięci Flash mikrokontrolera.
Teraz można załadować właściwe oprogramowanie, ale wcześniej trzeba dokonać odpowiednich modyfikacji wewnątrz pliku Constants.h. Poprzez zmianę komentarzy należy ustawić rodzaj wyświetlacza na 7, czyli wyświetlacz graficzny, zapisać zmodyfikowany plik oraz skompilować całość za pomocą kompilatora GCC. Następnie ponownie z menu Actions programu yamp-pLink wybieramy Update Firmware i ładujemy do yamppa otrzymany w wyniku kompilacji plik yampp3_usb.bin. Nie musimy przy tym restartować yamppa, ponieważ po wyświetleniu komunikatu o poprawnej pracy wyświetlacza, yampp automatycznie przechodzi do procedury oczekiwania na wgranie oprogramowania, czyli do bootloadera. Po załadowaniu właściwego oprogramowania, yampp powinien podjąć normalną pracę, wyświetlając dane na dołączonym wyświetlaczu graficznym.
Na fot. 9 przedstawiono pracującego yamppa 3/USB, z podłączonym (według pierwszej metody) graficznym wyświetlaczem LCD typu LPH-7366.
Plik Constants.h zawiera jeszcze kilka dodatkowych ustawień odnoszących się do wyświetlaczy graficznych. I tak po kolei. Polecenie GRAPHICS_LCD_CONTRAST ustawia odpowiedni kontrast wyświetlacza, przy czym im większa wartość, tym większy kontrast. Usunięcie komentarza z linii LCD_NEGATIV spowoduje, że wyświetlane będą jasne znaki na ciemnym tle, a usunięcie komentarza z linii ALT_BAR_STYLE spowoduje zmianę wyglądu paska postępu odtwarzania.
Elektronika Praktyczna 2/2003
41
Yampp-3/USB
Fot. 9. Yampp z wyświetlaczem typu LPH-73ÓÓ
Dodatkowe możliwości
Zastosowanie graficznego wyświetlacza pociąga za sobą kilka dodatkowych możliwości. Po pierwsze, mamy możliwość wgrania dowolnego obrazka, czyli graficznego loga, pojawiającego się na wyświetlaczu podczas uruchamiania yamppa oraz w trybie STOP (fot. 10). W tym celu należy przygotować sobie dowolną czarno-białą bitmapę o rozmiarach 84x32
pikseli (plik o długości 446 bajtów), po czym należy ją wgrać do yamppa 3/USB za pomocą programu yamppLink, wybierając z menu Actions funkcję Write Logo to EEPROM. YamppLink musi być w stanie Connected. Istnieje również możliwość wgrania loga o rozmiarach 84x40 pikseli, lecz na razie yamppLink nie obsługuje jeszcze ładowania tego typu obrazków.
Kolejna możliwość to prawidłowe wyświetlanie zestawu znaków diakrytycznych, czyli np. polskich "ogonków". Katalog Lang, znajdujący się wewnątrz pakietu oprogramowania, zawiera definicje polskich znaków narodowych w postaci pliku PO-LISH.BIN, który może zostać załadowany na dysk yamppa w specjalnie do tego celu przeznaczone miejsce formatu YADL. Niestety, w obecnej wersji program yamppLink nie udostępnia jeszcze tej funkcji, lecz nie jest wykluczone, że wkrótce będzie dostępna jego nowsza wersja,
Fot. 10. Logo yamppa wyświetlane podczas uruchamiania oraz w trybie STOP
obsługująca opisaną funkcję. Z mojej strony mogę tylko dodać, że ów plik musi być załadowany do sektora o numerze 4 na dysku yamppa.
Sądzę, że ten artykuł ułatwi Czytelnikom zbudowanie swojego własnego odtwarzacza MP3, a jego budowa i użytkowanie będzie źródłem wielkiej satysfakcji. Romuald Biały http://www.yamppsoft.prv.pl
42
Elektronika Praktyczna 2/2003
PROJEKTY
Bezprzewodowy regulator temperatury, część_2
AVT-5094
Powszechnie dostępne
radiowe moduły nadawczo-
odbiorcze umożliwiają
stosowanie łączy
bezprze wodo wych także
w "przyziemnych" aplikacjach.
Jedną z nich jest zdalna
regulacja temperatury.
W prezentowanym projekcie
zastosowano do tego celu
bezprzewodowy moduł
wykonawczy.
W drugiej części ańykułu
opisujemy programowanie tego
regulatora.
Rekomendacje: układ może
zastąpić przestarzałe
regulatory temperatury
z wyjściami przekaźnikowymi.
Może być z powodzeniem
stosowany do sterowania
ogrzewaniem elektrycznym lub
wodnym w domach.
Programowanie i obsługa
Po włączeniu zasilania na wyświetlaczu pojawi się następujący napis:
L-90 T=24.2CC i
Wartość temperatury będzie z pewnością inna, ale format wyświetlania będzie właśnie taki. Menu programowania składa się z trzech procedur, sposób programowania poszczególnych parametrów jest przedstawiony poniżej.
1. Programowanie czasu
Aby wejść w opcje programowania należy nacisnąć klawisz OK na około 3 sekundy, po tym czasie wykonywana jest procedura zmiany parametrów. Pierwszym domyślnym parametrem jest zmiana czasu, na wyświetlaczu pojawi się napis:
W tym celu wybieramy opcję Czas i zatwierdzamy klawiszem OK. Na wyświetlaczu pojawi się napis:
Pozycja minut zastanie podkreślona, sygnalizując, że wszelkie operacje dotyczą właśnie tego parametru. Przy nastawie czasu możemy zmienić jedynie minuty i godziny, sekundy są automatycznie zerowane w momencie zapisu nowego czasu. Cyfry umieszczone po dwukropku wskazują wartość minut, a litery gg wskazują, że na tej pozycji będą ustawiane godziny. Ale na początek zmieniamy wartość minut poprzez naciskanie klawisza UP lub DOWN, po ustawieniu odpowiedniej liczby minut naciskamy klawisz OK. W tym momencie zamiast liter gg zostanie wyświetlona liczba go-dzinfrównież podkreślona).
Aby zatwierdzić wybór ponownie naciskamy klawisz OK. W dowolnej chwili możemy wyjść z menu naciskając klawisz ESC. Klawiszami UP i DOWN możemy poruszać się po opcjach, czyli: Czas, Temperatura, zmiana godzin dnia i nocy.
Zawsze przy pierwszym uruchomieniu należy ustawić czas.
Tak samo jak w przypadku ustawiania minut klawiszami UP i DOWN zmieniamy wartość godzin i zatwierdzamy klawiszem OK. Ustawiony czas zostanie zapisany jako nowa wartość minut i godzin, a na wyświetlaczu pojawi się napis:
Zapisane
Elektronika Praktyczna 2/2003
43
Bezprzewodowy regulator temperatury
Zegar pracuje z nowymi nastawami czasu, a program główny powróci do menu wyboru regulowanych parametrów. W dowolnej chwili ustawianie czasu można przerwać naciskając klawisz ESC, a wykonane zmiany minut, czy godzin nie zostaną zapisane, gdyż wszystkie zmiany wartości czasu dokonywane są na zastępczych komórkach pamięci. Dlatego w czasie zmiany parametrów czas jest nadal odliczany, dopiero klawiszem OK dokonujemy przepisania wartości czasu do właściwych komórek odliczających czas. Jeśli nie chcemy zapisać wprowadzonych zmian należy nacisnąć klawisz ESC, zmiany nie zostaną zapisane, a na wyświetlaczu pojawi się napis:
iłuil ouane
i przechodzimy ponownie do głównego menu zmiany parametrów, bez zapisania żadnych zmian w aktualnym czasie.
2. Programowanie temperatury
Prezentowany termostat umożliwia utrzymywanie zadanej temperatury oddzielnie dla dnia i nocy. Aby wejść w tryb programowania, w menu programowania klawiszem UP lub DOWN wybieramy opcję:
Teweratura
i zatwierdzamy klawiszem OK. Na wyświetlaczu pojawi się napis:
z podkreśloną wartością temperatury. Klawiszami UP lub DOWN ustawiamy żądaną wartość temperatury dziennej w zakresie O...99C i zatwierdzamy klawiszem OK. Po tej czynności automatycznie przechodzimy do ustawiania temperatury nocnej. Na wyświetlaczu pojawi się napis:
tak jak w przypadku temperatury dziennej klawiszami UP lub DOWN ustawiamy żądana wartość temperatury nocnej i zatwierdzamy klawiszem OK. Na wyświetlaczu pojawi się napis:
i program przejdzie do głównego menu nastaw parametrów. Tak jak w przypadku ustawiania czasu w dowolnej chwili możemy wycofać się z wprowadzonych zmian naciskając klawisz ESC, gdyż dokonywa-
ne zmiany parametrów również są realizowane na zastępczych komórkach. Jednak po potwierdzeniu zmian klawiszem OK, nowe wartości temperatur zostają zapisane w wewnętrznej nieulotnej pamięci procesora i pozostają tam nawet po wyłączeniu zasilania, jedynie ponowne programowanie temperatury może zmienić ich wartość.
3. Ustawianie pory dnia i nocy Ponieważ prezentowany termostat umożliwia nadzorowanie niezależnie temperatury dziennej i nocnej, należy zdefiniować, jakie godziny będą traktowane jako dzień i będzie utrzymywana temperatura dzienna, a jakie jako noc, gdzie będzie utrzymywana temperatura nocna. Do tego celu służy procedura wywoływana z menu o nazwie:
Wybieramy ją w menu zmiany parametrów i zatwierdzamy klawiszem OK, na wyświetlaczu pojawi się napis:
fa*#i*-ttH 7 cło 19
cyfra "7" będzie podkreślona, klawiszami UP i DOWN ustawiamy odpowiednia godzinę od której zaczyna się dzień i zatwierdzamy klawiszem OK, po tej czynności przechodzimy do ustawienia godziny kończącej porę dnia. W przedstawionym przykładzie dzień będzie traktowany od godziny 700 do 185S, od godziny 1900 dla termostatu zapada noc. Analogicznie noc będzie trwała od godziny 1900 do godziny 65S, od 700 jest już dzień. Po zatwierdzeniu obydwu nastaw klawiszem OK, na wyświetlaczu pojawią się godziny dla nocy, wyliczone na podstawie ustawionych wcześniej godzin dla dnia. Dla ustawionych godzin dnia od 7 do 19, godziny dla nocy będą następujące:
Moc=odł9 do 7
Jeśli początek dnia będzie godziną późniejszą niż koniec, to dzień będzie liczony w godzinach zawierających pomiędzy nimi, na przykład, jeśli dzień będzie się rozpoczynał o godzinie 800, a kończył o 700, to dniem będą godziny od 800 do 2300 i od O00 do 75S. W takim przypadku noc będzie trwała jedynie od godziny 700 do 75S.
Po zatwierdzeniu nastaw klawiszem OK, wartości godzin dnia
i nocy zostaną zapisane w pamięci i jak w przypadku innych regulowanych parametrów zostaną nie zmienione nawet po wyłączeniu zasilania. Po zapisaniu wszystkich parametrów termostat jest gotowy do pracy. Na wyświetlaczu jest wyświetlana aktualna godzina, na bieżąco mierzona temperatura z dokładnością do O,1C oraz stan przekaźnika w module wykonawczym. Przykładowe wskazania mają postać:
i i; 24 T-24.7C i,
Na ostatniej pozycji wyświetlacza jest przedstawiony styk zwarty, sygnalizujący, że temperatura mierzona jest mniejsza od zaprogramowanej i należy włączyć grzejnik, aby ogrzać pomieszczenie. Jeśli temperatura przekroczy wartość nastawioną, to nastąpi wyłączenie przekaźnika w module wykonawczym, wyświetlacz będzie wskazywał:
łłS24 T=24.7C s
Styk rozwarty wskazuje, że przekaźnik jest wyłączony. Aby nie powodować zbyt częstego włączania i wyłączania przekaźnika termostat ma histerezę. Jeśli nastawiona temperatura ma wartość 23C, a temperatura w pomieszczeniu wynosi 20C, to następuje załączenie przekaźnika, przekaźnik ten będzie załączony do momentu, gdy temperatura przekroczy wartość 24C. Gdyby przekaźnik został wyłączony po osiągnięciu temperatury 2 3C, to bardzo szybko temperatura spadłaby poniżej tej wartości i przekaźnik musiałby zostać ponownie załączony. Dzięki takiej histerezie przekaźnik nie jest załączany w przypadku niewielkiego obniżenia temperatury.
Podobnie jest w przypadku, gdy temperatura panująca w pomieszczeniu jest większa od nastawionej . Jeśli nastawiona temperatura ma wartość 23C, a występująca w pomieszczeniu 25C, to przekaźnik będzie rozłączony, do momentu osiągnięcia poziomu 22C.
W dowolnym momencie można sprawdzić nastawione temperatury dla dnia i nocy bez potrzeby wchodzenia w menu programowania. W czasie normalnej pracy termostatu naciśnięcie klawisza UP spowoduje wyświetlenie przez czas około dwóch sekund temperatury dziennej, a naciśnięcie klawisza DOWN wyświetlenie temperatury nocnej.
44
Elektronika Praktyczna 2/2003
Bezprzewodowy regulator temperatury
Oprócz automatycznego sterowania na podstawie wartości temperatury, termostat umożliwia ręczne sterowanie przekaźnikiem modułu wykonawczego. Przejścia pomiędzy trybem ręcznym i automatycznym dokonuje się poprzez naciśnięcie klawisza ESC przez czas około 3 sekund. Jeśli termostat znajdował się w trybie pracy automatycznej, to naciśnięcie klawisza ESC spowoduje przejście do pracy ręcznej. Ten fakt zostanie zasygnalizowany na wyświetlaczu w postaci pojawienia się przycisku zamiast styku na ostatniej pozycji wyświetlacza:
11:24 T=24Ł?*C 1
Jeśli przekaźnik jest wyłączony, to będzie wyświetlany symbol wyciśniętego przycisku. Od tej pory termostat jedynie wyświetla wartość temperatury, lecz nie porównuje jej z nastawioną i nie ma możliwości automatycznej zmiany stanu przekaźnika. Zmiany stanu przekaźnika dokonuje się przez krótkotrwałe naciśnięcie klawisza OK, każdorazowe
jego naciśnięcie zmienia stan przekaźnika na przeciwny. Jeśli przekaźnik jest włączony, to wyświetlacz, będzie wyglądał następująco:
Symbol wciśniętego klawisza na ostatniej pozycji wyświetlacza informuje, że przekaźnik jest załączony. Praca ręczna umożliwia więc całkowite wyłączenie przekaźnika lub jego włączenie, niezależnie od temperatury zadanej i mierzonej.
Aby ponownie powrócić do pracy automatycznej należy nacisnąć klawisz ESC na czas większy niż 3 sekundy, na wyświetlaczu zamiast przycisku pojawi się symbol styku, informujący o pracy automatycznej.
Komunikacja modułu sterującego z układem wykonawczym nie jest prowadzona przez cały czas, lecz jest nawiązywana co dziesięć sekund. Po każdym dziesięciosekundowym odcinku czasu na wejście EN układu US2 (na płytce sterownika) jest podawane zero przez dwie sekundy. Logiczne zero na wejściu "EN" powoduje uruchomienie transmisji,
przez nadajnik jest wysyłany kod ustawiony przy pomocy wejść adresowych A0...A7 oraz sygnały wejść danych D1...D4 układu HT-12E. W zależności od stanu na wejściu Dl, przekaźnik modułu wykonawczego jest załączany lub wyłączany. Po upływie dwóch sekund transmisja radiowa zostaje przerwana, by po około 10 sekundach została ponownie włączona. Dzięki cyklicznym wysyłaniu informacji o stanie przekaźnika błąd powstały na skutek zakłóceń zostanie po dziesięciu sekundach skorygowany przez wysłanie kolejnej informacji o jego stanie. W czasie, gdy termostat pracuje w trybie ręcznym wysyłanie sygnału radiowego następuje tylko po naciśnięciu klawisza OK, który powoduje zmianę stanu przekaźnika. Krzysztof Pławsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lutyO3.htm oraz na płycie CD-EP2/2003B w katalogu PCB.
Elektronika Praktyczna 2/2003
45
PROJEKTY
"Mówiący" woltomierz, część 2
AVT-5097
W drugiej części artykułu
przedstawiamy sposób
montażu, uruchomienia
i programowania woltomierza.
Wymagana jest od
użytkownika odrobina
cierpliwości i znajomość
działania woltomierza.
R ekom en dacj e:
o mówiących przyrządach
pomiarowych marzyli do
niedawna przede wszystkim
niepełnosprawni, ale mogą je
szybko polubić wszyscy
elektronicy.
s
Montaż i uruchomienie
Montaż woltomierza rozpoczynamy od wlutowania w płytkę drukowaną (jej schemat montażowy pokazano na rys. 4) rezystorów. Następnie montujemy podstawki pod układy scalone. W kolejnym etapie montujemy kondensatory, potencjometr PRl i złącza CON1...CON4 oraz zworki JP1..JP5.
Po wlutowaniu wszystkich elementów należy wyskalować woltomierz. W tym celu trzeba włożyć w podstawki wszystkie układy scalone i usunąć zworki JP1..JP4. W zależności od tego czy chcemy, aby masa woltomierza była jednocześnie masą źródła mierzonego napięcia, czy nie, zwieramy lub rozwieramy zworkę JP5. Jeśli masa woltomierza ma być masą źródła mierzonego napięcia, to zworkę JP5 należy zewrzeć. Zwarcie tej zworki powoduje dołączenie do masy ujemnego wejścia przetwornika A/C. Następnie należy ustawić napięcie odniesienia przetwornika na wartość równą 1 V. Do tego celu służy potencjometr PRl, który jest dzielnikiem napięcia otrzymanego w wyniku stabilizacji poprzez diodę Dl. Napięcie to ma wartość 1,23 V, więc na wejście odnie-
sienia należy podać część tego napięcia. W celu precyzyjnego ustawienia napięcia odniesienia należy pomiędzy masę a suwak potencjometru PRl (lub wyprowadzenie 2 US2) włączyć inny woltomierz i potencjometrem ustawić wskazanie równe 1 V. Do pomiaru napięcia odniesienia należy zastosować woltomierz jak najwyższej klasy, gdyż od tego zależy dokładność wykonywania pomiarów przez zbudowany woltomierz. Po tej czynności woltomierz jest przygotowany do pracy - układ przetwornika pracuje poprawnie. Należy więc zaprogramować parametry "wyświetlania" (odtwarzania komunikatów) mierzonego napięcia.
Do zasilania woltomierza można zastosować dowolny zasilacz niestabilizowany o napięciu wyjściowym wynoszącym około 9 V i maksymalnym prądzie około 200 mA.
Programowanie
Ponieważ prezentowany woltomierz nie posiada wyświetlacza, a wyniki pomiarów przedstawiane są w postaci komunikatów głoso-
Elektronika Praktyczna 2/2003
47
"Mówiqcy" woltomierz
?
j-L PRl
Rys. 4. Schemat montażowy płytki drukowanej woltomierza
wych, komunikaty te należy zapisać w pamięci układu ISD2560. Spis niezbędnych komunikatów zamieszczono w tab.2.
Aby wprowadzić procesor w tryb nagrywania komunikatów, należy odpowiednio ustawić zwor-ki JP1...JP4. Spis wszystkich trybów pracy woltomierza w zależności od ustawienia zworek kon-figuracyjnych przedstawiono w tab. 3. Stan "0" oznacza zwarcie zworki, stan "1" rozwarcie, a stan "X" oznacza stan dowolny.
Nagrywanie komunikatów przeprowadza się tylko raz, podczas
Tab. 2. Spis komunikatów zawartych w pamięci układu ISD2560
Lp. Komunikat Lp. Komunikat
1 Zero 25 Sześćdziesiąt
2 Jeden 26 Siedemdziesiąt
3 Dwa 27 Osiemdziesiąt
4 Trzy 28 Dziewięćdziesiąt
5 Cztery 29 Sto
6 Pięć 30 Dwieście
7 Sześć 31 Trzysta
8 Siedem 32 Czterysta
9 Osiem 33 Pięćset
10 Dziewięć 34 Sześćset
11 Dziesięć 35 Siedemset
12 Jedenaście 36 Osiemset
13 Dwanaście 37 Dziewięćset
14 Trzynaście 38 Tysiąc
15 Czternaście 39 Dwa tysiące
16 Piętnaście 40 Wolt
17 Szesnaście 41 Wolty
18 Siedemnaście 42 I
19 Osiemnaście 43 Miliwolt
20 Dziewiętnaście 44 Miliwolty
21 Dwadzieścia 45 Minus
22 Trzydzieści 46 Zakres
23 Czterdzieści 47 Zakres przekroczony
24 Pięćdziesiąt
uruchamiania woltomierza. Aby przejść do trybu nagrywania komunikatów, należy, przy wyłączonym zasilaniu, zgodnie z tabelą zewrzeć zworki JPl i JP3. Dodatkowo jako zworkę JP4, na czas programowania można zastosować przycisk mono stabilny (przedstawiony na schemacie elektrycznym jako opcjonalny). Przycisk ten znacznie ułatwia programowanie, gdyż wielokrotne zwieranie i rozwieranie zworki jest dość kłopotliwe.
Jeśli przygotowaliśmy procesor do nagrywania, to włączamy zasilanie i rozpoczynamy nagrywanie komunikatów. Nagrywanie komunikatu przeprowadza się przy zwarciu zworki JP4 (dodatkowego przycisku) - trwa ono przez cały czas zwarcia tego przycisku. Zwolnienie przycisku powoduje zakończenie nagrywania danego komunikatu. Dla zapisania komunikatu należy więc wykonać sekwencję czynności: nacisnąć przycisk (JP4), wypo-
wiedzieć odpowiedni komunikat i zwolnić przycisk. Procesor zwiększa zawartość licznika nagranych komunikatów i oczekuje na kolejny zapis. Proces ten należy powtórzyć dla wszystkich komunikatów zawartych w tab. 2. Po ostatnim komunikacie procesor przechodzi w stan oczekiwania na ponowne włączenie zasilania. Nie można więc nagrać większej liczby komunikatów, niż zawarto w tab. 2. Woltomierz nie ma żadnej sygnalizacji przekroczenia maksymalnego czasu nagrania dla układu ISD2560, nie stanowi to jednak istotnego ograniczenia, gdyż czas niezbędnych komunikatów wynosi zaledwie około 40 sekund.
Po nagraniu wszystkich komunikatów wyłączamy zasilanie i możemy przejść do sprawdzenia poprawności nagranych komunikatów. W tym celu należy zewrzeć zworki JPl i JP4 (zgodnie z tab. 3) i włączyć zasilanie. Następnie rozwieramy zworkę JP4 (dodatkowy przycisk). Po tych czynnościach każdorazowe naciśnięcie przycisku (JP4) będzie powodowało odtworzenie kolejnego komunikatu zawartego w pamięci układu ISD2560. Po odtworzeniu ostatniego komunikatu procesor przestanie reagować na naciskanie przycisku i będzie oczekiwał na wyłączenie zasilania.
Jeśli odtworzone komunikaty są zgodne z zawartymi w tab. 2, to procedura zapisu komunikatów została zakończona. W przeciwnym przypadku proces nagrywania należy powtórzyć.
Teraz woltomierz jest gotowy do pracy. Pomimo tego, że układ ICL7135 wykonuje około trzech
Tab. 3. Tryby pracy woltomierza w zależności od ustawienia zworek JP1...JP4
Lp JP1 JP2 JP3 JP4 Realizowane funkcje
Tryb programowania parametrów
1 0 1 0 1 Nagrywanie komunikatów
2 0 1 1 0 Odtwarzanie komunikatów
3 0 0 1 1 Ustawianie czasu przerwy pomiędzy kolejnymi pomiarami
Tryb wypowiadania komunikatów
4 1 X 0 0 Zakres 2V
5 1 X 1 0 Zakres 20V
6 1 X 0 1 Zakres 200V
7 1 X 1 1 Zakres 2000V
8 1 1 X X Mierzone napięcie jest wypowiadane przez cały czas włączenia woltomierza
9 1 0 X X Jeśli pięć pomiarów napięcia daje taką samą wartość, to wypowiadanie wartości napięcia zostaje wstrzymane do momentu, aż napięcie zmieni wartość
48
Elektronika Praktyczna 2/2003
"Mówiqcy" woltomierz
pomiarów na sekundę, to ze względu na czas potrzebny na wypowiedzenie ("wyświetlanie") wyniku pomiaru, powtarzane jest ono co kilka sekund. Oprogramowanie sterujące odtwarzaniem komunikatów umożliwia indywidualne ustalenie czasu przerwy pomiędzy kolejnymi komunikatami. Czas ten można zmieniać zależnie od potrzeb w zakresie 0...60 s. Po wypowiedzeniu wartości napięcia może więc nastąpić wypowiedzenie kolejnego wyniku lub przerwa
0 określonym czasie trwania.
W zaprogramowanym procesorze czas ten jest ustalony na
1 sekundę. Aby go zmienić, należy, przy wyłączonym napięciu, zewrzeć zworki JPl i JP2, a następnie włączyć zasilanie. Po tej czynności procesor oczekuje na zwarcie zworki JP4 (dodatkowy przycisk). Naciśnięcie przycisku rozpoczyna odliczanie czasu, czas jest odliczany do momentu zwolnienia przycisku. Jeśli przycisk był naciśnięty dłużej niż 60 sekund, to zostanie zapisana maksymalna wartość, czyli 60 sekund.
Czas, przez który przycisk był naciśnięty, zostaje zapisany w wewnętrznej pamięci EEPROM (dzięki temu zapisana wartość będzie pamiętana również po zaniku napięcia zasilania) i od tej pory kolejne pomiary napięcia będą dokonywane w zaprogramowanych odstępach czasowych. Po ustaleniu wymaganego czasu powtarzania komunikatu można wyłączyć zasilanie i woltomierz jest gotowy do użytkowania.
Obsługa
Woltomierz umożliwia wypowiadanie mierzonego napięcia w czterech zakresach. Zakres jest wybierany poprzez odpowiednie ustawienie zworek JP3 i JP4 (patrz tab. 3). Ustawienie danego zakresu powoduje, że mierzone napięcie, pomimo iż przez cały czas zawiera się w zakresie 2 V, to jest wypowiadane w inny sposób. Zakres ten może być zmieniany w dowolnym czasie, ale jeśli zostanie zmieniony, to zostanie wypowiedziany aktualny zakres pomiarowy. Jeśli stan zworek zmienimy w czasie wypowiadania komunikatu, to zostanie on dokończony i dopiero wtedy otrzymamy informację o nowym zakresie pomiarowym.
Przykładowe komunikaty wypowiadane przez woltomierz dla różnych zakresów pomiarowych przedstawiono w tab. 4. Jak widać, woltomierz potrafi "odczytać" napięcie w zakresie od -1999,9 V do 1999,9 V. Oprogramowanie zawarte w mikrokontro-lerze nie obsługuje odmiany jednostek przez przypadki (dla uproszczenia oprogramowania). Rozróżnia tylko liczbę pojedynczą i mnogą. Dodatkowo w wypowiadanym komunikacie pomijane są nieznaczące zera, co wpływa na skrócenie czasu wypowiadania wartości mierzonego napięcia.
Dodatkową funkcją, dostępną w czasie "odczytywania" mierzo-
nego napięcia, jest możliwość automatycznego wyłączenia woltomierza, jeśli mierzone napięcie nie będzie ulegało zmianie. Jeśli zworka JP2 będzie zwarta, a pięć kolejnych pomiarów będzie miało taką samą wartość, to wypowiadanie wartości napięcia zostanie wstrzymane. Przez cały czas napięcie będzie jednak nadal mierzone i porównywane z poprzednią wartością. Jeśli ulegnie zmianie, to wypowiadanie komunikatów zostanie przywrócone. Funkcja ta jest szczególnie przydatna, gdy do wejścia woltomierza nie będzie dołączone napięcie, gdyż przy braku napięcia zbędne jest jego wypowiadanie. Jeżeli jednak
Tab.4. Przykłady wypowiadanych komunikatów przez woltomierz dla wszystkich zakresów pomiarowych, dla charakterystycznych napięć wejściowych
Uwe Ua/c Wypowiadany komunikat
Zakres 2V (JP3=0, JP4=0) - rozdzielczość 1mV (dzielnik wejściowy 1:JJ
-2,700V -2,700V Zakres przekroczony
-1,350V -1,350V Minus jeden wolt i trzysta pięćdziesiąt miliwoltów
0V 0,000V Zero woltów
0,253V 0,253V Dwieście pięćdziesiąt trzy miliwolty
0,500V 0,500V Pięćset miliwoltów
1,005V 1,005V Jeden wolt i pięć miliwoltów
1,956V 1,956V Jeden wolt i dziewięćset pięćdziesiąt sześć miliwoltów
2,500V 2, 500V Zakres przekroczony
Zakres 20V (JP3=1, JP4=0) - rozdzielczość 1mV (dzielnik wejściowy 1:10)
-27,000V -2,700V Zakres przekroczony
-13,547V -1,3547V Minus trzynaście woltów i pięćset czterdzieści siedem miliwoltów
0V 0,0000V Zero woltów
0,253V 0,0253V Dwieście pięćdziesiąt trzy miliwolty
5,000V 0,0500V Pięć woltów
10,023V 1,0023V Dziesięć woltów i dwadzieścia trzy miliwolty
10,405V 1,0405V Dziesięć woltów i czterysta pięć miliwoltów
19,568V 1,9568V Dziewiętnaście woltów i pięćset sześćdziesiąt osiem miliwoltów
25,000V 2,500V Zakres przekroczony
Zakres 200V (JP3=0, JP4=1) - rozdzielczość 10mV (dzielnik wejściowy 1:100) ,
-270,00V -2,700V Zakres przekroczony
-13,50V -1,350V Trzynaście woltów i pięćset miliwoltów
0V 0,0000V Zero woltów
25,34V 0,2534V Dwadzieścia pięć woltów i trzysta czterdzieści miliwoltów
50,04V 0,5004V Pięćdziesiąt woltów i czterdzieści miliwoltów
100,00V 1,0000V Sto woltów
104,50V 1,0050V Sto cztery wolty i pięćset miliwoltów
195,62V 1,9562V Sto dziewięćdziesiąt pięć woltów i sześćset dwadzieścia miliwoltów
250,00V 2,5000V Zakres przekroczony
Zakres 2000V (JP3=1, JP4=1) - rozdzielczość 100mV (dzielnik wejściowy 1:1000)
-2700,0V -2,7000V Zakres przekroczony
-1350,0V -1,3500V Minus tysiąc trzysta pięćdziesiąt woltów
0V 0,0000V Zero woltów
0,2V 0,0002V Dwieście miliwoltów
5,4V 0,0054V Pięć woltów i czterysta miliwoltów
10,6V 0,0106V Dziesięć woltów i sześćset miliwoltów
100,5V 0,1005V Sto woltów i pięćset miliwoltów
1956,9V 1,9569V Tysiąc dziewięćset pięćdziesiąt sześć woltów i dziewięćset miliwoltów
2, 500V 2,5000V Zakres przekroczony
Elektronika Praktyczna 2/2003
49
"Mówiqcy" woltomierz
chcemy, aby wartość napięcia była wypowiadana przez cały czas, to zworka JP2 musi być rozwarta. Jeżeli woltomierz ma służyć do pomiaru napięcia tylko w jednym zakresie, to należy go wybrać za pomocą zworek JP3 i JP4, a na wejściu przetwornika zastosować odpowiedni dzielnik napięcia. Jeśli zakresy mają być zmieniane, to warto zastosować przełącznik, który będzie dostarczał do wejścia układu ICL7135 napięcie podzielone w odpowiednim stopniu i automatycznie zmieniał zakres pomiarowy woltomierza. Przykład takiego układu wejściowego jest przedstawiony na rys. 5. Mierzone napięcie podawane jest na dzielnik zbudowany z rezystorów R1...R4. Przełącznik SlA pozwala wybrać stopień podziału napięcia wejściowego przed podaniem na wejście przetwornika ICL7135. Dzielnik ten umożliwia podział napięcia w następującym stosunku: 1:1, 1:10, 1:100, 1:1000. Możliwy jest więc pomiar napięcia w zakresie 0...1999,9 V. Drugi sprzężony styk przełącznika S (SlB) zmienia zakres woltomierza. Styk ten ustawia zero na jednym z czterech wyjść, w zależności od wybranego zakresu. Ponieważ ustawianie zakresu pomiarowego w woltomierzu przeprowadza się za pomocą dwóch wyprowadzeń, konieczne stało się zastosowanie prostego transkodera
R1 9M
R2 900k
R3 90k
R4 10k
S1A
20V 3
O
200V 4
Do ICL7135
-O 2000V 5
S1B
2V
D1 BAT43
D2 BAT43
20V
200V
2000V
JP3 JP4
2V 0 0
20V 1 0
200V 0 1
2000V 1 1
Rys. 5. Przykładowy sposób wykonania dzielnika wejściowego wraz z automatyczną zmianą zakresu pomiarowego wypowiadanych komunikatów
kodu 1-z-czterech na kod binarny. Do tego celu zostały wykorzystane dwie diody Dl i D2. W ten sposób można zbudować w pełni funkcjonalny czterozakresowy woltomierz o dużej dokładności wykonywanych pomiarów.
Podczas użytkowania woltomierza należy pamiętać, aby napięcie podawane na wejście przetwornika
nie przekroczyło wartości ą5V, gdyż przekroczenie tej wartości może spowodować jego uszkodzenie. Krzysztof Pławsiuk, AVT
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lutyO3.htm oraz na płycie CD-EP2/2003B w katalogu PCB.
50
Elektronika Praktyczna 2/2003
PODZESPOŁY
jflualną tt tyf $tl%
SoC - jak to się robi w praktyce?
0 problemach, jakie stają przed projektantem układów SoC f System-on-a-Chip),
a zwłaszcza o trudnościach w znalezieniu gotowych komponentów, które oszczędzą trudu wykonywania całej pracy projektowej od początku, pozwalając oprzeć się na sprawdzonych i wypróbowanych rozwiązaniach, pisaliśmy w EPlO/ 2002. Lekarstwem na bolączki tego typu jest działalność firm zajmujących się dostarczaniem wirtualnych komponentów.
Jedną z takich firm jest Evatronix S.A. W artykule przedstawimy dwa wirtualne komponenty opracowane przez inżynierów z tej firmy. Wśród prezentowanych komponentów są: ośmiobitowy
O różnych wariantach układów SoC piszemy
w EP od dłuższego czasu. Szczególnie jasną
przyszłość można wróżyć implementacjom
"systemów" na krzemie w układach PLD
i ASIC, ponieważ coraz większe grono
producentów tworzy wirtualne komponenty, dzięki
którym realizacja nawet bardzo skomplikowanego
projektu jest stosunkowo łatwa.
mikrokontroler oraz współpracujący z nim zmiennoprzecin-kowy układ arytmetyczny.
R80515 - szybki mikrokontroler 8-bitowy
Dla aplikacji wymagających popularnego, elastycznego i przy tym wydajnego mikro-
kontrolera ośmiobitowego firma Evatronix S.A. opracowała moduł szybkiego mikrokontro-lera, oznaczony symbolem R80515. Jest on funkcjonalnie w pełni zgodny z intelowskim pierwowzorem 80C31, dzięki czemu mogą z niego korzystać szerokie rzesze konstruktorów zaznajomionych z tą popular-
Elektronika Praktyczna 2/2003
51
PODZESPOŁY
Wirtualny komponent - co to jest? Wszyscy bez wyjątku producenci wirtualnych
komponentów dostarczają je na rynek w postaci syntezowalnych opisów w językach HDL (Hardware Descrtptton Language). Po
ich skompilowaniu za pomocą łatwo
dostępnych programów narzędziowych EDA,
odpowiednio są konfigurowane docelowe (już
krzemowe) układy PLD.
ną architekturą. Litera R w nazwie komponentu oznacza, że jądro mikrokontrolera R80515 zawiera rozwiązania zapożyczone z architektury RISC. W R80515 zastosowano m.in. przetwarzanie potokowe, zredukowano liczbę cykli potrzebnych do wykonywania rozkazów, zaimplementowano także sprzętową realizację funkcji arytmetycznych oraz sterownik pamięci mogący współpracować z pamięciami synchronicznymi i asynchro-nicznymi.
Schemat blokowy mikrokontrolera R80515 pokazano na rys. 1. Rdzeń mikrokontrolera, oznaczony na rys. 1 żółtym prostokątem, składa się z jednostki sterowania [Control_unit] zawierającej dekoder rozkazów, jednostki wykonawczej (ALU) realizującej ośmiobitowe operacje arytmetyczne, logiczne i rotacje, oraz jednostki sterowania pamięcią [Ram_control), mogącej obsłużyć przestrzeń wewnętrznej pamięci danych sięgającą 256 bajtów oraz zewnętrzne pamięci danych i programu sięgające 64 kB każda. Dodatkowo w rdzeniu procesora zaimplementowana jest jednostka sterowania re-jestrami [Ram_sfr_controi).
Poza rdzeniem znajduje się szesnastobitowy układ arytmetyczny (MDU) operujący na liczbach całkowitych, który realizuje między innymi operacje mnożenia i dzielenia, a także operacje logiczne. Również poza rdzeniem znajduje się układ przerwań [Isr] obsługujący trzynaście źródeł przerwań zorganizowanych w cztery priorytety uprzywilejowania, oraz układ watch-dog [Watchdog_timer] czuwający nad prawidłowym wykonywaniem programu. Mikro-kontroler posiada wbudowane porty wejść i wyjść równoległych i szeregowych. Blok portów równoległych [Ports] obsługuje cztery równoległe dwukierunkowe porty wejścia
wyjścia, stosowane również do dostępu do zewnętrznej pamięci, w trybie multiplek-sowania magistrali adresowej. Porty szeregowe realizowane są przez dwa układy obsługi portów szeregowych [Serial_O i Serial_l), mogące pracować dwukierunkowo [fuli duplex). Port pierwszy i drugi mogą pracować w trybie UART z ramką ośmiobitową oraz dziewięciobitową. Dodatkowo port pierwszy może pracować w trybie synchronicznym. Uzupełnieniem dostępnych peryferio w zaimplementowa-nych w komponencie są trzy szesnastobitowe układy czaso-wo-licznikowe [Timer_O_l, Timer_2), pracujące (oprócz trybów znanych z klasycznego 8051) dodatkowo w trybie generowania sygnału PWM [Compare], oraz w trybie pomiaru szerokości impulsu [Capture).
Komponent R80515 może pracować w trybie obniżonego poboru mocy lub w trybie całkowitego wyłączenia poboru mocy. Tryby te (IDLE i STOP) są sterowane przez jednostkę PMU.
Dzięki elastyczności cechującej technologię wirtualnych komponentów, klient nabywający R80515 może zmodyfikować jego podstawowe właściwości. Przykładowo, magistrale adresowe zamiast magistral danych mogą być współdzielone z wyjściami portów lub też mogą być wyprowadzone osobno. Również porty szeregowe zamiast korzystać z wyprowadzeń portu trzeciego mogą być wyprowadzone osobno. Istnieje możliwość łatwej modyfikacji cyklu dostępu do pamięci programu i danych w celu dostosowania
procesora do różnych układów pamięci i wejścia wyjścia.
Badania oraz testy aplikacyjne przeprowadzona przez Dział Klienta Wewnętrznego firmy Evatronix S.A., bazujące na porównaniu wyników otrzymanych z testów Dhrys-tone 1.1 dla oryginalnego 80C31 iR80515 wykazały 6,8-krotną przewagę wydajnościową komponentu nad oryginałem. Wyniki otrzymano dla tej samej częstotliwości taktowania, na tym samym systemie uruchomieniowym Evix Board 3, kompilując kod testu kompilatorem firmy Tas-king. Otrzymane wyniki w teście Dhrystone 1.1 dla procesora Intel 80C51 taktowanego zegarem 12 MHz to 19 8 Dhrystone/s, natomiast taktowany tym samym zegarem procesor R80515 osiąga 1353 (tysiąc trzysta pięćdzie-
Sposoby "kodowania" wirtualnych komponentów
Najczęściej wirtualne komponenty są
opisywane za pomocą języków: VHDL,
Verilog, spotykane są także opisy w postaci
list połączeń EDIF.
siat trzy) Dhrystone/s. Dla porównania, system IBM PC/ AT 802 86 taktowany zegarem 6 MHz uzyskuje w tym samym teście skompilowanym kompilatorem C firmy Microsoft wynik 1388 Dhrystone/s.
Możliwości R80515 choć imponujące pod względem przetwarzania stałoprzecinko-wego mogą nie zadowalać użytkownika planującego zastosować ten procesor do intensywnego przetwarzania zmiennoprzecinkowego. W sukurs przychodzi moduł stało-przecinkowej arytmetyki szes-nastobitowej (MDU), zgodny ze standardem Siemens 80C515. Większość nowoczesnych kompilatorów języka C potrafi wykorzystać obecność tego modułu, w celu przyśpieszenia realizacji obliczeń numerycznych. Przyśpieszenie działań zmiennoprzecin-kowych zbadano przy pomocy testu Whetstone A001. Wyniki jakie otrzymano dla 8051 przy 6 MHz wyniosły 11,3 Whetstone/s, natomiast przy tym samym zegarze dla R80515 otrzymano 88 Whetstone/s.
Różnice pomiędzy wartoś-
Elektronika Praktyczna 2/2003
PODZESPOŁY
Korzyści wynikające ze stosowania wirtualnych peryferiów
Projektant układu SoC korzystający
z wirtualnych peryferiów buduje swój projekt
niemal klasycznie: bierze "z półki" gotowe
komponenty (wirtualne), łączy je za pomocą
specjalnego edytora w funkcjonalną całość,
następnie kompiluje w wyniku czego
otrzymuje w krótkim czasie pełnowartościowy
układ o specyficznych funkcjach.
cią współczynnika przyśpieszenia wykonywania testu stałoprzecinkowego (6,8 raza) i testu zmiennoprzecinkowego (7,8 raza) należy tłumaczyć odmiennym charakterem kodu programu testowego. Kod testu Whetstone zawiera bowiem w stosunku do kodu testu Dhrystone wie.ce] rozkazów realizowanych w jednym cyklu rozkazowym. Rozkazy takie dzięki poprawionej architekturze R80515 realizowane są w jednym takcie zegarowym. Im więcej takich krótkich jednobajtowych rozkazów zawiera program tym "większe jest przyśpieszenie uzyskiwane przez R8 0515 względem klasycznego mikro-kontrolera.
Ostatnim, ale nie mniej ważnym, czynnikiem wpływającym na końcową wydajność układu jest technologia, w której zostanie on fizycznie zaimplementowany. Współczesne układy FPGA i ASIC pozwalają taktować wirtualny komponent zegarami rzędu setek MHz, co w sposób oczywisty wpływa na uzyskiwane rezultaty.
Sprzętowa akceleracja
obliczeń
zmiennoprzecinkowych
Istnieje wiele zastosowań wymagających połączenia łatwości stosowania operacji na pojedynczych bitach z wysoką wydajnością zmiennoprzecin-kową. Z tego właśnie powodu komponent R80515 wyposażono w specjalny 32-bitowy zrniennoprzecinkowy moduł (dostępny także w postaci osobnego komponentu) AddMull 32, realizujący sprzęto-
wo mnożenie, dodawanie i odejmowanie. Realizuje on szybkie obliczenia zmienno-przecinkowe, operując na liczbach formatu zmiennoprzecinkowego pojedynczej precyzji (32 bity). Obliczenia wykonywane są poprzez zapis argumentów wybranego działania arytmetycznego do odpowiednich rejestrów komponentu oraz kodu określającego rodzaj działania do rejestru sterującego.
W przypadku współpracy z rdzeniem komponentu R80515 rejestry układu AddMull są zamapowane w obszarze rejestrów specjalnych (SFR). Komponent jest taktowany zegarem procesora, a wykonanie każdego z działań zajmuje pięć cykli zegarowych, wobec czego po zapisie słowa sterującego procesor może realizować inne zadania. Po pięciu taktach od rozpoczęcia obliczeń procesor może pobrać wynik działania z rejestru wyjściowego Ad-dMull
AddMull 32 wykonuje następujące operacje zmienno-przecinkowe: dodawanie, odejmowanie, mnożenie, mnożenie i dodawanie w jednej operacji oraz mnożenie i odejmowanie w jednej operacji.
Zestaw działań oraz rejestrów komponentu AddMull 32 dobrano w taki sposób, aby umożliwić optymalne wykorzystanie go do obliczeń numerycznych. Znakomitą większość spotykanych w nauce i technice funkcji matematycznych można przybliżyć w wybranym przedziale przy pomocy wielomianu przekształconego dla optymalizacji schematem Hoernera. Tak przekształcony wielomian składa się z kilku wykonywanych cyklicznie operacji mnożenia dwóch argumentów i następnie dodawania lub odejmowania od otrzymanego wyniku trzeciego argumentu. Przykładowo poniżej przed-
Elektronika Praktyczna 2/2003
53
PODZESPOŁY
stawiono wielomian aproksy-mujący funkcję sinus w przedziale od 0 do 7i/2:
sin(x) = (((((x2 * all +
a9) * X2 + a7) * x2 + a5)* x2 + a3)* x2 + al)*x
all = -2,052108e-8 a9 = 2,557319e-6 a7 = -0,001987 a5 = 0,083333 a3 = -0,666667 al = 1,;
Definiując rejestry komponentu AddMull 32 tak, aby rejestr wynikowy mnożenia byl jednocześnie jednym ze argumentów dodawania redukuje się liczbę przesłań danych podczas wyliczania przedstawionego wielomianu.
Można pokusić się o po-TÓwnanie wydajności kontrolera R80515 współpracującego z komponentem AddMull 32, realizującego przedstawiony powyżej algorytm, a wydajnością kontrolera pozbawio-
nego wsparcia sprzętowego, na którym realizowany jest algorytm funkcji sinus zaim-plementowany w jednym z popularnych narzędzi programistycznych. Załóżmy przy tym, że dane do obliczeń znajdują w pamięci zewnętrznej systemu. Pobranie bajtu z pamięci zewnętrznej do rejestru roboczego procesora trwa dwa cykle rozkazowe, skopiowanie z rejestru roboczego do rejestru specjalnego SFR jednego bajtu potrwa jeden cykl zegarowy. W celu obliczenia podanego wielomianu należy wykonać dziesięć operacji transferu trzy-dziestodwubitowej danej pomiędzy pamięcią zewnętrzną a przestrzenią SFR, każdy taki transfer trwa dwanaście cykli rozkazowych. Należy przyjąć przy tym że obliczona wartość X2 przechowywana będzie w rejestrach roboczych kontrolera i stamtąd pobierana do obliczeń. Opera-
Wirtualnie nie musi oznaczać drogo
Wirtualne komponenty dostarczane są na
rynek w postaci syntetyzowalnego kodu
źródłowego w języku opisu sprzętu HDL lub
w postaci zsyntetyzowanych netlist. Tylko
przypadku zakupu kodu HDL jest możliwe
dokonywanie zmian w wirtualnym
komponencie, natomiast - co ważne - zakup
netlisty jest znacznie mniej kosztowny (nawet
o 50%) niż kupno wersji źródłowej.
Z netlisty można zrobić użytek dzięki
bezpłatnym narzędziom programowym, wersję
źródłową syntetyzować można tylko przy
użyciu drogiego oprogramowania do syntezy.
Zazwyczaj z wersji źródłowej korzystają
producenci układów ASIC, netlista jest
wystarczającym rozwiązaniem dla
projektantów urządzeń i rozwiązań
el ekt ro ni czny ch.
Przykładowe implementacje R80515
Dzięki zastosowaniu dość uniwersalnego
sposobu opisu R80515 (język VHDL)
mi kro kontroler można łatwo zaimplementować
w układach PLD różnych producentów. I tak
przykładowo, w przypadku układu XCV200E
niezbędne było 2108 komórek SUce,
a maksymalna częstotliwość taktowania
wyniosła 40 MHz. W przypadku zastosowania
jako układ docelowy EPA2OK2OOC projekt
zajął 3928 makrokomórek i 5 bloków ESB,
a maksymalna częstotliwość taktowania
wynosi 30,7 MHz.
cji transferu wartości X2 pomiędzy rejestrami roboczymi a SFR będzie pięć, każda z nich potrwa cztery cykle. Operacji mnożenia wykonanych zostanie siedem, natomiast operacji dodawania pięć. Każda taka operacja trwa sześć cykli rozkazowych (w tym jeden na zapis słowa sterującego do rejestru AddMull i pięć rozkazów NOP poświęconych na taktowanie AddMull podczas wyliczania). Ostatecznie otrzymujemy 212 cykli rozkazowych potrzebnych na wyliczenie wartości funkcji sinus przez komponent AddMull 32. Dla porównania, przytaczając za dokumentacją kompilatora firmy Keil, procesor 80515 obliczając funkcję sinus zapisaną w języku C potrzebuje od 1422 do 3048 (średnio 2519) cykli rozkazowych.
Widoczne jest na tym przykładzie, że używając tylko i wyłącznie układu sprzętowego mnożenia i dodawania liczb zmiennoprzecinkowych można znacznie przyśpieszyć nawet złożone obliczenia numeryczne, bez potrzeby wyposażania systemu w komplety koprocesor numeryczny
lub zmiennoprzecinkowy procesor DSP.
Podsumowanie
Wirtualne komponenty należą do standardowego zestawu narzędzi współczesnego projektanta systemów cyfrowych. Producenci oferują w tej postaci bardzo wiele bloków funkcjonalnych, począwszy od mikroprocesorów i mikrokont-rolerów, poprzez wirtualne odpowiedniki klasycznych pe-ryferiów stosowanych w systemach mikroprocesorowych, aż po zaawansowane moduły komunikacyjne. Jak na razie, korzystanie z nich przez niewielkie firmy jest utrudnione, ponieważ w przypadku realizacji projektów niskonakładowych cena komponentów dość istotnie wpływa na końcową cenę wyrobu. Taka jest jednak przyszłość elektroniki - za kilka lat układy nie dające się programować prawdopodobnie całkowicie zaginą... Tomasz Jakóbiec, współpraca: Mirosław Bandzerewicz
Dodatkowe informacje można znaleźć na stronie www.evatronix.pl.
54
Elektronika Praktyczna 2/2003
REKLAMA
Narzędzia w rękach elektroników
część 1
Z punktu widzenia profesjonalisty, ta sama czynność jest postrzegana zupełnie inaczej: nie jako wyzwanie pozwalające się dowartościować i nie jako sposób uzyskania oszczędności, ale jako realne źródło utrzymania. Taka perspektywa wymusza zaostrzenie kryteriów oceny - naprawa musi być nie tylko skuteczna, ale szybka. Efektywność jest przecież, obok jakości, jednym z najważniejszych parametrów profesjonalnego działania. Rzetelna wiedza, umiejętności, doświadczenia pracownika i odpowiednie narzędzia będące w jego dyspozycji, to niezbędny "zestaw" środków profesjonalnej roboty.
Zastosowanie w danej sytuacji właściwego narzędzia o odpowiedniej jakości może usprawnić pracę w sposób wręcz spektakularny. Używanie narzędzi nieoptymalnych, a tym bardziej nieodpowiednich dla danej czynności, istotnie wydłuża drogę do celu i znacznie zwiększa ryzyko zaistnienia uszkodzeń elementów lub podzespołów oraz zranień pracownika.
Jeśli chodzi o klasyczne narzędzia ręczne stosowane w elektronice najczęściej, to można je podzielić na stosunkowo niewiele grup. Są one jednak bardzo licznie reprezentowane przez konstrukcje o różnorodnych kształtach, proporcjach, wymiarach określających ich konkretne cechy użytkowe i wyznaczających niejednokrotnie bardzo specjalistyczne przeznaczenie. Rączki lu-
Jeśli niefachowiec musi naprawić jakiś niezbyt skomplikowany sprzęt domowy czy urządzenie, zazwyczaj posługuje się przypadkowymi narzędziami, wspierając je wyobraźnią i odrobiną manualnych zdolności. Liczba podjętych prób i zużyty czas nie mają wówczas specjalnego znaczenia -ważne, że zamierzony efekt zostanie w końcu osiągnięty.
townicze do montażu i demontażu elementów i układów elektronicznych, szczypce, obcinaczki, pesety, wkrętaki, przyrządy do obróbki izolacji przewodów wyczerpują zwykle listę wyposażenia przeznaczonego do czynności manualnych na stanowisku elektronika. Są to narzędzia delikatne - zwłaszcza w porównaniu z takimi jak piły czy klucze hydrauliczne - nie wymagają od operatora używania znacznych sił, tylko precyzji. Wymóg ten powinien być spełniony w możliwie najszerszym zakresie pozycji pracy. Ponieważ dostęp do pola roboczego bywa niejednokrotnie utrudniony, np. ze względu na ciasną zabudowę przestrzeni wewnątrz naprawianego urządzenia, to narzędzie powinno być bardzo elastyczne pod względem możliwości zmiany chwytu, przy zachowaniu pełnej kontroli nad przeprowadzanymi czynnościami. Potocznie rzecz ujmując - narzędzie powinno być poręczne. Żeby spełnić ten postulat, należy odpowiednio dobrać wymiary, kształty i proporcje narzędzia, a także jego masę i wyważenie. Dużo uwagi trzeba też poświęcić rękojeści. Ważne jest jej dostosowanie do budowy i kinematyki dłoni, zagwarantowanie pewnego i komfortowego chwytu nawet w niekorzystnych warunkach (np. przy obecności brudu, tłuszczów itp.), zapobieżenie szkodliwemu oddziaływaniu wibracji, wyeliminowanie wpływu niskich bądź wysokich temperatur, minimalizacja ryzyka zranień oraz oddalenie negatywnych skutków związanych z długotrwałym używaniem narzędzia. Ponadto należy wykorzystać naturalne cechy związane z budową narzędzia
do lepszej organizacji stanowiska pracy i utrzymania na nim porządku, np. otwór w rękojeści wkrętaka umożliwi odwieszanie go w wyznaczonym miejscu. W fazie projektowania należy przewidzieć też ewentualne kłopoty: przykładowy wkrętak odłożony na pochyły blat będzie się toczył ku krawędzi. Spadnie lub nie, ale z pewnością odwróci uwagę pracownika od przeprowadzanej w tym czasie czynności, co może prowadzić do znacznych szkód. W powyższym przypadku rada jest oczywiście prosta, pokazuje on jednak, że producent musi mieć wiedzę na temat wszelkich uwarunkowań związanych z użytkowaniem narzędzi, które wytwarza. Dlatego wiodące firmy prowadzą systematyczne i szeroko zakrojone badania, obejmujące także długotrwałe testy w rzeczywistych warunkach produkcyjnych lub serwisowych.
Uniwersalne rączki lutownicze, oferowane zazwyczaj z dużą liczbą różnych końcówek umożliwiających montaż i demontaż, zarówno ele-
Fot. 2
Elektronika Praktyczna 2/2003
57
REKLAMA
Fot. 3
mentów przewlekanych, jak i SMD, oraz rączki specjalizowane (także wyposażane w wiele końcówek, dedykowanych np. konkretnym typom obudów układów scalonych), pozwalające istotnie zwiększyć tempo pracy bez szkody dla bezpieczeństwa komponentów i komfortu pracownika - to asortyment niezbędny do dokonania wyboru optymalnego dla danego zastosowania.
Przykładem takiej różnorodnej oferty są produkty firmy PACE, opisywane niedawno na łamach Elektroniki Praktycznej. Znane są walory ergonomiczne rączek tego producenta, a wynikają one z przyjęcia surowych kryteriów, z których część jest stosowana wobec narzędzi chirurgicznych. Jak rączka PACE "leży w dłoni", ilustruje fot. 1.
Podczas demontażu elementów lub układów elektronicznych często zachodzi potrzeba usuwania roztopionego spoiwa za pomocą odsy-sacza. Rączka, która oprócz roztopienia, umożliwia odessanie cyny, w oczywisty sposób usprawnia pracę. Już średnio zaawansowane stacjonarne urządzenia lutownicze są wyposażane w kompresor, którego zadaniem jest wytworzenie podciśnienia o wymaganej wartości. Rączka jest połączona ze stacją dwoma przewodami: zasilającym i pneumatycznym. Jedynym urządzeniem skupiającym w jednej obudowie rączkę, obwody sterujące i kompresor jest rozlutownica Dic Den-On SC7000. Ta wyjątkowa zwartość i mobilność, czynią ją szczególnie przydatną podczas prac serwisowych (fot. 2). Operowanie lutownicą może być w pewnych warunkach znacznie utrudnione ze względu na obecność przewodu zasilającego, ograniczającego "manewro-wość" i związane z nią możliwości sprawnego działania w miejscach szczególnie niedostępnych, zwłaszcza gdy operator musi przyjąć niewygodną i niestabilną postawę, np. kiedy konieczna jest szybka inter-
Fot. 4
wencja serwisowa w warunkach terenowych. Wtedy nieocenionym narzędziem jest lutownica gazowa, gwarantująca utrzymanie najważniejszych parametrów na poziomie koniecznym dla w pełni profesjonalnego działania, oferująca też sporą elastyczność zastosowań dzięki wymiennym końcówkom, którymi są: groty, dysze do wydmuchu gorącego powietrza, "gorący nóż", końcówka do obkurczania koszulek termokurczliwych. Taki zestaw (Portasol Super-Pro) przedstawiono na fot. 3. Gdy brakuje zasilania energią elektryczną, lutownica gazowa staje się wręcz niezastąpiona (fot. 4).
O ile domeną działania rączek lutowniczych do montażu i demontażu jest proces termiczny, to pozostałe narzędzia ręczne używane przez elektroników wypełniają zadania natury mechanicznej: cięcie, gięcie, kształtowanie wyprowadzeń, przytrzymywanie, pozycjonowanie, zdejmowanie izolacji, przykręcanie i odkręcanie wkrętów i śrub, czyszczenie itd.
Najczęściej używanym i najliczniej reprezentowanym w ofertach handlowych narzędziom, takim jak: obcinaczki, szczypce, wkrętaki i pesety, będzie poświęcona następna część artykułu. Marek Kalasiński
Dodatkowe informacje
Artykuł powstat na bazie maTeriatów udostępnionych przez firmę Renę*, Tel./lax: (54) 231-10-05, 411-25-55, www.renexcorn.pl.
58
Elektronika Praktyczna 2/2003
Aułoroułer
PROGRAMY
Projektowanie płytek drukowanych do produkowanych obecnie układów elektronicznych jest zadaniem niezwykle złożonym. Aby sprostać wysokim wymaganiom dotyczącym jakości i niezawodności danego urządzenia oraz prostoty jego montażu podczas produkcji, powszechnie stosuje się specjalistyczne oprogramowanie wspomagające projektowanie obwodów drukowanych. Możliwość zastosowania techniki komputerowej w fazie tworzenia projektu nowego urządzenia pozwala nie tylko na znaczne skrócenie czasu potrzebnego na jego opracowanie, ale także na wyeliminowanie ewentualnych błędów konstrukcyjnych już w fazie tworzenia projektu. Jednym z podstawowych czynników wpływających na jakość i parametry nowoczesnych urządzeń elektronicznych jest prawidłowo zaprojektowana płytka drukowana. Dotyczy to szczególnie układów z sygnałami o wysokich częstotliwościach, w których mozaika ścieżek płytki bezpośrednio wpływa na parametry całego układu. Podczas projektowania tego rodzaju płytek drukowanych niejednokrotnie ważne jest określenie rezystancji i pojemności ścieżek, rezystancji izolacji między ścieżkami, równoległości ścieżek na tej samej warstwie i między warstwami, minimalna i maksymalna długość ścieżek, minimalne i maksymalne czasy propagacji, pojemności pasożytnicze, impedancje
Specctra jest obecnie dostarczana przez koncern Cadence, ale nie jest on twórcą tego oprogramowania. Powstało ono bowiem w firmie CCTech, założonej w 1989 roku przez dwóch inżynierów: Davida Chyana
oraz Johna Coopera.
W 1997 roku firma CCTech
została wchłonięta przez
koncern Cadence Design
Systems.
ścieżek czy ekranowanie ścieżek sygnałowych.
Na rynku dostępnych jest kilka liczących się programów wspomagających projektowanie obwodów drukowanych PCB. Większość z nich zawiera zwykle moduł edytora PCB, który wraz z dołączonymi bibliotekami umożliwia "wstępną obróbkę" projektowanej płytki oraz moduł routera pozwalającego na ręczne i automatyczne wytyczenie połączeń (ścieżek) pomiędzy poszczególnymi elementami elektronicznymi układu. Jak to zwykle bywa, możliwości poszczególnych programów oraz funkcje w jakie są one wyposażone są dość zróżnicowane. Głównym modułem, którego parametry decydują zwykle o "sile" programu jest moduł autoroutera.
W tym i kilku kolejnych artykułach zaprezentujemy możliwości autoroutera Specctra firmy Cadence Design Systems. Można powiedzieć, że program ten należy do klasycznych w swoim rodzaju i właściwie od czasu ukazania się, aż do dzisiaj jest najlepszym autorouterem dostępnym na rynku.
Elektronik projektujący
układy elektroniczne ma
dziś do wyboru wiele
narzędzi wspomagających
jego pracę. Na każdym
etapie realizacji projektu -
może z wyjątkiem
przygotowania koncepcji,
która rodzi się w głowie
inżyniera - a więc
rysowania schematu,
symulacji bloków
funkcjon alnych
i projektowania
odpowiedniego obwodu
drukowanego, jest
wykorzystywany komputer.
Najbardziej żmudnym
etapem pracy, w którym
zastosowanie techniki
komputerowej jest
nieodzowne, jest
projektowanie płytki
drukowanej.
Cannifir
rmr
Rys. 1. Specctra - główne okno programu
Elektronika Praktyczna 2/2003
59
PROGRAMY
Rys. 2. System Grid-Mapped (z lewej) oraz ShapeBased (z prawej). Jak widać, aplikacja Grid-Mapped musi analizować 72 punkty, aby zobrazować 12 obiektów
Wprowadzenie
Autorouter Specctra (rys. l) jest aktualnie najlepszym autorouterem wykorzystywanym w profesjonalnych systemach do projektowania płytek drukowanych. Decydują o tym ogromne możliwości tego programu. Specctra, z założenia przeznaczona do tworzenia gęsto upakowanych płytek drukowanych, wymagających zachowania reguł projektowych odpowiednich dla układów wyso-koczęstotliwościowych, oparta jest na technologii shape-based pozwalającej na uzyskanie maksymalnej skuteczności i użyteczności w sensie maksymalnego wykorzystania trasowanego obszaru.
Idea technologii shape-based opiera się na zasadzie traktowania wszystkich elementów, które mają wystąpić na tworzonym druku, takich jak pady SMD, pady przelotowe, ścieżki, obszary miedzi itd., jako bazowych kształtów geometrycznych (rys. 2), co pozwala na osiągnięcie bardzo wysokiego stopnia kompletacji ścieżek w bardzo gęsto upakowanych drukach. W przeciwieństwie do routerów rastrowych, Specctra angażuje więc w trakcie pracy o wiele mniej pamięci, co zdecydowanie poprawia prędkość działania programu. Ponieważ Specctra łączy reguły projektowe z kształtami geometrycznymi (każdy obiekt-kształt może być związany z zestawem reguł narzucających routerowi przymusy związane np. z odstępami, orientacją obiektów czy szerokością ścieżek i parametrami, takimi jak: zależności czasowe, szumy, przesłuchy itp.), nie trzeba ręcznie stosować tych reguł, tak jak w starych routerach rastrowych. Dodatkowym atutem Specctry jest
możliwość trasowania ścieżek niezależnie od rastra (siatki), co również poprawia parametry programu dotyczące zużycia pamięci, szybkości i stopnia kompletacji ścieżek.
Większość klasycznych autoroute-rów grid-based próbuje wykonać wszystkie połączenia, nie pozwalając podczas kolejnych przejść na powstawanie krzyżowań ścieżek oraz konfliktów związanych z zachowaniem zadanych odstępów (np. ścieżka - ścieżka czy ścieżka -element).
Specctra podczas pracy używa metody kolejnych przybliżeń (ądap-tive routing}. W pierwszym przejściu program próbuje wytyczyć wszystkie ścieżki niezależnie od ich krzyżowań i konfliktów dystansowych. W każdym kolejnym przejściu następuje redukcja występujących konfliktów. W drodze do uzyskania 100% kompletacji, autorouter wykorzystuje algorytmy push-and-shove oraz rip-up-and-ret-ry. Oznacza to, że w przypadku na-
Podstawą nowatorskiej technologii shape-based jest traktowanie wszystkich elementów, które
mają wystąpić na tworzonym druku, jako bazowych kształtów geometrycznych, co pozwala
na osiągnięcie bardzo wysokiego stopnia
kompletacji ścieżek w bardzo gęsto upakowanych
drukach.
potkania problemu, kolidująca ścieżka jest najpierw odsuwana w bok, tak aby możliwe było wytyczenie aktualnie prowadzonej, a jeżeli to nie daje pozytywnych rezultatów, kolidująca ścieżka jest zrywana i wytyczana w innym miejscu. W każdym przejściu gromadzone są dodatkowo informacje odnośnie obszarów, na których występują jeszcze konflikty, oraz o poszczególnych konfliktach. Informacje te są dziedziczone i przekazywane do kolejnej fazy (przejścia) w celu uzyskania 100% sukcesu.
W wariancie podstawowym Specctra jest kompletnym systemem do automatycznego i interaktywnego wytyczania połączeń na płytkach drukowanych i w zależności od wersji umożliwia projektowanie płytek 6- lub 25 6-warstwowych z nielimitowaną liczbą wyprowadzeń. Wariant podstawowy zawiera trzy podmoduły: autorouter, inter-active route ediior oraz interactive placement ediior. Autorouter zachowuje i stosuje w trakcie działania wszystkie podstawowe reguły, któ-
re mogą być oczywiście narzucane przez użytkownika, takie jak szerokość ścieżek, odstępy pomiędzy ścieżkami oraz inne odstępy jakie mają być zachowane na etapie rou-towania, klasy ścieżek itd. Poszczególne reguły mogą być stosowane w odniesieniu do całej płytki lub określonych jej obszarów. Wariant podstawowy Specctry pozwala również na automatyczne wstępne odprowadzanie ścieżek od gęsto upakowanych elementów typu SMD (fanout), przy czym projektant ma możliwość określania długości i kierunku odprowadzeń, oraz na automatyczne wytyczanie ścieżek poprzez obszary, które poprzednio były routowane ręcznie.
Interactive route ediior podobnie jak autorouter działa w technologii shape-based i umożliwia manualne wytyczanie ścieżek i przejść między warstwami. Ręczne trasowanie połączeń wsparte jest dodatkowymi funkcjami, które mają za zadanie przyspieszyć i ułatwić proces projektowania w trybie in-teractive. Na przykład funkcja plowing powoduje automatyczne odsuwanie "przeszkadzających" ścieżek na bok, umożliwiając ułożenie aktualnie prowadzonej. Odsuwana ścieżka lub cały segment może być również pchana przed kursorem w przypadku prostopadłego najazdu kursorem. Funkcja shoving powoduje natomiast przesuwanie pojedynczych ścieżek lub całych segmentów łącznie z przelotkami i przerzucanie ich przez przeszkody, np. inne ścieżki, przelotki czy wyprowadzenia.
Interactive placement ediior pozwala na ręczne rozmieszczanie elementów na płytce, umożliwiając w ten sposób planowanie i modyfikację druku pod kątem umiejscowienia elementów. Oprogramowanie posiada odpowiednie funkcje wspierające ten etap projektowania. Jedną z nich jest funkcja guided place. Jej działanie polega na wskazywaniu użytkownikowi najlepszej
Rys. 3. Zastosowanie przelotek pod padami SMD (z prawej)
60
Elektronika Praktyczna 2/2003
PROGRAMY
Rys. 4. Przelotka w technologii tradycyjnej fhrough hole oraz Microvia (po prawej)
lokalizacji dla każdego z elementów, począwszy od tego, który ma największą gęstość połączeń. Analiza, na podstawie której funkcja rozmieszcza komponenty, przeprowadzana jest zgodnie z regułami i parametrami narzuconymi dla danego projektu. Użytkownik może zaakceptować położenie elementu(-ów) lub odrzucić rezultat działania gui-ded place i umieścić dany element w dowolnym miejscu na płytce wyłącznie ręcznie. Interactive pla-cement ediior umożliwia również wykonywanie wszystkich podstawowych operacji typu przerzucanie, obracanie, szeregowanie czy popychanie komponentów. Elementy możemy przenosić w dowolne miejsce płytki indywidualnie lub grupami. Możliwe jest także umieszczanie elementów na płytce na podstawie współrzędnych X, Y i kotwiczenie ich w razie konieczności. Specctra pozwala również na definiowanie i narzucanie parametrów termicznych, mechanicznych, itp. dla określonych przez użytkownika obszarów płytki. Funkcja density pozwala na zweryfikowanie poprawności rozmieszczenia elementów na płytce pod kątem gęstości połączeń w danym obszarze, z jaką będzie musiał poradzić sobie au-torouter.
"Wzmocnienia44
Dodatkowe moduły, którymi może być "wzmocniony" podstawowy autorouter (AR6U lub AR256U), pozwalają na znaczne zwiększenie jego możliwości pod względem efektywności działania programu, zwłaszcza dla projektów o dużym stopniu złożoności, które wymagają
Obecnie Specctra dostępna
jest w dwóch wersjach
handlowych: 6U (sześć
warstw i nielimitowana liczba
wyprowadzeń) i 256U (256
warstw i niel imitowana liczba
wy pr o w adz eń).
spełnienia zaawansowanych reguł projektowych.
Moduł AD - Advanced Rules -zawiera bogaty zestaw reguł pozwalających na kompleksową kontrolę parametrów elektrycznych projektu. Można w nim zadawać szczegółowe zasady dla poszczególnych składowych, takich jak warstwy, przelot-ki (rys. 3), ścieżki, grupy ścieżek, komponenty itp. Dostępne są tu zaawansowane funkcje pozwalające np. na kontrolę impedancji na poszczególnych warstwach płytki, kontrolę szerokości ścieżek i przesłuchów pomiędzy nimi. Moduł Advanced Rules zawiera obecnie wszystkie właściwości, które udostępniane były poprzednio w module Hybrid. Chodzi między innymi o możliwość tworzenia przelotek zaślepionych i zagrzebanych oraz pod elementami SMD, możliwość definiowania odstępów izolacyjnych pomiędzy tego typu przelot karni (znajdującymi się na tej samej lub różnych warstwach).
Moduł HP - High Performance -zawiera zestaw zaawansowanych funkcji niezbędnych przy projektowaniu układów wysokoczęstotliwoś-ciowych. Opcje te dostępne są zarówno dla autoroutera, jak również in-teractive route editora. Możliwość ustalania maksymalnej, minimalnej długości ścieżki (ek) oraz długości preferowanej pozwala na kontrolę parametrów czasowych układu. Podobnie jest z kontrolą przesłuchów pomiędzy ścieżkami (znajdującymi się na tej samej lub różnych warstwach), która może odbywać się na podstawie określonych, zdefiniowanych przez użytkownika, reguł projektowych. Równoległość wybranych par ścieżek, odstęp między nimi, ekranowanie (wylewki miedzi) kontrolowane są automatycznie w trakcie działania autoroutera. Interacti-ve Route Editor obsługuje routowa-nie wybranych ścieżek w postaci magistral (z definiowalnym odstępem pomiędzy ścieżkami w magistrali), a także automatyczne wytyczanie pojedynczych ścieżek. Specctra wzbogacona o moduł HP wyświetla w tym trybie zestaw informacji dotyczących długości ścieżek, sygnalizując ewentualne przekroczenia zadanych wcześniej parametrów itp. Odbywa się to on-Iine, czyli w trakcie wytyczenia połączenia.
Moduł DF - Design for Manufac-turing - służy do optymalizacji projektu pod kątem wdrożenia go do
Specctra dostępna jest
w dwóch wersjach. Obydwie
wersje (6U i 256U) mogą
być dodatkowo
"wzmacniane" następującymi
modułami: AD (Advanced
Rutes)t AP (Autoptace-
ment)t DM (Design for
Manufacturing)t HP {High
Performance) oraz MV
(Microv ia).
produkcji oraz na etapie testowania. Dostępna jest na przykład bardzo przydatna funkcja mitter pozwalająca na prowadzenie ścieżek pod kątem 45 oraz "zaginanie" ścieżek wytyczonych wcześniej. Poza tym moduł zapewnia automatyczne dopasowanie (maksymalizację) odstępów: ścieżka-ścieżka oraz ścieżka-obiekt, na dostępnej wolnej przestrzeni w danym miejscu płytki, minimalizację liczby przelotek oraz automatyczne generowanie punktów testowych na podstawie zadanych parametrów.
Moduł MV - Microvia - dostarcza zestaw funkcji pozwalających na wykorzystanie technologii Matsushi-ta ALIVH microvia. Technologia Microvia pozwala na znaczne zoptymalizowanie skomplikowanych, kilkuwarstwowych płytek zawierających np. wielowyprowadzeniowe elementy elektroniczne w obudowach BGA (rys. 4). Wykorzystując ten moduł, możemy tworzyć całe tablice lub szeregi przelotek usytuowanych bezpośrednio w padach SMD (pod padami), co oczywiście zwiększa skuteczność działania autoroutera. Przelotki "ślepe" i "zagrzebane" mogą być dodatkowo umiejscowione w tej samej lokalizacji X, Y na różnych warstwach płytki i obsługiwane przez wzmocnioną w tym module funkcję fanout.
Moduł AP - Autoplace Option -pozwala na automatyczne rozmieszczanie elementów na płytce bez konieczności podawania ich współrzędnych i skomplikowanej procedury wprowadzania reguł dla komponentów o różnych rozmiarach. Moduł pozwala na automatyczne rozmieszczanie wybranych komponentów przy ręcznym ustawianiu innych i odwrotnie. RK
Dodatkowe informacje
Więcej informacji można uzyskać w lirmie RK-System, www.rk-system.com.pl.
62
Elektronika Praktyczna 2/2003
PROJEKTY
Konwerter USB<->IDE
AVT-5096
Czasami użytkownicy
komputerów znajdują się
w sytuacji, gdy muszą
" w terenie" przegrać
z komputera większą ilość
danych, ale nie mogą tego
zrobić przede wszystkim
dlatego, że PC jest zamknięty
mechanicznie i dostanie się
do środka wymaga posiadania
narzędzi, no i zgody
właściciela.
Rekomendacje: konweńer
prezentowany w artykule
pozwala rozwiązać problem
dołączenia dysku twardego
lub CD-ROM-u do interfejsu
USR dowolnego komputera.
Dzięki niemu uzyskujemy
możliwość realizacji
pra wdzi wego Plug-n -Play,
niemożliwego do uzyskania
np. za pomocą "kieszeni"
na HDD.
PROJEKT Z OKŁADKI
Oprócz kłopotów z narzędziami, jakie trzeba ze sobą nosić, aby dołączyć się do kontrolera dysków, niebagatelny jest także często praktykowany zwyczaj plombowania komputerów przez producentów - w takiej sytuacji próba dostania się do środka spowoduje zerwanie umowy gwarancyjnej .
Co zatem zrobić? Można kupić nagrywarkę lub dysk twardy ze złączem USB, lecz nie sądzę, aby było to najtańsze i najlepsze (zwłaszcza dla elektronika) rozwiązanie.
W artykule postaram się przedstawić prosty interfejs spełniający
rolę konwertera sygnałów między portem USB komputera a dowolnym dyskiem twardym, CD-ROM-em lub nagrywarką.
Podstawowe parametry konwertera są następujące: współpraca z interfejsami USB w każdej wersji (łącznie z 2.0), przy czym stosowanie starszych wersji (l.x) ogranicza maksymalną przepustowość łącza i nie pozwala na wykorzystanie w pełni możliwości dysku twardego, u-możliwia także obsługę napędów zgodnych z ATAPI, tj. nagrywa-rek, odtwarzaczy DVD czy napędów ZIP.
Skrótowy opis magistrali USB był zamieszczony w EP9/2002, przy okazji opisu konwertera USB<->RS232. Czytelnikom szczególnie zainteresowanym tematyką USB polecam stronę www.usb.org lub ściągnięcie specyfikacji USB ze strony intemetowej EP (http.f / www.ep.com.pl/ftpfusb_doc.exe}. Także na płycie CD-EP1/2003B znajdują się w miarę wyczerpujące informacje na temat tej magistrali.
14
Elektronika Praktyczna 1/2003
Konwerter USB<->IDE
Rezonator 24MHz
D-
FX2
Vcc
CY7C68013
Rdzeń procesora
8051 12/24/48 MHz
podłączany przy prędkości 'Fuli Spead"
USB 2.0
USB 1.1/2.0 Engine
Rys. 1. Schemat blokowy układu CY7C68013
Opis standardu IDE oraz ATAPI był zamieszczony w Elektronice Praktycznej w numerach 7-8/2 002.
Specjalizowany interfejs scalony
Sercem konwertera jest układ scalony firmy Cypress CY7C68013. Jego schemat blokowy przedstawiono na rys. 1. Układ jest produkowany w trzech wersjach różniących się między innymi liczbą dostępnych linii portów I/O, a co za tym idzie również obudową. Układ CY7C68013-56PVC jest montowany w obudowie typu SSOP56 (o wymiarach 8x18x2,3 mm) i zawiera: trzy oś-miobitowe porty I/O, szynę kompatybilną ze standardem PC, 8-lub 16-bitowy interfejs GPIF z pięcioma niemultipleksowanymi sygnałami kontrolnymi, 8- lub 16-bajtową pamięć FIFO z czterema niemultipleksowanymi sygnałami
sterującymi oraz pięcioma multi-pleksowanymi sygnałami (także sterującymi). Układ montowany w obudowie TQFP1OO zawiera dodatkowo jeszcze dwa ośmiobitowe porty I/O, siedem dodatkowych sygnałów kontrolnych (CTL) i gotowości (RDY) dla interfejsu GPIF, dziewięć niemultipleksowanych sygnałów układów peryferyjnych (dwa USART, trzy wejścia time-rów oraz wejścia przerwań INT4 i INT5), osiem dodatkowych sygnałów kontrolnych, dziewięć linii adresowych interfejsu GPIF oraz sygnały RD i WR. Najbardziej rozbudowany układ CY7C68013 mieści się w obudowie typu TQFP128 i zawiera w porównaniu z poprzednim dodatkowo 16-bitową (8051) szynę adresową, 8-bitową (8051) szynę danych oraz szynę z sygnałami kontrolnymi.
W konwerterze wykorzystałem najmniejszy układ z tej rodziny,
CTŁ RDY
tj. CY7C68013-56PVC. Jego schemat blokowy przedstawiono na rys. 2.
Układ może pracować z dwiema prędkościami przesyłania danych: Fuli Speed (12 Mb/s) oraz High Speed (480 Mb/s). Jak przedstawiono na rys. 2, układ zawiera rdzeń procesora z rodziny 8051. Jest to mocno ulepszona wersja 8051. Procesor ten jest standardowo taktowany sygnałem zegarowym o częstotliwości aż 48 MHz. Częstotliwość sygnału jest ustalana przez wbudowaną w układ pętlę PLL.
Procesory zintegrowane w układach z rodziny FX2 są konfigu-rowane za pomocą programów przechowywanych w zewnętrznej, szeregowej pamięci typu EEP-ROM. Ładowanie tego programu do pamięci programu mikrokont-rolera odbywa się automatycznie po włączeniu zasilania.
Możliwe są cztery przypadki obecności/nieobecności pamięci zewnętrznej:
1. Brak pamięci EEPROM dołączonej do układu. W tym przypadku enumeracja jest przeprowadzana dla standardowego urządzenia USB, z zawartymi fabrycznie w każdym układzie deskryptorami o następujących wartościach: VID=0x04B4 (Cypress Semicon-ductor), PID = 0x8613 (EZ-USB FX2), DID=0xxxyy (Revision (dla Rev. E=0x04)). W tym przypadku bit RENUM (odpowiedzialny za renumerację) przyjmuje wartość 0.
2. Pamięć EEPROM jest dołączona do układu FX2 za pomocą linii szeregowych SCL i SDA oraz zawiera tylko deskryptory VID/PID/ DID, które są przydzielane konwerterowi. Podobnie jak w powyższym przypadku, bit RENUM = 0.
3. Pamięć EEPROM zawiera firmware. Jest on automatycznie ładowany do wewnętrznej pamię-
Komputer PC
VID (Vendor ID) PID (Product ID) DID (Device ID)
8051
16 B EEPROM
I2C
Firmware
4k lub 8k
pamięci
RAM
Rdzeń
procesora
8051
Rys. 2. Schemat blokowy układu CY7C68013-56PVC
Rys. 3. Program dla mikrokontrolera znajduje się w zewnętrznej pamięci EEPROM
Elektronika Praktyczna 1/2003
15
Konwerter USB<->IDE

5?
8
4g
OOIrr rrr r OOClOO OO O
o oooo oo o
3! "
Q?3
CO N- (O Ifl^fl Mi- O Q_Ł
yjQQQDQQQDZ! (EQQQQQQQQOQ
sissss^,
qq9q?qdod
QQOOOO QQ
Sy9
DC 1
_Q a a
El
Bl
Boa
9!35!SS
as
OOQ QQQQQ
S M S S
S u] 3 iri
ino"ivix
NHV1X
ŁOOA 9OOA SOOA frOOA EOOA 300A LOOA
. ii Ll_ n ^
Ł D.O fcr1 QQ P P
aHAuasau
Sto.
8 tu (0
5 DC
og
c3
^di 555
raco
^o-
S
5i
O o?
H
o w

E3
-i <
55 )
C
OAi
oQa:
Rys. 4. Schemat elektryczny konwertera
16
Elektronika Praktyczna 1/2003
Konwerter USB<->IDE
ci układu CY7C68013. Pamięć ta ma pojemność 8 kB o adresach 0x0000 - 0xlFFF oraz 512 B (0xE000 - 0xElFF). Po tej operacji następuje zerowanie urządzenia. Deskryptory VID/PID/DID są zawarte w firmware. Bit RENUM automatycznie przyjmuje wartość 1.
Uwaga! Pierwszy bajt pamięci EEPROM musi zawierać wartość 0xC2. Loader jest uruchamiany zawsze z wewnętrznej pamięci RAM.
4. W przypadku użycia największego i najbardziej rozbudowanego układu z rodziny FX2 (w obudowie ze 128 wyprowadzeniami) możemy zastosować, oczywiście oprócz pamięci EEPROM, również pamięć typu EPROM lub Flash, podłączając je do szyny adresowej/danych. Bit RENUM = 1. Deskryptory VID/DID/PID, podobnie jak w pkt. 3, są zawarte w firmware.
Sygnał danych magistrali USB jest podawany poprzez linie D+ i D- na wejścia transceivera USB, który jest integralną częścią układu CY7C68013. Zgodnie ze standardem USB, po podłączeniu interfejsu do komputera zainstalowany na nim system operacyjny musi przeprowadzić enumerację.
Renumeracja - czyli oszukiwanie komputera
Program przechowywany jest w pamięci EEPROM (u nas 24LC65 - rys. 3) i musi zostać każdorazowo załadowany do CY7C68013 po podłączeniu go do portu USB (z jednoczesnym włączeniem zasilania). Ponieważ komputer przeprowadzi enumerację zaraz po podłączeniu urządzenia do USB, a nie jest możliwe wykonanie tej czynności ponownie, dlatego pojawia się potrzeba re-numeracji. Proces ten, wymyślony przez firmę Cypress, polega właśnie na "oszukaniu" komputera i zmuszeniu go do przeprowadzenia ponownej enumeracji. Operacja ta przebiega następująco:
1. Host (komputer) wysyła pytanie o deskryptor dołączonego urządzenia (Get Descriptor-Device) pod zerowy adres (dołączone urządzenie musi odpowiedzieć).
2. Urządzenie w odpowiedzi wysyła swój identyfikator (ID).
3. Host wysyła żądanie ustawienia adresu (Set Address) i od
tego momentu urządzenie odbierać będzie dane tylko z tym adresem.
4. Host wysyła żądanie (Get Descriptor), pytając o dodatkowe informacje, takie jak liczba punktów końcowych, zapotrzebowanie na prąd, przepustowość, sterowniki do załadowania itp.
Od tego momentu rozpoczyna się renumeracja:
5. Host uruchamia loader, dzięki któremu program z pamięci EEPROM jest ładowany do układu CY7C68013.
6. Wymuszenie renumeracji, co odbywa się przez symulowane odłączenie i ponownie podłączenie urządzenia do ho sta.
7. System operacyjny zainstalowany na komputerze zaczyna ponownie procedurę enumeracji (punkty 1-4).
Ładowanie firmware'u
Renumeracja jest używana między innymi do skopiowania nowego firmware'u z hosta (komputera) do nieulotnej pamięci współpracującej z układem CY7C68013. Przed renumeracja system operacyjny komputera używa do komunikacji z układem domyślnych sterowników. W momencie podłączenia HDD (lub innego urządzenia), układ identyfikuje je jako urządzenie klienta [custom device). Następnie są ładowane wyspecjalizowane sterowniki umożliwiające skopiowanie firmware'u. Następuje proces renumeracji, podczas którego urządzenie jest identyfikowane jako dołączony napęd (tzn. jako HDD, CD-ROM, ZIP,...), co wymusza załadowanie kolejnych
Tab. 1. Konfiguracja linii adresowych US3 w zależności od pojemności pamięci
UHooeee pamięci (bty) A2 A1 PO
16 -- -- --
128 0 0 0
256 0 0 0
4k 0 0 1
Ek 0 0 1
sterowników, odpowiednich dla danego napędu.
Budowa układu
Konwerter, którego schemat przedstawiono na rys. 3, zbudowano w oparciu o nieco zmodyfikowaną wersję standardowej aplikacji firmowej układu CY7C68013. Zastosowanie wyspecjalizowanego układu pozwoliło radykalnie uprościć budowę interfejsu.
Układ może być zasilany bezpośrednio z portu USB (wtedy zworka JPl musi być zwarta) lub z oddzielnego zasilacza (wtedy zworka JPl musi być rozwarta, a do złącza Jl należy doprowadzić napięcie stałe o wartości 5 V). Pobór prądu w obydwu przypadkach nie przekracza 100 mA. Zworka JP2 łączy pamięć z układem CY7C68013. Do połączenia komputera z przejściówką wskazane jest zastosowanie kabla ekranowanego. Rezonator kwarcowy Yl powinien mieć w miarę możliwości jak najlepsze parametry (jego częstotliwość rezonansowa jest mnożona dwadzieścia razy!). Elementy Rl oraz Cl są odpowiedzialne za niezawodne zerowanie po włączeniu zasila-
Rys. 5. Rozmieszczenie elementów na górnej stronie płytki drukowanej
Rys. 6. Rozmieszczenie elementów na dolnej stronie płytki drukowanej
Elektronika Praktyczna 1/2003
17
Konwerter USB<->IDE

Jł-i__1
-1 "TJ
,fft^^fsi
Rys. 7. Widok okna programu EZ-USB Control Panel z wpisanymi zalecanymi wartościami parametrów
nia. Układ Ul (MAX608) jest specjalizowanym stabilizatorem, mogącym pracować przy niewielkiej różnicy napięć między wejściem i wyjściem (LDO - Low Drop Out). Na płytce drukowanej, wokół tego układu znajdują się dwa (po jednym z każdej strony) pola miedzi, mające ułatwić odprowadzanie ciepła ze stabilizatora. Pamięć US3, w zależności od pojemności, skonfigurowana jest zgodnie z tab. 1.
Inne możliwości zastosowania układu CY768013
Układy z serii FX2 firmy Cyp-less są bardzo elastyczne i można je wykorzystać w wielu urządzeniach. Pierwszym pomysłem, jaki przyszedł mi do głowy po zapoznaniu się z notą katalogową tych układów, był odtwarzacz plików MP3 z interfejsem USB. Pomyślmy tylko, jaką prędkość przegrywania plików (przy zastosowaniu USB 2.0) i wygodę użytkowania możemy uzyskać. Innym, równie ciekawym pomysłem, jest autonomiczna stacja pomiarowa z zapisem danych na
dysk twardy. Do rejestracji temperatury w domu to ona może się nie przyda, ale w zakładach przemysłowych, gdzie trzeba nie tyle monitorować, co rejestrować zmiany wielu parametrów, przyda się znakomicie. Już te dwa przykłady dowodzą, iż układy FX2 są naprawdę bardzo wszechstronne i można je zastosować niemal wszędzie.
Montaż i uruchomienie
Układ zmontowano na stosunkowo małej (60x52 mm), dwustronnej płytce drukowanej, której schemat montażowy przedstawiono na rys. 5 i 6. Tak małe wymiary płytki udało się uzyskać dzięki zastosowaniu wyspecjalizowanego układu oraz elementów do montażu powierzchniowego.
Montaż najlepiej jest rozpocząć od układu U2 (CY7C68013). Przy-lutowanie układu mającego 56
WYKAZ ELEMENTÓW
Rezystory
Rl, R3: lOOkn 0805
R2, R7, RS, R12, R13: lOkft 0805
R4, R5: lkn 0805
Ró: 4,7kft 0805
RIO, R14: 22ft 0805
Rll: 33ft 0805
Kondensatory
C1...C4, C8...C12, Cló, C17, C18:
lOOnF 0805
C5, C13: 2,2^F/1ÓV 321Ó
Có, C7: 10^F/lóV MELF1
C14, C15: 22pF 0805
Półprzewodniki
Ul: MAXÓ04CSA
U2: CY7CÓ8013-5ÓPVC
U3: 24LCÓ5
Różne
Yl: rezonator kwarcowy 24 MHz
JP1, JP2: goldpin 2x1
Jl: goldpin 1x4 (raster 2 mm)
J2: złqcze USB-B do druku
J3: złqcze 2x20 (IDE)
wyprowadzeń i mieszczącego się w obudowie typu SSOP nie jest łatwe, ale nie jest także niemożliwe. Montaż należy rozpocząć od umieszczenia go na polach lutowniczych, a następnie przylutowa-niu (oczywiście za pomocą cienkiego grota) skrajnych wyprowa-
Rys. S. Widok okna właściwości sprzętu dla sterownika USB MassStorage Device
Rys. 9. Widok okna menadżera sprzętu po dolqczeniu interfejsu do portu USB
18
Elektronika Praktyczna 1/2003
Konwerter USB<->IDE
dzeń. Do przylutowania pozostałych 5 2 nóżek tego układu będzie potrzeba nieco cierpliwości i czasu. Naprawdę nie warto się spieszyć. Po zamontowaniu U 2 jeszcze raz sprawdzamy, czy nie zrobiliśmy zwarć i przystępujemy do montażu innych elementów. Teraz możemy zamontować rezystory i kondensatory 100 nF. Następnie układ Ul (MAX604). Na końcu montujemy kondensatory elektrolityczne, podstawkę pod pamięć (IC3) oraz złącza USB (J2) i IDE (J3).
Do uruchomienia interfejsu będzie potrzebny: kabel USB A<->B, napęd CD-ROM lub (i) HDD do sprawdzenia poprawności przesyłania danych oraz program EZ-USB (zamieszczamy go na płycie CD-EP1/2003B.
Ładowanie programu do zainstalowanej nieulotnej pamięci sprowadza się do kilku prostych czynności. Przy wyłączonym układzie należy zdjąć zworkę JP2 oraz zamontować JPl. Następnie należy
podłączyć kabel USB i ponownie zamontować zworkę JP2. Teraz uruchamiamy program ezmr.exe i klikamy przycisk Download. Do załadowania wybieramy plik examples \fx2 \ ven d_ax\ vend ax.hex. Wprowadzamy wartości jak pokazano na rys. 7 (Req 0xA9, Value 0x0000, Index OxBEEF, Length 1, Dir 0-OUT, Hex Bytes FF).
Następnie klikamy przycisk vendReq. Odłączamy i ponownie załączamy zasilanie (co wymaga zdjęcia i ponownego zamontowania JPl, można też wyjąć i ponownie włożyć wtyczkę do portu USB). Naciskamy przycisk EEP-ROM i wybieramy plik fx2_ata.iic. Czas ładowania go do pamięci EEPROM wynosi około dwóch minut. Następnie odłączamy zasilanie układu oraz kabel USB. Do interfejsu podłączamy dysk twardy lub napęd CD-ROM (z własnym zasilaniem!), a następnie za pomocą kabla USB dołączamy interfejs do komputera. System Windows powinien wykryć kon-
werter jako USB Mass Storage Device (rys. 8).
Po podłączeniu CD-ROM-u mamy sprawnie działające urządzenie składujące, co można zobaczyć na rys. 9. Piotr Klepacz
Program EZ- USB oraz dokumentację do układów serii FX publikujemy ma płycie CD-EPl/ 2003B. Można ją także ściągnąć ze strony firmy Cypress: http:// www.cypress.com/cfuploads/sup-port/developer_kits/ez_usb-devto-ols.zip (wielkość: 62 MB).
Najnowsze sterowniki dostępne są na stronie Cypressa www.cypress.com.
Wiele cennych informacji o USB, znajduje się pod adresem www.usb.org.
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/styczenO3.htm oraz na płycie CD-EP1/2003B w katalogu PCB.
Elektronika Praktyczna 1/2003
19
"Mówiqcy" woltomierz
Niebanalny pomysł, jeszcze bardziej niebanalne zastosowania, ale prosta realizacja - to w skrócie projekt prezentowany na słr. 47.
Wirtualne peryferia A
Nadchodzi era programowanego świata, w którego tworzeniu niezwykle pomocne sq wirtualne peryferia, o których piszemy na słr. 51.
Analizatory i rejestratory parametrów sieci zasilajqcej
Jeszcze niedawno mówienie o jakości sieci elektroenergetycznej budziło zdziwienie, nawet u bardziej doświadczonych elektroników. Silne trendy normalizacyjne wywarły w końcu także na parametry dostarczanej energii, w czym pomagajq takie przyrzqdy pomiarowe, jak prezentowane w artykule na słr. 65.
Bezprzewodowy regulator temperatury
Termostat prezentowany na słr. 43 zapewnia - dzięki przemyślanej konstrukcji -wysoki komfort użytkowania. ___
Konwerter USB<->RS485 > z separacjq galwanicznq
Układy interfejsowe firmy FTDI wywołały rewolucję - dostęp do PC poprzez USB stał się dzięki nim banalnie łatwy. Jak dowodzi tego projekt prezentowany na słr. 23, za ich pomocq można rozwiqzać całkiem niebanalne problemy...
Detektor ruchu
z głosowym automatem
informacyjnym
W artykule na słr. 27 przedstawiamy niezwykle komercyjny projekt - automat witajqcy i żegnajqcy miłym (miejmy nadzieję) głosem klientów sklepu, przychodni lekarskiej, czy też pubu.
Kodowy wojownik
Wojny - przynajmniej klasycznie rozumiane - wychodzq z mody, ale nie oznacza to, że każdy z nas jakichś "wojenek" nie toczy, Jednq z bardziej wojowniczych grup sq programiści, toczqcy regularne potyczki z pisanymi przez siebie programami. Firma Metrowerks przygotowała uniwersalnego wojownika, który ułatwi nam wojnę z kodem programu... Słr. 77.
Yampp-3/USB
W ostatniej części artykułu przedstawiamy sposób dołqczenia do Yamppa graficznego wyświetlacza z telefonu komórkowego. Słr. 39. '
Elektronika Praktyczna 2/2003
Wskaźniki pomiarowe firmy Omron
Kolejne nowości z oferty firmy Omron przedstawiamy w artykule na słr. 133.
Konkurs dla automatyków
Na słr. 136 publikujemy drugq część artykułu konkursowego -szczególnie polecamy go miłośnikom systemów automatyki!
Szybki jak '51
Drugq część artykułu prezentu-jqcego ultra szybkie '51 znajdziecie na słr. 71. v
IKA
Nr 2(122)
luty 2003
Projekty
AVT Niexie Clock - VHDL i lampy, część 1 ............................ 14
Konwerter USB<->RS485 z separacjq galwanicznq............. 23
Detektor ruchu z głosowym automatem informacyjnym... 27
Gra w kolko i krzyżyk................................................................33
Yampp-3/USB, część 3............................................................. 39
Bezprzewodowy regulator temperatury, część 2................43
"Mówiqcy" woltomierz, część 2.............................................47
M i n i proj e kty^^^^^^^^^^^^^^^^^^^^^^H
4-kanałowy termometr na Gamę Port..................................79
PIC'n'roll, czyli muzyczne fantazje na PIC-ach....................80
Programy'
Autorouter Specctra, część
Kodowy wojownik...............................................
Język C dla mikrokontrolerów 8051, część 9........................ &b
CRC doda Ci pewności, część 2...........................................89
Automatyka ^^^^^^^^^^^^^^^^^^^^^H
Wskaźniki pomiarowe firmy Omron...................................... 133
Konkurs dla automatyków.................................................... 136
Wonderware InTouch krok po kroku - kurs
obsługi, część 2....................................................................... 138
Wirtualne peryferia - SoC -jak to się robi w praktyce?......51
Szybki jak '51, część 2..............................................................71
Sprzęt ^^^^^^^^^^^^^^^^^^^^|
Analizatory i rejestratory parametrów sieci zasilajqcej.......65
Programator na miarę.............................................................74
Projekty Czytelń i ków^^^^^^^^^^^^^^^^^H
Prosty programator mikrokontrolerów
AT89Cx051/AT89C5x................................................................. 93
Z kraju i ze świata........................................................119
Biblioteka EPt
Kramik+Rynek................................................................97
Listy.......................................^^^..............................
Ekspresowy Informator Elektroniczny.....................1151
Wykaz reklamodawcow............................................118
Elektronika Praktyczna 2/2003
SPRZĘT
izzateff^y
o o
DOGD
Nieliniowość charakterystyki wejściowej większości zasilaczy urządzeń elektronicznych wynika z ich budowy, która jest oparta zazwyczaj na przetwornicy impulsowej AC/DC. Taki sposób przetwarzania energii -oprócz wielu zalet - ma tę wadę, że następuje zniekształcenie sinusoidalnego przebiegu prądu zasilającego, co powoduje wprowadzanie do sieci sygnałów harmonicznych częstotliwości podstawowej. Występowanie sygnałów o częstotliwościach harmonicznych jest przyczyną niepożądanych zjawisk, jak np.: przegrzewania przewodu neutralnego, zadziałania zabezpieczeń, pogorszenia warunków pracy transformatora zasilającego itd. Nie wolno lekceważyć tych sygnałów i stosować w miarę posiadanych możliwości środki, które złagodzą skutki ich obecności.
Aby dokonać prawidłowej diagnozy i zapobiec kolejnym, niekiedy bardzo kosztownym ze względu na konsekwencje zdarzeniom, należy w pierwszej kolejności poznać zjawisko, a następnie na podstawie uzyskanych informacji dobrać właś-
ciwe środki zapobiegawcze. Analizator i rejestrator parametrów sieci elektrycznej jest bardzo przydatny podczas pierwszej fazy takich działań.
W artykule opisano dwa najnowsze przyrządy tego typu z oferty włoskiej firmy HT Italia - Energy-test 2020E (fot. 1) oraz Skylab 9032 (fot. 2). Duże możliwości funkcjonalne obu przyrządów pozwalają traktować je jako mierniki parametrów sieci, oscyloskopy, analizatory harmonicznych, rejestratory parametrów sieci lub rejestratory anomalii napięciowych (tylko Skylab 9032). Oba przyrządy służą do pomiarów parametrów zarówno w instalacjach jednofazowych, jak i trójfazowych.
Miernik parametrów sieci
Wyboru parametrów dokonuje się przełącznikiem obrotowym. Operator ma do wyboru następujące pomiary:
Pomiar napięć
Zakres mierzonych parametrów zależy od tego czy kontrolowana jest instalacja jedno-, czy trójfazowa (rys. 3).
Fot. 2
Firmy nadzorujące
funkcjonowanie dużych sieci
komputerowych borykają się
z zakłóceniami pracy
odbiorników energii
elektrycznej (komputerów,
UPS-ów itp.) oraz
nieprawidłowym działaniem
zabezpieczeń w sieci
zasilającej. W wielu
przypadkach jest to
spowodowane dołączonymi do
instalacji elektrycznej
urządzeniami elektronicznymi,
które stanowią dla niej
obciążenie nieliniowe.
W instalacji jednofazowej są jednocześnie w czasie rzeczywistym mierzone i wyświetlane: wartość skuteczna napięcia zmiennego dla przebiegów odkształconych (tzw. True RMS), wartość szczytowa napięcia, współczynnik całkowitych zniekształceń harmonicznych dla napięcia Thdv oraz częstotliwość.
W instalacji trójfazowej mierzone i wyświetlane są: wartości skuteczne napięć True RMS dla wszystkich faz, wartości skuteczne napięć między fazowych True RMS oraz częstotliwość sieci. Dodatkowo na ekranie jest wyświetlana informacja o kierunku wirowania faz. Miernikami można mierzyć napięcia zarówno w sieci trójfazowej trójprzewodowej, jak i czteroprzewodowej (z przewodem neutralnym).
Pomiar prądów
Zakres mierzonych parametrów, podobnie jak dla pomiaru napięć, zależy od tego czy kontrolowana jest instalacja jedno-, czy trójfazowa.
W instalacji jednofazowej są jednocześnie w czasie rzeczywistym mierzone i wyświetlane: wartość skuteczna prądu zmiennego True RMS, wartość szczytową prądu, współczynnik całkowitych zniekształceń harmonicznych dla prądu Thd, oraz częstotliwość.
Elektronika Praktyczna 2/2003
65
SPRZĘT
Pomiar energii Podczas pomiarów energii w instalacji jednofazowej jednocześnie, w czasie rzeczywistym, są mie-Rys. 3. Widoki ekranów przy pomiarze rzone i wyświetlane: napięcia w układzie jednofazowym, trójfa- wartość energii czyn-zowym trójprzewodowym oraz trójfazo- nej, energii biernej
VUIJUI
Vii c Ś U
iis.% JL J V
E*> 1 iM 1 1
wym cztero przewód owym
W instalacji trójfazowej mierzone i wyświetlane są: wartości skuteczne prądów True RMS we wszystkich fazach, wartość skuteczna prądu True RMS w przewodzie neutralnym oraz częstotliwość sieci. Miernikami można przeprowadzać pomiary prądów zarówno w sieci trójfazowej trójprzewodowej, jak i czte-roprzewodowej (z przewodem neutralnym).
Pomiar mocy
Zakres mierzonych parametrów, również w tym przypadku, zależy od tego czy kontrolowana jest instalacja jedno-, czy trójfazowa. Podczas pomiaru parametrów w instalacji jednofazowej jednocześnie, w czasie rzeczywistym są mierzone i wyświetlane wartości skuteczne True RMS napięcia i prądu zmiennego, wartość mocy czynnej, mocy biernej pozornej, współczynnika mocy cos^ oraz współczynnika mocy obliczonego na podstawie kąta przesunięcia fazowego. Dla sieci trójfazowej są mierzone te same parametry jak w sieci jednofazowej, lecz dotyczące każdej z trzech faz oraz dodatkowo: całkowita moc czynna, całkowita moc bierna, całkowita moc pozorna, całkowity współczynnik mocy cos^, całkowity współczynnik mocy obliczony na podstawie kątów przesunięć fazowych oraz informacja o kierunku wirowania faz. Miernikami można przeprowadzać pomiary mocy zarówno w sieci trójfazowej trójprzewodowej, jak i czteroprzewodowej (z przewodem neutralnym).
3.BI.M I IłŁ J*rB4
M^ ni Ol
o charakterze pojemnościowym, energii biernej o charakterze indukcyjnym, mocy czynnej, mocy biernej, mocy pozornej, współczynnika mocy cosł(> oraz współczynnika mocy obliczonego na podstawie kąta przesunięcia fazowego. Dla sieci trójfazowej są mierzone te same parametry jak w sieci jednofazowej, lecz dotyczące każdej z trzech faz oraz dodatkowo: całkowita energia czynna, całkowita energia bierna o charakterze pojemnościowym, całkowita energia bierna o charakterze indukcyjnym, całkowita moc czynna, całkowita
Podczas przetwarzania AC/DC następuje zniekształcanie sinusoidalnego przebiegu prądu zasilającego, w następstwie czego do sieci wprowadzane są sygnały harmoniczne częstotliwości podstawowej.
Rys. 5. Widok ekranu programu Toplink podczas kontroli parametrów sieci
mocy
tflblE THJIr*!
K Ś 4 UM*
ihi tu
Śa-T-----I Śi " Ul
Rys. 4. Widoki ekranów z informa-cjq o szczytowym zapotrzebowaniu na energię
moc bierna, całkowita moc pozorna, całkowity współczynnik mocy cosł|> oraz całkowity współczynnik mocy obliczony na podstawie kątów przesunięć fazowych.
Miernikami można przeprowadzać pomiary energii zarówno w sieci trójfazowej trójprzewodowej, jak i czteroprzewodowej (z przewodem neutralnym).
Jeżeli przyrządy są dołączone do sieci trójfazowej i znajdują się w trybie rejestrowania parametrów sieci, wówczas można wywołać na ekran informacje o szczytowym zapotrzebowaniu na energię w okresie od początku bieżącej rejestracji (rys. 4). Wyświetlana jest maksymalna wartość średnia całkowitej mocy czynnej lub pozornej w okresie uśredniania, czas i data zarejestrowania wartości maksymalnej oraz wartość całkowitej energii czynnej lub pozornej zmierzonej od początku bieżącej rejestracji. Podstawowe parametry sieci można śledzić w czasie rzeczywistym na komputerze, korzystając z programu Toplink (rys. 5).
Oscyloskop
Operator podczas pomiaru napięć, prądów oraz mocy może skorzystać z dodatkowej funkcji przyrządu - oscyloskopu. W tym trybie można obserwować w czasie rzeczywistym kształt przebiegu napięcia i/lub prądu w wybranej fazie (rys. 6). Przyrządy wyświetlają przebieg z rozdzielczością 128 próbek na okres. Przebieg jest odświeżany z częstotliwością jeden raz na pięć sekund. Dzięki tej funkcji można zgrubnie analizować na bieżąco przebieg sygnału oraz obserwować przesunięcie fazowe. Przebiegi prądów i napięć można również śledzić w czasie rzeczywistym na komputerze, korzystając z programu Toplink (rys. 7).
Analizator harmonicznych
Podczas pomiaru napięcia lub prądu przyrządy umożliwiają obserwację i pomiar harmonicznych zawartych w sygnale. W tym trybie pracy mierniki przeprowadzają szybką analizę Fouriera (FFT), a na ekranie w czasie rzeczywistym wyświetlany jest histogram (wykres słupkowy) informujący o procentowej zawartości poszczególnych harmonicznych w sygnale (rys. 8).
Analiza zawartości harmonicznych jest przeprowadzana do 49. harmonicznej. Jeżeli do wejść mierników jednocześnie doprowadzano napięcie
s\ j Kx J K^ "J
\/ [ \/ i \/
VI - III | V r^ Ś h. p.
1 1 1 i i \ n II l rt
Rys. ó. Widoki ekranów oscyloskopu przy pomiarze napięcia w układzie jednofazowym, trójfazowym trójprzewodowym, trójfazowym czteroprzewodowym
Elektronika Praktyczna 2/2003
SPRZĘT
Ih.l L Irl
Ś 1 1 1
maa *m.i v 1 Ś IB 3 t *rf - t.i fc V * ii* ą V taj m IŁ j- V ma - i * ł *gj - w ? * fcdi - * > *
- i - i i n
Rys. 8. Widoki ekranów z histogramem w układzie jednofazowym, trójfazowym trój przewodo-wym, trójfazowym czteroprzewodowym
Rys. 7. Widok ekranu programu Toplink z przebiegami prqdu i napięcia
i prąd, wówczas na ekranie przyrządów mogą pojawić się ujemne wartości harmonicznych. Oznacza to, że napięcie zawiera składowe generowane przez obciążenie. Pierwsza kolumna histogramu (h00) informuje o składowej stałej sygnału, natomiast ostatnia kolumna zawiera dane o T^ - współczynniku całkowitych zniekształceń harmonicznych (uwzględniającym 40 harmonicznych zgodnie z normą PN-EN50160) danego przebiegu. Zawartość harmonicznych w sygnale można śledzić w czasie rzeczywistym na komputerze, korzystając z programu Toplink.
Rejestrator parametrów sieci
Energytest 2020E oraz Skylab 9032 wyposażono w pamięć wyników pomiarów oraz dwukierunkowy interfejs transmisji szeregowej RS232. Skonfigurowanie procesu rejestracji można przeprowadzać zarówno z poziomu miernika, jak i komputera. Natomiast analizę zarejestrowanych danych wykonuje się na komputerze po uprzednim przesłaniu danych z pamięci miernika na twardy dysk komputera.
W skład wyposażenia standardowego przyrządu wchodzi oprogramowanie TopLink z opisami w języku polskim, które obsługuje transmisję danych zarówno uprzednio zapisanych w pamięci przyrządu, jak i kontrolowanych w czasie rzeczywistym. Oprogramowanie umożliwia również sterowanie miernikiem z poziomu komputera (rys. 9).
Przyrządy jednocześnie rejestrują do 64 parametrów sieci: napięcia, prądy, związane z nimi harmoniczne - do 49 włącznie, moce czynne,
bierne i pozorne, energie czynne i bierne, wartości współczynnika mocy cosł(> oraz współczynnika mocy obliczonego na podstawie kątów przesunięć fazowych. Mierniki można skonfigurować tak, że będą przygotowane na stan tzw. kogeneracji. Oznacza to, że obciążenie podczas trwania pomiaru może generować lub pobierać energię. W związku z powyższym, przyrządy będą rejestrowały w czasie moc i energię zarówno generowaną, jak i pobieraną. Operator może wybrać te spośród parametrów systemu elektrycznego, które zamierza rejestrować. Wyboru może dokonać z poziomu miernika lub komputera. Pełny cykl pomiarowy wynosi 60 ms (dla instalacji trójfazowej) lub 20 ms (dla instalacji jednofazowej). Podczas jednego cyklu przyrządy rejestrują wszystkie wybrane parametry, próbkowane z częstotliwością 6400 Hz, aby zapewnić wymaganą dokładność pomiaru. Odpowiada to 128 punktom na 20 ms. Magazynowanie wszystkich danych wymagałoby pamięci o ogromnej pojemności. Z tego powodu w przyrządach zastosowano metodę zapisu, która znacznie zmniejsza objętość
pamiętanej informacji. Metoda ta polega na uśrednianiu rejestrowanych parametrów w czasie nazywanym okresem uśredniania. Operator definiuje czas trwania okresu uśredniania, wybierając jedną z dostępnych wartości z zakresu od 5 do 3600 s. Następnie analizowane są dane zgromadzone w okresie uśredniania oraz wyszukiwane i obliczane dla każdego parametru wartości: minimalna, maksymalna oraz średnia. Właśnie te informacje natychmiast po upłynięciu każdego kolejnego okresu uśredniania są zapisywane w pamięci przyrządu. Taka metoda kompresji danych zapewnia znaczne wydłużenie czasu rejestrowania parametrów - w najbardziej skrajnym wariancie jest możliwy ciągły zapis wartości mierzonej przez 1000 dni.
Rejestrator anomalii napięciowych
Jedną z funkcji rejestratora parametrów systemów elektrycznych, spotykaną w autonomicznych urządzeniach, jest rejestracja anomalii napięciowych. Jest to cecha, którą posiada wyłącznie Skylab 9032. Operator może uruchomić tę funkcję, rejestrując równocześnie wybrane parametry elektryczne systemu.
Tab. 1. Wybrane parametry Energytest 2020E oraz Skylab 9032
Parametr Zakres pomiarowy Dokładność
Napięcie zmienne i stale 600V ą(0,5%+ 2 cyfry)
Anomalie napięciowe (tylko Skylab 9032) 600V ą(0.5% + 2 cyfry) ą10ms
Prąd zmienny 1000A (opcjonalnie 3000A) ą(0,5%+ 2 cyfry)
Moc czynna 999.9MW ą(1,0% + 2cyfry)
Moc bierna 999,9MVAR ą(1,0%+ 2 cyfry)
Moc pozorna 999,9MVA ą(1,0%+ 2 cyfry)
Energiaczynna 999,9MWh ą(1,0%+ 2 cyfry)
Energia bierna 999,9MWARh ą(1.0% + 2 cyfry)
Cos (p do 0,20 od 0,20 do 0,50 od 0,50 do 0,80 0,6 0,7 1
Harmoniczne do 25 od 26 do 33 od 34 do 49 ą(5%+ 2 cyfry) ą(10%+ 2 cyfry) ą(15%+ 2 cyfry)
68
Elektronika Praktyczna 2/2003
SPRZĘT
Rys. 9. Przykład ekranu programu Toplink podczas ustalania parametrów rejestracji
wcześniej, posiadają w standardowym wyposażeniu trzy przekładniki prądowe 1000A
elastyczne (tzw. flexi) dla Skylaba 9032 lub standardowe dla Energytesta 2020E, zestaw przewodów do pomiaru napięć oraz solidny futerał.
Każdy miernik jest wyposażony w indywidualne świadectwo potwierdzające sprawdzenie wykonane przez laboratorium (z wdrożonym ISO9001) akredytowane przez włoski urząd miar. Świadectwo potwier-
W pierwszej kolejności ustalane są wartości progowe napięcia. Przyrząd rozpoznaje jako anomalię wszystkie te zjawiska, podczas których wartość skuteczna napięcia wykracza poza ustalone wartości progowe przez okres dłuższy od 10 ms. Dla każdego zdarzenia miernik podaje informację o kierunku zmiany (przepięcie lub spadek), datę, czas rozpoczęcia, czas trwania zjawiska z rozdzielczością do jednej setnej sekundy oraz minimalną lub maksymalną wartość napięcia podczas zjawiska (rys. 10).
Przyrządy oprócz oprogramowania Toplink oraz zasilacza sieciowego, o których wspomniano
Rys. 10. Przy Mad ekranu programu Toplink podczas wyświetlania informacji o anomaliach napięciowych
dza zgodność parametrów przyrządu z podanymi w instrukcji obsługi. Mierniki uzyskały certyfikat typu Głównego Urzędu Miar w Warszawie. Dokument ten pozwala na okresową weryfikację parametrów (tzw. uwierzytelnienie) przez jednostki terenowe GUM. Przyrządy posiadają wysoką dokładność, dzięki czemu spełniają wymagania norm PN-EN61036 "Liczniki statyczne energii czynnej prądu przemiennego" (klasa 2) oraz IEC1268 (klasa 3) i mogą być również używane do weryfikowania wskazań liczników energii elektrycznej. Tomasz Koczorowicz Tomtronix
D o dat kowe i nf o rma ej e
Dystrybutorem przyrządów prezentowanych w artykule jest TornTronix, Tel. (42) 6760633, www.Tomtronix.corn.pl.
70
Elektronika Praktyczna 2/2003
PODZESPOŁY
Szybki jak '51
Mikrokontrolery firmy Cygnal, część ?_
Narzędzia
Cygnal zadbał o użytkowników produkowanych przez siebie mikrokont-rolerów wprowadzając do sprzedaży zestawy ewaluacyjne (fot. 6), które
oprócz bogatego wyposażenia (w ich skład wchodzi m.in. interfejs RS232<->JTAG) charakteryzują się przystępną ceną (do większości rodzin mikrokon-trolerów ok. 99 USD netto).
W artykule przedstawiamy
jedną z ciekawszych
możliwości przyspieszenia
pracy systemów
z mikrokontrolerami '51.
Tab. 2. Zestawienie wyposażenia dostępnych wariantów mikrokontrolerów firmy Cygnal
Oznaczenie Pojemność pamięci Flash [B] Pojemność pamięci RAM [B] Interfejsy szeregowe Timery (16 b) PCA Stabilność wbudowanego generatora Liczba cyfrowych l/O Przetwornik C/A Liczba wejść analogowych Rozdzielczość Liczba wyjść Komparator J
SMBus/ /I2C SPI UART Inne Rozdzielczość Częstotliwość przetwarzania A/C (kHz)
C8051F000 32k 256 / / 1 - 4 / 20 32 12/- 100/- 8/- 12 2 2
C8051F001 32k 256 / / 1 - 4 / 20 16 12/- 100/- 8/- 12 2 2
C8051F002 32k 256 / / 1 - 4 / 20 8 12/- 100/- 4/- 12 2 1
C8051F005 32k 2304 / / 1 - 4 / 20 32 12/- 100/- 8/- 12 2 2
C8051F006 32k 2304 / / 1 - 4 / 20 16 12/- 100/- 8/- 12 2 2
C8051F007 32k 2304 / / 1 - 4 / 20 8 12/- 100/- 4/- 12 2 1
C8051F010 32k 256 / / 1 - 4 / 20 32 10/- 100/- 8/- 12 2 2
C8051F011 32k 256 / / 1 - 4 / 20 16 10/- 100/- 8/- 12 2 2
C8051F012 32k 256 / / 1 - 4 / 20 8 10/- 100/- 4/- 12 2 1
C8051F015 32k 2304 / / 1 - 4 / 20 32 10/- 100/- 8/- 12 2 2
C8051F016 32k 2304 / / 1 - 4 / 20 16 10/- 100/- 8/- 12 2 2
C8051F017 32k 2304 / / 1 - 4 / 20 8 10/- 100/- 4/- 12 2 1
C8051F018 16k 1280 / / 1 - 4 / 20 32 10/- 100/- 8/- - - 2
C8051F019 16k 1280 / / 1 - 4 / 20 16 10/- 100/- 8 - - 2
C8051F020 64k 4352 / / 2 - 5 / 20 64 12/8 100/500 8/8 12 2 2
C8051F021 64k 4352 / / 2 - 5 / 20 32 12/8 100/500 8/8 12 2 2
C8051F022 64k 4352 / / 2 - 5 / 20 64 10/8 100/500 8/8 12 2 2
C8051F023 64k 4352 / / 2 - 5 / 20 32 10/8 100/500 8/8 12 2 2
C8051F040 64k 4352 / / 2 CAN 5 / 2 64 12/8 100/500 12/8 12 2 3
C8051F041 64k 4352 / / 2 CAN 5 / 2 32 12/8 100/500 12/8 12 2 3
C8051F042 64k 4352 / / 2 CAN 5 / 2 64 10/8 100/500 12/8 12 2 3
C8051F043 64k 4352 / / 2 CAN 5 / 2 32 10/8 100/500 12/8 12 2 3
C8051F060 64k 4352 / / 2 CAN 5 / 2 59 16/10 1000/200 2 12 2 3
C8051F061 64k 4352 / / 2 CAN 5 / 2 24 16/10 1000/200 2/8 12 2 3
C8051F062 64k 4352 / / 2 CAN 5 / 2 59 16/10 1000/200 2/8 12 2 3
C8051F063 64k 4352 / / 2 CAN 5 / 2 24 16/10 1000/200 2/8 12 2 3
C8051F120 128k 8448 / / 2 - 5 / 2 64 12/8 100/500 8/8 12 2 2
C8051F121 128k 8448 / / 2 - 5 / 2 32 12/8 100/500 8/8 12 2 2
C8051F122 128k 8448 / / 2 - 5 / 2 64 10/8 100/500 8/8 12 2 2
C8051F123 128k 8448 / / 2 - 5 / 2 32 10/8 100/500 8/8 12 2 2
C8051F124 128k 8448 / / 2 - 5 / 2 64 12/8 100/500 8/8 12 2 2
C8051F125 128k 8448 / / 2 - 5 / 2 32 12/8 100/500 8/8 12 2 2
C8051F126 128k 8448 / / 2 - 5 / 2 64 10/8 100/500 8/8 12 2 2
C8051F127 128k 8448 / / 2 - 5 / 2 32 10/8 100/500 8/8 12 2 2
C8051F206 8k 1280 - / 1 - 3 - 20 32 12/- 100/- 32/- - - 2
C8051F220 8k 256 - / 1 - 3 - 20 32 8/- 100/- 32/- - - 2
C8051F221 8k 256 - / 1 - 3 - 20 22 8/- 100/- 22/- - - 2
C8051F226 8k 1280 - / 1 - 3 - 20 32 8/- 100/- 32/- - - 2
C8051F230 8k 256 - / 1 - 3 - 20 32 -/- -/- -/- - - 2
C8051F231 8k 256 - / 1 - 3 - 20 22 -/- -/- -/- - - 2
C8051F236 8k 1280 - / 1 - 3 - 20 32 -/- -/- -/- - - 2
C8051F300 8k 256 / - 1 - 3 / 2 8 8/- 500/- 8/- - - 1
C8051F301 8k 256 / - 1 - 3 / 2 8 -/- -/- -/- - - 1
C8051F302 8k 256 / - 1 - 3 / 20 8 8/- 500/- 8/- - - 1
C8051F303 8k 256 / - 1 - 3 / 20 8 -/- -/- -/- - - 1
Elektronika Praktyczna 1/2003
71
PODZESPOŁY
Tab. 2. Zestawienie wyposażenia dostępnych wariantów mi kro kontrolerów firmy Cygnal - cd.
Oznaczenie Pojemność pamięci Flash [B] Pojemność pamięci RAM [B] Interfejsy szeregowe Timery (16 b) PCA Stabilność wbudowanego generatora Liczba cyfrowych l/O Przetwornik C/A Liczba wejść analogowych Rozdzielczość Liczba wyjść Komparator
SMBus/ /I2C SPI UART Inne Rozdzielczość Częstotliwość przetwarzania A/C (kHz)
C8051F304 4k 256 / - 1 - 3 / 20 8 -/- -/- -/- - - 1
C8051F305 2k 256 / - 1 - 3 / 20 8 -/- -/- -/- - - 1
C8051F310 16k 1280 / / 1 - 4 / 2 29 10/- 200/- 21/- - - 2
C8051F311 16k 1280 / / 1 - 4 / 2 25 10/- 200/- 17/- - - 2
C8051F320 16k 2304 / / 1 USB 4 / 0,25 25 10/- 200/- 17/- - - 2
C8051F321 16k 2304 / / 1 USB 4 / 0,25 21 10/- 200/- 13/- - - 2
C8051F330 8k 768 / / 1 - 4 / 2 17 10/- 200/- 16/- 10 1 1
C8051F331 8k 768 / / 1 - 4 / 2 17 -/- -/- -/- - - 1
Elektronika Praktyczna 1/2003
O JTAG-u słów kilka
Najpopularniejszy obecnie interfejs wykorzystywany do testowania i programowania (konfigurowania) w systemie układów znany pod akronimem JTAG, powstał w końcu lat 80- Prace prowadzone przez Joint Test Action Group miały na celu opracowanie systemu umożliwiającego testowanie złożonych modułów cyfrowych po ich zmontowaniu na płytkach drukowanych- Twórcy interfejsu JTAG założyli, że nie ma potrzeby szczegółowego testowania wewnętrznych fragmentów układów, o których poprawną pracę powinien zadbać projektant na etapie projektowania struktury logicznej- Testowanie funkcjonalne, z małymi wyjątkami, ograniczono do weryfikacji stanów logicznych w komórkach wejściowych i wyjściowych testowanych układów. Stad właśnie BST, skrótowa nazwa najważniejszej cechy i funkcji interfejsu JTAG, która jest akronimem od Boundary Scan Testing, co należy rozumieć jako testowanie metodą ścieżki krawędziowej -
Duża elastyczność i łatwość stosowania interfejsu JTAG, możliwość łatwego, praktycznie nieograniczonego zwiększania jego funkcjonalności i powszechne uznanie jakim cieszył się na rynku spowodowały, że komitet normalizacyjny IEEE przyjął w 1990 roku normę IEEE 1149-1, w której zdefiniowano jego strukturę i sposób sterowania. Typowe dla JTAG-a procesy, tzn. testowanie i programowanie (konfig urowanie) układów z interfejsem JTAG przebiegają w podobny sposób. Najważniejsza różnica pomiędzy nimi polega na wykorzystaniu podczas testowania rejestrów ścieżki krawędziowej, a podczas programowania (konfigurowania) rejestrów ISP- Twórcy interfejsu JTAG przewidzieli możliwość jednoczesnego programowania lub testowania wielu układów. W takim przypadku należy je połączyć kaskadowo w łańcuch BST (ścieżki krawędziowej), jak to pokazano na rys. 1. Każdy układ z interfejsem zgodnym ze standardem JTAG musi być wyposażony w 1-bitowy rejestr obejściowy {bypass)- To właśnie dzięki temu rejestrowi istnieje możliwość "operowania" na układach dowolnie wybranych z całego łańcucha.
vcc vcc vcc
o o
TUI TTM TMtt TCK
TU TTM TWS TCK * TDI TTM TMS TCK
1

Styk fizyczny interfejsu JTAG składa się z zaledwie 4 lub 5 pojedynczych, jednokierunkowych linii sygnałowych. Ciężar realizacji algorytmów sterujących wymianą informacji w łańcuchu JTAG jest rozłożony pomiędzy program sterujący pracą interfejsu oraz blok TAP wraz z elementami towarzyszącymi, w które wyposażono układy ISP. Dzięki temu typowe programatory-konfig uratory układów programowanych w systemie zawierają zazwyczaj tylko bufory zabezpieczające przed uszkodzeniem wyjścia portu równoległego komputera (LPT). Niektórzy producenci oferują także konwertery RS232<->JTAG oraz nowocześniejsze konwertery USB<->JTAG, których jedną z zalet jest możliwość pracy plug&play.
Fot. ó
Podstawowe oprogramowanie naizędziowe, czyli: Code Wizard (program ułatwiający konfigurowanie peiyfe-riów mikrokontrolerów zarówno w języku C jaki i w asembleize - rys. 7), środowisko projektowe Keil (wersja ewalu-acyjna z ograniczeniami dla programów pisanych w C) oraz program FlashUtiJ służący do programowania pamięci Flash.
Podsumowanie
Mikro kontrolery prezentowane w artykule są kolejnym przykładem pod-
PODZESPOŁY
ważającym popularne stwierdzenia, że rdzeń '51 jest przestarzały. Projektanci z firmy Cygnal dowiedli, że wprowadzenie unowocześnień w budowie rdzenia mikrokontrole-ra i wyposażenie go w dopracowane moduły peryferyjne pozwala korzystać programistom z dotychczasowego dorobku bez ryzyka utknięcia w historycznej "niszy". Piotr Zbysiński, AVT piotr.zbysinski@ep.com.pl
Dodatkowe informacje
Dodatkowe materiały i informacje
można znaleźć na intern et owej stronie producenta: www.cygnal.com.
Elektronika Praktyczna 1/2003
73
SPRZĘT
Programatory Uprog 4O/48
. UnrogHS
Fot.
Programatory opracowane i produkowane przez firmę RK-System
kilkukrotnie prezentowaliśmy na lamach EP. Ich producent nie
spoczął na laurach i regularnie rozszerza listę obsługiwanych
układów, zwiększa także możliwości funkcjonalne programatorów.
Ostatnio wprowadzone udoskonalenia zachęciły nas do powtórnego
przedstawienia tych urządzeń, które mogłyby być powodem do dumy
w ofercie niejednego rynkowego potentata.
Twórcy programatorów Uprog od samego początku stawiali na zoptymalizowanie szybkości ich pracy. Stąd rekordowe czasy programowania pamięci Flash i EEPROM, które przekładają się na duży komfort pracy z programatorem.
Rodzina programatorów Uprog składa się z następujących modeli:
UprogHS 48 (fot. 1], sztandarowy w ofercie producenta, szybki programator z 48-stykową podstawką ZIF. Komunikuje się on z komputerem poprzez interfejs równoległy, z maksymalną szybkością (w trybie EPP] dochodzącą do 800 kB/s. Możliwości programatora są bardzo duże, ponieważ zastosowane w nim rozwiązania umożliwiają niezależne podawanie na dowolne wyprowadzenie napięć o wartości programowanej w przedziale 0 V do 30 V,
a także potencjału masy, napięcia zasilania bądź sygnału zegarowego o ustalanych parametrach. Taka budowa programatora pozwala uaktualniać listę obsługiwanych
Rekordowe czasy
Według danych producenta, czas programowania
pamięci Flash firmy Macronix typ MX29F040 (512
kB) wynosi zaledwie 5 s, a odczyt około 1,5 s.
Czas programowania miki okonti olei a ATmega323
(32 kB) nie przekracza (via SPI) 10 s, a odczyt
zabiera zaledwie 4 s.
układów poprzez prostą wymianę oprogramowania sterującego (na PC], bez konieczności modyfikowania samego programatora. Za pomocą Uproga można programować układy zasilane napięciami z przedziału od 1,8 V do 8 V.
Oprócz funkcji programatora urządzenie może spełniać rolę 8-kanałowego analizatora stanów logicznych o częstotliwości próbkowania do 100 MHz, oraz emu lato ra 8-bitowych i 16-bitowych pamięci o czasie dostępu (odpowiednio]: 10 ns/70 ns.
Wiadomość z ostatniej chwili: jest już dostępna nowa wersja programatora Uprog HS84
W odróżnieniu od poprzednich programatorów rodziny Uprog, nowy model jest standardowo wyposażony w dwa gniazd a ZIF48 oraz uniwersalne gniazdo PLCC84 lub S0IC/TS0P44 (w zależności od wymagań użytkownika) Ponadto Uprog HS84 może praco wad |ako ośmio podstawkowy programator przemysłowo wy w konfiguracji na przykład 3 x ZIF48, co pozwala na szybkie programowanie dużych partii układów Górna płyta obudowy programatora jest wymienna, co pozwala na szybką i łatwą je j wymianę Ceięki temu standardowe podstawki ZIF48 oraz PLCC84 (lub alternatywnie S0IC/TS0P44) mogą być zastąpione adapter typu gangpod wyposażony w 8 podstawek dowolnego typu Podstawowe cechy iżytkowe i wyposażenie i owego programatora:
* Dwie podstawki uniwersalne ZIF43 oraz PLCC34 (ewentualnie S0IC/TS0P44) zapewniające pełną uniwersalność, funkcjonalność i wysoki komfort pracy z urządzeniem (wyposażenie standardowe)
* Możliwość zastąpienia górnej płyty programatora pa/jppodemprzemysłowym, wyposażonym w 8 podstawek dowolnego typu (gangpody można dokupić w dowolnym momencie)
* Programator obsługuje około 7000 typów układów, a ich lista jest cały czas rozszerzana
* Funkcja e mulat ora pamięci 8-bitowycho pojemności do 128 kB(10ns) z mozlrwościąrozszerzemado 512 kB (w standardzie)
* Funkcja ernu lato ra pamięci 1G-bitowycho pojemności do 64 kB (70 ns) z możliwością rozszerzenia do 256 kB (opcja)
* Funkcja 8-kanałowego analizatora stanów logicznych 100 MHz (opcja)
* Każde wyprowadzenie ma możliwość niezależnego wysterowama przez VPP 0 30 V, Vzz 1,8 8 V, CLK 244 H z 8 MHz Każde wyprowadzenie może również pełnić funkcję nadajnika lub odbiornika I mu szeregowej RS232 o prędkości transmisji od 300 bd do 115 kbd
* Komunikacja z komputerem PC poprzez port równoległy (tryby ECP, EPP, SPP)
* Oprogramowanie pracujące pod Windows 95/98/ME/2000/NT/XP
* Rodziny obsługiwanych układów pamięci EPROM, EEPROM, Flash, układy PLD GAL, PAL, PALCE, szeroka gama układów CPLD, mikrokontroleryS 116-bitowe
* Umożliwia programowanie w układzie docelowym (JTAG, SPI)
* Funkcja automatycznego rozpoznawania pamięci EPROM lub Flash
* Posiada możliwość testowania cyfrowych układów scalonych
* Przycisk AUTO RUN pozwala na programowanie dużej ilości układów bez użycia klawiatury komputera lub myszy
* Umozliwiasprawdzemejakości styku wszystkich nóżek układu przed zaprogramowaniem
* Akceptuje następujące formaty danych HEX,BIN,Text,JED,JAM (STAPL),SVF,ROM,POF
Analizator stanów logicznych (rys. 2] wyposażono w pamięć próbek o pojemności 128/512 kB. Pomimo jej relatywnie dużej pojemności maksymalny czas przesyłania danych nie przekracza 4 sekund (w przypadku pamięci 512 kB]. Rejestrację sygnałów w pamięci można zainicjować poprzez synchronizację: zboczem, poziomem sygnału lub kombinacją logiczną wielu sygnałów (funkcje logiczne AND lub OR). Bufor może być dzielony przez użytkownika na dwie części: Pre-trigger i Posi-trigger (rys. 3], dzięki czemu obserwacja stanów monitorowanych linii przed wyzwoleniem rejestracji jest również możliwa. Sygnał próbkujący można pobierać zarówno z wewnętrznego generatora, jak i zewnętrznego źródła sygnału TTL. Interesującą i bardzo użyteczną funkcją zaimplementowaną w programatorze jest także tester układów cyfrowych, za pomocą którego można weryfikować sposób działania praktycznie dowolnych układów kom-binacyjnych i sekwencyjnych. Budowa programatora pozwala na podanie na dowolne wyprowadzenie testowanego układu ustalonej przez użytkownika kombinacji sygnałów wejściowych, przy czym możliwe są następujące stany: "0", "1", Vcc, CLK i GND. Po podaniu sekwencji testowej na wybrane wyprowadzenia układu, odczytywane i wyświetlane są stany pozostałych.
Przed rozpoczęciem operacji na układzie włożonym do podstawki, programator sprawdza jakość styku pomiędzy wyprowadzeniami układu i zaciskami podstawki. Zapobiega to możliwości uszkodzenia programowanego układu lub driverów wbudowanych w programator.
Uliirmnninnnnnrnrumrm
74
Elektronika Praktyczna 2/2003
SPRZĘT
Rys. 3
Uprog 48 jest z zewnątrz niemalże identyczny ze swoim młodszym bratem, natomiast funkcjonalnie jest to uproszczona wersja programatora HS. Uprog 48 - oprócz swojej podstawowej funkcji może spełniać także rolę testera układów cyfrowych.
Uprog 40 umożliwia programowanie układów o maksymalnej liczbie wyprowadzeń wynoszącej 40. Poza tym jego właściwości funkcjonalne są identyczne z Uprogiem 48.
Uprog 48 Msrnoiiss Only jest wyspecjalizowanym programatorem pamięci z 48-stykową podstawką ZIF.
Uprog 40 Msrnoiiss Only- odpowiednik Uproga 48 Msrnoiiss Only z 40-stykową podstawką ZIF.
Oprogramowanie
Producent programatorów zadał sobie sporo trudu, aby przygotować niebanalne (w obsłudze i wyglądzie - rys. 4] oprogramowanie sterującego jego pracą. Szybko można się przekonać, że jego twórcy doskonale znają specyfikę pracy z programatorami, w związku
z czym zadbali o maksymalnie wysoki komfort pracy. Nie bez znaczenia dla wygody obsługi jest także fakt, że wszystkie wersje programatorów są obsługiwane za pomocą tak samo wyglądającego oprogramowania.
Oprogramowanie sterujące jest dostępne wyłącznie w wersji angielskiej, ale biorąc pod uwagę nasze prounijne dążenia, można to potraktować jako zaletę.
Nie tylko DIP/DIL
Standardowo producent wyposaża programatory w podstawki ZIF dla układów w obudowach DIL. Programowanie układów dostępnych w innych obudowach jest możliwe po zastosowaniu adapterów, które składają się z prostych przelotek pin-to-pin. W ofercie producenta znajduje się kilka wersji adapterów, dla obudów: SOIC, PLCC32, PLCC44, TSOP itp.
Dzięki przemyślanej budowie programatora, konstruktorzy korzystający z układów wyposażonych w interfejs JTAG (IEE-E1149.1] mogą w wielu przypadkach zrezygnować z konieczności instalowania programowanego/testowanego układu w podstawce - za pomocą łatwego w wykonaniu kabla można je programować i reprogramo-wac już zainstalowaniu w systemie (ISP], co - przynajmniej moim zdaniem - radykalnie zwiększa walory użytkowe urządzenia.
Podsumowanie
Kilkumiesięczne testy programatora Uprog 48HS prowadzone w redakcyjnym laboratorium dowiodły, że pomimo krót-
Rys. 4
kiej obecności na rynku, jest to rozwiązanie dojrzałe konstrukcyjnie. Szybkość rozwoju listy obsługiwanych układów sugeruje, że fani nowoczesnych układów nie będą musieli długo czekać na możliwość ich programowania za pomocą Uproga.
Pozytywny wizerunek urządzenia uzupełnia estetyczna i ergonomiczna obudowa, której solidne wykonanie pozwala na korzystanie z programatora bez obaw w typowych warunkach laboratoryjnych. Andrzej Gawryluk, AVT
Dodatkowe informacje
Programator do testów udostępniła lirma RK-SYSTEM, ul. Chełmoriskiego 30, 05-825 Grodzisk Mazowiecki, tel. (22) 724-30-39, http://www.rk-system.com.pl.
76
Elektronika Praktyczna 2/2003
PROGRAMY
Gzy znamy mikrokontrolery firmy Motorola? Zapewne każdy, kto ma jakiekolwiek związki z techniką mikroprocesorową słyszał o nich. Z sondaży nie wynika, żeby produkty Motoroli cieszyły się szczególną popularnością wśród polskich konstruktorów, nie mnie] jednak ci, którsy je stosują są do nich na pewno bardzo przywiązani. To dla nich współpracująca z Motorola firma Metrowerks stworzyła bardzo wydajne narzędzie do pisania i uruchamiania programów. To prawdziwy kodowy "wojownik", który z całą swoją niemałą mocą będzie zwalczał błędy popełnione przez programistę. Pełna nazwa produktu to CodeWairior In-iegmied Developmeni Environmeni (IDE}. Mamy więc do czynienia z kompletnym, zintegrowanym środowiskiem, do którego należą:
- Menedżer projektu (Project Manager] - to segment zbierający wszystkie elementy składowe projektu, czyli pliki źródłowe poszczególnych modułów, pliki nagłówkowe, inicjujące i konfi-guracyjne dla kompilatora i lin-kera. Wszystkie są widoczne w jednym oknie, mogą więc być łatwo tworzone i poprawiane.
- Edytor kodu źródłowego [Source Code Ediior) - specjalny edytor, w którym można wykonywać wymienione wyżej
prace edycyjne z każdym plikiem źródłowym wchodzącym w skład projektu. Dysponuje oczywiście takimi mechanizmami jak wyszukiwanie i zamiana określonych fragmentów tekstu w jednym lub wielu plikach. Wygodną opcją podczas konieczności jednoczesnego kontrolowania wielu miejsc programu jest podział okna na kilka części. W każdej z nich mogą być umieszczone żądane fragmenty tekstu. Edytor umożliwia łatwe przechodzenie pomiędzy plikiem źródłowym i związanymi z nim plikami interfejsowymi (rys. 1), wsta-
Tylko ten, kto kiedykolwiek
napisał choćby niewielki
programik wie, źe aby z kilku
tajemniczych znaczków, symboli
i skrótów przemienił się
w funkcjonalny program
działający w jakimś
mikroprocesorze, trzeba z nim
stoczyć często ciężką
i zazwyczaj nierówną walkę.
Nierówną, bo przeciwnik jest
bezwzględny i w dodatku
wirtualny. To kod pisanego
programu, który wydaje się
drwić z każdego, nawet
najmniejszego błędu
programisty. Jednak człowiek
zawsze dążył do panowania
nad światem. W pracowniach
Metrowerks stworzono do tej
walki specjalnego wojownika.
Nie musisz płacić! Motorola wspólnie z firmą Metrowerks udostępnia bezpłatną wersję CodeWarrio-ra, która umożliwia kompilację programów pisanych w asemblerze oraz w C (wyłącznie w przypadku kompilacji na mikrokontrolery z rodziny Nitron - czyli najnowsze wersje HC08).
wianie zakładek jednocześnie w wielu miejscach tekstu. Programiści, którzy tworzą programy modułowe, docenią zapewne możliwość wykonania natychmiastowego skoku do tekstu źródłowego wskazanej procedury, nawet jeśli jest
ona umieszczona w innym pliku źródłowym. Tekst jest wyświetlany w oknie edytora w kolorach, z wyróżnianiem słów kluczowych. Najlepiej wygląda, gdy zastosuje się proporcjonalną czcionkę np. Courier New. Dostępne opcje konfiguracji edytora zadowolą nawet najbardziej wybrednych. - Przeglądarka [Browser] - to okno, w którym dokonuje się uruchamiania programu. Widoczne są zarówno niskopoziomowe rozkazy mikrokontrolera jak i instrukcje języka wysokiego poziomu Inp. C). Również wykonanie programu może przebiegać na niskim lub wysokim poziomie. W każdej chwili widoczne są aktualne wartości zmiennych programu i rejestrów mikrokontrolera.
Rys. 1
Rys. 2
Elektronika Praktyczna 2/2003
77
PROGRAMY
Już z powyższych charakterystyk wynika, że CodeWarrior umożliwia komfortową pracę na profesjonalnym poziomie. Dodajmy do tego, że programista ma do dyspozycji kompilator języka C/C++ generującego bardzo efektywny kod. Gdyby jednak zachodziła potrzeba jego ,,ręcznego" optymalizowania np. pod względem szybkości działania lub zajętoś-ci pamięci programu, to z pomocą przychodzi Macro Asembler. Program może być przy tym napisany w całości w asem-blerze, mogą być także dokonywane tylko wstawki asemblerowe w programie pisanym w języku C. Jeśli mówimy już o optymalizacji, to nie bez znaczenia będzie podkreślenie ,,umiejętności" linkowa-nia tylko niezbędnych (faktycznie używanych) obiektów do końcowego programu wykonywalnego. Jest on generowany w formatach: Motorola S-Records, Intel Hex lub binarnym. Ciągłą rozbudowę własnego zaplecza programowego ułatwi na pewno Libmaker -narzędzie do tworzenia własnych bibliotek. Uruchamianie programu na etapie symulacji przebiega w czasie rzeczywistym z uwzględnieniem urządzeń peryferyjnych i bez względu na język w którym jest napisany program (asembler, C, C++).
Piszemy program
Tworzenie własnego projektu za pomocą CodeWarrior a w zasadzie nie różni się niczym specjalnym od podobnych programów wielokrotnie już opisywanych na łamach EP. Nie będziemy więc zbyt głęboko wchodzić w szczegóły. Tworzenie końcowego programu użytkowego dla wybranego mikrokontrolera przebiega w kilku etapach. Na wstępie programista musi zorganizować sobie warsztat pracy, czyli określić projekty (projects) i podprojekty - tzw. cele (tar-gets). Dzięki temu CodeWarrior zadba o prawidłową organizację plików i ustawień wykorzystywanych do kreowania programu. Projekt, to plik zawierający jeden lub więcej podprojektów. Podprojekt natomiast to kolekcja plików z kodami źródłowymi wykorzystywanych modułów, bibliotek, ustawień, a także inne projekty. Elementy podprojektów określają, jak ma być utworzony program dla
konkretnego procesora lub systemu operacyjnego. Jest to dość zaawansowana technika, stwarzająca jednak bardzo szerokie możliwości dla pojedynczego programisty lub ich zespołów. W projekcie można umieszczać również pliki dokumentujące, które zazwyczaj są plikami tekstowymi, ale nie tylko. Dopuszczalne jest również stosowanie np. popularnego formatu PDF. Techniki manipulowania plikami - tworzenie nowych, kopiowanie, grupowanie w folderach, kasowanie, itp.
Bez problemów
Aby otrzymać bezpłatną wersję
CodeWarriora wystarczy wypełnić kupon
zgłoszeniowy znajdujący się na stronie
internetowej firmy Motorola pod adresem:
www.motorola.com.
są bardzo intuicyjne. Służą do tego specjalne okna (rys. 1). Utworzenie projektu przebiega w trzech etapach:
- Budowanie projektu (Building a Project).
- Wykonanie projektu (Making a Project).
- Symulacja i debugowanie projektu (Si-mulating and Debugging a Project). Pierwszy etap polega na podaniu nazw
projektu, określeniu lokalizacji plików, ustaleniu wykorzystywanych języków programowania, przygotowaniu wersji źródłowych poszczególnych modułów. W drugim etapie dokonuje się kompilacji i linkowania. Podczas tworzenia rozbudowanych projektów programista najczęściej koncentruje się na kolejnym uruchamianiu poszczególnych modułów. CodeWarrior pozwala mu na kompilowanie jedynie wybranych, dzięki czemu nie marnuje się czasu na wielokrotne powtarzanie tych samych operacji. Dość ciekawą możliwością, o której warto wspomnieć jest disasemblowanie bibliotek.
Po wstępnym wyczyszczeniu programu z błędów formalnych można przystąpić do następnej fazy walki z programem, w której kodowy wojownik znowu odda nam nieocenioną przysługę. Ten etap jest najprzyjemniejszy dla programisty, bo powoli, krok po kroku, pozwala weryfikować przyjęte założenia ogólne, zastosowane algorytmy, sztuczki programowe, itp. Działania te mogą już być wykonywane
na ,,żywym organizmie". Po uruchomieniu debugera ukazują nam się liczne okna przydatne do wykrywania błędów logicznych programu (rys. 2). Widzimy więc wersję źródłową (najczęściej będzie to język C) oraz aktualnie wykonywany fragment programu na poziomie asemble-ra. Mamy przegląd pamięci, rejestrów, stanu urządzeń peryferyjnych wykorzystywanych w systemie, historię wykonanych operacji, liczne okna inspekcyjne. Na tym etapie uruchamiamy program krokowo lub w sposób ciągły, zarówno na poziomie języka C, jak i kodu procesora. Proces debugowania przebiega w bardzo precyzyjnie określonym środowisku. Jest to na pewno zaleta, ale i wada jednocześnie, gdyż niedoświadczonemu programiście odpowiednie skonfigurowanie programu może przysporzyć sporo problemów. Niestety w artykule nie ma miejsca na dokładne przedstawienie wszystkich zagadnień.
Wszyscy są zadowoleni
Najróżniejsi malkontenci trafiają się dość często. Wydaje mi się jednak, że trudno będzie znaleźć kogoś, kto byłby niezadowolony z CodeWarrior a. Nie jest to narzędzie łatwe do opanowania, co początkowo może zniechęcać użytkowników do jego stosowania, ale też nie służy ono do tworzenia kolejnych wersji mikroprocesorowych pipko w-dręczycieli lecz bardzo wyrafinowanego oprogramowania. Jest to narzędzie w pełni profesjonalne, działające na różnorodnych platformach sprzętowych i systemach operacyjnych, obsługujące bogatą listę mikrokontrolerów, a także procesorów sygnałowych Motoroli.
Wszystko jest znakomicie udokumentowane (sam podręcznik języka C/C++, to blisko 700-stronicowa książka w wersji elektronicznej). Zaznajamianiu się ,,wojownikiem" będą pomagać animowane tutoriale, a zagubiony użytkownik w każdej chwili może liczyć na wsparcie techniczne dostępne poprzez wszystkie powszechnie stosowane środki komunikacji. Najświeższe informacje o produktach firmy Metrowerks można znaleźć na stronie firmowej: http://www.metrowerks.coin. Jarosław Doliński, AVT jaroslaw.dolinski@ep.com.pl
78
Elektronika Praktyczna 2/2003
MINIPROJEKTY
Wspólną cechą układów opisywanych w dziale "Miniprojekfy" 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 inteiigencja jest zawarta w układach scaionych, Wszystkie układy opisywane w tym dziaie są wykonywane i badane w laboratorium AVT, Większość z nich znajduje się w ofercie kitów AVT, w v*/yodrębnionej serii ,Miniprojektyn o numeracji zaczynającej się od 1000,
4-kanałowy termometr na Gamę Port
Prezen to wa ny
w artykule projekt jest
przykładem
i n ter es u ją cego
wykorzystania fragmentu
możliwości komputera
PC: jako 4-kanałowego
term om etr u -rejestr a tor a
z możliwością
programowania alarmów.
Rekomendacje: dla
wszystkich
użytkowników PC (także
tych nie lubiących
lutownicy), którzy chcą
za jego pomocą
monitorować
temperaturę
w maksimum czterech
różnych punktach
odległych od komputera
do 12 metrów.
Autorem projektu jest Igor Cesko, który sam swoją rolę w jego opracowaniu określa skromnie: programista. Rzeczywiście, dzięki zastosowaniu jako czujników temperatury nowoczesnych (i mało w Polsce znanych!) układów SMT160 firmy Smartec, zadanie projektanta sprowadza się do napisania oprogramowania odczytującego z układu przetworzony do postaci cyfrowej wynik pomiaru temperatury i wyświetlającego go na ekranie monitora. Zadanie wydawałoby się dość proste, ale do tej pory nikt nie podjął się jego tak skutecznej realizacji...
Drugim problemem, jaki musiał rozwiązać projektant urządzenia był wybór portu dla komunikacji oprogramowania z czujnikami temperatury. Igor rozwiązał to w sposób niebanalny, wybrał bowiem rzadko wykorzystywany Gamę Port, z którego jest pobierane również zasilanie dla czujników.
Schemat elektryczny ilustrujący sposób dołączenia czujników do Gamę Portu pokazano na rys. 1. Autor zastrzega, że maksymalna długość przewodów łączących czujniki z Gamę Portem nie powinna przekraczać 10 metrów, ale z przeprowadzonych przez nas prób wynika, że stabilny odczyt można uzyskać na odległość 12 metrów pod warunkiem zastosowania do doprowadzenia zasilania przewodów o średnicy większej niż 0,6 mm.
Oprogramowanie odpowiadające za odczyt i wyświetlanie temperatur zostało Sensor #0 Sensor #2 Sensor 3 Sensor #1
DB16
O
OSmAT
O
O
3mAT
O
Rys. 1
napisane w bardzo profesjonalny sposób, a zaimplemen-towane w nim funkcje powodują, że urządzenie jest niezwykle użyteczne, choćby do śledzenia temperatur różnych elementów komputera. I tak:
- Program GamePoriTemp nie wymaga instalacji, rozpoczyna on pracę od razu po uruchomieniu. Jak sprawdziliśmy bez trudu radzi sobie z pracą także w tak wymagających środowiskach jak Win NT/XP/2000. Jego główne okno jest niepozorne (rys. 2), ale można w nim ustawić podstawowe parametry pracy pomiarów, takie jak: odstęp pomiędzy kolejnymi pomiarami, czas integracji przetwornika A/C wbudowanego w dołączone czujniki oraz liczbę ostatnich pomiarów, których wyniki są uśredniane przez program.
- Kliknięcie prawym przyciskiem w oknie pokazanym na rys. 2 powoduje wyświetlenie dodatkowych opcji (rys. 2), z których najciekawsze kryją się w Op-iions. Oprócz możliwości skalibrowania wyników pomiarów odczytywanych na wyjściach układów SMT160, użytkownik może zadać dla każdego czujnika progi temperatur (dolny i górny -rys. 4), których przekroczenie jest sygnalizowane wyświetleniem okna z komunikatem alarmowym oraz wymówieniem przez program (niezbędna karta dźwiękowa) wartości temperatury powodującej alarm.
WYKAZ ELEMENTÓW
SMT1Ó0-30 czujniki
temperatury Cl...4 szt.),
dostępne w Elfie, numer
katalogowy 73-038-09
DB15M - klasyczny wtyk męski
(dwurzędowy)
Bezpieczniki 63 mA Cl...2 szt.)
Wzory płytek drukowanych w formacie PDF są dostępne w Iniernecie pod adresem; h ttp: 11 www. ep.com.pll?p dfl IutyO3.htm oraz na płycie CD-EP2/2003 w katalogu PCB.

SMT 1EO-3D10] 26.02*0
w SMT1EO-3G|1| 2tJX3*C\
SMT 160-30 \2\ nfUpłewrfl
f? SMT 1SG-3013] mx ptatani
Me aturp etfdy |i^00 ^J rut
lift A n lime] W _Z} rot
Rys. 2
Program można skonfigurować także w taki sposób, aby wyniki pomiarów wraz ze znacznikami czasu (odczytywanymi z zegara RTC komputera) były rejestrowane w pliku w lubianym przez Excela formacie CSV. Dzięki temu przygotowanie graficznych raportów ilustrujących zmiany temperatury jest bardzo proste. Andrzej Gawryluk, AVT
Oprogramowanie i opis oprogramowania (w języku czeskim) publikujemy na CD-EP2/2003B, są one dostępne także w Iniernecie pod adresami: http://www.cesko.host.-sk/downloa ds/GamePoit-Temp.zip oraz hiip://www.-cesko .hosi.sk/GamePori-Temp.him.
?e
r? 13 J7 abuve 2b
i lut 2 F abow :co
i leu 0 r dv 100
\* Jo^
Rys. 4
Elektronika Praktyczna 2/2003
MINIPROJEKTY
PIC'n'roll, czyli muzyczne fantazje na PIC-ach
O uniwersalności
mikre/kontrolerów nie
trzeba nikogo
przekonywać. Jak się
jednak okazuje,
pomysłowe zastosowanie
tych układów daje
czasami zaskakujące
efekty.
R ekom en da ej e:
projekt zainteresuje
z pewnością wszystkich
fanów mikrokontrolerów,
którzy chcą poznać ich
nieodkryte możliwości.
Autorem prezentowanego projektu jest Amerykanin Vardan Antonyan z firmy HTC. Za pomocą przemyślanego programu przygotowanego na mikro kontroler PIC12C503 "przeistoczył" go w odtwarzarkę melodii, których binarne zapisy są przechowywane w taniej, nieulot-nej pamięci EEPROM.
Schemat elektryczny proponowanego rozwiązania pokazano na rys. 1. Układ U2 to w istocie standardowy PIC12C503, w którego pamięci znajduje się odpowiedni program, udostępniony przez Yardana bezpłatnie (publikujemy go na CD-EP2/2003B). W nomenklaturze przyjętej
przez Yardana, tak zaprogramowany PIC12C503 nosi oznaczenie HTC751. Dołączona do mikrokontrolera pamięć EEPROM (Ul) z interfejsem VC spełnia rolę pamięci melodii, których może być maksymalnie 4. Odtwarzaną melodię wybiera się za pomocą jumperów JPl i JP2. W urządzeniu można zastosować pamięci kompatybilne z 24C01/02/0S/16, co wiąże się oczywiście z różnymi maksymalnymi czasami odtwarzania (każdy bajt służy do przechowania pojedynczej nuty). Tranzystory Tl i T2 spełniają rolę wzmacniacza mocy, dzięki któremu sterowany jest głośnik.
Rys. 2
Rys, 3
Układ HTC751 może odtwarzać dźwięki w zakresie trzech oktaw (rys. 2), przy czym czas trwania każdego dźwięku można swobodnie programować (możliwy jest jeden z czterech standardowych czasów - szczegóły znajdują się w dokumentacji zamieszczonej na CD-EP2/2003B).
Autor projektu przygotował bezpłatny program narzędziowy MelodyCoinpiler (rys. 3), za pomocą którego można wygodnie przygotowywać własne melodie do odtwarzania i kompilować je do postaci akceptowanej przez HTC751.
Do prezentowanego projektu nie przygotowaliśmy płytki drukowanej, a egzemplarz modelowy został sprawdzony na niewielkiej płytce prototypowej. Andrzej Gawryluk, AVT
WYKAZ ELEMENTÓW
Rezystory
Rl: lOkO R2, R3: lOOkO R4: lkG Kondensatory
Cl: lOOnF
C2:
C3:
Półprzewodniki
Tl: BCS47
T2: BCS57
Ul: 24C01/02/04/08/1Ó
U2: PIC12C508
(zaprogramowany)
Różne
Gl: głośnik 8O
JPl, JP2: jumpery+golclpiny 2x1
Sl: włgcznik chwilowy
Płytka drukowana jest dostępna w AVT - oznaczenie AYT-1363.
Wzory płytek drukowanych w formacie PDF są dostępne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl IutyO3.htm oraz na płycie CD-EP2/2003 w katalogu PCB.
80
Elektronika Praktyczna 2/2003
Większość kompilatorów języka C oferuje szereg różnych
część 9
modeli pamięci. Który z nich wybrać? Jakie kryteria wyboru stosować? Jaki wpływ ma zastosowany model kompilacji na optymalizację kodu wynikowego oraz czas wykonywania programu przez mikrokontroler?
Konfiguracje pamięci mikrokontrolera 8051 dla programów napisanych w języku C, część 1
Podstawy: fizyczne lokalizacje segmentów pamięci
Prawdopodobnie najbardziej irytującym podczas pisania programów dla mikrokontrolerów 8051 i pochodnych jest fakt, że posiadają one kilka różnych obszarów pamięci zaczynających się od tego samego adresu. Inne mikrokontrolery, dla przykładu z rodziny 68HC11, mają ciągłą przestrzeń adresową, w której poszczególne obszary pamięci umieszczone są kolejno jeden za drugim, w zależności od tego, czy istnieją w danym mikrokontrolerze, czy też nie. Jest to zgodne z konfiguracją pojedynczego obszaru pamięci według założeń von Neumana.
W mikrokontrolerze 8051 pamięć podzielono na kilka części dostępnych na różne sposoby. Aby dobrze zrozumieć zasady użycia poszczególnych rodzajów pamięci i modeli kompilacji, musimy przyjrzeć się bliżej temu podziałowi i miejscom fizycznej lokalizacji komórek pamięci.
Pierwszy z segmentów nazywa się DATA. Mowa tu o wewnętrznej pamięci RAM mikrokontrolera zwanej segmentem danych. Zaczyna się on od adresu 0x00 i kończy pod adresem 0x7F (127 dziesiętnie). Główne przeznaczenie tego segmentu pamięci to przechowywanie zmiennych wykorzystywanych przez program w czasie pracy. Obszar ten dostępny jest jako adresowany bezpośrednio. Znajdą tu zastosowanie instrukcje asemblera z grupy MOV A,n - MOV n,A.
Od adresu 0x80 umieszczony jest tak zwany rejestr funkcji specjalnych SFR [Special Function Register), który również może być adresowany bezpośrednio. Powyżej adresu 0x80, do adresu 0xFF, rozciąga się część drugiego obszaru pamięci RAM, zwanego IDATA, który może być adresowany wyłączenie pośrednio. Znajdują tu zastosowanie instrukcje z grupy MOV A,@Ri (i=0 lub i=l).
Standardowe wersje mikrokontrolerów 8051 są wyposażone w 128 bajtów pamięci DATA. Dodatkowy seg-
ment IDATA pojawił się w momencie wprowadzenia do sprzedaży mikrokontrolerów z rodziny 8052. Segment ten nie jest częścią pamięci DATA. Rozciąga się od adresu 0x00 do 0xFF i może być adresowany wyłącznie pośrednio. Z związku z tym dobrze jest stosować go nie w celu zapamiętywania zmiennych, ale z przeznaczeniem na stos mikrokontrolera. Jednostka centralna będzie wtedy używała tego segmentu, adresując go za pośrednictwem wskaźnika stosu. Oczywiście pisząc programy w języku C, trudno jest wywrzeć wpływ na to, do czego kompilator będzie wykorzystywał obszar IDATA. Jest to możliwe tylko poprzez zmianę parametrów linkera, jednak wymaga to gruntownej wiedzy na temat zasad funkcjonowania kompilatora oraz daleko posuniętej ostrożności przy wprowadzaniu zmian. Opisaną tutaj zasadę należy stosować podczas pisania programów w asemblerze, natomiast w przypadku C zalecam zdać się na autorów kompilatora, chyba że jakieś specjalne powody zmuszają do innego podejścia.
Obszar IDATA nakłada się na obszar rejestru SFR. Jawnie widać tu pewną sprzeczność: IDATA dzielący wspólnie przestrzeń adresową z SFR może być adresowany tylko pośrednio, natomiast do SFR mają dostęp instrukcje adresowania bezpośredniego ! Aby było ciekawiej, obydwa te segmenty znajdują się w obszarze wewnętrznej pamięci RAM mikrokontrolera. Czyli patrząc na to od strony programisty 8051 - to do jakiego obszaru pamięci zapisywane czy z jakiego odczytywane są dane, zależy od sposobu w jaki zostanie zaadresowany ten sam obszar pamięci. Ten sam w znaczeniu fizycznie wpisywanego adresu, nie zaś segmentu pamięci mikrokontrolera. Pomoże to zrozumieć poniższy fragment programu asemble-rowego: M0V 0A0H, ftdana; zapis do obszaru
;SFR, w tym przypadku do P2
;(równoznaczny zapis to
;M0V P2,#dana) M0V R0,#0A0H M0V @R0,#dana ;zapis do obszaru
;IDATA (nie do P2!)
Pierwsza linia przykładowego programu zapisuje dane do obszaru SFR, w tym przypadku jest to port P2. Druga i trzecia linia, mimo że powodują zapis bajtu pod ten sam adres, to jednak używane jest adresowanie pośrednie (adresowanie za pomocą rejestru R0) i bajt zostaje zapisany w segmencie IDATA, a nie jak poprzednio w SFR. Warto o tym pamiętać, tworząc własne aplikacje.
Trzeci segment pamięci, nazywany CODE, również rozpoczyna się od adresu 0x0000, ale zarezerwowany jest na pamięć programu. Typowo obszar ten zajmuje adresy od 0x0000 do 0xFFFF (65536 bajtów) i jeśli używany jest mikrokontroler 8031, to segment ten w całości podłączany jest z zewnątrz w postaci dodatkowego układu pamięci ROM. Niektóre mikrokontrolery, np. 8051, posiadają jednak wewnętrzną pamięć ROM, pełniącą tę samą rolę. Segment pamięci programu dostępny jest przez instrukcje wykorzystujące do adresowania licznik rozkazów PC oraz 16-bitowy rejestr DPTR. Oczywiście w segmencie CODE mogą być przechowywane wyłącznie wartości stałe, takie jak tablice danych, a przede wszystkim instrukcje programu wykonywanego przez mikrokontroler.
Czwarty segment pamięci, nazywany XDATA (czasami można się spotkać z określeniem XRAM), również znajduje się poza mikrokontrolerem. Zaczyna się od adresu 0x0000 i tak, jak segment CODE, kończy się pod adresem 0xFFFF. Jedna uwaga: omawiając przestrzeń adresową pamięci CODE czy XDATA, opisuję możliwość jej fizycznego rozszerzenia, a nie przymus zajmowania całego dostępnego obszaru przez dane urządzenie (układ) podłączone w tej przestrzeni adresowej.
W zestawie rozkazów 8051 można znaleźć tylko jedną metodę dostępu do
Elektronika Praktyczna 2/2003
85
KURS
CODE XDATA
PDATA (256b)
PDATA (256b)
PDATA (256b)
0x0000
Rys. 1
całego segmentu XDATA za pomocą pojedynczego rozkazu. Służą do tego instrukcje wykorzystujące do adresowania rejestr DPTR. Niemniej jednak cały obszar XDATA (od adresu 0x0000 do 0xFFFF) może być też dostępny w trybie stronicowania. Do adresowania pamięci w obszarze 256-bajtowej strony jest tu używany ośmiobitowy rejestr R0 lub Rl. W tym przypadku starszą część adresu (numer strony) trzeba ustawić "ręcznie" np. poprzez wpisanie odpowiedniej wartości do P2. Trzeba przy tym pamiętać, że P2 nie bierze aktywnego udziału podczas takiego adresowania (nie pełni funkcji szyny systemowej). Równie dobrze może być wykorzystany inny rejestr lub nawet tylko jego część. Obszar ten nazywany jest PDATA (rys. 1).
Pojawia się pytanie: w jaki sposób jednostka centralna mikrokontrolera 8051 rozróżnia fizycznie inne i o innym przeznaczeniu obszary pamięci? W jaki sposób kod instrukcji programu pobierany jest spod adresu CODE:0x0000, zamiast DATA:0x00? Odpowiedź tkwi w budowie mikrokontrolera. Gdy CPU żąda dostępu do segmentu DATA, załączany jest wewnętrzny RAM przez wewnętrzny sygnał odczytu READ - odpowiednik tego sygnału wyprowadzany na zewnątrz (wyprowadzenie READ mikrokontrolera) nie zmienia się.
Odczyt i zapis bajtu z wykorzystaniem akumulatora w trybie adresowania bezpośredniego można uzyskać za pomocą poleceń:
M0V A,40H
;odczyt bajtu spod adresu 0x40
M0V 40H,A
;zapis bajtu pod adres 0x40
Jest to podstawowy tryb dla modelu pamięci SMALL.
Odczyt bajtu z wykorzystaniem trybu adresowania pośredniego z segmentu IDATA za pośrednictwem akumulatora i rejestru R0 wygląda następująco:
M0V R0,#0A0H
;odczyt bajtu z segmentu IDATA
;znajdującego się pod adresem
M0V A,@R0
;0xA0 do akumulatora
IDATA
DATA
OxFF
nBDATA
0x20 0x1 F
Ten tryb adresowania używany jest do dostępu do pośrednio adresowanych komórek pamięci IDATA leżących powyżej 0x80 i jest alternatywną metodą dostępu do danych leżących poniżej tego adresu.
W obrębie segmentu DATA znajduje się również obszar nazywany BDATA. Jest to szesnaście bajtów (128 bitów) zajmujących przestrzeń adresową od 0x20 do 0x2F w obszarze adresowania bezpośredniego. Specjalną cechą tego obszaru jest to, że oprócz instrukcji M0V mają zastosowanie również instrukcje operujące na pojedynczych bitach i wykorzystujące specjalny tryb adresowania pojedynczych bitów.
Zewnętrzna pamięć ROM (segment CODE) nie jest załączana podczas dostępu do RAM czy XDATA (XRAM). Jej wyborem steruje sygnał PSEN [Program Storę Enable) - zmiana poziomu wyprowadzenia PSEN na niski uaktywnia pamięć programu. Nazwa wyprowadzenia sygnału jest jednocześnie sugestią, że główną rolą pamięci ROM jest przechowywanie instrukcji programu.
Pewną ciekawostkę stanowi fakt, że jeśli mikrokontroler posiada wewnętrzną pamięć ROM (FLASH, EP-ROM), to w cyklu dostępu do tej pamięci stan zewnętrznego, wyprowadzenia PSEN nie zmienia się dotąd, aż przekroczony zostanie obszar adresowania wewnętrznego ROM. Po tym fakcie mikrokontroler wykonuje normalny cykl dostępu do zewnętrznej pamięci programu wyprowadzając przez porty PO i P2 adresy oraz pobierając instrukcje do wykonania z zewnętrznej pamięci ROM. W takiej sytuacji, jeśli zewnętrzna pamięć ROM jest ulokowana od adresu 0x0000, to bajty leżące poniżej końca adresu wewnętrznej pamięci ROM (na przykład dla 4 kB będzie to adres 0x1000) nie będą dostępne.
Podłączone do mikrokontrolera z zewnątrz segmenty XDATA oraz CODE nie są ze sobą w konflikcie. Ich rozdział jest przeprowadzany przez zewnętrzne sygnały sterujące. Jak wcześniej wspomniałem, dostęp
do obszaru CODE aktywowany jest za pomocą PSEN. Dostępem do obszaru XDATA sterują zewnętrzne sygnały READ (odczyt) i WRITE (zapis). Wyprowadzenie PSEN nie bierze udziału w cyklu dostępu do danych zawartych w segmencie XDATA.
Aby odróżnić polecenia dostępu do danych zawartych w segmencie XDATA od pozostałych, wprowadzono specjalne instrukcje zawierające w swej nazwie literę X:
M0V DPTR,#08000H
;zapamiętaj daną zawartą
;W akumulatorze pod adresem
M0VX A,@DPTR
;0x8000 W pamięci XDATA
Ten alternatywny tryb dostępu do pamięci XDATA jest podstawowym dla modelu COMPACT. Zauważ, że jeśli Port 2 podłączony jest do starszych linii adresowych, może on pracować jako przełączany przez aplikację kontroler stron pamięci.
Istotną do zapamiętania informacją jest to, że wyprowadzenie PSEN przyjmuje stan niski, jeśli pobierany jest kod instrukcji, natomiast wyprowadzenia READ i WRITE podczas wykonywania przez CPU rozkazu MOVX. Litera X w symbolu polecenia języka asembler mikrokontrolera 8051 oznacza rozkaz związany z urządzeniem podłączonym z zewnątrz, aktywowanym za pomocą READ lub WRITE.
Dostępne modele pamięci
Pisząc program dla mikrokontrolera 8051, pierwsza decyzja, którą musisz podjąć to taka, jaki model pamięci wybierzesz. Podczas gdy programista komputera PC dokonuje wyboru pomiędzy modelami TINY, SMALL, MEDIUM, COMPACT, LAR-GE i HUGE, aby kontrolować jak używane są segmenty pamięci RAM komputera PC, programista 8051 planujący swoją aplikację musi podjąć decyzję na podstawie tego, gdzie znajdują się dane niezbędne podczas pracy mikrokontrolera.
Popularnie używane kompilatory Keil i Raisonance aktualnie obsługują następujące konfiguracje pamięci:
1. ROM - największy rozmiar zbioru obiektu, który może powstać po kompilacji, to 64kB, jakkolwiek znacznie większe rozmiary pamięci ROM (do 1 MB - kompilator Keil, do 4 MB - kompilator Raisonance) mogą być obsługiwane w trybie przełączanych banków pamięci (BANKED) opisanym w dalszej części artykułu. Zmienne mogą być deklarowane przy użyciu słowa kluczowego co de umieszczającego je w pamięci progra-
86
Elektronika Praktyczna 2/2003
KURS
mu mikrokontrolera. Nazwa zmienne jest tu myląca, ponieważ zadeklarowana, na przykład tablica może pełnić rolę wzorca - nigdy zaś zmiennej.
2. RAM - dostępne są trzy modele pamięci: SMALL, COMPACT i LARGE:
- SMALL - wszystkie zmienne zostają umieszczone w wewnętrznej pamięci mikrokontrolera
- COMPACT - zmienne zostają zapamiętane w segmencie pamięci PDA-TA, adresowanej przez port PO (z bankami przełączanymi przez P2). Używany jest tryb adresowania pośredniego. Wewnętrzne rejestry mikrokontrolera są w dalszym ciągu używane do przechowywania lokalnych zmiennych i parametrów.
- LARGE - zmienne i parametry przechowywane są w zewnętrznej pamięci adresowanej za pośrednictwem @DPTR. Wewnętrzne rejestry mikrokontrolera w dalszym ciągu używane są do przechowywania zmiennych i parametrów.
- BANKED (przełączane banki pamięci) - program może zajmować do 1 MB - kompilator Keil lub 4 MB - kompilator Raisonance. Pamięć przełączana jest w formie "stron" o rozmiarze 64kB każda za pomocą innych niż właściwe dla PO i Pl wyprowadzeń mikrokontrolera albo też za pomocą zatrzasków latch umieszczonych w przestrzeni adresowej, powyżej adresu OxFFFF. Każdy 64 kB blok pamięci programu musi posiadać ustawiony tak zwany blok wspólny (COMMON AREA) dla biblioteki funkcji przełączającej banki pamięci.
Firma Raisonance wprowadziła do swojego kompilatora dodatkowy model pamięci TINY, który jest identyczny z modelem SMALL z tą różnicą, że podczas kompilowania programu generowane są instrukcje ACALL iAJMP, zamiast LCALL i LJMP. Limituje to rozmiar obszaru pamięci programu do 2 kB i jest użyteczne szczególnie dla mikrokontrolerów, które nie obsługują lub nie potrzebują instrukcji LCALL i LJMP, czyli mających do 2 kB pamięci ROM w swojej strukturze (AT89C2051, 87C751 itp.) oraz nieposiadających na zewnątrz wyprowadzeń PSEN, READ i WRITE. W Keilu można korzystać z dyrektywy ROM, np. #PRAGMA ROM(SMALL) spowoduje używanie wyłącznie rozkazów ACALL i AJMP.
Możliwe jest również łączenie poszczególnych modeli pamięci tak, aby zmusić kompilator do lokowania zmiennych i danych w określo-
Tab. 1.
Nazwa segmentu pamięci Zalecany do... Nie zalecany do...
DATA Rozmiar 128 bajtów, domyślny dla modelu SMALL Często używanych danych wymagających szybkiego dostępu. Procedur obsługi przerwań, które powinny być wykonywane bardzo szybko, powinny używać obszaru DATA, poprzez lokalną deklarację funkcji jako stosującej model SMALL. Często wywoływanych podprogra-mów pobierających czy przekazujących dużą liczbę parametrów. Stosu funkcji typu re-entrant. Zmiennych tablicowych i struktur zawierających więcej niż kilka -kilkanaście bajtów.
I DATA 128 lub 256 bajtów, nie jest przypisany do żadnego z modeli kompilacji Zmiennych tablicowych i struktur o ograniczonym do około 32 bajtów rozmiarze. Uwaga: suma rozmiarów struktur i zmiennych tablicowych nie powinna przekraczać 64 bajtów. Stosu mikrokontrolera (lokowany jest on w obszarze IDATA i adresowany pośrednio przy pomocy SP). Dużych tablic i struktur oraz zmiennych z wymaganym krótkim czasem dostępu.
CODE 64kB Stałe programu. Duże tablice konwersji PLUS oczywiście instrukcje programu! Zmiennych.... To jest ROM, więc nie mogą być tu zapisywane żadne zmienne.
PDATA 256 bajtów, obszar domyślny dla modelu COMPACT Funkcji obsługi przerwań o niezbyt krytycznym czasie wykonywania. Zmiennych typu char, niedużych tablic i struktur o wymaganym krótkim czasie dostępu. Doskonała do zmiennych, które muszą być monitorowane w czasie rzeczywistym podczas uruchamiania programu przy pomocy ICE. Dużych tablic i struktur o rozmiarze przekraczającym 256 bajtów Bardzo często używanych danych oraz zmiennych wykorzystywanych przez procedury obsługi przerwań Zapamiętywania zmiennych typu single, float, double itp.
XDATA do 64kB, domyślny dla modelu LARGE Dużych tablic i strukturo rozmiarze powyżej 256 bajtów. Zmiennych o niezbyt krytycznym czasie dostępu. Zmiennych rzadko używanych. Doskonała do zmiennych, które muszą być monitorowane w czasie rzeczywistym podczas uruchamiania programu przy pomocy ICE. Bardzo często używanych danych. Zmiennych wykorzystywanych przez procedury obsługi przerwań. Zapamiętywania zmiennych typu single, float, double itp.
nych segmentach pamięci, pod określonym adresem.
Wybór najlepszego modelu pamięci
Model TINY nie nastręcza żadnych trudności przy wyborze. Stosuje się go raczej do bardzo małych programów. Dla większości aplikacji wykonywanych dla mikrokontrolera 8051 wystarczający jest model SMALL. Stosując go można również używać zewnętrznej pamięci znajdującej się w segmencie PDATA. Dostęp do niej uzyskuje się za pomocą instrukcji MOVX A,@Ri i MOVX @Ri,A.
SMALL - pamięć RAM, 128 bajtów
Używając modelu SMALL, należy zredukować do minimum liczbę zmiennych globalnych używanych w programie. Pozwoli to linkerowi na nakładkowanie funkcji w taki sposób,
aby aplikacja pracowała efektywnie. W przypadku mikrokontrolerów z serii 8052/8032 deklaracje zmiennych w przestrzeni IDATA powyżej adresu 0x80 mogą pozwolić aplikacji na uzyskanie dodatkowej przestrzeni do przechowywania zmiennych. Należy jednak pamiętać, że obszar ten używany jest również na stos mikrokontrolera.
Model SMALL można także stosować przy kompilacji nawet bardzo dużych programów, umieszczając obiekty duże i takie, do których nie jest wymagany bardzo szybki dostęp, w zewnętrznej pamięci RAM. Dobrze jest tam również ulokować zmienne, które muszą być dostępne w czasie rzeczywistym podczas uruchamiania urządzenia z mikrokontrolerem przy pomocy emulatora, ponieważ emula-tory (takie jak produkowane przez Hitex albo Raisonance) mają bezpośredni dostęp do tego segmentu pa-
Elektronika Praktyczna 2/2003
87
KURS
Ust. 1.
#pragma COMPACT
/* model SMALL */
yoid SmallFunc() smali
printf("%s\n", Hello!");
/* model LARGE */
void LargeFunc() large
printf("%s\n", Hello!");
/* program główny */
void main()
SmallFUnc();
LargeFunc();
Ust. 2.
#pragma COMPACT
void fast_func() SMALL
{
..... kod.....
mięci. Ten model najlepszy jest również dla aplikacji o krytycznym czasie wykonywania, jako że gwarantuje on najszybszy dostęp do zmiennych i parametrów przez funkcje, podczas gdy duże obszary danych mogą zostać umieszczone poza układem mik-rokontrolera.
COMPACT - pamięć RAM 256 bajtów poza układem, 128 lub 256 bajtów w układzie
COMPACT to model pamięci dostosowany do programów, gdzie dla przykładu wewnętrzny RAM mikro -kontrolera przeznaczony jest na zmienne systemu operacyjnego. Model ten jest rzadko używany dla całego programu. Najbardziej użyteczna kombinacja to jego połączenie z modelem SMALL używanym lokalnie dla procedur obsługi przerwań. COMPACT stosuje się przede wszystkim do programów zawierających dużą liczbę zmiennych, które nie wymagają krótkiego czasu dostępu. Odbywa się on bowiem za pomocą instrukcji MOVX A,@Ri wykorzystującej tryb adresowania pośredniego przy pomocy rejestru RO lub Rl. COMPACT może być również bardzo użyteczny dla aplikacji wymagających stosu o dużym rozmiarze, co może oznaczać konieczność umieszczenia go w zewnętrznej pamięci RAM poza układem mikro-kontrolera.
LARGE - pamięć RAM do 64kB poza układem, 128 lub 256 bajtów w układzie
Model LARGE pozwala na niezbyt szybki dostęp do bardzo dużego obszaru pamięci RAM i jest przypuszczalnie najłatwiejszy w stosowaniu. Podobnie jak poprzednio, niezbyt często używa się go w niezależnie -najczęściej jest stosowany w połączeniu z modelem SMALL. Tak jak
w COMPACT, nadal używane są rejestry mikrokontrolera.
Wybór optymalnego segmentu dla danych
Podsumowując: mikrokontroler 8051 oferuje pięć segmentów pamięci dostępnych dla danych, z których każdy ma swoje pewne specyficzne cechy. W tab. 1 przedstawiamy kilka wskazówek, ułatwiających dobór modelu do aplikacji.
Uwagi dotyczące stosowania modelu COMPACT
Przestrzeń XDATA jest adresowana przez DPTR, który umieszcza połówki 16-bitowego adresu w portach PO i P2. Model COMPACT używa również RO jako 8-bitowego wskaźnika, który umieszcza adres w tylko w porcie P0...P2. Jest on pod pełną kontrolą użytkownika i ponieważ jego wyprowadzenia połączone są z liniami adresowymi układu pamięci, pełni rolę przełącznika jej stron. Kompilator nie posiada informacji na temat stanu portu P2 i dopóki użytkownik nie ustawi jego wartości będzie ona niezdefiniowana, zazwyczaj równa 0xFF. Domyślnym dla zmiennych modelu COMPACT jest obszar PDATA adresowany za pomocą RO. Linker łączy zmienne XDATA oraz PDATA i umieszcza te ulokowane w obszarze PDATA od adresu 0x00. Niekoniecznie jest to intencją programisty - czasami zmienne mogą znajdować na którejś z kolejnych stron pamięci. Kompilator jednak używając jako domyślnego segmentu PDATA adresuje go za pośrednictwem RO nie ustawiając tym samym wartości portu P2 odpowiedniej dla pożądanej strony pamięci RAM. Tak więc w rezultacie program COMPACT nie będzie pracował poprawnie.
Kiedy używa się kompilatora Keil bardzo ważne jest aby wartość PPA-GE zawartą w zbiorze startup.aSl ustawić na znaną wartość - dobrym wyborem jest 0x00. Stała PPAGEE-NABLE musi być ustawiona na "1" aby włączyć tryb stronicowania pamięci. Zaniedbanie tych nastaw zaowocuje bardzo niebezpiecznymi wynikami, jako że dane będą lokowane w zależności od przypadkowej wartości portu P2.
Kompilator Raisonance ustawia port P2 i zezwala na tryb stronicowania automatycznie. Podczas pracy linkera parametr PDATA(ADDR) musi być ustawiony aby powiedzieć linke-rowi pod jakim adresem znajduje się obszar PDATA.
Wybór modelu pamięci
Model pamięci, zarówno dla narzędzi firmy Keil jak i Raisonance, wybiera się przy pomocy polecenia ttpragma umieszczonego w pierwszej linii programu. Format polecenia jest następujący:
ftpragma np. ftpragma LARGE
Domyślnie używany jest model SMALL i jak wspomniano wcześniej, może on mieć zastosowanie również do całkiem sporych programów, zapewniając pełną funkcjonalność segmentów PDATA i XDATA dla danych o niezbyt krytycznym czasie dostępu. Kompilatory C pozwalają również na lokalne definiowanie modeli pamięci przyporządkowanych do indywidualnych funkcji. Konsekwencją tego jest fakt, że w obrębie pojedynczego modułu, funkcje mogą zostać zadeklarowane jako SMALL, COMPACT lub LARGE (list. 1).
Program napisany w języku C może zawierać wszystkie mniej ważne funkcje skompilowane jako COMPACT oraz funkcje krytyczne pod względem czasu wykonywania (np. obsługi przerwań) skompilowane jako SMALL. Może to jednak w połączeniu z użyciem polecenia ttpragma doprowadzić do niezamierzonych efektów pracy linkera, do komunikatów typu MUL-TIPLE PUBLIC DEFINTION (wielokrotna definicja funkcji). Powód jest taki, że podczas kompilowanie modułów jako COMPACT kompilator tworzy odniesienia do biblioteki funkcji właściwej dla tego modelu a funkcje kompilowane z wykorzystaniem modelu SMALL będą korzystały z biblioteki funkcji dla SMALL. Podczas pracy linkera, dla przykładu dwie definicje putchar() pochodzące z dwóch różnych bibliotek mogą zostać odnalezione.
Rozwiązaniem jest ustawienie jednego globalnego modelu i następnie użycie atrybutu SMALL opisywanego w poprzedniej sekcji do ustawienia modelu pamięci lokalnie (list. 2). Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Źródło:
Embedded Systems Academy http://www.esacademy.com/
Elektronika Praktyczna 2/2003
KURS
CRC doda Ci pewności, część 2
Kontynuujemy omawianie metody obliczania CRC (Cyclic Redundancy Codes). W pierwszej części artykułu zapoznaliśmy się z podstawami arytmetyki stosowanej do tego celu. Razując na tej wiedzy, postaramy się uchwycić istotę metody obliczania CRC.
Po sporej dawce teorii z poprzednie- ==10100.
go odcinka, Czytelnicy zapewne sprag- 10011,
nieni są bardziej praktycznych ćwiczeń. ------- i m
Wiemy jednak, że nie od razu Kraków = = llio Reszta z dzielenia i b?i...'.""
zbudowano. Nie uda nam się jeszcze (suma kontrolna) -^ :v-1 i".",V(^_
stworzyć gotowej procedury, którą będzie igL v*l-
można wykorzystać we własnym progra- Sam wynik działania (iloraz) jest dla (5? JUSt*1
mie, jakkolwiek mam nadzieję, że przy- naszych celów zupełnie nieistotny, mo- O WS^ v^t'a"
kłady zawarte w tym odcinku znacznie żerny go całkowicie zignorować. Najważ- ' >*"V tvJ^--*" *
zbliżą nas do celu. niejsza jest reszta z dzielenia stanowią- Ś r -
Przed przystąpieniem do kolejnych ca obliczoną sumę kontrolną. Zazwy- .' j V
ćwiczeń proponuję szybciutko przypo- czaj jest ona zapisywana do przesy-
mnieć sobie samodzielnie na czym pole- łanej wiadomości (tak jak w powy- ,t\~
ga dzielenie w arytmetyce CRC. Wdał- ższym przykładzie zrobiliśmy zżera- ^
szych rozważaniach dzielnik ilorazu bę- mi) i utworzony w ten sposób zmodyfi-
dziemy nazywać wielomianem generują- kowany komunikat jest następnie trans-
cym lub krótko generatorem. W termino- mitowany. W omawianym przypadku wy-
logii angielskiej stosuje się również syłana wiadomość miałaby postać:
określenie poły. Jego znaczenie jest bar- 11010110111110. Na drugim końcu toru Podczas gdy T mod G jest równe 0, to dzo istotne we wszystkich algorytmach transmisyjnego odbiornik ma do wyboru (TE) mod G = E mod G. Tak więc roz-obliczających CRC. Jak się okaże, szcze- dwie możliwości: miar wybranego przez nas generatora bę-gólnie ważny będzie stopień tego wielo- 1. Odseparować wiadomość od sumy dzie miał istotny wpływ na detekcję błę-mianu. Jest on określony przez pozycję kontrolnej. Obliczyć sumę kontrolną po dów. Przyjmijmy na wiarę, że błędy bę-najstarszego współczynnika o wartości 1. wcześniejszym dopisaniu Wżer na koń- dące wielokrotnością generatora pozosta-Na przykład wielomian 10011 jest stop- cu wiadomości, a następnie porównać ną nie wykryte. Naszym zadaniem jest nia 4 (ozn. W=4), nie 5, bo pozycja naj- obie sumy. znalezienie takiego wielomianu G, aby starszej jedynki jest równa 4 (liczymy od 2. Obliczać sumę w biegu (bez dopi- jego stopień był jak najmniejszy, gwa-zera). Będziemy go używać w dalszych sywania zer) i sprawdzić, czy obliczona rantując przy tym odpowiednio wysokie obliczeniach. W praktyce wykorzystuje suma będzie równa zero. prawdopodobieństwo wykrycia błędu się najczęściej wielomiany stopnia 16 Obie powyższe metody są równoważ- w zaszumionym torze transmisyjnym. Polub 32, co ułatwia implementację algo- ne. W dalszej części artykułu skupimy patrzmy teraz z jakimi rodzajami błędów rytmów w programach komputerowych. się na metodzie 2, gdyż z matematycz- możemy się spotkać.
Mając wybrany generator spróbujmy nego punktu widzenia jest nieznacznie
jeszcze raz podzielić przez niego wielo- prostsza. Błędy pojedyncze
mian reprezentujący pewną transmitowa- Mówiąc obłędzie pojedynczym ma-
ną wiadomość (obliczenia w arytmetyce Wybór generatora my na myśli przykładowo
CRC). Przed przystąpieniem do obliczeń Wybór odpowiedniego generatora to E=10000...0000. Taka klasa błędów bę-
zastosujemy jednak mały trik polegający temat, który nadawałby się bardziej na dzie na pewno wykryta, gdy co najmniej
na dopisaniu na końcu wiadomości ta- pracę doktorską niż na krótki artykuł dwa bity generatora G będą równe 1.
kiej liczby zer, która odpowiada stopnio- w EP. Rozwiązanie pewnych zagadnień Gdybyśmy wykonywali mnożenie G po-
wi generatora, czyli w naszym przypad- wymagają stosowania niełatwego aparatu legające (jak pamiętamy) na operacji
ku 4: matematycznego. Nie będziemy więc przesuwania i dodawania pewnej stałej
wiadomość oryginalna: 1101011011 wnikać w szczegóły. wartości z ustawionym w tym przypadku
generator: 10011 Transmitowaną wiadomość oznaczy- tylko jednym bitem, nie było by więc
wiadomość przygotowana do obliczeń: my literą T. Załóżmy, że T jest wielo- możliwe skonstruowanie takiej liczby,
11010110110000 krotnością generatora. Zauważmy, że: w której tylko jeden bit byłby ustawio-
- W ostatnich bitów wiadomości T to ny. Zawsze pozostaną dwa ostatnie bity.
Wykonajmy teraz dzielenie (kropki reszta z dzielenia T przez generator,
ułatwiają podpisywanie cyfr): - po drugie - dodawanie jest w arytme- Błędy podwójne
tyce CRC równoważne odejmowaniu, Dla wykrycia wszystkich błędów ty-
1100001010 tak więc dodając resztę z dzielenia od- pu 100...000100...000 (E posiada dwa bi-
--------------------- kładamy tę wartość do następnego ty o wartości 1) wybieramy G, które nie
11010110110000; 10011 mnożenia. Jeśli teraz przesyłana wia- będzie wielokrotnością 11, 101, 1001,
10011......... domość ulegnie przekłamaniu w od- 10001, 1000001, itd. Przyjmijmy to na
--------........ biorniku otrzymamy TE, gdzie E jest wiarę.
= 10011........ wektorem błędu. Zwróćmy uwagę na
10011........ to, że sumowanie jest prowadzone Błędy z nieparzystą liczbą
-------------rrr w arytmetyce CRC (odpowiada np. bitów
= = = = = 10110, , , operacji XOR). Wykrycie takich błędów jest możli-
10011. .. Teraz odebrana informacja poddawa- we przez wybranie G z parzystą liczbę
na jest operacji dzielenia TE przez G. bitów. Zauważmy, że mnożenie CRC jest
Bezpieczna wymiana danych w systemach mikroprocesorowych
Elektronika Praktyczna 2/2003
39
KURS
ujście
Rys. 1
2 1 O bity
nr bitu ->
pobieranie
wiadomości
111= GENERATOR
niczym innym, jak wielokrotnym XOR-owaniem pewnej stałej z odpowiednimi przesunięciami. Pamiętamy również, że XOR-owanie to w gruncie rzeczy zwykłe przełączanie bitów. Biorąc to pod uwagę, jeśli będziemy XOR-ować liczbę z parzystą liczbą jedynek zawsze w wyniku obliczeń zostanie nieparzysta liczba jedynek. Na przykład weźmy E=lll i spróbujmy przełączyć wszystkie trzy bity przez powtarzanie XOR-owania z liczbą 11, przesuwając ją po każdym kroku. Otrzymamy E=E XOR 011 (w pierwszym kroku) i E=E XOR 110 (w drugim kroku). Jak widać sztuka się nie udała, jedna jedynka pozostała niezmieniona.
Błędy typu burst
Błąd burst to ciąg jedynek poprzedzony i zakończony ciągiem zer: E=000...000111...11110000...000. Powyższą zależność można zapisać inaczej: E=(10000...00)(lllllll...lll), gdzie występuje z zer w lewej części i n jedynek w prawej. Do wykrycia błędu tego typu wystarczy ustawić najmłodszy bit G na 1. Lewa część E nie może być czynnikiem G. Dopóty, dopóki G będzie dłuższe niż prawa część E, błąd będzie wykrywany. Więcej informacji na ten temat można znaleźć w [1].
Biorąc pod uwagę powyższe zależności wybrano kilka generatorów, które są powszechnie stosowane w praktyce: 16-bitowe:
(16,12,5,0) - standard X25
(16,15,2,0) - tzw. CRC-16
3 2-bitowe:
(3 2,26,23,22,16,12,11,10,8,7,5,4,2,1,0)
- Ethernet
Bezpośrednia implementacja CRC
Ufff, podkład teoretyczny mamy już za sobą, możemy powoli przechodzić do praktyki. Zajmiemy się teraz konkretnymi algorytmami obliczania CRC. Jak wynika z konkluzji poprzedniego podrozdziału, CRC nie jest jednoznacznie wyliczaną sumą kontrolną. W zależności od wymaganego stopnia ochrony danych, stosowanego medium transmisyjnego, możliwości obliczeniowych urządzeń na-dawczo-odbiorczych stosuje się różne algorytmy. Na początek zaczniemy od chyba najprostszego z najprostszych, bez wykorzystywania żadnych trików, działającego jednak bardzo wolno. W dalszej części artykułu będziemy go stopniowo komplikować i usprawniać. Pamiętamy o tym, że obliczenia CRC opierają się na operacji dzielenia. Niektóre procesory uwzględniają w swojej liście rozkazów to działanie. Nie będzie ono jednak wykorzystywane, gdyż jak pamiętamy nasze dzielenie jest oparte nie na arytmetyce klasycznej, lecz na arytmetyce CRC. Ponadto dzielna, którą jest transmitowany blok, może osiągać bardzo duże rozmiary. W kolejnych przykładach będziemy
0 D 0 0
0 0 0 0 1
0 0 0 1 1
0 0 1 1 0
0 1 1 0 1
1 1 0 1 0
+ 1 0 0 1 1
0 1 0 0 1
1 0 0 1 1
+ 1 0 0 1 1
0 0 0 0 0
0 0 0 0 1
0 0 0 1 0
0 0 1 0 1
0 1 0 1 1
1 0 1 1 0
+ 1 0 0 1 1
0 0 1 0 1
0 1 0 1 0
1 0 1 0 0
+ 1 0 0 1 1
0 0 1 1 1
0 1 1 1 0
1 0 1 0 1 1 0 1 1 0 0 0
0 1 0 1 1 0 1 1 0 0 0 0
1 0 1 1 0 1 1 0 0 0 0
0 1 1 0 1 1 0 0 0 0
1 1 0 1 1 0 0 0 0
1 1 0 1 1 0 0 0 0
1 0 1 1 0 0 0 0
1 0 1 1 0 0 0 0
0 1 1 0 0 0 D
1 1 0 0 0 0
1 0 0 0 0
0 0 0 0
0 0 0
0 0 0
0 0
0
RESZTA
Rys. 2
rozpatrywać transmitowaną wiadomość jako ciąg bajtów. Najstarszy bit (MSB -Most Significant Bit) znajduje się na pozycji 7 każdego bajtu. Gdybyśmy potraktowali wiadomość jako ciąg bitów, to najstarszy bit wiadomości odpowiadałby pierwszemu bitowi różnemu od zera w pierwszym bajcie, licząc od najstarszej pozycji. Teraz już możemy naszkicować algorytm dzielenia CRC. Dla ustalenia uwagi przyjmiemy, że W=4, a jako generator wybierzemy G=10111. Do wykonania dzielenia będziemy potrzebować 4-bitowego rejestru (rys. 1). Pamiętamy oczywiście, że wiadomość kończy W zerowych bitów.
Algorytm będzie więc następujący (zapiszemy go w postaci pseudoprogra-mu):
Wyzeruj wszystkie bity rejestru. Dopisz W zerowych bitów do przesyłanej wiadomości. whilefjest więcej bitów do pobrania) {
Przesuń rejestr w lewo o jedną pozycję, wczytując następny bit wiadomości na pozycję 0. If(wychodzący bit ma wartość 1) {
Bitwychodzący_Rejestr=
Bitwychodzący_Rejestr
KOR
Generator
gdzie: wyrażenie Bitwychodzący_Rejestr to słowo, w którym najstarszy bit ma wartość bitu wychodzącego z rejestru, a za nim następują bity reprezentujące wartość rejestru.
Po zakończeniu pętli, rejestr zawiera resztę z dzielenia. Uwaga praktyczna: warunek w instrukcji IF można sprawdzać testując najstarszy bit rejestru przed wykonaniem przesunięcia. Powyższy algorytm będziemy nazywać SIMPLE.
Graficzną ilustrację wykonania tego algorytmu przedstawiono na rys. 2. Dane odpowiadają przykładowi przedstawionemu na początku artykułu. Mamy więc: T=11010110110000, G=10011, czyli W=4.
Proponuję teraz samodzielne przećwiczyć algorytm na innym przykładzie. Można przy tym zmienić generator i wartość W, od której algorytm nie zależy.
Implementacja oparta na tablicy
Przedstawiony powyżej algorytm SIMPLE był dość dobrym przykładem bezpośredniego przełożenia teorii w praktykę. Wykorzystując go można już bez trudu napisać program z przeznaczeniem na konkretny procesor. Będzie on oczywiście działał, ale nie zadowoli chyba jego użytkownika. Jego szybkość działania nie będzie największa - zauważmy, że obróbka pojedynczego bitu wymaga wykonania jednego obrotu pętli. Ale ,,pierwsze koty za płoty", doświadczenie już jakieś mamy.
Pomyślmy więc co zrobić, żeby zwiększyć wydajność. Pierwszym pomysłem jaki sam się nasuwa będzie przejście z obróbki bitowej na - nazwijmy to na razie - więcej niż bitową. Naturalnymi możliwościami są tu: półbajt (nibble) (4 bity), bajt (8 bitów), słowo (16 bitów), długie słowo (32 bity) lub więcej (jeśli będziemy potrafili obsłużyć). My wybierzemy wariant 8-bitowy. Dla niego istnieje już wiele opracowanych algorytmów, ponadto będzie się świetnie nadawał dla małych mikroprocesorów (mik-rokontrolerów). Na użytek następnych rozważań zmienimy też dość drastycznie stopień generatora z W=4, na W=32. Pamiętamy, że generator taki będzie miał długość 3 3 bity (pierwszy bit zawsze równy 1 i 32 bity ,,aktywne"). Wydłuży się też do 32 bitów rejestr stosowany do obliczeń (rys. 3).
Nazwijmy teraz bity najstarszego bajtu (numer 3) naszego rejestru. Będą to t7 (MSB) t6...tO (LSB). Przyjmijmy też, że 8 najstarszych ,,aktywnych" bitów generatora będzie miało oznaczenia: g7
ujście
Rys. 3
3 2 1 0 Bajty
-__pobierania ~ wiadomości
ł---- 32bltv ------------> = GENERATOR
90
Elektronika Praktyczna 2/2003
KURS
g6...gO. Tak jak było w algorytmie SIMP-LE, bit t7 (nazwijmy go bitem szczytowym) będzie określał, czy generator ma być XOR-owany z rejestrem w następnej iteracji. Nastąpi to, gdy bit ten będzie miał wartość 1. Można więc zapisać, że najstarszy bit w następnej iteracji będzie miał wartość: t6t7 * g7, co wyjaśnia poniższa interpretacja pisemna: t6 t5 t4 t3 t2 tl tO ?? t7 * (g7 g6 g5 g4 g3 g2 gl gO)
Zauważmy, że do obliczania nowej wartości bitu szczytowego (MSB) drugiej iteracji, potrzebne są dwa najstarsze bity w najstarszym bajcie rejestru. Dla trzeciej iteracji będą to trzy bity (t7, t6 i t5), itd. Ogólnie dla k-tej iteracji potrzebnych jest k bitów rejestru. Wykorzystamy to później. Rozważmy przypadek, w którym będziemy wykorzystywać 8 bitów rejestru do obliczania bitu szczytowego dla następnych 8 iteracji. Załóżmy, że będziemy prowadzić 8 następnych iteracji wykorzystując obliczone wartości (które możemy zapisywać w pojedynczym rejestrze i obracać w celu wyłuskiwania każdego bitu). Znowu musimy zauważyć trzy sytuacje:
- Najstarszy bajt rejestru nie ma teraz znaczenia. Nie jest istotne ile razy i z jakim przesunięciem generator jest XOR-owany dla 8 bitów szczytowych, wszystkie będą przesunięte na zewnątrz podczas następnych 8 iteracji.
- Pozostałe bity będą przesunięte o jedną pozycję w lewo, a bajty z prawej strony będą przesunięte na następną pozycję.
- Na czas operacji, rejestr będzie podlegał serii operacji XOR-owania z bitami sterującymi obliczonymi wcześniej.
Teraz rozpatrzmy efekt XOR-owania 3 2 10 Bajty
__pobieranie
wiadomości
253 254 255
Rys. 4
rejestru stałą wartością z różnymi przesunięciami. Na przykład:
0100010 Rejestr 0000110
0001100
0110000
0011000
Wynik powyższego działania możemy uzyskać na drodze wielokrotnego XOR-owania poszczególnych składników z rejestrem, lub jednokrotnego wykonania tej operacji z wartością stałą równą sumie (XOR) poszczególnych składników. Łącząc całą zdobytą powyżej wiedzę w całość możemy napisać szkic algorytmu: While(są dane w ciągu wejściowym) {
Zapamiętaj tymczasowo najstarszy bajt rejestru (będzie to bajt sterujący)
Sumuj cały generator z różnymi przesunięciami X0R-ując z rejestrem odpowiednio z rejestrem sterującym Przesuń rejestr w lewo o jeden bajt, wczytując na najmłodszą pozycję kolejny bajt wiadomości XOR-uj zsumowany generator z rejestrem }
Jak na razie nie specjalnie widać, żeby algorytm ten był w czymś lepszy niż SIMPLE. Jeśli jednak głęboko go przemyślimy, dojdziemy do wniosku, że większość obliczeń może być wykonana wcześniej, a wyniki mogą być zapisane w odpowiedniej tablicy. Jeśli wykorzystamy to błyskotliwe spostrzeżenie, algorytm można uprościć do postaci: While(są dane w ciągu wejściowym) {
Top = bajt szczytowy rejestru Rejestr = (Rejestr << 8) I
następny_baj t_wiadomości Rejestr = Rejestr KOR Tablica[Top] }
Nie twierdzę, by powyższe rozważania były proste. Są jednak ważne, ich zrozumienie pozwala bowiem pojąć ideę konstruowania tablicowych algorytmów obliczania CRC. Graficzną interpretację działania algorytmu przedstawiono na rys. 4. Możemy jeszcze raz skomentować ten rysunek opisem słownym:
1. Przesuń rejestr o jeden bajt w lewo, dopisując na najmłodszej pozycji kolejny bajt wiadomości
2. Wykorzystaj wychodzący z rejestru bajt do indeksowania tablicy (256 wartości 32-bitowych (dla generatora
0 W=32 jaki stosowaliśmy w przykładzie).
3. XOR-uj dane z tablicy z rejestrem.
4. Idź do pkt. 1, jeśli nie wykorzystałeś wszystkich bajtów wiadomości.
Teraz już można zrobić pierwszą przymiarkę do napisania programu w jakimś konkretnym języku. Będzie nim oczywiście C. Fragment takiego programu przedstawiono poniżej: unsigned long r; unsigned char t ;
r=0;
whileflen--)
{
t=(unsigned char)((r>>24) & 0xff);
r=(r<<8) I *pMsg++;
rA=tab[t]; }
Zmienna len określa liczbę bajtów wiadomości, *Msg jest wskaźnikiem na bajt wiadomości, który będzie pobierany do obliczeń, r to nasz rejestr, t jest zmienną tymczasową, a tab obliczoną wcześniej tablicą.
Moc języka C polega na bardzo zwięzłym zapisywaniu wyrażeń (co nie zawsze jest wystarczająco zrozumiałe
1 przez co język ten nie cieszy się popularnością wśród początkujących programistów), można więc nasze obliczenia uprościć do jednej linijki:
r=0;
whileflen--) r=((r<<8) I *pMsg++)
Ś*Ś tab [ (unsigned char) ( (r>>24)
& 0xff) ] ;
Zastosowany tu algorytm będziemy nazywać TABLICOWYM. Charakteryzuje się on dużą wydajnością, nie wymaga wielkich mocy obliczeniowych procesora. Jego największą wadą jest zajmowanie pamięci przez tablice i to, że dla ,,po stronnego" obserwatora może być zupełnie nieczytelny. Trudno znaleźć w nim całą, nie małą jak się mogliśmy przekonać teorię. Ale to jeszcze nie koniec. Więcej w następnym odcinku. Jarosław Doliński, AVT jaroslaw.dolinski@ep.com.pl
[l] Artykuł powstał na podstawie publikacji "A painless guide to CRC error detection algorithms", Ross N. Williams. Można ją znaleźć pod adresem http://www.riccibitti.com/crcguide.htm.
[2] Tanenbaum, A.S., ,,Computer Networks", Prentice Hali, 1981, ISBN: 0-13-164699-0.
Elektronika Praktyczna 2/2003
91
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.
Prosty programator mikrokontrolerów AT89Cx051/AT89C5x
Projekt
107
ryjnych", a nie komercyjnych I fchoć rnośna go stosować i tutaj). Okazuje się, śe w Inter-necie opisów takich programatorów jest wiele. Jednak albo ich oprogramowanie pozostawia wiele do syczenia albo moją drobne, acs istotne błędy w schemacie.
Budowa i działanie
Postanowiłem więc zaprojektować własny programator, który będzie domyślnie programował układy AT89CxO51, a po zastosowaniu dodatkowej płytki, takśe AT89C5x. Zakładam, śe rozpoczynający przygodę z mikrokontrolerami dysponują zazwyczaj komputerem, więc sterowanie pracą
Na rynku dostępnych
jest wiele programatorów
uniwersalnych (drogich}
i specjalizowanych dla
danej grupy układów
(tańszych}. Taki właśnie
tani, lecz funkcjonalny
programator przedstawiamy
w artykule.
Niewątpliwą zaletą mikrokontrolerów zgodnych programowo z 8051, jest mnogość dostępnego kodu źródłowego. Stwarza to możliwość łatwego wypróbowani a swoich sił m.in. w asemble-rze. Zapewne wielu elektroników pragnęłoby takśe dołączyć do grona użytkowników Eascoma 8051, jednak barierą
dla nich jest cena narzędzi sprzętowych (układy PCF8574A są stosunkowo drogie). Słuszną alternatywą w takim wypadku jest zbudowanie własnego programatora, którego koszt wykonania będzie ograniczony do minimum. Od takiego programatora wymagana jest tylko jedna cecha - ma kasować i zapisywać pamięć Flash układu. Nie musi on ustawiać sądnych dodatkowych opcji w programowanym układzie, gdyś ma słuśyć on do celów "laborato-
JP1 JUMPER1AB
12 3 4
R1 zwarty w przypadał zastosowani* krttkłogo kabla połaczniowgc _
SUfclllzowans napłads +12 VDC
Rys. 1
Złącze Centronics 36
Elektronika Praktyczna 2/2003
93
PROJEKTY CZYTELNIKÓW
U3
do adapter z rys. 1
P3.0/FKD P1.D/AIN0
P3.im(D P1.1/AIN1
P3.MNT0 P1.2
P3.3/1NT1 P1.3
P3ATT0 P1.4
P3.5/T1 P1.5
P3.7 P1.6
C7
cs
100n
/AT
U4
40 AT89C5
PO.0/ADO
P0.1/AD1 P2.1/AE
P0.2/AD2 P2.2/A10
P0.3/AD3 P2.3/A1
P0.4/AD4 P2.4/A12
P0.5/AD5 P2.5/A13
P0.8/AD6 P2.B/A14
P0.7/AD7 P2.7/A15
P1.0 PS.WFDCD
P1.1 P3.1/DCT
P1.2 P3.2/lrm
P1.3 pa.ałiNTi
P1.4 P3.4/T0
P1.S P3.SW1
P1.8 P3.6/WR
P1.7 P3.7JRD
Rys. 2
programatora zostało przerzucone na PC-ta. Program do jego obsługi został napisany w Turbo Pascalu i jest dostępny na płycie CD-EP2/2003.
Schemat elektryczny programatora pokazano na rys. 1. Programator jest wykrywany automatycznie przez oprogramowania za sprawą połączenia wyprowadzeń 13 i 14 złącza drukarkowego. Owo złącze ma tę zaletę, że nie potrzeba nam dodatkowego kabla do portu równoległego - wystarczy odłączyć go od drukarki. Program sprawdza również, czy programowany układ jest włożony do programatora (linia ACK), a w przypadku braku odpowiedniego napięcia programującego również informuje o błędzie.
Tranzystor Tl, sterowany sygnałem DSL ustala, czy układ będzie kasowany czy programowany. Tranzystor T2, sterowany sygnałem ALF włącza napięcie programujące. Dioda Dl zabezpiecza programowany układ przed uszkodzeniem w przypadku, gdy podłączymy odwrotnie spolaryzowane napięcie zasilania. Wówczas co najwyżej wzrośnie temperatura stabilizatora U2.
Rezystor Rl wraz z kondensatorem Cl stanowi układ
całkujący dla sygnału ,,zegarowego". Jest on niezbędny gdy stosujemy długi przewód połączeniowy. W praktyce okazało się jednak, że Rl w większości przypadków powinien być zwarty.
Zworka JPl pozwala wybrać źródło sygnału zegarowego. Kiedy programujemy powinniśmy wybrać pozycję 1-2, zaś jeśli chcemy "na szybko" sprawdzić poprawność naszego prostego programu (np. generatora) po zaprogramowaniu układu, należy wybrać pozycję 2-3. Kiedy chcemy programować układ AT89Cx51 za pomocą omówionego dalej adaptera dla ,,dużych" '51 (drugiej płytki) powinniśmy ustawić dwie zworki na pozycjach 1-2 oraz 3-4.
Zworka JP2 pozwala wybrać napięcie programujące dla ,,większych" '51, a także sterować sygnałem zerującym mikrokontrolera. W pozycji 1-2 ustalamy napięcie 12 V, zaś 2-3 5 V. Gdy zdejmiemy zwor-kę (ustawimy ją prostopadle) napięcie wyniesie 0. Procedurę programowania omówię dalej. Dane 8-bitowe są przesyłane do układu bezpośrednio z portu (D0...D7) podobnie jak sygnał programujący (INI).
~ W celu programowania AT89C55 należy dodać dwie ścieżki dla linii A14 oraz A15. W tym celu należy połączyć:
- 8 wyprowadzenie 74LS93 (U10) z 10 wyprowadzeniem AT89C5x (U4),
- 11 wyprowadzenie 74LS93 (U10) z 11 wyprowadzeniem AT89C5x (U4).
W adapterze dla układów AT89C5x (schemat elektryczny na rys. 2) wewnętrzny licznik adresu układów AT89x051 został zastąpiony przez liczniki U9 i UlO, co pozwala adresować pamięć o 16-bitowym adresie (można go w razie potrzeby wykorzystać do programowania innych układów, np. pamięci EP-ROM). Układy te są zerowane poprzez tranzystor T3 w czasie, gdy nie ma żadnego napięcia programującego. Najlepszym rozwiązaniem jest umieszczenie w miejsce T3 tranzystora MOSFET (z kanałem typu N) i usunięcie rezystora R7. Wtedy układ zerujący nie będzie obniżał napięcia programującego.
Montaż i uruchomienie
Podstawowa płytka programatora została zaprojektowana jako jednowarstwowa. Jej wzór zamieszczamy wraz z oprogramowaniem na CD-EP3/2OO3.
Montaż programatora należy rozpocząć od ośmiu zwor. Najlepiej od razu również zewrzeć także wyprowadzenia rezystora Rl. Następnie wlu-towujemy kolejno podstawki pod układu scalone, stabilizator, rezonator kwarcowy. Obudowę tego ostatniego, w celu ograniczenia liczby harmonicznych, warto połączyć z masą, co jest możliwe, gdy zamontujemy go na leżąco. Jeśli wykonaliśmy te czynności, zabieramy się do montażu elementów dyskretnych. Na koń-
cu wlutowujemy goldpiny (do jumperów - JP2 kątowe - i zasilania) oraz złącze drukarkowe, od którego należy wcześniej odkręcić plastikową część lub zwiększyć w niej odległość nóżek pomiędzy rzędami.
Uruchomienie rozpoczynamy od podłączenia napięcia zasilania (12 V, stabilizowane) i sprawdzenia poprawności napięć w podstawce do programowania układu. Następnie możemy zabrać się do pierwszego programowania.
Druga płytka - adaptera dla AT89C5x - pomimo wszelkich prób minimalizacji, została zaprojektowana jako dwustronna. Wybrałem kompromis w liczbie przelotek dla tych osób, które będą wykonywały ją jako dwuwarstwową oraz dla osób, które wykonają ją jako jednostronną, a resztę połączeń wykonają przewodami (np. kynarem ścieżki sygnałowe i jakimś grubszym ścieżki zasilania). Montaż tej płytki rozpoczynamy od podstawek układów, poza U3. Następnie wlutowujemy elementy dyskretne. Teraz zabieramy się za U3 i wlutowujemy od spodu płytki dwa rzędy 10-nóżkowych gol-dpinów (dla druku jednostronnego wpuszczamy je w płytkę tylko w niewielkim stopniu).
Po tej operacji osoby wykonujące płytkę jednostronną powinny zabrać się za połączenia przewodowe (z górnej warstwy druku dwustronnego). Goldpiny nie będą nam
94
Elektronika Praktyczna 2/2003
PROJEKTY CZYTELNIKÓW
Rys. 3
niestety pasowały do podstawki precyzyjnej w płytce basowej. Musimy wykonać prostą przejściówkę - czyli uśyć dwóch jednorzędowych podstawek precyzyjnych. One będą juś nam pasowały. Ewentualnie, zamiast tego całego "zamieszania" wokół U3, możemy uśyć kabla (taśmy) z wtykiem emulacyjnym.
Uruchomienie drugiej płytki polega na prawidłowym wpięciu U3 do podstawki Ul, a następnie zmierzeniu w podstawkach napięć zasilających fuwaga na licznik UlO, który ma napięcie zasilania na noskach 5 i 10). Jeśli są poprawne, to mośemy umieścić w nich układy scalone. Jeśli nie, naleśy dokładnie przeanalizować połączenia. Teraz wystarczy uruchomić program i włośyć w podstawkę układ do zaprogramowania.
Obsługa programatora
Programowanie układu nie jest zbyt skomplikowane. Najpierw przedstawię procedurę programowania mikrokontro-lerów ATB9CxO51:
1. Podłączamy do programatora wymagane zasilanie oraz przewód od drukarki.
2. Ustawiamy jumper JPl na pozycji 1-2 (clock), a JP2 2-3 (5 V).
3. Uruchamiamy program My_xO51 z nazwą pliku binarnego, którego zawartość chcemy umieścić w programowanym układzie, jako parametr.
4. Wkładamy układ do podstawki.
5. Przestawiamy jumper JP2 na pozycję 1-2 (12 V).
6. Wciskamy ENTER.
7. Po zakończeniu programu przestawiamy jumper JP2 z powrotem na pozycję 2-3 (5V).
8. Odłączamy zasilanie (niekoniecznie) i (starannie) wyjmujemy zaprogramowany układ.
Płytkę bazową mośemy wykorzystać takśe jako prostą płytkę uruchomieniową:
1. Podłączamy do progra-
matora wymagane zasilanie, ale bez przewodu od drukarki.
2. Ustawiamy jumper JPl na pozycji 2-3 {xial), a JP2 2-3 (5 V - resei on).
3. Wkładamy układ AT89CxO51 do podstawki.
4. Zdejmujemy JP2 (resei off) - od tej pory nasz program jest wykonywany.
5. Program restartujemy zakładając ponownie JP2 na pozycję 2-3 (5 V).
6. Odłączamy zasilanie i wyjmujemy zaprogramowany u kła d.
Programowanie mikro kontrolerów AT89C5x przeprowadza się następująco:
1. Ustawiamy dwie zwor-ki JPl na pozycjach 1-2 {clock) i 3-4 [xtal), a JP2 na pozycję 2-3 (5V).
2. Wpinamy (poprawnie!) adapter AT89C5x do płytki bazowej.
3. Podłączamy do programatora wymagane zasilanie oraz przewód od drukarki.
4. Uruchamiamy program My_xO51 z nazwą pliku binarnego, którego zawartość chcemy umieścić w programowanym układzie, jako parametr.
5. Wkładamy programowany układ do podstawki.
6. Jeśli mamy wersję wysokonapięciową układu (12 V zamiast 5 V), przestawiamy jumper JP2 na pozycję 1-2 (12 V).
7. Wykonujemy punkty 6, 7 i 8 dla ATB9CxO51.
Oprogramowanie sterujące programatora będzie wciąś rozwijane tak, aby nie wymagało szybkiego CPU (w tej chwili czas mierzony jest bardzo dokładnie, zajmując przy tym znaczny czas procesora). Dostępna jest takśe wersja przystosowana do pracy "pod opieką" systemem Windows (rys. 3). Nowe wersje pojawią się na stronie autora: http;// nopsofi.republika.pl.
Uwagi końcowe
Większość kompilatorów generuje jedynie pliki hex. Aby móc je wykorzystać w na-
szym programatorze, musimy je przekonwertować do pliku bin. Mośemy to uczynić z łatwością stosując np. program hex2bin (zamieszczamy go na CD-EP2/2003) i podając jako parametr nazwę pliku hex.
Pliki tego formatu generuje takśe Eascom 8051, ale naleśy je najpierw od niego "wykraść". Na początku wybieramy z menu Op-iions>Compiler>Ouipui i zaznaczamy pola Binary File i HFX File (w razie potrzeby Old Intel HEX File). Następnie przechodzimy do Op-iions>Programmer>Oiher. W polu Progmmmer wybieramy Fxiernal Programmer, odznaczamy opcje Auio Flash
1 Auio Verify, a w Program wskazujemy program edycyjny noiepad i zaznaczamy Use HEX File. W okno Parameier wpisujemy {file}, a w Modę wybieramy Go io applicaiion direciory and run. Jeśli potrzebujemy danych w formacie bin to odznaczamy opcję Use HFX File. Po skompilowaniu programu wybieramy Run Programmer i mośemy z poziomu notatnika zapisać plik bin, a następnie przejść do DOS-u i zaprogramować nasz układ.
DOS-em nie musimy się jednak w Eascomie przejmować. Gdy nie chcemy stosować powyśszej, dość długiej metody, wystarczy wybrać jako programator urządzenie o nazwie BlowIT Programmer (dostępny na pewno w wersji Eascom 8051 2.0.2.0 i 2.0.6.0) - prezentowany programator jest z nim kompatybilny. Następnie wybieramy odpowiedni port LPT (LPT-address) w zakładce Parallel (programator nie zostanie wykryty automatycznie), ustawiamy Port Delay np. na 5 i odznaczamy pozostałe pola. Od tej pory mośemy programować z poziomu Eascom-a układy do 4 kE pamięci Flash. Pozostaje jeszcze dodać, śe trzeba prawidłowo wybrać ustawienie zworek: JPl w pozycji 1-
2 (dla AT89C5x dodatkowo w 3-4), JP2 dla AT89CxO51 w pozycji 1-2, a dla AT89C5x w zaleśności od wersji (5/ 12 V).
Przypominam o mośliwoś-ci sprawdzenia działania prostego programu w programatorze (po odłączeniu kabla LPT). Naleśy tylko ustawić odpowiednio zworki. Jako przykładowy program testowy proponuję (Eascom):
WYKAZ ELEMENTÓW
Rezystory
Rl: lkO lub zworo (patrz
opis)
R2...R4, Ró: 1 OkO
R5: 2kO
R7: 10kQ lub zworo (potrz
opis)
R8: 5,lkG
Kondensatory
Cl: lnF
C2, C3: 20...40pF
C4, C9: lOOnF
C5, CÓ, C7: 10^F/10V
Półprzewodniki
U2: 7805
U9: CMOS 4040
UlO: 74LS93
Dl: 1N4148
Tl, T2: BC547B
T3: BCS47B lub MOSFET-N
BS170, BS109 (potrz opis)
Różne
Ul: podstawko precyzyjna
DIP20
U3: dwa goldpin-y oroz
dwie podstawki precyzyjne
jednorzędowe
U4: podstawka precyzyjna
DIP40
U9: podstawka DIL1Ó
UlO: podstawka DIL14
Ql: rezonator kwarcowy
4...12MHZ
JPl: goldpin z dwoma
jumperami
JP2: goldpin zjumperem
Jl: 36-nóżkowe złgcze
drukarkowe (żeńskie)
J2: goldpin
Do
cpl pl. 1
Wait 1
cpl pl. 6
Loop
a dla assemblera:
loopl;
CPL Pl, 7
M0V A, #5
;zależnie od częstotliwości rezonatora ;kwarcowego Ioop2;
PUSH ACC
CLR A Ioop3;
M0V B, #0
DJNZ B,S
DJNZ ACC,loop3
POP ACC
DJNZ ACC,loop2
CPL Pl , S
SJMP loopl
Pozostaje juś tylko uruchomić i sprawdzić woltomierzem lub sondą logiczną esy zmieniają się stany wyprowadzeń 18 i 19 układu AT89CxO51.
Janusz Użycki nopsoft@skrzynka.pl
Elektronika Praktyczna 2/2003
Serwonapędowe nowości firmy Omron
Pomysł konstruktorów firmy Omron polega na połączeniu w ramach systemu Smartstep zalet silników krokowych (przede wszystkim precyzję ruchu rotora silnika) z możliwością precyzyjnego sterowania szybkości obrotowej ich wirnika (dotychczas kojarzonej raczej z klasycznymi falownikami).
W ramach systemu Smartstep dostępne są dwa rodzaje wyspecjalizowanych silników o mocy od 30 do 750 W. Ich nominalne momenty obrotowe mieszczą się w przedziale od 0,095 do 2,39 Nm, a maksymalne momenty obrotowe mieszczą się w przedziale od 0,29 do 7,1 Nm. Maksymalna prędkość obrotowa dla wszystkich modeli silników wynosi 450 0 obr./min. niezależnie od wykonania mechanicznego - dostępne są dwie wersje ich obudów: cylindryczna i tzw. płaska. Silniki są wyposażone w precyzyjne enkode-ry (nawet do 10000 impulsów na obrót) umożliwiające nadzór położenia wirnika przez wyspecjalizo-
SMARTSTGP
wany zewnętrzny sterownik, który oprócz tej relatywnie prostej czynności realizuje także znacznie bardziej złożone zadanie: dba o zminimalizowanie zależności pomiędzy szybkością obrotową silnika a jego momentem obrotowym. Na rys. 1 pokazano trzy wykresy ilustrujące zależność momentu obrotowego silników krokowych: sterowanego klasycznie, a także moment nominalny i maksymalny silnika sterowanego za pomocą systemu Smartstep. Jak widać, zastosowanie tego systemu powoduje, że charakterystyka momentu obrotowego jest w zasadzie linią prostą, a jego wartość jest w całym zakresie prędkości obrotowych większa od maksymalnej wartości momentu silnika zasilanego klasycznie.
Sterowniki Stepdrive stosowane w systemie Smartstep są oczywiście programowalne, co zapewnia ogromną elastyczność i łatwość ich stosowania. Oprócz regulacji i stabilizacji prędkości obrotowej silników, sterowniki po-
omRon
Do niedawna podstawowym
obszarem zastosowań
serwonapędów z możliwością
regulacji prędkości obrotowe/
były zaawansowane systemy
pozycjonowania. Obecnie,
oczywiście głównie dzięki
zastosowaniu elektroniki,
precyzyjne serwonapędy
trafiają "pod strzechy". Kilka
interesujących nowości
z oferty firmy Omron
przedstawiamy w artykule.
trafią także w inteligentny sposób hamować ruch rotorów i zmieniać w zaprogramowany sposób kierunek ich obracania się. Sterowniki wyposażono także w procesor logiki rozmytej, dzięki któremu uczą się one dynamiki otoczenia silnika i samoczynnie zapobiegają powstawaniu wibracji, które mogłyby obniżyć precyzję ich działania. Programowanie sterowników jest możliwe za pomocą wbudowanego zestawu przełączników
Elektronika Praktyczna 1/2003
141
AUTOMATYKA
1.0
Chwilowy, maksymalny moment obrotowy
04
02







-** s <


Nominalny moment obrotowy
Moment obrotowy silnika krokowego sterowanego klasycznie
1000 2000 3000 4000 Prę dkotić obrotowa [obr/mln.]
Rys, I
i nastawników. W przypadku konieczności modyfikowania rozszerzonych funkcji konfiguiacyjnych użytkownik może skorzystać ze specjalnej konsoli z 11-przycisko-wą klawiaturą, za pomocą której można także kopiować nastawy pomiędzy sterownikami. Także miłośnicy komputerów znajdą dla siebie narzędzie programowe, za pomocą którego będą mogli skonfigurować swój sterownik. Oprogramowanie Wmon jest dostępne bezpłatnie na stronie internetowej firmy Omron (adres podajemy na końcu artykułu), a jego możliwości są identyczne jak możliwości konsoli.
P oni e w aż s ter o wniki silnikó w pracują zazwyczaj jako fragment większego systemu, mają one bo-
gate możliwości komunikacyjne, dzięki czemu dość łatwo można je dołączyć do sterowników PLC. Dzięki zastosowaniu specjalnego, podwójnego kabla (w jego skład wchodzą: kabel sygnałowy i kabel zasilający), łatwe staje się także połączenie silnika ze sterownikiem.
Rozwiązanie zaproponowane przez firmę Omron jest łatwe do zintegrowania w dowolnym systemie sterowania, także do współpracy z silnikami zasilanymi przez falowniki, np. tak jak to pokazano na rys. 2. Wygodzie projektantów służy także drugie bezpłatne narzędzie programowe - Omron Servo Motor Sizing, czyli program wspierający projektanta na etapie dobierania parametrów silnika do wymogów aplikacji. Dzięki tak boga-
temu zapleczu system Smartstep ma szansę stać się standardem wśród napędów precyzyjnych, coraz bardziej popularnych na rynku. 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.
Bezpłatne oprogramowanie narzędziowe dla sterowników Stepdrive jest dostępne pod adresami:
- program wspomagający dobór silnika do wymagań aplikacji: http://oeiweb.omron.-com/oei/Zips/Omron%20Sen/o%20Motor%20-Sizing.zip,
- program narzędziowy do konfiguracji sterowników Stepdrive: http://oeiweb.omron.-corn/oei/Zips/WMon_V2.zip.
G' |T T\T\
Terminal operatorski
I
PLC
In verte r 1
Obrabiany materiał
Invortar2 | SMARTSTEP SMARTSTEP Drive1 Drive2
SMAKTSTEP Motor 1 Nói tnący
SMARTSTEP Motor 2
142
Rys, 2
Elektronika Praktyczna 1/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, 131), Chcemy w ten sposób udostępnić je Czytelnikom BP,
Józef Kalisz: "Podstawy elektroniki cyfrowej", WKŁ 2002
możliwe w tym miejscu wymienienie wszystkich zagadnień poruszanych w książce, ale bez większego ryzyka można stwierdzić, że jest to publikacja zarówno dla startujących w dziedzinie (łącznie z fanami mikrokontrolerów), jak i studentów oraz inżynierów. Prezentowany w książce materiał został pogrupowany w trzynastu rozdziałach o wyraźnie rozdzielonej tematyce, dzięki czemu czytelnicy chcący zgłębić na przykład zjawisko hazardu znajdą w jednym miejscu odpowiedzi na większość dręczących ich pytań.
Niezwykle sympatycznym akcentem w książce są krótkie wtręty historyczne, dzięki którym czytelnicy mogą poznać - oczywiście w dużym skrócie - historię rozwoju niektórych dziedzin elektroniki. Pamięć o korzeniach szybko ginie pod presją współczesności, a dzięki takim inicjatywom młodsze pokolenia elektroników mają szansę - przy okazji przyswajania sobie najnowszej wiedzy - poznać także nieco jej podłoże historyczne.
Na koniec nieco dziegciu. Sporo kontrowersji wzbudziła w redakcji zaskakująca próba zastąpienia - utrwalonego już przyjętego w "elektronicznym światku" - słowa "Flash", określającego pewnego rodzaju nieulotne pamięci re-program owalne, określeniem "pamięci błyskawiczne", zwłaszcza w odniesieniu do aplikacji, w których pamięci te pracują jako noś-
EleMronlU PraKtycznej
Rzadko zdarza się, aby książka techniczna z tej dziedziny dożywała czterech wydań. Prezentowana książka dowodzi, że jest to jednak możliwe i pomimo 12-let-niej historii (pierwsze wydanie ukazało się w 1991 roku) treść książki nadąża za szybkim rozwojem współczesnej elektroniki. Wymagało to oczywiście wykonania przez autora ogromnej pracy, ale - jeżeli wolno nam oceniać - została ona wykonana dobrze i z korzyścią dla czytelników.
Na ponad 600 stronach autor zawarł przejrzyste kompendium wiedzy o współczesnej technice cyfrowej, począwszy od podstaw matematycznych, istotnych dla zrozumienia teorii układów logicznych, przez przedstawienie zagadnień technologicznych i dogłębne (z punktu widzenia praktyka) omówienie rozwiązań charakteryzujących różne rodziny układów cyfrowych, aż po prezentację języków opisu sprzętu (HDL) i przybliżenie zagadnień związanych z przesyłaniem szybkozmiennych sygnałów cyfrowych. Sporo? To jeszcze nie wszystko! Nie jest
niki masowe danych cyfrowych. Być może autor wprowadził nowe określenie pod presją zaleceń Rady Języka Polskiego, ale nie rokujemy dużej szansy przyjęcia go jako standardu.
Wydaje się być nieprawdopodobne, że na tak niewielu stronach można zmieścić dobrze opracowane podstawy wiedzy na tak wiele różnorodnych tematów, ale z całą pewnością autorowi to się udało i za to pięć lutownic!
Bruce Eckel: "Thinking in C++. Edycja polska", Helion 2002T 642 str.

Język C++ jest jednym z najczęściej stosowanych języków programowania. Wynika to przede wszystkim
z olbrzymich możliwości i elastyczności języka C++, jednak wykorzystanie tego potencjału nie jest łatwe. Język C++ jest trudny do opanowania, jednak książka "Thinking in C++" sprawia, że zadanie to staje się wykonalne niemal dla każdego.
W książce znajduje się kompletny kurs programowania w języku
C++. Co więcej, kurs ten jest prowadzony w sposób bardzo przystępny - czytelnik nie powinien poczuć się "zgnieciony" (i zniechęcony) zbyt wielką liczbą nowych pojęć. Stawiających pierwsze kroki w programowaniu obiektowym z pewnością zainteresuje rozdział poświęcony metodologii programowania. W każdym rozdziale zawarte są ćwiczenia,
Elektronika Praktyczna 3/2003
129
BIBLIOTEKA EP
Legenda:
Waldamw-NAWROCKI
KrayutoT ARNOLD
Kizyntol LAUGS
UKŁADY ELEKTRONICZNE
których samodzielne wykonanie jest chyba najlepszym sposobem nauki.
"Thinking in C++. Edycja polska" jest, naszym zdaniem, jednym z najlepszych podręczników do nauki programowania w języku C++. Przystępując do lektury książki bardzo pomocna będzie znajomość jakiegoś języka proceduralnego (najlepiej języka C). Ze strony internetowej wydawnictwa Helion można pobrać kod źródłowy przykładów zawartych w książce oraz książkę w języku angielskim w formacie html. Mimo miękkiej oprawy "Thinking in C++" otrzymuje pięć lutownic.
Zespół autorów: "Układy elektroniczne", Wydawnictwo Politechniki Poznańskiej 2002
Typowy podręcznik akademicki, zawierający dużą dawkę teorii, ale... łatwy w czytaniu i kompleksowo, choć niezbyt dogłębnie, poruszający szeroką tematykę. W książce można znaleźć informacje zarówno o elementach elektronicznych, układach analogowych, a także elementarz techniki cyfrowej.
Ze względu na specyfikę prowadzonego wykładu, książkę polecamy przede wszystkim studentom wydziałów elektroniki, a także tym elektronikom, którzy odkryli luki w teoretycznych podstawach swojej wiedzy. Niewątpliwą zaletą książki - pomimo jej silnie teoretycznej orientacji - jest przyjazne podejście autorów do czytelników z natury
WYDAWNICTWO POLITECHNIKI POZNJlNSKID
rzeczy nie Darazo luDiącycn "puste" rozważania teoretyczne. Zdecydowaną większość teorii pokazano na prostych przykładach, które w większości przypadków rozjaśniają wątpliwości czytającego.
Zespół autorów: "Przetwarzanie sygnałów przy użyciu procesorów sygnałowych", Wydawnictwo Politechniki Poznańskiej 2000
O cyfrowym przetwarzaniu sygnałów (DSP) mówi się i pisze dużo, ale zazwyczaj niewiele się wie. Wynika to w znacznym stopniu z faktu,
Przetwarzanie sygnałów przy użyciu procesorów sygnałowych
książka wybitna, polecamy1.
książka o dużych walorach praktycznych, polecamy!
może się przydać
daleka od doskonałości
nie warto kupować
że DSP to dziedzina trudna, wymagająca dobrej znajomości kilku specyficznych dziedzin nauki (matematyki) i techniki (technika cyfrowa). Książka napisana przez wykładowców z Politechniki Poznańskiej przedstawioną tezę potwierdza, jednocześnie dając nadzieję, że elektronicy zainteresowani tą dziedziną będą mieli skąd zaczerpnąć niezbędnej wiedzy o podstawach, a to dzięki sensownie przygotowanemu kursowi. Niestety, nie jest on łatwy do przejścia, ponieważ autorzy bardzo dogłębnie przedstawiają zagadnienia teoretyczne, z jednej strony zapewniając czytelnikom uniwersalne podstawy wiedzy o DSP, z drugiej strony pozostawiając bez odpowiedzi pytania typu "jak za pomocą trzech kliknięć myszką zbudować dekoder sur-round". Co prawda są już dostępne "bascomy" dla DSP, ale rozumienie elementarnych reguł rządzących tym "magicznym" światem z pewnością nie zaszkodzi.
Jedyną niedoskonałością prezentowanej publikacji jest to, że autorzy odwołują się do nieco archaicznych procesorów DSP, a co gorsza skupiają się wyłącznie na ofercie firmy Te-xas Instruments. Jest to co prawda rynkowy lider, ale niezłe procesory sygnałowe produkują także inni producenci, depczący TI po piętach.
Reasumując: książka z pewnością nie dla każdego, ale z zaspokoi wymagania studentów i inżynierów pragnących dogłębnie zrozumieć, co też w tym DSP piszczy.
130
Elektronika Praktyczna 3/2003
AUTOMATYKA
Najnowsza seria zdalnych modułów kontrolno-pomiarowych firmy Advantech
80DO
;esf firmą znaną na naszym rynku od dobrych kilku lat. Jest ona producentem m.in. zdalnie sterowanych systemów pomiarowych rodziny ADAM. Dotychczas produkowane układy serii 4000 i 5000 są
wyposażone w standardowe interfejsy szeregowe RS-232/485. A jak jest w przypadku najnowszej serii?
Interfejsy szeregowe RS-232/422/ 485, mimo swej bardzo długiej historii, są nadal stosowane w przemyśle do komunikacji ze sprzętem pomiarowym i wykonawczym, między innymi ze względu na łatwość implementacji różnych protokołów komunikacyjnych. Nie oznacza to jednak, że interfejsy RS-232/485 są pozbawione wad. Ze względu na dość restrykcyjne ograniczenia odległości pomiędzy komunikującymi się urządzeniami, a także relatywnie niskiej dopuszczalnej prędkości transmisji, są one wypierane przez interfejsy nowych generacji o dużo większych możliwościach. Zgodnie z tym trendem, firma Advantech wprowadziła na rynek rodzinę modułów kontrolno-pomiarowych serii AD AM-6000 wyposażonych w wewnętrzny interfejs sieciowy Ethernet 10/100 Mbd, komunikujących się z jednostkami nadrzędnymi systemów nadzoru i sterowania za pomocą standardowego protokołu Modbus/TCP.
Jak dotąd, w nowej rodzinie (która będzie cały czas poszerzana) możemy znaleźć kilka modułów komunikacyjnych i modułów wejść/wyjść, których krótkie charakterystyki zawarto w tab. 1.
W tych modułach każde z wejść cyfrowych może pracować także jako wejście licznikowe (w trybie zwykłego zliczania impulsów lub pomiaru częstotliwości) lub zatrzaskowe (zapamiętywanie chwilowego pojawienia się poziomu niskiego lub wysokiego), a każde z wyjść cyfrowych można skonfigurować jako wyjście impulsowe
Evolvedfor the eWorld
Adwntech
Wraz z modułami dostarczane jest więc odpowiednie oprogramowanie umożliwiające przeprowadzenie takiej konfiguracji urządzeń, a także podstawowej diagnostyki poprawności ich

(o regulowanym wypełnieniu i ewentualnie zadanej liczbie generowanych impulsów) lub wyjście opóźniające o zadanej zwłoce czasowej. Podobnie jak moduły z serii AD AM-4000/5000, moduły nowej generacji są wyposażone w uchwyt do montażu na szynie DIN i mogą być zasilane napięciem stałym o wartości 10...30 VDC.
Pierwsze kroki - konfiguracja
Wykorzystane moduły wejść/wyjść w budowanym systemie automatyki i/lub pomiarów powinny być oczywiście wcześniej skonfigurowane.
działania. Program ten (rys. 1) wyszukuje wszystkie moduły wejść/wyjść serii ADAM-6000 włączone do sieci lokalnej i pozwala na ustalenie ich podstawowych parametrów sieciowych (własny adres IP i maska pod-sieci, adres IP domyślnej bramy wyjściowej umożliwiający zastosowanie modułów w sieciach rozległych), parametrów wejść i wyjść (oprócz wspomnianej już dowolności wykorzystania wejść i wyjść cyfrowych, w przypadku modułu wejść analogowych istnieje między innymi możliwość ustalenia zakresu pomiarowego dla każde-
Elektronika Praktyczna 3/2003
133
AUTOMATYKA
_ z \ m u *ł*i
v I i na | ^ ^
Ł t ! tM iJ
Ii BE3 tó"
go z kanałów, przypisania progów alarmowych oraz oczywiście ewentualnej kalibracji), a nawet upgrade'owa-nia oprogramowania wewnętrznego {firmware) modułu.
"Wlącz/wylącz/zmierz" Internet Explorerem?
Po przeprowadzeniu konfiguracji moduły są gotowe do pracy. Dzięki wbudowanemu miniaturowemu serwerowi WWW, dysponując standardową przeglądarką internetową możemy uzyskać dostęp do modułu praktycznie z dowolnego miejsca na świecie (oczywiście pod warunkiem włączenia go do ogólnoświatowej sieci Internet). Wystarczy jedynie w pole adresowe przeglądarki internetowej wpisać adres IP modułu (rys. 2), po czym na ekranie komputera ukaże się strona WWW z wynikami odczytu stanów wejść (cyfrowych, analogowych, licznikowych), można także (oczywiście po podaniu prawidłowego hasła dostępu) zdalnie zmienić stany wyjść!
Modbus/TCP - właściwości protokołu
Podstawowymi założeniami przyjętymi przy projektowaniu modułów były: umożliwienie ich wykorzystania w sieci Internet oraz umożliwienie współpracy z popularnymi programami SCADA (Supeivisoiy Conirol and Data Acąuisitioń). Dlatego do komunikacji z modułami wybrano jeden z najpopularniejszych protokołów Modbus/TCP.
Tab. 1. Zestawienie dostępnych wersji modułów z rodziny ADAM6000
Typ modułu Funkcja
ADAM-6510 HUB4-portowy 10Mbps
ADAM-65 20 Switch 5-portowy 10/100Mbps
ADAM-65 21 Switch 5-portowy 10/100Mbps z we|ściern światłowodowym
ADAM-6017 Moduł l/O 8xAI+2xDO
ADAM-6 050 Moduł l/O 2xDI+6xDO
ADAM-6 051 Moduł l/O 12xDI+2xDO+2xCounter
ADAM-60 60 Moduł l/O 6xDI+6xRelay
Protokół ten (we wszystkich stosowanych obecnie implementacjach ASCII/RTU/TCP) jest powszechnie wykorzystywany do komunikacji pomiędzy urządzeniami systemów automatyki oraz nadzoru i/lub sterowania pracującymi na komputerach PC z urządzeniami pomiarowymi i wykonawczymi. Opracowany pierwotnie przez firmę Modicon został zaakceptowany przez większość znanych producentów sterowników przemysłowych i sprzętu pomiarowego. Modbus należy do rodziny protokołów typu masier-slave, w których tylko jedno urządzenie (jednostka nadrzędna -ino sfer) może inicjować transakcje, a pozostałe (jednostki podrzędne -slave) odpowiadają jedynie na zdalne zapytania inasiera. Transakcja składa się z polecenia (ąueiy) wysyłanego z jednostki master do slave oraz odpowiedzi (response) przesyłanej zwrotnie, zawierającej żądane dane lub potwierdzenie realizacji polecenia (wyjątkiem są wiadomości rozgłoszeni owe hioadcast przeznaczone dla wszystkich jednostek podrzędnych w sieci, na które jednostki slave nie przesyłają żadnej odpowiedzi). Przesyłane w obydwie strony wiadomości są w postaci ramek (umieszczanych w przypadku implementacji TCP w pakietach) o ściśle określonych polach (rys. 3).
W implementacji TCP/IP zrezygnowano z pola adresowego (w odwołaniach Modbus/TCP adres urządzeń, do których kierowane jest zapytanie, jednoznacznie określa już przy samym nawiązywaniu połączenia docelowy adres IP) i sumy kontrolnej. Wprowadzono natomiast rozszerzony nagłówek MBAP (Modbus Application Proiocol Header) zawierający cztery pola:
- identyfikator transakcji (2 bajty) -wykorzystywany przez urządzenie inasier do prawidłowego kojarzenia odpowiedzi uzyskiwanych na jego kolejne zapytania (wartość ta zostaje ustalona i umieszczona w ramce zapytania przez jednostkę master, a następnie skopiowana i umieszczona w ramce odpowiedzi przez jednostkę slave),
- identyfikator protokołu (2 bajty) -pole to ma zawsze wartość O odpowiadającą oznaczeniu protokołu Modbus,
- rozmiar wiadomości (2 bajty) - liczba pozostałych bajtów wiadomości (poczynając od pola identyfikatora urządzenia. Pole to zostało wprowadzone ze względu na możliwość dzielenia pojedynczej wiadomości na oddzielne pakiety TCP/IP),
- identyfikator urządzenia (1 bajt) -mający znaczenie np. w przypadku
Tab. 2. Najczęściej wykorzystywane funkcje w protokole Modbus
Kod Opis
0x01 ReadCoils
0x02 ReadDiscrete inputs
0x03 Read Holding Registers
0x04 Read Input Register
0x05 Wnte Single Coil
0x06 Wnte Single Register
0x08 Loopback Diagnostic
0x0 F WriteMultipleCoils
0x10 Wnte Multiple Registers
komunikacji z urządzeniami Modbus wyposażonymi w interfejs szeregowy za pomocą bram (gaieways). Najczęściej wykorzystywane funkcje (spośród wielu dostępnych ściśle zdefiniowanych w standardzie) przedstawiono w tab. 2. Ich wykorzystanie pozwala na pełną obsługę urządzeń pomiarowych i sterujących w zakresie wymaganym przez aplikacje pomiaro-wo-kontrolne. Ostatnie z pól ramki -DATA - wykorzystywane jest w przypadku zapytań wysyłanych przez jednostkę master do przekazywania dodatkowych parametrów funkcji (czyli na przykład liczba odczytywanych rejestrów oraz adres początkowy), natomiast w przypadku odpowiedzi generowanych przez jednostkę slave - do przekazywania żądanych przez jednostkę nadrzędną danych (czyli np. zawartość odczytywanych rejestrów).
Piszemy własne oprogramowanie
Na podstawie znajomości składni protokołu Modbus w implementacji TCP/IP oraz mapy adresów rejestrów, jesteśmy w stanie dość łatwo przygotować własne oprogramowanie do komunikacji z urządzeniami, chociażby w oparciu o wbudowaną w większość systemów operacyjnych obsługę gniazd.
ADAfrSSSf DtOMadufe
O G O
Ś4 [- K C-l
c * o r
VI DB Ś nr
c o a c>
H H H* Diii
Rys. 2
134
Elektronika Praktyczna 3/2003
AUTOMATYKA
ADDRESS FUNCTION CODE DATA CHECKSUM
Rys. 3
Na przykład, odczytanie zawartości 32-bitowego licznika CNT01 w module ADAM-6051 (wejście cyfrowe DIO pracujące w trybie zliczania impulsów) wymaga nawiązania połączenia z urządzeniem na porcie 502 (jest to port standardowo wykorzystywany do komunikacji w protokole Modbus/TCP) i wysłania pojedynczego dwunastobaj-towego pakietu o zawartości: 41-42-00-00-00-06-FF-03-00-00-00-02 (czyli żądania odczytu dwóch 16-bitowych rejestrów począwszy od adresu 40001). W odpowiedzi (załóżmy, że licznik zliczył do chwili otrzymania zapytania przez moduł 1216 impulsów) powinniśmy otrzymać pakiet o zawartości: 41-42-00-00-00-0 7-FF-03-04-04-C 0-00-00 (czyli przekazanie zawartości rejestrów w postaci czterech bajtów).
Pisanie oprogramowania w oparciu
0 bezpośrednią obsługę gniazd nie jest oczywiście jedynym możliwym rozwiązaniem. Na przykład, producent modułów pomiarowych Adam-6000 -firma Advantech - dostarcza wraz z urządzeniami pakiet bibliotek DLL oraz kontrolki ActiveX udostępniające funkcje nawiązywania i zamykania połączeń TCP/IP oraz odczytu i zapisu poszczególnych bitów, jak i całych rejestrów (nie wymagające od użytkownika znajomości obsługi gniazd).
1 jeszcze kamera...
Seria ADAM-6000 zawiera nie tylko moduły kontrolno-pomiarowe. Producent wprowadził do niej także moduł kamery internetowej ADAM-6090 (fot. 4). Kamera jest wyposażona w interfejs sieciowy 10/100 Base-T (opcjonalnie także w kartę sieciową bezprzewodową zgodną ze standardem IEEE 302.llb). Za jej pomocą można uzyskać obraz o rozdzielczości od 160x320 do 640x430 pikseli, przy
Fot. 4
General Modbue fnvne
ModbuH TCP/IP framo
hCAPHewter
częstotliwości odświeżania w zakresie od 1 do 20 klatek na sekundę. Wbudowana sprzętowa kompresja JPEG umożliwia wybór jednego spośród pięciu dostępnych poziomów kompresji obrazu, który oglądać można chociażby za pomocą zwykłej przeglądarki internetowej (w dwóch dostępnych trybach - ActiveX lub Java) lub za pomocą dostarczanego wraz z urządzeniem oprogramowania IP-View. Za pomocą wyżej wymienionej przeglądarki przeprowadzana jest także konfiguracja urządzenia pozwalająca na przypisanie podstawowych parametrów dotyczących interfejsu sieciowego, uzyskiwanego obrazu oraz kontroli dostępu do urządzenia (istnieje bowiem możliwość zdefiniowania do 64 użytkowników z dostępem chronionym hasłem). Dodatkowo, kamera została wyposaż ona takż e w wejścia/wyjścia cyfrowe umożliwiające między innymi wyzwalanie automatycznego wysyłania pod wskazany adres wiadomości e-mail z aktualnym obrazem.
Podsumowanie
Moduły serii ADAM-6000 stanowią kontynuację dotychczasowych dokonań producenta w dziedzinie rozproszonych systemów kontrolno-po-miarowych. Porównując listę dostępnych w rodzinie modułów wejść-wyjść, nietrudno spostrzec wyraźne podobieństwo do modułów występujących w rodzinie 4000, będącej jej pierwowzorem. Jednak dzięki zastosowaniu interfejsu sieciowego Ethernet, obsłudze standardowego protokołu Modbus oraz wbudowanemu serwerowi WWW, wydają się być obecnie urządzeniami bardziej uniwersalnymi i o znacznie szerszym wachlarzu zastosowań. Jacek Bonecki
Elmark Automatyka Sp. z o.o. advantech@elmark.com.pl
Dodatkowe informacje
W artykule wykorzystano informacje zamieszczone w dokumentacji technicznej "rnodbus me-ssagingonTCP/lPirnplernentationguide"dostęp-nej w interneciepod adresem hftp/Mm1.modbus.org.
Dystrybutorem sprzętu pomiarowego Advan-tech jest firma Elmark Automatyka Sp. z o.o, www.elmaik.com.pl.
Elektronika Praktyczna 3/2003
135
AUTOMATYKA
Nowoczesne zasilacze do układów automatyki
W ofercie firmy Omron znajduje się rodzina zasilaczy impulsowych o mocy wyjściowej 5...960 W, których budowa i parametry zostały ściśle dostosowane do wymagań stawianych przez systemy automatycznej regulacji, nadzoru i sterowania. Producent pogrupował je w rodziny, których krótkie charakterystyki przedstawiamy poniżej.
Wszystkie prezentowane rodziny zasilaczy spełniają ostre wymagania norm EMC/EMI, a także norm bezpieczeństwa.
S8PS
Jest to rodzina zasilaczy o mocy wyjściowej od 50 do 600 W, przystosowanych do zasilania napięciem zmiennym z przedziału 85...240 VAC. Ich sprawność energetyczna wynosi (w zależności od modelu) od 75 do 87%, a napięcia wyjściowe mogą mieć jedną z następujących wartości: 5 V, 12 V lub 24 V. Zasilacze są dostarczane w obudowach typu open frame oraz zamkniętych, zaopatrzonych w zatrzaski do montażu bezpośrednio na szynie DIN. Za-
silacze o mocy do 300 W są praktycznie bezobsługowe, ponieważ są chłodzone grawitacyjnie. Modele o mocy 600 W wyposażono w wentylatory zwiększające skuteczność chłodzenia, co wymusza ich okresową obsługę. Wszystkie zasilacze wyposażono w zabezpieczenia zapobiegające chwilowym przetężeniom (z "podciętą" charakterystyką zadziałania) oraz zabezpieczenie przed przepięciami na wejściach. Wersje o mocy 600 W wyposażono także w zabezpieczenie termiczne, które zapobiega zbytniemu wzrostowi temperatury we wnętrzu zasilacza.
S8TS
Są to zasilacze o mocy wyjściowej od 60 do 240 W o dość niezwykłej budowie, pozwalającej za pomocą zaledwie trzech modeli osiągnąć szeroką gamę napięć i mocy wyjściowych. Jest to możliwe dzięki zastosowaniu w zasilaczach specjalnych złącz, za pomocą których zasilacze są ze sobą łączone elektrycznie po zamontowaniu na szynie DIN (fot. 1). W zależności od sposobu połączenia
Zasilanie urządzeń fest
zagadnieniem dość często
lekceważonym, zwłaszcza
przez mniej doświadczonych
automatyków. Zamiast zbierać
- często bolesne - doświadczenia, można po
prostu zastosować
w projektowanym systemie
dobrej jakości specjalizowane
zasilacze, które rozwiązują
większość problemów na
jakie automatycy napotykają
"w terenie".
Ul IIKUII
zasilaczy są stosowane złącza różnych typów (fot. 2). Budowa zasilaczy S8TS pozwala na równoległe łączenie ze sobą ich wyjść (maksimum pięć), można także w prosty sposób tworzyć systemy bezpiecznego zasilania (tzw. zasilanie redundantne) - uszkodzony zasilacz sygnalizuje awarię zapaleniem czerwonej diody LED (fot. 3). Standardowym wyposażeniem prezentowanych zasilaczy są zabezpieczenia przed przepięciem na wejściu, przetężeniem na wyj-
Fot,
Fot, 2
Elektronika Praktyczna 3/2003
137
AUTOMATYKA
ściu, a zbyt niskie napięcie wejściowe jest sygnalizowane zmianą stanu na specjalnym wyjściu. Zalecany przez producenta zakres napięcia wejściowego mieści się w przedziale 85,,,246 VAC,
Do pracy "grupowej" w rodzinie S8TS nie są przystosowane zasilacze o napięciu wyjściowym 5 V, pozostałe wersje (napięcia wyjściowe 12 i 24 VDC) są dostępne w dwóch wariantach,
S8VS
Tę rodzinę zasilaczy charakteryzuje moc wyjściowa od 60 do 240 W, przy napięciu wyjściowym równym zawsze 24 VDC, Napięcie wejściowe, podobnie jak w przypadku wcześniej opisanych zasilaczy, powinno się mieścić w zakresie 85,,,246 VAC, W ramach rodziny S8VS są dostępne zarówno modele
0 wyglądzie "klasycznym" jak i wyposażone w 3-cyfrowy wyświetlacz LED oraz 1- lub 3-przyciskową klawiaturę (fot. 4), Za pomocą diod Świecących jest sygnalizowany tryb pracy wyświetlacza, na którym można odczytać wartość napięcia wyjściowego, natężenie prądu płynącego przez obciążenie, maksymalny prąd płynący przez obciążenie, przewidywany czas pracy zasilacza do niezbędnego przeglądu, zliczany
1 wyświetlany jest także całkowity czas pracy. Ponadto, na wyświetlaczu są sygnalizowane różne (także predefiniowane przez użytkownika) alarmy, w tym wykrycie zbyt niskiego napięcia na wejściu, czy zbyt wysoka temperatura wewnątrz zasilacza. Niektóre modele wyposażono w wyjścia alarmowe, natomiast
wszystkie mają wyjścia zabezpieczone przed przetężeniem i wbudowane zabezpieczenia przeciwprze-pięciowe na wejściach,
S82K
W ramach tej rodziny są dostępne zasilacze o mocach wyjściowych od 3 aż do 240 W, Są one przystosowane do montażu na szynach DIN, a ich standardowym wyposażeniem jest wyjście sygnalizacji zbyt niskiego napięcia na wyjściu, niektóre mają także na panelu czołowym wskaźnik spadku napięcia. Wszystkie zasilacze mogą być zasilane napięciem zmiennym o wartości 85,,,264 VAC, a modele o mocach 3 W, 7,5
W i 15 W także napięciem stałym o wartości 90,,,350 V, Za wyjątkiem niektórych zasilaczy o mocy 7,5 W, wszystkie pozostałe mają pojedyncze wyjście, na którym występuje napięcie 5, 12 lub 24 VDC, W przypadku wyjścia symetrycznego możliwe są dwa napięcia: ą12 VDC lub ą15 VDC, Obwody wyjściowe niektórych zasilaczy przystosowano do łączenia równoległego (wzrasta wydajność prądowa) lub szeregowego (zwiększa się napięcie wyjściowe). Producent oferuje w ramach prezentowanej rodziny zasilacze wyposażone w aktywny korektor współczynnika mocy, a także pozbawione go, co prawdopodobnie ma istotny wpływ na ich cenę. Wszystkie zasilacze wyposażono natomiast w filtr, dzięki któremu spełniają one wszelkie typowe normy związane z zakłóceniami i kompatybilnością elektro m agn ety czną, Andrzej Gawryluk, AVT
Dodatkowe informacje
Artykuł powslat na podstawie materiałów udostępnionych przez firmę Omron, tel. (22) 645-78-60, www.omron.com.pl.
Fot, 4
138
Elektronika Praktyczna 3/2003
PROJEKTY
Yampp-7
Kieszonkowy odtwarzacz MP39 część 1
Przedstawiamy kolejny
odtwarzacz MP3, tym razem
zaprojektowany jako
przenośny. W Yamppie-7
zastosowano do pamiętania
nagrań karty pamięciowe
Compact Flash lub
MultiMedia Card, co
powoduje, że jest to
urządzenie na wskroś
nowoczesne.
R ekom en da ej e:
prezentowany w ańykule
odtwarzacz to kolejny krok
w miniaturyzacji odtwarzaczy
MP3, więc polecamy jego
opis przede wszystkim fanom
empetrójko wych n agrań, którzy
nie lubią się rozstawać ze
swoimi nagraniami.
Odtwarzacz ma wymiary jedynie 80 x 56 x 25 mm i jako źródło plików MP3 wykorzystuje kartę pamięci Compact Flash lub MultiMedia Card. W każdym megabajcie pojemności karty można "upakować" minutę muzyki (przy strumieniu danych 128 kbd). Oznacza to, że na karcie o pojemności 64 MB możemy zmieścić około godziny muzyki. Odtwarzacz obsługuje praktycznie wszystkie dostępne na rynku karty, począwszy od małych - 16-megabajtowych, a skończywszy na największych obecnie dostępnych kartach CF o pojemności 512 MB, na których można zapisać 8 godzin muzyki skompresowanej w dobrej jakości!
Do sterowania odtwarzaczem służą cztery przyciski, a informacje wyświetlane są na graficznym wyświetlaczu LCD. Wyjście audio zastosowanego dekodera MP3 -VSl001 jest przystosowane do bezpośredniego sterowania słuchawkami. Całość jest zasilana z wbudowanego akumulatora lito-wo-jonowego (lub Ni-Mh) o napięciu 3,6 V, który pozwala (przy pojemności wynoszącej około 1000 mAh) na ponad 15 godzin ciągłego słuchania muzyki. Do zarządzania zawartością karty pa-
mięci Flash służy interfejs USB umożliwiający łatwą i szybką wymianę zgromadzonych utworów oraz łatwe i szybkie uaktualnianie oprogramowania bez konieczności otwierania obudowy odtwarzacza. Jednocześnie, poprzez złącze USB odbywa się ładowanie wbudowanego w odtwarzacz akumulatora -wystarczy podłączyć kabel USB i po około 2 godzinach akumulator zostanie naładowany. Całość przeznaczona jest do zamknięcia w obudowie typu "mała mydel-niczka", produkowanej przez włoską firmę Teko S.p.A, o oznaczeniu katalogowym 10007.9 (http://www.teko.it/ENCLOSURES/ soapl.html), dostępnej między innymi w Elfie.
Możliwości i obsługa yamppa-7
Yamppa-7 możemy wykonać w dwóch wersjach: wyposażonej w wyświetlacz LCD lub w wersji bez wyświetlacza. Do uproszczonej wersji zawsze możemy dołożyć wyświetlacz LCD, co wymaga jedynie wykonania odpowiedniego otworu w obudowie, przymocowania wyświetlacza, podłączenia go do odpowiedniego złącza na płytce drukowanej yamppa
14
Elektronika Praktyczna 3/2003
Yampp-7
USB
Ładowarka
LJ-lon MAX1811
Ogniwo
U-on
3.6V
Atmel megai6iL
CPU
interfejs USB FTBU245BM
MMC card
Compact
Flash card
Dekoder
adresu
74HC00
YS1001K dekoder MP3/DAC
Rys. I. Schemat blokowy odtwarzacza
oraz wymiany oprogramowania systemowego. Podczas odtwarzania wyświetlane są informacje o bieżącej playliście, nazwie i wykonawcy utworu, linijka ukazująca postęp w odtwarzaniu danego utworu, ogólny i aktualny czas trwania utworu (lub czas do jego zakończenia), bieżący numer oraz liczba utworów w aktualnej playliście, a także status odtwarzacza. W linii statusu wyświetlane są ikony informujące o aktualnych ustawieniach trybu Random, Re-peat, Loudness, o blokadzie klawiszy, stanie akumulatora oraz o ustawionym poziomie głośności. Liczba dostępnych funkcji sterujących pracą tego odtwarzacza jest zbliżona do dostępnych u jego większego "brata", czyli yam-ppa-3/usb. Ze względu na to, że sterowanie pracą odtwarzacza odbywa się jedynie za pomocą czterech przycisków, należało im przypisać po kilka różnych funkcji, w zależności od stanu urządzenia, jak również od tego czy dany klawisz zostanie przyciśnięty na krótko, czy przytrzymany dłużej. W oprogramowaniu dla wersji bez wyświetlacza LCD zdefiniowano nieco odmienny układ funkcji na poszczególnych klawiszach, co w tym przypadku ułatwia jego obsługę. Wyróżniamy trzy tryby, w których może się znajdować odtwarzacz. Tryb Stop - czyli gotowości, tryb Play - czyli podczas odtwarzania utworu oraz tryb obsługi Menu, który występuje jedynie w odtwarzaczach wyposażonych w wyświetlacz LCD. Dostępne w nim funkcje i sposób poruszania się po menu są jednakowe, niezależnie od tego czy
Elektronika Praktyczna 3/2003
menu wywołano podczas odtwarzania utworu, czy też gdy odtwarzanie jest zatrzymane.
Podczas odtwarzania dwa górne przyciski znajdujące się w sąsiedztwie gniazdka słuchawkowego służą do zmiany utworu na poprzedni lub następny, a w przypadku ich dłuższego przytrzymania - do regulacji poziomu głośności odtwarzania. W dalszej części opisu będą one nazwane klawiszami Up-Down, przy czym Down znajduje się bliżej gniazdka słuchawkowego. Dodatkowo, jednoczesne przyciśnięcie klawiszy Up i Down na czas około 1 sekundy powoduje zablokowanie lub odblokowanie klawiatury, co zapobiega przypadkowym zmianom ustawień w przypadku noszenia odtwarzacza w kieszeni. Z boku odtwarzacza, poniżej gniazda USB, znajduje się klawisz Play, który przyciśnięty na krótko podczas odtwarzania włącza i wyłącza funkcję Pause, a przyciśnięty dłużej służy do szybkiego przewijania utworu do przodu. Poniżej klawisza Play mamy ostatni z dostępnych przycisków, czyli przycisk Stop, który po dłuższym przyciśnięciu pozwala na uaktywnienie trybu Menu w odtwarzaczach wyposażonych w wyświetlacz LCD. W wersji bez LCD dłuższe przyciśnięcie klawisza Stop podczas odtwarzania utworu powoduje przejście do następnej playlisty. Dla ułatwienia orientacji, zmianie playlisty towarzyszy słyszalny w słuchawkach krótki dźwięk, który w przypadku przejścia na playlistę Total - zawierającą wszystkie utwory zawarte na karcie - ma inną wysokość niż w pozostałych przypadkach.
W trybie Stop krótkie przyciśnięcie klawisza Up służy do wyboru funkcji Loudness, a klawisza Down do włączenia/wyłączenia trybu Random. Dłuższe przyciśnięcie klawisza Up umożliwia włączenie lub wyłączenie automatycznego blokowania klawiatury po określonym czasie bezczynności klawiszy podczas odtwarzania. Jeśli w odtwarzaczu jest wyświetlacz LCD, to aktualny stan funkcji tych klawiszy jest wyświetlany w linii statusu, a w przypadku braku wyświetlacza potwierdzany krótkim dźwiękiem, przy czym wyższy dźwięk oznacza załączenie danej funkcji. W odtwarzaczu posiadającym LCD, dłuższe naciśnięcie klawisza Down uruchamia procedurę regulacji kontrastu wyświetlacza. Regulujemy go za pomocą klawiszy Up-Down i zapamiętujemy, naciskając klawisz Stop. Klawisz Play naciśnięty na krótko w trybie gotowości uruchamia odtwarzanie, a naciśnięty dłużej w wersji wyposażonej w LCD powoduje wyłączenie zasilania odtwarzacza, a w wersji bez wyświetlacza zmianę trybu Repeat, który ma cztery programy działania: odtworzenie pojedynczej playlisty, odtwarzanie kolejno wszystkich play list, powtarzanie "w kółko" jednej playlisty lub powtarzanie jednego utworu. Numer programu sygnalizowany jest na wyświetlaczu odpowiednią ikonką, a w wersji bez wyświetlacza potwierdzany serią od 1 do 4 dźwięków. Ostatecznie, dłuższe przytrzymanie klawisza Stop wyłącza odtwarzacz bez LCD lub wywołuje menu w wersji z wyświetlaczem.
Po uaktywnieniu trybu Menu dostajemy spis wszystkich dostępnych funkcji. Klawiszami Up-Down wybieramy interesującą nas funkcję i potwierdzamy klawiszem Play lub wychodzimy z menu bez dokonywania zmian, naciskając klawisz Stop. Jeśli zatwierdzimy daną funkcję klawiszem Play, to dopóki na
I
Yampp-7
wyświetlaczu widoczne jest menu lub nie jest widoczny pasek postępu odtwarzania możemy spowodować kolejną zmianę wybranej funkcji, czyli np. trzykrotne zatwierdzenie przejścia do następnej playlisty.
Cała ta "klawiszologia" wydaje się być dość skomplikowana, lecz po krótkim okresie użytkowania yamppa okazuje się, że wcale tak nie jest, a liczba dostępnych funkcji rekompensuje początkowe kłopoty. Oczywiście, zastosowanie wyświetlacza LCD znacznie ułatwia obsługę, ponieważ większość funkcji jest dostępnych z poziomu menu. Dla ułatwienia obsługi odtwarzacza początkującym użytkownikom, w tab. 1 i 2 podano zestawienie funkcji poszczególnych klawiszy.
Podobnie jak jego większy brat, yampp-7 obsługuje, stworzony specjalnie dla potrzeb yamppów, nowy format dysku nazwany YADL -Yampp Advanced Disk Layout, którego zalety przedstawiłem w artykule poświęconym yamppowi-3/usb.
Interfejs USB
Do przesyłania plików MP3 do pamięci yamppa-7 użyto coraz bardziej popularnego interfejsu szeregowego USB. W przypadku yamppa-7 pozwala on na przesyłanie danych z prędkością 250...300 kilobajtów na sekundę. Jest ona ograniczona szybkością działania mikrokontrolera i czasem zapisu do pamięci Flash. Dodatkowo, dzięki możliwości sa-moprogramowania się procesora ATmegal61, możliwa jest wymiana głównego oprogramowania odtwarzacza poprzez łącze USB bez konieczności otwierania obudowy i podłączania interfejsu programującego. Do tego celu potrzebny jest jedynie krótki program boot-loadera umieszczony pod koniec dostępnej pamięci programu procesora (jednorazowo podczas uruchamiania yamppa).
Zastosowany w roli interfejsu-konwertera układ FT8U245BM jest kompletnym i prostym w użyciu sprzęgiem pomiędzy magistralą mikrokontrolera a złączem USB i posiada wewnątrz wszystkie bloki potrzebne do nawiązania, synchronizacji i kontroli komunikacji z komputerem PC oraz dwa oddzielne bufory FIFO na wysyłane i odbierane dane. Po zainstalowa-
niu w komputerze PC dostarczonych przez producenta - firmę FTDI - sterowników, układ FT8U245 jest widziany jako szybki wirtualny port komunikacyjny COM. Takie podejście wymaga użycia dedykowanej aplikacji uruchomionej na komputerze i służącej do przygotowania i transmisji poprzez port COM wszelkich da-
USB dostępne jak nigdy dotychczas
nych mających trafić do karty pamięci odtwarzacza. Rolę tej aplikacji pełni yamppLink opisany dokładniej w artykule poświęconym yamppowi-3/USB (EPl/2003).
Budowa i działanie yamppa-7
Schemat blokowy odtwarzacza pokazano na rys. 1, a schemat elektryczny na rys. 2. "Sercem" układu jest mikrokontroler jedno-układowy ICl - ATmegal6lL firmy Atmel. Jest on odpowiedzialny za odczyt i zapis danych na kartę pamięci Flash, przekazywanie strumienia MPEG do dekodera IC2 - VS1OO1, za obsługę klawiszy, wyświetlacza LCD oraz interfejsu USB w postaci układu IC6, wraz z dekoderem adresowym IC4 - 74HC00D. Interfejs USB jest widziany przez procesor jako komórka zewnętrznej pamięci RAM o adresie 8000h. Całość zasilana jest napięciem 3,6 V otrzymywanym z akumulatorka podłączonego do zacisków BAT. Ze względu
na zasilanie całości napięciem 3,6 V, nie jest wymagany żaden konwerter poziomów dla sygnałów podawanych do układu IC2. Konieczne jest natomiast zastosowanie niskonapięciowej wersji mikrokontrolera ICl oznaczonej sufiksem "L". Napięcie wymagane do ładowania akumulatora jest pobierane ze złącza USB, a proces ładowania ogniwa Li-Ion jest kontrolowany przez specjalizowaną ładowarkę IC5 MAX1811. Jeśli zamiast akumulatora Li-Ion zastosujemy trzy aku-mulatorki Ni-Mh, to rolę ładowarki pełni układ złożony z diody Dl i rezystorów R2 i R3. Wyjaśnienia może wymagać rola rezystorów Rll, R13 i R16. Rezystor Rll umożliwia podwójne wykorzystanie linii portu PDO mikrokontrolera, jako wejścia dla sygnału DREQ (żądanie danych) z układu VSl001 oraz jako wyjścia sygnału D/C dla wyświetlacza LCD. Dzielnik napięcia złożony z rezystorów R13 i R16 służy do kontroli stanu rozładowania akumulatora. Podaje on napięcie proporcjonalne do napięcia zasilania na jedno z wejść komparatora analogowego zawartego wewnątrz mikrokontrolera ICl, które porównywane jest z wewnętrznym napięciem odniesienia. Podczas obsługi układu dekodera IC2 to samo wyprowadzenie mikrokontrolera służy jako wyjście sygnału Chip Select dla układu IC2, a obecność rezystorów R13 i R16 nie ma wpływu
Tab. 1. Funkcje przycisków w odtwarzaczu bez wyświetlacza LCD
Tryb pracy Czas przyciśnięcia SW1 SW2 SW3 SW4
PLAY Krótko Play/Pauza Stop Następny utwór Poprzedni utwór
Długo Szybkie przewijanie Następna Playlista Głośniej Ciszej
STOP Krótko Play -- Loudness Random
Długo Tryb Repeat Wyłączenie yamppa Autoblokada klaw. ŚŚ
Tab. 2. Funkcje przycisków w odtwarzaczu z wyświetlaczem LCD
Tryb pracy Czas przyciśnięcia SW1 SW2 SW3 SW4
PLAY Krótko Play/Pauza Stop Następny utwór Poprzedni utwór
Długo Szybkie przewijanie Menu Głośniej Ciszej
STOP Krótko Play -- Loudness * Random *
Długo Wyłączenie yamppa Menu Autoblokada klaw." Kontrast LCD *
* - dostępne również z poziomu Menu
16
Elektronika Praktyczna 3/2003
m ^1
^r
O ro
^ Co oo O
zr
"O CD
o5 3

< o M CD
CD
Konieczne w przypadku ogniw Nl-Mh R2
X3 SH-1 / \
80 GND2 SCK vcc GND1 Sl CS 7 MIRT
fi
H
i
3 MOS
P
1 M'

SW1
<3 O-
SW2
(AD3JPA3 {AD2)PA2 (AD1)RA1 (ADO)PAO
31 Ann/
32 ADR/
33 AD4/
M Arw/
3fi AW/
Ani/
H7 Ann/
vcc
QND
R16
51 k
{SCKJPB7
(MIS0)PB6
(MOSI)PBS
(8S)PB4
?REQ SDATA
DCLK BSYNC
(RD)PD7
(WRJPD6
(OC1AJPD5
PD4
(IWT1)PD3
R13
33k LED_A
LEDK
GND1 DOS D04 D05
Doe
DOT
ŚCE1
A10
ŚOE
A09
AOS
A07
VCC13
A06
AD6
AM
AOS
AOS
A01
AOO
DOO
D01
D02
-I0CS16
ŚC02
-CD1
D11
D1Z
D13
D14
D15
-CE2
-VS1
-K3HD
-IOWR
-WE
IREQ
VCC38
-CSEL
-VS2
RESET
-WAIT
INPACK
-RES
BVDS
BVD1
?08
?OS
Dl O
GNDSO
<
Q
3
T5
Yampp-7
Tab. 3. Zestawienie typów wyświetlaczy oraz modeli telefonów, które można wykorzystać przy budowie yamppa-7
Typ LCD Modele telefonów Liczba wyprowadzeń Komentarz
LPH-7366 lub LPH-7666 N5110, N5150, N6110, N6150 9 Wyprowadzenia na gumce przewodzącej, posiada plastikową matówkę do podświetlania diodami LED
LPH-7677 lub LPH-7690 N3210, N6210 8
LPH-7779 N3310, N3330, N5510 8 Wyprowadzenia na złoconych stykach. Najlepszy wybór
ECM-A-1091 N8210, N8250 9 Jak LPH-7366
na jego poziomy. Złącze J2 służy do podłączenia graficznego wyświetlacza LCD stosowanego w większości telefonów komórkowych firmy Nokia. Sposób podłączenia podany będzie w dalszej części artykułu. Jednocześnie złącze J2 służy do podłączenia kabla wymaganego do zaprogramowania mikrokontrolera programem boot-loadera.
Karty pamięci
Karta pamięciowa Compact Flash włożona do złącza Jl komunikuje się z mikrokontrolerem w trybie bardzo podobnym jak w interfejsie ATA stosowanym między innymi w twardych dyskach, lecz może pracować w trybie 8-bitowym, co znacznie upraszcza jej podłączenie do mikrokontrolera. Z tego powodu rejestry karty mogą być widziane przez procesor jako fragment zewnętrznej pamięci RAM adresowanej sygnałami linii A8...A11 i uaktywnianej niskim poziomem na linii A15 - czyli o adresach pomiędzy lOOOh a lFOOh. Jeśli zamiast karty CF jest zastosowana karta Multi-Media Card, to zamiast złącza Jl wykorzystywane jest złącze X3, a karta MMC komunikuje się z procesorem, wykorzystując magistralę SPI oraz sygnał A14 będący sygnałem zezwolenia na komunikację dla pamięci MMC.
Wyłącznik zasilania
W yamppie-7 nie zastosowano włącznika w jego klasycznej postaci. Wykorzystano natomiast możliwość przejścia w stan uśpienia większości elementów wchodzących w skład yamppa - czyli de-
kodera VS1OO1, interfejsu USB, karty pamięci i wreszcie głównego mikrokontrolera ATmegal6lL. W stanie uśpienia yampp pobiera z akumulatora prąd o natężeniu około 1,5 mA, a po wyjęciu karty pamięci - kilkadziesiąt mikroampe-rów. Umożliwia to czuwanie "wyłączonego" yamppa przez okres około miesiąca bez wyjmowania karty pamięci. Przy dłuższych przerwach w użytkowaniu odtwarzacza zalecane jest wyjęcie karty. Przejście z trybu uśpienia w tryb pracy następuje po naciśnięciu i dwusekundowym przytrzymaniu klawisza Play, co powoduje podanie na nóżkę ICP procesora poziomu niskiego oraz wygenerowanie przerwania "wybudzające-go" procesor z trybu sleep.
Wyłączenie odtwarzacza, czyli przejście w stan uśpienia następuje automatycznie po 2 minutach bezczynności, czyli pozostawania w stanie Stop lub - w zależności od wersji programu - po dłuższym naciśnięciu klawisza Play lub Stop w czasie, gdy odtwarzacz pozostaje w trybie gotowości. Jeśli podczas pracy odtwarzacza napięcie na akumulatorze osiągnie minimalną dopuszczalną wartość (około 3 V), zostanie to zasygnalizowane krótkim dźwiękiem, wyświetleniem ikonki przekreślonej baterii, a po upływie 10 minut odtwarzacz sam się wyłączy. Podczas tych 10 minut będzie słyszalny co minutę krótki dźwięk informujący o krytycznym stanie akumulatora zasilającego. Próba ponownego załączenia odtwarzacza z rozładowanym akumulatorem kończy się komunikatem Low Battery!, potrójnym dźwiękiem
Tab. 4. Rozkład wyprowadzeń wyświetlaczy
Numer styku: 1 2 3 4 5 6 7 8 9
Dla 8-stykowych: VDD SCLK SDIN D/C SCE GND VOUT RES -
Dla 9-stykowych: VDD SCLK SDIN D/C SCE OSC GND VOUT RES
WYKAZ ELEMENTÓW
Rezystory (SMD rozmiar 0805)
Rl, R6: 10kO
R2, R3: 100O*
R4: 1MQ
R5, Rl 1: 4,7kn
R7: l,5kQ
RIO: 2,2kQ
R12: 470O
R13: 33kO
R14, R15: 27Q
R16: 51kO
Kondensatory
CL C6, C7: 100nF/C0805
C9...C11: 100nF/C0805
C2...C5: 33pF/C0805
C8: 10|iF/16V ELNA_RV2_4
C14: 10^F/16V tantal C6032
Cl5: l|iF/16V tantal C3528
C12, C13: 100^F/10V ELNA_RV2_63
Półprzewodniki
Dl: BAS32 SOD80*
T2: BC817 SOT23
IC1: ATmegalólL TQFP44
IC2: VS1001K SOIC-28
IC4: 74HC00D SO14
IC5: MAX1811 SO8**
ICÓ: FT8U245BM QFP32
Różne
Ql: 4,000MHz HC49U-V
niskoprofilowy
Q2: 12,288MHz HC49U-V
niskoprofilowy
Q3: 6,00MHz 3-końcówkowy
rezonator ceramiczny
Jl: gniazdo karty Compact Flash
J2: szpilkowe, kątowe 2*5pin,
rozstaw 2 mm
Xl: gniazdo mini-jack 3,5mm
X2: złącze USB-B (787780)
X3: gniazdo karty MultiMedia
Card
SW1...SW4: kątowy przycisk ALPS
typu SKHHLQ
* Montować w przypadku użycia
akumulatora Ni-Mh
" Montować w przypadku użycia
akumulatora Li-lon
oraz natychmiastowym wyłączeniem. Ostatecznie, jeśli pozostawimy odtwarzacz w stanie pauzy na 15 minut, to też nastąpi jego automatyczne wyłączenie.
Akumulator
Do zasilania yamppa-7 można wykorzystać kilka typów akumulatorów łatwo dostępnych, ponieważ są one wykorzystywane do zasilania telefonów komórkowych.
18
Elektronika Praktyczna 3/2003
Yampp-7
Najlepiej jest użyć akumulatora litowo-jonowego o pojemności w zakresie od 600 do 1200 mAh, stosowanych w telefonach Nokia 3310 (950...1200 mAh), Motorola V3688 (600 mAh) lub innych Motorolach z serii L, P lub V. Ważne jest, aby grubość zastosowanego akumulatorka nie przekraczała 8,5 mm, ponieważ powstaną kłopoty ze zmieszczeniem go w obudowie yamppa. Jeśli nie znajdziemy odpowiedniego akumulatora typu Li-Ion, to możemy zastosować zestaw trzech akumulator-ków Ni-Mh o wielkości baterii R3. Należy pamiętać, że stosując akumulator Li-Ion, musimy zamontować układ IC5 i nie montować elementów Dl, R2, R3. Natomiast przy zastosowaniu akumulatorków Ni-Mh nie montujemy układu IC5, a wlutowujemy Dl, R2 i R3.
Wyświetlacz LCD
Zestawienie typów wyświetlaczy oraz modeli telefonów, które można wykorzystać przy budowie
yamppa-7 podano w tab. 3. Jeśli chcemy, żeby wyświetlacz był widoczny w ciemności, możemy go podświetlić. Dwa możliwe do wykonania sposoby podświetlenia opiszę później, a teraz zajmę się podłączeniem samego wyświetlacza.
Jeżeli zastosujemy wyświetlacz typu LPH-7779, to podłączenie do niego przewodów nie stwarza żadnego problemu, ponieważ można je przy lutować wprost do złoconych styków wyświetlacza. Zastosowanie wyświetlacza z wyprowadzeniami w postaci gumy przewodzącej pociąga za sobą konieczność wykonania płytki drukowanej z polami kontaktowymi lub wykorzystania fragmentu płytki z uszkodzonego telefonu komórkowego - po odpowiednim przycięciu i przylutowaniu przewodów do istniejących ścieżek bądź prze-lotek. Wykonanie takiej płytki we własnym zakresie wymaga trochę precyzji i cierpliwości, ponieważ odległość pomiędzy poszczególnymi stykami wyświetlacza wynosi
1 mm, a wymagana szerokość ścieżki pola stykowego około 0,4 mm. Następnie przewody prowadzące od wyświetlacza podłączamy kolejno do pierwszych 8 styków złącza J2. Jeśli stosujemy wyświetlacz o 9 wyprowadzeniach, to styk numer 6 (OSC) wyświetlacza należy połączyć ze stykiem numer 1 (VDD), a pozostałe styki podłączyć tak samo jak przy zastosowaniu wyświetlacza 8-wyprowadzeni owego. Rozkład wyprowadzeń poszczególnych wyświetlaczy podano w tab. 4 przy założeniu, że patrząc na wyświetlacz od strony wyprowadzeń i mając wyprowadzenia u góry wyświetlacza, styk numer 1 znajduje się po lewej stronie złącza. Romuald Biały http://www.yamppsoft.prv.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/marzecO3Jitm oraz na płycie CD-EP3/2003B w katalogu PCB.
Elektronika Praktyczna 3/2003
19
AUTOMATYKA
W cyklu artykułów publikowanych na łamach EP zaprezentujemy możliwości oprogramowania wizualizacyjnego (SCADA) Wonderware InTouch. W tej części pokażemy w jaki sposób jest konfigurowane oprogramowanie komunikacyjne. Demonstracyjną, polskojęzyczną wersję oprogramowania InTouch 7.11 PL zamieściliśmy na płycie CD-EP1/2003B.
Kurs obsługi, część 3
Konfiguracja programu komunikacyjnego
Konfiguracja programu komunikacyjnego, który z jednej strony komunikuje się z urządzeniami np. sterownikami, a z drugiej strony z aplikacją wizualizacyjną, jest kolejnym etapem projektowania aplikacji. W tym przypadku nie posiadając rzeczywistego sterownika, można wykorzystać program komunikacyjny, który będzie symulował jego piacę. Program ten nazywa się DDE Seiver Simulaior (Si-mulaie) i należy go uruchomić wybierając z menu START\Programy\Won-derware FaciorySu.iie\InTou.ch\DDE Server Simulaior. Pojawi się okno konfiguracyjne (rys. 39), w którym należy wybrać Configure\Topic Defini-iion (rys. 40), w którym jest definiowany kanał komunikacyjny (Topie), przez który aplikacja wizualizacyjną będzie pobierała/przesyłała informacje z/do sterownika.
W oknie Topie Definiiion należy wybrać przycisk New, co umożliwia zdefiniowanie nowego Topie a (okno pokazano na rys. 41). W polu Topie Name wpisujemy PLCl - jest to dokładnie taka sama nazwa, która została wpisana w polu Nazwa ie-
matu, przy definicji Nazwy dostępu w programie InTouch. Kolejnym definiowanym parametrem jest Updaie Inierval, który określa jak często program komunikacyjny będzie powiadamiać aplikację wizualizacyjną InTouch o zmianach wartości zmiennych. W tym polu wpisujemy wartość 100, co oznacza, że co 100 milisekund informacje o zmianach wartości zmiennych będą przesyłane pomiędzy programem komunikacyjnym a aplikacją wizualizacyjną. Pozostałe parametry pozostawiamy bez zmian.
Po zakończeniu wprowadzania parametrów naciskamy przycisk OK, co spowoduje zakończenie konfigu-rowania Topica w programie komunikacyjnym. Następnie potwierdzamy zachowanie konfiguracji programu za pomocą przycisku OK. Naciśnięcie przycisku Done kończy definiowanie parametrów programu komunikacyjnego, którego na tym etapie nie należy jeszcze zamykać.
Teraz wracamy do programu WindowMaker i w wskazujemy w menu Plik\WindowViewer..., co powoduje uruchomienie zaprojektowanej aplikacji. Po chwili pojawi się
Rys. 39
Rys. 40
Rys. 41
okno programu WindowViewer, w którym zostanie wyświetlone zaprojektowane okno. Jeżeli nie jest ono widoczne na ekranie, należy wejść do menu Plik\Oiwórz okno... i wskazać okno do otwarcia.
Teraz możemy prześledzić przebieg monitorowanego procesu. Po napełnieniu zbiornika powinien on zostać samoczynnie opróżniony i napełnianie zostanie powtórzone. W dowolnym momencie można nacisnąć przycisk Start (Uruchomiony/ Zatrzymany), w celu zatrzymania procesu i jego ponownego uruchomienia (od początku).
W tym momencie projektowanie aplikacji wizualizacyjnej InTouch zostało zakończone. Oczywiście aplikacje można rozbudowywać o kolejne elementy graficzne, czy też funkcje np. kreślenie trendów, wyświetlanie alarmów, tworzenie raportów itp. Wszystko zależy od inwencji projektanta. Marcin Leg u tek, Astor ML@astor.com.pl
D o dat ko we i nf o rma ej e
Ewal uacyjnę wersj ę programu InTouch 7.11 PL zamieściliśmy na CD-EP1/2003B.
140
Elektronika Praktyczna 3/2003
PROJEKTY
JuPIC
Programator mikrokontrolerów PIC współpracujący z programem MPLAB
AVT-5100 *
Konstruktorzy są bez
wątpienia ludźmi równie
leniwymi, jak wszyscy inni.
Stąd pomysł tworzenia dla
nich, a zwłaszcza dla
programistów, zintegrowanych
narzędzi projektowych.
W ańykule przedstawiamy
projekt programatora
mikrokontrolerów PIC, który
doskonale " wtapia" się
w środowisko MPLAB, dzięki
czem u przygoto wanie
oprogram o wan ia
mikrokontrolerów można
zrealizować za pomocą
jedn ego tylko program u.
Rekomendacje: doskonałe
narzędzie przystosowane do
bezpośredniej współpracy ze
środowiskiem MPLAB. Idealne
rozwiązanie dla
projektantów korzystających
z mikrokontrolerów PIC firmy
Microchip.
Od kilku lat jesteśmy świadkami ogromnego postępu w dziedzinie elektroniki cyfrowej i niezastąpionych w niej mikroprocesorów i mikiokontrolerów. Stopień złożoności tych układów wzrasta w szybkim tempie, powodując konieczność przyswajania coraz to nowej wiedzy. Najszybszym sposobem na osiągnięcie tego celu jest wykorzystanie programów interaktywnych, pośredniczących między użytkownikiem a urządzeniem. Każda firma chcąca wejść na rynek ze swoimi mikiokontio-lerami udostępnia zazwyczaj specjalne oprogramowanie, które umożliwia korzystanie z oferowanych układów. Obserwując rynek mikrokontrolerów jednoukłado-wych, można zauważyć, iż coraz większa liczba producentów udostępnia darmowe oprogramowanie, serwis informacyjny oraz dokumentację techniczną, chcąc przyciągnąć do swoich produktów jak największą grupę użytkowników. Jedną z firm, która wyszła naprzeciw tym wymaganiom, jest firma Microchip produkująca mik-rokontiolery rodziny PICmicro.
Przedstawiony w niniejszym artykule programator JuPIC powstał jako część pracy dyplomowej wykonywanej na Politechnice Śląskiej i jest wynikiem wielotygodniowej pracy nad protokołem komunikacyjnym. Programator jest przeznaczony do programowania mikiokontrolerów serii "F" z pamięcią typu Flash: PIC16F627, PIC16F628, PIC16F83, PIC16F84, PIC16F84A, PIC16F870, PIC16F871, PIC16F872, PIC16F873, PIC16F874, PIC16F876, PIC16F877, a także PIC12F675 iPICl6F629.
Współpracuje on ze zintegrowanym środowiskiem uruchomieniowym MPLAB IDE firmy Microchip i obsługuje protokół komunikacyjny zgodny z protokołem oryginalnego programatora PICS-TART Plus (opracowanego przez firmę Microchip). Tym samym możliwe jest wykorzystanie potężnych możliwości jakie daje oprogramowanie MPLAB pracujące w środowisku graficznym Windows. Firma Microchip rozpowszechnia ten program jako free-ware i można go pobrać ze strony internetowej http://www.in.icTO-
Elektronika Praktyczna 3/2003
21
JuPIC
chip.com/1010/pline/tools/picmic-ro/devenv/mplabi/index.htm. Naj-nowsza wersja oprogramowania nosi oznaczenie 6.10. MPLAB i pozwala na zapisywanie, monitorowanie i optymalizację aplikacji PICmicro. Zawiera wbudowany edytor tekstu, symulator, kompilator, obsługę projektów oraz programator. Program z wbudowanymi wieloma funkcjami pozwala m.in. na:
- tworzenie i edycję plików źródłowych,
- grupowanie plików w projekty,
- wyszukiwanie błędów kodu,
- asemblację, kompilację i linko-wanie kodu źródłowego,
- wyznaczanie zależności czasowych,
- podglądanie zmiennych w czasie pracy programu,
- symulację działania programu,
- komunikację z urządzeniem PIC-START Plus (JuPIC),
- rozwiązywanie problemów z wykorzystaniem podręcznej pomocy,
- debugowanie za pomocą protokołu ICD.
Programator JuPIC zbudowany został w oparciu o mikrokontroler PIC16F628, który obecnie zdobywa coraz większą popularność ze względu na swoją funkcjonalność. Programator w połączeniu z programem MPLAB tworzy niezwykle sprawne i profesjonalne narzędzie programisty. Funkcjonalność tego zestawu powoduje, że może być przeznaczony do małych i średnich zastosowań, a polecany jest zarówno dla użytkowników początkujących, jak i zaawansowanych.
Opis układu
Schemat programatora przedstawiono na rys. 1. Składa się on ze: stabilizatora +5V, translatora poziomów MAX23 2, klucza napięciowego i mikrokontrolera PIC16F628, który jest taktowany sygnałem zegarowym o częstotliwości ustalonej przez rezonator kwarcowy 11059200Hz.
Praca mikrokontrolera polega na obsłudze protokołu komunikacyjnego pomiędzy programatorem a programem MPLAB oraz na wytworzeniu odpowiedniego przebiegu programującego na wyjściach programujących (sygnały DATA, CLOCK, MCLR, LVP). Protokół programujący nie jest udo-
Rys. 1. Schemat elektryczny układu
Elektronika Praktyczna 3/2003
JuPIC
Vqd
Złącze
ICSP
Rys. 2. Sposób dołączenia mikrokontrolera do złącza ICSP
stępniany w dokumentacji technicznej firmy Microchip, a jego opis wykracza poza ramy niniejszego artykułu, dlatego nie zostanie tu przedstawiony.
Do zasilania programatora zalecane jest zastosowanie zasilacza stabilizowanego 12...14 V o wydajności ok. 250 mA. Zasilacz zbudowany został w oparciu o stabilizator 7805 (US). Szeregowo włączona dioda DZ zabezpiecza przed nieprawidłowym podłączeniem zasilacza zewnętrznego.
Obsługa programatora JuPIC przebiega identycznie jak wspomnianego już programatora PICS-TART Plus.
Elementem sprzęgającym programator z komputerem jest konwerter poziomów napięć MAX232 (U2), co wynika z faktu, że porty mikrokontrolera pracują w standardzie TTL. Przetwornik pracuje z czterema liniami RS232: TXD, RXD, RTS, CTS, przez które układ może nawiązać transmisję typu handshaking. Wykorzystując układ MAX232, otrzymujemy na liniach napięcia o wartościach zbliżonych do standardu RS232. JuPIC łączy się z komputerem poprzez szeregowe łącze RS232C kablem typu "modem" [straight through), który jest także wykorzystywany przy łączeniu oryginalnego programatora PICSTART Plus. Siedmiożyłowy kabel łączący jest zakończony męs-
kim gniazdem DB-9 od strony programatora i żeńskim DB-9 lub DB-25 od strony komputera. W tab. 1 przedstawiono wykaz sygnałów używanych przez programator oraz opis wyprowadzeń łącz.
Klucze tranzystorowe (T1...T3) zapewniają przyłączenie jednego z trzech poziomów napięć na wejście MCLR: Vss = 0V, VDD = 5V oraz Vpp = 12 V, zapewniając tym samym wymagane funkcje protokołu ICSP. Sygnał sterujący składa się z dwóch bitów, których kombinacje wartości oznaczają odpowiednie napięcia wyjściowe. Sposób kodowania zestawiono w tab. 2.
Po podaniu na wyjścia RAO i RAI stanu "0" zatkane zostają wszystkie tranzystory i na wyjściu pojawi się potencjał VDD (R7 pracuje jako pull-up). Po podaniu na wyjście RAI stanu "1" zostaje wysterowany tranzystor T3 i na wyjściu otrzymujemy poziom Vss, niezależnie od stanu na wyjściu RAO. Natomiast po podaniu na wyjście RAI stanu "0", a na wyjście RAO stanu "1" powodujemy zatkanie tranzystora T3 i wy-sterowanie tranzystorów Tl i T2, co spowoduje wystąpienie na wyjściu napięcia programującego Vpp.
W ten sposób uzyskujemy możliwość podawania wszystkich potrzebnych napięć na wejście MCLR mikrokontrolera.
Programowanie w systemie ICSP
Programator został wyposażony w dodatkowe złącze służące do programowania zgodne z protokołem ICSP. Otrzymano w ten sposób tzw. "okno na świat", umożliwiając przyłączanie do programatora JuPIC dowolnie wybranego zewnętrznego systemu mikroprocesorowego . Jedynym warunkiem tego przyłączenia jest zachowanie standardu łącza oraz zgodność protokołów programujących. Na
oooooo
d0SS3D0dd
oooooooo
s
? o o o'0 o o o o
ZdC IO~Ol O IOEB3Q[
'IK O

O O O O O D /^"\ OOOO \J
ero
^
Rys. 3. Rozmieszczenie elementów na płytce programatora
rys. 2 przedstawiono sposób przyłączania układu zewnętrznego.
Funkcje programatora
Programator posiada szereg funkcji i usprawnień rozszerzających jego możliwości:
- Układ ma przycisk kasowania, którym bez podłączania programatora do komputera można wyzerować pamięć mikrokontrolera (także Code Protection). Aby wykasować pamięć, należy nacisnąć i przytrzymać klawisz ERASE przez 2 sekundy - dioda LED zasygnalizuje wyzerowanie mikrokontrolera.
- Wprowadzono diodę sygnalizacyjną LED, która sygnalizuje aktualne stany programatora:
- dwa podwójne krótkie błyski diody - załączenie zasilania i inicjacja programatora,
- dioda świeci światłem ciągłym - programator gotowy do pracy,
- dioda pulsuje równomiernie szybko - nawiązywana jest komunikacja z programem MPLAB IDE,
Tab. 1. Opis wyprowadzeń złącz komputera i programatora JuPIC
DB-25 Żeński DB-9 Żeński Sygnał Kierunek PC <-> JuPIC DB-9 Męski Sygnaf
2 3 TX -> 3 RX
3 2 RX <- CSI TX
20 4 DTR -> 4 Data Ready
7 5 GND - 5 GND
6 6 DSR <- 6 puli up +5V
4 7 RTS -> 7 CTS
5 8 CTS <- 8 RTS
Rys. 4. W ten sposób włącza się tryb SAFE
Elektronika Praktyczna 3/2003
23
JuPIC
[3JO|
Programowany mikrokontroler powinien być zainstalowany w tej podstawce
Rys. 5. Sposób dołączenia programowanego mikrokontrolera do programatora pracującego w trybie SAFE
Mikrokontroler
programowany
w systemie (ICSP)
dołącza się do
programatora
za pomocą tego
złącza
Napięcie
z zasilacza
zewnętrznego
(i2\pra"
Rys. 7. Sposób dołączenia programowanego mikrokontrolera do programatora pracującego w trybie VCC
- dioda pulsuje równomiernie wolno - programator jest w trakcie wymiany danych z programem MPLAB IDE (zapis/odczyt),
- dioda gaśnie - reakcja na przyciśnięcie klawisza,
- 3 krótkie błyski diody - mikrokontroler został wykasowa-
ny,
- dioda okresowo nadaje 3 krótkie błyski - zawieszenie programatora, naruszenie struktury programu, konieczna wymiana oprogramowania.
Wprowadzono złącze ICSP, czyli możliwość programowania w systemie (na płytce) bez konieczności wyjmowania mikrokontrolera z uruchamianego urządzenia.
Wprowadzono możliwość programowania mikrokontrolerów w trybie LVP.
Wyprowadzono podstawkę DIP18, która umożliwia programowanie mikrokontrolera bez konieczności podłączania przewodów. Do podstawki można włożyć mikrokontrolery, które mają kompatybilne wyjścia z układem PIC16F628. Wyprowadzono zworki konfigu-racyjne, które pozwalają przystosować programator do własnych potrzeb.
Procedury programujące zostały poddane optymalizacji, co po-
woduje przyspieszenie programowania mikrokontrolerów. Zawartość każdej komórki przed zaprogramowaniem jest porównywana z wartością, która ma być do niej wpisana i jeśli jest taka sama, operacja zapisu jest pomijana.
Montaż i uruchomienie
Programator zmontowano na dwustronnej płytce drukowanej, której schemat montażowy przedstawiono na rys. 3. Montaż przeprowadzamy typowo, rozpoczynając od elementów najniższych, a kończąc na wlutowaniu złącza RS232. Na końcu, po zmontowaniu płytki, należy włożyć układy scalone do wlutowanych wcześniej podstawek.
Programator po włączeniu zasilania jest gotowy do pracy i nie wymaga uruchamiania, natomiast wymagane jest zapoznanie się z trybami pracy, jakie układ udostępnia i odpowiednie skonfigurowanie zworek.
Konfiguracja programatora
Programowanie może odbywać się dwoma sposobami:
- napięciem wysokim HVP (12...14 V) - zworka "LVP ON" rozłączona,
- napięciem niskim LVP (5 V) -zworka "LVP ON" zwarta (funkcja "działa" tylko dla mikrokontrolerów posiadających tryb LVP).
Możliwe są również 4 tryby pracy ze względu na zasilanie układu:
Rys. 6. W ten sposób włącza się tryb VCC
Tab. 2. Sposób kodowania napięcia programującego
RAO RA1 Napięcie Funkcja
0 0 vDD Praca
- 1 vss Reset
1 0 vPP Programowanie
1. Tryb SAFE - bezpieczny Uaktywnienie trybu następuje
po załączeniu zworki "SAFE" (rys. 4). Tryb ten pozwala na programowanie mikrokontrolera najbezpieczniejszym sposobem. Napięcie na wyprowadzenia mikrokontrolera jest podawane przez klucz T4 załączany tylko podczas jego programowania (zapis/odczyt), natomiast po operacji wymiany danych jest odcinane. Zalecane jest, aby w tym trybie nie zasilać ze złącza ICSP żadnego układu zewnętrznego (rys. 5).
2. Tryb VCC - z bezpośrednim zasilaniem
Uaktywnienie trybu następuje po załączeniu zworki "VCC" (rys. 6). Tryb ten pozwala bezpośrednio zasilać programowany mikrokontroler napięciem 5 V, podawanym z zasilacza umieszczonego na płytce (rys. 7). Napięcie jest podawane cały czas na wyprowadzenia mikrokontrolera i dlatego należy zachować ostrożność podczas jego wkładania lub wyjmowania z podstawki. Jeśli mikrokontroler jest programowany nie w podstawce, lecz poprzez złącze zewnętrzne ICSP, napięcie podawane jest również na przyłączony układ. W ten sposób można wykorzystać zasilacz programatora do zasilania układu programowanego. Jedynym ograniczeniem jest tu wydajność prądowa stabilizatora i maksymalny prąd za-
Tab. 3. Rozmieszczenie wyprowadzeń złącza ICSP zaproponowane przez firmę Microchip
Styk Funkcja Port
1 MCLR MCLR
2 VCC VDD
3 GND VSS
4 DATA RB7
5 CLOCK RB6
6 LVP RB3/4
Elektronika Praktyczna 3/2003
JuPIC
Programator
JuHc
Rys. S. W ten sposób włqcza się zależny tryb pracy (bez zasilacza)
bezpieczającej diody szeregowej, dlatego należy wziąć ten fakt pod uwagę, aby nie spalić elementów zasilacza na płytce.
3. Tryb zależny - bez zasilacza Uaktywnienie trybu następuje
po załączeniu zworki "VCC" i "LVP ON" (rys. 8). Tryb ten pozwala na pracę programatora bez własnego zasilania. Napięcie niezbędne do pracy programatora (5 V) jest podawane bezpośrednio z układu programowanego przez złącze ICSP (rys. 9). W tej konfiguracji możliwa jest tylko praca z mikrokontiolera-mi, które mogą być programowane niskim napięciem (LVP). Podczas pracy w tym trybie nie wolno podłączać zasilania do programatora, ponieważ może ulec uszkodzeniu stabilizator.
4. Tryb niezależny - z podwójnym zasilaniem
Uaktywnienie trybu następuje po rozłączeniu zworki "SAFE" i"VCC (rys. 10). Tiyb ten pozwala na podawanie zasilania z dwóch różnych źródeł. Programator zasilany jest z własnego stabilizatora, natomiast programowany mikiokontioler jest zasilany ze złącza ICSP.
Instalacja programatora przebiega następująco:
- programator umieszczamy na stabilnym, nieprzewodzącym podłożu,
- podłączamy przewód RS232 do komputera i programatora,
- podłączamy zasilacz do sieci, a następnie przewód zasilania 12V do programatora,
-O
mfl>4 Programator 1 ^^ JuPic
Rys. 9. Sposób dołqczenia programowanego mikrokontrolera do programatora pracujqcego w trybie zależnym
- umieszczamy programowany mikiokontioler w podstawce lub podłączamy przewód programowania ICSP,
- uruchamiamy na komputerze program MPLAB IDE,
- uaktywniamy programator, wybierając z menu PIC START Plus funkcję Enable Programmer -w programie MPLAB IDE pojawi się okno inicjacji programatora, po czym otrzymamy aktywny interfejs użytkownika; programator JuPIC przedstawia się w wersji 2.30.00 (rys. 11).
Po kompilacji przygotowanego projektu otrzymujemy kod wynikowy w postaci pliku typu Intel HEX, który możemy wprowadzić do programowanego mikrokontrolera (Program).
Na panelu programatora (rys. 12) dostępne są także funkcje odczytu (Read) i weryfikacji (Ve-rify) kodu, można również spraw-
Rys. 11. W taki sposób widziany jest JuPIC przez MPLAB
VDDM Śi im
*i ilu

i ' r_Hj w
A) W
Blank I Elfl*d
Fluh Ddvidb
Rys. 10. W ten sposób wlqcza niezależny tryb pracy
Rys. 12. Widok panelu obsługi programatora w MPLAB
dzić, czy podłączony mikiokont-roler ma skasowaną pamięć programu (Blank). Dodatkowo, od wersji programu MPLAB 5 Ś 70 wprowadzono przycisk kasowania mikrokontrolera (Erase Flash De-vice).
Adam Jurkiewicz Stanisław Pietraszek
Wzory płytek drukowanych w formacie PDF są dostępne w Jnternecie pod adresem: http:iiwww.ep.coni.pli ?pdfimarzecQ3Jtim oraz na płycie CD-EP3/2003B w katalogu PCB.
WYKAZ ELEMENTÓW
Rezystory
Rl, R7, R9, RIO: 10kn
R2, R3, R4:
R5:
Ró:
RS:
Kondensatory
Cl, C3: 100^F/25V
C2, C4, CB1, CB2: lOOnF
C5, Có, C7, CS: 1C^F/25V
CP1: 220pF
CX1, CX2: 22pF
Półprzewodniki
Ul: PICIÓF62S (zaprogramowany)
U2: MAX232
US: 7805
Dl: 1N414S
DZ: 1N4007
LED czerwona
Tl, T3: BC23S
T2, T4: BC307
Różne
XTAL: kwarc ll,0592MHz
JZ: zlqcze zasilania
SW1: microswitch
Jl: zlqcze RS żeńskie
J3: podstawka precyzyjna 18 pin
J4: zlqcze ó pin do druku
JP1: zworka 2 pin
JP2: zworka 3 pin
Elektronika Praktyczna 3/2003
25
PROJEKTY
Dekoder dźwięku dookólnego SRS, część 1
Surround na dwóch głośnikach
AVT-5105
W reklamach można
wyczytać, że efekt dźwięku
dookólnego uzyskuje się
wyłącznie poprzez
zastosowanie n->głośnikowych. My, mając silne
oparcie w kilkuletnich
doświadczeniach firmy
SRS Labs, twierdzimy, że
doskonały efekt dookólny
można osiągnąć za pomocą
dwóch zestawów głośnikowych
zasilanych z klasycznego
wzmacniacza stereofonicznego.
Rekomendacje: procesor
wzbogacający brzmienie przez
znaczne poszerzenie bazy
odsłuchowej, który może
współpracować z każdym
domowym zestawem
stereofonicznym audio.
Czy można sobie wyobrazić, jak wyglądałby dzisiaj świat, gdyby nie wynalazek Edisona pozwalający na zarejestrowanie, a potem odtworzenie dźwięku? Pewnie niewielu Czytelników zdaje sobie sprawę, słuchając swoich (doskonałych technicznie) ulubionych nagrań, jak wiele się zmieniło od tamtego czasu. Mechaniczne urządzenie Edisona było ciągle udoskonalane tak, by osiągnąć jeden cel: jak najwierniej zapisać i odtworzyć dźwięk. Po osiągnięciu doskonałej - jak na lata 60. - jakości nagrań monofonicznych pojawił się system stereo poprawiający radykalnie jakość dźwięku odsłuchiwanych nagrań. Systemem stereofonicznego odtwarzania dźwięku umożliwiał bowiem mniej lub bardziej precyzyjną lokalizację w płaszczyźnie przed słuchaczem instrumentów, solistów czy aktorów. Nagrania stereo były znacznie bliższe ludzkiej percepcji dźwięku i z tego powodu ten system jest ciągle podstawowym stosowanym w technice nagrań audio, w audycjach radiowych FM i przesyłaniu dźwięku w przekazach telewizyjnych.
Mimo ogromnej popularności stereofonii, nie zaprzestano prac nad lepszymi sposobami odtwarzania dźwięku. Człowiek przecież rozpoznaje, czy źródło dźwięku jest
ulokowane z przodu, z boku, czy z tyłu lub z góry - inaczej mówiąc, słyszy przestrzennie. Najwierniejsze odtwarzanie dźwięku to odtwarzanie przestrzenne. Dlatego powstały systemy pozwalające na takie odtwarzanie. Początkowo była to droga aparatura zaprojektowana na potrzeby przemysłu filmowego. Atrakcyjność odsłuchu przestrzennego skłoniła konstruktorów do opracowania coraz tańszych i prostszych w zastosowaniu urządzeń. Dzisiaj, jednym z najbardziej znanych jest system firmy Dolby. Jednak polityka licencyjna firmy praktycznie uniemożliwia zakup scalonych dekoderów przez odbiorców, którzy nie uzyskali licencji. Zawęża to krąg odbiorców do największych firm mogących sobie pozwolić na zakupienie licencji. W proponowanym w artykule dekoderze został zastosowany scalony procesor odtwarzania dźwięku przestrzennego systemu SRS.
Co to jest SRS?
System dwukanałowego dźwięku przestrzennego SRS powstał w laboratoriach firmy SRS Labs, Inc. SRS, czyli Sound Retrieval System, tworzy przestrzenne brzmienie z dowolnego źródła dźwięku za pomocą standardowego wzmacniacza współpracującego
Elektronika Praktyczna 3/2003
27
Dekoder dźwięku dookolnego SRS
Rys. 1. Schemat elektryczny procesora SRS
Elektronika Praktyczna 3/2003
Dekoder dźwięku dookolnego SRS
z dwoma zestawami głośnikowymi. Niezależnie od tego, czy sygnał jest monofoniczny, stereofoniczny, czy zakodowany jako dookólny [sur-round sound), system SRS rozszerza przestrzeń akustyczną materiału audio, wywołując wrażenie realnego dźwięku przestrzennego.
SRS został stworzony przez Arnolda Klaymana po latach badań nad fizjologicznymi właściwościami odbierania wrażeń słuchowych przez ludzkie ucho. Wykorzystanie wyników tych badań umożliwiło opracowanie unikalnej metody odzyskiwania przestrzeni w nagraniach i odtwarzania trójwymiarowego pola brzmieniowego.
W tradycyjnym systemie stereo dość krytyczne jest ustawienie głośników i pozycja słuchacza względem nich. Przesunięcie się poza obszar bazy stereofonicznej powoduje utratę lub znaczne pogorszenie jakości odsłuchu stereofonicznego. W systemie SRS pozycja słuchacza nie jest krytyczna i może się on poruszać po pomieszczeniu bez utraty wrażenia odsłuchu przestrzennego.
System SRS nie wymaga specjalnego kodowania i dekodowania sygnału, nie polega także na sztucznym wytwarzaniu opóźnień i manipulowaniu fazą oryginalnego sygnału dźwiękowego. Jak to już zostało powiedziane, SRS bazuje na charakterystycznym dla ludzkiego ucha odbieraniu wrażeń słuchowych. Kiedy fala dźwiękowa przychodzi z przodu głowy słuchacza, to małżowina odbija wiele składowych częstotliwościowych z daleka od kanału usznego. Dźwięk pochodzący z boku nie jest odbijany przez małżowinę tak jak dźwięk pochodzący z przodu głowy. Wszystkie informacje odbierane przez ucho są przesyłane do mózgu i tam interpretowane. Sygnał przestrzenny wytworzony przez małżowinę i przesyłany do mózgu jest nazywany HRTF [Head - Related Transfer Function.) Ponieważ zależny od poziomu i kierunku dźwięku sygnał HRTF faluje wokół małżowiny, to sygnał akustyczny w kanale usznym ciągle się zmienia. Ciągły napływ informacji przesyłany
z ucha do mózgu pozwala na określenie kierunku i rodzaju dźwięku. Nagrania wykonane za pomocą mikrofonów nie mogą zarejestrować kierunku pochodzenia dźwięku tak, jak robi to ludzkie ucho. Jednak nawet w tak zarejestrowanych nagraniach sygnał reprezentujący przestrzeń jest obecny, ale jest niwelowany przez tradycyjne systemy reprodukcji dźwięku. Oryginalna przestrzenność i dynamika nagrań zostaje w nich zafałszowana lub zupełnie zatarta. SRS analizuje stale zmieniającą się funkcję HRTF w układzie ludzkiego systemu słyszenia i odtwarza właściwe składowe częstotliwościowe oraz proporcje bezpośrednich i odbitych fal dźwiękowych. Przez rozdzielenie sygnału stereo na różne składowe jest możliwe wyizolowanie i odtworzenie informacji o przestrzenności dźwięku. SRS oddziela te informacje i odpowiednio przetwa-
astosowanie procesora lt w klasycznym
stereofonicznym torze audio powoduje rozszerzenie bazy stereofonicznej poza ściśle
określony obszar ulokowany między
głośnikami reprodukującymi sygnały kanału
lewego i prawego. Zastosowany sposób
obróbki dźwięku pozwala wytworzyć
przestrzeń akustyczną o właściwościach
zbliżonych do klasycznych rozwiązań surround
ale bez konieczności stosowania dużej liczby
zestawów głośnikowych.
Tab. 1. Podstawowe parametry i właściwości procesora SRS:
Procesor charakteryzuje się:
x Trzema przełączanymi wejściami stereo.
x Niezależnym dla każdego wejścia
programowanym tłumieniem poziomu
sygnału wejściowego. x Regulacją wzmocnienia z możliwością
ustawienia balansu. x Regulacją barwy (tonów niskich, średnich
i wysokich).
x Dźwiękiem przestrzennym SRS. x Dźwiękiem surround. x Funkcją Voice Canceller (karaoke). x Możliwością zaprogramowania przez
użytkownika czterech banków ustawień
efektu. Wszystkie ustawienia zapisywane
w nieulotnej pamięci EEPROM. x Możliwością zaprogramowania wszystkich
przewidzianych przez producenta ustawień
układu TDA7466. x Wszystkie informacje wyświetlane na
wyświetlaczu alfanumerycznym 2x20
znaków. x Ustawienia i regulacje są dokonywane za
pomocą 5-przyciskowej klawiatury.
rza za pomocą opatentowanej metody polegającej na korekcji odpowiedzi częstotliwościowej za pomocą specyficznej krzywej.
Procesor SRS
Pomysł firmy SRS Labs okazał się na tyle atrakcyjny, że wielu producentów scalonych układów audio uruchomiło produkcję scalonych procesorów systemu SRS. W opisywanym projekcie kompletnego procesora SRS ze sterownikiem został wykorzystany układ TDA7466 firmy STMicroelectro-nics. Schemat procesora SRS wy-
konanego z tym układem pokazano na rys. 1. Zastosowana w nim konfiguracja układowa TDA7466 jest identyczna z proponowaną w nocie aplikacyjnej producenta. Sygnały kanału lewego i prawego z przełącznika wejść są podawane przez kondensatory Cl i C2 na wyprowadzenia 36 i 38 układu Ul. Kondensatory C3...C8 są elementami zewnętrznymi układu surround. Zewnętrzne obwody układu SRS zbudowane są z rezystorów R5...R10 i kondensatorów C21...C23. Do wewnętrznych obwodów regulatorów tonów dołączone są kondensatory C9...C13 dla kanału lewego i C16....C20 dla kanału prawego oraz rezystory Rl, R2 (kanał lewy) i R3, R4 (kanał prawy).
Sterownik procesora został zbudowany w oparciu o mikrokontro-ler PIC16F76 (U2). Jest to układ z dużą pamięcią programu typu Flash (8 ksłów 14-bitowych). Ma też stosunkowo dużą pamięć danych (368 bajtów). Zastosowanie mikrokontrolera z dużą pamięcią pozwoliło na umieszczenie w niej dość rozbudowanego programu sterującego procesorem. Zewnętrzne elementy oscylatora to kondensatory C27 i C28 oraz rezonator Xl. Ma on dość małą częstotliwość rezonansową wynoszącą ok. 2 MHz. Ponieważ oprogramowanie
Elektronika Praktyczna 3/2003
29
Dekoder dźwięku dookolnego SRS
nie narzuca jakichś szczególnych wymagań dotyczących prędkości mikrokontrolera, to mała częstotliwość taktowania spowodowała zmniejszenie poboru prądu i zminimalizowanie ewentualnych zakłóceń wnoszonych przez sterownik do części analogowej procesora. Możliwość ewentualnego przeniesienia zakłóceń cyfrowych do części analogowej procesora została uwzględniona przez producenta TDA7466. Masa analogowa została oddzielona od masy cyfrowej interfejsu sterującego magistrali PC. Obie te masy powinny być połączone w jednym punkcie możliwie blisko źródła zasilania.
Do linii portu PORTA został dołączony przez magistralę 4-bito-wą wyświetlacz alfanumeryczny o organizacji 2x20 znaków. Styki klawiatury sterującej dołączone są bezpośrednio do wyprowadzeń RB0...RB4 (skonfigurowanych jako linie wejściowe) portu PORTB. Przyciśnięcie klawisza powoduje wymuszenie na linii poziomu niskiego. Linie PORTB mają włączone wewnętrzne podciąganie do plusa zasilania (wymuszenie poziomu wysokiego na niepodłączo-nej linii wejściowej). Linia SD A magistrali PC podłączona jest do wyprowadzenia RC4/SDI/SDA, a linia SCL do wyprowadzenia RC3/ SCK/SCL. Rezystory R13 i R14 realizują wymagane przez specyfikację magistrali podciąganie linii SDA i SCL do plusa zasilania. Wyprowadzenia RC5.. .RC7 portu PORTC sterują przełącznikiem sygnału wejściowego. Do magistrali PC dołączona jest, oprócz Ul, pamięć EEPROM 24C04 (U3). W tej pamięci przechowywane są
wszystkie ustawienia i regulacje procesora.
Przełącznik wejść umożliwia dołączenie do TDA7466 trzech różnych źródeł sygnału akustycznego. Pojawienie się poziomu wysokiego na wyprowadzeniu RC5 powoduje, że tranzystor Tl wchodzi w nasycenie i wysterowuje cewkę przekaźnika Przl. Rezystor R15 ogranicza prąd bazy tranzystora. Sygnał akustyczny z wejść Wel_L i Wel_P jest podawany przez zwarte styki przekaźnika na wejście sygnału Ul. Analogicznie zostają przełączone sygnały z wejść 2 i 3. Program sterownika ustawia takie stany na liniach RC5...RC7, że nie jest możliwe wysterowanie jednocześnie więcej niż jednego przekaźnika. Żeby uniknąć stuków w czasie przełączania wejść, jest programowo włączane maksymalne tłumienie wejścia Ul.
Układ zasilania dostarcza stabilizowanego napięcia +9V do zasilania Ul i przekaźników przełącznika wejść oraz +5V do zasilania sterownika z wyświetlaczem i pamięcią EEPROM. Napięcie stałe lub przemienne o wartości ok. 14V podawane jest na mostek prostowniczy Ml. Kondensator C29 filtruje tętnienia w przypadku zasilania prądem przemiennym. Stabilizator 7809 (U4) dostarcza stabilizowanego napięcia +9V, a stabilizator 7805 napięcia +5V. Tomasz Jabłoński, AVT 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/marzecO3.htm oraz na płycie CD-EP3/2003B w katalogu PCB.
WYKAZ ELEMENTÓW
Płytka główna Rezystory
Rl, R4, R12...R14, R18: 2,7kLł
R2, R3: 5,ókLl
R5: 47,5kLł
Ró: 130kil
R7: 32,4kH
R8: l,5kLl
R9: lkil
RIO: 4,42kLl
Rl 1: 3,74kLł
R15...R17: 3,3kLl
Kondensatory
Cl, C2: 220nF
C3, C9, C20: 5,ónF
C4: 680nF
C5, C12, C13, Cló, C17, C2ó,
C30...C32, C34: lOOnF
Có, C21: 4,7nF
C7, C8, Cli, Cl8: 22nF
CIO, C19: 18nF
C14, C15: 2,2|iF
C22, C23: 470nF
C24: l,2nF
C25: 22|iF
C27, C28: 33pF
C29: 2200|iF /16V
C33: 10|iF/16V
Półprzewodniki
D1...D3: BAV21 (1N4148)
Ml: 1A/1OOV
T1...T3: BC237
Ul: TDA7466
U2: PIC1ÓF7Ó zaprogramowany
U3: 24C04
U5: 7805
Uó: 7809
Różne
Rezonator kwarcowy 2MHz
Przekaźniki Przl...Prz3 MEISEI M4-
12H (ZETTLER AZ822-2C-12DSE)
Złącza do druku cinch 8 szt.
Płytka drukowana wyświetlacza
Wl; wyświetlacz alfanumeryczny
2x20znaków
SW1...SW5: mikroprzyciski
30
Elektronika Praktyczna 3/2003
PROJEKTY
Wirtualny miernik częstotliwości
AVT-5103
Specjalizowane przyrządy
pomiarowe, zwłaszcza
renomowanych producentów,
pozostają na ogół w sferze
marzeń zwykłego śmieńelnika.
Nie należy jednak załamywać
rąk - Polak przecież potrafi.
Może np. kupić tani miernik
"noname" lub wykonać
przyrząd wińualny
wykorzystujący stojący na
biurku komputer PC. Drugie
rozwiązanie jest o tyle
atrakcyjne, że można je
zrealizować robiąc przy okazji
porządek w szufladzie.
Rekomendacje: przyrząd
polecamy tym Czytelnikom,
którzy chcą wzbogacić
możliwości swojego PC-ta
o funkcje pomiarowe
przydatne w laboratorium
elektronicznym.
Jak się okazuje, nie tylko Polak potrafi, Potrafi teź Ukrainiec. W artykule opisujemy projekt miernika częstotliwości opracowany przez ukraińskiego inżyniera Jurija Kolokolowa. Na wstępie trzeba jednak wyjaśnić, źe opisywany miernik jest produktem częściowo komercyjnym i wykonanie go w pełnej konfiguracji będzie się wiązało z poniesieniem pewnych kosztów licencyjnych,
0 czym napiszemy dalej.
Zanim kupisz, wypróbuj
Miernik częstotliwości składa się z niewielkiego interfejsu z mik-rokontiolerem AVR i specjalizowanego oprogramowania (VFM) na komputer PC. Rolą interfejsu jest przetworzenie sygnału z punktu pomiarowego i przekazywanie danych do komputera poprzez port szeregowy. Pozostałe operacje, czyli odpowiednie obliczenia
1 zobrazowanie wyników wykonuje program VFM, który jest dostępny w wersji dla Windows 95...2000. Podczas prób stwier-
dzono, źe program spisuje się dobrze także z Windows XP.
Za pomocą tego zestawu można:
1. Mierzyć częstotliwość sygnału analogowego (0,1...250 kHz) lub cyfrowego (0,1...5 MHz), z czasami pomiaru (otwarcia bramki): 1 ms, 10 ms, 100 ms, 1 s, 10 s.
2. Mierzyć okres sygnału analogowego lub cyfrowego (10 fis... lOs z rozdzielczością O,lfis) -czas pomiaru jest równy 1, 10, 100, 1000 cykli sygnału.
3. Mierzyć czas trwania impulsu (od zbocza narastającego do opadającego lub od zbocza opadającego do narastającego) (10 fis...10 s z rozdzielczością 0,1 fis).
4. Zliczać impulsy.
5. Wykonać autokalibrację.
Aby nie kupować przysłowiowego "kota w worku", warto przed zakupem zorientować się w możliwościach przyrządu. W tym celu można pobrać ze strony http:// home.skif.net/~yukol/purchase.-htm bezpłatne oprogramowanie dla komputera (2,1 MB, publiku-
Elektronika Praktyczna 3/2003
33
VFM - Wirtualny miernik częstotliwości
OOOÓÓÓÓÓÓÓÓÓÓ
oooooooooooo
Rys. 1. Schemat elektryczny miernika
jemy je także na CD-EP3/ 2 002B) oraz demonstracyjny program dla mik-rokontrolera (6 kB). Jest w nim zaimplementowa-na jedynie pierwsza opcja z wymienionych. Odblokowanie pozostałych wymaga dokonania wpłaty na konto autora. Na jego internetowej stronie można znaleźć stosowny formularz. Po spełnieniu zawartych w nim wymagań autor udostępnia pełny program dla mikro-kontrolera. Koszt jedynie 8,95 USD.
Oryginalna płytka została zaprojektowana z myślą o umieszczeniu jej w obudowie wtyku DB-25 z elementami SMD (włącznie z mikrokontro-lerem). Rysunki ze schematem ideowym, mozaiką połączeń oraz rozmieszczeniem elementów zostały zamieszczone na internetowej stronie częs-tościomierza.
Układ interfej su proponowany przez nas (montaż przewlekany), jest łatwiejszy w wykonaniu, bo płytka drukowana jest nieco większa. Schemat elektryczny interfejsu p okazano na rys. 1.
Do połączenia przyrządu z komputerem jest wykorzystywany kabel do transmisji szeregowej typu modem-modem. Od strony często ściomierza musi być zakończony wtykiem 2 5-stykowym, zaś od strony komputera złączem zależnym od posiadanego w komputerze. Połączenia dla DB-9 przedstawiono na rys. 2.
Przygotowanie do pracy
Przed przystąpieniem do pracy z częstościomie-rzem należy zainstalować w komputerze ściągnięty z Internetu program VFM. Chociaż pobieranie pliku vfm.zip nie stwarza żadnych problemów, to z instalacją były pewne
Komputer
13
OOOOOOOOOOOO O OOOOOOOOOOO O/VFM
25
9 PIN D-SUB FEMALE 25 PIN D-SUB MAŁE
Nazwa sygnału
Shleld
Transmit Data ReceiveData Request to Send Clear to Send Data Set Ready System Ground Carrier Detect Data Terminal Ready Ring Indlcator
DSUB-9 SUB-25
1 2 3
4 5 6 7 8 20 22
Kierunek
Rys. 2. Rozmieszczenie styków w gniazdach RS232, sposób połączenia sygnałów
kłopoty. Szczerze mówiąc na żadnym, dostępnym komputerze się to nie powiodło.
Instalację rozpoczyna się, uruchamiając program setup.exe i od tego momentu proces odbywa się automatycznie. Niestety podczas instalacji występował błąd uniemożliwiający pomyślne jej dokończenie. Jednak jeśli na naszym komputerze znajdują się już zainstalowane wcześniej -przy innej okazji - biblioteki, to jest szansa, że program VFM da się uruchomić. Trzeba go jedynie rozpakować "ręcznie" z pliku vfm.cab. Do tego celu można wykorzystać program WinZip lub WinRAR.
Układ interfejsu częstościomie-rza jest zasilany bezpośrednio z portu szeregowego. Jest to możliwe dzięki połączeniu linii sygnałowych RTS i DTR poprzez diody D2 i D3 oraz wysterowaniu ich z komputera do poziomu wysokiego (wyzerowanie obu linii). Dba o to program VFM. Stosunkowo niewielki prąd pobierany przez mikrokontroler pozwala na takie rozwiązanie. Napięcie na nóżce zasilającej mikrokontrolera jest jednak silnie zakłócone (rys. 3). Wyraźnie widać zakłócenia przedostające się do zasilania podczas transmisji. Jeśli będzie to powodowało nieprawidłowe działanie objawiające się np. zrywaniem transmisji, można dołączyć kondensator elektrolityczny o pojemności min. 100 |iF bezpośrednio do wyprowadzeń zasilających układ Ul (20 - plus i 10 - minus). Na płytce nie przewidziano na
34
Elektronika Praktyczna 3/2003
VFM - Wirtualny miernik częstotliwości
I

i T

t ......!/Ś--
J 1

1
16.1244kHz
62.OmkS
1
J
M va Hm*
iprutl inniiiiiiuiiui
1L||H
.11'
1B!
Rys. 3. Wyglqd sygnału na linii zasilajqcej mikrokontroler
Rys. 4. Wyglqd okna programu VFM
niego miejsca. Jeśli i to nie pomoże, trzeba nasz częstościomierz zasilić z zewnętrznego zasilacza. Aby nie wprowadzać dodatkowych połączeń z płytką interfejsu, zostało do tego celu przewidziane niewykorzystywane wyprowadzenie złącza DB-25 (styk 13 - plus zasilania). Masę (minus zasilania) dołączamy do styku 7. Zewnętrzne zasilanie będzie potrzebne tak czy inaczej, jeśli będziemy chcieli samodzielnie programować mikrokontroler za pomocą programatora ISP.
Interfejs wirtualnego częstoś-ciomierza komunikuje się z komputerem w obydwie strony. W standardzie RS232 do transmisji danych są stosowane bipolarne impulsy napięciowe. Najczęściej do wytworzenia ujemnego napięcia wykorzystuje się popularny układ MAX232, lecz na schemacie elektrycznym interfejsu nie widzimy go. Do zapewnienia odpowiednich poziomów napięcia na liniach transmisyjnych służą tranzystory Tl i T2 wraz z sąsiednimi elementami. Stanowi spoczynkowemu linii od strony układu (logiczne "1") odpowiada napięcie -3...-25 V (mark) od strony interfejsu RS232. Stanowi logicznemu "O" odpowiada od strony RS232 napięcie +3..L+25 V (space).
Rozważmy przypadek, w którym komputer "nasłuchuje", a mikrokontroler interfejsu częstościo-mierza wysyła dane. Trzeba w tym miejscu zaznaczyć, że częstościomierz nie wykorzystuje transmisji dupleksowej, przyjęcie powyższego założenia jest zatem zasadne. Wyjście TXD komputera pozostaje w spoczynku, tym samym na wyprowadzeniu 2 gniazda GNl występuje napięcie ujemne. Jeśli mik-
rokontroler będzie wysyłał bit
0 wartości "1", to tranzystor Tl będzie zatkany, a na wyprowadzeniu 3 gniazda GNl wystąpi napięcie ujemne "pobierane" z wyprowadzenia 2 GNl. Jak wiemy odpowiada to logicznej jedynce. Gdy wysyłany bit będzie miał wartości "O", tranzystor Tl zostanie włączony i napięcie na wyprowadzeniu 2 GNl będzie miało wartość bliską +5 V. Wartość ta mieści się w przedziale przewidzianym dla stanu "O" (space). W drugą stronę sprawa wygląda znacznie prościej. Tranzystor T2 zamienia polaryzację sygnału odbieranego z interfejsu RS232 i jednocześnie ogranicza poziom napięcia do wartości z przedziału 0...+5 V, akceptowanej przez mikrokontroler.
Pomiary
Przed przystąpieniem do wykonywania pomiarów należy wskazać w programie VFM (widok okna działającego programu pokazano na rys. 4) port szeregowy, przez który będzie prowadzona komunikacja między częstościo-mierzem a komputerem. W tym celu należy wybrać polecenie Op-tions z menu Options, a następnie wybrać z rozwijanej listy odpowiedni port. W dolnej części okna znajduje się pole, w którym określa się czas pomiędzy kolejnymi pomiarami. Minimalna i moim zdaniem optymalna wartość to
1 sekunda. Następną czynnością, jaką powinno się wykonać przed rozpoczęciem pomiarów, jest kalibracja przyrządu. Po naciśnięciu przycisku ekranowego Calibration (z symbolem trójkąta), a następnie przycisku Cyclical Modę (dwie zaokrąglone strzałki), powinna zostać wyświetlona wartość częstot-
liwości 10 MHz, której odpowiada okres 0,1 fis. Jest to wartość wyświetlana bez podawania sygnału na wejście przyrządu. Jeśli wynik będzie rażąco różnił się od wartości wzorcowej, może to świadczyć o nieprawidłowym działaniu układu. Trzeba wówczas sprawdzić, czy został wbito w any odpowiedni rezonator kwarcowy (8 MHz) i czy oscylator mikrokontroler a pracuje prawidłowo. Bezpośrednio przed przystąpieniem do pomiarów zasadniczych trzeba zdecydować, jaki rodzaj sygnału mierzymy (analogowy czy cyfrowy). Służą do tego klawisze Digital i Analog. Od tego wyboru zależy, która procedura pomiarowa i komponenty mikro-kontrol era z o s taną wy kor zy s tane. W przypadku sygnału cyfrowego będą to tylko tim ery/liczniki. Mierząc sygnał analogowy, do pomiaru dodatkowo będzie "zaprzęgnięty" komparator analogowy zaim-plementowany w strukturze mik-rokontrolera. Niestety, w drugim przypadku zakres pomiarowy zostanie zwężony. Teraz można doprowadzić mierzony sygnał do wejścia interfejsu częstościomie-rza i wybrać odpowiedni zakres pomiarowy.
Pierwszym pomiarem (jedynym w wersji demonstracyjnej) jest pomiar często tliwości. Najczęściej będziemy stosować tryb cykliczny, w którym stan wyświetlacza jest odświeżany w sposób ciągły z ustaloną częstotliwością. Po wybraniu rodzaju pomiaru - w tym przypadku będzie to naciśnięcie klawisza Freąuency measurement (z literką "F") - inicjujemy pomiar przez wciśnięcie klawisza Cyclical Modę. Od tej chwili na wyświetlaczu powinna pojawiać się ak-
Elektronika Praktyczna 3/2003
35
VFM - Wirtualny miernik częstotliwości
11 t2 f
Rys. 5. Wpływ regulacji składowej stałej mierzonego sygnału na wynik pomiaru
tualna częstotliwość mierzonego sygnału. Bardzo istotne jest prawidłowe ustawienie suwaka Le-vel podczas pomiaru analogowego. Za jego pomocą wybiera się napięcie odniesienia dla komparatora. Jest ono wytwarzane przez drabinkę R-2R dołączoną do portu PB2...PB4 mikrokontrolera. Drabinka pełni rolę prostego, 3-bito-wego przetwornika cyfrowo-analo-gowego. Stosując zasadę superpozycji i zakładając, że wyjścia poszczególnych portów mikrokontrolera na poziomie niskim stanowią idealne zwarcie do masy, można wykazać, że napięcie na wyjściu drabinki będzie się zmieniało proporcjonalnie do stanu binarnego wyjść PB2...PB4, przy czym najmniej znaczącym jest bit PB4. Wyjścia PB2...PB4 są bezpośrednim odzwierciedleniem stanu suwaka Level. Poziom odniesienia komparatora powinien być tak ustawiony, aby liczba przecięć prostej odpowiadającej napięciu odniesienia z krzywą napięcia mierzonego w ciągu okresu była równa dokładnie 2. Na rys. 5 odpowiadają temu tylko przypadki "B" i "D". Z tego względu podczas pomiarów napięć bez składowej stałej, najbezpieczniej jest ustawić suwak w pozycji "0". Nieprawidłowe ustawienie suwaka może powodować, że na wyświetlaczu będzie wyświetlana wartość zero lub wartość niezgodna z rzeczywistą. Zmniejsza to nieznacznie komfort pracy, gdyż nie zawsze jesteśmy pewni, że wyświetlane wyniki są poprawne. Czasami (zwłaszcza podczas pomiaru okresu przebiegu) prowadzi to do irytującego zawieszania się transmisji, a nieumiejętne wyjście z tej sytuacji kończy się zawieszeniem programu VFM i koniecznością zakończenia zadania syste-
mu Windows. Jeśli więc pojawi się komunikat "Connection Er-ror", należy przerwać transmisję, zwalniając przycisk Cyclical Modę i bezzwłocznie usunąć przyczynę powstania błędu. Niekiedy niezbędne jest ponowne określenie portu komunikacyjnego.
Drugim pomiarem, alternatywnym w stosunku do omówionego wyżej, jest pomiar okresu przebiegu. Rozpoczynamy go, naciskając przycisk Period measurement (z literką "T"). W obydwu trybach pomiarowych, na wirtualnym wyświetlaczu przyrządu jest wyświetlana zarówno częstotliwość, jak i okres mierzonego sygnału. Z tego względu ten tryb pomiarowy wydaje się być zdublowaniem omawianego wcześniej i w zasadzie zbędnym.
Następny tryb - Interval measurement służy do pomiaru czasu trwania impulsu i może być przydatny w praktyce. Kształt impulsu wybieramy jednym z dwóch klawiszy znajdujących się w lewej dolnej części panela częstościo-mierza. Pomiar czasu trwania impulsu w przypadku sygnału cyfrowego nie budzi żadnych wątpliwości. W tym trybie można również mierzyć sygnał analogowy. Szerokość impulsu jest wtedy określona jako czas pomiędzy kolejnymi przecięciami poziomu odniesienia komparatora z sygnałem mierzonym. Odpowiadają temu chwile ii i t2 na rys. 5.
Wirtualny częstościomierz może być zastosowany w roli licznika impulsów doprowadzonych do wejścia. Stan licznika jest odświeżany w odstępach czasu ustawionych w opcjach programu, co przy małej częstotliwości impulsów wejściowych jest nieco mylące. Spodziewamy się bowiem zmodyfikowania wskazań natychmiast po wystąpieniu impulsu. Ten tryb pomiarowy wybiera się klawiszem Scoring of number of pulses (ze znakiem S).
A więc warto, czy nie?
Mamy już mniej więcej pełny obraz możliwości wirtualnego często ściomierza. Pora podejmować decyzje o jego zrobieniu (kupieniu). Nie chciałbym niczego sugerować.
Dziwię się, jak przez długie lata praktyki w elektronice mog-
WYKAZ ELEMENTÓW
Rezystory
Rl: 100O
R2, R3, R5...9: 20kQ
R4, R17: lkn
RIO...13: 200kQ
R14...16: lOOkO
Kondensatory
CL C5, Có: lOOnF
C2, C3: 30pF
C4: 470pF
Półprzewodniki
Dl...4: 1N4148
D5...9: C4V7
Tl: BC557
T2: BC547
Ul: AT90S2313
Różne
J100: gniazdo DSUB-25 (żeńskie)
Rezonator kwarcowy lOMHz
Łączówka ARK2 (3,5mm)
łem obywać się bez częstościo-mierza w swoim laboratorium. Do zakupu gotowego przyrządu zniechęcały ceny, a do zrobienia własnym sumptem brakowało czasu i chęci. Jeśli ktoś z Czytelników znajduje się w podobnej sytuacji, to ma teraz okazję do szybkiego i taniego wykonania przyrządu, któremu trochę brakuje do miana sprzętu "profesjonalnego", ale w wielu amatorskich pracach może okazać się przydatny.
Pierwsze spostrzeżenie, jakie nasunęło mi się po wykonaniu kilku prób, jest takie, że częstościomierz ma trochę za mały zakres pomiarowy. Być może Jurij już nad tym pracuje.
Następna sprawa to zawieszanie się transmisji w przypadku złych nastaw miernika. Myślę, że jest to błąd w programie, który powinien być usunięty. Po nabraniu pewnej wprawy można jednak takich sytuacji unikać. Niewątpliwą zaletą częstościomierza jest jego niewielki koszt i łatwość montażu.
Jarosław Doliński, AVT jaroslaw.dolinski@ep.com.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/marzecO3Jitm oraz na płycie CD-EP3/2003B w katalogu PCB.
36
Elektronika Praktyczna 3/2003
PROJEKTY
Uniwersalny nadajnik RC5/SIRC, część 1
AVT-5104
Nadajnik zdalnego
sterowania kojarzy nam się
zazwyczaj z pudełkiem
z wieloma klawiszami- Opisy
takich nadajników były
niejednokrotnie publikowane
na łamach EP. Nadajnik
prezentowany w artykule ma
nieco odmienną budowę, gdyż
nie posiada ani jednego
przycisku, a może
wygenerować dowolny kod
w standardzie RC5 oraz
SIRC.
Rekomendacje: przyrząd
szczególnie przydatny do prac
serwisowych przy naprawie
odbiorników telewizyjnych,
magnetowidów, odtwarzaczy
DVD i sprzętu audio. Przyda
się także wszystkim fanom
eksperymentów ze zdalnym
sterowaniem w dwóch
najbardziej popularnych
standardach kodowania.
Nadajnik współpracuje z komputerem poprzez port szeregowy RS232. Dzięki takiemu rozwiązaniu ma niewielkie wymiary, a umożliwia wysłanie dowolnej komendy za pomocą klawiatury komputera lub odpowiedniego oprogramowania. Dzięki temu jest możliwe sterowanie urządzeniami znajdującymi się w innych pomieszczeniach, ponieważ komunikacja pomiędzy komputerem a nadajnikiem odbywa się poprzez interfejs RS232, co pozwala na oddalenie nadajnika od komputera nawet o kilkanaście metrów. Wysłanie komendy odbywa się za pomocą znaków ASCII, więc obsługa nadajnika może być wykonywana przez dowolny program terminalowy - na przykład Hyper-Terminal - w który wyposażony jest każdy system Windows.
Obsługa dwóch systemów kodowania informacji umożliwia sterowanie pracą większości urządzeń elektronicznych. Bardzo popularny system RC5 jest stosowany przez wiele firm, między innymi przez firmę Philips, a system SIRC głównie przez firmę Sony. W systemie RC5 sygnały nadawane są z sygnałem nośnym o częstotliwości 36 kHz, a w systemie SIRC częstotliwość ta wynosi 40 kHz. Zastosowanie w nadajniku miki okontiol era umożliwia łatwe dobranie tej częstotliwości w zależności od systemu, w którym jest wysyłana komenda. Przełączanie pomiędzy systemami
dokonuje się poprzez naciśnięcie jednego klawisza. Jeśli kolejne komendy będą wysyłane w tym samym systemie, to nie trzeba ponownie wybierać systemu. Również powtórzenie tej samej komendy nie wymaga ponownego jej wpisywania, gdyż znajduje się w pamięci i wystarczy tylko ponowne jej zatwierdzenie.
Ponieważ sposób transmisji danych w obydwu systemach jest różny, więc dla obu systemów zostały opracowane odmienne procedury. Sposób kodowania danych dla systemu RC5 przedstawiono na rys. 1.
Tajniki RC5
W tym systemie każdy rozkaz składa się z 14 bitów. Rozpoczęcie transmisji następuje po dwóch bitach startu (Sl, S2) - obydwa bity mają wartość "1". Następnie wysyłany jest bit kontrolny (CB). Bit kontrolny pozwala określić, czy naciśnięty przycisk na pilocie jest przytrzymywany, czy został naciśnięty ponownie. Gdy przycisk jest przytrzymywany, to wysyłane są kolejne sygnały i bit ten ma taką samą wartość. Jeśli przycisk został zwolniony i ponownie naciśnięty, to bit kontrolny zmieni stan na przeciwny. Następnie jest wysyłany adres urządzenia, do którego jest skierowana komenda. Adres ten składa się z pięciu bitów, co pozwala wybrać 32 urządzenia. W następnym etapie wysyłanych jest 6
Elektronika Praktyczna 3/2003
37
Uniwersalny nadajnik RC5/SIRC
Dane s CB A A A A A C C C C C C

Bity startu Bit
kontrolny
Bity adresu
Bity komendy
Modulowany sygnał
Rys. 1. Pizebiegi czasowe sygnałów podczas wysyłania rozkazu w systemie RC5
bitów komendy, co umożliwia wysłanie 64 różnych poleceń. Każdy zakodowany bit w tym systemie trwa 1,776 ms i składa się z dwóch części - 888 |is przerwy (poziom niski) i 888 |is impulsu (poziom wysoki). Czy wysłany bit jest jedynką, czy zerem określa pierwsza część kodowanego bitu - jest zerem lub jedynką. Jeśli ta część bitu jest jedynką, to poprzez diody nadawcze emitowany jest sygnał o częstotliwości 36 kHz, jeżeli część bitu jest zerem, to żaden sygnał nie jest emitowany.
Aby wysłać bit, interpretowany przez odbiornik jako "1", należy przez pierwsze 888 |is wyłączyć diodę nadawczą, a przez 888 |is wysterować ją sygnałem o częstotliwości 36 kHz. W przypadku wysyłania logicznego "0", jest odwrotnie, przez pierwsze 888 |is należy sterować diodę nadawczą sygnałem o częstotliwości 36kHz, a przez następne 888 |is pozostawić diodę wyłączoną. W ten sposób należy wysłać wszystkie bity transmitowanego rozkazu.
Tajniki SIRC
Sposób kodowania w systemie SIRC jest przedstawiony na rys. 2. Każdy rozkaz składa się z jed-
nego bitu startu i 12 bitów danych. Można wybrać 32 urządzenia i 128 komend. Po wysłaniu bitu startu następuje przerwa
0 długości 0,6 ms, następnie wysyłane jest siedem bitów komendy, poczynając od bitu najmniej znaczącego. Po wysłaniu komendy wysyłane jest pięć bitów adresu urządzenia. Sposób kodowania stanów logicznych polega na tym, że dla zera logicznego transmitowany jest przebieg o częstotliwości 40 kHz przez czas 0,6 ms, a dla jedynki logicznej przez czas 1,2 ms. Dodatkowo, pomiędzy kolejnymi bitami następuje przerwa w transmisji o czasie 0,6 ms. Ze względu na zróżnicowany czas trwania stanu zera logicznego i jedynki , wysłanie całego pakietu danych nie zajmuje za każdym razem tyle samo czasu. Jest on zależny od wartości poszczególnych bitów adresu urządzenia
1 komendy.
Budowa i działanie nadajnika
Schemat elektryczny nadajnika przedstawiono na rys. 3. Składa się on zaledwie z kilku elementów, gdyż wszystkie niezbędne funkcje pełni układ USl. Układ ten jest mikroprocesorem z we-
wnętrzną pamięcią Flash o pojemności lk x 14 b. Dzięki zastosowaniu mikrokontrolera, wszystkie operacje związane z odbieraniem i wysyłaniem danych są wykonywane programowo, w związku z czym nie ma potrzeby stosowania dodatkowych układów. Do procesora dołączono zewnętrzny rezonator kwarcowy o częstotliwości 20 MHz, wskutek czego cykl maszynowy wynosi tylko 200 ns. Pozwala to na bardzo dokładne ustalenie częstotliwości generowanych sygnałów nośnych potrzebnych do wysyłania sygnałów zdalnego sterowania.
Wejście procesora przeznaczone do zerowania (!MCLR) nie zostało wykorzystane, ponieważ sygnał zerowania po włączeniu zasilania jest generowany wewnątrz mikrokontrolera. Jako nadajniki promieniowania podczerwonego pracują diody D2 i D3. Diody te są sterowane przez procesor za pomocą wzmacniacza zbudowanego z tranzystora Tl. Rezystor Rl ogranicza prąd płynący przez diody, a R2 prąd bazy tranzystora Tl. Do sygnalizacji pracy nadajnika zastosowano diodę D4. Po każdym wysłaniu komendy dioda błyśnie. Równocześnie sygnał zasilający diodę D4 jest doprowadzony, poprzez rezystor R5, do złącza CON2. Połączenie to sprawia, że po wysłaniu wybranej komendy, jej numer zostanie wysłany z powrotem do komputera i będzie można sprawdzić, czy komenda została wpisana prawidłowo. Komunikacja z komputerem odbywa się z prędkością 9600 bd. Wysyłane dane do komputera nie są dopasowane napięciowo do norm standardu RS232, gdyż stanowi "0" odpowiada 0 V, a stanowi "1" napięcie 5 V. Układy obsługujące porty szeregowe
DANE
Kodowanie bitów
Modulowany sygnał
START D CO D C1 D C2 D C3 D C4 D C5 D C6 D A0 D A1 D A2 D A3 D A4
Przerwa 0,6 ms ^
2,4 ms
blt-1
1,2 ms
blt-0 0,6 ms
7 bftów komendy (1011001)
5 bitów adresu (110O0)
Rys. 2. Przebiegi czasowe podczas wysyłania rozkazu w systemie SIRC
Elektronika Praktyczna 3/2003
Uniwersalny nadajnik RC5/SIRC
w komputerach rozpoznają prawidłowo tak określone stany logiczne. Sygnały z komputera do mik-rokontrolera również nie są dopasowane napięciowo, ale do zabezpieczenia procesora wystarczy ograniczyć prąd wejściowy przez rezystor szeregowy R4. Na wyjściu portu szeregowego komputera występują napięcia +12 V lub -12 V. Zastosowanie rezystora R4 w połączeniu z wewnętrznymi diodami zabezpieczającymi, zawartymi wewnątrz procesora, powoduje, że napięcie większe od VCC+0,4V jest zwierane do plusa, a napięcie mniejsze od GND-0,4V jest zwierane do masy, w konsekwencji na wejściu procesora występują bezpieczne wartości napięć: -0,4V lub 5,4V. Takie sprzężenie nadajnika z portem szeregowym znacznie uprościło jego budowę. Do stabilizowania napięcia zasilającego zastosowano układ US2, który wraz z kondensatorami C1...C3 dostarcza odfiltrowanego napięcia o wartości 5V.
D4 LED
R3 330
US1 PIC12F629
I
QND GPO/ANtVCINf/ISPDAT
QP4/ANOT1QfOSC2/CLKOJT GP1/AN1/CIMJVretfSPCLK GPS/MCLFWpp GP2/AN2/T0CKI/INT/COJT
R5 220
D2 LED-
D3 i ' LED-
T1 BC337-26
Dl 1N4007
US2 LM7B0S
I
I
-C3
"10Dn
Rys. 3. Schemat elektryczny uniwersalnego nadajnika RC5/SIRC
Transmisja danych w podczerwieni polega na odebraniu przez procesor cyfr kodu, przetworzeniu tych cyfr na kod systemu RC5 lub SIRC i odpowiednim wysterowa-niem tranzystora sterującego diodami nadawczymi. Po wysłaniu
List. 1. Procedury służące do wysłania dowolnego kodu w systemie RC5
//A............... ................................................ ......../z
// wysyła logicze zero f=36kHz kwarc 20MHZ //
//AAAAAAAAAAAAAAAA ................................................ ......../z
stan_0()
{int i;
led_ir=0; //wylacz diodę
for(i=32;i>0;i- //powtórz 32 razy
{led_ir=l;
delay_us(13) //stan wysoki 13us
delay cycles 4); //+800ns=13,Sus
led_ir=0;
delay_us(13) //stan niski 13us
delay cycles 1); //+20 0ns=13,2us+3cykle=13,8us
) //13,2+(3*200)=13, Sus
delay_us(87 5) ; //S75+13=SSSus
"................ ................................................ AA......//
// wysyła logiczn a Jedynkę f=36kHz kwarc 20MHZ AA "AA AA//
//AAAAAAAAAAAAAAAA ................................................ AAAAAAAA//
stan_l()
{int i;
led_ir=0;
delay_us(888);
for(i=32;i>0;i- //powtórz 32 razy
{led ir=l; //zapal diodę
delay_us(13) //czekaj 13us
delay_cycles 4); //+S00ns=13,Sus
led ir=0; //zgaś diodę
delay_us(13) //stan niski 13us+3cykle przez licznik
delay cycles 1) ; // + 200ns+600ns=13, Sus
) //razem 2"13,S=27,6us=36,2khz ........
// Wysyła podana sekwencje w rc5
// toggle=l //
// address 0-31 //
// command 0-63 //
//AAAAAAAAAAAAAAAA ................................................ AAAAAAAA//
RC5_send(int addre = = , -LI1L LOlLLlLLclIlUy
{ int ii;
addressUOblllOOOOO;
command=2;
for(ii=0;ii<=7;i i++) //wysyła address+2bity startu =1,
{ //+ togglebit=l
address<<=l; //przesuń w lewo o Jeden
if(bit test( status,0)) stan 1(); //Jeśli c=l to stan 1()
else stan_0( ; //Jeśli 0 to stan_0()
< i++) //wysyła 5bitow command
i. //przesuń w lewo o Jeden
if(bit test( status,0)) stan 1(); //Jeśli c=l to stan 1()
else stan_0( ; //Jeśli 0 to stan_0()
"................ ................................................
podanego kodu do komputera zostaje wysłana zwrotna informacja, jaki kod został wyemitowany.
Jak wcześniej wspomniano, obydwa systemy kodowania informacji różnią się między sobą. Do ich obsługi trzeba więc zastosować różne procedury.
Na list. 1 przedstawiono procedury wysyłania danych w systemie RC5, przy zastosowaniu rezonatora kwarcowego o częstotliwości 20 MHz. Główną procedurą jest procedura RC5_send(int address, int command). Przykładowo, aby wysłać do urządzenia o numerze 10 komendę o numerze 36, należy wywołać tę procedurę z parametrem: RC5_send(10,36), w wyniku czego zostaną wysłane wszystkie bity rozkazu. Procedura ta dołącza bity startu i bit kontrolny, tworząc pełną ramkę danych zgodną z wymaganiami RC5.
Wartość parametru adresu urządzenia musi zawierać się w przedziale 0...31, a parametr komendy w 0...63. Procedura RC5_send sprawdza wszystkie bity otrzymanych parametrów i w zależności od tego, czy sprawdzany bit jest jedynka, czy zerem, zostaje wykonana procedura stan_l() lub stan_0(). Sprawdzenie stanu bitu polega na przesunięciu w lewo całego bajtu, wtedy najstarszy bit znajdzie się w rejestrze STATUS jako bit C i dopiero wtedy można sprawdzić stan tego bitu. Taka operacja jest wykonywana dla wszystkich bitów adresu urządzenia lub komendy. W systemie RC5 najpierw jest wysyłany adres urzą-
Elektronika Praktyczna 3/2003
39
Uniwersalny nadajnik RC5/SIRC
dzenia poczynając od najstarszego bitu, a następnie numer komendy również od bitu najstarszego. Procedury stan_O() i stan_l() odpowiednio sterują diodami nadawczymi, zgodnie z wymaganiami standardu - czas trwania bitu 1,788 ms, częstotliwość 36 kHz. Wysłanie jedynki logicznej (procedura stan_l()) powoduje wyłączenie diody nadawczej na 888 |is, a następnie przez kolejne 888 |is dioda jest sterowana sygnałem o częstotliwości 36 kHz. Wysłanie zera logicznego (procedura stan_O()) powoduje natomiast przez pierwsze 888 |is sterowanie diody sygnałem o częstotliwości 36kHz, a przez kolejne 888 |is dioda jest wyłączona.
Do transmisji w systemie SIRC stosowane są procedury przedstawione na list. 2. Główną procedurą jest procedura Sony_send(int address, int command). Podobnie jak w przypadku wysyłania danych w systemie RC5, procedurę należy wywołać z parametrami określającym adres urządzenia i komendę. Dla standardu SIRC adres urządzenia może zawierać się w przedziale 0...31, a komenda w 0...127. Po wywołaniu tej procedury następuje wysłanie bitu startu, a następnie komendy i adresu urządzenia. Procedura wysyła pełna ramkę danych wraz z przerwami pomiędzy kolejnymi bitami. W systemie SIRC w pierwszej kolejności wysyłany jest
List 2. Procedury służące do wysyłania danych w systemie SIRC
//.. ............................. ..........
//wy syla logicze zero f=40kHz,kwarc 20MHZ ii
/ /st ani nadawanie przez 0,6ms
//dl a f=40kHz cykl=25us , dla 0,6ms trzeba powtórzyć 24razy / /
/ /.. ............................. ..........
sony_stan_0()
{int i;
le d_ir=0; //zgaś diodę
fc r(i=24;i>0;i-) //powtórz 24razy
{led_ir=l; //zapal diodę
delay us(12) ; //zapal na 12us
delay_cycles(2); //+400ns =12,4us
led ir=0; //zgaś diodę
delay_us(12); //zgaś na 12us +600n s=12,6us
............................. .......... **********//
//.. ............................. ..........
//wy syla logiczna jedyn ke f=40kHz,kwarc 20MHZ ii
/ /st ani nadawanie przez l,2ms ii
//dl a f=40kHz cykl=25us , dla l,2ms trzeba powtórzyć 8razy / /
/ /.. ............................. ..........
sony_stan_l()
{int i;
le d_ir=0; //zgaś diodę
fc r (i=48 ; i>0 ; i-) //powtórz 48 razy
{led_ir=l; //zapal diodę
delay us(12) ; //na 12us
delay_cycles(2); //+400ns=12,4ns
led ir=0; //zgaś diodę
delay_us(12); //na 12us+3cykle=12, 6us
............................. .......... **********//
............................. .......... **********//
ii ozninienie pomiędzy bitami 600us //
/ /. . ............................. .......... **********//
sony_delay()
le d ir=0;
de lay_us(599);
//" ............................. .......... **********//
"" ............................. .......... **********//
//.. ............................. ..........
// wysyła kod podany ja to parametr
//address-adres urządzę nia 0-31, command-komenda 0-127
Ś Ś ............................. .......... **********//
sony_send(int address, int command)
{ in t ii;
sc ny_stan_l(); //bit startu I \ 2,4 ms
sc ny_stan_l(); //bit startu 11/
sc ny_delay(); //delay 0,6ms
fc r(ii=0;ii<=6;ii++) < //wysyła 7 bitów com mand
i. //przesuń w prawo
if (bit test'(statu s,0)) sony_stan_l(); iii śli 1 to s ony_stan_l()
else sony stan 0(); //jeśli 0 to sony st an_0()
sony_delay(); //przerwa miedzy bitami
fc r(ii=0;ii<=4;ii++) < //wysyła 5 bitów adr esu
i. address=l; //przesuń w prawo
if(bit_test(statu s,0)) sony_stan_l(); //j śli 1 to s ony_stan_l()
else sony stan 0(); //jeśli 0 to sony st an_0()
sony_delay(); //przerwa miedzy bitami
............................. ..........
WYKAZ ELEMENTÓW
Rezystory
Rl: 4,7Q
R2: lkO
R3: 330O
R4: 22kO
R5: 220O
Kondensatory
Cl, C2: 47^F/1ÓV
C3: lOOnF
C4, C5: 30pF
Półprzewodniki
Dl: 1N4007
D2, D3: dowolna dioda
nadawcza w podczerwieni
D3: LED 5mm czerwona
Tl: BC337-25
US1: PIC12F629 zaprogramowany
US2: LM7805
Różne
CON1: ARK2(3,5mm)
CON2: DB9 żeńskie
Xl: rezonator kwarcowy 20MHz
Podstawka DIP8
numer komendy, poczynając od najmłodszego bitu, a następnie adres urządzenia, również od najmłodszego bitu. Podobnie jak w przypadku systemu RC5, sprawdzane są wszystkie bity adresu i komendy, i w zależności od ich wartości wykonywane są procedury: sony_stan_l() - dla jedynki logicznej i sony_stan_0() - dla zera logicznego. Kodowanie jedynki logicznej polega na wysyłaniu przebiegu o częstotliwości 40 kHz przez czas 1,2 ms. Realizuje to procedura sony_stan_l(). Ponieważ okres sygnału o częstotliwości 40 kHz wynosi 25 |is, to do odliczenia czasu 1,2 ms należy wykonać 48 błyśnieć diodą nadawczą. Podczas wysyłania logicznego zera dioda musi błyskać przez 0,6 ms. Realizuje to procedura sony_stan_0() - w czasie 0,6 ms dioda błyśnie 24 razy. Pomiędzy kolejnymi bitami musi być przerwa w transmisji wynosząca 0,6 ms. Jest ona realizowana przez procedurę sony_delay(). Krzysztof Pławsiuk, AVT 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/marzecO3Jitm oraz na płycie CD-EP3/2003B w katalogu PCB.
40
Elektronika Praktyczna 3/2003
PROJEKTY
Lampowy analizator widma
Gdy otrzymałem propozycję
skonstruowania lampowego
analizatora widma,
w pierwszej chwili uznałem,
że pomysł jest po prostu
szalony, jednak po namyśle
doszedłem do wniosku, że
wańo podjąć ten temat.
Można bowiem przy okazji
pokazać nieco inne niż
obecnie popularne aplikacje
lamp. Zastosowanie lamp nie
kończy się bowiem na
wzmacniaczu czy odbiorniku
radiowym. Prezentowany
analizator jest w pełni
lampowy - wskaźnikami
poziomów są także lampy.
Rekomendacje: kolejny
projekt przygotowany dla
fanów układów lampowych.
Analizator jest łatwy
w wykonaniu, a prezentuje
się niezwykle efektownie.
Może być doskonałym
uzupełnieniem każdego
zestawu audio.
Najpierw zajmiemy się bliżej lampami, które niegdyś były nazywane "okiem magicznym". Oko magiczne powstałp w drugiej połowie lat 30. ubiegłego stulecia. Opracowała je firma RCA. Były stosowane w odbiornikach radiowych jako wskaźniki dostrojenia odbiornika do żądanej długości fali.
W odbiornikach o prostej konstrukcji - jak opisywany w EP12/ 2002 - strojenie odbywa się "na słuch" i daje to dobre wyniki. Maksymalną głośność audycji uzyskuje się przy optymalnym dostrojeniu, a więc wtedy, gdy odbiornik jest dostrojony do wierzchołka krzywej rezonansowej obwodu strojonego. Jednak pod koniec lat 20. pojawiły się odbiorniki o wiele bardziej złożone, wyposażone między innymi w obwody ARW (automatycznej regulacji wzmocnienia). W przypadku, gdy sygnał odbieranej stacji jest słaby, ARW powoduje zwiększenie wzmocnienia wzmacniacza pośredniej częstotliwości, a przy silnym sygnale zmniejszenie tego wzmocnienia, aby w obu przypadkach głośność audycji była zbliżona. Takie rozwiązanie ma jednak pewną wadę. Załóżmy, że odbierana jest "silna" stacja, ale odbiornik "pracuje" gdzieś na zboczu krzywej rezonansowej obwodu strojenia. Sygnał wejściowy wzmacniacza p.cz. jest słaby, a więc ARW zwiększa jego wzmocnienie. Tym samym przy strojeniu nie występuje aż tak wyraźnie słyszalne
zwiększenie głośności, jak w prostym odbiorniku bez ARW. Optymalne dostrojenie jest więc utrudnione, a tylko wtedy jakość audycji jest najlepsza. W tym celu przydałby się optyczny wskaźnik strojenia, który wskazywałby najlepsze dostrojenie.
Początkowo rolę takiego wskaźnika pełnił czuły miliampe-romisrz, włączony w anodę lampy detekcyjnej. Jednakże miliam-peroinierz był dość kosztownym przyrządem i zamiast niego zaczęto stosować lampy neonowe. Jednak one też nie zdobyły wielkiej popularności, gdyż były mało czułe. W końcu skonstruowano specjalną lampę wskaźnikową -magiczne oko.
o+Ea
sygnał sterujący
Wyprowadzenia lampy: 1,2- żarzenie lampy 3-katoda
4 - siatka sterująca
5 - anoda
6 - elektroda odchylająca
7 - świecący ekran
Rys. I. Podstawowy układ pracy magicznego oka
Elektronika Praktyczna 3/2003
41
Lampowy analizator widma
amplifiltry
weL
vreP
Rys. 2. Schemat blokowy lampowego analizatora widma
Oko magiczne przypomina trochę lampę oscyloskopową. Posiada katodę, siatkę sterującą, anodę, elektrody odchylające i świecący ekran (rys. l). Napięcie sterujące podaje się między siatkę a katodę. Anoda połączona jest z elektrodą (elektrodami) odchylającą. W obwód anody włączony jest opornik obciążenia, a więc lampa pracuje jak triodowy wzmacniacz oporowy, sterujący elektrodę odchylającą. Ekran znajduje się pod stałym dodatnim wysokim potencjałem, zwykle 200...250 V. Na ekranie wyświetlany jest znak o zmieniającym się kształcie, np. wycinek koła, półkola, prostokąt. Znak zmienia wymiary przy zmianie potencjału na siatce. Przy pełnym wysterowaniu świeci cała powierzchnia ekranu.
Magiczne oka znalazły także zastosowanie w magnetofonach szpulowych, w których wskazywały poziom wy sterowania. Opracowano także kilka typów wskaźników specjalnie przeznaczonych do odbiorników UKF-FM. Były to wskaźniki podwójne, gdyż wskazywały także dostrojenie na "zero" charakterystyki dys-kryminatora.
Oka magiczne stosowano także w amatorskim sprzęcie pomiarowym (np. mostki RLC), w których służyły jako wskaźniki równowagi zamiast galwanometrów.
Opis układu
Lampowy analizator widma pracuje analogicznie jak współczesny półprzewodnikowy. Jego schemat blokowy przedstawiono na rys. 2. Sygnał stereofoniczny, doprowadzony do wejścia układu, zostaje wzmocniony i zsumowany. Tak otrzymany sygnał monofoniczny jest kierowany do zespołu amplifiltrów (amplifiltr jest selektywnym wzmacniaczem). Do wyjść amplifiltrów dołączone są lampy wskaźnikowe, z których każda wskazuje poziom sygnału w określonym przedziale częstotliwości. Jako lampy wskaźnikowe pracują magiczne oka.
Aby zmniejszyć koszt wykonania analizatora, liczba zastosowanych wskaźników jest ograniczona do czterech. Mimo małej liczby wskaźników, układ analizuje całe słyszalne pasmo częstotliwości. Dlatego amplifiltr sterujący pracą wskaźnika tonów niskich jest dolnoprzepustowy,
dwa amplifiltry tonów średnich są środkowoprzepustowe, a amplifiltr tonów wysokich jest gór-noprzepustowy. Ponieważ nie zależy nam na dużej selektywności amplifiltrów, to ich układy mogą być bardzo proste - nie zawierają indukcyjności.
Schemat elektryczny przedstawiono na rys. 3. Potencjometr Pl umożliwia regulację czułości całego układu. We wzmacniaczu wejść i owym-sumatorze pracuje lampa VI. Anody obu połówek tej lampy są połączone ze sobą, dlatego przez kondensator C5 przechodzi sygnał wzmocniony, będący sumą sygnałów z obydwu kanałów. Sygnał jest podawany na cztery amplifiltry o charakterystykach częstotliwościowych pokazanych na rys. 4.
Lampa V2 pracuje w układzie amplifiltru dolnoprzepustowego (zakres częstotliwości <160 Hz). Obcinanie wyższych częstotliwości zapewnia filtr złożony z elementów C15, C16, R12 (filtr typu n). Wzmocniony sygnał wyjściowy amplifiltru jest kierowany na siatkę lampy wskaźnikowej V6.
Lampa V3 pracuje w układzie amplifiltru środkowoprzepustowe-go (maksimum wzmocnienia przy ok. 500 Hz). Zastosowano tu inne rozwiązanie układu wzmacniacza selektywnego - zamiast filtru typu n zastosowano małe wartości pojemności sprzęgających C7 i C12, ni eprzepu szczających sygnałów o małej częstotliwości. Sygnały o wyższych częstotliwościach są zwierane do masy przez kondensatory C17 i C21. Ten amplifiltr steruje lampę V7.
Lampa V4 pracuje w układzie drugiego amplifiltru środkowo-przepustowego (maksimum wzmocnienia przy ok. 2 kHz), sterującego lampę V8. Nie różni się budową od omówionego poprzednio amplifiltru z lampą V3 (poza wartościami pojemności kondensatorów). Wyjaśnienia wymaga jedynie zastosowanie kondensatorów C23 i C24. Otóż w obwodach katod lamp wzmacniających (w tym także V3) znajdują się rezystory, których zadaniem jest ustalenie odpowiednich wartości wstępnych ujemnych potencjałów siatek. Rezystory te wprowadzają ujemne prądowe sprzęże-
42
Elektronika Praktyczna 3/2003
Lampowy analizator widma
Rys. 3. Schemat elektryczny analizatora
Elektronika Praktyczna 3/2003
43
Lampowy analizator widma
12
J10
, Ś
r
i f 1 /
ru flmnlililtr -- - 1
i 1 '
\J \ \ /
Y 1 -1 f
* \ ,T t
i t\ p
\ I ŚŚ 1 |
\J
Y . |
A
A i
/\ V
/
* \
\ i
/ 1
y
_ __________J S,
i f








10-
100
1000 [Hz]
10000
100000
Rys. 4. Charakterystyki przenoszenia amplifiltrów z układu modelowego
nie zwrotne, powodujące znaczny spadek wzmocnienia. W tym am-plifiltize trzeba było nieco "podbić" wzmocnienie dla wyższych częstotliwości i taką funkcję spełniają kondensatory C2 3 i C24, które bocznikują właśnie dla wyższych częstotliwości rezystory RIO iR23. Dzięki temu uzyskano korzystniejszy kształt charakterystyki amplitudowo-częstotliwościowej amplifiltru. Nasuwa się pytanie: dlaczego zbocznikowano odpowiednimi kondensatorami także katody obu połówek lampy Vi?
Lampa Vi pracuje jako wzmacniacz-sumator, sterujący pracą wszystkich czterech amplifiltrów. Zależy nam więc na tym, aby lampa zapewniała duże wzmocnienie w dość szerokim zakresie częstotliwości akustycznych. Dlatego w obwodach jej katod znajdują się kondensatory elektrolityczne C3 i C4 o znacznej pojemności, likwidujące ujemne sprzężenie zwrotne
także dla małych częs- ------------
totliwości.
Pozostał jeszcze amplifilti gór-noprzepustowy (częstotliwości powyżej 3...4 kHz) z lampą V5. Zastosowano bardzo małe wartości pojemności sprzęgających C9 i Cl4. Z wyjścia amplifiltia jest sterowana lampa wskaźnikowa V9.
Wszystkie amplifiltiy powinny mieć taką samą dobroć, aby błąd wskazań poziomu sygnału był w poszczególnych pasmach częstotliwości podobny. Do wyrównania tych dobroci przewidziane są 4 potencjometry montażowe: P2, P3, P4, P5. Aby cały ekran oka magicznego - lampy EM84 - się świecił (aby listki się zeszły), napięcie na siatce sterującej powinno wynosić około -20 V.
maczki z przeszłości
Na zdjęciu z lewej strony pokazano magiczne oko 6E5
z ekranem znajdującym się
w górnej części szklanej banki.
Na zdjęciu poniżej pokazano
tuner AFT11 firmy Pioneer,
który pomimo nowoczesnego
wyglądu (płyta czołowa
z drapanego aluminium) jest
zbudowany na lampach i wyposażono go w aż dwa magiczne oka.
Dla lampy EM 800 napięcie to wynosi około -10 V.
Dociekliwi mogą zapytać, dlaczego w obwodach siatek wskaźników V7, V8, V9, Vl0 nie zastosowano diod prostowniczych, aby lampy były sterowane tylko napięciem wyprostowanym (ujem-
nym) a nie zmiennym? Otóż wydaje się celowe, aby czas reakcji wskaźników na poziom sygnału był krótki, a nic się złego nie stanie, jeżeli popłynie prąd siatki przy dodatnich półokiesach napięcia sterującego.
Układ zasilacza składa się z: transformatora sieciowego Trl, mostka prostowniczego PRl, 2 kondensatorów (ClO i C27) oraz rezystora (R33). Transformator Trl powinien dostarczać napięcie anodowe o wartości 180 VAC przy prądzie 50 mA i napięcie żarzenia 6,3 VAC przy prądzie 2,8 A. Lampa ECC82 może pracować przy napięciu żarzenia 6,3 lub 12,6 V. Ponieważ przyjęliśmy, że będzie pracowała przy napięciu 6,3 V, to napięcie żarzenia należy podać na wyprowadzenie 9 i zwarte ze sobą 4 i 5.
Montaż i uruchomienie
Układ zmontowano na wygiętej w "U" ocynkowanej blasze o grubości 1,5 mm, wysokości 60 mm, szerokości 250 mm i długości 400 mm. Transformator sieciowy jest z a ekranowany obudową od zasilacza komputera. Doprowadzenia do siatek lamp powinny by ć eki ano w ane.
Urządzenia lampowe zasilane są wysokimi napięciami, zwykle o wartości ponad 200 V, dlatego wymagana jest jak najdalej posunięta ostrożność i porządek przy montażu.
Potencjalnym zagrożeniem jest także wysoka temperatura lamp podczas pracy. Dlatego niedopuszczalne jest stosowanie obudów plastikowych. Urządzeniu należy zapewnić dobre odprowadzanie ciepła. Nie zalecam wymuszonego chłodzenia wiatrakami, gdyż wprowadzają niepożądane drgania. Godnym polecenia jest umieszczanie lamp na zewnątrz obudowy. Ładnie wygląda-a ciepło jest dobrze odprowa-
r
dzane.
Do montażu należy używać przewodów o odpowiedniej izolacji i średnicy. Najgrubsze powinny być przewody żarzenia - płynący prąd ma natężenie nawet do kilku amperów.
44
Elektronika Praktyczna 3/2003
Lampowy analizator widma
K"
EM84, EM800
Rys. 5. Wyprowadzenia lamp zastosowanych w projekcie
Przy uruchomieniu analizatora pomocny byłby generator spełniający funkcję źródła akustycznego sygnału sinusoidalnego. Potencjometr Pl ustawiamy w skrajnym prawym położeniu, co zapewni maksymalną czułość układu. Jeżeli nie popełniliśmy błędów montażowych, urządzenie będzie działać prawidłowo zaraz po włączeniu i nagrzaniu. Niezbędne jest jedynie wyregulowanie dobroci amplifiltrów. Po nagrzaniu powinny świecić się wszystkie oka magiczne. Wyświetlane listki powinny być krótkie (3...4 mm). Podajemy sygnał z generatora akustycznego. Zmieniamy płynnie częstotliwość generatora (w zakresie 40...15 000 Hz) - powinny kolejno reagować wszystkie wskaźniki. Maksymalne wartości sygnału powinny występować przy około 400 Hz dla drugiego i około 2 kHz dla trzeciego filtru. Należy znaleźć maksima dla drugiego filtru i potencjometr P3 ustawić tak, by świecący listek wskaźnika miał długość np. 11 mm. Znajdujemy maksimum dla trzeciego filtru i też ustalamy (potencjometrem P4) długość listków na 11 mm. Podobnie postępujemy dla
amplifiltrów pierwszego i czwartego (za pomocą P2, P5) na krańcach pasma, to jest dla około 50 Hz i około 15 kHz.
Potencjometrem Pl można regulować czułość całego układu, gdyż źródłem sygnału mogą być różne urządzenia. Jeśli źródłem sygnału będzie np. CD, warto zamontować 4 gniazda chinch, aby sygnał można było podać do wzmacniacza bez konieczności stosowania rozgałęziaczy.
Zastosowane lampy ECC82 są obecnie produkowane. Natomiast wskaźniki EM84 są często oferowane w internetowych portalach aukcyjnych, a można je zastąpić także wskaźnikami: EM800, EM87, EM83, EM80, EM81, EM34, EM4, 6E5C itd. Niektóre mają inny kształt świecącej części (ekranu) niż EM84. Różnią się także kolejnością wyprowadzenia elektrod i czułością. Karty katalogowe niektórych z tych lamp publikujemy na płycie CD-EP3/2003B.
Na koniec należy dodać, że w takim układzie jak prezentowany w artykule, nie warto dodawać kolejnych lamp wskaźnikowych (zawężać pasmo), gdyż trudno będzie "wcisnąć" kolejny filtr między już istniejące i wskazania dwóch sąsiadujących lamp będą bardzo podobne. Zwiększanie liczby kanałów ma sens dopiero po zastosowaniu znacznie bardziej rozbudowanych układów amplifiltrów, co pociągnęłoby jednak za sobą konieczność zastosowania większej liczby lamp. Aleksander Zawada a le ksa n de rza wada @ poczta, on et.pl
WYKAZ ELEMENTÓW
Rezystory
Rl, R2: 5,lkn/0,6W
R3, R17: 47kQ/0,ÓW
R4...R7, R18...R20: 100kQ/0,6W
R8...R11, R21...R24: 10kQ/0,6W
R12: 5ókQ/0,ÓW
R13...R16: 470kQ/0,ÓW
R25...R28: 1MQ/O,ÓW
R29...R32: 510kQ/0,ÓW
R33: 2,2kQ/8W
Potencjometry
Pl: 2xlMO logarytmiczny
P2: 220kO montażowy
P3...P5: 1MO montażowy
Kondensatory
Cl, C2, C5: 100nF/400V
C3, C4: 47^F/25V
Có, Cli, C15: 47nF/400V
C7, C12: 560pF/500V ceramiczny
C8, C13: 68pF/500V ceramiczny
C9, C14: 15pF/500V ceramiczny
C10: 22|iF/400V
Cló, C20: 10nF/400V
C19: 22nF/400V
C17, C21: 6,8nF/400V
C18, C22, C23, C24: lnF/400V
C26: 3,3nF/400V
C27: 100|iF/400V
Lampy
VI...V5: ECC82
V6...V9: EM84 lub inne według
opisu
Różne
2 gniazda chinch (albo 4)
Trl: transformator wg opisu
9 podstawek pod lampy typu
noval
PR1: mostek prostowniczy 1A/4OOV
B: bezpiecznik 500mAT
W: włącznik sieciowy
Elektronika Praktyczna 3/2003
45
AUTOMATYKA
Konkurs dla automatyków
Elmark Automatyka Sp. z 0,0, -
autoryzowany przedstawicie! firmy
Unitronics na Po!skę oraz Elektronika
Praktyczna, ogłaszają konkurs, w którym
głównymi nagrodami są trzy sterowniki
serii M90, Wystarczy wymyśłeć aplikację
dla sterownika rodziny M90 i napisać
program realizujący przedstawione
poniżej założenia. Przygotowany opis
aplikacji należy przesłać do firmy Elmark
Automatyka do dnia 10/03/2003,
Rozstrzygnięcie konkursu nastąpi w dniu
20/03/2003, a o wynikach laureaci
zostaną powiadomieni telefonicznie. Rozdanie nagród odbędzie się na targach Automaticon 2003 na stoisku firmy Elmark Automatyka,
wygraj sterownik firmy Unitronics!
Pomoc do konkursu: obsługa programu do konfiguracji sterownika
Pierwszym krokiem podczas przygotowywania programu dla sterowników M90 za pomocą oprogramowania U90 Ladder jest wybór konfiguracji sterownika (dostępnych jest dziewięć modeli sterownika różniących się ilością wejść i wyjść - rys. 1). Sterowniki te oprócz wejść/wyjść wbudowanych mają możliwość rozbudowy (oprócz M90-19-BlA) o kolejne wejścia/wyjścia: dwustanowe, analogowe i rezys-tancyjne PtlOO. Dzięki temu w zależ-
ności od potrzeb każdy może dobrać odpowiednią konfigurację we/wy dla potzreb realizowanej aplikacji.
Następnym krokiem w realizacji projektu jest konfiguracja panelu operatorskiego. Na pasku narzędziowym należy wybrać ikonkę z polem wy-
Program narzędziowy jest dostępny na stronie:
htt p: //su pp o r t. elma rk. com. pl/unit r onics/
literatura.htm, firma Elmark wysyła go także
drogą tradycyjną po zgłoszeniu na e-mail
sterowniki%e1mark.com.pt z dopiskiem
"Konkurs".
świetlacza. W polu ekran można wpisać nazwę np. Pomiar temperatury i zatwierdzić wciskając klawisz Enier. W polu wyświetlacza należy wpisać tekst który ma być wyświetlany np. teuip.l=. W tym momencie tworzymy komunikat, natomiast brakuje jeszcze zmiennej ekranowej, która będzie odnosiła się do wartości temperatury. W polu wyświetlacza należy zaznaczyć myszką (klikając i przeciągając) segmenty, w polach których będzie wyświetlana wartość temperatury (podświetlenie w kolorze czerwonym). Następnie należy kliknąć prawym
klawiszem myszki i pojawią się znaki specjalne, z których należy wybrać stopień Celsjusza (pojawia się w programie jako "~", a w sterowniku jako "" - rys. 2). Teraz trzeba sformatować zmienną ekranową. Po kliknięciu na zmienną pojawi się okienko w którym należy skojarzyć z MI np. 2. W informacji o zmiennych należy zaznaczyć w jakim formacie ma być wyświetlana temperatura (tzn. z iloma miejscami po przecinku - rys. 3). Analogicznie dodaje się dodatkowe zmienne ekranowe, które mogą być dołączone cztery do jednego ekranu. Można również stworzyć skoki warunkowe. Stworzymy np. skok z ekranu z wyświetlaną tempera-
Temp.|-
lY 1
r i*
Rys. 2
144
Elektronika Praktyczna 1/2003
AUTOMATYKA
Rys. 3
turą do drugiego po naciśnięciu klawisza Enier (skoki mogą zachodzić również po spełnieniu innych warunków powiązanych z wejściami, wyjściami, zegarami, zmiennymi bitowymi MB i rejestrami bitowymi SB - rys. 4). Następnie podaje się numer i nazwę wyświetlacza (w tym wypadku jest to pomiar ciśnienia), do którego ma nastąpić skok. Analogicznie postępuje przy pozostałych trzech warunkach skoku przypisanych do jednego wyświetlenia wartości i tekstu na ekranie oraz przy pozostałych wyświetlaczach. Następnie możemy zacząć budować program w języku drabinkowym, o którym w następnym odcinku.
Nowości firmy Unitronics
Firma Unitronics po udanych seriach sterowników M90/M91 i Vision 230/260 wprowadziła na polski rynek nową gamę sterowników zintegrowanych z panelem operatorskim - Vison 120. Charakteryzują się one zwarta budową (wymiary 96 x 96 x 64 mm -identyczne jak sterowników M90/ M91) i możliwością montażu na szynie DIN (stopień ochrony IP20) lub
na panelu (IP65). Dzięki wbudowanemu panelowi operatorskiemu (rozdzielczość wyświetlacza wynosi 128 x 64 pixele) sterownik ten można wykorzystać w układach sterowania procesami technologicznymi, zarówno pojedynczej maszyny produkcyjnej jak i całego ciągu technologicznego. Realizacja tego zadania jest ułatwiona dzięki dwóm portom komunikacyjnym RS232/485 i wykorzystaniu protokołu MODBUS RTU, do połączenia z innymi urządzeniami. Sterowniki te zostały wyposażone w interfejsy dla urządzeń zewnętrznych takich jak drukarki i czytniki kodów kreskowych. Panel operatorski z szesnastoma programowalnymi przyciskami klawiatury i ekranem (graficznym i tekstowym z polską czcionką), na którym mieści się 8 linii na 22 znaki, pozwala stworzyć małą wizualizację procesu jakim steruje sterownik. Kilka pętli regulatora PID umoż liwia pracę sterownika w zamkniętej pętli regulacji, niezbędnej tam, gdzie jest wymagane utrzymywanie parametrów procesu (temperatury, przepływu, ciśnienia) na zadanym poziomie. Możliwość podłączenia modemu GSM sprawia, iż mamy dostęp do sterownika i procesu produkcyjnego z każdego miejsca na ziemi. Umożliwia nam to nie tylko podgląd zachodzącego procesu, ale rów-
Rys. 4
Regulamin konkursu:
1 Ściągnij dokumentację i program narzędziowy, wymyśl aphkaqę do której można wykorzystać sterownik rodziny M90 a następnie napisz program realizujący przedstawione założenia
2 Projekt powinien zawierać
- Opis aplikacji (charakterystyka obiektu, typ zastosowanego sterownika i ideę po-tączeń sprzętowych)
- Program zapewniający sterowanie obiektem oraz interfejs z operatorem
3 Termin napływania zgłoszeń 10/03/2003
4 Rozstrzygnięcie konkursu nastąpi w dniu 20/03/2003 Laureaci zostanąumieszcze-ni na stronie www.elmark.com.pS/unitronics oraz powiadomieni telefonicznie
5 Rozdanie nagród 1/04/2003 na targach Automaticon o godz 12 00 na stoisku El-mark Automatyka
6 Nagroda trzy pierwsze miejsca są premiowane sterownikiem serii M90
7 Informacje o dostępności oprogramowania (na stronie WWW http://sup-port.elmark.com.pliuniironicsiliieraiura.htm) lub wysytka drogą tradycyjną (wystać adres nae-mail sterowniki@elmark.com.pl)
8 Projekty należy kierować do Elmark Automatyka Sp zoo ul Radna 12/5, 00-341 Warszawa z dopiskiem "Konkurs" lub e-mailem sterowni ki@e! mark.com.p!
9. Elmark Automatyka Sp zoo zastrzega sobie prawo do wykorzystania nadesłanych prac w materiałach techniczno-handlowych
nież stwarza możliwość zmian w zachodzącym procesie on-line.
Sterownik ten posiada kilka wersji różniących się liczbą wejść/wyjść dwustanowych, a także analogowych, ter-moparowych i rezystancyjnych (dla FtlOO). Dostępna jest również wersja sterownika z wejściami uniwersalnymi, w którym w zależności od potrzeb wejścia te mogą pracować jako standardowe wejścia dwustanowe, analogowe, termoparowe lub FtlOO. Sterownik jest w stanie zliczać impulsy o częstotliwości do 10 kHz, co pozwala między innymi na dołączenie do niego przetwornika prędkości obrotowej mierzącego drogę, prędkość obrotową, szybkiego licznika i czujnika. Visionl20 posiada również port rozszerzeń, dzięki któremu jest możliwa rozbudowa każdego sterownika o 128 we/wy (dwustanowych, analogowych i rezystancyjnych PtlOO). Dzięki serwerowi OPC dostarczanemu razem z oprogramowaniem (bezpłatnie), możliwa jest integracja sterowników Unitronics z systemami nadrzędnymi typu SCADA (np. Dąsy Lab), oraz aplikacjami systemu operacyjnego Windows (np. Excel).
Firma Unitronics posiada w swojej ofercie również sterowniki M90/ M91 z szesnastoznakowym wyświetlaczem i piętnastoma programowalnymi przyciskami klawiatury.
Kolejnymi nowymi na rynku seriami sterowników są: Vision 230 z panelem operatorskim o rozdzielczości 128 x 64 pixele i dwudziestoma czterema programowalnymi przyciskami klawiatury, Vision 260 z wyświetlaczem o rozdzielczości 240 x 64 pixe-le i trzydziestoma trzema przyciskami klawiatury oraz - pierwszy sterownik z wbudowanym dotykowym panelem operatorskim - Vision 280 z wyświetlaczem o rozdzielczości 320 x 240 (22 linie na 60 znaków).
Dodatkowe informacje
Więcej informacji dotyczących konkursu na stronie: http://www.elmark.com.pl/unitronics/ konkurs.htrn, a takżew tirmie Elmark Automatyka Sp.z o.o., tel. (22) 828-29-11, www.elmark.-com.pl/unitronics/, sterowniki@elmark.com.pl.
Elektronika Praktyczna 1/2003
145
PROJEKTY
VHDL i lampy, część 2
No tak, Elektronika
Praktyczna wzięła się za
"odgrzewanie kotletów",
pomyślą pewnie ci spośród
naszych Czytelników, którzy
pamiętają polską elektronikę
z końca lat 80. Akceleracja,
jakiej jesteśmy poddawani
przez ostatnich 12 lat -
chodzi głównie o dostęp do
nowoczesnych podzespołów -
spowodowała, że jeszcze
niedawno traktowane
pogardliwie lampy Nixie
nabrały wyjątkowego "smaku".
Pomysłem na ich
zastosowanie dzielimy się
z Wami w ańykule.
Rekomendacje: projekt
z popularnego na Zachodzie
gatunku "Vintage Electronics",
czyli chwytające za serce
(i zazwyczaj oko) praktyczne
starocie. O tyle dopasowany
do EP-owskiej doktryny
nadążania za nowościami, że
cała część cyfrowa została
opisana w VHDL-u.
Montaż zegara
Płytka drukowana zegara jest jednocześnie jego bazą mechaniczną, na której znajdują się wszystkie elementy elektroniczne, przełączniki, transformator, a także lampy Nbde oraz pomocnicza płytka drukowana, na której są zamontowane dwie neonówki spełniające rolę dwukropka. Ze względu na dużą średnicę szklanych baniek lamp wymiary płytki są dość znaczne (305 x 102 mm), ale jak pokazała praktyka, wygoda wynikająca ze zintegrowania wszystkich elementów zegara na jednej płytce rekompensuje dość wysoki koszt wykonania takiej płytki.
Schemat montażowy płytki głównej pokazano na rys. 8. W urządzeniu zastosowano dwa układy scalone przystosowane do montażu powierzchniowego - Ul oraz stabilizator napięcia 3,3 V -U3. O ile montaż stabilizatora nie sprawi żadnej trudności przeciętnie wyposażonemu elektronikowi, to do montażu układu Ul jest niezbędna lutownica z cienkim grotem oraz taśma rozlutownicza Wiek. Można także podjąć próbę zamontowania tego układu w wyspecjalizowanej firmie zajmującej
się montażem elementów SMD, ale ze względu na trudną dostępność i wysoką cenę takiej usługi zachęcam do podjęcia próby samodzielnego przy lutowania układu.
Zaczynamy od posmarowania spodniej części obudowy układu Ul odrobiną nieprzewodzącego kleju (doskonale sprawdził się butapren) . Następnie kładziemy układ na miejscu dla niego przeznaczonym, zwracając oczywiście uwagę na właściwą orientację pierwszego wyprowadzenia układu. Delikatnymi ruchami należy możliwie dokładnie umieścić wyprowadzenia układu na polach lutowniczych, na co przez kilka minut pozwala elastyczność kleju zastosowanego do przymocowania układu. Teraz należy odczekać co najmniej godzinę, co spowoduje, że klej przestanie być elastyczny, a obudowa układu trwale przymocowana do płytki drukowanej.
W zależności od średnicy grota posiadanej lutownicy można zastosować dwa sposoby lutowania wyprowadzeń:
- jeżeli grot jest "gruby" (średnica końca większa niż 1,2 mm) najlepiej jest delikatnie przygrzewać i jednocześnie dociskać
46
Elektronika Praktyczna 3/2003
AVTNixieClock
O
Rys. S. Rozmieszczenie elementów na płytce drukowanej (widok zmniejszony do 80%)
Stron* 'elamentów1 Gniazdko FAS901
Rys. 9. Sposób wykonania podstawek do lamp
do pól lutowniczych po kolei grupy po kilka wyprowadzeń (ich liczba zależy od średnicy/szerokości grota) - ale bez podawania dodatkowego topnika! Jeżeli wyprowadzenia układu zostaną dobrze rozgrzane i dociśnięte, cyna znajdująca się na polach lutowniczych zwiąże się z nimi zapewniając dobre przewodzenie prądu.
- jeżeli mamy do dyspozycji "chudy" grot i oczywiście wprawną rękę można podjąć ryzyko podania odrobiny dodatkowego topnika. Zwiększy to prawdopodobieństwo dokładnego i trwałego przybito w ani a wyprowadzeń, ale grozi powstaniem zwarć pomiędzy sąsiednimi wyprowadzeniami układu. Lekarstwem na to jest miedziana taśma rozlutownicza (np. Wiek), za pomocą której można odciągnąć nadmiar cyny, co w większości przypadków spowoduje usunięcie zwarć. Kolejnym krokiem montażowym jest wlutowanie w płytkę drukowaną gniazdek
ze sprężystymi styka- Ry3i n, Widok okna konfiguracji mi (FAS901), które programatora Uprog HS4S w trybie
JTAG
Rys. 10. Rozmieszczenie elementów na płytce drukowanej "dwukropka"
spełniają rolę podstawki dla lamp Nirde. Ponieważ lampy są montowane od strony "lutowania" (czyli przeciwnej niż pozostałe elementy), to gniazdka należy wlutować otworami od strony "lutowania", jak to pokazano na rys. 9. Ze względów oszczędnościowych gniazdka należy wlutować wyłącznie pod te wyprowadzenia lamp, które są wykorzystywane w aplikacji. Nie dotyczy to lampy Li (są na niej wyświetlane dziesiątki godzin), której zaledwie trzy wyprowadzenia są wykorzystywane. Aby zapewnić jej odpowiednią stabilność mechaniczną należy zwiększyć liczbę gniazd, przy czym sensowne minimum zapewnia takie ich rozmieszczenie, jak w przypadku lampy L3 (są na niej wyświetlane dziesiątki minut).
Od strony "lutowania" montowane jest także gniazdo Jl, które służy do zamontowania płytki drukowanej z dwiema neonówka-
Elektronika Praktyczna 3/2003
47
AVTNixieClock
nDraiJK 4 Ml " ** '"

rfrfa

Rys. 12. Widok okna konfiguracji programu iMPACT
mi (LPl i LP2, wkręcone w oprawki), które spełniają rolę dwukropka sygnalizującego odmierzanie czasu. Schemat montażowy tej płytki pokazano na rys. 10.
Montaż pozostałych elementów nie sprawi żadnych trudności Czytelnikom z choćby niewielkim doświadczeniem, nie będziemy się wobec tego nim zajmować.
Uruchomienie zegara
Układ Ul jest wyposażony w pamięć konfiguracji typu Flash, którą można wielokrotnie repro-gramować w systemie za pomocą wbudowanego w układ interfejsu JTAG. Korzystanie z niego bardzo przypomina programowanie w systemie mikrokontiolerów PIC lub AVR, a do jego przeprowadzenia jest potrzebny mało skomplikowany interfejs portu drukarkowego, który opisaliśmy w EP4/2001. Przeprowadziłem także próby programowania układu Ul za pomocą programatora uniwersalnego UprogHS 48, który jest przystosowany do programowania w systemie układów wyposażonych w interfejs JTAG, co wymaga jedynie zastosowania 6-żyłowego kabla połączeniowego, którego końcówki są z jednej strony zaciskane w podstawce ZIF48 (rys. 11). Ponieważ projekt dla układu Ul powstał w oparciu o bezpłatne narzędzie WebPack ISE, za pomocą którego nie można wygenerować bezpośrednio pliku w formacie JAM-STAPL/SVF (które to formaty akceptuje UprogHS 48), trzeba dokonać konwersji pliku wynikowego w formacie JEDEC na SVF lub JAM-STAPL. Do tego celu służy program iMPACT (rys. 12), który należy przełączyć w tryb pracy File Modę (w menu opcja Modę). Format pliku wynikowego można wybrać w menu: Output>SVF File lub Out-
O JTAG-u słów kilka
Typowe dla JTAG-a procesy, tzn. testowanie i programowanie (konfigurowanie) układów z interfejsem JTAG przebiegają w podobny sposób. Najważniejsza różnica pomiędzy nimi polega na wykorzystaniu podczas testowania rejestrów ścieżki krawędziowej, a podczas programowania (konfigurowania) rejestrów ISP. Twórcy interfejsu JTAG przewidzieli możliwość jednoczesnego programowania lub testowania wielu układów. W takim przypadku należy je połączyć kaskadowo w łańcuch BST (ścieżki krawędziowej), jak to pokazano na poniżej. Każdy układ z interfejsem zgodnym ze standardem JTAG musi być wyposażony w 1-bitowy rejestr obejściowy (bypass). To właśnie dzięki temu rejestrowi istnieje możliwość "operowana układach dowolnie wybranych z całego łańcucha.
c
i
ma
vcc vcc vcc
ŁUlcuch lMkUw z Intfirfotoflm JTAG
Styk fizyczny interfejsu JTAG składa się z zaledwie 4 lub 5 pojedynczych, jednokierunkowych linii sygnałowych. Ciężar realizacji algorytmów sterujących wymianą informacji w łańcuchu JTAG jest rozłożony pomiędzy program sterujący pracą interfejsu oraz blok TAP wraz z elementami towarzyszą- b cymi, w które wyposażono układy ISP. Dzięki temu typowe programatory-konfiguratory układów programowanych w systemie zawierają zazwyczaj tylko bufory zabezpieczające przed uszkodzeniem wyjścia portu równoległego komputera (LPT). Niektórzy producenci oferują także konwertery RS232 <->JTAG oraz nowocześniejsze konwertery USB<->JTAG, których jedną z zalet jest możliwość pracy plug&play.
put>STAPL File - w naszym przypadku obydwa formaty są równoważne.
Na fot. 13 pokazano ulokowanie złącza JTAG na płytce zegara. Jak widać, wszystkie sygnały złącza J2 zostały wyraźnie opisane na płytce, co ułatwia dołączenie przewodów. Z lewej strony tego złącza widać także jumper oznaczony 12/24H, za pomocą którego można zmieniać tryb zliczania czasu przez zegar.
Programowanie układu Ul niesie ze sobą pewne niebezpieczeństwo, ponieważ zegar nie jest odizolowany galwanicznie od sieci energetycznej. W przypadku większości klasycznych komputerów PC, ich obudowy w przypadku źle wykonanej instalacji elektrycznej także mogą znaleźć się na potencjale sieci, co grozi porażeniem oraz uszkodzeniem zarówno
komputera, jak i elementów zastosowanych w zegarze. Zagrożenia tego nie można bagatelizować, dlatego gorąco zachęcam do zastosowania do zasilania zegara (lub PC) transformatora bezpieczeństwa 220 VAC/220 VAC, można pokusić się także o zastąpienie go UPS-em, ewentualnie zamiast komputer a s ta ej onarne go m o zna zastosować notebooka zasilanego podczas programowania z wbudowanej baterii.
Zaprogramowanie układu Ul jest w zasadzie jedyną czynnością, jaką trzeba wykonać podczas uruchamiania zegara. W zależności od parametrów zastosowanego kwarcu Xl może okazać się konieczne zmodyfikowanie pojemności kondensatora C7 - częstotliwość pracy generatora z tranzystorem T30 powinna być możliwie bliska 32,768 kHz.
48
Elektronika Praktyczna 3/2003
AVTNixieClock
List. 3. Opis połqczeń pomiędzy elementami projektu w języku VHDL
library IEEE.
Use IEEE.3in>_LiXJIC_1164.?lLL,
Use IEEE.S
Use IEEE.S
entlty Zegar ls port (
3ni: lnout std_loglc_yector ( dzm: lnoUt std lcqlc_Vector (S doWnto 0). dzh: lnollt std!lcqlc_Vector (^ doWnto 1). jh: lnout std_loglc_Vector(9 doWnto 0). ster_dk, szybko_wy, Wolno_wy: ollt std_loglc, clk_ref, res, madę, clk_set, res_a, set_s: m std_logie
end Zegar.
archltecture liehayioral of Zegar ls compoiient llcZnlk_1m port (
clk: ln stdjlc-glc,
clk_c-: c-Ut std_lcglc,
res: ln std_lc-glc,
c-Utp: lnc-Ut std_lcglc_yector(9 dcWnto 0) ) , end coniponent 1 lc Znlk_ ;jni,
conponent llcZnlk_dZm port (
clk: ln std_lc-glc,
clk_o: c-Ut std_lcglc,
res: ln std_lc-glc,
outp: lnc-Ut std_loglc_Vector(B do&fnto 0) ) ,
end component 1 lc Znlk_dzm. ccinponent llcZnlk h port (
clk: ln stdT-oglc,
res, modę: ln std_logie.
oUtp_1: lnoUt std logie Vector(9 do&fnto 0).
oUtp_dZ: lnoUt std_lógic_Vector(^ doWnto 1) ) , end conpionent llcZnlk_h.
component mll>:_^_l port (
lnO, ml, a : ln std_loglc. oUt_mUX: oUt std_loglc ) , end conpionent iriTlX_2_l,
component presk port (
szybko, Wolno, wy_l_mln, WV_1HZ, Wy_4HZ: oUt stdjloglc. res, clk: ln std_loglc ) , end component presk.
slgnal a, d, clk_a, clk_mln,
clk_mln_set: std_logie.
slgnal clk_0, clk_l, lnt_lHZ, lnt_4HZ, nle_clk_a: std_logie.
begln
llcZ_]_mlnUt: llcZnlk_]m port map (
clk => clk mln_set,
clk_o => cIk_0,
res => res,
oUtp => ]m
llcZ_d_mlnUt: llcznlk_dzm port map ( clk => cU: 0, clk_o => clk_l, res => res, oUtp => dzm
llcZ_h: llcZnlk_h port map ( clk => cU:_l, res => res, niode = > modę, oUtp_T => jh, outp_dz => dzh
mUX_cZasU: nlllX_2_l port map ( lnO => clk_mln, ml => clk_set, a => a, oUt mUX => clk min set
max_dwukropka: mUX_2_l port map ( lnO => lnt_lHZ, ml => mt_4Hz, a => a, oUt_mUX => ster_dk
preskaler: presk port map ( szybko => szybko_wy, Wolno => WoliLO_wy, Wy_l_mln => clk_mln, res => res, clk => cU:_ref, wy_iHz => mt_iHz, wy_4Hz => mt_4Hz
-- przerzutnik D adresujący multipleksery -- wybór trybu pracy: uwstawianie/czas d_ff: process (clk_a, res) begln
lf res = '1' then a <= 'O' .
elslf clk_a = 'I' and clk_a'eVent then a <= d. end lf. d <= not a. end process d_f f.
-- przerzutnik RS likwidujący drgania styków clk_a <= 'O' When res_a = ' 1' else ' 1' when set_a = ' 1' else clk_a.
nle_clk_a <= '1' when res_a = ' 1' else '0Ś When set a = '1' else clk_a.
end behayioral.
Kłopoty z generatorem
Wykonałem dwa egzemplarze zegara, podczas uruchamiania których okazało się, źe generator sygnału wzorcowego jest bardzo czuły na parametry oscylatora kwarcowego Xl. Praktycznie w obydwu przypadkach konieczne było wyselekcjonowanie kwarcu, który wzbudzał generator. Aby uniknąć problemów podczas uruchamiania powstał znacznie stabilniejszy generator, którego schemat elektryczny pokazano na rys. 14. Jest to - jak widać - klasyczny generator z niebuforowanym układem CMOS typu 4069. Sygnał z wyjścia generatora jest buforowany przez inwerter UlB, a pozostałe inwertery nie są wykorzystywane i mają wejścia zwarte do masy. Do regulacji częstotliwości pracy generatora służy trymer C3.
Schemat montażowy generatora oraz sposób zainstalowania na płytce drukowanej (za pomocą pięciu pojedynczych szpilek "gold-pin" o długości 17 mm) pokazano na rys. 15. W przypadku zastosowania generatora z rys. 14 na płytce głównej nie montujemy elementów: T30, R39, R40, R41, Xl, C7 i C9.
Modyfikacje Ul
Działanie układu Ul ("serca" zegara) zostało opisane w języku VHDL (komplet źródeł opublikowaliśmy na CD-EP2/2003B). Dzięki zastosowaniu niezwykle elastycznego układu PLD, którego działanie jest modelowane za pomocą języka opisu sprzętu, każdy z Czytelników może samodzielnie zmodyfikować jego działanie lub zwiększyć możliwości zegara. Pokażę teraz prosty
Fot. 13. Umieszczenie złqcza JTAG na płytce zegara
przykład modyfikacji opisu, co spowoduje zmianę sposobu sygnalizowania przełączenia zegara w tryb ustawiania czasu.
W modelowych egzemplarzach podczas normalnego zliczania czasu dwukropek miga z częstotliwością 1 Hz, natomiast po przełączeniu w tryb ustawiania czasu zaczynał migać z częstotliwością 4 Hz (zgodnie ze schematem blokowym z rys. 6 - EP2/2OO3). Za przełączanie sygnału sterującego dwukropkiem odpowiada multiplekser mux_dwukropka (list. 3). Zwróćmy uwagę na poniższy fragment tego listingu: mux_dwukropka: mux_2_l port map (
inO => int_lHz,
inl => int_4Hz,
a => a,
out_mux => ster_dk ) ;
Wejściu inl multilpeksera jest przypisany sygnał o nazwie int_4Hz, pobierany z wyjścia dk_4_Hz preskalera częstotliwości wzorcowej. Proponuję zmienić sposób sygnalizowania przełącze-
1

.14
1
ŚIfi
1
Rys. 14. Schemat elektryczny zmodyfikowanego generatora wzorcowego
Elektronika Praktyczna 3/2003
AVTNixieClock
C4 i O O
O O|RKH=K
ni___OOOOD
O
B
C DE
Rys. 15. Sposób montażu generatora wzorcowego
nia w tryb ustawiania - zamiast szybkiego migania dwukropek będzie się świecił na stałe. Wymaga to wprowadzenia jednej zmiany w opisie sposobu przyłączenia multipleksera mux_dwukropka, jak to pokazano na listingu poniżej: mux_dwukropka: mux_2_l port map (
inO => int_lHz/
inl => ' 1 ' ,
-- ATu wprowadzono zmianę!
a => a,
out_mux => ster_dk
) ;
Każda wprowadzona zmiana wymaga oczywiście ponownego skompilowania opisu i zaprogramowania układu Ul.
Likwidacja zakłóceń
Podczas eksploatacji zegara w warunkach domowych wpływ zakłóceń występujących w sieci energetycznej na jego działanie był trudny do wychwycenia. Smutna prawda objawiła się po przeprowadzeniu kilku prób w środowisku semi-przemysłowym, gdzie do linii zasilających są dołączone silniki dużej mocy, lampy sodowe i świetlówki z zapłonnikami bime-talicznymi, a także impulsowe regulatory mocy. Zakłócenia występujące w liniach zasilających powodowały, że zegar dość zmieniał swoje ustawienia, często układ Ul "zawieszał się".
Okazało się, że doskonałym lekarstwem na problemy tego typu było zastosowanie w li-
niach zasilających specjalnego dławika odkłócającego (rys. 16), który został wymontowany ze starego zasilacza z PC. Cechą charakterystyczną tego dławika jest to, że ma dwa uzwojenia nawinięte współbieżnie i symetrycznie na jednym rdzeniu, co znakomicie likwiduje zakłócenia impulsowe. Alternatywnym wyjściem może być zastosowanie gniazda sieciowego z wbudowanym filtrem LC (dostępne m.in. w Elfie i TME). Piotr Zbysiński, AVT piotr.zbysinski@ep.com.pl
W artykule wykorzystano zdjęcia i informacje pochodzące ze stron:
- http://www.wehx.dk/oz2cpu/index.htm,
- http://www.arttec.net/art/Relevators.html,
- http://www.amug.org/~jthomas/iee-enix.html,
- hiip://wl .871 .telia.com/~u87127080/ ind/z560m.htm,
- http://www.mif.pg.gda.pl/homepages/ frank/sh eets/084 /z/Z 5 6 OM.pdf.
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/marzecO3 Jitm oraz na płycie CD-EP3/2003B w katalogu PCB.
Sieć 220VAC
. DoJ3na płytce zegara
Rys. 16. Sposób włączeani dławika odkłócającego w linię zasilania
50
Elektronika Praktyczna 3/2003
Protel BH
PROGRAMY
Przełom na rynku narzędzi EDA dla elektroników, część 1
W drugiej połowie ubiegłego roku pojawiło się nowe, sztandarowe narzędzie dia eiektroników -program Proteł DXP firmy Aińum. Jego
najnowsza wersja powstała na bazie wiełołetnich doświadczeń firmy i łączy najłepsze
cechy wszystkich poprzednich edycji tego znanego ełektronikom programu. Proteł DXP posiada wiełe nowych cech, niespotykanych dotąd wśród narzędzi tej kiasy, a mających
istotny wpływ na sprawność i wygodę
projektowania. W cykłu artykułów, który
właśnie rozpoczynamy, postaram się opisać
moźiiwości tego naprawdę potężnego narzędzia.
Na wstępie trzeba zaznaczyć, że program jest nadal intensywnie rozwijany. Poprawki, zmiany i nowe funkcje wprowadzane przez firmę. Altium są udostępniane za pośrednictwem Interne-tu w formie plików Ssivics Pack. Od daty oficjalnej premiery, która odbyła się 29 lipca 2002, program doczekał sie. już drugiego Ssivics Packa. Jest to otyłe istotne, że część funkcji, o których dalej wspomnimy, została zaim-plementowana dopiero w najnowszej edycji - Protel DXP Service Pack 2. Informacja o wersji programu jest dostępna z poziomu menu po wybraniu Hslp>Aboui -rys. 1.
Ze względu na to, że Protel DXP jest bardzo rozbudowanym narzędziem, trudno by było opisać wszystkie jego możliwości w kilku artykułach. Na szczęście dostępna jest wersja demonstracyjna programu pozwalająca poznać możliwości programu, która działa przez 3 0 dni. Można ją ściągnąć ze stron producenta www.proisl.com lub otrzymać na płycie CD.
Trochę historii
Zanim przejdziemy do konkretów, warto cofnąć się o kilka lat i zapoznać z losami programu od
Elektronika Praktyczna 3/2003
51
PROGRAMY
Rys. 1
jego początków, ponieważ miały one wpływ na kształt dzisiejszej wersji.
Mało kto pamięta, że historia Protela zaczyna się jeszcze w czasach DOS-a od programu Autotrax. Znam osoby, które jeszcze do dzisiaj korzystają z programów Autotrax i Schema-tic dla DOS-a - pierwszych produktów firmy Protel International. Autotrax, jak na ówczesne czasy, był znakomitym i przyjemnym w obsłudze narzędziem. Wystarczy wspomnieó, że jeszcze w połowie lat dziewięódzie-&iątych cieszył się w Polsce sporym zainteresowaniem.
Wraz z nastaniem epoki Windows dostrzeżono zalety środowiska graficznego, które w istotny sposób ułatwiało pracę z programami i otwierało przed użytkownikami nowe możliwości. Właśnie wtedy firma Protel zdecydowała postawió na Windows i jako pierwsza na świecie opracowała profesjonalny pakiet oprogramowania dla elektroników pracujący w tym środowisku. Tak powstała pierwsza wersja oprogramowania Protel dla Windows. Jednolity i łatwy w obsłudze graficzny interfejs użytkownika oraz możliwośó jednoczesnego uruchamiania kilku aplikacji powodowały, że z programami pracowało się łatwiej i efektywniej. W czasach, kiedy konkurencja nadal oferowała nieprzyjazne dla użytkownika programy dla DOS-a, Protel rozwijał się konsekwentnie w kierunku dogodnego i łatwego w obsłudze, zintegrowanego systemu EDA dla Windows.
Kolejny znaczący przełom nastąpił w momencie przejścia z wersji 2.x do 3.x. Wtedy do Protela wprowadzono innowacyjne rozwiązanie nazwane EDA/Client - pierwowzór dzisiejszego środowiska Design Ex-plorer. EDA/Client była to plat-
forma, która połączyła wszystkie składniki pakietu w całośó, dając jednolity interfejs użytkownika i dogodne mechanizmy wymiany danych pomiędzy poszczególnymi edytorami - częściami składowymi systemu. Od tego momentu Protel zmienił się z kilku osobnych programów w pakiet zintegrowany. To innowacyjne rozwiązanie przyczyniło się do dalszej poprawy komfortu i efektywności pracy, a jednocześnie umocniło pozycję rynkową Protela.
Platforma EDA/Client dała podstawę do rozbudowy pakietu o nowe moduły. Do dwóch podstawowych składników Protela, tj. Advanced Schematic oraz Ad-vanced PCB, zostały dołączone kolejno: dobrej klasy auotorouter nazwany Advanced Route, symulator a nałogowo-cyfrowy Advan-ced SIM oraz niezbyt w Polsce popularny Advanced PLD. Taki zestaw zintegrowanych narzędzi już wtedy tworzył z pakietu Protel jednolitą i kompletną platformę do projektowania PCB.
Kolejne lata przyniosły nowe, coraz doskonalsze wersje. W 199S roku pojawił się Protel 9S, funkcjonalnie niewiele zmieniony, ale dostosowany do specyfiki nowych, 3 2-bitowych systemów Windows. Wiosną 1999 roku pojawiła się kolejna wersja - Protel 99, która wciągu kilku miesięcy została zastąpiona znacznie udoskonaloną -Protel 99 SE.
Możliwości tego narzędzia są zapewne wielu Czytelnikom znane, zarówno z wcześniejszych publikacji, jak i z racji dużej popularności tego programu. Protel 99SE rozwijany przez kilka lat, doczekał się wielu poprawek, z których najnowsza (i już ostatnia] wersja jest oznaczona Service Pack 6. Równocześnie trwały prace nad następcą tego programu.
Protel po debiucie na giełdzie zakończonym sukcesem, rozpoczął dynamiczną ekspansję rynkową, dążąc do rozszerzenia swojej oferty w taki sposób, aby zaspokoió wszystkie potrzeby projektanta-elektronika. W krótkim czasie Protel przejął kilka firm. Wszedł w posiadanie m.in. konkurencyjnego P-CAD-a, programu Circuit Maker, edytora CAMtastic! oraz pakietu Peak FPGA firmy Accolade. W lecie 2 001 nastąpiło przejęcie firmy Tasking - światowego lidera w dziedzinie narzędzi programis-
Rys. 2
Rys. 3
52
Elektronika Praktyczna 3/2003
PROGRAMY
Rys. 4
tycznych dla procesorów i mikro kontrolerów jednoukład owych, od popularnego S051 począwszy, a skończywszy na najnowszych procesorach sygnałowych i mikro kontrolerach 32-bitowych.
Niedługo po przejęciu Taskin-ga, nastąpiła zmiana nazwy firmy Protel International na obecną Altium. W ten sposób stara nazwa pozostała nadal, ale już tylko jako wyróżnik sztandarowego produktu - programu Protel. Zachowano także marki pozostałych narzędzi, skupionych w poszerzonej ofercie Altium.
Wieloletnie doświadczenia, przemyślana i konsekwentnie realizowana strategia oraz nowe technologie pozyskane w wyniku przejęcia kilku firm nie pozostały bez wpływu na kształt najnowszych produktów firmy Altium - programów Protel DXP i nVisage DXP.
Czym wyróżnia się Protel DXP?
Protel DXP jest systemem nowoczesnym pod każdym względem. Jest to program przystający do aktualnych trendów w elektronice, wymagań i potrzeb projektantów oraz możliwości współczesnych komputerów i najnowszych systemów operacyjnych. To obecnie jedyny system projektowy EDA, zaprojektowany specjalnie pod kątem wykorzystania zalet najnowszych wersji Windows 2 000 Professio-nal oraz Windows XP. Wiąże się to niestety z pewnymi niedogodnościami. Przede wszystkim, program nie zainstaluje się na żadnej "domowej" wersji okienek - Windows 95, 9S i Millenium, odpada również stabilny, ale dośó stary Windows NT 4. Może się nie podobaó taki stan rzeczy, ale jest to rozwiązanie słuszne. Nie od dziś wiadomo, Że Windows 9x to systemy przystosowane do zastosowań domowych, gdzie wydajnośó i stabilność ma znaczenie drugorzędne.
Znacznie lepszym środowiskiem, z założenia opracowanym do zastosowań profesjonalnych, jest Windows NT i jego następcy tj. Windows 2000 oraz najnowszy Windows XP. Dlatego właśnie możliwość instalowania nowego Protela DXP została ograniczona do tej platformy systemowej. To dośó odważne i ryzykowne posunięcie ze strony producenta, ponieważ zawęża krąg potencjalnych użytkowników lub zmusza ich do inwes-
Rys. 5
tycji w nowe systemy operacyjne, a często również w lepszy sprzęt. Jednak są to inwestycje, które warto ponieść, ponieważ gwarantują komfort, dużą wydajność i bezpieczeństwo pracy.
Inna poważna wada nowego Protela to spore wymagania sprzętowe, Wprawdzie minimum zostało określone na poziomie Windows 2000 Professional, Pentium 500 MHz, 12S MB RAM, 62 0 MB przestrzeni dyskowej i grafika o rozdzielczości
1024x736, ale te dane należy traktować jako prawdziwe minimum niezapewniające komfortu pracy. Optymalna konfiguracja systemu powinna zawierać Windows XP (Home lub Professional], procesor z zegarem o częstotliwości min. 1,2 GHz, 512 MB RAM, 620 MB przestrzeni dyskowej i grafikę o rozdzielczości 1230x1024 z 32 MB pamięci. Dla pełnego komfortu wskazany jest również drugi monitor - Protel DXP obsługuje bowiem konfiguracje wielomonitorowe.
Należy również zaznaczyć, że zapotrzebowanie programu na pamięć operacyjną rośnie w miarę wzrostu wielkości i skomplikowania projektu. Przy większych projektach, a szczególnie podczas korzystania z automatycznego prowadzenia ścieżek, nawet 1 GB pamięci RAM nie będzie przesadą. Jeśli zapotrzebowanie na RAM przerasta ilość dostępnej pamięci, system wykorzystuje pamięć wirtualną i program nadal działa, jednak znacznie wolniej.
Jeśli jednak weźmiemy pod uwagę, jak ogromne możliwości oferuje Protel DXP, to jego wymagania sprzętowe staną się zrozumiałe. Mamy do czynienia z aplikacją, która łączy w sobie zaawansowany hierarchiczny edytor schematów, symulator analogowo-cyfrowy klasy SPICE 3f5, pełny zestaw narzędzi do projektowania FPGA z symulacją i syntezą VHDL włącznie, rozbudowaną analizę sygnałową obwodów, potężny edytor PCB sterowany regułami, najnowszy au-
DESIGN EXPL0RER
TECHNOLOGY BY ALTIUM
54
Elektronika Praktyczna 3/2003
PROGRAMY
torouter topologiczny Situs zintegrowany z PCB, edytor CAM z całą gamą możliwości generowania plików produkcyjnych oraz wiele narzędzi do weryfikacji projektu i tworzenia różnorodnych zestawień i raportów. Do tego dochodzi potężny mechanizm synchronizacji, który dba o zachowanie spójności projektu i "wymianę informacji pomiędzy poszczególnymi modularni. Dzięki temu, użytkownik ma w zasięgu ręki cały zestaw narzędzi potrzebnych do wykonania projektu elektronicznego, a praca z programem jest naturalna i efektywna.
Wprowadzenie, czyli rzut oka na interfejs użytkownika
Uważni Czytelnicy zwrócili na pewno uwagę na nazwę nVisage, która pojawiła się już w artykule. nVisage DXP to nazwa programu, który realizuje pewną częśó funkcji dostępnych w pełnym Protelu DXP, określanych często terminem dssign sntry. Obejmuje on, oprócz edytorów schematów i VHDL, szereg narzędzi do analizy, symulacji i przygotowania projektu do dalszej implementacji, np. na płycie PCB za pomocą programu Protel. Wszystko to, co oferuje nVisage, jest dostępne również w Protelu, a różnice omówimy dalej.
Zarówno nVisage, jak i Protel są środowiskami zorientowanymi na projekt, wyposażonymi w nowe narzędzia do zarządzania i poruszania się po nim. Wspomagają również zaawansowane funkcje, takie jak np. projektowanie wariantowe, projektowanie urządzeń wielokanałowych, zarządzanie wersjami oraz pracę grupową.
Również interfejs użytkownika został przeprojektowany w stosunku do wersji znanych z Pro-tela 99SE. Zapewne dzięki temu ma większą funkcjonalnośó i lepsze wykorzystanie przestrzeni roboczej. Nowe elementy, takie jak panele, mogą byó dowolnie przemieszczane i ustawione w kilku trybach pracy. Automatyczne "przyciemnianie" pływających paneli oraz pasków narzędziowych podczas wykonywania operacji edycyjnych, obsługa dwóch monitorów, dostosowywanie interfejsu metodą "kliknij i przeciągnij", wszystko to powoduje, że proces projektowania jest bardziej wydajny i przyjemny. Na rys. 2 pokazano wygląd głównego okna programu z widoczną pustą przestrzenia roboczą oraz kilkoma elementami interfejsu użytkownika.
Rzucają się w oczy charakterystyczne, duże ikony rozmieszczone w głównym oknie programu. Za ich pomocą możemy uruchomió podstawowe zadania, jak np. tworzenie nowego projektu lub zarządzanie licencjami, otworzyó istniejący projekt bądź
dokument lub skorzystaó z kilku wariantów wbudowanej pomocy lub dokumentacji.
Z lewej strony widaó zakotwiczony panel z widokiem projektów, u góry niewielkie menu oraz pasek narzędziowy, a na dole charakterystyczne dla Pro-tela dwie linie statusu, które podczas pracy wyświetlają komunikaty programu. Proszę zwróció uwagę, że menu i paski narzędziowe dostosowują się do kontekstu oraz aktywnego edytora. Na pokazanej ilustracji widaó, że żaden dokument nie jest aktualnie otwarty, więc niewielkie menu i pasek narzędziowy obejmują tylko podstawowy zestaw funkcji.
Na rys. 3 pokazano okno z otwartym dokumentem PCB. Widaó, że liczba pozycji menu i pasków narzędziowych wzrosła, dostosowując się do potrzeb edytora PCB. Widaó również nowy panel PCB po lewej stronie okna, ułatwiający nawigację po dokumencie. Duża liczba różnych elementów interfejsu użytkownika może przeszkadzaó, dlatego każdy z nich można wy-łączyó, zyskując większą przestrzeń na edytowany dokument.
nVisage i Protel
Różnice pomiędzy nVisage i Protelem wynikają z odmiennego przeznaczenia tych narzędzi. nVisage należy traktowaó jako narzędzie dla projektanta, który opracowuje urządzenie, ale nie zajmuje się jego implementacją na płycie. Zawiera więc wszystkie funkcje potrzebne do rysowania schematów i ich analizy, a także pewne narzędzia związane z PCB - takie, których może potrzebowaó inżynier projektant. Te narzędzia to: transfer informacji ze schematu do PCB, rozmieszczanie elementów, definiowanie reguł projektowych, drukowanie oraz analiza sygnałowa obwodu. Protel zawiera wszystkie cechy programu nVisage plus narzędzia znane z Protela PCB oraz programy potrzebne do weryfikacji i generowania wszelkiego rodzaju plików wyjściowych dla wytwórni, czyli programy z zakresu określanego skrótem CAM.
Wielowymiarowe podejście do projektowania
nVisage DXP i Protel DXP są środowiskami projektowymi, które cechują się wielowymiarowym podejściem do procesu projektowania. Oznacza to, że projekt możemy wykonaó na wiele sposobów, korzystając z wielu narzędzi oferowanych przez program. Przykładowo, projekt układu logicznego w strukturze FPGA możemy wykonaó zarówno w formie schematu, jak i opisu w języku VHDL, a następnie zrealizowaó wybierając jedną z wielu platform implementacyjnych, np. firm Xilinx lub Altera.
Protel DXP daje nam do dyspozycji całą gamę narzędzi potrzebnych do wykonania projektu od początku do końca. Wyobraźmy sobie, że projektujemy bardzo złożony system, składający się zarówno z części analogowej, jak i cyfrowej, w którym wykorzystamy również układ programowalny FPGA. Już na wstępie mamy do dyspozycji możliwośó projektowania w formie schematów, jak i języka opisu sprzętu VHDL. Tworząc schematy możemy korzystaó z różnorodnych bibliotek elementów, również pochodzących z innych programów, jak np. OrCAD-a. Możemy również import o waó, w całości lub w części, projekty wykonane za pomocą innych programów, jak np, OrCAD-a, P-CAD-a. Mamy do dyspozycji całą gamę możliwości analizy, np. za pomocą symulatora analogo-wo-cyfrowego, analizatora sygnałowego, symulatora opisów VHDL, nie wspominając o bieżącej weryfikacji poprawności składni języka czy błędów "rysunkowych" w schematach. Przygotowane projekty można implementowaó zarówno na płytę PCB, jak i do układu programowalnego FPGA. Do tego wszystkiego jest dostępna cała gama możliwych do wygenerowania raportów, zestawień czy plików wyjściowych CAM.
Podstawą każdego projektu w programach nVisage i Protel jest plik projektu. Łączy on wszystkie elementy składowe, w tym schematy źródłowe i tekstowe pliki VHDL, listy połączeń [nstlisis), dowolne biblioteki lub modele, które projektant chce zachowaó w projekcie, płyty PCB i inne dokumenty. Plik projektu przechowuje także niektóre ustawienia, takie jak np. konfiguracja weryfikacji błędów, połączenia pomiędzy arkuszami schematów, plan oznaczeń elementów w projektach wielokanałowych.
Aktualnie programy nVisage i Protel obsługują trzy typy projektów: projekty typu FPGA (układy programowalne], projekty typu PCB (płyty drukowane] oraz tzw. Library Packags, czyli pliki nowych zintegrowanych bibliotek (rys. 3). Powiązane projekty typu PCB i FPGA, np. tworzące razem jedno urządzenie, mogą byó połączone w grupę (Project Group), dającą łatwy dostęp do wszystkich plików powiązanych z danym urządzeniem.
Kiedy do projektu jest dodawany jakiś dokument, łącze do niego zostaje zapisane w pliku projektu. Dokumenty mogą znaj-dowaó się gdziekolwiek na dysku lub w sieci - nie muszą znaj-dowaó się w tym samym folderze, co plik projektu.
Dodanie do aktywnego projektu nowego dokumentu wymaga kliknięcia prawym przyciskiem myszy na dowolnym dokumencie w projekcie, a następnie wy-
Rys. ó
brania polecenia New z pływającego menu Project. Zwracam uwagę, że w ten sposób tylko dodajemy dokument do projektu. Jeśli chcemy, aby arkusz schematu stał się częścią hierarchii, należy wstawió symbol arkusza na schemacie nadrzędnym i wy-pełnió jego pole Filename nazwą pliku arkusza podrzędnego.
W Protelu DXP występuje istotna różnica w znaczeniu projektu w stosunku do Protela 99, w którym mieliśmy do czynienia z bazą danych projektu zachowującej wszystkie dokumenty składowe. Dostęp do poszczególnych plików był możliwy tylko z poziomu programu Design Ex-plorer, który potrafił otworzyó lub wyeksportowaó dany dokument na zewnątrz bazy danych. To rozwiązanie, pozwalające wprawdzie utrzymaó porządek i spójnośó projektu, było dośó uciążliwe w praktyce i zawodne w przypadku uszkodzenia struktury bazy projektu, problemów ze sterownikami itp. Protel DXP odchodzi od takiej formy przechowywania projektu i daje pełną swobodę w wyborze lokalizacji i dostępu do poszczególnych dokumentów wchodzących w skład projektu. W pliku projektu DXP przechowywane są tylko łącza do dokumentów składowych, pozwalając użytkownikowi zarządzaó całością, ale nie ograniczając bezpośredniego dostępu do poszczególnych plików. Takie rozwiązanie ma jeszcze jedną zaletę. Te same dokumenty mogą wchodzió w skład różnych projektów. Jeśli mamy np. arkusz schematu zawierający gotowy blok zasilacza, możemy go "podpiąó" do kilku różnych projektów, bez konieczności powielania dokumentu w różnych miejscach na dysku.
Kilka trybów tworzenia schematów
Zarówno nVisage, jak i Protel DXP tworzą wszechstronny i w pełni zintegrowany system projektowania PCB i układów PLD. Projekt może byó przygotowany w formie schematu lub połączenia schematów i opisu w języku VHDL.
Podobnie jak w poprzednich wersjach Protela, edytor schematów obsługuje projekty hierarchiczne. Daje możliwośó tworzenia struktury z góry na dół oraz z dołu do góry, przy użyciu diagramów blokowych symbolizujących połączenia pomiędzy arku-
Elektronika Praktyczna 3/2003
PROGRAMY
szaini w hierarchii - każdy blok reprezentuje indywidualny arkusz schematu (rys. 5].
Poza tradycyjnym modelem projektu, nVisage i Protel obsługują również "prawdziwe" projekty wielokanałowe. W odróżnieniu od innych programów, które spłaszczają hierarchie, i powielają arkusze podczas konstruowania wielu kanałów, n Vi sagę i Protel cały czas zachowują hierarchie, projektu. Hierarchia pro-
jektu zostaje zachowana również w przypadku kilkustopniowego zagnieżdżenia, co pozwala na tworzenie kanałów wewnątrz innych kanałów.
Ponieważ system zachowuje hierarchie, kanałów, możemy edytowaó dowolny kanał w dowolnym czasie lub zmieniaó liczbę, kanałów, bez konieczności ręcznego aktualizowania zmian bezpośrednio w każdej instancji danego kanału. Wszystkie
potrzebne zmiany, dla każdej instancji danego kanału, są propagowane automatycznie podczas kompilacji projektu. Ta cecha programu znakomicie ułatwia prace., pozwalając projektantowi skupió się na istocie zagadnienia, a nie na ręcznym nanoszeniu tych samych zmian w kilku miejscach projektu. Nawet w tak banalnym przypadku, jak dwa kanały stereofonicznego wzmacniacza audio, wspomaganie projektowania wielokanałowego znacznie ułatwia prace.. Wprowadzając zmianę, na schemacie, robimy to tylko raz - drugi kanał będzie identyczny za sprawą mechanizmów wbudowanych w program.
Warto jeszcze wspomnieó, że DXP obsługuje doskonale import projektów i bibliotek z programu Orcad Capture V7 i V9. Potrafi również wyeksportowaó projekt w formacie Orcada V7.
Obok wielu cech przydatnych w przypadku projektowania PCB, nVisage i Protel DXP dają całkiem nowe możliwości w zakresie projektowania układów PLD. Wbudowany zestaw narzędzi pozwala wykonaó projekt układu logicznego od początku do końca.
W przypadku projektów układów PLD możemy dowolnie
mieszaó schematy z plikami źródłowymi VHDL - program daje pełną elastycznośó w tym zakresie. nVisage i Protel dostarczane są z kompletnym zestawem gotowych makr i bibliotek elementów schemat owych dla wielu rodzin układów FPGA firm Xilinx i Altera. Program wyposażono także w edytor VHDL posiadający wszystkie narzędzia ułatwiające edycję opisu, m.in. takie jak podświetlanie składni czy automatyczne wstawianie akapitów.
nVisage i Protel posiadają również bogaty asortyment narzędzi nawigacyjnych, obsługujących mieszane projekty składające się ze schematów i plików VHDL. Za pomocą panela Navi-gator możemy się łatwo prze-mieszczaó w ramach całej struktury złożonej z części VHDL i schematów, a za pomocą przeszukiwania skrośnego [aoss-pio-bing) pomiędzy arkuszami schematów i kodem w języku VHDL (rys. 6], Grzegorz Witek, Evatronix
Dodatkowe informacje
Dodatkowe informacje można uzyskać I I wfirrnieEvalronix, www.evatronix.corn.pl.
Elektronika Praktyczna 3/2003
57
SPRZĘT
Nowa generacja programatorów Uprog
UprogHS
UprogHS 84 to najnowszy programator uniwersalny z rodziny Uprog. Jest to urządzenie wi el ofunkcyjn e, łączące cechy uniwersalnego programatora, testera układów cyfrowych, analizatora stanów logicznych, a także emulatora pamięci.
Programator UprogHS 84 jest kolejnym opracowaniem firmy RK-System, która rozwija swoją ofertę programatorów uniwersalnych. Pod tym względem RK-System może konkurować z najlepszymi producentami zachodnimi.
UprogHS 84 jest s założenia przeznaczony dla klientów wymagających, stawiających na łatwość obsługi, funkcjonalność, a także dla tych, którzy potrzebują szybkiego przyrządu o dużej uniwersalności. Połączenie czterech funkcji w jednym urządzeniu zdecydowanie poszerza zakres jego zastosowań. Nie jest to już klasyczny programator, którego rola sprowadza się wyłącznie do programowania czy kasowania określonej gamy układów. UprogHS 84 to takśe doskonały analizator sta-
Rys.
nów logicznych, emulator pamięci oraz tester układów cyfrowych. Jest to niemal ,,kombajn" narzędziowy niezbędny w laboratorium techniki cyfrowej.
Budowa mechaniczna
Wygląd zewnętrzny UprogHS 84 odbiega nieco od wyglądu typowych programatorów dostępnych na rynku. Wynika to z jego nieco innej konstrukcji mechanicznej. UprogHS 84 składa się z dwóch części: modułu głównego oraz wymiennych nakładek (płyt czołowych), które mogą być łatwo wymieniane, w zależności od aktualnych potrzeb użytkownika. W wykonaniu standardowym UprogHS 84 wyposażono w nakładkę zawierającą dwie podstawki: ZIF48 oraz uniwersalne gniazdo PLCC84 pozwalające na obsługę układów w obudowach PLCC20, PLCC28, PLCC32, PLCC44, PLCC52, PLCC68 i PLCC84. Opcjonalnie dostępna jest nakładka z podstawką ZIF48 oraz uniwersalną podstawką SOIC/TSOP44 umożliwiającą programowanie układów scalonych w obudowach SOIC z liczbą końcówek 44 lub
mniej oraz większości układów w obudowach TSOP typu II (raster 1,27 mm) z liczbą końcówek 44 i mniej.
Dla układów w innych typach obudów producent dostarcza odpowiednie adaptery. Konstrukcja UprogHS 84 umożliwia również wykorzystanie go jako programatora przemysłowego {gang programirier). W takim przypadku nakładka może zawierać 8 podstawek dowolnego typu, co zapewnia jednoczesne programowanie do ośmiu sztuk układów. Zmiana nakładki z ZIP/ PLCC na ZIF/SOIC/TSOP lub inną oś-mio pod stawkową jest bardzo łatwa i polega na odkręceniu 4 śrub mocujących, znajdujących się w spodniej części bazy i rozłączeniu obu modu-

1 ;Ś Ś -' **.ru-i
KM--*"
557
na-3
Ml Sas ŚLPBJ. 1 fjum
Ś ą1
ubtv4H Er***1
W- = - d
1 1 T iTTU | mą ]
Rys. 2
58
Elektronika Praktyczna 3/2003
SPRZĘT
Rys. 3
łów.
W wykonaniu standardowym (baza + nakładka ZIF48/PLCC84) UprogHS 84 ma wymiary 20x18,5x4,5 cm i waży nieco ponad 3 kg. Solidna metalowa obudowa zapewnia ochronę przed ewentualnymi wyładowaniami elektrostatycznymi, jednocześnie pozytywnie wpływając na trwałość programatora. Na wymiennej nakładce, będącej jednocześnie płytą czołową, oprócz dwóch niezależnych podstawek znajdują się cztery diody LED, z których dwie sygnalizują włączenie zasilania oraz status urządzenia, a dwie pozostałe wskazują aktywną podstawkę. Nakładki niezależnie od typu są wyposażone w przycisk Auto Run wykorzystywany do sterowania pracą programatora w trybie automatycznym.
Cechy użytkowe
Podstawowym czynnikiem decydującym o dużej elastyczności programatora UprogHS 84 jest budowa jego części układowej. Zastosowanie specjalizowanego procesora sterującego, zintegrowanego w FPGA (podobnie jak w modelu UprogHS 48), pozwoliło na uzyskanie dużej szybkości działania tego programatora. Osiemdziesiąt cztery uniwersalne sterowniki, tzw. pin-drive-ry, pozwalają na całkowicie dowolne, programowe sterowanie funkcjami, jakie mają być realizowane przez poszczególne wyprowadzenia podstawek. Co za tym idzie, każde wyprowadzenie układu, zarówno w 48-stykowej podstawce ZIP, jak i 84-stykowej PLCC, może być podłączane do napięcia zasilającego, masy, napięcia programującego lub zegara, w zależności od aktualnie obsługiwanego układu. Urządzenie pozwala na pracę z układami o napięciu zasilania 1,8 V...8 V, a biblioteka obejmuje prawie 7000 różnego rodzaju układów, w tym: EPROM, EEP-ROM, Flash, GAL, PAL, PALCE, PLD,
CPLD oraz szeroką gamę mikrokontrolerów różnych producentów.
Prezentowany programator może także programować układy po zamontowaniu w układzie docelowym, za pomocą interfejsów SPI i JTAG. Sygnały niezbędne do zaprogramowania układu są wyprowadzane wówczas bezpośrednio z podstawki programatora, zgodnie ze wskazówkami pojawiającymi się w oknie programu sterującego jego pracą. Programator wyposażono we wszelkie udogodnienia związane z programowaniem pojedynczych i krótkich serii układów. Oprogramowanie sterujące zapewnia również automatyczną detekcję wymiany programowanego układu.
Jak wspomnieliśmy, UprogHS 84 oprócz typowych operacji związanych z programowaniem układów może być również wykorzystywany do innych celów związanych z uruchamianiem czy testowaniem układów elektronicznych. W wykonaniu standardowym posiada bowiem funkcję emulatora pamięci 8-bitowych o pojemności do 128 kE (opcjonalnie 512 kP) i czasie dostępu 10 ns. Ponadto można rozszerzyć możliwości UprogHS 84 o funkcję emulatora pamięci 16-bitowych o pojemności do 64 kP (opcjonalnie 256 kP) i czasie dostępu 70 ns. Sygnały emulujące wyprowadzane są bezpośrednio z podstawki ZIF programatora i przekazywane do układu docelowego za pomocą kabla zakończonego podstawką emulacyjną, który jest dostarczany jako standardowy element zestawu. Korzystanie z funkcji związanych z emulacją pamięci nie wymaga dołączania żadnych dodatkowych kart czy przejściówek.
Kolejną funkcją, o którą poszerzyć można możliwości UprogHS 84, jest oś mi o kanałowy analizator stanów logicznych Ulogic o częstotliwości próbkowania do 100 MHz i buforze o pojemności 128 kP (opcjonalnie 512 kE). Również w tym przypadku programator nie wymaga dołączania żadnych czynnych elementów pośredniczących. Sygnały zbierane z testowanego urządzenia przekazywane są do programatora poprzez podstawkę ZIF za pomocą przewodów zakończonych klipsami, które są dostarczane przez producenta w przypadku zakupienia opcji analizatora. Dokupienie którejś z opcji dodatkowych po zakupie programatora nie wiąże się z koniecznością przekazania
go z powrotem do producenta. Opcje przewidziane jako dodatkowe są aktywowane zdalnie. Nie dotyczy to opcji rozszerzenia RAM-u Uproga - w tym przypadku jest niezbędna wizyta w serwisie producenta. Wykorzystanie specjalizowanego procesora sterującego opartego na FPGA, którego jądro oraz peryferie poddawane są dynamicznej modyfikacji w trakcie pracy urządzenia i dopasowywane automatycznie w zależności od aktualnie wykonywanej funkcji, pozwala zaimplementować dowolne interfejsy (np. RS232), które mogą być dołączane do wybranych końcówek podstawki.
Oprogramowanie
Obsługę programatora zapewnia program dla Windows 95/95/2000/XP/NT, z przejrzyście zaprojektowanym interfejsem graficznym. Jest on wyposażony we wszystkie funkcje spotykane w profesjonalnych programatorach uniwersalnych oraz kilka przydatnych funkcji dodatkowych podnoszących funkcjonalność urządzenia. Dostęp do funkcji programatora realizowany jest wyłącznie za pomocą ikon i przycisków znajdujących się w obszarze głównego okna programu oraz komend w rozwijanym menu kontekstowym dostępnych ,,pod" prawym przyciskiem myszki.
Status poleceń, komunikaty o błędach i inne informacje prezentowane są na pasku operaiion Status (rys. 1). Ułatwieniem dla użytkowników, którzy pracują z kilkoma różnymi układami, będzie lista podręczna zawierająca do dziesięciu układów, które są zapamiętywane i wyświetlane w kolumnie De-vices znajdującej się po prawej stronie głównego okna programu. Każdy znajdujący się tam układ ma przypisany własny bufor.
Do odszukania układu w zasobach bibliotecznych służy okno Seleci Devi-ce (rys. 2). Wyświetlane układy można filtrować poprzez wybranie typu i producenta, można również przeszu-
Rys. 4
60
Elektronika Praktyczna 3/2003
SPRZĘT
TiiirM[iR^
nJinnJUUUUUU LJ~L_n_JLJ U U
Rys. 5
kiwać bibliotekę na podstawie fragmentu naswy układu. Do bufora rnoś-na ładować dane (z offsetem lub bes niego) w wielu formatach: hex, bin, jed, jam, svf, rom i txt. Plik załadowany do pamięci prezentowany jest w obssarse głównego okna programu w postaci HEX i ASCII.
Jedną z dodatkowych funkcji, jakie ma oprogramowanie sterujące programatorem UprogHS 84, jest tsw. Operaiion Recorder. Stanowi on rodzaj archiwise-ra umożliwiającego gromadzenie informacji dotyczących poszczególnych operacji (załadowanie pliku, dodanie /u sunięcie układu, operacje na układzie), jakie są wykonywane przez użytkownika. Zawartość okna rejestratora mośna zapamiętać na dysku.
Programator umożliwia wykorzystanie wszelkich dodatkowych zasobów programowanych układów, takich jak np. fuse biis czy lock bits, jak również niezależny dostęp do pamięci programu i pamięci danych.
Zastosowane rozwiązania sprzętowe pozwalają testować poprawność styku pomiędzy wyprowadzeniami programowanego układu a podstawką programatora. Weryfikacja jest automatycznie przeprowadzana przed każdym wykonaniem operacji na układzie. Prak styku o odpowiedniej jakości jest sygnalizowany odpowiednim komunikatem, a wyprowadzenia bez kontaktu są wskazywane w oknie Check pin conneciion (rys* 3). UprogHS 84 -tak jak i jego poprzednicy - ma możliwość automatycznej detekcji typu układu umieszczonego w podstawce (dla układów, które posiadają wewnętrzny identyfikator, czyli m.in. pamięci EP-ROM, Flash) oraz możliwość automatycznego wykonywania określonych przez użytkownika operacji związanych z programowaniem (tryb Auiorun).
W trybie testera cyfrowego możliwe jest podanie na wyprowadzenia testowanego układu dowolnej kombinacji sygnałów wejściowych, która jest definiowana w oknie testera (rys. 4). Po podaniu odpowiedniej sekwencji i klik-nięciu w rysunek podstawki, wybrane są dołączane do układu i jednocześnie jest odczytywany i wyświetlany stan pozostałych końcówek.
Szybki emulator pamięci (czas dostępu ok. 10 ns), również dostępny w standardzie, pozwala emulować 8-bi-towe pamięci o pojemności do 128 kP lub (opcjonalnie) 512 kP. Oprogramo-
Krotka historia sukcesu
Firma RK-System powstała w 1996 roku, W początkowym okresie działalności firma skupiała się na dystrybucji mikroprocesorowych
narzędzi uruchomieniowych przeznaczonych dla elektroników i programistów, W kolejnych latach nastąpił szybki rozwój firmy,
który zaowocował opracowaniem własnych rozwiązań narzędziowych dla procesorów 8051 (płyty prototypowe), a także przenośnych systemów do wyważania elementów wirujących oraz
pomiaru drgań, W 2001 roku
w ofercie firmy pojawił się
pierwszy własny programator
uniwersalny - Uprog 48, który
jest protoplastą kolejnych
opracowań: Uprog 40EN, Uprog
48EN, Uprog HS 48 (pojawiły
się w sprzedaży w 2002 roku)
oraz Uprog HS 84
(jest dostępny od początku
roku 2003), Na zdjęciu
prezentujemy zespół projektantów firmy RK-System,
wanie odpowiedzialne za działanie funkcji emulatora daje możliwość zerowania systemu mikroprocesorowego po załadowaniu danych do pamięci wewnętrznej programatora. Za niewielką dopłatą UprogHS 84 może realizować funkcje emulatora pamięci 16-bi-towych o pojemności 64 kP (lub 256 kP) i czasie dostępu 70 ns, a także 8-kanałowego analizatora stanów logicznych o maksymalnej częstotliwości próbkowania 100 MHz i pamięci bufora 128 kP lub 512 kP.
Oprogramowanie sterujące pracą analizatora Ulogic (rys. 5) ma wbudowane wszystkie funkcje, w jakie powinno być wyposażony tego typu urządzenie, w związku z czym nie ustępuje ono możliwościami klasycznym analizatorom stanów logicznych. Dostępne są wszelkie udogodnienia związane z różnymi sposobami taktowania (wewnętrzny, zewnętrzny), wyzwalania (zboczem, poziomem sygnału, kombinacją typów), obserwacji zmian sygnałów tuż przed momentem wyzwolenia (pre-irig-ger) czy rejestracją danych na dysku komputera itd.
Podsumowanie
Zaproponowana przez producenta modułowa konstrukcja sprzętowej części programatora UprogHS 84 zapewnia duże możliwości jego rozbudowy, w zależności od potrzeb użytkownika. Jest to rozwiązanie szczególnie interesujące dla tych, którzy programują dużo układów lub korzystają z układów w obudowach różnych typów. Opcjonalne 8-podstawkowe moduły sprawiają, że UprogHS 84 może być wykorzystywany jako programator serni-przemysłowy, a dostępność modułów typu dual z podstawkami ZIF48 i PLCC84 lub S0IC/TS0P44 pozwala dobrać ich zestaw w zależności od tego, jakie obudowy są najczęściej wykorzystywane.
Pardzo interesującą cechą programatora UprogHS 84 jest łatwość uzupełniania listy obsługiwanych nowych układów, co wymaga wyłącznie aktualizacji oprogramowania, bez konieczności wprowadzania jakichkolwiek zmian w części sprzętowej.
Nasuwa się podsumowanie: dobre, bo polskie! RK
Dodatkowe infoimacje
Ceny netto UprogHS8'
- z podstawką 48DIP 84UNV PLCC..........7000 zt
- z podstawką 48DIP 44UNV SOIC/TSOP.....6500 zt
-z podstawką GANG do pamięci..............6500 zt
Dodatkowe informacje: RK-System, Tel. (22) 724-30-39, (22) 755-69-83, wmv.rk-system.corn.pl.
Elektronika Praktyczna 3/2003
61
PODZESPOŁY ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^M
Elektronicy podążając za naturalnymi odruchami chcą sobie uprościć (i potaniej
życie, w związku z czym zastosowanie w projektach mikroprocesorowych
znajdują przede wszystkim układy wyposażone w pamięć Flash,
oczywiście programowaną w systemie...
MOTOROLA
digitaldna
FAMILY OF 8-BIT HC08 MICROCONTROLLERS
Ten oczywisty fakt zauważyła Motorola, w wyniku czego pod koniec zeszłego roku do sprzedaży trafiły nowe mikrokontrolery z rodziny HC08, które potwierdzają pod-tytułową tezę: tylko Flash!
Nowa rodzina mikro kont role rów, której producent nadał nazwę handlową Nitron, wykorzystuje sprawdzony i dość popularny rdzeń HC08, który został "obudowany" bardzo atrakcyjnym zestawem pery-feriów (rys. l), wśród których warto zwrócić szczególną uwagę na dwa elastyczne, 16-bitowe programowane timery (z możliwością skonfigurowania ich m.in. jako generatory PWM), 4-kanałowy przetwornik A/C o rozdzielczości 8 bitów, a także wbudowany generator taktujący. Generator może pracować bez żadnych elementów zewnętrznych, a kalibrację jego częstotliwości może przeprowadzić samodzielnie użytkownik za pomocą specjalnego rejestru 8-bitowego -pozwala to osiągnąć dokładność
częstotliwości generowanego przebiegu na poziomie ok. ą5%. Wbudowanie kompletnego generatora taktującego w mikrokontrolery Nitron było konieczne, ponieważ producent oferuje tylko dwa warianty obudów: 8- i 16-wyprowadzeniowe (tab. l). Poświęcenie dwóch z nich na dołączenie zewnętrznego kwarcu mogłoby uniemożliwić zastosowanie mikrokontrolera w wielu aplikacjach.
Wszystkie mikrokontrolery z rodziny Nitron wyposażono w pamięć Flash o pojemności 1,5 lub 4 kB, która może być programowana w po zainstalowaniu programowanego układu systemie. Pamięć Flash może być programowana w pełnym zakresie dopuszczanych przez producenta napięć zasilania (2,7...5,5 V), dzięki czemu jej reprogramowanie jest możliwe także w sprzęcie zasilanym bateryjnie. Pamięć można
62
Elektronika Praktyczna 3/2003
PODZESPOŁY
1 L
Interfo/alSP
Rys. 2
programować w jednym z dwóch trybów: standardowym (programowanie sektora trwa 4 ms) lub szybkim (programowanie sektora trwa zaledwie 1 ms). Korzystanie z trybu szybkiego obniża żywotność pamięci Flash do 1000 cykli kasowanie/zapis, natomiast korzystanie z trybu standardowego pozwala reprogramo-wać ją co najmniej 10000 razy. Do programowania pamięci Flash w systemie konieczny jest prosty adapter (jego schemat wraz ze sposobem dołączenia do mikrokontroler w obudowie 8-wyprowadzeniowej pokazano na rys. 2), który pośredniczy pomiędzy mikrokontrolerem i portem RS232 komputera, z którego jest ładowane oprogramowanie.
Rdzeń mikro kontrole rów prezentowanych w artykule może być taktowany sygnałem zegarowym o częstotliwości do 8 MHz (w przypadku zasilania napięciem 5 V) lub 4 MHz (dla napięć o niższej wartości).
Oczekiwana zmiana taktyki
W świetle dotychczasowych
działań Motoroli, która
z ogromnym uporem skupiała
swoje działania na mikrokont-
rolerach z pamięcią EPROM-
OTP, zaskakująco brzmią
słowa Paula Grimme (wiceprezesa i dyrektora
naczelnego Oddziału
Mikrokontrolerów 8/16-
bitowych Motoroli), który
podczas premiery rodziny
Nitron powiedział, że: "(...)
nie ma sukcesu na rynku bez
mikrokontrolerów Flash".
Chciałoby się powiedzieć
"witamy w klubie"!
W pierwszym przypadku cykl maszynowy trwa zaledwie 125 ns, dzięki czemu wypadkowa wydajność rdzenia jest znacznie wyższa niż sugeruje niepozorna częstotliwość taktowania. Osiągnięcie maksymalnych częstotliwości taktowania wymaga dołączenia do generatora elementów zewnętrznych (rezonatora kwarcowego lub rezystora), w przypadku taktowania rdzenia wewnętrznym sygnałem zegarowym jego maksymalna częstotliwość wynosi 3,2 MHz.
Wszystkie mikrokontrolery Nitron spełniają wymagania temperaturowe standardu przemysłowego co oznacza, że mogą pracować w zakresie temperatur otoczenia -40...+85C, dostępne są także wersje przystosowane do pracy w otoczeniu o temperaturze dochodzącej do +105 lub +125C.
Wyprodukować - to jedno, sprzedać - drugie
Niezaprzeczalne zalety mikrokontrolerów Nitron przyćmiewa nieco fakt, że pojawiły się one na rynku dość późno. Praktycznie wszyscy in-
Za miesiąc konkurs!
Czytelników chcących zdobyć
zestawy ewaluacyjne
przygotowane przez firmy:
Future i Spoerle zapraszamy
za miesiąc. W kwietniowej EP
ogłosimy konkurs, w którym
nagrodami będzie 6 zestawów
startowych (po trzy od
każdego dystrybutora).
ni producenci mikrokontrolerów mają w swojej ofercie szeroką gamę układów z pamięcią Flash, co niewątpliwie spowodowało odchodzenie konstruktorów od starszych wersji mikrokontrolerów HC08, które wyposażano w pamięć EPROM-OTP.
Dystrybutorzy firmy Motorola podjęli trudne zadanie wypromowania Nitronów, jak pokazują dwa znane nam przykłady - w sposób bardzo niestandardowy.
Firma Future przygotowała zestaw ewaluacyjny (fot. 3) składający się z niewielkiej płytki z mikrokontrolerem QT4, kabla RS232, 9-woltowej baterii służącej do zasilania mikrokontrolera, płyty CD-ROM oraz... metalowej puszki, dokładnie takiej, w jakiej są sprzedawane farby i lakiery.
Nieco inaczej promuje Nitrony firma Spoerle - przygotowała ona bowiem zestaw "szkocki", którego podstawowe elementy są identyczne z uprzednio opisanymi. Jego szczególnym atutem, nadającym atrybut wysublimowanej "szkockości" jest miniaturowa buteleczka whisky (fot. 4).
Darmowe narzędzia
Jednocześnie z wprowadzeniem do sprzedaży Nitronów Motorola zadbała o udostępnienie doskonałego narzędzia wspomagającego tworzenie aplikacji, które nosi nazwę
Tab. 1. Zestawienie podstawowych parametrów mikrokontrolerów HC08 Nitron
Typ Pojemność pamięci RAM [B] Pojemność pamięci Flash [kB] Timer 1/0 A/C Obudowy
68HC908OT1 128 1,5 2-CH, 16-blt l/C, 0/C lub PWM do 6 - SOI C/D IP8
68HC908OT2 128 1,5 2-CH, 16-blt l/C, 0/C lub PWM do 6 4 kanały, 8-bit S0IC/DIP8
68HC908OT4 128 4 2-CH, 16-blt l/C, 0/C lub PWM do 6 4 kanały, 8-bit SOI C/D IP8
68HC908OY1 128 1,5 2-CH, 16-blt l/C, 0/C lub PWM do 14 Ś SOIC/DIP/ TSS0P16
68HC908OY2 128 1,5 2-CH, 16-blt l/C, 0/C lub PWM do 14 4 kanały, 8-bit SOIC/DIP/ TSS0P16
68HC908OY4 128 4 2-CH, 16-blt l/C, 0/C lub PWM do 14 4 kanały, 8-bit SOIC/DIP/ TSS0P16
Elektronika Praktyczna 3/2003
63
PODZESPOŁY
Fot. 3
Code Warrior. Jest to kompletne, bezpłatne środowisko programisty zintegrowane z kompilatorem asem-blera i C, praktycznie bez żadnych ograniczeń (rozmiar kodu wynikowego nie może być większy niż 4 kB) w przypadku przygotowywania projektów na mikrokontrolery Nitron (Code Warriora opisaliśmy wEP2/2003). Alternatywnym (także
bezpłatnym) narzędziem jest HC08 Development Tool Suitę 4K Lite firmy Cosmic, który jest kompletnym środowiskiem programisty, w którym zintegrowano wszelkie niezbędne narzędzia do pisania, kompilacji i debugowania programu. Obydwa programy można ściągnąć z internetowej firmy Motorola, publikujemy je także na CD-EP3/2003B.
Podsumowanie
Mikrokontrolery Nitron wydają się być atrakcyjną alternatywą zarówno dla użytkowników dotychczas dostępnych wersji mikrokontrolerów HC08, jak i dla konstruktorów korzystających z mikrokontrolerów oferowanych przez innych producentów. Ich atutem jest bogate wyposażenie, duża wydajność jednostki centralnej, łatwość programowania w systemie, a także niska cena. Niebagatelną zaletą Nitronów jest także kompatybilność z wcześniejszymi wersjami mikrokontrolerów HC08, co pozwala korzystać z do-
Fot. 4
stępnych bibliotek programowych bez konieczności wprowadzania w nich zmian. Andrzej Gawry luk, AVT
Dodatkowe informacje
Dodatkowe informacje są dostępne w Internecie
pod adresem: www.rnotorola.com/serniconductors.
Oprogramowanie narzędziowe lirm: MeTrowerks oraz Cosmic publikujemy na CD-EP3/2003B.
Zestawy ewaluacyjne udostępniły lirrny;
- Future Electronics Polska Sp. z o. o, Tel.: (22) 618-92-02, lax (22) 618-80-50, biuro@lutureelectronics. com,
- Spoerle Electronic Polska Sp. z o. o., Tel. (22)856-90-90, iax: (22) 851-61-36, wmv.spoerle.com.
64
Elektronika Praktyczna 3/2003
REKLAMA
Narzędzia w rękach elektroników
część 2
O ile rączki lutownicze do montażu i demontażu elementów, opisane w poprzednim numerze EP, należą do grona narzędzi termicznych, to pozostałe narzędzia ręczne używane przez elektroników mają przeznaczenie czysto mechaniczne: cięcie, gięcie, kształtowanie wyprowadzeń, przytrzymywanie i pozycjonowanie elementów, zdejmowanie izolacji, przykręcanie i odkręcanie śrub (wkrętów), czyszczenie itp. W konsekwencji, oprócz stawianych tym narzędziom wymagań związanych z ich prawidłowym działaniem, a także dogodnością i precyzją operowania, pojawiają się nowe problemy związane z przenoszeniem siły.
W przypadku obcinaczek ważne jest, by cięcie było dokonane jednym, pewnym ruchem i nastąpiło dokładnie w przewidzianym miejscu, a końcówka ciętego przewodu lub wyprowadzenia elementu miała żądaną geometrię. Dlatego ukształtowanie i wymiary części roboczych tych narzędzi są tak różnorodne (fot. 1...8), a ich budowa umożliwia swobodne posługiwanie się nimi jedną dłonią (chodzi o łatwość zmiany chwytu bez ryzyka upuszczenia obcinaczek i zachowanie pełnej kontroli nad cięciem). Ostrza muszą być wykonane z materiału
0 dużej odporności na obciążenia
1 odpowiednio wysokiej trwałości.
Nawet tak proste narzędzia i dlatego często niedoceniane, jak pesety i ohcinaczki, są obecnie produkowane w sposób prawie tak skomplikowany, jak na przykład układy scaione. Wynika to z szybko rosnących wymagań stawianych tym narzędziom. Coraz doskonalsza technologia pozwala na wytwarzanie doskonalszych wyrobów.
Niebagatelne znaczenie w osiągnięciu żądanych w tym zakresie właściwości ma technologia obróbki materiałów, z których jest wykonane ostrze. Chromowa stal łożyskowa jest kuta dla uzyskania prawidłowej struktury wewnętrznej, a następnie obrabiana na sterowanych numerycznie szlifierkach i in-dukcyjnie hartowana. Taka właśnie, jak widać dość skomplikowana, technologia pozwala uzyskać odpowiednie warunki produkcji narzędzi, gwarantujące uzyskanie wymaganych parametrów mechanicznych i precyzyjnej geometrii ostrzy.
Budowa obcinaczek musi uwzględniać grubości (średnice) i rodzaj (twardość) ciętych materiałów, a także warunki przestrzenne pracy (np. dostęp do elementów wycinanych z płytek o dużym zagęszczeniu). Możliwe jest wyposażenie obcinaczek w element przytrzymujący odcięty fragment materiału, co skutecznie zapobiega ewentualnym zwarciom. Dla zapewnienia precyzji i komfortu pracy, niektóre obcinacz-ki są wyposażone w sprężynę powrotną o odpowiedniej charakterystyce dobranej tak, by w momencie cięcia znacząco malał opór (fot. 2).
Ergonomiczne rękojeści mają dużą powierzchnię kontaktu z dłonią, aby równomiernie rozkładać siły, ich kształty są zaokrąglone, a użyte materiały zapewniają progresywną twardość (miękkie pokrycie, mocny rdzeń) i dobrą przyczepność. Często wymaga się spełnienia warunków związanych z ochroną antystatyczną, czasem potrzebne są rękojeści izolowane, do pracy pod napięciem.
Takie same warunki, odnośnie pewności działania oraz bezpieczeństwa i komfortu użytkowania, muszą spełniać szczypce. Jest to bardzo liczna grupa narzędzi, wśród których szczególnie interesujące są szczypce specjalne o różnym przeznaczeniu, np. do kształtowania wyprowadzeń elementów przewlekanych (niektóre umożliwiają jednoczesne obcięcie zbędnego fragmentu wyprowadzenia w ściśle określonym miejscu). W ofertach wiodących producentów, takich jak Pier-giacomi czy Lindstrom, można znaleźć dziesiątki wzorów narzędzi z powyższych grup.
Do kolejnej grupy popularnych narzędzi ręcznych używanych przez elektroników należą wkrętaki pracujące w warunkach, gdzie mogą występować duże siły dociskania narzędzia do łba wkręta, aby nie "wyskakiwało" z wycięcia oraz siły pozwalające uzyskać odpowiedni moment na końcówce wkrętaka.
Wkrętak (firmy Lindstrom), w którego budowie uwzględniono wszelkie wymogi funkcjonalne i ergonomiczne, przedstawiono na fot. 3. Należy zwrócić uwagę na proporcje wymiarów rękojeści oraz fakturę materiału pokrywającego jej powierzchnię. Szybkie i precyzyjne operowanie wkrętakiem, ale też możliwość użycia znacznych sił
Fot. 2
Elektronika Praktyczna 3/2003
65
Fot. 3
(sześciokątny pierścień u nasady rękojeści pozwala na zwiększenie momentu przez zastosowanie klucza) to praktyczne efekty wypracowanych rozwiązań. Barwne elementy informują o przeznaczeniu wkrętaka, tj. wskazują na rodzaj końcówki. Nie zapomniano o otworze do wieszania oraz zachowaniu płaskiego fragmentu na rękojeści, zapobiegającego toczeniu się po pochyłych powierzchniach.
Bardzo często, zarówno podczas montażu, jak i demontażu elementów i układów elektronicznych, trzeba sięgnąć po pęsetę. Ponieważ jest to narzędzie używane do czynności precyzyjnych, przeprowadzanych niejednokrotnie w warunkach trudnego dostępu do obszaru roboczego, jest wysoce pożądane, by umożliwiało pewny chwyt i swobodę manipulowania bez ryzyka uszkodzenia elementu (obawiając się upuszczenia części, co może oznaczać jej długotrwałe poszukiwanie np. we wnętrzu naprawianego urządzenia, instynktownie zwiększamy siłę nacisku na element). Dlatego w ofertach renomowanych producentów pesety są obecne w liczbie co najmniej kilkudziesięciu modeli, różniących się wymiarami i kształtami końcówek, rodzajem powierzchni roboczej, materiałami użytymi do budowy i masywnością wykonania (fot. 4). Część peset posiada mechanizm samozaciskowy. Większość ma właś-
Fot. 4
ciwości antymagnetyczne i jest kwasoodporna.
Należy wspomnieć także o pesetach pneumatycznych (np. firmy PACE), które mogą współpracować ze stacjami lutowniczymi wyposażonymi w kompresor. Szczególnie ciekawe i praktyczne jest zintegrowanie takiej pesety z głowicą do demontażu - po roztopieniu spoiwa można uruchomić kompresor i podnieść wylutowywany układ bez używania dodatkowych narzędzi.
Przygotowanie przewodów do montażu także wymaga zastosowania specjalnych narzędzi umożliwiających sprawne zdejmowanie izolacji z zachowaniem powtarzalności wymiarów wzdłużnych oraz -co znacznie trudniejsze - poprzecznych. Przyrządy do zdejmowania izolacji z pojedynczych przewodów, przewodów sieciowych, koncentrycznych, kynarów, przewodów izolowanych emalią, a także noże do zdejmowania izolacji z końcówek lub dowolnych fragmentów przewodów telekomunikacyjnych i energetycznych - stosowne narzędzie do każdego zadania znajdziemy np. w katalogu Piergiacomi.
Wiele czynności technologicznych związanych z produkcją bądź naprawami urządzeń elektronicznych wymaga czyszczenia niektórych komponentów (np. powierzchni regenerowanych układów BGA) i płyt obwodów drukowanych z pozostałości różnych substancji, jak topniki, kleje czy tłuszcze. Stosowane w takich przypadkach środki chemiczne powinny być aplikowane jedynie w miejscach zanieczyszczonych i tylko w niezbędnych ilościach. Interesujący sposób na realizację tych postulatów znajdziemy w ofercie firmy Micro Care, producenta preparatów chemicznych do zastosowań w elektronice. Jest to dozownik, który umożliwia nanoszę-
Fot. 5
nie żądanych ilości środka dokładnie w zadane miejsce i jednoczesne czyszczenie mechaniczne za pomocą jednej z wymiennych końcówek -szczoteczek (fot. 5). Podczas czyszczenia uzupełnia się ilość preparatu stosownie do potrzeb, bez konieczności każdorazowego sięgania po pojemnik i odstawiania go. Lepszy komfort pracy, oszczędność czasu i preparatów (do 50%) to ewidentne korzyści związane ze stosowaniem dozownika.
Przedstawione powyżej i w poprzednim numerze EP narzędzia powstały w wyniku wieloletnich badań i doświadczeń. Spełniają surowe kryteria wynikające z profesjonalnych zastosowań, zapewniając pewne i sprawne przeprowadzanie czynności, przy zachowaniu bezpieczeństwa i komfortu użytkowania. Ich nieodłączną cechą jest trwałość. Trzeba jednak pamiętać, że do pełnego wykorzystania ich walorów niezbędne jest używanie zgodnie z przeznaczeniem.
Pomoc w optymalnym wykorzystaniu bogatej oferty rynkowej i właściwy dobór narzędzi zapewni autoryzowany przedstawiciel producentów wiodących w tej branży. Marek Kalasiński
Dodatkowe informacje
Artykuł powstat na bazie maTeriatów udostępnionych przez firmę Renex, tel./fax (54) 231-10-05, 411-25-55, www.renex.corn.pl.
Elektronika Praktyczna 3/2003
67
PROGRAMY
Aułoroułer
Zanim rozpoczniemy prezentację interfejsu użytkownika Specctry, kilka słów na temat uruchamiania tego programu. Specctra może stanowić rozszerzenie każdego systemu do projektowania PCB, zapewniając funkcje związane z interaktywnym i automatycznym rozmieszczaniem elementów oraz wytyczaniem ścieżek. Ponieważ zazwyczaj każdy system PCB zapisuje informacje w swoim własnym, unikalnym formacie, przed przejściem do Specctry konieczne jest dokonanie odpowiedniej konwersji (rys. 1). Podobnie rzecz się ma podczas przekazywania danych w kierunku odwrotnym, czyli z autoroutera do edytora PCB. Ze względu na silną pozycję Specctry na rynku, właściwie wszyscy producenci systemów do projektowania PCB starają się wyposażać swoje produkty w odpowiednie konwertery służące do wymiany danych z zewnętrznym auto-routerem. Niektóre z nich posiadają nawet wbudowane funkcje służące do wymiany danych do i ze Specctry, a nawet do automatycznego wywoływania tego programu z poziomu własnego GUI. Pliki czytane i zapisywane przez Specctrę są plikami "czysto" tekstowymi, więc jest możliwe ich przeglądanie za pomocą zwykłego windowsowego Notatnika.
Najważniejsze z nich to:
Design file [.dsń] - tworzony przez translator podczas konwersji pliku z edytora PCB do Specctry. Zawiera
wszystkie niezbędne informacje służące do prawidłowej interpretacji projektu przez autorouter, takie jak: kształt i wymiary płytki, definicje warstw, definicje padów, dane elementów, lista połączeń oraz reguły projektowe narzucone przez użytkownika w edytorze PCB.
Session file {.ses) - tworzony przez autorouter. Zawiera wskaźnik do oryginalnego pliku projektu [.dsń], historię poprzednich sesji, w tym informacje dotyczące rozmieszczenia elementów na płytce i wytyczonych ścieżkach.
Routes file [.rte] - tworzony przez autorouter zawiera informacje dotyczące połączeń wykonanych przez Specctrę. Zbiór może być konwertowany i przekazywany z powrotem do systemu PCB użytkownika, może również być czytany przez autorouter.
Wires file (.iv) - tworzony przez autorouter, zawiera informacje o wytyczonych połączeniach. Plik może być czytany jedynie przez autorouter.
W przypadku systemów PCB ze zintegrowanym odwołaniem do Specctry konwersja i przekazanie projektu do Specctry odbywa się automatycznie po użyciu odpowiedniego polecenia bezpośrednio w module PCB.
W przypadku uruchamiania Specctry jako niezależnej aplikacji konieczne jest wskazanie pliku projektu, z którym chcemy aktualnie pracować. Może to być plik typu
Rys. 1
W drugim artykule na
temat autoroutera Specctra
postaramy się przybliżyć
jej środowisko GUI, opisać
zadania plików
wykorzystywanych przez
autorouter, powiemy też
kilka słów na temat
sposobów sterowania pracą
autoroutera.
*.dsn, *.ses lub *.cct. Odpowiednie okno pozwalające na wskazanie ścieżki dostępu tego pliku pokazano na rys. 2. Uruchamiając projekt możemy jednocześnie wskazać pliki zawierające informacje o operacjach, które zostały już wykonane w poprzednich sesjach dotyczące np. rozmieszczeniu elementów czy połączeniach wytyczonych na określonym etapie projektowania, oraz do tzw. pliku DO, którego rolę opiszemy w dalszej części artykułu.
Główne okno programu (rys. 3), zawiera typowy dla Windows pasek menu pozwalający na dostęp do poszczególnych funkcji autoroutera oraz pasek narzędzi w postaci ikon umożliwiający szybki dostęp do podstawowych poleceń programu. Centralną część okna stanowi obszar roboczy, w ramach którego projekt jest wizualizowany i gdzie dokonywana jest jego "obróbka". Poniżej obszaru roboczego znajduje się pasek poleceń zawierający pole służące do wprowadzania komend sterujących bezpośrednio z klawiatury (więcej o tym za chwilę) oraz pełniący role informacyjne. Dolną część głównego okna programu stanowi tzw. output window. W postaci tekstowej prezentowane są tu szczegółowe dane dotyczące wszystkich czynności (wydanych poleceń, wykonanych operacji) jakie miały miejsce w danej sesji (łącznie z ich wynikiem), informacje odnośnie ewentualnych błędów jakie pojawiły się podczas pracy oraz raporty końcowe dotyczące np. rezultatów routingu - rys. 4. Dzia-
68
Elektronika Praktyczna 3/2003
PROGRAMY
_i=___i Ś" i
Rys. 2
łanie Specctry może być kontrolowane na trzy sposoby:
- bezpośrednio z poziomu interfejsu graficznego GUI, czyli w sposób typowy dla większości programów windowsowych,
- poprzez podawanie odpowiednich komend z klawiatury,
- za pomocą pliku DO.
W artykule skupimy się na pierwszym z wyżej wspomnianych sposobów kontrolowania autoroutera, który sprowadza się do projektowania przy wykorzystaniu interfejsu graficznego Specctry. Należy tutaj dodać, że działanie autoroutera można również bardzo precyzyjnie kontrolować za pomocą poleceń wydawanych w wewnętrznym języku Specctry, które mogą być wydawane pojedynczo z wiersza poleceń programu lub sekwencyjnie za pomocą pliku DO. Wszystkie trzy metody mogą być dowolnie przeplatane (łączone) podczas pojedynczej sesji. W przypadku sterowania pracą programu z klawiatury, polecenia wpisywane są po prostu
w wierszu poleceń, który znajduje się w środkowej części okna głównego - rys. 5. Oczywiście wykorzystywanie tej metody sterowania autorouterem uwarunkowane jest znajomością znaczenia poszczególnych komend. W przypadku sterowania Specctra za pomocą pliku DO konieczna jest również znajomość składni języka Specctry. DO file jest zwykłym plikiem tekstowym, który zawiera ciąg określonych przez użytkownika poleceń sterujących. Przykład jego zawartości pokazano na rys. 6. Każda linia pliku zawiera pojedynczą komendę. Polecenia wykonywane są sekwencyjnie - kolejno od początku do końca pliku. Niesie to za sobą konieczność przemyślenia kolejności wykonywania poszczególnych operacji. W przypadku natrafienia na błędy składni, które z takich czy innych względów zaistnieją w pliku DO, działanie routera zostaje wstrzymane. Dodajmy jeszcze, że wykonanie poleceń zawartych w omawianym pliku może być wyegzekwowane na dowolnym etapie projektowania (w dowolnym momencie sesji) lub już w trakcie uruchamiania Specctry. W tym drugim przypadku w omawianym wcześniej oknie Startup (rys. 2) należy po prostu wskazać odpowiednią ścieżkę dostępu do DO file. Korzyści płynące ze stosowania pliku DO to możliwość pełnej automatyzacji działania autoroutera, bardzo precyzyjna kontrola pracy programu oraz
i>i4 ic
Rys. 3
L** Wttt ŚŚ!< *<4* 'Jl Jl>.ll iĄ*&*~ 4^<4**J"ahT>CbI
TV tan ta IB dl C U-Ł.Ml UB_- ffb.W
*łi"" .-ł Uf tfl ^ 1 4G.11 l?ll.fll KBim
Rys. 4
możliwość ponownego wykorzystania procedury (lub jej części) zawartej w pliku podczas pracy nad kolejnym projektem.
Najprostszym i najczęściej stosowanym sterowania pracą autoroutera jest wykorzystanie jego interfejsu graficznego. Specctra nie odbiega tutaj zasadniczo od innych aplikacji przeznaczonych dla Windows. Sprawne posługiwanie się programem wymaga oczywiście zaznajomienia się ze znaczeniem poszczególnych funkcji i okien, których ze względu na rozbudowane możliwości Specctry nie jest wcale mało. Aplikacja może pracować w dwóch trybach głównych: Place Modę oraz Route Modę. Jak łatwo się domyśleć Place Modę służy do projektowania płytki pod kątem rozmieszczenia elementów, natomiast w trybie Route Modę mamy możliwość wytyczania połączeń elektrycznych. W zależności od tego w jakim trybie aktualnie znajduje się Specctra, zmienia się nieco wygląd głównego okna programu, w którym wizuali-zowany jest projekt. Dotyczy to przede wszystkim funkcji jakie dostępne są w menu głównym oraz ikon znajdujących się powyżej obszaru roboczego. Wynika to oczywiście z faktu, że zestaw funkcji dostępnych podczas rozmieszczania elementów różni się od tego jaki mamy do dyspozycji w trakcie wytyczania ścieżek.
Procedura układania elementów na projektowanej płytce jest identyczna dla wszystkich programów wspomagających projektowanie i składa się z czterech podstawowych etapów: ustalenia reguł projektowych, rozmieszczenia elementów krytycznych, rozmieszczenia elementów dużych (o dużej liczbie wyprowadzeń) oraz rozmieszczenia elementów małych (o małej liczbie wyprowadzeń). Ustalenie zasad odnośnie rozmieszczania elementów jest pierwszym krokiem, który należy wykonać zanim przystąpimy do właściwych prac projektowych. Specctra kontroluje bowiem wyniki naszych "posunięć" zarówno podczas interaktywnego jak i automatycznego układania komponentów
70
Elektronika Praktyczna 3/2003
PROGRAMY
UmduheIE 17
Rys. 5
i sygnalizuje ewentualne przekroczenia zadanych wcześniej reguł. Autorouter zapewnia obszerny zestaw zasad projektowych związanych z rozmieszczaniem elementów. Podstawowe z nich umożliwiają kontrolę odległości między komponentami, kontrolę rozkładu elementów na poszczególne warstwy płytki czy kontrolę orientacji komponentów. Możemy jednak określać również bardziej zaawansowane reguły pozwalające na kontrolę rozmieszania elementów na przykład ze względu na konieczność podłączenia do konkretnej ścieżki zasilającej czy też od innych uwarunkowań takich jak np. wysokość komponentu. Zestaw reguł może być ponadto specyfikowany na różnych poziomach zgodnie z hierarchią narzuconą przez twórców Specctry. Reguły z wyższego poziomu "nadpisują" te, które plasują się niżej w hierarchii nawet jeśli fizycznie dotyczą one tego samego obiektu. To znaczy, że po ustawieniu na przykład gfobal sparing na 0,25 cala dla wszystkich elementów i 0,8 cala dla wybranej grupy z nich, au-toruter zastosuje odstępy 0,8 cala ale tylko na obszarze na którym znajduje się wybrana grupa elementów. Hierarchia poziomów na których stosowane mogą być reguły projektowe dotyczące rozmieszczenia elementów wygląda w Specctrze w następujący sposób:
- image_image - zestaw reguł pomiędzy określonymi obrazami (fo-otprintami) elementów (najwyższy poziom w hierarchii),
- family_family - zestaw reguł pomiędzy rodzinami (grupami) elementów,
- room_image_sei - zestaw reguł dla grupy footprints o podobnych właściwościach (np. z dużą liczbą wyprowadzeń, z małą liczbą wyprowadzeń), które będą stosowane na określonym obszarze płytki,
f Gwiaral purpai* do Eils
Ś t*ŁUK_llL* laUli Elit ŚifiJl Mli
grid EhSTt i*1*1* ^ |T
- room - zestaw reguł, które będą stosowane na określonym przez użytkownika obszarze płytki niezależnie od rodzaju elementów jakie się na nim znajdą,
- super cluster - zestaw reguł dla grupy komponentów, które połączone są w tzw. super cluster i traktowane przez autorouter jako jeden odrębny element,
- component - zestaw reguł dla określonego elementu,
- image - zestaw reguł dla określonego footprintu. Pojęcia image i component są pojęciami odrębnymi. Component określa konkretnie ten a nie inny element projektu. Image oznacza widok typu obudowy (footprint), który może być wspólny dla kilku różnych elementów,
- image_set - zestaw reguł dla grupy footprints o podobnych właściwościach,
- pcb - globalny zestaw reguł stosowany dla projektu (najniższy poziom w hierarchii).
RK
Dodatkowe informacje
Więcej informacji można uzyskać w firmie RK-System, www.rk-system.com.pl.
Rys. ó
Elektronika Praktyczna 3/2003
71
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 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 ,Miniprojektyn o numeracji zaczynającej się od 1000,
Automatyczny włącznik USB
W EP6/02 opisaliśmy
prosty włącznik
monitora
komp u tero wego.
W artykule
prezentujemy bardziej
rozbudowaną wersję
takiego włącznika -
umożliwia on włączenie
wraz z uruchamianym
komputerem czterech
dodatkowych urządzeń.
Przeznaczony jest do
zastosowania
w systemach
komp u tero wych
(komputer, monitor,
drukarka, skaner itd.).
Informacja o włączeniu komputera jest pobierana ze złącza USB. Złącze takie jest dostępne w każdym nowoczesnym komputerze. Złącze to oprócz komunikacji może również dostarczać napięcie zasilające dla dołączonych urządzeń. Napięcie to ma wartość 5 V, a maksymalny pobierany prąd może wynosić 500 mA. Do zasilania włącznika zostało wykorzystane to właśnie napięcie. Na rys. 1 przedstawiono schemat elektryczny włącznika.
Głównym elementem jest układ USl. Jest to ośmiobito-wy rejestr przesuwający z szeregowym wejściem i równoległymi wyjściami. Stany logiczne występujące na wejściach "A" i "B" są przekazywane do wyjść Q0...Q7 w takt sygnału zegarowego podawanego na wejście "CLK". Do zerowania rejestru po włączeniu zasilania zastosowano układ DS1811, będący scalonym generatorem sygnału zerowania. Po występieniu zera logicznego
na wejściu MR, wyjścia Q0...Q7 zostają wyzerowane uniemożliwiając włączenie któregokolwiek z triaków. W celu sekwencyjnego załączania triaków niezbędny jest generator, który wykonany został z dwóch inwerterów zawartych w układzie US3. Pozostałe inwertery zostały wykorzystane do odwrócenia poziomu i wzmocnienia prądowego sygnałów wyjściowych układu USl. Z wyjść inwerterów są poprzez rezystory R3...R6 zasi-
lane diody optotriaków Xl...X4 oraz diody świecące D1...D4. Diody świecące zastosowano w celu optycznej sygnalizacji stanu odpowiednich wyjść włącznika. Jeżeli świeci się dioda świecąca, to na odpowiednim złączu CON4...CON7 jest dostępne napięcie 220V służące do zasilania dołączonego urządzenia. Zastosowane optotriaki zapewniają izolację galwaniczną między obwodami sterującym i wykonawczymi włącznika. Dzięki temu komputer jest całkowicie odizolowany od załączanego napię-
cia sieci.
vcc
U33C
R3
R4
R6
R6
VCC
,D2
,D3
VCC
C0N1 USB-B C0N2 USB-A

VBU8 i 1 VBUS
1 1
m-
A i


Rys. 1
Elektronika Praktyczna 3/2003
75
MINIPROJEKTY
Włączenia
komputera
Załączenia TriekaOI
Załączenia Tr1akaQ2
Załączenie TrlakaOS
Załączane TrtekaCM
Q0
Q1
02
03
07
Rys. 2
Przebiegi czasowe charakteryzujące działanie włącznika przedstawiono na rys. 2. Po włączeniu zasilania następuje wyzerowanie wszystkich wyjść układu USl. Generator rozpoczyna generowanie przebiegu prostokątnego o częstotliwości około 0,5 Hz. Wejścia danych rejestru przesuwającego są dołączone do plusa zasilania, więc w takt impulsów zegarowych na wyjściach Q0...Q7 pojawiają się kolejno jedynki logiczne. Wraz ze zmianą stanu tych wyjść zostaje załączane zasilanie urządzeń dołączonych do złączy CON4...CON7.
Triaki są załączane z "przerwą" jednego bitu rejestru przesuwającego (z co drugiego wyjścia), dzięki czemu częstotliwość generatora jest dodatkowo dzielona przez dwa i urządzenia są załączane w odstępach około pięciosekundowych. Po ośmiu impulsach zegarowych rejestr wyjściowy układu 74LS164 jest zapełniony jedynkami i wszystkie dołączone urządzenia są włączone. Pracujący dalej generator powoduje przepisywanie "jedynek" z wejść danych układu USl na wyjścia Q0...Q7. Nie daje to jednak żadnego efek-
tu, gdyż wpis jedynki do rejestru zawierającego same jedynki zasilania optotriaków nie zmienia. Stan taki trwa do momentu wyłączenia zasilania. Po każdorazowym włączeniu zasilania procedura będzie się powtarzała. Po wyłączeniu komputera zaniknie napięcie zasilające port USB, a tym samym wszystkie urządzenia zostaną automatycznie wyłączone.
Montaż układu należy zacząć od wlutowania rezystorów, następnie podstawek pod układy scalone i opto-triaki. Kolejno montujemy triaki, których końcówki należy zagiąć pod kątem 90 tak, aby było możliwe wlutowa-nie ich na leżąco. Na końcu montujemy kondensatory, diody i złącza.
Po prawidłowym zmontowaniu uruchamiamy układ. W tym celu potrzebny jest kabel USB typu A-B. Jedną wtyczkę kabla wkładamy w złącze USB, a drugą do gniazda włącznika. Po około pięciu sekundach od włączenia komputera powinna zaświecić się dioda Dl, a w odstępach pięciosekundowych będą zapalały się kolejne diody. Jeżeli zostały zapalone diody, to
włącznik pracuje prawidłowo i procedura uruchomienia została zakończona.
Włącznik posiada dodatkowe złącze USB typu "B" umożliwiające podłączenie urządzenia pracującego z wykorzystaniem portu USB. Dzięki temu włącznik nie blokuje portu, a wykorzystuje tylko napięcie zasilania, umożliwiając jednoczesną pracę włącznika i innego urządzenia na tym samym porcie.
Jeżeli włącznik pracuje prawidłowo, możemy przystąpić do podłączenia sterowanych urządzeń. W tym celu do złącza CON3 podłączamy napięcie 22OV. Do złączy CON4...CON7 podłączamy urządzenia odbiorcze. Do jednego wyjścia nie należy podłączać odbiorników o mocy większej niż 200W, gdyż triaki pracujące bez radiatorów mogą ulec uszkodzeniu.
Należy zachować szczególną ostrożność przy podłączaniu napięcia zasilania 22OV oraz urządzeń wyjściowych, ze względu na niebezpieczeństwo porażenia. Krzysztof Ptawsiuk, AVT krzysztof.plawsiuk@ep.com.pl
WYKAZ ELEMENTÓW
Rezystory
Rl, R2: 1MQ R3...R14: 220Q Kondensatory
Cl: l(iF polipropylenowy
C2: 1OO^F/16V
C3: lOOnF
Półprzewodniki
D1...D4: dioda LED 3mm
USl: 74LS164
US2: DS1813
US3: 74HC04
Xl...X4: MOC3042
Ql...Q4: BT138-600
Różne
CONl: gniazdo USB typ "B"
CON2: gniazdo USB typ "A"
CON3...CON7: ARK2 (5mm)
Bl: gniazdo bezpiecznika +
bezpiecznik 2A
Podstawki DIL14 - 2 szt.
Podstawki DILó - 4 szt.
Płytka drukowana jest dostępna wAVT- oznaczenie AVT-1356.
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: h ttp: 11 www. ep.com.pl/?p df/ marzec03.htm oraz na płycie CD-EP3/2003 w katalogu PCB.
?
0 O 0 O 0 O 0 O 0 O
DOC
DOG
nezz un
EN03 VN03 SN03
5000 3000
nnn nnn
sooo nnn
?
sooo
nnn
O-GL]-O O-fBlHl-O O-IZlHl-O O 000 O OOO O 000 O 000
tg o o o o o o o o
o-TehT-o o-Tgm-o w o- shT-o
- oH frU \-o ooóoooo
Rys. 3
Elektronika Praktyczna 3/2003
KURS
Podstawy projektowania systemów mikroprocesorowych, część 1
Dlaczego '51 i dlaczego Atmel? Odpowiedź jest prosta: ze względu na wbudowaną pamięć Flash, niską cenę i łatwą dostępność są to mikrokontrolery bardzo popularne, a ze względu na dużą popularność łatwo jest znaleźć tanie, często bezpłatne, programy narzędziowe. Umożliwia to amatorom-elektronikom realizację kompleksowych projektów bez ponoszenia jakichkolwiek kosztów. Co więcej, gwarantowana przez producenta minimalna liczba cykli zapisu przekracza 1000, co w zupełności wystarcza do przygotowania, przetestowania i wprowadzenia poprawek do dowolnie skomplikowanego programu - nie ma więc konieczności kupowania emulatora sprzętowego.
Zapewne niektórzy Czytelnicy stwierdzą, że są lepsze, szybsze, nowocześniejsze konstrukcje (np. rodzina AVR Atme-la, PIC-e, czy inne) i będą mieli trochę racji, jednak w większości typowych zastosowań nie jest potrzebna ani zawrotna moc obliczeniowa, ani rozbudowane peryferie wbudowane w mikrokontroler -potrzebny jest tani układ, łatwy do kupienia w sklepie elektronicznym w małym mieście, dobrze opisany i prosty w programowaniu.
Na rynku wydawniczym, w czasopismach i w publikacjach elektronicznych jest dostępnych wiele informacji na temat mikrokontrolerów rodziny '51, ich parametrów, budowy wewnętrznej, działania układów peryferyjnych i zasad programowania. Brakuje pozycji w przystępny sposób przekazującej praktyczne informacje dotyczące projektowania układów elektronicznych wykorzystujących mikrokontrolery. Choć w tym artykule i cyklu następnych skoncentrujemy się na najprostszych mikrokontrolerach rodziny '51 firmy Atmel (AT89CxO51, AT89C51, AT89C52), to podane tutaj informacje przydadzą się również (poza wykorzystaniem specyficznych cech wymienionych procesorów) przy realizacji projektów, w których zastosujemy procesor z rodziny AVR, PIC, układy Motoro-li czy innych producentów. Pokażemy najprostszą drogę prowadzącą do realizacji konkretnego celu, przedstawimy najczęściej popełniane błędy i sposoby ich unikania, omówimy współpracę mik-
Rozpoczynamy cykl artykułów, w których zostaną przedstawione najważniejsze zagadnienia związane z projektowaniem systemów mikroprocesorowych. Na modelowy mikrokontroler wybraliśmy atmelowskie wersje 8051, które cieszą się bardzo dużym powodzeniem wśród projektantów w naszym kraju.
rokontrolera z układami analogowymi, ilustrując wszystko schematami i w razie potrzeby przykładowymi procedurami w asemblerze.
W realiach obecnej elektroniki, zwłaszcza cyfrowej, bez mikroprocesorów ani rusz, dlatego najwyższa pora, aby zapoznać się z niezbyt trudną sztuką praktycznego projektowania urządzeń wykorzystujących mikrokontrolery, która otwiera drogę nowym zastosowaniom niedostępnym lub trudnym w realizacji przy użyciu ,,zwykłych" układów cyfrowych TTL czy CMOS i pozwala na realizację elastycznych rozwiązań dzięki połączeniu i współpracy układów sprzętowych i programu. Zatem zaczynamy...
Bez prądu ani rusz, czyli zasilanie mikrokontroler a
Ważną, lecz niejednokrotnie lekceważoną sprawą jest zasilanie mikrokontrole-ra. Często właśnie niefortunne rozwiązanie obwodów zasilania jest przyczyną niestabilnej pracy, objawiającej się niekontrolowanym zerowaniem układu lub generacją zakłóceń na szynach zasilania i wpływających na pracę innych podzespołów współpracujących z mikrokontrolerem.
Mikrokontrolery AT89C5x mogą być zasilane napięciem 5 V ą20%, natomiast układy AT89CxO51 umożliwiają zasilanie ze źródła o napięciu od 2,7 do 6 V. Najbardziej popularnym rozwiązaniem jest zasilanie mikrokontroler a napięciem 5 V i zastosowanie stabilizatora scalonego w układzie jak na rys. 1. Należy pamiętać, że układy stabilizatorów serii 78xx potrzebują do prawidłowej pracy napięcia wejściowego o około 3 V wyższego niż napięcie wyjściowe, co dla układu 7805 daje minimalną wartość napięcia wejściowego około 8 V. Jeżeli napięcie na wejściu będzie niższe, spowoduje to
także spadek napięcia wyjściowego, zmniejszy się tłumienie tętnień zasilania i stabilizator - ogólnie mówiąc - przestanie pełnić swoją funkcję (choć mikrokontroler i układy współpracujące ciągle mogą działać - nie będzie to jednak praca pewna). Kondensatory Cl i C2 powinny być umieszczone jak najbliżej wyprowadzeń stabilizatora - zapobiegają one jego wzbudzeniu. W pobliżu wyprowadzeń zasilania mikrokontrolera, jak i każdego innego układu cyfrowego, muszą być umieszczone kondensatory blokujące zasilanie (C4, C5) zapobiegające zakłócającemu działaniu układów na szynę zasilania i zabezpieczające inne elementy przed zakłóceniami przenoszonymi tą szyną. Pojemność kondensatora C3 nie powinna być zbyt duża (dla systemów pobierających kilkanaście...kilkadziesiąt mA kondensator C3 jest zbyteczny), dużo ważniejsza jest wartość pojemności C przed stabilizatorem, dająca odpowiedni zapas energii redukujący tętnienia sieci.
Ze stabilizatora 7805 można uzyskać prąd o maksymalnym natężeniu 1 A, co jest wartością całkowicie wystarczającą dla większości aplikacji. Ważną sprawą jest moc tracona w stabilizatorze, która przy napięciu zasilającym rzędu 12 V i wyższym (max. 24 V), zmusza nas do stosowania radiatora, czasem o dość pokaźnych rozmiarach.
Pobór prądu przez mikrokontroler jest zależny od napięcia zasilania oraz od częstotliwości taktowania. Producent podaje pobór prądu dla częstotliwości oscylatora 12 MHz, który dla układów 89C5x wynosi 25 mA, a dla układów 89CxO51 wynosi 5,5 mA przy zasilaniu 3 V i 15 mA przy 6 V. Z tego powodu ,,małe" Atmele są bardzo atrakcyjną propozycją dla aplikacji z zasilaniem bate-
Linia zasilania +5V
Rys. 1
vcc "A

C4 _ '51 /
/
1-------------- GNU {
VCC \

Inny 1
47n~p układ /
1-------------- GND j
Elektronika Praktyczna 3/2003
83
KURS
List. 1.
ORG OOOOH LJMP POCZĄTEK
i (procedury obsługi przerwań)
POCZĄTEK: CLR P1.3
M0V A,Pl AHL A,#0F0h SWAP A M0V R7,A
i Włączenie podtrzymania zasilania
;odczyt stanu klawiszy
; wy zerowanie niepotrzebnych bitów
i zamiana części bajtu
; otrzymujemy w rejestrze R7 stan klawiszy: ;bit 0 - stan klawisza Pl (0-wciśnięty) ;bit 1 - stan klawisza P2 (0-wciśnięty) ;bit 2 - stan klawisza P3 (0-wciśnięty) ;bit 3 - stan klawisza P4 (0-wciśnięty)
i (inicjalizacja liczników, zerowanie zmiennych, itp. ;(właściwa część programu)
SETB Pl.3 ;wyłączenie podtrzymania po wykonaniu programu SJMP $ ;pozostań w pętli (ewentualne oczekiwanie na puszczenie ;długo trzymanego klawisza, mimo wyłączenia tranzystorów i dopiero po jego puszczeniu wyłączy się zasilanie)
ryjnym lub wymagających bateryjnego zasilania awaryjnego. Na rys. 2 przedstawiono jeden z wielu możliwych wariantów rezerwowego zasilania mikrokontrolera. Jako źródło rezerwowe zastosowano akumulatorek 3,6 V. Dobrze w tej roli sprawdzają się akumulatorki NiCd 3,6 V/60 mAh, stosowane dawniej w płytach głównych komputerów PC. Można również zastosować akumulatorki wykorzystywane w słuchawkach telefonów bezprzewodowych, posiadają one większą pojemność, lecz są droższe. Dioda D2 powinna być diodą Schottky'ego, ze względu na niższy niż w standardowych diodach spadek napięcia na złączu, Dl może być zwykłą diodą krzemową - stanowi ona zabezpieczenie przed zasilaniem całego urządzenia ze źródła rezerwowego. Rezystor Rl dobieramy w celu uzyskania pożądanego prądu ładowania akumulatorka - należy przy tym pamiętać, że akumulatorek będzie doładowywany przez cały czas pracy zasilania głównego, więc należy ograniczyć prąd ładowania do wartości dla niego bezpiecznej. Dla rezystora Rl
+5V_________
Św-
Rl
10-100k
Akumulator 3,6V
P1 L RESETrT
-10M
R2 lOk
47u
o wartości 47 kQ maksymalny prąd ładowania przy rozładowanym akumulator-ku osiąga 0,05 mA, co daje nam ponad miesiąc czasu potrzebny do pełnego naładowania. Taka wartość prądu nie zagraża nawet w pełni naładowanemu aku-mulatorkowi. Jeżeli przewiduje się częstsze przerwy w zasilaniu (ze względu np. na przenoszenie urządzenia), warto zastosować większe prądy ładowania, niezbędne do uzupełniania zużytej energii. Wówczas dioda Dl powinna być diodą krzemową, co przy zasilaniu 5 V ograniczy maksymalne napięcie na akumulatorku do bezpiecznej wartości około 4,4 V bez konieczności ograniczania prądu ładowania, gdy akumulatorek zostanie w pełni naładowany.
Zastosowany kondensator C2 blokuje zasilanie, natomiast Cl jest odpowiedzialny za stabilną pracę w momentach wyłączania, a zwłaszcza włączania zasilania głównego. Kondensator Cl powinien mieć pojemność kilka razy większą niż kondensator obwodu zerowania mik-rokontrolera (C3, R2). Spowodowane jest to tym, że przy braku Cl po pojawie-
niu się napięcia głównego nastąpi doła-dowanie kondensatora C3 od napięcia zapewnianego przez obwód rezerwowy do wartości 4,4...4,7 V (w zależności od typu Dl). Przy niskim napięciu akumulatorka rezerwowego istnieje możliwość, że przepływ prądu przez obwód C3 i R2 (oraz wewnętrzny rezystor mikroprocesora) wywoła spadek napięcia na R2, który może wyzerować mikrokontroler. Obecność Cl oraz rezystancja dynamiczna diody Dl ograniczają prędkość narastania napięcia, a co za tym idzie wartość prądu doładowującego C2, zatem napięcie na R2 nie osiągnie wartości grożącej wyzerowaniem mikrokontrolera. Opisany układ nie jest zalecany do pracy z mikrokontroler ami AT89C5x, ponieważ w przypadku tych układów należałoby zastosować akumulatorek o napięciu 4,8 V - pojemność akumulatorka 3,6 V nigdy nie będzie całkowicie wykorzystana, gdyż ,,duże" Atmele nie działają przy tak niskich napięciach jak ,,małe". W praktyce często wykorzystywane są urządzenia, które zasilane powinny być tylko w chwili zaistnienia odpowiedniego zdarzenia zewnętrznego - najczęściej wciśnięcia przycisku (np. nadajniki zdalnego sterowania, itp.), gdy przez pozostały czas układ pozostaje bezczynny, co przy zasilaniu bateryjnym jest czystym marnotrawstwem. Na rys. 3 pokazano fragment schematu przykładowego urządzenia, którego zasilanie jest włączane tylko na czas obsługi wciśnięcia przycisku. Wciśnięcie któregokolwiek z przycisków powoduje dołączenie ujemnego bieguna zasilania do masy urządzenia. Po rozpoczęciu pracy przez mikrokontroler, pierwszą instrukcją jest wyzerowa-nie linii portu Pl.3, co powoduje włączenie tranzystora T2 i podanie napięcia na bazę Tl. Następuje włączenie Tl i podtrzymanie zasilania mimo zwolnienia naciśniętego przycisku. Po wykonaniu programu odpowiedzialnego za obsługę naciśnięcia konkretnego przycisku mikroprocesor ustawia linię Pl.3, powodując zatkanie T2 i Tl, i odłączenie zasilania. Obwód zasilania mikrokontrolera
AT89CxO51
VCC GND
"-" zasilania
dla pozostałej
części urządzenia
Rys. 2
Rys. 3
84
Elektronika Praktyczna 3/2003
i pozostałych układów nie powinien posiadać filtrujących kondensatorów elektrolitycznych o pojemnościach powyżej 10 JJ.F, gdyż wydłużą one czas włączania i mogą spowodować trudności z wyłączeniem (układ może się ,,zatrzasnąć" ze względu na niestabilną pracę mikrokontrolera przy powolnym opadaniu napięcia zasilania). Pewność działania układu zwiększy dodanie dodatkowego obciążenia w postaci rezystora (np. 330 O.) podłączonego między szynami Vcc i GND mikrokontrolera - spowoduje to jednak wzrost poboru prądu podczas działania urządzenia. Wadą przedstawionego rozwiązania jest konieczność przytrzymania przycisku tak długo, jak trwa czas zerowania mikroprocesora, plus czas potrzebny na wykonanie rozkazów odpowiedzialnych za włączenie podtrzymania i odczyt wyprowadzeń poszczególnych klawiszy (określenie, który klawisz został naciśnięty) - dlatego te części programu powinny być jednymi z pierwszych rozkazów. Można to zrealizować w sposób pokazany na list. 1. Niewątpliwą zaletą tej metody jest praktycznie zerowy pobór prądu, gdy układ jest nieaktywny.
Zmniejszanie poboru mocy można dokonać na drodze zmniejszania częstotliwości taktowania, która niemal liniowo wpływa na pobór prądu, duży zysk
energii osiągniemy także, obniżając napięcie zasilania. Jest to jednak możliwe tylko w układach AT89CxO51, ze względu na szeroki zakres napięć zasilających - układy AT89C5x przestają poprawnie pracować już przy napięciu zasilania rzędu 3,5 V. Niektóre egzemplarze układów AT89CxO51 pracują poprawnie już od napięcia rzędu 1,8...1,9 V, co z powodzeniem pozwala na zasilanie ich z dwóch akumulatorków Ni-Cd (2,4 V) lub dwóch zwykłych ogniw cynkowych czy alkalicznych (3 V).
Jeszcze większe obniżenie napięcia zasilania możliwe jest po wprowadzeniu mikrokontrolera w tryb Power Down (przez ustawienie bitu PD rejestru PCON), co pozwala na obniżenie napięcia zasilania zarówno ,,dużych", jak i ,,małych" Atmeli do wartości 2 V (gwarantowane przez producenta), a praktycznie nawet do 1,2...1,3 V. Niestety procesor w takim stanie nie pracuje, podtrzymywana jest jedynie zawartość wewnętrznej pamięci danych i rejestrów SFR. Powrót do normalnej pracy możliwy jest tylko przez generację sygnału RESET (po uprzednim przywróceniu pełnego napięcia zasilania). Wejście w stan Power Down powinno nastąpić zatem przed zanikiem napięcia zasilania. Realizacja układu wykrywania zaniku głównego napięcia zasilania jest bardzo pros-
KURS
ta - wystarcza dołączenie któregokolwiek wyprowadzenia dowolnego portu mikrokontrolera do linii zasilania głównego przez rezystor rzędu 1 do 10 kQ (na rys. 2 - rezystor R3). W chwili zaniku napięcia głównego na linii zasilania pojawi się potencjał bliski masy (ze względu na dołączone inne odbiorniki), co spowoduje wprowadzenie linii portu w stan niski - wykrycie stanu niskiego oznacza brak zasilania i konieczność podjęcia określonych działań, np. wejście w stan Power Down. Wyjście z tego stanu jest możliwe wyłącznie po naciśnięciu przycisku Pl (rys. 2.). Możliwe jest również wejście w tryb pracy Idle (uśpienie), który również zatrzymuje pracę mikrokontrolera, działają jednak przerwania i generator sygnału zegarowego. Wyjście z trybu Idle następuje w momencie nadejścia zgłoszenia dowolnego przerwania (lub sygnału RESET) - umożliwia to realizację wielu zadań, np. realizację zegara czasu rzeczywistego pobierającego z zasilania rezerwowego prąd dużo mniejszy niż przy normalnej pracy. Możliwy jest też powrót do normalnej pracy przy dołączeniu do linii przerwań zewnętrznych obwodu wykrywającego powrót głównego napięcia zasilania (generującego na wyjściu stan 0 po pojawieniu się napięcia). Paweł Hadam
Elektronika Praktyczna 3/2003
85
KURS
10
Większość urządzeń wykonanych na mikrokontrolerach
wymaga zastosowania jakiegoś interfejsu zapewniającego komunikację
z użytkownikiem. W poprzednich odcinkach kursu zajmowaliśmy się
prezentacją wyników przy pomocy wyświetlacza LED czy LCD. Czasami
jednak trzeba również wprowadzić pewne parametry - na przykład wartość
czasu, napięcia itp. Można to zrobić na wiele sposobów, lecz jeden z nich
przyjął się wiele lat temu i króluje do dziś - klawiatura.
Obsługa klawiatury w C, część 1
Ten odcinek w całości poświęcony będzie obsłudze pojedynczych klawiszy, klawiatur, zawrzemy w nim przegląd najczęściej stosowanych rozwiązań. Zaczniemy od prostych metod wykrywania naciśnięcia pojedynczego klawisza, poprzez proste klawiatury wielo stykowe, przedstawimy także zagadnienia obsługi klawiatur matrycowych, a także działających z wykorzystaniem przerwań.
Testowanie stanu pojedynczego przycisku
Na początek zajmiemy się testowaniem stanu pojedynczego przycisku. Wbrew pozorom nie jest to zadanie łatwe, mimo iż tak może się wydawać na początku. Program musi uwzględnić fizyczne właściwości styku, zabezpieczyć się przed przypadkowym jego wciśnięciem lub zewnętrznym zakłóceniem. Na podstawie obsługi pojedynczego przycisku omówimy podstawowe zasady odczytu stanu przełącznika. Funkcje omawiane dalej będą tylko rozwinięciem omawianej tutaj funkcji podstawowej.
Na rys. 1 pokazano sposób podłączenia klawisza wykorzystywany
P1.0/AIN0 P1.1/AIN1 P1.2 P1.3 P1.4 P15 P1.6 P1.7 P3.7 P3.0/RXD P3.1HXD 12
13
14 15
16
17
18
19
11
2
3

o-
Rys. 1. Podłączenie pojedynczego klawisza do mikrokontrolera wykorzystywane w przykładzie 1
w przykładzie. Pojedynczy przycisk podłączony został do portu Pl.2 mikrokontrolera z rodziny 8051 (AT89C2051). Ty możesz zrobić to tak samo, możesz również wykorzystać inną linię portu. Zwróć tylko uwagę na to, czy nie ma przypadkiem konieczności dołączenia do tej linii rezystora pullup. Potrzebne informacje można znaleźć w dokumentacji mikrokontrolera. W przykładzie używałem AT89C2051, który posiada wewnętrzny rezystor pullup dołączony do linii Pl.2.
Przycisk podłączyłem w taki sposób, aby w momencie jego naciśnięcia linia portu Pl.2 zwierana była do masy. Dlaczego? Otóż w "normalnej" sytuacji, gdy port pracuje jako wejściowy, linia ta jest podłączona do dodatniego napięcia zasilania przez rezystor pullup. W konsekwencji mik-rokontroler sprawdzając stan bitu Pl.2 odczyta stan wysoki. Można go zmienić (pamiętajmy, że linia pracuje jako wejściowa) podając stan niski, tak aby zmienił się potencjał wymuszany przez rezystor. Podanie stanu niskiego odpowiada zwarciu linii Pl.2 do masy. To jeden z powodów. Drugi, to mogące pojawić się zakłócenia. W przyjętej konfiguracji znacznie łatwiej je wyeliminować, ponieważ impedancja linii w stanie niskim jest wielokrotnie mniejsza niż w stanie wysokim. Tyle o podłączeniu, teraz warto by wspomnieć o właściwościach fizycznych styków przełącznika.
Podczas zwierania styków przełącznika, może pojawić się ich drganie, co zilustrowano na rys. 2. Jak łatwo zauważyć, stan niski na wejściu portu pojawi się co najmniej kilkakrotnie i jeśli mikrokontroler będzie wystarczająco szybki, a zadanie klawisza polegać ma np. na zwiększeniu jakiegoś parametru wartości o 1 przy jego naciśnięciu, to może się okazać, że pojedyncze naciśnięcie
klawisza owocuje przyrostem wartości zmiennej o kilka czy nawet kilkanaście kroków. We współcześnie produkowanych miniaturowych przełącznikach zjawisko drgania styków zostało prawie całkowicie wyeliminowane, jednak jego występowanie zależeć będzie od konstrukcji mechanicznej przełącznika - ponieważ tej nigdy nie możemy być pewni, lepiej się przed nim zabezpieczyć.
Lekarstwem na to zjawisko jest prosty zabieg: reakcja na wciśnięty klawisz (czy to opadające zbocze, czy poziom niski sygnału), odczekanie przez czas 20...50 ms i ponowny odczyt stanu portu. Jeśli nie zmienił się on, to oznacza, że klawisz nadal jest wciśnięty i użytkownik oczekuje reakcji na wciśnięcie przycisku. Jeśli odczytany stan jest wysoki, to oznaczać może, że albo odebrano zakłócenie, albo przypadkowo naciśnięto klawisz. Tę prostą zasadę działania wykorzystuje program umieszczony na list. 1. Stan klawisza sygnalizowany jest przez bit 3 portu Pl. Bit ten przyjmuje poziom logiczny niski, gdy klawisz jest wciśnięty.
Rys. 2. Typowy przebieg sygnału na wejściu mikrokontrolera po naciśnięciu przycisku
86
Elektronika Praktyczna 3/2003
KURS
Ust. 1. Prosty program odczytujący stan klawisza podłączonego do P1.2
/* prosty program demonstracyjny "odczyt pojedynczego klawisza" klawisz włączony pomiędzy masę a port Pl.2, stan aktywny = L; rezonator kwarcowy 8MHz */
tinclude
sbit PortKey = P1A2; sbit Actiye = P1A3;
//dołączenie definicji rejestrów mikrokontrolera
//definicja bitu portu klawisza
//port przyjmuje stan niski, gdy klawisz
//jest wciśnięty
//opóźnienie około 1 milisekundy dla kwarcu 8MHz Void Delay(unsigned int time)
unsigned int j;
While (time >= 1) {
for (j=0; j<65;
time--;
//wykonanie pętli FOR zajmuje około 1 msek. //pętla jest powtarzana TIME razy
//funkcja - reakcja na naciśnięcie klawisza //tylko ustawienie stanu portu wyj ściowego void KeyPressed(void) {
Active = 0;
//funkcja - reakcja, gdy klawisz nie jest wciśnięty //tylko ustawienie stanu portu wyj ściowego void KeyNotPressed(void) {
Active = 1;
//początek programu głównego ~Void main (void)
While (1) {
if ( !PortKey)
//pętla nieskończona
Delay(20); //opóźnienie 20ms
if ( !PortKey) //ponowny odczyt klawisz i podjęcie akcj i,
{ //jeśli nadal wciśnięty
KeyPressed();
While ( !PortKey); //oczekiwanie na zwolnienie klawisza
KeyNotPressed() ; //akcja, gdy klawisz nie jest wciśnięty
Początek programu zawiera deklaracje bitów portu: bit 2 pracuje jako wejściowy - do niego jest podłączony klawisz, bit 3 pracuje jako wyjściowy - jego stan zmienia się w zależności od stanu klawisza. Funkcja void KeyPressed() zawiera polecenia wykonywane w sytuacji, gdy klawisz jest wciśnięty i odwrotnie: funkcja void KeyNotPressed() zawiera polecenia wykonywane, gdy klawisz jest zwolniony. Właściwy odczyt klawisza został zdefiniowany w programie głównym i sprowadza się do testowania stanu pojedynczego bitu portu przy pomocy polecenia if (jeśli). Wyrażenie if (!PortKey) oznacza: jeśli zmienna PortKey ma wartość "nie zero" , to wykonaj polecenia zawarte pomiędzy nawiasami klamrowymi. Czyli: odczekaj 20 milisekund, odczytaj ponownie stan bitu portu. Jeśli nadal jest on równy stanowi niskiemu, to wykonaj funkcję odpowiadają-
cą wciśniętemu klawiszowi. Zadaniem pętli while (IPortKey) jest oczekiwanie aż klawisz zostanie zwolniony.
while (1) //pętla nieskończona, { //w niej odczyt klawisza
if (IPortKey) {
Delay(20); //opóźnienie 20ms
if (IPortKey) //ponowny odczyt klawisz //i podjęcie akcji, {
KeyPressedf); //jeśli nadal wciśnięty while (!PortKey); //oczekiwanie na zwolnienie //klawisza
KeyNotPressedf);
//akcja, gdy klawisz nie jest
//wciśnięty
Zaznaczam - jest to jedna z najprostszych możliwych funkcji obsługi klawisza. W większości sytuacji jest wystarczy, ma jednak tę wadę, że po jego wciśnięciu oczekuje na zwolnienie blokując tym samym wykonywanie innych zadań, o ile nie są one obsługiwane przez przerwania.
Funkcja "autorepeat" klawisza
Każdy użytkownik komputera PC zna funkcję "autorepeat" klawiatury. Polega ona na powtarzaniu kodu wciśniętego klawisza. Zrealizujemy taką funkcję w programie dla mikrokontrolera. Ustalmy najpierw metodę. Wydaje mi się, że spośród wielu sposobów obsługi klawiszy, najbardziej naturalnymi są:
1. Po wciśnięciu jednokrotne wysłanie kodu wciśniętego klawisza, brak reakcji jeśli klawisz nie został zwolniony.
2. Po wciśnięciu wysłanie kodu klawisza i jeśli nie został on zwolniony powtarzanie kodu klawisza co pewien ustalony odstęp czasu.
3. Po wciśnięciu wysłanie kodu klawisza i jeśli nie został on zwolniony - powtarzanie kodu klawisza początkowo wolno a po wykonaniu pewnej liczby powtórzeń - znacznie szybciej.
W tym odcinku kursu wykonamy program, który zrealizuje w praktyce działanie klawiatury w sposób numer 3. Z racji tego, że liczba klawiszy nie ma większego znaczenia dla zrozumienia zasady działania, zanim przejdziemy do bardziej zaawansowanych rozwiązań, posłużymy się (podobnie jak poprzednio) rozwiązaniem wykorzystującym pojedynczy przycisk. Tu jedna uwaga: to tylko propozycja rozwiązania. Pisząc programy często zauważysz, że jeden problem można rozwiązać na kilka możliwych sposobów.
Aby funkcja automatycznego powtarzania naciśniętego klawisza mogła działać, nie wolno zatrzymywać programu i oczekiwać na zmianę stanu przycisku. Mikrokontroler musi nieprzerwanie (nie bierz tego dosłownie) wykonywać program sprawdzając stan klawisza i sprawdzając warunki dla funkcji "autorepeat". W związku z tym nie wolno nam użyć konstrukcji while (IPortKey) z poprzedniego przykładu. Trzeba zastosować zupełnie inną metodę: program przykładowy liczy liczbę cykli odczytu stanu przycisku i w zależności od jej wartości podejmuje odpowiednią akcję.
Elektronika Praktyczna 3/2003
87
KURS
List. 2. Program odczytuje stan klawisza podłączonego do Pl.2 wyposażony w
rozbudowaną funkcj ę "autorepeat"
/* prosty program demonstracyjny "odczyt pojedynczego klawisza"
z funkcją automatycznego powtarzania.
klawisz włączony pomiędzy masę a port Pl.2, stan aktywny = L;
rezonator kwarcowy 8MHz */
linclude
#define Time_l #define Time_2 #define Time_3
9000 9020
unsigned int Counter = sbit PortKey = P1A2; sbit Actiye = P1A3;
//dołączenie definicji rejestrów mikrokontrolera
//time 1 = około 15 ms
//około 1,5 sekundy
//po 2 0 wykonaniach pętli dla Time_2
//deklaracja zmiennej licznika //definicja bitu portu klawisza //port przyjmuje stan niski, gdy klawisz //jest wciśnięty
//opóźnienie około 1 milisekundy dla kwarcu 8MHz ~Void Delay(unsigned int time)
unsigned int j ; While (time >= 1)
for (j=0; j<65; t ime-;
//wykonanie pętli FOR zajmuje około 1 msek. //pętla jest powtarzana TIME razy
//funkcja - reakcja na naciśnięcie klawisza //tylko ustawienie stanu portu wyj ściowego ~void KeyPressed (void) {
Active = Ćounter;
//funkcja - reakcja, gdy klawisz nie jest wciśnięty //tylko ustawienie stanu portu wyj ściowego void KeyNotPressed(void) {
Active = 1; }
//początek programu głównego Void main(void)
While (1) {
if ( !PortKey)
//pętla nieskończona
Counter++; //tak, zwiększ licznik
if (Counter > Time_3) //czy licznik większy od warunku dla
{ //szybszego autorepeat?
KeyPressed() ; //tak - wykonaj fragment kodu
Counter-;
Delay(100) ; //krótsze opóźnienie } else;
if (Counter > Time_2) //czy licznik większy od warunku dla { //wolniej szego autorepeat?
KeyPressed(); //tak - wykonaj fragment kodu
Delay(500); //dłuższe opóźnienie } else;
if (Counter == Time_l) //czy licznik osiągnął wartość, gdy { //uznajemy klawisz za wciśnięty?
KeyPressed(); //tak - wykonaj fragment kodu
else;
Counter =0; KeyNotPressed()
//licznik jest zerowanym, gdy klawisz //zostaje zwolniony
Oto część programu napisanego w języku C, w którym pozostawiłem tylko naprawdę niezbędne fragmenty kodu źródłowego:
if ( IPortKey)
//czy naciśnięto klawisz?
{
Counter++; //tak, zwiększ licznik if (Counter > Time_3)
//czy licznik jest większy
//od warunku dla
{ //szybszego autorepeat?
KeyPressedf); //tak - wykonaj //fragment kodu
Counter-;
Delay(lOO); //krótsze opóźnienie }
else if (Counter > Time_2)
//czy licznik jest większy
//od warunku dla { //wolniejszego autorepeat?
KeyPressedf); //tak - wykonaj //fragment kodu
Delay(500); //dłuższe opóźnienie }
else
if (Counter == Time_l) //czy licznik osiągnął wartość, //gdy uznajemy klawisz { //za wciśnięty?
KeyPressedf); //tak - wykonaj //fragment kodu
else
Counter = 0;
//zeruj licznik, jeśli zwolniono //klawisz
Na początku program sprawdza stan klawisza. Jeśli jest on wciśnięty, to wartość zmiennej Counter zwiększana jest oli rozpatrywana przez konstrukcję if. W przeciwnym przypadku zmiennej nadawana jest wartość 0. Zadaniem if jest zdecydowanie jaka akcja zostanie podjęta w zależności od wartości zmiennej Counter. Stała Ti-me_l to ilość pojedynczych operacji odczytu bitu przycisku, po której uznaje go za wciśnięty. Jej wartość w głównej mierze zależy od szybkości mikrokontrolera i musi być dobrana indywidualnie dla budowanego układu. Stała Time_2, to ilość przebiegów cykli odczytu, dla której uznaję warunek dla "wolniejszego" powtarzania za spełniony. Wykonywany jest wówczas fragment programu zawierający instrukcję Delay(500) powodującą przerwę ok. 0,5 sekundy pomiędzy powtórzeniami odczytu klawisza. Jeśli wartość zmiennej Counter osiągnie wartość stałej Time_3, to wykonywany jest fragment programu z instrukcją Delay(lOO): czas pomiędzy powtórzeniami akcji właściwej dla wciśniętego przycisku jest pięciokrotnie krótszy. Instrukcja Counter- służy do zabezpieczenia przed przekroczeniem wartości dopuszczalnej dla danego typu zmiennej Counter.
Do automatycznego powtarzania kodu klawisza wrócimy jeszcze przy okazji budowy menu. W tym momencie, proponuję wykorzystać program z list. 2 aby zobaczyć jak nastawy wartości Time_l, Time_2 i Time_3 wpływają na pracę programu wykonywanego przez mikrokontroler. Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Elektronika Praktyczna 3/2003
KURS
CRC doda Ci pewności, część 3
Jesteśmy już po pierwszych przymiarkach do napisania własnego programu liczącego CRC. Cel wydaje się być coraz bliżej, ale drogi jakby zaczynają się rozchodzić. Na szczęście każda jest dobra. Dociekliwie będziemy sprawdzać wszystkie tak, by później każdy mógł wybrać najodpowiedniejszą dła siebie.
Metoda maglowanej tablicy
Poprs9dni odcin9k sakończyliśmy na-pisani9in J9dnolinijkow9go wyraŻ9nia ob-Iicsając9go CRC. Jak na pocsąt9k całki9m nieźle. Niby dopi9ro sacsynamy, a już potrafimy stworsyć tak swięsły kod. Przypomnijmy więc:
unsigned Long r;
while (Len--) r= ((r<- tab [ (unsigned char) ((r24) & Oxf f) ];
J9st J9dnak p9wi9n probbm. Jak wi-daL powyższa pętla op9ruj9 na danych będących kol9jnymi bajtami pobi9ran9j wiadomości. Chcąc wykorzystać tak na-pisany program nal9Ży dopisać na koń-cu wiadomości (dop9łniL ją) W/8 bajtów o wartości S9ro. W praktyc9 moŻ9 to sta-nowifi ni9dogodnośL lub nie, sal9Ży od konkr9tnych roswiąsań. Jeśli blok da-nych jest prs9chwytywany prs9s inny fragm9nt programu, moŻ9iny się spodsi9-waL naw9t sporych kłopotów. J9dnym s możliwych roswiąsań będsi9 dopisani9 poniżss9j linii (będsi9 ona wykonywana po wyjściu s pętli oblics9niow9j s prsy-kładu pokasan9go wcs9śni9j):
for (1=0; iLinię tę będsi9 można późni9j smody-fikowafi tak, Ż9by uniknąć koni9csności wcsytywania S9rowych bajtów lub w spo-sób jawny dopisywać S9ra jak wyŻ9J. Dla objaśni9nia samysłu J9sscs9 ras posłuży-my się rysunki9in snanym s csęści 2, któ-ry dla wygody powtarsamy poniŻ9J (rys. 5). Zauważmy J9sscs9 dwa fakty:
Końcówka - S9row9 bajty (będsi9 ich W/4) pojawiając9 się na końcu pobi9ra-n9j wiadomości będą "wpychan9" do re-J9stru s praw9j strony, ale ich S9rowa wartość ni9 będsi9 miała Żadn9go wpły-wu na wynik oblics9ń. Wynika to z te-go, że jak pamiętamy XOR-owani9 s ze-rami ni9 smi9nia bajtu W9jściow9go. Tak więc, funkcja podstawowa wylicsająca bajty S9row9 g9n9ruj9 wyniki wykorsys-tywan9 w kol9jnym cyklu oblics9ń, co powoduj9, że po ich sakońcs9niu wssystki9 prs9syłan9 dan9 "prs9jdą" prs9s r9J9str.
Nagfówek - jeśli po sainicjowaniu re-jestr będsi9 miał S9rową wartość, to
cst9ry pocsątkow9 it9racj9 pętli są rów- nosnacsn9 s prs9sunięci9m cst9T9ch pi9r- wssych bajtów wiadomości. Wynika to s faktu, że pi9rwss9 32 bity st9rując9 Ipobi9ran9 kobjno s r9J9stru) mając war- tość S9rową, są całkowici9 b9s wpływu na wynik XOR-owania. Co więc9j, naw9t jeśli wartość początkowa r9J9stru ni9 jest S9rowa, to pi9rwss9 cst9ry bajty itera- cji omawian9go algorytmu dadsą rów- . ni9Ś J9dnosnacsny efekt prs9sunięcia pi9rwssych cst9r9ch bajtów wiado- ^ t mości i XOR-owania ich s p9wną sta- " łą wartością (będącą funkcją pocsątkow9- go stanu r9J9stru).
Powyśss9 fakty połącson9 s prs9- mi9nnością op9racji XOR HA B) C = A (B C)) osnacsają, że bajty wiado- mości ni9 wymagają prs9skoku o W/4 bajtów r9J9stru, ni9 będą więc prs9s nie- go prs9pusscsan9. Zamiast t9go będą XOR-owan9 s najstarszym bajt9in r9J9st- ru sanim zostaną użyt9 do ind9ksowania tablicy. Na tej podstawi9 moŻ9my już zmodyfikować nass algorytm. J9go gra- ficsna int9rpr9tacja jest prs9dstawiona na rys. 6, a kom9ntars do rysunku poniŻ9J:
1. Prs9suń r9J9str o J9d9n bajt wie- wo, csytając nowy bajt wiadomości.
2. XOR-uj najstarssy bajt, wysunięty właśni9 s r9J9stru s następnym bajt9in wiadomości, otrsymując ind9ks tablicy [z prs9dsiału od Odo 255).
3. XOR-uj r9J9str s pobraną s tablicy daną.
4. Idź do pkt. 1, jeśli ni9 wykorsys-tałeś wssystkich bajtów wiadomości.
R9J9str dla powyżss9go algorytmu musi być sainicjowany taką samą war- tością jak w omawianym poprs9dnio s tym, że wartość pocsątkowa musi być powtórsona w tablicy cst9rokrotni9. Jeśli w poprs9dni9j ni9todsi9 były wykorsys- tywan9 0, tak samo nal9Ży je stosować w tablicach tworsonych dla now9go al- gorytmu. Można więc powi9dsi9ć, że obi9 W9rsj9 algorytmów będą taki9 sa- me, dadsą id9ntycsny wynik. Zapis w ję- syku C będsi9 więc dobrs9 nam snany: unsigned Long r;
r=0;
while (len--) t=((t< - tab[ (unsigned char) (r24)
- *pMsg++];
W powyżssym kodsi9 łatwo snajdu- J9my tablicową impl9m9ntację oblicsania CRC. Maska Oxff moŻ9 być stosowana i w tym prsypadku dla sachowania kom- patybilności, jakkolwi9k podstawowa pęt-
la wygląda jak wyŻ9J. Zastosowaną tu ni9todę będsi9iny nasywać bezpośrednim algorytmem tablicowym.
Odwrócona metoda tablicowa
Wydaj9 się, że powyżssa ni9toda jest już całkowici9 soptymalisowana. Csy na p9wno? Zal9Ży jak na to patrs9ć. Jeśli uwsględnimy p9wn9 C9chy fisycsnych układów stosowanych do r9alisacji transmisji danych, to ssybko dojdsi9iny do wniosku, że ni9 powi9dsi9liśmy J9sscs9 ostatni9go słowa. Mimo, że snal9Źliśmy się na granicy rosumi9nia t9matu spróbuj 9 my wprowadsić kol9jny stopi eń. komplikacji. Potrs9bna nam będsi9 do t9go d9finicja: o p9wn9j dan9j lr9J9strs9) będsi9my mówić, że jest odwrócona, jeśli jej bity stanowią odbici9 Iustrsan9 wsględ9m środka. Na prsykład ciąg 0101 jest 4-bitowym odbici9m ciągu 1010. Ciąg 0011 jest odbici9in 1100. I J9sscs9 ni9co bardsi9j skomplikowany prsykład: 0111-0101-1010-1111-0010-0101-1011-
lioo to odbici9 ooii-iioi-ioio-oioo-
1111-0101-1010-1110.
Po co to wssystko? Otóż wprowads9-ni9 odwrócon9j m9tody tablicow9j moŻ9 snacsni9 ułatwić sprsętow9 oblicsani9 CRC w syst9mach transmisji danych. Jak wi9iny więkssość układów UART wysyła dan9 w linię pocsąwssy od najmłodss9-go bitu w bajci9 do najstarss9go, tymcsa-S9in W9 wcs9śni9jssych rosważaniach sa-wss9 rospocsynaliśmy analisę od bitu najstarss9go. Ocsywiści9 proc9sor pora-dsi sobi9 s takim probl9m9m, i tak bę-dsi9 odcsytywał dan9 bajtami s bufora UART-u. Są J9dnak ursąds9nia, w których kontrola CRC jest r9alisowana sprsętowo on-line prs9s sp9cjalisowan9 układy. Odbywa się to na posiomi9 stru-mi9nia danych - bit po bici9. Na potrs9-by takich właśni9 układów opracowano
Bezpieczna wymiana danych w systemach mikroprocesorowych
Elektronika Praktyczna 3/2003
39
KURS
Ś Wiadomość (nie pobierana)
3 2 10
Bajty
253 254 255
Rys. 5
odwróconą metodę tablicową. Rozpatruje się w niej ciąg bajtów taki sam jak w metodach poprzednich, ale bity w każdym bajcie są odwrócone: bit 7 staje się bitem 0, bit 6 bitem 1, itd. Tym razem dane są przesuwane w rejestrze nie w lewo, lecz w prawo. Wartość początkowa rejestru jest taka sama jak w poprzedniej metodzie, przy czym poszczególne bity są odwrócone zgodnie z powyższym opisem. Odwrócone są też dane zapisane w tablicy. Jedynie dane pozostają bez zmian. Do obliczeń pobierane są bity w kolejności nadchodzenia (czyli od bitu najmłodszego do najstarszego). Zasadę działania algorytmu ilustruje rys. 7.
Zauważmy, że i w tym przypadku strumień danych nie musi być przepuszczany przez rejestr. No i jeszcze jeden szczegół. Po zakończeniu obliczeń w rejestrze znajduje się obliczona wartość CRC... oczywiście odwrócona. Powyższy algorytm będziemy nazywali tablicowym algorytmem odwróconym.
Oczywiście nasuwa się spostrzeżenie, że przecież można odpowiednio odwrócić bity przed przesłaniem ich do UART-u, bez konieczności opracowywania dodatkowych algorytmów. Nie zawsze jest to jednak możliwe, choćby z uwagi na zachowanie kompatybilności z innymi systemami. Poza tym, wbrew pozorom
Wiadomość (nie pobierana)
Wiadomość (nie pobierana) -
3 2 10 Bajty
253 254 255
Rys. 6
nie jest to też zadanie łatwe do wykonania dla procesorów. Na ogół nie posiadają one odpowiedniego rozkazu i w takiej sytuacji musiałyby wykonywać ,,kawałek" bardziej złożonego programu. Dodatkowe angażowanie procesora do takich działań w przypadku stosowania dużych prędkości transmisji mogłoby być nie do przyjęcia.
Metoda odwróconego generatora
Nie, nie, to jeszcze nie koniec. W nadziei, że wprowadzanie nowych udziwnień może skutkować nieoczekiwanymi efektami końcowymi, tym razem zastosujemy trochę niejasną na ,,pierwszy rzut oka" zmianę. Będzie ona polegała na odwróceniu wielomianu generującego. Jeśli wartość G=11101 była dobra, to 10111 również powinna się sprawdzić i okazuje się w praktyce, że jest to słuszne założenie. Powyższy pomysł znalazł uznanie w organizacji zajmującej się standaryzacją zagadnień związanych z transmisją danych - CCITT, która do ,,legalnych" generatorów zaliczyła również generatory odwrócone. Dla uniknięcia zamieszania są one oficjalnie nazywane reversed. Mamy więc np.:
X25 standard: 1-0001-0000-0010-0001 X25 reversed: 1-0000-1000-0001-0001
Bajty
0 1 2 3

c
1
2
a

25C 254

żbt
Rys. 7
CRC16 standard: 1-1000-0000-0000-0101 CRC reversed: 1-0100-0000-0000-0011
Zwróćmy uwagę na to, że zostały odwrócone całe generatory włącznie z domyślnym bitem o wartości ,,1" na najstarszej pozycji, a nie tylko W dolnych bitów. Jest to znacząca różnica. W opisywanym wcześniej tablicowym algorytmie odwróconym stosowany generator był identyczny z tym, jaki wykorzystywaliśmy w metodzie nieodwróconej. W związku z tym musimy pamiętać, że odwrócony algorytm tablicowy nie jest odpowiednikiem algorytmu z odwróconym generatorem.
Czy to już wszystko? Jeśli chodzi o algorytmy, to można powiedzieć, że tak. Pozostało jeszcze kilka zagadnień ogólnych i długo oczekiwane zapewne przykłady, przykłady, przykłady. Na razie głowa chyba nam jednak urosła i trzeba jej dać odpocząć. Do następnego miesiąca! Jarosław Doliński, AVT jaroslaw.dolinski@ep.com.pl
[l] Artykuł powstał na podstawie publikacji "A painless guide to CRC error detection algorithms", Ross N. Williams. Można ją znaleźć pod adresem http://www.riccibitti.com/crcguide.htm.
[2] Tanenbaum, A.S., ,,Computer Networks", Prentice Hali, 1981, ISBN: 0-13-164699-0.
90
Elektronika Praktyczna 3/2003
Vocoder
PROJEKTY
AVT-5095
W artykule przedstawię
urządzenie służące przede
wszystkim rozrywce -
wokoder, po polsku nazywany
także transofonem- Modyfikuje
on glos tak, że brzmi jak
krasnala z filmu "King Size"
lub "Wielkiego Brata" czy
świadka koronnego w sądzie.
Podobne urządzenie było
opisywane w siostrzanej EdW.
Zawierało modulatory,
demodulatory, wzmacniacze
itp., w związku z czym było
kłopotliwe w uruchomieniu.
Rekomendacje: układem
zainteresują się z pewnością
ojcowie pragnący wykonać dla
swoich dzieci efektowną
zabawkę lub telefoniczni
kawalarze.
Prezentowany układ cechuje się prostą budową, a co za tym idzie niskim kosztem i łatwością uruchomienia. Nie znalazłem dla niego praktycznego zastosowania, ale może służyć do robienia znajomym dowcipów telefonicznych (bardzo naganne!) lub jako zabawka dla dzieci.
Jest to możliwe dzięki firmie OKI, która wbudowała w strukturę układu scalonego przetworniki A/C i C/A z filtrami LPF oraz cyfrowy blok obróbki dźwięku DSP.
Projektując wokoder, skorzystałem z noty aplikacyjnej układu MSM6722. Na rys. 1 przedstawiono schemat blokowy tego układu.
Budowa i działanie układu
Schemat elektryczny układu (rys. 2) jest kopią schematu z noty aplikacyjnej zalecanej przez producenta. Na płytce zamontowano stabilizator 5 V, dzięki czemu układ może być zasilany prawie z dowolnego zasilacza. Na-
DV AY DGND AGND TEST
MIN
i I I I I
Filtr D.P.
AOUTi DAOi
PD(P3J
UPC(P2)
DWC(P1J
PRST(PO)
M5
A/C
^M 9
Rltr D.P.
C/A
Modli
rnodyffciLCji
dŹHlfku
Rys. I. Schemat blokowy układu MSM6722
Elektronika Praktyczna 1/2003
21
Yocoder
AGND
Rys. 2. Schemat elektryczny wokodera
DGND
leży jednak pamiętać, że to samo napięcie zasila także wzmacniacz mocy U3 typu LM386. Zalecane jest więc zasilanie z zasilacza o napięciu 9...15 V, niekoniecznie stabilizowanego. Masy i zasilanie analogowe i cyfrowe są rozdzielone. Łączą się tylko w jednym punkcie masy zasilacza. Dodatkowo, napięcie zasilania obwodów analogowych jest filtrowane za pomocą filtru LC (L2, C13).
Wzmocnienie sygnału ze wzmacniacza mikrofonowego i liniowego należy ustawić tak, aby amplituda sygnału na wejściu ADIN wynosiła
Charakterystyka układu MSM6722:
- wbudowany wzmacniacz mikrofonowy,
- wbudowany wzmacniacz liniowy,
- wbudowany filtr pasmowy,
- wbudowany przetwornik A/C 8-bitowy,
- wbudowany przetwornik C/A 9-bitowy,
- 17 kroków zniekształcania dźwięku,
- sterowanie pracą układu za pomocą klawiatury lub mikroprocesora,
- wbudowany generator zegarowy,
- pojedyncze napięcie zasilania 5V,
- obudowa SOP24.
około 3V , ale nie przekraczała tej wartości. Dla wzmacniacza mikrofonowego poziom sygnału na jego wyjściu jest określony zależnością:
V =-(R2/R6)*V .
rnout rnln
Amplituda sygnału wyjściowego, po przejściu przez wzmacniacz mikrofonowy i liniowy, będzie równa:
Vlout=((R2*R8)/(R6*R7))*Vm.n Wzór ten wynika z połączenia wzmacniaczy mikrofonowego i liniowego (wewnątrznych układu)
zgodnie ze schematem przedstawionym na rys. 3. Amplitudę sygnału na wzmacniaczu liniowym określa zależność: Vlou=-(R8/R7)*Vhn
Schemat układu napięcia odniesienia dla wzmacniaczy operacyjnych (w układzei MSM6722) przedstawiono na rys. 4.
Układ MSM6722 może pracować w dwóch trybach, wybieranych poziomem napięcia na wejściu MS. W pierwszym trybie (MS=L) do układu podłączamy
Rys. 3. Budowa wzmacniacza mikrofonowego
Elektronika Praktyczna 1/2003
Yocoder
klawiaturę. Naciskając przyciski możemy zmienić wartość częstotliwości o jaką będzie przesuwany dźwięk w górę lub w dół. W drugim trybie (MS=H) do układu podłączamy koder HEX lub np. mikroprocesor. Ustawiając cztero-bitową liczbę binarną możemy wybrać wartość częstotliwości o jaką będzie przesuwany dźwięk w górę lub w dół. W układzie opisanym w artykule są dostępne obydwa warianty. Było to możliwe dzięki zastosowaniu DIP-switcha zawierającego 6 przełączników. Ze względów konstrukcyjnych oraz po to, aby zapewnić wygodę użytkowania, część styków DIP-switcha połączono równolegle z mikroswitchami. Sygnał wyjściowy jest podawany na wejście wzmacniacza mocy za pośrednictwem potencjometru PRl. Sygnał ze wzmacniacza jest dostępny na złączu J2, do którego można podłączyć głośnik. Sygnał wychodzący z układu MSM6722 jest dodatkowo kierowany na złącze CON3 typu CINCH. Rezystor R9 zabezpiecza to wyjście przed przeciążeniem w przypadku zwarcia do masy.
Montaż
Schemat montażowy płytki przedstawiono na rys. 5. Montaż rozpoczynamy od wlutowania układu MSM6722 w obudowie SMD. Jeśli wokoder podłączymy do innego urządzenia, które ma nim sterować (np. do mikroprocesora), to nie montujemy przełącznika SW2. Zwieramy tylko wyprowadzenia 2 i 11 przełącznika, wprowadzając układ w tryb BinaryMode. Do wyprowadzeń 3, 4, 5 i 6 doprowadzamy sygnały o poziomach TTL sterujące układem. Jeśli chcemy tylko poznać możliwości układu lub będziemy korzystać z trybu Up/Down Modę, montujemy wszystkie elementy. Urządzenie nie wymaga uruchamiania poza ewentualną regulacją wzmocnienia wzmacniacza mocy za pomocą potencjometru Pl.
Użytkowanie
Sygnał wejściowy z mikrofonu podajemy na wejście mini jack JPl. Jeśli dysponujemy źródłem o większej amplitudzie (magnetofon lub CD), to sygnał podajemy na wejście JP2. Włożenie wtyczki
Tab. 1. Funkcje wyprowadzeń układu MSM6722
Wyprowa- Symbol Typ Komentarz dzenie
24 DVdd - Napięcie zasilania bloku cyfrowego (należy blokować kondensatorem 0,1 jj.F do DGND)
20 DGND - Masa cyfrowa
12 AVdd - Napięcie zasilania bloku analogowego (należy blokować kondensatorem 0,1 jj.F do AGND)
18 AGND - Masa analogowa
16 MIN I Wejście wzmacniacza mikrofonowego
15 MOUT 0 Wyjście wzmacniacza mikrofonowego
14 LIN I Wejście wzmacniacza liniowego
13 LOUT 0 Wyjście wzmacniacza liniowego
11 FOUT 0 Wyjście sygnału z filtru pasmowego
10 ADIN I Wejście przetwornika A/C, max amplituda sygnału 3V
9 AOUT 0 Wyjście sygnału z C/A po przejściu przez filtr pasmowy
8 DAO 0 Wyjście sygnału z C/A bez obcięcia przez filtr pasmowy
21 _RESET I Wejście zerowania (aktywny niski). W czasie aktywnego sygnału Reset wyjścia DAO i AOUT przyjmują poziom niski. Zerowanie następuje automatycznie po włączeniu zasilania.
6 THR/ _CHG I Wejście wyboru sygnału kierowanego na wyjście AOUT (zniekształcony lub nie) THR/_CHG=H - sygnał niezmodyfikowany THR/_CHG=L - sygnał modyfikowany
7 TEST I Wejście w tryb testowania (tylko dla producenta), w czasie normalnej pracy TEST=L
23 XT I Wejście wzmacniacza oscylatora kwarcowego
22 _XT 0 Wyjście wzmacniacza oscylatora kwarcowego
19 SG 0 Wyjście napięcia odniesienia AVdd dla wzmacniaczy operacyjnych wewnątrz układu
17 SGS 0 Wyjście napięcia odniesienia AVdd dla układów zewnętrznych
Znaczenie sygnałów dla trybu klawiatury (Up/Down modę):
5 MS I Wybór trybu pracy. Dla UP/DOWN UPC=L
2 UPC* I Impuls dodatni zwiększa przesunięcie częstotliwości sygnału
3 DWC* I Impuls dodatni zmniejsza przesunięcie częstotliwości sygnału
4 PRST I Impuls dodatni (min 62ms) ustawia zerowe przesunięcie częstotliwości sygnału
1 PD I Wybór trybu PowerDown. PD=L - normalna praca, PD=L - zmniejszony pobór mocy
Znaczenie sygnałów dla trybu binarnego (BinaryMode):
5 MS I Wybór trybu pracy. Dla Binary UPC=H
1, 2, 3, 4 P3, P2, P1, PO I Wejścia poziomu i kierunku przesunięcia częstotliwości sygnału. PO - bit najmniej znaczący, P3 - bit najbardziej znaczący. Liczba %1000 oznacza zerowe przesunięcie.
Objaśnienia do tablicy: Typ=l - wejście Typ=O - wyjście * minimalny czas trwania impulsu na wejściach UPC i DWC wynosi 62ms minimalny czas przerwy pomiędzy impulsami wynosi 32ms, co daje maksymalną częstotliwość zmian niewiele ponad 10Hz.
w JP2 automatycznie odcina sygnał ze wzmacniacza mikrofonowego. Sygnał wyjściowy jest dostępny na wyjściu CON3 typu cinch oraz po wzmocnieniu na złączu CON2. Do CON2 można podłączyć głośnik o rezystancji min. 4 O, lub słuchawki. Wzmocnienie sygnału na tym wyjściu regulujemy potencjometrem PRl. W modelowym układzie sygnał z głośnika ("brzęczyk" z PC) nie był rewelacyjny, ale po podłączeniu
aktywnych głośników komputerowych do CON3 dźwięk był dobry. Jeśli chcemy wypróbować tryb Up/Down, wszystkie przełączniki SW2 ustawiamy w pozycji OFF (rozwarte). Przyciskami SW3 Up i SW4 Down zmieniamy przesunięcie częstotliwości w górę i w dół. Naciskając SW5 Preset, ustawiamy przesunięcie zerowe. Po ustawieniu SW2.1 w pozycji ON omijany jest blok przesuwania częstotliwości i na wyjście jest
Elektronika Praktyczna 1/2003
23
Yocoder
SGC
AGND
AV
MSM6722
|50k (TYP)
Sygnał Pawar-down
50k
Do W.O. filtrów dolnoprzępuBtowycłi
20k (TYP)
AGND
AGND
Rys. 4. Budowa układu polaryzacji stopni analogowych układu MSM6722
podawany sygnał z filtru LPF. Ustawiając SW2.6 w pozycji ON, włączamy tryb PowerDown.
Aby pobawić się trybem Bina-ry, przełącznik SW2.2 ustawiamy w pozycji OM Przełącznikami SW2.3...SW2.6 ustawiamy żądany
Rys. 5. Rozmieszczenie elementów na płytce drukowanej
poziom i kierunek przesunięcia częstotliwości. SW2.1 umożliwia, podobnie jak w trybie UP/DOWN, ominięcie bloku modyfikowania dźwięku. Na rys. 6 pokazano przesunięcie częstotliwości w stosowanej w muzyce skali dźwiękowej.
Na koniec życzę wszystkim dobrej zabawy z wokoderem. Uwierzcie mi, "Pipek dręczyciel" przy nim "wysiada". Na wiele przeprowadzonych rozmów telefonicznych nikt mnie nie rozpoznał (nawet naczelny, a wiedział, że zbudowałem wokoder). Sławomir Skrzyński, AVT slawomir.skrzynski@ep.com.pl
WYKAZ ELEMENTÓW
Rezystory
R1...R5: lOOkO
R6, R7: 10kO
R8: 330kQ
R9: lkii
RIO: 1QQ
PR1: 10kO
Kondensatory
CL C10...C13: lOOnF
C2, C3: 30pF
C4, C5: 51pF
C6...C8: 470nF
C9: lnF
CE1: 1000jiF/16V
CE2: 100^F/16V
CE3, CE4: 1jiF/16V
CE5: 10p.F/16V
CE6: 220^F/16V
Półprzewodniki
Ul: MSM6722
U2: 7805
U3: LM386
Różne
SW1, SW3...SW5: mikroprzełączniki
SW2: DIP-switch 6
JP1, JP2: minijacki do druku
CON3: cinch do druku
L2: IOOjiH
Jl: ARK2
J2: jumper 2x1
Ql: kwarc 4MHz
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/styczenO3.htm oraz na płycie CD-EP1/2003B w katalogu PCB.
16
Rys. 6. Przesunięcie częstotliwości w skali dźwiękowej
Elektronika Praktyczna 1/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.
"Inteligentne" tylne światło do roweru z sygnalizacją stopu
Mikro kontrolery siafy się
tak tanie, że można je bez
uszczuplania kieszeni
stosować prawie do
wszystkiego. Choćby jako
"inteligentne" sterowniki
oświetlenia do roweru.
Projekt
108
Układ, który pr9Z9ntuję, ma wi9l9 zalet w porównaniu z typowymi (czytaj: sklepowymi) gadŚ9tami t9go rodza-ju. Wśród najwaśni9J szych można wymi9nić:
1. 6 9f9któw błyskania diod LED wraz z funkcją sygnalizowania zatrzymania, co zwiększa b9zpi9cz9ństwo ro-W9rzysty.
2. Włączani9, wyłączani9 i zmiana 9f9ktu następu]9 za
pomocą ]9dn9go przycisku. Po wyłącz9niu, chociaż w świa-tełku jest bat9ria, ni9 pobi9ra ona prądu.
Moim C9l9m było udosko-nal9ni9 posiadan9J tylnej lampki row9row9J. Prz9d prz9-budową miała 5 diod świ9cą-cych, któr9 migały podczas jazdy, a po wciśnięciu hamulca zapalały się wszystki9 naraz. Wykorzystał9m z ni9J tylko obudowę i czujnik na linkę
hamulcową. Pomimo że układ jest prosty (scti9rnat 9l9ktrycz-ny pokazano na rys. 1), godnym uwagi jest sposób st9ro-wania funkcjami i włącza-ni9m za pomocą J9dn9go przycisku.
W układzi9 zastosowano mikrokontrol9r AT89C2051, w któr9go pamięci znajduJ9 się program pokazany na list. 1. Wydajność prądowa portów mikrokontrobra jest na
D4"D8
Rys. 1
Elektronika Praktyczna 3/2003
93
PROJEKTY CZYTELNIKÓW
List. 1. Program sterujgcy pracg mikrokontrolera w sterowniku lampy
; Program został napisany przez Piotra Andryszczaka. ; Pracuje z kwarcem ok. 12MHZ. Poszczególne efekty ; zostały napisane tak (za pomocą "clr" i "setb"), ; aby można było łatwiej je modyfikować. CPU atmel.def
org OOh ajmp start
org 03h
ajmp przycisk
org 13 h ajmp stop
mov Pl,#FFh
mov P3,łFFh
mov R2,#00
nop
nop
nop
mov A,P3
jb Acc.3,dalej
mov Pl,#FFh
clr Pl.l
clr P1.0
clr P1.4
mov B, #5
acall op
clr P1.2
clr P1.3
; Jeśli STOP spowodował WlacZenie ; zasilania to diody wyświetlają;
przycisk:
alej
reti
mov IE,#10000101b
mov IP,#00000101b
setb ITO
setb IT1
clr P3 .0 tl:
mov Pl,#FFh
cjne R2,#l,efekt2
clr P1.2
acall opz
clr Pl.l
acall opz
clr P1.0
acall opz
clr P1.4
acall opz
clr P1.3
acall opz cjne R2,#l,efekt2
setb P1.2
acall opz
setb Pl.l
acall opz
setb P1.0
acall opz
setb P1.4
acall opz
setb P1.3
acall opz
ajmp efektl t2:
mov Pl,#FFh
cjne R2,#2,efekt3
clr P1.2
clr P1.3
mov B, #2
acall op
setb P1.2
setb P1.3
clr Pl.l
clr P1.4
acall opz cjne R2,#2,efekt3
acall opz
setb Pl.l
setb P1.4
clr P1.0
mov B, #2
acall op
setb P1.0
ajmp efekt2
cjne R2,#3,efekt4 mov Pl,#00h acall opz mov Pl,#FFh acall opz cjne R2,#3,efekt4 mov B, #2 acall op ajmp efekt3 ekt4:
mov Pl,#FFh
wylać stop:
cjne R2,#4,efekt5 clr P1.2 mov B, #2 acall op setb P1.2 clr P1.3 mov B, #2 acall op setb P1.3 ne E2,#4,efekt5 clr Pl.l mov B, #2 acall op setb Pl.l clr P1.4 mov B, #2 acall op setb P1.4 clr P1.0 mov B, #2 acall op setb P1.0 ajmp efekt4
Ś :
mov Pl,#FFh cjne R2,#5,efekt6 clr P1.2 clr Pl.l mov B, #3 acall op setb P1.2 setb Pl.l ne R2,#5,efekt6 clr P1.4 clr P1.3 mov B, #3 acall op setb P1.4 setb P1.3 ajmp efekt5
Ś :
mov Pl,#FFh
cjne R2,#6,wylacz
clr P1.2
acall opz
setb P1.2
clr Pl.l
acall opz
setb Pl.l
clr P1.0
acall opz
setb P1.0
clr P1.4
acall opz
setb P1.4
cjne R2,#6,wylacz
clr P1.3
acall opz
setb P1.3
clr P1.4
acall opz
setb P1.4
clr P1.0
acall opz
setb P1.0
clr Pl.l
acall opz
setb Pl.l
ajmp efekt6
setb P3.0
push B mov Pl,#FFh all opz
clr Pl.l clr P1.0 clr P1.4 mov B, #5 acall op clr P1.2 clr P1.3
3topX:
mov A, P3
jnb Acc.3,stopx acall opz mov Pl,łFFh acall opz pop B
reti
mov B, #1 mov R0,#FFh ov Rl,#FFh
opl: oplX:
nop
djnz Rl, oplx
djnz R0,opl
djnz B,op
ret
EWD
wyl=
Opóźnienie dla kwarcu ok. 12MHZ Dla kwarcu 32,768kHz wpisać OOh
94
Elektronika Praktyczna 3/2003
PROJEKTY CZYTELNIKÓW
tyle duża, że możemy bezpośrednio sterować diodami świecącymi. Mały pobór prądu przy dużej intensywności świecenia uzyskałem dzięki zastosowaniu diod firmy Kingbright o oznaczeniu L-793SRC-F.
Opis układu
Po włożeniu baterii (2xR6) do pojemnika układ pozostaje wyłączony, aż do momentu, gdy naciśniemy hamulec w rowerze lub przycisk włączający. Gdy to nastąpi, tranzystory Tl i T2 zaczynają przewodzić, dołączając ujemny biegun zasilania do wyprowadzenia GND mikrokon-
trolera. Wtedy, po wyzerowa-niu, mikrokontroler sprawdza, czy jest naciśnięty przycisk (co jest rozpoznawane przez sprawdzenie poziomu napięcia na wyprowadzeniu P3.2). Jeśli nie, oznacza to, że załączenie nastąpiło na skutek naciśnięcia hamulca i mają się zaświecić wszystkie diody. Następuje to dwustopniowo: najpierw świecą się diody 2, 3, 4, a po chwili dwie skrajne, czyli 1 i 5. Świecą do momentu puszczenia hamulca -tranzystory przestają przewodzić i zasilanie jest odcinane od układu. Jeżeli załączenie zasilania nastąpiło przyciskiem dołączonym do wy-
prowadzenia P3.2 portu, to na wyprowadzeniu P3.0 tego portu występuje poziom niski (wpisywane jest ,,0") podtrzymujący załączone tranzystory nawet po jego puszczeniu. Jednocześnie wyświetlany będzie efekt numer 1. Jeżeli teraz wciśniemy ponownie przycisk, układ przejdzie do wyświetlania kolejnego efektu, a jeśli jest to ostatni z listy, to na wyprowadzenie P3.0 wpisana zostanie jedynka i układ wyłączy się. Po wciśnięciu hamulca w czasie normalnej pracy diody świecą się, jak już wcześniej wspomniano. Piotr Andryszczak
WYKAZ ELEMENTÓW Rezystory
Rl: 51kQ
R2: 4,7kQ
R3...R7: 75Q
Kondensatory
Cl, C2: lOOnF
C3, C7: 220nF
C4, C5: 30pF
Có: 47O^F/1ÓV
Półprzewodniki
D1...D3: 1N4148
D4...D8: diody LED
(najlepiej Kingbright typ
L-793SRC-F)
Tl: BC557
T2: BC547
Ul: AT89C2051
(zaprog ra m owa ny)
Elektronika Praktyczna 3/2003
95
NA CD M.IN.: KATALOG FIRMY NATIONAL SEMICONDUCTOR, NAJNOWSZE WERSJE BASCOMA
g Międzynarodowy magazyn elektroników konstruktorów
3/2003 marzec 15 zł 50 gr (w tym 7% vat)
* 11MW
"Inteligentne" tylne światło do roweru z sygnalizacjq stopu
lnteresujqcy i bardzo praktyczny projekt naszego Czytelnika przedstawiamy na słr. 93.
Dekoder dźwięku dookólnego SRS
Dźwięk dookólny nieodłqcznie kojarzy się nam z zespołem wielu głośników rozstawionych w pomieszczeniu zazwyczaj w wymyślny sposób. O tym, że dźwięk sprawiajqcy wrażenie dookólnego można uzyskać w warunkach domowych na zwykłym, dwuczęściowym zestawie głośnikowym przekonajq się Czytelnicy artykułu ze słr. 27.
Uniwersalny nadajnik RC5/SIRC
8-pinowe mikrokontrolery potrafiq bardzo wiele! Niedowiarków zapraszamy na str. 37,
Lampowy analizator widma
Projekt dla tych, którzy kochajq użyteczne starocie. Słr. 41.
Autorouter Specctra
Ciekawostki z niedostępnego dla większości elektroników świata przedstawiamy na słr. 68.
VFM - wirtualny miernik częstotliwości
Nasi wschodni sqsiedzi też się znajq na elektronice - zapraszamy na słr. 33!
Automatyczny włqcznik USB
Prosty, lecz praktyczny układ w dobie rosnqcej popularności USB. Słr. 75.
AVT Nixie Clock
Mimo, że to tylko zegar, wzbudził spore zainteresowanie wśród Czytelników. Nie jesteśmy pewni, czy z powodu zastosowanych wyświetlaczy, czy sposobu sterowania... Słr. 46.
DEIIGH EXPLOiEH
D>XP
TECHNDLDIT 1T ALT1H
JuPIC - programator mikrokontrolerów PIC współpracujqcy z programem MPLAB T
Programator, którego budowę przedstawiamy na słr. 21, odbiega od tanich i przez to popularnych na rynku programatorów dla mikrokontrolerów PIC - współpracuje bowiem z MPLAB-em!
Protel DXP - przełom na rynku narzędzi EDA dla elektroników
Możliwości nowego Protela przedstawiamy w artykule na słr. 51.
Elektronika Praktyczna 3/2003
ADAM-6000 - najnowsza seria zdalnych modułów kontrolno-pomiarowych firmy Advantech
Pomysłom firmy Advantech nie ma końca: w artykule ze słr. 133 przedstawiamy moduły z nowej rodziny ADAM.
Mikrokontrolery Nitron *
HC08 i tylko 8 wyprowadzeń? Tak! Motorola doceniła także rynek niewielkich aplikacji, o czym można się przekonać na słr. 62.
UprogHS 84 - nowa generacja programatorów Uprog
Nowy programator z szybko powiększajqcej się rodziny UprogHS przedstawiamy na słr. 58.
IKA
Nr 3(123)
marzec 2003
Yampp-7 -kieszonkowy odtwarzacz MP3, część 1............. 14
JuPIC - programator mikrokontrolerow PIC współpracujqcy
z programem MPLAB...............................................................21
Dekoder dźwięku dookólnego SRS, część 1.........................27
VFM -wirtualny miernik częstotliwości...................................33
Uniwersalny nadajnik RC5/SIRC, część 1 ..............................37
Lampowy analizator widma...................................................41
AVT Nixie Clock-VHDLi lampy, część 2..............................46
Automatyczny włqcznik USB...................................................75
Protel DXP - przełom na rynku narzędzi EDA
dla elektroników, część 1........................................................51
Autorouter Specctra, część 2.................................................68
Podstawy projektowania systemów
mikroprocesorowych, część 1...........................................".... 83
Język C dla mikrokontrolerow 8051, część 10...................... 86
CRC doda Ci pewności, część 3........................................... 89
Automatyka
ADAM-6000 - najnowsza seria zdalnych modułów kontrolno-pomiarowych firmy Advantech........................................... 133
Nowoczesne zasilacze do układów automatyki............... 137
Wonderware InTouch krok po kroku - kurs
obsługi, część 3....................................................................... 140
Podzespoły
Mikrokontrolery Nitron
62
UprogHS 84 - nowa generacja programatorów Uprog...... bS
[ Projekty Czytelń i ków^^^^^^^^^^^^^^^^^H
"Inteligentne" tylne światło do roweru
zsygnalizacjq stopu.................................................................. 93
Z kraju i ze świata........................................................119
[ Biblioteka EP.................................................................i;
Kramik+Rynek................................................................97 M
Listy.......
Ekspresowy Informator Elektroniczny.
Wykaz reklamodawcow............................................118
Elektronika Praktyczna 3/2003
BIBLIOTEKA EP
IV ^Bibliotece LP" prezentujemy książki dotyczące zogodnień związonych 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, 131), Chcemy w ten sposób udostępnić je Czytelnikom EP,
Stanisław Pietraszek: Helion 2002
ŚMctronlld PraMyoznoj
Wbrew realiom można odnieść wrażenie, że na polskim największą popularnością cieszą się mik-rokontrolery PIC. Na czym opieram to stwierdzenie? Otóż niedawno na rynku wydawniczym pojawiła się druga książka poświęcona tej właśnie rodzinie mikrokon-trolerów, podczas gdy słynne AVR oraz e51 nie zostały dotychczas tak szczegółowo opisane w żadnej współcześnie wydanej książce.
Autorem prezentowanej książki jest doświadczony wykładowca z Politechniki Śląskiej, który - zjawisko nietypowe w świecie uczelnianym - doskonale radzi sobie z zagadnieniami praktycznymi. Dzięki takiemu nietypowemu połączeniu powstała niezwykle kompetentna, łatwa w odbiorze, przeglądowa książka, której dodatkowym atutem jest 25 przykładów ilustrujących podstawy programowania mikrokontrolerów PIC w asemblerze, a także przykładowe procedury arytmetyczne. Niedoskonałością zawartych w książce przykładów jest ich silna orientacja dydaktyczna, niezupełnie mająca odniesienie do rzeczywistych problemów, na jakie napotykają konstruktorzy. Pośród 25 przykła-
.Mikroprocesory jednoukładowe PIC
dów jest aż 14 różnych wariantów "migaczy", co oczywiście pozwala wyjaśnić różne sposoby odmierzania czasu przez mikro kontroler, ale praktycy chcący poznać nieco bardziej złożone zagadnienia (jak np. obsługę klawiatury matrycowej, interfejsu szeregowego, czy też wyświetlacza LED/LCD) pewnie nie będą czuli się usatysfakcjonowani.
Oprócz klasycznych dla takich pozycji rozdziałów, zawierających prezentację architektury, listy rozkazów oraz peryferiów wbudowy-wanych w różne wersje mikrokontrolerów PIC16 (warte podkreślenia, ponieważ tytuł książki błędnie sugeruje, że obejmuje ona swoją treścią wszystkie mikrokon-trolery PIC), autor sporo miejsca poświęcił omówieniu sposobu posługiwania się narzędziami programowymi (MPASM i MPLAB), za pomocą których tworzone są projekty na mikrokontrolery PIC.
Autor przygotowując prezentowaną książkę podjął się bardzo trudnego zadania, ponieważ zgromadził w niej informacje o bardzo wielu różnych mikrokontrolerach produkowanych przez Microchipa. Pierwotnie zaproponowany przez tą firmę podział (nazwijmy go "klasycznym") na mikrokontrolery Base-Line i Mid-Range nie jest obecnie czytelny, może wręcz powodować pewne nieporozumienia, zwłaszcza wśród początkujących. Stworzenie uwspółcześnionej systematyki w dynamicznie przebudo-
"
wywanej rodzinie mikrokontrolerów PIC jest skazane (jak na razie) na niepowodzenie, co z pewnością utrudniło autorowi pracę. Z tego powodu opisanie wszystkich PIC16 w jednej książce jest zadaniem karkołomnym i w pewnym stopniu zmniejsza czytelność opisu, ale uzyskany efekt końcowy jest zaskakująco dobry.
Za ogromny wkład pracy i kompetentne podejście 5 lutownic! Andrzej Gawryluk
Barbara Borowik, "Pamięci asocjacyjne". Mikom 2002
Jest to książka stojąca nieco z boku głównego nurtu tematyki "czysto" elektronicznej, ale ostatnie wydarzenia
technologiczne fm.in. opracowanie prses firmę Infineon bio-chipów) prawdopodobnie spowodują, że dystans dzielący elektronikę półprzewodnikową od biologicznych sieci neuronowych szybko zostanie pokonany.
Książka, wbrew prawdopodobnej interpretacji tytułu przez elektroników, nie jest poświęcona nowemu rodzajowi
pamięci półprzewodnikowej. Autorka zajmuje się w niej prezentacją złożonych zagadnień związanych z procesami uczenia się różnych modeli sieci neuronowych, w tym jednego szczególnego mechanizmu - pamięci skojarzeniowych fktóre jednak nie mają nic wspólnego z pamięciami CAM!). Tematyka poruszana w książce jest interesu-
Elektronika Praktyczna 4/2003
129
BIBLIOTEKA EP
Legenda:
jąca, aczkolwiek, źle się stało, że wykład jest prowadzony na (chyba, nie jestem tego w stanie zweryfikować) wysokim poziomie akademickim, co dla czytelnika słabo przygotowanego fjest takich z pewnością ok. 99,999%) powoduje, śe jest on w większości zupełnie nieczytelny. Szkoda tym większa, śe do tej pory nie pojawiła się w naszym kraju przyjazna czytelnikom, popularna książka zawierająca kompetentne wyjaśnienia czym tak naprawdę są sieci neuronowe. Może następnym razem?
Tomasz Jasirun
Conor SextonT "Język C - to proste", 197 str.T Wydawnictwo RM 2001
Chociaż książka jest dość stara (polskie wydanie ukazało się dwa lata temu) to z czystym sumieniem możemy ją polecić Czytelnikom EP. Jest to tym bardziej uzasadnione, że na łamach EP ostatnio dosyć często można natrafić na listingi programów w języku C przeznaczonych dla mi kro kontrolerów. Dodatkowo, dosyć dużą popularnością, sądząc z nadchodzących do redakcji ankiet, cieszy się kurs programowania w języku C mikrokontrolerów 8051 publikowany od wielu miesięcy w Elektronice Praktycznej. Dlaczego upływ czasu nie zaszkodził tej książce? Otóż w książce jest zawarty kurs programowania w standardowym języku C, który nie zmienia się tak często jak wersje oferowanych kompilatorów tego języka. Ponadto, opanowanie standardowego języka jest podstawą do pisania programów zarówno dla komputerów osobistych, jak i dla małych systemów zbudowanych w oparciu o rnikrokontrolery.
Książka zawiera dokładnie to, czego można było oczekiwać. Tak więc po krótkim wprowadzeniu opisane są rn.in.: typy danych podstawowe i złożone, stałe, operatory arytmetyczny i logiczne, instrukcje sterujące, funkcje, wskaźniki. Po każdym rozdziale zostały umieszczone ćwiczenia, których samodzielne wykonanie pozwala na zweryfikowanie stopnia przyswojenia opisywanych zagadnień.
Decydując się na zakup książki "Język C - to proste" należy zdawać sobie sprawę, że zawarte w niej informacje (choćby ze względu na objętość książki) nie wyczerpują całości tematyki związanej z programowaniem w języku C. Nie jest to wadą książki, gdyż była ona pisana z myślą o przyszłych programistach, stawiających dopiero pierwsze kroki w pisaniu programów w języku C. Książka jest napisana przystępnym językiem - napisanie pierwszego programu, w tym powszechnie uważanym za trudny język programowania, nie powinno być zbyt "bolesne".
Andrzej Gawiyluk
Leszek Frąckowiak i Stefan Januszewski,
"Energoelektronika, część 1"T Wydawnictwo Politechniki Poznańskiej 2001
Energoelektronika nie jest dziedziną zbytnio popularną wśród przeciętnych elektroników, ale dzięki takim książkom jak prezentowana, zaznajomienie się z nią nie stanowi - przy odrobinie chęci - trudnego zadania. Autorzy przedstawili w niej bowiem praktycznie kom-
książka wybitna, polecamy!
książka o dużych walorach praktycznych, polecamy!
może się pizydać
daleka od doskonałości
nie warto kupować
plet zagadnień związanych z fizyczną budową, sposobami sterowania i zabezpieczania typowych elementów mocy, a także - co niezwykle istotne przy przełączaniu dużych mocy - sporo miejsca poświęcili przedstawieniu właściwości cieplnych elementów półprzewodnikowych i sposobów ich chłodzenia.
Prezentowana książka to pierwsza część trylogii (mamy nadzieję otrzymać także dwie następne jej części), która swoją tematyką obejmuje także przekształtniki i łączniki elektroniczne dużej mocy (o komutacji wewnętrznej -część 2 i zewnętrznej - część 3).
Czytelnikom zainteresowanym dużymi prądami i wysokimi napięciami gorąco polecamy!
Ma rei: Sobiech
130
Elektronika Praktyczna 4/2003
AUTOMATYKA
Modułowe regulatory temperatury
Regulatory z rodziny E5ZN firmy Omron są przystosowane do montażu In-panel, co oznacza, że konstrukcję ich obudów zoptymalizowano pod kątem maksymalizacji wygody montażu w szafach sterowniczych. W tym celu rozdzielono obudowy modułów od podstawek montażowych, na których znajdują się śruby zaciskowe (do podłączeń elektrycznych) oraz zastosowano złącza międzymodu-łowe, które zapewniają automatyczne łączenie elektryczne podstawek modułów montowanych obok siebie na szynie DIN.
Zastosowanie specjalnych podstawek MASTER-SLAVE umożliwia stworzenie regulatora o maks. 32 pętlach regulacji PID, umieszczonych na wspólnej szynie komunikacyjnej i zasilania, co daje znaczną oszczędność na okablowaniu. W każdej pętli można niezależnie uruchomić proces autotu-ningu, zapewniający automatyczny dobór parametrów P, I i D. regulacji.
Szyna komunikacyjna umożliwia podłączanie bezpośrednio do rejestrów regulatora wartości pro-
Tab. 1.
cesowych PV i dalszą regulację na przesłanych wartościach, a także odczyt i zmianę praktycznie wszystkich parametrów pracy każdej z pętli PID oddzielnie.
Obudowy modułów sterowników mają szerokość 22,5 mm. Nieco większe wymiary (48 x 48 mm) ma konsola programująca E5ZN-SDL, za pomocą której można programować i monitorować stany poszczególnych regulatorów zastosowanych w systemie. Komunikacja pomiędzy urządzeniami odbywa się za pomocą wbudowanych interfejsów RS485. Moduły regulatorów wyposażono w dwa nastawniki obrotowe służące do ustalenia adresu w systemie oraz umożliwiające wybór prędkości transmisji danych. Dzięki RS485 regulatory mogą się komunikować także z innymi urządzeniami zastosowanymi w systemie regulacji. Komunikacja odbywa się w trybie half-duplex z maksymalną prędkością wynoszącą 38,4 kbd. Transmisja danych jest zabezpieczana za pomocą detektora BCC [Błock Check Character) oraz kontroli parzystości przesyłanych ramek da-
UIIIKUII
Regulatory temperatury są
zazwyczaj jednym z fragmentów większych
systemów regulacji i sterowania. Budowanie takich systemów na bazie klasycznych regulatorów bywa kłopotliwe, co spowodowało pojawienie się w sprzedaży opracowań modułowych In-panel. Jedną z rodzin regulatorów tego typu przedstawiamy w artykule.
nych. Maksymalna dopuszczana liczba współpracujących ze sobą urządzeń wynosi 16.
Pomimo niewielkich wymiarów zewnętrznych, regulatory E5ZN są niezwykle funkcjonalne i oferują użytkownikowi m.in. stabilną regulację temperatury (dla grzania i chłodzenia) w zamkniętej pętli regulacji 2-PID (ewentualnie On/ Off) oraz nadzór nad poprawnoś-
Regulatory z wejściem dla czu|nlków rezyst. Regulatory z wejściem dla czujników termoparowych
Rodza| wejścia Czujniki platynowe Termopary
Nazwa czujnika PtlOO JPtiOO K J T E L U N R S B
1800 1700 1600 1500 1400 O 1300 ?_- 1200 g 1100 = 1000 S 900 g, 800 E 700 2 600 500 400 300 200 100 0 -100 -200 180C lewi
1700 1700
Ś
H H
H H
1300 1300 H H
Ś H H
Ś H H
Ś H H
850 B50 850 Ś H H
Ś H H
Ś Ś Ś H H
i i i i i i i i i i i i i i i i i i i i i i i i i i i i 5OO.0 loo.p "ó."o" 500.0 ] "OO i i i i i i i i i i i i i i i i i i i i i i i i i i i i 500.0 i i i i i i i 400.0 ; ~4ób~ 400.0 600 I I "40"0" 400.0 1 i i i i i i i "o " 0
m M -20.0 -100 -20.C M m -100 Ś Ś Ś
-2OO -199.9 -199.9 -200 -200 -199.9 -200 -199.E -200
Elektronika Praktyczna 4/2003
135
AUTOMATYKA
cią działania urządzenia wykonawczego (grzałki/agregatu chłodzącego) . Charakterystyka działania regulatora PID może być programowana przez użytkownika (za pomocą zewnętrznego nastawnika). Zakres regulacji parametrów jest następujący:
-P- 0,1,,,999,9 EU (jednostek ,, in ży nier skich'', charaktery s ty c z -nych dla tego typu regulatorów),
- I - 0...3999 s,
- D - 1",99 s.
Kontrola działania urządzenia wykonawczego odbywa się przez monitorowanie pobieranego przez nie prądu, do którego to celu są wykorzystywane bezystkowe transformatory, dostępne jako wyposażenie opcjonalne.
Regulatory E5ZN mogą współpracować z rezystancyjnymi, ter-mozłączowymi (termoparowymi) i podczerwonymi (bezdotykowymi) czujnikami temperatury. Opcjonalnie do wejścia regulatora można
dołączyć dowolny czujnik wielkości fizycznej z wyjściem napięciowym (0...50 mV),co pozwala z jednej strony monitorować różnorodne procesy fizyczne, z drugiej natomiast zakres monitorowanych temperatur jest bardzo szeroki (tab. 1). Wyjścia sterujące regulatorów mogą sterować bezpośrednio przekaźniki półprzewodnikowe (SSR - wyjście sterujące zabezpieczono przed przetężeniem), dostępne są także wersje z dwustanowymi wyjściami uniwersalnymi (tranzystorowymi - 30 VDC/ 50 mA] oraz wyjściami analogowymi (prądowymi). Standardowym wyposażeniem regulatorów są także wejścia i wyjścia uniwersalne. Wejścia mogą mieć różne zastosowania (zależy to od aplikacji), natomiast wyjścia służą do sygnalizacji uszkodzenia urządzenia wykonawczego lub do przekazywania na zewnątrz regulatora napięcia z wyjścia pomiarowego wzmacniacza błędu.
Regulatory E5ZN mogą pracować w otoczeniu o temperaturze -1O...+5OC, a dopuszczalny zakres względnej wilgotności otoczenia powinien się mieścić w przedziale 25...85%. Obudowa zapewnia stopień ochrony IP00, co wyraźnie sugeruje konieczność montowania regulatorów w obudowach urządzeń docelowych. 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.
136
Elektronika Praktyczna 4/2003
AUTOMATYKA
O czym podczas
Podstawowymi parametrami decydującymi o doborze czujnika są: zakres mierzonej temperatury oraz wymagana rozdzielczość pomiaru. Typowe, wymagane dla pomiarów temperatury rozdzielczości wynoszą odpowiednio: O,1C dla temperatur do ok. 500C, oraz 1C dla temperatur powyżej 500C. Warto tutaj wspomnieć o częstym błędzie popełnianym przy doborze urządzeń pomiarowych: chodzi o powszechne mylenie rozdzielczości odczytowej z dokładnością pomiaru. Rozdzielczość, jest to najmniejsza możliwa do odczytania na wyświetlaczu zmiana temperatury, dokładność zaś to potocznie mówiąc, poprawność wskazywania rzeczywistej wartości mierzonej temperatury.
Realne, możliwe do uzyskania rozdzielczości dzięki powszechnemu stosowaniu elektronicznych układów pomiarowych, osiągają wartość 0,01 C. O całkowitej dokładności pomiaru decydować więc będzie raczej element pomiarowy i poprawność wykonania instalacji podłączeniowej.
W zakresie temperatur od ok. -50C do ok. +600C jako czujniki są najczęściej stosowane czujniki rezystancyjne. W tej grupie, ze względu na szeroki zakres pomiarowy oraz wysoką liniowość przetwarzania, najpopularniejszy jest czujnik PtlOO. W zależności od precyzji wykonania, ich dokładność osiąga ok. 0,2C. Jest to granica, którą dla typowych czujników PtlOO trudno przekroczyć. Na całe szczęście, większe dokładności w typowych aplikacjach przemysłowych nie są wymagane.
należy pamiętać
dobierania
temperatury
Dla pomiarów temperatur o wartości powyżej 300...400C (nawet do 1600C) stosuje się czujniki w postaci termopar. Na rynku dostępnych jest wiele różnych typów termopar, różniących się czułością, charakterystyką przetwarzania i dokładnością. Ze względu na szerokie zastosowanie, wspomnimy o trzech podstawowych typach termopar: typu S, typu K oraz typu J. Górne maksymalne mierzone za ich pomocą temperatury (ze względu na wytrzymałość materiałów) wynoszą odpowiednio: ok. 750C, ok. 1350C oraz 1600C.
Pamiętać należy, że każde połączenie kablowe może być źródłem niepożądanych, zakłócających pomiar, napięć termoelektrycznych. Wszelkie połączenia czujnika z miernikiem wykonujemy wyłącznie przewodem kompensacyjnym, dopasowanym do typu termopary. Każdy typ kabli kompensacyjnych posiada izolację w ściśle określonym kolorze. Częstym błędem jest wykonanie podłączenia czujnika do modułu pomiarowego zwykłym przewodem miedzianym.
Następną trudnością jest zmienna temperatura zacisków przyłączeniowych miernika. Aby uzyskać prawidłowy pomiar, należy albo termostatować zaciski (co w miernikach przemysłowych jest zabiegiem nieopłacalnym), albo mierzyć aktualną temperaturę zacisków miernika i uwzględnić ją przy obliczeniach wewnętrznych w mierniku. Zabieg ten, nazwany kompensacją zimnych końców, niestety nie zawsze jest precyzyjny - bar-
napięcia termoelektryczne
T1:
temp. zacisków
T2:
temp. zacisków
przewody zakłócenia kompensacyjne
Rys. 1. Typowy układ pomiarowy temperatury z czujnikiem termoparowym
Wydawać by się mogło, że zakup odpowiedniego czujnika
temperatury należy do czynności, o których na progu
XXI wieku nie wypada już
wspominać. Jak jednak pokazuje
praktyka, z doborem czujnika
do aplikacji wielu projektantów
ma nadal problemy.
W artykule spróbujemy
odpowiedzieć na pytanie, jakie
problemy powinniśmy rozważyć
przed wydaniem pieniędzy na
czujnik temperatury.
dzo dużo zależy od dokładności pomiaru temperatury zacisków.
W bardzo dobrych miernikach, ostatecznie osiągane dokładności określone są na poziomie ą1C. Z tego m.in. względu nie należy stosować termopar do pomiaru temperatur mniejszych od 2OO...3OOC. Nie można jednak generalizować - są aplikacje, gdzie inny czujnik nie może być zastosowany, pomimo względnie niskich temperatur.
Problem stabilności pomiarów w układach z termoparą związany jest również z niskim poziomem sygnałów pomiarowych (rzędu mikrowoltów). Niezwykle istotne jest minimalizowanie wpływu wszelkich zakłóceń, mogących pojawić się w torze pomiarowym naszego układu. Problem ten dotyczy głównie indukowania się napięć w przewodach podłączeniowych. Dlatego projektując układ pomiarowy należy uwzględnić rodzaj przewodów i sposób ich ułożenia, odległości pomiędzy poszczególnymi elementami układu oraz sąsiedztwo napędów elektrycznych.
Dodatkowe informacje
Niniejszy artykuł został opracowany w oparciu o "Praktyczny podręcznik stosowania mierników przemysłowych". Podręcznik dostępny jest w Internecie pod adresem: www.simpact.pl.
138
Elektronika Praktyczna 4/2003
PROJEKTY
Headwards!
Czyli: mysz się chowa,
Ulepszenie swojego
"peceta" - to dążenie wielu
elektroniko w-h obbystó w.
W artykule przedstawiono
projekt zupełnie nietypowego
urządzenia sterującego jego
pracą. Dzięki niemu, przy
niewielkiej wprawie, komputer
staje się posłuszny naszej,,,
głowie!
Rekomendacje: fani
komputerów są szczególnie
podatni na rewolucyjne
pomysły, a do takich
niewątpliwie należy pomysł
sterowania pracą komputera
za pomocą ruchu głowy.
Kiedy firma Apple na początku lat osiemdziesiątych wyposażyła produkowane przez siebie komputery w nowy typ urządzenia wskazującego (myszkę), nikt nie spodziewał się, źe mysz przyjmie się tak szybko i na tak ogromną skalę. Mimo źe później wymyślono jeszcze wiele innych urządzeń o podobnym zastosowaniu (jak choćby pióro świetlne, tiackball czy tablet), żadne z nich nie odniosło sukcesu choćby porównywalnego z dokonaniem firmy Apple.
Dziś mysz jest juź pełnoletnia i... chyba zaczyna trącić myszką! Mam zaszczyt przedstawić jej kolejnego konkurenta - nazwa się Headwards, co z angielskiego znaczy "w kierunku głowy". Czytelnicy EP zapewne widzieli juź wiele różnych, w tym także dziwnych projektów. Ten jest zdecydowanie jednym z tych najdziwniejszych. Przedstawione w artykule urządzenie ma za zadanie określać kierunek ustawienia głowy, reagować na mruganie powiek i komunikować się z komputerem. Wszystko to po to, żeby zastąpić urządzenie z zeszłego
wieku - myszkę mianowicie. Nie do wykonania? Przekonajmy się!
Bez teorii ani rusz
Jak w większości amatorskich urządzeń elektronicznych, także i w tym projekcie najbardziej liczy się nie tyle wykonanie, co pomysł. Mniej czasu zajęło mi uruchomienie prototypu niż wcześniejsze rozwiązanie wszystkich problemów teoretycznych. Zacznijmy więc od sprawy najciekawszej, czyli od wykrywania pozycji głowy.
Choć sposobów na rozwiązanie tego problemu jest prawdopodobnie wiele (a każde ma swoje zalety i jeszcze więcej wad), to detekcja kierunku zwrócenia głowy wcale nie jest prosta w realizacji. Jednymi z pomysłów, które początkowo zaprzątały moją głowę, było wykorzystanie ultradźwięków (problemy z echem), akcelerometiów (drogie i trudno dostępne) lub kamery (niedokładne, drogie i skomplikowane od strony programowej i sprzętowej). W omawianym projekcie stanęło w końcu na pomyśle wy korzy s tania p o dcz er wieni, z a czym przemawia prostota, niski
14
Elektronika Praktyczna 4/2003
Headwards!
GL
Nadajnik R
I
s
DP
DL
Rys. 1. Idea działania nagłownego sterownika myszy
koszt i, jak się okazało, zupełnie niezły efekt praktyczny.
Wiemy juź więc, w którym kierunku iść, problem tylko w tym, w jaki sposób przy pomocy samych nadajników i odbiorników podczerwieni uzyskać -----
informacje o kierunku? Nic prostszego! Kilka nieprzespanych nocy zaowocowało pomysłem przedstawionym na rys. 1. Aby zrozumieć zasadę działania takiego układu odbiorników (w tym wypadku fototranzystorów) i nadajników (diod IR), należy przypomnieć sobie odrobinę fizyki, a dokładniej - teorię strumieni świetlnych. Zapomnijmy na chwilę, źe przedstawione fototranzystory posiadają soczewkę skupiającą i przyjmijmy, źe źródło światła w postaci diody IR emituje światło równomiernie rozproszone. Jak widać na rysunku, odbiorniki podczerwieni ustawione są wzdłuż krawędzi bocznych ostrosłupa czworokątnego prawidłowego. W położeniu równowagi, tj. kiedy podstawa powstałego ostrosłupa jest prostopadła do osi nadajnika przechodzącej przez środek tej podstawy, na każdy fotoodbiomik pada taki sam strumień światła. Co się jednak stanie, kiedy cały układ odbiorników odrobinę przesuniemy względem stałego wierzchołka ostrosłupa? Oczywiście, strumienie światła na poszczególnych czujnikach zaczną się między sobą różnić. Na podstawie tych różnic, przy pomocy nieskomplikowanego algorytmu, będziemy w stanie określić zmianę położenia. Dla naszych potrzeb
wystarczy obliczanie wychyleń w pionie i poziomie na podstawie następujących wzorów:
X=(GL+DL)/(GL+GP+DL+DP) oraz
Y=(GL+GP)/(GL+GP+DL+DP),
Można także inaczej
Pierwszy na łamach EP projekt
umożliwiający nietypowe sterowanie
kursorem myszki (także za pomocą
głowy) opisaliśmy w EP4 i 5/2000. Była
to "myszka" (pokazana na zdjęciu)
wykorzystująca czujnik przyspieszenia
ziemskiego firmy Analog Devices, a rolę
przycisku spełniał czujnik ciśnienia -
użytkownik myszki zamiast klikać, po
prostu lekko dmuchał w specjalny ustnik.
gdzie GL, GP, DL, DP to natężenia swiatia docierające do poszczególnych odbiorników (Górny Lewy, Górny Prawy itd.).
Zdaje się, źe najtrudniejsza sprawa teoretyczna juź za nami. Nie spoczywajmy jednak na laurach, przed nami kolejne zadanie - musimy wykrywać mrugnięcia okiem! Brzmi to śmiesznie, ale jeszcze śmieszniejsze było dojście do rozwiązania. Dobrze, źe lustra mówią tylko w bajkach, bo moje na pewno by się odezwało, ale do rzeczy. Wystarczy parę razy do siebie pomrugać, żeby dojść do wniosku, źe przy mruganiu jednym okiem opuszczamy brew, a co za tym idzie, zmniejszamy prześwit nad oczodołem. Czemu by więc tego nie wykorzystać? Również do tego celu możemy użyć podczerwieni. W urządzeniu prototypowym źródła światła umieszczone zostały przy nosie (nieznacznie poniżej brwi i równolegle do nich), natomiast foto odbiorniki z boku okularów. A tak! Zapomniałbym napisać, że interfejs urządzenia będzie miał postać właśnie okularów. Tym razem sprawa (przynajmniej jeśli chodzi o teorię) przedstawia się dużo prościej -należy jedynie wykryć, czy do foto odbiornika światło dociera czy też nie. Takie rozwiązanie wykrywania mrugnięć eliminuje problem ignorowania zwyczajnego mrugania oboma oczyma, przy którym brew nie zostaje ściągnięta.
Mlkrokwttolw
Odblomk głowy
Odblomk głowy
Odblomk głowy
Odblomk głowy
Nadąfrifc oczu
Odblomk oczu
Odbiomk oczu
Rys. 2. Schemat blokowy nagłownego sterownika kursora
Elektronika Praktyczna 4/2003
15
Headwards!
Fot. 3. Umiejscowienie nadajnika podczerwieni na okularze
Upiekliśmy więc dwie pieczenie na jednym ogniu - układ nie będzie musiał się juź o to martwić i będziemy mogli klikać... oczami! Co więcej, będziemy dbali o zdrowie naszych oczu, a to dlatego, źe wiele problemów z oczami jest wynikiem zbyt małej częstotliwości mrugania podczas pracy przed monitorem.
Co tygryski lubią najbardziej
To, co najtrudniejsze, jest juź za nami. Teraz wszystko będzie juź przyjemne - musimy zająć się stroną elektroniczną. Spójrzmy więc na schemat blokowy z rys. 2, na którym przedstawiony został sposób realizacji wcześniej opisanych zagadnień.
Od początku wiadomo było, źe układ sterujący będzie musiał mieć budowę analogowo-cyfrową. Okulary połączone są z analogową częścią układu i mają wbudowane dwa nadajniki podczerwieni dla oczu (fot. 3), dwa czujniki odpowiedzialne za wykrywanie mrugania (fot. 4) oraz cztery fotoodbior-niki badające pozycję głowy (fot. 5). Nadajniki są sterowane generatorem fali prostokątnej, genero-
Fot. 4. Umieszczenie czujników wykrywajqcych mruganie
wanej programowo przez mikio-kontioler, a następnie wzmacnianej przez prosty wzmacniacz. Aby uniemożliwić zakłócanie pracy urządzenia przez środowisko i wzajemne zakłócanie się obu części układu, nadajniki współpracujące z czterema fotoodbiorni-kami wykrywającymi pozycję głowy pracują na częstotliwości 5 kHz, natomiast nadajniki potrzebne do wykrywania mrugania migają z częstotliwością 15 kHz. Sygnały z czterech odbiorników podczerwieni poprzez filtry i demodulatory podawane są na wejścia przetwornika analogowo-cyf-rowego, zawartego w mikiokontro-lerze, natomiast sygnały z czujników oczu, po przejściu przez filtr i demodulator, poddawane są detekcji i doprowadza się je do cyfrowych wejść tego mikiokon-trolera. Ten z kolei ma za zadanie plotkować o wszystkim czego się dowiedział z komputerem.
Nie pozostaje nam teraz nic innego, jak przyjrzeć się schematowi elektrycznemu przedstawionemu na rys. 6. Nie zniechęcając się jego rozmiarami, zauważamy zgodność ze schematem blokowym przedstawionym wcześniej. Zacznijmy więc od układu zasilania.
Ponieważ układ będzie współpracować z komputerem i prawdopodobnie zechcemy włożyć go do jego wnętrza, niewybaczalne byłoby niewykorzystanie zasilacza komputerowego, doprowadzającego zasilanie do napędów wewnętrznych. Niestety, zasilanie to jest "zaśmiecone" przez cyfrową elektronikę komputera, a ponieważ układ jest po części analogowy, to zasilanie to należy najpierw prze-nltrować. Dla części analogowej układu zadanie to spełni z wy My filtr LC, część cyfrowa będzie natomiast zasilana bezpośrednio z zasilacza. Ważne jest, aby w projekcie obwodu drukowanego uwzględnić osobne linie zasilania dla obu części układu, a masy połączyć tylko w jednym punkcie, jak się to robi w układach audio.
Już na pierwszy rzut oka widać było, że pewne bloki na schemacie są jednakowe. I tak, mamy cztery identyczne bloki analogowych filtrów pasmowych i demodulatorów dla czujników pozycji głowy oraz dwa nieznacznie różniące się od poprzednich
Fot. 5. Umieszczenie fotodetektorów wykrywajqcych położenie głowy
filtry, demodulatory i detektory mrugania. W przypadku czujników pozycji, sygnał z fototranzystorów przepuszczany jest przez filtry górno- i dolnoprzepustowe RC w celu selekcji częstotliwości 5 kHz. Następnie sygnał wzmacniany jest przez wzmacniacze operacyjne zawarte w układzie LM324, który w zupełności wystarcza do tego zastosowania. Po dwustopniowym wzmocnieniu (drugi stopień ma możliwość regulacji, typowo x25) następuje demodulacja i filtracja dolnoprze-pustowa, w wyniku czego otrzymujemy sygnał, którego napięcie zależne jest od strumienia światła padającego na fototranzystor. Dociekliwych Czytelników może zdziwić fakt, że układ został zbudowany w taki sposób, że podczas demodulacji sygnały o małych amplitudach zostają ignorowane (przez spadek napięcia na przewodzącej diodzie) - jest to zabieg celowy, wprowadzony dopiero przy pierwszych próbach. Małe sygnały obarczone są względnie tak dużym szumem, że w praktyce okazało się, że ich "obcięcie" jest wręcz wskazane. Nieco inaczej zbudowane są dwa bloki odpowiedzialne za wykrywanie mrugania. Tutaj częstotliwość, którą filtry mają za zadanie przepuścić, wynosi 15 kHz, natomiast wzmocnienie jest również dwustopniowe (pierwszy stopień regulowany, typowo x25). Ponieważ wyjście układu ma być z zasady dwustanowe (oko otwarte lub oko zamknięte), to zastosowano znacznie większe niż poprzednio wzmocnienie i wykorzystano histerezę wejść cyfrowych miki okontrol era (wszystkie układy AVR ją posiadają).
16
Elektronika Praktyczna 4/2003
+12A
R51 _LH62 I IR5
100k C29T"150k| |4k7 lOOn
O Q O.
Q
EL
Headwards!
Jak już wcześniej wspomniano, modulacja światła nadajników przeprowadzana jest przez mikro-kontroler. Dzięki temu nie trzeba stosować żadnych dodatkowych generatorów, a jedynie proste, regulowane źródła prądowe na tranzystorach T7 i T8, które zasilają diody IR. Jak zaznaczono na schemacie, nadajnik współpracujący z czujnikami pozycji składa się z trzech diod IR połączonych szeregowo. Nic nie stoi jednak na przeszkodzie, aby ich liczbę zwiększyć do pięciu. Regulacji prądu zasilającego nadajniki należy dokonać przy pomocy potencjometrów Pl i P2 już podczas normalnej pracy układu.
Ostatnim elementem wymagającym opisu jest serce układu, U4 - mikrokontroler AT90S4433 (AVR). Do tego zastosowania nadaje się on wprost idealnie -posiada 6-kanałowy, 10-bitowy przetwornik analogowo-cyfrowy, nie wspominając już o wszystkich innych zaletach jego rodziny, z których nawet połowy nie wykorzystamy. Układ ten obecnie jest już wypierany przez mikrokontroler ATmega8, jednak nic nie stoi na przeszkodzie, żeby go jeszcze stosować (dla układu AT-mega8 program wymagałby jedynie kilku "przeróbek kosmetycznych", a sam obwód drukowany i elementy pozostałyby identyczne). Wracając do sedna, aby wykorzystać przetwornik A/C tego układu, należy doprowadzić do niego zasilanie dla części analogowej oraz źródło napięcia odniesienia, którym w naszym wypadku z powodzeniem może być zwykła dioda Zenera. Ponieważ
układ będzie generował programowo sygnały o częstotliwościach 15 i 5 kHz, to aby przerwania nie występowały względnie zbyt często, zastosowany został kwarc 8 MHz. Ponieważ nie wszystkie wyjścia mikrokontrolera są wykorzystane, wyprowadzone zostały sygnały SPI, co umożliwia łatwe programowanie tego mikrokontrolera w układzie.
Program wykonywany przez procesor ma za zadanie wytwarzać sygnał modulujący światło nadajników, dokonywać konwersji analogowo-cyfrowej sygnałów z odbiorników podczerwieni, badać stany wejść połączonych z detektorami mrugania, wykrywać podwójne kliknięcie i komunikować się obustronnie z komputerem poprzez interfejs RS232, przy pomocy konwertera poziomów U5. W "rozmowie" z komputerem układ wysyła wszystkie zebrane przez siebie dane oraz daje programowi sterującemu możliwość zmiany minimalnego czasu mrugania i częstotliwości próbkowania wejść analogowych. Rafał Baranowski rufus@bloknet.pl
Program sterujący dla Windows wraz ze źródłami oraz program dla mikrokontrolera i opis transmisji znajdują się na CD-EP4/2003B, można je także znaleźć pod adresem: http ://www. -bloknet.pl/~rufus/headwards.zip.
Wzory płytek drukowanych w formacie PDF są dostępne w łnternecie pod adresem: http://www.ep.com.pl/ ?pdflkwiecienO3.htm oraz na płycie CD-EP4/2003B w katalogu PCB.
WYKAZ ELEMENTÓW
Rezystory
Rl, R8, R12, R19, R23, R30, R34,
R41, R45, R49, R5Ó, R60: 10kO
R2, R13, R24, R35, R4Ó, R57, RÓ7,
R70: lkO
R3, R14, R25, R36: 39kQ
R4, R15, R2Ó, R37: 5,ókQ
R5, Rló, R27, R38, R55, R66: 47kQ
Ró, R17, R28, R39: 27kQ
R7, R18, R29, R40: 470kQ
R9, R20, R31, R42, R50, Ról:
500kO pot. montażowy, stojący
RIO, R21, R32, R43, R48, R51, R59,
R62: lOOka
Rl 1, R22, R33, R44, R52, R63:
l50ka
R47, R58: 12kQ
R53, R64: 4,7kQ
R54, R65: 220kQ
RÓ8, R71: 470O
R69: Ó8Q
R72: 180O
R73: 100O
Pl, P2: 2,2ka potencjometr
Kondensatory
CL C6, C7, C12, C13, C18, C19,
C24, C25, C30, C31, C3Ó,
C47...C50: 1jiF/16V
C2, C3, C8, C9, C14, C15, C20,
C21, C26, C28, C32, C34: lnF
CA, CIO, C16, C22, C27, C33:
lOOpF
C5, Cli, C17, C23: 3,9nF
C29, C35, C39, C40, C42...C44:
lOOnF
C37, C38: 470^F/16V
C41: 47^F/16V
C45, C46: 22pF
Półprzewodniki
D1...D6: 1N4148
D7...D11: Diodowe nadajniki IR
Z1...Z6: Zenera 5,1V
Z7: Zenera 2,4V
T1...T6: fototranzystory npn (obud.
LED 3mm z filtrem)
T7, T8: BC547
U1...U3: LM324
U4: AT90S4433 zaprogramowany
U5: MAX232 (lub odpowiednik)
Różne
Xl: Kwarc 8MHz
LI, L2: 10p.H (mały opór)
L3: IOjiH
JP1: Gniazdo zasilania jak dla
HDD
JP2: SIP5 (dla ISP)
JP3: DB9 na kabel, żeńskie
DB15 kątowe, do druku, żeńskie
DB15 na kabel, męskie
Gniazdo jack mono, do druku
Wtyk jack mono, na kabel
18
Elektronika Praktyczna 4/2003
NA CD M.IN.: KATALOG FIRMY ALLEGRO SEMICONDUCTOR, ST6-REALIZER
g Międzynarodowy magazyn elektroników konstruktorów
4/2003
kwiecień
15 zł 50 gr (w tym 7% vat)
EPROM
NAJPROSTSZY TERMOMEfliRWDYFROWY NA
55
MODUŁOWE REGULATORY
TEMPERATU
Tu
IzuWca 376590 IflflH 1C40-7C95
9771640 769039
04>
PROJEKTY
Konwerter USB<->lrDA
AVT-510
Układy interfejsowe firmy
FTDI spowodowały przełom
w dostępie do interfejsu USB.
Dzięki tym układom USB
można z łatwością stosować
nawet w projektach
nieprofesjonalnych. W ańykule
przedstawiamy kolejny taki
projekt, który doskonale
ilustruje zalety techniki
Pług&Płay
Rekomendacje: urządzenie
przydatne dla posiadaczy
nowoczesnych telefonów
komórkowych, elektronicznych
notatników, przenośnych
drukarek i komputerów,
a także użytkowników innych
urządzeń wyposażonych
w interfejs IrDA.
Transmisja szeregowa w podczerwieni (IrDA) nie jest nowością w komputerowym świecie. Interfejs optyczny umożliwia dwukierunkową transmisję danych za pomocą promieniowania podczerwonego między dowolnymi urządzeniami wyposażonymi w odpowiednio skonfigurowany i wyposażony port szeregowy. Na rynku są dostępne min. drukarki i telefony komórkowe wyposażone w interfejs IrDA, ma go także każdy współczesny komputer przenośny.
Istnieją różne odmiany interfejsu IrDA. Przykładowo, interfejsy SIR są przystosowane do przesyłania danych z szybkością 115 kb/ s, MIR z szybkością 1,152 Mb/s, natomiast FIR z maksymalną szybkością dochodzącą do 4 Mb/s. W prezentowanym konwerterze w ykorzy s tano w ersj ę SIR.
Instalacja interfejsu IrDA w już istniejącym sprzęcie wymaga UART-a kompatybilnego z układem 16550, który jest obecnie standardowym wyposażeniem wszystkich komputerów klasy PC. Aby zbudować pełnowartościowy interfejs IrDA, wystarczy dołączyć do portu RS232 specjalizowany układ formujący impulsy (np. TOIM3232) oraz tiansceiver podczerwieni (np. TFDS4500) - rys. 1. Ze względu na dużą liczbę urządzeń peryferyjnych dołączanych do komputerów, często zdarza się, że są zajęte wszystkie porty RS232 w komputerze. W takim przypadku nie jest możliwe łatwe dołączenie do komputera tak wykonanego interfejsu IrDA. Można co prawda zrezygno-
wać z jednego portu COM na rzecz IrDA, ponieważ współczesne płyty główne stosowane w komputerach są wyposażane w specjalne złącze, do którego wystarczy podłączyć jedynie tiansceiver. Powoduje to jednak "utratę" jednego kanału RS232.
Aby uniknąć problemów tego rodzaju, proponuję wykonanie prostego konwertera USB<->IrDA. Współczesne komputery są standardowo wyposażane w kilka portów USB, które - dzięki układom interfejsowym firmy FTDI - są ł a tw e do wy kor zy stani a.
Działanie konwertera nie jest skomplikowane i opiera się na emulacji portu COM, do którego podłączono układ formujący impulsy oraz tiansceiver podczerwieni.
Sygnały przesyłane podczerwienią są formowane do postaci krótkich impulsów (rys. 2), dzięki którym uzyskuje się wzrost zasięgu, przy zmniejszeniu średniej wartości pobieranego prądu.
Prostotę budowy interfejsu USB<->IrDA uzyskano, stosując trzy wyspecjalizowane układy: konwerter USB<->COM FT232BM firmy FTDI, konwerter RS232/ IrDA TOIM4232 (odpowiada za formowanie impulsów) i zintegrowany nadajnik/odbiornik podczerwieni TFDS4500 firmy Yishay.
Yishay produkuje kilka rodzin specjalistycznych elementów do interfejsów kompatybilnych z IrDA. Produkuje on zarówno układy formujące impulsy (zależnie od prędkości strumienia bitów, bity
Elektronika Praktyczna 4/2003
21
Konwerter USB<->lrDA
Promieniowanie IR
Kształtowanie impulsów Nadajnik IR (nadawane)

I TOIM3000 ub TOIM3232 TFDS4xxx
UART16550/RS232



Odtwarzanie impulsów Odbiornik IR <-
Promieniowanie IR
(odbierane)
Rys. 1. Schemat blokowy konwertera interfejsu RS232
są skracane i uzyskują długości od 1,41 |is do 22,13 |is, a następnie w odbiorniku przywracana jest ich pierwotna długość), transmitery, pojedyncze fotodiody, diody PIN zwiększające zasięg odbioru, a także różnego rodzaju zintegrowane transceivery optyczne.
Układ FT232BM firmy FTDI
Układ ten jest dwukierunkowym konwerterem USB<->RS232. Jest to następca układu wcześniejszej wersji o oznaczeniu FT232AM, który "gościł" już na łamach EP. Szybkość przesyłania danych mieści się w przedziale 300 bd...3 Mbd, a wyrównanie potencjalnych różnic w prędkościach nadawania i odbioru danych ułatwiają bufory danych (FIFO): o pojemności 128 B w kierunku USB->RS232 i 384 B w kierunku RS232->USB. Opcjonalnie, do układu FT8U232BM można dołączyć szeregową pamięć EEPROM, w której przechowywane są pomocnicze informacje dla sterownika USB (m.in. deklarowany przez projektanta opis produktu z zaimplementowa-nym USB, numer seryjny produktu, sygnatury USB VID/PID). Pracą UART-a można sterować sprzętowo [hardware flow control) lub za pomocą protokołu Xon/Xoff. Układ wyposażono w bufory sterujące dwiema diodami LED, które można wykorzystać do sygnalizacji nadawania i odbioru danych.
Podstawowe parametry konwertera USB<->lrDA:
/prędkość transmisji od 1200 b/s
do 115 kb/s (w zależności
od zainstalowanego sterownika), /zasilanie z magistrali USB, /współpraca z systemami Win XP i Win 2K
(sterowniki dostarczane przez producenta
systemu), /łatwa instalacja, / niewielkie wymiary, /względnie niski koszt wykonania.
USB<->lrDA dołączanego do
Ponieważ układ FT232 był już dokładnie przedstawiony w EP9/ 2002 i EP10/2002, przedstawię tylko różnice występujące między nowym konwerterem i jego starszą wersją.
Najważniejsze wprowadzone zmiany to:
- obsługa protokołów USBl.l i 2.0 (w trybie Fuli Speed),
- możliwość pracy interfejsów w trybie izochronicznym, dzięki czemu gwarantowana jest maksymalna możliwa szybkość transferu danych, nie wpływa na nią liczba urządzeń dołączonych do portu USB,
- w strukturze układu zintegrowano generator sygnału zerującego,
- w układ wbudowano kompletny generator sygnału RCCLK - dotychczas trzeba było stosować zewnętrzne elementy RC,
- obniżono pobór prądu w stanie spoczynku do 5 00 |iA,
- czas time-out bufora nadawczego można programować w zakresie 1...2 55 ms (w wersji AM wynosił on zawsze 16 ms),
- nowy układ może współpracować z dwoma rodzajami pamięci EEPROM - o organizacji 128x16 (93C46) oraz 512x16 (93C66),
- do podłączenia kilku układów w wersji BM do jednego portu USB nie jest niezbędna pamięć
EEPROM zawierająca deskryptor z indywidualnym numerem urządzenia,
- producent zachował zgodność rozmieszczenia większości wyprowadzeń układów obydwu wersji, przy czym ze względu na pewne zmiany konstrukcyjne konieczne były drobne modyfikacje i w układzie FT232BM zmieniono funkcje wyprowadzeń znanych z wersji FT232AM: RCCLK (wyprowadzenie 31), PWREN# (wyprowadzenie 15), #RSTO (wyprowadzenie 5).
Warto wiedzieć, że w odróżnieniu od większości dostępnych na rynku interfejsów o podobnych funkcjach, układy oferowane przez firmę FTDI nie wymagają stosowania specjalizowanych sterowników USB (dla systemu operacyjnego Windows), nie jest także konieczne uczenie się przez konstruktora zasady działania i przygotowywania procedur inicjalizacyjnych bloku SIE USB [Serial Interface Engine). Firma FTDI przygotowała i bezpłatnie udostępnia sterowniki dla Windows 98/Me/NT/2000/XP, Linuksa oraz systemu operacyjnego OS8/9 (Apple). Za ich pomocą system operacyjny tworzy wirtualny, szeregowy port komunikacyjny COM, który jest adresowany tak jak każdy inny port szeregowy zaim-plementowany w komputerze. Dostępne są sterowniki w wersjach: PnP oraz standardowej, dzięki czemu można spełnić wymagania wszystkich typowych aplikacji.
Układ FT8U232BM integruje wszystkie istotne elementy interfejsu USB, dzięki czemu wszystkie zadania związane z obsługą protokołów są realizowane sprzętowo. Nie jest wymagane przepro-
Ramka danych w UART
Bit Dane Bit* stopu

0 1 0 1 0 0 1 1 0 1
Ramka danych IR
y ij Szerokość Impulsu =
" 3/1A f-ratai tnwania hi1
3/16 czasu trwania bitu
Rys. 2. Sposób kodowania danych przesyłanych drogą optyczną
Elektronika Praktyczna 4/2003
Konwerter USB<->lrDA
vcc
Logika steru|ąca/ generator wzorcowy
RESETC
GND X1
Rys. 3. Schemat blokowy układu TOIM4232
wadzanie jakichkolwiek zabiegów konfiguracyjnych po włączeniu zasilania układu.
Interfejs TOIM4232
Układ ten służy do formowania impulsów z portu RS232 do wymagań standardu IrDA. Charakteryzuje się bezproblemową współpracą z dowolnym interfejsem RS232. Podstawowym zadaniem TOIM4232 jest -z jednej strony - skracanie impulsów nadawanych - a z drugiej -"rozciąganie" odebranych impulsów do ich uprzedniej długości.
Układ umożliwia stosowanie dwóch długości impulsów: o czasie trwania 1,617 |is - ta długość jest stosowana jako wartość domyślna i jest preferowana w urządzeniach zasilanych bateryjnie ze względu na krótki czas trwania impulsów, albo o czasie trwania 3/16 pierwotnego czasu trwania impulsu.
Kolejną funkcją układu TOIM4232 jest generowanie dla interfejsu IrDA impulsów taktujących, które nie występują w standardowym interfejsie RS232. Do generowania impulsów taktujących wymagany jest kwarc o częstotliwości rezonansowej 3,6864 MHz. Schemat blokowy układu TOIM4232 pokazano na rys. 3. Składa się on z oscylatora, generatora szybkości transmisji oraz dwukierunkowego bloku kształtowania impulsów. Za pomocą wejścia BR/ D jest możliwe wybranie jednej z czternastu predefiniowanych
Pierwszy znak Drugi znak
X S2 S1 SO B3 B2 B1 BO
LSB
prędkości transmisji danych. TOIM4232 jest programowany przez wybranie odpowiedniego rodzaju pracy za pośrednictwem interfejsu RS232. Aby skonfigurować inter-fejs, trzeba podać wysoki poziom napięcia na wejście RESET, by wyzerować układ, a następnie na wyprowadzenie BR/D podajemy poziom wysoki. W ten sposób układ zostaje przygotowany do odebrania bajtu sterującego. Należy go wysyłać z prędkością 9600 b/s, gdyż taką prędkość domyślnie przyjmuje TOIM4232 po zerowaniu. Bajt sterujący, o strukturze pokazanej na rys. 4, jest złożony z dwóch części, każda o długości czterech bitów. Bit SO odpowiada za wybór długości impulsu. Wartość "1" tego bitu oznacza długość impulsu wynoszącą 1,627 |is, a "0" wartość 3/ 16 trwania impulsu bitu. Bity Sl i S2 służą do określenia stanów na uniwersalnych wyj ściach układu o takich samych nazwach. Wyjścia te mogą służyć do zmiany czułości transceivera, przełączania konwertera w tryb stand-by lub dowolnego innego celu. Wyjście S2 w prezentowanym module interfejsowym wykorzystałem do zwiększenia czułości odbiornika przy odbiorze danych.
Druga część bajtu słowa sterującego (B0...B3) służy do wyboru prędkości transmisji zgodnie z tab. 1.
Po wprowadzeniu do rejestru konfiguracyjnego 8-bitowego słowa kończy się programowanie układu i można rozpocząć transmisję, gdy tylko zmieniony zostanie poziom na nóżce BR/D na niski. Jest oczywiste, że programowanie układu jest częścią oprogramowania sterownika IrDA.
VCC1/Sd
B3 B2 B1 BO 2nd Char Szybkość transmisji
0 0 0 0 0 115,2 k
0 0 0 1 1 57.6 k
0 0 1 0 2 38,4 k
0 0 1 1 3 19,2 k
0 1 0 0 4 14.4 k
0 1 0 1 5 12,8 k
0 1 1 0 6 9.6 k
0 1 1 1 7 7,2 k
1 0 0 0 8 4.8 k
1 0 0 1 9 3,6 k
1 0 1 0 A 2.4 k
1 0 1 1 B 1,8 k
1 1 0 0 C 1,2 k
Przy współpracy np. dwóch mik-rokontrolerów przesyłających dane w podczerwieni należy zadbać o prawidłowe zaprogramowanie układu, jeżeli wymagane prędkości przesyłanych danych będą większe od 9600 b/s. Przykłady programów konfiguracyjnych układu TOIM42 32 zostały zamieszczone w dołączonych do artykułu materiałach, które zamieszczono na CD-EP3/2003B.
Transceiver TFDS4500
Firma Vishay produkuje wiele odmian transceiverów przeznaczonych do różnych odmian interfejsów IrDA. W konwerterze zastosowany został transceiver TFDS4500 przeznaczony do pracy w trybie IrDA SIR (prędkość do 115,2 kb/ s). Układ TFDS4500 jest używany do bezprzewodowej szeregowej komunikacji między komputerem a peryferiami, np. w bezprzewodowych myszkach i klawiaturach. W strukturze układu zintegrowano diodę nadawczą i odbiorczą o parametrach dobranych do transmisji
Wzmacniacz
Komparator
ARW
Wzmacniacz
Wzmacniacz z otwartym | kolektorem na wyjściu
PRxD
I RED Anodę
IREDCathode
Rys. 4. Budowa bajtu konfiguracji układu TOIM4232
GND
Rys. 5. Schemat blokowy transceivera optycznego IrDA
Elektronika Praktyczna 4/2003
23
Konwerter USB<->lrDA
Rys. 6. Schemat elektryczny interfejsu
IrDA. Dodatkowo, TFDS4500 wyposażony jest we wzmacniacz dla diody odbiorczej, komparator oraz dwa bufory, które wysterowują diodę nadawczą i tor odbiorczy. Schemat blokowy układu TFDS4500 pokazano na rys. 5. Ważną funkcję w układzie pełni blok ARW (automatycznej regulacji wzmocnienia), który reguluje czułość odbiornika. Blok ten pozwala układowi TFDS4500 na osiągnięcie dużej odporności na szumy. Próg, przy którym odbiornik reaguje na sygnał wejściowy, jest dwukrotnie wyższy przy stanie "0" na wejściu SC, niż wówczas gdy jest na niej stan "1". Należy wspomnieć, że przy wyższym progu czułości odbiornik jest bardziej podatny na zakłócenia. Zasięg nadajnika nie jest duży i wynosi ok. 1 metra, co jest wystarczające dla urządzeń przenośnych typu telefon czy drukarka. Wejście Vccl/SD służy zarówno do zasilania części elektronicznej transceivera, jak i do wprowadzania go w tryb uśpienia. Wysoki poziom napięcia na tym wejściu zasila wewnętrzne obwody układu. Wejście to może być sterowane z zewnętrznego mikro-kontrolera lub - przykładowo -z jednego z wyjść Sl lub S2 układu TOIM4232.
Opis działania układu
Schemat elektryczny konwertera USB<->IrDA pokazano na rys. 6, Układ Ul jest konwerterem USB<->RS232, który do swej prawidłowej pracy potrzebuje kilku elementów biernych oraz rezonatora o częstotliwości 6 MHz. Do prawidłowej pracy konwertera Ul nie jest potrzebna pamięć EEP-ROM U5. Można ją zastosować, gdy będzie wymagany wybór: pracy Pług and Play, ręcznego lub automatycznego przyznawania numeru seryjnego, sposobu zasilania czy maksymalnego poboru prądu. W pamięci EEPROM można przechowywać także opis urządzenia. Zaprogramowanie pamięci EEPROM wymaga instalacji odpowiedniego sterownika oraz programu narzędziowego (publikujemy je na CD-EP3/2003B) - szczegóły programowania EEPROM były dokładnie opisane w EP10/2002.
Sygnał różnicowy USB oraz zasilanie są doprowadzone przez gniazdo USB typu B. Zasilanie jest
Elektronika Praktyczna 4/2003
Konwerter USB<->lrDA
Rys. 7. Rozmieszczenie elementów na płytce drukowanej
filtrowane za pomocą obwodu zbudowanego z elementów Cl, Li oraz kilku dodatkowych kondensatorów. Do sterowania pracą interfejsu są używane cztery linie portu RS232: TPD, RXD, RTS# iDTR#. Wyjście RTS# steruje wejściem programowania interfejsu U2, który skraca i wydłuża odpowiednio impulsy zgodnie ze standardem IrDA. Sygnał z linii DTR#, po zanegowaniu przez inwerter U6, steruje wejściem zerującym układu U2. Inwerter był potrzebny ze względu na specyfikację sterownika - został on napisany dla układu, który jest dołączany do portu RS232 przez konwerter napięć (np. MAX232). Konwerter napięć neguje sygnały oprócz sygnału DTR#. Ponieważ układ Ul nie zawiera konwertera napięć, wystarczyło tylko zanegować linię DTR#, by sterownik poprawnie programował układ U2. Ponieważ U2 musi być zasilany napięciem 3,3 V, a port USB dostarcza napięcia 5 V, zastosowano dodatkowy stabilizator U4, który stabilizuje napięcie na potrzebnym po-
1 V tac ł t , ;^ '


1 lW|lpB | OM J 1 ^Rys. S. Widok okna kreatora dodawania sprzętu w Windows
ziomie. Zaletą tego stabilizatora jest bardzo mały pobór prądu. Układ Ul dostarcza na wyjściu 6 napięcie 3,3 V, ale pobór prądu z tego wyjścia nie może przekroczyć 5 mA, co dla układu U2 i dołączonych do niego LED-ów nie jest wystarczające. Jeżeli nie będą montowane diody LED, można nie montować stabilizatora U4 i dołączyć wyprowadzenie zasilania U2 do wyjścia 6 układu Ul. Choć U2 zasilany jest napięciem 3,3 V, to toleruje on napięcia na wejściach do 5 V. Diody D1...D4 służą do sygnalizacji pracy konwertera. Były bardzo pomocne na etapie uruchamiania konwertera. Rezonator X2 taktuje generator szybkości transmisji zawarty w U2. Linie RD_IR i TD_IR sterują tians-ceiverem U3, którego dioda nadawcza zasilana jest poprzez rezystory ograniczające prąd Rl2 i Rl3. Transceiver U3 jest zasilany z wyjścia SLEEP# układu Ul. Wyjście SLEEP informuje o trybie suspend (zawieszenia) magistrali. Tryb ten dotyczy zachowania się konwertera podczas przełączania hosta w uśpienie. Wówczas host przestaje wysyłać pakiety SOF. Brak kilku pakietów jest wykrywany przez Ul, który także przechodzi w stan uśpienia z maksymalnie zmniejszonym poborem mocy. W trybie suspend hub może dostarczyć do konwertera prąd o natężeniu co najwyżej 0,5 mA. Podczas wchodzenia Ul w tryb suspend, linia SLEEP zmienia poziom na niski, przez co zostaje wyłączony tiansceiver U3. Obwody tiansceivera są zasilane z tego wyjścia, jeżeli tylko znajduje się na nim poziom wysoki. Wydajność prądowa wyjścia SLEEP wystarcza do zapewnienia poprawnej pracy tiansceivera U3. Kondensator filtrujący C7 poprawia odporności tiansceivera na z akł ocenia oraz gwarantuje jego poprawną pracę.
Montaż i uruchomienie
Konwerter USB<->IrDA należy zmontować na dwustronnej płytce drukowanej, której schemat montażowy pokazano na rys. 7. Większość elementów konwertera jest przeznaczona do montażu powierzchniowego, dlatego należy się z nimi obchodzić z dużą ostrożnością - uwaga ta dotyczy szczególnie lutowania.
Rys. 9. Okno wyboru przypisania interfejsu IrDA do portu COM
Montaż najlepiej rozpocząć od wlutowania układów scalonych i pozostałych elementów. Lutujemy je począwszy od środka płytki, aż do jej krawędzi. Montaż należy zakończyć, wlutowując elementy przewlekane.
Podczas montażu szczególną uwagę należy zwrócić na biegunowość kondensatorów elektrolitycznych. Diod LED można nie montować, gdyż służyły jedynie podczas uruchamiania konwertera do sprawdzenia jego poprawnej pracy. Zasięg konwertera można zwiększyć, dolutowując rezystor Rl3 o takiej samej wartości jak rezystor Rl2. Wartości tych rezystorów można zmniejszyć do ok. 14 O, - nie powinno stać się nic złego, gdyż dioda nadawcza jest s ter o w an a kr ó tkimi impuls am i. Można nie montować pamięci EEPROM U5 i elementów R4, R5, jeżeli nic nie będzie do tej parni ę ci zapi syw ane.
Z pewnością niektórych Czytelników EP przeraża montaż elementów SMD. Dlatego informuję, że układ prototypowy został złożony lutownicą ELWIK LES-24-1 bez użycia jakichkolwiek past, topników i innych specjalistycznych narzędzi.
Przy montażu należy uważać na prawidłowe umieszczanie elementów, gdyż późniejsze wyluto-wanie układu scalonego może być kłopotliwe.
Instalacja sterowników
Po podłączeniu konwertera do portu USB komputera należy w pierwszej kolejności zainstalować sterowniki, które będą emu-lować port COM. Sterowniki takie udostępnia bezpłatnie producent układu FT232BM, my je publikujemy na CD-EP3/2OO3B. Dokładne informacje o instalacji sterownika
Elektronika Praktyczna 4/2003
25
Konwerter USB<->lrDA
Rys. 10. Po zainstalowaniu sterowników
w menedżerze sprzętu pojawia sie dodatkowa opcja
dla uMadu firmy FTDI zostały przedstawione we wcześniej wspomnianej EPlO/2002.
Po instalacji sterownika dla układu FT232BM należy jeszcze zainstalować sterownik IrDA przeznaczony dla układu TOIM4232 lub TOIM3232. Systemy WinXP oraz Win2k zostały przez Microsoft wyposażone w sterowniki przeznaczone dla układów TOIMxx32. Po-
siadany przeze mnie sterownik do Win 98 nie działał poprawnie z tym konwerterem, dlatego przedstawiony układ jest przeznaczony do użytkowników systemów WinXP oraz Win2000.
Instalację sterownika TOIMxx32 należy rozpocząć od wyboru z listy urządzeń urządzenia podczerwieni i odszukać urządzę-
Rys. 11. Okno edycji właściwości portu IrDA
nie TOIMxx32 firmy Vishay (rys. 8). Następnie należy wybrać numer portu komunikacyjnego, pod którym będzie zainstalowany wcześniej wirtualny port COM (rys. 9) (ja wybrałem COM3). Na rys. 10 pokazano widok okna Menedżera urządzeń z zainstalowanym urządzeniem podczerwieni dla układu TOIMxx32. Poprzez konfigurację właściwości zainstalowanego sterownika (rys. 11) jest możliwe ustawienie prędkości połączenia oraz wybranie portu komunikacyjnego. Po poprawnym zainstalowaniu sterowników i ponownym uruchomieniu komputera, konwerter USB-IrDA będzie gotowy do pracy. Marcin Wiązania
Podczas przygotowywania projektu korzystałem z materiałów dostępnych na stronach:
- http://www.ida.org,
- http://www.ericlindsay.com/com-p u ter/irda .htm,
- http://www.vishay.com,
- http://www.ftdichip.com.
WYKAZ ELEMENTÓW (SMD)
Rezystory
Rl, R2:
R3:
R4:
R5:
Ró:
R7:
R8, R9, RIO, Rll:
R12, R13(#): 5in
Kondensatory
Cl: lOnF
C2: 33nF
C3, C4: 27pF
C5, Có: 22pF
C7, 08, Cli, C12, C13, C14:
lOOnF
C9: 4,7^F/10V
CIO: 100^F/10V
Półprzewodniki
Dl, D4: LED (czerwona)
D2, D3: LED (zielona)
Ul: FT232BM
U2: TOIM4232
U3: TFDS4500
U4: TC55RP330
U5: 93C4Ó
Uó: NC7S04
Xl: Kwarc óMHz
X2: Kwarc 3,ó8ó4MHz
Różne
LI: koralik ferrytowy przewlekany
Jl: przewlekane gniazdo USB
typu B
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.cont.pl/ 7pdpkwiecienO3Jttm oraz na płycie CD-EP4/2003B w katalogu PCB.
26
Elektronika Praktyczna 4/2003
PROJEKTY
12-kanałowy regulator mocy sterowany sygnałem DMX512, część 1
Opis dotyczy zestawu
regulatorów dużej mocy, które
mogą być wykorzystane
w dużych systemach
sterowania oświetleniem
scenicznym lub estradowym.
Co prawda do tej pory
w Elektronice Praktycznej
oraz w Elektronice dla
Wszystkich opublikowano kilka
opisów różnego rodzaju
regulatorów, lecz miały one
jedną podstawową wadę,
jeżeli chodzi o zastosowanie
w systemach oświetlenia
scenicznego - brak możliwości
sterowania z większej
odległości.
Rekomendacje: projekt
przeznaczony dla
użytkowników nowoczesnych
systemów sterowania
oświetleniem scenicznym
i dyskotekowym .
Profesjonalne systemy sterowania oświetleniem składają się z zespołu regulatorów o mocy na ogół 5 kW każdy, umieszczonych w pobliżu sceny oraz pulpitu nastaw-czo-regulacyjnego znajdującego się w takim miejscu, skąd zapewniony jest wgląd na scenę (często odległość między tymi dwoma elementami systemu jest znaczna). W starszych systemach sterowanie odbywa się na drodze analogowej. Do każdego regulatora doprowadzona jest para przewodów sterujących, po których przesyłany jest niskonapięciowy sygnał sterujący z pulpitu nastaw czo-regulacyjnego.
I Specyfikacja standardu DMX512 została I szczegółowo opisana w marcowym numerze L polskiej edycji Elektora z 1998 roku.
Uwaga} Ze względu na dużą liczbę rysunków, w tej części ańykuiu publikujemy
schematy elektryczne,
do których opis znajdzie się
w EPS/2003.
Obecnie odchodzi się od tego typu sterowania na rzecz standardu DMX512, który wymaga do transmisji także jednej pary przewodów, jednak ze względu na duże częstotliwości muszą to być kable specjalne, zakończone odpo-w ie dnimi zł ąc z ami.
Trochę historii
Jak radzono sobie z problemem regulacji oświetleniem 30, 40 lat temu, gdy elementy półprzewodnikowe dużej mocy - takie jak tyrystory lub tiiaki - były niedostępne (przynajmniej w Polsce), nie wspominając o komputerach? Przedstawię parę rozwiązań, które stosowano do sterowania oświetleniem scenicznym. Oczywiście, były to urządzenia stacjonarne, ponieważ ze względu na gabaryty i ciężar nie można było ich przewozić.
W latach powojennych stosowano w teatrach nastawnie typu Bordoni. Kabina oświetleniowa przypominała bardziej wnętrze parowozu niż urządzenie służące do regulacji oświetlenia scenicznego. Składała się z dwóch podstawowych elementów: zespołu autotransformatorów z uzwojeniami nawiniętymi na pionowych rdzeniach oraz węglowych szczotek, które przesuwały się po uzwojeniach transformatorów. Były zaopatrzone w dwa uchwyty - do górnego przymocowana była linka, którą można było przesuwać szczotkę do góry,
Elektronika Praktyczna 4/2003
27
12-kanałowy regulator mocy sterowany sygnałem DMX512
Tab. 1. Funkcje wyprowadzeń w 5-stykowym złączu AXR/XLR
Końcówka Funkcja
1 Masa (ekran)
2 DMX -
3 DMX +
4 Brak połączenia (może być połączone z DMX -)
5 Brak połączenia (może być połączone z DMX +)
75176
75176
Tab. 2. Funkcje wyprowadzeń w 3-stykowym złączu AXR/XLR
Końcówka Funkcja
1 Masa (ekran)
2 DMX -
3 DMX +
co powodowało wzrost napięcia wyjściowego, natomiast opuszczanie suwaka realizowane było przez poluzowanie linki, a przeciwwagi przymocowane do dolnego uchwytu szczotki ściągały ją do dołu. Zespół autotransformatorów na ogół znajdował się pod sceną, a cały mechanizm sterujący był umieszczony nad poziomem sceny, przeważnie na którejś z wież scenicznych. Składał się on z reguły z trzech lub czterech wałów, na których umieszczone były dźwignie z przymocowanymi linkami sterującymi ruchem suwaków autotransformatorów. Dźwignie te były wyposażone w klucze dające się ustawić w odpowiednie pozycje:
- brak połączenia z wałem (podczas obrotu wału dźwignia pozostawała w spoczynku),
- obrót wału w prawo powodował zwiększenie napięcia wyjściowego danego obwodu (obrót w lewo powodował odwrotną reakcję),
- obrót wału w prawo powodował zmniejszenie napięcia wyjściowego danego obwodu (obrót w lewo powodował odwrotną reakcję).
Wał obracany był ręcznie za pomocą dużego koła i był wyposażony w tak zwany precyzer umożliwiający bardzo wolne wprowadzanie obrazu świetlnego.
Nastawnie te umożliwiały bardzo płynne wprowadzanie scen świetlnych oraz nie wnosiły zakłóceń elektroenergetycznych, jednak duża liczba elementów mechanicznych powodowała liczne
DMX IN 4
Nadajnik
DMX+
DMX-
Ekran
1 DMXOUT
Odbiornik
GND
DMX-
XLR3
Rys. 1. Interfejs RS - 485 stosowany do transmisji danych w systemach DMX512
problemy w codziennej eksploatacji, np.: spadające linki, zawieszające się szczotki czy też występujące podczas szybkich zmian uderzenia o siebie przeciwwag, co dawało niezamierzone efekty akustyczne.
Następnie zaczęto stosować transduktory, czyli tzw. wzmacniacze magnetyczne. Ich sterowanie realizowało się przez zmianę napięcia sterującego w zakresie 0...24 V. Ten sposób sterowania umożliwiał umieszczenie kabiny oświetleniowej w dogodnym miejscu, gdzie realizator miał pełny wgląd na scenę. Również zastosowane pulpity nastawczo-regula-cyjne umożliwiały realizację bardziej skomplikowanych zmian światła. Pulpit taki składał się z zespołu kaset regulacyjnych, czyli potencjometrów suwakowych drutowych, o długości ścieżki ok. 15 cm. Liczba kaset
31 odbiorników DMX
STEROWNIK
odpowiadała na ogół liczbie regulatorów. Kaseta była wyposażona w trójpozycyjny przełącznik hebelkowy umożliwiający wybranie jednego z trzech ściemniaczy generalnych, od którego kaseta otrzymywała napięcie sterujące. Kasety były pogrupowane w pola nastawcze - na ogół cztery. Każde z nich zawierało tyle kaset, ile było regulatorów. Główki suwaków oraz przełączników na każdym polu miały inną barwę (czerwoną, zieloną, żółtą, oranż, ewentualnie białą). Zastosowanie kolorów ułatwiało wykonanie zapisu światła, np.: I zielony 10/50, 12/50, 25/80, 27/100.
W takim zapisie liczba w liczniku oznaczała numer obwodu (reflektora), a w mianowniku procent, na jaki ma być ustawiony suwak kasety. Zapis "I zielony" oznaczał, że przełącznik hebelkowy kasety ma być ustawiony
Następne odbiorniki
DMX Repeater
Terminator
Rys. 2. Sposób łączenia odbiorników systemach DMX512
Dane 1101100
6CH
Start
Stop Stop
1 1
Ramka 44 mikrosekundy
MAB
RESET/BREAK 88 mikrosekund
8 mikrosekund
START CODE
32 ps + START 4 US
w sumia 36 ps
Rys. 3. Budowa ramki DMX - zawiera informację dla 1 kanału, oraz przebiegi czasowe dla sygnału RESET/BREAK, MARK AFER BREAK, oraz START CODE
Elektronika Praktyczna 4/2003
12-kanałowy regulator mocy sterowany sygnałem DMX512
w pozycji pierwszej, czyli że będzie zasilana z pierwszego ściemniacza generalnego oraz że dotyczy pola zielonego.
Sciemniacz generalny był to zestaw dwóch autotransformatorów umieszczonych na wspólnej osi, z uzwojeniami połączonymi tak, że na wyjściu pierwszego napięcie miało wartość 0 V, a drugiego - 220 V. Poprzez obrót następowała zmiana napięć. Napięcie to podawane było na transformatory 220 V/24 V, które po wyprostowaniu zasilało kasety regulacyjne nie wprost, lecz przez zespół przekaźników umożliwiających wybór jednego z czterech pól nastawczych. Taki model pulpitu na-stawczo-regulacyjnego królował w teatrach przez wiele lat. Zmieniały się tylko konstrukcje regulatorów, transduktory zastąpiły bardziej niezawodne tyrystory i triaki. Z czasem zaczęto stosować mikroprocesory i konstrukcje te stopniowo wyparły tradycyjne pulpity nastawczo-regulacyjne.
Początkowo pulpity miały wyjścia analogowe 0...10V, co pozwalało wykorzystać linie sterujące nastawni analogowej - do każdego regulatora dochodziły dwa przewody sterujące. W rozbudowanych systemach ich liczba dochodziła do kilkuset. Właśnie ta ogromna liczba linii sterujących była impulsem do opracowania nowego rodzaju regulatorów - regulatorów cyfrowych i protokołu zapewniającego ich sterowanie. Obecnie najbardziej popularny jest standard DMX512.
Co to jest DMX512? Odrobina teorii
System DMX512 [Digital MultipleX for 512 units) to inaczej cyfrowy multipleks dla 512 jednostek. Został on opracowany w USA przez United States Institu-te for Theatre Technology
isu sod(soav) (axu)]d tod(*oav) lasoJiad LOdteoav)
(OlNlteOd (UNlteOd
03d(aoav)
18U SOd(SOOV)
(axH)oad
iaxiivad eod(eoav)
(oiNitead
Rys. 4. Schemat elektryczny regulatora - część mikroprocesorowa, detektory przejścia przez zero
Elektronika Praktyczna 4/2003
29
12-kanałowy regulator mocy sterowany sygnałem DMX512
Rys. 5. Schemat elektryczny dekodera adresowego
(USITT) - Instytut Technologii Teatralnych Stanów Zjednoczonych. Jest to wydajny i stosunkowo prosty system stosowany praktycznie na całym świecie. Umożliwia wysterowanie 512 kanałów za pomocą jednego trój żyłowego przewodu. Zalety tego systemu są niebagatelne: oszczędne okablowanie, duża odporność na zakłócenia, linia sterująca może mieć długość do 1200 m (można ją zwiększyć, stosując repeatery). Ma też swoje wady, z których najpoważniejszą jest mała rozdzielczość. Jest tak, ponieważ do określenia wartości, np. napięcia wyjściowego regulatora, używa się tylko ośmiu bitów. Powoduje to, że napięcie wyjściowe regulatora nie
zmienia się w sposób liniowy, lecz skokowo (z krokiem 220 V/ 255= 0,86 V), co jest szczególnie widoczne przy stosowaniu żarówek o małej mocy. Istotną wadą jest także opóźnienie w reakcji odbiornika, które wynosi ok. 0,005 sekundy, jednak - jeżeli chodzi
0 regulatory - można go nie brać pod uwagę (bezwładność włókna żarówki i tak jest większa).
Do przesyłania sygnału magistralą DMX512 wykorzystywany jest interfejs RS485. Jako nadajnik
1 odbiornik stosuje się ten sam typ układu 75176 (rys. l). Zgodnie z normą, do łączenia ze sobą urządzeń należy używać 5-styko-wych złącz XLR. Dopuszcza się również stosowanie złączy 3-sty-
kowych. Funkcje styków w obydwu rodzajach złączy opisano w tab. 1 i 2.
Urządzenia w standardzie DMX łączy się "szeregowo". Są one tak zbudowane, że posiadają wejście dla sygnału oraz wyjście, które umożliwia podłączenie następnej jednostki. Do wyjścia ostatniego urządzenia w szeregu należy zawsze podłączyć tzw. terminator -jest to po prostu wtyk XLR z opornikiem 120 O, dołączonym pomiędzy styki 2. i 3. Jeżeli liczba urządzeń w szeregu jest większa od 32 lub długość kabla sterującego wynosi więcej niż 1200 m, to należy zastosować repeater DMX, czyli wzmacniacz sygnału DMX, do którego wyjścia
30
Elektronika Praktyczna 4/2003
12-kanałowy regulator mocy sterowany sygnałem DMX512
można podpiąć kolejne 32 odbiorniki lub dodatkowy odcinek kabla sterującego (rys. 2).
O ile w specyfikacji RS485 zdefiniowane są poziomy napięć oraz wymagania co do sposobu łączenia urządzeń, to DMX512 specyfiko-wany jest protokół, zgodnie z którym są przesyłane dane. Podstawą jest tak zwana ramka, w skład której wchodzi 1 bit startu, 8 bitów danych, 2 bity stopu, czyli długość ramki wynosi 11 bitów. Czas trwania jednego bitu to dokładnie 4 us, czyli długość ramki wynosi 44 us (rys. 3). Jedna ramka zawiera informację o jednym kanale DMX, co oznacza, że do wysłania informacji dotyczącej wszystkich kanałów potrzeba 512 ramek. Jednak aby odbiornik wiedział, kiedy następuje początek transmisji - czyli który kanał jest pierwszy - zaczyna się ona sygnałem RESET lub (w innych opisach) BREAK. Jakkolwiek jest on nazwany, czas jego trwania wynosi minimum 88 us. Następnym sygnałem jest znacznik - MARK AF-TER BREAK (w skrócie MAB). Czas jego trwania ustalono na 8 us (później powstały systemy zdolne rozpoznać znacznik o długości 4 us i są one oznaczone jako DMX512/
1990). Po przesłaniu MAB, sterownik wysyła tzw. bajt startowy (START CODE), który w zamyśle twórców protokołu DMX miał określać, czy wysyłane po nim dane mają sterować regulatorami, czy też innymi urządzeniami. Ponieważ dokładnie nie wiedziano,
0 jakie urządzenia będzie chodziło, więc przyjęto jego wartość OOh -
1 tak już zostało. Tak więc wartość bajtu startowego musi wynosić OOh. Jeżeli jego wartość będzie inna, odbiornik musi zignorować wszystkie następne bajty. Po wysłaniu sekwencji startowej sterownik rozpoczyna transmisję bajtów z danymi, począwszy od pierwszego kanału. Przerwa pomiędzy ramkami danych jest oznaczana jako MARK BETWEEN FRAME (MBF) i może wynosić od zera do jednej sekundy. Czas potrzebny do wysłania jednego kompletu danych zależy od liczby kanałów - norma określa maksymalną liczbę kanałów, tj. 512 i dla tej liczby wynosi on 22668 us, czyli dane są odświeżane 44 razy na sekundę. Protokół nie definiuje również reakcji odbiorników, jeżeli zostanie przerwana transmisja DMX. Producenci sprzętu stosują w tym przypadku różne rozwiązania, np.:
- utrzymanie ostatniej otrzymanej wartości,
- płynne wyłączenie urządzenia,
- natychmiastowe wyłączenie urządzenia,
- wysterowanie urządzenia wcześniej zaprogramowaną wartością.
To, jakie rozwiązanie zostanie zastosowane, będzie w dużej mierze zależało od typu urządzenia, i tak na przykład regulatory powinny utrzymywać ostatnio otrzymaną wartość. Nieoczekiwany BLACKOUT mógłby być niebezpieczny dla aktorów, jak też mógłby spowodować nieoczekiwaną reakcję publiczności, zwłaszcza dziecięcej, natomiast wszelkie napędy wind scenicznych, zapadni czy też sztankietów powinny zostać w sposób płynny wyłączone, ponieważ ich niekontrolowane dalsze działanie byłoby niebezpieczne. Na ogół użytkownik ma możliwość określenia reakcji urządzenia na nieoczekiwane przerwy w transmisji DMX. Andrzej Biliński
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdflkwiecienO3.htm oraz na płycie CD-EP4/2003B w katalogu PCB.
WYKAZ ELEMENTÓW
Część mikroprocesorowa (rys. 4) Rezystory
0,125W jeśli nie zaznaczono
inaczej
Rl, R2, R6: 5ókQ/2W
R3, R5, R7, RIO: 10kO
R4, R8, R9: 1MO
Rl 1: lkO
R12: 470O
Kondensatory
C1...C3, Có: lOOnF ceramiczny
C4...C5: 100^F/25V
Półprzewodniki
D1....D5: dioda LED
T1...T3: BC547
U1...U3: CNY17 transoptor
U4, U5, U7: AT90S4433 -
za próg ra mowa ny
Uó: DS1813
U8, U9: 75176
U10: mostek prostowniczy
(okrągły)
Uli: 7805
Różne
TRI: TSZZ 2,2/005M - transformator
sieciowy do druku
Bl: bezpiecznik topikowy lOOmA
+ gniazdo do druku
K2, K8: styk konektorowy płaski
do druku (męski) w prototypie
zastosowano złącze z oferty ELFY
nr katalogowy 48-251-21
z usuniętym środkowym stykiem
Kl, K7: złącze 3x1 raster 2,54mm
komplet
K3, K4, K6: złącze 5x1 raster
2,54mm komplet
K5: złącze 4x1 raster 2,54mm
komplet (można nie montować,
przewidziane do ewentualnej
rozbudowy - SPI)
K9: 5x2 raster 2,54mm header (ISP)
JP1...JP3: jumpery
Gl: generator kwarcowy 8MHz
Dekoder adresowy (rys. 5) Rezystory
Wszystkie rezystory 0,125W
R1.1...R2.1: 300O
R3.1...R14.1: 3,ókQ
Półprzewodniki
Dl.l, D2.1: dioda LED
Ul.l, U2.1: 7427
Różne
SW1.1...SW3.1: nastawnik kodowy
DEC/BCD
Z1.1...Z3.1: złącze 5x1 raster
2,54mm komplet (stosować przy
nastawnikach montowanych na
płycie czołowej)
DP1.1: DIP switch (4 segmenty)
Wyjściowy stopień mocy (rys. 6) Rezystory
R1....R4: 3000/0,125W
R5....R8: 27O/2W
Kondensatory
C1...C4: 100nF/400V
Półprzewodniki
LED1...LED4: dioda LED
Triakl....Triak4: BTA26-600
U1...U4: MOC3020
Różne
CON1...CON8: styk konektorowy
płaski do druku (męski) w
prototypie zastosowano złącze z
oferty ELFY nr katalogowy 48-251-
21 z usuniętym środkowym stykiem
Kl: złącze 5x1 raster 2,54mm
komplet
Elektronika Praktyczna 4/2003
31
PROJEKTY
"Mówiący" woltomierz, część 1
AVT-5097 ,^V
Nazwa " woltomierz" lub
"miernik" kojarzy nam się
zazwyczaj z przyrządem
wyposażonym w wyświetlacz,
na którym wyświetlane są
wyniki pomiarów.
W opisanym w ańykule
woltomierzu zastosowano dość
nietypowy sposób
prezentowania wańości
mierzonego napięcia. Zamiast
wyświetlacza ma on jedynie
głośnik, więc wynik oznajmia
głosem -
R ekom en dacj e:
o mówiących przyrządach
pomiarowych marzyli do
niedawna przede wszystkim
niepełnosprawni, ale wygoda
korzystania z nich przekona
także wielu pełnosprawnych
elektroników.
Woltomierz jest zbudowany w oparciu o specjalizowany układ 4,5-cyfrowego woltomierza ICL7135. Wynik pomiarów jest następnie kierowany do procesora, który przetwarza otrzymane dane i odpowiednio steruje układem odtwarzania dźwięku ISD2560. Mikiokontioler otrzymuje przetworzoną na postać cyfrową informację o mierzonym napięciu i może ją przetworzyć w dowolny sposób. Prezentacja zmierzonego napięcia jest wykonywana przy użyciu specjalizowanego układu (umożliwiającego nagrywanie i odtwarzanie dźwięków), pochodzącego ze słynnej rodziny ISD. Mikiokontioler jest więc odpowiedzialny za odczytanie danych o wartości zmierzonego napięcia, wyszukanie odpowiednich komunikatów zawartych w pamięci układu ISD2560 i zainicjowanie ich odtworzenia.
Woltomierz umożliwia pomiar napięcia o wartościach z przedziału od -2000 do +2000 V w czterech podzakiesach pomiarowych. Oprogramowanie sterujące określa na podstawie stanu zworek JP3 iJP4, jaki jest aktualnie ustawiony zakres pomiarowy i odpowiednio modyfikuje wypowiadane komunika ty.
Dla przykładu, podanie na wejście przetwornika A/C napięcia
równego IV i ustawienie zakresu pomiarowego na 2V spowoduje, że komunikat będzie brzmiał: JEDEN WOLT. Przy tym samym napięciu wejściowym, ale po zmianie zakresu pomiarowego na 200V, procesor wybierze komunikat: STO WOLTOW.
Układ przedstawia więc w sposób słowny dowolną wartość napięcia z zakresu -1999,9 V...+1999,9 V. W przypadku przekroczenia napięcia dla danego zakresu zostanie wypowiedziany komunikat: ZAKRES PRZEKROCZONY.
Zmianę zakresu pomiarowego można przeprowadzić w czasie pracy. Po tej czynności zostanie wypowiedziany komunikat informujący o aktualnym zakresie pomiarowym i napięcie będzie wypowiadane z uwzględnieniem wartości nowego zakresu pomiarowego.
W zależności od wybranego zakresu, wynik jest przedstawiany z różną rozdzielczością. W tab. 1 przedstawiono rozdzielczości mierzonego napięcia dla poszczególnych zakresów pomiarowych.
W zależności od wartości mierzonego napięcia, komunikat jest odpowiednio składany z pojedynczych słów. Oprogramowanie pro-
Elektronika Praktyczna 1/2003
25
"Mówiqcy" woltomierz
cesora minimalizuje liczbę wypowiadanych słów, a więc i cyfr zmierzonego napięcia. Dla napięcia równego 1,123V, komunikat będzie miał postać: JEDEN WOLT I STO DWADZIEŚCIA TRZY MI-LIWOLTY, a dla napięcia 0,005V komunikat będzie następujący: PIĘĆ MILIWOLTÓW. Jak wynika z tego przykładu, komunikaty są formowane w taki sposób, że nie-znaczące zera są pomijane, co wpływa na przejrzystość prezentowanych komunikatów. Wypowiadane jednostki mierzonego napięcia są odmieniane przez przypadki i dlatego dla napięcia równego 3mV usłyszymy TRZY MI-LIWOLTY, a dla 5 mV - PIĘĆ MILIWOLTÓW.
Wartość napięcia dla kolejnych pomiarów może być wypowiadana w różnych odstępach czasowych. Czas ten może być programowany w zakresie 0...60 sekund, a ponadto jest dostępna funkcja przerywająca wypowiadanie napięcia. Funkcja ta porównuje mierzone napięcie i jeśli pięć kolejnych pomiarów wskazuje taką samą wartość, to pomiary są wykonywane nadal, ale nie jest "wypowiadana" ich wartość. Po zmianie wartości napięcia następuje automatyczne wznowienie jej wypowiadania. Funkcja ta jest szczególnie przydatna, gdy do woltomierza nie jest dołączone żadne napięcie, gdyż po pewnym czasie woltomierz automatycznie przejdzie w tryb czuwania, a gdy pojawi się napięcie, samoczynnie powróci do trybu pracy.
Budowa i działanie
Schemat elektryczny woltomierza przedstawiono na rys. 1. Składa się on z trzech bloków funkcjonalnych: bloku pomiaru napięcia z układem ICL7135, bloku przetwarzania danych z mikro-
Tab.1 Rozdzielczość pomiaru woltomierza na poszczególnych zakresach
Zakres pomiarowy Włączenie zworek Rozdzielczość pomiaru
JP3 JP4
2V 0 0 1mV
20V 1 0 1mV
200V 0 1 10mV
2000V 1 1 100mV
Rys. 1. Schemat elektryczny woltomierza
1 - zworka 0 - brak zworki
26
Elektronika Praktyczna 1/2003
"Mówiqcy" woltomierz
vREF = 1 .ooov
VREFIN
Zagar 120kHz
Sygnał wejściowy
-15335
Rys. 2. Typowa aplikacja układu ICL7135
kontrolerem PIC16F872 oraz bloku prezentowania wyników z układem ISD2560.
Blok pomiaru napięcia został zbudowany w oparciu o specjalizowany układ ICL7135. Jest to 4,5-cyfrowy woltomierz o zakresie pomiarowym równym ą2 V. Zastosowanie tego układu sprawia, że napięcie jest mierzone z dużą dokładnością.
Na rys. 2 przedstawiono schemat typowej aplikacji układu ICL7135. Część analogowa w prezentowanym woltomierzu jest taka sama jak w aplikacji, natomiast została zmieniona część cyfrowa.
Do zasilania układu ICL7135 potrzebne jest ujemne napięcie
0 wartości -5 V, które jest wytwarzane przez przetwornicę kondensatorową zbudowaną z użyciem układu US5. Układ ten dostarcza napięcia ujemnego równego co do wartości napięciu jego zasilania
1 należy do niego dołączyć tylko dwa elementy zewnętrzne: kondensatory C8 i C9. Układ woltomierza wymaga również zewnętrznego sygnału zegarowego. Generator tego sygnału został zbudowany za pomocą układu US3 wraz z elementami: R6, R7 i C7.
Zewnętrzne napięcie odniesienia dla przetwornika A/C uzyskano za pomocą diody Dl, o napięciu referencyjnym 1,2 V.
Aby zakres pomiarowy woltomierza wynosił 2 V, źródło odniesienia musi mieć wartość równą
1 V. Do precyzyjnego ustawienia tej wartości służy potencjometr wieloobrotowy PRl. Mierzone napięcie podawane jest na wejście przetwornika poprzez rezystor szeregowy Rl, który wraz z kondensatorem Cl tworzy filtr dolnoprze-pustowy zapobiegający gwałtownym zmianom napięcia na wejściu przetwornika A/C. Wejście INLO przetwornika może być, w zależności od potrzeb, połączone z masą woltomierza lub z masą badanego układu. Aby masa całego woltomierza była również masą obwodu wejściowego przetwornika A/C, należy zewrzeć zworkę JP5.
Jako procesor sterujący woltomierzem zastosowano układ PIC16F872 z wewnętrzną pamięcią EEPROM. W pamięci EEPROM zapisany jest program oraz niektóre zmienne parametry woltomierza (nie zostaną utracone po zaniku napięcia zasilania).
Procesor jest taktowany sygnałem z oscylatora wewnętrznego z zewnętrznym obwodem RC (rezystor R14 i kondensator CIO). W tym układzie procesor nie wykonuje operacji związanych z odliczaniem czasu, dlatego można było zastosować taki generator. Do zerowania procesora po włączeniu zasilania służy specjalizowany układ zerujący DS1813.
List. 1. Procedura odczytu // Procedura odczytuje wartość na napięcia pięcia i zapl z układu ICL7135 suj e ją w buforze cyfra ... //
// od czytaj_napiecie() ............ ......... ...... ....... //
disable_interrupts(global); while (! input (busy)) ; while(input(busy)); //wyłącz prz //czekaj na //czekaj na erwania rozpoczęci doniec bie e pomi Żącego aru pomiaru
over=input(overrange) ; While(!input(d5)); delay us(500); cyfra[4]=data&0x0f; //przepisz s //czekaj na //czekaj na //odczytaj c tan przekr cyfrę nr5 ustalenie yfrę 5, i oczeni się da zapisz a zakre nych ją do su buf do over
While(!input(d4)); delay_us(500); cyfra[3]=data&0x0f; //czekaj na //czekaj na //odczytaj c cyfrę nr4 ustalenie yfrę 4, i się da zapisz nych ją do buf ora
While(!input(d3)); delay_us(500); cyfra[2]=data&0x0f; //czekaj na //czekaj na //odczytaj c cyfrę nr3 ustalenie yfrę 3, i się da zapisz nych ją do buf ora
While(!input(d2)); delay us(500); cyfra[l]=data&OxOf; //czekaj na //czekaj na //odczytaj c cyfrę nr2 ustalenie yfrę 2, i się da zapisz nych ją do buf ora
While(!input(dl)); delay_us(500); cyfra[0]=data&0x0f; //czekaj na //czekaj na //odczytaj c cyfrę nrl ustalenie yfrę 1, i się da zapisz nych ją do buf ora
minus= ! input (poi) ; enable_interrupts(global) ; //przepisz z //włącz prze nak polaryzacji rwania do bitu nus
// ................................. ............ ......... ...... ....... *" //
Elektronika Praktyczna 1/2003
27
"Mówiqcy" woltomierz
Buły
Koniec pizetwaizania
D5 V D4 V D3 V D2 J Dl Dane h Dane A Dane A Dane h Dane
1T-D5-T-i_Dane_J_
Rys. 3. Przebiegi czasowe na wyjściach układu ICL7135
Współpraca procesora z układem przetwornika A/C polega na "udawaniu" przez procesor wyświetlacza. Na rys. 3 przedstawiono przebiegi czasowe występujące na wyjściach układu ICL7135. Ponieważ wyjścia tego układu są przystosowane do sterowania wyświetlaczem LED w sposób mul-tipleksowy, dlatego stany na nich zmieniają się w zależności od tego, do którego wyświetlacza (cyfry) są kierowane. Jak widać na rys. 3, na wyjścia B1...B8 wystawiana jest wartość dla danego wyświetlacza, a następnie na jedno z wyjść D1...D5 podawany jest poziom wysoki, powodujący włączenie danego wyświetlacza. Po krótkim czasie następuje wygaszenie wyświetlacza, a na wyjściach B1...B8 pojawia się wartość dla kolejnego wyświetlacza i poziom wysoki na kolejnym z wyjść D1...D5. Ten proces wykonywany jest nieustannie. Dane pojawiające się na wyjściach B1...B8 reprezentują wartość wyświetlanej w danym momencie cyfry.
Procedura odczytu wartości napięcia jest przedstawiona na list. 1. W procedurze oczekuje się na rozpoczęcie pomiaru przez układ przetwornika A/C, poprzez sprawdzanie stanu wyjścia BUSY, jeśli na tym wyjściu występuje stan zero, to pomiar został zakończony. Aby odczytać wynik po pełnym cyklu pomiarowym, procesor najpierw czeka na początek pomiaru (Busy=l), a następnie na jego zakończenie (Busy=0). Następnie do flagi over zostaje zapisany stan wyjścia over przetwornika (w list. 1 wejście procesora o nazwie overrange, czyli port RC4). Jeśli wyjście to będzie w stanie "1" (wysokim), to ozna-
cza, że zakres pomiaru przetwornika został przekroczony. W naszym przypadku napięcie wejściowe jest większe od 2 V lub mniejsze od -2 V. Jeżeli na wyjściu tym jest poziom niski, to mierzone napięcie zawiera się w dozwolonym zakresie. W obydwu przypadkach następuje odczytanie kolejnych cyfr zmierzonego napięcia. Ponieważ wynik pomiaru jest przedstawiany za pomocą pięciu cyfr, należy kolejno je odczytać. Tak jak to pokazano na rys. 3, wartości kolejnych cyfr wyniku pojawiają się kolejno na wyjściach B1...B8. O tym, do której cyfry przypisane są dane wystawione na tych wyjściach informują stany na wyjściach D1...D5.
Cyfry wyświetlane są poczynając od piątej, a kończąc na pierwszej. Dlatego po zakończonym cyklu pomiarowym procesor oczekuje na pojawienie się jedynki na wyjściu D5 i przepisuje dane z wyjść B1...B8 do bufora piątej cyfry. Następnie oczekuje na pojawienie się jedynki na wyjściu D4 i zapisuje odczytane dane do bufora cyfry czwartej. Dalej następuje odczytanie kolejnych cyfr i zapisanie ich do przeznaczonych dla nich buforów.
Po odczytaniu wszystkich cyfr zostaje jeszcze odczytany stan wyjścia POL. Wyjście to służy do sygnalizacji, czy mierzone napięcie ma polaryzacje dodatnią, czy ujemną. Na tym kończy się procedura odczytu wartości napięcia z układu ICL7135. Zapisana wartość napięcia zostaje następnie przetworzona przez procesor i w zależności od wartości tego napięcia oraz wybranego zakresu pomiarowego następuje odpowiednie wysterowa-nie układu mówiącego.
Do zapamiętania i odtwarzania komunikatów głosowych zastosowano układ ISD2560. Układ ten umożliwia zapis dźwięku o czasie trwania 60 sekund. Nagrywanie komunikatów odbywa się poprzez dołączony mikrofon pojemnościowy MK. Układ US6 w czasie odtwarzania komunikatów umożliwia bezpośrednie wysterowanie głośnika, dlatego do złącza CON3 można podłączyć głośnik bez stosowania dodatkowego wzmacniacza.
Układ ISD2560 komunikuje się z procesorem za pomocą tylko sześciu wyprowadzeń, a przy tym
WYKAZ ELEMENTÓW
Rezystory
Rl, R2, R4: lOOkO
R3: 27Q
R5, R7: 6,8kQ
R6: 3,3kQ
R8, R9: 10kO
R10...R12: l,5kQ
R13: 470kQ
R14: 4,7kQ
PR1: potencjometr helitrim lOkO
Kondensatory
CL Có, C7, Cli, C12, C14, C15:
lOOnF
C2, C3, C13: luF polipropylenowy
C4: 470nF polipropylenowy
C5: 47uF/16V
C8, C9: 10uF/16V
CIO: 30pF
Cló: 4,7uF/16V
C17: 100uF/16V
Półprzewodniki
Dl: LM385-1,2V
D2: 1N4148
US1: PIC16F872 zaprogramowany
US2: ICL7135
US3: NE555
US4: DS1813
US5: ICL7660S
US6: ISD2560
US7: LM7805
Różne
CON1...CON3: ARK2(5mm)
CON4: ARK2(3,5mm)
JP1...JP5: Goldpin 1x2 + zworka
Podstawka DIL8 - 2 szt.
Podstawka DIL28 (300 mils) - 1 szt.
MK: mikrofon pojemnościowy
Głośnik 1W/16O
umożliwia odtworzenie dowolnego komunikatu zawartego w jego pamięci. Poprzez odpowiednie skonfigurowanie wejść sterujących MA0...MA6, układ ten pracuje w trybie kolejnego adresowania, z możliwością użycia funkcji "szybko naprzód". Tryb kolejnego adresowania umożliwia procesorowi kolejne nagrywanie lub odtwarzanie komunikatów bez znajomości adresu pamięci, pod którym rozpoczyna się dany komunikat. Funkcja "szybko naprzód" umożliwia przyśpieszenie odtwarzanych komunikatów 800 razy. Dzięki połączeniu funkcji kolejnego adresowania i "szybko naprzód" procesor zaledwie w ciągu kilkudziesięciu milisekund może dotrzeć do dowolnego komunika-
Elektronika Praktyczna 1/2003
"Mówiqcy" woltomierz
tu zawartego w pamięci i odtworzyć go z normalną prędkością. Tak krótki czas wyszukiwania komunikatu umożliwia łączenie kilku niezależnych komunikatów w jedną dłuższą wypowiedź (komunikat) bez słyszalnych przerw pomiędzy nimi. Do prezentowania głosem wartości napięcia zastosowane zostało właśnie łączenie kilku krótkich komunikatów w jeden dłuższy z możliwością wypowiedzenia każdej wartości napięcia z przedziału od -1999,9 do +1999,9 V. Łączny czas nagranych komunikatów wynosi około 40 sekund. Szczegółowe dane na te-
mat tego układu można znaleźć na stronie http://www.isd.com, a sposób wyszukiwania komunikatów w EP5/2002 w artykule "Mówiący termometr".
Napięcie +5V, potrzebne do zasilania wszystkich układów woltomierza, jest stabilizowane za pomocą stabilizatora typu LM7805. W celu odfiltrowania napięcia wejściowego zastosowano kondensatory C18 i C19, a po stronie wyjściowej kondensatory C20 i C21.
Do zmiany parametrów woltomierza zastosowano cztery zwor-ki, które są wykorzystywane zarówno w czasie programowania,
jak i w czasie normalnej pracy. Zworki JPl i JP2 zostały podłączone do portu RB, dzięki czemu nie jest konieczne stosowanie rezystorów podciągających pull-up, gdyż rezystory takie zawarte są wewnątrz procesora. Ponieważ port RC nie posiada takich rezystorów, dlatego zostały zastosowane zewnętrzne rezystory R8 i R9. Krzysztof Pławsiuk, AVT
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/styczenO3.htm oraz na płycie CD-EP1/2003B w katalogu PCB.
Elektronika Praktyczna 1/2003
29
PROJEKTY
Programowany sygnalizator głosowy
AVT-508
jedną z pierwszych
aplikacji tego urządzenia był
oryginalny dzwonek domowy.
Często spotykane konstrukcje
mechaniczne umożliwiają
uzyskanie jednego lub dwóch
tonów, dzwonki elektroniczne
pozwalają odtworzyć wcześniej
zaprogramowane dźwięki lub
melodie. My proponujemy
wykonanie urządzenia
odtwarzającego dowolne
dźwięki, które można
samodzielnie nagrać
w pamięci "krzemowego
magnetofonu",
Rekomendacje: urządzenie
polecamy wszystkim
zwolennikom nietypowych
rozwiązań domowych
systemów powiadamiania
(nazwijmy je "dzwonkami"),
a także projektantom różnego
typu urządzeń, w których
przydatna jest głosowa
sygn alizacja stan u pracy.
Przedstawione w artykule urządzenie najłatwiej jest zaliczyć do grupy dzwonków elektronicznych o bardzo uniwersalnych możliwościach. Umożliwia ono odtworzenie dowolnego dźwięku, melodii czy nawet piosenki. Możliwe jest to dzięki zastosowaniu specjalizowanego układu umożliwiającego nagrywanie i odtwarzanie dźwięków. Dzięki temu układowi przedstawiony dzwonek może jako sygnał dzwonienia odtworzyć dowolny dźwięk zapisany w jego pamięci, a nagrane dźwięki, czyli dźwięk dzwonka, mogą być dowolnie zmieniane. Maksymalna długość nagranych dźwięków wynosi 20 sekund.
Urządzenie wyposażono we wzmacniacz z wbudowaną cyfrową regulacją głośności, dzięki czemu głośność dzwonienia można regulować za pomocą dwóch klawiszy. Dzięki zastosowaniu układu oszczędzającego pobierany prąd dzwonek może być zasilany z baterii.
Wyzwolenie dzwonienia odbywa się poprzez podanie impulsu
220 VAC lub wystąpienie prądu dzwonienia w linii telefonicznej - jeśli układ będzie współpracował z telefonem. Układ wyzwalania został zbudowany za pomocą trans op tor a, dzięki czemu elementy dzwonka są odizolowane galwanicznie od napięcia wyzwalającego dzwonienie, co zapewnia bezpieczeństwo jego użytkowania.
Budowa i zasada działania
Schemat elektryczny urządzenia przedstawiono na rys. 1. Głównym elementem całej konstrukcji jest układ USl. Umożliwia on zapis dźwięków o maksymalnym czasie trwania do 20 sekund. Układ ISD1420 zawiera w swojej strukturze kompletny tor zapisu i odtwarzania dźwięków wraz z niezbędnymi filtrami wejściowymi i wyjściowymi. Dodatkowo w układzie zawarty jest wzmacniacz wejściowy umożliwiający bezpośrednie podłączenie mikrofonu pojemnościowego oraz wzmacniacz wyjściowy umożli-
Elektronika Praktyczna 4/2003
33
Programowany sygnalizator głosowy
Rys. 1. Schemat elektryczny programowanego sygnalizatora głosowego
wiający dołączenie głośnika. W przedstawionym układzie dźwięki nagrywane są poprzez mikrofon "MK", rezystory R6, R7 i R8 oraz kondensator C12 stanowią obwód zasilania mikrofonu, kondensatory C9 i CIO oddzielają składową stałą od wejścia wzmacniacza zawartego w układzie USl.
Układ pracuje w trybie adresowania i po każdorazowym wyzwoleniu odtwarzania czy też nagrywania proces rozpoczyna się od początku wewnętrznej pamięci i w przypadku nagrywania trwa do powrotu jedynki logicznej na wejściu "REC" lub przepełnieniu wewnętrznej pamięci, a w przypadku odtwarzania do momentu wykrycia znacznika końca wiadomości.
Ponieważ zawarty wewnątrz układu USl wzmacniacz posiada niewielką moc, zastosowano zewnętrzny układ wzmacniacza US2. Układ ten jest wzmacniaczem audio umieszczonym w obudowie SO8 o maksymalnej mocy 0,8 W, przy napięciu zasilania równym 5 V. Oprócz standardowego wzmacniacza układ TDA8551 zawiera wewnętrzny regulator głośności sterowany cyfrowo. Regulator posiada 64 kroki, a sterowanie odbywa się za pomocą tylko jednego wyprowadzenia. Podanie na wejście sterujące (wyprowadzenie
1) dodatniego impulsu powoduje zwiększenie poziomu głośności, natomiast podanie ujemnego impulsu powoduje jego zmniejszenie. Dzięki temu poziom głośności jest regulowany za pomocą klawiszy bez konieczności stosowania dodatkowych potencjometrów elektronicznych.
Dodatkowo wzmacniacz posiada wejście służące do sterowania trybem pracy, podanie na wejście "MODĘ" masy powoduje, że układ jest w stanie aktywnym i wzmacnia sygnały podawane na jego wejście jeśli na wejście "MODĘ" zostanie podane napięcie równe połowie napięcia zasilania, to układ przejdzie do trybu "MUTE" i będzie pracował, lecz dźwięk będzie wyciszony. Ostatnim trybem pracy jest tryb "STANDBY", tryb ten zostaje włączony po zwarciu wejścia "MODĘ" z plusem zasilania. W tym stanie wszystkie bloki wewnętrzne są wyłączone, jedynie jest podtrzymywana pamięć nastawionej głośności, w trybie tym układ pobiera około 10 |iA prądu. Jak widać, układ TDA85 51 zawiera moduły znacznie poprawiające komfort obsługi i umożliwiające zastosowanie go w układach zasilanych bateryjnie.
Prezentowany dzwonek umożliwia współpracę z typową insta-
lacją dzwonkową, gdzie wyzwolenia dzwonka objawia się pojawieniem napięcia 220 V. Może więc zastąpić standardowy dzwonek elektromagnetyczny. Aby bezpiecznie wykryć pojawienie się napięcia 220 V, zastosowano transoptor TSl, który umożliwia odizolowanie galwaniczne dzwonka od napięcia sieci. Obwód zasilania diody nadawczej zawartej w transop-torze TSl zbudowany jest za pomocą kondensatora C6, rezystorów R2 i R3 oraz diod D2...D4. Kondensator wraz z rezystorami obniża wartość prądu zasilania diody transoptora, dioda D4 zabezpiecza diodę zawartą w trans-optorze przed uszkodzeniem w przypadku pojawienia się prądu wstecznego o zbyt dużej wartości. Diody Zenera D2 i D3 obniżają napięcie w obwodzie o około 15V. Diody te są szczególnie przydatne w przypadku wykorzystania przedstawionego układu jako dzwonka telefonicznego, gdyż umożliwiają przepływ prądu dzwonienia, a jednocześnie blokują zwieranie linii telefonicznej przez kondensator C6 w czasie rozmowy telefonicznej. W czasie rozmowy na linii telefonicznej panuje napięcie około 10 V, diody D2 i D3 powodują spadek napięcia około 15 V, co sprawia, że w obwodzie wejściowym transop-
34
Elektronika Praktyczna 4/2003
Programowany sygnalizator głosowy
Stan Sygnał Tryb aktywny Tryb
spoczynku < dzwonienia < Odtwarzanie komunikatu < spoczynku
Złącze CON2
Wejście bramki US3D
Wyjście bramki US3C
Wejście MODĘ US2
Wejście PLAYE US1
Wyjście RECLED US1
Rys. 2. Przebiegi czasowe w poszczególnych punktach układu
tora nie płynie prąd, a tym samym kondensator C6 nie tłumi użytecznego sygnału rozmownego. Po stronie wtórnej transoptora zastosowano układ całkujący, zbudowany z kondensatora C5 i rezystora Rl. Pojawienie się prądu przemiennego w obwodzie wejściowym transoptora powoduje, że na kolektorze tranzystora wyjściowego pojawiają się ujemne impulsy o częstotliwości równej częstotliwości napięcia sieci (50 Hz) lub częstotliwości prądu dzwonienia (25 Hz), w zależności od wykorzystania dzwonka. Na rys. 2 przedstawiono przebiegi czasowe występujące w poszczególnych punktach układu. Zastosowanie układu całkującego powoduje, że w czasie przepływu przemiennego prądu w obwodzie wejściowym, na wyjściu transoptora panuje stan niski. Następnie sygnał ten trafia na wejście bramki US3D i dalej do bramki US3C, na wyjściu bramki US3C otrzymujemy w pełni cyfrowy sygnał informujący o istnieniu prądu dzwonienia.
Pojawienie się prądu dzwonienia w obwodzie wejściowym transoptora powoduje podanie stanu niskiego na wejście bramki US3B, bramka ta wraz z bramką US3A pełni rolę przerzutnika RS. Podanie stanu niskiego na wejście bramki US3B powoduje zmianę stanu tego przerzutnika i podanie stanu niskiego na wejście "MODĘ" wzmacniacza US2. Podanie masy na to wejście powoduje przełączenie wzmacniacza w tryb
aktywny. Jednocześnie z przełączeniem wzmacniacza w tryb aktywny z wyjścia bramki US3C zostaje podany stan niski na wejście wyzwalania odtwarzania komunikatu "PLAYE" układu USl, co powoduje rozpoczęcie odtwarzania zapisanego komunikatu dźwiękowego. Wejście "PLAYE" charakteryzuje się tym, że po podaniu nawet krótkiego ujemnego impulsu nagrany komunikat zostanie odtworzony do jego końca. W odróżnieniu do wejścia "PLAYL", gdzie komunikat jest odtwarzany tylko wtedy, gdy na tym wejściu panuje stan niski, podanie w dowolnym momencie stanu wysokiego powoduje przerwanie odtwarzania komunikatu, bez względu na to, czy komunikat został zakończony, czy też nie.
Po odtworzeniu całego komunikatu na wyjściu "RECLED" układu USl pojawia się ujemny impuls sygnalizujący zakończenie odtwarzania i układ ISD1420 przechodzi w stan spoczynku. Impuls ten kierowany jest do bramki US3A i powoduje wyzerowanie przerzutnika, a co za tym idzie podanie stanu wysokiego na wejście "MODĘ" wzmacniacza, co z kolei przełącza go w tryb czuwania "STANDBY". W ten sposób w czasie spoczynku układ dzwonka pobiera około 10 |iA prądu, co umożliwia zastosowanie zasilania bateryjnego.
Do ręcznego wyzwolenia sygnału dzwonka zastosowano przycisk SW3, przycisk ten włączony
jest równolegle z tranzystorem wyjściowym transoptora i jego zwarcie jest interpretowane tak, jak wystąpienie napięcia w obwodzie wejściowym transoptora. Przycisk ten jest przydatny podczas sprawdzania poprawności nagranego komunikatu oraz do ustawienia głośności.
Do wyzwolenia nagrywania komunikatu zastosowano zworkę JPl.
Układ zasilania został wykonany z użyciem układu US4, który dostarcza napięcia 5V, kondensatory C1...C4 filtrują napięcie od strony wejściowej i wyjściowej stabilizatora. Dioda Dl zabezpiecza układ przez odwrotną polaryzacją napięcia zasilania.
Montaż i uruchomienie
Przy montażu elementów dzwonka postępujemy według ogólnie przyjętych zasad, poczynając od elementów o najmniejszych gabarytach (schemat montażowy płytki pokazano na rys. 3). Ze szczególną ostrożnością należy przystąpić do montażu układu US2, ze względu na to, że układ umieszczony jest w obudowie SMD. Układ ten należy wlutować przed montażem złączy CON1...CON3 i kondensatorów C13 i C15. Podyktowane to jest tym, że przed wlutowaniem tych elementów jest swobodny dostęp do układu US2 i jego montaż można przeprowadzić bez problemu przy pomocy lutownicy transformatorowej. Po wlutowaniu układu wzmacniacza można wmontować kondensatory Cl 3 i C15 oraz złącza CON1...CON3. Jako złącze CON4, CON5 zastosowano złącza typu goldpin, do których należy przylutować przewody zakończone przyciskami SW1...SW3 (według schematu).
Przed zamontowaniem stabilizatora należy zdecydować, w jaki sposób będzie zasilany dzwonek. Jeżeli układ ma być zasilany z zasilacza, to należy wlutować wszystkie elementy pokazane na rys. 1. Jeżeli jednak układ ma być zasilany bateryjnie, to w miejsce stabilizatora US4 należy wlutować zworkę pomiędzy wejściem a wyjściem (należy zewrzeć punkty oznaczone na płytce jako 1-3). Do zasilania bateryjnego należy zastosować cztery baterie połączone szeregowo, zastosowane baterie
Elektronika Praktyczna 4/2003
35
Programowany sygnalizator głosowy
aooooooooooooo o-l TH l-eooooooo
Ol l'\\)
e\ f!fi ile oi zmio
Rys. 3. Rozmieszczenie elementów na płytce drukowanej
muszą być alkaliczne, gdyż o ile w czasie spoczynku dzwonek pobiera znikomy prąd (ok. 10 |iA), o tyle w czasie odtwarzania pobierany prąd może wynieść nawet 200 mA, Cztery baterie dostarczają napięcia wynoszącego ponad 6 V, co mogłoby uszkodzić układy, ale szeregowo włączona dioda Dl powoduje spadek napięcia o około 0,7 V, w konsekwencji układy są zasilane napięciem o wartości około 5,3 V, a to jest napięcie mieszczące się w zakresie pracy wszystkich układów dzwonka. Zestaw baterii umożliwia wielomiesięczne użytkowanie, gdyż w czasie spoczynku układ pobiera znikomy prąd, a w czasie dzwonienia duży prąd jest pobierany chwilowo.
jeśli dzwonek będzie wykorzystany do sygnalizacji dzwonienia telefonu i wystąpią problemy z jego wyzwalaniem, to należy zwiększyć pojemność kondensatora C6 do wartości 220 nF/250 V. Modelowy układ pracował prawidłowo bez zwiększania tej pojemności, ale w przypadku linii telefonicznych o innych parametrach pojemność 47 nF może okazać się zbyt mała.
Po zmontowaniu układu należy do złącza CON3 podłączyć głośnik, a do złącza CONl napięcie zasilania, nie ma potrzeby podłączania jeszcze przewodów wyzwalania dzwonienia do złącza CON2.
Aby zmontowany dzwonek spełniał swoje zadanie, należy w pamięci układu ISD1420 nagrać komunikat dzwonienia. Rozpoczęcie nagrywania nastąpi po zwarciu zworki JPl, po tej czynności poprzez mikrofon będą nagrywane pojawiające się dźwięki, w czasie nagrywania będzie zapalona dioda D5, sygnalizując stan nagrywania. Zakończenie procesu nagrywania wykonuje się poprzez rozwarcie zworki JPl. Komunikat został zapisany w pamięci i od tej pory będzie odtwarzany po każdorazowym wyzwoleniu. Rozwarcie zworki JPl spowoduje również zgaszenie diody "D5", jeśli jednak w czasie nagrywania komunikatu dioda ta zgaśnie samoczynnie, będzie to oznaczało, że nagrywany komunikat jest za długi i nastąpiło przepełnienie wewnętrznej pamięci. Dlatego komunikat nie może być dłuższy niż 20 sekund.
Po prawidłowym nagraniu komunikatu można sprawdzić, jak został zapisany, w tym celu należy nacisnąć przycisk SW3, a komunikat zostanie odtworzony.
Jeśli proces nagrywania został zakończony, to możemy przejść do podłączenia przewodów z napięciem wyzwalania do złącza CON2. Przy tej czynności należy zachować szczególną ostrożność, gdyż zarówno napięcie 220V jak i napięcie dzwonienia w linii telefonicznej są niebezpieczne dla zdrowia.
Po zmontowaniu i przyłączeniu dzwonka do układu wyzwalania należy ustawić poziom głośności. Regulacji głośności można dokonać jedynie podczas odtwarzania komunikatu, gdyż w czasie spoczynku układ US2 znajduje się w trybie "STANDBY" i wewnętrzny układ zmiany poziomu dźwięku jest również wyłączony. Podtrzymywana jest tylko wartość poziomu głośności ustawionej w trybie aktywnym. Aby więc zmienić głośność, należy uruchomić odtwarzanie komunikatu przyciskiem SW3, a klawiszami SWl i SW2 ustawić żądany poziom, klawiszem SWl poziom ten jest zwiększany, a klawiszem SW2 poziom jest zmniejszany.
Uwaga! Jeżeli poziom głosu zostanie odpowiednio ustawiony, a po odtworzeniu komunikatu zostanie on samoczynnie zmniejszo-
WYKAZ ELEMENTÓW
Rezystory
Rl, R4: lOOkO
R2, R3: 4,7kn
R5, R6: lkn
R7, R8: 10kO
R9: 5,lkn
RIO: 470kQ
Rl 1, R12: 2,2kQ
Kondensatory
Cl, C4, C14: 100jiF/16V
C2, C3, C7, C10, C15, C16:
lOOnF
C5, Cli: 4,7^F/1ÓV
Có: 47nF/400V
C12: 220|iF/16V
Cl3: 330nF
Półprzewodniki
Dl: 1N4007
D2, D3: DZ 15V
D4: 1N4148
D5: LED 3mm czerwona
TS1: PC817
US1: ISD1420
US2: TDA8551
US3: CD4011
US4: LM7805
Różne
JPl: goldpin 1x2 + jumper
CONl: ARK2(5mm)
CON2, CON3: ARK2(3,5mm)
CON4: goldpin 1x4
CON5: goldpin 1x2
SWl, SW2, SW3: mikrowłączniki
MK: mikrofon pojemnościowy
Podstawki DIL28, DIL14, DIL8
ny, oznaczać to będzie, że źródło zasilania ma za małą wydajność prądową i powstaje zbyt duży spadek napięcia. Taka sytuacja będzie się pojawiała, jeśli napięcie zasilania spadnie poniżej 4,5 V. Jeżeli układ jest zasilany bateryjnie, będzie to oznaczało, że baterie zostały wyczerpane, a w przypadku zasilacza, że zastosowany zasilacz posiada zbyt małą wydajność prądową i należy zastosować "silniejszy" zasilacz. Wymagany prąd zasilania wynosi minimum 200 mA przy napięciu około 9 V.
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/ ?pdflkwiecienO3.htm oraz na płycie CD-EP4/2003B w katalogu PCB.
36
Elektronika Praktyczna 4/2003
PROJEKTY
Dekoder dźwięku dookólnego SRS, część 2
Surround na dwóch głośnikach
AVT-5105
W reklamach można
wyczytać, że efekt dźwięku
dookólnego uzyskuje się
wyłącznie poprzez
zastosowanie n->głośnikowych. My, mając silne
oparcie w kilkuletnich
doświadczeniach firmy
SRS Labs, twierdzimy, że
doskonały efekt dookólny
można osiągnąć za pomocą
dwóch zestawów głośnikowych
zasilanych z klasycznego
wzmacniacza stereofonicznego.
Rekomendacje: procesor
wzbogacający brzmienie przez
znaczne poszerzenie bazy
odsłuchowej, który może
współpracować z każdym
domowym zestawem
stereofonicznym audio.
Montaż i uruchomienie
Procesor zmontowano na dwóch dwustronnych płytkach z metalizacją otworów. Na płytce głównej (jej schemat montażowy pokazano na rys. 2) umieszczono zasadnicze elementy urządzenia, tzn.: układ TDA7466 z elementami zewnętrznymi, sterownik, przełącznik wejść, i układ zasilania. Mikiokontioler U2 i pamięć U3 powinny być umieszczone w podstawkach. Wszystkie sygnały wejściowe i wyjściowe są podłączane za pomocą złącz Cinch wlutowy-wanych w płytkę drukowaną. Wyjątkiem jest wyjście nagrywania. Sygnały nagrywania zostały dołączone do dwu punktów lutowniczych opisanych TAPE L/R.
Druga z płytek to płytka wyświetlacza i klawiatury. Jej schemat montażowy pokazano na rys. 3. Umieszczono jest na niej wyświetlacz 2x20 znaków i 5-przy-ciskową klawiaturę.
Na krawędzi obu płytek zostały umieszczone punkty lutownicze tak żeby można było połączyć obie płytki za pomocą rzędu kątowych goldpinów. Po takim połączeniu obu płytek powstaje moduł z poziomą płytką główną i pionową płytką wyświetlacza. Można również połączyć obie płytki wiązką przewodów.
Montaż można zacząć od płytki głównej. Najpierw trzeba wlutować kompletny układ zasilacza, przełącznik wejść, podstawki pod U2 i U3 i wszystkie elementy bierne. Na tym etapie Ul nie powinien być wlutowany, a U2 i U3 nie powinny być włożone w podstawki.
Po dołączeniu do zacisków ZMl i ZM2 napięcia o wartości ok. 12...14 V (stałego lub przemiennego) trzeba sprawdzić poprawność napięcia zasilającego +9 V układu Ul i napięcia +5 V układów U2 iU3.
Po zmontowaniu płytki wyświetlacza trzeba ją połączyć z płytką główną i można włożyć do podstawek zaprogramowany mikiokontioler U2 i pamięć U3. Jeżeli wszystkie elementy są prawidłowe i mikiokontioler jest poprawnie zaprogramowany, to po włączeniu zasilania na ekranie wyświetlacza powinien się pojawić na około 2 sekundy komunikat powitalny: PROCESOR SRS AVT 2 0 03
a następnie napis:
VolL -OOdB EFFECT1 VolR -OOdB IWPUT 1
Przy pierwszym uruchomieniu w pamięci EEPROM są zapisane przypadkowe wartości lub - kiedy pamięć jest wykasowana - są to tam same wartości FFh. Program
Elektronika Praktyczna 4/2003
37
Dekoder dźwięku dookolnego SRS
o
C21 C22C23C26C2
0 p c O O & o o
Q o 'ó o o
o oo
uiOOOOOOOOOOOOOOOOOOOOO
PR71O
o ooo
M-12H
o ooo
R.77 O
o ooo
CM-12H
o ooo
DOOOOOOOOOOOOOOOOOOOO
o o 0
s i 6
o o 0
n
o O o 2u2o ol o o % o o
c Snś s Cli bTps 100 Rl
o 212. o O 2u2O o 1 o o o O
r? nil
O OOO
M1-12H
O OOO
R2 f)l 01B n RM R13 R1
o o o o o o ero o o o o o o
Rys. 2. Płytka główna procesora
LCD
PROCESOR SRS
oo-
oo-
oo
oo
oo-
hoo-
oo-
SRS UYS
T.J. 2003
b
O O
o o
SW1
oo
oo
oo o o
o o
óóóóóóóóólooóoo
Rys. 3. Płytka wyświetlacza
sprawdza czy jest to pierwsze uruchomienie i jeżeli tak jest to wpisuje do przestrzeni pamięci używanej przez procesor same zera. Trzeba pamiętać, że nawet tak zainicjowany procesor wymaga wstępnego skonfigurowania przez wywołanie wszystkich funkcji i wpisanie żądanych ustawień. Zostanie to opisane w dalszej części artykułu. Ponieważ do TDA7466 informacje są tylko wpisywane, to można sprawdzić wstępnie sterownik bez tego układu. Poprawność wpisywania ustawień i regulacji do pamięci EEPROM sprawdza się przez wyłączenie i ponowne włączenie urządzenia. Jeżeli na przykład zostanie ustawione wzmocnienie w obu kanałach na poziomie -18dB, to po wyłączeniu i ponownym włączeniu zasilania taka wartość wzmocnienia powinna być wyświetlana na ekranie.
Po sprawdzeniu sterownika można wlutować układ Ul. Do wejścia WEl_L podłączamy syg-
nał sinusoidalny o częstotliwości 1 kHz i amplitudzie ok. 200 mV, a do wyjścia WY_L oscyloskop. Ustawiamy aktywne wejście na 1 (INPUTl) i sprawdzamy poprawność regulacji wzmocnienia. Sygnał z generatora trzeba po kolei podawać na wszystkie wejścia procesora przełączając aktywne wejście i obserwując sygnał na ekranie oscyloskopu dołączonego do wyjścia sprawdzić poprawność działania przełącznika wejść.
Teraz trzeba zmienić częstotliwość sygnału na ok. 100 Hz, wejść do funkcji regulacji tonów niskich i sprawdzić jak są one regulowane. Analogicznie ustawiamy częstotliwość ok. 3...4 kHz i regulujemy tony średnie i na koniec przy częstotliwości ok. 10 kHz tony wysokie. To są właściwie wszystkie regulacje, które można sprawdzić zestawem oscyloskop - generator. Dalsze sprawdzanie wykonuje się "na słuch" po podłączeniu do aktywnego wej-
ścia sygnału akustycznego np. z odtwarzacza CD, a wyjście procesora do wejścia wzmacniacza m.cz. stereo. Jeżeli ktoś nie dysponuje oscyloskopem i generatorem, to może od początku uruchamiać procesor metodą "na słuch".
Układ TDA7466
Układ TDA7466 jest wewnętrznie bardzo rozbudowany (rys. 4). Za pomocą zestawu wewnętrznych rejestrów można w nim ustawiać wiele parametrów. Między innymi można regulować wzmocnienie niezależnie w oby kanałach i regulować barwę tonu. Dostępna jest też funkcja Voice Canceller, umożliwiająca wytłumienie głosu wokalisty z odsłu-chiwanego utworu. Wykorzystywany jest tutaj fakt, że w większości utworów głos wokalisty jest umieszczony w środku bazy stereo. Odpowiednie matrycowanie sygnału stereo pozwala na
Elektronika Praktyczna 4/2003
Dekoder dźwięku dookolnego SRS
Tab. 2. Właściwości układu TDA7466
x Jedno wejście stereo (2 kanały prawy
i lewy),
x Programowane tłumienie wejścia, x Regulacja barwy (tonów niskich, średnich
i wysokich), x Dostępna funkcja Voice Canceller
(usuwanie głosu wokalisty), x Stereofoniczny dźwięk przestrzenny SRS, x Dźwięk dookólny surround, x Trzy tryby surround: Musie, Movie
i Simulated, x Niezależna regulacja wzmocnienia w obu
kanałach, x Wyjście do nagrywania z regulowanym
poziomem sygnału niezależnie w obu
kanałach, x Wszystkie funkcje programowane
magistralą I2C.
Rys. 4. Schemat blokowy
wytłumienie głosu i pozostawię- i próbować swoich sił jako woka-
nie praktycznie bez zmian pozo- lista. Trzeba jednak pamiętać, że
stałej ścieżki dźwiękowej. Po włą- włączenie funkcji Voice Canceller
czeniu Voice Canceller można eliminuje efekt dźwięku prze-
używać procesora jako karaoke strzennego.
Oprócz opisywanego już dźwięku przestrzennego SRS TDA7466 może wytworzyć dźwięk dookólny [surround) metodą matrycowania i przesunięcia fazy sygnałów stereofonicznych.
Komunikacja pomiędzy TDA7466 a sterownikiem odbywa się przez magistralę PC. Układ TDA7466 jest układem slave o adresie lOOOOOOOb (80h). Dane do układu są tylko zapisywane - nie ma możliwości odczytania czegokolwiek. Przesłanie danych przez magistralę PC pokazane jest na rys. 5. Układ master (sterownik PIC16F76) najpierw wysyła sekwencję start, a potem adres slave 80h układu TDA7466. Po wysłaniu adresu i odebraniu z układu bitu potwierdzenia ACK sterownik wysyła na magistralę subad-res. Subadres określa adres rejestru TDA7466, do którego zostaną w następnej kolejności wysłane dane - tab. 3. Jeżeli w wysyłanym subadresie zostanie ustawiony bit B, to każdy następny wysyłany bajt będzie przesyłany do kolejnego rejestru. Na przykład po wysłaniu subadresu 80h (adres OOh i ustawiony bit B) i danej zostanie ona wpisana do rejestru o adresie OOh. Po odebraniu bitu potwierdzenia ACK i wysłaniu kolejnej danej zostanie ona wpisana do rejestru o adresie Olh itd. Nie ma wtedy konieczności adresowania za każdym razem wysyłanej danej. Transfer danych kończony jest przez mastera (sterownik) wysłaniem sekwencji stop.
Szczegółowy opis sterowania poszczególnymi funkcjami układu TDA7466 (w języku polskim) publikujemy na CD-EP4/2003B.
Elektronika Praktyczna 4/2003
39
Dekoder dźwięku dookolnego SRS
ADRES SLAVE
MSB LSB
SUBADRES MSB LSB
DANA (subadres) MSB LSB
s 1 0 0 D 0 0 0 D ACK B 0 ACK 0 ACK P
FVW a) pizesłanle Jednej danej (B=0)
ADRES SLAVE MSB LSB
SUBADRES MSB LSB
DANA1 (subadres) MSB LSB
DANA2(subadres+1) MSB LSB
DANA3(subadres+2) MSB LSB
s 1 0 0 0 0 0 0 0 ACK B 0 ACK 0 ACK D ACK 0 ACK P
R/W
b) przestanie Ulku danych z autolnkrementacją (B=1) S - sekwencja startu P - sekwencja stopu ACK - bit potwierdzenia B - bit autoinkrementacji
Rys. 5. Przesłanie danych po magistrali I2C do TDA746Ó
Uwagi końcowe
Po prawidłowym zmontowaniu, uruchomieniu i zaprogramowaniu procesor jest gotowy do pracy. Możliwość zaprogramowania wielu parametrów pozwala na bardzo elastyczne dobranie trybu pracy urządzenia do indywidualnych wymagań użytkownika. Przeprowadzone testy od słuchowe w pełni potwierdziły zdecydowaną poprawę odtwarzania zwykłych nagrań stereo. Dźwięk był
0 wiele bardziej przestrzenny
1 zgodnie z zapowiedziami firmy
SRS Labs efekt ten utrzymywał się w większej części pomieszczenia. Oczywiście są to moje subiektywne odczucia. Żeby sprawdzić jak działa efekt SRS można na początek procesor ustawić tak:
- funkcja SURROUND:
SURROUND MODĘ np.
SURR.OUT VAR
EFFECT -06
(reszta bez znaczenia)
- funkcja SRS CONTROL:
SRS SPACE ATT O....-4dB SRS CENTER ATT O....-4dB
Tab. 3. Rejestr wyboru funkcji
MSB iubadres LSB Funkcja
D7 D6 D5 04 D3 D2 01 DO
B X X X 0 0 0 0 INPUT ATTENUATION
B X X X 0 0 0 1 SURROUND & OUT & EFFECT CONTROL
B X X X 0 0 1 0 PHASE RESISTOR
B X X X 0 0 1 1 BASS& NATURAL BASE
B X X X 0 1 0 0 Ml DDLE & TREBLE
B X X X 0 1 0 1. SPEAKER ATTENUATION "L"~1
B X X X 0 1 1 0 SPEAKER ATT ENUATION "R"
B X X X 0 1 1 1 RECORD ATTENUATION "L"
B X X X 1 0 0 0 RECORD ATTENUATION-R"
B X X X 1 0 0 1 INPUT MULTIPLEXER, VOICE CANCELLER & REC OUT
B X X X 1 0 1 0 SRS/SPACE ATTENUATION
B X X X 1 0 1 1 SRS/CENTER ATTENUATION
X- wartość nie znacząca B - bit autoinkrementacji
SRS INPUT OFF (dla zwykłego stereo)
SRS SWITCH ON - funkcja VOICE CANCELL
VOICE CANC &REC OUT OFF (reszta bez znaczenia) W czasie regulacji barwy tonów trzeba zachować umiar. Duże podbicie tonów niskich i wysokich w połączeniu z SRS SPACE ATT=0dB i SRS CENTER ATT=0dB może spowodować powstawanie zniekształceń przy odtwarzaniu niektórych nagrań.
Próby działania procesora można przeprowadzić z różnymi źródłami dźwięku. Ciekawe efekty można uzyskać przy odtwarzaniu dźwięku stereo towarzyszącemu filmom. Ze strony in-ternetowej firmy SRS Labs można też pobrać demonstracyjne pliki audio specjalnie tak przygotowane żeby pokazać możliwości systemu SRS. 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/ ?pdflkwiecienO3.htm oraz na płycie CD-EP4/2003B w katalogu PCB.
40
Elektronika Praktyczna 4/2003
PROJEKTY
Uniwersalny nadajnik
RC5/SIRC, częsc 2
AVT-5104
Nadajnik zdalnego
sterowania kojarzy nam się
zazwyczaj z pudełkiem
z wieloma klawiszami- Opisy
takich nadajników były
niejednokrotnie publikowane
na łamach EP. Nadajnik
prezentowany w artykule ma
nieco odmienną budowę, gdyż
nie posiada ani jednego
przycisku, a może
wygenerować dowolny kod
w standardzie RC5 oraz
SIRC.
Rekomendacje: przyrząd
szczególnie przydatny do prac
serwisowych przy naprawie
odbiorników telewizyjnych,
magnetowidów, odtwarzaczy
DVD i sprzętu audio. Przyda
się także wszystkim fanom
eksperymentów ze zdalnym
sterowaniem w dwóch
najbardziej popularnych
standardach kodowania.
Montaż i uruchomienie
Z uwagi na niewielką liczbę elementów układu nadajnika montaż można wykonać na płytce jednostronnej (jej schemat montażowy pokazano na rys. 4) . Niewielka liczba elementów nie powinna sprawić problemów, jednak przy montażu postępujemy tak jak w przypadku każdego innego, poczynając od elementów o najmniejszych gabarytach (rezystory, diody). W kolejnym etapie montujemy podstawkę pod układ USl i stabilizator US2. Stabilizator jest montowany na leżąco, więc przed wlutowaniem należy jego wyprowadzenia zagiąć pod katem 90. Na końcu montujemy diody D2...D4, kondensatory i złącza CONl i CON2. Po poprawnym zmontowaniu układ jest gotowy do pracy.
Obsługa
Po zmontowaniu układu, złącze CON2 należy podłączyć do portu szeregowego komputera, a do złącza CONl napięcie zasilania o wartości około 9V. Po włączeniu zasilania dioda D4 zapali się na jedną sekundę, a następnie zgaśnie i układ jest gotowy do pracy.
Do sterowania nadajnika należy wykorzystać dowolny program terminalowy, na przykład HyperTer-minal znajdujący się standardowo w systemie Windows. Program na-
leży skonfigurować do transmisji z prędkością 9600, z jednym bitem stopu, bez bitu parzystości. Wygląd okien konfiguracji programu HyperTeiminal przedstawiono na rys. 5. Aby odpowiednio skonfigurować połączenie, należy wybrać menu Plik, następnie właściwości, w menu Właściwości wybieramy port szeregowy, do którego jest podłączony nadajnik, a następnie Konfiguruj. W kolejnym oknie ustawiamy parametry transmisji, takie jak na rys. 5.
Po skonfigurowaniu programu i nawiązaniu połączenie z nadajnikiem można przejść do sterowania urządzeń. Przy starcie proce-
Rys. 4. Rozmieszczenie elementów na płytce drukowanej
Elektronika Praktyczna 4/2003
41
Uniwersalny nadajnik RC5/SIRC
Rys. 5. Okno programu HyperTerminal podczas ustalania parametrów transmisji
sora domyślnym systemem nadawania jest system RC5. Każdy kod w tym systemie składa się z czterech cyfr, pierwsze dwie to adres urządzenia (0. "31), następne to komenda (0...63).
W celu wysłania komendy numer "12" do urządzenia o numerze "10" należy wybrać z klawiatury cyfiy: "1", "2", "1", "0" i zatwierdzić klawiszem Enter. Jeśli w czasie wpisywania cyfr pomylimy się, to można rozpocząć ponownie wpisywanie cyfr, ponieważ procesor odbiera kody z portu szeregowego i wpisuje je do bufora, można więc podać nieskończoną liczbę cyfr, ale jako kod do wysłania procesor traktuje cztery ostatnio wpisane cyfry, przed naciśnięciem klawisza Enter.
Jeśli wysłany poprzednio kod chcemy wysłać ponownie, to nie
trzeba jeszcze raz go podawać, wystarczy nacisnąć Enter i kod zostanie wysłany, gdyż przez cały czas znajduje się w pamięci procesora. Ponieważ każda sekwencja wysłana do nadajnika musi składać się z czterech cyfr, to w przypadku wysyłania na przykład komendy numer "1" do urządzenia
Tab. 2. Najczęściej spotykane rozkazy w systemie kodowania RC5
Tab. 1. Najczęściej spotykane adresy urządzeń w systemie kodowania RC5
Adres Urządzenie
00 Telewizor
02 Videotext
05 Magnetowid
07 Do celów eksperymentalnych
16 Przedwzrnacniacz
17 Odbiornik/Tuner
18 Magnetofon
19 Do celów eksperymentalnych
20 Odtwarzacz CD
Numer rozkazu Rozkaz
00 09 Cylry 0 9
12 Gotowość
13 Wyciszenie
14 Ustawienia podstawowe
16 Głośność(+)
16 Głośność(-)
18 Jaskrawość(+)
19 Jaskr awość(-)
20 Nasycenie kolorów(+)
21 Nasycenie kolorów(-)
22 Tony niskie(+)
23 Tony mskie(-)
24 Tony wysokie(+)
25 Tony wysokie(-)
26 Balans w prawo
27 Balans w lewo
48 Pauza
50 Szybkie przewianie wprzód
52 Szybkie przewianie w Tył
53 Odtwarzanie
54 Stop
55 Nagrywanie
Tab. 3. Najczęściej spotykane adresy urządzeń w systemie SIRC
Adres Urządzenie
01 Telewizor
02 Magnetowid 1
04 Magnetowid 2
06 Odtwarzacz dysków laserowych
12 Urządzenie dźwięku dookólnego
16 Magneto to n/Tuner
17 Odtwarzacz CD
18 Korektor graficzny
Tab. 4. Najczęściej spotykane rozkazy w systemie SIRC
Numer rozkazu Rozkaz
000 009 Cylry 0 9
016 Kanał (+)
017 Kanał (-)
018 Głośność(+)
019 Głośność(-)
020 Wyciszenie
021 Włączenie/wyłączenie
022 Ustawienia podstawowe
023 Tryb audio
024 Kontr as T(+)
025 Kontr ast(-)
026 Kolor(+)
027 Kolor(-)
030 Jaskr awość(+)
031 Jaskrawość(-)
038 Balans w lewo
039 Balans w prawo
046 Włączenie
047 Wyłączenie
0 numerze "1", wybrana z klawiatury sekwencja będzie miała postać: "O", "1", "O", "1". Po wysłaniu żądanej komendy do komputera zostanie odesłana wpisana wcześnie sekwencja klawiszy, w celu porównania, czy wpisane z klawiatury cyfry są takie same jak wysłane przez nadajnik. Format wysyłanych do komputera danych dla wysłanego kodu "2314" ma postać: "R A=23 K=14", gdzie "R" oznacza, źe nadajnik wysyła dane w systemie RC5, "A"- oznacza adres urządzenia, "K"- numer komendy. W tab.
1 podano najczęściej spotykane adresy urządzeń w systemie RC5, a w tab. 2 najczęściej używane komendy.
Aby wysłać dane w systemie SIRC, należy najpierw przełączyć nadajnik w ten tryb, w tym celu w dowolnym momencie należy nacisnąć klawisz "s" lub "S'\ Po
42
Elektronika Praktyczna 4/2003
Uniwersalny nadajnik RC5/SIRC
naciśnięciu jednej z tych liter nadajnik przełączy się w tryb nadawania w systemie SIRC.
W tym systemie każda komenda składa się z pięciu cyfr, ponieważ system ten obsługuje większą liczbę komend. Pierwsze dwie cyfry wybrane z klawiatury to adres urządzenia (0...31), następne trzy to komenda (0...127). Podobnie jak w przypadku wybierania kodu w systemie RC5 można wybrać wiele cyfr, ale jako właściwy kod traktowane jest pięć ostatnich wybranych przed klawiszem Enter. Aby wysłać do urządzenia o numerze "17" kod o numerze "104", należy wybrać sekwencję "1", "7", "1", "0", "4". Każda sekwencja musi składać się z pięciu cyfr,
dlatego jeśli numer urządzenia jest mniejszy od "10" lub komenda jest mniejsza od "100", to na pozostałych miejscach należy wpisać zera. Dla przykładu numer urządzenia jest równy "1", a komenda jest równa "2", w takiej sytuacji wpisana sekwencja ma postać: "0", "1", "0", "0", "2". Po zatwierdzeniu klawiszem Enter wybrany kod zostaje wysłany przez diody nadawcze, a do komputera zostaje odesłana informacja, jaki kod został wysłany w formacie: "S A=01 K=001". Litera "S" informuje, że dane nadawane są w systemie SIRC, litera "A" oznacza adres urządzenia, a litera "K" numer komendy. W tab. 3 zawarto kody najczęściej używanych urządzeń,
a w tab. 4 najczęściej używane komendy w systemie SIRC.
Jeżeli chcemy z systemu SIRC przełączyć się ponownie na system RC5, wystarczy nacisnąć klawisz "r" lub "R". Jeśli nie mamy pewności, w jakim systemie aktualnie pracuje nadajnik, to każdą komendę można poprzedzić znakiem systemu "s" lub "r". Wtedy nadajnik przełączy się w tryb podanego systemu i wyśle komendę w tym systemie. 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/ ?pdflkwiecienO3Jitm oraz na płycie CD-EP4/2003B w katalogu PCB.
Elektronika Praktyczna 4/2003
43
PROJEKTY
Yampp-7
Kieszonkowy odtwarzacz MP39 część 2
Przedstawiamy kolejny
odtwarzacz MP3, tym razem
zaprojektowany jako
urządzenie przenośne. Yampp-
7 używa jako nośnika
pamięciowego kań Compact
Flash lub MultiMedia Card,
co czyni z niego urządzenie
na wskroś nowoczesne.
R ekom en dacj e:
prezentowany w ańykule
odtwarzacz to kolejny krok
w miniaturyzacji odtwarzaczy
MP3, więc polecamy jego
opis przede wszystkim fanom
empetrójkowych nagrań, którzy
nie lubią się rozstawać ze
swoimi nagraniami.
Montaż i uruchomienie
Ze względu na małe wymiary odtwarzacza, elementy na płytce drukowanej umieszczone są z obydwu jej stron. Jedna strona zawiera większość elementów składowych yamppa, a na drugiej zamontowane jest złącze karty Flash, złącze USB, gniazdo słuchawkowe, złączka do baterii oraz przyciski sterujące. Rozmieszczenie elementów po obu stronach płytki drukowanej yamppa pokazano na rys. 3 i 4. Na początku należy zamontować wszystkie małe elementy SMD, następnie układy scalone, a jako ostatnie większe elementy jak kondensatory elektrolityczne, kwarce i złącze wyświetlacza. Przed przy lutowaniem złącza wyświetlacza oraz kwarców Ql i Q2 należy skrócić ich wyprowadzenia tak, żeby nie wystawały one ponad powierzchnię drugiej strony płytki drukowanej yamppa. W przeciwnym przypadku uniemożliwi to późniejsze przy lutowanie złącza karty pamięci oraz prawidłowe wsunięcie karty Compact Flash. Obcięcie wyprowadzeń na równo z powierzchnią płytki po wluto-waniu tych elementów jest bardzo kłopotliwe. Pamiętajmy również
0 wyborze pomiędzy IC5 a Dl, R2
1 R3. Jeśli planujemy wykonanie yamppa-7 w wersji z wyświetlaczem LCD, warto jest w roli kon-
densatorów Cl2 i Cl3 zastosować kondensatory tantalowe 100fiF/6V, ponieważ mają one mniejszą grubość niż standardowe aluminiowe elektrolity, co później ułatwi montaż wyświetlacza - szczególnie jeśli chcemy, żeby był podświetlany diodami LED. Tranzystor T2 montujemy również tylko wtedy gdy będziemy korzystać z podświetlanego diodami LED wyświetlacza. Na końcu montujemy gniazdo karty pamięci Flash - więc będzie to Jl, jeśli chcemy używać kart CF lub X2 dla kart MMC, i resztę elementów umieszczonych po drugiej stronie płytki. W sąsiedztwie gniazda USB znajduje się miejsce na diodę LED, którą należy zamontować tylko wtedy, gdy nie planujemy podświetlania wyświetlacza lub jego zupełny brak. Po zamontowaniu wszystkich elementów płytkę należy umyć z resztek kalafonii, stosując do tego celu izopropanol lub specjalny preparat do mycia płytek.
Po sprawdzeniu poprawności montażu możemy przystąpić do uruchomienia odtwarzacza. W tym miejscu mam jedną bardzo ważną uwagę. Nie wolno uruchamiać odtwarzacza bez podłączonego akumulatora, stosując jedynie zasilanie poprzez kabel USB! Może to doprowadzić do uszkodzenia dekodera VSl001, układu ładowarki
Elektronika Praktyczna 4/2003
45
Yampp-7
www.yampp.com
Rys. 3. Rozmieszczenie elementów na płytce drukowanej odtwarzacza (strona elementów)
MAX1811 oraz wyświetlacza LCD. Pierwszą czynnością będzie zaprogramowanie mikrokontrolera programem bootloadera. Niestety na płytce yamppa-7 nie ma miejsca na standardowe złącze programujące zgodne ze złączem interfejsu STK200, wiec musimy wykonać sobie odpowiednią przejściówkę, której schemat połączeń pokazany jest na rys. 5. Następnie podłączamy do yamppa akumulator, do złącza J2 naszą przejściówkę z podłączonym kablem interfejsu programującego, a sam interfejs wtykamy do portu drukarkowego komputera, po czym uruchamiamy program ładujący. Jeżeli korzystamy z programu Yapp, należy nacisnąć klawisz identyfikacji procesora. W okienku obok powinna pojawić się informacja o wykryciu procesora Atmegal61. Jeśli wszystko przebiega poprawnie, to otwieramy nowy projekt, zaznaczamy okno z zawartością pamięci Flash i wczytujemy plik bootloadera [Fi-le>Load File>yampp7_boot.hex). Teraz wystarczy kliknąć na ikonę z wykrzyknikiem, czyli Autopro-gram i po chwili bootloader zostanie załadowany do procesora. W przypadku korzystania z innego programu ładującego procedurę ładowania pliku yampp7_boot.hex przeprowadzamy zgodnie z jego instrukcją obsługi. Po zaprogramowaniu mikrokontrolera bootloade-rem musimy wykonać jeszcze jed-
ną ważną czynność. Żeby procesor yamppa mógł skorzystać z bootloadera, trzeba go poinformować o jego istnieniu. Do tego celu służą specjalne opcje konfiguracyjne procesora, czyli tak zwane bity fuse. Aby ustawić te opcje wykorzystując program "YAPP", należy skorzystać z menu Program>Lock Bits & Fuses. Po wywołaniu tej funkcji w okienku Fuses należy zaznaczyć następujące pozycje: CKSELO, CKSEL2, BOODLEVEL, BOOTRST. Wszystkie pozostałe opcje muszą pozostać niezaznaczone, co zostało pokazane na rys. 6. Następnie należy kliknąć Write Fuses, żeby wysłać ustawienia do procesora yamppa. Na tym kończy się procedura programowania procesora poprzez interfejs SPI, więc możemy już odłączyć programator od złącza J2 oraz akumulator. Wgra-nia właściwego programu obsługi yamppa-7, jak również ewentualnej jego aktualizacji dokonamy poprzez interfejs USB. Żeby było to możliwe, należy zainstalować na komputerze PC odpowiedni sterownik USB uzyskany od firmy FTDI oraz aplikację yamppLink. Sposób ich instalacji i konfiguracji został podany przy okazji opisu yamppa-3/USB i można go znaleźć w EP1/2003.
Przygotowanie yamppa do pracy
Jeśli mamy już zainstalowane potrzebne oprogramowanie, możemy przystąpić do pierwszego uruchomienia yamppa. Na początku trzeba wgrać właściwe oprogramowanie. Do tego celu wykorzystamy bootloader wgrany wcześniej do
procesora yamppa, złącze USB oraz aplikację yamppLink. Najpierw uruchamiamy yamppLinka i w menu Options->Preferences wpisujemy nazwę portu COM, którą uzyskaliśmy podczas instalacji sterowników FTDI. Następnie do yamppa wkładamy kartę pamięci, podłączamy wyświetlacz, następnie akumulator i na końcu kabel USB. Po kilku sekundach potrzebnych na enumerację urządzeń USB możemy wybrać z menu programu Actions->Update Firmware, a jako plik do załadowania wybrać yampp7_usb.bin. W zależności od tego, czy będziemy używać yamppa z wyświetlaczem LCD, czy też bez, wybieramy odpowiednią wersję oprogramowania. Wersja z obsługą LCD znajduje się w katalogu yampp7_usb, a bez - w katalogu yampp7_usb_nlcd. Jeśli wszystko przebiegnie prawidłowo, to po kilku sekundach dostaniemy odtwarzacz gotowy do pracy, który po wykryciu nowej karty automatycznie ją sformatuje. Po poprawnym zakończeniu formatowania można w programie yamppLink wybrać opcję Connect. Po chwili potrzebnej na inicjalizację struktur danych na karcie możemy rozpocząć ładowanie plików MP3 do yamppa. Możemy dodawać pojedyncze pliki lub całe playlisty wygenerowane programem Wi-namp. Po zakończeniu ładowania plików klikamy Disconnect, yampp zostaje zrestartowany, no i po naciśnięciu klawisza PLAY powinien rozpocząć odtwarzanie. W przypadku wystąpienia kłopotów w trakcie ładowania bądź aktualizacji oprogramowania powodujących brak re-
Rys. 4. Rozmieszczenie elementów na płytce drukowanej odtwarzacza (strona złącz)
46
Elektronika Praktyczna 4/2003
Yampp-7
STK200
1
5 7 9 2 4,6.8,10 -4-
MOSI
RESET
SCK
MISO
VCC
Yampp-7
-3
6 -2
-10
-1
GND
Rys. 5. Sposób dołączenia programatora ISP do Yamppa
akcji odtwarzacza na próbę jego załączenia lub brak komunikacji poprzez USB możemy ręcznie uruchomić bootloader. W tym celu należy odłączyć kabel USB, otworzyć obudowę yamppa i odłączyć akumulator. Następnie trzymając naciśnięte jednocześnie klawisze
UP i DOWN, podłączyć z po- T-----
wrotem akumulator. Teraz po dołączeniu kabla USB można powtórzyć ładowanie oprogramowania.
Zastosowany w yamppie-7 graficzny wyświetlacz umożliwia wgranie do pamięci EEPROM mikrokontrolera danych tworzących dowolny obrazek - czyli graficzne logo, pojawiającego się na wyświetlaczu podczas uruchamiania yamppa oraz w trybie STOP. W tym celu należy przygotować sobie dowolną czarno-białą bitmapę o rozmiarach 84x32 pikseli (plik o długości 446 bajtów), po czym należy ją wgrać do yamppa-7 przy pomocy programu yamppLink, wybierając z menu Ac-tions funkcję Write Logo to EEPROM. W tym czasie yamppLink musi być w stanie Connected. Kolejnym dodatkiem jest możliwość poprawnego wyświetlania zestawu znaków diakrytycznych, czyli np. polskich "ogonków". W tym celu w oknie Preferences programu yamppLink ustawiamy EE-Prom Stań Address... na 16, klikamy OK, a następnie łączymy się z yamp-pem poprzez kliknięcie przycisku Connect. Następnie z menu Actions wybieramy opcję Write arbitrary data from file to EEPROM, wybieramy plik Polish.bin znajdujący się wewnątrz katalogu Lang, w pakiecie oprogramowania systemowego, i na koniec potwierdzamy chęć zapisania danych.
Wersje oprogramowania systemowego yamppa-7
Ze względu na to że yampp-7 może być wykonany zarówno w wersji z wyświetlaczem LCD, jak i bez niego, dostępne są dwie
wersje oprogramowania systemowego. Oprogramowanie w wersji od 2.0 wzwyż jest przeznaczone dla yamppa wyposażonego w wyświetlacz. Wersje nie obsługujące wyświetlacza mają za to jedną dodatkową opcję ułatwiającą uruchomienie yamppa w razie wystąpienia kłopotów. Jest nią programowy UART umożliwiający podglądnięcie procesu inicjalizacji i statusu odtwarzacza w oknie terminala uruchomionego na komputerze PC. W tym celu należy podłączyć linie RXD portu RS232 komputera bezpośrednio do portu PB4 (wyprowadzenie nr 44) mikrokontrolera Ul,
W tym miejscu muszę zaznaczyć, że
obecnie oprogramowanie systemowe
yamppa-7 obsługuje tylko karty pamięci
Compact Flash, a obsługa kart typu MMC
jest dopiero w stadium opracowywania.
Ze względu na cykl wydawniczy EP może
się okazać, ze w momencie ukazania się
tego artykułu powyższa uwaga będzie już
nieaktualna.
a terminal ustawić na 115200 bodów, 8 bitów danych i 1 bit stopu.
Struktura i konfiguracja oprogramowania
Podobnie jak w przypadku yam-ppa-3/USB, oprogramowanie systemowe dla yamppa-7 zostało podzielone na dwie części, czyli warstwy. Pierwszą z nich tworzą niskopoziomowe procedury obsługi większości urządzeń napisane w asemblerze, które znajdują się w katalogu yampp7lib. Poszczególne pliki ASM odpowiedzialne są za obsługę konkretnych urządzeń, takich jak interfejs ATA dla karty CF, dekoder MP3, wyświetlacz LCD czy interfejs USB. Ponieważ procedury te są bardzo często wywoływane z głównego programu, powinny być wykonywane jak najszybciej. Dlatego też wybrano asembler jako optymalną platformę pozwalającą na pisanie krótkich i szybkich procedur. Po skompilowaniu procedury te tworzą bibliotekę yampp7lib.a, która jest wykorzystywana przez program główny, czyli drugą - główną warstwę oprogramowania napisaną w języku C. Biblioteka ta jest dołączana do programu w trakcie linkowania gotowego kodu. Do wprowadzenia jakichkolwiek zmian wymagających rekompilacji kodu potrzebny bę-
dzie darmowy kompilator języka C, czyli AVR-GCC. Zalecaną wersją tego kompilatora jest wersja 3.02 lub 3.2. Jest on dostępny w Internecie pod adresem http:// www.avrfreaks.net. Sposób instalacji i korzystania z tego kompilatora był już kilkakrotnie poruszany na łamach EP, więc nie będę go powtarzał, a skupię się na opisie poszczególnych opcji dostosowujących oprogramowanie yamppa do indywidualnych potrzeb. Cała konfiguracja oprogramowania znajduje się w jednym pliku nazwanym Constants.h. Wszystkie definicje znajdujące się w tym pliku podzie- lone są na sekcje. W pierwszej sekcji możemy zmienić wartość częstotliwości kwarcu taktującego układ VS1OO1 - w przypadku zastosowania kwarcu o częstotliwości innej niż 12,288 MHz. W kolejnej sekcji - Power Managament -można ustawić opcje oszczędzania energii. Pierwszą definicją jest czas, po jakim karta CF ma przejść w tryb obniżonego poboru mocy. Niektóre karty mogą wymagać zwiększenia tego czasu ponad wartość standardowo tam wpisaną. Kolejna definicja określa maksymalny czas pozostawania odtwarzacza w stanie pauzy, a następna - czas pozostawania w trybie STOP. Po przekroczeniu tych czasów odtwarzacz automatycznie się wyłączy. W kolejnej sekcji ustawiamy opcje wyświetlacza LCD. Oczywiście występuje ona tylko w wersji dla odtwarzaczy wyposażonych w wyświetlacz. Stała BACKLIGHT_TIME określa czas automatycznego wyłączenia podświetlania wyświetlacza od ostatniego naciśnięcia dowolnego klawisza. Jeżeli nie ko-
P assin ro*ii
PUBU
r
Rys. 6. Zalecane ustawienia opcji podczas programowania mikrokontrolera
Elektronika Praktyczna 4/2003
47
Yampp-7
Rys. 7. Budowa wewnętrzna układu HV857
rzystamy z podświetlania, należy ustawić ją na 0, co spowoduje odmienne sterowanie linią PBO będącej w tym przypadku wyjściem sterującym diodą LED sygnalizującą stan odtwarzacza. Usunięcie komentarza z kolejnej linii - tidefine ALTERNATE_SCROLL pozwala zmienić sposób przesuwania się napisów na wyświetlaczu tak, że tekst zamiast "odbijać się", będzie się przesuwał cały czas w jedną stronę. Definicja SCROLL_SPEED określa prędkość przesuwania się tekstu, a dokładniej czas pomiędzy kolejnymi przesunięciami wyrażony w dziesiątych częściach sekundy, a stała SCROLL_STEP określa, o ile pikse-li ma być przesunięty tekst w jednym kroku scrolowania. Usunięcie komentarza z opcji ftdefine LCD_NEGATIV umożliwia uzyskanie negatywowego obrazu na wyświetlaczu. W ostatniej sekcji pliku Constants.h możemy wartością stałej MIN_VOLUME ustalić minimalny możliwy do ustawienia poziom głośności, stałą NUM_VOL_STEPS - liczbę kroków regulacji głośności, a stałą AUTO-LOCK_TIME ustalić czas automatycznego blokowania klawiszy podczas odtwarzania - jeśli funkcja ta zostanie załączona. W wersji oprogramowania bez obsługi LCD znajdziemy jeszcze trzy dodatkowe opcje. Wstawienie komentarza do linii ttdefine PWR_BEEPS umożliwia wyłączenie potrójnego dźwięku generowanego po załączeniu odtwarzacza. Usunięcie komentarza z linii tidefine BATTERY_TEST umożliwia uruchomienie procedur kontroli napięcia akumulatora, a możliwość jej zablokowania podyktowana jest tym, że w starszej wersji płytki drukowanej odtwa-
rzacza nie było miejsca na dzielnik R13/R16, a ich brak powodował wyłączanie się odtwarzacza. Ostatnia opcja ttdefine LOCK_BEEP umożliwia wyłączenie dźwięku pojawiającego się w momencie blokowania bądź odblokowywania klawiatury. Po ustawieniu odpowiednich opcji należy skompilować kod źródłowy, a następnie załadować do yamppa przy pomocy aplikacji yamppLink i łącza USB.
Podświetlanie wyświetlacza
Podświetlanie wyświetlacza można wykonać na dwa sposoby. Pierwszy - prosty - polegający na podświetleniu wyświetlacza przy pomocy kilku diod świecących oraz plastikowej matówki, w jaką wyposażone są wyświetlacze typu LPH7366 czy LPH7666. Do wyświetlaczy bez matówki trzeba takową dorobić. Oryginalna matówka posiada na brzegach specjalne podcięcia umożliwiające umieszczenie w tych miejscach diod świecących w obudowie SMD o wielkości 0805, świecących równolegle do płaszczyzny wyświetlacza. Diody świecące - najlepiej 4 sztuki - należy zamontować na płytce drukowanej, tej samej, która zawiera styki kontaktowe dla wyświetlacza, połączyć równolegle, dodając do każdej z nich po jednym, szeregowym rezystorze 100 Q, a całość podłączyć pomiędzy styki 1 i 9 złącza J2 (anody diod do styku nr 1). Konstrukcja ta ma jednak pewne wady. Największą z nich jest nierównomierne oświetlenie całej powierzchni wyświetlacza oraz dość wysoki pobór prądu wynoszący około 30...40 raA, czyli ponad połowę tego co pobiera cały yampp-7 bez podświetlania. Dlatego też preferuję
drugą metodę podświetlenia - za pomocą folii elektroluminescencyjnej. Sposób ten jest znacznie droższy i bardziej pracochłonny, lecz gwarantuje uzyskanie znacznie lepszego efektu w postaci równomiernego niebieskozielonego podświetlenia o jasności zbliżonej do wersji na diodach LED, a jednocześnie
0 poborze prądu poniżej 10 raA, Niestety komplikuje to nieco całą konstrukcję, ponieważ folia świecąca wymaga zasilania prądem przemiennym o napięciu około 120 V
1 o częstotliwości kilkuset herców. Samą folię można kupić u wielu większych dystrybutorów elementów elektronicznych bądź zamówić np. w Elfie. Ale istnieje również tańsza i łatwiejsza metoda pozyskania takiej folii. Jest ona stosowana w niektórych nowszych modelach telefonów komórkowych, i można ją pozyskać z takowego uszkodzonego telefonu. Drugim źródłem folii EL mogą być świetliki włączane do gniazdka sieciowego, wykorzystujące czasami taką folię w roli elementu świecącego, a dostępne w niektórych hipermarketach. Taki świetlik jest dość tani, a po potraktowaniu go piłką do metalu wyciągniemy z jego wnętrza potrzebną folię - najczęściej nawet o odpowiednich wymiarach. Notabene oprócz owej folii i jednego rezystora nic więcej wewnątrz nie znajdziemy. Jeśli już mamy odpowiedni kawałek folii (większość dostępnych na rynku można normalnie ciąć nożyczkami w celu otrzymania odpowiednich wymiarów), lutujemy do jego wyprowadzeń miękkie przewody, dobrze izolujemy koszulką termokurczliwą i całość przymocowujemy za wyświetlaczem przy pomocy kilku kropli kleju na gorąco. Jeśli nasz wyświetlacz wyposażony jest w matówkę do podświetlania diodami LED, to należy ją wcześniej usunąć. Teraz pozostaje już tylko problem odpowiedniej przetwornicy z napięcia 3,6 V na napięcie wymagane do zasilania folii. Wbrew pozorom nie jest to wcale takie trudne. Możemy kupić gotową przetwornicę o oznaczeniu (EA) PSEL-22 firmy Electronic Assembly, oferowaną między innymi na http://www.lcd.ele-menty.pl/lcd/zubehoer. htm#EL-Fo-lien, która bez problemu zmieści się wewnątrz obudowy yamppa, lecz jej cena wynosi około 50 zł.
48
Elektronika Praktyczna 4/2003
Yampp-7
ELLmp
GND
Rys. S. Schemat elektryczny przetwornicy do zasilania folii EL
Wykonanie takiej przetwornicy własnymi siłami nie stwarza zbytnich problemów, zakładając wykorzystanie odpowiedniego układu sterownika. Wiele firm oferuje gotowe układy scalone przeznaczone do budowy takich przetwornic. W większości przypadków aby otrzymać gotową przetwornicę, wystarczy uzupełnić taki - najczęściej 8-nóźkowy "scalak" - cewką, 2."3 rezystorami i kilkoma kondensatorami. Na szczególną uwagę zasługuje tutaj układ HV857 produkowany przez firmę Supertex. Na podstawie tego układu wykonałem przetwornicę do swojego yamppa-7. Budowę wewnętrzną układu HV857 pokazano na rys. 7, a schemat zbudowanej na nim przetwornicy na rys. 8. Podstawową zaletą tego układu jest wykorzystanie cewki o relatywnie małej indukcyjności, czyli również o małych wymiarach, w porównaniu do aplikacji innych producentów. Jak widać, aplikacja układu przetwornicy jest banalnie prosta, a całość można zmieścić na płytce o wymiarach 17x11 mm. Przetwornica posiada wejście służące do załączania/wyłączania podświetlania (Enable), które podłączamy bezpośrednio do linii PBO procesora yamppa, czyli do nóżki nr 40 układu ICl. Zasilanie przetwornicy podłączamy bezpośrednio do złącza akumulatora w yamppie, ponieważ w stanie wyłączenia układ praktycznie nie pobiera prądu. Aby
Fot. 9. Wyglqd zmontowanej przetwornicy umieszczonej we wnętrzu yamppa .
uzyskać jak największą sprawność układu, w zależności od zastosowanej cewki należy dobrać wartość rezystora podłączonego do nóżki nr 2 układu HV857. Najprościej jest tymczasowo zastąpić go potencjometrem montażowym o wartości 1 MLi ustawionym początkowo w połowie zakresu rezystancji, do wyjścia przetwornicy podłączyć folię EL, sygnał Enable podłączyć do VCC, a w szereg z zasilaniem, które powinno wynosić około 3,6 V, podłączyć miliamperomierz o zakresie 20 mA. Następnie regulując potencjometrem, staramy się uzyskać jak najmniejszy pobór prądu bez widocznego spadku jasności świecenia folii. Na koniec mierzymy wartość rezystancji potencjometru i zastępujemy go odpowiednim rezystorem. Wygląd zmontowanej przetwornicy umieszczonej we wnętrzu yamppa pokazano na fot. 9.
Finisz
Na koniec pozostaje nam umieszczenie całości w obudowie, która będzie wymagać wywiercenia kilku otworów na przyciski, gniazdo słuchawkowe i ewentualną diodę LED oraz wycięcia prostokątnych otworów na złącze USB, kartę pamięci Compact Flash - tak żeby można było ją wyjmować, oraz na ewentualny wyświetlacz. Wymagane jest również delikatne spiłowanie rogów płytki drukowanej oraz usunięcie z jednej z połówek obudowy dwóch kołków dystansowych, które należy przykleić w drugiej połówce (lub do płytki yamppa od strony elementów SMD) tak, żeby uzyskać precyzyjne ułożenie płytki wewnątrz obudowy. Romuald Biały http://www.yamppsoft.prv.pl
Wzory płytek drukowanych w formacie PDF są dostępne w Internecie pod adresem: http://www.ep.com.pl/ 7pdf/kwiecienO3Jttm oraz na płycie CD-EP4/2003B w katalogu PCB.
Elektronika Praktyczna 4/2003
PODZESPOŁY
Czy ktoś jeszcze pamięta procesory Ziloga? Wiodący niegdyś producent mikroprocesorów z niezrozumiałych dla elektroników powodów utracił jakiś czas temu prymat. Próbował go
później wielokrotnie odzyskiwać, ale jak wiadomo, sztuka to niełatwa. Firmie udało się - w znany chyba tylko jej prezesom sposób - pozostać na rynku. Dzisiaj przedstawiamy kolejną próbę
zawojowania przez nią świata.
o o
N
Mówiąc szczerze bardzo żałuję, że słynny Z80 Zi-LOGa został wyparty swego czasu przez konkurencję. Bardzo lubiłem "zabawę" z nim. Był, jak na tamte czasy, mikroprocesorem wydajnym, miał przejrzystą i stosunkowo prostą do nauczenia się listę rozkazów, co było is-
totne o tyle, że w tamtych czasach nie było łatwo wejść w posiadanie kompilatora wszechobecnego dziś języka C. Gdzież tu porównać z nią czytelność rozkazów współczesnych mikrokontrolerów jak np. AVR. Inżynierowie ZiLO-Ga chyba za bardzo zapatrzyli się w swój produkt
i nie zauważyli kilku istotnych zmian, jakie w dziedzinie mikroprocesorów wprowadził Intel. Myśleli zapewne, że produkt mający, jakby nie było, dobrą opinię użytkowników, będzie się sprzedawał jak ciepłe bułeczki w nieskończoność. Niestety, w elektronice zatrzy-
Tetałly Logicai
manie się w miejscu oznacza krok do tyłu. Wprowadzenie przez Intela rodziny mikrokontrolerów MCS51 zrewolucjonizowało tymczasem rynek. Dużo czasu musiało upłynąć, zanim z zilogowskich fabryk zaczęły wychodzić nowe produkty. Nawiasem mówiąc, zdarzało się, że
Elektronika Praktyczna 4/2003
51
PODZESPOŁY
Zegar systemowy

Rozkaz 1 Pobrania De kodowania Wykonania
Rozkaz 2 Pobranie Do kodowanie Wykonanie
Rozkaz 3 Pobranie Dekodowanle Wykonania
16-bitowymi. Potwierdzić z niewielkimi modyfikacja-to może również zdolność mi pracować na eZ80. Są obsługi 16 MB, liniowej one wykonywane w trybie przestrzeni adresowej. przetwarzania potokowego
Układ eZ80 może praco- (rys. 1). Wzorem Z80, Rys. 1. Przetwarzanie potokowe w procesorze eZ80 wać w trybie procesora w eZ80 uwzględniono
Z80 z adresowaniem 64 przerwania maskowalne
próby powrotu bywały 4 razy szybszy od standar- kB pamięci lub w trybie (32 zewnętrzne, 11 we-całkowicie nieudane, du przy tej samej częstot- adresowania 24-bitowego wnętrznych) i niemasko-w niektórych przypadkach liwości taktowania, która (16 MB). Do dyspozycji są walne (NMI). Zastosowano te próby lepiej pominąć może dochodzić do dwa kanały DMA, 32 linie także interesującą możli-milczeniem. Osiągnięcia 50 MHz. Pobiera też mniej portów ogólnego przezna- wość analizowania popra-sukcesu nie ułatwiała na- energii, na co bez wątpię- czenia wspierane syste- wności pobieranych rozka-wet taktyka polegająca na nia wpływa 3,3-woltowe mem przerwań, a także zów (TRAP). W przypadku utrzymywaniu nazw aktu- zasilanie przy zachowaniu 6 timerów z preskalerami. stwierdzenia kodu niebę-alnych produktów, które 5-woltowej tolerancji Działanie programu wspo- dącego rozkazem (lista nawiązywały do nazwy wejść. W eZ80 zastosowa- maga 8KB pamięć SRAM rozkazów nie wypełnia dawnego bohatera. ZiLOG no wprawdzie 8-bitową wbudowana w strukturę wszystkich możliwych pozostał więc przy rodzi- szynę danych, ale rejestry układu. Lista rozkazów kombinacji binarnych), genie Z80, modyfikując ją i ALU są 24-bitowe. Dzię- eZ80 jest nadzbiorem lis- nerowane jest specjalne na potrzeby współczes- ki temu, w pewnych za- ty Z80 i Z180. Programy przerwanie, przypominają-nych aplikacji, powstała stosowaniach może on napisane na te procesory ce restart procesora. Po-też rodzina Z180, a także konkurować z procesorami mogą bez poprawek lub szczególne wersje układu eZ80. Z mniejszym lub większym powodzeniem istnieją one na rynku. Obserwując "ruch" w ofercie ZiLOGa w ciągu ostatnich lat widać, że tym razem inżynierowie firmy nie zasypiają gruszek w popiele. Aby zachęcić do zainteresowania potencjalnych klientów swoimi wyrobami, opracowano moduł in-ternetowego webserwera. Wykorzystuje on... No właśnie, co?
SDAO/1
MISOO/1"
MOSI0/1-
CTS0/1-
eZ80 od środka
Rodzi się tu pewien problem ze sklasyfikowaniem układu eZ80. Przyjęło się bowiem określać mianem mikrokontrolerów układy skupiające w jednej strukturze większość niezbędnych do pracy komponentów, takich jak generator, pamięć programu, podręczną pamięć RAM, porty we/wy, ewentualne interfejsy itp. Tym czasem eZ80 nie posiada na pokładzie pamięci programu, nie może więc funkcjonować autonomicznie. Nie można go więc nazwać mikrokontrolerem. Autorzy dokumentacji nie podają żadnych przedrostków, eZ80 pozostaje po prostu procesorem. Bazuje na rdzeniu Z80, ale jest Rys. 2. Budowa procesora eZ80
DATApiO]
ADDR[23:0]
Elektronika Praktyczna 4/2003
PODZESPOŁY
różnią się pewnymi cechami między sobą. Szczegóły można znaleźć pod adresem http://www.zi-log.com/products/par-tdetails.asp?id=eZ80190.
Oprócz wymienionych wyżej komponentów procesor zawiera także dwa kanały UZI - Universal ZiLOG Interface (I2C, SPI, UART), Układ jest produkowany w obudowie 100-pin LQFP. Architekturę procesora eZ80 przedstawiono na rys. 2.
eZ80 Webserver Development Kit
eZ80 Webserver Deve-lopment Kit (fot. 3) to zestaw ewaluacyjny, umożliwiający zapoznanie się z rodziną procesorów eZ80. W skład zestawu wchodzi płytka eZ80 Web-server Development Platform wyposażona w inter-netowy moduł eZ80 Web-server-i E-Net Module, interfejs ZPAK II Debug Interface Module umożliwiający dołączenie zestawu do sieci Ethernet, a także do komputera poprzez port szeregowy. Moduł ZPAK jest wykorzystywany podczas uruchamiania programów. Ponadto użytkownik dostaje do dyspozycji 4-portowy koncentrator ethernetowy lOBaseT (sic!) wraz z trzema patch-cordami. Jedno jego wejście może realizować funkcję up-link. Zestaw wyposażono w 3 zasilacze wtyczkowe. Nie mogło oczywiście zabraknąć dokumentacji. Oprócz papierowego wydania podręcznika, instrukcji szybkiego startu (dla nielubiących czytać opasłych tomów) oraz manuala dla koncentratora, na CD-ROM-ie można znaleźć wiele dodatkowych dokumentów. Większość z nich odwołuje się ponadto do rozlicznych stron internetowych. Szkoda, że zima się kończy, bo zajęcie na długie wieczory byłoby zapew-
nione. Główna płytka zestawu wykorzystuje chyba w pełni możliwości procesora, obudowując go elektroniką potrzebną do realizacji poszczególnych interfejsów. Znajdują się na niej ponadto elementy, które zwykle są umieszczane w tego typu wyrobach, np.: diody świecące, mikroprzełączniki, a także wyświetlacz matrycowy LED. Nieczęsto natomiast można korzystać z wbudowanego modemu. W przypadku eZ80 Webserver De-velopment Platform jest to możliwe. "Zaglądać" do środka zestawu można poprzez wbudowane interfejsy I2C, RS232, RS485, ZDI [ZiLOG Debug Interface) i JTAG. Na płytce zamontowano 2 MB szybkiej (12 ns) pamięci SRAM. W module eZ80 Webserver-i E-Net Module oprócz procesora eZ80L92 taktowanego zegarem 48 MHz znajduje się ponadto interfejs ethernetowy lOBaseT, 1 MB pamięci Flash, 512 kB SRAM oraz zegar czasu rzeczywistego, podtrzymywany baterią.
To wszystko byłoby niewiele warte, gdyby nie dodano do tego oprogramowania. Tak oczywiście nie jest. Wraz z zestawem użytkownik dostaje ZDS II - eZ80 (ZiLOG Developer Studio II), czyli środowisko programowe IDE, zawierające makroasembler, kompilator C, linker i menedżer bibliotek. Po zarejestrowaniu produktu przez Internet, można dodatkowo pobrać i zainstalować oprogramowanie eZ80 Metro IPWorks TCP/ IP wspierające tworzenie aplikacji wykorzystujących stos TCP/IP. Uwzględnia ono wszystkie stosowane aktualnie protokoły: TCP, UDP, IP, HTTP, ICMP, IGMP, ARP, RARP, DHCP/ BOOTP, DNS, Telnet, SMTP, SNMP, TFTP i FTP.
Wiadomo, że poznawanie nowych zagadnień,
Elektronika Praktyczna 4/2003
53
PODZESPOŁY
Fot. 3. Zdjęcie webserwera prezentowanego w artykule
szczególnie gdy nie są łatwe, przebiega znacznie szybciej, jeśli wspierane jest możliwością analizowania przykładów. Wychodząc z tego założenia, firma ZiLOG opracowała dwa gotowe projekty, które są dołączone do zestawu startowego. Pierwszy z nich to typowa aplikacja wykorzystująca możliwości sprzętowe płytki ewalu-acyjnej. Efektownie wyświetla napis na wyświetlaczu matrycowym, dodając do tego kilka efektów wizualnych. Drugi projekt to webserwer. Jego uruchomienie wymaga jednak bezwzględnie zainstalowania eZSO Metro IPWorks TCP/IP. Dostępne w projektach wersje źródłowe programów umożliwiają dokładną analizę procedur
wykorzystanych w przykładowych aplikacjach. Za pomocą opisanego wyżej środowiska programowego można wprowadzać do nich własne zmiany i w chwilę później obserwować efekt ich działania. Większość użytkowników już po kilku próbach zapewne będzie w stanie tworzyć własne projekty. Niezbędna jest do tego, jak to zwykle bywa, znajomość języka C. Zawarty w pakiecie kompilator jest zgodny ze standardem ANSI. Komfort pracy jest typowy dla narzędzi klasy IDE, czyli wysoki. Graficzny, okienkowy interfejs znacznie ułatwia edycję wersji źródłowych programów automatycznie kolorując słowa kluczowe, robiąc wcięcia w tekście itp.
[fttfUff
Rys. 4. Okno programu "ZiLGG Developer Studio II"
(rys. 4). Wykrycie miejsca w programie, w którym popełniono błąd, jest automatyczne po dwukrotnym kliknięciu na linię z komunikatem błędu. Po skompilowaniu i zlinkowa-niu programu można go automatycznie załadować do pamięci Flash modułu eZ80 Webserver-i E-Net Module. Komunikacja pomiędzy komputerem a płytką ewaluacyjną odbywa się poprzez interfejs ZPAK II. Łączy się go z komputerem poprzez kartę sieciową, zaś od strony płytki wykorzystywany jest interfejs ZDI. Niestety w zestawie nie ma skrzyżowanego patch-corda. Koniecznie należy więc robić połączenie poprzez koncentrator. Trzeba pamiętać o wyłączeniu funkcji up-Iink w tym przypadku.
Jeśli z jakichś względów konieczne jest bezpośrednie połączenie zestawu z komputerem (z pominięciem huba), należy samodzielnie przygotować odpowiedni kabel. ZPAK posiada swój własny adres IP ustawiony domyślnie przez producenta. Jeśli przewidywana jest jego zmiana, należy do tego celu wykorzystać dodatkowe połączenie z komputerem poprzez port szeregowy. Oprócz zmiany adresu IP staje się wówczas
możliwa również modyfikacja maski podsieci. Aby komunikacja pomiędzy komputerem a ZPAK-iem przebiegała prawidłowo, należy zapewnić zgodność jego maski z maską karty sieciowej. Po prawidłowym skonfigurowaniu sprzętu i skompilowaniu drugiego projektu zestaw staje się serwerem przykładowej strony WWW, którą można oglądać poprzez typową przeglądarkę np. MS Interet Explorer. Dostępna wielkość pamięci Flash w module inter-netowym nie jest imponująca - 1 MB, trudno więc zapisać w niej jakąś bardzo rozbudowaną stronę z bogatą grafiką i licznymi podstronami, ale chyba nie o to chodzi. Pamiętajmy, że, po pierwsze: mamy do czynienia z zestawem ewaluacyjnym, którego celem jest jedynie przedstawienie możliwości sprzętowych i programowych, a nie dostarczenie gotowego produktu. Po drugie: tego typu strony WWW na ogół będą wykorzystywane w aplikacjach automatyki i zdalnego sterowania przez Internet. Strony takie na ogół nie są zbyt wymagające pod względem wielkości pamięci.
Prezentowany webserwer jest kolejnym tego typu produktem prezentowanym na łamach naszego pisma. Jak widać, temat staje się dość popularny. Wobec coraz powszechniejszego dostępu do sztywnych łącz nawet dla osób prywatnych, czasy, w których będzie można "postawić" w swoim własnym domu serwer interne-towy, nie wydają się zbyt odległe.
Jarosław Doliński jaroslaw.dolinski@ep.com.pl
Dodatkowe informacje
Zestaw udostępniła redakcji lirma FuTure Electronics Polska Sp. z o. o. tel.: (22)618-92-02.
54
Elektronika Praktyczna 4/2003
SPRZĘT
Firma JBC jest jednym z wiodących producentów i dostawców zestawów lutowniczych dla zakładów produkcyjnych oraz serwisów. Rozwiązania techniczne stosowane przez firmę sprawiają, że oferowany sprzęt jest ergonomiczny i przez to wygodny w stosowaniu. Charakteryzuje się także doskonałymi termicznymi parametrami. Najnowsza seria zestawów lutowniczych firmy JBC nosi nazwę Advance. Im właśnie poświęcamy artykuł.
Ważny początek - groty lutownicze
W zestawach Advance jednym z najbardziej zaawansowanych technologicznie elementów jest grot lutowniczy (rys. 1). Jego sprawność energetyczna waha się w granicach 85...92%, co oznacza, że tylko 8...15% dostarczonej energii jest tracone, natomiast pozostała część jest zamieniana na energię cieplną. Grzałka jest umiejscowiona dokładnie w samym czubku grota i właśnie tylko ta jego część jest nagrzewana do żądanej temperatury.
Temperatura czubka grota wynosi około 300C, natomiast część znajdująca się w dłoni ma temperaturę około 30C. Grzałka pełni również rolę termopary. Współpracuje ona z układem sterującym wbudowanym w stację lutowniczą. Takie rozwiązanie zapewnia, że dostarczana energia elektryczna jest proporcjonalna do odbieranej energii cieplnej, a ilość dostarczanej energii jest dostosowywana do
Zestawy lutownicze firmy JBC, część 1
JBC
224*4
07
Rys. I. Budowa grota lutownic Advance
Fot. 2. Minilutownice firmy JBC sq lekkie majq naprawdę niewielkie wymiary
wielkości lutowanej powierzchni. Takie rozwiązanie gwarantuje, że w trakcie pracy temperatura grota jest stabilna i nie podlega wahaniom większym niż 5% wartości temperatury ustalonej przez użytkownika. Ponadto użytkownik może być pewny, że w trakcie lutowania nie nastąpi przegrzanie ścieżki lub punktu lutowniczego.
Ważnym parametrem oceny jakości grota jest jego żywotność. Firma JBC wyposaża swoje lutownice w groty z czubkiem pokrytym podwójną warstwą stali, co zapewnia 3...4-krotnie dłuższy okres użytkowania niż klasycznych grotów, w których czubek pokryty jest pojedynczą warstwą stali.
Lutownica i minilutownica
Waga tych narzędzi wynosi odpowiednio 24g i 16g (fot. 2). Zapewniają użytkownikom łatwą wymianę grota bez względu na jego temperaturę. Wymiana może być wykonana jedna ręką w czasie około 2 sekund. Sposób wymiany grota pokazano na fot. 3.
Mini lutownica może być wykorzystywana tam, gdzie wymagana jest wysoka precyzja lutowania. Lutownica jest więc powszechne stosowana w montażu lub naprawie płytek elektronicznych. Na jej wyposażeniu jest wiele wymiennych grotów, które umożliwiają wlutowanie lub wylutowanie układów scalonych w obudowach QFP i PLCC. Największy układ, który może być wy-lutowany przy użyciu grota lutownicy może mieć wymiary 18 x 18 mm. Posługiwanie się tymi narzędziami może być porównywalne do posługiwania się długopisem (iys. 4).
Rozlutownica
Rozlutownica DR5570 pokazana na fot. 5 jest wykorzystywana do demontażu elementów z płytek wykonanych w technologii przewlekanej. Na wyposażeniu ma 7 wymiennych końcówek, których rozmiar jest dobierany do średnicy wyprowadzeń układów scalonych. Wymiana końcówek jest możliwa bez względu na ich temperaturę. Na uwagę zasługuje duża siła ssąca pompki zasysającej, niewielka waga narzędzia oraz ergonomiczna konstrukcja obudo-
wy, ściśle dopasowana do kształtu dłoni. Niewielka zewnętrzna średnica grotów (od 1 mm do 2,5 mm) zapewnia użytkownikom łatwy dostęp do wylutowywanych elementów, także w przypadku dużego ich upakowania na płytce drukowanej.
Fot. 3. Wymiana grota w lutownicach serii Advanced jest niezwykle prosta
Elektronika Praktyczna 4/2003
55
SPRZĘT
Rys. 4. Za pomocq lutownic Acl-vance można wylutowywać układy o wymiarach do 18x18 mm
Szczypce i mikroszczypce
Ich budowa została zoptymalizowana pod kątem demontażu elementów SMD. Szczypce (fot. 6) posiadają na wyposażeniu groty kątowe (umożliwiają wylutowywanie układów o największym rozmiarze 18 x 18 mm) oraz groty proste umożliwiające wylutowywanie układów o podwójnej linii nóżek o długości do 20 mm. Na szczególną uwagę zasługują mikroszczypce (fot. 7) przystosowane do wylutowywania najmniejszych elementów SMD, także na płytkach o bardzo dużej gęstości upakowania.
Lutownica na gorąco powietrze
JBC produkuje także dwa typy lutownic na gorące powietrze. Są one zbudowane w podobny sposób, a jedyna różnica wynika z ich przeznaczenia. Jedna z nich współpracuje ze stacją małej mocy i wykorzystywana jest na przykład w serwisach telefonii komórkowej, druga jest natomiast oferowana ze stacją dużej mocy lub jako element dużych zestawów serwisowych. Lutownice te posiadają trzy wymienne dysze, które dobierane są w zależności od wielkości układu scalonego (rys. 8). Przystosowane są do współpracy z chwytakami podciśnieniowymi oraz osłonami termicznymi.
Fot. 5. Wyglqd rozlutownicy DR5570
Fot. 7. Podgrzewane mikroszczypce służq do demontażu najmniejszych elementów SMD
Zestawy lutownicze
Podstawowym elementem każdego zestawu jest stacja lutownicza. Firma JBC zadbała, aby użytkownicy mogli samodzielnie decydować o elementach wchodzących w skład zestawu lutowniczego. Pozwala na to modułowa konstrukcja oferowanych zestawów. Podczas konstruowania stacji lutowniczych dążono do zminimalizowania zużycia energii elektrycznej oraz zapewniono ochronę grota przed nadmiernym utlenianiem, które występuje, gdy lutownica zostanie odłożona na podstawkę. Te dwa czynniki, a więc zużycie grota oraz energii elektrycznej decydują o kosztach eksploatacji zestawów lutowniczych. Producent przewidział dwa tryby obniżonego poboru energii:
- stan czuwania, który występuje po odłożeniu lutownicy na podstawkę,
- stan spoczynku następujący po wyjęciu grota i odłożeniu lutownicy na podstawkę.
Stacja lutownicza AD2200
Zestaw zbudowany na bazie tej stacji (fot. 9) zawiera lutownicę 2245 lub minilutownicę 2210. Ponieważ stacja ma tylko jedno gniazdo zasilające, pra-
Rys. 8. Lutownice na gorqce powietrze majq wymienne dysze dostosowywane do wielkości układu scalonego
ca z dwoma narzędziami może odbywać się naprzemiennie. W obudowie zintegrowano zasilacz z regulatorem oraz podstawkę. Niewielkie wymiary stacji oraz możliwości techniczne zestawu powstałego w oparciu o nią powodują, że znajduje ona zastosowanie w pracy w serwisie, ale przede wszystkim jest przeznaczona dla zakładów pr o du kcy j ny c h.
Stacja lutownicza AD4200
Zestaw powstały na bazie tej stacji (fot. 10) jest przeznaczony zarówno do serwisów jak i zakładów produkcyjnych. Stacja współpracuje zarówno z lutownicą, minilutownicą, szczypcami oraz mikroszczypcami. Dzięki dwóm niezależnym kanałom zasilającym, w które wyposażona jest stacja, możliwa jest jednoczesna praca z dwoma różnymi narzędziami (na przykład lutownica i szczypce).
Fot. ó. Specjalizowane szczypce
do wylutowywania układów SMD Fot. 9. Stacja lutownicza AD2200
Elektronika Praktyczna 4/2003
57
SPRZĘT


Przystępując do testowania miernika Fluke 789,
zastanawiałem się, czym specjalnym powinien
wyróżniać się przyrząd, aby zasługiwać na miano
"miernik dla automatyka"? Odpowiedzi właściwie
nie znalazłem, tym bardziej że wiele cech, jakie
posiada model 789, jest charakterystyczne dla wielu,
bynajmniej nie wyspecjalizowanych przyrządów
dostępnych na rynku. Może jest to chwyt reklamowy, może nie do końca trafne
tłumaczenie nazwy, która w oryginale brzmi: "FLUKE 789 ProcessMeter".
iernik dla automatyków
Jakby na to nie patrzeć, firma FLUKE to numero uno w dziedzinie przyrządów pomiarowych. Zawsze sprawia mi dużą przyjemność poznawanie jej nowych wyrobów. Tym razem również tak było, chociaż nie mogę powiedzieć, żebym był czymś wyjątkowo zaskoczony. Jak zwykle, to co we Flukach urzeka, to perfekcyjnie wykonana obudowa w przepięknych, wyrazistych żółto-czar-nych barwach z tworzywa najwyższej jakości. Jak zwykle też do miernika dołączono bardzo starannie opracowaną dokumentację w 13 językach, w tym w trzech zupełnie
nrn w
B.000
ZSfl*
"nieludzkich". Niestety jest coś, za co nie lubię tej firmy - chodzi o całkowite ignorowanie państw środkowoeuropejskich. Dotychczas nie spotkałem się z polskimi wersjami dokumentów przygotowanych za oceanem. Na szczęście rodzimi dystrybutorzy nadrabiają te niedociągnięcia i tłumaczą przynajmniej "Podręcznik użytkownika", dołączając go do zestawu dokumentów. Jak pokazuje praktyka, tłumaczenia często stanowią trudny do zgryzienia orzech. Są bowiem wykonywane przez dobrych znawców języka, lecz nie za bardzo znających zagadnienia
n ii c, n UL D.U
Ś
Rys. 1. Miernik może służyć także jako testowe źródlło prądowe
techniczne. W przypadku dokumentacji miernika "789 ProcessMeter" można uznać, że czynność ta została wykonana prawidłowo, chociaż w kilku miejscach może trochę razić zbyt dosłowna translacja. Jakby na przekór, nie potwierdza tego dość swobodne nadanie przydomka miernikowi "789 ProcessMeter". Spróbujmy zatem znaleźć odpowiedź, dlaczego jest to...
Miernik dla automatyków
Jak wiadomo, w pomiarach systemów automatyki często wykorzystuje się pętlę prądową 4-20mA lub 0-20mA. Jest ona chętnie stosowana, gdyż jest znacznie odporniejsza na zakłócenia w porównaniu z tradycyjnymi metodami napięciowymi. Miernik "789 ProcessMeter" ułatwia życie użytkownikom, w przypadkach, w których użycie pętli staje się niezbędne. Wbudowano w nim źródło prądowe włączane automatycznie po włożeniu przewodów pomiarowych w odpowiednie gniazda. Są nimi zwykłe gniazda zakresów prądowych, a nie jakieś specjalnie do tego celu przewidziane (rys. 1). W zależności od tego, która para gniazd zostanie użyta, mamy do czynienia z tzw. trybem źródła lub trybem symulacji. W pierwszym przypadku miernik tworzy autonomiczne źródło pomiarowej pętli prądowej, w drugim do prawidłowej pracy wymagane jest zewnętrzne źródło napięcia 15 do 48 V, gwarantujące poprawne działanie pętli. Długotrwała
58
Elektronika Praktyczna 4/2003
SPRZĘT
Tabela 1. Parametry elektryczne miernika "789 ProcessMeter"
Zakres Napięcia DC [V] Rozdzielczość Dokładność (% odczytu + cyfra)
4,000 0,001 0,1 % + 1
40,00 0,01 0,1 % +1
400,0 0,1 0,1 % +1
1000 1 0,1 % +1
Napięcia UK [mVJ
400,0 0,1 mV 0,1%+2
Napięcie AC 50 do 60 Hz 45 do 200 Hz 200 do 500 Hz
400,0 mV 0,1 mV 0,7%+4 1,2 % + 4 7,0%+4
4,000 V 0,001 V 0,7 % + 2 1,2 % + 4 7,0 % + 4
40,00 V 0,01 V 0,7 % + 2 1,2 % + 4 7,0 % + 4
400,0 V 0,1 V 0,7 % + 2 1,2 % + 4 7,0 % + 4
1000 V 1 V 0,7%+2 1,2 % + 4 7,0 % + 4
Prąd AC
1,000 A (max 30 s) 0,001 A 1 % + 2
Prąd DC
30,000 mA 0,001 mA 0,05%+2
1,000 A (max 30 s) 0,001 A 0,2 % + 2
Rezystancja
prąd pomiarowy
400,0 n 0,1 ił 0,2 % + 2 220 mA
4,000 kn 0,001 kn 0,2 % +1 60 mA
40,00 kn 0,01 kn 0,2 % +1 6,0 mA
400,0 kn 0,1 kił 0,2 % +1 600 nA
4.000 MH 0,001 Ma 0,35 % + 3 220 nA
40,00 MH 0,01 Ma 2.5 % + 3 22 nA
Częstościom ierz (dokładność)
199,99 Hz 0,01 Hz 0,005 % +1
1999,9 Hz 0,1 Hz 0,005 % +1
19,999 kHz 0,001 kHz 0,005 % +1
uzęsiosciomierz (mm. czufosc KMa dla sinusa sHz do skHz)
AC DC
400 mV 150mV(50Hzdo5kHz) 150 mV
4V 1 V 1 V
40 V 3V 3V
400 V 30 V 30 V
1000 V 300 V 300 V
praca w pierwszym trybie powoduje oczywiście zwiększone zużycie baterii. Pomiary mogą być prowadzone na jednym z dwóch zakresów: 4-20 mA lub 0-20 mA. Zmiana wymaga wyłączenia miernika i ponownego włączenia przy wciśniętym przycisku Rangę. Pewną niedogodnością jest brak wydzielonego wyłącznika zasilania miernika, co jest zresztą ostatnio dość powszechną praktyką. Wskutek tego producent zaleca najpierw ustawić tryb pracy miernika za pomocą przełącznika obrotowego, a następnie dołączyć przewody pomiarowe do gniazd. Postępowanie takie ma na celu ewentualne zabezpieczenie przed przepływem nadmiernego prądu w pętli, co mogłoby nastąpić podczas obracania pokrętła. Jest to dość nienaturalne
i sprzeczne z przyzwyczajeniami. Nie sądzę, żeby było przestrzegane na co dzień przez użytkowników. Regulację prądu pętli wykonuje się trzema parami przycisków:
- Fine - zapewniające największą, możliwą precyzję,
Sprawdzić można za darmo
Dla klientów chcących poznać możliwości
przyrządu 789 ProcessMeter firma Fluke
przygotowała interaktywną demonstrację
dostępną w Internecie pod adresem:
http://www.fluke.nl/common/products/demos/
789_demo_en.swf. Publikujemy ją także
na płycie CD-EP4/2OO3B.
- Coarse - precyzję 0,1 mA,
- Step - zmieniającą prąd co 25% zakresu.
Są też przyciski "0%" i "100%" ustawiające odpowiedni do ich opisu prąd pętli. Miernik "789 Process-
Meter" ma również zaimplemento-waną funkcję automatycznej regulacji prądu. W tym trybie zmienia się on liniowo (przebieg trójkątny) lub skokowo (przebieg schodkowy) od wartości 0% do 100% z okresem 5, 15 lub 40 sekund.
Poza opisanym wyżej pomiarem pętli prądowej trudno doszukać się w mierniku "789 ProcessMeter" specjalnych cech. Można powiedzieć, że pozostałe jego funkcje są zgodne z aktualnie obowiązującym standardem. Niewątpliwą jego zaletą jest bardzo czytelny wyświetlacz z cyframi o wysokości 18 mm (maksymalne wskazanie 4000), ale brakuje bargrafu. Wszystkie funkcje pomiarowe są wyposażone w automatyczny dobór zakresu, z możliwością ustawiania ręcznego. Służy do tego klawisz Rangę.
Dane techniczne miernika zestawiono w tab. 1. Jak widać, dokładność jest jego dobrą stroną. Podczas pomiarów przebiegów odkształconych należy jednak pamiętać, że maksymalny współczynnik szczytu jest równy 3, dla częstotliwości pomiędzy 50 a 60 Hz. Pomiary AC zapewniają konwersję True RMS.
Przyznam, że jak na razie nie znalazłem argumentów przekonujących mnie dobitnie, że "789 ProcessMeter" to miernik dla automatyków. Ale zaraz, zaraz, to może właśnie ich brak o tym świadczy? No bo cóż automatyk właściwie może mierzyć? Pewnie to, co umożliwi mu opisywany Fluke. Napięcia oraz prądy stałe i zmienne. Czy jednak pomiar prądu o wartości maksymalnej równej 1 A i to przez co najwyżej 3 0 s zadowoli go? Tego nie wiem, ze skruchą muszę przyznać, że nie jestem automatykiem. Jako elektronik zastanawiam się natomiast, dlaczego 1-amperowe gniazdo pomiarowe jest zabezpieczone bezpiecznikiem 440 mA? W mojej codziennej pracy raczej uciążliwe byłoby również używanie gniazda do pomiaru prądu o wartości maksymalnej 30 mA. W przypadku 789-ki byłbym niestety na to skazany. Zostawmy prądy, weźmy się za pomiar rezystancji.
Tu filozofii nie ma żadnej. Po prostu ustawia się zakres, podłącza przewody i po chwili na wyświetlaczu ukazuje się wynik. Zakres pomiarowy 40 MQ z 2,5% błędem musi robić wrażenie. Prąd pomiarowy w tym przypadku to zaledwie 22 nA. Pochodną tej funkcji miernika jest test ciągłości połączenia i test złącza półprze-
60
Elektronika Praktyczna 4/2003
SPRZĘT
Press we Convetslon
1 ntcr a num^rlul v*fi*p ^^^^H ^^^mi ^ci uecimar puiiib: ^| ii id ?i
| 3 . ] E99e Ś i ł3
vj*m*_____1 1.01ł>*+4 | MHM9W I ^. Oc ?9e -^ rwo
l.DOOD ! A> |
I 1.09?2a*: giftn*
l.OUl | Dv I
yiT._______1 1,0113*43 1 flw I
I 1.11U*J 1 bMt*
^ 4
1 1,013)..* ****
l^^M -* 1
j .flOB7E-H 1 mWT
1
Rys. 2. W ramach oprogramowania dostarczanego wraz z miernikiem znajduje sie przydatny kalkulator-przelicznik wartości podawanych w różnych jednostkach
wodnikowego. Uznaje się (sygnałem dźwiękowym), że połączenie jest, jeśli jego rezystancja jest mniejsza niż 100 Cl. W drugim teście można określić wartość napięcia przewodzenia złącza przy prądzie 0,2 mA. Pozostał jeszcze pomiar częstotliwości. Jest on aktywowany po ustawieniu przełącznikiem obrotowym np. pomiaru napięcia i naciśnięciu klawisza Hz. Miernik wyłącza przy tym automatyczny wybór zakresu pomiarowego. Trudno powiedzieć, żeby "789 ProcessMeter" był prawdziwym częstościomierzem. Ma trochę za wąski zakres pomiarowy i "za krótki" wyświetlacz, ale dokładność równa 0,005% + 1 na ostatniej pozycji dobrze świadczy o przyrządzie. Uzupełnieniem powyższych funkcji pomiarowych jest możliwość wyszukiwania wartości maksymalnej, minimalnej i obliczenie średniej w serii pomiarów. Przełączeń dokonuje się cyklicznie klawiszem Min Max, a jego dłuższe przytrzymanie powoduje zerowanie wyników. Powyższy tryb pracy dotyczy zarówno pomiarów napięć, prądów, jak i rezystancji. Każdorazowo po wystąpieniu któregoś z ekstremum użytkownik jest informowany o tym fakcie krótkim sygnałem dźwiękowym. Wyświetlacz może przy tym pracować w trybie zatrzaskiwania którejś z wybranych wartości (min, max, średnia). Może także wyświetlać stan aktualny, a poszukiwania realizować
w tle. Rezultaty będą wtedy wyświetlane po ręcznym ich przywołaniu. Wynik pomiaru może być w każdej chwili zamrożony przyciskiem Hołd. W prezentowanym mierniku zastosowano 2-stopniowe podświetlanie wyświetlacza. Podczas pomiarów mrocznych układów automatyki może być to cecha bardzo przydatna. Aby nie wyczerpywać zbyt szybko baterii, zastosowano układ samoczynnego wyłączania przyrządu po 30 minutach bezczynności. Do zasilania miernika wykorzystuje się 4 baterie AA. Producent zaleca baterie alkaliczne. Czas pracy na jednym komplecie szacowany jest na 140 godzin. Spada on jednak drastycznie (do 10 godzin), gdy wykonywane są pomiary pętli prądowej w trybie źródła. Przyrząd "789 ProcessMeter" nie nadaje się do pomiarów wysokogórskich. FLUKE gwarantuje poprawność wskazań jedynie do 2000 m. Zbyt wysoki stół może być również niebezpieczny dla przyrządu. Znosi on upadek z wysokości 1 m. Szkoda tylko, że w danych technicznych nie napisano, ile takich upadków jest w stanie wytrzymać. Nie wiadomo też, czy może spadać na beton, czy musi na miękki dywan.
Dlaczego dla automatyków?
Pytanie to dręczyło mnie podczas prowadzenia testów. Ale mam - odpowiedź, chociaż nie jest ona związana bezpośrednio z przyrządem. Na
CD-ROM-ie dołączonym do miernika znajduje się między innymi dość atrakcyjny kalkulator. Nazywa się "Free Units Conversion Tool". Przy jego pomocy nie ma problemów z przeliczeniem np. parseka na mile morskie lub pikometry. Staje się możliwe obliczenie, ile hektopaskali odpowiada 760 mm słupka rtęci, a zamiana knotów na machy jest dziecinną igraszką. To przecież jest zajęcie, z jakimi automatycy spotykają się na co dzień. Kalkulator podczas pracy jest przedstawiony na rys. 2.
Na zakończenie wypadałoby wydać jakąś ocenę. Siłą rzeczy będzie ona subiektywna i nie musi się pokrywać z ocenami innych. Muszę powiedzieć, że widywałem mierniki o większych cechach funkcjonalnych niż "789 ProcessMeter", kosztujących pewnie mniej od niego. Czasami jednak pomiar musi być "podparty" jakąś liczącą się firmą. Inaczej przecież będzie wyglądał raport, w którym zostanie napisane, że do pomiarów użyto miernika Fluke, inaczej że użyto przyrządu no nam e. To dokładność, a nie bogactwo trybów pomiarowych jest mocną stroną opisywanego miernika. Jarosław Doliński, AVT jaroslaw.dolinski@ep.com.pl
Dodatkowe informacje
Przyrząd do testów udostępniła firma TME, Tel. (42) 640-01-06, www.trne.pl.
Elektronika Praktyczna 4/2003
61
Projekty Czytelników >
Na słr. 95 przedstawiamy pierwszq część opisu prostego programatora pamięci EEPROM z interfejsem szeregowym.
Yampp-7
W drugiej części artykułu prezentujemy m.in. sposób dołqczenia do Yamppa wyświetlacza graficznego. Słr. 45.
12-kanałowy regulator mocy DMX
Sterowanie oświetleniem dyskotekowym nie jest tak trudne jak mogłoby się wydawać na pierwszy rzut oka, o czym przekonuje autor artykułu opublikowanego na słr. 27.
Programowany sygnalizator głosowy >
To proste urzqdzenie można wykorzystać w dowolnej aplikacji jako odtwarzarkę komunikatów głosowych. Słr. 33.
Uniwersalny nadajnik SIRC/RC5
Za pomocq przystawki do PC, której opis znajduje się na słr. 41, można sterować pracq dowolnego zdalnie sterowanego urzqdzenia, rozpozna-jqcego polecenia kodowane w RC5 lub SIRC.
Miniprojekty
W tym miesiqcu w Miniprojektach przedstawiamy opis m.in. rewelacyjne oprogramowanie, które zamienia PC w wielopunktowy termometr,
Konwerter USB<->lrDA
Na słr. 21 przedstawiamy opis budowy kompletnego interfejsu USB2lrDA, dzięki któremu wymiana danych pomiędzy Twoim komputerem a telefonem, drukarkq lub palmtopem staje się niezwykle łatwa,
Dekoder dźwięku dookólnego SRS
Drugq część opisu procesora dźwięku dookólnego SRS publikujemy na słr. 37.
Zestawy lutownicze JBC
O nowościach firmy JBC -jednego z większych na naszym rynku dostawców sprzętu lutowniczego -piszemy na słr. 55.
Elektronika Praktyczna 4/2003
Multimetry cyfrowe serii 3550
Nowości na rynku multimetrów stacjonarnych przedstawiamy w artykule na słr. 66.
^
Protel DXP
Kolejna cześć artykułu, w którym przedstawiamy możliwości najnowszego pakietu EDA firmy Altium. Słr. 62.
Zilogowy webserwer
Na słr. 51 przedstawiamy możliwości webserwera wykonanego na mikrokontrolerze firmy Zilog.
T
IKA
Nr 4 (124)
kwiecień 2003
Elektronika Praktyczna 4/2003
Headwards! - czyli mysz się chowa, część 1 ........................ 14
Konwerter USB<->lrDA.............................................................. 21
12-kanałowy regulator mocy sterowany
sygnałem DMX512, część 1 .................................................... 27
Programowany sygnalizator głosowy.................................... 33
Dekoder dźwięku dookólnego SRS, część 2......................... 37
Uniwersalny nadajnik RC5/SIRC, część 2..............................41
Yampp-7 -kieszonkowy odtwarzacz MP3,część 2.............45
liniprojekfy*
Lampomittari, czyli najprostszy termometr cyfrowy na PC .... 75 Zabezpieczenie przed odwrotnq polaryzacjq..................... 76
Programy!
Protel DXP - przełom na rynku narzędzi EDA
dla elektroników, część 2........................................................62
Autorouter Specctra, część 3................................................. 71
Kurs
Podstawy projektowania systemów
mikroprocesorowych, część 2................................................ 85
Język C dla mikrokontrolerów8051 .część 11 ...................... &&
CRC doda Ci pewności, część 4........................................... 91
Automatyka
Modułowe regulatory temperatury firmy Omron..............135
O czym należy pamiętać podczas dobierania czujnika temperatury............................................................................ 138
Podzespoły
Zi I og owy webserwer................................................................. 51
Sprzęt
Zestawy lutownicze firmy JBC, część
Fluke 789 - miernik dla automatyków....................................bQ
Multimetry cyfrowe serii 3550..................................................66
Na Wtękżzq skalę - systemy i urzqdzenia APS
dla producentów elektroniki...................................................69
Nowoczesne akumulatory, część
Projekty Czytelników^
Miniprogramator szeregowych pamięci EEPROM, część 1 ... 95
Z kraju i ze świata........................................................119
Ifrdmik+ftyńelt
Listy.................................................................................103 |
Ekspresowy Informator Elektroniczny.....................115 J
Wykaz reklamodawcow............................................118._
7
PROGRAMY
Protel
Przełom na rynku narzędzi EDA dla elektroników, część 2
Kompilowanie projektu w DXP fest zupełnie nowym, ale
istotnym składnikiem procesu projektowania. Środowisko Protel
DXP posiada wbudowany potężny mechanizm odpowiedzialny za
kompilowanie i porównywanie dokumentów składowych całego
projektu. Kompilator buduje w pamięci komputera model
projektu, który jest następnie sprawdzany pod kątem
występowania błędów rysunkowych i elektrycznych.
Kompilacja projektu
Błędy wykryte przez kompilator są wyświetlane w panelu Msssagss (rys. 7). Dwukrotne kliknie.cie myszką na wybrane] pozycji w panelu Msssagss umożliwia przejście do miejsca wystąpienia błędu w dokumencie źródłowym.
Wspomnieliśmy, że kompilacja obejmuje także weryfikację projektu pod kątem występowania błędów. Parametry tej weryfikacji kon figuruje my za pomocą okienka dialogowego Options for Projsci, które możemy wywołać, np. wybierając z menu Pro-jsci>Projsci Options. Spośród całej masy dostępnych opcji pogrupowanych w kilka zakładek, teraz interesują nas te, zawarte pod zakładkami Error Reporting oraz Connection Matrix (rys. 3).
Parametry zgrupowane na zakładce Error Reporting (rys. 9] odpowiadają za tzw. błędy rysunkowe, takie jak np. powtórzone Oznaczenia elementów na schemacie, nie-podłączone porty zasilania, powielone etykiety sieci itp.
Druga grupa opcji odpowiedzialnych za weryfikację to tzw. macierz połączeń, dostępna na zakładce Connection Matrix. Specyficzna dla P rotę la macierz połączeń, widoczna na ilustracji, odpowiada za wykrywanie tzw. błędów elektrycznych. Klikając kolorowe pola na przecięciu wierszy i kolumn macierzy, kon figurujemy zachowanie się programu na okoliczność wystąpienia określonych błędów elektrycznych na schematach. Przykładowo, na przecięciu wiersza Output Pin i kolumny Powsr Pin domyślnie występuje kwadracik koloru pomarańczowego, oznaczający błąd (Error). Takie ustawienie powoduje, że Protel wykrywa połączenie wyprowadzenia typu "wyjście" z wyprowadzeniem typu "zasilanie" i sygnalizuje taki stan jako błąd, co jest dość oczywiste. Kon figurując macierz połączeń, możemy wpłynąć w określony sposób na zachowanie się programu w sytuacji wystąpienia różnego rodzaju błędów elektrycznych. Biorąc pod uwagę możliwą liczbę połączeń pomiędzy kilkunastoma wierszami i kolumnami
macierzy, otrzymamy ponad sto pięćdziesiąt możliwości ustawień. Dla każdej z nich możemy zdefiniować jeden z czterech poziomów sygnalizacji: Błąd Krytyczny (Fatal Error), Błąd (Error), Ostrzeżenie (Waming) i Brak Raportowania (No Report).
Wcześniej wspomnieliśmy, że podczas kompilacji powstaje model projektu, który odwzorowuje wszystkie relacje pomiędzy jego częściami składowymi. Dotyczy to połączeń pomiędzy arkuszami projektu hierarchicznego, powiązań pomiędzy instancjami poszczególnych kanałów w projekcie wielokanałowym oraz sieci połączeń występującej pomiędzy wszystkimi elementami na arkuszu schematu. Widok skompilowanego projektu pokazuje panel Nawigator, za pomocą którego możemy poruszać się po całej strukturze projektu oraz obejrzeć wszystkie połączenia.
Zwracam uwagę, że panel Navigator (rys. 10] daje praktycznie nieograniczone możliwości nawigacji po strukturze projektu, na każdym poziomie i na kilka sposobów. Począwszy od poziomu najwyższego, tj. poszczególnych arkuszy oraz instancji projektu wielokanałowego, poprzez elementy i połączenia na schemacie, aż do poziomu pojedynczych wyprowadzeń elementów i dowolnych parametrów związanych z elementami. Dochodzi do tego możliwości graficznej reprezentacji połączeń z jednoczesnym automatycznym powiększaniem wybranych elementów i maskowaniem pozostałych (rys. 11). Wszystko to powoduje, że poruszanie się po projekcie w programie Protel/nVisage DXP jest proste, łatwe i przyjemne.
Rys. 7. Widok panelu messages
Rys. 8. Okno konfiguracji raportów
Kiedy projekt jest skompilowany i pozbawiony błędów na schematach, możemy przejść do kolejnych etapów projektowania. Bezbłędnie skompilowany projekt to "materiał" do analiz i symulacji oraz transferu do implementacji - zależnie od rodzaju - na płycie PCB lub w układzie FPGA.
Rys. 9. Okno konfiguracji weryfikacji błędów no schemacie
Rys. 10. Nawigator pozwala swobodnie przemieszczać się po projekcie

Rys. 11. Polqczenia mogq być prezentowane graficznie
62
Elektronika Praktyczna 4/2003
PROGRAMY
Rys. 12. Okno konfiguracji symulatora
Wszechstronna analiza projektu
nVisage i Protel zawierają cały szereg narzędzi do analizy i weryfikacji układu - włączając w to symulator analogowo-cyfrowy typu SPICE3f5/Xspice, symulator VHDL oraz pełne możliwości analizy sygnałowej obwodu. Narzędzia te są całkowicie zintegrowane i gotowe do wykorzystania w razie potrzeby.
Symulator analogów o-cyfr owy
Symulator wykorzystuje rozszerzoną wersję standardu Berkeley SPICE3f5/Xspice, pozwalając na dokładną analizę dowolnych kombinacji układów analogowych i cyfrowych, bez konieczności ręcznego wstawiania przetworników C/A i A/C pomiędzy częściami analogowymi i cyfrowymi. Symulacja układów mieszanych jest możliwa, ponieważ symulator zawiera precyzyjne modele behawioralne układów cyfrowych, zarówno TTL, jak i CMOS. Symulator obsługuje wszystkie modele analogowe kompatybilne ze standardem SPICE.
Symulator oferuje zarówno podstawowe analizy - punktu pracy, analizę przejściową i mało sygnałową, jak i szereg analiz zaawansowanych np. Fouriera lub Monte Carlo. Na rys. 12 pokazano okienko dialogowe służące do konfiguracji symulatora. W jego lewej części widoczne są wszystkie dostępne rodzaje analiz. Wybierając poszczególne pozycje listy, uzyskujemy dostęp do ich parametrów pokazanych w prawej części okienka.
Wyniki symulacji wyświetlane są na wykresach w postaci przebiegów (przykład pokazano na rys. 13). Szeroki zakres ustawień parametrów obu osi, skali, wielkości i ilości przebiegów na wykresach daje możliwość różnorodnej prezentacji i analizy wyników.
Symulator VHDL
Symulator VHDL to kompletny system umożliwiający kompilację i wykonanie kodu VHDL. Pozwala na analizę funkcjonalną i czasową projektu FPGA. Wyniki symulacji prezentowane są na wykresach w postaci przebiegów czasowych (rys. 14). Dostępny

Rys. 13. Prezentacja wyników symulacji układu analogowego
tryb pracy krokowej pozwala na stopniowe uruchamianie kodu z jednoczesną obserwacją przebiegów i podglądem sygnałów i zmiennych oraz analizą kodu VHDL i odpowiadających mu elementów na schemacie. Możliwość ustawiania pułapek dodatkowo ułatwia uruchamianie projektu.
Analiza sygnałowa obwodu
Wraz ze zwiększaniem częstotliwości pracy współczesnych urządzeń, analiza sygnałowa obwodu staje się coraz bardziej przydatnym narzędziem pracy projektanta. Protel oraz nVisage pozwalają na przeprowadzenie analizy sygnałowej zarówno dla gotowej płyty PCB, jak i zanim jeszcze zaprojektujemy obwód drukowany - na podstawie samego schematu ideowego.
Podstawową zasadą przy projektowaniu, pozwalającą uniknąć problemów związanych z integralnością sygnałów, jest dopasowanie impedancji. Na etapie rysowania schematu osiągamy to przez prawidłowe dopasowanie urządzeń i dobór terminatorów. Natomiast podczas projektowania obwodu drukowanego, przez prawidłowe określenie fizycznych właściwości laminatu oraz odpowiednie prowadzenie ścieżek.
Wstępną analizę sygnałową możemy przeprowadzić jeszcze podczas rysowania schematów. Unikamy w ten sposób ryzyka kosztownego przeprojektowywania płyty, jeśli okaże się, że potrzebne są dodatkowe terminatory lub nawet należy zmienić technologię. Do takiej analizy wystarczy tylko określić średnią impedancję ścieżek, uruchomić symulację i obejrzeć przebiegi sygnałów na wykresach zbliżonych do tych, jakie widzimy na ekranie oscyloskopu. Jeśli zaobserwujemy zniekształcenia sygnałów, mogące mieć wpływ na pracę urządzenia, możemy zastanowić się nad wyborem układów w innej technologii lub spróbować dobrać terminatory. Program pomoże nam szybko określić optymalne wartości elementów terminatora (rys. 15).
Średnia wartość impedancji ścieżek założona podczas wstępnej analizy może być wykorzystana podczas projektowania PCB w celu prawidłowego doboru układu warstw oraz do konfiguracji nowej reguły projektowej na prowadzenie ścieżek wg określonej impedancji. Analiza sygnałowa przeprowadzona na gotowym obwodzie drukowanym pozwala dokładnie sprawdzić jego jakość pod kątem integralności sygnałów.
Przebiegi sygnałów, jakie możemy zaobserwować w wyniku takiej analizy, odpowiadają z dużą dokładnością tym, jakie pojawią się w rzeczywistym obwodzie. Na wykresach możemy zaobserwować zjawiska przesłuchów pomiędzy ścieżkami, odbicia sygnałów, zmierzyć czas narastania i opadania zbocza oraz impedancję ścieżki (rys. 16).
Należy zaznaczyć, że algorytmy używane podczas analizy są bardzo dokładne, jednak chcąc uzyskać wiarygodne wyniki, musimy dobrze określić parametry elektryczne laminatu i miedzi, na podstawie których program liczy impedancję ścieżek. Ponadto, musimy dysponować odpowiednimi modelami elementów. Większość z nich jest dostępna w bibliotekach dołączonych do programu. Jeśli dla pewnego elementu brakuje modelu, możemy określić go sami lub pozwolić, aby program zastosował model przybliżony.
Praca z wykresami
Wszystkie rodzaje symulacji dostępne w DXP mają wspólną cechę w postaci graficznej reprezentacji wyników na wykresach. Środowisko DXP zawiera dwie przeglądarki
Rys. 14. Wyniki symulacji projektu układu FPGA
przebiegów, obsługujące wszystkie rodzaje wykresów generowanych przez narzędzia do analizy.
Przeglądarka analogowa oferuje takie funkcje jak: podgląd kilku przebiegów, przebiegi nałożone na jednym wykresie z kilkoma osiami Y, kursory służące do precyzyjnego odczytu wartości z wykresów, możliwość zastosowania formuł matematycznych do przebiegów, kopiowanie wykresów do schowka Windows oraz eksport wyników do pliku.
Przeglądarka cyfrowa jest nieco uboższa, ale wyczerpuje typowe potrzeby w zakresie prezentacji przebiegów cyfrowych w funkcji czasu, pomiarów czasu i wyświetlania wartości.
Synteza VHDL
Zagadnienie syntezy dotyczy przetwarzania kodu VHDL przy projektowaniu programowalnych układów logicznych. Synteza to złożony proces polegający na transformacji projektu układu logicznego do fizycznej implementacji w układzie FPGA. Programy nVisage i Protel posiadają wbudowane uniwersalne narzędzia do syntezy VHDL pozwalające na wybór jednego z wielu dostępnych na rynku układów programowalnych. Dają swobodny wybór architektury oraz rodziny układów FPGA. Programy posiadają wiele zaawansowanych cech spotykanych zwykle w drogich narzędziach do syntezy FPGA. Podczas syntezy program wyświetla szczegółowe komunikaty w oknie Msssagss. Klikając na wybranej pozycji z listy w okienku Msssagss możemy przejść automatycznie do miejsca w projekcie, którego dany komunikat dotyczy. Pozwala to w łatwy i prosty sposób dotrzeć do miejsc, w których program znalazł błędy.
DXP daje możliwość importu informacji o rozkładzie wyprowadzeń generowanych przez zewnętrzne narzędzia do implementacji FPGA. Rozkład wyprowadzeń zaprogramowanego juś układu logicznego możemy załadować do programu, zarówno w projekcie FPGA, jak i PCB. Dzięki temu możemy zachować spójny rozkład wyprowadzeń podczas całego procesu projektowania. Aktualnie program obsługuje większość rodzin
Rys. 15. Protel DXP potrafi obliczyć parametry terminatora linii transmisyjnych
64
Elektronika Praktyczna 4/2003
PROGRAMY
Rys. 16. Wyniki symulacji wpływu parametrów terminatora na przesyłany sygnał
układów FPGA, takich producentów jak: Xi-linx, Altera, Actel, Atmel, Lattice, Quicklo-gic i Vantis.
Projekty wielokanałowe
Zaawansowany mechanizm, wspomagający tworzenie projektów wielokanałowych, to nowe i ciekawe zagadnienie, które pojawiło się w DXP. Mechanizm ten ułatwia projektowanie układów, w których pewne części obwodu powtarzają sie. - dwukrotnie, czterokrotnie czy nawet 3 2-krotnie. Programy nVisage i Protel DXP posiadają kilka cech,
Rys. 17. Przykładowa struktura projektu 32-kanałowego
które zapewniają pełną obsługę, prawdziwych, zagnieżdżonych projektów wielokanałowych. Spośród tych ułatwień należy wy-mienió automatyczne generowanie wielu instancji arkuszy schematów dla poszczególnych kanałów, zarządzanie oznaczeniami, automatyczne generowanie klas elementów i tworzenie odrębnych obszarów PCB dla poszczególnych kanałów oraz możliwośó powielania identycznego rozkładu elementów i ścieżek na PCB dla każdego z kanałów.
Na rys. 17 przedstawiono strukturę, przykładowego projektu 3 2-kanałowego, który zawiera cztery banki, z których każdy jest wyposażony w osiem identycznych kanałów.
Pojęcie prawdziwego projektowania wielokanałowego, które jest często podkreślane, oznacza, że schemat powtarzającego się kanału rysujemy tylko raz. Nie ma potrzeby tworzenia wielu kopii tego samego arkusza! Projekt na schemacie pozostaje w takim stanie nawet po przeniesieniu do PCB, a system utrzymuje powiązanie jednego elementu logicznego na schemacie do wielu fizycznych elementów na płycie PCB.
Edytor schematów daje nam do dyspozycji dwie możliwości narysowania projektu wielokanałowego - kładziemy osobne symbole arkusza dla każdego kanału, wszystkie odnoszące się do tego samego arkusza schematu lub wykorzystujemy specjalną składnię oznaczenia symbolu arkusza, która reprezentuje wiele kanałów za pomocą jednego symbolu arkusza.
Używając specjalnego słowa kluczowego Rspsat w oznaczeniu symbolu arkusza, określamy liczbę wystąpień danego kanału. Podczas kompilacji projektu program powiela dany kanał odpowiednią liczbę razy, tworząc wewnętrzny skompilowany model, używając wybranego schematu numeracji w celu unikalnego oznaczenia każdego elementu w każdym kanale. Ten proces nie powiela arkusza schematu dla każdego kanału -schemat pozostaje ciągle jeden. Kiedy projekt jest skompilowany, pojawiają się zakładki w dolnej części okna edytora schematów, po jednej dla każdego kanału.
Sposób mapowania pojedynczego elementu na schemacie z jego kilkoma wystąpieniami (w kilku kanałach] na PCB jest określony przez tzw. schemat oznaczeń ustawiony w okienku dialogowym Projekt Options na zakładce Multi-Channsl. Na rys. 13 pokazano wygląd okna konfiguracyjnego i jeden z możliwych schematów oznaczeń.
Konfiguracja kanałów ze schematów przechodzi automatycznie na rozkład elementów na płycie drukowanej. Kiedy przenosimy projekt do PCB, elementy są układane

X^Ji| 1
.._ . L .._..........L^jj I
Rys. 18. Okno konfiguracji projektu wielokanałowego
Rys. 19. Formaty kanałów można dowolnie kopiować
w grupach (tzw. cornponsnt classss), a każda grupa elementów na płycie jest umieszczana w osobnym obszarze (tzw. placsrnsnt loorn).
Elementy na PCB układamy tylko dla jednego kanału, wewnątrz jego obszaru, następnie prowadzimy ścieżki, korzystając z polecenia Autoiouts>Roorn. Dalej korzystamy z polecenia Tools>Rooms>Gopy Room For-rnats, aby powielió krok po kroku rozkład elementów i ścieżek dla wszystkich kanałów. Wspomniana funkcja obsługuje zarówno płyty z dwustronnym rozkładem elementów i ścieżek kanału, jak i jednostronny rozkład dla kanału, który może byó powielony po obu stronach płyty. Dostępne możliwości kopiowania formatu kanałów najlepiej ilustruje widok okienka dialogowego na rys. 19. Grzegorz Witek, Evatronix
Dodatkowe informacje
Dodatkowe informacje można uzyskać w firmie Evat ro n ix, w w w. ev atr o nix. com.pl
Elektronika Praktyczna 4/2003
65
SPRZĘT
Wydaje się, źe w czasach niebywałej miniaturyzacji układów ełektronicznych oferowanie koiejnego łab oratoryjne go miernika uniwersainego jest pomysłem co najmniej ryzykownym. Tego rodzaju sprzęt jest jednak poszukiwany i trafia na stoły iaboratoryjne warsztatów oraz pracowni, gdzie zawsze jest pod ręką.
|nM3557 DIGŁTAL MULTIMETER
ń xy Jlr
? n a a ?

Ś U Ul
Mu It i metry cyfrowe serii 3550
ABM to All-Bright Technology Co., Ltd. - tajwańska firma, której multimetr DM3 55 7 został poddany redakcyjnym testom.
Wymiary: 213x88x394 mm i waga 3,6 kg kwalifikują go jako stacjonarny przyrząd laboratoryjny. Może być on ustawiony zarówno w pozycji poziomej (lub ukośnej). W tym drugim przypadku konstruktorzy nie zapewnili jednak nóżek o odpowiedniej wysokości, wskutek czego minimalnie wystająca wtyczka przewodu zasilającego sprawia, że przyrząd nie zachowuje stabilności w tej pozycji.
Obsługa przyrządu nie powinna nastręczać trudności. Wszystkie elementy regulacyjne, poza wyłącznikiem sieciowym, umieszczono na płycie czołowej. Obrotowy przełącznik rodzaju pracy można wprawdzie ustawić w położeniu "OFF", jednak zasilanie miernika nie jest wówczas wyłączane, a uaktywniany jest jedynie układ APO (Inielligeni Auto Power Off). Podczas normalnej pracy usypia on elektronikę po 17 minutach braku aktywności. Mało praktycznym jest umieszczenie wyłącznika z tyłu obudowy, zwłaszcza że "przebudzenie" następuje po naciśnięciu dowolnego klawisza, zmianie położenia przełącznika obrotowego lub wykryciu sygnału przekraczającego o 10% aktualny zakres pomiarowy. Jeśli włączenie zasilania nastąpi w położeniu "OFF", układ APO zostanie zablokowany. Umieszczenie wyłącznika zasilania z tyłu obudowy wydaje się być poważnym nieporozumieniem, zwłaszcza że przyrząd prawdopodobnie będzie ustawiany na półkach pomiędzy innymi urządzeniami. Wówczas dostęp do tego wyłącznika będzie bardzo utrudniony.
Możliwości
Multimetr DM355 7 wyposażono w wyświetlacz ciekłokrystaliczny 5 i 4/5 cyfry (maksymalne wskazanie 500000) w trybie pomiaru napięć i 999999 w trybie pomiaru częstotliwości. Pod cyfrowym polem odczytowym znajduje się 50-segmentowy bargraf, którego stan jest odświeżany 60 razy na sekundę. Wyniki na głównym polu odczytowym są wyświetlane 5 razy na sekundę. W każdej chwili wskazanie może być zamrożone na wyświetlaczu poprzez naciśnięcie przycisku "HOŁD". Stan taki jest sygnalizowany wyświetleniem literki "H". Według mojej oceny kontrast wyświetlacza mógłby być minimalnie większy. Podczas pomiarów DCV miernik posiada dokładność 0,03%. Można nim mierzyć napięcia i prądy DC, AC, DC+AC True RMS (bez bargrafu), dla współczynnika szczytu mniejszego od 5:1 na pełnym zakresie i mniejszym od 10:1 dla połowy zakresu. Wartość DC+AC True RMS jest zdefiniowana jako:
Częstotliwość mierzonych napięć sinusoidalnych może dochodzić do 100 kHz, zaś przebiegów cyfrowych do 2 MHz.
Szczegóły dotyczące zakresów pomiarowych zostały przedstawione w tab. 1. Miernikiem DM3557 można mierzyć ponadto rezystancję i pojemność, poziom względny napięć (w dBm) odnoszony do wybranej impedancji obciążenia (jednej z 20 typowych). Ponadto ma wbudowany dźwiękowy tester ciągłości połączeń i tester diod. Dostępne są też funkcje pozwalające mierzyć częstot-
liwość przebiegu cyfrowego i jego współczynnik wypełnienia. Na zakresie prądowym DC można ustawić dodatkową funkcję: %4-20mA. Wynik nie jest wówczas wyświetlany w jednostkach prądu, lecz wyrażany jako procent zakresu pętli prądowej 4...20 mA.
Bliźniaczy multimetr DM3559, którego dokładność DCV wynosi 0,02%, umożliwia ponadto dokonywanie pomiaru temperatury za pomocą dwóch sond i jest wyposażony w optoizolowany interfejs RS232. Brak możliwości komunikowania się z komputerem w modelu DM3557 stanowi niestety jego sporą wadę.
Do wybierania mierzonej wielkości służy przełącznik obrotowy. Niektórym jego położeniom przyporządkowano kilka znaczeń, dlatego trzeba dodatkowo wybierać odpowiednią funkcję przyciskiem "SE-LECT". Ustawienia są każdorazowo zapamiętywane w pamięci nieulot-nej i prawidłowo odtwarzane po wyłączeniu i ponownym włączeniu przyrządu. Zakres pomiarowy do wszystkich rodzajów pracy jest wybierany automatycznie, jednak użytkownik ma możliwość również ręcznego ustawienia. Służy do tego przycisk "RANGĘ". Każde jego przyciśnięcie powoduje cykliczną zmianę zakresu, przytrzymanie zaś na ok. 1 sekundę przywraca pracę automatyczną. Na płycie czołowej znajduje się również przycisk służący do przełączania rozdzielczości wskazań z 5 na 6 cyfr. Ma to szczególnie duże znaczenie podczas pomiarów częstotliwości. Przystępując do pomiarów pojemności kondensatorów (zwłaszcza dużych wartości), trzeba pamiętać o dokładnym ich rozładowaniu przed dołączeniem do
Elektronika Praktyczna 4/2003
SPRZĘT
Tabela 1. Parametry elektryczne multimetru DM3557
Zakres Dokładność Uwagi
DCV Impedancja wejściowa: 10 MH, 30 pF
500,00 mV 5,0000 V 50,000 V 0,03% + 2c
500,00 V 0,05% + 2c
1000,0 V 0,1% + 2c
ACV/DCV+ACV Impedancja wejściowa: 10 MH, 30 pF
45.300Hz
500,00 mV 5,0000 V 50,000 V 500,00 V 1000,0 V 0,8% + 60c
300HZ...1 kHz
500,00 mV 0,8% + 40c
5,0000 V 50,000 V 500,00 V 2,0% + 60c
1000,0 V 1,0% + 40c
DCA
500,00 iuA 0,15% + 20c
5000,0 iuA 0,1% + 20c
50,000 mA 0,15% + 15c
500,00 mA 0,1% + 20c
5,0000 A 0,5% + 10c
10,000 A 0,5% + 20c 10 A pomiar ciągły 20 A pomiary przez max30 s z 5 min przerwą
ACA/DCA+ACA
40HZ...1 kHz
500,00 iuA 5000,0 iuA 50,000 mA 500,00 mA 5,0000 A 1,0% + 40c
10,000 A 1,0% + 40c 10 A pomiar ciągły 20 A pomiary przez max30 s z 5 min przerwą
ACHz Czułość (przebieg sinusoidalny): 0,1 V min dla zakresu 500 mV 1 V min dla zakresu 5 V 10 V min dla zakresu 50 V 100 V min dla zakresu 500 V 900 V min dla zakresu 1000 V
5,0000Hz... 200,000kHz 0,002%+ 4d
Logic Hz Czułość (przebieg prostokątny): 2,5 V
5,0000 Hz...2,00000 MHz 0,002%+ 4c
Współczynnik wypełnieni a fwe:5Hzdo500kHz 5VTTL
0,1%...99,99% 3c/kHz + 2c
Rezystancja Uwy:<1,3VDC (<3Vdla500H)
500,00 n 5,0000 kn 50,000 kn 500,00 kn 0,1% + 6c
5,0000 MH 2,0% + 6c
50,000 MH 2,0% + 6c
Pojemność
50,00 nF 500,0 nF 0,8%+3c
5,000 iuF 1,0%+3c
50,00 nF 2,0%+3c
500,0 iuF 3,5% + 5c
9999 nF 5,0% + 5c
Test ciągłości połączeń
sygnał dźwiękowy dla przejścia od 20...200 n czas odpowiedzi <100 us
dBm Impedancja odniesienia: 4, 8,16, 32, 50, 75, 93,110,125,135,150, 200, 250,300, 500, 600,800, 900,1000,1200 n Impedancja wejściowa: 10MH, 30 pF
-11,76 do 54,25 dBm dla 600 n 0,25dB + 2c(40Hz...20kHz)
Test diod prąd pomiarowy: 0,8 mA napięcie pomiarowe: <3,5 VDC
5,0000 V 1 % +1 c
Pętla prądowa4...20 mA
4mA=0% 20mA=100% rozdzielczość: 0,01% dokładność: ą25c
miernika. Miernik DM3557 umożliwia zapamiętywanie wartości maksymalnej i minimalnej w serii pomiarów. Funkcja ta jest włączana po naciśnięciu przycisku "REC". Na wyświetlaczu zostaje wyświetlona literka "R" oraz napisy "MAX" i "MIN". Od tego momentu przyrząd śledzi wyniki pomiarów i wyświetla je na bieżąco na wyświetlaczu, a każdorazowe wykrycie wartości maksymalnej (lub minimalnej) sygnalizuje krótkim dźwiękiem. Kolejne przyciśnięcie przycisku "REC" powoduje przejście w tryb wyświetlania tylko wartości maksymalnej, minimalnej lub różnicy pomiędzy nimi. Przytrzymanie przycisku "REC" powoduje wyłączenie powyższej funkcji.
Multimetr DM35 57 posiada również funkcję Crest Capture uruchamianą klawiszem "CREST". Pozwala ona na wykrywanie impulsów prądowych lub napięciowych DC, AC, DC+AC o czasie trwania do ok. 0,8 ms. W tym trybie funkcja APO jest zawsze wyłączana. Podczas pomiarów laboratoryjnych często przydaje się możliwość pomiarów względnych, odnoszonych do pewnej wartości wzorcowej. Pomiar taki jest możliwy po naciśnięciu klawisza A. W tym momencie wskazywana przez przyrząd wartość staje się wartością odniesienia, a przyrząd wskazuje wartość zero. Wartościami odniesienia mogą być również zarejestrowane wcześniej wartości maksymalne lub minimalne.
Każdorazowe naciśnięcie dowolnego klawisza jest sygnalizowane krótkim i dość cichym dźwiękiem. Gdyby jednak komuś to przeszkadzało, może wyłączyć sygnalizację dźwiękową, naciskając klawisz "Hz" w momencie włączania miernika. W czasie testów ciągłości połączeń sygnał dźwiękowy zostaje oczywiście aktywny.
Multimetry serii DM3550 nie wyróżniają się jakimiś szczególnymi cechami użytkowymi. Większość z nich jest dostępna również w wielu małych miernikach przenośnych. Pamiętajmy jednak, że jest to przyrząd stacjonarny, zawsze dostępny pod ręką, no i nie trzeba wymieniać baterii.
Jarosław Doliński jaroslaw.dolinski@ep.com.pl
Dodatkowe informacje
Multimetry do testów w redakcji dostarczyła firma Merserwis, tel. (22) 831-42-56, www.merserwis.com.pl.
68
Elektronika Praktyczna 4/2003
PROJEKTY
Bezprzewodowy regulator temperatury, część 1
AVT-5094
Powszechnie dostępne
radiowe moduły nadawczo-
odbiorcze umożliwiają
stosowanie łączy
bezprzewodowych w coraz
bardziej "przyziemnych"
aplikacjach. Do niedawna
bardzo " udrutowione" były
układy do regulacji
temperatury. Do niedawna, bo
w prezentowanym projekcie
proponujemy zastosowanie
bezprzewodowego modułu
wyko n a we ze go.
Rekomendacje: układ może
zastąpić przestarzałe
regulatory temperatury
z wyjściami przekaźnikowymi.
Może być z powodzeniem
stosowany do sterowania
ogrzewaniem elektrycznym lub
wodnym w domach.
Układ kontrolujący temperaturę można wykonać w różny sposób.
Najprostszy, elektromechaniczny jest stosowany na przykład w żelazku. Jest wykonany z bimetalu, który pod wpływem temperatury odkształca się i zwiera lub rozwiera styk.
Kolejną grupą stanowią termoregulatory elektroniczne. Temperatura jest regulowana za pomocą potencjometru, a komparator termostatu porównuje wartość zadaną z napięciem na czujniku temperatury i w zależności od różnicy tych napięć steruje układem wykonawczym w postaci triaka lub przekaźnika.
Najbardziej zaawansowane konstrukcyjnie, ale jednocześnie dające największe możliwości, są termostaty sterowane przez mikroprocesor. Umożliwiają one regulowanie temperatury zgodnie z potrzebami użytkownika - wartość kontrolowanej temperatury może być automatycznie zmieniana w zależności od pory dnia, daty itp.
Opis takiego termostatu przedstawiono w artykule. Ma on wbudowany zegar, a więc możliwe jest kontrolowanie różnej temperatury dla dnia i dla nocy. Pora dnia jest definiowana przez użytkownika przez podanie początkowej i końcowej godziny, pora nocy jest automatycznie obliczana przez miki okontiol er.
Pomiar temperatury odbywa się z rozdzielczością O,1C, a temperatura zadana może być ustawiana z dokładnością 1C w zakresie od 0C do 99C.
Oprócz regulacji automatycznej jest możliwa praca ręczna. W tym trybie termostat nie reaguje na zmiany temperatury, a zmiana stanu przekaźnika (włączenie/wyłączenie) jest wykonywane za pomocą jednego klawisza.
Układ sterowania został oddzielony od układu wykonawczego, dzięki czemu obsługa sterownika jest całkowicie bezpieczna, gdyż jest on zasilany bezpiecznym napięciem równym 12 V. Do komunikacji między modułami zastosowano transmisję radiową. Uzyskano w ten sposób
Elektronika Praktyczna 1/2003
31
Bezprzewodowy regulator temperatury
+12V
RAO/ANO RAI/ANI
RA2/AN2/VREF RA3/AN3/CMP1 RA4/TBCKI/CMP2
12V
Rys. 1. Schemat elektryczny modułu sterownika regulatora
pełne odizolowanie układu sterującego od układu wykonawczego. Umożliwia to również dowolne umiejscowienie obydwu układów. Rozdzielenie układu sterującego i wykonawczego umożliwia usytuowanie czujnika temperatury w dowolnym miejscu pomieszczenia i osiągniecie żądanej temperatury właśnie w tym miejscu spowoduje wyłączenie grzejnika.
Układ może także sterować pompą centralnego ogrzewania. W tym przypadku sterownik jest umieszczony w pomieszczeniu, a układ wykonawczy przy piecu centralnego ogrzewania. W zależności od temperatury termoregulator może załączać lub wyłączać pompę wspomagającą obieg wody.
Zastosowany przekaźnik w układzie wykonawczym umożliwia załączanie prądu o natężeniu do 16 A, co daje moc rzędu 3,5 kW. Jest to więc wartość wystarczająca dla sterowania różnymi typami grzejników.
Opis i zasada działania
Na rys. 1. przedstawiono schemat elektryczny modułu sterującego. Głównym elementem jest mikroprocesor PIC16F628 zawierający 2 ksłów pamięci programu, 128 B pamięci EEPROM, 224 B pamięci RAM. Pracuje on w dość nietypowej konfiguracji, gdyż wyprowadzenia służące do dołączenia rezonatora kwarcowego (OSCl,
Ustaw flagę TMR1IF pizy przepełnieniu
OSC2) zostały wykorzystane do sterowania wyświetlaczem LCD. Także wyprowadzenie zerowania MCLR nie służy do zerowania procesora, lecz do obsługi klawiatury. Takie wykorzystanie tych wyprowadzeń jest możliwe dzięki możliwości bardzo elastycznego konfigurowania wyprowadzeń procesora. Niemal każde jego wyprowadzenie, w zależności od po-
k TMR1
TMR1H TMR1L

TMR1ON ____ on/off T1SYNC
RB6/T10SCVT1CKI
RB7/T1OSI
0 ,-
Prescaler Synchronize
1,2,4,8 _* det

T1CKPS1:T1CKPS0 SLEEP input
TMR1CS
Rys. 2. Budowa wewnętrzna timera TMR1
32
Elektronika Praktyczna 1/2003
Bezprzewodowy regulator temperatury
+12V
CON1
WY
WE
CON2
D2
B1
ANTENA
VCC
VCC
O
vcc
O-
US1 HT-12D
AO A1 A2 A3 A4 A5 A6 A7 GND
VCC
VT
OSC1
OSC2
DIN
D4
D3
D2
D1
18
16
R4
4R7
R3
47k
15
14
13
12
10
C5 z 100M1
RR3
C6 100n
10
VCC GND ARIEAL
GND
VCC
GND
VCC
TEST
OUT
VCC
+12V
TS2/15
Rys. 3. Schemat elektryczny modułu wykonawczego
trzeb, może pełnić kilka funkcji. I tak wyprowadzenia oscylatora (OSC1, OSC2) mogą być użyte jako standardowe linie wejścia-wyjścia. W tym przypadku sygnał zegarowy jest wytwarzany przez wewnętrzny generator RC. Częstotliwość tego generatora może wynosić 4 MHz lub 37 kHz, w zależności od stanu bitu OSCF w rejestrze PCON (szczegóły w nocie aplikacyjnej dostępnej na stronie Tnrw.mjcr0ci7jp.com). Jeśli bit ten jest ustawiony, to częstotliwość wynosi około 4 MHz, w przeciwnym przypadku wewnętrzny generator pracuje z częstotliwością wynoszącą około 37 kHz.
Ważną zaletą jest możliwość dokonania zmiany częstotliwości taktowania podczas pracy mikro-kontrolera, dzięki czemu oprogramowanie może regulować częstotliwość generatora, a co za tym idzie wartość pobieranego prądu. Funkcja ta jest szczególnie przy-
datna przy zasilaniu bateryjnym. W czasie wykonywania nieskomplikowanych operacji układ może pracować z mniejszą prędkością, a w czasie "poważniejszych" operacji można przyśpieszyć procesor, aby skrócić czas wykonania zadania.
Wyprowadzenie MCLR może pełnić funkcję zewnętrznego wejścia zerującego. Wówczas podanie stanu O powoduje zerowanie procesora. Do tego wyprowadzenia jest również doprowadzane napięcie programujące podczas programowania. Wyprowadzenie to może być także użyte jako standardowe wejście. Sposób wykorzystania tego wejścia ustala się podczas programowania. Jeśli wyprowadzenie to jest wykorzystane jako wejście, to sygnał MCLR jest wewnętrznie podciągany do plusa zasilania, a sygnał zerujący jest generowany przez wewnętrzny moduł. Wewnętrzny sygnał zeru-
jący jest generowany, gdy napięcie zasilające obniży się poniżej wartości około 4 V. Także po włączeniu zasilania mikrokontro-ler rozpocznie pracę dopiero przy napięciu zasilającym o wartości wyższej od 4V. Dzięki tym zabiegom uzyskuje się dodatkowe trzy wyprowadzenia procesora. Stosując mikrokontroler w obudowie 18-nóżkowej, mamy do dyspozycji dwa pełne porty ośmiobitowe, czyli 16 wyprowadzeń 1/0.
Wewnętrzny generator RC nie generuje sygnału o bardzo stabilnej częstotliwości, co jest wymagane do precyzyjnego odliczania czasu. Dlatego do pracy zegara wykorzystano zewnętrzny rezonator kwarcowy. Jego częstotliwość, jak i sposób podłączenia jest nietypowy, ale dzięki kolejnym udogodnieniom oferowanym przez zastosowany mikrokontroler, pomiar czasu odbywa się w bardzo prosty sposób.
Elektronika Praktyczna 1/2003
33
Bezprzewodowy regulator temperatury
Do odliczania odcinków jedno-sekundowych potrzebnych do pracy zegara wykorzystano timer TMRl. Jego schemat blokowy przedstawiono na rys. 2. Timer składa się z 16-bitowego licznika oraz 3-bitowego preskalera, dzięki czemu maksymalna liczba zliczanych impulsów wynosi 5242 88 (65536*TMR1L i TMRlH*8(pre-skaler) = 5 242 88). Timer TMRl umożliwia zliczanie wewnętrznych impulsów oscylatora, jak również impulsy doprowadzone do wejścia TlCKI. Timer TMRl jest wyposażony w wewnętrzny oscylator umożliwiający dołączenie do niego zewnętrznego rezonatora kwarcowego. Rezonator kwarcowy jest dołączany do wyprowadzeń portu RB6 i RB7. Dzięki temu można utworzyć stabilny generator, niezależny od generatora "napędzającego" procesor.
Ta możliwość timera została wykorzystana w przedstawionym układzie. Do wyprowadzeń oscylatora timera TMRl został dołączony rezonator kwarcowy o częstotliwości równej 32,768kHz. Timer TMRl dzieli tę częstotliwość przez 32768 i w efekcie przerwania są generowane dokładnie co jedną sekundę. Procedura odliczania polega jedynie na zliczaniu sekund, minut i godzin.
Do wyświetlania komunikatów oraz wartości nastawianych parametrów zastosowano wyświetlacz alfanumeryczny o organizacji 1*16 znaków. Wyświetlacz jest obsługiwany w trybie czterobitowym, co jest podyktowane małą liczbą dostępnych wyprowadzeń procesora sterującego.
Obsługa jest dokonywana za pomocą czterech klawiszy SW1...SW4. Wyprowadzenia por-
tu RA4 i RA5 wymagają zastosowania zewnętrznych rezystorów podciągających. Klawisze podłączone do portu RB nie wymagają takich rezystorów, gdyż port ten ma wewnętrzne rezystory pull-up.
Pomiar temperatury jest dokonywany przez specjalizowany czujnik półprzewodnikowy DS1820, dzięki czemu wartości zmierzonej temperatury są odczytywane przez procesor (w postaci cyfrowej) za pomocą jednoprze-wodowej magistrali 1-Wire.
Układ DS1820 umożliwia pomiar temperatury z rozdzielczością 0,5C, jednakże udostępnia on rejestry pomocnicze wykorzystywane w czasie pomiaru temperatury, dzięki którym poprzez wykonanie odpowiednich obliczeń możliwe jest uzyskanie rozdzielczości O,1C. W regulatorze ta właściwość została wykorzystana.
Do komunikacji z modułem wykonawczym zastosowano hybrydowy nadajnik radiowy o częstotliwości 433 MHz. Nadajnik ten jest zasilany napięciem wyższym niż pozostałe układy, gdyż największą moc emitowanego sygnału uzyskuje przy napięciu zasilania równym około 12 V, maksymalnie 14 V. Aby ograniczyć wpływ zakłóceń na transmitowane sygnały, są one kodowane za pomocą układu US2. Układ ten koduje wysyłane dane pochodzące z wejść adresowych A0...A8 oraz z wejść danych D1...D4. Układ HT-12E posiada wejście zezwolenia na nadawanie TE. Podanie na to wejście zera logicznego powoduje, że dane są wysyłane do nadajnika radiowego. W zależności od tego czy przekaźnik w module wykonawczym ma być włączony, czy wyłączony, na wejście danych Dl układu kodera jest podawany odpowiedni stan, który
jest wysyłany tylko wtedy, gdy na wejściu TE panuje poziom niski.
Do zasilania układów modułu sterującego zastosowano stabilizator typu LM78L05 o wydajności prądowej 100 mA oraz kondensatory wygładzające napięcie C1...C4. W celu zabezpieczenia układu przed nieprawidłową polaryzacją napięcia zasilającego zastosowano diodę Dl.
Na rys. 3 przedstawiono schemat modułu wykonawczego termoregulatora. Składa się on z odbiornika radiowego, dekodera, zasilacza oraz przekaźnika wykonawczego.
Odbiornik radiowy RR3 odbiera sygnały radiowe i przetwarza je do postaci cyfrowej. Sygnał cyfrowy jest następnie podawany na wejście DIN układu dekodera USl. W przypadku pojawienia się danych (adresu) zgodnych z zaprogramowanym kodem ustawionym za pomocą wejść adresowych, układ HT-12D przepisuje odebrane dane na wyjścia D1...D4. Stany wyj ść D1.. ,D4 są zatrzaskiwane i mogą być zmienione dopiero po wysłaniu przez nadajnik innych danych. Zanik transmisji nadajnika nie powoduje zmiany stanów tych wyjść.
W układzie generatora potrzebnego do pracy układu dekodera zastosowano rezystor R3. Z wyjścia Dl sygnał jest kierowany na bazę tranzystora Tl. Jeśli na tym wyjściu występuje poziom wysoki, to przekaźnik jest załączony i podawane jest napięcie 220 V na złącze CONl. W przeciwnym przypadku styki przekaźnika są rozwarte. Dioda Dl zabezpiecza tranzystor przed uszkodzeniem wysokim napięciem indukowanym w cewce przekaźnika w momencie jego wyłączania, zaś dioda świecąca sygnalizuje stan przekaźnika - jeśli jest załączony, to świeci.
NJ3(>
L112
SU3
IU80 ?
o
o
aSjflaflfiQfffi999999999
Rys. 4. Rozmieszczenie elementów na płytce drukowanej układu sterującego
34
Elektronika Praktyczna 1/2003
Bezprzewodowy regulator temperatury
Rys. 5. Rozmieszczenie elementów na płytce drukowanej układu wykonawczego
Układ jest zasilany z sieci 220 V. Do obniżenia tego napięcia zastosowano transformator TRI. Z wyjścia tego transformatora napięcie przemienne jest podawane na mostek prostowniczy MG. Kondensatory Cl i C2 filtrują napięcie. Napięcie o wartości około 12 V jest wykorzystane do zasilania cewki przekaźnika P. Napięcie to jest również podawane na wejście stabilizatora US2. Na wyjściu stabilizatora otrzymujemy napięcie o wartości 5 V niezbędne do pracy dekodera USl oraz odbiornika radiowego.
Montaż i uruchomienie
Montaż rozpoczynamy od płytki sterownika (schemat montażowy pokazano na rys. 4), montując najpierw rezystory, następnie podstawki pod układy scalone. W kolejnym etapie montujemy nadajnik radiowy i kondensatory. W celu zmniejszenia wysokości płytki kondensatory elektrolityczne można zamontować na leżąc o. Przyciski SW1...SW4 oraz wyświetlacz LCD montujemy od strony lutowania. Wyświetlacz można wlutować dwojako: jeśli nie mamy pewności, czy wszystkie elementy zostały zamontowane prawidłowo, bezpieczniej będzie zastosować gniazdo goldpin 1x16, co umożliwi swobodny demontaż wyświetlacza LCD i dostęp do pól lutowniczych w przypadku nieprawidłowego montażu elementów. W tym przypadku po umieszczeniu całego układu w obudowie
konieczne będzie przedłużenie klawiszy SW1...SW4, aby były wyższe od zamontowanego wyświetlacza.
Jeżeli jednak jesteśmy pewni jakości montażu, wygodniej jest wlutować wyświetlacz bezpośrednio w płytkę. Wtedy przyciski będą wystawały nad wyświetlacz, umożliwiając swobodny montaż w obudowie. Wejścia kodujące A0...A7 układu US2 należy zewrzeć do masy lub do plusa zasilania, ustalając w ten sposób jego kod.
Jeśli wszystkie elementy zostały wlutowane, to możemy uruchomić sterownik. W tym celu należy włożyć układy scalone w podstawki, a do złącza CONl doprowadzić napięcie zasilania o wartości około 12V. Po włączeniu zasilania na wyświetlaczu pojawi się czas oraz temperatura, przykładowy wygląd wyświetlacza jest następujący: ='L-i w ='L-i='"t t"-'li.-1* >>>"Ś ^
Montaż układu wykonawczego (schemat montażowy pokazano na rys. 5) wykonujemy tak samo jak w przypadku płytki sterownika. W zależności od spodziewanego obciążenia należy zastosować odpowiedni bezpiecznik. Dla dużych mocy pobieranych przez odbiornik wszystkie połączenia ścieżek pomiędzy złączami CONl i CON2 oraz stykami przekaźnika należy wzmocnić poprzez dolutowanie do nich drutu miedzianego o średnicy około lmm, co pozwoli uniknąć przepalenia ścieżek przy dużych prądach. Płytka modułu wykonawczego została dopasowana do obudowy typu Z27, która jest wyposażona we wtyczkę oraz gniazdo 220V, co umożliwia wygodne podłączenie odbiornika. Ze względu na styczność układu z napięciem 220 V należy zachować szczególną ostrożność, zarówno w czasie montażu, jak i użytkowania. Jeśli wszystkie elementy zostały wlutowane, to należy jeszcze ustalić kod odbiornika. W tym celu na wejściach kodujących A0...A7, należy ustawić odpowiednie stany, zwierając je do masy lub plusa. Ustawione stany muszą być identyczne jak w module nadajnika. Do punktu lutowniczego oznaczonego jako Antena
WYKAZ ELEMENTÓW
Moduł sterownika Rezystory
Rl: 680kQ
R2: 4,7kQ
R3, R4: 47kQ
Pl: potencjometr montażowy lOkO
Kondensatory
Cl, C4: 100^F/16V
C2, C3: lOOnF
C5, Có: 30pF
Półprzewodniki
Dl: 1N5817
USl: PIC16F628 zaprogramowany
US2: HT-12E
US3: DS1820
US4: LM78L05
Różne
CONl: ARK2(3,5mm)
SW1...SW4: mikrowłącznik h=10mm
Ql: nadajnik radiowy RT1
Wyświetlacz alfanumeryczny LCD
1Ó*1A (STC1C1ÓDRG_
Xl: 32,768kHz
Moduł wykonawczy Rezystory
Rl: l,5kQ
R2, R4: 4,7kQ
R3: 47kO
Kondensatory
Cl: 1000|iF/lóV
C2, C3, Có: lOOnF
C4, C5: 100^F/16V
Półprzewodniki
Dl: 1N4007
D2: dioda LED 5mm czerwona
USl: HT-12D
US2: LM7805
Różne
CONL CON2: ARK2(5mm)
Bl: bezpiecznik
Gniazdo bezpiecznika do druku
Moduł radiowy - odbiornik RR3
Transformator TS2/15
należy przylutować odcinek przewodu o długości około lOcm, który będzie pełnił rolę anteny odbiorczej. Oprogramowanie sterujące termoregulatorem przedstawimy za miesiąc, w drugiej części artykułu.
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/styczenO3.htm oraz na płycie CD-EP1/2003B w katalogu PCB.
Elektronika Praktyczna 1/2003
35
SPRZĘT
Na większą skalę
Systemy i urządzenia APS dla producentów elektroniki
Dlatego obniżanie kosztów, pisy zachowaniu kryteriów jakościowych, jest jednym z najważniejszych celów w planowaniu produkcji. Jeśli więc pojawi się możliwość uzyskania określonych parametrów i wskaźników przy znacząco niższych nakładach inwestycyjnych, to nie powinno sie. jej przeoczyć.
Na polskim rynku właśnie ukazała sie. nowa oferta, adresowana do producentów elektroniki. Podstawowym jej wyróżnikiem jest połączenie wysokiej jakości i niezawodności, szerokich możliwości i bardzo dobrych parametrów, z cenami niespotykanymi dotąd w tej klasie urządzeń.
APS to w rozwinięciu Autornated Produc-iion Systems. W katalogu tej amerykańskiej firmy znajdziemy przyrządy i urządzenia przeznaczone do przygotowania i montażu wszelkich elementów i układów elektronicznych na płytach drukowanych, a także podłożach elementów hybrydowych o różnych powierzchniach i grubościach fod 0,5 do 4,0 mm). Wszystkie zapewniają precyzję i powtarzalność operacji, różniąc się przede wszystkim stopniem automatyzacji, co przekłada się, z jednej strony - na osiąganą wydajność, z drugiej - na cenę zakupu.
Korzystając z produktów APS, można zestawić wiele wariantów kompletnych linii, na których przeprowadzane są operacje przycinania i kształtowania wyprowadzeń elementów i układów, nanoszenia masek, pasty lutowniczej i kleju na płytki drukowane, umieszczania elementów i układów na płytkach oraz lutowanie. Dostępne są także urządzenia do demontażu (napraw) i pomocnicze, jak np. liczarki komponentów.
Systemy i urządzenia pick & place
Najbardziej zaawansowaną technicznie, a chyba i najciekawszą grupę stanowią automaty pick &- place, zgrupowane w typoszeregu "L" (fot 1). Ich pod-
Techniczne możliwości maszyn i urządzeń wykorzystywanych w produkcji decydują o osiąganych poziomach złożoności, precyzji i wydajności procesów technologicznych, a w końcu - o jakości wyrobów. Na rynkowy sukces produktu składają się jednak nie tylko jego bezwzględne walory, ale -w znacznej mierze - jakość odniesiona do ceny.
stawowe zalety wynikają z uniwersalności i elastyczności, precyzji i szybkości działania oraz możliwości sterowania z poziomu PC.
Do dyspozycji użytkownika pozostają podajniki taśmowe, listwowe, tackowe i -opcjonalnie - wibracyjne. Umożliwiają one pobieranie i układanie elementów, takich jak: 0201, 0402, 0603, 0805, 1206, melf, SO-28 do SO-8, SOT, SOIC, (fine piich) QFP, EGA, PLCC i wielu innych. Maksymalna liczba jednocześnie pracujących podajników jest równa 32 dla modelu L20, 64 dla L40 i aż 96 - dla L60; wartości te odnoszą się do taśmy 8 mm.
Standardowo są zainstalowane cztery (opcjonalnie 8) głowice podciśnieniowe, zasilane z wbudowanego kompreso-ra, są wybierane automatycznie w trakcie pracy, umożliwiając pobieranie i układanie różnych elementów bez potrzeby przerw na zmianę oprzyrządowania. Pozycja elementu/układu względem chwytaka może być kontrolowana za pomocą lasera. Wysoka rozdzielczość charakteryzująca ruchy głowicy wzdłuż osi X, Y i Z (rzędu 4 |_irn) oraz możliwość orientowania elementu w dowolnym kierunku z krokiem 0,18 l_irn, decydują o wysokiej precyzji pozycjonowania, wynoszącej ą0,001" (ą25,4 Lim).
Automaty serii "L" mogą pracować z układami o rastrze 15 mils (0,384 mm). Ich maksymalna wydajność dochodzi do 4800 cph (chip per *___ hour).
Oprogramowanie automatów serii "L", umożliwiające sterowanie, kontrolę i au- todiagnostykę, jest otwartym, wygodnym w użyciu narzędziem, pozwalaj ącym na sprawne wprowadzanie programu pracy i szybkie dokonywanie żądanych modyfikacji. Sterowanie może działać autonomicznie (urządzenie pracuje niezależnie) albo współpracować z innymi systemami, tworząc linię produkcyjną o optymalnej wydajności. Interesującą cechą jest także źródło zasilania maszyn - prąd zmienny 230V,
tak, więc te zaawansowane systemy nie wymagają odrębnej instalacji
pneumatycznej.
Czym różnią się modele L20, L40 i L60 poza wspomnianą maksymalną liczbą wykorzystywanych równocześnie podajników? Wymiarami i masami, co nie jest najbardziej istotne, a także możliwościami odnośnie maksymalnych wymiarów "obsługiwanych" płyt (od 343x305 mmm dla L20, do 343x813 mm dla L60), a także cenami. Te ostatnie można jednak en hloc uznać za atrakcyjne, co - w połączeniu z niewielkimi kosztami użytkowania - istotnie przyczynia się do obniżenia kosztów produkcji.
Kto planuje przedsięwzięcie na nieco mniejszą skalę, powinien zwrócić
Fot, 2, System MPP-VC służqcy do wideoinspekcji
Fot. 3. Programowalny dozownik kleju/pasty GDV-20 z pesetg próżniowg
Fot. 1. Automat Pick & Place LóO
Elektronika Praktyczna 4/2003
69
SPRZĘT
Fot. 4. Drukarka szablonowa SPR-45
uwagę na automaty APS P20/P40: są one mniejsze, lżejsze, mają trochę, mniej "wyśrubowane" parametry. Na przykład maksymalna wydajność wynosi tu 1500...2500 cph, dokładność pozycjonowania ą0,005", a minimalny raster - 20 milsów. Liczby podajników mogących pracować równocześnie wynoszą 48 i 80, odpowiednio dla P20 i P40 ftaśma 8 mm). Podobnie jak w serii "L", przewidziano tu zasobniki i podajniki do wielu rodzajów elementów. Są też zintegrowane kompre-sory.
Sterowanie automatami P20/P40 odbywa się dzięki wbudowanemu komputerowi, którego oprogramowanie pozwala na łatwe wprowadzanie danych. Opcjonalnie możliwe są translacja i transfer danych z programów GAD. Producent podaje, że liczba możliwych do zapamiętania programów jest praktycznie nieograniczona.
Do rodziny systemów pick &- place należą jeszcze rn.in.: - półautomatyczny, niewielki system MlO, wyposażony w samouczące oprogramowanie sterujące, zapamiętujące i odtwarzające sekwencję czynności przeprowadzonych przez operatora na pierwszym, modelowym obwodzie. Pracę operatora na tym etapie ułatwia oryginalny system audiowizualnej sygnalizacji.
- ręczne systemy MPP20/21 i MPPlO/11 gwarantujące precyzję działania, dzięki ergonomicznej konstrukcji, zapewniającej zawsze właściwe podparcie dla ręki (istnieje możliwość szybkiego przestawienia urządzenia do obsługi leworęcznej). Wersje "21" i "11" są wyposażone w sterowane cyfrowo dozowniki kleju lub pasty, mogące pracować w trybach: ręcznym, półautomatycznym, automatycznym i sarno-uczącym.
- oprzyrządowanie i wyposażenie dodatkowe, jak np. system MPP-VC do wideoinspekcji (fot 2) czy programowalny dozownik kleju/pasty GDV-20 z pęsetą próżniową do pozycjonowania elementów (fot 3).
Drukarki Szablonowe
Drukarki szablonowe są w ofercie APS reprezentowane przez pięć modeli: od ekonomicznej ręcznej SPR-10, do zautomatyzowanej i samopoziomującej SPR-45 (fot. 4). Maksymalne wymiary obszaru druku wynoszą od 305x380 mm do 406x457 mm.
Urządzenia są przeznaczone do obsługi mało- i średnioseryjnej produkcji, zapewniają dokładność, powtarzalność i niezawodność działania. Ich ważną zaletę stanowi możliwość pracy z szablonami foliowymi fbez ramek), co jest potencjalnym źródłem znaczących oszczędności.
Krępownice
Na etapie przygotowania do montażu niezbędne są krępownice - urządzenia służące do przycinania i formowania wyprowadzeń wielu elementów i układów, zwłaszcza przeznaczonych do montażu przewlekanego.
APS oferuje ponad 30 takich przyrządów w wersjach ręcznych (fot. 5) i automatycznych (fot. 6). Przewidziano możliwość obróbki elementów z wyprowadzeniami osiowymi, promieniowymi (przygotowanie zarówno do montażu poziomego, jak i pionowego), a także układów w obudowach dwurzędowych DIP.
Piece rozplywowe
Lutowanie w wydaniu APS to proces przebiegający zgodnie z zaprogramowanym profilem termicznym, odbywający
Fot. 5. Automat do krępowania elementów ze sterowaniem ręcznym
Fot. ó. Automat do krępowania elementów ze sterowaniem automatycznym
Fot. 7. Piec GF-12A do lutowania rozpływ owego
się we wnętrzu jednego z czterech oferowanych obecnie pieców serii "GF" (fot. 7). Elementy grzejne pieca (konwekcyjne) są rozmieszczone tak w górnej, jak i dolnej części komory, tworząc strefy nagrzewania. Komora jest wykonana ze stali nierdzewnej. Osiągnięcie równomiernego rozkładu temperatur w płycie PCE zapewnia opatentowany system Cyclonic wymuszający ruch powietrza (albo azotu). Odpowiednio rozlokowane term o pary, współpracują z komputerowym sterownikiem. Na życzenie firma wyposaży urządzenie w promienniki podczerwieni - jest to jednak rozwiązanie wybierane coraz rzadziej. Operator ma wszakże możliwość obserwacji procesu przez duży wziernik znajdujący się na górnej ścianie komory - jej wnętrze jest oświetlone. Tuż za wyjściem z tunelu pieca znajduje się strefa chłodzenia, gdzie przebiega ostatnia faza lutowania. Płyta poddawana powyższym zabiegom przesuwa się na szerokim (305 mm) transporterze. Oprogramowanie pozwala m.in. na wprowadzenie i zapamiętanie do 100 profili, zaprogramowanie timera (do 7 dni), monitorowanie i raportowanie usterek zgodnie z ISO9000 SPC, ochronę wprowadzonych danych hasłem.
Poznawszy szczegółowe specyfikacje opisanych wyżej systemów i urządzeń, można dokonać rzetelnej oceny, które z nich najlepiej wpisują się w potrzeby planowanej lub prowadzonej produkcji.
Konstrukcja oferty APS sprzyja optymalizacji procesów i ekonomizacji posunięć inwestycyjnych, a oszczędna eksploatacja i wysoka bezawaryjność urządzeń są kolejnymi krokami w kierunku zawsze pożądanym - redukcji kosztów. Marek Kalasiński
Dodatkowe iiformacje
Artykuł powstat na bazie materiałów udostępnionych przezfirrnę Renę*, Tel,/lax: (54) 231-10-05, 411-25-55, www.renexcorn.pl.
70
Elektronika Praktyczna 4/2003
Aułoroułer
PROGRAMY
Zanim zaprezentujemy możliwości autoroutera pod kątem rozmieszczania elementów warto przypomnieć wspomnieć, że - jak już wspomnieliśmy w poprzedniej części artykułu
- rozmieszczanie elementów na płytce składa się z czterech podstawowych etapów: ustalenia reguł projektowych, rozmieszczenia elementów krytycznych, rozmieszczenia elementów "dużych" oraz rozmieszczenia elementów "małych". Specctra bazuje w tym wypadku na liczbie wyprowadzeń elementu. Jako "duże" są traktowane te elementy, które posiadają cztery lub więcej wyprowadzeń. Ponieważ aplikacja po uruchomieniu domyślnie ustawiana jest w trybie routera (Rouie Modę), przed przystąpieniem do rozmieszczania elementów konieczne jest przełączenie programu w tryb Place Modę. Zadanie to realizowane jest za pomocą ikony Place Modę znajdującej się na pasku narzędzi. Podstawowe opcje związane z automatycznym i interaktywnym rozmieszczaniem ustawiamy w oknie Placemeni Setup (rys. 1). Możemy je wywołać za pomocą polecenia Setup z poziomu Menu>Au-ioplace. Jednymi z parametrów, które rzutują na pracę Specctry na etapie rozmieszczania elementów są:
- PCB Placemeni Grid - parametr globalny: minimalny raster siatki referencyjnej odnoszący się do wszystkich elementów, zarówno SMD jak i zwykłych. Wartość 0 oznacza, że siatka nie została zdefiniowana.
Ś
FibttbUi
1
1


t* |~wTl emu | |
Rys. 1. Widok okna Placement Setup
Placement Spacing - parametr globalny: minimalne odstępy stosowane względem wszystkich komponentów na druku. Wartość -1 oznacza, że parametr ten nie został zdefiniowany. Odstępy możemy tu definiować osobno dla obu stron płytki.
Zwracamy uwagę, że definiowanie siatki w odniesieniu do rozmieszczenia elementów nie zawsze jest konieczne. Jeżeli nasz projekt wymaga ustawienia siatki rastra możemy wykorzystać do tego celu opisywane okno Placement Setup lub skorzystać z polecenia Menu>Define>Design grids i ustawić siatkę w oknie De-sign grids (rys. 2) zakładki Placemeni. W drugim przypadku mamy możliwość ustawienia globalnej siatki osobno dla elementów typu SMD jak i przewlekanych, a także ustawienia jej dla konkretnych typów komponentów.
Powróćmy jeszcze na chwilę do okna Placemeni Setup. Poszczególne zakładki tego okna umożliwiają modyfikacje kilku innych właściwości środowiska takich jak np.:
- włączenie lub wyłączenie prowadnic kursora ułatwiających precyzyjne rozmieszczanie komponentów,
- włączanie lub wyłączanie kontroli reguł projektowych High Speed związanych z wytyczaniem ścieżek już na etapie rozmieszczania komponentów (tylko w przypadku rozmieszczania automatycznego),
- zmianę punktu referencyjnego względem którego możemy automatycznie wyrównywać położenie określonych grup komponentów (więcej na ten temat w kolejnej części artykułu),
- określanie kierunku "przesuwania" elementu(-ów) umieszczonych na płytce w przypadku, gdy aktualnie dodawany powoduje z nim kolizje,
- ustalenie parametrów dotyczących działania funkcji Move Compo-neni. W przypadku ręcznego, układania elementów możemy np. zablokować płaszczyznę X tak, że przesuwanie elementów w tej płaszczyźnie nie będzie możliwe,
Zapraszamy do lektury
kolejnego artykułu z cyklu,
w którym prezentujemy
autorouter Specctra.
W dzisiejszym odcinku
przybliżymy te opcje
Specctry, które związane
są z działaniem programu
w trybie Place Modę.
- ustawienie parametrów związanych z działaniem funkcji Move Compo-neni w zakresie już wytyczonych ścieżek. W przypadku przesuwania komponentu do którego ścieżki zostały już wytyczone możemy np. nakazać ich zrywanie, automatyczne odbudowywanie z uwzględnieniem ich optymalizacji, częściowe zrywanie w zależności od tego po której płaszczyźnie przesuwamy element,
- ustalenie miejsca w którym kursor będzie "trzymał" komponent w momencie jego przesuwania, obracania itp.,
- ustawienie właściwości funkcji Measure wyświetlającej współrzędne wskazanego punktu na płytce, odległości pomiędzy dwoma wskazanymi punktami lub zestawu informacji na temat wskazanego elementu.
Tak jak wcześniej wspomnieliśmy Specctra umożliwia zadanie reguł projektowych które mogą być stosowane zarówno na etapie rozmieszczania elementów jak i na etapie wytyczania ścieżek. Ponieważ aplikacja stosuje reguły projektowe w sposób hierarchiczny, o czym była mowa w poprzedniej części artykułu, użytkownik może zadawać je globalnie w stosunku do całego projektu lub do specyficznych grup elementów czy obszarów tworzonego obwodu drukowanego. Dostęp do ustawień reguł dotyczących poszczególnych "poziomów hierarchii" odbywa się z poziomu Menu>Rules. Generalnie, reguły które mogą być ustawiane przez użytkownika to:
- Minimum permiiied spacing - minimalne odstępy pomiędzy komponentami, lub pomiędzy komponentami, a zdefiniowanymi przez projektanta obszarami zabronionymi (obszarami płytki w których nie
Elektronika Praktyczna 4/2003
71
PROGRAMY
"aderuel
m
u
i namtHrm
1
po mi
i fani 1
1
"I W*
Rys. 2. Okno Placement Setup, w którym jest definiowana m.in. siatka rastra
powinny być zlokalizowane komponenty). Reguła ta stosowana jest zarówno podczas automatycznego jak i ręcznego rozmieszczania elementów. Możemy definiować ją globalnie pod katem wszystkich elementów projektu, jak również oddzielnie dla określonych grup elementów lub obszarów płytki. W drugim przypadku kontrolowany jest minimalny odstęp pomiędzy elementami danego typu, a elementami tego samego lub innego typu lub obszarami zabronionymi określonymi przez użytkownika, przy czym odstęp może być definiowany oddzielnie dla obu stron płytki. Okno umożliwiające zadanie opisywanych parametrów w odniesieniu do PCB (najniższy poziom w hierarchii) pokazano na rys. 3. W przypadku wyższych poziomów takich jak image set, image, component, czy też room (pojęcia opisywane w poprzednim odcinku), parametr ten definiowany jest w oddzielnych oknach. Należy w tym miejscu zwrócić uwagę, że opisywana wcześniej metoda ustawienia minimalnych odstępów za pomocą okna Place-ineni Setup dotyczy globalnych ustawień środowiska, a parametry zadane w tym oknie są nadpisy-wane przez te które zostaną zdefiniowane w ramach opisywanej reguły.
- Periniiied orientations - orientacja elementu(-ów). Reguła ta determinuje dozwoloną orientację elemen-tu(-ów): poziomą, pionową lub
W: |
ŚŚPil ĆOBtfTffl PIH I PTHPtp BlOPW)
EHD
Mit M l>
r PThPlm aKJAa
LND
ŚPTI l-i
FPOHT
ruartrU
II. * *" II |7 -F. *"Ś r o r ^n r iso
EK | MOI 1 c | w |
Rys. 3. Okno definicji odstępów pomiędzy obiektami PCB
Rys. 4. Okno definicji reguł łqczenia PCB
specyfikowaną przez zadany kąt obrotu. Podobnie jak w przypadku odstępów reguła ta może być definiowana globalnie dla wszystkich elementów oraz oddzielnie dla określonych grup elementów (np.: przewlekanych, SMD) i określonych obszarów płytki dla różnych poziomów hierarchii. Tak jak poprzednio orientacja elementów może być definiowana dla obu stron druku. Okno umożliwiające ustawienie tej reguły na poziomie PCB pokazano na rys. 4. Permitted sides - reguła umożliwiająca ustalenie na której stronie płytki mogą być umieszczane elementy w trybie auto lub ręcznym. Domyślnie udostępnione są obydwie strony. Reguła, jak i dwie poprzednie, może być zastosowana dla każdego z poziomów hierarchii.
Opposite sides - reguła pozwalająca na określenie które z komponentów mogą być umieszczone front io back, czyli w tej samej lokalizacji (w tych samych współrzędnych) ale po przeciwnych stronach płytki. Reguła ta klasyfikuje elementy na dwa typy: duże lub małe w zależności od liczby pinów, w związku z czym możemy rozpatrywać dowolną kombinację następujących wariantów: Large-Large, Large-Small, Smali-Smali.
Zgodność wszystkich "posunięć" projektanta z zestawem wcześniej określonych reguł projektowych kontrolowana jest automatycznie na początku każdej sesji oraz przy każdej operacji związanej z rozmieszczaniem elementów lub wytyczaniem ścieżek. W przypadku manualnej "obróbki" projektu każda operacja powodująca kolizję ze względu na przekroczenie reguł sygnalizowana jest w oknie Ouipui Window i właściwie niemożliwa do wykonania. Dzieje się tak jednak tylko w przypadku gdy włączona jest funkcja Checking odpowiedzialna za auto-kontrolę. RK
D o dat ko we i nf o rma ej e
Więcej informacji można uzyskać w firmie RK-System, www.rk-system.com.pl.
72
Elektronika Praktyczna 4/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 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,
Lampómittari
Czyli najprostszy termometr cyfrowy na PC
Dołączenie układów
z interfejsem 1-Wire do
PC nie jest zadaniem
trudnym, ponieważ
firma Dalias
Semiconductors (teraz
Maxim) zadbała
o komfort użytkowników
i udostępniła
dokumentacje prostego
interfejsu RS232<->1-
Wire. Nieco hardziej
kłopotliwe jest
oprogramowanie tego
interfejsu i oczywiście
napisanie aplikacji,
która będzie spełniała
nasze wymagania.
Jednymi z najpopularniejszych układów z interfejsem 1-Wire są czujniki temperatury DS1320 i pochodne. Charakteryzuje je względnie dużą dokładność pomiarów i nieprawdopodobna wręcz wygoda aplikowania - nie wymagają one bowiem odrębnego zasilania.
Niezwykle użyteczną, a przy tym elektrycznie "mini-projektową" aplikację tych układów opracował Fin Timo Sara-aho, a nosi ona nazwę Lampómittari (po fińsku po prostu termometr). Część sprzętowa termometru to po prostu standardowy adapter RS232<->l-Wire firmy Dallas-Maxim (np. DS9097 - rys. 1), a cała "siła" urządzenia została zaimplementowana w oprogramowaniu, które nosi właśnie nazwę Lampómittari.
Do interfejsu można dołączyć dowolną liczbę układów, jedynym ograniczeniem jest pojemność przewodów łączących je z interfejsem. Zbyt duża może uniemożliwić działanie układu, nato-
Za miesiąc dokładny opis
Możliwości programu Lampómittari są
tak duże, że opisanie ich w ramach
Miniprojektów nie jest możliwe,
Z drugiej strony niewątpliwa
przydatność tego programu powoduje,
że dokonaliśmy śmiałego założenia, iż
program będzie się cieszył sporą
popularnością i już za miesiąc
szczegółowo je opiszemy.
miast oprogramowanie samoczynnie rozpoznaje dowolną liczbę dołączonych układów DSl3x20.
Jest ono dystrybuowane bezpłatnie i można je ściągnąć ze strony hiip:// www.sunpoin i.neif~iher-inoineierf. Autor zadbał o przygotowanie wielu wersji językowych tego oprogramowania (w tym wersji polskiej). Biorąc dodatkowo pod uwagę jego ogromne możliwości i elastyczność mogę śmiało stwierdzić, że Lampómittari jest rozwiązaniem lepszym
od wielu opracowań komercyjnych.
Oprogramowanie obsługuje trzy wersje układów DS1820: standardową oraz dwie zmodernizowane: 13S20 i 13B20. Wyniki pomiarów są wyświetlane na wiele predefiniowa-nych sposobów (przykłady pokazano na rys. 2), ale użytkownik ma możliwość stworzenia własnych tablic prezentacyjnych z wykorzystaniem dowolnych zdjęć lub rysunków (np. pieca CO z zaznaczonymi punktami pomiarowymi lub plan mieszkania z wyświetlonymi wartościami temperatur). Szczegółowy opis możliwości programu przedstawimy za miesiąc. Piotr Zbysiński, AVT piotr.zbysinski@ep.com.pl
rsoo
WYKAZ ELEMENTÓW
Adapter R$232<-> 1-Wire Rezystory
Rl: lLkO Półprzewodniki
Dl: diodo Zenero 3,9V/
500mW
D2: diodo Zenero Ó,2V/
200mW
D3, D4: BAT85
Różne
Jl: złgcze DB9F
UUU
Rys. 2
Rys. 3
Elektronika Praktyczna 4/2003
75
MINIPROJEKTY
Zabezpieczenie przed odwrotną polaryzacją
Przy uruchamianiu
urządzeń często
zachodzi potrzeba
dołączania i odłączania
napięcia zasilającego, co
niesie ze sobą ryzyko
odwrotnego dołączenia
tego napięcia,
a w konsekwencji
uszkodzenia pracujących
układów. Także podczas
użytkowania urządzeń
zasilanych bateryjnie
istnieje duże ryzyko
odwrotnego podłączenia
ogniw zasilających.
1N4O07
T
Ś BT
Aby uniknąć przykrych skutków związanych z niewłaściwą polaryzacją, najlepiej jest zastosować zabezpieczenie, które uchroni urządzenie w przypadku błędnej polaryzacji. Na rys. 1 przedstawiono różne sposoby realizacji takiego zabezpieczenia. Wszystkie rozwiązania umożliwiają "przepuszczania" prądu tylko w jedna stronę, różnią się jednak spadkami napięć na elementach zabezpieczających, a tym samym możliwościami stosowania ich w różnych urządzeniach. Test wszystkich układów został przeprowadzony przy napięciu zasilania równym 9 V, a prąd pobierany przez odbiornik wynosił 200 mA.
Na rys. la przedstawiono typowy układ z diodą prostowniczą. Gdy polaryzacja jest prawidłowa (do anody jest dołączony plus zasilania), to dioda przewodzi i odbiornik zostaje zasilony. Ze względu na zastosowanie diody krzemowej na jej strukturze powstaje spadek napięcia
1N5817
RL
I
BT
d)

T
IRF9540 t 1
ą. BT

równy 0,8 V. Przy wykorzystaniu tego układu w urządzeniu zasilanym bateryjnie jest to znaczny spadek i w zasadzie układ ten nadaje się jedynie do urządzeń zasilanych z zasilacza.
Układ przedstawiony na rys. lb działa na tej samej zasadzie jak układ z rys. la, lecz dzięki zastosowaniu diody Schottky'ego spadek napięcia jest mniejszy i wynosi 0,35 V.
Na rys. lc przedstawiono takie nieco inny sposób włączenia diody, dzięki któremu nie ma żadnego spadku napięcia. Układ ten szczególnie nadaje się do zastosowania w układach zasilanych bateryjnie, gdyż nie wprowadza żadnych strat, a odwrotne podłączenie baterii spowoduje, że cały prąd popłynie przez diodę, powodując przepalenie bezpiecznika F.
Innym sposobem zabezpieczenia jest zastosowanie tranzystora polowego, który zapewnia uzyskanie niewielkiego spadku przy jego szeregowym włączeniu z napięciem zasilania. Na rys. id
rl
RL
Rys. 1. Sposoby zabezpieczania urzgdzeń przed odwrotng polaryzacjg
przedstawiono układ z zastosowaniem tranzystora MOS z kanałem typu P. Tranzystor ten jest włączony w obwód "plusa" napięcia zasilającego. W przypadku prawidłowej polaryzacji napięcia zasilającego prąd płynie poprzez diodę znajdującą się we wnętrzu tranzystora oraz przez kanał tranzystora, który jest w stanie przewodzenia, gdyż jego bramka (G) jest na niższym potencjale niż źródło (S). Tranzystor IRF9540 w stanie przewodzenia ma rezystancję pomiędzy źródłem (S) a drenem (D) równą około 0,15 D, co przy pobieranym prądzie przez odbiornik powoduje spadek napięcia wynoszący 30 mV. Jest to znacznie mniejsza wartość niż w przypadku zastosowania szeregowo włączonej diody. Układ nadaje się więc do urządzeń zasilanych bateryjnie i ma przewagę nad układem pokazanym na rys. lc, gdyż odwrotne podłączenia baterii nie powoduje ich rozładowania.
Inną konfiguracją zabezpieczenia przed odwrotną polaryzacją jest wykorzystanie tranzystora MOS typu N. Układ taki przedstawiono na rys. le. Podobnie jak w poprzednim układzie tranzystor jest włączony w szereg, ale w "minusie" zasilania. Zasada działania tego zabezpieczenia jest taka jak poprzednio, jednak zastosowany tranzystor BUZllA charakteryzuje się mniejszą rezystancją dren-źródło, która wynosi 0,045 Q. Stosowanie układów z tranzystorami MOS wymaga, aby napięcie zasilające było wyższe od około 4 V. Krzysztof Ptawsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Elektronika Praktyczna 4/2003
SPRZĘT
Nowoczesne akumulatory
Sposoby tadowania i obstuga
Dostajemy wiele pytań związanych z ładowaniem współczesnych akumulatorów różnego typu. Zagadnienie jest rzeczywiście złożone, ponieważ różnorodność dostępnych na rynku odnawialnych źródeł zasilania jest ogromna, a dostępnych informacji stosunkowo niewiele.
W artykule odpowiemy na pytania pojawiające się najczęściej
w listach nadsyłanych do redakcji.
Pytanie o dobór, warunki eksploatacji i sposoby tadowania akumulatorów powraca systematycznie w różnych wariantach, Odpowiedź na nie jest o tyle istotna, że sposób traktowania wpływa na trwałość ogniw a ta przekłada się bezpośrednio na wymierne koszty ich stosowania.
Opracowując poniższe wyjaśnienia korzystałem z materiałów aplikacyjnych kilku znanych producentów. Trzeba jednak zauważyć, śe publikowane zalecenia, jakkolwiek są zgodne w sprawach podstawowych, to mogą się istotnie różnić w szczegółach podkreślających technologiczne osiągnięcia danej firmy. Dlatego ten tekst należy traktować jako próbę omówienia pewnego standardu. Natomiast projektując urządzenie przeznaczone do produkcji seryjnej lub przewidziane do pracy w ekstremalnych warunkach warto szczegółowo prześledzić noty aplikacyjne udostępnione przez producenta posiadanych ogniw.
Na wstępie jeszcze kilka słów wyjaśnienia. Otóż w technice akumulatorowej powszechnie przyjęło się podawanie prądów ładowania/rozładowania jako wielkości względnej, odniesionej do znamionowej pojemności ogniwa. Stąd oznaczenie 1C oznacza prąd w |mA] liczbowo równy pojemności a-kumulatora w [mAh] (tzw. prąd jednogodzinny). Analogicznie C/10 oznacza prąd dziesięciogodzinny itp. Przymknijmy oko na istniejącą tu niezgodność jednostek.
Rodzaje akumulatorów
Można przyjąć że do zasilania urządzeń elektronicznych stosuje się obecnie wyłącznie ogniwa szczelnie zamknięte, nie uwalniające w trakcie normalnej eksploatacji, żadnych substancji mogących działać korozyjnie na otoczenie. Spośród rodzajów, dostępnych dla zwykłego śmiertelnika, należy zatem wziąć pod uwagę akumulatory:
- zasadowe, niklowo-kadmowe (Ni-Cd) i niklowo-wodorkowe (Ni-MH),
- kwasowe, ołowiowe (Pb, Lead-AcidJ z elektrolitem żelowanym lub absorbowanym na separatorach z włókna szklanego,
- alkaliczne, cynkowo-manganowe, ła-dowalne, wykonane w technologii RAM [Rechaigeahle Alkaline Modu-
- litowo-jonowe (Li-Ion) z elektrolitem ciekłym, oraz najmłodsze na rynku akumulatory litowo-polimerowe (Li-Po) z elektrolitem w postaci stałego polimeru.
Akumulatory Ni-Cd i Ni-MH
Ze względu na podobieństwo konstrukcji oraz warunków eksploatacji oba rodzaje można omówić jednocześnie, podkreślając istotne różnice, występujące m.in. w sposobie ładowania.
Pod względem budowy, akumulatory cylindryczne - a z takimi spotykamy się najczęściej - mają postać zwij-ki złożonej z dwóch elektrod przedzielonych separatorem nasyconym elektrolitem. Rolę elektrolitu pełni stężony wodorotlenek potasowy z dodatkami uszlachetniającymi. W obydwu typach ogniw elektroda dodatnia (+) ma postać porowatego spieku z metalicznego niklu wiążącego właściwe substancje aktywne (związki niklu). Zasadnicza różnica w budowie dotyczy
natomiast elektrody ujemnej. W ogniwach Ni-Cd substancje aktywne (kadm i jego związki) mają postać pasty za-prasowanej na perforowanym metalowym nośniku. Natomiast w ogniwach Ni-MH elektrodę ujemną tworzy stop metali charakteryzujący się wysoką zdolnością absorbcji wodoru. Skład stopu został tak dobrany, aby proces wiązania wodoru był neutralny ener-getycznie (tzn. ani endo- ani egzotermiczny) i zachodził samoistnie w temperaturze pokojowej. Obecnie są najczęściej stosuje się stopy niklu z rzadkimi metalami z grupy lantanowców (np. LaNisJ.
Z punktu widzenia elektrochemii, w całkowicie rozładowanym ogniwie elektroda dodatnia składa się z wodorotlenku niklawego - Ni(OH)2 zawierającego nikiel w stopniu utlenienia Ni2ł. Natomiast elektrodę ujemną tworzą:
- w ogniwie Ni-Cd: wodorotlenek kadmowy Cd(OH)2,
- w ogniwie Ni-MH: stop metali - nie-wysycony wodorem.
Podczas ładowania, na elektrodzie dodatniej wodorotlenek niklawy Ni(OH)2 przechodzi w tlenowodorotle-nek niklowy NiO(OH) co odpowiada utlenieniu niklu ze stopnia Ni2ł do Ni3 + .
Natomiast na elektrodzie ujemnej:
- Ni-Cd: wodorotlenek kadmowy Cd(OH)2 ulega redukcji do metalicznego kadmu (redukcja Cd2ł do CdJ
- Ni-MH: wydzielający się gazowy wodór jest pochłaniany przez materiał elektrody tworząc wodorki metali.
Ładowanie i rozładowanie
Ładowanie nie może jednak trwać w nieskończoność. W pewnym momencie następuje wyczerpanie materiałów aktywnych z elektrod. Utrzymywanie dalszego przepływu prądu powoduje już tylko elektrolizę wody z wydziele-
Elektronika Praktyczna 4/2003
81
SPRZĘT
20 40 60 80 100 120 Stopień naładowania [%]
Rys. 1. Szybki wzrost temperatury ogniwa wynika z faktu, że moc absorbowana w ogniwie zaczyna być w całości zamieniana na ciepło
niem gazowego tlenu i wodoru a w konsekwencji wzrost ciśnienia wewnętrznego. Żeby uniknąć deformacji lub rozerwania obudowy stosuje się zawory wentylacyjne otwierające się przy założonym nadciśnieniu. Niestety utrata wody z elektrolitu jest nieodwracalna, dlatego też przeładowywanie powoduje szybką degradację akumulatora.
Podobnie szkodliwe jest głębokie rozładowanie, aż do odwrócenia polaryzacji ogniwa. Sugestie producentów różnią się jednak pod tym względem dosyć istotnie. Większość z nich kategorycznie zaleca unikanie inwersji, aczkolwiek np. firma Energizer w odniesieniu do jednej z serii akumulatorów Ni-Cd dopuszcza odwrotne przeładowanie ładunkiem sięgającym aż 50% pojemności znamionowej. Ogólnie jednak odwrócenie polaryzacji należy uznać za zjawisko niepożądane, prowadzące potencjalnie do nieodwracalnych uszkodzeń. Zwróćmy uwagę, że inwersja może nastąpić również w sposób całkowicie niezamierzony. Ogniwa połączone szeregowo w jednej baterii zawsze różnią się rzeczywistą pojemnością. W czasie głębokiego rozładowania najsłabsze z nich zostaną całkowicie rozładowane a następnie "na siłę" odwrócone przez pozostałe ogniwa z pakietu. Dlatego zaleca się u-nikanie rozładowania baterii N ogniw poniżej napięcia końcowego wynoszącego (według zaleceń firmy Panasonic):
N=1...6 N x 1,0 [V]
N=7...2O (N-l) x 1,2 [V]
Ładunek zgromadzony w ogniwie rozładowanym do poziomu 1,0 V ma już wartość szczątkową i w praktyce może być pominięty.
Wspólną wadą cechującą oba rodzaje ogniw jest stosunkowo duży współczynnik samorozładowania wynoszący ok. 1%/dobę w ogniwach Ni-Cd i ok. 1,5%/dobę w ogniwach Ni-MH. Ponadto współczynnik samorozładowania wzrasta wraz z temperaturą. Również
w tym przypadku dane podawane przez różnych producentów różnią się dosyć istotnie. W praktyce inżynierskiej można jednak założyć, że po trzech miesiącach przechowywania z akumulatora uda się odzyskać nie więcej niż 50% pierwotnej energii.
Z ogniwami Ni-Cd wiąże się legendarne pojęcie "efektu pamięciowego". Polega on na utracie pojemności w wyniku niepożądanej rekrystalizacji kadmu na elektrodzie ujemnej. Akumulator eksploatowany powtarzalnie w niepełnych cyklach "przyzwyczaja" się do wykorzystywanego zakresu pojemności. Zjawisko to jest w dużym stopniu odwracalne i ustępuje po kilkakrotnym wykonaniu pełnego cyklu roboczego. Z natury rzeczy efekt pamięciowy nie może zaistnieć w ogniwach Ni-MH. Natomiast wspólne dla obu typów jest inne zjawisko zwane efektem leniwej baterii [volta-ge depression). Polega ono, na niewielkim obniżeniu napięcia przy niezmienionej pojemności ogniwa. Spadek ten wynosi przeciętnie zaledwie kilkadziesiąt mV jednak, wobec stosunkowo płaskiej charakterystyki rozładowania, jest przez układy kontroli napięcia interpretowany jako przedwczesne rozładowanie - mimo, że nie została jeszcze wykorzystana cała dostępna pojemność. Okresowe wykonanie pełnego cyklu rozładowania/ładowania ma za zadanie "rozruszanie" akumulatora i (przynajmniej częściowe) przywrócenie jego pierwotnych parametrów.
Wrażliwość na przeładowanie udaje się ograniczyć dzięki specjalnej konstrukcji akumulatora. Otóż elektroda u-jemna jest zawsze nieco przewymiarowana względem elektrody dodatniej. Dzięki temu, w momencie wyczerpania pojemności elektrody niklowej, gdy zaczyna się wydzielać na niej gazowy tlen, elektroda ujemna dysponuje jeszcze pewną rezerwą pojemności. Wydzielony tlen dyfunduje w kierunku elektrody ujemnej gdzie zostaje zneutralizowany. Mechanizm ten skutecznie zapobiega uszkodzeniu akumulatora, jednakże tylko przy przeładowywaniu niewielkim prądem - co najwyżej 0,lC w ogniwach Ni-Cd a nawet 0,05C w Ni-MH. Według zapewnień jednego z producentów w ogniwach testowych Ni-Cd ładowanych prądem 0,1C jeszcze po dwóch latach nie stwierdzono istotnych uszkodzeń. Jednak, przy większych prądach ładowania, resorb-cja tlenu zachodzi ze zbyt małą wydajnością aby zapewnić jego 100% neutralizację. Stąd nasuwa się wniosek, że należy ciągle kontrolować stan ogniwa, tym precyzyjniej im szybciej
odbywa się ładowanie, po czym przerywać je natychmiast po wystąpieniu pierwszych oznak przeładowania. Niestety w praktyce rozpoznanie stanu naładowania okazuje się być dosyć trudne. W odróżnieniu od ogniw innych rodzajów, bezwzględne napięcie panujące na zaciskach akumulatora Ni-Cd lub Ni-MH nie niesie jednoznacznej informacji o stanie naładowania. Dlatego, zależnie od przyjętego trybu, zazwyczaj korzysta z jednej lub kilku następujących przesłanek:
- Upływ założonego z góry czasu ładowania.
- Szybki wzrost temperatury ogniwa wynikający z faktu, że moc dotychczas absorbowana w ogniwie zaczyna być w całości zamieniana na ciepło (rys. 1). Układy kontroli ładowania wyznaczają szybkość narastania temperatury (dT/dt) przerywając ładowanie po osiągnięciu wartości progowej (rzędu 1...2C/min). Jednocześnie, w wielu pakietach a-kumulatorowych montuje się bezpieczniki termiczne mające zapewnić dodatkową ochronę w razie przegrzania podczas ładowania lub w wyniku zwarcia.
- Napięcie ładowania. Podczas ładowania następuje stopniowy, nieliniowy wzrost napięcia ogniw (rys. 2). Z chwilą osiągnięcia stanu naładowania pochodna dV/dt zmienia znak, po czym następuje niewielki spadek napięcia (15...20 mV/ogniwo w Ni-Cd, 5...10 mV/ogniwo w NiMH). Jako kryterium przyjmuje się (w kolejności występowania): szybki wzrost nachylenia krzywej napięcia (metoda d2V/dt2), zmianę znaku pochodnej (metoda dV/dt) lub - z pewnym opóźnieniem - wykrycie spadku napięcia w wyniku przeładowania (-AV). Jako dodatkowe zabezpieczenie wykrywa się przekroczenie napięcia 1,8 V/ogniwo świadczące o wystąpieniu uszkodzenia (rys. 3). Zjawiska związane ze zmianą temperatury i napięcia występują w obu typach akumulatorów. Zwróćmy jednak uwagę, że ich wyrazistość zależy od
1.1
20 40 60 80 100 120 140 160 180
Stopień naładowania [%]
Rys. 2. Podczas ładowania następuje stopniowy, nieliniowy wzrost napięcia poszczególnych ogniw
Elektronika Praktyczna 4/2003
SPRZĘT
1.8V
"a
Rys. 3. Punkty charakterystyczne na krzywej ładowania Ni-Cd i Ni-MH
szybkości lądowania. Ładowanie zbyt małym prądem (poniżej 0,5C) może zakłócić działanie układów nadzorujących a w konsekwencji nadmiernie wydłużyć czas trwania procesu i spowodować zniszczenie ogniw. Dlatego w każdym przypadku powinno się stosować dodatkowe zabezpieczenia w postaci kontroli temperatury, napięcia i ograniczenia maksymalnego czasu ładowania.
Ładowanie akumulatorów niklowo-wodorkowych (w odróżnieniu od nik-lowo-kadmowych) jest procesem egzotermicznym, co powoduje stopniowy wzrost temperatury już od początku ładowania i maskuje interesujący nas przyrost końcowy. Jednocześnie mniejsza wartość końcowego spadku napięcia (-AV) sprawia, że podjęcie decyzji o zakończeniu ładowania Ni-MH jest znacznie trudniejsze niż w przypadku akumulatorów niklowo-kadmowych.
Zaleć ane tryby ładowania
Znając metody kontroli stanu ogniwa możemy przejść do zalecanych trybów ładowania.
Akumulatory Ni-Cd
- Ładowanie standardowe [standard charge) - stałym prądem o wartości O,1C w czasie 14 h. Nawet biorąc pod uwagę ograniczoną sprawność procesu ładowania, a także nie znając początkowego stanu ogniwa możemy mieć pewność że zostanie ono całkowicie naładowane. Z drugiej strony, przeładowanie prądem O,1C nie grozi uszkodzeniem, dlatego wystarczającym kryterium zakończenia jest upływ zadanego czasu.
- Ładowanie szybkie [fast charge) -stałym prądem w zakresie od 0,5C do 1C (w czasie ok. 2...1 h). Jako kryteria zakończenia ładowania najczęściej stosuje się warunek -AV (powoduje przeładowanie w granicach 10...20% pojemności znamionowej) lub korzystniejszy z punktu widze-
nia trwałości, ale trudniejszy w realizacji warunek dT/dt (przeładowanie w granicach 0...10%).
- Długotrwałe ładowanie konserwujące [trickle charge). Ma za zadanie m.in. uzupełnianie utraty ładunku wynikającej z samorozładowania. W zależności od rodzaju urządzenia stosuje się prąd ładowania w zakresie 0,02...0,05C.
Akumulatory Ni-MH
O ile zalecenia dotyczące ogniw Ni-Cd są raczej zbieżne, to szczegółowe opisy ładowania ogniw Ni-MH różnią się znacznie w zależności od producenta. Dlatego następujący opis jest jedynie wypadkową zaleceń pochodzących z różnych źródeł:
- Ładowanie szybkie [fast charge) prądem z zakresu 0,5...1C. Ze wspomnianych wyżej powodów zaleca się nie przekraczanie tych granic (również w dół!). Jeżeli temperatura ogniwa wykracza poza zakres 0...40C należy zrezygnować w trybu szybkiego. Ładowanie kończy
się po spełnieniu któregokolwiek z warunków: przekroczeniu napięcia 1,8 V/ogniwo, spadku napięcia (-AV) o wartości 5...10 mV/ogniwo, wzrostu temperatury w tempie 0,8...2C/min, przekroczenia dopuszczalnej temperatury (4 5...50C) lub przekroczenia
maxksymalnego czasu ładowania (np. 90 minut w trybie 1C).
- Ładowanie konserwujące
[trickle charge) prądem
0,033...0,05C.
Wspomniane zróżnicowanie może to świadczyć o ciągłym rozwoju technologii i umiejętnym podkreślaniu zalet własnych o- Rys 4 Przykładowy schemat automatycznej pracowań. Przykładowo, ładowarki akumulatorów Ni-Cd i NiMH
firma Energizer proponuje ładowanie trójstopniowe:
1) szybkie - prądem 1C do momentu spełnienia warunku dT/dt lub -AV,
2) uzupełniające, prądem 0,025C przez założony czas (2...3 h),
3) konserwujące, prądem o bardzo niewielkiej wartości (<0,01C).
Z drugiej strony firma Panasonic o-strzega przed nadmiernym (powyżej 10...20h) przedłużaniem ładowania konserwującego, zalecając jedynie o-kresowe doładowywanie ogniw (0,1C przez 16 h) po stwierdzeniu spadku napięcia poniżej progu 1.3V. Z kolei GP Batteries w karcie katalogowej jednego z akumulatorów Ni-MH (AA, 1500 mAh) informuje, że długotrwałe przeładowanie prądem 0,lC nie powoduje uszkodzeń.
Jak widać z powyższego ładowanie a-kumulatorów Ni-Cd, a tym bardziej NiMH jest procesem złożonym i trudnym w realizacji bez użycia specjalizowanych układów. Spośród całej gamy oferowanych scalonych kontrolerów ładowania wymienię jedynie kilka typów -dosyć popularnych, a jednocześnie dobrze ilustrujących powyższy opis:
- U2400B (Temic) - stosuje prostą metodę ładowania polegającą na ładowaniu stałym prądem, przez, z góry założony, stały czas (12h, lh, 0,5h). W celu unormowania stanu ogniwa mogą zostać wstępne rozładowanie. Nadzór akumulatora obejmuje jedynie wykrywanie przekroczenia dopuszczalnego napięcia i dopuszczalnej temperatury. Po zakończeniu ładowania następuje przejście do trybu konserwującego.
- U2402B (Temic) - zaawansowany u-kład kontrolera ładowania Ni-Cd
DC IN
Q1 2N6109
Elektronika Praktyczna 4/2003
83
SPRZĘT
i Ni-MH wykorzystujący metody d2V/dt2 oraz -AV. Dodatkowo nadzorowi podlega czas ładowania i maksymalna temperatura ogniwa. Po spełnieniu pierwszego warunku pierwotny prąd ładowania zostaje ograniczony do 1/4, po czym następuje spokojne doładowanie ogniwa, aż do osiągnięcia drugiego z warunków (lub ograniczenia czasowego).
- MAX712/MAX713 (Maxim - rys. 4) - podobny do poprzedniego układ kontrolera Ni-Cd i Ni-MH monitorujący wartość dV/dt. Zakończenie ładowania następuje po osiągnięciu zadanego nachylenia krzywej U(t), przekroczeniu temperatury lub dopuszczalnego czasu procesu.
- LM3647 (National Semiconductors) -uniwersalna ładowarka akumulatorów Ni-Cd, Ni-MH oraz Li-Ion. Jako kryterium zakończenia ładowania wykorzystuje metodę -AV oraz opcjonalnie - nachylenie charakterystyki temperaturowej dT/dt.
Podsumowanie
Można zadać pytanie dlaczego poświęcam tyle uwagi akumulatorom Ni-Cd? Zwłaszcza, że ogniwa Ni-MH
oferują większą pojemność jednostkową, nie zawierają toksycznego kadmu i skutecznie wypierają poprzedników z rynku. Otóż jak dotychczas, jedynie ogniwa Ni-Cd tolerują ekstremalne warunki eksploatacji. Standardowe wykonania akumulatorów Ni-Cd podobnie jak Ni-MH pozwalają na pracę z obciążeniem sięgającym 3C. Natomiast Ni-Cd w wykonaniach specjalnych, używanych np. do zasilania napędu modeli latających, dopuszczają ładowanie 15-minut o we prądem 4C i rozładowanie w ciągu pojedynczych minut prądami znacznie przekraczającymi 10C. Dla przykładu - o-ferowane przez GP ogniwa 130SCK (1300 mAh) i 200SCK (2000 mAh) o rozmiarze SC (nieznacznie mniejsze od rozmiaru C odpowiadającego R14) pozwalają na rozładowanie prądem ciągłym o natężeniu 29 A i chwilowym sięgającym 58 A (sic!). Marek Dzwonnik, AVT marek.dzwonnik@ep.com.pl
Reklama czołowego producenta akumulatorów i ogniw zasilających -firmy GP Batteries - znajduje się na stronie 74.
Odnośniki
Na zakończenie przytoczę garść odnośników do
najciekawszych materiałów internetowych zawierających informacje na poruszone tematy: Ogólne
* http://www.batteryuniversity.com Ni-Cd/Ni-MH
* http://www.panasonic.com/industrial/battery/ oem/chem/niccad/index.html
* http://data.energizer.com/batteryinfo/ application_manuals/nickel_cadmium.htm
* http://www.panasonic.com/industrial/battery/ oem/chem/nicmet/index.html
* http://data.energizer.com/batteryinfo/ application_manuals/nickel_metal_hydride.htm
Lead-Acid
* http://www.emu.com.pl/infosla.html
* http://www.mkbattery.com/pdf/GelBattery-Charging.pdf
* http://www.mkbattery.com/pdf/AGMBattery-Charging.pdf
RAM
* http://www.rayovac.com/busoem/oem/specs/ ren7.shtml
* http://web.tin.it/rmsjnternational/guide-page.html
Li-lon/Li-Po
* http://www.panasonic.com/industrial/battery/ oem/images/pdf/Panasonic_Lilon_-Overview.pdf
* http://www.batteryuniversity.com/partone-12.htm
* http://www.ulbi.com/whitepapers/UBI-5112_Li-ion_Li-Poly_Precautions.pdf
84
Elektronika Praktyczna 4/2003
KURS
Podstawy projektowania systemów mikroprocesorowych, część 2
W drugiej części artykułu przedstawiamy zagadnienia związane z zerowaniem oraz taktowaniem mikrokontrolerów. Zagadnienia te, dość często lekceważone, mają ogromny wpływ na jakość działania wszelkich urządzeń cyfrowych.
3, 2, 1T start!
Zerowanie mikro kontrolera
W każdym systemie wykorzystującym mikrokontroler musi istnieć układ zapewniający generację sygnału zerującego. W wyniku zerowania (RESET] wszystkie linie portów mikrokontrolera przyjmują stan 1, licznik rozkazów przyjmuje wartość OOOOh, rejestry SFR przyjmują odpowiednie dla siebie wartości początkowe. Minimalna długość trwania sygnału RESET wynosi 2 cykle maszynowe (24 takty zegara], zakładając, że układ jest zasilany i pracuje generator sygnału zegarowego. Jeśli zerowanie następuje przy włączeniu napięcia zasilania (lub jako wyjście ze stanu Power Down), to trzeba uwzględnić czas potrzebny na osiągniecie przez napięcie zasilania wartości nominalnej oraz czas wzbudzenia się generatora sygnału zegarowego - bezpieczny czas trwania impulsu RESET wynosi minimum 10 ms. Omawiane mikrokont-rolery firmy Atmel wymagają podania na wejście RST stanu 1 w celu wykonania operacji zerowania.
Wejście zerowania mikrokontrolerów '51 jest wejściem Schmitta, pozwala to na zastosowanie najprostszych układów zerowania w postaci obwodu RC (rys. 2 i 3, EP3/2003]. Możliwe jest wykorzystanie samego kondensatora, ponieważ mikro kontrolery Atmel posiadają wbudowany rezystor o wartości z przedziału
Rys. 4
20...300 kQ zwierający wyprowadzenie RST do masy. Duży rozrzut wartości tego rezystora nie pozwala na odpowiednie dobranie czasu zerowania - kondensator zalecany przez producenta w takim układzie pracy powinien mieć wartość 2,2 |_iF. Często wykorzystywaną parą elementów stanowiącą układ zerowania jest kondensator 10 |_lF i rezystor 10 kQ - wartości te zapewniają czasy zerowania w granicach 5 0... 70 ms (z uwzględnieniem wpływu wewnętrznego rezystora], co z odpowiednim zapasem spełnia warunek prawidłowego sygnału RESET.
Czasami zachodzi potrzeba ręcznego zerowania mikrokontrolera. Do tego celu wykorzystuje się układ zwierający kondensator obwodu zerowania w celu ponownego wprowadzenia stanu wysokiego na wyprowadzenie RST. Może to być wykonane zarówno przy pomocy przycisku, styku przekaźnika, jak i przy pomocy elementu elektronicznego - tranzystora. Nie zaleca się zerowania przez dołączenie do wyprowadzenia RST razem z obwodem RC wyjścia bramki układu cyfrowego CMOS czy TTL, a to ze względu na znaczny prąd rozładowania kondensatora - dołączona bramka nie ulegnie uszkodzeniu, jednak krótki impuls cyfrowy może nie dać rady rozładować kondensatora z powodu ograniczonej wydajności prądowej bramki. Jeżeli chcemy zastosować taki obwód, musimy zapewnić zerowanie przy włączeniu zasilania zrealizowane po stronie wejść dodatkowego układu cyfrowego (rys. 4). Wówczas wystarczy zewnętrzny impuls zerujący o wydajności zwykłej bramki cyfrowej - lecz musi on trwać minimum 2 cykle maszynowe. W przedstawionym układzie stanem aktywnym zewnętrznego impulsu RESET jest stan niski. W celu zapewnienia zerowania po włączeniu zasilania zastosowano podobny do standardowego obwód RC, lecz zamieniając miejscami elementy i uwzględniając w ten sposób negację wprowadzaną przez bramkę NAND. Z powodu małej szybkości narastania napięcia na kondensatorze konieczne jest zastosowanie bramki z wejściem Schmitta.
Warto wspomnieć, że istnieje wiele układów zerowania zbudowanych w postaci scalonej. Układy te monitorują na-
pięcia zasilania i w razie potrzeby generują sygnał zerujący o odpowiednich parametrach (np. DS1812, MAX810 i inne]. Schemat aplikacyjny układu DS1812 pokazano na rys. 5.
W układach pracujących z podtrzymaniem bateryjnym lub spełniających odpowiedzialne funkcje często stosuje się układy nadzorujące watchdog. Są to zazwyczaj odpowiednio zbudowane liczniki, które muszą być cyklicznie zerowane przez odpowiednie rozkazy programowe -zaniechanie zerowania przez dłuższy okres (np. w wyniku zawieszenia się procesora] powoduje wygenerowanie sygnału zerującego (RESET]. Choć układy takie wbudowane są w bardziej rozbudowane układy rodziny '51, to jednak "atmelowskie" wersje mikrokontrolerów '51 ich nie posiadają. Na szczęście można zbudować taki system, wykorzystując popularne układy cyfrowe. Podobnie jak w przypadku zerowania, także tutaj można zastosować jakiś specjalizowany układ scalony, najtaniej jednak jest użyć podzespołów powszechnie dostępnych i tanich. Na rys. 6 przedstawiony został układ zerujący wzbogacony o licznik realizujący funkcję watchdog. Wykorzystano tutaj popularny i niedrogi układ czasowy CMOS 4541, tranzystor PNP i kilka elementów R i C. Elementy R3, R4 iC2 stanowią obwód wyznaczający częstotliwość pracy wewnętrznego generatora. Wytwarzane przez niego impulsy są zliczane w liczniku, a przepełnienie licznika powoduje ustawienie wyjścia Q w stan niski, co spowoduje wy zerowanie procesora. Stopień licznika określony jest przez połączenie wyprowadzeń A i B. Dla układu przedstawionego na rysunku nie-zerowany licznik przepełni się po czasie około 0,5 sekundy. Wejście zerowania licznika watchdog sterowane jest z wy-
+5V
Rys. 5
Elektronika Praktyczna 4/2003
KURS
Rys. 6
prowadzenia P3.5 za pośrednictwem układu różniczkującego - układ zerowany jest przy narastającym zboczu sygnału na P3.5. Błędem byłoby bezpośrednie połączenie wyprowadzenia zerującego układu watchdog i wyprowadzenia procesora, ponieważ układ nie zadziałałby w przypadku zawieszenia się programu, gdy na P3.5 byłby stan wysoki (watchdog byłby cały czas zerowany).
Obsługa programowa układu nadzorującego watchdog polega na cyklicznym (częściej niż raz na 0,5 sekundy dla opisanego układu) generowaniu zbocza narastającego (impulsów), powodującego wyzerowanie licznika. Błędem jest użycie do tego celu podprogramu obsługi przerwania, gdyż mimo zawieszenia się programu głównego przerwania mogą nadal funkcjonować w pełni sprawnie. Najlepiej jest umieścić rozkaz negacji wyprowadzenia (lub rozkazy ustawiania i zerowania) w pętli głównej programu oraz w wywoływanych procedurach, jeśli mogą one realizować się dłużej niż czas potrzebny na przepełnienie licznika watchdog. Przykładowy program mógłby wyglądać tak:
PETLA_GL0WNA:
;(rozkazy w pętli głównej)
LCALL FUNKCJA1 ;wywołanie procedury "szybkiej"
(rozkazy w pętli głównej) LCALL FUNKCJA2
wywołanie procedury "szybkiej" CPL P3.5 ;negacja wyprowadzenia
sygnału zerującego
układ watchdog
(rozkazy w pętli głównej) LCALL FUNKCJA3
wywołanie procedury "wolnej" LJMP PETLA_GŁOWNA
skok do początku pętli głównej
Podprogram FUNKCJA3 należy zrealizować tak:
FUNKCJA3:
;(rozkazy danej funkcji) PĘTLA: SETB P3.5
ustawienie linii zerującej (rozkazy w pętli) CLR P3.5
wyzerowanie linii zerującej CJNE A,#25,PĘTLA
przykładowy warunek wykonywania pętli
(rozkazy danej funkcji) RET ;powrót do programu głównego
Należy pamiętać także o tym, że przedstawiony układ watchdog rozpoczyna pracę po włączeniu zasilania, więc rozkaz zerowania powinien być umieszczony także w części inicjującej procesor (rejestry, timery, itp.), szczególnie gdy procedury inicjujące są czasochłonne, np. zerowanie całej pamięci danych, odczyty nastaw z pamięci zewnętrznej lub inicjalizacja wolnych układów dołączonych do procesora. Jeżeli okaże się, że podprogram inicjujący ,,nie wyrobi się" w czasie potrzebnym na przepełnienie licznika watchdog, mikrokontroler będzie cyklicznie zerowany i program główny ,,nie ruszy".
Przy projektowaniu urządzenia nie należy zapominać, że układy zerujące i watchdoga powinny pracować wtedy, gdy pracuje mikrokontroler, więc jeśli korzystamy z obwodu zasilania awaryjnego, te układy muszą być zasilane również z układu podtrzymania napięcia zasilającego. W przeciwnym razie, w przypadku zaniku głównego napięcia zasilającego, mikrokontroler zostanie zablokowany przez stale podawany sygnał RE-SET lub zostanie pozbawiony nadzoru sprawowanego przez układ watchdoga.
W przypadku urządzenia zawierającego układy współpracujące wymagające zerowania wraz z mikrokontrolerem, sygnał zerujący można uzyskać z sygnału zerującego mikrokontroler. Najprościej jest to zrealizować w przypadku układu zerowania przedstawionego na rys. 4 -wystarcza wówczas bezpośrednie połączenie końcówek RESET wszystkich układów z końcówką RST mikrokontrolera (lub poprzez negator, jeżeli współpracujące układy są zerowane zerem logicznym). W pozostałych przypadkach należy zastosować bufor (lub jeżeli potrzeba negator) z wejściem Schmitta pozwalający na sterowanie wolnozmien-nym przebiegiem ładowania kondensatora. Jeżeli potrzebne jest zerowanie niezależne od wewnętrznego zerowania mikrokontrolera, to należy jako źródło sygnału zerującego wykorzystać jedną z linii portów i do niej dołączyć wyprowadzenia RESET współpracujących układów. Jeżeli aktywnym stanem wyprowadzeń RESET będzie stan wysoki, to układy zewnętrzne zostaną wyzero-wane również podczas zerowania mikrokontrolera - wszystkie linie portów ustawiane są wtedy w stan 1.
Elektroniczny Tam-Tam, czyli taktowanie mikrokontrolera
Każdy synchroniczny układ cyfrowy, a takim układem jest też mikrokontroler, potrzebuje do pracy sygnału taktującego (zegarowego) w celu synchronizacji przepływu informacji między poszczególnymi blokami. Sygnał zegarowy wyznacza również szybkość pracy mikrokontrolera. W większości mikrokontrolerów rodziny '51 cykl maszynowy trwa 12 cykli zegarowych, czyli rozkazy (te trwające jeden cykl maszynowy) są wykonywane z częstotliwością równą 1/12 częstotliwości generatora sygnału zegarowego.
Taktowanie omawianych mikrokontrolerów jest bardzo łatwe - wystarcza podłączenie do wyprowadzeń XTALl i XTAL2 rezonatora kwarcowego lub ceramicznego i dwóch kondensatorów (rys. 7). W przypadku rezonatorów kwarcowych producent zaleca dołączenie kondensatorów o pojemności 20 do 40 pF, dla rezonatorów ceramicznych - 30...50 pF. Czasami zdarza się jednak, że generator nie chce się wzbudzić - zwłaszcza dla kwarców o niskich częstotliwościach (np. popularny ,,zegarkowy" 32768 Hz) - najczęściej pomaga wtedy zwiększenie pojemności współpracujących kondensatorów (do np. 470 pF dla kwarców ,,zegarkowych") lub obniżenie (!) napięcia zasilania (co spraw-
=C1
=cz
CTAL2 GND
Cl, C2 - Z0...470pF (patrz tekst) Rys. 7
86
Elektronika Praktyczna 4/2003
KURS
Wejście sygnału
z zewnętrznego
generatora
)CTAL2
Rys. 8
dzono w praktyce). Zwiększanie pojemności pomaga również wtedy, gdy rezonator wzbudzi się na częstotliwości owertonowej. Częstotliwość taktowania dla najszybszych wersji AT89CxO51 i AT89C51 i 52 może przyjmować wartości od 0 do 24 MHz.
Projektując układ mikroprocesorowy często zależy nam na dużej dokładności częstotliwości sygnału taktującego, który może być wykorzystywany np. jako wzorzec częstotliwości do realizowanego na drodze programowej zegara czasu rzeczywistego. Częstotliwość wzbudzenia się rezonatora może różnić się od częstotliwości znamionowej i wtedy zrealizowany zegar będzie ,,spieszył" lub ,,spóźniał". W przypadku niewielkich odchyłek (np. dla zegara wynoszących kilka-kilka-naście sekund na dobę) należy dokonać korekty pojemności układu generatora -zwiększanie pojemności zmniejsza częstotliwość (spowalnia zegar). Jeżeli odchyłki są wyższe, to pomóc może szeregowe włączenie z rezonatorem indukcyj-ności (rzędu JJ.H) lub pojemności (kilka...kilkanaście pF), Włączenie pojemności zwiększa częstotliwość, indukcyjność częstotliwość zmniejsza. Dobrym pomysłem jest zastosowanie tutaj trymera lub cewki z rdzeniem mogącym zmieniać położenie. Umożliwi to naprawdę dokładne ustawienie żądanej częstotliwości. Możliwość bezpośredniego pomiaru częstotliwości pracy wbudowanego generatora jest ograniczona ze względu na od-
strajające działanie podłączanej sondy (najlepiej stosować sondy sprzęgane bez-połączeniowo lub sondy z wysoką impe-dancją wejściową, ewentualnie stosować połączenie za pośrednictwem kondensatora rzędu 1...2pF). W przypadku stosowania ,,dużych" Atmeli możliwy jest pomiar częstotliwości występującej na wyprowadzeniu ALE. Jeżeli mikrokontroler nie współpracuje z zewnętrzną pamięcią danych (program nie zawiera instrukcji MOVX), to częstotliwość na wyprowadzeniu ALE jest równa dokładnie 1/6 częstotliwości generatora zegarowego.
Układy rodziny '51 umożliwiają również pracę z zewnętrznym źródłem sygnału zegarowego (rys. 8). Mikrokon-trolery Atmel wymagają w takiej sytuacji pozostawienie niep odłączone go wyprowadzenia XTAL2, a sygnał zegarowy (sygnał prostokątny o poziomach odpowiadających stanom 0 i l) należy doprowadzić do wyprowadzenia XT ALi. Nie jest konieczne zachowanie wypełnienia impulsów na poziomie 50%. Możliwe jest zatem zastosowanie scalonych generatorów oferujących dużą dokładność i stabilność częstotliwości, a w trakcie uruchamiania można wykorzystać jako źródło sygnału zegarowego generator funkcyjny z wyjściem TTL - płynna zmiana częstotliwości taktowania umożliwia zwolnienie pracy mikrokontrolera praktycznie do jego zatrzymania, co pozwala na łatwą weryfikację generowanych przez mikrokontroler przebiegów w przypadku kłopotów z uruchomieniem oprogramowania.
Dobór częstotliwości zegarowej można rozpatrywać z dwóch punktów widzenia: jeżeli potrzebujemy dużej szybkości działania, to wybierzemy częstotliwość bliską maksymalnej, jeżeli budujemy układ energooszczędny, to zastosujemy kwarc ,,zegarkowy" lub rezonator ceramiczny o częstotliwości kilkuset kHz.
Zawsze należy pamiętać o tym, że w danej aplikacji możemy potrzebować wykonywania jakiegoś podprogramu ze stałą częstotliwością - warto więc dobierać takie częstotliwości taktowania, które po podzieleniu przez liczbę całkowitą (najlepiej potęgę dwójki) dadzą częstotliwość jak najbliższą tej potrzebnej. Dodatkowo należy zwrócić uwagę na fakt, że częstotliwość zegarowa nie jest dostępna od strony programowej - program ,,widzi" jedynie 1/12 tej częstotliwości, co należy uwzględnić przy wyznaczaniu potrzebnej częstotliwości zegarowej.
Należy również wspomnieć, że układ wbudowanego w mikrokontroler generatora taktującego powoduje wzbudzenie się kwarcu na jego częstotliwości podstawowej (choć niekiedy rezonatory wzbudzają się na owertonie - zwłaszcza ceramiczne o niewielkich częstotliwościach), więc nie da się bez dodatkowych obwodów taktować mikrokontrolera '51 (nawet jeśli jest to przewidziane przez producenta) z częstotliwością większą niż 30 MHz (kwarce o wyższych częstotliwościach są budowane niemal wyłącznie jako owertonowe). Jeżeli zastosujemy taktowanie zewnętrzne (np. przy pomocy scalonego generatora), to można zmusić niektóre egzemplarze 24 MHz układów firmy Atmel, zarówno 20- jak i 40-nóżkowych, do pracy z częstotliwością przekraczającą 60 MHz! Obowiązuje tutaj podobna zasada jak przy overcloc-kingu procesorów komputerów PC -układ może pracować niestabilnie przy tak dużych częstotliwościach. Jeżeli jednak z powodu wymaganych przez program zależności czasowych potrzebujemy częstotliwości taktowania do kilku MHz większej od maksymalnej częstotliwości pracy układu, to zazwyczaj nie ma się czego obawiać i śmiało takie niewielkie pr z et akt o w ani e można stosować. Paweł Hadam
Elektronika Praktyczna 4/2003
87
KURS
W drugiej części artykułu przedstawiamy sposoby obsługi klawiatur o dużej liczbie przycisków. Proponowane rozwiązania sprzętowe oraz opisywane procedury sprowadzono praktycznie, dzięki czemu mogą być bezproblemowo stosowane we własnych aplikacjach przez Czytelników EP.
Obsługa klawiatury w C, część 2
Klawiatura zbudowana z 5 przycisków
Najprostszą klawiaturę można zbudować podłączając klawisze w taki sam sposób jak w poprzednim przykładzie (rys. 3). Poszczególnym klawiszom można nadać funkcje adekwatne do potrzeb. W prezentowanym przykładzie ponumerowałem je od 1 do 5. Ty możesz nazwać klawisze na przykład ,,dodaj", ,,wprowadź", ,,pomiar" i temu podobne.
Funkcje klawiszy powinny mieć również swoje odzwierciedlenie w programie sugerując nazwy funkcji obsługi. W poprzednich przykładach zajmowaliśmy się szczegółowo sposobem obsługi pojedynczego klawisza podłączonego do mikrokontro-lera. Ponieważ zasada działania nadal jest taka sama - nie ma większych różnic związanych z odczytem stanu klawiszy. Przytoczę więc przykład programu i zajmę się opisem innych rozwiązań. Program ten, podobnie jak poprzednio, to przykład pewnego rozwiązania. Jeśli będzie to twoim życzeniem, możesz indywidualnie testować każdy z bitów portu a nawet różnych portów. Wszystko zależy od sposobu połączeń używanego przez Ciebie mikrokontrolera z resztą układu. Z doświadczenia wiem jednak, że rozwiązania sprzętowe mocno wpływają na rozmiar programu. Staram się więc dobierać takie rodzaje połączeń, aby pisany program był jak najmniejszy i aby warunki jego pracy były zoptymalizowane pod kątem szybkości wykonywania i łatwości implementacji kodu.
Jak podłączyć większą liczbę przycisków
Do tego momentu stosowana przez nas liczba przycisków była na tyle mała, że nie przekraczała liczby wolnych
P1 O/AINO P1 1/AIN1 PIZ P13 P14 P15 P1G P17
P3.7 P3,1VRXD
Rys. 3. Jedna z najprostszych metod podłgczenia 5 klawiszy do mikrokontrolera
linii wejścia/wyjścia mikrokontrolera. Co zrobić, gdy istnieje potrzeba podłączenia na przykład 8 przycisków, a do dyspozycji jest tylko 6 wolnych linii I/O? Abstrahując od rozwiązań wykorzystujących układy transmisji szeregowej i dodatkowe rejestry, przedyskutujmy kilka rozwiązań.
Matryca klawiszy
Matryca zbudowana z pojedynczych przycisków to jedno z najprostszych rozwiązań. Przyciski wówczas łączy się tak,
aby zwierały umowne wiersze z umownymi kolumnami (rys. 4). W prezentowanym przykładzie wiersze klawiatury są dołączone do bitów 5, 6 i 7 portu Pl, natomiast kolumny do bitów 2, 3 i 4 tego samego portu. Często buduję również układy, w których klawiatura podłączona jest jako zewnętrzna pamięć danych w ten sam sposób z tą różnicą, że kolumny stanowią bity danych a wiersze bity wybranych adresów (lub odwrotnie). Liczbę możliwych do podłączenia w ten sposób klawiszy wy-
List. 3. Program odczytuje stan klawiatury podłgczonej do portu PortKey. Jest rozszerzeniem funkcji odczytu pojedynczego klawisza i działa w bardzo zbliżony sposób
/* prosty program demonstracyjny "odczyt klawiszy podłączonych do Pl" klawisz włączony pomiędzy masę a bit portu Pl, stan aktywny = L klawisze podłączone od Pl.2 do P1.6; rezonator kwarcowy 8MHz */
tinclude tinclude
#define PortKey Pl; unsigned char buf;
//dołączenie definicji rejestrów mikrokontrolera //biblioteka zawierająca funkcję printf()
//definicja bitu portu klawisza //zmienna przechowująca stan klawiszy
//opóźnienie około 1 milisekundy dla kwarcu 8MHz Void Delay(unsigned int time)
unsigned int j ; While (time >= 1)
for (j=0; j<65; time-;
//wykonanie pętli FOR zajmuje około 1 msek. //pętla jest powtarzana TIME razy
//odczyt klawiatury podłączonej do PortKey char KbdReadO
unsigned char b;
b = PortKey; //odczytaj stan portu klawiatury
b 1=3; //ustaw dwa najmłodsze, nie używane przez klawiaturę bity
return (~b); //zwróć odczytaną wartość po zanegowaniu
//początek programu głównego Void main(void)
While (1)
buf = KbdReadO ; if (buf)
//pętla nieskończona
//jeśli rezultat różny od 0 - sprawdź
Delay(20); //opóźnienie 2Oms
if (buf == KbdRead()) //ponowny odczyt klawisza i akcja,
{ //jeśli nadal wciśnięty
if (buf 0x04) printf("? is\n", "Klawisz 1
if (buf && 0x08) printf{"\ is\n", "Klawisz 2
if (buf && 0x10) printf{"\ is\n", "Klawisz 3
if (buf && 0x20) printf ("'-, is\n", "Klawisz 4
if (buf && 0x40) printf{"\ is\n", "Klawisz 5
Elektronika Praktyczna 4/2003
KURS
List. 4. Program obsługi klawiatury matrycowej wyposażony jest w funkcję, która zwraca numer naciśniętego przycisku
/* prosty program demonstracyjny "odczyt klawiatury matrycowej" Wiersze Pl.2 do P1.4, kolumny P1.5 do Pl.6 (3x3 = 9 klawiszy) rezonator kwarcowy 8MHz */
tinclude tinclude
#define PortKey Pl
//dołączenie definicji rejestrów mikrokontrolera //dołączenie prototypu funkcj i printf
//definicja bitu portu klawisza
#define Column_l OblllllOll //definicje stanów bitów kolumn
#define Column_2 ObllllOlll
#define Column_3 OblllOllll
#define Dummy ObOOOlllOO //wartość dla ustawienia bitów kolumn na "1'
#define Row_l ObOOlOOOOO //definicje połączeń bitów wierszy #define Row_2 ObOlOOOOOO #define Row_3 OblOOOOOOO
//opóźnienie około 1 milisekundy dla kwarcu 8MHz
"Void Delay(unsigned int time)
{
unsigned int j;
While (time >= 1) //wykonanie pętli FOR zajmuje około 1 msek. { //pętla jest powtarzana TIME razy
for (j=0; j<65; j++);
time--;
//odczyt portu klawiatury
unsigned char PortKeyRead(unsigned char column)
unsigned char curr, prev;
PortKey I= Dummy; PortKey &= column; prev = PortKey; prev &= 0xE0;
//ustawienie na wartość "1" bitów kolumn
//stan niski kolumny 1
//odczyt portu klawiatury
//maskowanie wszystkich bitów oprócz wierszy
if (prev == 0xE0) return (0); //jeśli wszystkie bity są jedynkami dla //danej kolumny nie wciśnięto Żadnego klawisza
Delay(20); curr = PortKey; curr &= OblllOOOOO; if (curr == prev)
// powtórny odczyt i porównanie
While (prev = curr) //czekaj na zwolnienia klawisza
prev = PortKey; prev &= 0xE0;
}
return(~curr); } else return(0);
//zamiana aktywnych bitów z 0 na 1 //zwróć 0 w przypadku różnic odczytów
//odczyt klawiatury podłączonej do PortKey //funkcja zwraca numer wciśniętego klawisza unsigned char KeyNumber()
unsigned char b;
b = PortKeyRead(Column_l); if (!b)
if (b && Row_l) return(3); if (b && Row_2) return(6); if (b && Row_3) return(9);
b = PortKeyRead(Column_2); if (!b)
if (b && Row_l) return(2); if (b && Row_2) return(5); if (b && Row_3) return(8);
b = PortKeyRead(Column_3); if (!b)
if (b && Row_l) return(1); if (b && Row_2) return(4); if (b && Row_3) return(7);
return(0);
//początek programu głównego Void main(void)
While (1) {
char buf = KeyNumber();
//odczyt: kolumna 1 - wiersz 1, 2, 3
//odczyt: kolumna 2 - wiersz 1, 2, 3
//odczyt: kolumna 3 - wiersz 1, 2, 3
//nie wciśnięto Żadnego klawisza, zwróć
//pętla nieskończona
//odczyt klawisza połączony z deklaracją buf
if
!buf) printf("%s\n" ,buf) ; //wysłanie numeru klawisza przez RS2 32
liczą się jako wynik mnożenia liczby wierszy przez liczbę kolumn.
Wróćmy do schematu z rys. 4. Wykorzystujemy 3 bity jako wiersze i 3 jako kolumny. Maksymalnie można więc podłączyć 9 klawiszy wykorzystując 6 bitów portu Pl. Prawda, że to duża oszczędność? Nieco bardziej skomplikowane ukła-dowo rozwiązanie może wykorzystywać szynę adresową i danych. Typowo, ośmio-bitowy mikrokontroler z rodziny 8051 ma możliwość zaadresowania do 64 kB pamięci zewnętrznej. Daje to liczbę 16 linii adresowych (A0 do A15). Słowo danych ma długość 8 bitów (DO do D7). Jeśli nie są wykorzystywane inne urządzenia znajdujące się w przestrzeni adresów zewnętrznych mikrokontrolera, klawiatura może mieć 16 x8= 128 (!) klawiszy i pracować jako pamięć zewnętrzna. Oczywiście procedura odczytu tej ,,pamięci" jest trochę bardziej skomplikowana.
Zasada działania klawiatury zbudowanej z matrycy przycisków jest bardzo prosta. Bity kolumn ustawione są do pracy jako linie wyjściowe, natomiast linie wierszy jako wejściowe. Mikrokontroler ustawia stan niski na jednej z linii kolumn i odczytuje stan linii wierszy. Pojawienie się stanu niskiego na jednym lub kilku bitach wierszy, zawsze oznacza w takiej sytuacji naciśnięcie jednego lub kilku klawiszy. Myślę, że najlepiej pokaże to przykład programu pokazanego na list. 4.
Funkcja odczytu klawiatury jest podzielona na dwie części, w celu optymalizacji kodu wynikowego. Pierwsza z nich o nazwie PortKeyRead()\est używana wielokrotnie dlatego też stanowi osobny fragment programu. Zatrzymajmy się przy niej na moment. Konstrukcja PortKey 1 = Dummy ustawia wyjścia portów kolumn na wartość logicznej ,,1". Po tym poleceniu, logiczna operacja AND {PortKey &= Column) ustawia stan niski na wyjściu danej kolumny. Teraz należy zbadać, czy na którymś z wejść portu odpowiadającym wierszom klawiatury, pojawił się stan niski. Odczytywany jest więc port klawiatury prev = PortKey i maskowane wszystkie bity, które nie mają wpływu na testowanie stanów wierszy [prev &= 0xE0). Jeśli powstała w ten sposób wartość jest równa 0xE0 oznacza to, że wszystkie wejścia są w stanie wysokim i żadna z linii wejściowych nie jest w stanie niskim. Odpowiada to sytuacji, w której nie wciśnięto żadnego klawisza - wówczas funkcja zwraca wartość 0.
Inaczej jest w sytuacji, gdy wartość jest różna od 0xE0. Wykonywana jest wówczas instrukcja Delay(2O) powodująca opóźnienie na czas około 20 milisekund. Po niej ponownie odczytywany jest z użyciem tej samej metody stan klawiatury. Odczytana wartość porównywana jest ze starą i jeśli są zgodne oznacza to, że klawisz jest nadal wciśnięty. Aby uniknąć automatycznego powtarzania, program czeka na zwolnienie klawisza a następnie zwraca zanegowany stan bitów wierszy. W przeciwnym wypadku uznaję, że było to przypadkowe naciśnięcie (ewentualnie zakłócenie) i funkcja zwraca wartość 0.
PortKeyRead() wykorzystywana jest przez funkcję KeyNumber(). Jej rolą jest
Elektronika Praktyczna 4/2003
89
KURS
List. 5. Program do odczytu klawiszy podłgczonych za pomocg multipleksera 74157
/* prosty program demonstracyjny "odczyt klawiszy podłączonych przez 74157" wykorzystane są bity Pl.0 do Pl.3 oraz P3.7 do sterowania wyborem połówki odczytywanego bajtu; rezonator kwarcowy 8MHz */
tinclude tinclude
#define PortKey Pl; sbit A_B = P3A7;
//dołączenie definicji rejestrów mikrokontrolera //biblioteka zawierająca funkcję printf()
//definicja bitu portu klawisza
//wybór połówki bajtu odczytywanej przez 74157
//opóźnienie około 1 milisekundy dla kwarcu 8MHz Void Delay(unsigned int time)
unsigned int j ;
While (time >= 1) {
for (j=0; j<65;
t ime-- ;
//wykonanie pętli FOR zajmuje około 1 msek. //pętla jest powtarzana TIME razy
//odczyt klawiatury podłączonej do PortKey char KbdReadO
unsigned char L_nibble, H_nibble;
A_B = 1;
H_nibble = PortKey;
H_nibble &= OxOF;
H_nibble <<= 4;
A_B = 0;
L_nibble = PortKey;
L_nibble &= 0x0F;
//odczyt starszej połówki bajtu (klawisze parzyste)
//odczyt młodszej połówki bajtu (klawisze niep.
return (~(H_nibble I L_nibble)
//początek" programu głównego ~Void main (void)
//zwróć odczytaną wartość po zanegowaniu
While (1)
buf = KbdReadO ; if (buf)
//pętla nieskończona
//jeśli rezultat różny od 0- sprawdź
Delay(20); //opóźnienie 20ms
if (buf == KbdRead()) //ponowny odczyt klawisza i podjęcie //akcj i, jeśli nadal wciśnięty
if (buf && 0x01) printf("%s\n", "Klawisz 1");
if (buf && 0x02) printf("%s\n", "Klawisz 2");
if (buf && 0x04) printf("%s\n", "Klawisz 3");
if (buf && 0x08) printf("%s\n", "Klawisz 4");
if (buf && 0x10) printf("%s\n", "Klawisz 5");
if (buf && 0x20) printf("%s\n", "Klawisz 6");
if (buf && 0x40) printf("%s\n", "Klawisz 7");
if (buf && 0x80) printf("%s\n", "Klawisz 8");
P1.0/AIN0 P1.1/AIN1 P12 P13 P14 P15 P1fl P17
P3,7
P3,(VHXD P3.1/TKD
8i
47k
obliczenie numeru naciśniętego klawisza. Kolejno odczytywane są poszczególne kolumny i jeśli zwrócona wartość jest różna od 0, rozpatrywane są bity zwróconej zmiennej. Tak więc wiersz po wierszu, kolumna po kolumnie przeglądana jest cała klawiatura. Metoda ta nosi nazwę odpytywania (z angielskiego pooling).
Program główny wywołuje funkcję Key-Number() i używa jej do wyznaczenia numeru wciśniętego klawisza. Można w nim spotkać konstrukcję char buf = KeyNum-ber() - nie używałem jej do tej pory. Zmienna w języku C musi być zadeklarowana przed pierwszym użyciem. To jest właśnie dosłowny przykład, jednak nie polecam go do użytku. W pewnym momencie możesz przestać panować na ilością zmiennych i przez to również wykorzystaniem zasobów mikrokontrolera. Lepsza jest jawna deklaracja na początku programu czy funkcji, aniżeli ukryta w kodzie programu. Nie mniej jednak dobrze jest wiedzieć, że można to zrobić. Zwrócony numer klawisza zamieniany jest przez funkcję printf() na wartość typu łańcuch znaków i wysyłany przy pomocy UART.
Wykorzystanie dodatkowego układu multipleksera
Łatwą metodą rozszerzenia ilości podłączonych do mikrokontrolera klawiszy jest użycie dodatkowego zewnętrznego układu multipleksera. Przykład takiego rozwiązania umieszczono na rys. 5. Wykorzystano w nim układ 74157. Jest to poczwórny multiplekser 2x1. Poziom logiczny na wyprowadzeniu 1 (!A/B) wybiera aktywne wejście z dwóch grup: (1A...4A/1B...4B) i dołącza je do wyjść układu (1Y...4Y), a tym samym do portu wejściowego mikrokontrolera.
Proste rozwiązania lokalnych klawiatur nie wymagają rezystorów pullup, ponieważ układy z serii TTL traktują wejście nie podłączone jako znajdujące się w stanie wysokim. W celu wybrania odpowiedniej czwórki przycisków, posługuję się wyprowadzeniem P3.7 mikrokontrolera. Dwie czterobitowe połówki składane są do postaci jednego bajtu, który to następnie rozpatrywany jest przez program z list. 5. Jacek Bogusz jacek.bogusz@ep.com.pl
ŚJ
Rys. 4. Matryca zbudowana z przycisków to jedno z najprostszych rozwigzań stosowanych przy zwiększaniu liczby klawiszy
Rys. 5. Wykorzystanie zewnętrznego układu multipleksera dla zwiększenia liczby podłgczonych do portu mikrokontrolera klawiszy
90
Elektronika Praktyczna 4/2003
KURS
CRC doda Ci pewności,
JJfff... Zbliżamy się do końca. W zasadzie całą teorię dotyczącą algorytmów generowania CRC mamy już za sobą. Czas na ćwiczenia praktyczne.
Wartości początkowe i końcowe
Poszczególne algorytmy generowania CRC różnią się między sobą nie tylko zastosowanymi "chwytami" programowymi, ale również przyjmowanymi wartościami początkowymi rejestru oras wartością, która będzie XOR-owana z końcową jego zawartością. Przykładowo: w kodzie CRC32 rejestr jest inicjowany wartością FFFFFFFFh, końcowa zawartość rejestru jest XOR-owana wartością FFFFFFFFh. Wiele algorytmów CRC inicjuje rejestr wartością zero, ale nie musi to być regułą. Niektóre, jak widać choćby z powy-iszego przykładu, wpisują do rejestru nie-zerową wartość początkową. Teoretycznie nie ma ona wpływu na wydajność ani efekt pracy algorytmu. W praktyce niektóre wiadomości (ciągi danych, z których będzie wyliczane CRC) są bardziej prawdopodobne od innych. Rozsądne wydaje się inicjowanie rejestru taką wartością, która nie będzie zawierała "martwych punktów" mogących wystąpić w rzeczywistości. Określenie "martwy punkt" oznacza w tym przypadku taką sekwencję danych (odbieranych bajtów), która wzięta do obliczeń nie spowoduje zmiany stanu rejestru. Algorytmy, które inicjują rejestr wartością zerową, mogą zawierać "martwy punkt". Zdarza się bowiem często, że sekwencja "rozbiegowa" transmisji zawiera taki właśnie ciąg. Z tego powodu bezpieczniej jest przyjmować niezerową wartość początkową rejestru.
Algo rytm ab s o lutny
Jak mogliśmy się przekonać z wcześniejszych rozważań, w teorii tablicowych algorytmów obliczania CRC pojawiło się kilka ważnych aspektów. W ich wyniku powstało wiele metod obliczania CRC, a ogarnięcie całości zagadnienia stało się dość trudne. Spróbujmy teraz zebrać nabytą wiedzę. Widzimy, że poszczególne algorytmy zależą od:
- długości wielomianu generującego (generatora),
- wartości generatora,
- początkowego stanu rejestru,
- tego, czy bity w każdym odebranym bajcie są odwrócone przed wykonaniem obliczeń,
- tego, czy algorytm pobiera bajty wejściowe poprzez rejestr, czy XOR-uje je z bajtem tablicy,
- tego, czy końcowa wartość rejestru powinna być odwrócona,
- tego, czy XOR-ować daną z końcową wartością rejestru.
Gdybyśmy zdecydowali się na stworzenie jednego, uniwersalnego algorytmu, należałoby precyzyjniej określić założenia. Spróbujemy to zrobić. Otrzymamy pewien sparametryzowany model, który później będzie mógł być wykorzystywa-ny w sposób uniwersalny.
Model parametryczny dla algorytmów obliczania CRC
Dojrzeliśmy już do tego, żeby stworzyć praktyczny model oblicza-1 nia CRC. No dobrze, powiedzmy szczerze, to nie my będziemy go tworzyć, gdyż zrobiono to już za nas trochę wcześniej. My prześledzimy tylko tok rozumowania. Będzie to tzw. Rocksofi Model CRC Algoriihm. W modelu tym, skupimy się wyłącznie na funkcjonalności algorytmu, nie zważając na detale implementacyjne. Nie będziemy więc, przynajmniej na razie, przejmować się ewentualnymi problemami, jakie mogą wystąpić na etapie kodowania algorytmu w konkretnym języku programowania, chociaż finalnym produktem rozważań będzie program w języku C. Tworzony sparametryzowany model musi być maksymalnie prosty i precyzyjny, a co za tym idzie uporządkowany. Będzie on bazował zasadniczo na bezpośrednim algorytmie tablicowym (patrz część 3). Pamiętając jednak, że powinien spełniać wszystkie powyższe kryteria, dołożymy do niego możliwość ustalania, czy ma (tak jak w algorytmie odwróconym) dokonywać odwracania bajtu wejściowego oraz czy odwrócona ma być również końcowa wartość wyliczonej sumy kontrolnej. Jeden z parametrów pozwoli inicjować rejestr obliczeniowy algorytmu odpowiednią wartością, inny zaś będzie argumentem operacji XOR na końcowej wartości sumy kontrolnej, zanim zostanie zwrócona jako ostateczny wynik obliczeń do procedury nadrzędnej. Mając powyższe założenia, spróbujmy sporządzić konkretną listę parametrów (przyjmiemy oryginalne oznaczenia): NAME - jest to nazwa algorytmu -
zmienna łańcuchowa; WIDTH - jest to szerokość słowa obliczeniowego algorytmu (rejestru) - liczba bitów. Parametr "SZEROKOŚĆ" jest liczbą o jeden mniejszą niż szerokość generatora.
POŁY - ten parametr to po prostu nasz wielomian generujący (generator, poły). Jest to liczba binarna, którą dla wygody będziemy zapisywać w postaci szesnastkowej, ale uwaga! W zapisie
będziemy omijać najstarszy bit generatora, pamiętając, że zawsze jest on równy "1". Jeśli więc zastosujemy generator np. 10110, to jako parametr będziemy podawać go w postaci 0x06. Ważne jest, że parametr ten przedstawia generator w postaci nieodwróco-nej. Dolny bit tego parametru będzie zawsze najmniej znaczącym bitem dzielnika, niezależnie od tego, czy algorytm będzie prosty, czy odwrócony.
INIT - parametr, określający stan początkowy rejestru. Jest to wartość wpisywana do rejestru w bezpośredniej metodzie tablicowej. W algorytmie tablicowym rejestr jest zawsze zerowany na początku, a INIT będzie wartością, z którą zostanie XOR-owany rejestr po N-tej iteracji. Parametr ten powinien być podawany w postaci liczby szesnastkowej.
REFIN - jest to parametr logiczny. Jeśli będzie on miał wartość FALSE, to bit 7 bajtów wejściowych będzie traktowany jako najbardziej znaczący (MSB), a bit 0 jako najmniej znaczący (LSB). W tym przypadku każdy bajt powinien być odwrócony przed wykonaniem obliczeń.
REFOUT - jest też parametrem logicznym. Jeśli będzie miał wartość FAL-SĘ, to końcowa wartość rejestru będzie bezpośrednio przenoszona do pola XOROUT, w przeciwnym przypadku przed przeniesieniem zawartości rejestru do pola XOROUT rejestr musi być najpierw odwrócony.
XOROUT - jest to W-bitowa liczba, którą będziemy podawać w postaci szesnastkowej. Będzie ona XOR-owana z końcową zawartością rejestru (po REFOUT), przed umieszczeniem wartości zwracanej przez procedurę jako końcowa wartość wyliczonej sumy kontrolnej.
Bezpieczna wymiana danych w systemach mikroprocesorowych
Elektronika Praktyczna 4/2003
91
KURS
List. 1. Plik nagłówkowy crcmodel.h
Początek pliku crcmodel.h
/* Autor: Ross Williams (ross@guest.adelaide.edu.au.)- */
/* Data: 3 czerwca 1993. */
/* Status: Public domain. */
/* */ /* Opis: To jest plik nagłówkowy (-h), dla programu obliczjącego CRC zgodnie */
/* z RocksoftAtm Model CRC Algorithm. */
/*Uwaga: Rocksoft jest znakiem handlowym Rocksoft Pty Ltd, Adelaide, Australia*/
/* */
#ifndef CM_DONE #define CM_DONE #ifndef DONE_STYLE
typedef unsigned long ulong; typedef unsigned bool; typedef unsigned char * p_ubyte_;
#ifndef TRUE #define FALSE O #define TRUE 1 #endif
/* Zamienić na drugą definicję, jeśli nie ma prototypów */
#define P_(A) A
/* #define P_(A) () */
/* Zdjąć symbol komentarza w poniższej definicji, jeśli nie ma void. */
/* typedef int void; */
#endif
/* Krótki opis typów W Modelu CRC */
/* Poniższe typy związane są z wykorzystywanym modelem omawianym w artykule /* Większość z nich powinna być ustawiona przed pierwszym wywołaniem cm_ini typedef struct
/
Parametr: Width w bitach [8,32].
Parametr: Generator (poły) algorytmu '
Parametr: Wartość początkowa rejestru
Parametr: czy odwracać bajty? */
Parametr: czy odwracać wyj ściowe CRC?*/
Parametr: wartość do XOR-owania wyj ściowego CRC. */
Kontekst: Kontekst podczas obliczeń */
int cm_width; /i
ulong cm_poly; /-
ulong cm_init; I'Ś
bool cm_refin; I*
bool cm_refot; /-
ulong cm_xorot; i'-
ulong cm_reg; I'Ś } cm_t;
typedef cm_t *p_cm_t;
/* Funkcje implementujące Model */
Void cm_ini P_((p_cm_t p_cm));
/* Inicjowanie modelu */
/* Wszystkie parametry powinny być ustawione przed wywpłaniem */
~Void cm_nxt P_((p_cm_t p_cm,int ch));
/* Pobranie kolejnego bajtu do obliczeń [0,255] */
~void cm_blk P_((p_cm_t p_cm,p_ubyte_ blk_adr,ulong blk_len)); /* Pobranie bloku bajtów komunikatu */
ulong cm_crc P_((p_cm_t p_cm));
/* Zwraca wartość CRC dla wiadomości */
/* Funkcje dla obliczeń tablicowych */ /* -------------- */
/* Poniższe funkcje mogą być wykorzystywane do obliczania tablic (lookup table)*/ /* dla metod tablicowych */
/* Mogą być również stosowane "w biegu" do tworzenia lub sprawdzania *-ł
/* tablic statycznych */"
ulong cm_tab P_((p_cm_t p_cm,int index)) ;
/* Zwraca i-ty element tablicy (lookup table) dla określonego algorytmu */
/* Funkcja sprawdza pola cm_width, cm_poly, cm_refin i argument tablicy */
/* indeksowany w zakresie [0,255] i zwraca jako wartość funkcji element tablicy*/
/* określony przez cm_width młodszych bajtów */
#endif /*
Koniec pliku crcmodel.h
CHECK - to pole jest niezwiązane z definicją w dosłownym znaczeniu i w przypadku konfliktu pomiędzy nim a innymi polami ustępuje im pierwszeństwa. Będzie służyło do kontrolowania poprawności implementacji algorytmu. Pole CHECK będzie zawierało sumę kontrolną otrzymaną w wyniku ,,przepuszczenia" przez algorytm łańcucha znakowego (ASCII) o wartości "123456789" (0x31,0x32,0x33, itd.).
Z tak zdefiniowanymi parametrami model może być wykorzystany do dokładnego opisywania algorytmów. Przykładem niech będzie popularny algorytm CRC-16. Odpowiednie dla niego parametry będą następujące: Name: "CRC-16" Width: 16
Poły: 8005 (pamiętamy, że jest to zapis szesnastkowy)
Init: 0000
Refln: True
RefOut: True
XorOut: 0000
Check: BB3D
Przykładowe zestawienie parametrów dla wybranych algorytmów
Poniższa lista zawiera wielomiany generujące dla kilku standardowych algorytmów. Niestety, ze względu na spotykane rozbieżności, określenie kompletu parametrów okazało się dość kłopotliwe.
X25 standardowy : 1021 (CRC-CCITT,
ADCCP,
SDLC/HDLC)
X25 odwrócony: 0811
CRC16 standardowy: 8005
CRC16 odwrócony: 4003 (LHA)
W poniższym zestawie uwzględniona
pełniejszą listę parametrów:
Name: "CRC-16/CITT"
Width: 16
Poły: 1021
Init: FFFF
Refln: False
RefOut: False
XorOut: 0000
Check: ?
Name: "XMODEM"
Width: 16
Poły: 8408
Init: 0000
Refln: True
RefOut: True
XorOut: 0000
Check: ?
Name: "ARC"
Width: 16
Poły: 8005
Init: 0000
Refln: True
RefOut: True
XorOut: 0000
Check: ?
Na zakończenie zestawienie parametrów algorytmu CRC-32 (PKZIP, AUTO-DIN II, Ethernet, FDDI)
92
Elektronika Praktyczna 4/2003
List. 2. Plik implementacyjny crcmodel.c
Początek pliku crcmodel.c
/*
/*
/* Autor: Ross Williams (ross@guest.adelaide.edu.au.).
/* Data: 3 czerwca 1993.
/* Status: Public domain.
/* Notę: Rocksoft is a trademark of Rocksoft Pty Ltd, Adelaide, Australia.
I includę "crcmodel.h'
/* Poniższe definicje zamieszczono w celu zwiększenia czytelności kodu.
#define BITMASK(X) (1L << (X)) #define MASK32 OxFFFFFFFFL #define LOCAL static
LOCAL ulong reflect P_((ulong V,int b));
LOCAL ulong reflect (V,b)
/* Zwraca wartość v, W której b młodszych bitów [0,32] jest odwróconych
/* Przykład: reflect (0x3e23L,3) == 0x3e26
ulong V;
int b;
{
int i;
Ulong t = V;
for (i = 0; i{ if (t & 1L)
Vi= BITMASK( (b-1)-i) ; else
V&= --BITMASK ( (b-1)-i) ; t = l; } return V;
LOCAL ulong widmask P_((p_cm_t)) ;
LOCAL ulong widmask (p_cm)
/* Zwraca wartość longword, równą (2Ap_cm->cm_width)-1
/* Zastosowano trik pozwalający uniknąć przesunięcia <<32)
P_cm_t p_cm;
return
(p_cm->cm_width-l))-
llL;
Void cm_ini (p_cm) P_cm_t p_cm;
p_cm->cm_reg = p_cm->cm_init;
Void cm_nxt (p_cm,ch)
P_cm_t p_cm;
int ch;
{
int i;
ulong uch = (ulong) ch;
ulong topbit = BITMASK(p_cm->cm_width-l);
if (p_cm->cm_refin) uch = reflect(uch,8); p_cm->cm_reg A= (uch << (p_cm->cm_width-8) for (i=0; i<8; i++) { if (p_cm->cm_reg & topbit)
p_cm->cm_reg = (p_cm->cm_reg << 1) else
p_cm->cm_reg <<= 1; p_cm->cm_reg &.= widmask (p_cm) ;
Void cm_blk (p_cm,blk_adr,blk_len)
P_cm_t p_cm;
P_ubyte_ blk_adr;
ulong blk_len;
{
While (blk_len-) cm_nxt(p_cm,*blk_adr +
p_cm->cm_poly;

Name: "CRC-32"
Width: 32
Poły: 04C11DB7
Init: FFFFFFFF
Refln: True
RefOut: True
XorOut: FFFFFFFF
Cłieck: CBF43926
Implementacja modelu w języku C
Ci, którym udało się przebrnąć przez dotychczasowe odcinki artykułu, z pewnością czekali na ten właśnie moment. Cała zdobyta wiedza będzie za chwilę wykorzystana do napisania konkretnego programu. Nie zdziwi chyba nikogo, że zostanie do tego celu wykorzystany język C, chyba najbardziej popularny w profesjonalnych zastosowaniach. Nasz program będzie zawierał plik nagłówkowy (.h) i plik implementacyjny (.c). Chociaż suma kontrolna będzie obliczana w sposób jak najbardziej prawidłowy, to program ze względu na jego uniwersalność będzie miał raczej niewielką przydatność praktyczną (jako całość). Jest zaprezentowany ze względu na walory dydaktyczne. Wprawny programista będzie potrafił wyfiltrować ewentualnie tylko te jego fragmenty, które okażą się potrzebne w konkretnych przypadkach. Dla sprawdzenia, czy poniższy kod działa prawidłowo, można go będzie skonfigurować dla algorytmu CRC-16 lub CRC-32, zgodnie z informacjami zamieszczonymi powyżej i sprawdzić wynik na przykładowym, wejściowym łańcuchu tekstowym ,,123456789" o znanej sumie kontrolnej. Autorem programu jest Ross Williams. Program został zamieszczony w Internecie ze statusem public domain. Aby zapewnić jak największą niezależność od komputerów, na których może być uruchamiany, zastosowano możliwie proste sposoby kodowania. Na przykład nazwy wszystkich zewnętrznych identyfikatorów ograniczono do 6 znaków, a wewnętrznych do 8. W celu uniknięcia ewentualnych kolizji w nazwach zmiennych zastosowano prefiks cm (od CRC Model). Założona uniwersalność programu niestety niekorzystnie wpływa na jego efektywność. Warto pamiętać o przewadze pod względem szybkości działania metod tablicowych nad metodami algorytmicznymi.
Jak korzystać z programu?
Krok 1: Zadeklarować zmienną typu cm_t. Zadeklarować inną zmienną (p_cm) typu p_cm_t i zainicjować ją jako wskazanie na pierwszą (np. p_cm_t p_cm = &cm_t)
Krok 2: Przypisać wartości poszczególnym polom struktury (patrz uwagi w tekście)
Przykład:
p_cm->cm_ width = 16;
p_cm->cm_poly = 0x8005L;
p_cm->cm_init = OL;
p_cm->cm_refin = TRUE;
p_cm->cm_refot = TRUE;
p_cm->cm_xorot = OL;
Uwaga: Wartość Poły jest określana bez najstarszego bitu (18005 to 8005).
Elektronika Praktyczna 4/2003
93
KURS
List. 2. cd.
ulong cm_crc (p_cm)
p_cm_t p_cm;
{
i f (p_cm->cm_refot)
return p_cm->cm_xorot A reflect(p_cm->cm_reg,p_cm->cm_width) else
return p_cm->cm_xorot A p_cm->cm_reg;
ulong cm_tab (p_cm,index)
p_cm_t p_cm;
int index;
{
int i;
Ulong T;
ulong topbit = BITMASK(p_cm->cm_width-l) ;
ulong inbyte = (ulong) index;
if (p_cm->cm_refin) inbyte = reflect(inbyte, 8) ; r = inbyte << (p_cm->cm_width-8) ; for (i=0; i<8; i++)
if (r & topbit)
r = (r << 1) A p_cm->cm_poly; else
r<<=l;
if (p_cm->cm_refin) r = reflect(r,p_cm->cm_width) ; return r & widmask(p_cm) ;
Koniec pliku crcmodel.c
Wartość Width jest o jeden mniejsza niż faktyczna szerokość poły.
Krok 3: Zainicjować przykład z wywołaniem cm_ini(p_cm);
Krok 4: Wykonać obliczenia dla zerowej lub niezerowej liczby bajtów komunikatu przez umieszczenie odpowiedniej liczby wywołań cm_nxt. Np.: cm_nxt (p_cm, cli);
Krok 5: Obliczyć CRC, stosując wywołanie crc = cm_crc(p_cm);
Jeśli CRC jest wartością 16-bitową, wynikiem będzie 16 najmłodszych bitów.
Mam nadzieję, że tym razem Czytelnicy zostali usatysfakcjonowani możliwością zetknięcia się z konkretnym programem obliczającym CRC. Właściwie to już wszystko. Czym jest jednak obiad bez deseru? W ostatnim już odcinku (za miesiąc) pokażemy, jak są generowane tablice do metod tablicowych. Pokażemy również kilka innych przykładów oraz wspomnimy coś o metodach sprzętowych obliczania CRC. Jarosław Doliński, AVT jaroslaw.dolinski@ep.com.pl
Artykuł powstał na podstawie publikacji "A painless guide to CRC error de-tection algorithms". Autor Ross N. Williams. Można go znaleźć pod adresem http://www.riccibitti.com/crcguide.htm.
94
Elektronika Praktyczna 4/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.
Miniprogramator szeregowych pamięci EEPROM, część 1
Od pewnego czasu
szukałem prostego
urządzenia do odczytywania
i zapisywania szeregowych
pamięci EEPROM.
Znalazłem kilka, bardzo
różnych, rozwiązań.
Niestety, wszystkie dostępne
rozwiązania były dla moich
potrzeb zbyt rozbudowane
lub zwyczajnie za drogie.
Stanąłem więc przed
problemem, który należało
rozwiązać tanio i prosto.
Jako że w swoich pracach
wykorzystuję najczęściej
pamięci z rodziny 24Cxxx
z interfejsem PC,
skoncentrowałem się na
takim rozwiązaniu.
W efekcie powstał
programaiorek prezentowany
w artykule.
W C9lu maksymaln9go sredukowania kosztów i uprosscsenia konstrukcji, postanowiłem opracować ursądsenie podłącsane tylko do jednego gniazda w korn-puterse, sasilane na dodat9k s t9go samego portu. Ze względu na łatwe prograrno-wani9, odpowi9dnią wydajność prądową i "sporą" wtyczkę, wybrał9rn port drukarkowy. Z ni9go, sa pomocą odpowi9dni9go programu i prost9go ursądsenia, można s powodseniern realisować odcsyt oras programowani9 sseregowych pamięci EEPROM. Ursądsenie to umożliwia również st9rowani9 innymi ursądseniarni podłączanymi do magistrali I2C. Id9ę tego rozwiązania prsedstawio-no na rys. 1.
Do prawidłow9J pracy ursądseń I2C koniecsne jest dostarcsenie dwóch sygnałów (oprócs zasilania i masy). Pierwssy s nich - SDA - jest sseregowyrn dwukierunko-wym port9m wymiany danych pomiędzy st9rowniki9m ftu komputerem) a ursądse-ni9m fw tym przypadku pamięcią). W presentowanyrn rozwiązaniu funkcJ9 t9go por-
Projekt
109
tu realisuje wyjściowa linia Do oras W9jściowa EUSY portu LPT. Są on9 buforowan9 sa pomocą bramki NOT s otwartym kol9ktor9m. Drugi sygnał magistrali ss9r9gow9J - SCL -jest realisowany wprost prsy pomocy linii danych Dl, S9 wsględu na J9go jednokierun-kowy charakt9r. Posostał9 linie danych, po saopatrs9niu w resystory ogranicsając9, wy-korsystywan9 są do sasilania programatora. Znacsny prąd pobi9rany podcsas programowania pamięci EEPROM, rsę-du kilku miliamp9rów, wyrna-
Z1
DB-S5M
Rys. 1. Schemot elektryczny miniprogromotoro
ga odpowi9dni9go źródła sasilania. Obwód sasilania sostał sat9m saopatrsony w kond9nsator buforujący Cl. J9go pojern-ność ustalono ekspery-m9ntalni9 na 220 |j,F, ale może być i ni9co więkssa. Dostarcsa on odpowied-nich impulsów 9n9rgii po-trs9bnych w csasi9 prsepro-gramowywania komór9k pamięci i odcsytu. Dodatkowy kond9nsator C2 o poJ9mności 100 nF odsprsęga sasilani9 programatora. W9dług danych produc9nta najpopularniej-ssych pamięci EEPROM ro-dsiny 24Cxxx firmy Atmel, pamięć w trybi9 siand-by, csyli podłącsona tylko do sasilania, pobi9ra sal9dwi9 do 35 |j,A. Podcsas odcsytu prąd ten rośni9 do około 1 rnA, saś prsy sapisi9 do 3 rnA. Linia danych portu LPT powinna b9s trudu poradsić sobi9 s do-starcs9ni9m taki9go prądu, J9dnakŚ9 na wss9lki wypad9k sastosowano sasilani9 aś s 6 linii. Ni9wykorsystywan9 wyprowads9nia W9jściow9 inw9rt9ra Ul typu HC05 so-stały podłącson9 do masy. Stabiln9 napięci9 na W9J-ściach sab9spi9csa równi9Ś układ prs9d samowsbuds9-ni9m. NastępuJ9 ono w prsy-padku, gdy W9jścia układów rodsin HC, HCT i pokr9w-nych posostaną ni9podłącso-ne. Samowsbuds9ni9 moŚ9 być prsycsyną bardso trudnych do slokalisowania sa-kłóceń, sscs9gólni9 uciążliwych w układach wykorsys-tujących transmisję ss9r9gową oras pamięci.
Układ saproJ9ktowano s myślą o umi9sscs9niu go w obudowi9 słącsa DE-25. Kształt płytki jest dopasowany do takiej właśnie obudowy.
Elektronika Praktyczna 4/2003
PROJEKTY CZYTELNIKÓW
Montai pro gram atorka jest bardso prosty, jednakże należy poświęcić rnu ni9co uwagi. Płytka drukowana jest wykonana jako J9dnostronna. Prsed montażem korsystnie jest obciąć styki 15 i 16 złącza, aby uniknąć swarć. Ros-pocsynarny od prsylutowania wtyczki do płytki. Styki złącza DB-25M o nurn9rach 14 do 25 należy umi9Ścić od strony ścieżek płytki i dokład-ni9 sprawdzić, esy tak urniessesone słącse i płytka pasują do obudowy. Najlepiej jest włożyć płytkę i słącse do połówki obudowy, dopasować i dopi9ro wt9dy prsylutować odpowiadając9 styki. Na etapie pasowania może się oka-sać konieesne podpiłowani9 płytki w mi9Jscu otworów na śrubki w obudowi9. Dokonu-J9my t9go małym pilniki9m tsw. iglaki9m, na j lepiej o ksstałcie soesewki. Mi9Jsc9 t9go podpiłowania zostało sa-snaesone na widoku płytki dwoma półkolami. Dokładn9 dopasowani9 słącsa i płytki do obudowy umożliwi późniejsze sarnknięcie obudowy. Po prsylutowaniu słącsa należy wykonać dwi9 sworki na płytce. Następni9 należy wy-
Fot. 2. Sposób montożu rezystorów R1...R7 (widok z góry i z boku)
konać podłącs9ni9 linii danych oras sygnału EUSY. Znajdują się on9 na górn9J stroni9 płytki, na stykach 1 do 13. Sygnał EUSY snajduJ9 się na styku 11 słącsa i podłą-esamy go sa pomocą kawałka drutu np. s obcięt9go wypro-wads9nia r9systora do punktu Iutownics9go. Podobni9 podłącsamy linię Do, ob9cną na styku 2 słącsa. Posostał9 sygnały doprowadsamy prsy pomocy resystorów tak, jak to widać na fot. 2.
W dalss9J kol9Jności lutujemy kond9nsator C2, saś na samym końcu elektrolit Cl. Je-go umi9sscs9ni9 na płytc9 jest bardso istotne, gdyś w prsy-padku montażu w posycji pio-now9J ni9 będsi9 można sa-mknąć obudowy. Musi być sa-tem samocowany w posycji posiom9J. W sależności od jego gabarytów (średnicy) może się okasać, że koni9csn9 jest d9likatn9 wyfr9sowani9 obudowy i/lub płytki. Najlepiej dokonać tego prsed wlutowa-niem kondensatora, po uprsed-niej prsymiarce. W prsypadku prototypu sastosowano kondensator o średnicy 6 mm i wysokości 7 mm, co wymagało niestety wyfresowania wgłębienia w obudowie, a także w płytce. Najkorsystniej sa-stosować satem kondensator o mniejssej średnicy lub osta-teesnie dwóch kondensatorów 100 |_iF, co wymaga raesej prseprojektowania płytki. Praktycsniej byłoby jednak użyć kondensatora 220 |_iF, montując go od strony elementów do pól lutownicsych prsy pomocy drucików. W obudowie słącsa DB-25 należy wyciąć kwadratowy otwór na podstawkę precysyjną (tulipanową) DIL-B pod programowaną pamięć. Dogodnie jest to
Fot. 3. Widok górnej (z lewej) i dolnej (z prawej) połówki obudowy złgcza DB-25.
wykonać wiercąc cstery otwory o średnicy 4 mm w rogach dokładnie wytrasowanego otworu, a następnie wypiłować pilnikiem resstę. Widok tak prsygotowanej górnej csęści obudowy słącsa widać na fot. 3. Wymiary podano w milimetrach.
Po wykonaniu otworu możemy wstępni e wstawić w płytkę podstawkę precysyjną i nałożyć na nią jessese drugą. Taka piramidka sapew-ni odpowiednią wysokość podstawki nad obudową. Teras możemy ostateesnie sprawdsić, esy płytka se złączami i podstawką pasuje do wyfresowanej połówki. Po pomyślnej próbie słożenia obudowy, można wresscie sabrać się sa właściwe lutowanie. Na poesątek lutujemy układ scalony, a potem podstawkę precysyjną DIL-B . Następnie wkładamy drugą podstawkę w otwory pierwssej i mocno dociskamy. Teras kropelką cyny dobrse jest połącsyć dwie prseciwległe nóżki podstawek, aby utrsymać je rasem. Zabespiecsa to prsed wyciągnięciem górnej podstawki podesas wyjmowania programowanej pamięci. Tak zmontowaną płytkę wkładamy do obudowy i sprawdsamy po ras ostatni, esy jest dopaso-
wana. Na sam koniec warto podkleić kawałek nieprsewo-dsącej twardej gąbki, styropianu lub innego materiału pod podstawkę. Zapobiegnie to wciskaniu płytki w głąb obudowy podesas wkładania programowanej pamięci do podstawki. Obrasuje to fot. 3. W tym miejscu należy się uwaga. Jako podkładki nie można użyć esarnej gąbki, na której esasami kupuje się układy scalone. Gąbka ta jest bowiem prsewodnikiem i może doprowadsić do groźnego w skutkach swarcia. Po złożeniu obudowy i sakręceniu śrubek programator jest gotowy do pracy. Michał Szajner
WYKAZ ELEMENTÓW
Rezystory
R1...R7: 240D Kondensatory
Cl: 220uF/ó,3V C2: lOOnF Półprzewodniki
Ul: 74HC05 Różne
U2: podstawko precyzyjna
DIP-S - 2 sztuki
Zl: wtyczka Cannon DB-
25M
Obudowa wtyczki Cannon
DB-25
Elektronika Praktyczna 4/2003
NA CD M.IN.: KATALOG FIRMY C&D ORAZ AVR STUDIO 4.07, BASCOM, REALIZER II
g Międzynarodowy magazyn elektroników konstruktorów
5/2003
maj
15 zł 50 gr (w tym 7% vat)
MINIPROGRAMATOR SZEREGOWYCH PAMIĘCI EEPROM
i
REGULATOR MOCY STEROWANY SYGNAŁEM DMX512 UNIWERSALNY MODUŁ INTERFEJSOWY USB DWUPUNKTOWY TERMOMETR NA RS-232
CYFROWY MIERNIK POJEMNOŚCI LAMPOWY ODBIORNIK UKF m CPU-METER DO PC-TA ZEGAR MINIMALISTY HEADWAR
WANIE
ii U *
PROGRAMY] PROTEL DXP AUTOROUTER SPECCTRA VISUAL MICRO LAB

IBSW 164D-TC95 Indftks 376590
771640
769039
05>
PRICE: B EUR

Wyszukiwarka

Podobne podstrony:
elektronika praktyczna 2003
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