[Numérique] Instabilité du bus I2C après avoir retiré un composant du bus
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Instabilité du bus I2C après avoir retiré un composant du bus



  1. #1
    Maxeyli

    Instabilité du bus I2C après avoir retiré un composant du bus


    ------

    Bonjour à tous,

    Suite à l'évolution d'un projet pour changer un accéléromètre qui arrive en fin de vie. Je rencontre des soucis avec le bus I2C sur lequel il était.

    Mon système est constitué d'un bus I2C permettant la communication avec un accéléromètre, un capteur de température, un PCB avec un élément RFID et un élément de sécurité. Le tout est commandé par un microcontrôleur de chez Cypress.

    J'ai pris une de mes cartes avec cet accéléromètre que j'ai dessoudé et enlever tout les éléments externes qui lui étaient lié.
    J'ai alors constaté une instabilité de communication au niveau du bus I2C, cette instabilité apparaît rarement mais toujours pour communiquer avec le même composant qui est un composant de sécurité (SHA204A) que j'utilise pour générer des clés de sécurité.

    Je vous joins l'ensemble des blocs fonctionnels.
    i2c_probleme.jpg

    Lorsque j'ai retiré mon accéléromètre, j'ai également retiré C5/C4/C6.

    J'ai fais des mesures à l'oscilo, j'ai constaté une dégradation du signal, sachant que j'étais en fast mode (400KHz), je suis passé en standard mode (100KHz). Avec en résultat de une meilleur qualité de signal et pas de soucis sur le respect des temps de montés/descente.

    Mais après avoir relancé mes tests sur 24h, je constate encore l'apparition d'erreur toujours de manière aléatoire mais toujours pour discuter avec le même composant (SHA204A).

    J'ai revu le code et fait des modifications pour améliorer son initialisation et sa communication compte tenu du fait que la datasheet du composant indique qu'il peut y avoir des désynchronisation. Mais toujours le même résultat.

    J'ai diminué les résistances de pull-up pour passer de 4.7Kohms à 1Kohms, mais pas d'amélioration.

    Aujourd'hui je suis un peu à court d'idée pour régler ce soucis, sachant que je ne pensais pas aboutir à ce problème en retirant ce composant du bus I2C.

    Je vous joins la dernière capture d'oscillo suite à mon passage a 1Kohms pour mes résistance de pull.
    SCR03.PNG

    Je souhaiterai avoir vos conseils par rapport à ce problème.

    Merci,
    Maxeyli

    -----

  2. #2
    gienas
    Modérateur

    Re : Instabilité du bus I2C après avoir retiré un composant du bus

    Bonjour Maxeyli et tout le groupe

    Citation Envoyé par Maxeyli Voir le message
    ... J'ai fais des mesures à l'oscilo, j'ai constaté une dégradation du signal, sachant que j'étais en fast mode (400KHz), je suis passé en standard mode (100KHz). Avec en résultat de une meilleur qualité de signal et pas de soucis sur le respect des temps de montés/descente ...
    Sauf erreur de ma part (ou d'exactitude de ton schéma), je ne vois pas les résistances de pullup indispensables sur le bus I2C. Ce peut être une excellente explication. Des 4,7k sur les deux bornes au positif devraient améliorer le comportement, et très certainement, "enjoliver" les oscillogrammes.

  3. #3
    umfred

    Re : Instabilité du bus I2C après avoir retiré un composant du bus

    @gienas: les pullup sont R4 et R5 sur le microcontroleur

    Je vois un I2C_POW connecté aux pullup et au microcontrôleur. utilité ? il vient d'où ? pourquoi ce n'est pas le même 3.3V que pour les alimentations?
    Quand tu parles d'instabilité, c'est qu'il ne répond pas ?
    Logiciellement, tu as désactivé la communication avec l'accéléromètre ? vu qu'il n'est plus présent, si la communication est toujours active, il y a peut-être des problèmes de timing qui sont apparus (selon comment est organisé les communications I2C)
    Pour la resynchro, tu as suivi le paragraphe 6.5 de sa doc ?
    Dernière modification par umfred ; 26/04/2024 à 17h05.

  4. #4
    jiherve

    Re : Instabilité du bus I2C après avoir retiré un composant du bus

    bonsoir,
    où sont les pull up , puisqu'il y en a, il faudrait faire le relevé au raz du circuit capricieux.
    JR
    l'électronique c'est pas du vaudou!

  5. A voir en vidéo sur Futura
  6. #5
    Maxeyli

    Re : Instabilité du bus I2C après avoir retiré un composant du bus

    Bonjour à tous et merci pour vos retours,

    @gienas : Oui les résistances de pulls sont bien R4 et R5.

    @umfred
    Je les aient mises comme ça afin de réduire au maximum le courant consommé par le circuit. Si je n'utilise pas l'i2C, elles sont désactivées.
    Pour ce qui est de I2C_POW, c'est une référence pour quand je défini mes broches au niveau de mon logiciel. Pas d'autre référence à I2C_POW dans le schéma.

    Lorsque je parle d'instabilité, c'est que le bus I2C fonctionne correctement avec tout les autres composants sauf le composant de sécurité. Et lorsque que je communique avec parfois, j'allume ma carte et j'arrive à faire toutes les communications avec et à d'autre moment, je vais avoir 7 / 10 qui vont bien se passé. Et sa tombe toujours sur ce composant. J'ai également le cas, ou l'ensemble des composants communiquent bien (même celui de sécurité) et après 2/3 échanges avec lui, j'ai une erreur de communication sur le bus I2C.

    Oui, j'ai désactivé toute interaction avec l'accéléromètre (initialisation, mesure, interruption).

    Tout à fait j'ai essayé d'implémenter la section 6.5 de la datasheet mais sans aucune amélioration.
    - Je lance une fonction de Start I2C
    - Je met ensuite mon bus SDA à 1 pendant 90uA (I2C standard mode 100Kbps)
    - Je fais ensuite un autre Start I2C
    - Puis je fais un STOP I2C
    - Après avoir fini se process de synchronisation, j'essaye de communiquer avec le composant

    En comparant la datasheet de l'accéléromètre et des autres sensors I2C, on constate que la capacitance de l'accéléromètre était celle la plus élevé.
    Est ce que cela aurait pu rendre mon bus I2C instable ? Si oui, y a t-il une solution pour rééquilibrer le bus ?

    Merci pour votre aide,
    Maxeyli

Discussions similaires

  1. disjonction 30ma apres avoir retiré un fusible
    Par nectra71 dans le forum Bricolage et décoration
    Réponses: 21
    Dernier message: 26/05/2017, 11h50
  2. pb apres avoir rebooter
    Par armageddon5966 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 06/02/2012, 13h00
  3. Que faire apres avoir decroche un Bac S SVT ?
    Par inviteb880ab9f dans le forum Orientation après le BAC
    Réponses: 27
    Dernier message: 09/10/2010, 11h15
  4. Se réorienter après avoir travaillé
    Par invite6c1b4360 dans le forum Orientation après le BAC
    Réponses: 0
    Dernier message: 25/02/2008, 15h44
  5. Est il possible de faire une thèse après avoir travaillé après l'obtention de son DEA
    Par invite6784ac07 dans le forum Orientation après le BAC
    Réponses: 9
    Dernier message: 16/09/2005, 15h25
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...