Acerca de la compensación de taladros PCB

About PCB Drill Compensation

No hay grandes individuos, sino grandes equipos. Gracias al trabajo en equipo, la primera fase del proyecto de automatización PCB CAM para manejo de la red y manejo de brocas está hecho. A continuación, podemos pasar al motor de reglas de PCB. Aquí hablo de la compensación de taladros en ingeniería PCB. Como desarrollador de ingeniería PCB, deberías saber qué es y por qué funciona. A continuación comparto los puntos clave sobre la compensación de taladros.


1. ¿Por qué compensamos los tamaños de las brocas?

Los tamaños de los orificios en los archivos de PCB que proporciona el cliente suelen significar el final tamaño de los orificios. Durante la producción de las placas de circuito impreso, se recubre de cobre el interior de los orificios (o se les da un acabado superficial como HASL, ENIG, OSP, etc.). Esto hace que el agujero sea más pequeño. Para asegurarse de que el tamaño final del agujero cumple los requisitos, el paso CAM corrige el tamaño del taladro. Esto es la compensación del taladro.

Un ejemplo real:
Tamaño final del agujero: 1,00 mm. Acabado superficial: ENIG (espesor de níquel 2,54 µm, espesor de oro 0,0254 µm). Siguiendo la clase II del IPC, el espesor medio del cobre chapado es de 20 µm. Si utilizamos 0,10 mm como valor de compensación, el equipo CAM elegirá un 1,10 mm broca.

Real example


2. ¿Cómo hacemos la compensación por perforación?

En primer lugar, hay que tener claros los tres parámetros clave de la indemnización por perforación:
(1) Incremento de la broca,
(2) Valor de compensación,
(3) Umbral de incremento (valor de avance).
Estas tres determinan cómo aplicar la compensación.

1) Incremento de la broca

Depende de las brocas que compre la empresa. El incremento común en la industria es 50 µm. Los tamaños típicos de las brocas oscilan entre 0,10 mm a 6,35 mm. El paso más pequeño habitual entre brocas es 0,05 mm. Así que la biblioteca de taladros tiene tamaños como 0,10 mm, 0,15 mm, 0,20 mm, 0,25 mm, etc.

2) Valor de compensación

El equipo de procesos establece las normas de compensación basándose en los resultados de las pruebas en fábrica. Los valores de compensación no varían mucho en el sector. Reglas comunes:

  • Placas con HASL (lata de spray): compensar 0,15 mm.

  • Placas sin HASL (ENIG, estaño de inmersión, OSP, etc.): compensar 0,10 mm.

3) Umbral de incremento (valor de avance)

El equipo de proceso también establece la estrategia de selección de la broca, similar a una regla de redondeo. Por ejemplo, cuando el incremento es 20 µm, si el resto después de dividir por el incremento es ≥ 20 µm, se redondea 50 µm; en caso contrario, se mantiene el tamaño inferior.

Por ejemplo:
Tamaño final del orificio = 1,025 mm, compensación = 0,10 mm, así que tamaño compensado = 1,125 mm. Pero no hay 1,125 mm taladro en la biblioteca. Utilice la regla del escalón. El resto de 1,125 mm comparado con el escalón de 0,05 mm es 25 µm. Desde 25 µm > 20 µm, redondear 50 µm hacia arriba y elegir a 1,15 mm taladro.


Ejemplos reales de indemnización por perforación

Supongamos: incremento de perforación = 50 µm, umbral de incremento = 20 µm

Agujero original Compensación Tras la indemnización Parte entera Resto Taladro elegido
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

Cómo calcular el tamaño de broca elegido

Divida el tamaño del orificio compensado en una parte entera y una parte restante utilizando el incremento de perforación:

Toma 1,125 mm como ejemplo:
1,125 / 0,05 = 22,5 → suelo a 22 → parte entera = 22 × 0,05 = 1,10 mm.
Resto = 1,125 % 0,05 = 0,025 mm.

A continuación, compare el resto con el umbral de aumento (por ejemplo, 20 µm):

  • Si resto > umbral, tamaño broca = parte entera + 0,05 mm.

  • Si resto ≤ umbral, tamaño broca = parte entera + 0,00 mm.


Resumen sobre el umbral elevador

Cuando el incremento del taladro es 50 µm, El umbral de aumento es crítico. Realiza una segunda corrección del tamaño compensado de la broca. Decide si “subir” o “quedarse”. La modificación de este umbral cambia directamente el tamaño de perforación elegido.

Más ejemplos (incremento de perforación = 50 µm):

Agujero original Compensación Después de comp. Entero Resto Umbral de incremento Taladro
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

Opinión personal sobre la fijación del umbral del step-up

Pros y contras: Tras la compensación, si el orificio final es un poco más grande, al menos se puede insertar la pieza. Si el agujero es demasiado pequeño, la pieza no puede insertarse. Por lo tanto, normalmente fijamos el umbral de aumento en 20 µm en lugar de 25 µm. La elección exacta debe corresponder a cada proceso y valor de compensación.

Combinado con el valor de compensación: Para placas con HASL en las que la compensación es 0,15 mm, ya “sobrecompensa” un poco y los agujeros finales tienden a ser ligeramente grandes. En ese caso, un umbral de 25 µm también puede funcionar. Utilice la regla del “más cerca” al elegir el taladro.


3. ¿Cómo garantizar que el tamaño final del orificio cumple los requisitos tras la compensación?

Método 1: Comprar brocas especiales

El incremento estándar del taladro es 50 µm (pasos de 0,05 mm como 1,00, 1,05, 1,10, 1,15 mm). Con una tolerancia PTH de ±3 mil, un juego de brocas de 50 µm puede cubrir la tolerancia. Si la tolerancia es inferior, utilice brocas especiales.

Ejemplo 1 - Compare los incrementos de 50 µm frente a los de 25 µm:
Agujero original = 0,922 mm, compensación = 0,10 mm, Tamaño compensado = 1,022 mm.

Original Compensación Compensado Incremento Taladro elegido
0.922 0.10 1.022 0,05 (50 µm) 1.05
0.922 0.10 1.022 0,025 (25 µm) 1.025

Diferencia: 1,050 - 1,022 = 0,028 mm; 1,025 - 1,022 = 0,003 mm. Cuanto menor sea la diferencia, mejor, así que 1,025 mm (incremento de 25 µm) es mejor.

Ejemplo 2 - 50 µm frente a taladro especial:
Agujero original = 0,611 mm, compensación = 0,10 mm, compensado = 0,711 mm.

Original Compensación Compensado Incremento / Tipo Taladro elegido
0.611 0.10 0.711 0,05 (50 µm) 0.70
0.611 0.10 0.711 Taladro especial 0.711

Diferencia: 0,700 - 0,711 = -0,011 mm; 0,711 - 0,711 = 0,000 mm. Cuanto menor sea la diferencia, mejor. Así que la Broca especial de 0,711 mm es lo mejor.

Método 2: Mejorar el proceso y los equipos

  • Añada un segundo paso de chapado de la placa para reducir el grosor desigual de la distribución del patrón.

  • Utilice el fotograbado directo negativo y planche toda la placa para reducir el grosor desigual del cobre.

  • Reducir la densidad de corriente (la típica es 19 ASF); una densidad de corriente ligeramente inferior puede mejorar la uniformidad del metalizado, pero prolongará el tiempo de metalizado.

  • Cambie a una línea de metalizado horizontal. Las líneas de metalizado verticales a menudo dan cobre más grueso en el borde del agujero y cobre más fino en el centro del agujero para agujeros de alta relación de aspecto. Una línea horizontal puede reducir este problema.

