¿Cómo construir un programador PIC personalizado?

Quiero construir mi propio programador PIC, ¿alguien puede indicarme la dirección correcta? ¿Enlaces, tutoriales, libros, etc. serían muy útiles? El programador debe usar USB para comunicarse con la computadora, pero incluso la comunicación del puerto serie también funcionará.

Respuestas (2)

Sí, lo que dijo Wouter. Hay tres partes a considerar en el diseño de un programador PIC, el hardware, el firmware y el software. Hay una serie de opciones para hacer en cada uno, y la complejidad se puede compensar entre ellos de varias maneras, especialmente entre el firmware y el software.

Para hardware simple que solo se ocupa de un subconjunto de PIC, consulte mi programador LProg . Esto se optimizó a bajo costo mientras se usaba una interfaz de PC común de la manera estándar. Solo funciona con aquellos PIC que no requieren un alto voltaje en MCLR para ingresar al modo de programación, y todas sus señales son fijas de 0-3.3 V. Estas dos restricciones permitieron que el hardware fuera simple y, por lo tanto, el costo más bajo. El esquema está disponible en la parte inferior de esa página.

En el otro extremo están los programadores USBProg y USBProg2 . Una vez más, los esquemas están disponibles en la parte inferior de esas páginas. Estos tienen Vpp completamente variable hasta 15 V y las señales digitales hasta 6 V. También tienen más protección. Por ejemplo, las salidas digitales se pueden cortocircuitar entre 0 y 6 V indefinidamente sin dañar el programador. Por supuesto, toda esta complejidad conlleva un mayor costo de fabricación y piezas.

La compensación de software/firmware es principalmente una cuestión de complejidad de firmware versus velocidad. En teoría, podría crear un programador que solo tenga facilidades para que el software host establezca las líneas en niveles particulares. El protocolo de programación PIC es síncrono, por lo que todo el cronometraje se puede realizar mediante software. Esto haría que el firmware fuera fácil de escribir, pero el resultado sería un programador muy lento. Implementar los detalles de todos los diferentes algoritmos de programación que Microchip ha soñado a lo largo de los años requeriría más memoria de programa de la que está disponible en la mayoría de los PIC de control razonables. Los ingenieros de la División de Ofuscación de Programación de Microchip han estado muy ocupados. Como dijo Wouter, puede haber diferencias de algoritmos de programación entre los PIC que, de lo contrario, parecen ser muy similares. Debe leer atentamente las especificaciones de programación de cada PIC que pretenda admitir. No hay un algoritmo de programación, ni siquiera cerca.

El protocolo de host para mis programadores está vinculado desde todas las páginas que mencioné anteriormente. Este protocolo fue diseñado no solo para la tarea inmediata que tenía entre manos, sino para permitir cierta libertad en el diseño del programador. Como resultado, introduje cierta complejidad en el software host para que una variedad de programadores con diferentes capacidades nativas puedan ser compatibles sin problemas. El mismo programa host impulsa LProg, USBProg y algunos programadores más antiguos que mientras tanto hemos descontinuado. Lo hace no comprobando con qué modelo está hablando, sino consultando sus capacidades de forma general, tal como lo define el protocolo.

Hacer su propio programador de PIC como único para un PIC específico no es demasiado difícil. Tratar de hacer un programador PIC de propósito general es más difícil, probablemente mucho más difícil de lo que la mayoría de la gente piensa. Si termina haciendo el suyo propio, le sugiero que lo haga compatible con mi protocolo de host. Si observa el protocolo detenidamente, verá que gran parte de él es opcional. Si su programador usa mi protocolo de host , entonces tiene mi código de host existente disponible para probar y posiblemente incluso para una operación regular. Gran parte de mi código fuente está disponible en http://www.embedinc.com/picprg/sw.htm .

La interfaz de programación de cada chip PIC se describe en el documento "Especificación de programación" correspondiente, que puede encontrar en el sitio web de Microchip. Supongo que querrás limitarte a las FOTOS FLASH, pero incluso eso será una tarea enorme. Hay una serie de protocolos muy diferentes y pequeñas diferencias molestas dentro de grupos aparentemente relacionados. No creo que haya muchos libros o tutoriales, pero hay algunos diseños existentes que puedes estudiar.

El Microchip PICkit2 está ampliamente clonado. El diagrama del circuito, el firmware PIC y el software para PC se pueden encontrar en la web. Utiliza una interfaz USB y un chip PIC 18F2550. No estoy seguro del estado legal de los clones, pero el hecho de que estén por toda la web sugiere que Microchip no lo perseguirá con alquitrán y plumas.

Mi Wisp648 es menos complejo pero también más limitado. Utiliza una interfaz serial y un 16F648A. Una vez más, el circuito, el firmware y el software para PC se pueden encontrar fácilmente. Permito específicamente la clonación para uso privado.

La compañía de Olin tiene varios programadores de PIC, consulte http://www.embedinc.com/products/index.htm . IIRC los circuitos, el firmware y el software están disponibles, pero no estoy seguro. Es probable que Olin también responda :)