Sortie open drain vs push-pull : les principales différences
Ce sont deux étages de sortie qui délivrent des signaux numériques, mais ils diffèrent dans la façon de produire le niveau H. Une sortie push-pull combine un pMOS côté alimentation et un nMOS côté masse, et pilote activement H comme L avec des transistors : elle est rapide et ne consomme presque aucun courant au repos. Une sortie open drain ne possède qu’un nMOS côté masse : elle tire la ligne vers L, mais pour H elle se déconnecte et une résistance de pull-up remonte la ligne. Le front montant est plus lent, mais plusieurs sorties peuvent partager une même ligne (ET câblé) et la tension de pull-up peut être choisie librement, d’où son usage pour l’I2C et les lignes d’interruption.
| Critère | Sortie push-pull | Sortie open drain |
|---|---|---|
| Structure de l’étage de sortie | Deux transistors : un pMOS côté alimentation et un nMOS côté masse (même forme qu’un inverseur CMOS) | Uniquement un nMOS côté masse. Le drain est relié à la broche ; rien côté alimentation |
| Production du niveau H | Le pMOS conduit et relie la broche à l’alimentation | Le nMOS se bloque et déconnecte la broche (haute impédance) ; une résistance de pull-up externe remonte la ligne |
| Production du niveau L | Le nMOS conduit et relie la broche à la masse | Le nMOS conduit et relie la broche à la masse (identique) |
| Vitesse de montée | Rapide. Le pMOS charge la ligne | Lente. Fixée par la constante de temps RC de la résistance de pull-up R et de la capacité de ligne C (par ex. 4,7 kΩ et 100 pF donnent environ 0,47 µs) |
| Vitesse de descente | Rapide. Le nMOS décharge la ligne | Rapide. Le nMOS décharge la ligne |
| Plusieurs sorties sur une même ligne | Impossible. Si H et L s’opposent, un fort courant circule de l’alimentation vers la masse | Possible. Il suffit qu’une seule sortie délivre L pour que la ligne passe à L (ET câblé) |
| Liaison avec des circuits à une autre tension | La tension H est fixée par la propre tension d’alimentation. Un convertisseur de niveau est nécessaire vers un circuit à une autre tension | La tension H est fixée par le point où est reliée la résistance de pull-up : elle peut s’adapter à la tension du destinataire, dans la limite de la tension admissible de la broche |
| Consommation | Presque nulle au repos (uniquement les fuites). Des courants de charge et de décharge circulent lors des commutations | Tant que la sortie délivre L, un courant traverse en permanence la résistance de pull-up (environ 0,7 mA avec 3,3 V et 4,7 kΩ) |
| Ordre de grandeur de la vitesse | Plusieurs dizaines de MHz ou plus sont possibles | Limitée par la résistance de pull-up et la capacité. En I2C, par exemple 100 kHz, 400 kHz ou 1 MHz |
| Usages typiques | Signaux rapides : signaux SPI et UART, horloges, GPIO courantes, bus mémoire | I2C et SMBus, lignes d’interruption et de reset partagées entre plusieurs composants, liaison avec des circuits à une autre tension, commande de LED |
Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.