Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Energie > Adapter les niveaux électriques

Adapter les niveaux électriques

samedi 7 juillet 2012, par Julien H.

Si vous avez réussi à fournir une alimentation à chacune des cartes de votre robot, bravo ! Mais peut-être certaines cartes doivent-elles communiquer ensemble ? Et là, il faut faire attention à ne pas provoquer d’incident avec un risque de griller les composants les plus sensibles.

Le problème

Le cas le plus fréquent est la connexion d’un capteur fonctionnant en 5 volts sur une carte programmable fonctionnant en 3.3 volts. Nous ne referons pas l’histoire mais vous pouvez consulter cet article de 2008 sur les différentes tensions. On mentionnera juste que les circuits à tension TTL (5 volts) ont été suivis de circuits à tension CMOS (3.3 volts) pour des raisons de consommation et de miniaturisation. D’ailleurs les processeurs des ordinateurs puissants sont déjà à des tensions inférieures (1.8 volts) pour permettre de faire passer plus d’informations sur une plus petite surface sans échauffement et en minimisant les parasites.

Le cas que nous allons présenter est une communication I2C entre une carte Arduino et une carte Raspberry Pi. Il y a un piège : la carte RPi s’alimente aussi en 5 volts, on pourrait donc croire que l’on va relier les pattes du connecteur d’extension correspondant à l’I2C aux pattes I2C de l’AVR de la carte Arduino. Ce serait pareil pour l’UART (liaison série).

Que Nenni ! Les signaux GPIO sont en 3.3 volts, qui est la tension de la puce ARM11 qui équipe la Raspberry Pi et sur laquelle ces signaux sont connectés. Il y a bien une conversion du 5 volts en 3.3 volts pour l’alimentation, mais toute la logique est ensuite en 3.3 volts. Cet article est donc valable pour tous ces autres signaux.

Ce qu’il faut faire

 Relier les masses : obligatoire.
 Relier les tensions : seulement pour alimenter la carte fille, sauf si elle dispose déjà de sa propre alimentation.
 Relier les signaux : c’est l’objet de cet article.

Notez bien qu’il ne faut pas relier le 5V de la Raspberry Pi au 5V de l’Arduino ni le 3.3V de la Raspberry Pi au 3.3V de l’Arduino. Ce n’est pas de l’informatique, c’est de l’électronique ;)

Une solution toute faite

Pour moins de 2 euros (mais il faut prendre en compte les frais de port), un petit circuit est proposé par Sparkfun. Ce sont de simples transistors mais avec une belle astuce pour proposer l’adaptation des tensions électriques sur deux pattes avec un seul transistor.

L’utilisation de cette carte sera présentée lors de nos ateliers, et dans un article dédié au circuit Logic Level Converter.

Autres solutions

Cet article a pour but d’identifier le problème et de définir plusieurs solutions : si vous en connaissez, surtout si elles sont pas chères et faciles à mettre en oeuvre, contactez-nous pour en faire profiter le plus de personnes.

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.