Booster Analog/DCC

sogard_2003

Well-Known Member
Trenulist
19 Ian 2016
3.608
0
Bucuresti
LOCATION
Bucuresti
Placa e extrem de inghesuita , poate daca o mai aerisesti putin o sa amia scapi de strapuri. Unde te grabesti :D ? Arde pasiunea ? Rezistentele ce capsula au ? E cel putin de 0.25w sau vrei sa le lipesti in picioare ?
 

oilen

Active Member
Trenulist
7 Dec 2011
74
0
Bucuresti
LOCATION
Bucuresti
@sogard_2003. stiu. placa este extrem de inghesuita si probabil ca va fi reproiectata pe submodule. ( trebuie sa incapa intr-o cutie care are aproximativ dimensiunile placii). cit despre driver in mijlocul placii... nu scrie nicaieri ca nu poate fi pus acolo. in plus la varianta SMD capsula POWERSO nu are radiator. Oricum voi reproiecta placa. Sunt constient ca m-am grabit :D

stima
 

sogard_2003

Well-Known Member
Trenulist
19 Ian 2016
3.608
0
Bucuresti
LOCATION
Bucuresti
Well , spor al proiectare. Daca ramai pe driverul ala eu zic ca nu i-ar strica un radiator. Ce curent ai de gand sa treci prin el ? Daca ramai ca mine la 1 - 2 locomotive poate ca nu e necesar un radiator .
 

oilen

Active Member
Trenulist
7 Dec 2011
74
0
Bucuresti
LOCATION
Bucuresti
@sogard_2003 va merge la capacitatea maxima (4 sau 6 AMP) si va avea radiator si ventilator.
 

LiviuM

Well-Known Member
Trenulist
11 Mar 2011
397
0
Nedumerirea mea e legata de numarul portilor discrete folosite. Nu reusesti sa inghesui toata logica in uC?
 

oilen

Active Member
Trenulist
7 Dec 2011
74
0
Bucuresti
LOCATION
Bucuresti
@liviuM folosesc cele doua PWM-uri ale cip-ului. cum nu am cum comanda decat cu un inversor input1/input2 in opozitie asa apar cele doua seturi de ls00. Pentru generarea semnalului de cutout tabela logica a L298 zice ENABLE=H INPUT1-H INPUT2=H. aici apare prima grupa de ls125( IC6 IC7 ). IC8 face doar switch-ul pentru modul BRIDGE in asa fel in cat intrarile INPUT1=INPUT4 si INPUT2=INPUT3. As putea renunta la modul bridge si atunci schema scapa de doua IC-uri. In BRIDGE sistemul nu va putea fi folosit decat fie analog fie DCC. Am vrut sa fie cat mai multe functionalitati indesate intr-un singur modul...poate nu a fost o idee prea buna...

stima
 

oilen

Active Member
Trenulist
7 Dec 2011
74
0
Bucuresti
LOCATION
Bucuresti
@sogard_2003 am recablat dracovenia cu l298 lateral. Recunosc e mult mai ok asa. comentarii?


@liviuM cat despre software... e destul de naspa sa faci PWM software chiar si la 20 MHZ. sunt multe de facut in timpul in care poti lasa PWM-ul sa ruleze linistit. In DCC nu poti intrerupe fluxul de date pe o perioada mai mare decat cutout-ul se zapaceste toata transmisia. In plus ai de tinut minte comenzi pentru o caruta de decodoare, consist-uri si astea trebuie actualizate in timp real. plus ca trebuie sa reactionezi la intreruperi. Spre exemplu..lansezi o comanda de programare pe track. nu stai in bucla sa astepti toata tarasenia sa-ti raspunda. mergi pe intrerupere si astepti sa iti dea ceasul timer0 timeout in intrerupere iar tu transmiti DCC in continuare pe canalul stabilit si in timpul asta actualizezi si ADC-ul. Seriala oricat de rapida ar fi tot pe intrerupere merge. ai putea sa faci pooling pe serial si sa astepti comenzi in bucla. Dar incetinesti programul si incepi sa ai probleme cand controlezi mai multe decodoare. Asa cum e el facut acum, PWM-ul ruleaza linistit de capul lui pe un canal si pe celalalt te poti juca cu DCC fara sa simti vreo problema.

stima
 

LiviuM

