ICSP o microcontrolador preprogramado

10

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

Estoy pensando en tener un lote de 200 tablas fabricadas y ensambladas para mí, ya que el producto que he diseñado parece ser bastante popular. ¿Sería una mejor práctica incluir un encabezado de ICSP en el tablero o continuar programando los ICs yo mismo? La reprogramación de la placa después de la fabricación o el ensamblaje no es una función 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 la preprogramación es una práctica estándar?

    
pregunta edcs

4 respuestas

17

Sugeriría incluir siempre un encabezado en ese tipo de cantidad (pequeña). Si llegas a cantidades mayores, puedes considerar las almohadillas para los pogo pogo (tendrías que hacer un accesorio para mantener la PCB en alineación) o, en tus cantidades, puedes usar uno de los Cables de conexión de etiquetas que solo requieren orificios y almohadillas despobladas (se encajan en la placa).

Además de permitirle recuperarse de la necesidad de una actualización de la programación, esto le permitirá tener una casa de ensamblaje para llenar 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 utiliza principalmente en las aplicaciones más simples. Por lo general, los chips en los tableros se programan (o se pueden programar) después del ensamblaje.

    
respondido por el Spehro Pefhany
20

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

Pero aquí hay un enfoque alternativo, para las placas en las que no tiene espacio para colocar un encabezado, o la cabecera estándar no cumple todas sus tareas de programación / configuración / prueba de la placa.

Dado un PCB de factor de forma pequeño como aquí (33 mm de diámetro)

puedescolocarloconpuntosdeprueba(etiquetadosenlaparteposterior)

y cree un dispositivo de prueba para él (utilizando Pines Pogo )

Estorequiereciertacapacidaddemecanizadoyalmenosuntaladrodepilar(porquelospasadoresdepogodebenserexactamenteverticales).Sinembargo,siestádispuestoaarriesgarunPCBprototipo,puedesujetarloaunahojadematerialy"ubicarlo" a través de los orificios de los puntos de prueba para colocar los pines de pogo en el lugar correcto. (Obtengo 10 PCB a un precio ridículamente bajo de Itead, por lo que perder uno no es gran cosa).

Con un torno y fresadora, hacer que los pilares y las abrazaderas para ubicar la PCB en el lugar correcto sea un juego fácil, 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 Launchpad de TI, 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; Resulta que prefiero un estilo steampunk para mis dispositivos de prueba.

    
respondido por el Brian Drummond
12

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 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):

Utilizoesteconectorcuandoelespacioesunaprimaabsoluta.(Losiento,estáborroso,lacámarademiteléfonoesnaf).

ElsegundoarregloqueusoamenudoesincorporarelICSPenotroencabezado.SilospinesICSPtambiénsepuedenusarcomopinesGPIO,ypuedeusarlosconunaconexióndesmontable,entonceseslosuficientementesimplecomoparaincluircualquierotraconexiónICSPquepuedanecesitar(MCLR,porejemplo)auncostomínimo.Luegosimplementeconectesuprogramadoreneseencabezadoconunadaptadorquedeberíaserlosuficientementesimpledehacer.

Laterceraformaesproporcionarunahuelladeencabezado"escalonado" o "compensado" para ICSP. Uso esto 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 ninguna soldadura:

Cuando empiece a tratar con cantidades mucho más grandes, sin duda puede ser más rentable que el fabricante del chip programe previamente los chips con su firmware. Creo que todos los principales fabricantes ofrecen esa instalación.

    
respondido por el Majenko
4

Si uno está usando un procesador que se puede reprogramar en un circuito, recomendaría encarecidamente que los tableros se diseñen de tal manera que permitan su uso, incluso si el uso de la función requiera hacer un accesorio para ese propósito específico y uno no planea tener que construir uno. Si se descubre un problema de firmware después de fabricar un gran lote de tableros, construir un accesorio que pueda reprogramar esos tableros puede ser mucho más barato que tener que rehacerlos o reconstruirlos.

En algunos casos, un buen enfoque puede ser seleccionar el diseño de E / S de la placa para que los pines del controlador necesarios para la reprogramación en el circuito se asignen a fines que "naturalmente" hacen que estén expuestos a puntos de contacto de fácil acceso. . Por ejemplo, una placa que está diseñada para usarse con contactos de domo de metal podría tener los contactos conectados a los pines de programación en el circuito. Un diseño de este tipo 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 tiene un tamaño general, permite que un conector de programación funcione 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 todavía pueden causar problemas inesperados. Por ejemplo, diseñé un producto que debía apagarse 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 alcanzó aproximadamente 2 voltios, y podría volver a poner ese pin en "alto"; la salida "alta" de 2 voltios era apenas suficiente para volver a encender la unidad. Debido a que se especificó que el procesador permanecería en el modo de suspensión hasta IIRC 1.6 voltios, fue posible corregir el problema reprogramando las unidades para que entraran en el modo de suspensión al activar su estado de apagado. Si dicha reprogramación no hubiera sido posible, se habría requerido un retrabajo mucho más costoso (o, si no, el desguace y la reconstrucción).

    
respondido por el supercat

Lea otras preguntas en las etiquetas