GPIO
# GPIO

GPIO (General Purpose Input/Output, Entrada/Salida de Propósito General) es un pin genérico en un chip, cuyo comportamiento (incluyendo si es un pin de entrada o salida) se puede controlar (programar) por el usuario en tiempo de ejecución.

Los pines GPIO no tienen ningún propósito especial definido, y no se utilizan de forma predeterminada. La idea es que a veces, para el diseño de un sistema completo que utiliza el chip podría ser útil contar con un puñado de líneas digitales de control adicionales, y tenerlas a disposición ahorra el tiempo de tener que organizar circuitos adicionales para proporcionarlos. Por ejemplo, los chips Realtek ALC260 (códec de audio) tienen 8 pines GPIO, que quedan sin utilizar de forma predeterminada. Algunos integradores de sistemas (Acer Inc. laptops) que emplea el ALC260 utilizan la primera GPIO (GPIO0) para encender el amplificador utilizado para los altavoces internos y el conector de auriculares del ordenador portátil.

## Usos

GPIO se utilizan en:

* chips con pocos pines: IC, SoC, integrados y hardware a la medida, dispositivos lógicos programables (por ejemplo, FPGAs)
* chips multifunción: gestores de energía, códecs de audio, tarjetas de video.
* aplicaciones embebidas (por ejemplo, Arduino, BeagleBoard, Raspberry Pi) hacen un uso intensivo de GPIO para la lectura de varios sensores ambientales (IR, de vídeo, la temperatura, la orientación de 3 ejes, aceleración), y para enviar la salida a motores de corriente continua (mediante PWM), audio, LCD o pantallas LED para el estado.

## Capacidades

GPIO puede incluir:

* Pines GPIO que pueden ser configurados para ser entrada o salida.
* Pines GPIO que pueden ser activados / desactivados.
* valores de entrada se pueden leer (por lo general alto = 1, bajo = 0)
* valores de salida de lectura / escritura.
* valores de entrada que a menudo se pueden utilizar como IRQ (típicamente para los eventos de activación)
* el dispositivo puede utilizar DMA para mover grandes cantidades de datos de manera eficiente dentro o fuera del dispositivo.

Los periféricos GPIO varían muy ampliamente. En algunos casos son, simplemente, un grupo de pines que se puede cambiar en grupo ya sea de entrada o de salida. En otros, cada pin puede configurarse con flexibilidad para aceptar o entregar diferentes voltajes lógicos, y con la potencia de accionamiento configurables y tire ups / bajadas . Las tensiones de entrada y salida son típicamente la tensión de alimentación del dispositivo que contiene los GPIO, y pueden ser dañados por mayores tensiones. Algunos GPIO tienen entradas tolerantes de 5 V: incluso cuando el dispositivo tiene una tensión de alimentación baja (por ejemplo, 2 V), el dispositivo puede aceptar 5 V sin daño.

## Puertos

Un puerto GPIO es un grupo de pines GPIO (normalmente 8 pines) dispuestos en un grupo, y se tratan como un único puerto.

