ColdFire MCF52259 中的 USB 枚举失败

发布于 2024-08-26 16:58:02 字数 491 浏览 5 评论 0原文

任何有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),我得到的不是预期的“获取描述符”请求,而是无休止的一系列重置。至少,看起来是这样,因为 TOK_DNE 中断永远不会触发。

我做错了什么吗?

Anybody with programming experience on the ColdFire line, please help!

I'm using the CMX USB-Lite stack with the ColdFire MCF52259. For some reason, USB enumeration fails at the very first step, as soon as I enable the DP pull-up resistor. This is what I'm doing :-

INT_ENB, OTG_INT_EN, ERR_ENB are set to 0x0

INT_STAT, OTG_INT_STAT and ERR_STAT are set to 0xff (This should clear all interrupts)

In the Interrupt Status Register, bits 0 (Mask All) and 53 are made 0, all others are 1.

TOK_DNE, USB_RST and STALL interrupts are enabled in INT_ENB.

BDT base address is set.

MCF_USB_CTL holds 0x1

PROBLEM:
After the host issues the first reset (at which point I enable Control endpoint 0), instead of the expected Get Descriptor request I'm getting an endless series of resets. At least, that's what it looks like, because the TOK_DNE interrupt never triggers.

Is there anything I'm doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浪漫人生路 2024-09-02 16:58:02

您需要将 OWN 位设置为 1。如果您没有这样做,那么 SIE 永远不会获得对 BD 的控制,并且主机会不断重置设备。根据您为控制端点设置 BD 的位置,将 OWN 位设置为 1。

You need to set the OWN bit to 1. If you have not done that then the SIE never gets control to the BD and the host keeps resetting the device. Set the OWN bit to 1 depending on the location where you have set the BD for the control endpoint.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文