12-30-2022, 12:13 AM (This post was last modified: 12-30-2022, 11:36 AM by mikikg.)
Znam da te to sve sad kopka da poteraš, fali ti transformator "samo da probaš", isto je tako i nama XY puta zafalio "samo da probam" i jedino rešenje u koje ima smisla uložiti nešto novca je nabavka starog-dobrog VARIAK-a (auto-trafo), od toga nisu smislili prostije i robusnije rešenje.
Varijak se vezuje u primar sa 230VAC mrežom i može da se limitira izlazni napon na željenu vrednost, priključeni transformator onda u sekundaru može da ima manje vrednosti, konkretno za tvoj trafo mogao bi da menjaš od 0V do možda čak i 40VAC jer postoji i mala "boost" rezerva i konkretno kod testiranja se kreće od 0 i lagano se diže napon dok se prati potrošnja preko priključenih Amp/Volt-metra i generalno prati ponašanje kola koje se testira.
12-30-2022, 12:11 PM (This post was last modified: 12-30-2022, 12:16 PM by savan.)
Ima osigurac to sam kao prvo postavio 15A 24V Mislim da bi trebalo da radi ekstra dobro na 36V, ok su mi sad i Vom i sve ostalo, samo postaviti dobar
tajming da se ne pretera amperaza. Mislim za jednu lemilicu sasvim koektno, Jedno sto moram font ponovo da pravim jer nema mesta na picu za tajmer i interupts
Bitnije ti je taj interupt i tajmer, font je zadnja rupa na svirali.
U vezi osigurača, očigledno ti je za tu tvoju situaciju bio prevelik i nije spasio MOS-FET-ove, stavi manje, stavi 3A, 5A, povećavaj tek kada budeš siguran da ti to radi dobro.
12-30-2022, 12:38 PM (This post was last modified: 12-30-2022, 12:39 PM by mikikg.)
Ti sa tim transformatorm ne smeš da predješ 3A kontinualno kako god okreneš, takva ti je specifikacija trafoa, može da se ide na nešto veće struje kada se radi sa faznim zasekom ali preko 5A nikako nebi trebao da ideš.
12-30-2022, 02:11 PM (This post was last modified: 12-30-2022, 02:26 PM by savan.)
Odradio sam na 1.2ms preko interupta i tajmera, koliko sam shvataio gledajuci tvoj graf tako kako ide u ON na ZCD na 1.2ms bi doseglo do nekih 14V, ako podelimo 14/2 ohm = nekih 7A, trebalo bi da je ok? Zamenio sam font i to je sad ovako -> https://pastebin.com/5ZqyHR6f , ostalo je i mesta nekih 0x43 words Mozda bi moglo u pricu da se uvede i merenje otpora grejaca preko adc, ali fali mi neki otpornik divider da bi mogao i to da ubacim u pricu. Mozda bolje neki shunt koji bi bio serijski sa grejacen pa tu da se meri struja umesto otpora grejaca? Moglo bi se oraditi da bude koliko toliko sigurica bar da se ne napravi pozar u kuci, samo treba dobra ideja. Kako god okrenes ako zalepi mosfet nema pomoci, ne znam koju bi tu zastitu odradio osim fuse?
Kako su dobro odradili Unisolder, resistive instrument identification (upto 625 different instruments can be identified by 2 resistors in the connector), polynomial floating point voltage/resistance to temperature calculation, mnogo mi se svidja mozda ga i napravim
12-30-2022, 03:08 PM (This post was last modified: 12-30-2022, 03:08 PM by mikikg.)
Može da se ubaci kontrola struje ali da predješ na interni ADC jer sa externim ne mozeš tako brzo da uzorkuješ i samim tim da brzo reaguješ na problem.
Nije loša varijanta napraviti i nezavisnu HW zaštitu (bez MCU) sa jednim šent i OP-om koja ima tu neki mali trimer za podešavanje limita i latch-logiku da na prvo prekoračenje struje odmah zabrani rad drajveru za MOS-FET.
Druga zaštita treba da bude vremenska, isto nezavisno parče HW-a koje recimo ne dozvoljava da grejač bude uključen duže od 45 sekundi, mora da ima neke "pauze" izmedju da se ta zastita nebi aktivirala, ako ostane duže od 45 sekundi opet mora da "izbaci" nešto gde je sad tu pitanje šta je to nešto i kako?
Najsigurnije da "izbaci" topljivi-osigurač i to tako što ćeš preko dodatnog aktiviranog triaka (na 45 sekundi time-out grešku) da NAMERNO napraviš kratak spoj na sekudarnoj AC liniji i neminovno tada mora topljivi-osigurač da pregori.
Poenta je da to bude nezavisna HW zaštita koja mora da reaguje u najgoroj situaciji kada probije/kratkospoji MOS-FET ili odkaže MCU jer tada nemaš druge mehanizme da reaguješ.
12-30-2022, 09:15 PM (This post was last modified: 12-31-2022, 12:29 PM by mikikg.)
To sa "moblnim telefonom kada zazvoni" je inače vrlo zanimljiv test, bez šale!
Telefon koji stoji na stolu i tu je u stand-by, kada stiže poziv sa mreže, po GSM protokolu kreće da radi njegov RF TX pri maksimalnoj snazi i to može "osetljivoj" elektronici u blizini da napravi grdne probleme, počne elektronika da "reaguje" na taj RF signal i sa relativno velikom verovatnoćom može da zaglavi neki MCU ako je baš blizu mobilni telefon!
To se stvarno dešava i zato kažem da je to zanimljiv test i često se baš tako i testira neki uredjaj, sa telefonom koji ima uspostavljenu vezu "mlatiš" tu okolo uredjaja koji testiraš tj DUT i ako ne zaglavi i ništa se ne desi onda si cool, u suprotnom problem ...
12-31-2022, 02:11 PM (This post was last modified: 12-31-2022, 02:46 PM by mikikg.)
Pogledao sam Unisolder, lepo je rešeno mada imaju i oni tu malo dubioza, isto kao i kod tebe postavili su MOS-FET i to komplementarni P i N par za jedan grejač, za N tranzistor su stavili integrisan TC4428 drajver dok su za P pravili diskretan.
Za tu postavku su morali da prvo "isprave" AC napon tako da dobiju uvek pozitivan pulsirajući napon (uvek pozitivne poluperiode) i to je sve OK jer prekidački stepen ne može drugačije da radi.
Sve je to lepo osmišljeno da se "ne greju" tranzistori i verujem da se ne greju, ali očigledno da onda niko nije mario za tih tu 4 ipsravljačkih dioda?
One su "hladne" pri 3-4-5A!?
Stavljene Shotky diode da se "ne greje"?
Greju se te diode itekako pri toj struji i imaće bar po 1V pad napona na sebi!
Tako da od ideje "da se ne greje kontroler za lemilicu" slaba vajda i sa tim super-kompleksnim Unisolder sklopom
Ironija te elektronike što će ukupna discipacija tih dioda i ostatka elektronike da odpilike bude jednaka discipaciji koja se stvara na jednom TRIAKU koji za razliku od Unisolder-a može da se realizuje sa jednom-desetinom upotrebljenih delova i pri tome da bude bar 5-10 puta žilaviji i rubusniji sa potencipano manjom verovatnoćom otkaza.
PS: Ako su hteli već da mrse trebali su da mrse do kraja i konkretno te ispravljačke diode da zamene sa LT4321 (Ideal Diode Bridge Controller) i još 4 komada Low-Rdson MOS-FET tranzistora i tada se stvarno nebi ništa bitno grejalo.
Srecna nova godina, zdravlja na prvom mestu pa sve ostalo! Znas sta je tu zanimljivo kod tog unisoldera, sto ima automatsko prepoznavanje vise tipova grejaca, termokoupla... itd
01-12-2023, 04:56 PM (This post was last modified: 01-12-2023, 05:13 PM by savan.)
Imao sam kurslus pre desetak dana, napojio lm317 pogresnim naponom pa mi izgoreo pic, displej i ads1117, ubo pogresne zice u pogresne pinove, overvoltovao se LM pa prespojio pa sve redom lancano pregorelo, danas mi stigao displej, zamenio delove koji su pregoreli, probao konacno interupt logiku, rezultat je = nece da okida. Nemam osciloskop da pogledam sta se desava nego i dalje to radim napamet, cini mi se da je problem u softveru https://pastebin.com/L5dRTMBm negde gresim a ne mogu da otkrijem gde, sve manje imam volje da ovo zavrsavam Ako neko ima vremena i volje da pregleda ovaj moj kode, dodao sam bolean "okinuo" da nekim slucajem nebi pokretao interupt konstantno u main loopu nego samo jednom, ne pomaze. Interup on change se aktivira na RA4 na pozitivnu tranziciju tj na zero kros se aktivira interupt, u interuptu mosfet ide u high i pokrece timer interupt, tajmer traje 1.2ms, onda dalje u interuptu na tajmer interupt mosfet ide u low... i tako bi trebalo u krug pod uslovom da je temperatura < temperatura_set. Nesto nije kako treba definitivno a ne znam sta, ne mogu da otrijem, neka glupost sigurno.
Edit:
Uz malo izmene mislim da bi sad trebalo da je ok https://pastebin.com/ZaunJsWZ , mrzi me sada da ponovo sve spajam, za koji dan cu probati, zaboravio sam da setlujem "okinuo" u main loop do true, cini mi se da bez toga main loop konstantno brise interupt pa zato ne okida
01-12-2023, 06:58 PM (This post was last modified: 01-12-2023, 07:10 PM by savan.)
ne volim da ostavljam za kasnije pa tako nisam bio miran nego zamenio kod, usput zamenio i H11L1 i takodje i VOM, da ne razmisljam, pustio u pogon, rezultat, nece da greje. Nesto sa kodom nije u redu definitivno. Da nije tajmer problem, nisam ga dosad koristio, dali sam dobro napravio kalkulaciju za tajmer, da nije prebrz pa VOM ne stigne da napuni gate?
Ako sam ja to dobro razumeo,SPLLEN=1 i sa postavkom IRCF 32MHz_HF i sa XTAL_FREQ=32000000 pic bi trebao da radi na max frekvenciji?
Code:
// SPLLEN enabled; IRCF 32MHz_HF; SCS Clock determined by FOSC<2:0> in Configuration Word 1;
OSCCON = 0b11110000;
Tajmer0 radi sada na 8MHz ? I ako je preskaler 64 i ako sam ja to dobro razumeo kalkulacija za interupt tajmer od 1.2ms bi trebala biti ok? Ne znam vise sta da uradim, sve sam zivo probao
01-12-2023, 10:27 PM (This post was last modified: 01-12-2023, 10:34 PM by gorankg.)
TMR0 prekid se kod tebe desi odmah nakon IOC pa ti je na RA5 uvek vrlo kratak impuls.
Pri podešavanju tajmera neophodno je da obrišeš interrupt flag pa da nakon toga dozvoliš prekid.
Dakle, TMR0 postavke treba da idu ovako:
Code:
void timer0_initialise(void)
{
//1.2 ms x (xtail / 4)
// 0.0012 * 8000000 = 9600 ticks ; prescaler=64 = 9600/64 = 150 ticks for 1.2ms
// writing to TMR0 resets prescaler, so you need to set prescaler every time!
TMR0 = 105; // start at 105 ticks (255 - 150)
OPTION_REGbits.TMR0CS = 0; //Internal instruction cycle clock (FOSC/4)
OPTION_REGbits.PSA = 0; // Prescaler is assigned to the Timer0 module
OPTION_REGbits.PS = 0b101; //prescaler 64
01-13-2023, 01:47 PM (This post was last modified: 01-13-2023, 02:01 PM by savan.)
Hmm mislim da nije to mada cu probati! Tajmer0 jos uvek nije aktivan, aktiviram ga tek u IOC, takodje TMR0IF je bar kako data sheet kaze default 0, a ja pokrecem tajmer tek u IOC, znaci trebalo bi da je TMR0IF=0 u tom trenutku i da tek nakom 1.2ms prelazi u overflow i postaje 1. Neka tu druga greska postoji ili neka funkcija nije omogucena ili je promenila logiku nakon aktivacije neke druge funkcije...
Edit:
jeste u pravi si skroz, izgleda da se TMR0IF ne resetuje sam od sebe i da mora to da se uradi iz softvera, sad tek vidim ovaj deo
Nakom promene displeja nemam vise 0.96" nego 1.3", nikad dosad ga nisam koristio pa nisam znao ni da nije SSD1306 nego je SH1107 , pojavljivali su mi se neki pikseli pa sam hteo da vidim o cemu se radi, juce tek vidim da imam SH1107 i da ima drugaciju inicijalizaciju p me zanima ako je neko koristio koju inicijalizaciju koristi za taj 4pin i2c displej, postoje dve razlicite verzije inicijalizacije, prva je sa eksternim VCC a druga je sa internim VCC, eto do sada nisam puno obracao paznju na to jer mi je 0.96" radio kako treba pa ne znam koja je razlika izmedju ove dve inicijalizacije i koju da primenim, kontam da mi treba interni VCC posto je 4pin displej i ima svoj regulator sa 5V na 3.3V a boost na 9V mu se vrsi interno ako se izabere inicijalizacija sa internim VCC ?
// Inicijalizacija displeja WEA160128AWPP3N00000 sa SH1108 kontrolerom
ssd1306_WriteCommand(0xAE); // Display OFF
ssd1306_WriteCommand(0x20); // Set Memory addressing mode
ssd1306_WriteCommand(0x81); // Set contrast control
ssd1306_WriteCommand(0x0F);
ssd1306_WriteCommand(0xA0); // Segment remap
ssd1306_WriteCommand(0xA6); // A6 Normal display, A7 invert display
ssd1306_WriteCommand(0xA9); // Set Display Resolution
ssd1306_WriteCommand(0x02); // 160*128
ssd1306_WriteCommand(0xAD); // Set DC-DC setting
ssd1306_WriteCommand(0x80); // DC-DC is disable.
ssd1306_WriteCommand(0xC0); // Set Common scan direction
ssd1306_WriteCommand(0xD5); // Divide Ratio/Oscillator Frequency Mode Set
ssd1306_WriteCommand(0xF1);
ssd1306_WriteCommand(0xD9); // Set Dis-charge/Pre-charge Period
ssd1306_WriteCommand(0x1F);
ssd1306_WriteCommand(0xDB); // Set Vcomh voltage
ssd1306_WriteCommand(0x2B);
ssd1306_WriteCommand(0xDC); // Set VSEGM Deselect Level
ssd1306_WriteCommand(0x35);
ssd1306_WriteCommand(0x30); // Set Discharge VSL Level
ssd1306_WriteCommand(0xAF); // Display ON
// Clear screen
ssd1306_Fill(Black);
// Flush buffer to screen
ssd1306_UpdateScreen();
// Set default values for screen object
SSD1306.CurrentX = 0;
SSD1306.CurrentY = 0;
01-13-2023, 02:32 PM (This post was last modified: 01-13-2023, 02:35 PM by savan.)
Hvala mada svaki ima drugaciju inicijalizaciju, greska moja nije SSH1107 nego je SSH1106, skroz je drugacija initijalizacija od SSD1306, ne znam sta bi se desilo da se upise recimo u charge pump i u vpp register nesto pogresno i pretera sa boost kontrolerom koji bi napravio mozda overvoltage i unistio displej? Do sada nisam uopste ni pogledao niti jedan dokumenat do juce, tek juce vidim da nije bas naivno uzeti neciju inicijalizaciju nego to uraditi kako treba, nasao sam slican displej jeste da nije sa 4 pina ali je isti kontroler u njemu https://www.waveshare.com/w/upload/e/e3/...6-OLED.pdf , vidi se da ima dve razlicite initijalizacije pa mi nije jasno koju da izaberem, prva je sa eksternim VCC a druga je sa internim VCC (taj interni boost circuit koji napaja VDD), mislim da za ovaj moj koji imam treba ova druga? (VCC Generated by Internal DC/DC Circuit), razlicita je konfiguracija, jedna ima onemogucen charge pump a druga ima omogucen.
Da, u pravu si... ima toliko različitih proizvoda po internetu da je to već postalo previše teško da se prati. Ja i dalje zastupam ideju da koristim isključivo "brend" komponente, kao što
sam i za ovaj projekat. Konkretno proizvođač Winstar, ima ga da se kupi kod nas preko distributera, a lepo potražim izvormni kod za inicijalizaciju od proizvođača i dobijem sigurnu varijantu, bez da preterano gubim vreme na istraživanje itd... sve je manje vremena da se istražuje, što je nekad bilo normalno, a još više "boli" da taman kad istražiš, napraviš, istestiraš, više tog proizvoda (Aliexpress i slično) nema.
Konkretno rutine koje sam ti poslao su za Winstar model (dole u izvornom kodu piše tačna oznaka), a dobijene su od proizvođača Winstar.
01-13-2023, 03:06 PM (This post was last modified: 01-13-2023, 03:09 PM by savan.)
Sve je to slicno, najbitnije pronaci po oznaci kontrolera jer sve na netu je copy past, juce sam sat vremena trazio drajver i sve sto otvorim u chrome vidim da je preslikano jedno od drugog a u data sheet od SH1106 sasvim nesto drugo. Nema veze, probam ovako
Code:
uint8_t sh1106_init_sequence[] = {
0xAE, // display off
0x02, // set lower column address
0x10, // set higher column address
0x40, // set display start line
0xB0, // set page address
0x81, // contract control
0xff, // 128
0xA1, // set segment remap
0xA6, // normal / reverse
0xA8, // multiplex ratio
0x3F, // duty = 1/64
0xad, // set charge pump enable
0x8b, // 0x8B internal VCC
0x32, // 0X30---0X33 set VPP 8.x V ???
0xC8, // Com scan direction
0xD3, // set display offset
0x00, // 0x20
0xD5, // set osc division
0x80,
0xD9, // set pre-charge period
0x1f, // 0x22
0xDA, // set COM pins
0x12,
0xdb, // set vcomh
0x40,
0xAF // display ON
};
Smanjio sam za nesto milivolti VPP valjda ce biti ok
01-13-2023, 04:28 PM (This post was last modified: 01-13-2023, 04:47 PM by savan.)
Da ovo je sad ok, inace sh1106 je shiftovan 2 piksela u desno pa tako blankiranje mora da se pomeri dva piksela u desno takodje da bi ceo ekran bio obrisan. Nesto sam i izmenjao da mi ekran bude blank pre nego sto bude on, to je sada sve ok. Ali i dalje nece da krene da greje i ako nuliram TMR0IF https://pastebin.com/kYtYTMSc nesto tu i dalje fali, dali preskaler nje aktiviran u timer0 pa je prebrz ili nesto sasvim trece, tesko bez osciloskopa utvrditi sta je u pitanju i dali uopste ima okidanja
Edit:
izgleda mi da greje! Polako penje temperaturu i vidim da mi temperatura na displeju nije stabilna (isti slucaj kao na mojoj lemnoj stanici dok je onaj 1M otpornik prema pgnd), sad je ako se ne varam otpornik 10k pa ce mozda trebati isto kao na mojoj lemnoj stanici od 1k da bi termeratura na displeju bla stabilna. Cim dosegne temperatuiru vise temperatura ne varira sto je mozda pokazatelj da ipak greje ali nije dobar tajming. Batalicu za danas pa cu jedan dan to probati nekako da debugujem sa jednom led sijalicom