I have soldered a STM32F103VF chip (LQFP100) on a breakout board, which I want to connect to via my ST-Link (clone). However, ST-Util (and STM32CubeProgrammer) cannot connect to the chip.
MCU Datasheet: https://www.st.com/resource/en/datasheet/stm32f103vf.pdf
Picture of the setup:
Pinout:
I've made the following connections:
- VDD_1, VDD_2, VDD_3, VDD_4, VDD_5 to 3.3V
- VSS_1, VSS_2, VSS_3, VSS_4, VSS_5 to GND
- VDDA to 3.3V
- VSSA to GND
- VREF+ to 3.3V
- VREF- to GND
- BOOT0 via 4.7kOhm resistor to either 3.3V or GND (see bottom)
- PB2 (BOOT1) to GND
- NRST, PA13 (SWDIO), PA14 (SWCLK) to the ST-Link programmer
- two 100µF 16V electrolytic capacitors between GND and 3.3V
- one 2.2nF ceramic capacitor between GND and 3.3V
- 3.3V and GND are supplied by bench power supply, GND is shared with ST-Link
Schematic diagram: schematic
No matter what setting in ST-Util or STM32CubeProgrammer I try regarding reset mode (Software / Hardware / Core) or frequency, having NRST disconnected or connected, it only says
01:50:32 : Error: No STM32 target found!
Observataions and notes:
- when BOOT0 is LOW (aka "run firmware") and a reset is performed (NRST touches GND for a second), the current draw is 2mA
- when BOOT0 is HIGH (aka "run internal bootlaoder") and a reset is performed, current draw jumps to 12mA
- when NRST is connect to GND, current draw is ~1mA
- datasheet table 18 says supply current in run mode on HSI 16MHz, all peripherals enabled, is 12.2mA
- however, per bootloader document, when the bootloader is active, RCC is set to HSI+PLL to 24MHz, equating to 18.9mA (all peripherals enabled) or 11.6mA (all peripherals disabled)
- oscillator pins (for HSE and LSE) have been left floating, they also shouldn't be necessary
- chip has not been programmed before by me, comes from RS-Online retailer
- I checked that 3.3V reaches all VDD pins on the chip, directly on the top side of the pin on the package
- I checked for shorts after soldering the chip on the breakout board and removed them all before hooking it up (my soldering of that LQFP100 did not go very smoothly.. removing bridges took a dozen attempts with soldering braid)
- The ST-Link clone has worked absolutely fine in the past, connecting to STM32, STM8 and GD32 chips
- attempting to connect when the chip was reset with BOOT0 = HIGH or LOW does not make difference, both fail
I'm out of ideas on why I can't connect to the chip via SWD, and also why the current consumption is so low in "run firmware" mode. With nothing programmed, the chip should encounter an invalid instruction pretty soon, hardfault and be stuck in a loop, but consumption does not show that :/.