Sida 1 av 5

Micro-reflowugn med nokia LCD

Postat: 15 mars 2012, 20:48:21
av Lightsource
Dags att starta en projekttråd för detta!

Projekt: Micro-reflowugn baserad på japansk toast-ugn.

Komponenter:
Controller: PIC18F14K50 @ 48MHz
LCD: 128x128pix nokia-ripoff från sparkfun: http://www.sparkfun.com/products/569
Solid-staterelä: Sharp S202S02 8A med zero cross switching.
typ K thermocouple samt AD595 "Monolithic Thermocouple Amplfier with Cold Junction Compensation".
Insidan av ugnen delvis isolerad med biltemas filt för motorrums-isolering samt högtemp-silicon.

Ugnen är köpt i Japan och drivs normalt med 100VAC och har en märkeffekt på 600W. Jag har försökt att reglera ner effekten för att kunna köra dem på 230VAC men elementen klarar inte lång switch-tid, samt att för korta tider får alla lampor i hela lägenheten att flimra. :S Så jag måste hitta en ny lämplig värmekälla. De befintliga värmetrådarna brann av efter ca 10 körningar av kurvan.. :S

ugnsutrymmet är ca 220mm brett, 150mm djupt och 120 i höjdled vilket gör att det inte är helt lätt att hitta värme-element som går in. Jag har tänkt sätta in 2st keramiska element om 500W vardera, vilket borde räcka.
http://se.rs-online.com/web/p/ceramic-h ... ts/1988529
Båda elementen skall monteras i taket på ugnen, eftersom jag vill värma främst ovansidan på kortet vilket gör att jag kan bygga dubbelsidigt utan att värma undersidan lika mycket. Sedan får vi se om temperaturen på undersidan ändå stiger över smältpunkten, de tär inte hela världen men enligt experiment jag läst så borde detta fungera.

Svåraste biten i projektet är LCD'n som dels kräver en pytteliten SMD-kontakt om man inte köper med breakout-board, och förutom det levereras med 2 olika controllers. Viklen man får framgår inte av någon märkning vilket innebär att det är chansning som gäller. Min visade sig ha en Epson S1D15G10 controller.
Eftersom det tillverkas en härrans massa LCD'er i kina, och en lång rad cloner så vet man aldrig riktigt vad man får. Ett citat från en tutorial för denna LCD: "The trading companies in Hong Kong have no idea what is inside the displays they are selling. "
Oavsett vilken controller som sitter i så jobbar de med 9-bitars SPI-interface vilket ställer till en hel del. Första biten talar om om det är ett kommando eller data som förs över. Jag har löst detta genom att ta manuell kontroll av data och klock-pinnen och manuellt toggla första biten, sedan slå på SPI'n och skicka ut de resterande 8 bitarna. Det är lite meck att få till timingen rätt, men med ett oscilloskop och lite trile'n'error så går det.

Det går att jobba med olika färgskalor i dessa LCD'er, och jag använder en 12-bitars färgskala vilket gör det hyffsat enkelt att skriva färgkoder.

En färgkod blir t.ex. 0xFFF där första F'et är röd, mitten-F'et är grön, och det sista är värdet för blå.
Den som är intresserad av att använda dessa LCD'er får gärna PM'a mig så kan jag skicka koden!

Jag har inte använt någon extern klocka utan byggt den i mjukvaran genom att kalibrera en 16-bitarstimer som genererar ett interrupt med 10mS intervall, i det interruptet räknar jag upp en räknare och sköter på så vis klockan.

Börvärdeskurvan har jag lagt upp med 1 värde per sekund i en array, vilket innebär att jag lätt kan ladda aktuellt värde genom att nollställa klockan vid start och sedan använda en sekundräknare som array-index.

Manöver-ratten som normalt sitter monterad på ett mekaniskt tidrelä har jag istället monterat en potentiometer på, vilket tillsammans med en knapp kopplad till INT0-pinnen utgör "manöverdonen" till systemet. Tanken är att göra en meny som styrs med vredet.

Mer info kommer när de nya värme-elementen anländer.

Filmer på testkörning:
på/av-reglering:


reflow-kurvtest med endast P-reglering:


reflow-kurva med aggressiv PID-reglering. Det plottriga är PWM'en.


Temperatursensorn är inte fullt kalibrerad än. Jag har haft svårt att fastställa tillförlitliga mätvärden med den IR-termomenter jag har eftersom jag upplever att den ger lite konstiga värden beroende på vad jag mäter på. Ska pröva med en grilltermometer eller liknande som referens vid tillfälle.

Nuvarande controllerkortet är gjort på experimentkort och är verkligen ingen skönhet. Jag har valt att driva högspänningskretsen och controllerkortet separat, så jag använder en vanlig 230VAC-12VDC vägg-trafo för styrenheten. 12V eftersom det var det ända jag hade hemma med mer än 5V, och bakgrundsbelysningen kräver ca 7V. Först hade jag planerat att använda trafo-kretsen från en mobil-laddare eftersom jag trodde bakgrundsbelysningen skulle lysa åtminstone svagt på 5VDC, men den var helt död vid 5V så jag fick tänka om.

Tanken är att när ugnen är up'n'running så skall jag använda den för att tillverka ett nytt controllerkort.

Re: Micro-reflowugn med nokia LCD

Postat: 16 mars 2012, 07:11:46
av Micke_s
Ser väldigt trevligt ut :).
Vad är det för extrapixlar på bild 20120229_223228 runt kurvan?

Re: Micro-reflowugn med nokia LCD

Postat: 16 mars 2012, 10:35:00
av Lightsource
Hej,

Inser att jag skulle skrivit delar av beskrivningen som bildtextern istället. :P Det du ser är PWM'en. Jag har använt en ganska aggressiv PID-reglering, därför har värdet studsat upp och ner så mycket att det inte går att se att det är en kurva. :) Jag hade ganska långsam uppdatering av grafen vid den körningen också, ca 200mS intervall.

På näst översta bilden ser du PWM-grafen som ett streck då jag använt bara on/off-reglering.

Jag ska göra om detta en aning och kanske separera effekt-kurvan till ett eget graf-fönster så att den inte stör temperaturkurvan. Man behöver ju inte se effekt-kurvan med samma upplösning heller så den kan ju vara mindre i höjdled.

Upplösningen i X-led är 2 sekunder/pixel.

Re: Micro-reflowugn med nokia LCD

Postat: 16 mars 2012, 10:38:55
av jesse
Ett medelvärde på effektkurvan kanske hade gett mer information än alla prickarna överallt. Alltså att man filtrerar det lite.

Re: Micro-reflowugn med nokia LCD

Postat: 16 mars 2012, 10:55:03
av Lightsource
absolut! detta var första testet med PID så jag hade inte stött på problemet innan, givetvis får jag ta å filtrera det om jag ska plotta det alls, eftersom det är helt oläsbart som det är nu.

Re: Micro-reflowugn med nokia LCD

Postat: 16 mars 2012, 11:23:08
av jesse
Jag tänkte styra min lödugn med PID, men det stöp på att jag hade valt en alldeles för liten processor (Atmega48)... programmet fick inte plats! Så jag körde en enklare variant - detta gick lika bra, då jag ändå var tvungen att ha max-effekt hela tiden och sedan stänga av (ugnen var lite långsam / låg effekt). Även om temperaturkurvan inte blev så snygg så höll den sig inom marginalerna.

Re: Micro-reflowugn med nokia LCD

Postat: 16 mars 2012, 12:30:08
av Lightsource
ah jag förstår, jag gick också in i minnes-väggen när jag fick för mig att börja progrmmera en snygg grafisk meny. :/
PIC18F14K50 har visserligen 16kB men börjar man koda grafik i 12bitars färg så blir det snabbt fullt!

Men har din så begränsat med minne att PID'n inte fick plats?

själva PID-beräkningen tar ju så lite plats...
I min beräkning integrerar jag 4 felvärden bakåt och vid varje mätning shiftar jag dessa 4. Den deriverande delen mäter ju bara skillnaden mellan den tidigare och aktuellt värde, och den proportionella mäter ju endast differensen mellan bör och är-värde, så i mitt fall är ju PID-regulatorn endast ett par rader kod, hur mycket minne har du i din?

Re: Micro-reflowugn med nokia LCD

Postat: 16 mars 2012, 15:14:40
av Korken
Snyggt! :tumupp:

Snabb fråga om reflow bara, är det PCB materialet eller luften i ugnen som ska följa temperaturkurvan?

Re: Micro-reflowugn med nokia LCD

Postat: 16 mars 2012, 15:23:14
av Micke_s
Lär vara PCB:et eftersom professionella ugnar har olika zoner.

Re: Micro-reflowugn med nokia LCD

