デスクトップコンピューターのマザーボードにあるマイクロコントローラーのGPIOピンのようなピンを見たことがありますが、最初に知りたいのは、本当にGPIOなのでしょうか?はいの場合、それらからの読み取りまたは書き込みは可能ですか?
デスクトップコンピューターのマザーボードにあるマイクロコントローラーのGPIOピンのようなピンを見たことがありますが、最初に知りたいのは、本当にGPIOなのでしょうか?はいの場合、それらからの読み取りまたは書き込みは可能ですか?
回答:
通常のPCには、「汎用であることを意図したピン」という意味でのGPIOはありません。PCマザーボードのコネクタ(内部ヘッダーまたは外部ポート)はすべて、特定の機能用に設計されています。ただし、それらのいくつかは、あなた自身の目的のために再利用することができます。
PCが持っているGPIOに最も近いものは、おそらく多数のデータ行とハンドシェイク行があるパラレルプリンターポートです。これらのラインはGPIOピンに多少似ていますが、方向に関して柔軟性が低くなります。http://retired.beyondlogic.org/spp/parallel.htm
シリアルポートのハンドシェイクラインは、奇妙な電圧レベルですが、一般的なIOとしても使用できます。
パラレルポートとシリアルポートは以前ほど一般的ではありませんが、買い物をしていれば、まだ搭載されているマザーボードを見つけるのは非常に簡単です。
ケースLED、ボタンなどを対象とした入力と出力を再利用することもできますが、詳細は特定のシステムに非常に固有のものになると思います。
PCは、さまざまな管理機能にSMBUSと呼ばれるI2Cベースのバスを使用します。これまでに、バスにはんだ付けワイヤを介してこのバスに自分のI2Cデバイスを置いたという報告を見たことはあるでしょうが、今はリンクが見つかりません。
モニターの識別に使用されるビデオポートには別のI2Cバスがあります。ソフトウェアにアクセスできるかどうかは、使用しているOSおよびビデオハードウェアによって異なりますhttp://www.instructables.com/id/Worlds-Cheapest-I2C-I-Squared-C-Adapter/step5/Software-and-プロジェクト/
そしてもちろん、USBがあります。現在、これに接続するために使用できるUSBインターフェイスを備えた安価なマイクロコントローラがあります。
マザーボードにGPIOがあるかどうかという質問は、モデルとメーカーに非常に固有のものだと思います。ある人はそうでないかもしれません。
たとえば、Asusデスクトップボードには、ファン制御と温度読み取り用のNuvoton NCT6775が含まれています。これは、ベンダーのカスタムBIOSおよびWindowsデスクトップユーティリティからアクセスできます。ファン制御が機能するには、Asusのソフトウェアを実行する必要があります。つまり、PWMファン制御はソフトウェアによって実行されます。Linuxインストールでは、このカーネルモジュールとpwmconfig を使用して手動でセットアップする必要があります。
Nuvoton NCT677xFデータシートを見ると、PWMを制御し、温度と電圧を読み取り、SMBus経由でGPIOを読み取るための汎用ハードウェアがあります。両方を装備すると、それを機能させるためのまともなスタートを切ることができます。理論的には、このチップセットをGPIO機能に使用できます。
しかし、私はそれに触れません。マザーボードの非常に特定のモデルに飛び込み、それをリバースエンジニアリング(たとえば、レイアウト、ピン割り当てなど)する場合を除き、どのハードウェアが接続されているかわかりません。どちらもコネクタに分割されていません。
最も重要なことは、アプリケーションが数年間持続する必要がある場合、マザーボードモデルも同様です。そうでない場合、非常に特定のマザーボードハードウェアに接続することはお勧めできません。
これは古いトピックですが、とにかく...
BIOSコードがプログラムされているので、すべてのマザーボードにGPIOがあり、ユーザーアドレス空間で完全に利用可能であり、通常、ポートアドレスはパラレルポートに非常に近いと言えます。標準のパラレルポートドライバーを使用してカスタムマザーボード用のカスタムドライバーを作成しました。アドレス番号を変更するだけで済みましたが、その番号は事前に知っていました。
それらを使用できますか?それはBIOSをプログラムした人によって異なります。すべてのGPIOの状態はプリコンパイルに設定する必要があり、すべての未使用のGPIOは簡単に無効に設定できます。
GPIOが使用されておらず設定されていない場合、そのデフォルト状態は何ですか?おそらくただ浮かんでいるだけです(ほとんどがトライステートなので幸運です)。
GPIOにはプルアップ/プルダウンがありますか?EEが追加したかどうかは誰にもわかりません。
未使用のGPIOのトレースはありますか?私はそれを疑いますが、ちょっと何でも可能です。
要するに、未使用のGPIOが使用可能な方法で設定されていることを幸運に思う必要があります。arduinoとほぼ同じですが(実際のデフォルトはありません)、「INPUT / OUTPUT / TRI」と考えてください。マザーボード上に、はんだ付けするピンまたはパッドを備えた使用可能なトレースが必要です。その後、GPIOのアドレスの場所がわかっている場合は、標準のユーザースペースドライバーを簡単に使用できます。