Diagrama esquemático de la estructura GPIO y configuración de modo (tome STM32 como ejemplo)

Tabla de contenido

Esquema equivalente de GPIO

Configuración del modo de entrada

Configuración del modo de salida

función de multiplexación

Configuración de simulación

Guía de configuración de GPIO


Los GPIO STM32 están disponibles en varias configuraciones. Cada pin GPIO se puede configurar individualmente por software en cualquiera de los siguientes modos:

• Entrada flotante

• Entrada pull-up

• Entrada desplegable

• Simulación

• Salida de drenaje abierto con pull-up o pull-down

• Salida push-pull con pull-up o pull-down

• Función alternativa push-pull con pull-up o pull-down

• Drenaje abierto de función alternativa con pull-up o pull-down

Esquema equivalente de GPIO

Los productos STM32 integran tres estructuras básicas GPIO principales:

• Compatible con tres voltios (abreviado como TC).

La figura 1 muestra la estructura de gráfico GPIO equivalente.

• Tolerante a tres voltios (abreviado como TT).

• Tolerante a cinco voltios (abreviado como FT)

La Figura 2 muestra la estructura gráfica GPIO equivalente de TT o FT.

8e20586f07de47088c970da609ecd3e3.jpeg

24272af8d5c945898d5d1136ea97c1b3.jpeg

 

Configuración del modo de entrada

Cuando un pin de E/S de un dispositivo STM32 se configura como entrada, se debe seleccionar una de las siguientes tres opciones:

• Salida con pullup interno. Las resistencias pull-up se utilizan en dispositivos STM32 para garantizar niveles lógicos bien definidos en el caso de señales de entrada flotantes. Según los requisitos de la aplicación, se puede utilizar una resistencia pull-up externa.

• Entrada con pull-down interno. Las resistencias desplegables se utilizan en los dispositivos STM32 para garantizar niveles lógicos bien definidos en el caso de señales de entrada flotantes. Dependiendo de los requisitos de la aplicación, se puede utilizar un menú desplegable externo.

• Entrada flotante. El nivel de la señal sigue a la señal externa. Cuando no hay señal externa, el disparador Schmitt cambia aleatoriamente entre los niveles lógicos provocados por el ruido externo. Esto aumenta el consumo total.

 

Cuando se programa como entrada, un puerto de E/S tiene las siguientes características:

• El búfer de salida está apagado;

• La entrada del disparador Schmitt está activada;

• Determinar si activar resistencias pull-up o pull-down según el valor en el registro GPIOx_PUPDR;

• El registro de datos de entrada muestrea los datos en el pin de E/S cada ciclo de reloj 1 AHB;

• El estado de E/S se puede obtener leyendo el registro de datos de entrada GPIOx_IDR;

 

Configuración del modo de salida

Cuando un pin de E/S del dispositivo STM32 se configura como una salida, se debe seleccionar una de las siguientes dos opciones:

• Modo de salida push-pull:

La salida push-pull en realidad usa dos transistores: un PMOS y un NMOS. Cada transistor se enciende para llevar la salida al nivel apropiado:

– Cuando la salida debe llevarse a un estado alto, el transistor superior (PMOS) se enciende

– El transistor inferior (NMOS) conduce cuando la salida debe llevarse a un estado bajo

El control de los dos transistores se realiza a través del registro de tipo de salida del puerto GPIO (GPIOx_OTYPER).

Escribir un 0 en el bit correspondiente del registro de salida (GPIOx_ODR) activa el transistor NMOS, lo que fuerza el pin de E/S a tierra.

Escribir un 1 en el bit correspondiente en el registro de salida (GPIOx_ODR) activa el transistor PMOS, forzando el pin de E/S a VDD.

• Modo de salida de drenaje abierto:

El modo de salida de drenaje abierto no utiliza un transistor PMOS, pero requiere una resistencia pull-up.

Cuando la salida tiene que subir, el transistor NMOS tiene que apagarse y el nivel sube alto solo por la resistencia pull-up. Esta resistencia pull-up puede ser interna, normalmente de 40 kOhm, y se activa a través del registro pull-up/pull-down del puerto GPIO (GPIOx_PUPDR).

 

Cuando se programa como salida, un puerto de E/S tiene las siguientes características:

• Los búferes de salida se pueden configurar como de drenaje abierto o push-pull;

• La entrada del disparador Schmitt está activada;

• Determinar si activar resistencias pull-up o pull-down según el valor en el registro GPIOx_PUPDR;

• El valor escrito en el registro de datos de salida GPIOx_ODR establece el estado del pin de E/S;

• Los datos escritos en GPIOx_ODR se pueden leer desde GPIOx_IDR, que se actualiza cada ciclo de reloj AHB;

 

función de multiplexación

En algunos pines GPIO STM32, el usuario puede elegir entrada/salida de función alternativa. Cada pin se puede multiplexar con hasta 16 funciones periféricas, como interfaces de comunicación (SPI, UART, I2C, USB, CAN, LCD, etc.), temporizadores, interfaces de depuración, etc.

La función alterna del pin seleccionado se configura a través de dos registros:

• GPIOx_AFRL (pines 0 a 7)

• GPIOx_AFRH (pines 8 a 15)

 

Al programar un puerto de E/S como una función alternativa:

• Los búferes de salida se pueden configurar como de drenaje abierto o push-pull

• Búferes de salida impulsados ​​por señales de periféricos (habilitación y datos del transmisor)

• La entrada del disparador Schmitt está activada

• Dependiendo del valor en el registro GPIOx_PUPDR si activar resistencias pull-up o pull-down

El registro de datos de entrada muestrea los datos en el pin de E/S cada ciclo de reloj de 1 AHB.

El acceso de lectura a los registros de datos de entrada obtiene el estado de E/S.

 

Configuración de simulación

Hay algunos pines GPIO STM32 que se pueden configurar en modo analógico, lo que permite el uso de periféricos internos ADC, DAC, OPAMP y COMP. Para usar pines GPIO en modo analógico, considere los siguientes registros:

• - GPIOx_MODER, modo de selección (entrada, salida, multiplexado, analógico)

• - GPIOx_ASCR, seleccione la función deseada, ADC, DAC, OPAMP o COMP

 

Al programar un puerto de E/S como una configuración analógica:

• El búfer de salida está desactivado

• La entrada del disparador Schmitt está deshabilitada, por lo que no hay consumo por valor analógico en el pin de E/S. La salida del disparador Schmitt se fuerza a un valor constante (0).

• Las resistencias pull-up y pull-down están desactivadas por hardware

Un acceso de lectura al registro de datos de entrada tiene el valor "0".

 

Guía de configuración de GPIO

ddf62f38d9204b028314af97177323a6.jpeg

1dcc5b9f940d42839625bd79cba91919.jpeg

 

Supongo que te gusta

Origin blog.csdn.net/qq_30095921/article/details/130014551
Recomendado
Clasificación