2015年3月30日月曜日

EZ-USB FX2LP を動かしてみる (13) パケットモニタもどき

USBの解説本を読むと、さまざまなパケットやトランザクションがホストとデバイスの間を飛び交うと書かれています.

EZ-USB FX2LPをPCに繋いだときにはどんなパケットやトランザクションが飛び交っているのかをモニタしたいと思い、PCアプリのUSB protocol analyzerを使ってみましたが、物足りなさを感じて断念.

FX2LPの割り込みルーチンに小細工して「どの割り込みが起動されたか」をモニタしようと思い、FPGAでシリアル通信でPCに表示する回路を作りました.
USB割り込みハンドラに、割り込み番号を出力するルーチンUsbID_out()を密かに仕込んでおきます.使っているLSIがFX2LPの56pinなので、UART機能が使えない(外部ピンがない)のでこのようなめんどくさい事態になってしまいました.
// Setup Token Interrupt Handler
void ISR_Sutok(void) interrupt 0
{
   EZUSB_IRQ_CLEAR();
   USBIRQ = bmSUTOK;         // Clear SUTOK IRQ
   UsbID_Out(0x08);
}

それで、FX2LPを起動した直後に、デバイスディスクリプタを送信などしていると思われる場面でのFX2LP内部の割り込みの推移はこんなでした.

しかし問題は、これを知っても大した役には立たないというコトでした.無駄じゃ無駄じゃ.

SUTOK          セットアップトークン
USBRESET    USBリセット
SUSPEND      サスペンド
USBRESET  
HISPEED        ハイスピード
SUTOK  
SUDAV          セットアップトークンavailable
USBRESET
HISPEED
SUTOK  
SUTOK  
SUDAV  
SUTOK
     :
  中略         SUDAVとSUTOKの繰り返し
     :
SUTOK  
SUDAV  
SUTOK  
SUDAV

その12へ     その14へ

かしこ

INDEXページへ
https://hirasakausb.blogspot.com/2019/03/ez-usb-fx2lp-index.html

2 件のコメント:

  1. DAC で迷っています、使用範囲 0.2v~1v 分解能は8(3bit) ですが 2チャンネル有り、
    外部VR(ADC)によって1/100位の重み付けをしたいです。
    (VR% * 0-12.5-25-32.5-50-62.5-75-87.5-100)
    こうなりますと デルタシグマDAC、PWM、DDS 等になるかと思われますが、
    簡単なマイコンなどで実現できるでしょうか?

    返信削除
    返信
    1. わたしのイメージとしては、通常のDACで、リファレンス入力端子付きで、リファレンス入力端子電圧をADCで変化させるコトで、フルスケールを可変する、、、というイメージです.これであれば通常の使い方ではあります.
      ただし、3bitDACというのもいまどき珍しいのと、リファンレンスで100倍も可変できるかいな? という2点がリスクかと思いました.
      マイコンでできる可能性は低いと思います.では.

      削除