Controlador de display LED y teclado
TM1637
Pinout
| Pin | Función |
|---|---|
| GND | Masa lógica del circuito (pin 1). |
| SEG1/KS1 | Salida de segmento 1, drenador abierto NMOS. También entrada de escaneo de teclado. |
| SEG2/KS2 | Salida de segmento 2, drenador abierto NMOS. También entrada de escaneo de teclado. |
| SEG3/KS3 | Salida de segmento 3, drenador abierto NMOS. También entrada de escaneo de teclado. |
| SEG4/KS4 | Salida de segmento 4, drenador abierto NMOS. También entrada de escaneo de teclado. |
| SEG5/KS5 | Salida de segmento 5, drenador abierto NMOS. También entrada de escaneo de teclado. |
| SEG6/KS6 | Salida de segmento 6, drenador abierto NMOS. También entrada de escaneo de teclado. |
| SEG7/KS7 | Salida de segmento 7, drenador abierto NMOS. También entrada de escaneo de teclado. |
| SEG8/KS8 | Salida de segmento 8 (típicamente el punto decimal), drenador abierto NMOS. También entrada de escaneo de teclado. |
| GRID6 | Salida de selección de dígito 6, drenador abierto PMOS. |
| GRID5 | Salida de selección de dígito 5, drenador abierto PMOS. |
| GRID4 | Salida de selección de dígito 4, drenador abierto PMOS. |
| GRID3 | Salida de selección de dígito 3, drenador abierto PMOS. |
| GRID2 | Salida de selección de dígito 2, drenador abierto PMOS. |
| GRID1 | Salida de selección de dígito 1, drenador abierto PMOS. |
| VDD | Alimentación lógica, 5 V típico (rango 3,6–5,5 V). |
| DIO | Entrada/salida de datos serie del bus de dos hilos. |
| CLK | Entrada de reloj del bus de dos hilos. |
| K1 | Línea de retorno 1 de la matriz de teclado (8×2 teclas). |
| K2 | Línea de retorno 2 de la matriz de teclado (8×2 teclas). |
TM1637
El TM1637 es un circuito integrado de Titan Micro Electronics dedicado a controlar displays LED de 7 segmentos y leer un teclado matricial, compartiendo la mayoría de los pines para ambas funciones. Soporta hasta 6 dígitos × 8 segmentos y una matriz de hasta 16 teclas (8×2). Combina en un único chip lo que normalmente requeriría un microcontrolador dedicado: registros de datos, los drivers de alta corriente para el display y la circuitería de lectura de teclas. Se comunica con el microcontrolador anfitrión mediante un bus serie de solo dos hilos (CLK y DIO), lo que reduce a cuatro el número de pines necesarios para pilotar un display completo con teclado.
Los displays deben ser de ánodo común: las salidas GRID (PMOS) suministran corriente al ánodo compartido de cada dígito, mientras que las salidas SEG (NMOS) drenan a masa cada segmento individual.
Aunque el fabricante lo orienta a electrodomésticos (inducción, microondas, pequeño electrodoméstico con display), es uno de los integrados más usados en electrónica de afición para módulos de reloj y contador de 4 dígitos con 7 segmentos, gracias a su sencillez de conexión y a las librerías disponibles para casi cualquier plataforma.
Encapsulado DIP20 / SOP20.
Diagrama de pines
Los ocho pines SEG1–SEG8 hacen doble función: pilotan los segmentos del display (drenador abierto a masa) y, en los intervalos en que el display está apagado, actúan como entradas de escaneo de teclado. Los seis GRID1–GRID6 seleccionan qué dígito está activo (drenador abierto hacia VDD). K1 y K2 son las dos líneas de retorno de la matriz de teclado.
Cómo funciona
Multiplexado del display. El TM1637 no mantiene los 6 dígitos encendidos a la vez:
enciende un GRID (dígito) cada vez, con el patrón de segmentos correspondiente en las
salidas SEG, y va recorriendo los seis dígitos en secuencia lo bastante rápido como
para que el ojo humano vea los seis encendidos de forma continua (persistencia de la
visión). El brillo se ajusta con un circuito de PWM interno de 8 niveles: cuanto
más ancho el pulso de encendido de cada dígito dentro de su turno, más brillante se ve.
Escaneo de teclado. Durante los huecos en los que el display está apagado, el chip
reutiliza las líneas SEG como entradas y comprueba si alguna tecla conectada entre una
línea SEGn y K1/K2 está pulsada, formando una matriz de hasta 16 teclas (8×2).
El propio chip filtra los rebotes y el ruido típico de electrodomésticos con motor
(inducción, microondas) mediante un circuito de reconocimiento por flanco.
Toda esta gestión —multiplexado, brillo, lectura de teclado— la hace el TM1637 de forma autónoma una vez configurada: el microcontrolador solo necesita escribir los patrones de segmentos a mostrar y, opcionalmente, leer el estado del teclado.
Protocolo de comunicación
El TM1637 usa un bus serie de dos hilos (CLK, DIO) que se parece a I²C en la forma de las transacciones —condición de START, bytes con bit de confirmación ACK, condición de STOP— pero no es I²C: no hay dirección de 7 bits para varios dispositivos en el mismo bus (solo puede haber un TM1637 por bus) y el significado de cada byte lo define un juego de comandos propio del chip, no un protocolo estándar.
El diagrama corresponde al ejemplo de lectura de teclado: tras el byte command
(la orden de leer teclas), el propio TM1637 toma el control de DIO y devuelve un
segundo byte formado por los campos S0–S2 (qué línea SEGn detectó la tecla
pulsada) y K1–K2 (qué línea de retorno, K1 o K2, se activó). Cada uno de los dos
bytes de la transacción termina con un pulso de reloj adicional (el nº 9) en el que el
chip fuerza brevemente DIO a nivel bajo para confirmar la recepción (ACK); esa es
la pequeña flecha marcada bajo cada pulso 9 del diagrama.
Reglas básicas de la señal:
- Los bits de DIO deben estar estables en cada flanco de subida de CLK, que es el instante en que se leen; solo pueden cambiar mientras CLK está en nivel bajo.
- START: DIO cae de alto a bajo mientras CLK está en alto.
- STOP: DIO sube de bajo a alto mientras CLK está en alto.
- Cada byte se envía bit menos significativo primero. Tras los 8 bits, el chip genera un noveno pulso de reloj durante el cual fuerza DIO a bajo como confirmación (ACK) de que ha recibido el byte correctamente.
- La frecuencia de reloj puede llegar a 500 kHz en escritura, pero debe bajarse por debajo de 250 kHz cuando se leen datos de teclado.
Qué bytes se envían. Los dos bits más significativos del primer byte de cada transacción indican qué tipo de comando es:
| Bits altos | Comando | Para qué sirve |
|---|---|---|
01 | Comando de datos | Configura si se va a escribir el display o a leer el teclado, y si la dirección avanza sola o queda fija |
11 | Comando de dirección | Selecciona en qué dígito (00H–05H) empieza a escribirse el siguiente byte de datos |
10 | Comando de control de display | Enciende/apaga el display y fija el brillo (8 niveles) |
Secuencia típica para escribir el display: START → comando de datos (modo escritura, dirección automática) → ACK → comando de dirección (00H) → ACK → hasta 6 bytes con los patrones de segmentos de cada dígito, cada uno con su ACK → STOP → START → comando de control de display (encendido, brillo) → ACK → STOP.
Para leer el teclado: START → comando de datos con el bit de lectura activado → ACK del chip → el TM1637 toma el control de DIO y envía 1 byte con el estado de las teclas → el maestro genera su propio ACK (o no) → STOP.
Otras aplicaciones
Más allá de los ejemplos de electrodoméstico del propio fabricante (paneles de inducción, microondas, pequeño electrodoméstico), el TM1637 se usa sobre todo en:
- Relojes y temporizadores de 4 dígitos. El módulo más popular en proyectos DIY, con 4 displays de 7 segmentos y dos puntos centrales para el separador de hora.
- Contadores y marcadores. Displays numéricos con botones de incremento/decremento aprovechando el escaneo de teclado integrado.
- Indicadores de medida. Mostrar temperatura, tensión, RPM u otras magnitudes numéricas leídas por un microcontrolador, sin gastar más de dos pines de E/S.
Referencias y documentación adicional
- PDFDatasheet del TM1637
Esta es la fuente principal a partir de la cual se ha creado este artículo.
- WEB