Progetto decoder DCC programmabile per scambi

By Massimo Valloni (18 marzo 2003)
Copyright

Il seguente progetto (hardware&software) può essere realizzato liberamente, ma non può essere commercializzato in nessun modo, salvo diversa indicazione da parte dell'ideatore. Per ulteriori informazioni utilizzate il seguente indirizzo e-mail
 
 
Premessa sul progetto
Questo decoder stato realizzato per funzionare solo sotto il protocollo DCC NMRA. Lo scopo di questo circuito è quello di pilotare n° 8 utenze quali motori per scambi o relè bistabili, oppure di utilizzare tutte e 16 le uscite in maniera singola ed indipendente. Altra particolarità di questo circuito è quella di abilitare singolarmente le 16 uscite in modalità intermittente con un tempo di On e di Off programmabili.
Tutto questo rende il circuito ampiamente flessibile a qualsiasi applicazione sul plastico.
 
Funzionamento Circuito.
Il cuore del progetto è il micro-processore Pic 16F876A all'interno del quale risiede il programma per la gestion e del DCC e delle singole uscite.
L'opto isolatore 6N136 serve per la separazione galvanica dalla rete DCC, mentre L'opto isolatore 4N32 serve allo stesso scopo ma solo durante la fase di lettura e di programmazione delle CV.
Due integrati ULN2803A servono invece al pilotaggio del Gate dei Triac di potenza direttamente collegati all'uscita del circuito. Avendo utilizzato dei Triac tutte le uscite sono a tensione alternata ed il valore è uguale a quello riportato ai morsetti di alimentazione (consigliabile una tensione max di 15 Volt). L'alimentazione non viene prelevata dal bus DCC ma da un trasformatore a parte.
I Triac sono del tipo a basso assorbimento lato gate, infatti possono essere pilotati direttamente dal micro controllore (non nel caso nostro) e il suo valore di corrente può andare dai 5 mA a massimo 16 mA. Invece la scelta della corrente di potenza del triac dipende molto da quello che si vuole pilotare già il 4 Amp. di base è più che sufficiente allo scopo.
Molto importante invece è la funzione del fusibile (del tipo superveloce) montato all'ingresso dell'alimentazione infatti il suo dimensionamento deve essere assolutamente la metà della corrente del singolo Triac, altrimenti nel caso di corto circuito delle uscite, chi ne farebbe le spese sarebbe proprio i Triac.
 
Programamzione CV
Il software può operare in due modi: a doppio decoder nel caso vogliamo comandare per esempio dei motori per scambi, oppure a quattro decoder nel caso in cui vogliamo usare tutte le 16 uscite in modalità on/off (ad esempio accendere e spegnere una lampadina oppure far lampeggiare un segnale qualsiasi).
Per la scelta di funzionamento bisogna intervenire sulla CV546(CV34) i valori ammissibili sono i seguenti:
  • 0 (default) funzionamento a 2 decoder
  • 1 funzionamento a 4 decoder
 
Impostazione indirizzi
Per definire invece l'indirizzo dei 4 decoder bisogna intervenire su tre CV la CV545(CV33) che seleziona i decoder da 1..4 , la CV513(CV1) per definire l'indirizzo sui 6 bit meno significativi e la CV521(CV9) per definire l'indirizzo sui 3 bit più significativi.
Facendo un esempio vogliamo programmare l'indirizzo 5 (uscite DCC 17,18,19,20) al decoder n°3 procedere come segue :
  • Prima passo programmare nella CV545(CV33) il valore 3 decimale
  • Secondo passo programmare nella CV513(CV1) il valore 5 decimale (000101 bin.)
  • Terzo passo programmare nella CV521(CV9) il valore 0 (000 bin.)
  • Indirizzo finale 9 bit Decoder 000000101
Secondo esempio vogliamo programmare l'indirizzo 188 (uscite DCC 749,750,751,752) al decoder n°2 procedere come segue :
  • Prima passo programmare nella CV545(CV33) il valore 2 decimale
  • Secondo passo programmare nella CV513(CV1) il valore 60 decimale (111100 bin.)
  • Terzo passo programmare nella CV521(CV9) il valore 2 (010 bin.)
  • Indirizzo finale 9 bit Decoder 010111100
 
Impostazione uscite
Ogni singola uscita può essere liberamente programmata grazie al settaggio di alcune CV che di seguito descriviamo :
  • CV514(CV2) ogni singolo bit di questa CV (8 bit) abilita ciascuna uscita del decoder precedentemente selezionato con la CV545(CV33), esempio per abilitare tutte ed 8 le uscite (4 scambi) inserire il valore decimale 255 (11111111 bin.)
  • CV515(CV3) durata impulso delle uscita 1 e 2 del decoder precedentemente selezionato con la CV545(CV33), esempio inserendo il valore 0 l'uscita comandata rimarrà costantemente attiva , mentre valori differenti da zero fino ad un massimo di 255 attiveranno l'uscita comandata per un tempo x al termine del quale viene disattivata.
  • CV516(CV4) durata impulso delle uscita 3 e 4 del decoder precedentemente selezionato con la CV545(CV33), esempio inserendo il valore 0 l'uscita comandata rimarrà costantemente attiva , mentre valori differenti da zero fino ad un massimo di 255 attiveranno l'uscita comandata per un tempo x al termine del quale viene disattivata.
  • CV517(CV5) durata impulso delle uscita 5 e 6 del decoder precedentemente selezionato con la CV545(CV33), esempio inserendo il valore 0 l'uscita comandata rimarrà costantemente attiva , mentre valori differenti da zero fino ad un massimo di 255 attiveranno l'uscita comandata per un tempo x al termine del quale viene disattivata.
  • CV518(CV6) durata impulso delle uscita 7 e 8 del decoder precedentemente selezionato con la CV545(CV33), esempio inserendo il valore 0 l'uscita comandata rimarrà costantemente attiva , mentre valori differenti da zero fino ad un massimo di 255 attiveranno l'uscita comandata per un tempo x al termine del quale viene disattivata.
  • CV547(CV35) questa CV abilita al lampeggio le uscite da 1..8 ( primo e secondo decoder), esempio per fare lampeggiare l'uscita 2 e 7 bisogna impostare il valore decimale 66 (01000010 bin.).
  • CV548(CV36) questa CV determina il tempo di on e di off dell'uscita lampeggiante (uscite da 1..8), i primi 4 bit ( bit 3,2,1,0) determinano il tempo di on i rimanenti 4 (bit 7,6,5,4) determinano il tempo di off.
  • CV549(CV37) questa CV abilita al lampeggio le uscite da 9..16 (terzo e quarto decoder), esempio per fare lampeggiare l'uscita 3 e 8 bisogna impostare il valore decimale 132 (10000100 bin.).
  • CV550(CV38) questa CV determina il tempo di on e di off dell'uscita lampeggiante (uscite da 9..16), i primi 4 bit (bit 3,2,1,0) determinano il tempo di on i rimanenti 4 (bit 7,6,5,4) determinano il tempo di off.
N.B. anche se vengono programmate le CV da 2 a 4 con valore diverso da zero, quindi con durata di attivazione impulsiva, le uscite possono anche essere programmate per il lampeggio.
 
AltreCV
In fase di sola lettura sono presenti altre due CV di seguito descritte :
  • CV519(CV7) contiene la versione del software
  • CV520(CV8) identifica la produzione
 
 
Schema Elettrico Decoder
 
 
PCB Decoder

PCB Decoder lato componenti
 

PCB Decoder lato rame
 
Elenco componenti
Resistenze
  • R1 = resistore 680 1 W;
  • R2 = resistore 100 0,5 W;
  • R3, R4, R5, R7 = resistori 1K 0,25 W;
  • R6 = resistore 10 k 0,25 W;
  • R10÷R25 = resistori 220 0,25 W;
  • R8 = resistore 220 0,25 W;
  • R9 = resistore 2700 0,25 W;
Condensatori
  • C1 = condensatore elettrolitico 470 F;
  • C2, C3 = condensatori elettrolitici 220 F;
  • C4, C5 = condensatore ceramico 22 pF;
Integrati
  • IC1 = microprocessore PIC 16F876 A;
  • IC2, IC3 = circuiti integrati ULN2803 A;
  • IC4 = integrato BDX54C;
  • OPTO_1= opto isolatore 6N136 HD;
  • OPTO_2 = opto isolatore 4N32 oppure 4N35;
Diodi
  • D1÷D5 = diodi 1N4148 o equivalenti;
  • D6 = diodo 1N4007 o equivalente;
  • DZ1 = diodo Zener 6,2 V;
  • LED 1 = LED giallo da 3 mm;
  • LED 2 = LED rosso da 3 mm;
Transistors
  • Q1 = transistore (pnp) BC547;
Transistors
  • TR1÷TR16 = Triac Philips BTA204-600D+127 oppure ST BTB06-600SW;
Quarzo
  • Q2 = 8MHZ;
Varie
  • X1, X10 = morsetti tipo Phoenix Contact art. 1890963 o simili;
  • X2÷X9 = morsetti tipo Phoenix Contact art. 1890976 o simili;
  • F1 = porta fusibile per fusibili di vetro 5x20 (massimo 2 A);
 
Download:
Il software è stato derivato con profondi ampliamenti e modifiche da quello realizzato da Merg (Mike Bolton) per i suoi decoder accessori.
Software da inserire nel PIC.


Dai un voto a questa pagina:

Rating: 1.9/5 (97 votes cast)

(Unobtrusive) AJAX Star Rating Bar Homepage