Conditions
initiales avant d'utiliser le programmateur :
Vous
avez téléchargé
puis installé avec succès
sur votre PC le logiciel .
Le
microcontrôleur PIC18F2550-I/SP
du programmateur est programmé.
Voir chapitre [
Programmation
18F2550 ]
pour
de plus amples détails.
Vous
avez effectué les tests de bon
fonctionnement de votre programmateur
USB décrits à la page
[
Logiciel
Microchip ]
du chapitre Troubleshoot.
Si
ces quelques conditions sont remplies,
alors nous pouvons passer à la
phase de programmation. Pour
ce faire, plusieurs
exemples
de programmation de microcontrôleurs
et d'EEPROM
sont proposés ci-après
ainsi que les recommandations pour l'utilisation
du connecteur
ICSP
sur
une cible externe.
Programmation
d'un PIC16F628A :
Déconnectez le cordon USB du PC afin de mettre le programmateur
hors
tension. Insérez votre
microcontrôleur 16F628A
à programmer dans le support correspondant (attention au sens
!).

 Microcontrôleur
PIC16F628A installé sur son
support tulipe 18 broches
Assurez-vous
d'avoir SW1
placé sur la position
PIC comme
ci-dessous :

Mettez votre programmateur à nouveau sous tension en
connectant le cordon USB à votre PC. Attention,
n'utilisez pas de HUB USB pour connecter
le programmateur à votre PC.
La led verte
ON
doit s'illuminer.

Lancez le logiciel
en
cliquant sur l'icône
.
Dès
cet instant le programmateur communique
avec le PC en faisant clignoter rapidement
les leds BUSY
et TARGET.

La
fenêtre principale du logiciel
apparaît
avec comme message
" found
and connected" attestant de
la bonne reconnaissance de ce dernier.
La
seconde ligne indique "Pic Device
Found" signifiant qu'un microcontrôleur
a été détecté
sur la platine du programmateur, ici
notre PIC16F628A. La
référence est également
indiquée à la ligne Device
: PIC16F628A
comme ci-dessous :

Cliquez dans
le menu sur File
puis sélectionnez
Import HEX afin de
choisir le fichier HEX
à programmer au sein de
microcontrôleur 16F628A. Dans le cadre de cet exemple, nous allons programmer
au sein du 16F628A le fichier nommé
TEST1.HEX
présent dans le répertoire
Mes Documents
du disque
dur.

Validez votre choix en cliquant sur le bouton Ouvrir.
Vous obtenez le
listing hexadécimal et
Ascii
de votre programme HEX à condition
d'avoir sélectionné "Byte
ASCII"
de "Program
Memory"
et de "EEPROM
Data"
dans la fenêtre principale du
logiciel comme ci-dessous :

Assurez-vous
que la valeur "Configuration"
des fusibles est identique
à celle préconisée
par l'auteur du programme.
Si elle diffère, cliquez dans
le menu sur
"Tools"
,
sélectionnez "Display
Unimplemented Config Bits"
puis choisir "As
"0" bit Value"
ou "As
"1" bit Value"
afin d'obtenir la
même valeur de configuration
préconisée par
l'auteur. Dans notre exemple, la valeur
de Configuration est de 3F65.

Il n'y a pas de valeurs
de configuration standard ! Elle
dépend par exemple de la fréquence du quartz utilisée avec
votre microcontrôleur mais aussi des fonctions hardwares dont a eu besoin le
développeur. Une seule règle à retenir, respectez à la lettre la
configuration donnée par l'auteur
du programme... Différent
et incompatible
avec ce programmateur USB ,
le logiciel [
WinPic800
] que
certains utilisent avec le
[ Programmateur
RS232
]
vous
permet également de visualiser
la
même valeur de configuration
que précédemment lorsque
l'on charge dans les buffers le fichier
TEST1.HEX comme ci-dessous :

Exemple
d'illustration avec le logiciel WinPic si l'on
charge dans sa mémoire le fichier
TEST1.HEX. Attention, le logiciel
WinPic est
incompatible
avec ce programmateur USB.
Sachant
que la famille 16Fxxx
nécessite une tension d'alimentation
minimale de 4,5V
durant la procédure de programmation,
vous devez cocher l'option "Use
VPP First Programm Entry"
du menu "Tools"
comme ci-dessous :

