Núcleo STM32L476 y la asignación de pines del escudo Arduino TFT

1

Quiero usar un escudo Arduino TFT (ILI9341) en una placa de desarrollo Nucleo STM32L476. Este escudo utiliza el modo MCU de 8 bits y funciona bien, pero la implantación del pin para el conector Arduino en el Nucleo no es muy conveniente.

Laasignacióndepinesdelbusdedatosesenrealidad:

TFT|7|6|5|4|3|2|1|0|NUCLEO|PA8|PB10|PB4|PB5|PB3|PA10|PC7|PA9|

ParaescribirunbyteenelbusTFTnecesitohacermuchoscambios,enmascaramiento,etc.EstoproduceunasobrecargaenelanchodebandadecomunicaciónTFT.

¿HayalgunaformaenelSTM32L4devolveraasignarlosGPIOylosPORTaunaespeciede"puerto paralelo virtual" donde, después de la configuración, solo puedo escribir mi byte en un registro y el hardware lo conecta a los GPIO especificados? / ¿PUERTOS?

    
pregunta rom1nux

1 respuesta

1

Usted tiene razón en su análisis, que se trata de un diseño sin sentido para un bus paralelo.

Otra versión de tu gráfico de pinout:

Tomadode manual de referencia .

Lamentablemente, no hay manera de volver a asignar los pines internos a los pines externos. El STM32 es muy restrictivo a este respecto (también con respecto a las funciones alternativas de los pines).

EDITAR: deseche esta parte para el GPIO:

Lo único que me viene a la mente (sin cambiar el hardware) que podría acelerar su proceso es el acceso de banda de bits asignados a la memoria a bits únicos del registro correspondiente mediante una sola escritura en una dirección de palabra.

Para ver esto con más detalle, consulte el manual de referencia de L476 sección 2.3 sobre la banda de bits .

No lo he usado hasta ahora, así que no puedo comentar sobre su utilidad. Pero obtener las direcciones de palabras correctas para cada uno de los bits de pin necesarios en el registro ODR podría acelerar el trabajo.

Motivo por el que se desecha la idea con bandas de bits:

Mirando más allá en la banda de bits en el L476, el manual de programación revela que solo la región de 0x40000000 a 0x400FFFFF es accesible. Los registros GPIO comienzan en 0x48000000 por lo que están fuera de la región de banda de bits.

Entonces, la única opción para simplificar realmente su software es conectar la placa de manera diferente.

    
respondido por el Arsenal

Lea otras preguntas en las etiquetas