La conexión ST-Link de repente deja de responder

0

Aunque quería cargar / depurar un nuevo HAL Eclipse System Workbench para el proyecto STM32 en mi STM32F103, mostraba el siguiente mensaje:

OpenOCD child process termination

Reason:
Wrong device detected

Details:

Wrong device detected
  Open On-Chip Debugger 0.10.0-dev-00302-gc211ca5-dirty (2017-07-03-10:41)
  Licensed under GNU GPL v2
  For bug reports, read
    http://openocd.org/doc/doxygen/bugs.html
  none separate
  Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
  adapter speed: 950 kHz
  adapter_nsrst_delay: 100
  Info : clock speed 950 kHz
  Info : STLINK v2 JTAG v27 API v2 SWIM v6 VID 0x0483 PID 0x3748
  Info : vid/pid are not identical: 0x0483/0x374B 0x0483/0x3748
  Info : using stlink api v2
  Info : Target voltage: 3.236436
  Error: init mode failed (unable to connect to the target)
  in procedure 'init' 
  in procedure 'ocd_bouncer'

Esto sucede con regularidad, lo que normalmente hago es iniciar la utilidad STLink y seleccionar Target / connect. Esto muestra a veces un error:

Can not connect to target!
If you're trying to connect to an STMW1xx device, please select
Normal or HotPlug mode from Target->Settings menu.
If you're trying to connect a low frequency application, please select
a lower SWD Frequency mode from Target->Settings menu.

Dado que ambos no se aplican, quito la memoria USB STLink (V2, una barata) y el USB para encender el STM y lo intento de nuevo, sobre todo funciona. Cierro la utilidad ST Link y continúo con Eclipse. Esto normalmente toma unos minutos y es molesto, pero al menos puedo continuar.

Sin embargo, ahora sigo recibiendo el mensaje ST Link y no puedo deshacerme de él (también reinicié mi computadora).

Si pruebo ST-LINK / Firmware Update desde la utilidad ST-Link (para comprobar si puedo conectarme al ST Link) y presiono Device Connect, aparece:

ST-Link is not in the DFU mode.
Please restart it

No sé cómo 'reiniciarlo', pero eliminar el enlace ST del USB y reinsertarlo no ayuda.

También probé otro ST-Link, pero tiene el mismo comportamiento.

Que probé otro STM32, que funcionó. Sin embargo, tan pronto como intenté cargar el programa a través de Eclipse, funciona una vez, al volver a intentarlo, tengo los mismos problemas que antes y ahora mis dos STM ya no funcionan. El programa no es especial, y funcionó antes.

¿Cómo restaurar la conexión con Eclipse para que pueda volver a cargar programas para la depuración?

Actualización:

  • Traté de poner BOOT0 a 1 (3V), una vez que pude conectarme con el enlace ST, lo borré. Incluso pude depurar después de subir, pero solo una vez. Que los problemas comenzaron como antes.
  • Además, de repente, la utilidad ST Link se bloquea al intentar conectarse.
  • Cuando pongo BOOT0 en 0 otra vez, y sigo presionando el botón de reinicio, selecciono borrar la memoria de la utilidad ST Link y suelte el botón de reinicio, podría borrarlo. Esto hace posible de nuevo cargar un programa a través de Eclipse. Sin embargo, después de que el primer punto de interrupción inicial avanzara, recibo el siguiente error:

    Error: error de JTAG: -4

pregunta Michel Keijzers

2 respuestas

3

Parece que en el proyecto HAL, SYS / Debug no se configuró en Serial Wire (esto no es el predeterminado).

Sin embargo, la primera vez fue posible depurar, pero no más después. La razón es que el JTAG / SWDIO está deshabilitado durante la aplicación. Cuando está deshabilitado, incluso una conexión es difícil de hacer.

Lo que funcionó:

  • Establezca BOOT0 en 1
  • Mantener presionado el botón de reinicio
  • Eliminar / Borrar chip
  • Reiniciar la depuración
respondido por el Michel Keijzers
1

Enfrenté exactamente el mismo problema. Esto sucede porque jtag está deshabilitado dentro del código que generamos desde el software CubeMX. Solución: eliminar las líneas de soplado dentro del archivo stm32f1xx_hal_msp.c:   __HAL_AFIO_REMAP_SWJ_DISABLE ();

    
respondido por el Dhiraj Patil

Lea otras preguntas en las etiquetas