Sei sulla pagina 1di 2

General Purpose input Outputs (GPIO)

La STM32 posee pines de propsito general I/O (GPIO), tienen tpicamente 80 pines
bidireccionales I/O, estos estn dispuestos como cinco puertos, cada uno dispone de 16 lneas I/O.
Cada puerto GPIO tiene cuatro registros de configuracin de 32 bits (GPIOx_MORDER,
GPIOx_OTYPER, GPIOx_OSPEEDR y GPIOx_PUPDR), dos registros de datos de 32 bits (GPIOx_IDR y
GPIOx_ODR), un registro set/reset de 32 bits (GPIOx_BSRR), un registro de bloqueo de 32 bits
(GPIOx_LCKR) y dos registros de seleccin de funcin alternativa de 32 bits (GPIOx_AFRH y
GPIOx_AFRL).
Cada pin GPIO puede ser configurado por software como salida (push-pull u open-drain, con
o sin pull-up o pull-down), como entrada (flotante, con o sin pull-up o pull-down) o como funcin
perifrica alterna. Los pines GPIO son compartidos con funciones alternativas digitales o anlogas.
Todos los GPIOs tienen capacidad de alta corriente y tienen velocidad de seleccin, mayor manejo
de ruido interno, consumo de energa y emisiones electromagnticas.
Estos puertos son denominados de A-E y tienen 5V de tolerancia. Muchos de los pines externos
pueden servir como I/O de un perifrico de usuario, por ejemplo un USART o I2C.
Adems existe una unidad de interrupcin externa que permite a 16 lneas de interrupcin externa
que se mapeen en cualquier combinacin de lneas GPIO.
La configuracin I/O puede ser bloqueada si es necesario, siguiendo una secuencia especfica para
evitar la escritura falsa en los registros de I/Os, proporcionando congelacin de estos.
Dado que cada puerto GPIO tiene dos registros de configuracin de ancho de 32 bits; estos dos
registros se combinan para dar un registro de configuracin de ancho de 64 bits.
Dentro de estos 64 bits, cada pin tiene un campo de cuatro bits que permite a sus caractersticas
que se definan. El campo de configuracin de cuatro bits se compone de un campo de modo
panormico de dos bits y un campo de configuracin de ancho de dos bits.
El campo de modo permite al usuario definir el pin como una entrada o una salida, mientras que el
campo de configuracin define las caractersticas de unidad:
Adems de ser capaz de definir un pin del puerto como una entrada o salida, tambin se
pueden seleccionar sus caractersticas de accionamiento.
En el caso de una entrada, una resistencia interna se puede conectar como una resistencia
pull up o pull down.
Para una salida, cada pin del puerto puede ser configurado con un push pull o un
controlador de drenaje abierto (open drain driver). Cada pin de salida tambin se puede
configurar con una velocidad de salida mxima de 2 MHz, 10 MHz o 50 MHz.
Tambin posee alternancia rpida capaz de cambiar cada dos ciclos de reloj.
Configuracin de entrada:
El bfer de salida se desactiva.
La entrada del disparador de Schmitt se activa.
Las resistencias pull-down y pull-up se activan en funcin del valor en el registro
GPIOx_PUPDR.
Los datos presentes en el pin I / O se recogen en los datos de entrada registran cada ciclo
de reloj AHB1.
Un acceso de lectura para el registro de datos de entrada proporciona el estado de I / O.
Configuracin de salida:
El bfer de salida se activa:
1. Modo de drenaje abierto: un "0" en el registro de salida se activa la N-MOS,
mientras que un "1" en el registro de salida deja el puerto en Hi-Z (el P-MOS
nunca se activa).
2. Modo push-pull: un "0" en el registro de salida se activa la N-MOS, mientras que
un "1" en el registro de salida se activa el P-MOS.
La entrada del disparador de Schmitt se activa.
Las resistencias de polarizacin pull-up y pull-down se activan o no dependiendo del valor
en el registro GPIOx_PUPDR.
Los datos presentes en el pin I/O se recogen en los datos de registro de entrada en cada
ciclo de reloj AHB1.
Un acceso de lectura para el registro de datos de entrada obtiene el estado de I/O.
Un acceso de lectura para el registro de datos de salida se pone el ltimo valor escrito.
Configuracin funcin alterna:
El bfer de salida puede ser configurado como open-drain o push-pull.
El bfer de salida es accionado por la seal procedente de la perifrica (habilitar
transmisor y datos).
La entrada del disparador de Schmitt se activa.
Las resistencias de polarizacin pull-up y pull-down se activan o no dependiendo del valor
en el registro GPIOx_PUPDR.
Los datos presentes en el pin I/O se recogen en los datos de registro de entrada en cada
ciclo de reloj AHB1.
Un acceso de lectura para el registro de datos de entrada obtiene el estado de I/O.
Configuracin anloga:
El bfer de salida es deshabilitado.
La entrada del disparador de Schmitt se desactiva, proporcionando un consumo cero para
cada valor analgico del pin de I/O. La salida del disparador de Schmitt se ve obligado a un
valor constante (0).
Las resistencias de polarizacin pull-up y pull-down se desactivan.
Lea el acceso al registro de datos de entrada tiene el valor "0".
En la configuracin analgica, los pines de I/O no pueden tener 5 voltios de tolerancia.