> Partie2- Réalisation montage standalone.
> Partie3- Montage de l’alimentation.
> Partie4- Intégration du contrôleur USB.
> Partie5- Assemblage de la carte.
Test des contrôleurs CH340G & CP2102, intégration du contrôleur & finalisation du prototype Arduino DIY.
Pour ce faire j’ai donc testé pour vous de multiples contrôleurs USB vendus sur le net. Nous allons voir ensemble le fonctionnement de deux d’entre eux, les contrôleurs USB-serial CH340G et CP2102.
Nom : USB To RS232 TTL CH340G Converter Module Adapter STC
Prix : 1 €
Pin :
5V
VCC
3V3
TXD
RXD
GND
Les pins RXD et TXD du contrôleur sont primordiales car c’est par elles que va passer notre flux de data. L’une est réservée à la réception (RX), quand l’autre gère l’émission(TX). Jeter un œil sur le pin mapping de votre ATmega vous trouverez deux pins équivalentes (Rxd & Txd).
Le module est pourvu d’un cavalier permettant de modifier la tension de sortie d’alimentation (3.3v ou 5v).
-Le cavalier est placé entre les pins 5V et VCC => le contrôler délivrera 3.3V.
-Le cavalier est placé entre les pins 3.3V et VCC => le contrôler délivrera 5V.
Le module CH340G est fonctionnel à un prix intéressant, toutefois la difficulté avec ce type de module est qu’il ne possède pas de pin DTR.
Le Data Terminal Ready ou DTR est un signal de commande utilisé dans les communications séries permettant à un élément de signaler qu’il est prêt à un autre élément.
Le pin DTR se connecte habituellement au pin reset de votre microcontrôleur, cela permet de réinitialiser le port COM à un moment précis afin de permettre le fonctionnement normal du téléversement. Ainsi sans ce pin DTR le téléversement de votre ATmega devrait échouer à chaque fois. Problématique, non ?
Toutefois si vous possédez déjà ce modèle une alternative s’offre à nous ! Nous allons voir comment contourner ce problème.
Afin de contourner le problème lié à l’absence de pin DTR, nous allons simplement presser le bouton reset à un instant précis et le relâcher à un instant bien définit lui aussi.
Installer le bouton reset
A partir du GND et du VCC de votre contrôleur USB nous allons donc ;
– insérer une résistance pull-up (10K), entre le RST et 5v Arduino.
– insérer un bouton reset entre pin RST Arduino et GND du montage.
Ceci ne diffère pas du montage précédent pour l’installation d’un bouton reset (cf.Schéma 3 : Standalone final)
Intégration du controleur USB CH340G
Le montage est maintenant prêt et seule la méthode vous manque pour pouvoir téléverser sans difficultés votre ATmega sur breadboard.
-Choisir le port COM approprié (si aucun port n’est détecté, alors télécharger et installer le driver CH340G ).
-Choisir le matériel à téléverser / et le processeur si nécessaire.
-Choisir le programmeur, « Parallele Programmer ».
-Avant de démarrer le téléversement, vous devrez maintenir enfoncer le bouton que nous venons d’installer, puis lancer le téléversement sans relâcher le bouton reset. Cela peut durer quelques secondes, enfin aux premiers clignotements des LED de votre contrôler USB il faut immédiatement relâcher le bouton reset et le téléversement se termine.
note:Si le téléversement échoue, retenter l’opération en relâchant au moment du second clignotement. L’instant précis est parfois difficile à cibler alors retenter l’opération plusieurs fois si necessaire.
Nom: CP2102 USB 2.0 to TTL UART Module 6Pin Serial Converter STC
Prix : 1.30 €
Pin :
Vcc 5v
Vcc 3.3
DTR
GND
RXD
TXD
Le module est fonctionnel à un prix intéressant, il possède le pin DTR qui se connecte via un condensateur 100Nf (104) au pin reset de votre microcontrôleur. Ce contrôleur possède deux pins de sortie d’alimentation simultanée, délivrant 3.3v & 5v. Le module CP2102 fonctionne donc parfaitement sans complication.
Intégration du contoleur USB CP2102
-Choisir le port COM approprié (si port non détecté alors installer le driver CP2102).
-Choisir le matériel à Téléverser / et le processeur si nécessaire
(Par exemple, pour un ATmega328P-PU en standalone, nous sélectionnerons simplement la carte Arduino-Uno).
-Choisir le programmeur, « Arduino as ISP ».
-Puis Téléverser normalement.
Avec ce contrôleur, la méthode est similaire à ce que vous avez l’habitude de faire avec votre Arduino. Pensez seulement à bien choisir le programmeur, « Arduino as ISP », et non le « AVRISP mkII », comme nous en avons l’habitude.
Le module CH340G est intéressant mais il entraîne des complications de téléversements non négligeables et comme je vous ai promis une carte Arduino Uno DIY sans perte de fonctionnalité nous allons évidemment poursuivre notre carte avec le module CP2102, bien que beaucoup d’autres modules auraient pu faire l’affaire. Sur nos cartes de prototypage DIY, le CP2102 va donc remplacer le contrôler USB du Arduino Uno original (l’ATmega 8, visible ci-dessous).
Controleur USB ATmega8
Sachez enfin qu’avec les deux méthodes que nous venons de voir (avec et sans pin DTR), vous pourrez adapter à peu près n’importe quel contrôler USB-serial avec vos microcontrôleurs préférés, plutôt pratique ne croyez-vous pas ?
Voici un schéma qui récapitule ce que nous avons fait jusqu’à maintenant, pour plus de détails, n’hésitez pas à revenir vers les parties précédentes.
Sur la gauche, vous pouvez voir la partie ATmega standalone avec son bouton reset.
Au centre, le connecteur d’alimentation.
A droite, l’ensemble du montage d’alimentation régulé délivrant du 5VCC et 3.3VCC.
Récapitulation: ATmega standalone avec alimentation
Nous allons maintenant tout assembler avec le montage du contrôler CP2102 que nous venons de faire.
Voici ce que cela donne :
Assemblage ATmega standalone avec intégration du contrôleur USB et de l’alimentation
A Noter
Remarquer l’ajout de plusieurs diodes, au niveau des deux modules d’alimentation, ainsi qu’au niveau de l’entrée 5V du contrôleur. Celles-ci permettent de contraindre le courant délivré par les régulateurs (via le transformateur branché sur le jack) à ne pas entrer dans le contrôleur USB, et réciproquement.
Par exemple, l’une des diodes contraint le 3.3v qui sort du contrôleur à ne pas traverser le régulateur LM1117 et une autre contraint le courant qui sort du régulateur LM1117 à ne pas aller vers le contrôleur.
Ainsi le contrôleur comme le régulateur sont aptes à fournir du courant, mais chacune de ces sorties est verrouillée.
Eh oui, pour aller jusqu’au bout il nous faut rajouter encore un composant important. Regarder attentivement en bas à droite du schéma ci-dessous, vous trouverez un petit composant nommé F1 (pour fusible 1). Il s’agit d’un poly-fusible réarmable (ou fuse ressetable). Ce petit composant permet de stopper l’alimentation lorsque vous demandez trop de puissance depuis votre carte via le contrôleur USB. Ainsi, plutôt que de s’abimer ou d’endommager la sortie USB de votre ordinateur, celle-ci va proprement redémarrer, ne permettant pas d’alimenter des éléments trop gourmands via le port USB. Ce composant se branche simplement comme un interrupteur sur notre ligne VCC (pole positif) et son seuil de redémarrage sera donné en ampérage. Ainsi un poly-fusible 500mA va disjoncter lorsque la demande en alimentation sera supérieur à 500mA.
Schéma final Arduino-DIY: Intégration du poly-fusible
Pour conclure, afin d’imager les montages réalisés voici mon prototype Arduino-DIY
Le prototype Arduino-DIY
C’est terminé pour aujourd’hui !
Nous avons donc réalisé entièrement notre carte sur breadboard.
Vous pouvez à présent vous amuser, essayer de téléverser, redémarrer, alimenter en USB ou sur secteur… tout fonctionne maintenant comme sur une carte Arduino officielle
Comme d’habitude n’hésiter pas à me faire part de vos difficultés, vos réussites …
La prochaine fois nous terminerons cette expérience avec l’assemblage, afin de graver tout cela dans le marbre, ou plutôt, sur circuit imprimé !
En attendant le dernier volet je vous propose de jeter un œil à ceci, le stylo des Makers, qui nous sera très utile la prochaine fois.
Bonne lecture à tous !
15/Mar/2019 - f.pasquiers@free.fr
Bonjour Tout d'abord merci pour ce tuto, super sympa. Je rencontre un problème pour la com avec le CP2102, cela ne fonctionne pas. Une idée ? Merci
27/Mar/2019 - Benjamin Printemps
Bonjour, Content que le tutoriel soit utile. Désolé pour le délai de réponse. Pouvez-vous nous en dire plus à propos de votre soucis ? A quel niveau cela ne fonctionne pas ? Les diodes du module s'allument-elles ? L'ordinateur reconnaît-il bien le module ? ... Merci de nous en dire un peu plus,