RLM - Reverse Loop Module

  • In perioada urmatoare o sa vi se solicite modificarea parolei. Pana la modificarea parolei, userul poate figura ca si blocat, odata modificata parola, userul este reactivat automat.
    Pentru orice problema va rog folositi butonul "Contact"

dac

Well-Known Member
Trenulist
15 Septembrie 2007
1.412
272
Bucuresti
LOCATION
Bucuresti
Toti cei care folosesc bucle de intoarcere pe diorama cunosc prea bine utilitatea... nope, necesitatea unui modul electronic a carui unica menire este de a pune de acord polaritatea semnalului DCC din interiorul buclei cu cea a semnalului DCC dinafara ei. Nepotrivirea apare intotdeauna la iesirea din bucla, si cateodata la intrarea in ea, iar daca nu este corectata prompt duce la crearea unui scurt-circuit, urmat de intrarea in mod avarie a centralei digitale.

Comutarea polaritatii semnalului DCC din bucla se face in mod traditional mecanic cu ajutorul unui simplu releu DPDT, dar implementarile comerciale mai noi folosesc solutii "solid-state" fara elemente in miscare. Intrucat nu (prea) am gasit module DIY (do-it-yourself) care sa foloseasca varianta "solid-state", mi-am zis ca ideea merita studiata. Modulele avute in vedere au fost Lenz LK200 (cu multumiri colegului @cheluIS pentru pozele furnizate) precum si NCE AR-10:

20220518_194412.jpg
AR10.jpg

Ambele module folosesc cate 8 MOSFET-uri de putere pentru comutarea polaritatii; nestiind prea multe despre tranzistoarele MOSFET in general, si despre cum pot fi ele folosite pentru comutarea unui semnal bipolar (alternativ dreptunghiular) in particular, am decis ca este momentul sa aprofundez acest aspect.
Iata ce am inteles:

mosfet 1.png

In schema este prezentat pentru simplitate doar unul dintre cele 2 brate care asigura comutarea polaritatii, cel pentru polaritatea directa. Celalalt brat, pentru polaritatea inversata este identic, difera doar conectarea inversata la iesire. Semnalul DCC de la centrala digitala este aplicat conectorului X2 (X2-1 si X2-2), bucla de intoarcere fiind conectata la X1. In paralel pe iesire se afla rezistorul R22 de 15 k.

a). In absenta comenzii de deschidere a optocuplorului OK1, tranzistorul intern precum si cele 4 MOSFET-uri sunt blocate; tensiunea DCC nu ajunge la bucla.

Daca optocuplorul OK1 primeste o comanda de deschidere, tranzistorul intern este deblocat. Sa presupunem ca semnalul DCC are polaritatea (+) la X2-2 si (-) la X2-1:

b). Polaritatea (+) ajunge prin dioda dreapta-sus a puntii B1 - OK1 - D1 la rezistorul R1 si portile G ale Q1 si Q2. Aceste 2 MOSFET-uri sunt conectate cu sursa S comuna, dar Q1 este polarizat invers fiind deci blocat. Totusi, prin dioda interna figurata in dreapta simbolului, polaritatea (-) ajunge de la X2-1 la R1 si cele 2 surse Q1 si Q2.
Astfel, apare pe R1 tensiunea DCC (15 V) mai putin caderile de tensiune pe B1, OK1, D1 si dioda interna a Q1 (aproximativ 2.7 V in total). Aceasta tensiune de 12.3 V deschide canalele drena D - sursa S ale Q1 si Q2. O caracteristica a acestor canale datorate efectului de camp electric este bidirectionalitatea lor (spre deosebire de jonctiunile PN).

c). Odata deschis canalul Q1, acesta intra in conductie chiar daca este polarizat invers si scurtcircuiteaza dioda interna. Astfel tensiunea pe R1 creste cu 1.3 V la 13.6 V. Caderile de tensiune pe MOSFET-urile Q1 si Q2 fiind practic neglijabile, polaritatea (-) ajunge la R22 si iesirea X1-2.

Prezenta R22 permite transmiterea polaritatii (-) catre ramul de sus (Q3 si Q4) si deschiderea in mod similar a acestuia. In absenta R22 (sau a unei locomotive in bucla), ramul superior nu se deschide si tensiunea DCC nu este prezenta in bucla. Rezistorul R2 faciliteaza detectia momentului intrarii locomotivei in bucla.

