Je prends une pause du projet PICvision pour présenter le seul microcontrôleur 32 bits disponible en format PDIP-8. Le MCU LPC810 fabriqué par NXP est en effet basé sur le core ARM M0+. Pour l'avoir en format PDIP-8 il faut commander le modèle LPC810M021FN8. NXP est le seul manufacturier à offrir des MCU ARM en format PDIP et il n'y a que 2 modèles disponibles, l'autre étant le LPC1114FN28 disponible en format PDIP-28 large (600mil.).
Caractéristiques du LPC810
paramètre | valeur |
---|---|
coeur | ARM Cortex M0+ |
architecture | Von Neumann |
Freq. CPU | 30Mhz max. |
mémoire flash | 4Ko |
mémoire RAM | 1Ko |
USART | 2 |
I2C | 1 |
SPI | 1 |
comparateur | 1 |
multirate timer | 4 canaux |
systick counter | oui, 24 bits |
GPIO | 6 |
multiplication | hardware 32 bits, 1 cycle |
boot loader en ROM | oui |
alimentation | 1,8 à 3,6 volt |
Environnement de développement
NXP mais à notre disposition une version gratuite de LPCXpresso. Cet IDE est basé sur Eclipse et est disponible pour Linux, Windows et OSX. Il faut cependant créer un compte utilisateur sur le site lpcware.com pour obtenir la clé d'enregistrement.
Une fois le logiciel installé l'enregistrement se fait à partir de l'IDE dans le menu HELP - Activate - Create serial number and register...
Une fois le numéro de série créé et la clé d'activation obtenue, il faut alors aller dans HELP - Activate - Enter activation code...La version gratuite permet de créer des programmes jusqu'à 256Ko. Il y a deux autres logiciels à télécharger. Le premier est flash magic disponible gratuitement pour windows et OSX. Flash magic permet de programmer le MCU en se servant du boot loader en ROM qui est inclus dans le MCU lors de sa fabrication. A moins que vous n'ayez un programmeur compatible supportant SWD ou JTAG vous ne pourrez pas programmer le LPC810 à partir de l'IDE. Par défaut le compilateur génère un fichier .AXF qui n'est pas supporté par flash magic. Il faut donc pour chaque projet spécifié qu'on veut un fichier .HEX.
Pour générer un fichier HEX il faut dans l'explorateur de projet, cliquer avec le bouton droit sur le nom du projet et dans le menu choisir propeties. dans C/C++ setting onglet build steps, post-build steps command: cliquez sur le bouton edit....
dans l'éditeur ajoutez la ligne suivante:
arm-none-eabi-objcopy -O ihex "${BuildArtifactFileName}"
"${BuildArtifactFileBaseName}.hex"
Une fois cette configuration accomplie, lors de la compilation du projet un fichier .HEX sera généré.
Premier projet
Pour ce premier projet on va en importer un de Github et le modifier. Allez à https://github.com/microbuilder/LPC810_CodeBase et à droite de la page cliquez sur le dernier bouton nommé Download ZIP. Une fois téléchargé il faut maintenant l'importer dans l'explorateur de projet de LPCXpresso.
En dessous de l'explorateur de projet il y a une autre fenêtre avec plusieurs onglets. Dans Quick start panel cliquez sur import project(s). Dans le fenêtre d'importation cliquez le premier bouton browse... et allez chercher le fichier .ZIP que vous venez de télécharger. Cliquez maintenant sur le bouton Finish. Une fois le projet importé il devrait apparaitre dans l'explorateur de projet sous le nom LPC810_CodeBase.
Déployez l'arborescence de ce projet et le dossier src à l'intérieur de celui-ci. Ouvrez le fichier main.c dans l'éditeur en double-cliquant dessus.
J'ai modifié le projet pour remplacer la LED simple par une une LED RGB dont les anodes sont connectées comme suis:
- PIO0_1 (broche 5) ANODE ROUGE
- PIO0_2 (broche 4) ANODE BLEU
- PIO0_3 (broche 3) ANODE VERTE
- V- CATHODE COMMUNE
Voici le fichier main.c tel que je l'ai modifié.
Ce projet est déjà configuré pour générer un fichier .HEX il ne reste donc qu'à le compiler. Dans la barre d'outils il y a un marteau avec une petite flèche à droite qui pointe vers le bas. Cliquez sur la flèche et ensuite sur Release (Release build).
S'il n'y a pas d'erreur de compilation il devrait y avoir un fichier LPC810_CodeBase.hex dans le dossier release du projet. Dernière étape flasher ce fichier dans le LPC810.
Flash magic
Vous avez installé flash magic maintenant ouvrez le. Mais d'abord pour faire entrer le MCU en mode boot loader il faut l'éteindre et ensuite mettre PIO0_1 (broche 5) à zéro volt (voir photo, j'utilise le cavalier bleu à cet effet). On réalimente le MCU. Maintenant dans flash magic, il faut sélectionner le port sériel sur lequel est branché le MCU, indiquez la vitesse de transmission et mettre le clock à 12Mhz. Comme illustré ci-bas (le no de port ne sera pas nécessairement le même sur votre ordinateur.
Pour la programmation le LPC810 reçoit sur la broche 8 et transmet sur la broche 2.
Aucun commentaire:
Publier un commentaire
Remarque : Seuls les membres de ce blogue sont autorisés à publier des commentaires.