2

ColdFire ラインでのプログラミング経験のある方は、助けてください!

ColdFire MCF52259 で CMX USB-Lite スタックを使用しています。何らかの理由で、DP プルアップ抵抗を有効にするとすぐに、最初のステップで USB エニュメレーションが失敗します。これは私がやっていることです:-

INT_ENB、OTG_INT_EN、ERR_ENB は 0x0 に設定されます

INT_STAT、OTG_INT_STAT、および ERR_STAT は 0xff に設定されます (これにより、すべての割り込みがクリアされます)。

割り込みステータス レジスタでは、ビット 0 (すべてをマスク) と 53 が 0 になり、その他はすべて 1 になります。

TOK_DNE、USB_RST、および STALL 割り込みは、INT_ENB で有効になります。

BDT ベースアドレスが設定されます。

MCF_USB_CTL は 0x1 を保持します

問題: ホストが最初のリセットを発行した後 (その時点でコントロール エンドポイント 0 を有効にします)、予期される Get Descriptor 要求ではなく、無限の一連のリセットを取得しています。少なくとも、TOK_DNE 割り込みがトリガーされないため、そのように見えます。

私が間違っていることはありますか?

4

1 に答える 1

1

OWN ビットを 1 に設定する必要があります。そうしないと、SIE が BD を制御できず、ホストがデバイスをリセットし続けます。コントロール エンドポイントの BD を設定した場所に応じて、OWN ビットを 1 に設定します。

于 2012-07-27T11:04:34.850 に答える