開発のヒント

その他

USBの仮想COMポート番号の増加への対処法

STM32に内蔵するUSBを仮想COMポート(VCP)に設定してPCに接続すると、違う個体のSTM32を接続するたびに違うCOMポート番号が割り当てられ、使用済みのCOMポート番号が増えていきます。これは、Windows OSが、USB機器のVID、PID、シリアル番号で個々のデバイスを識別し、違う個体として認識するためです。

通常は多少COMポート番号が増えても問題になりませんが、問題になるケースもあります。
例えば、仮想COMポートの機能を組み込んだ最終製品のテスト工程などにおいて、一つのPCで大量の製品の仮想COMポートの接続試験を行わなければならないケースです。
また、長らくSTM32マイコンをご愛用いただいているお客様が、様々な評価ボードをPCに接続して評価される場合も同様です。評価ボードに搭載されているST-LINKデバッガには仮想COMポートの機能がついているためです。


hint-123-1

このような場合、Windowsのレジストリ設定を行うことで、不必要な使用済み仮想COMポート番号の増加を避けることができます。
接続したUSBデバイスのレジストリ·エントリは、以下のようなキーで登録されます。(※VVVVはVID、PPPPはPID、RRRRはシリアル番号を示す16進数です。)

レジストリエディタで、[usbflags]キーに[IgnoreHWSerNumVVVVPPPP]という名前のバイナリ値を追加し、その値を01に設定します。
このように設定することで、VIDにVVVVとPIDにPPPPを値に持つUSBデバイスが接続されたときにシリアル番号を識別しないようにでき、使用済みCOMポート番号の増加を防ぐことができます。

例:VID=0x0483, PID=0x5740の場合
hint-123-1

※レジストリを編集する際のご注意
STでは、レジストリ編集の結果によるいかなる問題に対しても保証はいたしかねます。
レジストリはお客様の責任範囲において編集してご使用ください。

過去の開発のヒントはこちら