AnsweredAssumed Answered

usb does not enumerate

Question asked by Vincent Gagliardo on Dec 4, 2012

First some background info:

My platform is a mcf52258 on a custom designed board.  Note that this design is based off of M52259DEMO.

 

I am developing a custom bare metal interrupt driven usb driver.  The project is based off of 52259EVB_IRQs and I am using Eclipse 10.2.  I found the interrupt vector table located in exceptions.c and setup my handler (usb_driver_isr) there. 

 

The usb_driver is a custom one that I developed baselined from freescale's bootloader for my device.  This driver works on an MQX based project and a bare metal project developed with CW 7.2 using PE.

 

So my problem:

The usb_driver_isr is only called on reset and for no other transactions (ie - token done).  I can see on the bus analyzer that my device is not responding to setup packets from the host.  In the IDE I can see that my setup handler is never called when the isr is entered.  As I stated before, it appears that the isr is only  called for reset.

 

If I unplug and plug in the usb cable, the isr is entered again, but only for reset.

 

I verified that my BDT is addressed correctly by observing the BDT_PAGE_0X registers through the IDE.  Not sure where to go from here.  As I stated before, this usb_driver has work for other firmware on this same platform.  Do I not have interrupts setup correctly?

 

-Vince

Original Attachment has been moved to: main_for_freescale.c.zip

Original Attachment has been moved to: usb_driver_for_freescale.cpp.zip

Outcomes