J'utilise normalement un Arduino pour mes projets, car il a des entrées et des sorties 5V et un 5V Vin, ce qui facilite grandement la vie lors de l'interface avec des composants 5V. Pour ce projet, je souhaite utiliser un Raspberry Pi car je souhaite le brancher à un écran. Le Pi est alimenté par 5V, donc c'est assez simple. Il a cependant des broches 3.3VI / O et les périphériques avec lesquels je veux me connecter sont 5V.
J'ai un appareil avec une broche d'entrée 5V, qui doit être piloté à 5V. Le périphérique a une broche de sortie de 5V, qu’il commande à 5V lorsqu’il sort.
J'ai déjà converti de manière bidirectionnelle entre les appareils 5V et 3,3V, mais c'était avec un sélecteur de niveau logique qui était actif LOW. Le circuit est typique avec un transistor et une diode et deux résistances de rappel. Cette application nécessite actif HIGH. Heureusement, ce projet ne nécessite pas d’entrées / sorties bidirectionnelles.
Pour la direction de 5V à 3,3V, un diviseur de tension brut fonctionnera.
Pour la direction 3,3V à 5V cependant, je ne connais pas de solution facile. J'ai fait quelques recherches et il semble y avoir des convertisseurs élévateurs (convertisseurs élévateurs CC-CC), mais pour les construire à partir de composants discrets, il faut créer un circuit PWM pour piloter la commutation.
Je me demandais simplement s'il existait un moyen plus simple d'y parvenir, avec une complexité comparable à celle du système de décalage de niveau logique bas actif.
la source
Réponses:
Depuis que Dave Tweed a souligné la faille dans l’autre réponse, j’ai essentiellement copié ma réponse dans le sélecteur de niveau à transistor simple ... Notez également la solution intéressante proposée par Nicolas D dans la question.
J'ai quelques solutions (quelques solutions fournies par Microchip ICI ):
1) Connexion directe: Si Voh (tension de sortie haut niveau) de votre logique 3,3 V est supérieur à Vih (tension d'entrée haut niveau), tout ce dont vous avez besoin est une connexion directe. (Il est également nécessaire pour cette solution que Vol (tension de sortie de bas niveau) de la sortie de 3,3 V soit inférieur à la Vil (tension d'entrée de bas niveau) de l'entrée de 5 V). Cette solution est le plus souvent rejetée en raison de marges insuffisantes.
2) Si les conditions ci-dessus sont proches, vous pouvez souvent augmenter légèrement la tension de sortie de niveau élevé avec une résistance de rappel (à 3,3 V) et connecter directement les signaux.
3) La résistance de rappel peut fournir une petite quantité d’augmentation de tension de haut niveau. Pour plus, vous pouvez utiliser des diodes et pull-up à 5V. Le circuit présenté ne montera pas à 5V, mais il augmentera la tension d'entrée de haut niveau de la logique 5V de la valeur d'une chute de tension de diode (environ 0,7 V). Avec cette méthode, vous devez veiller à ce que vous ayez toujours un niveau bas valide, qui est également relevé par une chute de diode. Les diodes Schottky peuvent être utilisées pour une légère augmentation de la tension de haut niveau tout en minimisant l'augmentation indésirable de la tension de bas niveau. Reportez-vous à la note d'application mentionnée ci-dessus pour plus d'informations sur ce circuit:
simuler ce circuit - Schéma créé à l'aide de CircuitLab
4) Si vous pouvez faire face à une inversion logique (et ne nécessitent pas de pull-up actif), une mosfet et une résistance de pull-up peuvent être utilisées:
simuler ce circuit
5) Il existe également de nombreuses solutions logiques telles que: MC74VHC1GT125 qui est un "décaleur de niveau logique / tampon CMOS non inverseur avec des entrées compatibles LSTTL" dans un boîtier SOT23-5 ou SOT-353. Petit simple et assez peu coûteux. L'utilisation de cette solution devrait également inclure un condensateur de découplage situé près du circuit intégré.
la source