¿Las placas base de las computadoras de escritorio tienen GPIO? Si lo hacen, cómo leerles o escribirles

21

He visto algunos pines como los pines GPIO del microcontrolador en las placas base de la computadora de escritorio por un par de veces, quería saber, primero, ¿son realmente GPIO? En caso afirmativo, ¿es posible leerles o escribirles?

Mohsen Salahshoor
fuente
2
Son lo que dice la hoja de datos de la placa base. Aparte de eso, esta pregunta solo pide especulación.
1
@OlinLathrop está bien, si es así, ¿cómo puedo comunicarme con ellos? ¿Los sistemas operativos tienen una API incorporada para este propósito? o hay alguna API para lenguajes de programación?
2
"pines como pines GPIO del microcontrolador" ¿Cómo son "como"? Todos los pines se ven iguales ..
Eugene Sh.
No he encontrado pines GPIO en una computadora de escritorio, cosas que parecían ser la mayoría del tiempo algunas extensiones periféricas (encabezado USB, encabezado de audio, etc.) o las entradas para los interruptores y salidas para LED. Si esa fuera una característica común, Internet no estaría lleno de consejos sobre cómo usar el DTR del puerto serie como GPIO o puerto paralelo. Yo diría que esta pregunta no pertenece aquí.
2
En general, las CPU x86 no tendrán pines GPIO, y cada pin se dirigirá a un periférico específico sin matriz de multiplexación PIO que es común en las MCU. SIN EMBARGO, la funcionalidad similar a GPIO a menudo es parte de la arquitectura y es manejada por un periférico (típicamente mapeado en memoria) en la placa base, el chipset a menudo tendrá algunos buses de bajo nivel (SPI e I2C para sensores), así como GPIO disponibles, la naturaleza exacta depende de la placa base y el chipset / arquitectura utilizados.
crasic

Respuestas:

15

Las PC normales no tienen GPIO como tal en el sentido de "pines destinados a ser de uso general". Los conectores en una placa base de PC (ya sean encabezados internos o puertos externos) fueron diseñados para funciones específicas. Sin embargo, algunos de ellos pueden reutilizarse para sus propios fines.

Lo más parecido a GPIO que tienen las PC es probablemente el puerto paralelo de la impresora que tiene varias líneas de datos y líneas de apretón de manos. Estas líneas son algo así como los pines GPIO, aunque tiene menos flexibilidad en términos de sus direcciones. http://retired.beyondlogic.org/spp/parallel.htm

Las líneas de protocolo de enlace en los puertos serie también se pueden usar como E / S generales, aunque tienen niveles de voltaje extraños.

Los puertos paralelos y seriales son menos comunes de lo que solían ser, pero aún así es bastante fácil encontrar placas base que las tengan si compras.

También es posible que pueda reutilizar entradas y salidas destinadas a LED de casos, botones, etc., pero me imagino que los detalles serán muy específicos para un sistema en particular.

Las PC usan un bus basado en I2C llamado SMBUS para diversas funciones de administración. Estoy seguro de que he visto informes de personas que pusieron sus propios dispositivos I2C en este bus a través de cables de soldadura antes, pero no puedo encontrar enlaces en este momento.

Hay otro bus I2C en los puertos de video utilizados para la identificación del monitor. Si puede obtener acceso a software depende de qué sistema operativo y hardware de video esté utilizando http://www.instructables.com/id/Worlds-Cheapest-I2C-I-Squared-C-Adapter/step5/Software-and- Proyectos /

Y, por supuesto, hay USB. Ahora hay microcontroladores baratos con interfaces USB que puede usar para conectarse a esto.

lavado
fuente
2

Creo que la pregunta si las placas base tienen GPIO es muy específica para el modelo y la marca. Algunos pueden, otros no.

Por ejemplo, en mi computadora de escritorio Asus, contiene un Nuvoton NCT6775 para control de ventilador y lectura de temperatura. Se puede acceder a este desde el BIOS (personalizado del proveedor) y las utilidades de escritorio de Windows. Necesito ejecutar el software de Asus para que el control del ventilador funcione, lo que significa que el control del ventilador PWM se realiza mediante software. En una instalación de Linux, necesito configurarlo manualmente a través de este módulo del núcleo y pwmconfig.

Si mira la hoja de datos de Nuvoton NCT677xF , encontrará hardware genérico para controlar PWM, leer la temperatura y los voltajes y también GPIO a través de SMBus. Equipado con ambos le da un comienzo decente para que funcione. En teoría, podría usar este conjunto de chips para funciones GPIO.

Sin embargo, no lo tocaría. No sabe qué hardware está conectado a él, a menos que desee sumergirse en un modelo muy específico de placa base y aplicar ingeniería inversa (por ejemplo, diseño, asignación de pines, etc.). Tampoco está roto a un conector.

Lo más importante, si su aplicación necesita durar varios años, el modelo de placa base también debería hacerlo. De lo contrario, no es una buena idea vincular hardware de placa base muy específico.

Hans
fuente
2

Sé que este es un tema antiguo, pero de todos modos ...

Habiendo programado el código del BIOS, puedo decir que cada placa base tiene GPIO y están completamente disponibles en el espacio de direcciones del usuario y la dirección del puerto generalmente está muy cerca del puerto paralelo. He creado controladores personalizados para placas base personalizadas utilizando controladores de puerto paralelo estándar, todo lo que tenía que hacer era modificar el número de dirección, pero conocía ese número de antemano.

¿Puedes usarlos? Bueno, eso depende de la persona que programó el BIOS. El estado de todos los GPIO debe configurarse antes de la compilación, todos los GPIO no utilizados pueden configurarse fácilmente para que se deshabiliten.

Si un GPIO no se utiliza y no está configurado, ¿cuál es su estado predeterminado? Muy probablemente solo flotando (la mayoría son tri-estados, así que buena suerte).

¿Tiene un GPIO un pullup / pulldown? Quién sabe si EE agregó uno ...

¿Hay rastros para alguno de los GPIO no utilizados? Lo dudo, pero bueno, todo es posible ...

En resumen, debe tener la suerte de que un GPIO no utilizado se haya configurado de manera que pueda usarlo; al igual que arduino (pero sin valores predeterminados reales), piense "ENTRADA / SALIDA / TRI". Tiene que tener un rastro utilizable en la placa base que, con suerte, tenga un pin o almohadilla para soldar. Luego, si conoce la ubicación de la dirección del GPIO, puede usar fácilmente un controlador de espacio de usuario estándar.

Ian Ide
fuente
0

Las PC generalmente tienen interfaces i2c, y puede encontrar chips expansores de E / S para i2c como el TI TCA9535DBR.

Por lo tanto, indirectamente, podría hacerlo dependiendo de sus requisitos de velocidad. Si estás en una PC, los requisitos de tiempo exactos son difíciles de todos modos.

Hans
fuente