任何有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。
在INT_ENB中启用TOK_DNE、USB_RST和STALL中断。
已设置BDT基址。
MCF_USB_CTL占用0x1
问题:在主机发出第一次重置(此时我启用了控制端点0)之后,我得到的不是预期的Get Descriptor请求,而是无穷无尽的一系列重置。至少,它看起来是这样的,因为TOK_DNE中断从不触发。
我有什么地方做错了吗?
发布于 2012-07-27 19:04:35
您需要将OWN位设置为1。如果您没有这样做,则SIE永远不会获得对BD的控制,并且主机会不断复位设备。根据您为控制端点设置BD的位置,将OWN位设置为1。
https://stackoverflow.com/questions/2515287
复制相似问题