Cliquez ensuite sur le bouton
Write
afin de lancer la procédure
de programmation,
suivie automatiquement par une vérification
des
données programmées. Attention,
la vérification n'a lieu qu'à
condition d'avoir coché l'option
"Verify
on Write"
dans le menu "Programmer".
Les
leds Target (jaune) et Busy (rouge)
doivent clignoter.

Programmation
du PIC en cours...
Vérification
des données programmées...
 Programmation
terminée avec succès
Vous pouvez désormais
débrancher le cordon USB de
votre programmateur. Retirez de son
support votre microcontrôleur
désormais programmé et opérationnel !
Programmation
d'un PIC18F4550 :
Déconnectez le cordon USB du PC afin de mettre le programmateur
USB hors
tension. Insérez votre
microcontrôleur 18F4550
à programmer dans le support correspondant (attention au sens
!).

Microcontrôleur
PIC18F4550 installé sur son
support tulipe 40 broches
Assurez-vous
d'avoir SW1
placé sur la position
PIC comme
ci-dessous :

Mettez votre programmateur à nouveau sous tension en
connectant le cordon USB à votre PC.

Lancez le logiciel
en
cliquant sur l'icône
.
Dès
instant le programmateur communique
avec le PC en faisant clignoter rapidement
les leds BUSY
et TARGET.

La
fenêtre principale du logiciel
apparaît
avec comme message
" found
and connected" attestant de
la bonne reconnaissance de ce dernier.
La
seconde ligne indique "Pic Device
Found" signifiant qu'un microcontrôleur
a été détecté
sur la platine du programmateur, ici
notre PIC18F4550. La
référence est également
indiquée à la ligne Device
: PIC18F4550
comme ci-dessous :

Cliquez dans
le menu sur File
puis sélectionnez
Import HEX afin de
choisir le fichier HEX
à programmer au sein de
microcontrôleur 18F4550. Dans le cadre de cet exemple, nous allons programmer
au sein du 18F4550 le fichier nommé
ESSAI1.HEX
présent dans le répertoire
Mes Documents
du disque
dur.

Validez votre choix en cliquant sur le bouton Ouvrir.
Vous obtenez le
listing hexadécimal et
Ascii
de votre programme HEX à condition
d'avoir sélectionné "Byte
ASCII"
de "Program
Memory"
et de "EEPROM
Data"
dans la fenêtre principale du
logiciel comme ci-dessous :

Assurez-vous
que la valeur "Configuration"
des fusibles est identique
à celle préconisée
par
l'auteur du programme.
Si elle diffère, cliquez dans
le menu sur
"Tools"
,
sélectionnez "Display
Unimplemented Config Bits"
puis choisir "As
"0" bit Value"
ou "As
"1" bit Value"
afin d'obtenir la
même valeur de configuration
préconisée par
l'auteur.

Contrairement
à la famille 16Fxxx, la famille
18Fxxxx
ne
nécessite pas obligatoirement de disposer
d'une alimentation minimale en 4,5V
durant la procédure de programmation.
Ainsi, que la fonction "Use
VPP First Programm Entry"
du menu "Tools"
soit cochée ou non, vous pouvez
lancer la procédure de programmation.
Pour
ce faire, cliquez sur le bouton
Write
afin de lancer la programmation,
suivie automatiquement par une vérification
des
données programmées. Attention,
la vérification n'a lieu qu'à
condition d'avoir coché l'option
"Verify
on Write"
dans le menu "Programmer".
La
led Busy (rouge) doit clignoter.

Programmation
du PIC en cours...
Vérification
des données programmées...
 Programmation