Well-Known Member
Trenulist
11 Mar 2011
397
0
oilen a spus:
cat despre software... e destul de naspa sa faci PWM software chiar si la 20 MHZ. sunt multe de facut
Am descoperit pe propria piele la telecomanda loconet la care muncesc acum. Nu cu PWM-ul (nu folosesc PWM), ci (cred) cu afisarea pe un LCD care afisare consuma destul de multe resurse. Cum ziceam, inca n-am solutii, da' mai caut.
oilen a spus:
In DCC nu poti intrerupe fluxul de date pe o perioada mai mare decat cutout-ul se zapaceste toata transmisia...
Primele teste in digital le-am facut cu o centrala mica facuta de mine (mult mai simpla decat ce ti-ai propus tu), asa ca am oarece idee. :fluierat:

Da' gata, am offtopicarit destul. Scuze si spor la treaba!

LE In timp ce ma uitam la cablaj si am vazut partea de comunicatie cu calculatorul m-am intrebat daca n-ar fi mai interesant sa folosesti un 18F2550/4550 si sa faci comunicatie directa prin USB.
Ceva avantaje ar (zic eu), dezavantajul major (in cazul meu) a fost schimbatul sculelor de programare (stackul USB de la uChip e pentru compilatorul lor, C18). Daca m-am prins bine tu folosesti CCS-ul, asa ca si la tine ar fi o "modificare".
 

oilen

Active Member
Trenulist
7 Dec 2011
74
0
Bucuresti
LOCATION
Bucuresti
@liviuM foloseste LCD-ul pe tot bus-ul D comunici cu el pe 8 biti merge foarte repede

uite si niste cod in CCS C PIC 16f877 20MHZ
Cod:
<i>
</i>/th_ hd447XX LCD routines for compatible display w 2 lines th_/

REVS
/th_ 27.10.1999 001 A - modified timing on port E due to some problems with CSth_ chips on some compatible LCD
    5.11.1999 002 D - removed 4 line LCD 
    12.11.1999 003 E - test final GTP 16F877
    5.7.2005 004 E - test final GTP 16F877A -20/IP

 th_/


use fast_io(E)
use fast_io(D)

void lcd_put_cmd(byte cmd){
	set_tris_E(0xF8);
	set_tris_D(0x00);	//all ports as outputs
	output_E(0x00);
	PORT_D = cmd ;		//put byte on data
	output_E(0x04);
        //001A START
	delay_ms(1);                   //here we had 3ms settle time but it was wrong
	//001A END
        output_E(0x00);
}

void lcd_put_char(char dta){
	set_tris_E(0xF8);
	set_tris_D(0x00);	//all ports as outputs
	output_E(0x01);
	PORT_D = dta;		//put byte on data
	output_E(0x05)	;	//enable high
	delay_ms(1);
	output_E(0x01);
}

/th_ this is very very important th_/
void lcd_init(){
	byte i;

	set_tris_E(0xF8);
	set_tris_D(0x00);	//all ports as outputs
	output_E(0x00);
        //001 A START
	delay_ms(100);		//100 ms delay
       //001A END


	lcd_put_cmd(0x38);	//say 8 bit data 2 lines
	lcd_put_cmd(0x0C);	//cursor show and no blink
	lcd_put_cmd(0x03);	//inc with each recv
	lcd_put_cmd(0x01);	//clear
	lcd_put_cmd(0x06);	//autoinc
	lcd_put_cmd(0x02);	//home
       //001A START
	delay_ms(1000);		//a little delay
      //001A END
}


void lcd_clear(){
	lcd_put_cmd(0x01);
 	delay_ms(2);
}

void lcd_l2(){
	lcd_put_cmd(0xC0);
	delay_ms(2);
}
 

LiviuM

Well-Known Member
Trenulist
11 Mar 2011
397
0
Merci, n-am decat 4 linii (de date). Ma rog, cred ca pana la urma as putea sa le eliberez pe restul, da' mai incerc asa cum e. Sau ma supar si testez cu un 18F4520 (parca de-asta am) care am senzatia ca merge cu 40 MHz (si are acelasi pinout). Mai vad, n-am nici o graba.
Oricum, codul e in studiu. :) Multumesc inca o data.
 

oilen

Active Member
Trenulist
7 Dec 2011
74
0
Bucuresti
LOCATION
Bucuresti
@LiviuM cu placere. M-am chinuit si eu cu 4 linii si am renuntat. Merge dar nu stralucit.
 

sogard_2003

