Haben Desktop-Computer-Motherboards GPIO? Wenn ja, wie lesen oder schreiben?

12247
Mohsen Salahshoor

Ich habe ein paar Mal einige Pins wie die GPIO-Pins des Mikrocontrollers auf den Motherboards des Desktop-Computers gesehen. Ich wollte zuerst wissen, ob sie wirklich GPIOs sind. Wenn ja, kann man von ihnen lesen oder schreiben?

17
Sie geben das Datenblatt des Motherboards an. Abgesehen davon fragt diese Frage nur nach Spekulation. vor 9 Jahren 2
@OlinLathrop Wenn ja, wie kann ich mit ihnen kommunizieren? Haben Betriebssysteme für diesen Zweck etwas eine eingebaute API? oder gibt es eine API für Programmiersprachen? vor 9 Jahren 1
"Pins wie die GPIO-Pins des Mikrocontrollers" Wie sind sie "wie"? Alle Pins sehen gleich aus .. Eugene Sh. vor 9 Jahren 1
Ich bin auf einem Desktop-Computer nicht auf GPIO-Pins gestoßen, es sah so aus, als wären dies meist einige Peripheriegeräte (USB-Header, Audio-Header usw.) oder die Eingänge für die Schalter und Ausgänge für LEDs. Wenn dies ein gemeinsames Merkmal wäre, würde das Internet nicht mit Ratschlägen über die Verwendung des DTR des seriellen Anschlusses als GPIO oder als paralleler Anschluss verwechselt werden. Ich würde sagen, diese Frage gehört nicht hierher. vor 9 Jahren 0
x86-CPUs verfügen im Allgemeinen nicht über GPIO-Pins, wobei jeder Pin ohne PIO-Multiplexing, das bei MCUs üblich ist, an ein bestimmtes On-Die-Peripheriegerät geleitet wird. GPIO-artige Funktionen sind jedoch häufig Teil der Architektur und werden von (normalerweise speicherzuordnenden) Peripheriegeräten auf der Hauptplatine gehandhabt. Der Chipsatz verfügt häufig über einige Low-Level-Busse (SPI und I2C für Sensoren) sowie über GPIOs hängt von dem verwendeten Motherboard und Chipsatz / der verwendeten Architektur ab. crasic vor 9 Jahren 2
@EugeneSh. Sie befinden sich genau wie mein Arduino Nano Board in unmittelbarer Nähe vor 9 Jahren 0
@crasic, wenn du das sagst, ich glaube, ich habe die Antwort auf meine Frage bekommen vor 9 Jahren 0
Und bedenken Sie Folgendes: Wenn Sie das GPIO eines solchen Motherboards verwenden würden, blasen Sie es in Ihrem Experiment auf oder zerstören es. Das wird teuer zu ersetzen sein. Wenn Sie ein billiges GPIO über USB oder was auch immer verwenden und dieses zerstören, ist es billig, es zu ersetzen. vor 9 Jahren 0
@Mohsen Ihre Platzierung sagt praktisch nichts über ihre Funktion aus. Eugene Sh. vor 9 Jahren 0
@Mohsen Es ist nicht wirklich eine Antwort, sondern eher ein allgemeiner Stand der Consumer-Hardware. Ich bin sicher, dass es x86-Geräte gibt, die für Embedded-Anwendungen gedacht sind, die an Bord gpio haben. BTW-Datenblätter für Intel- und AMD-CPUs sind im Allgemeinen auf ihren jeweiligen Websites verfügbar. Sie können sehen, welche Peripheriegeräte auf dem Chip verfügbar sind. Die allgemeine Schlussfolgerung ist, dass hochwertige Endgeräte wie der i7 eine Handvoll Hochgeschwindigkeitsbusse und Standardschnittstellen für Speicher besitzen. crasic vor 9 Jahren 0
Mit dem Linux-Paket "lm-sensors" können Sie die Geräte am I2C-Bus lesen. Dies ist normalerweise ein Satz von Temperatursensoren, Lüftersteuerungen und Identifikations-EPROMs in Ihrem DRAM. pjc50 vor 9 Jahren 0
Nun, ich weiß, es gibt eingebettete Karten oder externe USB-Module, die für diesen Zweck verwendet werden sollen, aber das Programm, das ich entwickeln werde, benötigt Ressourcen, die in einem Desktop-Computer (RAM, CPU, ..) enthalten sind, ein eingebettetes Gerät jedoch nicht fähig, es laufen zu lassen. vor 9 Jahren 0
Wenn Sie etwas gpio benötigen, würde ein i2c-Port-Expander, der zu einem der i2c oder smbus hinzugefügt wurde, sofort funktionieren. cde vor 9 Jahren 0

4 Antworten auf die Frage

12
plugwash

Normale PCs verfügen nicht über GPIO als solche im Sinne von "Pins, die für allgemeine Zwecke gedacht sind". Die Anschlüsse auf einem PC-Motherboard (ob interne Header oder externe Anschlüsse) wurden alle für bestimmte Funktionen konzipiert. Einige davon können jedoch für Ihre eigenen Zwecke wiederverwendet werden.

Das GPIO, das PCs am nächsten haben, ist wahrscheinlich der parallele Druckerport, der eine Reihe von Datenleitungen und Handshake-Leitungen hat. Diese Leitungen ähneln GPIO-Pins, allerdings ist die Flexibilität in Bezug auf die Richtung weniger. http://retired.beyondlogic.org/spp/parallel.htm

Die Handshake-Leitungen an den seriellen Schnittstellen können auch als allgemeine E / A verwendet werden, obwohl sie ungewöhnliche Spannungspegel haben.

Parallele und serielle Anschlüsse sind weniger verbreitet als früher, aber es ist immer noch recht einfach, Motherboards zu finden, die über solche verfügen, wenn Sie sich umsehen.

Möglicherweise können Sie auch Eingänge und Ausgänge, die für Gehäuse-LEDs, -Tasten usw. vorgesehen sind, erneut verwenden. Ich würde mir jedoch vorstellen, dass die Details sehr spezifisch für ein bestimmtes System sein werden.

PCs verwenden einen I2C-basierten Bus namens SMBUS für verschiedene Verwaltungsfunktionen. Ich bin mir sicher, dass ich bereits Berichte über Personen erhalten habe, die ihre eigenen I2C-Geräte durch Löten von Drähten an diesen Bus angeschlossen haben, aber ich kann momentan keine Links finden.

An den Videoanschlüssen, die für die Monitoridentifizierung verwendet werden, befindet sich ein weiterer I2C-Bus. Ob Sie Softwarezugriff darauf erhalten, hängt davon ab, welches Betriebssystem und welche Videohardware Sie verwenden. Http://www.instructables.com/id/Worlds-Cheapest-I2C-I-Squared-C-Adapter/step5/Software-and- Projekte /

Und natürlich gibt es USB. Es gibt jetzt günstige Mikrocontroller mit USB-Schnittstelle, an die Sie sich anschließen können.

2
Hans

Ich denke, die Frage, ob Motherboards GPIO haben, hängt sehr stark vom Modell ab. Manche mögen es, manche nicht.

Auf meinem Asus-Desktop-Board ist zB ein Nuvoton NCT6775 zur Lüftersteuerung und Temperaturanzeige enthalten. Dies ist über die (vom Hersteller angepassten) BIOS- und Windows-Desktop-Dienstprogramme zugänglich. Ich muss die Asus-Software ausführen, damit die Lüftersteuerung funktioniert, was bedeutet, dass die PWM-Lüftersteuerung durch Software ausgeführt wird. Bei einer Linux-Installation muss ich sie manuell über dieses Kernel-Modul und pwmconfig einrichten.

Wenn Sie sich das Datenblatt des Nuvoton NCT677xF ansehen, finden Sie allgemeine Hardware für die PWM-Steuerung, das Ablesen von Temperatur und Spannungen sowie die GPIO über den SMBus. Ausgestattet mit beiden gibt es einen guten Start, damit es funktioniert. Theoretisch könnte man diesen Chipsatz für GPIO-Funktionen verwenden.

Ich würde es jedoch nicht anfassen. Sie wissen nicht, welche Hardware damit verbunden ist, es sei denn, Sie möchten in ein bestimmtes Motherboard-Modell eintauchen und es rückentwickeln (z. B. Layout, Pinbelegung usw.). Es ist auch nicht zu einem Stecker ausgebrochen.

Wenn Ihre Anwendung mehrere Jahre dauern soll, sollten Sie auch das Motherboard-Modell verwenden. Wenn nicht, ist die Anbindung an eine bestimmte Motherboard-Hardware keine gute Idee.

2
Ian Ide

Ich weiß, das ist ein älteres Thema, aber trotzdem ...

Nach dem Programmieren des BIOS-Codes kann ich sagen, dass jedes Motherboard über GPIOs verfügt, die vollständig im Benutzeradressraum verfügbar sind und die Portadresse normalerweise sehr nahe am Parallelport liegt. Ich habe benutzerdefinierte Treiber für benutzerdefinierte Motherboards mit Standard-Parallelport-Treibern erstellt. Alles, was ich tun musste, war, die Adressnummer zu ändern, aber ich wusste diese Nummer im Voraus.

Kannst du sie benutzen? Nun, das hängt von der Person ab, die das BIOS programmiert hat. Der Status aller GPIOs muss vor dem Kompilieren festgelegt werden. Alle nicht verwendeten GPIOs können leicht deaktiviert werden.

Wenn ein GPIO nicht verwendet wird und nicht festgelegt ist, wie lautet der Standardstatus? Wahrscheinlich nur schwebend (die meisten sind Tri-State, also viel Glück) ..

Hat ein GPIO ein Pullup / Pulldown? Wer weiß, ob die EE eine hinzugefügt hat ..

Gibt es Spuren für die ungenutzten GPIOs? Ich bezweifle es, aber alles ist möglich.

Kurz gesagt, Sie müssen sich glücklich schätzen, dass ein nicht verwendetes GPIO so eingestellt wurde, dass Sie es verwenden können. Ähnlich wie bei Arduino (aber ohne echte Standardeinstellungen), denken Sie an "INPUT / OUTPUT / TRI". Es muss eine verwendbare Spur auf der Hauptplatine haben, die hoffentlich einen Stift oder ein Pad zum Löten aufweist. Wenn Sie den Adressspeicherort des GPIO kennen, können Sie problemlos einen Standard-User-Space-Treiber verwenden.

0
Hans

PCs verfügen normalerweise über i2c-Schnittstellen, und Sie können IO-Expander-Chips für i2c wie den TI TCA9535DBR finden.

Indirekt können Sie dies abhängig von Ihren Geschwindigkeitsanforderungen tun. Wenn Sie sich an einem PC befinden, sind genaue Timing-Anforderungen ohnehin schwierig.