Les cartes mères d'ordinateurs de bureau ont-elles GPIO? S'ils le font, comment leur lire ou leur écrire

21

J'ai vu quelques broches comme les broches GPIO du microcontrôleur sur les cartes mères des ordinateurs de bureau plusieurs fois, je voulais savoir, d'abord, sont-elles vraiment des GPIO? si oui, est-il possible de leur lire ou de leur écrire?

Mohsen Salahshoor
la source
2
Ils sont ce que la fiche technique de la carte mère indique. En dehors de cela, cette question demande simplement des spéculations.
1
@OlinLathrop ok si c'est le cas, comment puis-je communiquer avec eux? les systèmes d'exploitation ont-ils une API intégrée à cet effet? ou existe-t-il une API pour les langages de programmation?
2
"broches comme les broches GPIO du microcontrôleur" Comment sont-elles "comme"? Toutes les épingles se ressemblent ..
Eugene Sh.
Je n'ai pas rencontré de broches GPIO sur un ordinateur de bureau, ce qui ressemblait le plus souvent à des extensions périphériques (en-tête USB, en-tête audio, etc.) ou aux entrées pour les commutateurs et aux sorties pour les LED. Si c'était une caractéristique commune, Internet ne serait pas jonché de conseils sur la façon d'utiliser le DTR du port série comme GPIO ou port parallèle. Je dirais que cette question n'a pas sa place ici.
2
Les processeurs x86 n'auront généralement pas de broches GPIO, chaque broche étant dirigée vers un périphérique spécifique sur la puce sans multiplexage PIO qui est commun aux MCU. TOUTEFOIS, les fonctionnalités de type GPIO font souvent partie de l'architecture et sont gérées par des périphériques (généralement mappés en mémoire) sur la carte mère, le chipset aura souvent des bus de bas niveau (SPI et I2C pour les capteurs) ainsi que des GPIO disponibles, la nature exacte dépend de la carte mère et du chipset / architecture utilisés.
crasic

Réponses:

15

Les PC normaux n'ont pas de GPIO en tant que tel dans le sens de "broches destinées à un usage général". Les connecteurs d'une carte mère PC (qu'il s'agisse d'en-têtes internes ou de ports externes) ont tous été conçus pour des fonctions spécifiques. Cependant, certains d'entre eux peuvent être réutilisés à vos propres fins.

La chose la plus proche de GPIO que les PC ont est probablement le port d'imprimante parallèle qui a un certain nombre de lignes de données et de lignes de négociation. Ces lignes sont un peu comme les broches GPIO, bien que vous ayez moins de flexibilité en termes de directions. http://retired.beyondlogic.org/spp/parallel.htm

Les lignes de négociation sur les ports série peuvent également être utilisées comme E / S générales, bien qu'elles aient des niveaux de tension étranges.

Les ports parallèles et série sont moins courants qu'auparavant, mais il est toujours assez facile de trouver des cartes mères qui les ont si vous magasinez.

Vous pouvez également être en mesure de réutiliser les entrées et les sorties destinées aux LED de boîtier, aux boutons, etc., mais j'imagine que les détails seront très spécifiques à un système particulier.

Les PC utilisent un bus basé sur I2C appelé SMBUS pour diverses fonctions de gestion. Je suis sûr d'avoir déjà vu des rapports de personnes mettant leurs propres appareils I2C sur ce bus via des fils de soudure, mais je ne trouve pas de liens pour le moment.

Il y a un autre bus I2C sur les ports vidéo utilisés pour l'identification du moniteur. La possibilité d'accéder au logiciel dépend du système d'exploitation et du matériel vidéo que vous utilisez http://www.instructables.com/id/Worlds-Cheapest-I2C-I-Squared-C-Adapter/step5/Software-and- Projets/

Et bien sûr, il y a l'USB. Il existe maintenant des microcontrôleurs bon marché avec des interfaces USB que vous pouvez utiliser pour vous y connecter.

plugwash
la source
2

Je pense que la question de savoir si les cartes mères ont GPIO est très spécifique au modèle et à la marque. Certains le peuvent, d'autres non.

Par exemple, sur ma carte de bureau Asus, il contient un Nuvoton NCT6775 pour le contrôle du ventilateur et la lecture de la température. Celui-ci est accessible à partir du BIOS (personnalisé du vendeur) et des utilitaires de bureau Windows. J'ai besoin d'exécuter le logiciel Asus pour que le contrôle du ventilateur fonctionne, ce qui signifie que le contrôle du ventilateur PWM est effectué par logiciel. Sur une installation Linux, je dois le configurer manuellement via ce module du noyau et pwmconfig.

Si vous regardez la fiche technique Nuvoton NCT677xF, vous trouverez du matériel générique pour contrôler PWM, lire la température et les tensions et également GPIO via SMBus. Équipé des deux vous donne un bon départ pour le faire fonctionner. En théorie, vous pouvez utiliser ce chipset pour les fonctions GPIO.

Mais je n'y toucherais pas. Vous ne savez pas quel matériel y est connecté, à moins que vous ne vouliez plonger dans un modèle très spécifique de carte mère et le désosser (par exemple la disposition, l'affectation des broches, etc.). Il n'est pas non plus réparti sur un connecteur.

Plus important encore, si votre application doit durer plusieurs années, le modèle de carte mère devrait également. Si ce n'est pas le cas, lier à un matériel de carte mère très spécifique n'est pas une bonne idée.

Hans
la source
2

Je sais que c'est un sujet plus ancien, mais de toute façon ...

Ayant programmé le code BIOS, je peux dire que chaque carte mère a des GPIO et qu'ils sont complètement disponibles dans l'espace adresse utilisateur et que l'adresse du port est généralement très proche du port parallèle. J'ai créé des pilotes personnalisés pour les cartes mères personnalisées à l'aide de pilotes de port parallèle standard, tout ce que j'avais à faire était de modifier le numéro d'adresse, mais je le connaissais à l'avance.

Pouvez-vous les utiliser? Eh bien, cela dépend de la personne qui a programmé le BIOS. L'état de tous les GPIO doit être défini avant la compilation, tous les GPIO inutilisés peuvent être facilement définis pour être désactivés.

Si un GPIO n'est pas utilisé et n'est pas défini, quel est son état par défaut? Très probablement flottant (la plupart sont à trois états, donc bonne chance) ..

Un GPIO a-t-il un pullup / pulldown? Qui sait si l'EE en a ajouté un ..

Y a-t-il des traces pour l'un des GPIO inutilisés? J'en doute, mais bon tout est possible ..

En bref, vous devez avoir de la chance qu'un GPIO inutilisé ait été défini de manière à pouvoir l'utiliser; un peu comme arduino (mais sans vrais défauts), pensez "INPUT / OUTPUT / TRI". Il doit avoir une trace utilisable sur la carte mère qui, espérons-le, a une broche ou un tampon à souder. Ensuite, si vous connaissez l'emplacement de l'adresse du GPIO, vous pouvez facilement utiliser un pilote d'espace utilisateur standard.

Ian Ide
la source
0

Les PC ont généralement des interfaces i2c, et vous pouvez trouver des puces d'extension IO pour i2c comme le TI TCA9535DBR.

Vous pouvez donc indirectement le faire en fonction de vos exigences de vitesse. Si vous êtes sur un PC, les exigences de synchronisation exactes sont de toute façon délicates.

Hans
la source