↑ Return to Projets

Programmateur pour PIC24

Présentation du projet

Le but de ce projet est de réaliser un programmateur pour PIC24 et plus précisément pour le circuit pic24fj64gb002 en appliquant le document de Microchip PIC24FJ64GA1/GB0 Families Flash Programming Specification.

Cela peut être vu comme un exercice de style assez ambitieux et inutile au regard de la disponibilité de la famille de programmateurs PICkit, mais cette réalisation a été pour les auteurs ô combien instructive et enrichissante.

 

Figure 1 – Schéma de principe du programmateur

Principe du programmateur pour PIC24

 Comme vous pouvez le voir ci-dessus sur le schéma de principe, ce programmateur pour PIC24 est basé sur la conversion de commandes échangées avec le protocole UART en commandes ICSP™ via un PIC16 du type pic16f628a dont le programme au format INHEX est disponible dans l’espace de téléchargement.

Important!

Toute la famille PIC24FJ64GA1/GB0 est supportée par ce programmateur pourvu que le support du circuit cible soit adapté.

Vous trouverez dans ce document la description de l’ensemble de la famille des PIC24 avec en particulier les types de boitiers pour chaque circuit de la famille.

Ces commandes UART peuvent être envoyées depuis un ordinateur PC ou un simple terminal série dans le cas d’un programme à flasher relativement court comme le 1er Hello World !. La vitesse de communication sur la liaison série peut être de 1200, 2400, 4800, 9600 et 19200 bauds et pour chacune d’entre elles en full-duplex.

Le mode de programmation retenu est le premier mode; à savoir : In-Circuit Serial Programming™ (ICSP™). Celui-ci est moins rapide que le second mode Enhanced In-Circuit Serial Programming (Enhanced ICSP) qui nécessite impérativement la présence dans le PIC24 d’un programme appelé Programming Executive et qui nous confronterait au paradoxe de l’œuf et la poule.

La liste des opérations du protocole ICSP™ implémentées dans le PIC16 et pilotées par les commandes UART pour programmer et lire le PIC24 est présentée dans le tableau suivant :

 

Tableau 1 – Liste des opérations ICSP™

1 Entrée dans le mode In-Circuit Serial Programming™ (ICSP™)
2 Lecture des registres Application ID Words (type et version du circuit cible)
3 Effacement complet du circuit cible (mémoire programme et registres de configuration)
4 Effacement d’une page de 512 instructions de la mémoire programme à partir d’une adresse donnée
5 Lecture et écriture des registres de configuration (Configuration Words)
6 Écriture de 16, 32, 48 ou 64 instructions dans la mémoire programme à partir d’une adresse donnée
7 Lecture de 16 instructions consécutives de la mémoire programme à partir d’une adresse donnée
8 Sortie du mode ICSP
 

 

Les différents points abordés au sein des articles sont les suivants :