d). Tensiunea DCC minus caderile pe B1, OK1, D2 si dioda interna Q3 (12.3 V) apare pe R2 + R22 care sunt practic inseriate. Deci cam 5 V apar pe R2, suficient pentru a deschide ambele canale drena - sursa ale Q3 (polarizat invers) si Q4 (polarizat direct). Dioda interna a Q3 fiind scurtcircuitata, tensiunea pe R2 creste cu 0.5 V.

e). Deschiderea canalului drena - sursa a Q4 aduce practic polaritatea (+) la R2. Dioda D2 fiind acum polarizata invers se blocheaza si astfel dispare tensiunea pe R2, ceea ce ar trebui sa duca la blocarea Q3 si Q4. Totusi, sarcinile electrice acumulate in regiunea G - S a celor 2 MOSFET-uri (care se comporta ca un condensator) tin un timp ambele canale deschise complet. Ulterior, incepe inchiderea partiala a Q4 pana la deschiderea D2 si aparitia unei stari de echilibru cu Q3 si Q4 partial deschise.

Asa arata semnalul DCC la intrarea X2 (vizualizarea unui bit '0'):

6e.jpg

Si asa arata acum la iesirea X1:

7e.jpg

Se observa faptul ca, dupa 67 uS de la debutul polaritatii incepe blocarea partiala a Q3 si Q4 pana la atingerea unui echilibru. Acest efect apare numai pe bitii de '0' care au o durata de 116 uS (Roco Multimaus). Bitii '1' cu durata de 58 uS nu sunt afectati.

Ei bine, sa suplimentam atunci "condensatorul" G - S cu unul extern:

mosfet 2.png

Am incercat initial unul de 3.3 nF (masurat 1.4 nF):

9e.jpg

Se vede ca "declinul" tensiunii a fost amanat cu fix 14 uS (pe undeva de asteptat avand in vedere constanta de timp RC = 1.4 nF x 10 k = 14 uS).
Un calcul simplu imi spune ca pentru a acoperi intreaga durata a unui bit '0' am nevoie de un condensator de 5 nF. Sa folosim atunci unul de 10 nF pentru a avea o marja de siguranta.
Bingo! Semnalul la iesirea X1 este acum identic cu cel de la intrare:

19e.jpg

La schimbarea polaritatii cu (-) la X2-2 si (+) la X2-1, procesele se repeta similar, cu deschiderea succesiva a Q4, Q3, Q2 si Q1. Aceasta succesiune de deschidere apare numai la actionarea optocuplorului; cat timp acesta este mentinut deschis, prezenta condensatoarelor de 10 nF tine canalele drena - sursa deschise si in timpul schimbarii polaritatii semnalului DCC (ele fiind bidirectionale) cu reimprospatarea tensiunilor de pe condensatoare la fiecare schimbare de polaritate.

Exista si un revers al utilizarii condensatoarelor suplimentare: la detectarea scurtului si comanda de blocare data optocuplorului, aceste condensatoare vor mentine MOSFET-urile deschise un timp si prelungirea scurtcircuitului. Pana la inchiderea completa a MOSFET-urilor din bratul care a dat scurcircuitul nu se poate comanda deschiderea celuilalt brat (care ar elimina scurtul produs) intrucat deschiderea ambelor brate (direct si invers) ar duce tocmai la crearea unui scurtcircuit intern intre ele. Iata comportamentul unui brat care se inchide / deschide la fiecare 1 mS (1000 uS) fiind alimentat in DC nu DCC pentru a se observa mai usor curba de inchidere a MOSFET-urilor:

18e.jpg

Se observa scaderea tensiunii sub 0.5 V dupa 200 uS si inchiderea completa dupa 500 - 600 uS. Ca urmare, dupa comanda de inchidere data bratului curent (care a produs scurtul) va urma o pauza de 1000 uS (1 mS) si abia apoi va fi deschis bratul celalalt. Viteza de comutare a acestui circuit este deci de 1 mS, mult mai rapida fata de NCE AR-10 (16 mS) sau a modulelor cu relee (<20 mS).

Circuitul de mai sus este gandit pentru a fi folosit in DCC cu o tensiune la sine de 15 V. MOSFET-urile suporta tensiuni G - S de maxim 20V; pentru a preveni varfuri de tensiune peste aceasta valoare, am inclus (nefigurat in schema prezentata) un snubber DCC realizat dupa schema clasica: 5 rezistoare de 470 ohm in paralel (94 ohm echivalent) aflate in serie cu un condensator de 47 nF. NCE foloseste condensator de 100 nF, dar in teste 47 nF parca se comporta mai bine (iar snubber-ul se incalzeste mai putin).

