FTDI USB toシリアルチップを使用してWindowsホストと通信するデバイスを製造する場合、Windowsは新しいFTDI vid + pid + serialがPCに接続されるたびにポート番号を増やすように見えるため、数百のCOMポートを取得します。 。
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\FTDIBUS
を調べて、表示される新しいエントリを削除しようとしましたが、唯一の効果は、同じvid + pid + serialのデバイス(つまり、すでに一度接続されているデバイス)でもCOMポート番号が増えることです。 )。
質問:列挙が最初の空きCOMポート番号から開始するように、このカウンターを何らかの方法でリセットすることは可能ですか?
編集:この質問はsuperuser.comに適していますか? Edit2:それは スーパーユーザー で答えられました
注:SuperUserからコピー
私は仕事をしていないので、目の前にハードウェアはありませんが、FTDIアプリケーションノート AN_107-高度なドライバーオプション にはいくつかの有望なオプションがあるようです。
特に、「ハードウェアのシリアル番号を無視する」(セクション7.1、20ページ)オプションは、希望どおりに機能すると思います。
7.1ハードウェアのシリアル番号を無視する
デバイスのベンダーIDと製品IDが同じで、シリアル番号が異なる場合、システムは通常、それらを異なるデバイスとして扱います。これにより、各デバイスにドライバーがインストールされ、各デバイスのレジストリエントリが作成されます。
この動作をオーバーライドして、システムにデバイスのシリアル番号を無視させ、同じUSBポートに接続されたVIDとPIDが一致するすべてのデバイスを同じデバイスであるかのように扱うことができます。これは、IgnoreHWSerNumというREG_BINARY値をレジストリに追加し、01に設定することで実現されます。
AN_123ドライバのインストール時にCOMポートがどのように割り当てられるか アプリノートも非常に有益です。
OT、最近のデバイスは非常に複雑になっているため、ほとんどのドキュメントはデータシートからAppNotesに移動されています。常にアプリのメモを読むことを忘れないでください!
FT232RL ICを搭載した新しいデバイスがUSBポートに接続されるたびに、Windowsコンピューターが新しいCOMポート番号を割り当てないようにする手順は次のとおりです。 http://liionbms.com/pdf/DisableFTDI_Enumeration.pdf =お気軽にご利用ください
Microsoftには、 DevCon というコマンドラインユーティリティがあります。これはmayが必要なことを実行します。
例:
存在するUSBデバイスと存在しないUSBデバイスを一覧表示します。
devcon findall =usb
存在するポートと存在しないポートを一覧表示します。
devcon findall =ports
すべてのUSBデバイスを取り外します。
devcon remove @usb\*
すべてのポートを削除します。
devcon remove @ports\*
注意して続行してください。その後、devconの再スキャン、またはdevconの再起動が必要になる場合があります。