De quoi ai-je besoin pour mettre mon code sur un microcontrôleur?

8

J'ai appris à coder un contrôleur, mais je n'ai jamais mis le code sur le périphérique physique. J'essaie de comprendre ce que je dois commander pour commencer à développer un système embarqué de base.

Par exemple, si j'ai un PIC18F1330, j'ai un compilateur MPLAB IDE et XC8. Génial, j'ai donc le code compilé, et je suis prêt à le mettre sur le contrôleur. De quoi ai-je besoin pour transférer mon code compilé sur mon PC sur le contrôleur?

J'ai vu des choses comme un débogueur en circuit et un kit PIC. Je suis juste perdu à ce stade.

Adam
la source
Donc, une fois que j'ai un PICkit, le PICkit me permet de connecter physiquement mon PC au microcontrôleur?
Adam
Oui, il y a un connecteur sur le PICKit, ICD etc. que vous connectez à votre carte pour la programmation et le débogage en circuit.
Spehro Pefhany

Réponses:

4

Il existe plusieurs façons de flasher votre code sur un microcontrôleur.

Sur le Web, vous trouverez beaucoup de programmeurs self-made, mais ils ont généralement aussi des logiciels self-made et ne sont pas (bien) intégrés dans l'IDE MPLAB.

La solution la moins chère de Microchip est un PicKit pour ~ 40 € qui vient d'être connecté au PC via USB. Bien que le PicKit dispose de certaines options de débogage, il existe également l'ICD `` In Circuit Debugger '' plus puissant pour ~ 180 €, qui a plus de fonctionnalités de débogage, mais bien sûr peut également flasher les puces.

J'ai toujours pensé que le PicKit me suffisait.

Il existe des versions tierces, car microchip publie le micrologiciel et les schémas du PicKit, mais si vous les achetez, assurez-vous vraiment de savoir ce que vous pensez de ce que vous obtenez. J'ai vu une fois une offre pour PicKit 3, mais je ne savais pas si ce n'était pas un PicKit 2.


Juste un commentaire: il existe des microcontrôleurs Microchip, qui peuvent se flasher. Par exemple, nous avons utilisé la famille PIC18F2450 / 2550/4450/4550 avec USB intégré et y avons installé un chargeur de démarrage. Lorsqu'un cavalier est fermé, le MCU entre en mode chargeur de démarrage au démarrage et vous pouvez flasher votre MCU avec votre code. Ces trucs sont tous disponibles chez Microchip.

Pour l'utiliser, vous devez apporter quelques modifications à votre code. Et bien sûr, vous avez besoin d'un programmeur régulier pour flasher initialement le chargeur de démarrage sur le MCU. Donc, cette fonctionnalité n'a pas de sens si vous avez un programmeur. Mais c'est bien si vous voulez des mises à jour du firmware pour vos clients.

bonbon
la source
12

Puisque vous utilisez l'IDE MPLAB avec le compilateur XC8 C, vous pouvez vérifier la compatibilité dans le menu Configurer-> Sélectionner un périphérique (l'indicateur vert signifie entièrement pris en charge, le jaune est partiel et le rouge n'est pas pris en charge).

À l'heure actuelle, les meilleurs choix seraient Pickit 3, ICD3 ou RealICE (par ordre de prix croissant)

Voici les programmeurs, débogueurs compatibles:

Vous voulez vraiment avoir un support de débogage ainsi qu'un support de programmation.

entrez la description de l'image ici

