Registros de Desplazamiento

Conversión de datos serie-paralelo: configuraciones SISO, SIPO, PISO, PIPO para movimiento de datos.

Un registro de desplazamiento es una cadena de flip-flops donde los datos se mueven una posición por ciclo de reloj. Diferentes configuraciones permiten la conversión serie a paralelo (SIPO), conversión paralelo a serie (PISO) y retardo de datos (SISO). El registro de desplazamiento 74HC595 es uno de los CIs más populares en electrónica de hobby, usado para expandir pines de salida de microcontroladores para controlar LEDs y pantallas.

Objectives

  • Describir las configuraciones SISO, SIPO, PISO y PIPO
  • Construir un convertidor serie a paralelo usando un registro de desplazamiento SIPO
  • Comprender los contadores de anillo y contadores Johnson
  • Usar el 74HC595 para expandir pines de salida (técnica popular de Arduino)
  • Aplicar registros de desplazamiento en comunicación SPI

Key Takeaways

  • SIPO convierte datos serie a paralelo (recepción). PISO convierte paralelo a serie (envío).
  • Se necesitan N ciclos de reloj para desplazar N bits a través del registro
  • Contador de anillo: secuencia one-hot, N estados de N flip-flops
  • Contador Johnson: 2N estados de N flip-flops, fácil de decodificar
  • 74HC595: SIPO de 8 bits con latch de salida - la opción preferida para expansión de pines de Arduino
  • Los registros de desplazamiento son fundamentales para la comunicación serie (SPI, UART, I²C)

Applications

  • Comunicación SPI: Los registros de desplazamiento son la base de hardware del protocolo SPI.
  • Controladores de LED: Cadenas de 74HC595 controlan grandes matrices de LED desde pocos pines del MCU.
  • Retardo de Datos: Los registros SISO retardan señales digitales por N ciclos de reloj.
  • Generadores Pseudoaleatorios: LFSR (Registro de Desplazamiento con Retroalimentación Lineal) genera secuencias pseudoaleatorias.

Practice Problems

Problem 1: ¿Cuántos ciclos de reloj se necesitan para cargar un valor de 8 bits en un registro de desplazamiento SIPO?

Problem 2: Un contador de anillo de 4 bits comienza en 1000. ¿Cuál es la secuencia?

Problem 3: ¿Cuántos 74HC595 necesitas para controlar 24 LEDs desde 3 pines de Arduino?

Problem 4: ¿Cuál es la diferencia entre un contador de anillo y un contador Johnson con 4 flip-flops?