Well-Known Member
Trenulist
19 Ian 2016
3.608
0
Bucuresti
LOCATION
Bucuresti
Altceva ! :D Acuma ar mai fi doua chestii sau 3. Recomand in primul rand sa pui conectorii doar pe doua fete , mai concret intoarce cu 90 de grade conectorul din stanga sus. Cum montezi placa in cutie ? E cutie cu sine ? Daca da e fain daca nu sa nu uiti de gaurile de prindere. A treia chestie ar fi ca mie mi se pare putin cam mica distanta intre trasee si traseul de forta e cam ingust , la asta iti recomand macar o dublare cu cositor din belsug , ca sa fi sigur ca nu ai probleme... in rest mult spor la proiectare.
 

oilen

Active Member
Trenulist
7 Dec 2011
74
0
Bucuresti
LOCATION
Bucuresti
@sogard_2003 multumesc. Cutia este cu sine si este DIN-RAIL. Traseele vor fi ingrosate cu cositorul aferent si necesar :D . am publicat schema dintr-un singur motiv. cei care vor face acest dispozitiv vor avea la dispozitie libertatea de a isi construi singuri placile sau pot achizitiona placile de la mine. singurul lucru care va trebui luat de la mine va fi soft-ul . ( sau ma rog daca cineva se incumeta sa adapteze sau sa scrie altul...be my guest);
cu conectorul il intorc. ms de aducere aminte. a fost intentia mea sa il intorc dar...am uitat in febra creatiei de sirme routate manual...


stima
 

oilen

Active Member
Trenulist
7 Dec 2011
74
0
Bucuresti
LOCATION
Bucuresti
Neatza :D

Un mic update asupra progresului acestui modul. Am finalizat placa din seria 0. Metoda folosita este cea fotografica. Imprimarea imaginii se face pe folii laser fara probleme ( asta doar pentru prototip caci filmul de la 3M pentru seria de productie e cam scump), urmeaza expunerea in UV intr-o caseta de expunere ( cam 7 -10 minute) depinde foarte mult de batch-ul de cablaj placat caci unele placi se supraexpun de pe la 8 minute incolo si sunt probleme la corodare sau altele se subexpun si nu se poate da jos fotorezistul nici cu politia calare. Urmeaza developarea in solutie de hidroxid de sodiu (2%) la 25 de grade. Dupa spalarea in apa dedurizata urmeaza corodarea in baie de clorura ferica. Iar spalare in apa , expunere UV pentru inlaturarea stratului de fotorezist, baie de hidroxid, spalare. In plus eu mai adaug o baie de stanare de 2 minute ca sa imbunatatesc calitatea sudurilor si sa protejez stratul de cupru la oxidare. Procesul de placare este chimic si necesita o baie suplimentara la finalizare cu apa la peste 40 de grade conform fisei de utilizare a produsului. Tot procesul dureaza cam 45 de minute pentru o placa si la sfarsit ramai cu o placa cu un aspect aproape profesional. Gaurirea am facut-o manual pentru ca nu am realizat inca fisierul de gaurire pentru CNC, mai ales ca e doar prototip.

Ca sa nu consum soldermask la seriile mici si prototipuri folosesc pentru protectia de lunga durata si ajutor la lipire o "solutie magica" ce se da pe toata placa ( fata care va fi lipita). Nu e un secret. Este sacaz topit in alcool izopropilic. Obtinerea solutiei e simpla. Se ia un bulgare de sacaz( cam 25 grame) , se marunteste bine, se pune intr-un recipient de aproximativ 50 grame ce se poate inchide ermetic, se toarna alcool izopropilic in recipient, si se adauga sacazul maruntit. Solutia este considerata buna cand culoarea ei este maro la fel ca si sacazul si granulele de sacaz nu se mai topesc. ( cam dupa 30-40 de minute de la amestecarea celor doua ingrediente). Ca mod de utilizare, se pensuleaza lichidul in mod cat mai uniform pe fata cu lipituri la fel ca la o vopsire. Nu trebuie sa balteasca ci doar sa acopere un strat uniform. se lasa la uscat ( sau se usuca cu aer cald ) si se repeta procedeul. La final obtineti o placa luctioasa si cu fluxul pus deja. Veti observa o imbunatatire a timpului de lipire si a calitatii lipiturii. Am astfel de placi in echipamente de cel putin 6 ani. nu au oxidat, nu s-au matuit si nu am avut probleme desi sunt in aparate expuse la intemperii.

