BGA reflow pájení na el. vařiči a listu pily

Odpovědět
Uživatelský avatar
Caster
Příspěvky: 380
Registrován: 11 zář 2019, 09:02
Reputation: 0

BGA reflow pájení na el. vařiči a listu pily

Příspěvek od Caster » 27 pro 2020, 10:15

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.

ondraN
Příspěvky: 932
Registrován: 08 srp 2019, 20:01
Reputation: 0

Re: BGA reflow pájení na el. vařiči a listu pily

Příspěvek od ondraN » 27 pro 2020, 11:39

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.

Uživatelský avatar
Caster
Příspěvky: 380
Registrován: 11 zář 2019, 09:02
Reputation: 0

Re: BGA reflow pájení na el. vařiči a listu pily

Příspěvek od Caster » 27 pro 2020, 12:33

Chip položím na desku pinzetou pomocí LCD mikroskopu a o přesné vycentrování se postará povrchové napětí pájecí pasty.

Uživatelský avatar
Caster
Příspěvky: 380
Registrován: 11 zář 2019, 09:02
Reputation: 0

Re: BGA reflow pájení na el. vařiči a listu pily

Příspěvek od Caster » 16 led 2021, 00:17

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ě.

Obrázek

Uživatelský avatar
Caster
Příspěvky: 380
Registrován: 11 zář 2019, 09:02
Reputation: 0

Re: BGA reflow pájení na el. vařiči a listu pily

Příspěvek od Caster » 16 led 2021, 23:23

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).

Obrázek

Uživatelský avatar
Caster
Příspěvky: 380
Registrován: 11 zář 2019, 09:02
Reputation: 0

Re: BGA reflow pájení na el. vařiči a listu pily

Příspěvek od Caster » 16 led 2021, 23:54

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%.

Obrázek

Uživatelský avatar
Caster
Příspěvky: 380
Registrován: 11 zář 2019, 09:02
Reputation: 0

Re: BGA reflow pájení na el. vařiči a listu pily

Příspěvek od Caster » 17 led 2021, 10:57

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).

Obrázek

Uživatelský avatar
Caster
Příspěvky: 380
Registrován: 11 zář 2019, 09:02
Reputation: 0

Re: BGA reflow pájení na el. vařiči a listu pily

Příspěvek od Caster » 17 led 2021, 12:55

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í:

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);
Nastavení timeru TCB pro generování pulsu 80 µs:

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;
}

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 15 hostů