Partage
  • Partager sur Facebook
  • Partager sur Twitter

USB self powered vs bus powered

microchip pic24fj1024GB610

    23 décembre 2022 à 15:12:16

    Bonjour,

    Je galère, seul, depuis des mois sur du paramétrage d'USB. Le contexte : développement d'un outil de mesure autonome autour d'un PIC24FJ1024GB610 de chez Microchip. Il doit être vu comme un périphérique MASS STORAGE DEVICE (par un PC sous Windows 10). C'est aussi l'USB qui sert à recharger sa batterie. Je développe avec MPlabX, le compilateur XC16 et la librairie MLA.

    Mon prototype est bien vu comme un MSD par l'hôte, mais il lui faut beaucoup de temps pour être reconnu (autour de 30s). De plus, je me suis rendu compte qu'il perturbait un autre périphérique USB (lui-même en mode port série tout simple). Je m'intéresse donc particulièrement à sa consommation et au choix du type d'alim.

    Je me pose 2 questions :
    1 - ai-je bien compris la notion de self/bus powered ?
    2 - comment utiliser correctement la librairie MLA (elle semble la plus adaptée à mon cas) ?

    Pour le 1 - :
    j'ai cru comprendre que dans mon cas, BUS powered est le mode le plus adapté. A quoi me servirait-il d'alimenter le module USB si je ne suis pas connecté à un hôte ? A noter qu'on me certifie que l'électronique du proto garantit de rester sous les seuils admis par la norme, même pour la recharge de la batterie.
    D'après moi, le SELF powered serait réservé à un périphérique voulant jouer le rôle de hub, ou qui souhaiterait ne rien peser sur le hub ?... ou à gérer un mode de mise en veille ?... Je ne vois pas d'autres cas, car je rappelle que dans mon application, on est sur un MSD et pas sur une lampe ou un ventilateur USB !
    Quand au mode hybride, je ne vois pas du tout, sauf à gérer un éventuel mécanisme de veille, et encore ...

    Pour le 2 - :
    J'ai parcouru dans tous les sens divers exemples Microchip sur une base d'Eplorer16/32+PIMdeMonPic. Mais il reste des zones de flou (config du type de power entre autres et gestion des INT aussi). J'ai aussi utilisé le MicrochipCodeConfigurator sans obtenir plus d'éclaircissements.

    En espérant être suffisamment clair.

    Pucpood

    -
    Edité par LaurentFontaine15 23 décembre 2022 à 16:51:21

    • Partager sur Facebook
    • Partager sur Twitter
      24 décembre 2022 à 10:10:28

      Pour ce qui est de la lib MLA, je ne pourrais malheureusement pas t'aider...

      En revanche, pour ce qui est du mode d'alimentation, je peux t'aider.

      ---

      Le mode "BUS POWERED", comme son nom l'indique, signifie que le périphérique est alimenté par le bus USB.

      Comme tu le dis, c'est typiquement le cas des clefs USB qui n'ont pas besoin d'alimentation externe pour fonctionner.

      Les petites lampes et les petits ventilateurs USB sont eux aussi en mode "Bus Powered", ils se servent du 5V disponible sur le port pour faire tourner le moteur et pour éclairer.

      Il n'y a aucune restriction sur le type d'appareil, la seule règle étant de respecter la norme qui impose deux contrainte :

      - avant initialisation USB, un périphérique ne doit pas consommer plus de 100mA sur le port

      - après initialisation, un périphérique ne doit pas consommer jusqu'à 500mA sur le port

      En pratique, pas grand monde ne respecte la règle des 100mA, surtout les petits ventilateurs USB qui n'ont aucun circuit électronique de dialogue par USB pour détecter ou non l'initialisation, le constructeur se contente simplement de brancher le moteur sur le 5V et c'est tout.

      La carte mère des PC est généralement tolérante à ce sujet, elle laisse les périphériques consommer 500mA dans tous les cas.

      En revanche, au delà de 500mA, c'est prendre le risque que la carte mère ne se mette en protection et désactive le port USB pour se protéger, ou bien qu'elle finisse par cramer dans le cas d'une carte mère low cost mal protégée.

      ---

      Le mode "SELF POWERED", comme son nom l'indique, signifie que le périphérique est auto alimenté, il ne dépend pas de l'alimentation du port USB.

      Pour cela, il y a une alimentation externe qui fournie l'énergie au périphérique.

      C'est typiquement le cas des HUBS USB qui ont une alimentation externe pour s'alimenter et alimenter les autres ports.

      En effet, dans le cas d'un HUB 4 port, d'après la norme il est sensé pouvoir fournir 500mA sur chacun des 4 ports, soit 2000mA, il est donc obligé d'avoir une alimentation externe car si il puise sur ces 2000mA sur le port d'entrée connecté à la carte mère, cela va poser problème.

      Certains fabricants font des HUBS USB en "Bus Powered", cela fonctionne pas trop mal tant que l'on branche de petits périphériques qui ne consomment pas grand chose du genre une souris, un clavier, une clef USB, etc... mais si jamais on branche plusieurs appareils de forte consommation dessus, ça ne marche plus.

      ---

      Dans ton cas, ton périphérique n'a pas besoin de beaucoup d'énergie, le mode "BUS POWERED" est donc parfait.

      Il faudra juste penser à limiter le courant de charge de la batterie pour ne pas dépasser les 500mA sur le bus.

      • Partager sur Facebook
      • Partager sur Twitter
        26 décembre 2022 à 16:43:12

        Merci pour votre retour.

        J'ai trouvé un doc qui m'éclaire un peu sur l'emploi de certaines constantes de la librairie MLA (doc Microchip DS51679B).

        Pour revenir à mes dysfonctionnements de perturbation et de lenteur de connexion :
        - je dirais que mon périphérique consomme trop en début de "négociation", ce qui aurait pour conséquence une suspension temporaire du fonctionnement du bus par l'hôte. Une fois que tout est démarré, tout fonctionne correctement.
        Est-ce que, en effet, Windows peut suspendre le fonctionnement du bus USB si un périphérique dépasse les 100mA pendant la négociation ?

        - quelles sont les hypothèses pour un "retard à l'allumage" d'environ 40 secondes lorsque je branche mon périphérique sur son hôte ? Toutefois l'ouverture auto de l'explorateur de fichiers fini par se produire m'affiche le contenu de mon périphérique. En parallèle s'affiche une notification "Le lecteur rencontre un problème". Il est possible de faire une "réparation" qui n'aboutit au bout d'un long moment à un message indiquant qu'il n'y a pas d'erreur...
        Sur ce point, je pressens un problème qui ne serait pas au niveau de l'USB, mais au niveau de la gestion du système de fichier de mon périphérique (là encore, librairie MLA !).

        Je suis bon pour ouvrir un nouveau sujet, mais je cherche un peu avant !

        -
        Edité par LaurentFontaine15 26 décembre 2022 à 16:54:29

        • Partager sur Facebook
        • Partager sur Twitter
          27 décembre 2022 à 11:29:23

          Là, cela commence à devenir un peu complexe, il faudrait connaitre la lib MLA pour pouvoir t'aider, et je doute qu'il y ai quelqu'un ici qui ai ces compétences.

          Il te faudrait plutôt demander de l'aide sur des forums spécialisés, en expliquant le tout en anglais.

          Sinon, pour ce qui est des 100mA, il y a largement de quoi respecter cette contrainte sur un petit système comme le tient.

          Il te suffirait probablement de désactiver la charge de la batterie tant que la négociation n'a pas été faite pour limiter grandement ta consommation.

          Certains chip de recharge ont un courant paramétrable par résistance, tu pourrais en mettre deux dont l'une des deux est shuntable par un transistor commandé par ton processeur, tu aurais alors 2 vitesses de charge, une pour brider à 100mA, une autre pour brider à 500mA.

          Fais aussi attentions aux condensateurs sur les entrées d'alimentations, si la valeur est trop forte, ils font faire un trop gros appel de courant au branchement.

          • Partager sur Facebook
          • Partager sur Twitter
            27 décembre 2022 à 17:05:10

            Merci pour tes réponses qui me font tout de même avancer. J'ai déjà lu pas mal de choses en Anglais, mais j'avoue que je sature, parfois sur l'Anglais, souvent sur la pluie d'abréviations de cette littérature et aussi à cause de mes connaissances en électronique somme toute assez superficielles.

            Je vais qd-mm continuer mes recherches Franco-Anglaises et kidnapper mon collègue électronicien que je vois 1h par semaine !

            Merci encore.

            • Partager sur Facebook
            • Partager sur Twitter

            USB self powered vs bus powered

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown