

Charlieplexing (también conocido como multiplexación triestado , multiplexación LED con número reducido de pines , control LED complementario y crossplexing ) es una técnica para acceder a una gran cantidad de LED , interruptores , microcondensadores u otras entidades de E/S , utilizando relativamente pocos cables lógicos triestado de un microcontrolador . Estas entidades de E/S pueden cablearse como componentes discretos, [ 1 ] [ 2 ] matrices x/y, [ 3 ] [ 4 ] o entrelazadas en un patrón de intersección diagonal para formar matrices diagonales. [ 5 ]
Etimología
Aunque la técnica fue introducida en 2001 por Maxim Integrated , el nombre "Charlieplexing" apareció por primera vez en una nota de aplicación de 2003. [ 6 ]Recibió su nombre en honor a Charles "Charlie" M. Allen, un ingeniero de aplicaciones famoso por el MAX232 , [ 7 ] [ 8 ] [ 9 ] quien había propuesto este método internamente.
Origen
La técnica Charlieplexing fue introducida [ 6 ] por Maxim Integrated en 2001 [ 10 ] como un esquema de multiplexación de LED con número reducido de pines en su controlador de pantalla LED MAX6951. [ 10 ] [ 6 ]
También en 2001, cuando el nombre "Charlieplexing" se popularizó, Don Lancaster ilustró el método como parte de sus reflexiones sobre el problema de la " N-conectividad ", [ 11 ] refiriéndose a Microchip Technology , [ 11 ] que ya lo había comentado como "técnica complementaria de control de LED" en una nota de aplicación de 1998 [ 12 ] y que más tarde lo incluiría en un folleto de consejos y trucos. [ 13 ]
Aunque Microchip no mencionó el origen de la idea, es posible que la hayan tomado de PICLIST, una lista de correo sobre microcontroladores PIC de Microchip , donde, también en 1998, Graham Daniel [ 14 ] [ 15 ] la propuso a la comunidad como un método para controlar filas y columnas de LED bidireccionales . En ese momento, Daniel había creado circuitos simples con chips PIC 12C508 que controlaban 12 LED desde 5 pines con un mini conjunto de comandos para poner en movimiento diversas pantallas de iluminación. [ 14 ] [ 15 ]
Sin embargo, el método era conocido y utilizado por varias partes mucho antes en la década de 1980, y se describió en detalle ya en 1979 en una patente de Christopher W. Malinowski, Heinz Rinderle y Martin Siegle del Departamento de Investigación y Desarrollo de AEG-Telefunken , Heilbronn, Alemania, para lo que denominaron un "sistema de señalización de tres estados". [ 16 ]
Según se informa, técnicas similares ya se utilizaban en 1972 para aplicaciones de señalización de vías en el modelismo ferroviario . [ 17 ]
La multiplexación de pantallas es muy diferente de la multiplexación utilizada en la transmisión de datos, aunque comparte los mismos principios básicos. En la multiplexación de pantallas, las líneas de datos de las pantallas se conectan en paralelo a un bus de datos común en el microcontrolador. A continuación, las pantallas se encienden y se direccionan individualmente. Esto permite utilizar menos pines de E/S de los que normalmente se necesitarían para controlar directamente el mismo número de pantallas. En este caso, cada "pantalla" podría ser, por ejemplo, un dígito de una calculadora, no la matriz completa de dígitos.
Con multiplexación tradicionalLos pines de E/S pueden controlar un máximo deLEDs, o escucha esa cantidad de interruptores de entrada. Charlieplexing puede controlarLEDs, o escucharbotones incluso si la direccionalidad no está impuesta por un diodo.
Multiplexación triestado (Charlieplexing)

La configuración Charlieplexing puede verse como un grafo dirigido , donde los pines de control son los vértices y los LED son las aristas dirigidas; existe una arista que apunta hacia afuera y conecta cada vértice con los demás. Por lo tanto, con n pines de control , hay ( n )( n -1) aristas en total (un número prónico ). Esto equivale a que n pines pueden controlar n² − n segmentos o LED.
Si se conoce el número de LEDs ( L ), entonces el número de pines ( n ) se puede encontrar a partir de la ecuación:, redondeándose el resultado al número entero más cercano. [ nb 1 ]
Ejemplo: Si L = 57, entonces √L = 7,549 y 1 + √L = 8,549; el número entero más cercano es 9, por lo que se necesitan 9 pines para controlar 57 LED (9 pines podrían controlar hasta 72 LED, pero 8 pines solo podrían controlar 56 LED como máximo).
Si L = 56, entonces √L = 7,483 y 1 + √L = 8,483; el número entero más cercano a esto es 8, por lo que se necesitan 8 pines para controlar 56 LED.
- Origen de la ecuación ( n 2 − n ) en Charlieplexing

A diferencia de una matriz multiplexada x/y tradicional, donde un subconjunto de elementos conductores cruza otro subconjunto diferente de elementos conductores, en una matriz multiplexada "Charlieplexed completa", cada elemento conductor cruza a todos los demás elementos conductores.
Seis ( n ) elementos conductores en una matriz multiplexada x/y estándar forman un máximo de nueve (( n /2) ² ) intersecciones únicas (ver figura en el extremo izquierdo).
Los demás diagramas también muestran seis ( n ) elementos conductores, pero aquí los seis elementos se cruzan entre sí, formando una matriz multiplexada de 36 ( n² ) intersecciones. Se muestran LEDs colocados en cada intersección. Sin embargo, cada conductor también se cruza consigo mismo en diagonal. El conductor horizontal 1 cruza al conductor vertical 1, el conductor horizontal 2 cruza al conductor vertical 2 , etc. Esto significa que seis de estos LEDs están en cortocircuito (por ejemplo, D1 y D5 están en cortocircuito). Por lo tanto, los seis ( n ) LEDs diagonales nunca se encenderán, ya que no se puede generar voltaje a través de ellos, así que ( n ) debe restarse del total. No tiene sentido instalar estos LEDs (simplemente se incluyen aquí con fines ilustrativos).
Esto deja 30 LED ( n 2 − n ) que pueden ser direccionados de forma única y encendidos de forma independiente.
El cruce del conductor "a" con el conductor "b" se distingue del cruce del conductor "b" con el conductor "a" porque la polaridad de los LED está invertida. Por ejemplo, cuando el conductor 3 es positivo y el conductor 2 es negativo, fluye corriente y se enciende el LED D8; pero cuando el conductor 3 es negativo y el conductor 2 es positivo, fluye corriente y se enciende el LED D9.
Estos pares de LED con polaridad inversa se denominan pares complementarios. Este diagrama tiene 15 pares complementarios, lo que permite encender 30 LED de forma independiente.

