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?
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?
Risposte:
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.
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.
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.