Funzionamento del decoder accessori
Questo firmware e' stato pensato per essere implementato sun un microcontrollore a basso costo ma estremamente potente e che unisce la compattezza (18 pin) alla presenza di un oscillatore interno in modo da semplificare ogni implementazione hardware. Alla semplicita' dell'hardware corrisponde una completezza delle funzioni che consente il comando di dispositivi complessi e con molteplici aspetti operativi. Il riferimento di questo firmware e' del tutto indipendente dall'hardware a cui viene associato.

Caratteristiche del firmware

  • Compatibile con le stazioni di controllo attuali, solo comandi standard

  • Decoder per accessori standard, indirizzo da 1 a 510 (9 bit)

  • Programmabile sul “main track” o sul binario di programmazione

  • Gestione delle singole uscite o possibilita' di creare gruppi

  • Modo predefinito con 8 uscite indipendenti (luci, suoni...)

  • Modo predefinito con 4 uscite mutuamente esclusive (scambi dual coil con fine corsa)

  • Modo predefinito con 4 uscite mutuamente esclusive (scambi dual coil senza fine corsa)

  • Base dei tempi definibile da 1 ms a 255 ms comune a tutte le uscite

  • Uscite attivabili da 1 ms a 65 secondi

  • Programmazione CV per gestione dimming sulle 8 uscite

  • Programmazione CV per gestione lampeggio (periodo e duty cycle) sulle 8 uscite

  • Programmazione CV per gestire l'inversione logica sulle 8 uscite

  • Tutti gli effetti sono combinabili (gruppo + flash + inversione + dimming)

  • Gestione gruppi mutuamente esclusivi (segnali,scambi...)

  • Gestione gruppi associativi (luci, passaggi a livello...)

  • Programmazione indirizzo con un tasto + led

  • Programmazione del modo operativo con un tasto + led

  • Programmazione del set di CV 1-128 o 513-640 in modo trasparente

  • Possibilita' di impostare lo stato delle uscite all'accensione (default state)

  • Possibilita' di impostare il lampeggio delle uscite all'accensione (default state)

  • Possibilita' di funzionamento in modo “toggle” cioe' solo con attivazioni successive


Funzionamento del decoder

Il funzionamento del decoder e' basato sui comandi per la gestione di 3 livelli di complessita':


  • Comandi per l'intero decoder

  • Comandi per la definizione e la gestione di gruppi di uscite.

  • Comandi per la gestione del comportamento delle singole uscite


I comandi per l'intero decoder sono tutti quelli che influenzano tutti i gruppi e tutte le uscite: sono ad esempio la definizione della base dei tempi o l'indirizzo DCC del decoder. Cambiando la base dei tempi (CV39) saranno influenzati i comportamenti di tutti i gruppi (attraverso per esempio i tempi di ON specificati nelle CV3-6) e di tutte le singole uscite attivate (attraverso per esempio i tempi di lampeggio specificati nelle CV39-54). Le CV coinvolte in questa gestione sono graficamente indicate in blu nella lista delle CV modificabili dall'utente.


I comandi per la gestione di gruppi di uscite sono quelli che permettono di raggruppare le singole uscite per poter gestire con gli 8 comandi inviabili da DCC verso il decoder per accessori (standard – non esteso) dei dispositivi complessi con diversi motori/luci/suoni combinati tra loro e che presentino diverse configurazioni. Tipico esempio di dispositivo comandabile con piu' uscite e' un semaforo che ha 3 luci (rossa, verde e gialla) e che puo' avere 4 aspetti: luce rossa, luce verde, luce gialla o luce gialla lampeggiante. I comandi per i gruppi permettono anche la gestione di automatismi all'attivazione di una uscita di un altro decoder o al passaggio del treno su un contatto reed. Le CV coinvolte in questa gestione sono graficamente indicate in rosso nella lista delle CV modificabili dall'utente.


