ICSP o microcontrolador preprogramado


11

He diseñado una PCB para producción a pequeña escala; Actualmente los estoy soldando a mano en lotes de 20 a la vez. Esta PCB utiliza un microcontrolador ATMEGA168 que programo antes de soldar 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 IC 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 que ¿es la preprogramación una práctica estándar?

Respuestas:


18

Sugeriría siempre incluir un encabezado en ese tipo de cantidad (pequeño). Si llega a grandes cantidades, puede considerar almohadillas para pines de pogo (tendría que hacer un accesorio para mantener la PCB alineada) o, en sus cantidades, podría usar uno de los cables de Tag Connect que requieren solo agujeros y despoblado 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 ensamblaje en los tableros antes de programar, lo que podría mejorar la logística.

La programación previa 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 pueden programarse) después del ensamblaje.


Esto parece una buena solución: gracias por su ayuda, ¡esos cables se ven bastante útiles!
edcs

1
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 dependen de la presión o una placa posterior que captura los pasadores. Tenga en cuenta que el cable en la foto cuesta aproximadamente $ 50. En el lado positivo, los contactos de PCB son de aproximadamente $ 0.
Ben Jackson

20

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 donde no tiene espacio para un encabezado, o el encabezado estándar no cumple con todas sus tareas de programación / configuración / prueba de tablero.

Dado un factor de forma pequeño PCB 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 crea un accesorio de prueba para ello (usando Pogo Pins ) ingrese la descripción de la imagen aquí

Esto requiere cierta capacidad de mecanizado y al menos un taladro de pilar (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 "detectar" a través de los agujeros de los puntos de prueba para colocar los pines de 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 un molino, hacer los pilares y las abrazaderas para ubicar la PCB exactamente en el lugar correcto es un obstáculo, 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 del encabezado en un TI Launchpad, utilizado 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 brindar una respuesta detallada tan útil! No lo marqué como la respuesta porque en mi caso, tengo el espacio para caber en un encabezado ICSP, pero es algo que tendré en cuenta si tengo que construir algo pequeño.
edcs

2
Esa es una bonita plantilla (¿o es un accesorio?). ¿Hay algo para marcar el PCB en ángulo o solo está alineado a simple vista?
Spehro Pefhany

Echo un vistazo a los pines de pogo a través de los agujeros visibles del punto de prueba antes de empujar hacia abajo y girar las abrazaderas. Crudo pero funciona. En una PCB más grande, recomendaría un par de pines de ubicación, por ejemplo, en los orificios de montaje de la PCB.
Brian Drummond

13

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

Uno de mis diseños tiene un encabezado de paso muy fino para el que he construido 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í

Yo uso este conector cuando el espacio es muy importante. (Lo siento, está borrosa, la cámara de mi teléfono está mal).

La segunda disposición 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 en ese encabezado con un adaptador que debería ser lo suficientemente simple como para hacer.

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

ingrese la descripción de la imagen aquí

Cuando comience a manejar cantidades mucho mayores, sin duda puede ser más rentable lograr que el fabricante de chips preprograme los chips para usted con su firmware. Creo que todos los principales fabricantes proporcionan esa instalación.


Gracias por la respuesta detallada, ¡definitivamente información útil aquí! No acepté su respuesta porque voy a usar el cable de Tag Connect sugerido, aunque el método de pin escalonado funcionaría igual de bien.
edcs

Atmel definitivamente lo ofrece como una opción.
Ignacio Vazquez-Abrams

2
La huella de encabezado escalonada es puramente genial. +1
Vladimir Cravero

5

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 de la función requeriría hacer que la construcción sea un accesorio para ese propósito específico y uno no No planeas tener que construir uno. Si se descubre un problema de firmware después de fabricar un gran lote de placas, construir un dispositivo que pueda reprogramar esas placas puede ser mucho más barato que tener que volver a trabajarlas 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 tengan fines que "naturalmente" los expongan a puntos de contacto de fácil acceso. Por ejemplo, una placa diseñada para usarse con contactos de domo metálico podría tener los contactos conectados a los pines de programación en 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 era de tamaño general, permitir que un conector de programación funcione con contactos simples accionados por 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 bajo el control del procesador al tener la salida del procesador "alta" en un pin cuando se suponía que estaba "encendida". En el primer lote de 10,000 unidades todo funcionó bien, pero en un lote posterior el procesador comenzaría a funcionar mal cuando su voltaje alcanzara los 2 voltios, y podría volver a cambiar ese pin a "alto"; la salida "alta" de 2 voltios apenas era suficiente para volver a encender la unidad. Como se especificó que el procesador permanecía en modo de suspensión hasta IIRC 1.6 voltios, fue posible corregir el problema reprogramando las unidades para que ingresaran al 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 de lo contrario, desguace y reconstrucción).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.