DOMOLOGIS

La domotique pour votre logis!

DOMOLOGIS

La domotique pour votre logis!

ARDUINO TUTORIEL-DIY diy-4-controleur-usb

DIY-4-CONTROLEUR USB

6470
Par Benjamin Printemps, publié le 21/02/2016
Mise à jour le, 01/01/2018

Description :

Le but de ce tutoriel est de fabriquer sa propre carte de prototypage à l’image de l’Arduino-Uno. Pour ce faire je vais vous détailler sur plusieurs parties les différentes composantes de la carte, de la partie alimentation à la partie contrôler USB…  Nous verrons tout pour reproduire à moindre frais notre carte, sans perte de fonctionnalité comparée à l’original Arduino-Uno.
arduino

Plan du tutoriel

> Partie1- Le Bootloader.

> Partie2- Réalisation montage standalone.

> Partie3- Montage de l’alimentation.

> Partie4- Intégration du contrôleur USB.

> Partie5- Assemblage de la carte.


Approche du contrôleur USB

Test des contrôleurs CH340G & CP2102, intégration du contrôleur & finalisation du prototype Arduino DIY.

  • Sur l’Arduino la partie contrôleur USB est certainement la plus complexe et la plus intéressante. Le principal intérêt de maitriser ce processus et de pouvoir s’affranchir de la carte originale afin de fabriquer ses propres cartes de prototypage à moindre frais.

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.


Contrôler CH340GControleur_USB_CH340G

Présentation

Nom : USB To RS232 TTL CH340G Converter Module Adapter STC

Prix : 1 €

Pin :

5V

VCC

3V3

TXD

RXD

GND


Utilisation

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.


Montage

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_controleur USB CH340G

Intégration du controleur USB CH340G

Configuration IDE Arduino

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.


Contrôleur CP2102Controleur_USB_CP21002

Présentation

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


Utilisation

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.

Montage 

Intégration du contoleur USB CP21002

Intégration du contoleur USB CP2102

Configuration IDE Arduino 

-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.


BILAN

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

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 ?

Schéma récapitulatif de notre carte DIY (sans ajout)

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

Récapitulation: ATmega standalone avec alimentation


Intégration du contrôleur CP2102

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 controleur USB et de l'alimentation

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.


Le point final de notre prototype : Intégration du poly-fusible rearmable 

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

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

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 !

 

Tags : Atmega contrôleur , CH340G , communication série , contrôleur , contrôleur USB , controler , controler USB , CP2102 , CP210X , DTR , pin DTR
Postez vos commentaires

Auteur/ email
Objet

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,