2025-12-28 10:40 PM
Hello,
Developing a firmware to update the application via Bootloader over USART2. But, the STM32U5G9BJYXQ is not responding on 0x7F. The MCU is successfully starts from the NSBOOTADD1(0x0bf90000) on driving the BOOT0 pin high while deasserting the reset. The USB-USART tool is sending a proper 0x7F, verified by oscilloscope. Please point to what I might be missing.
2025-12-28 11:51 PM
I have very few information to help You:
- Did You try to program you Board (custom?) with the STM32CubeProgrammer (using USART2)?
- Do You use the right Pin's for USART2 (PA2, PA3)?
- Are You able to use USART2 in your Application?
2025-12-29 1:54 AM
Thanks for your reply. Yes, for all of the cases you've asked for.
2025-12-29 4:33 AM - edited 2025-12-29 4:33 AM
While continuing debugging, found some information which might explain the case more.
HSE = 25 MHz
Target system boot-loader interface: USART2, PA2, PA3
Ref.:
STM32 boot and startup tips - 2 Embedded bootloader investigations
Register dump after NRST de-assert while BOOT0 high:
# Command:
/Applications/STMicroelectronics/STM32Cube/STM32CubeProgrammer/STM32CubeProgrammer.app/Contents/MacOs/bin/STM32_Programmer_CLI -c port=JLINK mode=HOTPLUG ap=0 -r32 0x40003800 0x40 -r32 0x40004400 0x40 -r32 0x40004800 0x40 -r32 0x40005400 0x40 -r32 0x40005800 0x40 -r32 0x4000A400 0x40 -r32 0x40013000 0x40 -r32 0x40013800 0x40 -r32 0x42040000 0x40 -r32 0x46002000 0x40 -r32 0x46002800 0x40
# Output (raw):
-------------------------------------------------------------------
STM32CubeProgrammer v2.21.0
-------------------------------------------------------------------
Connecting to J-Link/Flasher Probe
Device=Cortex-M33
Device ID : 0x476
Voltage : 3.01V
Frequency : 4000 KHz
Flash size : 4 MBytes
Reading 32-bit memory content
Size : 64 Bytes
Address: : 0x40003800
0x40003800 : 00000001 00000000 00078007 00000000
0x40003810 : 00000000 00000000 00000000 00000000
0x40003820 : 00000000 00000000 00000000 00000000
0x40003830 : 00000000 00000000 00000000 00000000
Reading 32-bit memory content
Size : 64 Bytes
Address: : 0x40004400
0x40004400 : 0000140D 00500000 00000000 00000209
0x40004410 : 00000000 00000000 00000000 006000D0
0x40004420 : 00000000 00000000 00000000 00000000
0x40004430 : 00000000 00000000 00000000 00000000
Reading 32-bit memory content
Size : 64 Bytes
Address: : 0x40004800
0x40004800 : 0000140D 00500000 00000000 00000209
0x40004810 : 00000000 00000000 00000000 006000D0
0x40004820 : 00000000 00000000 00000000 00000000
0x40004830 : 00000000 00000000 00000000 00000000
Reading 32-bit memory content
Size : 64 Bytes
Address: : 0x40005400
0x40005400 : 00000001 00000000 000080D2 00000000
0x40005410 : 00800000 00000000 00000001 00000000
0x40005420 : 00000000 00000000 00000000 00000000
0x40005430 : 00000000 00000000 00000000 00000000
Reading 32-bit memory content
Size : 64 Bytes
Address: : 0x40005800
0x40005800 : 00000001 00000000 000080D2 00000000
0x40005810 : 00800000 00000000 00000001 00000000
0x40005820 : 00000000 00000000 00000000 00000000
0x40005830 : 00000000 00000000 00000000 00000000
Reading 32-bit memory content
Size : 64 Bytes
Address: : 0x4000A400
0x4000A400 : 32141218 87654321 00000000 00000A33
0x4000A410 : 00000080 00000000 00000001 06000A03
0x4000A420 : 00000000 00000000 FFFF0000 0000FFFF
0x4000A430 : 00000000 00000000 00000000 00000000
Reading 32-bit memory content
Size : 64 Bytes
Address: : 0x40013000
0x40013000 : 00000001 00000000 00078007 00000000
0x40013010 : 00000000 00000000 00000000 00000000
0x40013020 : 00000000 00000000 00000000 00000000
0x40013030 : 00000000 00000000 00000000 00000000
Reading 32-bit memory content
Size : 64 Bytes
Address: : 0x40013800
0x40013800 : 0000140D 00500000 00000000 00000209
0x40013810 : 00000000 00000000 00000000 006000D0
0x40013820 : 00000000 00000000 00000000 00000000
0x40013830 : 00000000 00000000 00000000 00000000
Reading 32-bit memory content
Size : 64 Bytes
Address: : 0x42040000
0x42040000 : 00010000 00000000 00000000 00001400
0x42040010 : 80000001 04000020 00000000 00000000
0x42040020 : 00000000 00000400 04000400 00080400
0x42040030 : 00000000 00000000 00000008 00005000
Reading 32-bit memory content
Size : 64 Bytes
Address: : 0x46002000
0x46002000 : 00000001 00000000 00078007 00000000
0x46002010 : 00000000 00000000 00000000 00000000
0x46002020 : 00000000 00000000 00000000 00000000
0x46002030 : 00000000 00000000 00000000 00000000
Reading 32-bit memory content
Size : 64 Bytes
Address: : 0x46002800
0x46002800 : 00000001 00000000 000080D2 00000000
0x46002810 : 00800000 00000000 00000001 00000000
0x46002820 : 00000000 00000000 00000000 00000000
0x46002830 : 00000000 00000000 00000000 00000000
2025-12-29 5:36 AM - edited 2025-12-29 5:51 AM
And? Maybe try HSE 24 instead 25, but issue can be on many points. Check errata , check other Progversion etc.
2025-12-29 5:49 AM
Even parity?
If another interface is active, such as USB, it'll connect there and USART won't respond.