I got a strange, also interesting, problem, while I am using System Memory Boot Mode with STM32F446RE.
STM32F446, Nucleo-64 Board (PID:0x0421, BID:0x90, Bootloader Version:0x31)
STM32F410 Nucleo-64 Board for comparison
Host Test Utilities:
ST Flash Loader Demonstrator,
AccessPort (just a PC com port test software)
Prolific PL2302 USB to Serial Module (self made)
1 BOOT0 pin: 1 (pull high to 3.3V)
2 BOOT1/PB2 pin: 0(pull down to Gnd)
3 This makes System Memory selected as Boot area.
4 UART1 PA9/PA10 and UART3 PC10/PC11 with pullup 100K Ohm Resistor.
5 UARTx TX/RX connected to RX/TX pins of PL2302
Use STM32F446 UART1 PA9/PA10 => Flash Loader Demonstrator Failed ("Unrecognised device....Please, restart your device and try again" )
Use STM32F446 UART3 PC10/PC11 => OK, Flash Loader Demonstrator works!
Switch to STM32F410 UART1 PA9/PA10 => OK, Flash Loader Demonstrator works!
Back to STM32F446 and PA9/PA10 pins, with still the above setup. Oscilloscope shows the following image:
Due to unknown reason, STM32F446RE PA9 UART1 TX pin is somehow driven low with system memory boot mode pin setup after a reset. This strange phenomena cannot be seen in UART3 PC10 pin, and STM32F410 UART1 PA9 pin.
I've tried that if Boot0 grounded, as normal flash operation, this PA9 driven-low phenomena also cannot not be observed, as the 100K resistor is easily pulled it VCC. I believe this is somehow related to the code in the system boot memory, perhaps not properly configured.
1. Set PA9 TX pin with pull-up resistor down to few kOhm(1K ~ 4.99K Ohm) does the job, with the cost of power consumption.
2. If I use Com Port Test Software, like AccessPort, This PA9 driven-low after reset causes the host to receive a 0x00 byte equivalently, hence Flash Loader Demonstrator fails to recognize the device. If this 0x00 byte is omitted, we can still send 0x7F to make UART1 enter boot mode, as I can read chip information using 0x00FF and 0x01FE. Hence a custom flash loader application is still possible.
Does any have similar experience? Or I just got a damaged F446??
Thanks for reading this post!