Table des matières:

Comprendre ICSP pour les microcontrôleurs PIC : 4 étapes (avec photos)
Comprendre ICSP pour les microcontrôleurs PIC : 4 étapes (avec photos)

Vidéo: Comprendre ICSP pour les microcontrôleurs PIC : 4 étapes (avec photos)

Vidéo: Comprendre ICSP pour les microcontrôleurs PIC : 4 étapes (avec photos)
Vidéo: Microcontrôleur : Comment ça marche ? - SILIS Electronique - 2024, Novembre
Anonim
Comprendre ICSP pour les microcontrôleurs PIC
Comprendre ICSP pour les microcontrôleurs PIC

La programmation de microcontrôleurs n'est pas difficile. Construire un programmeur fait un excellent premier projet électronique. Le but de cette instructable est d'expliquer la méthode simple de « programmation série en circuit » utilisée avec les PIC de Microchip.

Étape 1: Pourquoi ICSP ?

Pourquoi ICSP ?
Pourquoi ICSP ?

La programmation d'une grosse puce DIP (trou traversant) est facile. Insérez-le dans un programmeur à socket, gravez-le et revenez au circuit d'application. Testez et répétez.

Les choses deviennent plus difficiles avec des puces plus petites (montage en surface). Il n'y a pas de sockets standard pour les packages QFN, SSOP, QFP ou même les gros packages SOIC.300. Il existe des clips très coûteux (100 $) qui peuvent s'attacher et programmer ces puces. Un clip différent est nécessaire pour chaque type de puce et nombre de broches que vous utilisez. Il existe une alternative. Son appelé ICSP. ICSP signifie "programmeur série en circuit (ing?)". C'est une façon de programmer un PIC alors qu'il est encore attaché au circuit d'application. C'est vrai, plus d'échange de puces. Pourquoi ICSP ? 1. Il n'y a pas de sockets de programmation pour les petites puces. Les clips sont chers. 2. C'est pénible de déplacer les puces dans et hors du programmeur pendant le développement. Impossible pour les pièces montées en surface.

Étape 2: Qu'est-ce que l'ICSP ?

Qu'est-ce que l'ICSP ?
Qu'est-ce que l'ICSP ?
Qu'est-ce que l'ICSP ?
Qu'est-ce que l'ICSP ?
Qu'est-ce que l'ICSP ?
Qu'est-ce que l'ICSP ?
Qu'est-ce que l'ICSP ?
Qu'est-ce que l'ICSP ?

Cinq connexions sont nécessaires pour programmer un PIC lorsqu'il est connecté à un circuit d'application. J'ajoute un en-tête à 5 broches à mes circuits imprimés pour rendre cette connexion rapide et facile. Les bases de la programmation PIC. Cinq connexions sont nécessaires pour programmer un PIC. Alimentation, masse, tension de programmation, horloge et données.+ (Vdd)/-(Vss) Ce sont les connexions d'alimentation et de masse (Vdd, Vss). Assez standard. Si vous utilisez un programmeur avec des niveaux de tension « réels » (PAS un JDM2 !), votre application peut fonctionner à partir de sa propre alimentation lorsqu'elle est programmée, éliminant ces connexions. Vpp Il s'agit de la tension de programmation. Les PIC entrent en mode de programmation lorsque ~ 13 volts sont placés sur la broche MCLR/Vpp (généralement la broche 1 sur les PIC modernes, plus d'informations ci-dessous). Horloge/Données ou PGC/PGD L'horloge et les lignes de données sont utilisées pour écrire et lire le PIC micrologiciel. Ce sont généralement les mêmes broches que PORTB6 et PORTB7. Exercice: Identifiez les points de connexion ICSP sur les PIC dans les images ci-dessous. Si le PIC convient, portez-le. Je reçois beaucoup de questions sur ma conception JDM2 sur instructables. Le plus fréquent est " Est-ce qu'il programmera le PIC X ?'"' - voici comment vous pouvez le savoir: 1) Regardez la fiche technique. Trouvez le « Pin Diagram » qui ressemble à l'image ci-dessous.2) Identifiez l'emplacement des broches qui doivent être connectées pour la programmation (Vpp, Vdd, Vss, Data et Clock).3) Regardez la connexion de la prise sur le programmeur. Pouvez-vous faire correspondre les broches requises avec une prise sur le programmeur ?

Étape 3: Comment ICSP ?

Comment ICSP ?
Comment ICSP ?
Comment ICSP ?
Comment ICSP ?
Comment ICSP ?
Comment ICSP ?
Comment ICSP ?
Comment ICSP ?

Selon votre conception, vous pouvez maintenant effectuer toutes les connexions requises et programmer votre PIC. Il y a quelques captures que vous devriez connaître. La conception pour ICSP est importante. Microchip fournit une belle note d'application PDF sur la conception pour ICSP. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011744Voici quelques conseils et exemples de conceptions ICSP de mes précédents instructables. Astuce #1, Niveau de menace: ImportantNe connectez rien d'autre à l'HORLOGE et les broches DATA (généralement RB6 & RB7, PGC & PGD). Ne le fais pas. Il y a des situations où des types d'ingénierie très intelligents s'en tirent, mais ne le font pas. Les composants attachés aux broches fausseront l'horloge et les signaux de données, entraînant une programmation imprévisible. De plus, si vous souhaitez utiliser un débogueur série en circuit, vous ne pouvez pas. Ne le faites pas. Astuce #2 Niveau de menace: Explosif Utilisez toujours une diode entre la tension de programmation et la tension du système. Si vous utilisez MCLR (master clear) sur un PIC, vous devez fournir une tension sur la broche MCLR via une résistance 10Kish. C'est également la broche à laquelle vous appliquerez ~13 volts pour entrer en mode de programmation. J'ai mis une diode 1n4148 (équivalente) entre la résistance et la broche MCLR/Vpp (comme indiqué dans le schéma et le rendu ci-dessous). Cela maintient la tension de programmation sur la broche Vpp, empêchant la destruction d'autres composants de votre carte. Astuce n°3 Niveau de menace: (re)fatiguéLa programmation basse tension vous retient, mec. Je n'ai jamais réussi avec LVP. Je ne l'ai jamais vu fonctionner (constamment) de mes propres yeux. Juste mordez la balle et dépensez 2,50 $ pour construire un programmeur JDM2.

Étape 4: Programmeurs ICSP

Programmeurs ICSP
Programmeurs ICSP
Programmeurs ICSP
Programmeurs ICSP

ICSP ne nécessite pas de protocole de programmation différent. Un programmeur basé sur socket produit déjà la signalisation requise, mais l'envoie à la socket plutôt qu'à travers des fils. La plupart des programmeurs de socket peuvent être utilisés comme ICSP en reliant les fils du socket au circuit d'application. Par exemple, le programmeur JDM2 d'origine (ici: https://www.jdm.homepage.dk/newpic.htm) peut être utilisé pour faire la programmation ICSP en amenant les 5 signaux requis à un en-tête. Cela peut être vu dans le programmeur ici: https://www.belza.cz/digital/jdm.htm. Pour garder les choses à portée de main, j'ai refait cette conception dans Eagle Cad et je l'ai attaché à cette instructable. Surveillez l'orientation du transistor, une des empreintes est peut-être incorrecte (je l'ai fait il y a plus d'un an, je ne m'en souviens plus). De même, mon programmeur JDM2 mis à jour (ici: https://www.instructables.com/id/EN28KZDDYVEP286GRI/) peut être utilisé pour ICSP en collant des fils dans les prises DIP et en les connectant au PIC cible. ***** Les JDM2 utilisent des tensions géniales… connectez-le au circuit SANS alimentation externe (ou même à la terre) connecté au circuit d'application. Retirez les connexions ICSP avant de mettre sous tension. Ne pas le faire n'est pas destructeur, mais entraînera un échec de la programmation ******* Une autre option est un programmeur ICD (semi-) approprié. L'ICD vous permet de contrôler l'exécution du firmware sur votre PIC en définissant des points d'arrêt dans le code ou en lisant les valeurs de mémoire et de port. Un ICD peut également animer l'exécution de code, alimenter le circuit applicatif et programmer le PIC. Il fait tout cela via la même connexion ICSP à 5 broches dont nous avons parlé. Plusieurs clones ICSP que vous pouvez faire vous-même peuvent être vus ici: https://www.icd2clone.com/wiki/Main_Page. J'ai construit le PiCS (rév B) il y a quelques mois et je l'adore.

Conseillé: