USB enumeration failure in ColdFire MCF52259

521 views Asked by At

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?

1

There are 1 answers

0
prajwal On

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.