I comandi per la gestione delle singole uscite sono quelli che influenzano esclusivamente il comportamento della singola uscita: sono ad esempio il lampeggio automatico, il dimming (parzializzazione) o l'inversione dell'uscita stessa. Queste funzioni si applicano ad una specifica uscita e ne alterano il comportamento senza influenzare quello del gruppo a cui appartengono. Tipico esempio sono le luci di S. Andrea di un passaggio a livello: queste sono comandate in stato “attivo” insieme e vengono messe in stato “inattivo” al termine dell'attivazione dall'utente (o da un comando automatico). Il fatto che debbano lampeggiare e' una caratteristica specifica di queste due uscite, così come il fatto che debbano farlo alternativamente: queste due funzioni vengono gestite automaticamente dal decoder attraverso i comandi per la gestione delle singole uscite. Le CV coinvolte in questa gestione sono graficamente indicate in verde nella lista delle CV modificabili dall'utente.


Nota. Tutte le CV di questo manuale possono essere lette e programmate sia agli indirizzi 1-128 sia a quelli 513-641, come indicato nell'ultima release delle norme NMRA.


Nota. Tutti i numeri o le CV composti da piu' bit adoperano la convenzione con il bit 7 MSB (piu' significativo) e il bit 0 LSB (meno significativo).


Nota. Verranno indicati con F1on e F1off rispettivamente i comandi di attivazione e disattivazione dell'uscita 1 da parte della stazione di controllo. Lo stesso per le altre uscite (F2on,F2off ...)


Parametri globali del decoder

I parametri globali del decoder sono i seguenti:


Indirizzo Decoder.


Indirizzo DCC= CV1+CV9*64


in cui la CV1 puo' assumere tutti i valori da 0 a 63, mentre la CV9 puo' assumere i valori da 0 a 7. Per questo il range di indirizzi utili per il decoder sara' da 1 a 510 (0 non e' valido e 511 e' riservato al broadcast). Se l'utente specifica valori al di fuori di questi range il decoder considerera' comunque solamente i bit corretti cioe' i primi 6 bit di CV1 ed i primi 3 bit di CV9.


Quindi se CV1=7 e CV9=2 l'indirizzo DCC del decoder sara' 9+2*64=137


Tempi di attivazione delle uscite. I tempi di attivazione delle uscite sono specificati nelle CV3,CV4,CV5 e CV6. Ci sono solo 4 CV per 8 uscite quindi piu' uscite dovranno avere lo stesso tempo di attivazione: le norme NMRA raccomandano di implementare questa associazione:

CV3 – Uscite 1 e 2

CV4 – Uscite 3 e 4

CV5 – Uscite 5 e 6

CV6 – Uscite 7 e 8

Il decoder per accessori e' completamente compatibile con tale schema ma estende la possibilita' di associare una qualsiasi delle CV3-CV6 a qualsiasi uscita, attraverso 2 bit delle CV72-CV80 aumentando così la fessibilita' d'uso. Il valore delle CV3-CV6 non e' espresso in unita' di tempo assoluto ma e' espresso in tick specificati nella CV39, dove e' contenuto il valore della base dei tempi, in millisecondi. Il valore 0 implementa l'attivazione continua dell'uscita, senza ritorno allo stato disattivato. Il range utile varia da 1 a 255 per le CV3-CV6 (0 e' l'attivazione continua) e tra 1 e 255 per la CV39 (base dei tempi da 1 a 255ms) con un range utile da 1ms (1*1) a 65025 ms (255*255) di attivazione programmabile.

Quindi se CV3=20 e CV39=10, le uscite associate a questo tempo di attivazione (default 1 e 2) rimarranno attivate per 20*10ms = 200ms.

Versione del firmware. La CV7 contiene la versione del firmware di programmazione del PIC. Attualmente la versione e' la 1.2, quindi questa CV conterra' il valore 12. Tale CV non ha effetti sul funzionamento del decoder e' solo una informazione all'utente.


Produttore del decoder. La CV8 contiene l'identificativo del produttore del decoder. In questo caso il decoder e' un prodotto “fai da te” quindi il codice e' il 13 e la CV conterra' tale valore. Tale CV non ha effetti sul funzionamento del decoder, e' solo una informazione all'utente.

Configurazione del decoder. La CV29 contiene il valore 128 che rappresenta il modo operativo del decoder (solo lettura): i vari bit di tale parola, secondo la convenzione NMRA significano:

  • Nessuna comunicazione bidirezionale con la stazione

  • Decoder per accessori standard (non esteso)

  • Indirizzamento in modalita' decoder (non indirizzamento per output)

  • Decoder per accessori (non multifunzione)

Tale CV non ha effetti sul funzionamento del decoder, e' solo una informazione all'utente.

Configurazione rapida del decoder. Scrivendo il valore 1,2 o 3 nella CV33 si configura automaticamente il decoder per le seguenti configurazioni:

Configurazione 1: 8 uscite indipendenti, come da standard NMRA.

Configurazione 2: 8 uscite raggruppate a 2 a 2, mutuamente eslcusive, uscite indefinitamente in stato ON (scambi dual coil con switches di fine corsa)

Configurazione 3: 8 uscite raggruppate a 2 a 2, mutuamente eslcusive, uscite in stato ON per 300ms (scambi dual coil senza switches di fine corsa)

Rileggendo la CV33 si trovera' il valore 0 se la precedente configurazione e' andata a buon fine. Nel caso venga rimossa l'alimentazione durante la riconfigurazione del decoder, il decoder stesso completera' tale riconfigurazione alla prossima riaccensione.

Base dei tempi. La CV39 o base dei tempi definisce il quanto di tempo minimo per tutte le azioni temporizzate del decoder. Queste sono le seguenti:

  • Tempo di attivazione delle uscite definito in CV3-CV6

  • Periodo di lampeggio delle uscite CV40-CV47

  • Duty cycle di lampeggio delle uscite CV48-CV55

Il range utile varia da 1 a 255 (base dei tempi da 1 a 255ms) con un range utile per tutti i parametri di temporizzazione da 1ms (1*1) a 65025 ms (255*255) .


Disattivazione funzioni. La CV80 definisce il modo di funzionamento del decoder a fronte dei comandi in arrivo dalla centrale. Non tutte le centrali inviano attivazione e disattivazione delle uscite accessori quindi e' stato necessario implementare questa funzione:

CV80 = 0: Le uscite accessori vengono attivate sul comando di attivazione (ON) e disattivate sul comando disattivazione (OFF).

CV80 = 1: Le uscite accessori vengono attivate sul comando di attivazione (ON) e disattivate sul successivo comando disattivazione (ON) – modalita' toggle. Utile in centrali che non inviano la disattivazione nel caso si vogliano comandare (ON/OFF) degli accessori in modo esclusivo (lampade, motori...).

CV80 = 2: Le uscite accessori vengono attivate sul comando di attivazione (ON) e disattivate in automatico dopo CV81*CV39 ms. Utile in centrali che non inviano la disattivazione nel caso si vogliano comandare (ON/OFF) degli accessori che presentano attivazioni successive (scambi dual coil, segnali...).

Periodo di disattivazione. La CV81 definisce il periodo di tempo, espresso in multipli di CV39 ms per i diversi modi operativi della CV80:

CV80 = 0: nessun effetto.

CV80 = 1: Periodo di inibizione della funzione toggle.

CV80 = 2: Tempo dopo il quale le singole funzioni si disattiveranno in automatico.


Definizione e gestione di un gruppo

Ogni gruppo di uscite definibile e' definito da 4 CV separate: potendo definire 8 gruppi indipendenti, il set completo di CV per la gestione dei gruppi e' di 32.


  • Composizione del gruppo (CV64 primo gruppo - CV71 ottavo gruppo)

  • Modo operativo del gruppo (CV72 primo gruppo - CV79 ottavo gruppo)

  • Configurazione delle uscite del gruppo (CV112 primo gruppo - CV119 ottavo gruppo)

  • Configurazione del lampeggio del gruppo (CV120 primo gruppo - CV127 ottavo gruppo)


La composizione di un gruppo viene fatta modificando le CV64-CV71. Ogni gruppo puo' essere composto da 1 a 8 uscite in maniera arbitraria, ad ogni bit viene associata una uscita. Indicheremo com F1on e F1off rispettivamente i comandi di attivazione e disattivazione dell'uscita 1 da parte della stazione di controllo. Lo stesso per le altre uscite.

Se scriviamo nella CV64:


Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

1

1

1

0

0

0

0

1

