Comment passer de l'utilisation d'un Arduino comme programmeur à un programmeur externe?

12

Deuxième partie d'une série en trois parties sur la transition d'Arduino à un microcontrôleur AVR standard et aux composants de support minimum (première partie , troisième partie )

J'ai vu beaucoup de gens poser cette question sur Internet, alors voici:

Je sais déjà comment programmer et utiliser un ATmega328 barebones avec un Arduino comme programmeur . Je veux maintenant commencer à utiliser un programmeur externe avec l'IDE Arduino.

Comment dois-je procéder dans cette transition? Que dois-je apprendre? (Ce serait bien si un mini-tutoriel pour certaines parties était fourni dans le cadre de la réponse)

Manishearth
la source
2
+1, un excellent candidat pour une question de référence, j'attends avec impatience des réponses bien structurées et détaillées qui sont faciles à suivre pour un débutant, et non des réponses "etch-a-board".
Anindo Ghosh
Je suis confus. Vous voulez que les étapes passent d'une méthodologie à une autre. Qu'attendez-vous comme réponse? Les tutoriels pour utiliser directement un programmeur externe sont bien, les tutoriels réels.
asheeshr
@AshRj: La transition et le redémarrage sont deux choses différentes. Si l'on sait comment utiliser un Arduino, il faudrait qu'il sache quelles seront les différences entre les différents codes (et les bases de l'utilisation d'un programmeur).
Manishearth
@Manishearth Qu'entendez-vous par «sans chargeur de démarrage»?
Polar
@Polar: Fondamentalement, je ne veux pas que le chargeur de démarrage Arduino soit là pour m'aider (ce qui se produit si vous utilisez un Arduino en tant que programmeur), je veux juste un ATmega nu sur lequel tout le code est mon code.
Manishearth

Réponses:

6

Remarque: Ce mini-tutoriel est basé sur les informations officielles ici sur le site Arduino. Cela implique également d'utiliser l'IDE Arduino officiel.

Remarque 2: Les liens fournis vers les produits peuvent être des liens Farnell (car ils contiennent des fiches techniques) ou les pages de produits réelles sur le site Web du fabricant.


Étape 1: Obtenez un programmeur externe

La première chose à noter est que vous avez besoin d'un programmeur externe pour éviter le chargeur de démarrage et récupérer le 1K ou 2K de mémoire qu'il occupe (12,5% de la mémoire totale ). Vous pouvez utiliser un AVR-ISP , un STK-500 ou un programmeur à port parallèle - le site officiel d'Arduino a des instructions pour cela ici . Notez que vous ne pouvez pas communiquer avec la carte via le programmateur parallèle - le conseil est d'utiliser un câble série pour cela. Le principal avantage de l'utilisation d'un programmateur parallèle est qu'ils sont beaucoup moins chers que les autres si vous êtes prêt à faire de la soudure - vous n'avez besoin que de quelques (3) résistances et de quelques connecteurs, tandis qu'un FAI peut vous configurer. à 30 £ / 50 $ (le taux de conversion est approximatif).


Étape 2: Modifier le fichier de préférences Arduino

Ensuite, vous devrez configurer l'IDE Arduino pour vous permettre de contourner le chargeur de démarrage. Assurez-vous que vous n'avez pas l'IDE Arduino ouvert! Le fichier de préférences preferences.txtse trouve aux emplacements suivants, selon votre système d'exploitation:

  • C:\Documents and Settings\<Username>\Application Data\Arduino\preferences.txt (Les fenêtres)
  • /Users/<Username>/Library/Arduino/preferences.txt (Mac)
  • ~/.arduino/preferences.txt (Linux)

Pour accéder au fichier de préférences dans Windows, allez dans le menu démarrer puis allez dans %appdata%(NB: je n'utilise pas Windows régulièrement, n'hésitez pas à me corriger). Ensuite, accédez à Arduino, puis àpreferences.txt

Sur Mac, utilisez Terminal et faites:

cd ~/Library/Arduino
open .

Ou dans le Finder, utilisez Goto (Cmd-Shift-G) et entrez ~/Library/Arduino. Ces deux éléments vous amènent à une fenêtre du Finder avec preferences.txtin.

Sur les systèmes Unix, les dossiers commençant par un '.' (tels que .cache, .git) sont par défaut masqués, donc sous Linux, vous devrez utiliser le terminal et entrer:

cd ~/.arduino
nautilus .

Remarque: vous pouvez remplacer nautilus par gnome-open si vous le souhaitez. Je sais que ces deux éléments fonctionnent sur les saveurs communes de Linux, mais vous pouvez avoir des problèmes avec certaines des saveurs les plus «exotiques».

Une fois que vous avez trouvé le preferences.txtfichier, ouvrez-le et remplacez le upload.usingpar bootloaderpar le nom de l'un des programmeurs du ./hardware/programmers.txtsous - répertoire. Si vous souhaitez uniquement supprimer le chargeur de démarrage d'une carte, ./hardware/boards.txtvous pouvez modifier le <board>.upload.usingparamètre et toutes les autres cartes utiliseront toujours le chargeur de démarrage. Ensuite, enregistrez simplement le fichier correspondant et fermez-le (mon Arduino vient de planter et j'ai presque perdu la réponse, peut-être parce que j'ai oublié de le faire).


Étape 3: téléchargez le croquis

Une fois que vous avez modifié le fichier correspondant, ouvrez à nouveau l'IDE Arduino et téléchargez l'esquisse comme d'habitude. Si vous venez de modifier ./hardware/boards.txt, seule cette carte particulière n'aura pas le chargeur de démarrage, mais si vous avez modifié, preferences.txttoutes les cartes n'auront pas le chargeur de démarrage.


Étape 4: remplacer le chargeur de démarrage

Si vous voulez avoir à nouveau le chargeur de démarrage sur vos cartes (pour une raison quelconque), supprimez d'abord le <board>.upload.usingparamètre ou upload.usingrevenez à bootloader. Ensuite, vous devrez graver le chargeur de démarrage sur les cartes concernées - cette réponse explique raisonnablement bien une méthode pour le faire, et il existe une méthode plus simple pour télécharger le chargeur de démarrage Arduino uniquement avec un FAI (que vous devriez avoir plus tôt) sur le site officiel ici .

Polaire
la source
Je suppose que je n'étais pas clair, j'ai édité la question pour que cela soit clair: je voulais plus ou moins ignorer l'IDE (ce qui signifie que vous devez apprendre un autre langage de programmation. Cependant, puisque vous avez déjà posté une réponse, je
Je
@Manishearth Ah, je vais le modifier pour refléter cela si vous le souhaitez. Là encore, nous pourrions faire avec plus de questions ...
Polar
J'en poserai une autre, cela deviendra trop large si je
fourre ça dedans
@Manishearth Ok :)
Polar