Comment programmer un PIC12?


8

J'ai un PIC12F675 que je dois programmer. J'utilise un Pickit 2 et le logiciel Pickit 2. Soi-disant, je devrais pouvoir le programmer en utilisant ce circuit , mais le logiciel Pickit 2 ne détecte pas du tout la puce.

circuit

Qu'est-ce qui ne va pas?

EDIT: J'ai ajouté une image de mon circuit à bord. Et voici où vous pouvez trouver la fiche technique du PIC12F675. Passez à la page 4 pour le brochage.

Planche à pain

EDIT2: J'ai juste regardé les puces (stupides, mais je suppose que le mouser m'enverrait ce que j'ai commandé), et j'ai remarqué qu'il s'agissait en fait de PIC12C671. Quelle différence cela ferait-il?

EDIT final: Wow! Merci à tous ceux qui m'ont aidé avec ça! Je ne m'attendais pas à ce genre de réponse. Cela a fini par être un petit problème stupide comme je le pensais. C'était ma faute si je n'avais pas tout vérifié lorsque j'ai reçu le colis de Mouser.


2
Êtes-vous sûr que votre circuit est correct, est alimenté, dispose de condensateurs de découplage, est connecté à votre ordinateur?

J'ai 5 volts, et il est connecté à mon ordinateur. On dirait que j'ai négligé les condensateurs de découplage. Cela aurait-il un impact aussi important sur le circuit?
Willem Ellis

1
Probablement pas, mais vous ne voulez pas perdre une semaine pour un condensateur de découplage que vous pouvez ajouter en une minute.

2
Le 12F675 est pris en charge par PICkit 2 et MPLAB.
Leon Heller

3
Vdd sur le connecteur ICSP doit être connecté à + 5V.
Leon Heller

Réponses:


9

Un problème possible est que certains PIC ont besoin d'un cycle d'alimentation pour passer en mode de programmation. Le 12F675 en particulier en a besoin lorsque le mot de configuration de votre application configure la broche MCLR en tant que GPIO.

Lorsque le pcikit2 alimente votre puce cible, il fournira le cycle d'alimentation. Avec le + 5V indépendant que vous fournissez, il ne peut pas faire cela.


Après avoir couvert les problèmes les plus probables, vous pourriez opter pour les improbables ... Ne vous moquez pas de moi, je m'appuie sur ma propre expérience!

  • pourriez-vous avoir deux pickit2 connectés? (Oui, j'ai fait une fois cela et j'ai été sidéré que celle à laquelle l'application pickit2 sélectionnée n'était pas celle à laquelle le PIC était connecté. J'ai également perdu une fois une heure lorsque j'avais deux fils PIC cibles en parallèle. ils ont tous deux mis leur identifiant de puce au programmeur.)
  • le pickit2 que vous utilisez est-il connecté au PC que vous utilisez? (Je fais des cours PIC et les étudiants peuvent devenir assez créatifs pour savoir qui connecte l'ordinateur portable à qui est PIC)
  • le pickit2 et la puce sont-ils tous les deux du côté droit? Le pc pickit2 est comme vu de dessus (où se trouvent le bouton et les LED).
  • la puce est-elle vraiment un 12F675? (J'ai essayé une fois toute la journée de faire fonctionner le convertisseur A / N d'un 12F629 - pour les non-gourous du PIC: c'est le frère le moins cher du 12F675, il est moins cher car il n'a pas de convertisseur A / D ).
  • Les fils sont-ils exactement comme vous les montrez, pas mélangés? Et ne sont-ils pas par accident brisés? Si vous utilisez une planche à pain sans soudure: fait-elle toujours tous les contacts?
  • Le firmware du pickit2 est-il une version qui correspond à votre PC? peut-être recharger le firmware pour être sûr à 100%.

En réponse à votre EDIT2: ROFL, consultez ma puce 4. Le PIC12C671 est une puce totalement différente, et le C signifie qu'il s'agit d'une puce EPROM (programmable une fois), qui n'est pas prise en charge par pickit2.


J'ai essayé de l'alimenter à partir du PICKit lui-même, et cela ne fonctionne toujours pas.
Willem Ellis

:( Merci pour l'aide! Comme je l'ai dit, j'ai supposé que Mouser m'avait envoyé les bons jetons. Ma faute pour ne pas avoir tout vérifié avant de commencer. Merci encore!
Willem Ellis

1
Comme je le dis à mes élèves: n'hésitez pas à vous tromper pour la première fois. Mais plus jamais.
Wouter van Ooijen

4

Le programmeur PICkit2 devrait fonctionner tel quel pour votre part sans en-têtes. (Le débogage est une tout autre affaire.)

En plus des conseils sur le condensateur de découplage qui ont été proposés, considérez ceci: la plupart (tous) les appareils PIC ont besoin d'un pullup de 10k de _MCLR à VDD. Essayez d'ajouter cela et voyez ce qui se passe.

Prise en charge de PICkit2

Voici un exemple de câblage de l'affiche de configuration PICkit3. (Les brochages du PICkit2 et du PICkit3 sont identiques, donc les informations sont pertinentes à 100%.)

Diagramme ISCP

Vous pouvez voir que les broches 1 à 5 du programmateur doivent être connectées à votre circuit. Votre schéma n'a pas la connexion cible VDD de la broche 2. Essayez de la connecter et de permettre au PICkit2 d'alimenter le circuit.


3
L'absence de résistance sur MCLR n'empêchera pas PICkit de programmer l'appareil. Cependant, cela pourrait empêcher l'exécution du programme.
Leon Heller

J'ai ajouté le pull-up et je me suis assuré que le bon appareil était sélectionné dans MPLAB. Toujours pas de dés.
Willem Ellis

@LeonHeller J'ai basé ma déclaration sur _MCLR sur l'affiche PICkit3, qui montre le pull-up _MCLR sous la manière "correcte" de câbler les choses.
Adam Lawrence

@Madmanguruman Je souhaite ne pas l'avoir connecté exactement comme ça, mais j'ai vérifié avec la fiche technique et toutes les connexions sont correctes.
Willem Ellis

2

PICKit2 prend en charge votre appareil ( source ). Cela signifie qu'il y a un problème avec votre configuration. Vous pouvez vérifier certaines choses:

  • Y a-t-il un problème dans la communication avec PICKit? Non, si tel était le cas, vous obtiendriez une erreur indiquant que l'outil ICSP est introuvable.
  • Y a-t-il un problème avec le circuit avec la puce? C'est possible . Vous devriez vérifier votre circuit, ajouter des condensateurs de découplage si ce n'est pas encore fait. Toutes les broches VDD et VSS doivent être connectées, ainsi que celles du connecteur ICSP. Vérifiez également votre alimentation: est-elle fluide?
  • Y a-t-il un problème logiciel? Je dirais très probablement . Avez-vous sélectionné la bonne puce dans MPLAB? Pouvez-vous programmer d'autres puces avec la même configuration?

J'ai vérifié tout cela. Ajouté dans les bouchons de découplage et la résistance de pull-up MCLR. J'utilise le logiciel PICKit2 v2.61 pour programmer la puce, au lieu de MPLAB. Bien que j'aie essayé ce que vous avez dit dans MPLAB. J'obtiens cette erreur lorsque j'essaie de me connecter à la puce. Veuillez vérifier qu'un PIC12F675 est correctement installé dans l'application
Willem Ellis

@WillemEllis Très bien. J'ai pensé à autre chose: avez-vous connecté toutes les broches Vdd et Vss de la puce? Vérifiez également si PGC est connecté à PGC et non à PGD - cela m'a causé des problèmes récemment.

@WillemEllis des progrès sur celui-ci?

désolé d'avoir mis si longtemps à vous répondre. Malheureusement non. J'ai parlé à mon professeur et il n'a pas pu le comprendre non plus. Je me suis assuré que tout est connecté comme dans le circuit avec PGD et PGC allant aux broches correctes. Toujours pas de chance.
Willem Ellis

Si vous êtes certain que vos connexions sont bonnes, essayez un autre appareil ou un autre PICkit2.
Adam Lawrence
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.