Pages: [1] 2 3   Go Down
Author Topic: Un câble de programmation USB à moins de 3 euros  (Read 7536 times)
0 Members and 1 Guest are viewing this topic.
Belgique - Arlon
Offline Offline
Full Member
***
Karma: 0
Posts: 172
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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...  smiley-lol
« Last Edit: August 08, 2011, 02:20:31 pm by Jean-Marie » Logged

Amicalement, Jean-Marie

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Cool merci ! Je garde ton astuce on sait jamais ça peut servir pour plus tard.

Sinon pourquoi s'embêter quand on peut avoir pour le même prix un adaptateur complet ?
ebay -> "FTDI USB to serial UART Module Based TTL FT232RL" 1.10€ smiley-wink

et dans le genre bonne astuce, l'adaptateur apm usb->RS-232 qu'on peut trouver en grande surface pour même pas 7€ contient un CP2102 et un buffer 5v/+-8v (rs-232) donc pour 7€ on peut avoir un câble usb série et rs-232 smiley-wink
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Belgique - Arlon
Offline Offline
Full Member
***
Karma: 0
Posts: 172
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello Skywodd,

J'ai évidemment été voir mais le prix que tu renseignes est une enchère. Le premier prix en "achat immédiat" pour ce module est de 11,26€ + 2,25€ de port.

De plus, ce modèle ne donne pas non plus accès au signal DTR, à moins bien sûr d'y souder à nouveau un condensateur.

Ouf ! Tu m'as fait croire un moment que j'avais passé ma journée pour rien  smiley-wink
Logged

Amicalement, Jean-Marie

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

smiley-eek-blue j'avais pas vu les frais de port désolé, effectivement si ton module est en achat immédiat c'est plus intéressant !

Sinon moi j'ai fait mon bidouillage avec un adaptateur usb/rs232 et là j'en suis sur que c'est un achat immédiat et à 2€ smiley-wink
ebay -> "Câble Convertisseur USB vers RS232/DB9 Série 9 Pin,F111" (il existe différent type mais presque tous à 1€ c'est le genre de truc à savoir)
J'ai découvert cette astuce ici (qu'on ne me demande pas ce que je voulai faire avec ma box hein smiley-wink) http://www.neufbox4.org/wiki/index.php?title=APM_USB_to_Serial_Adapter
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

France
Offline Offline
God Member
*****
Karma: 4
Posts: 971
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci Jean Marie .... et bravo pour avoir été jusqu'au bout !!

J'ai suivi la même démarche .... sans 'conclure' vu la difficulté dans mon cas pour réaliser la soudure sur la broche 28 ! Je suis par contre surpris que cela fonctionne en laissant en place la liaison RST qui est l'entrée de Reset du CP2102. A première vue on pouvais supposer que le passage de DTR à l'état bas provoque dans ces conditions un reset du CP2102 et que cela perturbe le début de l'émission des données vers le bootloader.
Ces modules se trouvent sur ebay avec les mots clefs "USB TTL 6 PIN"
La puce utilisée (Silicon Labs CP2102) a un petit avantage sur celle de FTDI : sortie 3,3V -> près de 100mA disponibles.

PS : quand tu édites un message  tu peux joindre une image ou un document avec "Additional Options"





* DTR.jpg (28.11 KB, 397x467 - viewed 42 times.)
« Last Edit: July 10, 2011, 05:13:58 pm by al1fch » Logged

France
Offline Offline
God Member
*****
Karma: 4
Posts: 971
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Skywodd
ta box a sans doute bénéficié des mêmes soins qu'une Fonera de récupération
munie hier d'un de ces petits modules "Usb-TTL 6 pins" !!



* F2200.jpg (37.05 KB, 432x261 - viewed 52 times.)
« Last Edit: July 11, 2011, 03:51:11 pm by al1fch » Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Super, merci pour ce truc que je mettrai en pratique prochainement sur une des mes standalones.
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@Skywodd
ta box a sans doute bénéficié des mêmes soins ce qu'une Fonera de récupération
munie hier d'un de ces petits modules "Usb-TTL 6 pins" !!
Les grands esprit ce rencontre smiley
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Belgique - Arlon
Offline Offline
Full Member
***
Karma: 0
Posts: 172
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@ Skywodd: merci pour ton article. Il paraît intéressant mais je n'ai fait que le survoler car je m'absente pour 2 jours et je n'ai pas le temps.

@al1fch: Je m'étais dit que RST voulait peut-être dire Reset mais je j'ai pas pensé que ce Reset pouvait s'appliquer au CP2102 lui-même. Je pensais à un Reset de l'Atmega. Cependant, la seule liaison que j'ai trouvé pour cette broche est avec le +5V par la résistance de 2,2K. Je n'ai trouvé aucune trace vers une broche du CP2102.

@Jean-François: C'est probablement à toi que je dois l'affichage des photos dans le texte. Merci. Je crois que j'avais essayé en insérant l'adresse de la page web et non l'adresse de la photo elle-même. Mon plus grand plaisir serait que d'autres réussissent ce mini hacking.
Logged

Amicalement, Jean-Marie

France
Offline Offline
God Member
*****
Karma: 4
Posts: 971
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Jean-Marie
La liaison entre la broche 9 (Reset du CP2102) et la résistance R2 est principalement sur la face inférieure.
La piste est facile à couper en cas de doute !
Couper cette piste n'est à la réflexion pas une bonne idée : il faut laisser au circuit sa résistance R2 de tirage (pull up) sur son reset.


* vers pin 9.jpg (75.1 KB, 607x339 - viewed 24 times.)
« Last Edit: July 11, 2011, 09:58:57 am by al1fch » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 217
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Une adaptation similaire est-elle aussi nécessaire avec cet adaptateur?

USB2.0 to TTL Converter Module PL2303 +4pcs Free cable :


Plus généralement comment savoir si une adaptation et nécessaire?

Par avance merci  smiley


    Edit de Jean-François : pas de lien Ebêee SVP, ils ne sont plus valides après un certain temps et le post perd en compréhension.
« Last Edit: July 11, 2011, 12:56:04 pm by Jean-François » Logged

France
Offline Offline
God Member
*****
Karma: 4
Posts: 971
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oui Ojal l'adaptation est nécessaire car le module ne sort pas les signaux DTR ou RTS suceptibles de resetter le Mega328 et ainsi amorcer le bootloader.
Ces signaux existent au niveau de la puce Prolific PL2303 (broches 2 et 3, voir PDF en lien) mais la soudure d'un fil pour récupérer l'un de ces signaux est quand même acrobatique !!
http://www.prolific.com.tw/support/files/%5CIO%20Cable%5CPL-2303HX%5CDocuments%5CDatasheet%5Cds_pl2303HX_v15F.pdf
Tout module ne sortant pas DTR ou RTS nécessite une modification.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 217
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je comprends bien qu'il faille que la puce utilisée puisse sortir le signal adéquat, néanmoins comment savoir pour un adaptateur donné si l'adaptation doit être réalisée???
Logged

France
Offline Offline
God Member
*****
Karma: 4
Posts: 971
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A mon avis un adaptateur qui fournit RTS, DTR (ou les deux) est utilisable sans modification.
Pour info voir ci dessous le brochage "FTDI" de référence et un exemple d'adaptateur qui fournit  DTR a la place de RTS.
-> S'il n'y a ni DTR ni RTS, il faut aller en chercher un des deux sur la puce.


* Cable FTDI.jpg (11.27 KB, 282x138 - viewed 33 times.)

* full.jpg (39.77 KB, 453x228 - viewed 41 times.)
« Last Edit: July 11, 2011, 03:47:07 pm by al1fch » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 217
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Ce n'était pas possible de rajouter le condensateur après la sortie de la pin RST??? Facilement réalisable plutôt que de venir micro-souder comme tu l'as fait...??? J'imagine que tu as essayé cette solution???
Logged

Pages: [1] 2 3   Go Up
Jump to: