Determine programáticamente el tiempo de espera más bajo para la pantalla LCD de caracteres

0

Hice un código de trabajo en un microcontrolador más antiguo para una pantalla LCD basada en caracteres basada en el chip HD44780.

Mi código detiene la ejecución de todo lo demás cada 70uS para mostrar un carácter de los caracteres restantes que deben mostrarse. Escogí 70uS porque creo que ese es el peor de los escenarios para la sincronización.

He visto gráficas de comando que dicen que el tiempo de espera es de solo 40 uS o 50 uS y he visto una que dice que el tiempo de espera es de solo 37 uS.

Soy consciente de que el indicador de ocupado existe en la pantalla LCD, pero también leo en línea que un personaje puede tardar más en reconocerse como completado si confío en el indicador de ocupado. Además de eso, se me pedirá que coloque la pantalla LCD en modo de lectura y encueste el indicador de ocupado. Lo tengo cableado en modo de escritura. (R / W pin a tierra).

En lugar de modificar constantemente mi código jugando con el valor de tiempo de espera fijo, ¿hay alguna forma ideal en el código para calcular el tiempo de espera mínimo para que se procese un carácter en la pantalla LCD?

Estoy usando un microcontrolador basado en 8051 pero las respuestas en pseudocódigo están bien. Simplemente no quiero que mi sistema se desplace lentamente debido a una pantalla LCD.

De hecho, a 70uS, llenar una visualización de línea 16x4 con caracteres significa 64 caracteres + 4 comandos para establecer las posiciones iniciales de la fila equivale a 68 bytes para enviar, veces 70uS = 4760uS = 4.7mS, que puede ser bastante alto si este LCD es Se utiliza en un sistema con una conexión a Internet de alta velocidad y los datos de la pantalla LCD se deben cambiar en tiempo real a medida que se reciben datos de Internet.

    
pregunta Mike

1 respuesta

1

La hoja de datos de la pantalla o la hoja de datos del IC del controlador exacto que se usa en la pantalla debe ser su referencia para la sincronización en el peor de los casos, teniendo en cuenta todas las variaciones.

Aparentemente, Hitachi ya no fabrica el HD44780, por lo que estará mirando las hojas de datos de Sitronix ST7066U, Sunplus SPLC780D o Winstar WS0010 o quizás otras, dependiendo de la pantalla (y tal vez lo que podrían obtener más barato la semana se hizo). También tendrá que comprobar qué frecuencia de reloj han utilizado (normalmente establecida por una resistencia externa).

Por supuesto, si desea que su producto funcione con cualquier pantalla compatible con HD44780, tendrá que usar los números más lentos del lote (incluido el original).

Ese es el momento. Con un micro moderno puede optar por llenar la pantalla utilizando una rutina de interrupción para no atar el procesador con ciclos desperdiciados en ciclos de espera. Por ejemplo, un Silabs 8051 de 50 MHz tendrá una gran cantidad de ciclos de reloj disponibles en decenas de microsegundos, incluso después del cambio de contexto. Los núcleos más modernos pueden tener procesadores DMA que pueden funcionar sin ninguna intervención de la CPU principal.

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas