Manuale d'uso

Caratteristiche hardware del decoder

 

Questo decoder e' stato pensato per unire un basso costo ad una grande flessibilita' di funzionamento. Viene impiegato un microcontrollore a basso costo per implementare tutte le funzioni e pochi componenti standard di larghissimo uso e basso costo. Alla semplicita' dell'hardware corrisponde una completezza delle funzioni firmware che consente il comando di dispositivi complessi e con molteplici aspetti operativi.

  

Caratteristiche dell'hardware

          Ingresso DCC optoisolato, max 15 mA di carico sulla linea DCC, microcontrollore disaccoppiato dalla parte di potenza per massima immunita' ai disturbi

         Ingresso di alimentazione indipendente dalla parte DCC:

         Per la versione AC (corrente alternata) ingresso 5-40VAC

         Corrente in uscita dal decoder:

         Per la versione AC (corrente alternata) 4A per uscita, 8A per il decoder

         Gestione dell' acknowledge per rilettura delle CV

         PCB a doppio singolo strato

         Spazio per montare dissipatori sugli elementi di potenza

         Dimensioni 105x60mm, 4 fori di fissaggio da 3mm

         Peso 56g

 

 

Connessione del decoder

 Il decoder deve essere connesso seguendo il seguente schema:



 

Il carico (lampade, bobine di scambi, motori...) dovranno essere connessi tra l'uscita (ad esempio OUT1) e il comune piu' vicino all'uscita stessa (COM 1 e 2).

 

Attenzione: l'ingresso DCC non potra' essere usato per alimentare anche la parte di potenza. Per l'alimentazione usare esclusivamente un alimentatore in alternata con frequenza 50Hz.

  


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' 7+2*64=135

 

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. Il valore delle CV3-CV6 e' espresso in multipli di 10ms. 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) quindi l'impulso piu' lungo comandabile sara' di 2.55 s e il piu' breve 10 ms.

 

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

 

 Versione del firmware. La CV7 contiene la versione del firmware di programmazione del PIC. Attualmente la versione e' la 1.0, quindi questa CV conterra' il valore 10. 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. Scrivendo un qualsiasi valore dentro questa CV si otterra' la re-inizializzazione del decoder ai suoi valori di default.

 

Modalita' di funzionamento: La CV10 permette di settare il funzionamento del decoder a fronte del comportamento di alcune delle piu' diffuse centraline in commercio, cioe' il ROCO Multimaus e Uhlenbrock Intellibox. Questa CV permette di adeguarsi a questi diversi metodi di comando:

 

CV10=0

Questo e' il modo di funzionamento standard come scritto nelle norme NMRA: le uscite vengono attivate a fronte di un comando di "set output" del tipo:

10AAAAAA // 1AAA1DDD // EEEEEEEE dove A e' l'address e D e' l'uscita da attivare

e disattivate a fronte di un segnale di "reset output" del tipo:

10AAAAAA // 1AAA0DDD // EEEEEEEE dove A e' l'address e D e' l'uscita da disattivare

CV10=1

Modo di compatibilita' con Multimaus:


Il Multimaus nel momento che l'utente attiva un accessorio inizia ad inviare a raffica pacchetti di attivazione fino a quando non viene rilasciato il tasto al che invia un unico comando di disattivazione.

 
Il firmware in questo caso considera un solo comando di attivazione tra il primo pacchetto "set output" arrivato e quello finale di "reset output", permettendo una durata esatta nelle uscite "impulsive" anche se si tiene il tasto premuto a lungo. Nel caso l'uscita sia indefinitamente attivata si ha un comportamento "toggle" cioe' a successive attivazioni dell'uscita si hanno successivi periodi di ON/OFF.


Nel caso si setti erroneamente questa CV a 0 e si usi il Multimaus le uscite saranno attivate fino a che il tasto specifico e' premuto, poi saranno disattivate e i tempi di attivazione delle CV3-CV6 non saranno considerati

CV10=2

Modo di compatibilita' con Intellibox:


L'Intellibox invia una sequenza di pacchetti di attivazione (della durata di circa 1 secondo) ogni volta che si preme un tasto del tastierino e non invia mai la disattivazione dell'uscita.

 

Il firmware in questo caso considera un solo comando di attivazione tra il primo pacchetto "set output" arrivato accorpandolo con quelli piu' vicini di 200ms, permettendo una durata esatta nelle uscite "impulsive". Nel caso l'uscita sia indefinitamente attivata si ha un comportamento "toggle" cioe' a successive attivazioni dell'uscita si hanno successivi periodi di ON/OFF.


Nel caso si setti questa CV a 0 nel funzionamento con Intellibox sara' impossibile disattivare le uscite con periodo infinito (cioe' con CV3-CV6=0). Le attivazioni delle uscite in generale saranno allungate di circa 1 secondo.



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)

 

 

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)

 

Lista delle CV implementate

 

CV

Default

 

Commento

Vesione

1

1

La CV1[5..0] contiene i 6 LSB dell'indirizzo del decoder

1.0

2

-

Attivazione ausiliaria (non implementata)

 

3

30

Periodo di attivazione delle uscite 1 e 2. Se programmato a 0 l'uscita rimane attiva indefinitamente.

1.0

4

30

Come la CV precedente per le uscite 3 e 4.

1.0

5

30

Come la CV precedente per le uscite 5 e 6.

1.0

6

30

Come la CV precedente per le uscite 7 e 8.

1.0

7

12

Versione del firmware (solo lettura): 1.0

1.0

8

13

Codice Costruttore (solo lettura): public domain e DIY. Scrivendo un qualsiasi valore in questa CV si inizializzera' il decoder ai valori di default.

1.0

9

0

La CV9[2..0] contiene i 6 MSB dell'indirizzo del decoder

1.0

10

0

Modo di funzionamento del decoder quando comandato da  diverse stazioni di comando:
0: Funzionamento DCC standard
1: Funzionamento adatto a Multimaus® ROCO
2: Funzionamento adatto a Intellibox® Uhlenbrock

1.0

11-128

-

Non usate