AnsweredAssumed Answered

STM32F4 embedded bootloader problem

Question asked by Vlasenko.Pavel.001 on Jan 22, 2015
Latest reply on Jan 22, 2015 by Clive One
Can`t start the STM32F407VG chip in bootloader mode via USB. On the Discovery board all works fine if i set the boot0 and boot1 pins to boot from system memory. The device is enumerated in Windows as STM Device in DFU mode.

On our custom board with the same chip, same external crystal (8MHz), and mainly same USB schematics (excluding EMI filter), after setting boot0 and boot1 pins to boot from system memory, the device fails to enumerate and is detected as Unknown device. (But the USB HID class in our software works fine).

Tried to jump to bootloader using following function, invoked after reset and system initialization:

void BootLoader(void)
{
    void (*SysMemBootJump)(void) = (void (*)(void)) (*((uint32_t *) 0x1FFF0004));
    __set_PRIMASK(1);
    RCC_DeInit();
    SysTick->CTRL = 0;
    SysTick->LOAD = 0;
    SysTick->VAL = 0;
    //RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);
    __set_MSP(0x20001000);
    SysMemBootJump();
}

after that our device and Discovery board fails to enumerate and is detected as Unknown device.
 
Is there any special care to be taken for the bootloader to detect and use USB in DFU mode?

Outcomes