Booster kredsløb

Så er det blevet juleaften, og tid til at sidde med familien.... med mindre man holder jul i Holland, så kan man snige sig op og rode med elektronik i stedet for. Så må jeg tage juleræset i morgen når familien rykker ind.  Party

I sidste blogindlæg havde jeg et meget enkelt booster kredsløb. Så skulle der bare smides et par funktioner ovenpå.

Kortslytningsbeskyttelse - let nok. En lille modstand (0.05Ω eller lignende). En comparator på der detekterer når spændingsfaldet over denne modstand overstiger et beregnet niveau hvorefter driveren smækker ground på begge skinner. Ikke det store problem.

Men det ville jo være rart hvis kredsløbet selv prøver igen efter for eksempel 10 sekunder - uden at man skal til at pille ved en kontakt eller lignende.

Så jeg begyndte at designe noget. Jeg havde vist in latch til at holde kortslutningssignalet. Men jeg var lidt bekymret for om det gav for meget forsinkelse inden strømmen blev afsluttet. Så jeg begynde at læse om "propagation" delays i diverse datasheets, og kunne bekymret se hvordan de forskellige kredsløbs nano-sekunders delay begyndte at nærme sig noget der samlet blev målt i mikrosekunder.

Det var på tide at google hvad der egentlig er acceptabelt. Jeg fandt ikke umiddelbart en præcis angivelse af hvad en booster normalt har af forsinkelse. Men så faldt jeg over en setting på en booster (jeg tror det var noget fra ESU men er ikke sikker). Der kunne man angive om det skulle være kort eller lang forsinkelse (1/8 eller 1/2 sekund så vidt jeg husker). OK. Det er MEGET langt fra de millisekunder jeg bekymrede mig om.

Men det giver jo et nyt problem. Er der en kortslutning trækkes alt den strøm ud af strømforsyningen som det er muligt. Og dette omsættes til varme. Så jeg måtte i gang med et nyt design der denne gang indeholder en begrænsning på hvor meget strøm der kan løbe ud til skinnerne selv om der er kortslutning indtil strømmen afbrydes.

Ideelt set skal boosteren sættes så lavt som muligt. Det eneste man får ud af f. eks. en 5A strømforsyning på et skinneafsnit hvor der maksimalt trækkes 1A er større skader ved kortslutning. Den bedste løsning ville være at have det under computer kontrol - så computeren ved præcist hvad de enkelte lokomotiver m.m. skal trække på et givet tidspunkt og så åbner den kun for lige det antal ampere. Men det bliver en anden gang, nu holder jeg mig til et simpelt design hvor den enkelte booster kan stilles mellem 0.5 - 2A,

Mit kredsløb ser nu ud som følger:

Billede

Power delen er meget simpel:

Billede

Det er bare et par bypass capacitorer og en standard LM7805 der giver 5V. En LM7805 er ikke særlig effektiv, men det er begrænset hvor meget 5V delen af boosteren trækker, så det er ligegyldigt. Jeg har valgt at smide en stor diode ind så der ikke sker noget hvis jeg får byttet ledningerne. Det koster et spændingstab på omkring 1V, men det tager jeg gerne hvis det sikrer at det hele ikke sprænger i luften. Smile

DCC input fra min SPC2DCC dimmer kommer ind her:
Billede

Til venstre ses optocoupleren der beskytter SPI2DCC enheden (og den rasperry PI der er bagved) imod 12V. Øverst til højre er der en "pulse detector". Først inverteres signalet med XOR gaten (eller rettere - det "inverteres tilbage" da optocoupleren også inverterer). Når der er et højt SPI signal løber strømmen gennem dioden og capacitoren lades op. Når signalet er 0 aflades capacitoren igennem modstanden hvilket tager tid. Det betyder at så længe der kommer et DCC signal vil spændingen ligge og rode mellem 2-4V. Når der ikke kommer flere DCC impulser vil spændingen falde under de 1.35V og LM339 comparatoren vil sætte DCC Enable lav.

Egentlig behøvede jeg ikke denne del - da min SPI2DCC dimmer allerede har et DCC Enable signal. Men jeg havde både et comparator og XOR gate "i overskud", og på denne måde vil boosteren også virke med andre command stations uden DCC Enable signal.

Planen med kontakten SW601B er at jeg kan tvinge DCC_ENABLE høj, selv om der ikke er noget DCC signal. Det vil give en 12V jævnstrøm på skinnerne. Det gør det let at måle spændingen overalt på anlægget - så længe jeg husker at programmere alle lokomotiver til IKKE at acceptere et DCC signal. Glemmer jeg det, så må jeg jo bare håbe der ikke står noget i vejen for dem. Smile

Så er vi kommet til det der nok er den mest interresante del af en booster - spændingsbegrænsningen.

Billede

Øverst til venstre er der en LM358. Den bruges ofte til at generere en spænding (den kan for eksempel også lave 5V). Men her er den sat op så den begrænser hvor mange ampere der kan løbe igennem. Det gør den ved at formindske spændingen så spændingsforskellen mellem Vout og Adj ikke overstiger 1.3V. Igen er en LM358 ikke det mest effektive på jorden, og her er det lidt værre end det var med 7805'eren - da der løber MEGET mere strøm igennem den. Men den er rated til 5A, så jeg er ikke tæt på nogen grænseværdier så længe jeg får den ordentlig kølet.

Da de 1.3V der skal til før LM358'eren reagerer er noget mere end jeg vil have under normalt drift, forstærker jeg i stedet det spændingsfald der er over "shunt" modstanden på 0.5Ω. Ved 2A vil det give (jævnfør ohms lov) et spændingsfald på 0.1V og 0.2W. Da 0.2W er i overkanten for en lille SMD modstand er der brugt 2 0.1Ω modstande i stedet - så får de 0.1W hver. Det er indenfor grænseværdierne.

Jeg har brug en op-amp i "minus" konfiguration. Så volt på pin1 =  x * pin3 - pin2. X er en faktor der styres med trimpotten RV502 - og det er her jeg indstiller boosteren til 0.5 - 2A. Jeg skal lige have regnet det igennem igen inden jeg lodder modstandene på - jeg har ikke haft lyst til at eksperimentere med 2A mens jeg opbyggede mit kredsløb, så her har jeg brugt langt højere modstande end de .05Ω.

Den anden op-amp (U502B) bruges til at beregne hvor tæt jeg er på de 1.3V der får kredsløbet til at begrænse spændingen. Den er sat op som en simpel "subtractor", så hvis jeg for eksempel har 12.4V ud fra LM338'eren og 11.3 volt på Adjust - så vil jeg få 12.4 - 11.3 = 1.1V ud fra U502B.

Dette fodres ind til en comparator (U203D) der er indstillet omkring de 1.2V. Er der større spændingsfald lukker den forbindelsen mellem ben 14 og 12 der ellers sikrer at capacitoren C502 ikke bliver opladet. Med denne forbindelse lukket vil capacitoren oplade langsomt gennem modstanden R510.

Igen bruges der en comparator (U203C) der kan instiles. Desto højere reference volt den får, desto længere tid tager det inden kapacitoren når op på denne spænding. På den måde kan jeg styre hvor lang forsinkelse der skal være efter en kortslutning er detekteret indtil strømmen afbrydes.

Til højre ses en 555 timer i "monostable" konfiguration. Når U203C går lav (kortslutning detekteret) sætter den ben 3 højt i en periode der styres af modstanden RV504. Jeg kan stille den til 0-50 sekunder før den "clearer" kortslutningssignalet og prøver at sætte spænding på skinnerne igen.

And gaten U504A resetter perioden hvis jeg har haft signalet afbrudt - enten med kontakten eller hvis computeren har shaft DCC signalet slået fra.

Billede

Statuskredsløbet laver ikke så meget. Det skal bare sørge for at min LED lyser op i den rette farve, og naturligvis at DCC signalet rent faktisk afbrydes hvis der er kortslutning eller hvis kontakten afbrydes. Jeg har valgt at lave alle udgange så der kan smides en optocoupler direkte på min booster. Jeg ved ikke om jeg ender med at gøre det - men nu er muligheden der i det mindste.

