その後、22時には体温が37度を超えました.
0時には38度を超えました.
たぶん3~4時ごろまで高熱が続き、しかし翌朝には平熱に戻っていました.
発熱は速やかに去ったものの、まだ喉が死ぬほど痛く、トローチを手放せません.
長岡がこれほどまでに私の身体を蝕むとは想像だにできぬことでした.長岡をdisった祟りと思われる.
------
かつて、EZ-USBを動かしてみるの連載をしていました.あれからずいぶん時が過ぎましたが、また少し触っているところです.
↓ハードウエア的にはこんなになっております.左側のはXilinx SP3E-250のFPGA基板.データジェネレータとして動かします.右のがEZ-USB基板.データをPCにバルク転送するUSBインターフェースとして動かします.
PCからUSB2.0を可能な限り高速でpollingすると、16MB/Sぐらいの転送レートを出せるという実験結果を得たので、今度はデータジェネレータで発生させたデータをPCにてエラーチェックしようとしています.
EZ-USBのエンドポイント構成はこのようにしてあります.
1) EP1 OUT 64BYTE FIFO PC→EZUSB→FPGAへコマンドを転送する役目
2) EP2 IN 1024BYTEx4FIFO FPGA→EZUSB→PCへデータを転送する役目
いままで得た知見を元に、EZ-USBのプログラミングをすればなんとなくEP1もEP2も動かせたのですが、なぜかEP2のデータが化ける症状で、年末以来なんとなく悩んでいました.
症状は、
・データジェネレータは30MB/Secでデータを出せる(FIFOフルなら待つ)
・EZ-USBは16MB/Secがせいぜいなので、しばしばFIFOはフルになる
・FIFOが空になって、データ受け入れを開始した最初のBYTEがロストするという症状
あれま、、、という感じでオシロでCLKやWEのタイミングを観測しているのが上の写真なわけです.
結論はくだらないハナシなんですが、FPGA-EZUSB間のバスのタイミングの問題.
【死亡状態】
FPGAもEZ-USBも立ち上がりクロックで動くのでxWEが次回にskipしてる(=1バイトロスト)
【半死状態】
FPGAの一部を立下りクロックで動かしたら治ったが、FPGAの一部を半クロックで論理合成したためtimingがmetせんかった
ここで、UZ-USBのIFCLKには極性反転機能ってないんだろうか?とリファレンスマニュアルを読んだらありました.レジスタIFCFGのビット4です.なんだ在るんじゃないか?
【解決状態】
EZUSBは立下りクロックで動きます.FPGAは立ち上がりクロックで動きます.これで1バイトロストは解決しました.
教訓、
スレーブFIFOのデータロストはIFCFG[4]で攻めろ!
バカピーでお恥ずかしい限りですが、病みあがりにつき余裕で許されるに違いない.
かしこ
続編(29~) 希望
返信削除類似のものは
http://www.geocities.jp/altshibabou/win/ezusb_05.html
ぐらいしか見当たらず、参考にしたいので
りょうかいしました.
削除webcam-ezusb-w5100の接続をしたいのでお勉強中でーす