Konwerter P RUSB2DMX512 O J E K T Y Konwerter USB2DMX512 AVT xxx Powstanie poniżej opisanego konwertera USB2DMX512 wymusiło życie, a dokładniej producenci laptopów. Do tej pory do testowania własnych konstrukcji, jak i napraw sprzętu DMX, używałem przystawki wykonanej na procesorze PIC16F84, sterowanej przy pomocy portu LPT. Zmiana leciwego laptopa na nowszy, w którym zabrakło portu LPT oraz RS a, zaś królowało wszechwładne USB, zmusiła mnie do wykonania nowej konstrukcji konwertera sterowanego właśnie poprzez USB. Rekomendacje: polecamy uzdolnionym elektronicznie operatorom oświetlenia oraz wsyztskim Czytelnikom EP, którzy pasjonują się praktycznymi aplikacjami DMX a. Płytka PODSTAWOWE PARAMETRY Prace rozpocząłem od ściągnięcia z Internetu paru bezpłatnych programów sterujących transmisją DMX, które korzystały z portu USB. Po przeanalizowaniu zasady ich działania okazało się, że oprogramowanie wysyła do portu USB kompletny sygnał DMX512, wykorzystując bezpośredni dostęp do portu USB poprzez biblioteki DLL. Oczywiście tylko pod względem formatu danych i zależności czasowych jak wiemy, w warstwie fizycznej do przesyłania sygnału DMX wykorzystywany jest interfejs RS485. Dla mniej wtajemniczonych zamieszczam poniżej parę zdań wyjaśnienia, co to jest DMX i jaki jest format transmisji danych. Tajniki DMX System DMX512 (Digital Multiplex for 512 units) jest to cyfrowy multipleks dla 512 urządzeń. Został on opracowany w USA przez United States Institute for Theatre Technology (USITT), czyli Instytut Technologii Teatralnych Stanów Zjednoczonych. Umożliwia wysterowanie 512 kanałów za pomocą trójżyłowego przewodu. Do przesyłania sygnału DMX512 wykorzystywany jest interfejs RS485. Jako nadajnik stosuje się zazwyczaj układ 75176 jest to nadajnik/odbiornik do RS422/RS484. Układ ten służy do przesyłania sygnałów w obu kierunkach na odległość do 1200 metrów przy prędkości 4 Mb/s. Posiada on wewnętrzne ograniczenie prądowe oraz termiczną ochronę przed przeciążeniem. Urządzenia w standardzie DMX łączy się szeregowo (jeśli chodzi o sterowanie). Są one tak zbudowane, że posiadają wejście dla sygnału oraz wyjście, które umożliwia podłączenie następnego urządzenia. Do wyjścia ostatniego urządzenia w szeregu należy zawsze podłączyć tzw. terminator jest to po prostu wtyk XLR z wlutowanym pomiędzy styki 2 i 3 rezystorem 120 V. Jednak bardzo często producenci sprzętu wbudowują terminator do urządzenia, który możemy włączyć przełącznikiem, w tej sytuacji nie stosujemy zewnętrznego terminatora, tylko włączamy wewnętrzny. Jeżeli liczba urządzeń jest większa od 32 lub długość kabla sterującego wynosi więcej niż 1200 metrów, to należy zastosować wzmacniacz sygnału DMX, do wyjścia którego możemy podpiąć kolejne 32 odbiorniki lub dodatkowy odcinek kabla sterującego. Jako wzmacniacz sygnału służy układ 75176, z którego wykorzystujemy tylko nadajnik. Zgodnie z normą, do łączenia z sobą urządzeń należy używać 5 stykowych złączy AXR/XLR. Dopuszcza się również stosowanie złączy 3 stykowych. W tab. 1 przedstawiono sposób podłączenia do złącz AXR/XLR 3 i 5 stykowych, 31
Rys. 1. Protokół przesyłu danych a na rys. 1 przedstawiono protokół, według którego przesyła się 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 wynosi dokładnie 4 ms, czyli długość ramki wynosi 44 ms. 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 (jest on również nazywany BREAK). Czas jego trwania wynosi minimum 88 ms. Kolejnym sygnałem jest znacznik MARK AFTER BREAK (w skrócie MAB); czas jego trwania ustalono na 8 ms. Następnie powstały systemy zdolne rozpoznać znacznik o długości 4 ms i są one oznaczone jako DMX512/1990. Po przesłaniu MAB sterownik wysyła tzw. bajt startowy START CODE, którego wartość musi wynosić 00h. Tu kilka zdań wyjaśnienia, dlaczego bajt startowy musi wynosić 00h dla wszystkich urządzeń pracujących w systemie. Gdy definiowano podstawy DMX a, praktycznie jedy- Tab. 1. Sposób podłączenia sygnałów do złącz AXR/XLR 3 i 5 stykowych Złącze 3 stykowe AXR/XLR Nr pinu Złącze 5 stykowe AXR/XLR Nr pinu Funkcja 1 1 Masa (ekran) 11 2 2 DMX 3 3 DMX+ ************ 4 Brak podłączenia Dopuszcza się połączenie z DMX ************ 5 Brak podłączenia Dopuszcza się połączenie z DMX+ Rys. 2. Schemat elektryczny interfejsu 32
Rys. 3. Okno programu FTDI_monitor nymi urządzeniami, które mogły wykorzystać ten system, były dimmery i właśnie im przydzielono zerowy bajt startowy. Zamiarem twórców DMX a było to, aby każde nowe urządzenie, które będzie korzystało z systemu, miało swój unikatowy bajt startowy. Jednak nowe urządzenia zaczęły powstawać bardzo szybko, a równocześnie USITT zbytnio się nie spieszył, aby w specyfikacji systemu ująć je i przydzielić bajty startowe. Dalsze czekanie wiązało się dla firm z hamletowskim być albo nie być, dlatego wszyscy dla swoich urządzeń zastosowali ten dimmerowski bajt startowy i tak zostało do dnia dzisiejszego. Wartość bajtu startowego wynosi więc 00h. Jeżeli jego wartość będzie inna, odbiornik ignoruje 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 ją na maksimum 512, i dla tylu wynosi on 22668 ms, czyli dane będą odświeżane 44 razy na sekundę (bez wstawionych MBF). MBF jest wstawiany głównie w sytuacji, gdy wysyłana jest mniejsza liczba kanałów, a chcemy, aby zgodnie z zaleceniami specyfikacji dane były odświeżane 44 razy na sekundę. Sygnał DMX musi być przesyłany kablem, który został zaprojektowany do szybkiej transmisji danych. Oprócz spełnienia wymogów elektrycznych kabel powinien być odporny na działanie warunków atmosferycznych i mieć dużą odporność na uszkodzenia mechaniczne, na jakie jest narażony zwłaszcza podczas imprez plenerowych. Często użytkownicy używają do tego celu przewód mikrofonowy, uważając, że nie ma potrzeby wydawać o wiele większych pieniędzy na kabel DMX, kiedy wszystko działa na kablu mikrofonowym. Trzeba jednak być przygotowanym na to, że w każdej chwili mogą zdarzyć się zakłócenia oraz liczne błędy w transmisji, wynikające z różnic w impedancji falowej obu typów kabli. Impedancja falowa kabli mikrofonowych zazwyczaj jest mniejsza niż 100 V, zawiera się ona w granicach 50 80 V co może prowadzić do złego dopasowania falowego połączonych urządzeń, a w rezultacie do utraty informacji przesyłanej pomiędzy nimi. Impedancja falowa kabla do szybkiej transmisji cyfrowej powinna wynosić w granicach 110 120 V. Opis układu Rozwiązanie techniczne interfejsu przedstawiono na rys. 2. Podstawę interfejsu stanowi układ scalony FT232BM; jest to jednoukładowe rozwiązanie zapewniające konwersję USB na asynchroniczną transmisję szeregową. Układ ten zapewnia: t r a n s m i s j a d a n y c h p o p r z e z USB do 3 Mbd (TTL), 1 Mbd (RS232), 3 Mbd (RS422, RS485), obsługa sygnałów modemowych i handshaking sprzętowy oraz XOn/XOff, transmisja szeregowa UART bity danych (7/8), bity stopu PCB Rys. 4. Schemat montażowy płytki drukowanej (1/2), kontrola parzystości, brak parzystości, nieparzystość, znak, spacja, bufory: nadawczy 384 B i odbiorczy 128 B, ustawiany timeout dla bufora Rx, kontrola autotransmisji bufora dla RS485, wsparcie dla zawieszenia/wznowienia pracy, zintegrowany układ konwersji poziomów logicznych (5/3,3 V), zintegrowany obwód zerujący przy uruchomieniu układu, tryb interfejsu oraz rodzaju USB można zapisać w zewnętrznej pamięci EEPROM, z a p i s o r a z o d c z y t p a m i ę c i EEPROM na płytce konwertera, za pomocą programu dostarczanego przez producenta układu FT, wsparcie dla konfiguracji zasilania własnego, oraz zasilania z magistrali USB, zintegrowany regulator LDO 3,3 V dla I/O USB, zintegrowany powielacz częstotliwości PLL 6 48 MHz, zasilanie od 4,4 do 5,25 V, kompatybilny z USB 1.1 i 2. Uwaga: producent zapewnia praktycznie wszystkie sterowniki potrzebne do pracy pod kontrolą różnych systemów operacyjnych! Układ U3 pracuje w typowej aplikacji zalecanej przez producenta, dodano do niego tylko układ U1 75176. Jest to nadajnik/odbiornik RS485, z którego wykorzystano tylko nadajnik, który zapewnia konwersję sygnału szeregowego o poziomie TTL (pin 25 układu FT232BM) na sygnał różnicowy zgodny ze standardem RS485. Dioda LED1 sygnalizuje, że konwerter jest aktywny. 33
Rys. 5. Okno programu USB2DMX512 Convert Demo Na schemacie widać jeszcze jeden element pamięć EEPROM 93C46. Jej zadaniem jest przechowywanie różnych informacji także po zaniku zasilania. Każdy użytkownik, podłączając jakieś nowe urządzenie do komputera, zauważył, że system automatycznie je rozpoznał, pokazał nazwę modelu, producenta itd. Komputer uzyskuje takie informacje właśnie dzięki pamięci EEPROM umieszczonej w urządzeniu. W tym przypadku urządzenie będzie widoczne dla komputera jako interfejs USB DMX512. Interesujące nas dane możemy zapisać do EEPROMU np. za pomocą programu FTDI_monitor (rys. 3). Zapis do pamięci EEPROM można również przeprowadzić za pomocą aplikacji Programmer FTD2xxST. Aby dokonać zapisu do pamięci, musimy podłączyć moduł do portu USB i zainstalować sterownik D2XXDriver. Dopiero po tej operacji możemy uruchomić program FTDI_monitor i dokonać odpowiednich wpisów do pamięci EEPROM. Oczywiście, możemy nie montować pamięci EEPROM, wówczas układ FT232BM przyjmie parametry domyślne i będzie zgłaszał się w systemie tak, jak przewidział to jego producent. Układ został zmontowany na dwustronnej płytce drukowanej, której schemat montażowy pokazano na rys. 4. W celu zachowania niewielkich rozmiarów zastosowano głównie elementy SMD. Wyjątkiem jest np. układ nadajnika 75176 w obudowie DIP8, który umieszczono w podstawce. Ponieważ jest to jedyny element, który może ulec uszkodzeniu w trakcie normalnej eksploatacji, takie rozwiązanie ułatwia ewentualną wymianę. Montaż interfejsu W publikacjach na temat lutowania elementów SMD autorzy dają dobre rady, jak sobie uprościć pracę. Postanowiłem więc podzielić się swoją metodą montażu, z jednym zastrzeżeniem, że jest ona opłacalna tylko przy większej ilości montowanych płytek. Wynika to z faktu, że do lutowania musimy zastosować pastę lutowniczą, która jest niestety dość droga a termin przydatności niezbyt długi (można go nieco przedłużyć, przechowując ją w lodówce). Krótki termin przydatności spowodowany jest składem chemicznym pasta zawiera proszki metali Sn Pb Ag, topnik na bazie żywicy, rozpuszczalnik, aktywatory usuwające tlenki z powierzchni lutowanej oraz dodatki tiksotropowe, nadające odpowiednią lepkość i plastyczność. Z czasem następuje rozwarstwienie poszczególnych składników oraz częściowe odparowanie rozpuszczalnika wówczas pasta praktycznie nie nadaje się do użytku. Jest ona sprzedawana w plastikowych strzyka w ka c h z a ko ń c z o - nych z jednej strony gwintowaną końcówką, na którą możemy nakręcić specjalne igły przydatne do precyzyjnego dozowania. Pastę wyciska się za pomocą pistoletu, nanosząc ją na punkty lutownicze. Zamiast pistoletu można wykorzystać rękojeść wkrętaka i wycisnąć odpowiednią ilość np. na płytkę szklaną lub papier, a później nanieść ją na płytkę za pomocą niewielkiej szpatułki. Następnie osadzamy na paście wszystkie elementy SMD, oczywiście musimy to zrobić tylko na jednej stronie płytki. W naszym przypadku elementy są tylko na stronie top layer. Nie należy przejmować się, jeżeli leżą one niezbyt równo, ponieważ podczas lutowania napięcie powierzchniowe wycentruje je wszystkie względem punktów lutowniczych. Następnym etapem jest stopniowe ogrzewanie płytki tak, aby temperatura pasty osiągnęła wartość ok. 180 0 C. Ja używam do tego celu ceramicznej płyty kuchennej. Kładziemy płytkę na powierzchnię pola grzewczego elementami do góry i stopniowo podgrzewamy dzięki dość precyzyjnemu termostatowi parametry lutowania są powtarzalne. Stopniowo podnosimy temperaturę, obserwując zachowanie pasty. Kiedy następuje przemiana w metaliczny lut, przestajemy zwiększać temperaturę, do czasu aż wszystkie elementy zostaną wlutowane. Cały proces trwa około dwóch minut, po czym płytkę przesuwamy na sąsiednie zimne pole płyty i czekamy aż ostygnie. Interfejs zasilany jest napięciem dostępnym na złączu USB, więc nie ma konieczności stosowania oddzielnego zasilacza. W pamięci EEPROM zapisano maksymalną Rys. 6. Okno programu Open DMX Theater Rys. 7. Okno konfiguracji częstotliwość wysyłania paczek danych przez program Open DMX Theater 34
wartość prądu, jaką system ma zarezerwować do zasilania konwertera wynosi ona 100 ma. Instalacja sterowników Po podłączeniu modułu konwertera USB DMX512 do portu USB zostanie on wykryty przez Windows i rozpocznie się proces instalowania odpowiednich sterowników. Przebiega on identycznie jak w przypadku innych urządzeń Plug&Play. Dla obu zamieszczonych na płycie programów należy zainstalować drivery znajdujące się w katalogu D2XXDriver (publikujemy je na CD EP5/2006B). Podczas instalacji sterowników ignorujemy informację o braku testów w laboratorium Microsoftu. po zainstalowaniu oprogramowania wyświetlony zostanie komunikat o gotowości sprzętu do pracy. Jeżeli będziemy używali oprogramowania, które wymaga podłączenia urządzenia do portu COM, musimy zainstalować sterowniki emulujące tenże port. Jednak wcześniej należy usunąć poprzednie sterowniki, najlepiej przeprowadzić tę operację za pomocą aplikacji FTD2XXUN (program ten znajduje się w katalogu D2XXDriver). Po usunięciu poprzednich sterowników podłączamy moduł do portu USB, co zainicjuje powtórny proces instalacji sterowników. Postępujemy w sposób analogiczny jak podczas instalacji sterowników D2XXDriver, jednak wskazujemy do zainstalowania drivery znajdujące się w katalogu ComPort- Driver. Jako pierwszy zostanie zainstalowany USB High Speed Serial Converter. Po zamknięciu kreatora system wykryje kolejne urządzenie USB Serial Port i ponownie uruchomi program instalujący sterowniki (drivery są w tym samym katalogu, WYKAZ ELEMENTÓW Rezystory SMD rozmiar 0805 R1, R2: 27 V R3: 1,5 kv R4: 470 V R5: 100 V R6: 10 kv R7: 2,2 kv Kondensatory SMD rozmiar 0805 C1...C5: 100 nf C6: 100 µf/16 V C7, C8: 33 pf C9: 33 nf tj. ComPortDriver). Po skończonej instalacji będziemy dysponowali w systemie dodatkowym portem Com, któremu zostanie przypisany pierwszy wolny numer. W Menedżerze Urządzeń pod pozycją Kontrolery uniwersalnej magistrali szeregowej znajdziemy urządzenie USB High Speed Serial Converter, a wśród portów (COM i LPT) pojawi się USB Serial Port (COM?). Przed rozpoczęciem użytkowania wirtualnego portu COM możemy zajrzeć do jego właściwości. Opcje dostępne w Port Settings są zupełnie typowe dla portów szeregowych, ale pod przyciskiem Advanced mamy nową możliwość, którą warto się zainteresować. Mamy tam udostępnioną opcję przypisywania nazwy wirtualnemu portowi. Możemy bowiem ustawić USB Serial Port jako prawie dowolną pozycję COM oczywiście pod warunkiem, że dany numer portu nie jest już zajęty. Program USB2DMX512 Convert Demo Program USB2DMX512Demo nie wymaga instalacji, uruchamiamy go klikając w katalogu Application ikonę USB2DMX512Demo. Jeżeli interfejs został podłączony do portu USB przed uruchomieniem programu, to po otwarciu okna aplikacji (rys. 5) będzie widoczny omawiany konwerter. Jeżeli interfejs podłączymy już po uruchomieniu programu, musimy kliknąć Refresh, wówczas program powinien znaleźć podłączone urządzenie i wyświetlić jego nazwę w okienku. Następnie lewym przyciskiem myszy klikamy nazwę Konwerter USB DMX512, uaktywni się wtedy przycisk Open, który klikamy, a dioda LED na płytce konwertera powinna się uaktywnić i całość będzie gotowa do pracy Półprzewodniki U1: 75176 DIP8 U2: 93C46 SMD EEPROM Ser.5 V 128x8/64x16 SO8 U3: FT8U232BM przetwornik USB2.0/ RS232 LQFP32 LED1: dioda LED SMD Inne XTAL1: rezonator kwarcowy 6 MHz 49U S (niskoprofilowy) Con1: gniazdo USB typ B SMD Con2: gniazdo męskie NS25 W3P L1: ferrytowy koralik przeciwzakłóceniowy (nazwa Konwerter USB DMX512 wyświetli się tylko w tym przypadku, jeżeli zapisaliśmy ją w pamięci EEPROM, inaczej urządzenie będzie widoczne jako FTDI FT8U2XX). W okienku Start Channel możemy ustawić nr startowy DMX; domyślnie jest ustawiony jako 1. Open DMX Theater Program ten wymaga instalacji. Klikając ikonę Setup Program USB_ DMX, rozpoczynamy proces instalacyjny. Po zakończeniu tej operacji uruchamiamy program (rys. 6). W programie tym mamy do dyspozycji dwa pola nastawcze A górne i B dolne, każde po 16 obwodów. Daje to możliwość zaprogramowania dwóch scen świetlnych i sekwencyjny sposób ich wprowadzania. Po wprowadzeniu sceny zaprogramowanej na A przy pomocy sumy Master, scenę na B możemy wprowadzić automatycznie klawiszem Auto B, z czasem ustawionym przy pomocy suwaka Time. Po wprowadzeniu obrazu B zwalnia się pole A, na którym można zaprogramować następną scenę świetlną. W ten sposób możemy obsłużyć spektakl teatralny lub imprezę estradową. Program ten emuluje pracę na manualnych nastawniach teatralnych, używanych powszechnie w teatrach w latach 60. i 70. ubiegłego wieku. Przycisk Black służy do natychmiastowego wygaszenia wprowadzonego obrazu świetlnego, natomiast przyciski Cut A, B i Copy A, B służą do kopiowania lub wycinania ustawień odpowiedniego pola nastawczego. Aby była możliwość transmisji ustawień pól do urządzeń DMX, należy najpierw przejść do zakładki Settings i kliknąć lewym przyciskiem myszy klawisz Connect, a po uaktywnieniu się przycisku Send kliknąć w niego. Wówczas zostanie zainicjowana transmisja danych do modułu interfejsu, co sygnalizuje dioda LED modułu. W okienku DMX Out frames per second (rys. 7) można ustalić częstotliwość wysyłania paczek danych. Następnie wracamy do okna głównego programu Faders i możemy rozpocząć spektakl. A więc do dzieła! Gong, widownia 0% i wprowadzamy pierwszą scenę świetlną... Andrzej Biliński info@dab system.com www.dab system.com 35