terminée avec succès
Vous pouvez désormais
débrancher le cordon USB de
votre programmateur. Retirez de son
support votre microcontrôleur
désormais programmé et opérationnel !
Programmation
d'un PIC12F675 :
Déconnectez le cordon USB du PC afin de mettre le programmateur
USB hors
tension. Insérez votre
microcontrôleur 12F675
à programmer dans le support correspondant (attention au sens
!).
Les versions 12Fxxx sont
dotées d'une valeur de
calibration permettant d'assurer la
calibration
de
l'oscillateur interne à 4MHz du microcontrôleur.
En effet, la dispersion de fabrication
impose une calibration
(ou réajustement) de l'oscillateur
qui diffère
d'un PIC à un autre.
Microchip a prévu un registre
OSCCAL
dans lequel on vient écrire une
valeur destinée à réajuster
l'oscillateur
permettant d'obtenir une fréquence
précise à 1%.
Ainsi, avant
de procéder
au chargement du fichier HEX,
il est indispensable d'effectuer
une lecture du
contenu de la mémoire
programme du
PIC neuf afin de récupérer la valeur de
OSCCAL
présente à la dernière
adresse.
Cependant,
pour ceux ayant perdu la valeur de calibration
d'origine du constructeur, le logiciel
est
capable de recalculer
cette valeur comme
nous le verrons un peu plus bas...
 Aspect
d'un 12F675
Microcontrôleur
PIC12F675 installé sur son
support tulipe 8 broches
Assurez-vous
d'avoir SW1
placé sur la position
PIC comme
ci-dessous :

Mettez votre programmateur à nouveau sous tension en
connectant le cordon USB à votre PC.

Lancez le logiciel
en
cliquant sur l'icône
.
Dès
instant le programmateur communique
avec le PC en faisant clignoter rapidement
les leds BUSY
et TARGET.

La
fenêtre principale du logiciel
apparaît
avec comme message
" found
and connected" attestant de
la bonne reconnaissance de ce dernier.
La
seconde ligne indique "Pic Device
Found" signifiant qu'un microcontrôleur
a été détecté
sur la platine du programmateur, ici
notre PIC12F675. La
référence est également
indiquée à la ligne Device
: PIC12F675
comme ci-dessous :

Notez que le logiciel vous indique également
la valeur de calibration OSCCAL
que l'on peut également retrouver
à la dernière case mémoire
de la zone programme à
condition d'avoir préalablement
cliqué sur
le bouton READ
comme ci-dessous :

La
valeur
de OSCCAL est de 3480 en hexadécimal
pour
ce modèle de PIC12F675.
Sachant
que la famille des microcontrôleurs
12Fxxx
nécessite une tension d'alimentation
minimale de 4,5V
durant la procédure de programmation,
vous devez cocher l'option "Use
VPP First Programm Entry"
du menu "Tools"
comme ci-dessous :

Avant
d'importer votre fichier HEX dans le
buffer du logiciel, pensez
à effacer
les zones programmes et de données
de votre 12F675 en cliquant sur le bouton
ERASE
comme sur la recopie d'écran
suivante. Cette procédure est
impérative
pour la famille 12Fxxx.
Sachez
que la fonction ERASE
n'efface
pas la valeur de OSCCAL
placé en fin de zone programme. Vous pouvez
donc cliquer sur ERASE sans
aucun risque !!!
 L'ensemble
de la mémoire programme a été
effacée mais la valeur de
OSCCAL est conservée.
Cliquez dans
le menu sur File
puis sélectionnez
Import HEX afin de
choisir le fichier HEX
à programmer au sein de
microcontrôleur 12F675. Dans le cadre de cet exemple, nous allons programmer
au sein du 12F675 le fichier nommé
ESSAI5.HEX
présent dans le répertoire
Mes Documents
du disque
dur.

Validez votre choix en cliquant sur le bouton Ouvrir.
Vous obtenez le
listing hexadécimal et
Ascii
de votre programme HEX à condition
d'avoir sélectionné "Byte
ASCII"
de "Program
Memory"
et de "EEPROM
Data"
dans la fenêtre principale du
logiciel comme ci-dessous :

Assurez-vous
que la valeur "Configuration"
des fusibles est identique
à celle préconisée
par
l'auteur du programme.
Si elle diffère, cliquez dans
le menu sur
"Tools"
,
sélectionnez "Display
Unimplemented Config Bits"
puis choisir "As
"0" bit Value"
ou "As
"1" bit Value"
afin d'obtenir la
même valeur de configuration
préconisée par
l'auteur.

