Conversion signaux 3.3v / 5v

Je viens de voir passer une demande de conversion de signaux entre 3.3v et 5v et comme je viens d’avoir moi-même le problème, je vous présente ma solution « poor man ».

Sortie en 5v vers entrée en 3.3v

En fait, il faut savoir que les fabricants de composants ajoutent volontairement, ou pas, des diodes qui protègent les entrées des composants.  Chez National Instruments, dans cet exemple, c’est représenté comme ça :

Clamping diodes

Ces diodes protège d’abord des décharges électrostatiques mais elles peuvent aussi éviter des sur ou des sous-tensions appliquées en entrées, à condition bien sûr, que les courants restent modérés. Car
courant * chute de tension = puissance (P = U*I),
donc échauffement puis destruction du composant.

Si l’on reprend l’exemple de NI et que l’on fixe la valeur de la résistance R1 dans le schéma précédent à une dizaine de KΩ. Quand on applique une tension Vout de 5V, on limite le courant qui traverse la diode vers le 3.3v à :

imax = U / R = (5 - 3.3) / 10K = 0.17 mA

Voilà en gros, 0.2 mA qu’une entrée « tout ou rien » peut tout à fait supporter pendant des heures.

Sortie en 3.3v vers entrée en 5v

Dans ce sens, c’est moins trivial, mais on va aussi utiliser le même principe. De fait, la tension appliquée sur l’entrée n’est pas destructrice, mais le niveau du signal pourrait être insuffisant pour être correctement détecté comme un signal « haut ». L’astuce ici va être de profiter d’une capacité de certains composants, comme les microcontrôleur de changer l’état de d’une broche en la configurant comme une entrée (à haute impédance avec les diodes de protection) ou comme une sortie.

Ça limite les cas d’usage puisque la sortie doit être contrôlable (microcontrôleur en 3.3v et périphérique en 5v).

Pour transmettre un signal « bas », on met la sortie du micro-contrôleur au niveau « bas », ce qui la transforme en consommateur (sink) de courant.

Si l’on choisit cette fois, une résistance R2 de 100KΩ, le courant absorbé est alors de :

imax = U / R = 5v / 100K = 0,05 mA

Pour transmettre un signal « haut », il suffit de mettre la patte en entrée, ce qui la transforme en rien (haute-impédance) soit une forte résistance, de l’ordre du MΩ et plus, qui ne peut plus absorber de courant. La résistance R2 est donc traversée vers un courant qui retourne, via la diode de clamping, au 3.3v. Du fait de ses pertes interne, la diode assure à l’entrée une tension maxi d’environ 3.3v + 0.6v = 3.9v, niveau de tension qui suffira pour que l’entrée du composant à commander identifie un niveau « haut ».

Et voilà !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *