Finalisation du chinois ST-Link v2: ajouter l'interface de sortie des informations de débogage SWO et leg Reset

image Salut les Geektimes!

Aujourd'hui, je veux parler de l'achèvement du chinois ST-Link v2 avec un fer à souder. Vous pouvez y ajouter une sortie SWO pour recevoir des informations de débogage et le pied de contrôle de réinitialisation pour les microcontrôleurs STM32 (le même segment de réinitialisation qui est déjà disponible pour STM8). Pour beaucoup, ce n'est peut-être pas une découverte, mais qu'il y ait des informations pour les débutants. Peu importe, s'il vous plaît, sous le chat.

Pourquoi est-il nécessaire?

L'interface SWD utilisée pour le débogage des microcontrôleurs STM32 prend en charge le transfert des informations de débogage via la sortie SWO en temps réel, ce qui est très pratique. Eh bien, le pied de réinitialisation est nécessaire pour qu'il soit plus confortable de flasher le contrôleur si l'interface SWD est désactivée. La raison est certainement farfelue, car pour le firmware, vous pouvez toujours appuyer sur le bouton Reset avec les poignées, mais laissez-le. Par exemple, à l'aube de ma connaissance de STM32, j'ai reçu une carte de débogage en provenance de Chine avec un programme de démonstration clignotant avec une LED clignotante et SWD désactivé, je n'ai pas immédiatement compris comment s'y connecter.

Révision elle-même

Nous avons besoin d'un scalpel, d'un fer à souder et de quelques centimètres d'un fil très fin, je l'ai ici MGTF * certains *. Sur ces programmeurs, le connecteur est divisé en deux parties: la gauche - pour STM8 et la droite - pour STM32, donc la réinitialisation existante ne convient pas pour STM32, nous ferons la nôtre.

Tout d'abord, coupez les pistes allant aux broches inutiles. Sur mon premier programmeur modifié, j'ai coupé les jambes de Reset et SWIM, parce que je n'avais pas prévu de travailler avec STM8, mais maintenant je vais utiliser les broches 3,3 et 5 V supplémentaires (elles sont dupliquées sur le connecteur), afin de ne pas gâcher les fonctionnalités du programmeur, cela sera utile.

Les fils doivent être soudés aux pieds 18 (Reset) et 31 (SWO) du microcontrôleur. C’est une autre leçon, mais avec certaines compétences, vous pouvez le faire. Mes fils sont bien entrés dans les trous de la planche, ce qui a donné une fixation supplémentaire. En général, dans le bon sens, vous devez immédiatement les fixer avec de la colle sur le microcontrôleur. Souder les extrémités libres à travers de petites résistances (qu'elles soient de 22 Ohms) aux broches nouvellement coupées.



Vous pouvez clore le dossier et signer de nouvelles conclusions, afin de ne pas oublier où.

Vérification SWO



Pour utiliser SWO, vous devez:

- activer SWD ;
- activer la sortie correspondante (pour les microcontrôleurs STM32F103C c'est PB3) sur TRACESWO ;
- assurez-vous que SWO est inclus dans l'environnement de programmation, et non semihosting ;
- dans l'en-tête du programme connectez la bibliothèque #include "stdio.h" ;
- utilisez printf dans le code du programme ("Hello STM32 world! \ R \ n") ;

Vous pouvez afficher ces messages via le terminal dans le programme STM32 ST-LINK Utility ou directement pendant le débogage dans mon environnement (j'utilise IAR).


Réinitialiser la vérification

Supposons que, pour une raison quelconque, le SWD soit désactivé sur le microcontrôleur: soit vous avez oublié de l'activer lors de l'initialisation, soit une nouvelle carte est livrée avec un programme de démonstration câblé. Bien sûr, vous pouvez flasher en tirant la jambe de réinitialisation au sol (généralement il y a un bouton sur les cartes de débogage), mais ce n'est pas toujours pratique. Vous pouvez simplement connecter le contact depuis le programmateur et coudre automatiquement.

Dans le même programme STM32 ST-LINK Utility, sélectionnez «Connect under reset» et connectez-vous au flash ou effacez la mémoire du microcontrôleur.


Ou dans votre IDE, sélectionnez l'élément approprié:


Cela vous permettra de flasher et d'entrer en mode débogage, mais dès que vous arriverez à l'initialisation des périphériques, le SWD se déconnectera et la connexion avec le contrôleur disparaîtra.

Merci de votre attention, j'espère que quelqu'un vous sera utile.

Source: https://habr.com/ru/post/fr402927/


All Articles