Postat: 16 mars 2012, 22:35:54
av Lightsource
Ah ja det är ju en intressant fråga, eftersom olika tjocklek på PCB lär kräva lite skillnad i temperaturkurva. Även olika typer av komponenter kan ju kräva justeringar.

Re: Micro-reflowugn med nokia LCD

Postat: 17 mars 2012, 11:12:00
av Walle
Nu skriver jag ett inlägg här bara för att få bevakning på tråden. Varken "bokmärke" eller "bevaka" funkade.

Vad tror du förresten om att köra keramiska värmeelement? Det känns som att de är tåligare än ren nichrome-tråd.

Re: Micro-reflowugn med nokia LCD

Postat: 17 mars 2012, 14:58:00
av jesse
Lightsource skrev:Men har din så begränsat med minne att PID'n inte fick plats?
själva PID-beräkningen tar ju så lite plats...
Vet faktiskt inte varför det tog slut så snabbt. Jag kör ju enbart 16 bitars heltal. Kanske var en hel del annat som tog plats - Kommunikationen med AD7705 (16-bit ADC), UART, programmet för lödkurvan mm... har glömt hur det var. Möjligtvis hade det kunnat optimeras genom att göra om alltihop. Men viktigaste anledningen till att jag skalade bort PID var ju att det ändå inte behövdes - det gick enkelt att bara köra on/off.

EDIT: Närt jag kollar koden nu, så ser jag att jag bara tagit bort I-delen, så jag kör PD-reglering. Har ett svagt minne av att jag aldrig fick fason på I-delen... Den tenderade att bli väldigt fel vid plötsliga ändringar av bör-värdet. Däremot hade jag lagt in att jag kan välja bort PD-regleringen för att bara köra i on/off-läge. Det blev effektivast så eftersom jag ska köra 100% effekt ända till Tmax - sedan direkt off. Hade jag satt reglering vid Tmax hade den ju börjat bromsa i förtid - nu stänger jag bara av och öppnar luckan. PD -regleringen används vid de lägre temperaturerna i början av kurvan och vid förvärmning.

Själva PD-reglieringen var ju inte så värst omfattande ändå:

Kod: Markera allt

         {    // PD regulator
				#define Kp  8
				#define Kd  20

				Px = (Kp*(tempset-t1)) / 8;
				Dd = (t0-t1); // skillnad (max 100 = 10 grader)
				if (Dd<0) Dd = Dd / 2;
				Dx = ((Dx * 15) + (Dd*Kd*16) + 8) >> 4;

				duty =  Px + Dx;
			}
			// sätt dutycycle i PWM timer
			if (duty < 0) duty = 0;
			if (duty > 255) duty = 255; 
			OCR2B = duty; // sätt PWM 0-255...

Re: Micro-reflowugn med nokia LCD

Postat: 17 mars 2012, 18:08:33
av Lightsource
Walle skrev:Nu skriver jag ett inlägg här bara för att få bevakning på tråden. Varken "bokmärke" eller "bevaka" funkade.

Vad tror du förresten om att köra keramiska värmeelement? Det känns som att de är tåligare än ren nichrome-tråd.
Det får vi se i nästa vecka, keramiska elementen är beställda! Men huvudsaken är ju att de tillsammans är byggda för 1kW och 230VAC. Originaltrådarna körde jag ju på mycket högre effekt och temperatur än de var byggda för. :)

Re: Micro-reflowugn med nokia LCD

Postat: 21 mars 2012, 22:32:31
av Lightsource
Uppdatering:

Nya keramiska värmeelementen installerade. Men självklart skall Murphy ställa till det. När jag kopplar in och skall programmera några ändringar till kortet så får jag först fel device-kod:
ICDWarn0020: Invalid target device id (expected=0x23B, read=0x53B)

Sedan kan inte minnet valideras:
ICD0161: Verify failed (MemType = Program, Address = 0x2, Expected Val = 0xF002, Val Read = 0x2000)

Har testat allt jag kan komma på men inget löser detta.. någon idé?
Antar att något kan ha skadat PIC'en, får ta och byta ut den. Så test av elementen får vänta.

Re: Micro-reflowugn med nokia LCD

Postat: 22 mars 2012, 10:25:25
av newbadboy
Det har fasktiskt hänt mig flera ggr att jag har haft en PIC i ett bygge som jag jobbar på och flashar om gång på gång. Sedan efter ett tag så går det inte flasha mer och jag får liknande varningar. Men det programmet som redan sitter i verkar funka hyffsat. Jag tror ärligt talat att de är väldigt esd känsliga och blir skadade.