Il y a peu de temps, j’ai acquis 2 atmega328 chargés avec le bootloader Duemilanove. J’aime mettre la main à la pâte. J’ai donc placé un atmega sur une breadboard, avec un quartz de 16 MHz et ses 2 condensateurs, un bouton de reset muni d’une résistance pull-up de 10K, une led de contrôle de l’alimentation et la led à laquelle aucun arduinophile débutant n’échappe : celle de la Pin Arduino 13 (= Pin 19 de l’Atmega).
N’ayant pas le câble USB officiel de l’Arduino, j’ai utilisé un adaptateur USB-TTL acheté sur eBay il y a quelques mois pour moins de 3 euros, envoi de Chine compris. Cet adaptateur fonctionne très bien mais il nécessite d’appuyer manuellement sur le bouton Reset pour démarrer la programmation.
Ce n’est pas un gros problème d’appuyer sur le bouton. Ce qui est plus délicat, c’est le tempo. Avec ce Duemilanove, j’obtenais de bons résultats en appuyant avant le lancer la commande Upload et en relâchant le bouton dès que le message « Binary sketch size: xxxx bytes » apparaissait.
Malgré le bon fonctionnement du système, je me suis demandé qu’est-ce que le câble USB officiel avait de plus pour déclencher l’AutoReset, et j’ai trouvé cette page :
http://www.arduino.cc/playground/Learning/AutoResetRetrofit
On y explique que pour provoquer l’AutoReset, il faut relier le signal DTR à la Pin 0 de l’Atmega (la Pin de Reset) à l’aide d’un condensateur de 0,1 µF.
Mon adaptateur mesure 15 x 20 mm et se présente comme ceci :
A l’arrière, on peut y lire la dénomination des pin :
Je me sert du +5V pour alimenter l’atmega et les signaux Tx et Rx sont évidement reliées aux Pins Rx et Tx de l’Atmega.
J’ai essayé de relier la Pin RST au Reset de l’atmega, mais je n’ai obtenu aucun résultat.
L’adaptateur comporte au centre un chip minuscule. A l’aide d’une loupe, on peut y lire CP2102. Un coup d’œil à la datasheet m’apprend qu’il s’agit d’un chip de Silicon Labs constituant un pont USB-UART dont voici le brochage :
On voit qu’il y a bien une Pin de sortie DTR, correspondant à la Pin 28 du chip. J’ai donc décidé d’essayer de souder un condensateur de 0,1µF entre cette Pin et la broche RST de l’adaptateur. Après quelques mesures et observation par transparence, j’ai vu que la broche RST était reliée au 5V par l’intermédiaire de la résistance SMD R2 de 2,2Kohm. Sous une loupe binoculaire, j’ai soudé le condensateur à la Pin 28 et à la résistance R2.
Dans un premier essai, je n’ai pas coupé la piste menant de R2 au 5V, me réservant cette manœuvre au cas où le Reset ne fonctionnerait pas.
En fait, l’AutoReset fonctionne parfaitement comme cela. Il suffit donc maintenant de relier la broche RST à la Pin0 de l’atmega pour profiter de l'AutoReset.
Cet adaptateur est toujours disponible sur eBay. Il suffit de faire une recherche sur CP2102. Il n’y a que l’embarras du choix, et c’est très très léger pour le portefeuille. Le seul point délicat est la soudure sous une grosse loupe.
Zut, comment fait-on pour insérer des images dans le texte. Mes images sont sur Picasa web. En inscrivant les adresses entre "img" et "/img" çà ne marche pas !
Finalement, je suis obligé d'inclure seulement les adresses des images au lieu des images elles-mêmes.
Edit de Jean-François : pour les photos, c'est fait... XD