¿Cómo programo un PIC12?

Tengo un PIC12F675 que necesito programar. Estoy usando un Pickit 2 y el software Pickit 2. Supuestamente, debería poder programarlo usando este circuito , pero el software Pickit 2 no detecta el chip en absoluto.

circuito

¿Qué está yendo mal?

EDITAR: He agregado una imagen de mi circuito protoboard. Y aquí es donde puede encontrar la hoja de datos del PIC12F675. Pase a la página 4 para el pinout.

Tablero de circuitos

EDIT2: en realidad miré los chips (tonto, pero asumí que el mouser me enviaría lo que pedí), y noté que en realidad son PIC12C671. ¿Cuánta diferencia haría esto?

EDICIÓN final: ¡Guau! ¡Gracias a todos los que me ayudaron con esto! No esperaba este tipo de respuesta. Terminó siendo un pequeño problema estúpido como pensé que sería. Fue mi culpa por no verificar todo dos veces cuando recibí el paquete de Mouser.

¿Está seguro de que su circuito es correcto, está alimentado, tiene condensadores de desacoplamiento, está conectado a su computadora?
Tengo 5 voltios y está conectado a mi computadora. Parece que pasé por alto los condensadores de desacoplamiento. ¿Tendría eso un gran impacto en el circuito?
Probablemente no, pero no querrá perder una semana en un condensador de desacoplamiento que puede agregar en un minuto.
De acuerdo, los agregué. Pickit dice Parte no compatible (ID = 0500)
El 12F675 es compatible con PICkit 2 y MPLAB.
ES compatible, o no es?
es !
Vdd en el conector ICSP debe conectarse a +5V.
Publicar una imagen del circuito podría ayudar ...
@Leon: no, en este caso el PIC fue alimentado desde otra fuente. Willem también intentó encender el PIC desde el pickit2, pero fue en vano.
Su condensador de desacoplamiento debe colocarse directamente en los pines PIC, no en el riel de alimentación debido a la inductancia de los cables. Puede que este no sea tu problema, pero mover esas mayúsculas no cuesta nada...

Respuestas (3)

Un posible problema es que algunos PIC necesitan un ciclo de encendido para entrar en el modo de programación. El 12F675 en particular necesita esto cuando la palabra de configuración en su aplicación configura el pin MCLR como GPIO.

Cuando el pkikit2 enciende su chip de destino, proporcionará el ciclo de energía. Con los +5V independientes que suministra, no puede hacer esto.


Después de cubrir los problemas más probables, puede optar por los improbables... ¡No se rían de mí, me baso en mi propia experiencia!

  • ¿podrías tener dos pickit2 conectados? (Sí, una vez hice esto y me quedé estupefacto de que el que seleccionó la aplicación pickit2 no era al que estaba conectado el PIC. También perdí una hora cuando tenía dos cables de PIC de destino en paralelo. Eso da resultados muy extraños cuando ambos le dieron su ID de chip al programador).
  • ¿El pickit2 que está usando está conectado a la PC que está usando? (Hago clases de PIC y los estudiantes pueden ser bastante creativos en la computadora portátil de quién se conecta al PIC de quién)
  • ¿Son tanto el pickit2 como el chip del lado derecho redondo? La imagen del pickit2 se ve desde arriba (donde están el botón y los LED).
  • ¿El chip es realmente un 12F675? (Una vez intenté durante todo el día hacer funcionar el convertidor A/D de un 12F629 - para los que no son PIC-guru: ese es el hermano más barato del 12F675, es más barato porque no tiene un convertidor A/D ).
  • ¿Los cables son exactamente como los muestra, no están mezclados? ¿Y no se rompen por accidente? Si está utilizando una placa de prueba sin soldadura: ¿todavía hace todos los contactos?
  • ¿El firmware del pickit2 es una versión que coincide con el lado de su PC? tal vez vuelva a cargar el firmware para estar 100% seguro.

En respuesta a su EDIT2: ROFL, revise mi viñeta 4. El PIC12C671 es un chip totalmente diferente, y la C significa que es un chip EPROM (programable una sola vez), que no es compatible con pickit2.

Intenté encenderlo desde el propio PICKit y sigue sin funcionar.
:( ¡Gracias por la ayuda! Como dije, supuse que Mouser me había enviado los chips correctos. Mi culpa fue por no verificar todo dos veces antes de comenzar. ¡Gracias de nuevo!
Como les digo a mis alumnos: siéntanse libres de cometer un error por primera vez. Pero nunca más.

El programador PICkit2 debería funcionar tal cual para su parte sin encabezados. (La depuración es otra cuestión completamente diferente).

Además del consejo del condensador de desacoplamiento que se ofreció, considere esto: la mayoría (todos) los dispositivos PIC necesitan un pullup de 10k de _MCLR a VDD. Intente agregar eso y vea qué sucede.

Compatibilidad con PICkit2

Aquí hay un ejemplo de cableado del póster de instalación de PICkit3. (Los pinouts de PICkit2 y PICkit3 son idénticos, por lo que la información es 100 % relevante).

diagrama ISCP

Puede ver que los pines 1 a 5 del programador deben conectarse a su circuito. A su esquema le falta la conexión VDD Target del pin 2. Intente conectar esto y permita que el PICkit2 alimente el circuito.

La falta de una resistencia en MCLR no impedirá que PICkit programe el dispositivo. Sin embargo, podría detener la ejecución del programa.
Agregué el menú desplegable y me aseguré de tener el dispositivo correcto seleccionado en MPLAB. Todavía no hay dados.
@LeonHeller Basé mi declaración sobre _MCLR en el póster de PICkit3, que muestra el pull-up de _MCLR bajo la forma "correcta" de conectar las cosas.
@Madmanguruman Desearía no tenerlo conectado exactamente así, pero verifiqué con la hoja de datos y todas las conexiones son correctas.

PICKit2 es compatible con su dispositivo ( fuente ). Esto significa que hay algo mal con su configuración. Hay algunas cosas que puedes comprobar:

  • ¿Hay algún problema en la comunicación con PICKit? No, si este fuera el caso, recibiría un error de que no se pudo encontrar la herramienta ICSP.
  • ¿Hay algún problema con el circuito con el chip? Posiblemente _ Debe verificar su circuito, agregar condensadores de desacoplamiento si aún no lo ha hecho. Se deben conectar todos los pines VDD y VSS, también los del conector ICSP. Además, verifique su fuente de alimentación: ¿es suave?
  • ¿Hay un problema de software? Lo más probable , diría yo. ¿Ha seleccionado el chip correcto en MPLAB? ¿Puedes programar otros chips con la misma configuración?
Revisé todo esto. Se agregaron las tapas de desacoplamiento y la resistencia pull-up MCLR. Estoy usando el software PICKit2 v2.61 para programar el chip, en lugar de MPLAB. Aunque probé lo que dijiste en MPLAB. Recibo este error cuando intento conectarme al chip. Verifique que un PIC12F675 esté correctamente instalado en la aplicación
@WillemEllis Muy bien. Pensé en otra cosa: ¿conectaste todos los pines Vdd y Vss del chip? También verifique si PGC está conectado a PGC y no a PGD; esto me causó algunos problemas últimamente.
@WillemEllis ¿algún progreso en este caso?
disculpa por tardar tanto en responderte. Lamentablemente no. Hablé con mi profesor y él tampoco pudo entenderlo. Me aseguré de que todo esté conectado como en el circuito con PGD y PGC yendo a los pines correctos. Todavía no hay suerte.
Si está seguro de que sus conexiones son buenas, pruebe con otro dispositivo u otro PICkit2.
@WillemEllis, esa es una buena idea de Madmanguruman. Para asegurarse de que el chip/programador no esté roto. Después de eso, me temo que tampoco tengo idea. Tal vez una imagen de la configuración para verificar el esquema y demás, pero no aparece nada brillante.
@WillemEllis no importa, vea la edición de Wouter van Ooijen en su respuesta. ¡Tu chip no es reprogramable!
El PICkit 2 no es compatible de forma nativa con su dispositivo. Sin embargo, este maravilloso PICkit- (PICkitminus) se ha actualizado para admitir todo tipo de dispositivos. kair.us/projects/pickitminus