web-dev-qa-db-fra.com

Les cartes mères d'ordinateur de bureau ont-elles GPIO? Si oui, comment lire ou écrire

J'ai déjà vu plusieurs broches, telles que les broches GPIO du microcontrôleur, sur les cartes mères des ordinateurs de bureau. Je voulais savoir, tout d'abord, s'agit-il vraiment de GPIO? Si oui, est-il possible de lire ou de leur écrire?

20
Mohsen Salahshoor

Les PC normaux n’ont pas de GPIO en tant que tels au sens de "broches destinées à être utilisées à des fins générales". Les connecteurs de la carte mère d’un PC (qu’ils soient des connecteurs internes ou externes) ont tous été conçus pour des fonctions spécifiques. Cependant, certains d'entre eux peuvent être réutilisés à vos propres fins.

Le point le plus proche de GPIO des PC est probablement le port d’imprimante parallèle qui comporte un certain nombre de lignes de données et de lignes de négociation. Ces lignes ressemblent un peu aux broches GPIO, bien que vous ayez moins de flexibilité quant à leurs directions. http://retired.beyondlogic.org/spp/parallel.htm

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

Les ports parallèle et série sont moins courants qu'avant, mais il est toujours assez facile de trouver des cartes mères qui en possèdent si vous magasinez.

Vous pourrez peut-être aussi réutiliser des entrées et des sorties destinées à des LED de boîtier, des boutons, etc., mais j'imagine que les détails seront très spécifiques à un système particulier.

Les ordinateurs utilisent un bus basé sur I2C appelé SMBUS pour diverses fonctions de gestion. Je suis sûr que j'ai déjà entendu parler de personnes qui mettaient leurs propres périphériques I2C sur ce bus en y soudant des fils, mais je ne trouve pas de liens pour le moment.

Il existe un autre bus I2C sur les ports vidéo utilisés pour l'identification du moniteur. L'accès au logiciel dépend du type de système d'exploitation et de matériel vidéo que vous utilisez http://www.instructables.com/id/Worlds-Cheapest-I2C-I-Squared-C -Adapter/step5/Logiciels-et-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.

13
plugwash

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

Après avoir programmé le code BIOS, je peux dire que chaque carte mère possède des GPIO et qu’ils sont complètement disponibles dans l’espace adresse de l’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 des cartes mères personnalisées à l'aide de pilotes de port parallèle standard. Tout ce que j'avais à faire, c'était de modifier le numéro d'adresse, mais je connaissais ce numéro à l'avance.

Pouvez-vous les utiliser? 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 facilement être configurés pour être désactivés.

Si un GPIO est inutilisé et non défini, quel est son état par défaut? Très probablement juste en train de flotter (la plupart sont des trois états, alors bonne chance) ..

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

Existe-t-il des traces pour les GPIO non utilisé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 y avoir une trace utilisable sur la carte mère qui, espérons-le, possède une épingle ou un plot à souder. Ensuite, si vous connaissez l'emplacement de l'adresse du GPIO, vous pouvez facilement utiliser un pilote d'espace utilisateur standard.

2
Ian Ide

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 peuvent, d'autres pas.

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. Ceci est accessible à partir des utilitaires de BIOS et de bureau Windows (personnalisés par les vendeurs). Je dois 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 de noyau et pwmconfig.

Si vous consultez la fiche technique de Nuvoton NCT677xF , vous trouverez du matériel générique pour le contrôle de PWM, la lecture de la température et des tensions, ainsi que le GPIO via SMBus. Equipé des deux vous donne un bon départ pour le faire fonctionner. En théorie, vous pourriez utiliser ce chipset pour les fonctions GPIO.

Cependant, je n'y toucherais pas. Vous ne savez pas quel matériel y est connecté, sauf si vous souhaitez plonger dans un modèle très spécifique de carte mère et procéder à un reverse engineering (par exemple, une mise en page, des affectations de broches, etc.). Il n'est pas non plus ventilé vers un connecteur.

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

2
Hans

Les PC ont généralement des interfaces i2c, et vous pouvez trouver des puces d’extension IO pour i2c telles que la TI TCA9535DBR.

Donc, indirectement, vous pouvez le faire en fonction de vos besoins en vitesse. Si vous utilisez un PC, les conditions de synchronisation exactes sont difficiles.

0
Hans