歩き遍路 平成19年春(J1) 記録の準備
UTMI/ULPIでUSB( 3) パソコンからVBUS制御

 パソコンからVBUS制御しました。
 パソコン側は、VisualC#でプログラムを作りパラレルポートでインタフェースします。
 デバイス側は、パラレルポートをバッファしてDE0のCycloneVに取り込みULPIインタフェースを介してUSB3300を制御します。

●デバイス側の構成

 デバッグ状況の写真を示します。写真右下のリボンケーブルがパソコンからのパラレルポートのケーブルです。バッファしてDE0のコネクタに接続します。同じコネクタにUSB3300も接続しています。DE0のもう一つのコネクタにはデバッグ用のロジックスコープを接続しています。
 DE0には、FPGAのCycloneV以外にLED,スイッチや書き込み回路が搭載されています。電源は、書き込み回路用USBの+5Vを使います。
 USB3300の赤いLEDが点灯してVBUSがオンになっている事がわかります。




●FPGAのCycloneVの回路構成

 次の構成図で、左側がパソコンからのパラレルポートとインタフェースするバッファ。右側は、ULPIでインタフェースするUSB3300です。
 中央は、FPGAのCycloneVの回路構成で、コントロール I/F部とULPI I/Fに分かれています。コントロール I/F部とULPI I/Fは、それぞれデータ管理用のレジスタ類と動作を管理する制御用のシーケンサが有ります。コントロール I/F部とULPI I/Fは、FgoレジスタとFBusyレジスタのやり取りで制御しています。「コントロール I/FとULPI I/Fの処理の連携」の部分に概要を示しています。
 コントロール I/FとULPI I/Fの処理のの流れをバブルチャートに示します。












●パソコンからVBUS制御

 パソコンからVBUSを制御するパネルです。「VBUSオン出力」を押下すると次のコードを実行します。


//VBUSオン出力
private void button2_Click(object sender, System.EventArgs e)
{
//??indata = Convert.ToByte(textBox2.Text);
out_c(0x80); //コマンド出力
out_b(0x8A); //データ1出力
out_b(0x40); //でーた2出力
}



●デバッグ用のロジックスコープの波形です 分解能は200MHzです
 上からULPIシーケンサのアドレス、FBusyレジスタ、Fgoレジスタ、outB信号、60MHzの外部クロック、outC信号、制御用のシーケンサのアドレスを表示しています。

 パソコンのプログラム通り、outC信号が一つ、outB信号が二つ出ています。
 次にC点の赤丸の部分を拡大します。





 outB信号の立ち上がりから制御用のシーケンサのアドレスとULPIシーケンサのアドレスの流れや、FgoレジスタとFBusyレジスタの連携が上のバブルチャートの様になっているのが確認できます。







ホームへ戻る