Etabli
← Retour aux leçons
Leçon · AVN-03 · Bus I2C et SPI · 4/4

Maîtriser : fiabiliser et déboguer un bus

4 étapes·25 min·0/4 fait·quiz à réussir
voix

Un bus qui marche sur l'établi n'a encore rien prouvé : la vraie épreuve, c'est le robot qui vibre, les fils qui s'allongent et le deuxième identique qui débarque avec la même adresse. Cette leçon fait de toi le médecin des bus : provoquer les pannes types pour les reconnaître, écouter les codes d'erreur, ranimer un bus figé, et dérouler l'enquête dans l'ordre — scanner, , , un périphérique à la fois.

📖 Comprendre

1. Les pannes types et leurs visages

Trois pannes reviennent sans cesse sur les , et chacune a un visage. SDA et SCL croisés : le bus est totalement muet, le scanner ne trouve personne — de câblage la plus fréquente. absente ou débranchée : une ligne relâchée ne remonte jamais, et le la montre traînant au au repos, là où un bus sain lit deux lignes hautes. Ce sont les pannes « silence complet » : rien ne dialogue tant qu'elles durent.

La troisième est plus sournoise : le CONFLIT D'ADRESSES. Deux exemplaires du même sortent d'usine avec la même adresse ; appelés, ils répondent ensemble, leurs s'écrasent mutuellement, et les lectures deviennent un mélange incohérent des deux puces. Le scanner, lui, affiche fièrement l'adresse — quelqu'un répond, il est satisfait. Symptôme typique : des mesures qui « marchent presque », plausibles une seconde, absurdes la suivante. Provoquer ces trois pannes exprès, c'est vacciner ton œil pour toutes les années à venir.

2. Le conflit d'adresses et la broche de sélection

Le conflit a des remèdes prévus d'avance. Le premier : la de sélection d'adresse, présente sur beaucoup de puces. Reliée à la ou au , elle fixe le dernier bit de l'adresse : 0x68 d'un côté, 0x69 de l'autre — 104 et 105, deux noms distincts pour deux jumeaux. Un simple fil ou un pont de sur le module suffit : c'est la solution à tenter d'abord, elle ne coûte rien.

Quand la manque, ou qu'il faut plus de jumeaux que de combinaisons, reste le multiplexeur : un aiguilleur branché sur le bus, qui possède sa propre adresse et ouvre une branche à la fois. Le maître lui demande d'ouvrir la branche 2, puis parle au qui s'y trouve comme s'il était seul au monde — les jumeaux des autres branches n'entendent rien. Plus lourd, mais sans limite pratique. La règle de terrain : broche de sélection d'abord, multiplexeur pour les familles nombreuses.

3. Codes d'erreur et bus figé : écouter, puis ranimer

Chaque transmission rend un CODE : zéro quand tout s'est bien passé, et un code nommé pour chaque échec — adresse sans réponse (personne à ce numéro : câblage ou adresse fausse), donnée refusée (la est là mais a rejeté un ), délai dépassé ( est restée bloquée). Ignorer ce verdict, c'est déboguer à l'aveugle ; le tracer à chaque échange raté — avec l'adresse et , étiquetés — transforme mystérieuse en symptôme daté et nommé.

Reste le cas du bus FIGÉ : un redémarrage du maître en plein laisse parfois un périphérique au milieu de sa phrase, tenant au en attendant des battements d'horloge qui ne viennent plus — plus personne ne peut parler. La reprise est un rituel court : battre jusqu'à neuf coups d'horloge sur SCL pour laisser la finir sa phrase fantôme et relâcher , puis envoyer une condition d'arrêt et réinitialiser le bus. Prévois ce rituel dans ton code de démarrage : un robot doit savoir se ranimer sans qu'on le débranche.

4. Fiabiliser : longueur, ressorts et méthode

L' est un bus de carte, pensé pour quelques dizaines de centimètres : quand les fils s'allongent, les fronts s'arrondissent et les battements finissent par se perdre. Remèdes dans l'ordre : raccourcir, éloigner des câbles de et de leurs , ralentir l'horloge de 400 à 100 , et raidir les . Leur valeur se raisonne : trop grande (au-delà de 10 ), remonte paresseusement ; trop petite (sous 1 kΩ), les puces peinent à la tirer vers le bas. 4,7 kΩ est la valeur de paix — et n'oublie pas que les pull-up embarquées des modules s'additionnent : quatre modules à 10 kΩ font déjà 2,5 kΩ d'équivalent.

Et quand est là, déroule TOUJOURS la même enquête, dans le même ordre. Un : le scanner — bus entier muet, ou un seul absent ? Deux : l' et au , des modules. Trois : les — les deux lignes au au repos ? Quatre : un périphérique à la fois — tout débrancher, remettre un à un, et noter à quel branchement la panne revient. Chaque étape élimine la moitié des suspects ; en quatre gestes, le coupable est nommé. C'est la même hygiène d'enquête que pour la : des hypothèses, des mesures, jamais de re-téléversement au hasard.

🧮 Exemple guidé : l'enquête du bus muet

Samedi matin : le robot, qui marchait hier soir, ne lit plus rien. Chaque échange échoue avec le code « adresse sans réponse ». Mène l'enquête du médecin des bus, dans l'ordre, mesure par mesure, jusqu'au coupable.

  1. 1.Étape 1 — le scanner : balayage de 8 à 119… aucune réponse. Le bus ENTIER est muet : la panne est commune, pas propre à un capteur.
  2. 2.Étape 2 — l'alimentation : LED des modules allumées, 3,3 V entre VCC et masse au multimètre. Les puces sont nourries — hypothèse écartée.
  3. 3.Étape 3 — les pull-up, au repos : SDA lit 3,3 V… mais SCL lit 0,2 V. Une ligne ne remonte jamais : ressort manquant, ou quelqu'un qui la retient en bas.
  4. 4.Étape 4 — un périphérique à la fois : on débranche l'écran → SCL remonte à 3,3 V et le scanner retrouve les capteurs. On le rebranche → 0,2 V, silence. Le coupable est nommé.
  5. 5.Verdict — sous le châssis, le fil d'horloge de l'écran, pincé par une vis, touche la masse : il tenait TOUT le bus en bas. Un fil regainé, et les trois adresses répondent à l'appel.

Quatre mesures, zéro re-téléversement : le scanner a dit « panne commune », la tension a désigné la ligne, le débranchement a désigné le module. Sur un bus partagé, UN seul fil malade suffit à tout éteindre — et seule l'enquête ordonnée le retrouve vite.

🛠 Pratiquer sur l'établi

  1. 01Provoquer les pannes types : /SCL croisés, rappel absent, adresse en conflit

    Vaccine ton œil : provoque les trois pannes types, une par une. Croise et SCL et lance le scanner — silence total. Retire une et mesure au repos — elle traîne en bas ; contrôle aussi la du bus fil à fil. Monte enfin deux adresses identiques — le scanner content, les mesures folles. Note chaque symptôme dans ton carnet.

    sur l'établi
    0,2 Ωchemin fermé : BIP — le courant d'essai passe

    📖 Termes de cette étape

Objectifs

  • +Diagnostiquer un bus muet
  • +Gérer les erreurs de transmission
  • +Architecturer le réseau de du robot
🧪 S'entraîner dans le bac à sable

Quiz de validation

À réussir pour valider la leçon

Réponds de mémoire, sans remonter la page : c'est l'effort de rappel qui grave le cours. Les trois bonnes réponses valident la leçon.

1. Le scanner ne trouve plus AUCUNE adresse sur le bus. Que faut-il en conclure ?

2. Deux capteurs identiques arrivent avec la même adresse 104. Que faire ?

3. Le bus s'allonge et accueille plus de modules : que deviennent les pull-up ?

🧠 Ce qu'il faut retenir

  • 1.Un bus muet se diagnostique dans l'ordre : câblage, rappels, adresses.
  • 2.Chaque transmission rend un code : l'ignorer, c'est déboguer à l'aveugle.
  • 3.Deux puces à la même adresse : l'une des deux doit déménager ( ou multiplexeur).