ICSP o microcontrolador preprogramado

Diseñé un PCB para producción a pequeña escala; actualmente los estoy soldando a mano en lotes de 20 a la vez. Este PCB usa un microcontrolador ATMEGA168 que programo antes de soldarlo a la placa; este método funciona bien para mí en este momento.

Estoy buscando tener un lote de 200 tableros fabricados y ensamblados para mí, ya que el producto que he diseñado parece ser bastante popular. ¿Sería una mejor práctica incluir un encabezado ICSP en la placa o seguir preprogramando los circuitos integrados yo mismo? La reprogramación de la placa después de la fabricación o el ensamblaje no es una característica prevista o requerida.

No estoy seguro de cómo se hace esto en un entorno de producción a mayor escala. Agregar un encabezado ICSP aumentaría ligeramente el costo de fabricación, por lo tanto, ¿la programación previa es una práctica estándar?

Respuestas (4)

Sugeriría siempre incluir un encabezado en ese tipo de cantidad (pequeña). Si llega a cantidades mayores, puede considerar almohadillas para pines pogo (tendría que hacer un accesorio para mantener la PCB alineada) o, en sus cantidades, podría usar uno de los cables Tag Connect que solo requieren agujeros y desocupados . almohadillas (se encajan en el tablero).

ingrese la descripción de la imagen aquí

Además de permitirle recuperarse de la necesidad de una actualización de programación, esto le permitirá tener una casa de montaje que llene los tableros antes de la programación, lo que podría mejorar la logística.

La preprogramación es ciertamente una opción, incluso en cantidades de producción (incluso puede hacer que el distribuidor lo haga por usted), pero parece que se usa principalmente en las aplicaciones más simples. Por lo general, los chips en las placas se programan (o se pueden programar) después del ensamblaje.

Esto parece una buena solución. Gracias por su ayuda, ¡esos cables parecen bastante útiles!
Tag-Connect funciona bien para esto. También puede obtener versiones sin los pasadores de bloqueo (el plástico negro a la derecha de la imagen) que, en cambio, dependen de la presión o una placa posterior que captura los pasadores. Tenga en cuenta que el cable de la imagen cuesta alrededor de $ 50. En el lado positivo, los contactos de PCB cuestan alrededor de $0.

Si tiene espacio para un encabezado, esa es probablemente la mejor opción, y los pines ligeramente escalonados que recomienda Majenko son una buena manera de mantener un conector en su lugar sin agregar complejidad.

Pero aquí hay un enfoque alternativo, para tableros en los que no tiene espacio para colocar un encabezado, o el encabezado estándar no realiza todas sus tareas de prueba de programación/configuración/tablero.

Dada una PCB de factor de forma pequeño como aquí (33 mm de diámetro)ingrese la descripción de la imagen aquí

puede diseñarlo con puntos de prueba (etiquetados en la parte posterior)ingrese la descripción de la imagen aquí

y cree un accesorio de prueba para él (usando Pogo Pins )ingrese la descripción de la imagen aquí

Esto requiere cierta habilidad para mecanizar y al menos un taladro de columna (porque los pasadores pogo deben estar exactamente verticales). Sin embargo, si está dispuesto a arriesgar un prototipo de PCB, puede sujetarlo a una hoja de material y "apuntar" a través de los orificios de los puntos de prueba para colocar los pines pogo exactamente en el lugar correcto. (Obtengo 10 PCB por un precio ridículamente bajo de Itead, por lo que perder uno no es gran cosa).

Con un torno y una fresadora, hacer los pilares y las abrazaderas para ubicar la PCB exactamente en el lugar correcto es pan comido, pero no es demasiado difícil con herramientas más simples.

Luego, simplemente ajusta cada PCB, programa y prueba. El conector suelto normalmente va a los pines de cabecera en un TI Launchpad, que se usa para programar esta MPU (TI MSP430) a través de la interfaz SBW, pero el mismo principio se aplicaría a JTAG u otras interfaces. (El cable marrón en la parte superior es un cable coaxial que lleva una señal de calibración a un contador de frecuencia).ingrese la descripción de la imagen aquí

La base de caoba pulida es opcional; Simplemente prefiero un estilo steampunk para mis accesorios de prueba.

