¿Cómo programo un PIC12?

8

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

Que va mal

EDITAR: agregué una imagen de mi circuito a bordo. Y aquí es donde puede encontrar la hoja de datos para el PIC12F675. Vaya a la página 4 para ver el pinout.

Tablero de circuitos

EDIT2: Acabo de mirar los chips (tonto, pero supuse que Mouser me enviaría lo que pedí), y noté que en realidad son PIC12C671. ¿Qué diferencia marcaría esto?

EDITACIÓ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 volver a verificar todo cuando recibí el paquete de Mouser.

Willem Ellis
fuente
2
¿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?
Willem Ellis
1
Probablemente no, pero no desea perder una semana en un condensador de desacoplamiento que puede agregar en un minuto.
2
El 12F675 es compatible con PICkit 2 y MPLAB.
Leon Heller
3
Vdd en el conector ICSP debe estar conectado a + 5V.
Leon Heller

Respuestas:

9

Un posible problema es que algunos PIC necesitan un ciclo de encendido para ingresar al 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 pcikit2 alimenta tu chip objetivo, proporcionará el ciclo de energía. Con el + 5V independiente que suministra, no puede hacer esto.


Después de cubrir los problemas más probables, podría optar por los improbables ... No se ría de mí, ¡estoy aprovechando mi propia experiencia!

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

En respuesta a su EDIT2: ROFL, revise mi punto 4. El PIC12C671 es un chip totalmente diferente, y el C significa que es un chip EPROM (programable por única vez), que no es compatible con pickit2.

Wouter van Ooijen
fuente
Intenté alimentarlo desde el PICKit mismo, y todavía no funciona.
Willem Ellis
:( ¡Gracias por la ayuda! Como dije, supuse que Mouser me había enviado las fichas correctas. Mi culpa por no volver a verificar todo antes de comenzar. ¡Gracias de nuevo!
Willem Ellis
1
Como les digo a mis alumnos: siéntanse libres de cometer un error por primera vez. Pero nunca más.
Wouter van Ooijen
4

El programador PICkit2 debería funcionar tal cual por su parte sin ningún encabezado. (La depuración es un asunto completamente diferente).

Además del consejo de condensador de desacoplamiento que se ofreció, considere esto: la mayoría (todos) de los dispositivos PIC necesitan una extracción de 10k de _MCLR a VDD. Intenta agregar eso y ver qué pasa.

Soporte PICkit2

Aquí hay un ejemplo de cableado del póster de configuración 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 del programador 1 a 5 deben estar conectados a su circuito. Su esquema no tiene la conexión VDD Target del pin 2. Intente conectar esto y permita que el PICkit2 alimente el circuito.

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

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

  • ¿Hay algún problema en la comunicación con PICKit? No, si este fuera el caso, obtendrí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. Todos los pines VDD y VSS deben estar conectados, también los del conector ICSP. Además, verifique su fuente de alimentación: ¿es suave?
  • ¿Hay algún 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?

fuente
Revisé todo esto. Agregado en 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é instalado correctamente en la aplicación
Willem Ellis
@WillemEllis Muy bien. Pensé en otra cosa: ¿conectó 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 ¿hay algún progreso en este?
lo siento por tomar tanto tiempo para contactarte. Lamentablemente no. Hablé con mi profesor y él tampoco podía entenderlo. Me he asegurado de que todo esté conectado como en el circuito con PGD y PGC yendo a los pines correctos. Aún sin suerte.
Willem Ellis
Si está seguro de que sus conexiones son buenas, pruebe con otro dispositivo u otro PICkit2.
Adam Lawrence