¿No hay pin PSB en la pantalla LCD?

Compré una Winstar 144x32 LCD (WG14432D) porque era barata y estaría bien hacer algunos experimentos con ella. El principal problema con esta pantalla LCD es que no tiene una biblioteca (en funcionamiento) para ella.

Ya busqué en todo Internet con Google, pero mis resultados no fueron impresionantes:

https://forum.crystalfontz.com/showthread.php/7410-Tutorial-ST7920-Seeeduino-v4-2-Arduino-Sample-Sketch-Driving-a-144x32-Graphic-LCD (Un enorme código de ejemplo que no trabajo. Configuré SCK, MISO y CS correctamente y no pasa nada).

Sabiendo que tiene el chip ST7920 , encontré una biblioteca para pantallas que usan este mismo chip: https://github.com/olikraus/u8glib/wiki/device#st7920-192x32 (La biblioteca solo admite otras resoluciones, como 128x64, pero creo que como es el mismo chip, también debería funcionar. También probé otras variantes de pantalla de este mismo chip).

En algún sitio portugués encontré cómo inicializar y usar la biblioteca correctamente: http://www.arduinoecia.com.br/2013/09/display-grafico-lcd-128x64-st7920.html (No hay problema para mí, ya que hablar portugués también)

Usan: U8GLIB_ST7920_128X64_1X u8g(6, 5, 4 ,7);para configurar los pines SPI del software para la pantalla LCD. En el mio (Arduino Mega) seria:

U8GLIB_ST7920_128X64_1X u8g(52, 51, 53); //Enable, RW, RS [,RESET] (known also as) SCK, MOSI, CS

El resultado: la pantalla permaneció en blanco. Luego traté de usar la inicialización de hardware SPI, que según este sitio es:U8GLIB_ST7920_128X64_1X u8g(53); // RS (known also as) CS pin needed only

Aun así, la pantalla no hará nada. Se quedó gris claro (Contraste ajustado) y eso es todo. Sin parpadeo, sin encender/apagar, nada...

Finalmente, estaba leyendo en esta hoja de datos que el pin PSB debe establecerse en 0 (tierra) para habilitar el modo SPI.

El pin PSB debe establecerse en cero

Otras variantes de esas pantallas tenían puentes o pines en la parte posterior, que puedes saltar al suelo, pero esta no tiene ninguno.

Una imagen de alta resolución de la parte posterior de la pantalla LCD que capturé (o al menos probé) y adjunté a continuación (el frente no tiene nada más que la pantalla LCD), porque no pude encontrar nada sobre esta placa. Sin esquema, nada.

Parte posterior del WG14432D

No pude encontrar ningún pin PSB (que se identifique como tal), puente ("JP") o similar en esta placa.

Los pines para interactuar con la pantalla LCD no tenían pines inusuales que también se identifiquen como "PSB" o similares:

Pines en el WG14432D

Cualquier sugerencia o respuesta es muy apreciada.

La moraleja de la historia es que nunca compre ningún componente electrónico o kit de desarrollo que no venga con la documentación adecuada. El resultado habitual de comprar el dispositivo electrónico de imitación más barato que puede encontrar es que pasa años tratando de descubrir cómo funciona, y luego finalmente se da por vencido y compra uno debidamente documentado.
No creo que "Winstar" sea una imitación, ya que es el único que tiene una pantalla LCD de 144x32.
Eche un vistazo a esta página de AliExpress : lo más probable es que SCKL deba conectarse al pin 6 (E), MOSI al pin 5 (R/W), SS al pin 4 (RS) y MISO probablemente no se use.
@Fusseldieb Para ser honesto, no busqué a Winstar para averiguarlo. Pero le sorprendería saber cuántas empresas venden exactamente la misma pieza. Por ejemplo, hay una empresa aparentemente sin sitio web llamada aMtec que vende la misma pantalla. Hay muchas empresas de este tipo escondidas detrás de empresas fachada bien presentadas. Todos venden los mismos productos y la razón por la que la documentación es tan mala es que simplemente están reempaquetando los documentos basura que les dieron. Lo que es un regalo muerto es la falta de cualquier nombre de empresa impreso en la PCB.
@Codo Conozco el pinout de este sitio: github.com/olikraus/u8glib/wiki/device#additional-information , pero gracias.
@TomCarpenter Probablemente es por eso que nadie usa esas pantallas para Arduino y esas cosas. No tienen biblioteca (en funcionamiento), no hay (buena) documentación, nada... Es triste.
@Fusseldieb: Genial ver que lo hiciste funcionar. ¿Puedo sugerirle que use la biblioteca u8g2? Es el sucesor de u8g. El constructor U8G2_ST7920_192X32_F_SW_SPI debería funcionar y encajar mejor con respecto al tamaño (altura correcta, un poco demasiado ancha).
@Codo Gracias, pero no tengo necesidad de usar u8g2 por ahora, ya que modifiqué el u8g para que se ajuste a la pantalla LCD de 144x32 (Hice funciones para esa pantalla LCD en particular, ajusté la velocidad HW SPI [contenido de pantalla corrupto - era demasiado rápido], etc.). No puedo subirlo a GitHub porque, sinceramente, estoy confundido sobre cómo funciona la contribución allí, pero de todos modos...

Respuestas (2)

Muchos controladores LCD (incluido el ST7920) pueden admitir una variedad de tipos de interfaz, de los cuales puede usar uno a la vez. A veces, el tipo de interfaz se fija en un módulo de pantalla LCD dado; a veces se puede seleccionar la interfaz. Las marcas exactas de PCB para seleccionar entre interfaces (cuando sea posible) no siempre coinciden con los nombres de señal que espera.

Dado que la interfaz no siempre se puede seleccionar, la respuesta de Finbarr a veces es correcta: es posible que la interfaz sea absolutamente fija (por ejemplo, solo en paralelo, solo SPI, etc.) en un módulo LCD determinado.

Sin embargo, en tu caso, creo que podrías tener suerte. Noté una similitud entre su módulo LCD y el utilizado en el primer tutorial que vinculó.

Observe cómo su módulo LCD tiene el número de pieza 14432Den la parte posterior, y vemos 2 ubicaciones de componentes: R11y R12. R11falta y R12está instalado:

Parte posterior de la pantalla LCD original: falta R11, R12 instalado

Ahora mire esta imagen del primer tutorial que vinculó, que muestra la parte posterior de ese módulo LCD (que es diferente a su módulo LCD y, por lo tanto, no hay garantía de que el primer tutorial que vinculó se aplique a su módulo LCD de todos modos). Vea que tiene la misma disposición de componentes que su módulo LCD y también tiene un R11y R12. Excepto en ese módulo, R11está instalado y R12falta:

PCB del módulo LCD del tutorial que muestra R11 instalado, falta R12

No puedo garantizar que la siguiente parte se aplique a su módulo LCD: necesita su hoja de datos con los detalles relevantes para estar completamente seguro. Sin embargo, es posible que la respuesta esté contenida en este documento :

Opciones de selección de interfaz LCD

Observe cómo para su número de modelo que termina en 14432D (similar a su número de modelo), las resistencias R11y R12se utilizan para seleccionar entre interfaces paralelas y SPI. En el módulo LCD en su primer enlace de tutorial, vea cómo solo R11está instalado y están usando la interfaz SPI. En su módulo LCD, vea cómo solo R12está instalado y no puede usar el pinout de la interfaz SPI como se muestra en ese tutorial.

Entonces, ¿tal vez su módulo LCD está configurado para una interfaz paralela? Eso sería consistente con el hecho de que R12está instalado en su módulo LCD.

Por lo tanto , tal vez al desoldar R12su placa y volver a soldarla en la R11posición, puede usar la interfaz SPI y el pinout que se muestra en ese primer tutorial.


Actualizar:

Aquí está la PCB después de que Fusseldieb hizo la modificación (la resistencia se movió de la R12posición a la R11posición):

LCD original después de mover la resistencia de la posición R12 a la posición R11

Esa modificación se confirmó para habilitar con éxito la interfaz SPI, utilizando los siguientes pines del conector:

Señal LCD Pin SPI (Original)
------- ---------- ----------
   1 Vdd (Vdd)
   2 Vss (Vss)
   3 Vo (Vo)
   4 CS (SS) (RS)
   5 MOSI (L/E)
   6 SCLK (E)

FYI, mirando el otro tutorial:

http://www.arduinoecia.com.br/2013/09/display-grafico-lcd-128x64-st7920.html

Eso utiliza un módulo LCD con un pinout de interfaz completamente diferente, que incluye las señales CS1y CS2(pines 15 y 16 en su conector de 20 pines). Esto permite cambiar la interfaz entre paralelo y SPI sin necesidad de soldar o desoldar componentes en la PCB. No tiene ese conector de 20 pines con esas señales en su módulo LCD. Es por eso que ese tutorial no se aplica directamente a su módulo (aunque es probable que se apliquen los comandos ST7920 , una vez que pueda hacer que una interfaz SPI funcione en su módulo LCD específico).

Ahora que es una respuesta elaborada. Muchísimas gracias por su tiempo. Como de todos modos no puedo usar la pantalla LCD de esta manera, intentaré soldar la resistencia como dijiste. Responderé más tarde.
@Fusseldieb - De nada :-) " Intentaré soldar la resistencia como dijiste " OK. Puede que ya esté claro, pero dado que no mencionó la desoldadura que está involucrada primero, solo resumiré: la modificación es desoldar R12 antes de soldar ese mismo componente en la R11ubicación de la PCB. No puede escapar sin quitar R12;-) Si tiene un problema para desoldar R12(no sé qué herramientas y experiencia tiene), entonces hay un enfoque alternativo (pero de mayor riesgo). Déjame saber si necesito explicarlo. ¡Buena suerte!
Hecho. ¿Lo he soldado bien? prntscr.com/gjvd6o (Perdón por casi matar esa pequeña resistencia: P)
@Fusseldieb: siempre que el lado derecho R11esté correctamente soldado a su almohadilla (no estoy seguro por la foto), entonces sí, eso me parece correcto :-)
De ninguna manera... MIRA : prntscr.com/gjvhqk ¡Abrázame! ¡AHORA!
@Fusseldieb - Esa es una excelente noticia. Creo que eso cuenta como éxito. ¡Bien hecho!
Señor, se merece dos medallas. Uno por ser un superhéroe en este momento y el otro por si pierdes al primero. ¡Guau! Finalmente, esas pantallas LCD serán útiles para muchas personas. No te puedes imaginar mi felicidad ahora mismo. En serio. Muchas gracias. :-)
@Fusseldieb - Estoy sin palabras, gracias. :-) ¿No es genial cuando funciona la piratería de hardware? :-) ¡Gracias también por proporcionar todas las fotos y enlaces en primer lugar! Para ayudar a los futuros lectores, actualizaré mi respuesta para incluir su foto de la PCB después de mover la resistencia, para que sepan cómo debería verse para habilitar la opción de interfaz SPI. Nuevamente, ¡bien hecho y buena suerte!
¡Totalmente agradable! :-)

Lo siento, estás atascado con una interfaz paralela en esa pantalla. El IC del controlador admite la elección entre una interfaz serial o paralela, pero el pin está cableado a 1 en la PCB.

La interfaz más pequeña que puede usar sería de 7 bits: RS, R/W, E y cuatro líneas de datos.

Pero entonces, ¿por qué los pines de encabezado están etiquetados como si fueran compatibles con SPI? (RS, L/E, E)? Además, el código de ejemplo tiene un video que muestra (¿exactamente?) la misma pantalla LCD en acción sobre SPI, con el mismo cableado que el mío.
SPI tendría pines etiquetados como SCLK, MOSI, MISO y posiblemente SS.
He usado pantallas chinas en el pasado. Y aunque los pines tenían etiquetas extrañas, eran compatibles con SPI. Solo tienes que averiguar cuál es cuál...
@Codo Ya revisé tres veces los pines. Sé cuál es MISO, CLK, CS... Pero pase lo que pase, no funcionará.