2

任何有ColdFire线路编程经验的人,请帮忙!

我将 CMX USB-Lite 堆栈与 ColdFire MCF52259 一起使用。由于某种原因,一旦我启用 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 回答