O kompenzaciji bušenja PCB-a

About PCB Drill Compensation

Nema velikih pojedinaca, samo velikih timova. Kada tim radi zajedno, projekt automatizacije PCB CAM-a prve faze za neto rukovanje i rukovanje bušilicom Gotovo je. Sada možemo prijeći na pravilnik za PCB. Ovdje govorim o kompenzaciji bušenja u projektovanju PCB-a. Kao developer u projektovanju PCB-a, trebate znati šta je to i zašto funkcioniše. U nastavku iznosim ključne tačke o kompenzaciji bušenja.


1. Zašto kompenzujemo veličine bušilica?

Veličine rupa u PCB datotekama koje kupac dostavi obično znače konačan Veličina rupe. Tokom proizvodnje PCB-a, bakar se nanosi na unutrašnju stranu rupa (ili se rupama daje površinska obrada poput HASL, ENIG, OSP itd.). To smanjuje veličinu rupe. Da bi se osiguralo da konačna veličina rupe zadovoljava zahtjeve, CAM korak koriguje promjer burgije. To je kompenzacija burgije.

Pravi primjer:
Konačni promjer rupe: 1,00 mm. Završna obrada površine: ENIG (debljina nikla 2,54 µm, debljina zlata 0,0254 µm). Slijedite IPC klasu II i prosječna debljina pozlaćenog bakra je 20 µm. Ako koristimo 0,10 mm kao vrijednost naknade, CAM tim će odabrati 1,10 mm bušilica.

Real example


2. Kako vršimo kompenzaciju bušenja?

Prvo, budite jasni u vezi sa tri ključna parametra za kompenzaciju bušenja:
(1) Povećanje burgija,
(2) Vrijednost naknade,
(3) Prag za povećanje (vrijednost napretka).
Ova tri određuju kako primijeniti naknadu.

1) Inkrement burgije

Ovo zavisi od burgija koje kompanija kupuje. Uobičajeni industrijski korak je 50 µm. Tipične veličine bušilica kreću se od 0,10 mm da 6,35 mm. Uobičajeni najmanji korak između svrdla je 0,05 mm. Dakle, biblioteka drilova ima veličine poput 0,10 mm, 0,15 mm, 0,20 mm, 0,25 mm, i tako dalje.

2) Kompenzacijska vrijednost

Tim za proces postavlja pravila kompenzacije na osnovu rezultata tvorničkih testova. Vrijednosti kompenzacije se ne razlikuju mnogo u industriji. Uobičajena pravila:

  • Platovi s HASL-om (sprej limenka): kompenzirati 0,15 mm.

  • Platovi bez HASL-a (ENIG, kalup za uranjanje, OSP itd.): kompenzirati 0,10 mm.

3) Prag za prelazak (vrijednost napredovanja)

Tim za proces također određuje strategiju odabira burgija, slično pravilu za zaokruživanje. Na primjer, kada je inkrement 20 µm, ako je ostatak nakon dijeljenja s inkrementom ≥ 20 µm, zaokružuješ na 50 µm; inače zadržavaš manju veličinu.

Primjer:
Konačni promjer rupe = 1,025 mm, naknada = 0,10 mm, pa kompenzirana veličina = 1,125 mm. Ali nema 1,125 mm Bušenje u biblioteci. Koristite pravilo step-up. Ostatak od 1,125 mm u poređenju sa korakom od 0,05 mm je 25 µm. Pošto 25 µm > 20 µm, zaokružite na 50 µm i odaberite a 1,15 mm vježba.


Stvarni primjeri kompenzacije za bušenje

Pretpostavimo: korak bušenja = 50 µm, prag za prelazak = 20 µm

Originalna rupa Naknada Nakon obeštećenja Cijeli dio Ostatak Odabrano bušenje
1,025 mm 0.10 1,125 mm 1.10 0,025 mm 1,15 mm
1,016 mm 0.10 1.116 mm 1.10 0,016 mm 1,10 mm

Kako izračunati odabrani promjer bušenja

Razložite kompenziranu veličinu rupe na cjelobrojni dio i ostatak koristeći korak bušenja:

Uzmite 1,125 mm kao primjer:
1.125 / 0.05 = 22.5 → zaokružiti na 22 → cjelobrojni dio = 22 × 0.05 = 1,10 mm.
Ostatak = 1.125 % 0.05 = 0,025 mm.

Zatim uporedite ostatak sa pragom za povećanje (na primjer, 20 µm):

  • Ako ostatak > prag, promjer bušenja = cjelobrojni dio + 0,05 mm.

  • Ako je ostatak ≤ prag, promjer bušenja = cjelobrojni dio + 0,00 mm.


Sažetak o pragu za korak-povišenje

Kada je korak bušenja 50 µm, prag za povećanje je ključan. On vrši drugu korekciju kompenzirane veličine burgija. Odlučuje hoće li “povećati” ili “ostati”. Mijenjanje ovog praga direktno mijenja odabranu veličinu burgija.

Više primjera (povećanje bušenja = 50 µm):

Originalna rupa Naknada Nakon kompilacije. Cijeli broj Ostatak Prag za prelazak Vježba
1,022 mm 0.1 1.122 mm 1.10 0,022 mm 0.02 1,15 mm
1,022 mm 0.1 1.122 mm 1.10 0,022 mm 0.025 1,10 mm

Lični stav o postavljanju praga za povećanje

Prednosti i nedostaci: Nakon kompenzacije, ako je konačna rupa malo veća, barem se dio može umetnuti. Ako je rupa pre mala, dio se ne može umetnuti. Zato obično postavljamo prag za povećanje na 20 µm umjesto 25 µm. Tačan izbor treba odgovarati svakom procesu i vrijednosti naknade.

U kombinaciji s kompenzacijskom vrijednošću: Za ploče s HASL-om gdje je kompenzacija 0,15 mm, već malo “nadoknađujete” i završne rupe su obično malo prevelike. U tom slučaju, prag za korak-gore od 25 µm Može također raditi. Koristite pravilo “najbliže” pri odabiru bušilice.


3. Kako osigurati da konačna veličina rupe zadovolji zahtjeve nakon kompenzacije?

Metoda 1: Kupite posebne burgije

Standardni korak bušenja je 50 µm (koraci od 0,05 mm, npr. 1,00, 1,05, 1,10, 1,15 mm). Sa tolerancijom PTH od ±3 mil, set bušilica od 50 µm može pokriti tu toleranciju. Ako je tolerancija manja od toga, koristite specijalne bušilice.

Primjer 1 — Uporedite korake od 50 µm i 25 µm:
Originalna rupa = 0,922 mm, naknada = 0,10 mm, kompenzirana veličina = 1,022 mm.

Original Naknada Kompenzirano Povećanje Odabrano bušenje
0.922 0.10 1.022 0.05 (50 µm) 1.05
0.922 0.10 1.022 0.025 (25 µm) 1.025

Razlika: 1.050 − 1.022 = 0.028 mm; 1.025 − 1.022 = 0.003 mm. Manja razlika je bolja, pa 1,025 mm (inkrement od 25 µm) je bolje.

Primjer 2 — 50 µm naspram specijalnog bušilice:
Originalna rupa = 0,611 mm, naknada = 0,10 mm, kompenzirano = 0,711 mm.

Original Naknada Kompenzirano Povećanje / Tip Odabrano bušenje
0.611 0.10 0.711 0.05 (50 µm) 0.70
0.611 0.10 0.711 Poseban bušaći alat 0.711

Razlika: 0,700 − 0,711 = −0,011 mm; 0,711 − 0,711 = 0,000 mm. Manja razlika je bolja. Dakle, 0,711 mm specijalna bušilica je najbolje.

Metoda 2: Poboljšati proces i opremu

  • Dodajte drugi korak presvlačenja pločom kako biste smanjili neujednačenu debljinu uzrokovanu raspodjelom uzorka.

  • Koristite negativno foto-direktno graviranje i presvučite cijelu ploču kako biste smanjili neujednačenu debljinu bakra.

  • Smanjite gustoću struje (tipično 19 ASF); nešto niža gustoća struje može poboljšati uniformnost presvlačenja, ali će produžiti vrijeme presvlačenja.

  • Nadogradite na horizontalnu liniju za pozlativanje. Vertikalne linije za pozlativanje često daju deblji bakar na rubu rupe i tanji bakar u središtu rupe kod rupa s visokim omjerom visine i promjera. Horizontalna linija može smanjiti taj problem.

