Czy płyty główne komputerów stacjonarnych mają GPIO? Jeśli tak, to jak z nich czytać lub pisać

21

Kilka razy widziałem piny, takie jak piny GPIO mikrokontrolera na płytach głównych komputerów stacjonarnych. Chciałem najpierw wiedzieć, czy to naprawdę GPIO? jeśli tak, czy można z nich czytać lub pisać?

Mohsen Salahshoor
źródło
2
Są takie, jak mówi arkusz danych płyty głównej. Poza tym to pytanie wymaga jedynie spekulacji.
1
@OlinLathrop w porządku, jeśli tak, jak mogę się z nimi komunikować? czy systemy operacyjne mają wbudowane API do tego celu? czy są jakieś API dla języków programowania?
2
„piny jak piny GPIO mikrokontrolera” Jak się mają „jak”? Wszystkie szpilki wyglądają tak samo ..
Eugene Sh.
Nie spotkałem pinów GPIO na komputerze stacjonarnym, wyglądało na to, że przez większość czasu były to peryferyjne rozszerzenia (nagłówek USB, nagłówek audio itp.) Lub wejścia dla przełączników i wyjść dla diod LED. Gdyby to była wspólna cecha, internet nie byłby zaśmiecony poradami, jak używać DTR portu szeregowego jako GPIO lub portu równoległego. Powiedziałbym, że to pytanie tu nie pasuje.
2
Procesory x86 na ogół nie będą miały pinów GPIO, a każdy pin jest skierowany do określonego urządzenia peryferyjnego na matrycy bez multipleksowania PIO, które jest wspólne dla MCU. JEDNAK, funkcjonalność podobna do GPIO jest często częścią architektury i jest obsługiwana przez (zwykle mapowane w pamięci) urządzenie peryferyjne na płycie głównej, chipset często ma pewne szyny niskiego poziomu (SPI i I2C dla czujników), a także dostępne GPIO, dokładna natura zależy od płyty głównej i użytego mikroukładu / architektury.
crasic

Odpowiedzi:

15

Normalne komputery PC nie mają jako takiego GPIO w znaczeniu „pinów przeznaczonych do ogólnego zastosowania”. Złącza na płycie głównej komputera PC (zarówno wewnętrzne, jak i zewnętrzne porty) zostały zaprojektowane do określonych funkcji. Jednak niektóre z nich można zmienić na własne potrzeby.

Komputery PC najbliższe GPIO mają prawdopodobnie równoległy port drukarki, który ma wiele linii danych i linii uzgadniania. Te linie są trochę jak piny GPIO, chociaż masz mniejszą elastyczność pod względem ich kierunków. http://retired.beyondlogic.org/spp/parallel.htm

Linie uzgadniania na portach szeregowych mogą być również używane jako ogólne IO, chociaż mają dziwne poziomy napięcia.

Porty równoległe i szeregowe są mniej popularne niż kiedyś, ale nadal łatwo jest znaleźć płyty główne, które je mają, jeśli robisz zakupy.

Możesz również być w stanie zmienić przeznaczenie wejść i wyjść przeznaczonych dla diod LED, przycisków itp., Ale wyobrażam sobie, że szczegóły będą bardzo specyficzne dla konkretnego systemu.

Komputery PC używają magistrali I2C o nazwie SMBUS do różnych funkcji zarządzania. Jestem pewien, że widziałem wcześniej doniesienia o ludziach umieszczających własne urządzenia I2C na tej magistrali za pomocą przewodów lutowniczych, ale nie mogę teraz znaleźć linków.

Na portach wideo używanych do identyfikacji monitora znajduje się kolejna magistrala I2C. To, czy możesz uzyskać dostęp do oprogramowania, zależy od używanego systemu operacyjnego i sprzętu wideo http://www.instructables.com/id/Worlds-Cheapest-I2C-I-Squared-C-Adapter/step5/Software-and- Projektowanie/