Método 3: Mejorar las estrategias de CAM

  • Para agujeros en zonas de cobre aisladas, aplique un incremento extra de compensación. Las zonas aisladas tienen menos cobre, por lo que durante el metalizado reciben una mayor densidad de corriente local y un mayor espesor de cobre; la compensación extra compensa esto.

  • Para diseños con trazas densas en un lado y dispersas en el otro (por ejemplo, una placa de alimentación), coloque el lado disperso hacia dentro y el lado denso hacia fuera, y utilice la panelización inversa. Durante el panelado, las zonas cercanas al borde de la placa reciben una mayor densidad de corriente y un chapado más grueso. La panelización inversa ayuda a equilibrar la distribución del metalizado.

  • Cuando las áreas de cobre SUPERIOR e INFERIOR difieran mucho, utilice paneles positivos/negativos (yin-yang). Un área de cobre desigual provoca vías de “boca de campana”; cuanto más gruesa sea la placa y más cobre, peor será el efecto; los paneles yin-yang ayudan a equilibrar la distribución del cobre.

  • Para los agujeros aislados cerca del borde de la placa o de las ranuras, añada zonas de “captación” de cobre o almohadillas de cobre cerca del borde o de la ranura. Los agujeros aislados pueden tener demasiado espesor de metalizado y volverse demasiado pequeños; el cobre adicional cerca de ellos reduce la densidad de corriente local y equilibra el metalizado.


4. ¿Cuánta compensación se necesita y cómo se obtiene?

Los valores de compensación proceden de pruebas de proceso. A continuación se muestra un conjunto de cambios de tamaño de orificio medidos después de varios pasos (datos de un informe):

Flujo del proceso: perforación mecánica → cobre de inmersión → galvanoplastia → transferencia de patrones → grabado → AOI → película húmeda → HASL.

Parámetros del proceso:

  • Broca: tamaño de broca 0,95 mm, reafilar/reafilar 3 veces, compensación de broca 0,15 mm;

  • Revestimiento: espesor del cobre ≥ 18 µm, media ≥ 20 µm;

  • HASL: requisito de agujero final 0,80 mm, tolerancia ±0,08 mm (3 mil);

  • Ensayo: 10 paneles, esquinas recortadas, grosor del tablero 2,0 mm.

El tamaño del orificio cambia por pasos

1) Tras la perforación - tamaño de los orificios medidos

  • Total: 1.920 agujeros probados (10 paneles, 384 agujeros cada uno). Muestra: 200 agujeros (20 por panel). Gama de agujeros: 0,93-0,94 mm, media 0,931 mm.
    (A continuación, una larga lista de valores muestreados, la mayoría de 0,93 o 0,94.)

2) Después del revestimiento con patrón - espesor del cobre

  • Para cada panel, pruebe 10 orificios. Gama de espesores de cobre 18-31 µm, reunión ≥18 µm y media ≥20 µm.
    (A continuación, muchas muestras de valores de espesor de cobre).

3) Después del metalizado - tamaño del agujero

  • Total 1920 agujeros, muestra 200. Rango de agujeros: 0,84-0,88 mm, media 0,858 mm.
    (A continuación, muchos valores de muestra, la mayoría de 0,85-0,88.)

4) Después de HASL - tamaño del agujero

  • Total 1920 agujeros, muestra 200. Rango de agujeros: 0,82-0,86 mm, media 0,836 mm.
    (A continuación, muchos valores de muestra).

Resumen de la prueba

Paso Alcance del orificio Agujero medio
Después de taladrar 0,93-0,94 mm 0,931 mm
Después del cobreado 0,84-0,88 mm 0,858 mm
Después de HASL 0,82-0,86 mm 0,836 mm

Conclusión: Para las placas HASL, la compensación de perforación de 0,15 mm es una “sobrecompensación” y hace que los agujeros finales sean más grandes. El mejor valor de compensación en esta prueba es 0,125 mm.


5. Aplicación del código de compensación de perforación (normas)

  1. Compensación y reglas de step-up

Aspecto Agujero terminado Acabado superficial Grosor del tablero Umbral de incremento Si vía cobre < 26 µm 26-37 µm 37-47 µm 47-67 µm 67-86 µm
relación de espesores < 12:1 ≤ 1,90 mm HASL (con o sin plomo) ≥ 3,5 mm 0.01952 5 millones 6 millones 7 millones 8 millones 9 millones
relación de espesores < 12:1 ≤ 1,90 mm HASL (con o sin plomo) < 3,5 mm 0.01952 4,5 mil 5,5 mil 6,5 mil 7,5 millones 8,5 mil
relación de espesores < 12:1 ≤ 1,90 mm Otros acabados / 0.01952 4 millones 5 millones 6 millones 7 millones 8 millones
relación de espesores < 12:1 > 1,90 mm HASL / 0.0246 5,5 mil 6,5 mil 7,5 millones 8,5 mil 9,5 millones
relación de espesores < 12:1 > 1,90 mm Otros acabados / 0.01952 4,5 mil 5,5 mil 6,5 mil 7,5 millones 8,5 mil
relación de espesor ≥ 12:1 todos los agujeros HASL / 0.0246 5,5 mil 6,5 mil 7,5 millones 8,5 mil 9,5 millones
relación de espesor ≥ 12:1 todos los agujeros Otros acabados / 0.01952 5 millones 6 millones 7 millones 8 millones 9 millones
  1. Tamaños de broca especiales (si la tolerancia es < 3 mil, utilice brocas especiales o un incremento de 25 µm, utilice la regla de broca más cercana)

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

3. Código de compensación de perforación

				
					///
/// Calcular el diámetro de la broca en función de los parámetros de compensación de la broca.
///
///Información básica de la herramienta de perforación
///Parámetros de compensación de la broca
///Lista de diámetros de brocas especiales
///Devuelve 1 si el cálculo se ha realizado correctamente
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 "placa":
            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) //Cuando el intervalo de paso es de 50μm, no utilizar brocas especiales.
    {
        ContainDrillToolList = new List();
        UpLevel = UpParamHole.UpLevel;
    }
    else
    {
        UpLevel = UpParam.DrillLevel * 0.5; //Seleccionar broca por la mitad del intervalo de paso
    }

    double Drillfinish_size = ToolInfo.finish_size + (ToolInfo.max_tol - ToolInfo.min_tol) * 0.5; //Promediar la tolerancia superior e inferior
    int DrillLevelCount = (int)(Math.Floor((Drillfinish_size + UpParamHole.UpVal) / DrillSlotLevel)); //Cuento de pasos de taladrado
    double DrillsizeInt = DrillLevelCount * DrillSlotLevel; //Redondee hacia abajo al paso de taladrado más cercano
    double DrillsizeFloat = (Drillfinish_size + UpParamHole.UpVal) % DrillSlotLevel;//Resto del tamaño de perforación tras la división de pasos
    double DrillsizeLevel = (DrillsizeFloat > UpLevel) ? DrillSlotLevel : 0;//Determinar si se redondea el resto

    //Comprobar si se incluyen brocas especiales
    int ContainDrillIndex = ContainDrillToolList.FindIndex(tt => (int)(Math.Floor(tt / DrillSlotLevel)) == DrillLevelCount);
    if (ContainDrillIndex > -1)
    {
        double ContainDrillFloat = ContainDrillToolList[ContainDrillIndex] % DrillSlotLevel;//Remanente del tamaño especial de la broca tras la división del paso
        if (DrillsizeFloat > UpLevel) // ej. 38 > 20
        {
            double diff1 = Math.Abs(DrillsizeFloat - DrillSlotLevel); //e.g. 40-50
            double diff2 = Math.Abs(DrillsizeFloat - ContainDrillFloat); //e.g. 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); //e.g. 12-16
            DrillsizeLevel = (diff1  UpParamHole.UpLevel) ? DrillSlotLevel : 0;//Determinar si se redondea el resto
            ToolInfo.slot_len = DrillsizeInt + DrillsizeLevel;
        }
        si no
        {
            DrillsizeInt = Math.Floor((ToolInfo.slot_len + DiffDrillSizeUp) / 10) * 10; // Redondear hacia abajo a los 10μm más cercanos
            ToolInfo.slot_len = DrillsizeInt;
        }
        ToolInfo.drill_size += UpParam.SlotEndNumber; // Añadir número de sufijo para la segmentación de la broca de ranura.
    }
    ToolInfo.bit = Math.Round((ToolInfo.drill_size * 0.001), 3).ToString();
    return 1;
}

