EZ-USB FX2 Slave FIFO②

e-tipsmemo.hatenablog.com
続き。

FIFOを接続するまえに16bitずつ受信できるかどうかを確認する。

まずEZ-USBのデバイスディスクリプタの一部を示す。


変えたのはここらへんのエンドポイントの数や、


使わないエンドポイントをコメントアウトしただけである。

また、プログラムの方は、TD_Initとメインループの部分を変更した。

そもそもTD_pollはいらない。
GotSUDは消さない。

FPGA側は、一部抜粋すると

ちょっとハマったのはFDはinoutなのでその書き方。

波形としてはこのようなものをイメージしている。
f:id:katakanan:20180418001107p:plain

USB Control Centerからファームウェアを書き込んで、
f:id:katakanan:20180418001140p:plain
END point2からデータを送る。

そうすると、EP2の空を示すFLAGAが立ち上がるので(=空ではない)受信が開始できることになる。
スイッチをおして、適当にチャタリング防止して、
STATE1に遷移したときに、LEDにFDiをラッチする。
そのままIDLEステートに戻る。
これを三回繰り返すと、FLAGAは0になった(=空である)

受信bit数は16bitなのでLEDには上の画像のデータを送ると2進数で
(0000_0010_0000_)[0001]

(0000_0100_0000_)[0011]

(0000_0110_0000_)[0101]
と表示が変わる。