I oczywiście jest USB. Istnieją teraz tanie mikrokontrolery z interfejsami USB, których można użyć do podłączenia do tego.

płyn do płukania
źródło
2

Myślę, że pytanie, czy płyty główne mają GPIO, jest bardzo specyficzne dla modelu i marki. Niektórzy mogą, inni nie.

Np. Na mojej płycie Asus zawiera pulpit Nuvoton NCT6775 do kontroli wentylatora i odczytu temperatury. Jest to dostępne z (niestandardowych dostawców) systemu BIOS i narzędzi pulpitu systemu Windows. Muszę uruchomić oprogramowanie Asusa, aby sterowanie wentylatorem działało, co oznacza, że ​​sterowanie wentylatorem PWM odbywa się za pomocą oprogramowania. W przypadku instalacji Linuksa muszę skonfigurować go ręcznie za pomocą tego modułu jądra i programu pwmconfig.

Jeśli spojrzysz na arkusz danych Nuvoton NCT677xF , znajdziesz ogólny sprzęt do sterowania PWM, odczytem temperatury i napięć, a także GPIO przez SMBus. Wyposażony w oba elementy zapewnia dobry start, dzięki czemu działa. Teoretycznie możesz użyć tego chipsetu do funkcji GPIO.

Jednak tego nie dotknę. Nie wiesz, do jakiego sprzętu jest podłączony, chyba że chcesz zanurzyć się w bardzo konkretny model płyty głównej i poddać ją inżynierii wstecznej (np. Układ, przypisanie pinów itp.). Nie jest również rozbity na złącze.

Co najważniejsze, jeśli aplikacja musi trwać kilka lat, model płyty głównej również powinien. Jeśli nie, powiązanie z bardzo specyficznym sprzętem płyty głównej nie jest dobrym pomysłem.

Hans
źródło
2

Wiem, że to starszy temat, ale w każdym razie ...

Po zaprogramowaniu kodu BIOS mogę powiedzieć, że każda płyta główna ma GPIO i są one całkowicie dostępne w przestrzeni adresowej użytkownika, a adres portu jest zwykle bardzo zbliżony do portu równoległego. Stworzyłem niestandardowe sterowniki dla niestandardowych płyt głównych za pomocą standardowych sterowników portu równoległego, wystarczyło zmodyfikować numer adresu, ale znałem go wcześniej.

Czy możesz ich użyć? To zależy od osoby, która zaprogramowała BIOS. Stan wszystkich GPIO musi być ustawiony przed kompilacją, wszystkie nieużywane GPIO mogą być łatwo ustawione na wyłączenie.

Jeśli GPIO jest nieużywane i nieuzbrojone, jaki jest jego stan domyślny? Całkiem prawdopodobne, że po prostu się unosi (większość to trójstan, więc powodzenia) ..

Czy GPIO ma pullup / pulldown? Kto wie, czy EE dodał jeden…

Czy są jakieś ślady nieużywanych GPIO? Wątpię, ale hej wszystko jest możliwe ..

Krótko mówiąc, musisz mieć szczęście, że nieużywane GPIO zostało ustawione w taki sposób, że możesz z niego korzystać; podobnie jak arduino (ale bez prawdziwych ustawień domyślnych), pomyśl „WEJŚCIE / WYJŚCIE / TRI”. Musi mieć ślad użyteczny na płycie głównej, który, mam nadzieję, ma szpilkę lub podkładkę do lutowania. Jeśli znasz lokalizację adresu GPIO, możesz łatwo użyć standardowego sterownika przestrzeni użytkownika.

Ian Ide
źródło
0

Komputery na ogół mają interfejsy i2c i można znaleźć układy ekspanderów IO dla i2c, takie jak TI TCA9535DBR.

Tak więc pośrednio możesz to zrobić w zależności od wymagań prędkości. Jeśli korzystasz z komputera, dokładne wymagania dotyczące czasu są trudne.

Hans
źródło