Cliquez ensuite sur le bouton
Write
afin de lancer la procédure
de programmation,
suivie automatiquement par une vérification
des
données programmées. Attention,
la vérification n'a lieu qu'à
condition d'avoir coché l'option
"Verify
on Write"
dans le menu "Programmer".
Les
leds Target (jaune) et Busy (rouge)
doivent clignoter.

Programmation
du PIC en cours...
Vérification
des données programmées...
 Programmation
terminée avec succès
Vous pouvez désormais
débrancher le cordon USB de
votre programmateur. Retirez de son
support votre microcontrôleur
désormais programmé et opérationnel !
Vous
avez effacé ou perdu la valeur
de OSCCAL de votre PIC12Fxxx :
Comme
nous l'avons vu dans l'exemple de programmation
précédent, les versions
12Fxxx sont dotées d'une valeur de
calibration OSCCAL
contenue en fin de mémoire
programme, permettant d'assurer la
calibration
de
l'oscillateur RC interne. Toutefois,
avec certains programmateurs de PIC
du commerce ou réalisés
soit même, on peut malencontreusement
effacer
la valeur de calibration
OSCCAL. Si
vous avez noté
puis effacé
OSCCAL, vous pouvez
reprogrammer la valeur au sein du PIC12Fxxx
avec le logiciel .
Dans le pire des cas, si vous avez perdu la valeur de OSCCAL,
le logiciel peut recalculer cette
valeur
comme nous allons le voir ci-après...
Pour
le premier exemple, nous utilisons
un PIC12F629,
puis un PIC12F675
pour le second.
Vous
avez effacé la valeur de OSCCAL
mais vous connaissez sa valeur :
La
valeur de OSCCAL
de notre 12F629 implantée à
l'origine par Microchip était
de : 34D8.
Nous allons la "réimplanter"
dans sa mémoire programme.

Déconnectez le cordon USB du PC afin de mettre le programmateur
USB hors
tension. Insérez votre
microcontrôleur 12F629
dont vous souhaiter reprogrammer la
valeur de OSCCAL.
Assurez-vous
d'avoir SW1
placé sur la position
PIC comme
ci-dessous :

Mettez votre programmateur à nouveau sous tension en
connectant le cordon USB à votre PC.

Lancez le logiciel
en
cliquant sur l'icône
.
Dès
instant le programmateur communique
avec le PC en faisant clignoter rapidement
les leds BUSY
et TARGET.

La
fenêtre principale du logiciel
apparaît
avec comme message
" found
and connected" attestant de
la bonne reconnaissance de ce dernier.
La
seconde ligne indique "Pic Device
Found" signifiant qu'un microcontrôleur
a été détecté
sur la platine du programmateur, ici
notre PIC12F629. La
référence est également
indiquée à la ligne Device
: PIC12F629
comme ci-dessous :

La valeur
de calibration OSCCAL détectée
par le logiciel est invalide
comme
nous pouvons le voir ci-dessous :

Sachant
que la famille des microcontrôleurs
12Fxxx
nécessite une tension d'alimentation
minimale de 4,5V
durant la procédure de programmation,
vous devez cocher l'option "Use
VPP First Programm Entry"
du menu "Tools"
comme ci-dessous :

Afin
de reprogrammer
la valeur de calibration OSCCAL
(ici 34D8), sélectionnez
dans le menu "Tools"
puis "OSCCAL"
et la fonction "Set Manually"
comme ci-dessous :

Dans la nouvelle fenêtre, entrez
la valeur de calibration OSCCAL du
constructeur, ici 34D8
(en hexadécimal) comme
ci-dessous :

Cliquez
sur le bouton "Set"
afin
de
reprogrammer la valeur de calibration
OSCCAL.
Par ailleurs, cette procédure
efface
également toute la mémoire
programme de
votre microcontrôleur hormis OSCCAL
bien entendu.
Quelques secondes après, la valeur
de calibration OSCCAL
est
à nouveau opérationnelle
au sein du
12F629
comme ci-dessous :

Vous
avez effacé et perdu la valeur
de OSCCAL :
A
la suite d'un incident, vous avez effacé
la totalité de la mémoire
de votre 12Fxxx
et perdu
la valeur de OSCCAL. Grâce
au logiciel
vous pouvez régénérer
automatiquement la valeur de OSCCAL
comme nous allons le voir dans l'exemple
ci-dessous à partir d'un 12F675.

