No se puede conectar al chip STM32

He soldado un chip STM32F103VF (LQFP100) en una placa de conexión , a la que quiero conectarme a través de mi ST-Link (clon). Sin embargo, ST-Util (y STM32CubeProgrammer) no pueden conectarse al chip.

Hoja de datos de MCU: https://www.st.com/resource/en/datasheet/stm32f103vf.pdf

Imagen de la configuración:

configuración

Asignación de pines:

asignación de pines

He hecho las siguientes conexiones:

  • VDD_1, VDD_2, VDD_3, VDD_4, VDD_5 a 3,3 V
  • VSS_1, VSS_2, VSS_3, VSS_4, VSS_5 a TIERRA
  • VDDA a 3.3V
  • VSSA a GND
  • VREF+ a 3.3V
  • VREF a GND
  • BOOT0 a través de una resistencia de 4,7 kOhm a 3,3 V o GND (ver abajo)
  • PB2 (BOOT1) a TIERRA
  • NRST, PA13 (SWDIO), PA14 (SWCLK) al programador ST-Link
  • dos capacitores electrolíticos de 100µF 16V entre GND y 3.3V
  • un capacitor cerámico de 2.2nF entre GND y 3.3V
  • 3.3V y GND son suministrados por fuente de alimentación de banco, GND se comparte con ST-Link

diagrama esquemático: esquemático

Independientemente de la configuración en ST-Util o STM32CubeProgrammer, intente con respecto al modo de reinicio (Software / Hardware / Core) o la frecuencia, con NRST desconectado o conectado, solo dice

01:50:32: Error: ¡No se encontró ningún objetivo STM32!

Observaciones y notas:

  • cuando BOOT0 es BAJO (también conocido como "ejecutar firmware") y se realiza un reinicio (NRST toca GND por un segundo), el consumo actual es de 2 mA
  • cuando BOOT0 es ALTO (también conocido como "ejecutar bootlaoder interno") y se realiza un reinicio, el consumo de corriente salta a 12 mA
  • cuando NRST se conecta a GND, el consumo de corriente es ~ 1 mA
  • la tabla 18 de la hoja de datos dice que la corriente de suministro en modo de ejecución en HSI 16 MHz, todos los periféricos habilitados, es de 12,2 mA
  • sin embargo, según el documento del cargador de arranque , cuando el cargador de arranque está activo, el RCC se establece en HSI+PLL a 24 MHz, lo que equivale a 18,9 mA (todos los periféricos activados) o 11,6 mA (todos los periféricos desactivados)
  • los pines del oscilador (para HSE y LSE) se han dejado flotando, tampoco deberían ser necesarios
  • El chip no ha sido programado antes por mí, proviene del minorista RS-Online
  • Verifiqué que 3.3V llega a todos los pines VDD en el chip, directamente en el lado superior del pin en el paquete
  • Revisé si había cortocircuitos después de soldar el chip en la placa de conexión y los quité todos antes de conectarlo (mi soldadura de ese LQFP100 no fue muy fácil... quitar los puentes tomó una docena de intentos con la trenza de soldadura)
  • El clon ST-Link ha funcionado absolutamente bien en el pasado, conectándose a chips STM32, STM8 y GD32
  • intentar conectarse cuando el chip se restableció con BOOT0 = ALTO o BAJO no hace la diferencia, ambos fallan

No tengo ideas sobre por qué no puedo conectarme al chip a través de SWD, y también por qué el consumo de corriente es tan bajo en el modo "ejecutar firmware". Sin nada programado, el chip debería encontrar una instrucción inválida bastante pronto, una falla grave y quedarse atascado en un bucle, pero el consumo no muestra eso:/.

¿Puedes dibujar un diagrama real de tus conexiones? Es mucho más fácil para el lector y, francamente, probablemente sea el mejor primer paso de depuración.
Dibujé mis conexiones en EasyEDA y vinculé el esquema anterior.
Muy bien, algo anda mal con las conexiones SWD. Al arrancar el chip en modo cargador de arranque y conectar un adaptador USB-UART a los pines del cargador de arranque (PA10/PA9), la conexión ES EXITOSA. imgur.com/a/8jGHbxe

Respuestas (1)

El misterio está resuelto.

No conecté el pin SWDIO PA13 al ST-Link, pero como lo conecté al pin equivocado en la placa de conexión, lo conecté al PA12, un pin GPIO no relacionado.

Una vez que se soluciona esa única conexión incorrecta, la conexión funciona de inmediato.

swd

Lo que me llevó a este camino es que, según los comentarios, pude conectarme al chip a través del cargador de arranque UART, por lo que el chip no estaba muerto como pensaba.

Lección del día: Siempre revise tres veces sus conexiones.

También muestra que el esquema anterior funciona, si está correctamente conectado.

Aún así, gracias por la ayuda y el empujón para verificar las conexiones nuevamente.

¡Gracias por tomarse el tiempo de regresar y publicar una respuesta! También puede aceptar su propia respuesta, si así lo desea...
En 2 días puedo, dice SO :)
Ah, sí. Lo había olvidado :)