He revisado los dos métodos, y la multiplexación realmente solo parece tener una ventaja, que sería más fácil rastrear un LED fallido que en una matriz Charlieplex.
¿Alguien más conocedor puede explicar otras compensaciones?
fuente
He revisado los dos métodos, y la multiplexación realmente solo parece tener una ventaja, que sería más fácil rastrear un LED fallido que en una matriz Charlieplex.
¿Alguien más conocedor puede explicar otras compensaciones?
Sí, la multiplexación y la charlieplexing tienen sus ventajas y son las más adecuadas para diferentes tareas.
La principal ventaja de charlieplexing es que se puede hacer en un microcontrolador de tamaño mediano, controlando más LED con menos pines de E / S y potencialmente sin hardware externo además de los LED.
Ahora, la ventaja de "sin hardware externo" solo se aplica a un número relativamente pequeño de LED, hasta que alcanza el límite actual de su microcontrolador, e impone un límite de brillo que las matrices multiplexadas no tienen. Si elige no usar hardware externo, generalmente está limitado a manejar solo un LED en la matriz en un momento dado, a diferencia de una matriz multiplexada donde maneja una fila completa a la vez.
Una vez que agrega hardware externo para controlar los LED con un brillo más alto para que coincida con el de una matriz multiplexada, charlieplexing pierde su brillo.
Primero, una matriz multiplexada se trata estrictamente por fila y columna; Es muy sencillo hacer esto. Encienda la fila 1, encienda todas las columnas para la fila 1, apague la fila 2, encienda todas las columnas para la fila 2, y así sucesivamente. Por el contrario, una matriz charlieplexed es mucho menos sencilla. Siempre hay una fila diagonal que es inútil, y yo personalmente uso tablas de búsqueda para relacionarme entre mis matrices y una matriz rectangular donde almaceno mis datos.
En segundo lugar, y un asesino, es que charpleplexing generalmente requiere controladores de tres estados. La multiplexación, sin embargo, se realiza con una estricta lógica binaria de encendido-apagado. Si tiene un microcontrolador de recuento de pines bajo y desea controlar una gran variedad de LED, es sencillo usar chips lógicos externos (por ejemplo, registro de desplazamiento y / o controladores de LED) para controlar los ejes X e Y. La mayoría de los chips de tipo registro de desplazamiento no admiten la tristación necesaria para hacer lo mismo en una matriz charlieplexed. Los controladores dedicados charlieplexed están disponibles, pero no son tan versátiles.
En tercer lugar, en una matriz de charlieplexed, cada pin que no está haciendo algo activamente todavía está conectado a los LED a través de una conexión débil ("alta impedancia"). Y aunque la conexión es débil, no es cero. Suponga que tiene 25 pines de E / S conectados a una red de LED. Si enciende un LED, toma una de esas 25 líneas de alto y una de esas 25 líneas de bajo, lo que deja 23 líneas de alta impedancia. En cada lugar donde la línea de alta E / S pasa a través de un LED a una línea neutral, hay alguna posibilidad de fuga de corriente. No mucho. Tal vez un microamperio aquí o allá. Pero con LED modernos y eficientes, a menudo es suficiente para crear imágenes fantasma visibles.
En cuarto lugar, es más difícil controlar el brillo del LED en un conjunto charlieplexed. En una matriz multiplexada, puede usar cualquier cantidad de chips de controlador de LED de "hundimiento" reguladores de corriente comúnmente disponibles que regulan el brillo de cada columna por separado, mediante el uso de regulación de corriente en combinación con un controlador PWM. En la medida en que las ubicaciones de matriz charlieplexed se abordan individualmente y usan solo una resistencia por fila o columna, es mucho más difícil realizar la corrección de brillo de punto y la animación de escala de grises / color completa en una matriz charlieplexed.
La desventaja más significativa de las luces "Charlieplexing" es que limita el número de LED que pueden ser controlados con multiplexación 'n' en n (n-1). No veo el requisito del controlador de tres estados como un gran problema con la técnica en su conjunto. Ciertamente, tener que usar dos controladores convencionales en lugar de un controlador de tres estados reducirá el beneficio de CharliePlexing, pero en algunos casos aún pueden persistir ventajas (por ejemplo, puede reducir la cantidad de cables de interconexión entre un panel con los controladores y un panel con el luces o interruptores).
En cuanto a los interruptores Charlieplexing, el artículo de Wikipedia no menciona la mayor desventaja: Charlieplexing no permite que un controlador espere pasivamente la pulsación de un botón. Por otro lado, es demasiado pesimista sobre los requisitos de los componentes. En 1997, produje un dispositivo que escanea ocho botones usando tres pines de E / S y un pin de solo entrada en un PIC12C508, sin necesidad de ningún diodo externo u otros componentes, excepto IIRC, un pull-up para un pin PIC que no tener uno incorporado; el enfoque podría haber manejado diez botones con la adición de otra resistencia pull-up (para otro pin de E / S que no tenía uno), pero el cliente solo necesita ocho botones, por lo que no fue necesario.
fuente