Déconnectez le cordon USB du PC afin de mettre le programmateur
USB hors
tension. Insérez votre
microcontrôleur 12F675
dont vous souhaiter régénérer la
valeur de OSCCAL.
Assurez-vous
d'avoir SW1
placé sur la position
PIC comme
ci-dessous :

Mettez votre programmateur à nouveau sous tension en
connectant le cordon USB à votre PC.

Lancez le logiciel
en
cliquant sur l'icône
.
Dès
instant le programmateur communique
avec le PC en faisant clignoter rapidement
les leds BUSY
et TARGET.

La
fenêtre principale du logiciel
apparaît
avec comme message
" found
and connected" attestant de
la bonne reconnaissance de ce dernier.
La
seconde ligne indique "Pic Device
Found" signifiant qu'un microcontrôleur
a été détecté
sur la platine du programmateur, ici
notre PIC12F675. La
référence est également
indiquée à la ligne Device
: PIC12F675
comme ci-dessous :

Nous
remarquons la valeur
de calibration OSCCAL indiquant une
valeur invalide consécutive
à un
effacement complet de
la zone de mémoire programme
comme ci-dessous :

Sachant
que la famille de microcontrôleur
12Fxxx
nécessite une tension d'alimentation
minimale de 4,5V
durant la procédure de programmation,
vous devez cocher l'option "Use
VPP First Programm Entry"
du menu "Tools"
comme ci-dessous :

Afin
de régénérer
la valeur de calibration OSCCAL, sélectionnez
dans le menu "Tools"
puis "OSCCAL"
la fonction "Auto Regenerate"
comme ci-dessous :

Une fenêtre s'ouvre vous demandant
de confirmer la régénération
de OSCCAL comme ci-dessous :

Cliquez
sur le bouton "OK". Bien que cela ne soit
pas indiqué, cette procédure
efface
également toute la mémoire
programme de
votre microcontrôleur hormis OSCCAL
bien entendu.
Quelques secondes après, une
fenêtre vous informe du
succès de l'opération
et
la valeur de OSCCAL
est désormais
régénérée
au
sein du 12F675
comme ci-dessous :

Cliquez
sur "OK".
En fin
de zone programme
vous retrouver la valeur de OSCCAL
= 3480 (en
hexadécimal) régénérée
comme ci-dessous
:

Programmation
d'une EEPROM 24LC04 :
Déconnectez le cordon USB du PC afin de mettre le programmateur
USB hors
tension. Insérez votre
EEPROM 24LC04
à programmer dans le support correspondant (attention au sens
!).

 EEPROM
24LC04 installée sur son
support tulipe 8 broches
Assurez-vous
d'avoir SW1
placé sur la position
24LC comme
ci-dessous :

Mettez votre programmateur à nouveau sous tension en
connectant le cordon USB à votre PC.

Lancez le logiciel
en
cliquant sur l'icône
.
Dès
instant le programmateur communique
avec le PC en faisant clignoter rapidement
les leds BUSY
et TARGET.

La
fenêtre principale du logiciel
apparaît
avec comme message
" found
and connected" attestant de
la bonne reconnaissance de ce dernier.
Contrairement
aux microcontrôleurs, le logiciel
n'est pas capable de déterminer
automatiquement le type d'EEPROM placée
sur son support. Vous allez devoir renseigner
le logiciel manuellement. Dans
le menu "Device Family" sélectionnez
"EEPROMS" puis choisissez
"24LC" comme ci-dessous :

Vous
obtenez la fenêtre suivante. Cliquez
ensuite sur le menu déroulant
"-Select Part-".

Choisissez
la bonne version de votre EEPROM, ici
la version 24LC04B :

Cliquez dans
le menu sur File
puis choisir
Import HEX afin de
sélectionner le fichier HEX
à programmer au sein de
l'EEPROM 24LC04. Dans le cadre de cet exemple, nous allons programmer
au sein de l'EEPROM 24LC04 le fichier nommé
EEP04.HEX
présent dans le répertoire
Mes Documents
du disque
dur.