Billede

Reversing kredsløbet kan invertere DCC signalet hvis en IR detector får lysstrålen afbrudt. Igen bruges en LM339 comparator til at indstille hvor følsomt signalet er. Kontakten SW601C kan invertere inverteren - det skal bruges hvis sensoren sidder ved siden af IR LED'en så det er refleksionen der angiver at en tog befinder sig ved sensoren. Jeg regner ikke med at bruge dette, men da jeg allerede havde en XOR gate fri så koster det kun in DIP switch og en modstand.

Til sidst er der selve driveren der forsyner skinnerne med strøm:

Billede

Der er ikke det store at sige om dette. Det er bare en SN754410 der har begge H-bridges forbundet i serie så den kan trække de fulde 2A. Jeg overvejede at lave det så man kunne køre hver side med sin egen inverter. Så skulle jeg kun bruge én booster til at styre begge mine vendesløjfer. Men det går det hele lidt mere kompliceret og det bliver meget lettere at lave kortslutning ved et uheld - så jeg holder mig til den simple løsning nu. Det bliver alligevel langt billigere end et almindeligt vendesløjfemodul.

På et breadboard ser rodet sådan her ud:
Billede

Det siger sig selv at jeg ser frem til at slippe for det ledningsrod med et ordentligt PCB.

Jeg er stort set tilfreds med kredsløbet. Der er kun en lille ting der nager mig lidt. Som jeg skrev i et tidligere indlæg er der en transistor der giver lidt forsinkelse på DCC signalet når det skifter fra høj til lavt. Det ser ud til at SN754410 chippen også giver en forsinkelse. Resultatet er at signalet på den ene skinne bliver korrigeret og er næsten perfekt - mens signalet på den anden skinne bliver værre:
Billede

Jeg overvejer at smide en transistor ind foran driveren - så signalet bliver ens på begge skinner. På den anden side kan jeg ikke lide at lave noget i boosteren der er tilpasset en specific DCC generator. Jeg vil helst have at det hele kan flyttes rundt som det passer mig i fremtiden.

Forskellen mellem den høje og lave del af perioden er (en anelse) mindre en 3µs. Ifølge DCC standarden skal dette signal godkendes af en dekoder (og mit lokomotiv ser ud til at være tilfreds med signalet), så jeg regner med at lade det være som det er nu.

Så nu er det videre med PCB design, og derefter skal jeg have set på hvordan jeg får input til min Raspberry PI. Jeg kunne lave et S882SPI device, men jeg har lidt andre overvejelser. Dem vender jeg tilbage med senere - der er først lidt juleræs der skal nydes!

 

 

__________________

mvh
Lars M

Er så småt ved at begynde at pille i skala n, epoke III, DB.

Like 0 kan lide
Top

Picture

HEDO

Pension, tidl. DSB IT

Indlæg: 162

PB

Hej.

Prøv at følg dette link til Litra.dk, hvor Haakon Hansen har udviklet automatsikring.

http://litra.dk/userfiles/downloads/Boostere%20p%C3%A5%20modelbanen.pdf

God fornøjelse.

__________________

Henrik D.

Modeljernbane gennem 50 år. Kører nu 2 skinne digital system med dansk landskab.

Medlem af KMK, Karlemoseparkens Modeljernbane Klub i Ølby ved Køge. Medredaktør af Mosebanens Klubnyt.

 

Like 0 kan lide
Top

Picture

lmoelleb

Doorwerth Nederlandene

Indlæg: 78

PB  Blog

Den har været nævnt et par gange. Der er også en del andre boostere man kan finde kredsløb til rundt omkring.

Men man ender jo nu engang med sine egne ønsker, og det er også sjovt at lave det selv. Smile

__________________

mvh
Lars M

Er så småt ved at begynde at pille i skala n, epoke III, DB.

Like 0 kan lide
Top

Kommentarvisning

Vælg din foretrukne kommentarvisning og klik på "Gem indstillinger" for at aktivere dit valg.