Los 6 LED diagonales inutilizables se pueden reemplazar fácilmente por atajos bidireccionales reales (de modo que ya no sea necesario configurar las líneas de interconexión agrupadas en la parte izquierda e inferior de los diagramas para controlar la entrada inferior de los conectores verticales desde la entrada izquierda correspondiente de los conectores horizontales).
Ajustando diagonalmente la forma de los conectores horizontales y verticales a lo largo de la diagonal principal en cortocircuito de la matriz original, esta se puede transformar fácilmente en una matriz de 5 × 6 o 6 × 5 LED dispuestos en una cuadrícula regular.
Se podría utilizar un patrón similar para una matriz de 10 × 11 que podría usarse para controlar hasta 110 teclas (incluidos algunos LED indicadores) en un teclado de PC moderno , donde cada interruptor de tecla incluye un pequeño diodo o LED en serie, de modo que solo se necesitarían 11 pines para controlarlos individualmente (estos diodos o LED individuales dentro de cada interruptor de tecla también evitarían todos los efectos de "pulsación fantasma" comunes e indeseables, que son difíciles de eliminar por completo cuando se presiona un número arbitrario de teclas en cualquier posición al mismo tiempo).
Charlieplexing también se puede utilizar para reducir significativamente el número de pines de control para matrices mucho más grandes, como las pantallas digitales modernas de alta resolución. Por ejemplo, para una pantalla RGB 4K de 3840 × 2160, esto requiere más de 8 millones de píxeles direccionables individualmente, cada uno con al menos 3 LED de color o celdas LCD, para un total de casi 25 millones de LED o celdas LCD. El uso de una multiplexación x/y convencional requeriría al menos (3840 + 2160 × 3) = 10320 pines de control y muchos chips de selección para controlar filas y columnas alrededor del panel de LED o celdas LCD. Pero con Charlieplexing, esto se puede reducir a solo 63 pines de control para la puerta de selección de columnas de la pantalla, más 46 × 3 pines de control para la selección y activación de energía de filas de pantalla RGB, por un solo transistor para cada fila o columna (posiblemente con una tierra de blindaje común adicional para limitar su acoplamiento mutuo); Estos pines de control se adaptan fácilmente a los pines de salida de uno o dos chips controladores, incluso si añadimos los pocos pines adicionales necesarios en el controlador para alimentación, tierra, relojes y buses de E/S, montados en superficie con alta densidad y bajo coste en una PCB de una sola capa , sin necesidad de enrutamiento complejo ni orificios de interconexión entre capas; solo se necesita una doble capa para la matriz básica de Charlieplexing montada en los bordes del propio panel.
Las posiciones en la matriz Charlieplexed no se reducen a simples LED o diodos, sino que también pueden ser ocupadas por dos pines de un transistor (incluido su pin de puerta) de manera que su tercer pin se utilice como salida para controlar otros dispositivos, como las líneas de selección horizontal y vertical de un gran panel de visualización plano (en ese caso, las dos matrices Charlieplexed de transistores que controlan y activan las filas o columnas del panel estarán dispuestas de forma inteligente a lo largo de un borde de dicho panel).
Impulso complementario
El Charlieplexing, en su forma más simple, funciona mediante una matriz de diodos compuesta por pares complementarios de LED. La matriz Charlieplexing más simple posible tendría este aspecto:


Al aplicar un voltaje positivo al pin X1 y conectar a tierra el pin X2, el LED 1 se encenderá. Dado que la corriente no puede fluir en sentido inverso a través de los LEDs con este bajo voltaje, el LED 2 permanecerá apagado. Si se invierten los voltajes en los pines X1 y X2, el LED 2 se encenderá y el LED 1 permanecerá apagado.
La técnica Charlieplexing no permite crear una matriz más grande utilizando solo dos pines, ya que dos LED pueden controlarse con dos pines sin necesidad de conexiones de matriz, e incluso sin usar el modo triestado. En este ejemplo de dos LED, Charlieplexing ahorraría un cable de tierra, que sería necesario en una configuración común con un controlador de dos pines.
Sin embargo, el circuito de 2 pines sirve como un ejemplo sencillo para mostrar los conceptos básicos antes de pasar a circuitos más grandes donde el Charlieplexing realmente muestra una ventaja.
Ampliando: lógica triestatal
Si el circuito anterior se ampliara para dar cabida a tres pines y seis LED, tendría este aspecto:


Esto presenta un problema: para que este circuito funcione como el anterior, uno de los pines debe desconectarse antes de aplicar carga a los dos restantes. Por ejemplo, si se desea que el LED 5 se encienda, X1 debe cargarse y X3 conectarse a tierra. Sin embargo, si X2 también se carga, el LED 3 se encendería. Si X2 se conectara a tierra, el LED 1 se encendería, lo que significa que el LED 5 no puede encenderse por sí solo. Esto se puede solucionar utilizando las propiedades de lógica triestado de los pines del microcontrolador.
Los pines de un microcontrolador generalmente tienen varios estados posibles:
- "Salida": el pin "controla". Puede controlar un nivel "alto" (a menudo 5 V) o un nivel "bajo" (normalmente 0 V).
- "Entrada": el pin no controla nada intencionadamente, sino que detecta qué está controlando otro dispositivo (o pin). Puede consumir corriente al hacerlo.
- "High-Z": el pin se encuentra en un estado de alta impedancia . Básicamente, está desconectado del circuito; no conducirá ni consumirá corriente.
Esto permite que el circuito vea cualquier número de pines conectados en cualquier momento, simplemente cambiando el estado de los pines. Para controlar la matriz de seis LED anterior, los dos pines correspondientes al LED que se va a encender se conectan a 5 V (pin de E/S "alto" = número binario 1) y 0 V (pin de E/S "bajo" = binario 0), mientras que el tercer pin se configura en su estado de alta impedancia.
De este modo, se evita la fuga de corriente a través del tercer pin, lo que garantiza que solo se ilumine el LED que debe estar encendido.
Debido a que un diodo (como un LED) reduce la tensión disponible en serie, la corriente no fluirá por rutas alternativas (por ejemplo, existe una ruta alternativa de 2 LED para cada par de pines en el diagrama de 3 pines), siempre que la caída de tensión en la ruta del LED deseado sea menor que la caída de tensión total en cada cadena de LED alternativos. Sin embargo, en la variante con resistencias individuales, este efecto de regulación de tensión no afecta a las rutas alternativas, por lo que no será necesario encender todos los LED utilizados con la mitad de la tensión de alimentación aplicada, ya que esta variante no se beneficia del efecto de regulación de tensión del LED de la ruta deseada.
Mediante lógica triestado, la matriz puede expandirse teóricamente a cualquier tamaño, siempre que haya pines disponibles. Con n pines, la matriz puede contener n ( n -1) LED. Cualquier LED se puede encender aplicando 5 V y 0 V a sus pines correspondientes y configurando todos los demás pines conectados a la matriz en modo de alta impedancia. Bajo las mismas restricciones mencionadas anteriormente , se pueden encender en paralelo hasta n -1 LED que compartan una ruta positiva o negativa común.
En expansión
El circuito de 3 cables se puede reorganizar para obtener esta matriz casi equivalente (las resistencias se han reubicado).