¡Esta es una gran respuesta y gracias por tomarse el tiempo para proporcionar una respuesta detallada tan útil! No lo marqué como la respuesta porque, en mi caso, tengo espacio para colocar un encabezado ICSP, pero es algo que tendré en cuenta si tengo que construir algo pequeño.
Esa es una plantilla bonita (¿o es un accesorio?). ¿Hay algo para marcar el ángulo de la placa de circuito impreso o simplemente está alineado a simple vista?
Observo con atención los pasadores saltadores a través de los orificios visibles de los puntos de prueba antes de empujar hacia abajo y girar las abrazaderas hacia adentro. Crudo pero funciona. En una placa de circuito impreso más grande, recomendaría un par de pines de ubicación, por ejemplo, en los orificios de montaje de la placa de circuito impreso.

Siempre agrego espacio para un encabezado ICSP, incluso si no está poblado. Tengo tres formas de hacerlo en este momento dependiendo de la situación.

Uno de mis diseños tiene un cabezal de paso muy fino para el que construí un adaptador (el cable de núcleo sólido de 0,6 mm es perfecto para él):

ingrese la descripción de la imagen aquí

Uso este conector cuando el espacio es una prima absoluta. (Lo siento, está borroso, la cámara de mi teléfono no funciona).

El segundo arreglo que uso a menudo es incorporar el ICSP en otro encabezado. Si los pines ICSP también se pueden usar como pines GPIO y puede usarlos con una conexión desmontable, entonces es lo suficientemente simple como para incluir cualquier otra conexión ICSP que pueda necesitar (MCLR, por ejemplo) a un costo mínimo. Luego, simplemente conecte su programador a ese encabezado con un adaptador que debería ser lo suficientemente simple de hacer.

La tercera forma es proporcionar una huella de encabezado "escalonada" o "desplazada" para ICSP. Lo uso principalmente en placas de desarrollo donde el usuario final puede querer hacer ICSP pero no quiere arruinar su placa soldando un encabezado de forma permanente. Esta huella permite que un cabezal estándar se ajuste a presión y haga un buen contacto sólido sin soldadura:

ingrese la descripción de la imagen aquí

Cuando comienza a trabajar con cantidades mucho más grandes, sin duda puede ser más rentable hacer que el fabricante de chips programe previamente los chips para usted con su firmware. Creo que todos los principales fabricantes ofrecen esa facilidad.

Gracias por la respuesta detallada: ¡información definitivamente útil aquí! No acepté su respuesta porque voy a usar el cable Tag Connect sugerido, aunque el método de pines escalonados funcionaría igual de bien.
Atmel definitivamente lo ofrece como una opción.
La huella del encabezado escalonado es pura genialidad. +1

Si uno está usando un procesador que se puede reprogramar en el circuito, recomendaría encarecidamente que las placas se diseñen de tal manera que permitan su uso, incluso si el uso real de la función requeriría construir un accesorio para ese propósito específico y uno no No planeo tener que construir uno. Si se descubre un problema de firmware después de fabricar un lote grande de placas, construir un accesorio que pueda reprogramar esas placas puede ser mucho más económico que tener que volver a trabajar o reconstruirlas.

En algunos casos, un buen enfoque puede ser seleccionar el diseño de E/S de una placa para que los pines del controlador necesarios para la reprogramación en el circuito se den a propósitos que "naturalmente" resulten en que estén expuestos a puntos de contacto de fácil acceso. Por ejemplo, una placa que está diseñada para usar con contactos de cúpula de metal puede tener los contactos conectados a los pines de programación del circuito. Tal diseño no requeriría dedicar ningún espacio en el diseño para un conector de programación, pero, especialmente si el contacto de la batería también tuviera un tamaño general, permita que un conector de programación se las arregle con contactos simples con resorte.

Tenga en cuenta que no necesariamente importa si el código parece estar bien probado; los cambios de un lote de chips al siguiente aún pueden causar problemas inesperados. Por ejemplo, diseñé un producto que se suponía que se apagaba solo bajo el control del procesador haciendo que el procesador emitiera una salida "alta" en un pin cuando se suponía que debía estar "encendido". En el primer lote de 10,000 unidades, todo funcionó bien, pero en un lote posterior, el procesador comenzaba a funcionar mal cuando su voltaje alcanzaba los 2 voltios y podía cambiar ese pin nuevamente a "alto"; la salida "alta" de 2 voltios apenas fue suficiente para volver a encender la unidad. Dado que se especificó que el procesador permaneciera en modo de suspensión hasta IIRC 1.6 voltios, fue posible corregir el problema reprogramando las unidades para que entraran en modo de suspensión al activar su estado de apagado. Si tal reprogramación no hubiera sido posible, se habría requerido una reelaboración mucho más costosa (o desguace y reconstrucción).