Para mi proyecto Super OSD, necesitaré programar grandes lotes de MCU, probablemente entre 10 y 15 placas por hora. Podría usar mi confiable PICkit 2 para programarlos (hay dos, tal vez tres, en cada placa), pero sería muy laborioso cargar cada archivo (hasta 128 KB y 256 KB de tamaño), presionar programa y repetir para cada uno. MCU, y probablemente no me permitiría alcanzar mi velocidad objetivo. Además, los MCU son de montaje en superficie, 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 hay para la programación masiva de MCU? ¿Hay formas más rápidas de hacerlo? Tengo un presupuesto de menos de $ 100 USD, por lo que cosas como MPLAB PM3 de Microchip a $ 895 USD, aunque son agradables, no serían una opción.
Estoy tratando con microcontroladores PIC de varios tipos. Hay un PIC16F887, PIC24FJ64GA002 y dsPIC33FJ128GP802. Sin embargo, también estoy interesado en las opciones para los procesadores AT32 y STM32, ya que es posible que también los esté usando.
Tenga en cuenta que actualmente no estoy considerando pedir chips preprogramados de los fabricantes porque el software puede cambiar para cuando lleguen los chips y debido al costo adicional involucrado.
Lo que hacemos para la producción es cargar primero un programa en el PIC que prueba la placa (usando una pequeña placa de prueba 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 sobraron suficientes pines para permitir esto (requirió algunas resistencias adicionales para actuar 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 la PCB está lista para ensamblarse en una caja.
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 PASA/FALLA. 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 de PC, que ejecuta secuencias de comandos por lotes para realizar la programación real. La comunicación con el 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 como mínimo).
Instalamos varias estaciones como esta en nuestro fabricante por contrato.
Por cierto, el ICD 3 es mucho más rápido que el ICD 2 (USB 2.0 vs 1.1).
Obtenga un pickit 3 y póngalo en modo programador para ir.
Le dices que quieres que el programador pase al modo y cargas tu rom, entonces ya no necesitas un puerto usb para más que energía (sí, todavía lo necesitas para energía).
A medida que se conecta a los dispositivos, presiona el botón del programa y carga el programa y le permite saber cuándo está listo, toma menos de 20 segundos por placa. Cuesta no más de 50$
El PICkit 2 no es un programador de producción. Realmente necesita obtener un ICD 3, que está clasificado como programador de producción, si quiere estar seguro de que los dispositivos se programan correctamente. Alternativamente, puede comprar sus chips preprogramados de Microchip o de un distribuidor, si tiene el código finalizado.
La programación de microcontroladores suele ser una pequeña parte de un proceso de prueba funcional más grande. ¿Cómo es el resto de su plan de prueba?
Para cualquier producto no trivial, deberá diseñar otra placa para probar la placa en producción. Generalmente, la placa de prueba tendrá una interfaz de computadora y conectará el objetivo al equipo de prueba 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 funcionando para el desarrollo de firmware. Implemente suficientes pruebas para detectar 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 útil 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.
Un método que podría usar es hacer una abrazadera o algo similar a un banco de pruebas ( video de ejemplo ) con pines pogo , de modo que no necesite soldar 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 económica (pero más exigente en el área de la placa).
Tendrá que idear una forma de programar cada microcontrolador, probablemente utilizando varios programadores o un archivo por lotes como sugirió David. Puede combinarlo con un interruptor grande (quizás uno de los interruptores giratorios de una caja de interruptores para compartir una impresora antigua, 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 compatibles con JTAG pueden hacerlo aún más fácil porque JTAG TAP está diseñado para estar encadenado, por lo que no habría que mover el programador de un chip a otro. Además, para chips como los AVR que pueden usar niveles lógicos ordinarios para la programación, la conmutación podría ser más fácil.
Hay una utilidad de línea de comandos llamada PK2CMD para Windows y Linux que le permite programar sus PIC con PicKit (para que no tenga que usar MPLAB o alguna otra GUI). Puede usar su lenguaje de secuencias de comandos favorito para crear un pequeño programa que ejecute el comando PK2CMD correcto cuando presione una tecla. Esto haría que el lado de la computadora de su producción fuera menos laborioso (solo presionar 1 tecla por MCU), pero aún necesitaría una forma de conectar el PicKit a cada una de sus 3 MCU.
El servicio de programación de Microchip es muy barato la última vez que lo usé. Una vez que cubre el costo de configuración, es muy barato: centavos por chip para 12F, sin mirar los de gama alta. También pueden marcar/etiquetar, etc. Incluso si tiene la intención de cambiar el FW, tener un cargador de arranque preprogramado puede facilitarlo.
Para un programador de producción, me gusta Asix Presto : toneladas de opciones para cosas como la serialización, y muy rápido.
marcajes
Tomas O.
Kortuk