Jindra Fučík

SUSI funkční dekodér

SUSI function decoder


SUSI hat

Popis

Vlastně je otázka, jak správně toto zařízení pojmenovat, možná SUSI funkční modul. Ale to asi nechám na laskavém čtenáři. Jedná se tedy o rozšiřující modul, který umožňuje využít SUSI rozhraní pro rozšíření počtu dostupných funkčních výstupů. Vlastně nejvhodnější je tento modul rovnou osadit do mainboardu lokomotivy, ale to není vždy možné. V každém případě verze tak jak jsem jí vyrobil a jak je na fotkách je vhodná spíš pro vývoj a experimentování než pro produkční provoz. Proto úplně nečekám, že by někdo stál o mou verzi PCB.

Zařízení pracuje podle specifikace RCN-600. Tato norma doposud nebyla plně adoptovaná NMRA, takže se může stát, že ne-Evropské dekodéry mohou pracovat s určitými omezeními.

Princip fungování je velmi jednoduchý – procesor, který interpretuje SUSI příkazy je připojen pomocí dvou rezistorů přesně podle doporučení normy. Procesor pracuje s napětím 3,3 nebo 5 voltů, proto je součástí ještě jednoduchý napěťový regulátor. V mém případě se jedná o typ 78L05CX (tedy verze v pouzdře SOT23) Pochopitelně je možné použít jiný regulátor, který bude více odpovídat potřebám vašeho mainboardu. V mém případě jsem použil napájení 5 V. Pokud by bylo zvoleno napájení 3,3 V, zkontrolujte si požadavky na SUSI3.

V mém případě jsem použil procesor PIC16F15225. Důvod je jednoduchý – prostě jich mám doma celou štangli. Bylo by možné použít jakýkoli procesor z rodiny PIC16F1522x. Jsem si vědom toho, že některé (většina) verzí je levnějších (například PIC16F15223). Pokud mi chcete napsat, že vám mám přeložit verzi pro jiný procesor, vemte prosím v úvahu, že takový procesor nemám a že budu potřebovat desítky kusů na experimentování.

Program v procesoru využívá v zásadě dvě periferie pro autonomní příjem SUSI protokolu. První je EUSART v režimu synchronního slave, druhá je Timer2 v monostabilním režimu, který odměřuje 8 milisekund vzdálenost mezi dvěma sestupnými hranami hodinového signálu pro reset sériového přijímače. Vlastní procesor tedy jen dekóduje příkazy. Což s výjimkou příkazů programování není moc složité.

Následující obrázek ukazuje celé schéma, jak jsem jej použil já. Pochopitelně konektor X1 není nutné dávat na desku, pokud si procesor jednorázově naprogramujete jinde a jinak. To samé v zásadě platí o rezistorech R1 až R8 a ledkách LED1 až LED8. Jejich místo bude pravděpodobně mimo tento modul a možná je nahradí nějaké jiné drivery nebo části elektroniky vhodné pro daný model. Také procesor v pouzdře SO14 bude praktičtější nahradit za pouzdro QFN16.

Description

It is hard to say, how to name this device. Maybe better name will be SUSI functional module. I will probably keep it on kind reader. It is extension module, that allows to use SUSI interface for increase amount of available function outputs. Best place for this module is direct implementation of it in mainboard of locomotive, but that is not always possible. Anyway, the version as I made it and as it is present on photos, is good for development and experiments than for production run. Then I do not expect, anyone is interested in my version of PCB.

Device works as per RCN-600 specification. This specification is not yet fully adopted by NMRA, then it can happen, that non-European decoders will work with some limitations.

Working principle is very easy. Processor, that interpret SUSI commands is connected using two resistors exactly as requested in specification. Processor can work with power 3.3 or 5 volt, then it is included one simple voltage regulator. In my case I used 78L05CX chip (mean version in SOT23 package). Of course, another regulator can be used, that will better fit your mainboard needs. In my case I used 5 V power. In case you will use 3,3 volts, please check requirements for SUSI3 in specification.

I used processor PIC16F15225. Reason is simple – I have lot of them at home. It will be possible to use another processor from PIC16F1522x family. I’m aware, that some versions of them (majority of them) are cheaper (for example PIC16F15223). Once you would like to write me, that I should compile version for another processor, take in consideration, I have not that processor and will need dozens of pieces for experiments.

Program in processor mainly utilize two peripherals for autonomous receive of SUSI protocol. First one is EUSART in synchronous slave mode, second is Timer2 in monostable mode, that measure 8 millisecond distance between two falling edges of clock signal to reset serial receiver. Main processor only decodes commands. That is not so complicated except commands for programming.

Following image shows schematic as I used it. Of course, connector X1 must not be populated on board once you will program processor outside. The same can be valid for resistors R1 to R8 and leds LED1 to LED8. Their place will be probably outside of this module and probably will be replaced by another drivers or pieces of electronic more suitable for model. As well processor in package SO14 will be more practical to replace with one in package QFN16.


schema

Použití

Use manual

Modul je mimořádně jednoduchý a tak je jednoduché i jeho nastavení a používání. Modul přináší osm nových CV v rozsahu CV#897 až CV#974. Každé CV odpovídá jednomu výstupu. CV#897 znamená první výstup, CV#914 znamená poslední výstup. Číslo zapsané do konkrétního CV znamená, na jakou funkci reaguje. Tedy hodnota 0 znamená světla, hodnota 1 znamená F1, hodnota 2 znamená F2 a tak dále až hodnota 68 znamená F68 (pozor, některé dekodéry podporují pouze starší verzi protokolu a tak nemusí podporovat všechny funkce). Pro funkce F0 až F63 je možné nastavit směrovou závislost. Pokud má být funkce aktivní pouze ve směru dopředu, prostě k číslu funkce přičtete číslo 128. Takže například F28 dopředu znamená, že do CV zapíšeme hodnotu 28 + 128 = 156. Stejným způsobem pro směr vzad přičteme hodnotu 192. Tedy pro stejný případ s F28 zapíšeme hodnotu 28 + 192 = 220.

Drobná technická poznámka: přídavné moduly SUSI je obtížné programovat na programovací koleji (v servisním režimu), a ne všechny dekodéry jsou dostatečně rychlé, aby to umožňovali. Proto vždy používejte režim programování na hlavní trati (PoM).

A to je vlastně vše. Nemá cenu uvádět výchozí hodnoty, protože je možné je změnit při nahrávání procesoru.

Modul is extremely simple and then it is simple to use it. Modules introduce eight new CVs in range CV#897 to CV#914. Each CV mean one output. CV#897 mean first output, CV#914 mean last output. Number written in the CV means, what function it reacts on. For example, value 0 mean lights, value 1 mean F1, value 2 mean F2 etc. up to value 68, that mean F68 (note: not all decoders support older version of protocol only and then must not support all functions). Functions F0 to F63 can be configured as direction dependent. In case function must be active only in forward direction, add number 128 to function number. It means for example, that function F28 in forward direction will be 28 + 128 = 156. Same for backward direction we must add 192. Same example with F28 will result in value 28 + 192 = 220.

Small technical note: it is hard to program CVs on SUSI additional modules on programing track (service mode programming). And not all main decoders are fast enough to support this option. It is strongly recommended to always use programing on the main (PoM) mode.

And that is all. It make no sense to list default values for all CVs, as they can be changed when processor is uploaded.




Download: schema.pdf hex

SUSI a SUSI-LOGO bylo vytvořeno firmou DIETZ MODELLBAHNTECHNIK www.d-i-e-t-z.de