il primo gruppo sara' composto dalle uscite 1 (bit 0), 6, 7 e 8 (bit 7). Il significato di “gruppo” e' dato dall'insieme di uscite che possono commutare insieme alla ricezione di un comando dalla stazione di controllo, senza perturbare lo stato delle altre uscite: ovviamente ci sono 8 CV che permettono di specificare quali siano i gruppi per ognuno degli 8 comandi della stazione di controllo. Quindi i bit a 1 nella CV64 saranno quelli modificati all'arrivo di F1on o F1off, i bit a a 1 nella CV65 saranno quelli che modificati all'arrivo di F2on o F2off e così via.


Il modo operativo del gruppo e' composto da 2 campi: i bit[3..0] che contengono l'attivazione ausiliaria del gruppo, cioe' da quale segnale puo' essere attivato automaticamente tale gruppo oltre che dal comando utente, e i bit[5..4] che contengono quale tra le CV3-CV6 fisseranno il tempo di attivazione di tale gruppo:

bit[0]: se 1 il gruppo e' attivato da un fronte in salita dell'input ausiliario 1

bit[1]: se 1 il gruppo e' attivato da un fronte in discesa dell'input ausiliario 1

bit[2]: se 1 il gruppo e' attivato da un fronte in salita dell'input ausiliario 2

bit[3]: se 1 il gruppo e' attivato da un fronte in discesa dell'input ausiliario 2

bit[5..4]: se 00 il tempo dello stato ON viene preso dalla CV3

bit[5..4]: se 01 il tempo dello stato ON viene preso dalla CV4

bit[5..4]: se 10 il tempo dello stato ON viene preso dalla CV5

bit[5..4]: se 11 il tempo dello stato ON viene preso dalla CV6


Se scriviamo nella CV72:


Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

0

0

1

1

0

0

1

1


il gruppo 1 sara' attivato sia dal comando diretto della stazione di controllo sia da una variazione (sia 0->1 che 1->0) dell'ingresso ausiliario 1. Il tempo di attivazione sara' preso dalla CV6.

La configurazione delle uscite del gruppo viene effettuata modificando le CV112-CV119. Queste CV specificano quali saranno le uscite ON e quali quelle OFF al momento dell'arrivo del comando di attivazione. Questo e' fondamentale per poter gestire dei segnali o dei dispositivi con piu' “aspetti” operativi. I bit posti a 1 all'interno della CV corrispondono alle uscite in stato ON, quelli a 0 corrispondono alle uscite in stato OFF. Se si specificano delle uscite ON tra i bit al di fuori del gruppo, questi saranno automaticamente mascherati dal decoder. Nel caso di comando di disattivazione, le uscite specificate nel gruppo prenderanno il valore dei bit della CV36.

Schematicamente:

F1on =>

OUT = OUT and not(CV64)

OUT = OUT or (CV64 and CV112)

F1off =>

OUT = OUT and not(CV64)

OUT = OUT or (CV64 and CV36)

La configurazione del lampeggio del gruppo viene settata modificando le CV120-CV127. Un “1” in una di queste CV stabilisce quali uscite dovranno lampeggiare in uno stato definito, le uscite ovviamente lampeggeranno solo se attivate. Nel caso di comando di disattivazione, le uscite specificate nel gruppo prenderanno il valore di lampeggio dei bit della CV37.


Esempio 1.

Se abbiamo questa configurazione di CV:


CV64

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

1

1

1

0

0

0

0

1


CV72

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

0

0

0

1

0

0

0

1


CV112

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

1

0

0

0

0

0

0

1


CV120

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

1

0

0

0

0

0

0

0

La descrizione del funzionamento completo di tale set di CV e' il seguente: Al momento dell'invio del comando di attivazione dell'uscita 1 (F1on) da parte della stazione di controllo o all'arrivo di un fronte di salita sull'input ausiliario 1, le uscite 1,5,6 e 7 prenderanno lo stato dei bit corrispondenti della CV112, quindi le uscite 1 e 8 saranno attivate, mentre le uscite del gruppo 6 e 7 saranno disattivate. Le altre uscite non indicate nel gruppo (la 2,3,4 e 5) non avranno modifiche al loro stato. Inoltre l'uscita 8 lampeggera'.

Esempio 2.

Altro esempio e' dato dal pilotaggio contemporaneo e indipendente, con un singolo decoder, di un semaforo, di uno scambio dual coil e di 2 luci indipendenti.

Le CV per la composizione dei gruppi sono le seguenti:



Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

Valore decimale

CV64

0

0

0

0

1

1

1

1

15

CV65

0

0

0

0

1

1

1

1

15

CV66

0

0

0

0

1

1

1

1

15

CV67

0

0

0

0

1

1

1

1

15

CV68

0

0

1

1

0

0

0

0

48

CV69

0

0

1

1

0

0

0

0

48

CV70

0

1

0

0

0

0

0

0

64

CV71

1

0

0

0

0

0

0

0

128











Si vede che i primi 4 comandi (F1on-F4on) comanderanno le prime 4 uscite come gruppo, 2 comandi comanderanno le uscite 5 e 6 come gruppo ed infine le ultime 2 uscite saranno comandate dagli ultimi 2 comandi in maniera indipendente.

Le uscite da 1 a 3 sono connesse al semaforo (1 al rosso, 2 al verde e 3 al giallo), le uscite 5 e 6 allo scambio e le uscite 7 e 8 alle luci. L'uscita 4 non e' connessa ed e' usata solo per gestire un ulteriore aspetto del semaforo.


Le CV per la configurazione delle uscite dei gruppi sono le seguenti:



Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

Valore decimale

CV112

0

0

0

0

0

0

0

1

1

CV113

0

0

0

0

0

0

1

0

2

CV114

0

0

0

0

0

1

0

0

4

CV115

0

0

0

0

0

1

0

0

4

CV116

0

0

0

1

0

0

0

0

16

CV117

0

0

1

0

0

0

0

0

32

CV118

0

1

0

0

0

0

0

0

64

CV119

1

0

0

0

0

0

0

0

128











E per il lampeggio:


Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

Valore decimale

CV120

0

0

0

0

0

0

0

0

0

CV121

0

0

0

0

0

0

0

0

0

CV122

0

0

0

0

0

0

0

0

0

CV123

0

0

0

0

0

1

0

0

4

CV124

0

0

0

0

0

0

0

0

0

CV125

0

0

0

0

0

0

0

0

0

CV126

0

0

0

0

0

0

0

0

0

CV127

0

0

0

0

0

0

0

0

0











Definendo come F1-F8 i comandi DCC utente per l'attivazione delle uscite 1-8 si avra':

F1: Il segnale diverra' rosso

F2: Il segnale diverra' verde

F3: Il segnale diverra' giallo

F4: Il segnale diverra' giallo lampeggiante

F5: Lo scambio sara' sulla diretta

F6: Lo scambio sara' sulla deviata

F7: si accendera' la luce 1

F8: si accendera' la luce 2


Si noti che sia F1-F4 che F5-F6 consentono di gestire dei gruppi esclusivi, dove cioe' l'attivazione di una uscita comporta automaticamente la disattivazione delle altre uscite del gruppo.

Gestione della singola uscita

Questo gruppo di CV controlla tutti gli effetti che puo' avere una singola uscita indipendentemente dal suo funzionamento all'interno del gruppo. Piu' precisamente le CV per la gestione dei gruppi devono definire quali uscite saranno attivate e le CV di gestione delle singole uscite devono definire il comportamento delle uscite quando attivate.


Lampeggio: comandato da CV40-CV55.

Parzializzazione (dimming): comandato da CV34 e CV56-CV63.

Inversione: comandato da CV35

Default: comandato da CV36 e CV37

Modalita' toggle: comandata da CV38.

Il lampeggio puo' essere specificato singolarmente in periodo di ripetizione e tempo di ON per ciascuna delle 8 uscite. La base dei tempi, come per tutte le altre azioni temporizzate e' data dalla CV39. La CV40 contiene il periodo di lampeggio dell'uscita 1, la CV41 quello dell'uscita 2 e così via fino all'uscita 8. Il periodo di lampeggio puo' variare da 0 a 255 ma hanno un senso solo i valori da 2 a 255. Unitamente al tempo specificabile in CV39, le uscite possono lampeggiare con un periodo da 500Hz (1ms*2) fino a 0.015 Hz (255ms*255), cioe' un lampo ogni 65 secondi.

