16F88

Utiliser le bootloader de SPARKFUN

WWW.PICTEC.ORG

 

Régles d'utilisation du bootloader de SPARKFUN pour le 16F88

 

SPARKFUN met à la disposition des utilisateurs de 16F88 un bootloader entiérement gratuit. Pour l'utiliser il suffit de respecter quelques régles, a défaut le loader windows refusera de transférer le programme dans le PIC. Nous nous proposons de vous les expliquer ici.


Premiére étape: Ou trouver le bootloader ?

Le bootloader peut être téléchargé à l'adresse suivante: www.sparkfun.com/tutorial/Bloader/bloader.htm
L'ensemble se présente sous la forme d'un fichier compressé dans lequel vous trouverez un fichier éxécutable qui est le downloader windows et qui servira pour toute la série des 16FXXX. Un certain nombre de fichiers à programmer dans votre 16F88 sont également fournis sous forme de source en C ou de fichiers HEX.
Ce bootloader a été écrit avec CC5X et la compilation pourra être réalisée sans problème avec la version de démonstration puisque le code comporte moins de 250 octets. A noter toutefois que la version livrée avec le package logiciel est destinée à fonctionner en utilisant un reset externe sur le PIC. J'ai préféré utiliser le reset interne. Pour cela remplacer la directive
#pragma config |= 0x3F22 par #pragma config |= 0x3F10.
Cette directive figure à la ligne 16 du source en langage C.


Deuxiéme étape: Structure du programme

Pour fonctionner avec ce bootloader, votre programme se doit de respecter une seule régle. Il s'agit de démarrer le programme à l'adresse 4 et le premier mot de la mémoire programme doit être un saut à l'adresse de démarrage réelle. Il faut également que le fichier HEX généré par votre compilateur ne comporte aucune données destinées aux adresses 1,2 et 3 de la zone mémoire. A défaut le downloader vous indiquera que vous ne respectez pas la structure imposée et ne transférera pas votre programme.
Cette restriction empêche le bootloader de fonctionner, par exemple, avec les compilateurs basic et pascal de mikroelektronika même si une directive mémoire est inscrite dans le programme. Nous proposerons bientot un downloader compatible qui permettra de contourner ce problème. Un utilitaire est déja disponible pour modifier les fichiers hex générés par les compilateurs de MikroElektronica.


Troisiéme étape: Exemple en langage C avec CC5X

Voici la structure d'un programme en langage C écrit avec CC5X qui fonctionnera avec le bootloader:

La directive indiquant au programme qu'il doit commencer à l'adresse 4 ne figure pas dans le programme principal mais dans la librairie interrupt.c. Cette librairie est disponible dans la section VRAC du site. www.pictec.org/vrac/uart/
Voici néammoins l'ensemble du code source sous la forme d'un fichier compressé: firsttest.zip
Ce fichier a été téléchargé 001454
fois.


Quatrième étape: Exemple en assembleur

La structure d'un programme en assembleur est identique dans son principe, voici un exemple ci-dessous assemblé avec MPLAB:

Nous avons assemblé le programme à l'adresse 100 et un goto figure en tête du programme et est assemblé à l'adresse 0.
Voici le fichier asm correspondant:
testasm.asm
Ce fichier a été téléchargé 002600
fois.