Le schede madri dei computer desktop hanno GPIO? Se lo fanno, come leggere o scrivere a loro


21

Ho visto alcuni pin come i pin GPIO del microcontrollore sulle schede madri dei computer desktop per un paio di volte, volevo sapere, in primo luogo, sono davvero GPIO? se sì, è possibile leggere o scrivere a loro?


2
Sono qualunque sia la scheda tecnica della scheda madre che dice di essere. A parte questo, questa domanda richiede solo speculazioni.

1
@OlinLathrop va bene se lo sono, come posso comunicare con loro? i sistemi operativi hanno un'API integrata per questo scopo? o ci sono API per i linguaggi di programmazione?

2
"pin come i pin GPIO del microcontrollore" Come sono "come"? Tutti i pin hanno lo stesso aspetto ..
Eugene Sh.

Non ho trovato pin GPIO su un computer desktop, le cose che sembravano quelle erano per lo più alcune estensioni periferiche (intestazione USB, intestazione audio ecc.) O gli ingressi per gli interruttori e le uscite per i LED. Se quella fosse una caratteristica comune, Internet non sarebbe disseminata di consigli su come utilizzare il DTR della porta seriale come GPIO o porta parallela. Direi che questa domanda non appartiene qui.

2
Le CPU x86 in generale non avranno pin GPIO, con ogni pin diretto a una specifica periferica on-die senza multiplexing PIO che è comune su MCU. TUTTAVIA, la funzionalità come GPIO fa spesso parte dell'architettura e gestita da una periferica (tipicamente mappata in memoria) sulla scheda madre, il chipset avrà spesso alcuni bus di basso livello (SPI e I2C per sensori) e GPIO disponibili, la natura esatta dipende dalla scheda madre e dal chipset / architettura utilizzati.
crasic,

Risposte:


15

I PC normali non hanno GPIO in quanto tale, nel senso di "pin destinati a scopi generali". I connettori su una scheda madre del PC (intestazioni interne o porte esterne) sono stati progettati per funzioni specifiche. Tuttavia, alcuni di essi possono essere riproposti per i propri fini.

La cosa più vicina a GPIO che i PC hanno è probabilmente la porta parallela della stampante che ha un numero di linee dati e linee di handshake. Queste linee sono in qualche modo simili ai pin GPIO, anche se hai meno flessibilità in termini di direzioni. http://retired.beyondlogic.org/spp/parallel.htm

Le linee di handshake sulle porte seriali possono anche essere usate come IO generale, sebbene abbiano strani livelli di tensione.

Le porte parallele e seriali sono meno comuni di una volta, ma è ancora abbastanza facile trovare schede madri che le hanno se fai acquisti.

Potresti anche essere in grado di riutilizzare ingressi e uscite destinati a LED, pulsanti ecc., Ma immagino che i dettagli saranno molto specifici per un particolare sistema.

I PC utilizzano un bus basato su I2C chiamato SMBUS per varie funzioni di gestione. Sono sicuro di aver visto resoconti di persone che hanno messo i loro dispositivi I2C su questo bus attraverso i fili di saldatura prima, ma non riesco a trovare collegamenti in questo momento.

C'è un altro bus I2C sulle porte video utilizzate per l'identificazione del monitor. La possibilità di accedere al software dipende da quale sistema operativo e hardware video si sta utilizzando http://www.instructables.com/id/Worlds-Cheapest-I2C-I-Squared-C-Adapter/step5/Software-and- progetti /

E, naturalmente, c'è USB. Ora ci sono microcontrollori economici con interfacce USB che è possibile utilizzare per connettersi a questo.


2

Penso che la domanda se le schede madri abbiano GPIO sia molto specifica per il modello e la marca. Alcuni potrebbero, altri no.

Ad esempio sulla mia scheda madre Asus contiene un Nuvoton NCT6775 per il controllo della ventola e la lettura della temperatura. Questo è accessibile dal BIOS (fornitori personalizzati) e dalle utilità desktop di Windows. Devo eseguire il software Asus affinché il controllo della ventola funzioni, il che significa che il controllo della ventola PWM viene eseguito dal software. Su un'installazione Linux ho bisogno di configurarlo manualmente tramite questo modulo del kernel e pwmconfig.

Se guardi la scheda tecnica Nuvoton NCT677xF troverai hardware generico per controllare PWM, leggere temperature e tensioni e anche GPIO via SMBus. Dotato di entrambi ti dà un buon inizio per farlo funzionare. In teoria potresti usare questo chipset per le funzioni GPIO.

Tuttavia non lo toccherei. Non sai quale hardware sia collegato ad esso, a meno che tu non voglia immergerti in un modello molto specifico di scheda madre e decodificarlo (ad es. Layout, allocazione dei pin ecc.). Non è neppure suddiviso in un connettore.

Soprattutto, se l'applicazione deve durare per diversi anni, anche il modello di scheda madre dovrebbe. In caso contrario, legare a hardware della scheda madre molto specifico non è una buona idea.


2

So che questo è un argomento più vecchio, ma comunque ...

Avendo programmato il codice BIOS, posso dire che ogni scheda madre ha GPIO e sono completamente disponibili nello spazio degli indirizzi dell'utente e l'indirizzo della porta è di solito molto vicino alla porta parallela. Ho creato driver personalizzati per schede madri personalizzate utilizzando driver di porta parallela standard, tutto quello che dovevo fare era modificare il numero di indirizzo, ma conoscevo quel numero in anticipo.

Puoi usarli? Bene, dipende dalla persona che ha programmato il BIOS. Lo stato di tutti i GPIO deve essere pre-compilato, tutti i GPIO inutilizzati potrebbero essere facilmente impostati per essere disabilitati.

Se un GPIO non è utilizzato e non è impostato, qual è il suo stato predefinito? Molto probabilmente solo galleggiante (la maggior parte sono tri-state quindi buona fortuna) ..

Un GPIO ha un pullup / pulldown? Chissà se l'EE ne ha aggiunto uno ..

Ci sono tracce per qualcuno dei GPIO inutilizzati? Ne dubito, ma hey tutto è possibile ..

In breve, devi avere la fortuna che un GPIO inutilizzato sia stato impostato in modo da poterlo usare; proprio come Arduino (ma senza valori predefiniti reali), pensa "INPUT / OUTPUT / TRI". Deve avere una traccia utilizzabile sulla scheda madre che si spera abbia un pin o un pad da saldare. Quindi, se si conosce la posizione dell'indirizzo del GPIO, è possibile utilizzare facilmente un driver dello spazio utente standard.


0

I PC generalmente hanno interfacce i2c e puoi trovare chip di espansione IO per i2c come TI TCA9535DBR.

Quindi indirettamente potresti farlo a seconda delle tue esigenze di velocità. Se utilizzi un PC, i requisiti di temporizzazione esatti sono comunque difficili.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.