¿Qué opciones hay para programar los MCU en producción?

7

Para mi proyecto de Super OSD voy a necesitar programar grandes lotes de MCU, probablemente alrededor de 10-15 tableros por hora. Podría usar mi PICkit 2 de confianza para programarlo (hay dos, quizás tres, en cada placa) pero sería muy laborioso cargar cada archivo (hasta 128 KB y 256 KB de tamaño), golpear el programa y repetir para cada uno MCU, y probablemente no me permitiría alcanzar mi velocidad objetivo. Además, los MCU son de montaje superficial, por lo que debo tener encabezados en la placa para permitir esto. Idealmente, me gustaría eliminar estos encabezados, pero puede que no sea una opción.

Entonces, ¿qué opciones existen para la programación masiva de MCU? ¿Hay formas más rápidas de hacerlo? Tengo una especie de presupuesto de menos de $ 100 USD, por lo que cosas como el MPLAB PM3 de Microchip a $ 895 USD, aunque bueno, no sería una opción.

Estoy tratando con microcontroladores PIC de varios tipos. Hay un PIC16F887, PIC24FJ64GA002 y dsPIC33FJ128GP802. Sin embargo, también me interesan las opciones para los procesadores AT32 y STM32, ya que es posible que también los esté utilizando.

Tenga en cuenta que actualmente no estoy considerando pedir chips de los fabricantes preprogramados porque el software puede cambiar en el momento en que lleguen los chips y por el costo adicional involucrado.

    
pregunta Thomas O

7 respuestas

10

Lo que hacemos para la producción, es cargar primero un programa en el PIC que prueba el tablero (usando un tablero de prueba pequeño que verifica de forma independiente que el riel de 3.3v está dentro de las especificaciones usando un par de comparadores, y luego usamos el ADC en el PIC para verificar todo lo demás. Nos quedaron suficientes pines para permitir esto (se requieren algunas resistencias adicionales para que actúen como divisores de voltaje para los voltajes superiores a 3v).

Después de pasar las pruebas, el código de producción real se muestra en el micro. Se ejecutan algunas pruebas adicionales y el PCB está listo para ensamblarse en un estuche.

Todo esto se hace a través de un programa en la PC que solo requiere que un operador conecte la placa, haga clic en un botón y espere el resultado PASS / FAIL. Se registran todos los resultados de las pruebas (incluidas las lecturas de ADC). Todo el proceso (incluida la programación de los PIC a través de un ICD 3) se controla a través del programa para PC, que ejecuta secuencias de comandos por lotes para realizar la programación real. La comunicación al PIC para controlar las pruebas se realiza a través de uno de los UART, cuyos pines se llevan a la placa de prueba (por lo que además de los pines necesarios para la programación, también tenemos TX / RX).

Configuramos varias estaciones como esta en nuestro fabricante contratado.

Por cierto, el ICD 3 es mucho más rápido que el ICD 2 (USB 2.0 vs 1.1).

    
respondido por el tcrosley
4

La programación del microcontrolador es generalmente una pequeña parte de un proceso de prueba funcional más grande. ¿Cómo es el resto de tu plan de prueba?

Para cualquier producto no trivial, deberá diseñar otra placa para probar la placa en producción. En general, la placa de prueba tendrá una interfaz de computadora y conectará el objetivo para probar el equipo con capacidades RS-232 o GPIB. Luego, una computadora puede ejecutar un script, programar la placa y luego ejecutar las pruebas que sean apropiadas.

También es útil tener esta placa de prueba ejecutándose para el desarrollo de firmware. Implementar pruebas suficientes para capturar regresiones en el firmware.

El inicio de su placa de prueba es probablemente el circuito PICkit 2. El firmware es de código abierto, se encargará de la parte de programación, tiene un cargador de arranque práctico y puede extenderlo para hacer cualquier otra cosa que necesite su prueba funcional.

Me gusta escribir mis scripts de prueba de producción en Python, pero creo que el estándar de la industria es Labview.

    
respondido por el markrages
4

Obtenga un pickit 3 y póngalo en el programador para ir al modo.

Dice que quiere que el programador vaya al modo y que cargue su rom, entonces ya no necesita un puerto USB para más que poder (sí, todavía lo necesita para poder).

A medida que te conectas a los dispositivos, presionas el botón del programa, éste carga el programa y te avisa cuando se hace, toma menos de 20 segundos por placa. No cuesta más de 50 $

    
respondido por el Kortuk
4

El PICkit 2 no es un programador de producción. Realmente necesita obtener un ICD 3, que se clasifica como un programador de producción, si desea asegurarse de que los dispositivos se estén programando correctamente. Alternativamente, puede comprar sus chips preprogramados de Microchip o de un distribuidor, si tiene el código finalizado.

    
respondido por el Leon Heller
3

Un método que podría usar es hacer una abrazadera o algo similar a un banco de pruebas (ejemplo del video ) con pogo pins , por lo que no necesita soldar los pines para los conectores de programación. Un conector de borde de PCB, como un cable de disquete de estilo antiguo, podría ser una opción más barata (pero más exigente para el área de la placa).

Tendrás que encontrar una manera de programar cada microcontrolador, probablemente usando varios programadores o un archivo por lotes como lo sugirió David. Puede combinarlo con un interruptor grande (tal vez uno de los interruptores rotativos de una caja de interruptores para compartir impresoras antiguas, o algunos relés ), para volver a conectar el programador de un PIC a otro sin mover el conector.

Las técnicas también se aplican a otros controladores programables en el sistema, aunque los JTAG compatibles pueden hacerlo aún más fácil porque JTAG TAP está diseñado para ser encadenado, por lo que no habrá movimiento del programador de chip a chip. Además, para chips como los AVR que pueden usar niveles lógicos ordinarios para la programación, el cambio podría ser más fácil.

    
respondido por el Yann Vernier
2

Hay una utilidad de línea de comandos llamada PK2CMD para Windows y Linux que le permite programar sus PIC con el PicKit (así que no tiene que usar MPLAB o alguna otra GUI). Podría usar su lenguaje de scripting favorito para crear un pequeño programa que ejecute el comando PK2CMD correcto cuando presiona una tecla. Esto haría que el lado de la computadora de su producción sea menos laborioso (solo 1 pulsación de tecla por MCU), pero aún necesitaría una forma de conectar el PicKit a cada uno de sus 3 MCU.

    
respondido por el DavidEGrayson
1

El servicio de programación de Microchip es muy barato la última vez que lo usé. Una vez que cubres el costo de instalación, es muy barato (monedas de un centavo por chip para 12F) que no se ven en los de mayor calidad. También pueden hacer marcaje / etiquetado etc. Incluso si pretende cambiar el FW, tener preprogramado un gestor de arranque puede hacerlo más fácil.

Para un programador de producción, me gusta el Asix Presto : un montón de opciones para cosas como la serialización y muy rápido

    
respondido por el mikeselectricstuff

Lea otras preguntas en las etiquetas