Problemas de la interfaz LCD: sistemas integrados

0

Los aficionados tienden a utilizar la comunicación paralela para interactuar con una pantalla LCD y todas las bibliotecas son para un tipo específico de microcontrolador (Arduino o AVR) o LCD.

Pero, para un ingeniero de diseño, a menudo es necesario diseñar con un microcontrolador con un rendimiento óptimo (puede ser debido a la optimización de la potencia o la potencia de procesamiento o algunos periféricos de interés específicos). En ese caso, seguramente se necesita mucho tiempo de ingeniería para desarrollar bibliotecas para interactuar con el LCD específico de su elección con el microcontrolador específico, si no lo proporciona el fabricante. ¿Cómo se enfrentan los ingenieros de sistemas integrados?

Ejemplo: En mi caso, planeo usar el microcontrolador STM32L476. Encontré la pantalla LCD de New Haven con una interfaz I²C bastante intrigante para mi diseño. New Haven no proporciona bibliotecas para STM32L476, pero tienen código de ejemplo para algunos otros microcontroladores. Tengo que tomar el riesgo al revisar la hoja de datos y los ejemplos y construir el mío. ¿Un profesional sigue esto o me dirijo a una dirección equivocada?

    
pregunta sbz

3 respuestas

3

Mi pregunta es, ¿cómo lidian con eso los ingenieros de sistemas integrados?

Es una tarea muy simple & Los codificadores profesionales no tienen ningún problema para escribir un código tan simple. No tienen ningún problema para portar bibliotecas simples de un sistema (o lenguaje de programación a otro).

La forma más sencilla, pero no la más eficiente, es dividirla en algunos niveles de abstracción (por ejemplo, capa de comunicación, capa de hardware de visualización, capa de primitivos gráficos). Por lo general, para aprovechar al máximo el hardware, hay que fusionarlo.

Si hace esta pregunta, es muy probable que tenga que mejorar sus habilidades de programación.

    
respondido por el P__J__
2

Depende.

Tengo una biblioteca LCD personal que está dividida en dos partes. Uno maneja cosas como la representación de fuentes, goto_xy, los algoritmos de dibujo de líneas y círculos de breshenans, los rellenos de degradado, las superposiciones, etc. y esas cosas).

La segunda parte trata de "select_region (x1, y1, x2, y2)" y "blit_pixels ... y esas cosas y es altamente específica del dispositivo (En realidad, encontrarás que la mayoría de esas pantallas usan comandos MUY similares). Este es el único bit que necesita trabajo real para adaptarse a una nueva pantalla.

A veces, si el rendimiento es todo, por supuesto puede hablar directamente con la pantalla, pero si su implementación es sensata, el límite terminará siendo la velocidad del bus SPI la mayor parte del tiempo, por lo que el rendimiento del software definitivo puede desplazarse hasta el mantenimiento. .

Para los controladores en modo SPI, encontrará que básicamente hay solo dos tipos, uno de los cuales incorpora la selección de control / datos en el flujo en serie y otro que no usa una línea de GPO, cubre esos dos y usted prácticamente termine de escribir una rutina display_init (o, a veces, incluso algunos datos constantes estáticos) para cada dispositivo nuevo, las cosas son realmente similares (Sugerencia para la opción GPO a menos que su chip tenga soporte de hardware para SPI de 9 bits).

    
respondido por el Dan Mills
0

Primero necesitas dominar google. Primero encontrará que solo algunos lcds usan una interfaz paralela tradicional, a menudo se usan spi, i2c y, a veces, serial. Y eso es solo porque hay un chip conectado al panel lcd para hacerte la vida más fácil. Encontrará que a veces puede encontrar la pantalla sin el chip auxiliar y comprar microcontroladores de los principales proveedores que tienen una gran cantidad de pines para conducir pantallas directamente. Ahorro en partes y costo.

¿En cuanto a cómo los ingenieros de software y hardware lidian con esto? Es como aprender a conducir a un supermercado nuevo, mirar la documentación (mapa) planear su ataque y luego ir a hacerlo, a veces lo obtiene en el primer intento, a veces toma unos pocos.

Hay ejemplos para la mayoría de los chips de controladores de pantalla populares para la mayoría de los microcontroladores o arquitecturas populares o los de AVR (Arduino no es un microcontrolador) que se pueden portar directamente o con un poco de ayuda (las bibliotecas podrían antes de Arduino sí) , la zona de pruebas / entorno) o el mbed (otro conjunto de bibliotecas de la zona aislado / entorno) u otras 700 en github o donde sea que Google lo lleve, o simplemente mira la hoja de datos y, a veces, toma minutos para que aparezca la pantalla a veces horas.

Lo mismo ocurre con los ingenieros de hardware, ellos miran la otra parte de la hoja de datos, los pines, las especificaciones eléctricas, los requisitos de alimentación, el diseño de referencia, etc. y planean o simplemente comienzan en el esquema del producto / placa.

Todo es parte del trabajo, los profesionales solo hacen su trabajo, no todos están recortados o interesados en este nivel de trabajo, algunas personas son mejores en aplicaciones, aplicaciones telefónicas, lo que sea, códecs de video, videojuegos, etc. la gente usa bibliotecas para este tipo de dispositivos, pero no necesariamente puede ensuciarse más las manos que eso (Arduino) (algunos pueden optar por no reinventar una rueda), y algunos pueden y quieren y adoran ensuciarse las manos. Algunos escriben las bibliotecas para otros, los ejemplos o controladores, etc. Algunos de los trabajos mencionados anteriormente requieren una revisión a través de la documentación de la API para aprender a crear un programa GUI en un entorno nuevo para ellos, algunos tienen que leer un libro o ver ejemplos. o ambos para aprender cómo hacer un controlador de dispositivo para algo, o mirar los cambios de la versión anterior del sistema operativo para que puedan modificar sus controladores existentes de los que son responsables y / o escribir nuevos según sea necesario. Todo es parte del trabajo y cómo obtienes ese título de "profesional".

Sí, estás en el camino correcto, ahora con i2c a veces es más fácil hacer bit bang o bit bang primero, luego pasar por eso y más tarde, si alguna vez, si es compatible con los periféricos mcu, usa i2c específico para mcu periférico. el último funciona mejor, pero tiene un costo de desarrollo más alto (a menos que ya haya una buena biblioteca que simplemente funcione) y no es portátil. Los golpes de bits, particularmente con i2c, lo hacen para que pueda trasladar su código de un mcu o familia a otro en algunos minutos, literalmente, y tener la pantalla arriba, donde si utiliza el periférico incorporado, podría ser una tarde larga o un día o una semana . No se requiere un alcance, pero si es la primera vez que lo hace ... se requiere ... o alguna otra forma de "ver" lo que está sucediendo, lo que podría funcionar con otro microcontrolador que enciende gpio bastante rápido y luego lo usa como Un analizador lógico. pero para i2c realmente desea un alcance porque se trata de un bus abierto y de colector abierto, y puede ver cuándo cada lado libera y toma el control del bus que no puede ver con un analizador lógico, y ese momento puede ser importante. El otro hecho es asumir que los manuales están al menos un poco equivocados. nunca son perfectos, tienes que "abrirte camino" a veces por falta de un término mejor.

los ejemplos para otros microcontroladores le ayudarán con qué registros programar en qué orden (a veces importa, a veces no) y algunos valores para introducir esos registros, que pueden o no tener sentido cuando se comparan los ejemplos. A la documentación del dispositivo. todavía tiene que encontrar el soporte del protocolo i2c básico para entregar esas escrituras de registro y quizás las lecturas (a menudo puede obtener con escritura solo en algunas de estas pantallas).

Las partes principales son bastante populares, las pantallas son una moneda de diez centavos por docena en las de nokia 5110 de ebay, hay unas 64x64 y otras de tamaño reducido, con interfaces i2c, spi, etc., además de una gran cantidad de otras. Un puñado de controladores de pantalla realmente populares (chips en la parte posterior) una vez que pruebes una o dos pantallas con las que se mueven a la siguiente ...

    
respondido por el old_timer

Lea otras preguntas en las etiquetas