Relación entre los pines de restablecimiento y las funciones SWD (ARM Cortex M0)

4

En muchos microcontroladores u otros dispositivos sin la funcionalidad JTAG / SWD, hay un pin de reinicio que, cuando está bajo, hace que todo se vea incondicional y asíncronamente en un estado conocido. Sin embargo, en los dispositivos con funcionalidad JTAG o SWD, las cosas parecen ser más complicadas, ya que es posible realizar algunas funciones JTAG / SWD mientras se afirma el pin de reinicio.

Tengo algunas placas basadas en Freescale KL15Z que incluyen los pines SWD en un conector con la línea de restablecimiento y algunos otros pines de E / S de diagnóstico. Ocasionalmente, al conectar o desconectar un cable, las partes parecen entrar en un estado extraño de tal manera que incluso el reinicio no las expulsará. Me pregunto si algunos impulsos parásitos en los pines SWD podrían estar poniendo al dispositivo en un estado de "ignorar el pin de reinicio". He encontrado que al usar el depurador, parece que tengo dificultades frecuentes para que los dispositivos se reinicien de manera confiable; No sé si los problemas pueden estar relacionados.

¿Cuál es la relación entre el pin de reinicio y la funcionalidad SWD? Conceptualmente, parece más útil tener un diseño en el que se garantice que cualquier borde descendente en el reinicio realmente reinicie todo, y las comunicaciones SWD que debían ocurrir antes del inicio del código de usuario se podrían realizar con un reinicio bajo, pero no creo Así es como funcionan los chips Freescale KL15Z. ¿Cuál es la mejor manera de resolver estos problemas relacionados con el reinicio con Freescale o partes similares?

    
pregunta supercat

2 respuestas

3

El lado SWD de la interfaz de depuración tiene un reinicio de encendido, pero es básicamente un registro de desplazamiento que activa los accesos AHB al resto del sistema después de observar un patrón de entrada específico / número de cambios. Hay un grado de detección de errores en la secuencia, es bastante improbable que observe los accesos falsos y no tenga el bloqueo de la interfaz esperando una nueva inicialización. (Por supuesto, el host de depuración podría volver a conectarse silenciosamente en este caso, ya que el protocolo está diseñado para ser tolerante a errores).

La interfaz de depuración también puede solicitar un restablecimiento de la CPU (a través de un acceso de registro DP interno en lugar de solicitar un acceso AHB). Por lo general, esto se envía a la generación de reinicio en el chip, pero de nuevo no debería ser capaz de fallar como resultado del ruido en la entrada SWD.

El pin de reinicio generalmente no es un reinicio completo de encendido, y probablemente no reiniciará el lado SWD de la interfaz de depuración, o el controlador flash.

    
respondido por el Sean Houlihane
1

El pin de reinicio a menudo no es necesario, porque el controlador se puede reiniciar utilizando registros de depuración.

Solo un caso cuando es necesario es la conexión bajo restablecimiento, lo que significa que si las señales SWD se comparten con otra funcionalidad a bordo (por ejemplo, SWDIO o SWDCLK se establece como salida), la única manera de acceder a la MCU es poner la MCU en restablecer (en este momento hay algunos registros de depuración accesibles a través de SWD) y establecer el indicador de programa HALT / STOP con registros de depuración sobre SWD, luego dejar el pin de reinicio y en este momento es posible flash MCU.

    
respondido por el vlk

Lea otras preguntas en las etiquetas