PoE Hat: anatomie d'un problème de qualité et CORRECTIF

Un petit retour sur un problème ayant défrayé le monde du Pi. Le problème du PoE Hat est maintenant terminé. Un partage d'expérience intéressant dont nous pouvons tous apprendre quelque-chose.

Bonne lecture
Dominique

Cet article est une traduction 'at the best' et augmentation de l'article "Anatomy of a product quality issue: PoE HAT" paru sur RaspberryPi.org

Anatomie d'un problème de qualité

Une des ingénieuses fonctionnalités du Raspberry Pi 3 Modèle B+ est son support PoE (Power-over-Ethernet) IEEE 802.3af. Ce standard permet de délivrer une puissance allant jusqu'à 13W via les paires torsadées du câble Ethernet. Ce transport d'alimentation se fait sans interférer avec la transmission de données. La carte Raspberry Pi dispose d'un connecteur Ethernet supportant PoE ainsi que les composants du circuit de protection; l'électronique de régulation d'alimentation, trop coûteuse et encombrante, n'est pas incluse à la carte mère mais prend plutôt place sur un HAT (carte d'extension) séparé.
Le Pi 3B+ équipé du Hat PoE
Source: RaspberryPi.org
Lorsque la fondation a annoncé le Pi 3B+, elle a également annoncé qu'un HAT PoE HAT officiel était en cours de développement. Après quelques retards de production imprévus, la fondation a finalement mis le HAT en vente à la fin Août.
Le retour était, et reste, généralement très positif; mais la fondation à rapidement reçu des retours d'utilisateurs rencontrant des problèmes avec leur HAT PoE.

Le problème
Le problème rapporté était le suivant: lorsque certains Raspberry Pi étaient alimentés via le HAT PoE, il n'était pas possible de consommer la totalité du courant qui devrait être normalement disponible sur le port USB.

La sortie 5V USB, identifiée comme VBUS, est alimenté par l'alimentation 5V principale du Pi par l'intermédiaire d'un hacheur avec limiteur de courant (current-limiting switch). Ce limiteur de courant, présent sur le HUB USB, protège le système en détectant les court-circuits, sur-consommation (périphériques trop gourmand) et polarisation inverse. Les ports USB sont déconnectés en réponse à de pareils événements. Le limiteur de courant du Raspberry-Pi est configurer pour s'activer avec un courant juste supérieur à 1A.

Bien que le HAT PoE soit capable de délivrer jusqu'à 2.5A, les expérimentations conduites sur base des retours utilisateurs  suggère que le limiteur de courant s'active à un courant bien inférieur lorsque le port USB est utilisé pour alimenter des cartes et périphériques.
Souris et clavier fonctionnent parfaitement mais les périphériques plus énergivores comme clé WiFi ou disque dur.

La théorie initiale de la Fondation était que le HAT PoE injectait du bruit/parasites sur l'alimentation 5V du Pi, et que ce bruit détraquait le fonctionnement du limiteur de courant. Cependant, cela n'a pas pu être établit puisque qu'aucun bruit/parasites haute fréquence n'a été relevé à l'entrée hacheur.
Un autre théorie prônait l'injection de bruits parasites dans le hacheur du HUB USB à cause de la proximité physique du transformateur. Mais la fondation à également écarté cette approche, en effet, le problème persistait même lorsque le HAT était monté perpendiculairement sur le GPIO du Pi à l'aide d'un connecteur à angle droit afin d'écarter l'électronique de puissance du Raspberry Pi.

Comment fonctionne le PoE HAT
Le PoE HAT utilise un hacheur MP8007 monté sur l'étage primaire du transformateur (donc côté PoE, 48V, avant le transformateur).
Détails du circuit de régulation PoE

Ce hacheur interrompt régulièrement le circuit primaire 48V continu du transformateur, ce qui permet de produire un champ magnétique variable dans le transformateur... et donc de produire une tension dans circuit secondaire.
Application typique du MP8700 - Hacheur sur Circuit Primaire
La tension secondaire est régulée à l'aide de d'une Diode et de capacités de sorties (elles sont montées en parallèles).

A noter que le transformateur doit être conçu avec soin et dispose d'une seconde bobine dans l'étage primaire pour effectuer une mesure de la tension dans le transformateur, ce qui permet au hacheur d'adapter son fonctionnement.
Bobine senseur dans le transformateur

Que se passait-il?
Le HAT PoE fonctionne en convertissant les 48V en provenance de la fiche réseau vers 5V en utilisant un transformateur réducteur de tension. En termes simple, le primaire du transformateur est connecté sur le 48V continu par l'intermédiaire d'un hacheur.

La bobine primaire du transformateur stocke l'énergie sous forme de champ magnétique. Le primaire est alors déconnecté par le hacheur et le champs magnétique s’effondre, ce changement de champ magnétique induit une tension dans la bobine secondaire du transformateur.
La tension à l'étage secondaire du transformateur dépend du rapport du nombre de spires entre l'étage primaire et secondaire.
Cette tension est ensuite rectifiée avec une diode Schottky et capacité sortie.

Cette capacité de sortie, en réalité, est composée de plusieurs éléments:
  • La capacité présente sur le HAT Poe, 
  • Les capacités sur l'alimentation 5V du Pi 
  • Et la capacité "réservoir" VBUS (celle présente sur le BUS USB lorsque celui-ci est commuté).
La fréquence de hachage sur le transformateur est relativement basse avec une fréquence d'environ 100 kHz. Elle est même audible.

Lorsque le système est chargé, chaque cycle du hachage doit transférer une quantité relativement importante d'énergie.
Durant chaque cycle, l'étage d'alimentation 5V, et capacités, se déchargent progressivement en fonction de la charge système. Cette décharge intervient plus ou moins vite en fonction du courant consommé sur la Pi et les différents périphériques.
L'étage d'alimentation, et ses capacités, se rechargent ensuite avec le cycle de hachage PoE suivant, ce qui enverra plus d'énergie dans les capacités.

Bien que la tension doivent rester constante (5V), on peut constater que l'énergie disponible dans le circuit varie avec un phénomène de houle ou pompage.
C'est un peu comme remplir une baignoire avec des seaux d'eau alors que celle-ci s'écoule de façon régulière.

A chaque cycle de hachage PoE, il y a une pointe d'intensité (courant assez important) qui est poussé dans les différentes capacités par l'intermédiaire de la diode Schottky du HAT PoE.

Pour couper court à cette longue explication, en plaçant un senseur de courant à l'entrée du hacheur on voit apparaître de grandes pointes de courant (ligne jaune) et l'énergie se fraye un chemin jusque dans les capacités VBUS (réservoir d'énergie du BUS USB). Cela était prévu. Par contre, ce qui ne l'était pas, c'est que le hacheur USB considère ces pointes de courant comme de vrais événements sur-courant (un périphérique énergivore).

Le hacheur est supposé avoir des filtres permettant d'ignorer ces brefs pointes mais la Fondation à découvert qu'une seule des deux versions approuvées du hacheurs faisait ce filtrage correctement.
Courant dans le hacheur (Switch, en jaune) et tension VBUS (en bleu)
Source: RaspberryPi.org
Si cela n'a pas été testé, alors c'est défaillant!
C'est un truisme que d'affirmer que si un aspect de la conception n'est pas testé alors il sera certainement défaillant.

Une longue phase de de test couvrant toutes les configuration, paramètres de fonctionnements et cas d'utilisation sont la seule façon de minimiser le risque de distribuer un produit avec un problème matériel.
Même un matériel relativement simple, il est possible de découvrir des comportement ou bug totalement inattendu. Et même de grande sociétés avec de grandes équipes de développement et laboratoires de tests peuvent rencontrer ce genre de désagrément gênant — atout le monde se souvient du bug FDIV du Pentium?

Comme le précise elle même la fondation, elle à fait plusieurs erreurs en développant la première version du HAT PoE:
  • Les tests de charge USB ont étés effectués sur des cartes équipées avec le hacheur fonctionnant correctement.
  • Le programme de test a été abrégé à cause du retard accumulé.
  • Il n'a pas été demandé aux testeurs de réaliser des essais avec des périphériques énergivores.
La fondation trouve évidemment embarrassant d'avoir mis sur le marché un produit avec une bogue telle que celle-là, mais la leçon est maintenant apprise et il vont améliorer leurs procédures internes pour éviter que cela se reproduise.

La solution
Par chance, il est apparu que ce problème etait facile à régler. La fondation à conçu un filtre L-C pour lisser le courant à la sortie du HAT. Le filtre est réalisé à l'aide de capacités supplémentaires sur l'entrée et la sortie ainsi que l'ajout d'une inductance 4.7µH (sélectionné pour supporter la gamme de courant du PoE Hat et résistance continu appropriée), également une résistance de 330mR en parallèle fournissant l'amortissement.
La fondation à même réalisé un MOD sur un petite carte que l'on monte en mezzanine sur la carte du Hat PoE.
PoE Hat original
Source: RaspberryPi.org
PoE Hat avec correctif réaliser à la main
Source: RaspberryPi.org
PoE Hat avec carte corrective (montée en Mezzanine)
Lorsque le problème du HAT PoE à été confirmé, la fondation à retiré la carte du marché et rappelé tous les exemplaires. Ces dernières ont étés corrigées et la fondation est heureuse d'annoncer que la plupart des Revendeurs Approuvés (Approved Resellers) disposent de la carte corrigée.
La fondation estime que la plupart des personnes ayant expérimenté un problème avec leur carte PoE l'on déjà retournée.
Si vous avez toujours une carte originale et que vous rencontrez ce problème alors prenez contact avec votre revendeur pour procéder à un remplacement.

La fondation remercie les membres de l'équipe d'ingénieurs Raspberry-Pi, son fabriquant partenaire Taijie, les partenaires sous licence, les  Revendeurs Approuvés "Approved Resellers" (dont MCHobby fait partie par l'intermédiaire de Raspi-Shop.be) ainsi que les membres de la communauté  qui ont si gentiment testé les prototypes corrigés. Cela n'aura pas été le lancement de produit le plus simple de l'histoire de la Fondation Raspberry-Pi mais, heureusement, la leçon apprise servira dans le future.