usb does not enumerate

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

usb does not enumerate

Jump to solution
828 Views
VinceTF
Contributor III

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

Labels (1)
0 Kudos
1 Solution
578 Views
VinceTF
Contributor III

Setup a new C++ project with CW Eclipse and ported in my usb driver.  USB now enumerates. 

My driver was originally developed in a C++ environment.  Although I removed all C++ objects, I suspect that I am using some variable declaration or other items that Eclipse doesn't recognize when configured as a C project.

View solution in original post

0 Kudos
1 Reply
579 Views
VinceTF
Contributor III

Setup a new C++ project with CW Eclipse and ported in my usb driver.  USB now enumerates. 

My driver was originally developed in a C++ environment.  Although I removed all C++ objects, I suspect that I am using some variable declaration or other items that Eclipse doesn't recognize when configured as a C project.

0 Kudos