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 - 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 | |
---|---|---|---|
Pierwsza wersja dekodera | PDF - duży schemat | ||
Pierwsza wersja dekodera | PDF - mały schemat | ||
Pierwsza wersja dekodera | Schemat w formacie Eagle | ||
Kod do zaprogramowania mikrokontrolera | Oryginalne pliki ze strony Dean'a Probst'a | ||
Kod do zaprogramowania mikrokontrolera | HEX - skompilowany kod dla mikrokontrolera PIC16F84 | ||
Druga wersja dekodera | PDF - duży schemat | ||
Druga wersja dekodera | PDF - mały schemat | ||
Druga wersja dekodera | Schemat w formacie Eagle |
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...