Budowa mergera nie jest tak prosta, jak opisywanego w poprzednim numerze EP splittera, w którym wystarczyło "rozdzielić" sygnał na kilka wyjść, co daje się łatwo zrobić z użyciem kilku driverów MAX485.
W mergerze trzeba zsumować dwa niezsynchronizowane ze sobą strumienie DMX. Każdy ze strumieni może przenosić od 24 do 512 bajtów danych.
Funkcjonalność taką można zrealizować z użyciem mikrokontrolera mającego dwa interfejsy UART. Wskazane, aby można było ustalić, jaką część strumienia wykorzystują poszczególne wejścia, co umożliwi połączenie kaskadowe wielu mergerów. Do skonfigurowania takiego urządzenia, co prawda, wystarczyłyby zworki, ale większe możliwości daje impulsator i wyświetlacz alfanumeryczny.
Budowa i zasada działania
Schemat ideowy projektu mergera DMX pokazano na rysunku 1. Napięcie zasilające 230 VAC jest obniżane w transformatorze, następnie prostowane za pomocą diod D1 i D2, po czym stabilizowane przez układ U1. Dane wejściowe konwertowane są w układach U2 i U3, a następnie trafiają na wejścia UART mikrokontrolera.
Przeważnie merger będzie jedynym urządzeniem podłączonym do konsoli czy interfejsu komputera, dlatego zworki JP2 i JP3 powinny być założone. Przekształcone dane wyjściowe z mikrokontrolera są konwertowane za pomocą U5.
Mikrokontroler steruje także alfanumerycznym wyświetlaczem LCD oraz odczytuje informacje z impulsatora. Wyświetlacz i impulsator umieszczono na osobnej płytce, zamontowanej pod kątem 90 stopni w stosunku do płyty głównej.
Jak widać, budowa urządzenia jest nieskomplikowana, program już niestety taki nie jest. Oprogramowanie mikrokontrolera odbiera dane z obu interfejsów USART i zapamiętuje je w tablicy. Obsługa USART odbywa się z użyciem przerwań. Realizuje to procedura (dla USART0) pokazana na listingu 1.
Przy odbiorze danych z USART z użyciem mechanizmu przerwań należy pamiętać, aby zadeklarować przerwanie jako "Signal". W przeciwnym wypadku dojdzie do przepełnienia stosu, gdyż znacznik przerwania jest kasowany po zakończeniu jego obsługi, a nie po wejściu w przerwanie, tak jak to się dzieje w wypadku przerwań od timerów i innych peryferii. Jeśli konieczne byłoby przerwanie wielopoziomowe, należy postąpić w następujący sposób:
- Zadeklarować przerwanie jako "Signal".
- Odblokować przerwania za pomocą "sei()".
- Obsłużyć przerwanie.
Przerwania nie trzeba odblokowywać przy wychodzeniu z procedury jego obsługi. Dzieje się to automatycznie przy odtwarzaniu rejestru CREG.
Procedura odbiorcza jest zabezpieczona przed przepełnieniem bufora. Jak wspomniano, konsola może wysyłać od 24 do 512 bajtów danych. W zmiennej curLenDmx znajduje się liczba odebranych danych. Gdy dwa razy zostanie odebrana taka sama ich liczba (zmienna prevLenDmx), jest ona zapamiętywana w LenDmx0 dla USART0 lub LenDmx1 dla USART1.
Procedura odbioru danych z USART1 jest taka sama, jak z USART0. Różni się tylko nazwami rejestrów. Odebrane dane są kopiowane do bufora nadawczego. Realizuje to procedura pokazana na listingu 2.
Zależnie od zmiennej podzial jest kopiowana część pierwszego bufora odbiorczego do nadawczego. Następnie, drugi bufor odbiorczy jest kopiowany do nadawczego za danymi pierwszego bufora. Jeśli długość przekroczyłaby maksymalna liczbę danych, jest ona ograniczana. Jeśli jest mniejsza, to po wyliczeniu jest zapamiętywana w zmiennej newLen.
Procedura transmisyjna korzysta z tej zmiennej, dzięki czemu nie wysyła niepotrzebnych danych, co zwiększa częstotliwość odświeżania. Dane wysyłane są z użyciem przerwań, jednak najpierw generowane są sygnały BREAK i MAB (listing 3).
Ponadto, ta procedura wpisuje pierwszy bajt do USART, co powoduje jego wysłanie i wygenerowanie przerwania. Pozostałe dane są wysyłane z wykorzystaniem mechanizmu przerwań (listing 4).
Procedura obsługi impulsatora została zrealizowana z użyciem mechanizmu przerwań, dzięki czemu jest nieskomplikowana. Pokazano ją na listingu 5.
Wykaz elementówRezystory: (SMD 1206) Kondensatory: Półprzewodniki: Inne: |
Montaż i uruchomienie
Schemat montażowy Mergera DMX pokazano na rysunku 2. Montaż jest typowy i nie wymaga omawiania. Jeśli płytki wykonujemy samodzielnie, to płytę główną można wykonać jako jednowarstwową. Wtedy jest konieczne zamontowanie kilkunastu zwór z drutu.
Płytkę wyświetlacza i impulsatora montujemy pod kątem 90 stopni w stosunku do płyty bazowej, za pośrednictwem goldpina kątowego. Należy zwrócić uwagę na jego typ. Szczegóły można zobaczyć na fotografii 3.
Złącze J8 zastosowano tylko w celu wzmocnienia mechanicznego płytki. Wyświetlacz montujemy na gnieździe goldpin. Po włączeniu zasilania dioda D4 powinna świecić natomiast D3 migać z częstotliwością około 1 Hz.
Na wyświetlaczu powinien pojawić się ekran powitalny. Jeśli nic nie widać lub kontrast jest za mały, regulujemy go potencjometrem P1. Pod układy MAX485 warto zastosować podstawki. Jeśli procesor nie jest zaprogramowany można to zrobić przez złącze JP4 (JTAG). Ustawienie bitów konfiguracyjnych pokazano na rysunku 4. Płytka Mergera DMX jest przystosowana do zamontowania w obudowie KM-60.
Obsługa
Po włączeniu zasilania pojawi się ekran powitalny, po czym ukaże się ekran roboczy, a na nim komunikat:
1: aaa* 2: bbb*
P: ccc N: ddd
Poszczególne symbole oznaczają: aaa - liczba odebranych danych na pierwszym wejściu DMX, gwiazdka za liczbą oznacza trwającą transmisję (on-line), znak minus, brak transmisji przez co najmniej 1 sekundę (off-line).
bbb - jak wyżej, ale dla wejścia drugiego.
ccc - liczba danych, które zostaną wysłane z pierwszego kanału na wyjście; za nimi zostaną przesłane dane z drugiego kanału (miejsce podziału bufora nadawczego).
ddd - liczba danych wysyłanych na wyjście.
Porada: urządzenie, które wysyła dłuższe ramki powinno być włączone do pierwszego kanału. Dzięki temu, zależnie od ustawienia mergera i liczby danych odbieranych w drugim kanale, ,merger będzie wysyłał mniej niż 512 bajtów danych, co zwiększy częstotliwość odświeżania urządzeń odbiorczych. |
Kręcąc impulsatorem zmieniamy liczbę danych wysyłanych z pierwszego kanału. Tę liczbę można zmieniać z krokiem 16. Aby zapamiętać nastawę należy nacisnąć impulsator. Przykładowy sposób włączenia meregerów można zobaczyć na rysunku 5.
Sławomir Skrzyński, EP