Esto pone de relieve las similitudes entre la multiplexación de cuadrícula ordinaria y Charlieplex, y demuestra el patrón que lleva a la regla de " n al cuadrado menos n ".
En el uso típico en una placa de circuito impreso, las resistencias se ubicarían físicamente en la parte superior de las columnas y se conectarían al pin de entrada. Las filas se conectarían directamente al pin de entrada, sin pasar por la resistencia.
La primera configuración de la imagen de la izquierda solo es adecuada cuando se utilizan LEDs idénticos, ya que una sola resistencia limita la corriente de varios LEDs a la vez (aunque no simultáneamente ; cada resistencia limita la corriente de un solo LED en una columna). Esto contrasta con la segunda configuración, que utiliza resistencias individuales para cada LED, como se muestra en la imagen de la derecha. En esta segunda configuración, cada LED tiene una resistencia única asociada. Esto permite combinar diferentes tipos de LEDs, asignándoles a cada uno el valor de resistencia adecuado.
En ambas configuraciones, como se muestra en las imágenes de la izquierda y la derecha, las resistencias reubicadas permiten encender varios LED simultáneamente, fila por fila, en lugar de tener que encenderlos individualmente. La capacidad de corriente de la fila se puede aumentar mediante un transistor BJT seguidor de emisor NPN, en lugar de controlar la corriente directamente con el pin de E/S, que suele ser mucho más débil.
Problemas con Charlieplexing
Frecuencia de actualización
La frecuencia de actualización no es un problema si se utiliza el direccionamiento de matriz activa Charlieplexed con una matriz de LED Charlieplexed. [ 18 ]
Sin embargo, al igual que con la multiplexación x/y, pueden surgir problemas con la frecuencia de actualización si se utiliza el direccionamiento de matriz pasiva .
Debido a que solo un único conjunto de LED, todos con un ánodo o cátodo común, puede encenderse simultáneamente sin encender LED no deseados, el Charlieplexing requiere cambios frecuentes de salida, mediante un método conocido como multiplexación . Cuando se realiza la multiplexación, no todos los LED se encienden simultáneamente, sino que un conjunto de LED se enciende brevemente, luego otro conjunto, y finalmente el ciclo se repite. Si se hace lo suficientemente rápido, parecerán estar todos encendidos todo el tiempo para el ojo humano debido a la persistencia de la visión . Para que una pantalla no tenga ningún parpadeo perceptible, la frecuencia de actualización de cada LED debe ser mayor que el umbral de fusión de parpadeo ; a menudo se utiliza 50 Hz como aproximación.
Como ejemplo, se utilizan 8 pines triestado para controlar 56 LED mediante Charlieplexing, lo cual es suficiente para 8 pantallas de 7 segmentos (sin decimales). Normalmente, las pantallas de 7 segmentos tienen un cátodo común, a veces un ánodo común, pero sin pérdida de generalidad se asume un cátodo común en lo siguiente: No es posible encender simultáneamente todos los LED de las 8 pantallas de 7 segmentos en cualquier combinación deseada mediante Charlieplexing. Es imposible obtener 56 bits de información directamente de 8 trits (el término para un carácter en base 3, ya que los pines son triestado), puesto que 8 trits comprenden fundamentalmente 8 log₂ 3 , o aproximadamente 12,7 bits de información, lo que está muy lejos de los 56 bits necesarios para encender o apagar los 56 LED en cualquier combinación arbitraria. En su lugar, se debe engañar al ojo humano mediante el uso de multiplexación.
Solo una pantalla de 7 segmentos, con un conjunto de 7 LED, puede estar activa a la vez. Esto se logra asignando cada uno de los 8 cátodos comunes de las 8 pantallas a un pin único entre los 8 puertos de E/S. En cada momento, solo uno de los 8 pines de E/S de control estará en estado bajo activo, por lo que solo la pantalla de 7 segmentos con su cátodo común conectado a ese pin podrá tener sus LED encendidos. Esta es la pantalla de 7 segmentos activa. Los ánodos de los 7 segmentos LED de la pantalla activa pueden encenderse en cualquier combinación, ya sea con los otros 7 puertos de E/S en estado alto o en modo de alta impedancia. Están conectados a los 7 pines restantes, pero a través de resistencias (la conexión del cátodo común está conectada al pin mismo, no a través de una resistencia, porque de lo contrario la corriente a través de cada segmento individual dependería del número total de segmentos encendidos, ya que todos tendrían que compartir una sola resistencia). Pero para mostrar un número deseado usando los 8 dígitos, solo se puede mostrar una pantalla de 7 segmentos a la vez, por lo que los 8 deben recorrerse por separado, y en 50avos de segundo para todo el período de 8. Por lo tanto, la pantalla debe actualizarse a 400 Hz para el ciclo de período 8 a través de los 8 segmentos para que los LED parpadeen no más lento de 50 veces por segundo. Esto requiere una interrupción constante de cualquier procesamiento adicional que realice el controlador, 400 veces por segundo.
Corriente máxima
Debido a la disminución del ciclo de trabajo , el consumo de corriente de una pantalla Charlieplexed aumenta mucho más rápido que el de una pantalla multiplexada tradicionalmente. A medida que la pantalla se agranda, la corriente promedio que fluye a través del LED debe ser (aproximadamente) constante para mantener un brillo constante, lo que requiere que la corriente pico aumente proporcionalmente. Esto genera una serie de problemas que limitan el tamaño práctico de una pantalla Charlieplexed.
- Los LED suelen tener una corriente máxima de pico, así como una corriente media.
- Si el código del microcontrolador falla y se está utilizando un Charlieplex de un LED a la vez, el único LED que queda encendido está sometido a una tensión mucho mayor que en una pantalla Charlieplex de fila por fila o en una pantalla multiplexada tradicionalmente, lo que aumenta el riesgo de un fallo antes de que se detecte la avería.
Requisito para los tres estados
Todas las salidas utilizadas para controlar una pantalla Charlieplexed deben ser triestado. Si la corriente es lo suficientemente baja como para controlar las pantallas directamente mediante los pines de E/S del microcontrolador, esto no representa un problema; sin embargo, si se deben utilizar triestados externos, cada triestado generalmente requerirá dos líneas de salida para su control, lo que elimina la mayor parte de la ventaja de una pantalla Charlieplexed. Dado que la corriente de los pines del microcontrolador suele estar limitada a unos 20 mA, esto restringe considerablemente el tamaño práctico de una pantalla Charlieplexed. No obstante, esto se puede lograr habilitando un segmento a la vez. [ 19 ]
Voltaje directo
Cuando se utilizan LED con diferentes voltajes directos , como por ejemplo cuando se utilizan LED de diferentes colores, algunos LED pueden encenderse cuando no se desea.
En el diagrama anterior se observa que si el LED 6 tiene una tensión directa de 4 V, y los LED 1 y 3 tienen tensiones directas de 2 V o menos, se encenderán cuando se pretenda que lo haga el LED 6, ya que su recorrido de corriente es más corto. Este problema se puede evitar fácilmente comparando las tensiones directas de los LED utilizados en la matriz y comprobando la compatibilidad. O, más sencillamente, utilizando LED con la misma tensión directa. [ 11 ] [ 6 ]
Esto también supone un problema cuando los LED utilizan resistencias individuales en lugar de resistencias compartidas; si existe un camino a través de dos LED con una caída de tensión menor que la tensión de alimentación, estos LED también pueden encenderse en momentos no deseados.
Casos de uso alternativos y variantes
Multiplexación de datos de entrada
El Charlieplexing también se puede utilizar para multiplexar señales de entrada digitales en un microcontrolador. Se utilizan los mismos circuitos de diodos, excepto que se coloca un interruptor en serie con cada diodo. Para leer si un interruptor está abierto o cerrado, el microcontrolador configura un pin como entrada con una resistencia pull-up interna . El otro pin se configura como salida y se establece en el nivel lógico bajo . Si el pin de entrada lee bajo, entonces el interruptor está cerrado, y si lee alto, entonces el interruptor está abierto. [ 20 ]
Una posible aplicación de esto es leer un teclado numérico estándar (4 × 3) de 12 teclas usando solo 4 líneas de E/S. El método tradicional de escaneo de filas y columnas requiere 4 + 3 = 7 líneas de E/S. Por lo tanto, Charlieplexing ahorra 3 líneas de E/S; sin embargo, agrega el costo de 12 diodos, (ya que los diodos solo son gratuitos cuando se usan LED). Es posible una variación del circuito con solo 4 diodos, [ 20 ] pero esto reduce el desbordamiento del teclado. El microcontrolador siempre puede detectar cuando los datos están corruptos, pero no hay garantía de que pueda detectar las pulsaciones de teclas originales, a menos que solo se presione un botón a la vez. (Sin embargo, probablemente sea posible organizar el circuito de manera que si se presionan como máximo dos botones adyacentes, entonces no se producirá pérdida de datos ). La entrada solo es sin pérdidas en el circuito de 4 diodos si solo se presiona un botón a la vez, o si se evitan ciertas pulsaciones problemáticas de múltiples teclas. En el circuito de 12 diodos, esto no representa un problema, ya que siempre existe una correspondencia uno a uno entre las pulsaciones de los botones y los datos de entrada. Sin embargo, la cantidad de diodos necesarios para utilizar este método (especialmente en matrices grandes) hace que, por lo general, no se obtenga ningún ahorro de costes con respecto al método tradicional de escaneo por filas y columnas, a menos que el coste de un diodo sea solo una fracción del coste de un pin de E/S, donde dicha fracción es proporcional al número de líneas de E/S.
Pantallas táctiles y teclados capacitivos proyectados
Estos dispositivos no utilizan diodos, sino que se basan en el cambio de capacitancia entre pistas conductoras que se cruzan para detectar la proximidad de uno o más dedos a través de materiales no conductores como revestimientos de plástico, madera, vidrio, etc. , incluso doble acristalamiento.
Estas pistas pueden estar hechas de una amplia gama de materiales, como placas de circuitos impresos, óxido de indio y estaño transparente , alambre fino con revestimiento aislante, etc.
La tecnología puede variar en tamaño desde muy pequeño, como en los "detectores de huellas dactilares" [ 21 ] , hasta muy grande, como en las "pantallas táctiles interactivas". Generalmente, se impone un límite al ancho máximo de una pantalla táctil cableada en los ejes x/y, ya que la resistencia de la pista horizontal es demasiado alta para que el producto funcione correctamente. Sin embargo, una pantalla táctil cableada en diagonal (como se describe más adelante en esta sección) no presenta este problema.
No hay LED ni diodos y, en ningún momento se configura una línea de E/S como salida; las demás se configuran como entradas de alta impedancia o conectadas a tierra. Esto significa que el consumo de energía es muy bajo.
GuGaplexing
En 2008, Dhananjay V. Gadre ideó Gugaplexing , que es como Charlieplexing con múltiples voltajes de excitación. [ 22 ] [ 23 ]
Chipplexing
En 2008, el llamado Chipiplexing de Guillermo Jaquenod agrega seguidores de emisor para aumentar la fuerza del accionamiento de filas, lo que permite que se enciendan simultáneamente filas más anchas de las que un solo puerto de microcontrolador podría controlar. [ 24 ] [ 25 ]
Complejación cruzada
En 2010, el fabricante austriaco de chips austriamicrosystems AG (llamado ams AG [ nb 2 ] desde 2012, y ams-OSRAM AG desde 2020) presentó el circuito integrado controlador LED multiplexado AS1119, [ 26 ] [ 27 ] seguido del AS1130 en 2011. [ 28 ] [ 29 ]
Además, la división analógica y de señal mixta (AMS) [ nb 2 ] (llamada Lumissil Microsystems desde 2020) de Integrated Silicon Solution Inc. (ISSI) presentó el IS31FL3731 en 2012 [ 30 ] [ 31 ] y el IS31FL3732 en 2015. [ 32 ] [ 33 ] [ 34 ] Todos ellos utilizan una técnica que denominan cross-plexing , una variante de Charlieplexing con detección automática de conexiones abiertas o en cortocircuito y medidas anti-ghosting. [ 35 ]
Tucoplexing
En 2019, Micah Elizabeth Scott desarrolló un método para usar 3 pines para hacer funcionar 4 LED y 4 interruptores llamado Tucoplexing . [ 36 ]
Modulación por ancho de pulso
Charlieplexing incluso se puede usar con modulación por ancho de pulso para controlar el brillo de 12 LED con 4 pines. [ 37 ]
Ejemplo de código
En el siguiente ejemplo de código Arduino , el circuito [ 38 ] [ 39 ] utiliza el microcontrolador ATtiny de 8 pines , que tiene 5 pines de E/S, para crear una pantalla de 7 segmentos . Dado que una pantalla de 7 segmentos solo requiere el control de 7 LED individuales, utilizamos 4 de los pines de E/S del ATtiny como salidas Charlieplexed ( n ( n -1)), es decir, los 4 pines podrían utilizarse para controlar hasta 12 LED individuales (aquí solo utilizamos 7). El quinto pin de E/S queda disponible para su uso como entrada digital o analógica u otra salida.
// Código ATtiny.// Lee la entrada analógica (o digital) del pin 4 y cada vez que la entrada cae por debajo de un umbral establecido.// Cuenta uno y muestra el aumento en el conteo activando uno de los cuatro LED (o transistores).// o uno de los doce LED Charlieplexed.// ESTABLEZCA ESTOS VALORES:umbral entero = 500 ;entero maxCount = 7 ;////////////////////booleano sensorActivado = falso ;entero contador = 0 ;int valorSensor = 0 ;long lastDebounceTime = 0 ; // La última vez que se cambió el pin de salida.long debounceDelay = 50 ; // El tiempo de retardo; auméntelo si la salida parpadea.////////////////////////////////////////////////////////////////////////////////void setup () {// Utilice resistencias pull-down para los pines de salida deshabilitados en lugar de resistencias pull-up para reducir el consumo interno.para ( int pin = 0 ; pin < 4 ; pin ++ ) {pinMode ( pin , INPUT ), digitalWrite ( pin , LOW );}// Resistencia pull-up interna para el pin de entrada habilitado 4.pinMode ( 4 , INPUT ), digitalWrite ( 4 , HIGH );}////////////////////////////////////////////////////////////////////////////////void loop () {testDigits ();}void testDigits () {charlieLoop ();}////////////////////////////////////////////////////////////////////////////////void leerSensor () {sensorValue = analogRead ( 2 ); // ¡pin4!retraso ( 100 );Si ( sensorValue < umbral && sensorTriggered == false ) {sensorActivado = verdadero ;recuento ++ ;si ( count > maxCount ) count = 0 ;charlieLoop ();}si ( valor del sensor > umbral ) sensorActivado = falso ;}////////////////////////////////////////////////////////////////////////////////void charlieLoop () {recuento ++ ;para ( int i = 0 ; i < 1000 ; i ++ ) {para ( int c = 0 ; c < count ; c ++ ) {charliePlexPin ( c );}}retraso ( 1000 );si ( count > maxCount ) count = 0 ;}////////////////////////////////////////////////////////////////////////////////void charliePlexPin ( int myLed ){// Asegurarnos de no aplicar voltajes aleatorios a los LED.// durante este breve tiempo estamos cambiando los voltajes y modos de los pines.// Utilice resistencias pull-down para los pines de salida deshabilitados en lugar de resistencias pull-up para reducir el consumo interno.para ( int pin = 0 ; pin < 4 ; pin ++ ) {pinMode ( pin , INPUT ), digitalWrite ( pin , LOW );}// Con 4 pines podríamos encender hasta 12 LEDs, pero aquí solo usamos 7.// Asegúrese de configurar los voltajes de los pines (mediante resistencias pull-up o pull-down internas).// antes de cambiar los modos de los pines a salida.#if 1 // Código reducido usando una tabla de búsqueda estática.typedef struct {// Dos números de PIN diferentes (entre 0 y 3; el orden es importante),// De lo contrario, ningún LED se encenderá.bajo , alto : int : 2 ;} Pines ;Pines estáticos pinsLookup [] = {{ 2 , 0 }, { 2 , 3 }, { 1 , 3 }, { 0 , 1 }, { 1 , 0 }, { 0 , 2 }, { 1 , 2 },// Otras combinaciones posibles para hasta 12 LED:// {0, 3}, {2, 1}, {3, 0}, {3, 1}, {3, 2},// Otras combinaciones inutilizables que no encienden ningún LED con un voltaje y corriente significativos,// a menos que las resistencias de las dominadas hacia arriba o hacia abajo estén muy desequilibradas:// {0, 0}, {1, 1}, {2, 2}, {3, 3}};if ( myLed >= 0 && myLed <= sizeof ( pinsLookup ) / sizeof ( Pins )) {registrar Pines y pines = pinsLookup [ myLed ];// Tenga en cuenta que la primera línea digitWrite to LOW está comentada,// como ya está configurado arriba para todos los pines de salida./* digitalWrite(pins.low, LOW), */ pinMode ( pins . low , OUTPUT );digitalWrite ( pines . high , HIGH ), pinMode ( pines . high , OUTPUT );}#else // Código equivalente usando un switch largo.interruptor ( miLed ) {caso 0 :/* digitalWrite(2, LOW), */ pinMode ( 2 , OUTPUT );digitalWrite ( 0 , HIGH ), pinMode ( 0 , OUTPUT );romper ;caso 1 :/* digitalWrite(2, LOW), */ pinMode ( 2 , OUTPUT );digitalWrite ( 3 , HIGH ), pinMode ( 3 , OUTPUT );romper ;caso 2 :/* digitalWrite(1, LOW), */ pinMode ( 1 , OUTPUT );digitalWrite ( 3 , HIGH ), pinMode ( 3 , OUTPUT );romper ;caso 3 :/* digitalWrite(0, LOW), */ pinMode ( 0 , OUTPUT );digitalWrite ( 1 , HIGH ), pinMode ( 1 , OUTPUT );romper ;caso 4 :/* digitalWrite(1, LOW), */ pinMode ( 1 , OUTPUT );digitalWrite ( 0 , HIGH ), pinMode ( 0 , OUTPUT );romper ;caso 5 :/* digitalWrite(0, LOW), */ pinMode ( 0 , OUTPUT );digitalWrite ( 2 , HIGH ), pinMode ( 2 , OUTPUT );romper ;caso 6 :/* digitalWrite(1, LOW), */ pinMode ( 1 , OUTPUT );digitalWrite ( 2 , HIGH ), pinMode ( 2 , OUTPUT );romper ;}#fin si}////////////////////////////////////////////////////////////////////////////////void spwm ( int freq , int pin , int sp ) {// Llama a Charlieplexing para configurar correctamente la asignación de pines:// en:digitalWrite ( pin , HIGH );retardoMicrosegundos ( sp * freq );// apagado:digitalWrite ( pin , BAJO );retardoMicrosegundos ( sp * ( 255 - freq ));}Véase también
Notas
- ↑ Sí, redondeo al número entero más cercano en lugar de redondeo al alza. Normalmente, el número de pines se redondearía al alza, ya que un pin no utilizado es simplemente un desperdicio, pero un pin no proporcionado no es funcional. Sin embargo, en esta fórmula en particular, la constante +1 ya es necesaria para manejar el caso de un solo elemento de E/S. Debido a que se agrega ese +1, el resultado final ya está garantizado que será mayor que la raíz cuadrada del número de elementos de E/S.
- 1 2 Los circuitos integrados AS1119 y AS1130 fueron presentados por austriamicrosystems AG (anteriormente Austria Mikro Systeme ), más tarde denominada ams AG y ams-OSRAM AG . Los circuitos integrados IS31FL3731 e IS31FL3732 fueron presentados por la división AMS (analógica y de señal mixta) (ahora llamada Lumissil Microsystems ) del fabricante de chips sin fábrica Integrated Silicon Solution Inc. (ISSI). Es de suponer que el hecho de que ambos fabricantes decircuitos integrados controladores de LED de multiplexación cruzada lleven "AMS" en su nombre es pura coincidencia.
Referencias
- ↑ "Charlieplexing simplificado" . Consultado el 8 de enero de 2024 .
- ↑ "Charlieplexed-Arduino-8x8-LED-Grid-Display" . Consultado el 8 de enero de 2024 .
- ↑ "Creación de matrices Charlieplex" . Consultado el 8 de enero de 2024 .
- ↑ "sparkfun-led-array-8x7-hookup-guide" . Consultado el 9 de enero de 2024 .
- ↑ "Sensor táctil" . Consultado el 8 de enero de 2024 .
- 1 2 3 4 "Charlieplexing - Multiplexación de pantallas LED con número reducido de pines" . Maxim Integrated Products, Inc. 10 de febrero de 2003. Nota de aplicación 1880. Archivado del original el 13 de agosto de 2016. Consultado el 7 de junio de 2017. [
…] Esta técnica de multiplexación inusual es utilizada por los controladores de pantallas LED MAX6950, MAX6951, MAX6954, MAX6955, MAX6958 y MAX6959. […] Charlie Allen impulsó originalmente esta técnica internamente en Maxim, por lo que el nombre abreviado "Charlieplexing" se empezó a usar para distinguir la multiplexación con número reducido de pines del método tradicional. El primer producto de Maxim en usar Charlieplexing es el controlador LED Maxim MAX6951, que controla 8 dígitos numéricos con solo 9 pines […]
(4 páginas) - ↑ Personal de EDN, ed. (8 de mayo de 1997). "Concurso de innovación/innovación de EDN de 1996" . EDN . Archivado del original el 10 de diciembre de 2021. Consultado el 10 de diciembre de 2021 .
- ↑ Sherman, Len (16 de diciembre de 2016). "Casi 30 años del MAX232" . BISinfotech . Archivado del original el 10 de diciembre de 2021. Consultado el 10 de diciembre de 2021. [
…] El éxito del
MAX232
fue tanto un tributo a la visión de su creador, Charlie Allen, como al ingenio de su diseñador,
Dave Bingham
. […]
- ↑ Fox, Brett J. (2021). "¿Qué hace que tus grandes ingenieros sean grandes?" . Archivado del original el 10/12/2021 . Recuperado el 10/12/2021 .
[…] El lanzamiento de la familia
MAX232
es particularmente revelador. Charlie Allen, un brillante ingeniero de aplicaciones centrado en el cliente, notó que nuestros clientes utilizaban un producto llamado ICL7660, que
Dave
[Bingham] también diseñó, para proporcionar la alimentación negativa para controladores y receptores de línea
RS-232
. Entonces, Charlie se acercó a Dave y le preguntó si podía diseñar un circuito integrado que integrara la funcionalidad del ICL7660 con un controlador y receptor de línea RS-232. […]
- 1 2 MAX6950/MAX6951 - Controladores de pantalla LED de 5 y 8 dígitos con interfaz serial, de +2,7 V a +5,5 V (PDF) . Revisión 1. Sunnyvale, California, EE. UU.: Maxim Integrated Products . Diciembre de 2001. 19-2227. Archivado (PDF) del original el 10 de diciembre de 2021. Recuperado el 10 de diciembre de 2021 .(19 páginas)
- 1 2 3 Lancaster, Don (agosto de 2001). "N-Connectedness" (PDF) . Tech Musings . N.° 152. Thatcher, Arizona, EE. UU.: Synergetics. págs. 152.2 – 152.5 . Archivado (PDF) del original el 9 de diciembre de 2021. Recuperado el 9 de diciembre de 2021 . (4 páginas)
- ↑ Rebic, Jean-Claude (1999-11-19) [1998-11-06]. "Controlador LED complementario" (PDF) . Pioneer-Standard , EE. UU.: Microchip Technology Inc. DS91029A. Nota de aplicación TB029. Archivado (PDF) del original el 13 de febrero de 2021. Recuperado el 9 de diciembre de 2021 .(3+1 páginas)
- ↑ "CONSEJO N.° 2: Multiplexación de entrada/salida". Consejos y trucos de Microchip: microcontroladores FLASH PIC de 8 pines: supere a la competencia (PDF) . Chandler, Arizona, EE. UU.: Microchip Technology Inc. 2003. pág. DS40040B, página 3. DS40040B. Archivado del original (PDF) el 28 de enero de 2007. (2+ii+38+2 páginas)
- 1 2 Daniel, Graham (1998-07-19). "montones de LED parpadeantes" . piclist.com . 060918a. Archivado del original el 2021-12-11 . Recuperado el 2021-12-11 .(Nota: Con contribuciones de Paul B. Webster, Mark Willis, Dwayne Reid y Alan King).
- 1 2 Daniel, Graham (1998-07-20). "Archivo hexadecimal de 12 LED, 12c508" . piclist.com . 045923a. Archivado del original el 11-12-2021 . Recuperado el 11-12-2021 .
- ↑ Malinowski, Christopher W.; Rinderle, Heinz; Siegle, Martin (1982-03-09) [1979-10-16]. "Sistema de señalización de tres estados" (PDF) . Heilbronn, Alemania: Licentia Patent-Verwaltungs-GmbH / Telefunken Electronic GmbH . Patente estadounidense 4319227A. Archivado (PDF) del original el 09-12-2021 . Recuperado el 09-12-2021 .
- ↑ "desconocido". Model Railroader . 1972.
{{cite magazine}}: La cita utiliza un título genérico ( ayuda ) - ↑ Lapedus, Mark (29 de marzo de 2019). "MicroLEDs: ¿La próxima revolución en pantallas? La tecnología ofrece mayor brillo, colores y menor consumo de energía, pero son caros y difíciles de fabricar" . Fabricación, embalaje y materiales. Ingeniería de semiconductores . Sperling Media Group LLC. Archivado del original el 25 de abril de 2023. Consultado el 11 de abril de 2023 .(Nota: Matriz de micro-LEDs que utiliza una matriz activa).
- ^ Pino, José (25 de agosto de 2009). "Reloj LED de 12/24 horas "Casi sin piezas" . Proyectos y curiosidades de Jose Pino . Archivado del original el 10/10/2021 . Consultado el 10/12/2021 .(Nota: Se utilizan pantallas LED de 7 segmentos con multiplexación Charlieplexing).
- 1 2 Joshi, Kartik (24-04-2008). "Nuevo esquema de interfaz de interruptor reduce el número de pines del microprocesador" . Diseño electrónico . Archivado del original el 24-02-2021 . Recuperado el 10-12-2021 .(1 página) (Nota: Se utiliza la técnica Charlieplexing para los datos de entrada).
- ↑ Triggs, Robert (25 de marzo de 2023). "Cómo funcionan los escáneres de huellas dactilares: explicación de los ópticos, capacitivos y ultrasónicos. Los escáneres de huellas dactilares están por todas partes, pero ¿cómo funcionan?" . Tecnología móvil. AndroidAuthority . Authority Media. Archivado del original el 23 de junio de 2023. Consultado el 23 de junio de 2023 .
- ↑ Gadre, Dhananjay V. (2008). "Corazón LED de San Valentín GuGaplexed" . instructables circuits . Archivado del original el 28 de febrero de 2021. Recuperado el 25 de diciembre de 2021 .
- ↑ Jepson, Brian (23-06-2008). "Charlieplexing por dos" . Make: . Make Community LLC . Archivado del original el 24-02-2021 . Recuperado el 10-12-2021 .
- ↑ Jaquenod, Guillermo (27-11-2008). Rowe, Martin; Granville, Fran (eds.). "«La técnica de "chipplexing" permite controlar eficientemente múltiples LED utilizando pocos puertos del microcontrolador» (PDF) . Ideas de diseño. EDN . La Plata, Argentina. pp. 59–60 . Archivado del original (PDF) el 18 de diciembre de 2012. (2 páginas)
- ↑ Redactor, ed. (09-12-2008). "Chipiplexing LEDs" . Electronics Weekly . Archivado del original el 25-12-2021 . Recuperado el 25-12-2021 .
- ↑ "austriamicrosystems anuncia un nuevo controlador LED de matriz de puntos de 144 canales con la mayor eficiencia y el tamaño más pequeño de la industria" . Noticias de la empresa. Revista LEDs . Vol. 7, n.° 8. PennWell Corporation . 23 de agosto de 2010. ISSN 2156-633X . Archivado del original el 12 de mayo de 2022. Consultado el 13 de mayo de 2022.
[…] Solo se requieren 18 líneas para controlar los 144 LED. Esto se logra con la técnica de multiplexación de austriamicrosystems, denominada multiplexación cruzada. Esto permite reducir el número de líneas en la placa de circuito impreso, así como el número de pines en los conectores, ahorrando espacio y costes. […] Otras características incluyen […] detección de errores de LED abiertos y en cortocircuito […]
(Nota: Anuncio de la norma AMS AS1119.) - ↑ "Nota de aplicación - Cross-Plexing - AS1119 - Controlador de Cross-Plexing de 144 LED con bomba de carga de 320 mA" . 1.00. Unterpremstätten, Austria: austriamicrosystems AG . 2010. Archivado del original el 13 de mayo de 2022. Consultado el 13 de mayo de 2022 .(5+1 páginas); "Manual de la placa de demostración - AS1119 - Controlador de 144 LED, con interfaz I²C y multiplexación cruzada, con bomba de carga de 320 mA" (PDF) . 1.00. Unterpremstätten, Austria: austriamicrosystems AG . 2010. Archivado (PDF) del original el 13 de mayo de 2022. Consultado el 13 de mayo de 2022 .(1+5+1 páginas); "Nota de aplicación AN02 – Manual de software - AS1119 - Controlador de multiplexación cruzada de 144 LED con bomba de carga de 320 mA" . 1.00. Unterpremstätten, Austria: austriamicrosystems AG / ams AG . 2010. Archivado del original el 13 de mayo de 2022. Consultado el 13 de mayo de 2022 .(6+1 páginas)
- ↑ "austriamicrosystems lanza un controlador LED de 132 LEDs con la mayor eficiencia y el tamaño más pequeño de la industria" . Noticias de la empresa. Revista LEDs . Vol. 8, n.º 10. PennWell Corporation . 04/10/2011. ISSN 2156-633X . Archivado del original el 13/05/2022 . Consultado el 13/05/2022 .
[…] Solo se requieren 12 líneas para controlar los 132 LEDs. Esto se logra con la técnica de multiplexación de austriamicrosystems, denominada multiplexación cruzada. Reduce el número de líneas en la placa de circuito impreso, así como los pines en los conectores, ahorrando espacio y costes. Otras características incluyen […] detección de errores de LED abiertos y en cortocircuito […]
(Nota: Anuncio de la norma AMS AS1130.) - ↑ "AS1130 - Controlador de multiplexación cruzada de 132 LED con función de desplazamiento" (PDF) . 2.01. Unterpremstätten, Austria: ams AG . 12/10/2016 [21/09/2016]. Archivado (PDF) del original el 14/08/2021 . Consultado el 13/05/2022 .(66+1 páginas); "Manual del kit de demostración - AS1130 - Placa estándar - AS1130-WL_DK_ST" . 2.00. Unterpremstätten, Austria: ams AG . 14/11/2014 [11/10/2011]. Archivado del original el 13/05/2022 . Consultado el 13/05/2022 .(32 páginas); "Nota de aplicación: RGB de 4 pines en una matriz de interpolación cruzada - AS1130 - 132 LED, interfaz I²C, controlador de interpolación cruzada con función de desplazamiento" . 1.00. Unterpremstätten, Austria: austriamicrosystems AG . 2012. Archivado del original el 13 de mayo de 2022. Consultado el 13 de mayo de 2022 .(6+1 páginas)
- ↑ "IS31FL3731 - Controlador LED de matriz modulada por audio" (PDF) . Rev. F. Lumissil Microsystems / Integrated Silicon Solution Inc. (ISSI). 04/11/2019 [14/03/2012]. Archivado (PDF) del original el 12/05/2022 . Consultado el 13/05/2022 .(24+1 páginas)
- ↑ "IS31FL3731C - Controlador LED de matriz modulada por audio" (PDF) . Rev. B. Integrated Silicon Solution Inc. (ISSI). 1 de abril de 2014. Archivado (PDF) del original el 13 de mayo de 2022. Consultado el 13 de mayo de 2022 .(22+1 páginas)
- ↑ "ISSI amplía la familia FxLED con un controlador LED modulado por audio para controlar 144 LED: el IS31FL3732 admite funciones LED de efectos especiales para plataformas de automoción, videojuegos, electrodomésticos e IoT" (PDF) . San José, California, EE. UU.: Integrated Silicon Solution Inc. (ISSI). 24 de febrero de 2015. Archivado (PDF) del original el 16 de mayo de 2022. Consultado el 16 de mayo de 2022 .(2 páginas)
- ↑ "IS31FL3732 - Controlador LED de matriz modulada por audio" (PDF) . Rev. D. Lumissil Microsystems / Integrated Silicon Solution Inc. (ISSI). 4 de julio de 2017 [6 de septiembre de 2015]. Archivado (PDF) del original el 13 de mayo de 2022. Consultado el 13 de mayo de 2022 .(27+1 páginas)
- ↑ "IS31FL3732A - Controlador LED de matriz modulada por audio" (PDF) . Rev. C. Lumissil Microsystems / Integrated Silicon Solution Inc. (ISSI). 4 de julio de 2017 [3 de noviembre de 2016]. Archivado (PDF) del original el 12 de mayo de 2022. Consultado el 13 de mayo de 2022 .(27+1 páginas)
- ^ Óxido, Peter (10 de abril de 2013). "Pantallas LED - Matrixtreiber-Topologien unter der Lupe" [ Pantallas LED - Topologías de controladores Matrix en foco ] . elektroniknet.de (en alemán). WEKA FACHMEDIEN GmbH . Archivado desde el original el 12 de mayo de 2022 . Consultado el 13 de mayo de 2022 .
[…] Los múltiples efectos fantasma y los problemas con los LED a menudo han provocado la interrupción de la topología Charlieplexing en la configuración severa. Eine »Crossplexing« genera Verbesserung des Verfahrens verspricht nun, die Nachteile des bisherigen Verfahrens zu eliminieren […] Die Kurzschluss- und Defekterkennung des ICs beruht […] auf der Vorwärtsspannung der in der Matrix verwendeten LED. Das Bauelement bestimmt eine óptima Spannungsschwelle für Defektsituationen und konfiguriert sie automatisch. Die Kenntnis der Position eines Kurzschlusses oder Defekts eliminan naturalmente noch nicht die Ghosting-Effekte. Wird jedoch eine Unterbrechung festgestellt, kann das System die Koordinaten des Defekts abspeichern. […] Jedes Mal, wenn der Treiber angewiesen wird, diese LED anzusteuern, willd are diese Instruktion ignoriert. Esta masa debe estar protegida de las increibles luces LED que se encuentran en el resto de las pantallas de matriz puntiaguda. […]
- ↑ Scharfglass, Kerry (23 de marzo de 2019). "Tucoplexing: Un nuevo Charliplex para botones e interruptores" . Hackaday . Archivado del original el 10 de diciembre de 2021. Consultado el 10 de diciembre de 2021 .
- ↑ Johnson-Davies, David (19/10/2021) [19/02/2019]. "Doce salidas PWM de un ATtiny85" . Technology . Archivado del original el 10/12/2021 . Consultado el 10/12/2021 .
- ↑ "ATtiny - Pantalla de 7 segmentos Charlieplexed y 1 interruptor o sensor" . 2017. Archivado del original el 11 de mayo de 2021. Consultado el 10 de diciembre de 2021 .
- ↑ Satomi, Mika; Perner-Wilson, Hannah (2015) [2012]. "Circuitos y código - ATtiny: pantalla de 7 segmentos" . Cómo conseguir lo que quieres . Archivado del original el 18 de abril de 2021. Recuperado el 13 de noviembre de 2017 .
Lecturas adicionales
- Gadre, Dhananjay V. (18 de enero de 2007). "Microcontrolador controla una pantalla de 20 LED con puntos/barras logarítmicas/lineales" . EDN . pág. 83. CA6406730. Archivado del original el 25 de diciembre de 2021.
- Gadre, Dhananjay V.; Chugh, Anurag (24 de mayo de 2007). «Microcontrolador de ocho pines maneja una pantalla de dos dígitos con múltiples LED» . Electronic Design . Paramus, Nueva Jersey, EE. UU. ED Online 15512. Archivado del original el 13 de febrero de 2012.
- Gadre, Dhananjay V. (27 de septiembre de 2007). "Microcontrolador controla 20 LED" . EDN . CA6483826. Archivado del original el 25 de diciembre de 2021.
- circuitos digitales