Ca sa nu mai lungesc vorba, atasez o imagine cu placa inainte de plantarea componentelor.




Cam asa se prezinta placa dupa ce au fost montate o parte din strap-uri, au fost ingrosate traseele de forta si a fost verificata electric fiecare conexiune.

stima
 

LiviuM

Well-Known Member
Trenulist
11 Mar 2011
397
0
Ai sarit (mai ai de dat) 3 gauri. :D Si ai un traseu pe care-l puteai face mai drept (la integratul din stanga jos puteai iesi cu pinul 2 in stanga si pinul 3 in dreapta). :mrgreen:
Felicitari, arata super bine! :aplauze:
Pont - cand imprimi foliile, "activeaza gaurile" (tiparesti padurile cu gauri). La corodare se duce si cuprul din gauri, usurand "centrarea" spiralului. La prototipuri (cand gauresti de mana) ajuta mult. Si cred ca si la cnc daca dai gaurile la sfarsit (banui ca n-ai utilaje de metalizat gaurile. Sau? ).
Nu stiu cat costa, da' lacul tau de protectie se poate inlocui cu un spray special. Nu-i stiu numele, daca te intereseaza imi intreb colegii ce folosesc, da' am senzatia ca esti multumit cu varianta ta. :D
 

oilen

Active Member
Trenulist
7 Dec 2011
74
0
Bucuresti
LOCATION
Bucuresti
@sogard_2003 astept cu interes.
@LiviuM dap le-am vazut si eu dar acorda-mi si mie ceva leverage ca era unu noaptea. :D Eu folosesc un soft de imprimare din rs_274 iar eagle are optiunea de fill_pads dezactivata ( nu pot umbla la ea) dar by default umple pad-urile. Cat despre masina de facut metalizari...avem dar repet pentru prototipuri ( placi care nu ma vor parasi niciodata) nu o folosesc. Pe CNC cu metodele descrise merge de rupe. am facut serii de 5000 de unitati fara probleme. Stiu de spray-ul special ca il am si eu. Nu se justifica costurile la prototipuri din seria 0. Pentru seria 1 se foloseste solder mask-ul aplicat cu doua metode UV sau cu sita. Cu solutia folosita de mine sunt foarte multumit. ofera si protectie si imbunatateste foarte mult solderabilitatea chiar si la distante mari de timp de la momentul producerii placilor. Oricum multumesc de observatii. am sa tin cont de ele asa cum am tinut cont si de celelate.

stima
 

dac

Well-Known Member
Trenulist
15 Sep 2007
1.298
0
Bucuresti
LOCATION
Bucuresti
LiviuM a spus:
Nu stiu cat costa, da' lacul tau de protectie se poate inlocui cu un spray special. Nu-i stiu numele, daca te intereseaza imi intreb colegii ce folosesc, da' am senzatia ca esti multumit cu varianta ta. :D
Eu am luat un Plastik 70 de la Conex (43 ron); la cat il folosesc cred ca imi ajunge cincinalul asta. :D

O curiozitate am legata de baia de stanare: in ce consta ? cum ? cat ?

Tip - dupa corodare, fotorezistul se poate indeparta facil cu acetona. :|
 

oilen

Active Member
Trenulist
7 Dec 2011
74
0
Bucuresti
LOCATION
Bucuresti
@dac solutie de stanare gasesti tot la Connex sub forma de ingrediente. iti ajunge pentru cel putin doi ani in conditii de utilizare normala. iata produsul http://www.conexelectronic.ro/produs.php?id=122505 . Uite ca chestia cu acetona nu o stiam dar cred ca nu o voi putea implementa. este prea periculos din cauza vaporilor si a scanteilor care se pot produce pe linia de fabricatie. Deci la mine tot procesul de la expunerea placii pina la momentul in care placa este gata de gaurire este semiautomat si a fost conceput ca sa mearga cu doua bai de hidroxid.


stima
 

LiviuM

Well-Known Member
Trenulist
11 Mar 2011
397
0
Aha, pana la urma e totusi vorba de ceva mai mult decat hobby.
Suna bine. Spor la treaba. E imbucurator sa vezi ca lumea se preocupa si de ceva dezvoltare/productie. :aplauze:

LE Despre gauri - nu stiu cum e cand exporti in gerber, da' daca tiparesti foliile direct la imprimanta gaurile raman sigur neastupate. Ma rog, nu cred ca e asa important, era numai o idee.