public class gToolUpParam
{
    /// 
    /// Parámetros de compensación para agujeros VIA (en μm).
    /// 
    public gToolUpParamHole Vía { get; set; } = new gToolUpParamHole();
    /// 
    /// Parámetros de compensación para PTH (Plated Through Hole) (en μm).
    /// 
    public gToolUpParamHole Pth { get; set; } = new gToolUpParamHole();
    /// 
    /// Parámetros de compensación para NPTH (Non-Plated Through Hole) (en μm).
    /// 
    public gToolUpParamHole Npth { get; set; } = new gToolUpParamHole();
    /// 
    /// Intervalo de paso para taladros redondos (en μm).
    /// 
    public double DrillLevel { get; set; } = 50;
    /// 
    /// Intervalo de paso para taladros de ranura (en μm).
    /// 
    public double SlotLevel { get; set; } = 50;
    /// 
    /// Número de sufijo para la segmentación de brocas de ranura.
    /// 
    public int SlotEndNumber { get; set; } = 0;
    /// 
    /// Valor de compensación adicional para la longitud de la ranura (en μm).
    /// 
    public double SlotLengthUp { get; set; } = 0;
    /// 
    /// Si se redondea la longitud de la ranura al intervalo de pasos.
    /// 
    public bool isSlotUpLevel { get; set; } = false;
}

public class gToolUpParamHole
{
    /// 
    /// Valor de compensación (en μm).
    /// 
    public double UpVal { get; set; } = 100;
    /// 
    /// Umbral del intervalo de paso para el redondeo al alza (en μm).
    /// 
    public double NivelSubida { get; set; } = 25;
    /// 
    /// Tolerancia superior (en μm)
    /// 
    public double Max_Tol { get; set; } = 76;
    /// 
    /// Tolerancia inferior (en μm)
    /// 
    public double Min_Tol { get; set; } = 76;
}

///
/// Mod_tool: Modelo de atributos de la herramienta de perforación.
///
public class Mod_tool
{
    public int num { get; set; }
    public string tipo { get; set; } // Tipo de agujero: via/plate(nplate)
    public string forma { get; set; } // Forma del orificio: redondo/ranura
    public double tamaño_acabado { get; set; } // Tamaño del orificio acabado (en μm)
    public double drill_size { get; set; } // Tamaño de la broca (en μm)
    public double max_tol { get; set; } // Tolerancia superior (en μm)
    public double min_tol { get; set; } // Tolerancia inferior (en μm)
    public double slot_len { get; set; } // Longitud de la ranura (en μm)
    public string bit { get; set; } // Tamaño de la broca (en mm, cadena formateada).
}
				
			

6. ¿Por qué afecta el grosor del tablero a la compensación de perforación?

Yo tampoco lo entendía al principio. La razón principal es el alto relación grosor/diámetro (grosor de la placa dividido por el diámetro del agujero). Una relación alta hace que el cobre en el centro del agujero sea más fino y el cobre en el borde del agujero más grueso. Para calcular la relación grosor-diámetro se necesita el valor del grosor de la placa. Por tanto, el grosor de la placa entra en las reglas de compensación del taladro. Para agujeros de gran grosor, la compensación es mayor.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ir arriba