La parzializzazione o dimming permette di avere, nel caso di pilotaggio di motori DC o di luci, una parzializzazione dell'attivazione; pertanto i motori potranno ruotare piu' lentamente e le luci potranno essere regolate in intensita'. Le uscite su cui agira' la parzializzazione sono indicate nella CV34 (i bit a 1 indicano quali siano le uscite parzializzate - con bit0 = uscita 1 e bit 7 = uscita 8) e le CV56-CV63 inidicano il valore di tale parzializzazione con valori da 0 a 16. Il valore 0 indica parzializzazione 0% (uscita sempre OFF) mentre il valore 16 indica parzializzazione 100% (uscita sempre ON). Ogni step quindi rappresentera' circa il 6% della tensione massima disponibile sull'uscita.

L'inversione e' comandata dalla CV35. Tale CV indica (i bit a 1 indicano quali siano le uscite invertite - con bit0 = uscita 1 e bit 7 = uscita 8) quali siano le uscite invertite, cioe' che se attivate andranno in stato OFF e se disattivate andranno in stato ON.

I valori di default per i valori delle uscite (CV36) e per il loro lampeggio (CV37) permettono di memorizzare una configurazione attivabile senza comandi utente al momento dell'accensione del decoder. Queste CV specificano anche lo stato delle uscite a fronte di un comando di disattivazione. Al solito l'associazione tra bit e uscite e': bit0 = uscita 1 ... e bit 7 = uscita 8.

La modalita' toggle fa si che le uscite indicate (con corrispondente bit posto a 1 nella CV38) ad un comando di attivazione (1) risponderanno con una inversione del loro stato logico (toggle) mentre ad un comando di disattivazione (0) conserveranno il loro stato.


Programmazione con tasto e LED

La programmazione con un tasto e il led permette di settare alcuni parametri operativi del decoder senza l'uso di un programmatore di CV dedicato. Si possono programmare sia l'indirizzo del decoder sia la sua modalita' operativa.

Programmazione indirizzo