Une fois les pilotes de périphériques installés, vous pouvez les sélectionner et vous y connecter (un périphérique donné ne peut être installé qu'en tant que débogueur ou programmeur à un moment donné):

entrez la description de l'image ici

Ensuite, lorsque votre programme est compilé (sous forme de débogage ou de version), vous pouvez programmer le microcontrôleur avec les boutons ci-dessous:

entrez la description de l'image ici

Physiquement, le PICkit ou une autre unité de débogage / programmeur possède un connecteur que vous connectez à votre système. Il y a 6 broches, dont 5 sont utilisées, y compris l'alimentation et la terre.

entrez la description de l'image ici

Spehro Pefhany
la source
4

Au moment de la rédaction, il existe 3 façons principales de graver un binaire sur un microcontrôleur. Selon un micro particulier, 3 d'entre eux peuvent être disponibles. La méthode la plus ancienne est le programmeur / débogueur spécifique à l'appareil. Les composants actuels pour les pièces Microchip sont Pickit3 / ICD3, ils sont compatibles avec tous les micros PIC actuels et certains plus anciens. Vous ne pouvez pas les utiliser pour programmer des pièces fabriquées par d'autres fabricants.

La deuxième méthode est appelée un chargeur de démarrage. Il s'agit d'un petit programme gravé dans le micro avant que vous ne preniez possession de la pièce. Le chargeur de démarrage permet la programmation via les interfaces standard du micro - UART, SPI, Ethernet, etc. Les puces ARM sont souvent fournies avec un chargeur de démarrage préchargé, ainsi que l'AVR. Vous n'avez pas besoin d'équipement de programmation propriétaire si un chargeur de démarrage est présent, mais vous ne pourrez pas effectuer facilement le débogage en une seule étape.

Le troisième s'appelle JTAG. C'est une interface semi-générique, vous pouvez programmer de nombreuses parties différentes avec elle et également déboguer. Vous aurez besoin d'un équipement appelé dongle JTAG. Certaines pièces PIC ont JTAG. Les puces ARM ont généralement JTAG, et beaucoup n'ont pas d'autre interface de débogage.

Oleg Mazurov
la source
3

Recette générale:

  1. Tapez votre code dans un éditeur de texte en utilisant la langue de votre choix
  2. Traduisez ce langage en code machine à l'aide d'un compilateur. Le code machine est une liste de nombres hexadécimaux: certains représentent une instruction, le reste est des arguments / paramètres pour ces instructions. Communément appelé "fichier HEX". Tout programme se résume à cette succession d'instructions élémentaires + leurs paramètres.
  3. Transférez ce code machine dans la mémoire programme de votre appareil. Cela se fait à l'aide d'un programmeur. Le programmeur est livré avec un pilote, qui est un logiciel qui contrôle le programmeur: donnez-lui un fichier HEX, il fera le reste. Le programmeur lira votre fichier HEX et agitera les lignes de programmation de l'appareil (un peu comme du code morse) de manière codée pour réellement écrire la mémoire du programme. Lorsque le programme est chargé, le périphérique est redémarré, puis, le périphérique démarre automatiquement l'exécution de code au tout début de la mémoire du programme. Voilà votre code. C'est grossièrement dit, mais c'est à peu près ce que vous devez savoir pour l'instant.

Vous y êtes presque . Vous avez l'environnement de développement intégré qui fait 1 et 2 de manière très conviviale. Il a même des interfaces avec les programmeurs pour que vous n'ayez pas à vous soucier de ce qu'est un fichier HEX (appuyez sur "jouer" et vous avez terminé).

Cependant, vous avez toujours besoin du programmeur physique pour interfacer votre appareil avec le PC - il existe un certain nombre pour les PIC. Pickit en fait partie. Si vous avez l'intention de devenir sérieux avec la programmation intégrée, vous devriez probablement investir dans un débogueur en circuit (ICD). C'est un programmeur, et aussi quelque chose qui vous permet de jeter un œil ou de pousser sur les variables et les registres dans le micro, et même de parcourir et d'arrêter un programme à volonté.

Monsieur Mystère
la source
3

Un appareil de programmation à microcontrôleur est ce dont vous avez besoin. C'est un matériel qui se connecte à votre PC et au microcontrôleur, afin d'exécuter les fonctions nécessaires pour charger le programme sur la puce. In circuit debugger est un appareil qui a plus de fonctionnalités qu'un programmeur, comme le débogage de votre code pendant qu'il s'exécute sur la puce. Vous pouvez utiliser l'ICD ou le kit PIC pour programmer l'UC. Ou, si vous le souhaitez, vous pouvez également utiliser un circuit très simple comme le programmeur JDM .

Notez que MPLAB IDE prend en charge le kit PIC et l'ICD. Mais si vous utilisez un programmeur JDM, vous devrez utiliser un autre logiciel comme PICPgm pour charger votre puce compilée.

chamod
la source