Ehko

Le blog d'un ingénieur électronicien militant
Home

Aller au menu | Aller à la recherche

Debug avec ULink2 et OpenOCD

, 18h58

Contrairement à ce qu'on peut lire sur quelques forums sur Internet, les sondes ULink2 sont compatibles avec OpenOCD. La seule chose à faire, c'est de changer leur mode de boot.

Les sondes ULink2 ont deux modes de démarrage : le mode ULink et le mode CMSIS-DAP. Seul ce dernier mode est pris en charge par OpenOCD. Or par défaut, le mode ULink est activé sur les sondes si la version du firmware est inférieure à 2.00. Grosso-modo, cela correspond à toutes les sondes achetées avant mi 2017.

Dans tous les cas, il est possible de passer d'un mode à l'autre en utilisant l'utilitaire "UL2_Configure.exe" fournit par Keil dans son environnement µVision. Je vous ai mis cet utilitaire en annexe de ce billet. Celui-ci se lance depuis la ligne de commande Windows et voici comment on l'utilise :

UL2_Configure.exe [SN] {B0|B1}

Avec :

  • SN : numéro de série de la sonde dont vous voulez changer le mode de boot. Nécessaire seulement si plusieurs sondes sont connectées à l'ordinateur, optionnel sinon.
  • B0 : passage en mode ULink.
  • B1 : passage en mode CMSIS-DAP.

Petit exemple d'utilisation : ulink2-boot-mode.png

Une fois le mode de boot de la sonde modifié, il ne reste plus qu'à réaliser le script OpenOCD qui va bien, en spécifiant qu'on utilise une interface de type CMSIS-DAP. Exemple de config OpenOCD avec une sonde ULink2 pour debugger un STM32F207 en mode SWD :

source [find interface/cmsis-dap.cfg]
transport select swd
source [find target/stm32f2x.cfg]
reset_config srst_only

source

Ma pince de programmation

, 18h57

Je cherchais un moyen de programmer mes futures cartes électroniques sans avoir à monter un connecteur (pour le coût et l'encombrement) et sans faire de perçage (question d'esthétique). Je n'ai malheureusement rien trouvé qui me convienne et j'ai donc décidé de créer mon propre système que je vous présente ici.

prog-clip_assemble.jpg

Ma solution se présente sous la forme d'une pince munie de Pogo pins sur lequel vient se brancher le debugger. Je me suis inspiré des lits à clous électroniques qui utilisent ce genre de broche pour garantir le contact entre la carte à tester et le banc de test. Le ressort de la pince permet de maintenir les pins contre les pastilles de la carte à programmer.

Listes des éléments

La liste des éléments utilisés est très courte étant donné qu'il ne s'agit d'un "remplaçant" pour un connecteur. Voici ce que j'ai utilisé :

  • Des Pogo pins de 1mm de diamètre

prog-clip_pogo-pin.jpg

  • De la barrette coudée de 2,54mm en rangée double

prog-clip_connecteur.jpg

  • Une pince à linge

prog-clip_pince-linge.jpg

  • Des petits attache-lien comme ceux utilisés pour fermer les sacs de congélation ou ceux qui maintienne les câbles de vos produits électroniques neufs
  • Le PCB créé pour l'occasion

prog-clip_pcb.jpg

J'ai commandé le PCB sur OSH Park et je dois dire que je suis très satisfait du service. Le choix des caractéristiques du PCB est très limité mais la qualité est au top. Il faut juste bien anticiper que des attaches seront ajoutées sur le contour, ce qui peut être gênant parfois (mais pas dans ce cas).

Pour ceux qui voudrait les sources, je vous met le lien vers le projet OSHPark ici.

Montage

Première étape : souder les broches Pogo sur le PCB. C'est la partie la plus délicate car il faut souder les pins le plus droit possible et toute à la même distance. Le plus simple pour ça est d'utiliser un autre PCB identique qui sert de cale.

Ensuite il faut souder la barrette coudée, étape ne présentant aucune difficulté particulière. On obtient alors le résultat suivant :

prog-clip_soudee.jpg

Pour finir il faut couper la pince à linge et accrocher la carte électronique dessus. Pour ce dernier point, j'ai utilisé des attaches-lien comme indiqué dans la liste des éléments. Mais vous pouvez tout aussi bien utiliser des élastiques ou directement coller le tout.

Essais

La pince fonctionne parfaitement. Je peux désormais programmer des cartes en ajoutant simplement des pastilles comme sur la carte ci-dessous (que je devrais vous présenter bientôt ;-)).

prog-clip_pastilles.jpg

J'ai prévu huit pastilles pour pouvoir utiliser du JTAG et un port de communication UART mais il est également possible de n'utiliser que 4 pastilles avec du SWD.

Je vous mets une petite photo prise lors des essais de programmation pour terminer :

prog-clip_programmation.jpg

Améliorations

J'ai prévu un peu trop de jeu sur les perçages qui accueillent les broches Pogo et il est donc difficile de souder droit les broches. Ceci sera facilement corrigé sur les prochaines versions.

Je me demande également si il est possible de faire un PCB qui remplacerait directement une des deux moitiés de la pince. Dans ce cas, plus besoin de couper la pince. Cela rendrait le démontage et le montage plus simple aussi.

Une alim de labo à base de DPS5005

, 20h02

J'avais besoin d'une alimentation stabilisée pour pouvoir alimenter différents objets électroniques ainsi que pour tester les cartes électroniques que je fabrique. Ne voulant pas investir énormément d'argent dans un équipement haut de gamme, je fais des recherches pour trouver le bon compromis. J'ai finalement choisis de me monter une alimentation basée sur le DPS5005 suite à cet article de présentation du module sur Hackaday et au fait qu'il existe un firmware open-source si j'ai un jour besoin de bidouiller mon alim.

Liste des composants

Voici la liste des éléments que j'ai utilisé pour construire cette alimentation :

  • Un DPS5005. Il s'agit d'un convertisseur DC/DC abaisseur de tension et incluant toutes les fonctions de contrôle et limitation de la tension et du courant nécessaire pour faire une alimentation stabilisée. Le module peut délivrer jusqu'à 5A sous 50V.

alim-labo_DPS5005.jpg

  • Une alimentation 48V 5A. Étant donné que le module DPS5005 est un abaisseur de tension, cette alimentation me permettra de profiter de quasiment toute la plage du module.

alim-labo_alim-48V.jpg

  • Une alimentation ATX. Enfin pour être plus précis, un boitier d'alimentation ATX avec son connecteur IEC. Le reste de l'alimentation est inutile et n'a pas besoin de fonctionner.

alim-labo_alim-ATX.jpg

  • Un câble d'alimentation IEC.

Préparation du boitier

Première étape pour préparer le boitier d'alimentation ATX : le vider de sa précédente carte et de tous les éléments inutiles. J'ai conservé seulement le connecteur IEC, le cordon permettant de mettre le boitier à la masse et la visserie, outre le boitier bien sûr.

alim-labo_alim-ATX-vide.jpg

J'ai ensuite réalisé les différents perçages et les ouvertures permettant d'accueillir les différents éléments. J'ai utilisé pour cela un petit outil rotatif avec un disque métal ainsi que la perceuse à colonne de l'association atelier-soudé.

alim-labo_decoupe-face-avant.jpg

alim-labo_decoupe-face-arriere.jpg

Une fois les ouvertures pratiquées, j'ai poncé le boitier avant de le peindre. J'ai choisis une peinture en bombe noir mat. C'était une première et il faut avouer que c'est vraiment simple à utiliser et permet d'avoir un résultat très propre.

alim-labo_peinture-boitier.jpg

Assemblage des éléments

Le boitier étant prêt, j'ai pu installer les différents éléments. Cela s'effectue sans encombre pour peu que les ouvertures soient correctement ajustées, ce qui était le cas.

alim-labo_montage-vue-face.jpg

alim-labo_montage-vue-arriere.jpg

Cablage

Une fois l'assemblage terminé, il ne reste plus qu'à câbler les éléments avant de pouvoir refermer le boitier. J'ai fait le choix de mettre de la gaine thermorétractable sur chaque point de soudure pour minimiser les chances de toucher un conducteur par inadvertance. J'ai également ajouté un film plastique en façade et sur les perçages du boitier inutilisés pour empêcher le passage d'un doigt ou d'un tournevis par exemple.

alim-labo_cablage-vue-face.jpg

alim-labo_cablage-vue-arriere.jpg

Résultat

Et voilà le résultat ! Une belle alimentation stabilisée de laboratoire qui vient s'ajouter à ma liste d'outils pour l'électronique. Je vais rapidement la mettre à contribution pour alimenter mon prochain projet électronique, que j'espère pouvoir vous présenter bientôt.

alim-labo_resultat.jpg

Remarques et améliorations

Je n'ai inclus dans mon alimentation aucun moyen de refroidissement. Et je suis près à parier que l'alimentation 48V et le DPS5005 dégagent beaucoup de chaleur lorsqu'ils sont utilisés sous une tension élevée et un fort courant. Personnellement je compte dans un premier temps surveiller l'ensemble du montage et j'ajouterai si nécessaire un ventilateur pour refroidir le système. Mais si vous faites un montage similaire au miens, n'oubliez pas de prendre en compte les dégagements thermiques.

