Je ne comprends pas le concept Arduino

8

J'ai du mal à fabriquer un Arduino pendant un certain temps (j'ai réussi à faire une version de planche à pain en utilisant un câble de programmation ISP ). Ils disent que le chargeur de démarrage Arduino est conçu pour qu'aucun circuit externe ne soit nécessaire pour programmer l' ATmega8 . Mais quand j'ai regardé les schémas, il y a le circuit normal requis pour la connexion série. Que fait alors le chargeur de démarrage?

Rick_2047
la source
1
aucun circuit externe n'est une prétention absurde ... pour parler à un ordinateur sur un port série, vous avez au moins besoin d'un émetteur-récepteur RS232, comme un MAX232 d'une certaine sorte; ou comme le fait l'arduino, vous pouvez parler TTL UART directement à une puce d'interface USB comme les FTDI.
vicatcu

Réponses:

12

Le chargeur de démarrage est un petit programme dans le flash de l'AVR qui n'est jamais écrasé et fonctionne au démarrage. Le travail du chargeur de démarrage consiste à lire les données du programme à partir de l'UART et à les écrire sur la mémoire flash interne. Sans chargeur de démarrage, la seule façon de charger du code est d'utiliser ISP.

L'AVR ATMega8 est livré sans code dans le flash. Le code peut être téléchargé via les broches ISP (in-system-programming), en utilisant un programmeur AVR ISP (ou même un autre Arduino).

Pour Arduino, le FAI n'est utilisé qu'une seule fois (à la fabrication) - pour télécharger un petit chargeur de démarrage. Au démarrage, le chargeur de démarrage s'exécute et communique avec l'UART série (broches TX + RX). Maintenant, Arduino peut être programmé via les broches série en utilisant le protocole STK500.

Comme les broches série sont (généralement) connectées à une puce FTDI USB vers série, l'Arduino peut également être programmé via USB.

Toby Jaffey
la source
Donc, vous dites que si j'ai une puce atmega8 avec un chargeur de démarrage gravé, je peux supprimer tous les circuits du FAI et simplement connecter les broches appropriées de la série à l'arduino? Pouvez-vous aussi me dire comment connecter la série avec l'atmega8
Rick_2047
2
Une fois que vous avez le chargeur de démarrage, voici un circuit Arduino très minimal. Connectez votre PC (via un convertisseur de niveau TTL) aux broches TX / RX / GND. profmason.com/wp-content/uploads/2008/09/arduinopins.jpg Voir cette question pour plus de détails: chiphacker.com/questions/2512/ftdi-basic-breakout-5v
Toby Jaffey
1
Le max232 convertit le niveau série RS232 (comme cela vient du connecteur 9 broches sur un PC) en signaux de niveau TTL (5v) appropriés pour parler à l'Arduino / AVR. Le circuit max232 peut être remplacé par une puce série FTDI USB vers TTL pour se connecter à un PC.
Toby Jaffey
2
Une petite note ici: le chargeur de démarrage Arduino n'écoute sur le port série le nouveau code que très brièvement au démarrage. Les chargeurs de démarrage Arduino plus anciens attendent quelques secondes avant de commencer à exécuter le code. Les chargeurs de démarrage plus récents démarrent très rapidement et doivent être réinitialisés par la ligne DTR à partir d'un FT232. Si vous prévoyez d'utiliser un max232, téléchargez l'ancien chargeur de démarrage. Consultez également Sparkfun ( sparkfun.com/commerce/tutorial_info.php?tutorials_id=104 ) pour obtenir d'excellents didacticiels AVR.
bpijls
2
C'est le code objet AVR réel. L'Arduino bat certaines plates-formes rivales (par exemple, Basic Stamp) en ce qu'il exécute le code objet compilé et non un interprète.
Toby Jaffey
3

Vous pouvez acheter des puces ATmega328 avec le chargeur de démarrage ici .

Leon Heller
la source
Je viens d'en commander 4 aujourd'hui (sur le site ZA cependant) :)
leppie
1

Ils signifient probablement que si vous achetez un Arduino Uno pré-construit et assemblé, vous n'avez pas besoin d'acheter un programmeur. Comme avec beaucoup d'autres kits de démarrage électroniques. Vous pouvez programmer la carte Arduino Uno avec juste un câble USB (A> B).

Cependant, si vous envisagez de créer votre propre Arduino, vous aurez bien sûr besoin d'un circuit externe (par exemple un programmeur AVR ISP) ou du type Max232 ou FTDI.

Superpelican
la source
0

L'idée derrière le chargeur de démarrage Arduino est que vous n'avez pas besoin de matériel ou de circuits spécialisés pour les reprogrammer, par rapport à la programmation initiale de celui-ci, ou d'un microcontrôleur plus ancien, qui nécessite souvent un programmeur dédié (comme PicKit2 pour les microcontrôleurs PIC). Le chargeur de démarrage permet de programmer sur une connexion série de base.

Bien sûr, à l'époque, vous aviez besoin de la liaison série, généralement un convertisseur rs232 de TTL à RS232. Ensuite, les ports série étant progressivement supprimés, l'usb vers la série est devenu omniprésent, ce qui permet de remplacer un max232 ou similaire. Et maintenant, l'utilisation du microcontrôleur Atmel compatible USB permet même que cela ne soit pas nécessaire, donc un seul ic avec des pièces passives minimales pourrait fournir les fonctions Arduino et USB vers série. Maintenant, vous n'avez besoin que d'un câble USB et de quelques câbles passifs pour télécharger un croquis. La programmation initiale du chargeur de démarrage nécessite toujours une programmation ICSP traditionnelle.

Passant
la source