【注意点】
1台のPCで2台以上のボードを運用する場合、一台あたりのUSBの実効データ転送レートが低下する場合もあります。
Smart-USBPlus製品のUSBインタフェースでは、バルク転送モードを採用しているので、USBデータ転送時のデータ転送帯域を保証していません。USBバスに空きがあるときに、高速にデータ転送でき、データのインテグリティを確保する転送方法のためです。
【制御方法】
(例:2台のボードの場合)
1.ボードのFPGA内に8bitレジスタを設定し、ボード・ユニークなアドレスとします。
たとえば、1台目のボードのFPGAにレジスタ7を設定し、レジスタの内容を"00"hex(bit"0"=0)に設定。二台目も同じように、レジスタ7を設定し、その値を"01"hex(bit"0"=1)に設定します。
2.レジスタ7を"0"に設定したボードのデバイスIDを調べるために、APIの「CebFindDevice(7,0)」を実行します。
3.このCebFindDeviceの戻り値がアドレス(レジスタ7)を[0]に設定したボードのデバイスIDなので、CebOpenDevice()を使用してデバイスをオープンします。
4.レジスタ7を"1"に設定したボードのデバイスIDを調べるために、APIの「CebFindDevice(7,1)」を実行します。
5.このCebFindDeviceの戻り値がアドレス(レジスタ7)を[1]に設定したボードのデバイスIDなので、CebOpenDevice()を使用してデバイスをオープンします。
これで、2台のボードをPCから制御できる準備が整います。
ボードをリセットしたり、USBを抜き差しすると、その都度、PCのUSBホストは新たなデバイスIDをボードに対して付与しますので、これらのイベントが発生したときには、必ず、ボードのアドレスとデバイスIDを対応させるように、CebFindDeviceを実行する必要があります。