programación PIC a través de FPGA

9

Me gustaría saber si hay una manera de programar un PIC por primera vez (escriba en Flash) a través de una tarjeta FPGA.

El PIC ya está soldado al FPGA y no puedo eliminarlo. No existe ningún gestor de arranque en el PIC. Por lo tanto, necesito programarlo en modo USART / SPI / I2C con un cargador de arranque para que pueda recibir datos del FPGA.

Sé que normalmente tengo que desoldarlo, conectarlo a un programador de hardware como PICKit y programarlo con un software en la computadora como MPLAB, pero no puedo pagarlo.

Puedo generar el gestor de arranque con MPLAB, que es un archivo .hex, pero ¿cómo puedo transferirlo al FPGA y luego al PIC a través de los pines del FPGA?

El PIC utilizado es Microchip PIC12F1822.

    
pregunta Myst

2 respuestas

10

No, no es necesario, de hecho no puede usar SPI, UART o I 2 C para programar el PIC. La forma única de obtener un nuevo programa en un PIC que no tenga un código especial cargado para ese propósito (un cargador de arranque) es usar la interfaz de programación de hardware externo. Eléctricamente, esto significa conectarse a Vss, MCLR, PGC y PGD. Puede ser útil que el programador también esté conectado a Vdd, pero no es necesario para este chip siempre que se conozca el nivel de Vdd y el programador se ajuste en consecuencia.

La interfaz de hardware de bajo nivel es bastante simple. PGD es la línea de datos, que se muestrea mediante el PIC en el borde descendente de PGC (la línea del reloj). Para poner el PIC en el modo de programación en primer lugar, una clave especial de 32 bits está sincronizada con respecto a los bordes específicos en MCLR (aunque vea la nota a continuación sobre la programación de alto voltaje).

El protocolo de nivel superior se vuelve más complicado. La mayoría de las cosas se realizan con comandos de 6 bits, algunos de los cuales son seguidos por palabras de datos de 14 bits. Tienes que leer cuidadosamente la especificación de programación. Tenga en cuenta que la especificación de programación es un documento separado de la hoja de datos. Vaya a la página del producto para su PIC particular en el sitio web de Microchip y encontrará un enlace a la especificación de programación en la sección de documentos.

Añadido sobre la programación de alto voltaje

Este tipo de PIC tiene dos formas de ingresar al modo de programación, alto voltaje (HVP) y bajo voltaje (LVP). El método de alto voltaje requiere aumentar el MCLR entre 8 y 9 voltios y mantenerlo allí durante la programación. Este método siempre funciona, independientemente de los posibles datos programados en el PIC.

El método de bajo voltaje para ingresar al modo de programación comienza con MCLR alto, luego bajo y luego sincronizando una secuencia especial de teclas de 32 bits usando PGC y PGD normalmente. La parte ingresará en el modo de programación en la secuencia de teclas correcta y permanecerá en el modo de programación mientras MCLR se mantenga bajo.

El método de baja tensión se puede desactivar mediante uno de los bits de configuración. Sin embargo, el estado borrado del bit de configuración permite la programación de bajo voltaje, se envía de fábrica de esa manera, y este bit de configuración solo se puede configurar para deshabilitar el LVP si la programación se ingresó con el método de alto voltaje. Por lo tanto, para que no se habilite LVP, todo lo siguiente debe ser verdadero:

  1. El PIC se programó por última vez con un programador compatible con HVP, y se usó el modo de entrada del programa HVP.

  2. El archivo HEX programado en el PIC establece deliberadamente el bit LVP en la palabra de configuración 2 en el estado no borrado.

Dado que deshabilitar LVP requiere una acción deliberada y el programador correcto, es probable que todavía esté habilitado. Si fue deshabilitado deliberadamente por alguna extraña razón, entonces debe suministrar 8-9 V en MCLR para que el PIC entre en modo de programación al menos el tiempo suficiente para realizar un borrado masivo (que vuelve a habilitar el LVP).

    
respondido por el Olin Lathrop
3

La programación de un PIC requiere un alto voltaje. Sí, es posible cambiar un PIC a "LVP", o modo de programación de bajo voltaje, pero necesita un programador de alto voltaje para hacer esto.

Si su PIC ya se ha puesto en modo LVP, entonces sí, puede programar fácilmente el PIC desde el FPGA. Todas las hojas de datos contienen las formas de onda de programación necesarias para programar el chip, por lo que sería un caso de construcción de su propio dispositivo programador PIC en el FPGA.

Sin embargo, si el PIC no se ha puesto en modo LVP, deberá generar un alto voltaje (generalmente 10 V) y aplicarlo al pin MCLR en el momento adecuado para ingresar a la programación. modo. Si no tiene este tipo de hardware en su placa, entonces necesitará un hardware adicional controlado por la FPGA para determinar cuándo se activará.

La mayoría de los programadores de PIC incluyen un regulador de aumento pequeño (doblador de voltaje) para tomar los 5V proporcionados hasta 10V utilizando un PIC incorporado para administrar la regulación de voltaje. A menudo usan PWM del PIC y una entrada de ADC en el PIC como un simple regulador de impulso.

Debería echar un vistazo a los esquemas de PICkit2 disponibles públicamente.

    
respondido por el Majenko

Lea otras preguntas en las etiquetas