Apakah motherboard komputer desktop memiliki GPIO? Jika ya, bagaimana cara membaca dari atau menulis kepada mereka

20

Saya telah melihat beberapa pin seperti pin GPIO mikrokontroler pada motherboard komputer desktop untuk beberapa kali, saya ingin tahu, pertama, apakah mereka benar-benar GPIO? jika ya, apakah mungkin membaca atau menulis kepada mereka?

Mohsen Salahshoor
sumber
2
Mereka adalah apa pun yang dikatakan datasheet untuk motherboard. Selain itu, pertanyaan ini hanya meminta spekulasi.
1
@OlinLathrop oke jika mereka, bagaimana saya bisa berkomunikasi dengan mereka? apakah sistem operasi memiliki API bawaan untuk sesuatu ini? atau adakah API untuk bahasa pemrograman?
2
"pin seperti pin GPIO mikrokontroler" Bagaimana mereka "suka"? Semua pin terlihat sama ..
Eugene Sh.
Saya belum menemukan pin GPIO pada komputer desktop, hal-hal yang terlihat seperti itu adalah sebagian besar waktu beberapa ekstensi periferal (header USB, header Audio dll.) Atau input untuk switch dan output untuk LED. Jika itu adalah fitur umum, internet tidak akan dikotori dengan saran tentang cara menggunakan DTR port serial sebagai GPIO atau port paralel. Saya akan mengatakan pertanyaan ini bukan di sini.
2
CPU x86 secara umum tidak memiliki pin GPIO, dengan setiap pin diarahkan ke perangkat on-die spesifik tanpa PIO multiplexing yang umum pada MCU. NAMUN, fungsionalitas seperti GPIO sering menjadi bagian dari arsitektur dan ditangani oleh (biasanya dipetakan memori) periferal pada motherboard, chipset akan sering memiliki beberapa bus tingkat rendah (SPI dan I2C untuk sensor) serta tersedia GPIO, sifat yang tepat tergantung pada motherboard dan chipset / arsitektur yang digunakan.
crasic

Jawaban:

14

PC normal tidak memiliki GPIO dalam arti "pin yang dimaksudkan untuk tujuan umum". Konektor pada motherboard PC (apakah header internal atau port eksternal) semuanya dirancang untuk fungsi tertentu. Namun, beberapa di antaranya dapat digunakan kembali untuk tujuan Anda sendiri.

Hal terdekat dengan GPIO yang dimiliki PC mungkin adalah port printer paralel yang memiliki sejumlah jalur data dan garis jabat tangan. Garis-garis ini agak seperti pin GPIO, meskipun Anda kurang fleksibel dalam hal arahnya. http://retired.beyondlogic.org/spp/parallel.htm

Garis jabat tangan pada port serial juga dapat digunakan sebagai IO umum, meskipun level tegangannya aneh.

Porta paralel dan serial kurang umum dari sebelumnya, tetapi masih cukup mudah untuk menemukan motherboard yang memilikinya jika Anda berbelanja.

Anda mungkin juga dapat menggunakan input dan output yang dimaksudkan untuk LED, tombol, dll., Tetapi saya membayangkan detailnya akan sangat spesifik untuk sistem tertentu.

PC menggunakan bus berbasis I2C yang disebut SMBUS untuk berbagai fungsi manajemen. Saya yakin saya telah melihat laporan orang-orang yang meletakkan perangkat I2C mereka sendiri di bus ini melalui kabel solder sebelumnya, tetapi saya tidak dapat menemukan tautan sekarang.

Ada bus I2C lain pada port video yang digunakan untuk identifikasi monitor. Apakah Anda dapat memperoleh akses perangkat lunak tergantung pada OS dan perangkat keras video apa yang Anda gunakan http://www.instructables.com/id/Worlds-Cheapest-I2C-I-Squared-C-Adapter/step5/Software-and- Proyek /

