Sơ đồ khối mạch điều khiển LCD 3 dây sử dụng thanh ghi dịch.
Sơ đồ khối mạch điều khiển LCD 3 dây sử dụng thanh ghi dịch.

Cómo alimentar datos serie a un registro de desplazamiento TivaC

El microcontrolador TivaC se utiliza a menudo en aplicaciones embebidas que requieren comunicación con periféricos, incluidos los registros de desplazamiento. Este artículo explicará cómo alimentar datos serie a un registro de desplazamiento 74HC595 utilizando un TivaC.

El registro de desplazamiento 74HC595 es un circuito integrado común que permite la conversión de datos serie a paralelo. Tiene 8 bits de salida que se pueden utilizar para controlar dispositivos como LED, pantallas LCD y otros periféricos. El uso de un registro de desplazamiento reduce el número de pines de E/S necesarios en el microcontrolador.

Para alimentar datos serie al 74HC595, el TivaC necesita generar tres señales: datos serie (DS), pulso de reloj (SH_CP) y cierre de datos (ST_CP).

Los datos serie se envían bit a bit por el pin DS. Cada pulso de reloj en el pin SH_CP desplaza los datos un bit dentro del registro de desplazamiento. Una vez que se han desplazado los 8 bits, un pulso en el pin ST_CP bloquea los datos del registro de desplazamiento en el registro de almacenamiento, y los datos aparecen en los pines de salida paralelos (Q0-Q7).

La configuración de los pines en el TivaC para comunicarse con el 74HC595 debe realizarse en la inicialización. Los tres pines seleccionados para DS, SH_CP y ST_CP deben configurarse como salidas digitales. Por ejemplo, si se utiliza el pin PA2 para DS, PA3 para SH_CP y PA4 para ST_CP, el código de inicialización podría ser el siguiente (utilizando la biblioteca TivaWare):

// Declaración de pines
#define DATA_PIN GPIO_PIN_2
#define CLOCK_PIN GPIO_PIN_3
#define LATCH_PIN GPIO_PIN_4

// Inicialización del puerto GPIO A
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOA));

// Configuración de los pines como salidas digitales
GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, DATA_PIN | CLOCK_PIN | LATCH_PIN);

Después de configurar los pines, los datos se pueden enviar al 74HC595 utilizando un bucle para enviar cada bit y generar los pulsos de reloj correspondientes.

Por ejemplo, para enviar el valor 0x55 (01010101 en binario) al registro de desplazamiento:

uint8_t data = 0x55;

// Bloqueo de datos en bajo
GPIOPinWrite(GPIO_PORTA_BASE, LATCH_PIN, 0);

// Envío de cada bit
for (int i = 7; i >= 0; i--) {
  // Establecer datos
  GPIOPinWrite(GPIO_PORTA_BASE, DATA_PIN, (data >> i) & 1);

  // Generar pulso de reloj
  GPIOPinWrite(GPIO_PORTA_BASE, CLOCK_PIN, 1);
  GPIOPinWrite(GPIO_PORTA_BASE, CLOCK_PIN, 0);
}


// Bloqueo de datos en alto para actualizar la salida
GPIOPinWrite(GPIO_PORTA_BASE, LATCH_PIN, LATCH_PIN);

El código anterior itera a través de cada bit de los datos, comenzando por el bit más significativo (MSB). Cada bit se escribe en el pin DATA_PIN, luego se genera un pulso de reloj en el pin CLOCK_PIN para desplazar el bit al registro de desplazamiento. Finalmente, el pin LATCH_PIN se establece en alto para bloquear los datos y actualizar la salida del 74HC595.

Controlar periféricos a través de un registro de desplazamiento 74HC595 con un TivaC requiere una comprensión del funcionamiento del registro de desplazamiento y de cómo configurar los pines GPIO en el TivaC. Utilizando las funciones de la biblioteca TivaWare y una lógica de control simple, puede comunicarse fácilmente con una variedad de periféricos.

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *