cancel
Showing results for 
Search instead for 
Did you mean: 

USB DFU Enumeration between Linux Host and STM32F303RB

jww
Associate

Our Engineering team is currently having difficulties getting our onboard STM32F303RB MCU to enumerate as a USB DFU device when entering Bootloader mode. We require this functionality in order to be able to upgrade our firmware out in the field. We are able to have our application firmware enumerate a USB device but no luck with the bootloader. The STM32 communicates to an Embedded Linux Host via a USB Hub:

Embedded Linux Host <-> USB Hub <-> STM32

We have a few questions regarding getting the bootloader to enumerate.

  1. On the internet there appears to be mixed messages as to whether the STM32F303RB MCU uses an internal pullup when in the Bootloader. Are you able to confirm whether it does enable an internal pullup for the bootloader?
  2. I have set BOOT0 HIGH but there is also mixed messages about BOOT1 being pulled to GND. To enter USB DFU mode does BOOT1 have to be pulled to GND or is it a don't care and can be left floating?
  3. Is there some kind of output/pin I am able to probe to be able to confirm that I have entered USB DFU mode when I exit out of reset?
  4. Since the STM32 is permanently connected to a USB Hub, is there any particular timing specs I have to meet in regard to the external D+ pullup? Like do I need to leave the D+ pullup disconnected for X number of msec after reset prior to setting the pullup?

 

Some assistance on this issue would be greatly appreciated.

 

1 REPLY 1
STOne-32
ST Employee

Dear @jww ,

Can you try if working with Windows PC Host and having the HUB in between.  to isolate if coming from a specific configuration ?

There is a known Limitation described in AN2606  for STM32F303D/E :

Introduction to system memory boot mode on STM32 MCUs - Application note  Page 144

 

Let us know.

STOne-32.