cancel
Showing results for 
Search instead for 
Did you mean: 

HS USB Device Won't Return Report Descriptor

jvavra
Associate III
Posted on February 06, 2015 at 13:32

I've got a STM32F405 using a Microchip USB3300 PHY set up to run as a HS HID USB device. The device gets MOST of the way through enumeration. However, when the host queries for the report descriptor, the device fails to respond. I have set a breakpoint and can verify that the device recognizes the request, and the request is correct. but it simply never returns the report descriptor. I have disabled any other interrupts to ensure they aren't causing the problem. 

This same code executes fine on the STM32F427. As in: I don't even bother changing the target micro, I just run the same project built for the '405 on the '427, and it works fine. 

#stm32-usb-device
3 REPLIES 3
jvavra
Associate III
Posted on February 13, 2015 at 20:32

This is looking more and more like a DMA issue. Are there some differences in the DMA between the '427 and '405 that I'm missing? Seems ST only exposes the address registers of the HS DMA (which in my case is correct), so I'm not finding any strange DMA faults or error flags.

jvavra
Associate III
Posted on February 20, 2015 at 13:12

Update: I reached out to my ST FAE, who immediately replied with the solution to this issue (In case anyone comes across this while searching): it turns out that while the HS USB DMA has access to both FLASH and RAM memory locations in the '427, it ONLY has access to RAM locations in the '405. I was storing the Report Descriptor in FLASH to save on limited RAM in an earlier design. Now, I copy it from FLASH to RAM when needed, and the Report Descriptor is transmitted as expected.    

Amel NASRI
ST Employee
Posted on February 20, 2015 at 14:24

Hi Joshua,

Thanks for sharing your case with other forum users.

Please note that your conclusion is already documented in RM0090: refer to figures 1 & 2 in the reference manual to see the difference between system architecture of both devices.

-Mayla-

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.