Moduł przeznaczony dla miłośników modeli w skali H0 i większej, którzy małym kosztem chcą ucyfrowić i udźwiękowić swoją flotę. Dodatkowe zalety dekodera to dobra dostępność elementów oraz stosunkowo łatwy montaż i serwisowanie. Jednak te cechy spowodowały, że dekoder nie jest miniaturowy. Ograniczenie kosztów nie pozwoliło na zaprojektowanie obwodu PCB 4-warstwowego, który pozwoliłby na zmniejszenie wymiarów dekodera. Jeśli Czytelnicy wykażą zainteresowanie powstanie mniejsza konstrukcja o znormalizowanych wymiarach 15×30 mm ze złączem Plux22 ale trzeba mieć na uwadze fakt, że taki dekoder będzie droższy.
Dekoder przetestowano na: DR5000, PICO SmartController Light, ROCO10764 z MultiMouse v1.05, NanoX – wersja obsługująca funkcje do F28. Nie można zagwarantować, że na innych systemach działa bezbłędnie. Zestawienie parametrów i funkcji dekodera pokazuje tabela 1.
Budowa i działanie
Schemat dekodera został pokazany na rysunku 1. Jest zasilany napięciem przemiennym z torowiska. Diody D1, D2, D4, D5 tworzą mostek zasilający stabilizator U1 i sterownik silnika U2. Stabilizator TS2940CW-3.3 ma tą unikalną cechę, że na swoim wejściu akceptuje napięcia do 26 V i krótkie impulsy do 60 V. Ponadto radiator jest na potencjale masy, tak jak radiatory U2 i U3, co pozwala na łatwe odprowadzenie ciepła, co nie byłoby możliwe, w przypadku SPX1117, którego radiator jest połączony z Vout. W takim przypadku konieczna byłaby dodatkowa powierzchnia radiatora na PCB a ze względu na wymiary nie ma na to miejsca. Poza tym, maksymalne napięcie SPX1117 to 18 V (niszczące 20 V) a norma DCC wymaga dla skali H0 odporności na napięcie do 22 V.
Elementy D3 i D6 separują główne zasilanie 3,3 V używane przez wzmacniacz audio i dodatkowe urządzenia, takie jak serwomachnizmy czy dodatkowe oświetlenie LED, od zasilania mikrokontrolera i podtrzymania zawartości pamięci RAM.
Funkcje drivera silnika pełni układ A4952ELYRT-T w miniaturowej obudowie MSOP-10. Mimo małych wymiarów, maksymalny prąd drivera wynosi 3 A. W dekoderze, ze względu na małą powierzchnię radiatora i wytrzymałość diod w prostowniku, prąd jest ograniczony do 1 A. Wartość prądu ogranicza napięcie na wyprowadzeniu Vref (nóżka numer 5). Aby zaoszczędzić miejsca na PCB, nie zastosowano rezystorów tylko napięcia z przetwornika DAC mikrokontrolera.
Wzmacniacz audio został zrealizowany na bazie układu TPA2005D1DGN w miniaturowej obudowie MSOP-8. Mimo małych wymiarów potrafi dostarczyć 1,4 W mocy. W dekoderze moc jest ograniczona przez napięcie zasilania do około 0,5 W, co przekłada się na pobór prądu około 150 mA dla obciążenia głośnikiem 8 Ω.
Sercem dekodera jest STM32F091CCT6, który posiada aż 256 kB pamięci FLASH, co pozwala zmieścić około minuty sampli audio 8 kHz 16-bit. Wydaje się to niemożliwe, ponieważ 8000 Hz · 2 (próbki 16-bit) · 60 sekund daje blisko 1 MB. Dzięki zastosowaniu kodowania ADPCM udało się skompresować sample 4-krotnie.
Rezystory R4, R5 i R6, R7 tworzą dzielniki napięcia pozwalające mierzyć napięcie na torach. Dzięki temu udało się zrealizować dwie funkcje, automatyczne zatrzymanie (ABC) i ograniczenie prędkości obrotowej silnika i jasności świateł od napięcia na torach. Rezystor R8 ogranicza prąd wejścia użytego do dekodowania sygnału DCC. Rezystor R11 ogranicza prąd wejścia UART, które będzie używane do wgrywania nowych wersji programu i dźwięków bez otwierania lokomotywy przez dodatkowy interfejs.
Podwójne tranzystory T1 i T2 sterują funkcjami świateł FR i FH oraz wyjściami Fo1 i Fo2. Na rezystorach R9, R10 odkłada się napięcie proporcjonalne do płynącego prądu, co pozwala oszacować prąd płynący przez tranzystory, natomiast napięcie z R1 określa prąd silnika.
Montaż
Schemat płytki PCB został pokazany na rysunku 2 i rysunku 3.
Montaż wykonujemy zgodnie z ogólnymi zasadami, jednak należy zwrócić szczególną uwagę na przylutowanie radiatorów układów U2 i U3. Jednym ze sposobów jest skorzystanie z lutownicy HotAir. Wygląd zmontowanego dekodera dobrze pokazuje rysunek 4 i rysunek 5.
W przypadku zastosowania mikrokontrolera STM32F091CC nie montuje się kondensatorów C7 i C8. Są one potrzebne dla STM32L4P5CGT6P, który wymaga dodatkowych napięć zasilających mikrokontroler. W tym przypadku liczba wyjść funkcyjnych jest mniejsza o dwa. Lepszą alternatywą od STM32L4P5CGT6 jest STM32L4Q5CGT6, który kondensatorów nie wymaga. Oba mikrokontrolery posiadają 1 MB pamięci FLASH, co pozwala zmieścić ponad 4 minuty sampli audio 8 kHz/16-bit, czy dwie minuty 16 kHz ale ze względu na dużo wyższą cenę i trudności w zakupie tych mikrokontrolerów, na razie nie powstała stosowna wersja oprogramowania. Jeśli Czytelnicy będą zainteresowani taką wersją programu i poprą to stosowanymi e-mailami, taka wersja powstanie. Duża pamięć pozwoli na umieszczenie dodatkowych efektów, takich jak zapowiedzi peronowe, rozruch i wyłączenie silnika, więcej dźwięków syren, gwizdków, hamowania i podobnych.
Uruchomienie
Po doprowadzeniu zasilania 10...22 V, bez podłączonego głośnika i silnika pobór prądu powinien wynosić poniżej 100 mA. Najczęściej waha się w granicach 50...70 mA. Jeśli napięcie stabilizatora mieści się w granicach 3,3 V ±5% można przystąpić do zaprogramowania mikrokontrolera. Wsady znajdują się w materiałach dodatkowych do artykułu oraz są dostępne na stronie http://bit.ly/3nW6ZsV.
Do zaprogramowania wystarczy programator ST-LINK-V2 ale wygodniejszy jest ST-LINK-V2-1 lub ST-LINK-V3. Sposób podłączenia popularnego ST-LINK-V2 z płytka dekodera został pokazany na rysunku 6.
Wśród padów są wyprowadzone linie Rx i Tx do podłączenia konwertera USB-UART (rysunek 7). Programatory ST-Link-V2-1 i V3 mają wbudowany taki konwerter (wersja V2 nie) ale może to być dowolny mostek, na przykład FT230 akceptujący transmisję z prędkością 921600. Dzięki podłączeniu konwertera USB-UART w terminalu można zobaczyć informacje diagnostyczne. Terminal musi obsługiwać co najmniej VT-100 (polecam TeraTerm dostępny na różne platformy, który ma kilka zalet w stosunku do bardzo dobrego Putty). Przejściówka USB-UART nie jest konieczna do zaprogramowania mikrokontrolera, ale ułatwia ewentualną diagnostykę.
Podłączenie linii reset jest wymagane w nielicznych przypadkach. Przed podłączeniem programatora wymagane jest zainstalowanie sterowników ze strony http://bit.ly/2U5nOn1.
Do zaprogramowania można użyć aplikacji „ST-LINK Utility” dostępnej na stronie producenta mikrokontrolera http://bit.ly/39Rps4y.
Po uruchomieniu aplikacji wczytujemy wsad programu wybierając file/Open file (zaleca się wybranie plików SREC lub ostatecznie HEX, które w przeciwieństwie do BIN są zaopatrzone w sumę kontrolną). Teraz należy zapisać jego zawartością mikrokontroler wybierając Target/Program. Po zakończeniu programowania powinien nastąpić reset mikrokontrolera (widać to w terminalu, jeśli podłączona jest przejściówka USB-UART). Jeśli reset nie nastąpił należy na chwile wyłączyć zasilanie dekodera.
W przypadku upgrade softu, gdy dekoder jest w lokomotywie i jest zasilany sygnałem DCC mogą wystąpić problemy z zaprogramowaniem (transmisja jest przerywana). Wtedy należy zasilić dekoder stałym napięciem 10...20 V, z wydajnością prądową 100 mA. Może się zdarzyć, że stany nieustalone włączą obciążenie (jeśli będzie podłączone) na przykład silnik. W takiej sytuacji wymagana wydajność wzrasta do 300...400 mA. Program, gdy jest to wymagane, przywraca ustawiania fabryczne dekodera. Może się jednak zdarzyć, że tak się nie stanie. Jeśli dekoder zachowuje się w sposób nieprawidłowy należy przywrócić ustawienia zapisując wartość 8 do rejestru numer 8. Przed zaprogramowaniem można zrobić kopię starej wersji. W tym celu należy po uruchomieniu aplikacji należy wybrać menu Target/Connect, po czy w menu File należy zapisać plik.
Podsumowanie
W kolejnej części artykułu skupimy się na opisie konfiguracji dekodera. Tymczasem filmy ukazujące jego możliwości można znaleźć pod adresem http://bit.ly/3pdkK7G. Jeśli czytelnicy są zainteresowani innymi akcesoriami DCC proszę o kontakt.
- R1: 0,22 Ω SMD1206
- R2, R3, R8, R11: 22 kΩ SMD0603
- R4, R6: 47 kΩ 1% SMD0603
- R5, R7: 6,8 kΩ 1% SMD0603
- R9, R10: 1 Ω SMD0603
- C1: 10 µF/25 V SMD1206 ceramiczny
- C2: 220 µF/6,3 V tantalowy
- C3, C10: 47 µF/10 V SMD1206 ceramiczny
- C4, C5, C6, C9: 100 nF SMD0603 ceramiczny
- C7, C8: 2,2 µF* SMD0603 patrz tekst
- D1…D6: SS16L-R2 (SMA)
- T1, T2: 2N7002DWH6327XTSA1 (SC-88)
- U1: TS2940CW-3.3 (SOT-223)
- U2: A4952ELYTR-T (MSOP-10)
- U3: TPA2005D1DGN (MSOP-8)
- U4: STM32F091CCT6 (LQFP-48)
- Rezystor GBR-618-12-10-2 TELPOD (opis w tekście)
- Klej termoprzewodzący np. AG TermoGlue
- Rurka elektroizolacyjna 12 mm i długości 10 mm (opis w tekście)