Saya punya proyek sederhana pada perangkat host yang harus menggerakkan 2 pin dengan tingkat logika tinggi (tegangan 3.3V, 5V atau 12V - tidak masalah) dan menunggu 2 pin lainnya digerakkan tingkat tinggi oleh perangkat periferal.
Dapatkah saya mengimplementasikan perangkat host seperti itu dengan PC standar dan perangkat keras apa (built-in atau ekstra) yang harus saya gunakan?
Jawaban:
Tidak jelas apa yang ingin PC lakukan dan apa yang seharusnya dilakukan perangkat ("perangkat host" tidak masuk akal), tetapi tampaknya Anda menginginkan I / O digital dasar dari PC.
PC sebenarnya tidak dirancang untuk I / O digital langsung ke perangkat eksternal. Tetapi, Anda dapat membeli modul I / O digital yang terhubung ke PC melalui USB, yang kemudian memungkinkan Anda membaca dan menulis masing-masing sinyal digital. Anda dapat melakukannya sendiri paling mudah dengan meminta mikrokontroler berkomunikasi dengan PC melalui port COM.
Namun jika ini benar-benar hanya masalah kontrol yang sederhana, mengapa Anda memerlukan PC sama sekali? Minta mikrokontroler kecil melakukan seluruh tugas itu sendiri. Tepatnya untuk apa mikronkontroler itu. Mereka adalah komputer kecil dengan digital dan jalur I / O lainnya yang keluar yang dimaksudkan untuk terhubung langsung ke perangkat keras eksternal.
sumber
Jika Anda masih dapat menemukannya, perlu disebutkan bahwa port paralel yang sebenarnya adalah sedekat mungkin dengan GPIO seperti yang Anda temukan di PC yang tidak tersedia. Implementasi klasik kurang fleksibel karena banyak pin memiliki arah yang tetap, dan beberapa terbalik, tetapi orang-orang telah mengatasinya selama bertahun-tahun.
Keterbatasan yang lebih besar adalah bahwa pelabuhan seperti itu punah. Penggantian yang lebih abstrak seperti konverter paralel USB biasanya hanya dapat digunakan untuk mengontrol printer yang sebenarnya, dan tidak memiliki register yang dapat langsung Anda baca / tulis untuk mengatur atau memantau keadaan pin. Ada yang dikabarkan beberapa yang memang memiliki kemampuan ini, tetapi mereka bisa sulit ditemukan, dan membutuhkan perhatian rinci kepada pengemudi.
Pada titik itu, penggunaan perangkat I / O yang terhubung USB menjadi lebih praktis. Seringkali ini adalah mikrokontroler yang menjalankan firmware sederhana, baik dari pabrikan atau kustom.
Satu keuntungan utama dari implementasi kustom adalah kemungkinan untuk melepas level terendah, paling berulang, dan / atau mengatur waktu bagian penting dari manipulasi I / O ke prosesor pada perangkat, daripada mencoba melakukannya dari PC di mana latensi dari Paket USB, melintasi beberapa bus, dan sistem operasi multitasking cenderung membuat operasi sedikit demi sedikit sangat lambat.
Jika Anda belum mengetahui dengan pasti bagaimana bentuk solusi Anda, satu kemungkinan adalah mengambil sesuatu seperti Arduino yang dikemas baik dalam arti perangkat keras dan toolchain untuk kemudahan penggunaan, dan dapat beroperasi sebagai solusi yang berdiri sendiri atau sebagai penolong I / O untuk melakukan tugas tingkat rendah di bawah perintah dari PC yang terpasang.
sumber
Saya akan merekomendasikan menggunakan FTDI FT232RL menggunakan driver khusus yang memungkinkan mode bitbang itu . Metode ini akan bekerja di hampir semua PC dan memungkinkan akses latensi yang layak ke GPIO sederhana.
Ada banyak board breakout FTDI di luar sana, tapi saya pribadi menggunakan ini .
sumber