Interfaz con un S6B0741

0

Estoy usando una placa LPC4300 para interactuar con un LCD gráfico, un S6B0741. He estado intentando inicializarlo, pero no estoy seguro de si estoy enviando los comandos de forma correcta.

El código que tengo ahora:

  GPIO_ClearValue (LCD_PINS.GPIOPortNum, (1<<LCD_PINS.GPIOBits[10]));
  GPIO_ClearValue (LCD_PINS.GPIOPortNum, (1<<LCD_PINS.GPIOBits[9]));
  GPIO_SetValue (LCD_PINS.GPIOPortNum, (1<<LCD_PINS.GPIOBits[12]));
  GPIO_SetValue (LCD_PINS.GPIOPortNum, (1<<LCD_PINS.GPIOBits[8]));

  SetBits (data); // sets the I/O data bus

  GPIO_ClearValue (LCD_PINS.GPIOPortNum, (1<<LCD_PINS.GPIOBits[8]));
  GPIO_ClearValue (LCD_PINS.GPIOPortNum, (1<<LCD_PINS.GPIOBits[12]));

Todos los puertos se definen como puertos de entrada.

He intentado seguir la rutina de inicialización, como se describe en la hoja de datos, pero no ha funcionado.

¿Esto es correcto?

EDIT Debería haber tenido esto en la publicación original, ya que el código tal como está no tiene sentido realmente.

Los pines son:

  • 0-7 bus de datos
  • 8 E
  • 9 RW
  • 10 RS
  • 11 RESETB
  • 12 CSB

La placa está configurada para usar el modo de interfaz paralela 6800.

EIDT2: erróneamente lo puso como modo 8080 en lugar de 6800.

    
pregunta MKII

1 respuesta

1

Tu código no es correcto.

Debería inicializar las líneas de control a un estado inactivo al inicio (CSB y E alto), luego, para escribir datos, haga lo siguiente:

Set your data bus lines to be outputs from the microprocessor
enable the display: /CSB low
set the RW line low
Write the command or data to the data bus lines
set the RS line as required
set the E line low
reset the E line to high
disable the display /CSB high

Si está realizando varias escrituras, o si solo tiene una pantalla en el bus, puede dejar la pantalla activada (/ CSB bajo) mientras cambia los datos y luego pulsa la línea E nuevamente.

Solo necesita establecer RW alto si necesita leer datos de la pantalla. No olvide cambiar las líneas del bus de datos en su MCU para que sean entradas antes de hacer esto.

    
respondido por el Icy

Lea otras preguntas en las etiquetas