browser icon
You are using an insecure version of your web browser. Please update your browser!
Using an outdated browser makes your computer unsafe. For a safer, faster, more enjoyable user experience, please update your browser today or try a newer browser.

Signaldekoder

Egen Signadekoder

När väl lok och växlar blivit digitaliserade, så ville jag gå vidare med att även styra mina tågsignaler med digitalstyrning. Då behövdes någon form av stationär dekoder till det också.

Kopia av MERGs DCC projekt

Jag hittade ett intressant projekt på MERGs hemsida (Model Electronic Railway Group) och sidan om DCC projekt. Där fanns en Accessory decoder (ACC6) beskriven med både kretsschema, och programkod (PIC-assembler) till dekodern. Därifrån tog jag ideér till en egen Accessory decoder, som blev en lite förenklad kopia av MERGs ACC6-kretsschema. Jag utelämnade de extra drivarna på utgångarna eftersom jag bara hade tänkt driva vanliga LED, och det kan man göra direkt från PIC-processorn (hjärtat och hjärnan i dekodern). Totalt 8 LED ska styras av dekodern, precis som ACC6 originalet, d.v.s. fyra signaler med röd och grön LED. Microprocessorn till dekorerna är en Microchip, PIC 16F628, som körs med 8 MHz klocka (kristall). DCC signalen (J-K) går via en optokopplare (6N137) till processorn. SignalDecoder

Egen Programkod

Programkoden till ACC6 läste jag bara, för att lära mig bl.a. hur man kunde tolka DCC bit-strömmen som kommer från DCC systemet. Däremot var koden alltför oflexibellt skriven och i huvudsak skriven för att styra växlar. Jag skrev istället min egen version, i PIC-assembler.
Styr man signaler vill man t.ex. ha ”mjuk” ljusväxling, för att imitera lampor med viss efterlysningstid och tändtid (släcks och tänds långsamt). Det åstadkoms med Puls Width Modulaiton (PWM) med hjälp av programkoden.

CV Programmering

En annan viktig funktion som jag ville få med var möjligheten att programmera parametrar till dekodern (CV-värden), när dekodern är ansluten till ett ”programmeringsspår”. I första hand för att programmera dekoderadressen, men även andra tänkbara parametrar. För att CV-programmeringen ska fungera smidigt från Centralenheten (Lenz LVZ 100 i mitt fall), behöver dekodern kunna skicka en kvittenspuls (Ack-puls) som svar på vissa programmeringskommandon. Kretsschemat för ACC6 originalet hade med kretsar för det, som jag tog med i min dekoder också. Ack-pulsen sänds via en annan optokopplare (EL817) och drivtransistor, som lägger en 110 ohms last på J-K anslutningen, under några millisekunder. CV-värdena lagras i PIC-processorns flash-minne (EE-Prom).

En hel del tid gick åt att studera NMRAs standarder för DCC (Digital Command Control), och implementera de nödvändiga delarna av dessa protokoll i dekoder-programvaran.
S-9.2 DCC Communications StandardS-9.2.1 DCC Extended Packet FormatsS-9.2.2 DCC Configuration VariablesS-9.2.3 DCC Service Mode.

Anslutningar

Signalerna ansluts via en 10-pin kontakt, där jag även dragit fram både +5V och 0V, förutom de 8 anslutningarna för LED:en. På så vis kan jag både använda signaler där LED:en har gemensam pluspol (anod) och där LED:en har gemensam minuspol (katod). För att få det att matcha den logiska nivån på PIC-processorns utgångar har jag infört ett programmerbart CV-värde med vilket jag kan invertera den logiska nivån för varje individuell LED.
LED:s med gemensam anod till +5V kommer att lysa när utgången (ansluten till katoden) är ”0”. Resp. LED:s med gemensam katod till 0V lyser när utgången (ansluten till anoden) är ”1”.

En liten men viktig detalj i en signaldekoder är att hela tiden spara den senaste ljusbilden för alla LED. Om dekoderns skulle bli strömlös en stund och startar om, så ska den senaste ljusbilden visas igen. (Något som inte är helt ovanligt om man får ofrivilliga kortslutningar på rälsen t.ex. vid urspårningar). Dessa ljusbildsvärden måste alltså också lagras i PIC-processorns flash-minne (EE-Prom), för att överleva strömlösheten. Det gäller även ljusbilder där någon LED blinkar.

Signaldekoder för DCC format. För Styrning av 8 LED ( t.ex. 4 två-aspekt signaler).

Signaldekoder för DCC format. För Styrning av 8 LED ( t.ex. 4 två-aspekt signaler).

Strömmatningen till dekodern kan anslutas till separat strömkälla, för att inte behöva ta ström till dekodern och signalerna från den digitala DCC-signalen, ”rälsmatningen” (J-K). DCC-signalen ansluts till dekoderns J-K ingång.

(Dekodern på bilden har matningen till dekodern ihopkopplad med DCC-signalen (J-K)).

 


Lämna ett svar

Din e-postadress kommer inte publiceras.