Ce topic n'est pas vraiment original, mais il rassemble divers éléments épars pour la réalisation à peu de frais d'un programmateur USB ultra simple sur base du FT232R. Ceux qui possèdent un Arduino avec chip FT232 savent probablement déjà qu'ils peuvent se servir de leur Arduino comme programmateur USB d'un Atmega standalone. Ceux qui ont un Arduino Uno ou autre Arduino de type "raccordement série" peuvent facilement se construire le programmateur ci-dessous, rendant ainsi leur platine comparable au Duemilanove.
Poursuivant la voie commencée ici USB et standalone - #11 by Jean-Marie - Français - Arduino Forum j'ai monté le FT232R sur une breadboard.
Pour le raccordement à l'USB, j'ai monté un petit connecteur USB B sur un petit morceau de plaque pré-perforée.
Pour rappel, le programmateur consiste simplement en un circuit intégré, le FT232RL :
Celui-ci est soudé sur une platine d’adaptation au format DIP :
J'ai travaillé à la loupe binoculaire. La platine est achetée car je ne suis pas du tout certain de pouvoir réussir un circuit imprimé au format SSOP. J'ai d'abord étamé chaque piste, puis j'ai étamé chaque patte mais pour les pattes, je me demande si elles ne possédaient pas déjà de la soudure. Un ami m’a signalé qu’il valait mieux étamer les pistes à la pâte d’étain pour éviter les « bourrelets » de soudure. Ensuite, je positionne le mieux possible la patte N°1 en tenant la puce à la main et je la touche une seconde de la pointe du fer à souder. Je fais la même chose avec la patte N°15. Ensuite il n'y a plus qu'à toucher successivement les autres pattes. Enfin, je vérifie à l'ohmmètre que chaque patte est en contact avec la pin DIP et qu'aucune patte n'est en court-circuit avec ses voisines. Il n'y a plus qu'à prier pour que la puce n'ait pas cramé. Le même ami m’a dit qu’il était assez dangereux de tester les courts-circuits à l’ohmmètre car cela pourrait produire des dégâts dans le chip.
Le FT232R transforme le signal USB en signaux série. Pas seulement Tx et Rx, mais aussi tous les autres signaux. J'ai juste ajouté 3 condensateurs et une petite platine pour adapter le connecteur USB à la breadboard. C'est l'USB qui alimente le tout. Quatre des pins du FT232R sont simplement raccordés à MOSI, MISO, SCK et RESET de l'Atmega8.
Le prix de revient du FT232R + la platine d'adaptation DIP + 28 pin est très exactement de 3€ (envoi du matériel compris). Il pourrait donc être inclus sur une platine .
Voici le Pinout du FT232R :
On reconnait les 8 signaux de la liaison série.
Voici comment m’est venue l’idée de cette expérimentation. J'étais tombé sur le site suivant:
http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html
Ce site explique comment se servir d'un Arduino comme programmateur d'AVR.
Il faut donc implanter des pins en X3:
Puis raccorder ces pins au connecteur ICSP:
Le connecteur X3 peut être trouvé sur le schéma de l'Arduino Duemilanova:
On voit donc que les pins utilisées sont les suivantes:
• Pin 11 (signal CTS) vers X3(1) à ICSP1 (=MISO)
• Pin 9 (signal DSR) vers X3(2) à ICSP3 (=SCK)
• Pin 10 (signal DCD) vers X3(3) à ICSP4 (=MOSI)
• Pin 6 (signal RI) vers X3(4) à ICSP5 (=RESET)
Voici donc le schéma que j’ai adopté :
Lors du raccordement du programmateur à l’USB, il faut installer les drivers de FTDI. Ceux-ci ajoutent un port com.
On utilise une version modifiée de avrdude (avec ajout d'un programmateur supplémentaire: le FT232R Synchronous BitBang (diecimila). Pour éviter d'utiliser avrdude en ligne de commande, il s'utilise avec l'interface graphique suivante:
Le site http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html est très bien fait et en suivant minutieusement toutes les étapes mentionnées, le montage sur la breadboard a fonctionné dès le premier branchement à l'USB, ce qui est suffisament rare pour être mentionné. Comme j'ai fait l'essai avec un Atmega déjà configuré à 16 MHz, j'ai directement pu le programmer sans passer par l'étape de la basse vitesse.