Il existe plusieurs outils développés par MICROCHIP (
http://www.microchip.com/developmenttools/ ) qui permettent de télécharger un code executable. Ils utilisent un connecteur possédant 5 signaux:
- VCC qui est l'alimentation à 3,3 Volts ou 5 Volts en fonction du type de microcontrôleur,
- nMCLR qui contrôle l'initialisation du composant,
- PRGC qui est l'horloge de transfert du programme,
- PRGD qui est la donnée série du programme,
- et enfin GND pour la masse.
Il suffit de récupérer le noyau correspondant au microcontrôleur et disponible dans
la page des logiciels.
Une autre méthode consiste à utiliser l'
émulateur en combinaison avec l'
interface RS232 vers ICSP qui permet en plus de dialoguer directement avec le noyau FORTH du microcontrôleur.
Une fois le noyau FORTH
installé dans le microcontrôleur, les applications peuvent être
installées en utilisant l'interpréteur FORTH via l'interface RS232. Ceci
a l'avantage de retrouver la souplesse du FORTH mais demeure fastidieux
en cas de mise au point des applications avec l'inconvénient d'une
usure prématurée de la mémoire interne.
Le mieux est d'utiliser l'
émulateur pour
mettre au point le code complet contenant à la fois le noyau FORTH et
les applications, de le sauvegarde et de le télecharger in une seule
fois comme un nouveau noyau.
Prenons le cas d'une petite application développée sur un
dsPIC30F4012.
Cette appication est un petit chenillard sur les ports RE0, RE1, RE2,
RE3, RE4 et RE5 et dont la vitesse est contrôlées par l'état des ports
RD0 et RD1 (0 pour 500ms, 1 pour 375ms, 2 pour 250ms et 3 pour 125ms).
Que ce soit avec l'
émulateur ou directement avec le microcontrôleur, il faut commencer par télécharger le noyau correspondant
dspic30f.hex.
Ensuite, il faut interpréter le pilote des ports pour dsPIC30f
ports_ABCDEFG_30f.txt.
Il ne reste plus qu'à charger le code suivant:
DECIMAL
1 VARIABLE VOYANTS
1000 VARIABLE DUREE
( Instruction associee au port D )
PRGHERE
]
3 AND NEGATE 4+ 125 * DUREE !
EXIT
[
CONSTANT PRG_PORT_D_B CONSTANT PRG_PORT_D_H
TACHE: T_CHENILLARD
VOYANTS DUP >R @ DUP SORT_PORT_E 2/ DUP 0= 32 AND + R> !
DUREE @ T_CHENILLARD T_ACTIVE
;
: CHENILLARD
0 DUP DUP SYNC_PORT_E
PRG_PORT_D_H PRG_PORT_D_B 3 SYNC_PORT_D
49152 T_CHENILLARD DUP >R T_AJOUTE 10 R> T_ACTIVE
;
: LANCE
[ HERE LITERAL ] >HERE
CHENILLARD
;
L'instruction "LANCE" permet de lancer le programme "CHENILLARD" au démarrage du microcontrôleur.