Metoda 3: Poboljšati CAM strategije

  • Za rupe u izolovanim bakrenim područjima primijenite jednu dodatnu kompenzaciju. Izolovana područja imaju manje bakra, pa tokom galvanizacije dobijaju veću lokalnu gustinu struje i veću debljinu bakra; dodatna kompenzacija to nadoknađuje.

  • Za dizajne s gustim tragovima na jednoj strani i rijetkim na drugoj (na primjer, za napojnu ploču), postavite stranu s rijetkim tragovima prema unutra, a stranu s gustim tragovima prema van i koristite obrnutu panelizaciju. Tijekom pozlatnje panela, područja blizu ruba ploče dobivaju veću gustoću struje i deblji sloj pozlate. Obrnuta panelizacija pomaže uravnotežiti raspodjelu pozlatnje.

  • Kada se površine bakra na gornjoj i donjoj strani znatno razlikuju, koristite pozitivno/negativno (yin-yang) panelarstvo. Neravnomjerna površina bakra uzrokuje “bell-mouth” vijase; što je ploča deblja i ima više bakra, to je efekt lošiji; yin-yang panelarstvo pomaže uravnotežiti raspodjelu bakra.

  • Za izolirane rupe blizu ruba ploče ili utora dodajte bakrene “pick-up” površine ili bakrene padove uz rub ili utor. Izolirane rupe mogu dobiti preveliku debljinu prevlake i postati premale; dodatni bakar pored njih smanjuje lokalnu gustoću struje i uravnotežuje proces prevlačenja.


4. Kolika je potrebna naknada i kako se ona izračunava?

Vrijednosti kompenzacije potječu iz testova procesa. Ispod je jedan skup izmjerenih promjena veličine rupa nakon različitih koraka (podaci iz izvještaja):

Tok procesa: mehaničko bušenje → uranjanje u bakar → elektroizglađivanje → prijenos uzorka → žarenje → AOI → mokri film → HASL

Parametri procesa:

  • Bušenje: promjer burgije 0,95 mm, ponovno oštrenje/brušenje 3 puta, kompenzacija bušenja 0,15 mm;

  • Plaštiranje: debljina bakra ≥ 18 µm, prosječno ≥ 20 µm;

  • HASL: zahtjev za završnu rupu 0,80 mm, tolerancija ±0,08 mm (3 mil);

  • Test: 10 panela, obrezani na uglovima, debljina ploče 2,0 mm.

Promjena veličine rupe po koraku

1) Nakon bušenja — promjeri rupa izmjereni

  • Ukupno 1920 testiranih rupa (10 panela, po 384 rupe). Uzorak: 200 rupa (20 po panelu). Raspon rupa: 0,93–0,94 mm, prosječno 0,931 mm.
    (Zatim duga lista uzorkovanih vrijednosti, uglavnom 0,93 ili 0,94.)

2) Nakon uzorkovanog presvlačenja — debljina bakra

  • Za svaki panel testirajte 10 rupa. Opseg debljine bakra 18–31 µm, zadovoljavajući ≥18 µm i prosjek ≥20 µm.
    (Zatim mnogo primjera vrijednosti debljine bakra.)

3) Nakon uzorkovanog presvlačenja — veličina rupe

  • Ukupno 1920 rupa, uzorak 200. Raspon rupa: 0,84–0,88 mm, prosječno 0,858 mm.
    (Zatim mnogo uzornih vrijednosti, uglavnom 0,85–0,88.)

4) Nakon HASL-a — veličina rupe

  • Ukupno 1920 rupa, uzorak 200. Raspon rupa: 0,82–0,86 mm, prosječno 0,836 mm.
    (Zatim mnogo uzornih vrijednosti.)

Sažetak testa

Korak Opseg rupa Prosječna rupa
Nakon bušenja 0,93–0,94 mm 0,931 mm
Nakon bakarne pozlatbe 0,84–0,88 mm 0,858 mm
Nakon HASL-a 0,82–0,86 mm 0,836 mm

Zaključak: Za HASL ploče kompenzacija bušenja od 0,15 mm je “prekomjerna kompenzacija” i uzrokuje da konačne rupe budu veće. Najbolja vrijednost kompenzacije u ovom testu je 0,125 mm.


5. Implementacija koda za nadoknadu (pravila)

  1. Pravila o naknadama i povećanju

Aspekt Završena rupa Završna obrada površine Debljina ploče Prag za prelazak Ako preko bakra < 26 µm 26–37 µm 37–47 µm 47–67 µm 67–86 µm
omjer debljina < 12:1 ≤ 1,90 mm HASL (sa olovom ili bez olova) ≥ 3,5 mm 0.01952 5 mil 6 mil sedam miliona 8 mil 9 mil
omjer debljina < 12:1 ≤ 1,90 mm HASL (sa olovom ili bez olova) < 3,5 mm 0.01952 4,5 mil 5,5 mil 6,5 mil 7,5 mil 8,5 mil
omjer debljina < 12:1 ≤ 1,90 mm Ostali finiševi / 0.01952 4 mil 5 mil 6 mil sedam miliona 8 mil
omjer debljina < 12:1 1,90 mm HASL / 0.0246 5,5 mil 6,5 mil 7,5 mil 8,5 mil 9,5 mil
omjer debljina < 12:1 1,90 mm Ostali finiševi / 0.01952 4,5 mil 5,5 mil 6,5 mil 7,5 mil 8,5 mil
omjer debljina ≥ 12:1 sve rupe HASL / 0.0246 5,5 mil 6,5 mil 7,5 mil 8,5 mil 9,5 mil
omjer debljina ≥ 12:1 sve rupe Ostali finiševi / 0.01952 5 mil 6 mil sedam miliona 8 mil 9 mil
  1. Posebne veličine svrdla (ako je tolerancija < 3 mil, koristite posebna svrdla ili, ako je korak 25 µm, koristite pravilo za najbliže svrdlo)

				
					List ContainDrillToolList = new List(); ContainDrillToolList.AddRange(new double[] { 610, 635, 711, 838, 914, 1016, 1320, 3120 });
				
			

3. Pravilnik o naknadama

				
					/// /// Izračunajte promjer burgije na osnovu parametara za kompenzaciju /// ///Osnovne informacije o burgiji ///Parametri za kompenzaciju burgije
