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?
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)
puede diseñarlo con puntos de prueba (etiquetados en la parte posterior)
y crea un accesorio de prueba para ello (usando Pogo Pins )
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).
La base de caoba pulida es opcional; Simplemente prefiero un estilo steampunk para mis accesorios de prueba.
fuente
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):
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:
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.
fuente
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).
fuente