AnsweredAssumed Answered

USB DFU on STM32L432 and STM32L433

Question asked by riggs.rob on Mar 11, 2017
Latest reply on Mar 27, 2017 by riggs.rob

I'm trying to use USB DFU with our custom boards, one based on STM32L432KC and another on STM32L433CC, and I am having a problem using two DFU programs on Linux: dfu-util and dfuse-tool (a Python program).  Both of these tools fail to program these MCUs.  I should note that I have a very similar board using an STM32L476 part which does not exhibit this problem.  Also, the USB DFU bootloader on the 432KC Nucleo-32 board exhibits the same behavior, but USB electrical path on the breadboard I rigged up for testing is a little more suspect in that case.


dfuse-tool fails with: usb.core.USBError: [Errno 32] Pipe error

dfu-util fails with: Error during download get_status


I can make dfu-util work by passing in "-t 1024" (or lower) to reduce the transfer size.  During this time I get a number of "Poll timeout 21 ms" warnings, but it completes successfully.


I do not believe that there is an issue with the MCU or with the USB signal path because the firmware implements a CDC interface and that appears to be working with no issues.


I have read AN2606 and noted the issue with the original bootloader on the STM32L43x parts.  All of the MCUs I have used report bootloader version 0xFF.  Is this a manifestation of that problem?


Are parts with the fixed bootloader (0x10) available from any distributors currently?  The ones I am using in my prototypes were purchased fairly recently in the US from a major distributor.