Dan tentu saja, ada USB. Sekarang ada mikrokontroler murah dengan antarmuka USB yang dapat Anda gunakan untuk menyambung ke ini.

plugwash
sumber
2

Saya pikir pertanyaan apakah motherboard memiliki GPIO sangat spesifik untuk model dan membuatnya. Beberapa mungkin, beberapa tidak.

Misalnya pada papan desktop Asus saya berisi Nuvoton NCT6775 untuk kontrol kipas dan pembacaan suhu. Ini dapat diakses dari (desktop vendor) BIOS dan utilitas desktop Windows. Saya perlu menjalankan perangkat lunak Asus agar kontrol kipas berfungsi, yang artinya kontrol kipas PWM dilakukan oleh perangkat lunak. Pada instalasi Linux saya perlu mengaturnya secara manual melalui modul kernel dan pwmconfig ini.

Jika Anda melihat lembar data Nuvoton NCT677xF Anda akan menemukan perangkat keras generik untuk mengendalikan PWM, membaca suhu & voltase dan juga GPIO via SMBus. Dilengkapi dengan keduanya memberi Anda awal yang layak untuk membuatnya bekerja. Secara teori Anda bisa menggunakan chipset ini untuk fungsi GPIO.

Namun saya tidak akan menyentuhnya. Anda tidak tahu perangkat keras apa yang terhubung dengannya, kecuali jika Anda ingin menyelami model motherboard yang sangat spesifik dan merekayasa baliknya (misalnya tata letak, alokasi pin, dll.). Tidak pecah ke konektor juga.

Yang paling penting, jika aplikasi Anda perlu bertahan selama beberapa tahun, model motherboard juga harus. Jika tidak, mengikat perangkat keras motherboard yang sangat spesifik bukanlah ide yang baik.

Hans
sumber
2

Saya tahu ini adalah topik yang lebih lama, tapi bagaimanapun ...

Setelah diprogram kode BIOS, saya dapat mengatakan bahwa setiap motherboard memiliki GPIO dan mereka sepenuhnya tersedia di ruang alamat pengguna dan alamat port biasanya sangat dekat dengan port paralel. Saya telah membuat driver khusus untuk motherboard khusus menggunakan driver port paralel standar, yang harus saya lakukan adalah mengubah nomor alamat, tetapi saya tahu nomor itu sebelumnya.

Bisakah Anda menggunakannya? Yah itu tergantung pada orang yang memprogram BIOS. Keadaan semua GPIO harus diatur pra-kompilasi, semua GPIO yang tidak digunakan dapat dengan mudah diatur untuk dinonaktifkan.

Jika GPIO tidak digunakan dan tidak disetel, apa status defaultnya? Sangat mungkin hanya mengambang (sebagian besar adalah tri-state keberuntungan).

Apakah GPIO memiliki pullup / pull-down? Siapa tahu kalau EE menambahkan satu ..

Apakah ada jejak untuk GPIO yang tidak terpakai? Saya ragu, tapi hei semuanya mungkin ..

Singkatnya, Anda harus beruntung bahwa GPIO yang tidak digunakan telah diatur sedemikian rupa sehingga Anda dapat menggunakannya; seperti arduino (tetapi tanpa standar nyata), pikirkan "INPUT / OUTPUT / TRI". Itu harus memiliki jejak yang dapat digunakan pada motherboard yang mudah-mudahan memiliki pin atau pad untuk solder. Kemudian jika Anda mengetahui lokasi alamat GPIO Anda dapat menggunakan driver ruang pengguna standar dengan mudah.

Ian Ide
sumber
0

PC umumnya memiliki antarmuka i2c, dan Anda dapat menemukan chip expander IO untuk i2c seperti TI TCA9535DBR.

Jadi secara tidak langsung Anda bisa melakukan ini tergantung pada persyaratan kecepatan Anda. Jika Anda menggunakan PC, persyaratan waktu yang tepat tetap sulit.

Hans
sumber