Usando GPIO en la PC

8

Tengo un proyecto simple en el dispositivo host que debe manejar 2 pines con un nivel lógico alto (voltaje 3.3V, 5V o 12V, no importa) y esperar a que otros 2 pines se muevan a un nivel alto por el dispositivo periférico .

¿Puedo implementar dicho dispositivo host con una PC estándar y qué hardware (integrado o extra) debo usar?

    
pregunta Andrey Pesoshin

3 respuestas

6

No está claro qué quiere que haga la PC y qué se supone que haga el dispositivo ("dispositivo host" no tiene sentido), pero parece que desea una E / S digital básica desde una PC.

Las PC no están realmente diseñadas para E / S digital directa a dispositivos externos. Sin embargo, puede comprar módulos de E / S digitales que se conectan a la PC a través de USB, que luego le permiten leer y escribir señales digitales individuales. Puede hacerlo usted mismo más fácilmente haciendo que un microcontrolador se comunique con la PC a través de un puerto COM.

Sin embargo, si esto es realmente un problema de control simple, ¿por qué necesita una PC? Haga que un pequeño microcontrolador haga la tarea completa. Eso es exactamente para lo que están los microcontroladores. Son computadoras pequeñas con líneas de E / S digitales y otras que están destinadas a conectarse directamente a hardware externo.

    
respondido por el Olin Lathrop
11

Si aún puede encontrar uno, vale la pena mencionar que un verdadero puerto paralelo es lo más cercano a un GPIO que encontrará en una PC comercial. Las implementaciones clásicas carecen de cierta flexibilidad, ya que muchos de los pines tienen una dirección fija, y algunos están invertidos, pero la gente ha estado trabajando en eso durante años.

La mayor limitación es que tales puertos se están extinguiendo. Los reemplazos más abstractos, como los convertidores USB-paralelos, generalmente se pueden usar solo para controlar impresoras reales, y carecen de registros que pueda leer / escribir directamente para establecer o monitorear el estado del pin. Se ha rumoreado que hay algunos que tienen esta capacidad, pero pueden ser difíciles de encontrar y requieren una atención detallada a los conductores.

En ese momento, tiende a ser más práctico usar un dispositivo de E / S conectado por USB. A menudo, este es un microcontrolador que ejecuta un firmware simple, ya sea del fabricante o personalizado.

Una de las principales ventajas de una implementación personalizada es la posibilidad de descargar las partes críticas de la manipulación de E / S del nivel más bajo, la más repetitiva y / o la sincronización al procesador del dispositivo, en lugar de intentar hacerlo desde la PC donde La latencia de la paquetización USB, el paso por múltiples buses y los sistemas operativos multitarea tienden a hacer que las operaciones bit a bit sean muy lentas.

Si aún no ha descubierto exactamente qué forma tomará su solución, una posibilidad es tomar algo como un Arduino que está empaquetado en el sentido del hardware y de la cadena de herramientas para facilitar su uso, y podría funcionar como un soporte. solo o como un ayudante de E / S para realizar tareas de bajo nivel bajo el comando de una PC conectada.

    
respondido por el Chris Stratton
8

Recomiendo usar un FTDI FT232RL utilizando un controlador especial que lo habilite bitbang modo . Este método funcionará en prácticamente todas las PC y permite un acceso de latencia decente a un GPIO simple.
Hay muchos paneles de ruptura de chips FTDI, pero personalmente uso éste .

    
respondido por el David Perek

Lea otras preguntas en las etiquetas