Dekodery jazdy

W tej sekcji znajduje się opis dekoderów DCC do zamontowania w lokomotywach. Jako, że posiadam pojazdy w skali H0, moje pierwsze dekodery powstały w wersji przewlekanej (czyli z elementów, które montuje się na płytkach drukowanych z wywierconymi otworami i lutuje na drugiej stronie smiley - to dla tych, którzy nie wiedzą). Taka wersja jest też łatwa do przerabiania i eksperymentowania. Uciążliwe jest wykonanie płytek, bo dla różnych typów lokomotyw trzeba projektować płytki o odpowiednich rozmiarach. Myślę, że kiedy uda się opracować układ, który będzie pracował w miarę niezawodnie, konieczne będzie wykonanie wersji SMD (do montażu powierzchniowego), która będzie miała takie gabaryty, że pozwoli to na instalację w dowolnych modelach.
 
Na pierwszy ogień poszła lokomotywa z zestawu PIKO Hobby PKP (czyli przemalowana niemiecka BR218).
 
 
Znalazłem w Internecie opis dekodera, który postanowiłem wykonać. Zmontowałem całość w postaci "pajączka" na płytce uniwersalnej, w ten sam sposób zrobiłem jak najprostszy booster i... jakimś cudem ruszyło za pierwszym razem. Trzeba jeszcze było zaprogramować mikrokontroler (PIC16F84). Okazało się, że wcale nie jest to takie trudne. Szczegóły w dalszej części opisu. Pierwszy sukces dał mi dużą dawkę optymizmu. Opis, którym posłużyłem się przy budowie, znajduje się tutaj. Jest to faktycznie przeróbka dekodera opracowanego przez Dean'a Probsta.



 
 
Schemat przedstawia dokładnie taki układ, jaki wykonałem. Niestety jakość ilustracji jest marna (oryginał powstał w programie EAGLE 4.0 for Windows firmy CadSoft Computer Inc. - i nie bardzo dało się go wyeksportować jako grafikę w odpowiednim pomniejszeniu). W dalszej części opisu znajdują się wersje do ściągnięcia i wydrukowania w dobrej jakości.
Układ jest wyposażony w sterowanie dwoma wyjściami funkcyjnymi.Zapewniło to sterowanie oświetleniem (żarówkami) w lokomotywie. Możliwe jest zaprogramowanie zmiany świateł w zależności od kierunku jazdy oraz różnych efektów świetlnych - naprzemienne miganie świateł głównych i wstecznych, efekt strobe, mars i jeszcze kilka innych.
 
 

Zasada działania

 

Sercem całego urządzenia jest mikrokontroler jednoukładowy PIC16F84 (można także zastosować starszy PIC16C84). Układ ten posiada zintegrowaną pamięć programu typu flash (1024 słowa 14-sto bitowe), 68 bajtów pamięci operacyjnej RAM, 64 bajty pamięci danych typu EEPROM oraz 13 pinów I/O, które indywidualnie mogą być konfigurowane jako wejścia lub wyjścia. Procesor jest taktowany zewnętrznym oscylatorem kwarcowym i pracuje w tym przypadku z częstotliwością 8MHz. Sygnał DCC jest podawany wprost z torów poprzez rezystor R1 na pin 13 IC1. Ten sam sygnał poprzez mostek prostowniczy D1,D2,D5,D6 i stabilizator IC2 jest wykorzystywany do zasilania układu.
Elementy R4,R5,R6,D7 i T1 tworzą tzw. układ Brown-Out, który zapewnia reset mikrokontrolera w przypadku spadku napięcia zasilania poniżej dozwolonego poziomu i zabezpiecza układ przed zawieszeniem. Uklad ten jest zbudowany dokładnie wg schematu zamieszczonego w specyfikacji technicznej PIC16F84.
Dodatnia połowa mostka prostowniczego jest zdublowana (D3 i D4) i zasila układ sterowania silnikiem oraz wyjścia funkcyjne. Dzięki temu przy bardzo krótkich przerwach w doprowadzaniu sygnału kodensatory C1 i C2 podtrzymują napięcie zasilające IC1 i nie dopuszczają do resetu procesora.
Sterowanie silnikiem odbywa się za pomocą modulacji szerokości impulsu PWM poprzez wzmacniacze operacyjne mocy IC3A i IC3B (L2722). Wzmacniacze są w stanie wytrzymać chwilowe obciążenia ok. 1A, co wystarcza do sterowania silnikiem nawet w skali H0. Sterowanie PWM zapewnia płynną pracę silnika już przy małych prędkościach, co nie zawsze było do osiągnięcia przy sterowaniu za pomocą zmiany poziomu napięcia. W przypadku PWM silnik jest zasilany pełną wartością napięcia ale podawaną w impulsach o zmiennej długości. Krótki impuls - małe obroty, dłuższy impuls - szybsze obroty.
Dzielnik napięcia R2,R3 ustala napięcie odniesienia dla wzmacniaczy operacyjnych.
Za sterowanie funkcjami odpowiedzialne są dwa układy R7,T2 oraz R8,T3. Można dołączyć do pięciu takich układów, odpowiednio do pinów IC1: 9 - F3, 8 - F4, 3 - F5. Mikrokontroler jest też w stanie wysterować pojedyńcze diody LED. Można wtedy pominąć tranzystor i podłączyć diodę poprzez rezystor (o właściwej rezystancji) do odpowiedniego wyprowadzenia IC1.
 
 

Uruchomienie

 

Przed zmontowaniem układu należy zaprogramować mikrokontroler. W sekcji Elektronika jest opisany prosty programator i sposób programowania mikrokontrolerów rodziny PIC. Plik z kodem źródłowym dostępny jest w galerii plików do pobrania. Schemat podłączenia dekodera w lokomotywie wygląda następująco:



 
Po udanych próbach z prototypem, zaprojektowałem płytkę drukowaną i całość zamontowałem w lokomotywie. Nie wiem, jak funkcjonują fabryczne dekodery, ale ten sprawuje się bardzo dobrze. Lokomotywa jeździ płynnie, oświetlenie działa, wydaje się, że wszystko jest OK. Poniższe zdjęcia pokazują w jaki sposób umieściłem dekoder wewnątrz lokomotywy. Jest on przyklejony zwykłą taśmą izolacyjną do ramy pojazdu.





 
 
Następnie stwierdziłem, że sterowanie jedną lokomotywą to nie jest nic rewelacyjnego. Dopiero, kiedy niezależnie będzie można sterować większą ilością pojazdów, to będzie można uznać pierwszy rozdział budowy systemu DCC za zamknięty. Kupiłem więc kolejną lokomotywę i zbudowałem do niej drugi dekoder. Tym razem była to GP18 wyprodukowana przez firmę MECHANO.
 
 

Druga wersja dekodera

 






 
Drugi dekoder jest w zasadzie identyczny, z tą różnicą, że jako układ Brown-Out zastosowany został specjalizowany chip resetu DS1813 firmy Maxim (Dallas). Układ ten generuje impuls resetujący procesor po tym, jak napięcie zasilające spadnie poniżej ustalonego poziomu. Z eksperymentów jakie przeprowadziłem wynika, że pierwszy dekoder sprawuje się lepiej. Jest to spowodowane tym, że DS1813 resetuje układ już przy napięciu w granicach 4,0V do 4,75V (w zależności od wersji ukladu). W przypadku pierwszego dekodera napięcie to jest znacznie niższe. Być może układ będzie pracować znacznie lepiej po zastosowaniu zamiast DS1813 ukladu przeznaczonego na napięcie 3,3V (DS1818). Na razie nie udało mi się jednak nigdzie go kupić (przynajmniej w Poznaniu).
Dekoder z tym układem opisany jest na stronie TAPRK. Mankamenty w pracy tego dekodera objawiają się tym, że lokomotywa czasem 'szarpie' albo na chwilę się zatrzymuje.
 
 

 
Kolejną różnicą w budowie drugiego dekodera jest sterowanie wyjściami funkcyjnymi. Tutaj zrezygnowałem z tranzystorów i podłączyłem diody LED poprzez rezystor ograniczający bezpośrednio do wyjść mikrokontrolera.
 

 

 

Poniżej dostępne są wszystkie pliki niezbędne przy budowie dekoderów
 
  Nazwa Opis Pobierz
application/pdf Pierwsza wersja dekodera PDF - duży schemat Download
application/pdf Pierwsza wersja dekodera PDF - mały schemat Download
application/octet-stream Pierwsza wersja dekodera Schemat w formacie Eagle Download
application/x-octet-stream Kod do zaprogramowania mikrokontrolera Oryginalne pliki ze strony Dean'a Probst'a Download
application/octet-stream Kod do zaprogramowania mikrokontrolera HEX - skompilowany kod dla mikrokontrolera PIC16F84 Download
application/pdf Druga wersja dekodera PDF - duży schemat Download
application/pdf Druga wersja dekodera PDF - mały schemat Download
application/octet-stream Druga wersja dekodera Schemat w formacie Eagle Download
 
 
Wszystkie opracowania są własnością intelektualną ich autorów, na stronie zostały umieszczone tylko w celach informacyjnych. Wykorzystanie ich w celach komercyjnych jest możliwe wyłącznie za zgodą autorów.
Schematy i płytki drukowane zostały opracowane przeze mnie na podstawie opisów dostępnych w Internecie. Układy zostały przetestowane, jednak NIE PONOSZĘ ŻADNEJ ODPOWIEDZIALNOŚCI za ewentualne szkody spowodowane eksploatacją opisanych urządzeń. 
 

Kilka miesięcy później...

 
 
    Po dłuższej przerwie zrobiłem kolejny dekoder. Jak już wcześniej zapowiadałem, tym razem pokusiłem się o wersję SMD. Wykorzystałem do tego opracowanie ze strony http://www.merg.org.uk (decod10d). Po zbudowaniu układu i zaprogramowaniu mikrokontrolera kodem z pliku mbint104.hex przystąpiłem do próby generalnej; zamontowałem dekoder w lokomotywie i podłączyłem zasilanie. Niestety w tym momencie spalił się mostek H zbudowany na MOS-FETach (a tak trudno było je zdobyć ).
Po długim dochodzeniu doszedłem do wniosku, że procesor załącza obie połówki mostka jednocześnie powodując kompletne zwarcie i spalenie mostka. Nie wiem dlaczego tak się dzieje, trzeba to sprawdzić - zajmie mi to trochę czasu. Na szczęście na stronie dostępne jest jeszcze inne oprogramowanie (decod10d.hex).Po przeprogramowaniu PIC-a i wymianie tranzystorów udało się uruchomić układ. Działa dużo lepiej niż te zbudowane na L272.

 
Porównanie mojego decodera i fabrycznego ROCO (zielony).

Widok z dołu.

Widok z góry.
 
 
    Jest dostępna też ulepszona wersja (decod13 na tej samej stronie), która ma dużo większe możliwości - odpowiednik sklepowych dekoderów za ok. 150 PLN w momencie publikacji tego tekstu.
 
    Zbudowałem też urządzenie, które nazywa się DCC Ministation i pozwala na sterowanie czterech lokomotyw bez użycia komputera. Postaram się to wkrótce opisać na stronach. Na razie mam trudności ze znalezieniem czasu. Opis Ministation można znaleźć na stronie MiniDCC.
 

Witrynę napędza Drupal, system zarządzania treścią o publicznie dostępnym kodzie źródłowym