Snubber.jpg

Aceste snubbere se conecteaza de obicei la capetele tronsoanelor de alimentare lungi ce vin de la centrala; cum buclele de intoarcere se afla de obicei la capete de traseu, prezenta unui astfel de snubber la intrarea in modul este asadar cat se poate de nimerita. Un efect secundar este atenuarea unei oscilatii parazitare ce apare la tranzitia de la o polaritate la alta.

Panta semnalul DCC la iesirea din centrala digitala fara nimic conectat:

13e.jpg

Panta semnalului DCC cu modulul conectat fara snubber:

15e.jpg

Panta semnalului DCC cu modulul cu snubber la intrare:

17e.jpg

Acea oscilatie este insa nesemnificativa fiind cu mult in interiorul specificatiilor DCC, durata tranzitiei intre -4 V si 4 V fiind 0.7 uS (maxim 3.2 uS conform NMRA).
 
Ultima editare:
  • Like
Reac?ii: mpursu
Odata rezolvat etajul de comutare "solid-state" am trecut la celalalt etaj important al modulului: detectia nepotrivirii polaritatii buclei. Intotdeauna la iesirea din bucla (intrucat trenul se afla deja in ea, deci polaritatea buclei corespunde cu cea a segmentului de intrare) si cateodata la intrarea in bucla (in functie de pozitia macazului de intrare) apare o nepotrivire intre polaritatea tensiunii DCC din bucla si cea dinafara ei.

Cand locomotiva traverseaza izolarea dintre bucla si circuitul principal, se produce inevitabil un scurt-circuit. Etajul de detectie incearca sa depisteze cat mai rapid acest scurt si sa comande inversarea polaritatii din bucla, cu mult timp inainte ca centrala digitala sa il detecteze la randul ei si sa comande oprirea tensiunii DCC. De asemenea, o viteza ridicata de detectie urmata de o comutare rapida, poate face intregul proces insesizabil chiar de catre locomotive, fara fluctuatii de mers, ale iluminarii sau intreruperi de sunet.

Unele module (Tams KSM-1) detecteaza scaderea tensiunii DCC ce apare in urma scurt-circuitului; altele (majoritatea) detecteaza cresterea abrupta a curentului si declanseaza comutarea la un prag de curent inferior celui folosit de centrala digitala (2.5 A pentru Roco MultiMaus). Lenz LK200 detecteaza dezechilibrul dintre curentii de scurt-circuit ale celor 2 sine (vezi detalii aici: https://forum.lokomotiv.ro/threads/lenz-12200-lk200.15609/). Chiar daca principiul folosit de Lenz actioneaza la curenti reziduali (de dezechilibru) mici, este greu de crezut ca intreruperea scurtului se face suficient de rapid (folosind comutarea "solid-state" descrisa anterior) si curentii nu au timp sa creasca la valori mai mari. Ar fi interesant de exemplu daca si in cazul Lenz LK200 apar sau nu acele microscantei la traversarea izolarilor (daca colegul @cheluIS ar putea face cateva determinari in conditii de lumina redusa ar fi perfect...).

Am ales sa nu ma complic si sa folosesc detectia de supracurent la un prag peste 2 A dar sub cel de 2.5 A folosit de centrala Roco. In mod clasic, detectia curentilor din bucla se face cu transformatoare de curent, de genul celor folosite de NCE AR-10 (vezi mai sus), dar acestea sunt sensibile la perturbatii electromagnetice si pot duce la comutari spontane ale modulului. Cautand o solutie mai sigura, am gasit circuitul ACS712, un senzor de curent integrat ce foloseste efectul Hall:

IMG_0936.jpg

IMG_0938.jpg

Exista astfel de module ce suporta curenti de 5 A, 20 A si 30 A, cel de 5 A fiind acoperitor pentru necesitatile DCC si avand si cea mai mare sensibilitate (185 mV/A). Pe placuta exista un condensator de 10 nF care determina viteza de reactie a circuitului; l-am inlocuit cu 2 condensatoare de 10 nF inseriate (5 nF echivalent) care reduc lag-ul la 20 uS. Acest condensator (impreuna cu snubber-ul de la intrarea in modul) contribuie la ignorarea eventualelor varfuri de tensiune ce pot aparea la traversarea buclei de catre o locomotiva.

Exista 2 astfel de module, cate unul pentru fiecare latura a circuitului. Tensiunile furnizate de aceste module sunt evaluate permanent de catre 2 comparatoare din PIC-ul 16F689; cand este depasit pragul stabilit este declansata comutarea descrisa mai sus. Pragul de curent poate fi setat in functie de necesitati la 0.84 A, 1.13 A, 1.69 A, 2.25 A, 2.53 A, 3.38 A. Am ales valoarea de detectie de 2.25 A ca fiind acoperitoare pentru consumul din bucla si sub valoarea prag a centralei.

rlm 2.png

rlm 3.png

rlm 1.png

IMG_0892.jpg

IMG_0893.jpg

IMG_0910.jpg

IMG_0912.jpg

MOSFET-urile de putere sunt FZ44NS, folosite si de NCE AR-10. Modulul RLM nu necesita alimentare separata, ci foloseste tensiunea DCC pentru necesitatile proprii (~35 mA). Exista 2 iesiri de 12 V pentru comanda unor leduri exterioare care sa semnalizeze polaritatea din bucla (semafoare?).

Functionarea modulului este urmatoarea: cand PIC-ul detecteaza depasirea pragului setat este comandata mai intai oprirea bratului activ (direct sau invers). Asteapta apoi 1 mS necesara blocarii complete a MOSFET-urilor, dupa care activeaza celalalt brat. Daca dupa o alta pauza de 1 mS este detectata in continuare depasirea pragului se presupune existenta unui scurt-circuit real in bucla (tren deraiat, etc.) si sunt oprite ambele brate pentru 1 minut (avarie, marcata de pulsarea ledului rosu). Dupa 1 minut este incercata o tentativa de activare a cate unui brat pe rand; daca supracurentul persista, starea de avarie continua cu tentative de pornire automata la fiecare minut.

Intrucat in marea majoritate a timpului modulul RLM nu face practic nimic, i-am mai adaugat o functionalitate: cea de accesoriu DCC. Astfel se poate comanda de la distanta comutarea polaritatii buclei direct din MultiMaus. Aceasta functie este utila in cazul dioramelor controlate de PC, polaritatea din bucla si pozitia macazului de intrare pot fi setate din soft in functie de starea senzorilor de pe traseu si se pot evita astfel situatiile de scurt de intrare sau iesire din bucla.

Adresa DCC implicita este 5 dar poate fi schimbata usor: la punerea sub tensiune modulul RLM asteapta 5 secunde o comanda accesorii "ON" urmata apoi in alte 5 secunde de alta comanda "OFF". Daca adresele celor 2 comenzi sunt identice, acea adresa este memorata si modulul va raspunde ulterior la ea.
 
  • Love
  • Like
Reac?ii: SSL ?i mpursu
Actually, daca stau sa ma gandesc bine, rezistorul R22 nu este necesar, iar functionarea etajului final este un pic alta (cu sau fara R22):

mosfet 2.png

La comanda de deschidere a optocuplorului, numai ramul de jos se deschide in timpul alternantei curente (cu incarcarea condensatorului C1). La urmatoarea alternanta, practic ramul de jos devine sus, si invers. C2 ajuns jos se incarca, dar C1 (ajuns sus) este deja incarcat si Q1, Q2 deja deschise. Dioda aferenta D1 fiind polarizata invers nu se deschide, C1 descarcandu-se lent prin R1.

Cu alte cuvinte, numai condensatorul de langa MOSFET-ul care primeste polaritatea (-) se incarca, in timp ce celalalt se descarca prin rezistorul invecinat. Cand C1 se incarca C2 se descarca, si invers (la inversarea polaritatii).

La alimentarea in curent continuu, condensatorul de sus "nu ajunge niciodata jos" deci nu are ocazia de a se incarca complet. Astfel, la testul de durata a inchiderii MOSFET-urilor, Q3 si Q4 nu se deschid complet iar tensiunea la iesire nu ajunge la 15V. In plus tensiunea scade imediat (fara platou) spre valoarea de echilibru ("ciocul" din imagine):

18e.jpg

In absenta R22, testul in curent continuu nu ar fi insa posibil, ramul de sus ramanand inchis. Testul este totusi valid, de interes fiind curba de inchidere a MOSFET-urilor (neinfluentata semnificativ de valoarea tensiunii).
 
Iulie 2023 update:

Spuneam mai sus ca MOSFET-urile suporta tensiuni G-S de maxim 20V si ca schema include un snubber DCC cu rolul de a "reteza" varfurile de tensiune ce apar inevitabil si aleator in timpul functionarii.
Pentru o protectie suplimentara a etajelor finale, nu este o idee rea folosirea unor diode Zener de 18V impreuna cu rezistentele de limitare a curentului aferente (180 ohm). Acestea apar de altfel in modulul Lenz LK200, dar nu si in cel produs de NCE.

rlm 5.png

rlm 6.png

rlm 4.png

Schema acum este (pare?) completa!
 

Ata?amente

  • rlm 5.png
    rlm 5.png
    63,8 KB · Vizualiz?ri: 4
  • Like
Reac?ii: Radu161
Ce nu imi place mie la toate aceste module pentru bucle de intoarcere este tocmai faptul ca functionarea lor se bazeaza pe (mini)scurtul produs de roti atunci cand polaritatea buclei este opusa fata de restul traseului. Nu este chiar simplu sa creezi un modul mai sensibil decat centrala (pentru a reactiona inainte ca aceasta "sa se sesizeze"), dar suficient de "nesimtitor" la pulsurile si spike-urile de curent care pot aparea in timpul traversarii buclei de catre un tren cu consum ridicat (iluminat, fum, sunet, motoare mai vechi, etc.). In plus, modelisti din toata lumea spun ca scanteile (care se pot vedea cu usurinta in intuneric) produse de aceste scurturi ar afecta negativ rotile si sinele implicate.

Ar fi bine daca am putea evita cu totul aceste situatii, nu-i asa?

DCC-RLM sau Reverse Loop Module versiunea "lite":
dcc rlm 1.png
dcc rlm 2.png

Dupa cum se observa din schema electrica, DCC-RLM este asadar o versiune simplificata, FARA detectie de supracurent, si care foloseste un microcontroller mai simplu (PIC12F629). Se prezinta insa ca un accesoriu DCC, polaritatea la iesire fiind determinata de comenzile primite de la centrala.

dcc rlm 3.png
IMG_1544.jpg
IMG_1545.jpg
IMG_1550.jpg

Ideea este ca DCC-RLM sa primeasca aceeasi adresa DCC ca si decodorul macazului care deserveste bucla de intoarcere, polaritatea din bucla fiind intotdeauna in concordanta cu iesirea macazului (directa / abatuta). Se pot evita astfel scurturile de la intrarea / iesirea din bucla, cu toate problemele legate de ele.

loop-a.jpg

Sa presupunem ca un tren intra in bucla prin ramura "abatuta" a macazului si parcurge bucla in sensul sagetii negre. Odata intrat complet, se poate comanda din centrala simultan comutarea polaritatii si a macazului. Schimbarea polaritatii avand loc "sub rotile trenului" este necesar sa dureze cat mai putin posibil pentru a trece neobservata, ceea ce recomanda folosirea unui etaj final cu MOSFET-uri in loc de releu (1 ms durata). Comutarea se poate si automatiza usor cu un senzor de prezenta plasat "strategic" pe linia dreapta a iesirii, la o distanta de macaz care sa asigure comutarea macazului in timp util (~3 sec.?).

loop-b.jpg

Dupa comutare, polaritatea este aliniata cu ramura "directa" a macazului si trenul poate continua drumul fara probleme (si fara scurtcircuite). Bucla este acum pregatita pentru a fi parcursa in sens invers; pentru automatizare este insa necesar inca un senzor pe linia dreapta de sus.

Similar decodorului macaz de aici: https://forum.lokomotiv.ro/threads/decodor-dcc-pentru-servomotor.15741/ DCC-RLM isi salveaza polaritatea iesirii in EEPROM-ul PIC-ului la fiecare comutare si o va tine minte la urmatoarea pornire a dioramei. Asemanator, firmware-ul intern poate fi programat in mod POM:

- CV101 = adresa decodor in intervalul 1-99, implicit 99.
- CV102 = polaritatea la iesire. Bitul 5 este "1" pentru normal si "0" pentru inversat. Se foloseste daca la montare au fost inversate din greseala firele din bucla, si bucla este in permanenta discordanta cu macazul. Atentie la folosirea DCC-RLM cu decodorul macaz mentionat mai sus: odata ce au aceeasi adresa, modificarea prin POM a CV102 va afecta ambele circuite. De aceea, este bine ca setarile sa fie facute pe adrese diferite, trecerea pe o adresa comuna fiind facuta la sfarsit.