Validez votre choix en cliquant sur le bouton Ouvrir.
Vous obtenez le
listing hexadécimal et
Ascii
de votre programme HEX à condition
d'avoir sélectionné "Byte
ASCII"
dans "Program
Memory"
comme ci-dessous :

Cliquez ensuite sur le bouton
Write
afin de lancer la procédure
de programmation,
suivie automatiquement par une vérification
des
données programmées. Attention,
la vérification n'a lieu qu'à
condition d'avoir coché l'option
"Verify
on Write"
dans le menu "Programmer".

Programmation
du PIC en cours...
Vérification
des données programmées...
 Programmation
terminée avec succès
Vous pouvez désormais
débrancher le cordon USB de
votre programmateur. Retirez de son
support votre EEPROM
désormais programmée et opérationnelle !
Programmation
d'un microcontrôleur avec le connecteur
ICSP :
A
partir du connecteur ICSP,
vous pouvez programmer des microcontrôleurs
PIC et EEPROM directement
installés sur
leurs applications
par l'utilisation d'une circuiterie
adaptée.

Connecteur
ICSP du programmateur
Le
connecteur regroupe cinq signaux fondamentaux
:
VPP : la tension de programmation appliquée
au PIC pendant la procédure de
programmation.
ICSPCLK ou CLK : l'horloge
de programmation composée d'une
liaison unidirectionnelle sérielle
synchrone entre le programmateur et
la cible.
ICSPDAT ou DAT : le
signal de données de programmation
composé d'une liaison bidirectionnelle
sérielle synchrone.
VDD : l'alimentation positive
GND : la référence de
l'alimentation 0V commune aux signaux.
Certaines règles
de conception
de la carte cible
doivent être scrupuleusement respectées
au risque d'endommager votre programmateur
et votre carte cible.

La résistance R2
est nécessaire uniquement si
vous placez un switch de RESET SW1
sur votre application. Si vous ne mettez
pas SW1
alors ne mettez pas la résistance
R2.
La diode D1
en série avec la résistance
R1
sont toutes deux absolument
indispensables.
Elles permettent d'isoler la tension
de programmation VPP
en +12V
de l'alimentation +5V
de
votre montage. Vous
pouvez également remplacer la
diode 1N4148 par une diode
Schottky de
type BAT85.
Le double switch SW2
est indispensable
afin d'isoler les broches RB6
et RB7
du reste de votre application.
La résistance R3
est facultative mais s'avère
parfois nécessaire avec certaines
références de PIC. Sa
valeur non critique est comprise
entre 4,7k
et
10k.
Elle est préconisée
sur la broche
RB3
(LVP/PGM) des 16F876
et
16F877
en
mode ICSP. Elle est préconisée
également sur la broche RB5
de la série 18F45xx.
Remarques importantes
:
-
Veuillez à ne pas utiliser des
liaisons électriques trop importantes
(maxi
40 cm)
entre le connecteur ICSP
du programmateur et celui de
votre application.
-
Si vous utilisez un 12F629
ou 12F675
un condensateur de 100nF
- C3 de
découplage
est absolument
indispensable
au plus près des broches d'alimentation
du circuit (pin 1 - VDD et pin 8 VSS). Pour les
autres références de microcontrôleurs,
le condensateur de 100nF -
C3 est également
vivement recommandé.
Programmation
à l'aide du bouton programme
:
Le
programmateur possède un bouton
permettant de lancer la programmation
directement par une pression sur celui-ci.
Cette fonction est utile lorsqu'il faut
programmer en
mode ICSP
plusieurs cibles avec le même
programme sans devoir cliquer les mêmes
séquences de manière répétitives
dans le logiciel.

Reliez
le connecteur ICSP sur la cible
de votre choix à programmer.
Lancez
le logiciel .
Cliquez dans
le menu sur File
puis sélectionnez
Import HEX afin de
choisir le fichier HEX
à programmer au sein de
la cible.
Dans
le menu " Programmer"
sélectionnez "Write on
PICkit Button" comme ci-dessous
:

Le
logiciel indique désormais le
message "Waiting
for PICkit 2 button to be pressed..."
comme ci-dessous :

Pressez
le bouton Programme
afin de lancer la programmation de la
cible.


Programmation
du PIC en cours...
Vérification
des données programmées...
 Programmation
terminée avec succès
|