STM32L MCU: el pin SWD en la placa no coincide con el pinout del procesador

Estaba haciendo mi proyecto de piratería de hardware en un dispositivo de monitoreo de la calidad del aire que usa STM32L476un procesador.

Pasadores de caja de aireMis únicas experiencias con la piratería de hardware son cámaras IP o enrutadores wifi con consolas UART disponibles. Pero, después de algunas pruebas e intentos, no pude encontrar una manera de interactuar con mi caja de aire.
(Los pines USART simplemente imprimen un UUID en el arranque y luego no pasa nada más).

Así que creo que mi próxima mejor apuesta son esos pines SWD. Luego procedí a obtener la hoja de datos STM32L476y encontré este problema.

De acuerdo con la hoja de datos, SWDIOcorresponde SWCLKal pin PA13y PA14ningún otro pin tiene funciones alternativas para trabajar como SWDIO o SWCLK. Pero mirando con cuidado, y ni siquiera están conectados a esos pines marcados en el tablero. y son los únicos que tienen pinouts, por lo que creo que tienen muchas probabilidades de ser utilizados por los desarrolladores como puertos de depuración. Pero hasta donde yo sé, los chips STM32 solo necesitan dos pines para depurar con SWD, ¡y hay 8 pines a bordo! Este circuito simplemente no tiene sentido para mí :((Asignación de pines STM32L476 Definición de pines STM32L476


PA13PA14SWD1ingrese la descripción de la imagen aquí
SWD1USART

Soy muy nuevo en hardware, por lo que no estoy familiarizado con lo que suelen hacer los desarrolladores de hardware. ¿Es común que algunos pines a bordo estén marcados como A pero realmente funcionan como B? ¿O solo cometí algunos errores muy estúpidos al hacer mi investigación?


Editar:

Entonces, después de leer todos los comentarios y respuestas, hice algunas pruebas y enumeré algunas características de esos pines: ¿Supongo que estoy listo para continuar con el siguiente paso? Hay tanto que aprender mientras espero que llegue mi ST link V2. Muchas gracias a todos los que me brindaron la mayor amabilidad y ayuda 😊😊ingrese la descripción de la imagen aquí

¿Ha medido que no hay conexión desde ninguno de esos pines de encabezado a los pines SWD o lo está haciendo simplemente siguiendo el rastro ópticamente?
@Arsenal Bueno... después de leer su comentario, traté de hacer una prueba de continuidad en esos pines con mi multímetro y realmente obtuve dos pines en SWD1 que son continuos con PA13 y PA14. ¡Qué estúpido soy al juzgar un circuito por su apariencia D: .... De todos modos, estoy muy agradecido por su amable y rápido comentario.
Tendrían que estar conectados o no podrían programarlo, puedes usar JTAG o SWD de 8 hilos en el mismo conector. SWD usa dos cables y también necesitará conexión a tierra (también ayuda tener VCC)
@ laptop2d Los dos cables que mencionó son SWDIO y SWCLK, ¿lo estoy entendiendo correctamente? Logré encontrar GND pero no estoy muy seguro de cuál es Vcc. Mi único conocimiento es que Vcc se usa como cambiador de nivel en SWD, pero no sé cómo asegurarme de cuál es ... Sin embargo, hay un pin de 5v (Ese pin en la esquina inferior derecha que está conectado a un cable muy grueso) ¿es seguro suponer que es un pin SWD Vcc?
@ Jimmy.D No hay forma de saberlo sin un esquema de su placa, si no tiene un esquema, tendrá que aplicar ingeniería inversa a uno de su PCB.

Respuestas (2)

Usa un multímetro. Probablemente encontrará que esos pines están conectados a los pines SWD. Tenga en cuenta que PA14 claramente va a una vía, que luego se extenderá a lo largo del lado inferior de la PCB.

Lo más probable es que PA13 corra por debajo del micro y hacia una vía, y también corra hacia el encabezado SWD a través de la capa inferior.

El hecho de que mires algo desde arriba y no puedas ver una conexión, no significa que no esté allí. Mira PA14. ¿Puedes ver una forma lógica de ejecutar una pista en los pines del encabezado SWD en la capa superior? No, tendrías que cruzar muchos rastros que simplemente no puedes hacer. Esta es la razón por la que se utilizan vías, para que la pista pueda continuar en el otro lado de la PCB.

Nunca debe mirar un PCB y asumir que no está conectado porque no puede ver un rastro a lo largo del lado superior de un tablero. Obtenga un multímetro y verifique la continuidad. Sospecho que encontrará que hay una conexión allí.

En realidad, se utilizan 6 pines SWD para la programación (si programa mediante SWD), que son V+, GND, RST, SWIO, SWCLK y SWO. Si esta placa se programó a través de SWD, hay muchos cables planos prefabricados que se usan para la programación, como este:

ingrese la descripción de la imagen aquí

Y el programador tendrá un pinout prefabricado que el diseñador debe seguir. Esa es la explicación probable de los pines adicionales en el encabezado. Por lo general , depende del programador que se use en cuanto a qué encabezado se usa en el diseño.

¡Gracias por tu respuesta detallada! Después de leer su respuesta y el comentario de Arsenal, usé mi multímetro y descubrí la continuidad de esos pines. ¡También su visión sobre la programación SWD realmente arrojó luz sobre mi confusión! ¡Muchas gracias!
Encantado de ayudar. Aunque la respuesta de @ jeroen3 tiene una mejor descripción del lado de la programación SWD que la mía.

Tu investigación es correcta. SWD no se puede reasignar, pero los pines se pueden usar de otra manera.

El conector no es estándar. Por lo general, las personas usan el conector SWD de 10 pines (a menudo con un paso de 1,27 mm) para ARM JTAG/SWD.

Para comunicarse con el chip necesita 4 pines.
Destino gnd y vcc, y SWDIO, SWDCLK. Los programadores usan Vcc objetivo para sus cambiadores de nivel. Dado que muchos objetivos ARM pueden funcionar con un voltaje de 1,8 a 5 voltios.

No se requiere el pin de reinicio, a menos que los pines se utilicen de otra manera en el código de usuario. Como desconectado internamente del periférico de depuración.

Los programadores populares son ST Link para chips STM32 y STM8. O Segger para varias marcas.

¡Agradezco su información adicional sobre SWD! 😄😄 Me gustaría votar a favor de todos ustedes, pero mi reputación no es suficiente. Parece que todos los que se jactan de la capacidad de usar SWD con solo dos pines en la hoja de datos me cegaron. Haré mi investigación más a fondo en futuros trabajos 🤦