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