Estoy utilizando un depurador ST-LINK / V2 (versión de firmware V2.J27.S6, actualizado) para programar mi placa de descubrimiento STM32F407G. Hasta ahora, he estado usando USB para flashear la MCU, usando la STM32 ST-LINK Utility v4.0.0.0 (controlador v4.4.0.0, st-link_cli.exe v3.0.0.0, todos deberían estar actualizados) -fecha). Ahora nos estamos deshaciendo de la placa de descubrimiento y necesitamos actualizar la MCU mediante la interfaz SWD. Sin embargo, encontré algún comportamiento que es inconsistente con el manual del depurador ST-LINK / V2 ( UM1075 ).
La conexión de los pines según el manual es
JTAG (en el depurador ST-LINK) - SWD (CN2 en la placa STM32)
- 1 - 1 (MCU VDD)
- 5 - 2 (GND)
- 7 - 3 (SWDIO)
- 9 - 4 (SWDCLK)
Sin embargo, en esta configuración me sale el error
No se puede conectar al objetivo
Se lee el archivo de registro
Se detectó un dispositivo ST-Link / V2
Voltaje objetivo detectado: 0.722835
Error al obtener el IDCODE de destino: si SWD, verifique la conexión SWD
Error (4) al inicializar ST-Link en modo SWD
Este error también lo encontré en esta pregunta pero no hay una respuesta satisfactoria. Creo que esencialmente significa que no detecta el voltaje VDD en la placa STM32 (aunque está alimentado con 3V).
Logré resolver el problema conectando directamente los pines de la siguiente manera:
- JTAG 1 - P1 VDD
- JTAG 5 - P1 GND
- JTAG 7 - P2 PA13
- JTAG 9 - P2 PA15
Y ahora todo funciona bien, puedo flashear la placa como solía hacerlo con USB.
Encontré preguntas similares aquí y aquí pero ninguno de ellos ayudado.
Curiosamente, ambos tipos de comportamiento no dependen de las posiciones del puente ST-LINK CN3 en la placa STM32. (¿Por qué no?)
¿Por qué no puedo usar el conector SWD? ¿Por qué el ST-LINK / V2 no detecta el voltaje VDD?
Editar
Se encontró que R2 no está instalado (vea el esquema SWD pág. 27 de STM32F407G manual de la placa de descubrimiento ). Había sospechado que encajar esto con una resistencia de 100R resolvería el problema pero no hizo ninguna diferencia.