Le multiplexage est-il jamais supérieur au Charlieplexing?

17

J'ai passé en revue les deux méthodes, et le multiplexage ne semble vraiment avoir qu'un seul avantage, qu'il serait plus facile de retrouver une LED défaillante que dans une baie Charlieplex.

Quelqu'un de plus compétent peut-il expliquer d'autres compromis?

Chris B. Behrens
la source

Réponses:

26

Oui, le multiplexage et le charlieplexing ont tous deux leurs avantages et sont chacun les mieux adaptés à différentes tâches.

Le principal avantage du charlieplexing est qu'il peut être effectué sur un microcontrôleur de taille moyenne, entraînant plus de LED avec moins de broches d'E / S et potentiellement aucun matériel externe en plus des LED.

Désormais, l'avantage de «aucun matériel externe» ne s'applique qu'à un nombre relativement petit de LED, jusqu'à ce que vous atteigniez la limite actuelle de votre microcontrôleur, et il impose une limite de luminosité que les baies multiplexées n'ont pas. Si vous choisissez de ne pas utiliser de matériel externe, vous êtes généralement limité à piloter une seule LED dans la matrice à un moment donné - contrairement à un réseau multiplexé où vous conduisez une rangée complète à la fois.

Une fois que vous avez ajouté du matériel externe pour piloter les LED avec une luminosité plus élevée pour correspondre à celle d'un réseau multiplexé, charlieplexing perd son éclat.

Tout d'abord, un tableau multiplexé est strictement adressé par ligne et colonne; c'est très simple de le faire. Activez la ligne 1, activez toutes les colonnes de la ligne 1, désactivez la ligne 2, activez toutes les colonnes de la ligne 2, etc. En revanche, un réseau charlieplexed est beaucoup moins simple. Il y a toujours une ligne diagonale qui est inutile, et j'utilise personnellement des tables de recherche pour établir une relation entre mes tableaux et un tableau rectangulaire où je stocke mes données.

Deuxièmement, et un tueur, c'est que le charlieplexing nécessite généralement des pilotes à trois états. Le multiplexage, cependant, est effectué avec une logique binaire marche-arrêt stricte. Si vous avez un microcontrôleur à faible nombre de broches et que vous souhaitez piloter un large éventail de LED, il est simple d'utiliser des puces logiques externes (par exemple, un registre à décalage et / ou des pilotes de LED) pour contrôler les axes X et Y. La plupart des puces de type registre à décalage ne prennent pas en charge la tristation nécessaire pour faire la même chose dans un tableau charlieplexed. Des pilotes dédiés charlieplexed sont disponibles, mais ne sont pas aussi polyvalents.

Troisièmement, dans un réseau charlieplex, chaque broche qui ne fait pas quelque chose activement est toujours connectée aux LED via une connexion faible ("haute impédance"). Et bien que la connexion soit faible, elle n'est pas nulle. Supposons que vous ayez 25 broches d'E / S connectées à une grille de LED. Si vous allumez une LED - en prenant une de ces 25 lignes de haut et une de ces 25 lignes de bas, cela laisse 23 lignes à haute impédance. Chaque fois que la ligne d'E / S élevée passe par une LED vers une ligne neutre, il y a une possibilité de fuite de courant. Pas tant. Peut-être un microamp ici ou là. Mais avec des LED modernes et efficaces, cela suffit souvent pour créer des images fantômes visibles.

Quatrièmement, il est plus difficile de contrôler la luminosité des LED dans un réseau charlieplexed. Dans un réseau multiplexé, vous pouvez utiliser n'importe quel nombre de puces de pilote de DEL à «courant descendant» de régulation de courant qui régulent séparément la luminosité de chaque colonne, en utilisant la régulation de courant en combinaison avec un pilote PWM. Dans la mesure où les emplacements de matrice charlieplexed sont adressés individuellement et n'utilisent qu'une résistance par ligne ou colonne, il est beaucoup plus difficile d'effectuer une correction de la luminosité des points et une animation complète en niveaux de gris / couleur dans un réseau charlieplexed.

Windell Oskay
la source
1
Bonne lecture. Fournit un aperçu de vos conceptions
chevillées
Je viens d'acheter des leds ordinaires, mais les images fantômes sont toujours un problème. Est-il préférable d'utiliser un resisitor pour chaque led au lieu de chaque ligne? Je conduis 6 leds en utilisant un Attiny85. Avant, j'utilisais des résistances de 330 ohms pour chaque ligne et maintenant j'utilise 1K. Avec 1K, le choix est moins important mais toujours là, les LED ne sont pas aussi brillantes qu'avec 330 Ohm bien sûr. Alors, est-il préférable que chaque LED ait sa propre résistance pour éliminer cela?
Codebeat
3

L'inconvénient le plus important des lampes "Charlieplexing" est qu'elles limitent le nombre de LED pouvant être pilotées avec le multiplexage en n 'n à n (n-1). Je ne vois pas l'exigence du pilote à trois états comme étant un gros problème avec la technique dans son ensemble. Il est certain que le fait d'utiliser deux pilotes conventionnels au lieu d'un pilote à trois états réduira les avantages de CharliePlexing, mais dans certains cas, des avantages peuvent subsister (par exemple, cela peut réduire le nombre de fils d'interconnexion entre un panneau avec les pilotes et un panneau avec le lumières ou interrupteurs).

En ce qui concerne les commutateurs Charlieplexing, l'article de Wikipedia ne mentionne pas le plus grand inconvénient: Charlieplexing ne permet pas à un contrôleur d'attendre passivement une pression sur un bouton. D'un autre côté, il est trop pessimiste quant aux exigences des composants. En 1997, j'ai produit un appareil qui scanne huit boutons à l'aide de trois broches d'E / S et d'une broche d'entrée uniquement sur un PIC12C508, sans avoir besoin de diodes externes ou d'autres composants, à l'exception de l'IIRC, un pull-up pour une broche PIC qui n'a pas en avoir un intégré; l'approche aurait pu gérer dix boutons avec l'ajout d'une autre résistance de rappel (pour une autre broche d'E / S qui n'en avait pas), mais le client n'avait besoin que de huit boutons, il n'y avait donc pas besoin.

supercat
la source
Avez-vous un schéma de cela quelque part sur le net?
Codebeat
@Erwinus: Tous les fils du CPU sont tirés vers le haut. Connectez un commutateur à chaque paire de fils possible (donc s'il y a quatre fils, ce serait six commutateurs; si cinq fils, 10; si six, sept ou huit, 15, 21 ou 28). Connectez un interrupteur entre chaque fil et la masse (un interrupteur supplémentaire par fil).
supercat