///Poseban popis prečnika burgija ///Vratiti 1 ako je izračun uspješan public static int getDrillUpSize(Mod_tool ToolInfo, gToolUpParam UpParam, List ContainDrillToolList) {
    if (ContainDrillToolList == null) ContainDrillToolList = new List(); gToolUpParamHole UpParamHole = new G_Helper.gToolUpParamHole(); switch (ToolInfo.type)
    { case "via": UpParamHole = UpParam.Via; break; case "plate": UpParamHole = UpParam.Pth; break; case "nplate": UpParamHole = UpParam.Npth; break; }
    ToolInfo.max_tol = Math.Round(UpParamHole.Max_Tol, 0); ToolInfo.min_tol = Math.Round(UpParamHole.Min_Tol, 0); if (ToolInfo.finish_size  49) //Kada je interval koraka 50 μm, ne koristiti specijalne burgije { ContainDrillToolList = new List(); UpLevel = UpParamHole.UpLevel; }
    else { UpLevel = UpParam.DrillLevel * 0.5; //Odaberite burgiju prema polovini intervala koraka } double Drillfinish_size = ToolInfo.finish_size + (ToolInfo.max_tol - ToolInfo.min_tol) * 0.5;  //Prosječenje gornje i donje tolerancije int DrillLevelCount = (int)(Math.Floor((Drillfinish_size + UpParamHole.UpVal) / DrillSlotLevel)); //Broj koraka bušenja double DrillsizeInt = DrillLevelCount * DrillSlotLevel; //Zaokružiti naniže na najbliži korak bušenja double DrillsizeFloat = (Drillfinish_size + UpParamHole.UpVal) % DrillSlotLevel;//Ostatak veličine bušenja nakon podjele na korake double DrillsizeLevel = (DrillsizeFloat > UpLevel) ? DrillSlotLevel : 0;//Određuje da li ostatak zaokružiti naviše //Provjerava da li su uključene specijalne svrdla int ContainDrillIndex = ContainDrillToolList.FindIndex(tt => (int)(Math.Floor(tt / DrillSlotLevel)) == DrillLevelCount);
    if (ContainDrillIndex > -1) { double ContainDrillFloat = ContainDrillToolList[ContainDrillIndex] % DrillSlotLevel;//Preostali dio veličine specijalne burgije nakon podjele koraka if (DrillsizeFloat > UpLevel) // npr. 38 > 20
        { double diff1 = Math.Abs(DrillsizeFloat - DrillSlotLevel); //npr. 40-50 double diff2 = Math.Abs(DrillsizeFloat - ContainDrillFloat); //npr. 40-38
            DrillsizeLevel = (diff1 < diff2) ? DrillSlotLevel : ContainDrillFloat; } else //if (ContainDrillFloat < UpLevel) { double diff1 = Math.Abs(DrillsizeFloat - 0); //e.g. 12-0
            double diff2 = Math.Abs(DrillsizeFloat - ContainDrillFloat); //npr. 12-16 DrillsizeLevel = (diff1  UpParamHole.UpLevel) ? DrillSlotLevel : 0;//Određuje da li zaokružiti ostatak na gore ToolInfo.slot_len = DrillsizeInt + DrillsizeLevel; } else { DrillsizeInt = Math.Floor((ToolInfo.slot_len + DiffDrillSizeUp) / 10) * 10; // Zaokružiti naniže na najbližih 10 μm ToolInfo.slot_len = DrillsizeInt; } ToolInfo.drill_size += UpParam.SlotEndNumber; // Dodati sufiksni broj za segmentaciju bušilice za utore }
    ToolInfo.bit = Math.Round((ToolInfo.drill_size * 0.001), 3).ToString(); return 1; } public class gToolUpParam { ///  /// Kompenzacijski parametri za VIA rupe (u μm) /// 
    public gToolUpParamHole Via { get; set; } = new gToolUpParamHole(); ///  /// Kompenzacijski parametri za PTH (obložena provrtna rupa) (u μm) /// 
    public gToolUpParamHole Pth { get; set; } = new gToolUpParamHole(); ///  /// Kompenzacijski parametri za NPTH (Non-Plated Through Hole) (u μm) /// 
    public gToolUpParamHole Npth { get; set; } = new gToolUpParamHole(); ///  /// Interval koraka za okrugle bušotine (u μm) ///  public double DrillLevel { get; set; } = 50; /// 
    /// Interval koraka za bušenje utora (u μm) ///  public double SlotLevel { get; set; } = 50; ///  /// Broj nastavka za segmentaciju burgija za utore /// 
    public int SlotEndNumber { get; set; } = 0; ///  /// Dodatna kompenzacijska vrijednost za dužinu utora (u μm) ///  public double SlotLengthUp { get; set; } = 0; /// 
    /// Da li zaokružiti dužinu utora na interval koraka ///  public bool isSlotUpLevel { get; set; } = false; } public class gToolUpParamHole { ///  /// Kompenzacijska vrijednost (u μm)
    ///  public double UpVal { get; set; } = 100; ///  /// Prag intervala koraka za zaokruživanje na gore (u μm) ///  public double UpLevel { get; set; } = 25; /// 
    /// Gornja tolerancija (u μm) ///  public double Max_Tol { get; set; } = 76; ///  /// Donja tolerancija (u μm) ///  public double Min_Tol { get; set; } = 76; }

/// /// Mod_tool: Model atributa alata za bušenje /// public class Mod_tool { public int num { get; set; } public string type { get; set; } // Tip rupe: via/plate(nplate)
    public string shape { get; set; } // Oblik rupe: okrugla/slot public double finish_size { get; set; } // Završna veličina rupe (u μm) public double drill_size { get; set; } // Veličina burgija (u μm) public double max_tol { get; set; } // Gornja tolerancija (u μm)
    public double min_tol { get; set; } // Donja tolerancija (u μm) public double slot_len { get; set; } // Dužina utora (u μm) public string bit { get; set; } // Veličina burgija (u mm, formatirani string) }
				
			

6. Zašto debljina ploče utječe na kompenzaciju bušenja?

Ni ja to isprva nisam razumio. Glavni razlog je visok omjer debljine i prečnika (debljina ploče podijeljena promjerom rupe). Visok omjer čini bakar u središtu rupe tanjim, a bakar na rubu rupe debljim. Za izračun omjera debljine i promjera potrebna vam je vrijednost debljine ploče. Dakle, debljina ploče ulazi u pravila kompenzacije bušenja. Za rupe s visokim omjerom debljine i promjera kompenzacija je veća.

Ostavite komentar

Vaša email adresa neće biti objavljivana. Neophodna polja su označena sa *

Pomaknite se na vrh