BGA reflow pájení na el. vařiči a listu pily
BGA reflow pájení na el. vařiči a listu pily
Pro vlastní pájení BGA chipů jsem zvažoval koupi reflow pece T962. V diskuzích se ale píše, že je u ní potřeba provést x modifikací a nahrát jiný FW. Chtěl bych zkusit jednodušší a levnější "pečení" pomocí jednoplotýnkového el. vařiče 1 000 W na listu pily s IR senzorem MLX90614 pro bezdotykové snímání teploty povrchu na základě tipu zde. Předpokládám použití MCU ATtiny402 se kterým mám zkušenosti. Ovládání výkonu vařiče pomocí triaku spínáním půlvln při průchodu nulou (pro omezení rušení), sepnul bych každou x-tou půlvlnu, případně PWM spínání. Výzvou bude nastavení PID regulace podle křivky teplotního profilu. Nějaké tipy, jak na to.
Re: BGA reflow pájení na el. vařiči a listu pily
A jak budeš pouzdro polohovat? Nějaká kamera?
Pro práci s BGA (výměny) mi nejvíc vyhovovala IR pájecí stanice se spodním velkoplošným ohřevem a horním bodovým ohřevem.
V práci máme tuhle https://www.hotair.cz/detail/pajeni/inf ... r6500.html
Dá se použít i pro přípravu pájky na obvod s pomocí masky (překuličkování). Výhoda je dodržení tepelných profilů ohřevu a tím zaručená životnost obvodu i pájených bodů.
Polohování jsme řešili dodatečně s pomocí USB kamery na stojánku, která se dala nad obvod a ten se ručně "došťouchal" do správné polohy podle vnějších značek. Když žádné nejsou, musí se před sundáním čipu udělat.
Pro práci s BGA (výměny) mi nejvíc vyhovovala IR pájecí stanice se spodním velkoplošným ohřevem a horním bodovým ohřevem.
V práci máme tuhle https://www.hotair.cz/detail/pajeni/inf ... r6500.html
Dá se použít i pro přípravu pájky na obvod s pomocí masky (překuličkování). Výhoda je dodržení tepelných profilů ohřevu a tím zaručená životnost obvodu i pájených bodů.
Polohování jsme řešili dodatečně s pomocí USB kamery na stojánku, která se dala nad obvod a ten se ručně "došťouchal" do správné polohy podle vnějších značek. Když žádné nejsou, musí se před sundáním čipu udělat.
Re: BGA reflow pájení na el. vařiči a listu pily
Chip položím na desku pinzetou pomocí LCD mikroskopu a o přesné vycentrování se postará povrchové napětí pájecí pasty.
Re: BGA reflow pájení na el. vařiči a listu pily
Trochu jsem pokročil. Výkon vařiče budu ovládat Triakem, který budu spínat při průchodu 0 (prakticky nulové rušení), v krocích po 2% výkonu. Pro výkon 4% pustím do vařiče každou sekundu 2 celé vlny z 50ti (220V má 50 Hz), na Triak tedy půjdu 4 pulzy. Analogové obvody mám již navržené a odzkoušené v LTspice. Čekám na objednené čidlo teploty, z kterého budu dostávat aktuální teplotu plotýnky. Až mi čidlo přijde, změřím, změřím nárůst teploty pro jednotlivé stupně výkonu. Poté bych rád automaticky spočítal parametry PID řízení (MATLAB and Simulink), to asi nebude tak jednoduché. Reflow křivku jsem již aproximoval polynomem 7 stupně.
Pec bud řídit pomocí ATtiny202. Možná k němu přidám i dotykový displej pro zobrazení pájecí křivky a grafu aktuální teploty s možností ovládání a změn hodnot.
Celá reflow "pec" bude i s vařičem stát do 1 000 Kč .
Dnes jsem vyzkoušel základ ovládání Triaku pomocí ATtiny202, náběh žlutého signálu je detekce průchodu 220V nulou, modrá je ovládací puls 80 µs pro spuštění Triaku v jedné půlvlně.
Pec bud řídit pomocí ATtiny202. Možná k němu přidám i dotykový displej pro zobrazení pájecí křivky a grafu aktuální teploty s možností ovládání a změn hodnot.
Celá reflow "pec" bude i s vařičem stát do 1 000 Kč .
Dnes jsem vyzkoušel základ ovládání Triaku pomocí ATtiny202, náběh žlutého signálu je detekce průchodu 220V nulou, modrá je ovládací puls 80 µs pro spuštění Triaku v jedné půlvlně.
Re: BGA reflow pájení na el. vařiči a listu pily
Simulace ovládání vařiče triakem. Červená sinusovka je 220V / 50 (aby byl vidět modrý puls 1 V na Gate triaku). Zelená sinusovka je napětí na vařiči (Load 49 ohm).
Re: BGA reflow pájení na el. vařiči a listu pily
Detekce průchodu 220V nulou (červená sinusuvka / 50), zelený pravoúhlý signál 3,3 V na výstupu optočlenu. Zatížení odporů 39K je 260mW, budu dimenzovat na 0,5/1W. Modrá křivka je napětí na kondenzátoru C1.
Zelný signál bude na vstupu ATtiny202 generovat přerušení (na vzestupnou a klesající hranu) a tím se bude aktivovat spuštění triaku na potřebný výkon podle PID řízení. Výkonu 2% odpovídají 2 pulsy tj. jedná celá vlna sinusovky pro regulační periodu 1 sekunda. 100% výkonu je 100 pulsů. Řízení bude symetrické, tj. vždy bude sepnuta jedna celá vlna, výkon se bude regulovat v krocích po 2%.
Zelný signál bude na vstupu ATtiny202 generovat přerušení (na vzestupnou a klesající hranu) a tím se bude aktivovat spuštění triaku na potřebný výkon podle PID řízení. Výkonu 2% odpovídají 2 pulsy tj. jedná celá vlna sinusovky pro regulační periodu 1 sekunda. 100% výkonu je 100 pulsů. Řízení bude symetrické, tj. vždy bude sepnuta jedna celá vlna, výkon se bude regulovat v krocích po 2%.
Re: BGA reflow pájení na el. vařiči a listu pily
Aproximace doporučeného teplotního profilu pájení pomocí polynomu 7. stupně (1,103965E-13 -1,218061E-10 5,197188E-08 -1,109508E-05 1,335485E-03 -1,060644E-01 6,772042E+00 -1,131728E+02).
Re: BGA reflow pájení na el. vařiči a listu pily
Ukázka prvního pokusu generování pulsů 80 µs pro triak, program pro ATtiny202. Generován pomocí start.atmel.com a doplnění pár příkazů v MPLAB X IDE, programování chipu pomocí MPLAB Snap.
Program přerušení:
Nastavení timeru TCB pro generování pulsu 80 µs:
Program přerušení:
Kód: Vybrat vše
#include <driver_init.h>
#include <compiler.h>
#include "driver_init.h"
ISR(TCB0_INT_vect)
{
LED_set_level(false);
TCB0.INTFLAGS = TCB_CAPT_bm;
}
ISR(PORTA_PORT_vect)
{
/* Insert your PORTA interrupt handling code here */
LED_set_level(true);
TIMER_0_init();
/* Clear interrupt flags */
VPORTA_INTFLAGS = (1 << 1) | (1 << 2);
Kód: Vybrat vše
#include <tcb.h>
/**
* \brief Initialize tcb interface
*
* \return Initialization status.
*/
int8_t TIMER_0_init()
{
TCB0.CCMP = 237; /* Compare or Capture: 0xed */
TCB0.CNT = 0xffff; /* Count: 0xffff */
TCB0.CTRLB = 0 << TCB_ASYNC_bp /* Asynchronous Enable: disabled */
| 0 << TCB_CCMPEN_bp /* Pin Output Enable: disabled */
| 0 << TCB_CCMPINIT_bp /* Pin Initial State: disabled */
| TCB_CNTMODE_SINGLE_gc; /* Single Shot */
TCB0.DBGCTRL = 1 << TCB_DBGRUN_bp; /* Debug Run: enabled */
// TCB0.EVCTRL = 0 << TCB_CAPTEI_bp /* Event Input Enable: disabled */
// | 0 << TCB_EDGE_bp /* Event Edge: disabled */
// | 0 << TCB_FILTER_bp; /* Input Capture Noise Cancellation Filter: disabled */
TCB0.INTCTRL = 1 << TCB_CAPT_bp /* Capture or Timeout: enabled */;
TCB0.CTRLA = TCB_CLKSEL_CLKDIV1_gc /* CLK_PER (No Prescaling) */
| 1 << TCB_ENABLE_bp /* Enable: enabled */
| 0 << TCB_RUNSTDBY_bp /* Run Standby: disabled */
| 0 << TCB_SYNCUPD_bp; /* Synchronize Update: disabled */
return 0;
}
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti