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?
microcontroller
motherboard
Mohsen Salahshoor
la source
la source
Réponses:
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.
la source
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.
la source
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.
la source
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.
la source