Wij gebruiken cookies om uw ervaring beter te maken. Om te voldoen aan de cookie wetgeving, vragen we uw toestemming om de cookies te plaatsen. Meer informatie.
Anatomie van een probleem met de productkwaliteit: De PoE-HAT
Deze tekst is afkomstig van de Raspberry Pi foundation, de foundation legt uit wat er precies mis is gegaan.
Wij van SOS verkopen nu al enige tijd de vernieuwde PoE HAT V2
Raspberry Pi PoE HAT
Een van de nieuwe functies van de Raspberry Pi 3 Model B + is de ondersteuning voor IEEE 802.3af Power-over-Ethernet (PoE).
Met deze standaard kan maximaal 13 W vermogen via de twisted pairs in een Ethernet-kabel worden geleverd zonder de overdracht van gegevens te verstoren.
De Raspberry Pi zelf biedt een PoE-compatibele Ethernet-aansluiting en componenten voor circuitbescherming; de elektronica voor vermogensregeling, die te kostbaar en omvangrijk zou zijn om op het moederbord op te nemen, leeft op een afzonderlijke HAT.
Toen we de 3B + aankondigden, onthulden we dat een officiële Raspberry Pi PoE-HAT op de markt was en, na een paar onvoorziene productievertragingen, hebben we deze HAT eind augustus vrijgegeven.
Feedback was en is over het algemeen zeer positief; maar vrij snel begonnen we enkele rapporten te zien van gebruikers die problemen ondervonden.
Het probleem
Het probleem dat zij rapporteerden was dit: bij het aandrijven van bepaalde Raspberry Pi-eenheden via de PoE-HAT, was het niet mogelijk om de volledige nominale stroom van de USB-poorten te trekken.
Onze 5V USB-uitgang, aangeduid met VBUS, wordt via een stroombeperkende schakelaar gevoed door de hoofd 5V-rail.
Deze schakelaar is ontworpen om het systeem te beschermen door kortsluiting, overstroom of omgekeerde spanning te detecteren en de USB-poorten in reactie hierop los te koppelen. Onze stroombeperkende schakelaar is ingesteld op een limiet van iets meer dan 1A.
Ondanks het vermogen van de PoE HAT om tot 2,5 A te leveren, suggereerden de experimenten die we in reactie op de rapporten uitvoerden dat, toen het werd gebruikt om een aantal kaarten te leveren, de USB-voeding met een veel lagere stroom zou trippen. Muizen en toetsenborden werkten prima, maar apparaten met een hogere stroomsterkte, zoals draadloze dongles en harde schijven, zouden mislukken.
Onze eerste theorie was dat de PoE-HAT ruis in de Pi injecteerde via de 5V-rail en dat dit op de een of andere manier de schakelaar van streek bracht. We waren echter in staat om dit uit te sluiten, omdat we geen bewijs vonden van hoogfrequente ruis aan de ingang van de schakelaar. Een andere theorie was dat de fysieke nabijheid van de flybacktransformator met de schakelaar op de een of andere manier ruis inhield. Maar we waren ook in staat om dit uit te sluiten: we hebben aangetoond dat het gedrag aanhield toen de HAT werd verbonden met behulp van een haakse header, die beweegt de vermogenselektronica weg van de Raspberry Pi.
Wat gebeurde er?
De PoE-HAT werkt door de inkomende 48 V van de Ethernet-lijnen om te zetten naar 5 V met behulp van een flyback-transformator. Eenvoudig gezegd wordt de primaire zijde van de transformator over de 48V geschakeld en wordt de energie opgeslagen in de transformator in de vorm van een magnetisch veld.
De primaire wordt dan losgekoppeld en het magnetische veld bezwijkt. Dit veranderende magnetische veld induceert een spanning (geschaald op basis van de verhouding van transformatorwikkelingen) in de secundaire, die wordt gelijkgericht door een schottky-diode en uitgangscapaciteit. Deze uitgangscapaciteit wordt gevormd door de uitgangscondensatoren op de PoE HAT zelf, de condensatoren op de Raspberry Pi 5V-rail en, wanneer de schakelaar aan staat, de VBUS-reservoircondensatoren.
De schakelfrequentie van de terugslagtransformator is relatief laag (~ 100 kHz). Dit betekent dat wanneer het systeem onder belasting staat, elke schakelcyclus een relatief grote hoeveelheid energie moet overbrengen. Tijdens elke cyclus wordt de 5V-rail ontladen volgens de belasting van het systeem en opnieuw opgeladen door de secundaire rug van de flyback, waarbij meer energie in de doppen wordt gedumpt. In elke cyclus wordt een piek van hoge stroom door de uitgangsdiode in de condensatoren geschoven.
Om een lang verhaal kort te maken, toonde een stroomtang op de ingang om te schakelen grote stroompieken, omdat de energie van de terugslag zijn weg vond naar de condensatoren van het VBUS-reservoir. Dit werd verwacht. Het bleek echter dat de switch deze spikes abusievelijk registreerde als echte overstroomgebeurtenissen. De switch moet een filter hebben waarmee korte pieken kunnen worden genegeerd, maar we ontdekten dat slechts één van de twee goedgekeurde versies van de switch dit correct deed.
Als het niet is getest, is het kapot
Het is een truïsme dat als je een aspect van een ontwerp niet test, het zeker wordt gebroken. Degenen onder ons met een Broadcom-achtergrond noemen dit soms de regel van Alan Morgan, na zijn meest enthousiaste voorstander.
Uitgebreide tests over alle configuraties, bedrijfsparameters en use cases zijn de enige manier om de kans te verkleinen dat een product met een hardwareprobleem wordt vrijgegeven.
Zelfs relatief eenvoudige hardware kan je uiteindelijk in de val lokken door een onverwacht probleem of probleem op te lossen.
En zelfs de grote jongens met enorme ontwikkelingsteams en testlaboratoria maken af en toe een puinhoop - herinnert iemand zich de FDIV-bug van Pentium nog?
We hebben verschillende fouten gemaakt met de eerste versie van de PoE-HAT:
- USB-belastingtests werden uitgevoerd met behulp van borden met de werkschakelaar
- Ons praktijktestprogramma werd afgekort omdat het product te laat was
- We hebben niet gevraagd of onze veldtesters gebruikmaken van sterkstroomrandapparatuur (dat waren ze niet)
Het is beschamend om een product met een bug als deze te hebben uitgebracht, maar het is een les die goed is geleerd en we zullen onze interne processen verbeteren om herhaling te voorkomen.
De oplossing
Gelukkig bleek deze bug eenvoudig te repareren.
We hebben een L-C-filter ontworpen om verdere afvlakking toe te passen op de uitgangsstroom van de HAT.
Het filter bestaat uit een beetje extra ingangs- en uitgangscapaciteit en een 4.7μH inductor (gekozen om een geschikte stroomsterkte en DC-weerstand te hebben), evenals 330mR weerstand parallel om demping te bieden.
We konden zelfs de mod inpakken in een kleine mezzanine-printplaat die netjes onder het bord past.
Nadat we hadden bevestigd dat er een probleem was met de PoE-HAT, haalden we het product uit de handel en haalden we de openstaande eenheden terug en verwerkten deze.
Ik wil graag de leden van het technische team van Raspberry Pi, onze contractfabrikanten Taijie, onze licentiepartners en goedgekeurde wederverkopers bedanken, en ook de leden van de community die prototypes van het ontwerp van het vaste bord hebben getest.
Dit was niet de gemakkelijkste productlancering in onze geschiedenis, maar hopelijk hebben de geleerde lessen ons goed voorbereid op de toekomst. "