Si entra nella modalita' di programmazione dell'indirizzo tenendo premuto il tasto all'accensione e rilasciandolo dopo meno di 3 secondi. A questo punto il led lampeggera' (alla frequenza di 1Hz) un numero di volte pari all'indirizzo impostato, quindi si mettera' in attesa della pressione del tasto. Se il tasto verra' premuto l'indirizzo interno verra' incrementato e si tornera' al lampeggio per “visualizzare” il nuovo indirizzo. Si puo' settare solo il valore contenuto nella CV1, quindi manualmente si possono impostare 64 indirizzi diversi. Per uscire da questa modalita' (memorizzando l'ultimo indirizzo) e' sufficiente spegnere il decoder e riaccenderlo.

Riassumendo:


Passo

Tasto

LED

1

Pressione all'avvio per meno di 3 secondi.


2

Attesa Rilascio del tasto


3


Modalita' di programmazione dell'indirizzo.

4


Lampeggia il numero di volte pari al valore contenuto nella CV1

5

Attesa Pressione del tasto


6

Attesa Rilascio del tasto


7


Incrementa il valore della CV1. Torna al punto 4.


Programmazione modo operativo

Si entra nella modalita' di programmazione del modo operativo tenendo premuto il tasto all'accensione e rilasciandolo dopo piu' di 3 secondi. A questo punto il decoder si mettera' in attesa della pressione del tasto e ciclicamente impostera' il modo operativo da 1 a 3, indicando con il lampeggio del led (alla frequenza di 0.5Hz) per un numero di volte pari al modo operativo impostato, la nuova impostazione. Per uscire da questa modalita' (memorizzando l'ultimo modo operativo) e' sufficiente spegnere il decoder e riaccenderlo.


Riassumendo:


Passo

Tasto

LED

1

Pressione all'avvio per piu' di 3 secondi.


2

Attesa Rilascio del tasto


3


Modalita' di programmazione del modo operativo.

4

Attesa Pressione del tasto


5

Attesa Rilascio del tasto


6


Un lampeggio. Settato il modo operativo 1 (8 uscite undipendenti – standard NMRA)

7

Attesa Pressione del tasto


8

Attesa Rilascio del tasto


9


Due lampeggi. Settato il modo operativo 2 (4 gruppi da 2 uscite indefinitamente ON per scambi dual coil con fine corsa elettrico)

10

Attesa Pressione del tasto


11

Attesa Rilascio del tasto


12


Tre lampeggi. Settato il modo operativo 3 (4 gruppi da 2 uscite ON per 300ms per scambi dual coil senza fine corsa elettrico). Si torna al punto 4.



Pacchetti DCC decodificati

Reset

Preambolo

0000.0000

0000.0000

0000.0000





La ricezione di questo comando causa in tutti i decoder la disattivazione in maniera permanente di tutte le uscite.

Basic accessory packet (compreso broadcast)

Preambolo

10aa.aaaa

1bbb.cddd

eeee.eeee





Questo comando invia le sequenze di attivazione o disattivazione delle singole uscite.

b.bbaa.aaaa: e' l'indirizzo del decoder (1-510), con 0 indirizzo non valido e 511 broadcast.

ddd: uscita da modificare, e in dettaglio 000 => uscita 1, ... , 111 => uscita 8

c: modifica sull'uscita: 0 => OFF, 1 => ON

eeee.eeee: byte di controllo, ha valore (10aa.aaaa xor 1bbb.cddd)

Programmazione sul “main track” - POM

Preambolo

10aa.aaaa

1bbb.xxxx

0111.ccvv

vvvv.vvvv

dddd.dddd

eeee.eeee


Questo comando programma le CV direttamente sulla linea operativa, durante il normale funzionamento. Non viene generato impulso di acknowledge alla fine della programmazione o alla fine della verifica, quindi non e' possibile la rilettura delle CV programmate in questa modalita'.

b.bbaa.aaaa: e' l'indirizzo del decoder (1-510), con 0 indirizzo non valido. L'indirizzo di broadcast (511) e' stato disattivato in questo comando per impedire programmazioni “di massa”.

xxxx: bit non considerati.

cc: tipo di operazione: 00,01 => N/A, 10 => operazioni sui bit, 11 => scrivi CV

vv.vvvv.vvvv: indirizzo della CV: 00.0000.0000 => CV1, 11.1111.1111 => CV1024. In questo decoder sono implementate le prime 128 CV, da CV1 a CV128. Come da raccomandazione NMRA le CV si possono accedere indifferentemente sia con indirizzo CV1-CV128 che con indirizzo CV513-CV641.

dddd.dddd: valore da scrivere nella CV. Nel caso cc=10 allora dddd.dddd si deve interpretare come xxxf.hggg dove ggg: bit da modificare all'interno della CV, e in dettaglio 000 => bit 0, ... , 111 => bit 7, f = 1 per scrivere il bit e h nuovo valore del bit da modificare.

eeee.eeee: byte di controllo, ha valore (10aa.aaaa xor 1bbb.xxxx xor 0111.ccvv xor vvvv.vvvv xor dddd.dddd)

Service Mode (Direct Mode) con modalita' sia byte che bit

Preambolo

1110.ccvv

vvvv.vvvv

dddd.dddd

eeee.eeee




Questo comando programma le CV sul “binario” di programmazione, a cui deve essere connesso solo il decoder in programmazione, dal momento che non viene inviato l'indirizzo del decoder e quindi tutti i decoder collegati saranno programmati nello stesso modo . Viene generato impulso di acknowledge alla fine della programmazione o alla fine della verifica, quindi e' possibile la rilettura delle CV programmate.

cc: tipo di operazione: 00=> N/A ,01 => leggi CV, 10 => operazioni sui bit, 11 => scrivi CV

vv.vvvv.vvvv: indirizzo della CV: 00.0000.0000 => CV1, 11.1111.1111 => CV1024. In questo decoder sono implementate le prime 128 CV, da CV1 a CV128. Come da raccomandazione NMRA le CV si possono accedere indifferentemente sia con indirizzo CV1-CV128 che con indirizzo CV513-CV641.

dddd.dddd: valore da scrivere nella CV. Nel caso cc=10 allora dddd.dddd si deve interpretare come xxxf.hggg dove ggg: bit da modificare all'interno della CV, e in dettaglio 000 => bit 0, ... , 111 => bit 7, f = 0 per verificare il bit e f = 1 per scrivere il bit e h nuovo valore del bit da modificare (se f=1) oppure bit da confrontare con quello della CV (se f=0).

eeee.eeee: byte di controllo, ha valore (1110.ccvv xor vvvv.vvvv xor dddd.dddd)