Go Down

Topic: Comment supprimer l'auto-reset du port com d'un arduino nano ? (Read 320 times) previous topic - next topic

astrofab

Bonjour la communauté,

Je souhaiterais supprimer l'auto-reset de l'arduino quand un programme Python établit une communication série via le connecteur USB.

Il semblerait qu'il y ait deux possibilités que j'ai donc essayé :

1/ Une hardware, en mettant une résistance de 110 ohm entre le pin reset et le 5v.

Voir le site de arduino : "You may also be able to disable the auto-reset by connecting a 110 ohm resistor from 5V to the reset line; see this forum thread for details."

Ou sur le post de f-leb : forum developpez.net

J'ai essayé de reproduire cette manip sur mon nano branché sur un shield I/O. Il y a dessus un point à souder écrit : "RST"
J'imagine que c'est le pin reset. J'ai donc branché une résistance de 130 ohm, n'ayant pas de 110 ohm, entre le reset et le 5v.
Ben... Ca ne marche pas. L'arduino reset a chaque fois que le script python se connecte au port com.

Ce qui me tracasse, c'est de brancher le point "RST" au +5v à travers une résistance de 110 ohm (130 ohm pour moi).
Quand je mesure la tension au point "RST", j'ai déjà 5v. Alors je ne vois pas l'intérêt de le brancher de nouveau sur le 5v avec une résistance.
Du coup, j'ai essayer de brancher ce point "RST" à la masse a travers la résistance.
Le script python ce connecte à la carte, visiblement ouvre le port com, envoie l'instruction mais rien ne se passe du coté arduino. Pas de réaction ni retour d'information. Le script se referme sans message d'erreur mais rien ne s'est passé.
Du coup, je suis passé à la solution suivante.


2/ Une software en modifiant le bootloader.

Il semblerait que l'on puisse changer le bootloader. Voir sur cette page lien, mais je ne comprends pas la manip. On peut malgré tout, télécharger le package dans lequel il y a le fichier .hex

En faisant des recherches, je suis tombé sur hexUploader pour Mac mais il existe l'équivalent pour PC.
Une manière élégante de uploader le bootloader sans passer par un programmateur ou à travers un autre arduino.
Voir le tuto...

Ben... J'y arrive pas non plus...
J'ai un message d'erreur : "avrdude: stk500v2_ReceiveMessage(): timout"

N'ayant pas eu de succès avec ces deux solutions, j'aimerais avoir vos retours d'expériences concernant ce problème d'auto-reset et vos solutions pour un arduino nano.

Merci par avance...

hbachetti

Non, la solution est uniquement hard.

Comme tu peux le voir sur le schéma :



La pin DTR du FT232 ou du CH340 agit directement sur la pin RESET du processeur à travers un condensateur de 100nF.

Solution : supprimer ce condensateur.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

astrofab

Merci hbachetti,

Ou se trouve ce condensateur sur un nano ?
Et pourquoi la solution préconisé par arduino en mettant une résistance de 110 ohm ne fonctionnerait pas ?

hbachetti



Avec une résistance on réduit la largeur de l'impulsion mais elle existe quand même.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

hbachetti

Il est bien entendu qu'après avoir retiré le condensateur tu dois appuyer sur le bouton pour charger un nouveau sketch ?
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

astrofab

Encore merci !

Dois-je obligatoirement remplacer cette résistance ?
Parce que dessouder le condensateur et la résistance, c'est jouable mais ressouder une résistance sur si peu de place, ça doit pas être très évident.

hbachetti

Non, la résistance tu t'en fous. Elle n'est même pas présente sur toutes les cartes.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

astrofab

Génial !

J'ai donc dessoudé le condensateur.
Ça marche nickel, plus d'auto-reset a l'ouverture des scripts python.

Merci beaucoup hbachetti pour tous ces conseils.

hbachetti

Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Go Up