J'ai également prévu d'installer la carte de communication USB avec le DPS5005. Je n'en ai pour le moment pas l'utilité mais cette fonctionnalité pourrait se révéler très pratique à l'avenir. J'ai déjà réalisé le perçage de la face avant pour laisser passer le connecteur micro-USB mais je n'ai pas installé la carte. Il me manque un support pour que le tout tiennes correctement et résiste aux sollicitations exercées lors des branchements/débranchements. Je pense réaliser le support en bois ou l'imprimer en plastique avec une imprimante 3D si l'occasion se présente.

Réparation d'une Gameboy Advance - suite et fin

, 22h33

J'ai reçu les pièces me permettant de réparer correctement la gameboy d'un ami. Si vous avez loupé les précédentes explications, vous pouvez vous rattraper en allant lire ce billet.

Une fois les quelques vis du boitier retirées, les deux vis du PCB dévissées et le connecteur de l'écran déclipsé, voici les organes de la bête répandus devant moi.

gba_pcb.jpg

J'ai commencé par changer le switch d'alimentation. Pour retirer l'ancien, il m'a suffit de chauffer les soudures avec un pistolet à air chaud jusqu'à ce qu'elles fondent, puis d'attraper le composant avec des brucelles. Après un peu de nettoyage avec une tresse à dessouder, il ne restait plus qu'à souder le nouveau composant. gba_changement-switch-alimentation.jpg

Le plus dur étant fait, j'ai pu souffler un peu en m'attaquant aux boutons. Pour cela, il m'a suffit de retirer les anciens et de les remplacer par les neufs, puis de nettoyer à l'alcool les pastilles sur le PCB. Du nettoyant à contact aurait été parfait mais je n'en ai pas sous la main. gba_changement-boutons.jpg

PCB remonté, boitier refermé, et voilà une console repartie pour encore de nombreuses heures de jeu !

Réparation d'un four Fagor 6H-210N

, 13h56

Mon four encastrable Fagor modèle 6H-210N était tombé en panne il y a environ un mois. C'est arrivé lors de l'installation de ma cuisine et à la suite de branchement successifs de celui-ci.

four_photo-modele.jpg

Habituellement, lors d'un débranchement ou d'une coupure d'électricité, l'horloge intégrée au four perds sa mémoire et l'afficheur se met à clignoter sur 00:00. Il suffit de régler l'heure, de valider et le four est fonctionnel. Sauf que cette fois si, le système s'active durant un bref instant puis se réinitialise, avec l'afficheur qui clignote. Lors de la validation de l'heure, on entends très clairement un relais qui se ferme et qui s'ouvre lors de la réinitialisation qui suit.

Après quelques recherches sur internet, il s'avère que ce problème est courant sur ce modèle de four. Et la réparation consiste à remplacer le condensateur de filtrage des surtensions qui est endommagé. La réinitialisation de la carte est due à un routine de sécurité, qui vérifie que le composant est valide.

Le démontage

Il est impératif de débrancher le four avant d'y toucher !

1. Sortir le four de son emplacement

2. Démonter le cache supérieur : 2 vis four_demontage-cache.jpg

3. Déboiter les 2 LEDs four_LED-deboitees.jpg

4. Deboiter les boutons rotatifs de sélection du mode de chauffage et de la température

5. Dévisser la face avant : 4vis four_demontage-cache-avant-gauche.jpgfour_demontage-cache-avant-droite.jpg

6. Retirer la face avant en la tirant. Les 3 boutons permettant de régler la minuterie vont résister un peu et finir par sauter. C'est le meilleur moyen que j'ai trouvé pour les retirer sans les casser.

7. Débrancher le module électronique (flèches vertes sur la photo) et le sortir de son emplacement en faisant rentrer les éléments en plastiques qui le maintienne (flèches rouges sur la photo) four_demontage-carte.jpg

8. Dévisser la carte électronique et la retirer de son boitier en poussant sur les deux crochets en plastique (flèches vertes sur la photo). four_carte-boitier.jpg

Réparation

Une fois la carte entre mes mains, j'ai démonter le condensateur de protection (le gros rectangulaire et jaune). J'ai pu ainsi vérifier sa valeur et il s'est avéré que c'était bien le fautif.

four_remplacement-condensateur.jpg

J'ai acheté le composant de remplacement sur DigiKey : P15515-ND.

Note : il est possible de bypasser la minuterie et la sécurité du four. Il suffit simplement de souder un fil entre les pattes du relais. Cela peut être pratique pour pouvoir continuer d'utiliser votre four en attendant que vous receviez la pièce de remplacement, mais je ne le conseille pas pour une utilisation prolongée.

- page 1 de 2