Verfügen Desktop-Motherboards über GPIO? Wenn ja, wie kann man von ihnen lesen oder darauf schreiben?

21

Ich habe ein paar Mal Stifte wie die GPIO-Stifte des Mikrocontrollers auf den Desktop-Motherboards gesehen. Ich wollte zuerst wissen, ob es sich wirklich um GPIOs handelt. Wenn ja, kann man von ihnen lesen oder darauf schreiben?

Mohsen Salahshoor
quelle
2
Sie entsprechen den Angaben auf dem Datenblatt des Motherboards. Davon abgesehen bittet diese Frage nur um Spekulation.
1
@OlinLathrop okay, wenn ja, wie kann ich mit ihnen kommunizieren? Haben Betriebssysteme eine integrierte API für diesen Zweck? oder gibt es eine API für Programmiersprachen?
2
"Stifte wie die GPIO-Stifte des Mikrocontrollers" Wie sind sie "wie"? Alle Pins sehen gleich aus.
Eugene Sh.
GPIO-Pins auf einem Desktop-Computer sind mir nicht begegnet. In den meisten Fällen handelte es sich um Peripherie-Erweiterungen (USB-Header, Audio-Header usw.) oder um die Eingänge für die Schalter und Ausgänge für LEDs. Wäre dies ein häufiges Merkmal, würde das Internet nicht mit Ratschlägen zur Verwendung des DTR der seriellen Schnittstelle als GPIO oder parallele Schnittstelle übersät sein. Ich würde sagen, diese Frage gehört nicht hierher.
2
x86-CPUs haben im Allgemeinen keine GPIO-Pins, wobei jeder Pin auf ein bestimmtes On-Die-Peripheriegerät ohne PIO-Multiplexing gerichtet ist, das auf MCUs üblich ist. GPIO-ähnliche Funktionen sind jedoch oft Teil der Architektur und werden von (in der Regel speicherabgebildeten) Peripheriegeräten auf der Hauptplatine verarbeitet. Der Chipsatz verfügt jedoch häufig über einige Low-Level-Busse (SPI und I2C für Sensoren) sowie über GPIOs, deren genaue Eigenschaften hängt von der verwendeten Hauptplatine und dem verwendeten Chipsatz / der verwendeten Architektur ab.
Crasic

Antworten:

15

Normale PCs haben kein GPIO als solches im Sinne von "Stiften für allgemeine Zwecke". Die Anschlüsse an einem PC-Motherboard (ob interne Header oder externe Ports) wurden alle für bestimmte Funktionen entwickelt. Einige von ihnen können jedoch für Ihre eigenen Zwecke verwendet werden.

Das GPIO, das PCs am nächsten kommt, ist wahrscheinlich der parallele Druckeranschluss mit einer Reihe von Datenleitungen und Handshake-Leitungen. Diese Leitungen ähneln in etwa GPIO-Pins, obwohl Sie in Bezug auf ihre Richtungen weniger Flexibilität haben. http://retired.beyondlogic.org/spp/parallel.htm

Die Handshake-Leitungen an den seriellen Ports können auch als allgemeine E / A verwendet werden, obwohl sie seltsame Spannungspegel aufweisen.

Parallele und serielle Anschlüsse sind seltener als früher, aber es ist immer noch recht einfach, Motherboards mit solchen Anschlüssen zu finden, wenn Sie einkaufen.

Möglicherweise können Sie auch Ein- und Ausgänge für Gehäuse-LEDs, Tasten usw. neu verwenden, aber ich kann mir vorstellen, dass die Details für ein bestimmtes System sehr spezifisch sind.

PCs verwenden einen I2C-basierten Bus namens SMBUS für verschiedene Verwaltungsfunktionen. Ich bin mir sicher, dass ich Berichte von Leuten gesehen habe, die ihre eigenen I2C-Geräte über Lötdrähte an diesen Bus angeschlossen haben, aber ich kann derzeit keine Links finden.

Es gibt einen weiteren I2C-Bus an den Videoanschlüssen, der zur Monitoridentifizierung verwendet wird. Ob Sie können Software - Zugang zu bekommen , um es auf welchem Betriebssystem und Video - Hardware ab , die Sie verwenden http://www.instructables.com/id/Worlds-Cheapest-I2C-I-Squared-C-Adapter/step5/Software-and- Projekte /

Und natürlich gibt es USB. Mittlerweile gibt es günstige Mikrocontroller mit USB-Schnittstelle, über die Sie diese anschließen können.

Plugwash
quelle
2

Ich denke, die Frage, ob Motherboards GPIO haben, ist sehr modell- und herstellerspezifisch. Manche mögen, manche nicht.

Auf meinem Asus-Desktop-Board befindet sich beispielsweise ein Nuvoton NCT6775 zur Lüftersteuerung und Temperaturanzeige. Dies ist über die (vom Hersteller benutzerdefinierten) BIOS- und Windows-Desktop-Dienstprogramme möglich. Ich muss die Asus-Software ausführen, damit die Lüftersteuerung funktioniert. Das bedeutet, dass die PWM-Lüftersteuerung per Software erfolgt. Bei einer Linux-Installation muss ich es manuell über dieses Kernelmodul und pwmconfig einrichten.

Wenn Sie sich das Nuvoton NCT677xF- Datenblatt ansehen , finden Sie allgemeine Hardware zur Steuerung von PWM, zum Lesen von Temperatur und Spannungen sowie von GPIO über SMBus. Ausgestattet mit beidem hast du einen anständigen 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 daran angeschlossen ist, es sei denn, Sie möchten in ein bestimmtes Motherboard-Modell eintauchen und es zurückentwickeln (z. B. Layout, Pinbelegung usw.). Es wird auch nicht zu einem Stecker herausgebrochen.

Vor allem, wenn Ihre Anwendung mehrere Jahre dauern muss, sollte das Motherboard-Modell auch. Wenn nicht, ist es keine gute Idee, an eine bestimmte Motherboard-Hardware zu binden.

Hans
quelle
2

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

Nachdem ich den BIOS-Code programmiert habe, kann ich sagen, dass jedes Motherboard über GPIOs verfügt und diese vollständig im Benutzeradressraum verfügbar sind und die Portadresse normalerweise sehr nahe am parallelen Port liegt. Ich habe benutzerdefinierte Treiber für benutzerdefinierte Motherboards mit standardmäßigen Treibern für den parallelen Anschluss erstellt. Ich musste lediglich die Adressnummer ändern, kannte diese Nummer jedoch 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 problemlos deaktiviert werden.

Wenn ein GPIO nicht verwendet und deaktiviert ist, wie lautet sein Standardstatus? Wahrscheinlich nur schwimmend (die meisten sind Tristate, also viel Glück).

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

Gibt es Spuren für einen der nicht verwendeten GPIOs? Ich bezweifle es, aber hey alles ist möglich ..

Kurz gesagt, Sie müssen sich glücklich schätzen, dass ein nicht verwendetes GPIO so festgelegt wurde, dass Sie es verwenden können. Ähnlich wie bei Arduino (aber ohne echte Standardeinstellungen), denken Sie an "INPUT / OUTPUT / TRI". Auf dem Motherboard muss eine verwendbare Spur vorhanden sein, auf die hoffentlich ein Stift oder Pad gelötet werden kann. Wenn Sie den Adressspeicherort des GPIO kennen, können Sie problemlos einen Standard-User-Space-Treiber verwenden.

Ian Ide
quelle
0

PCs haben in der Regel i2c-Schnittstellen, und für i2c gibt es IO-Expander-Chips wie den TI TCA9535DBR.

Sie können dies also indirekt tun, abhängig von Ihren Geschwindigkeitsanforderungen. Wenn Sie an einem PC arbeiten, sind die genauen Timing-Anforderungen ohnehin schwierig.

Hans
quelle