Meetprogramma voor verbruik op een USB-poort?

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • ieder1
  • Registratie: Oktober 2003
  • Laatst online: 07-11-2024
Mijn vraag is eigenlijk heel simpel: hoe kan ik het verbruik meten van apparaten die ik via een USB-poort op de laptop oplaad?

Doel: ‘slijtage’ van de accu’s voor mijn sony camera meten.

Natuurlijk kan ik een usb-meter kopen maar de kwaliteit hiervan is niet altijd best en waarom zou ik iets kopen voor een taak die mijn eigen laptop waarschijnlijk net zo goed, en gebruiksvriendelijker, uit kan voeren.

Iemand ervaring? Alle suggesties zijn welkom. :)

the trick is to keep breathing

Beste antwoord (via ieder1 op 11-10-2019 10:58)


  • naarden 4ever
  • Registratie: Juni 2010
  • Laatst online: 09-05 14:14
Ik weet dat ik wat laat ben en dat er al een oplossing is, maar dit topic vonkte wat nieuwsgierigheid bij mij. Want er waren mij een paar dingen opgevallen waar ik benieuwd naar werd hoe dat nou werkt.

Het is inderdaad waar dat moederborden (met de USB 2.0 standaard of hoger gecertificeerd) allemaal zowel een overvoltage als een overcurrent protection ingebouwd hebben om te voorkomen dat een piekspanning (door bijvoorbeeld statische elektriciteit) of een piekstroom (door bijvoorbeeld kortsluiting) schade aanricht aan de interne componenten van een computer. Ik ben even in de standaard gedoken en het moet zelfs zo zijn dat die bescherming vaker dan eens te gebruiken is (self-resetting), omdat de kans dat een statische schok over wordt gebracht best aanzienlijk is en het toch jammer zou zijn als dat elke keer voor het einde van je USB-poort of zelfs controller zou zorgen.

Ook lijkt het mij duidelijk dat dit een behoorlijk low-level beveiliging is, want de melding van een overcurrent komt vanuit de BIOS. Bovendien wil je dat ook, want vertraging bij een dergelijke beveiliging is funest.

Dus dat is mooi! Maar hoe weet die BIOS nou precies of een USB-poort is kortgesloten of een piekspanning ontvangt? Wanneer geeft die BIOS nou precies een melding? En de belangrijkste vraag om toch bij het topic te blijven: betekent dit dat de stroom wordt gemeten?

Littelfuse is een bedrijf wat zich specialiseert in dergelijke beveiligingen en heeft een hele hoop literatuur en datasheets beschikbaar hierover. In dit document is het referentieontwerp van een dergelijke beveiliging te zien.

Hier is te zien dat VBUS, de +5V van je USB-poort, en de GND, de 0V van je USB-poort, beiden aan 'chassis ground' (metalen frame van je laptop/desktop/andersoorts apparaat) hangen via elementen ML1 resp. ML2. Dit zijn componenten met typeaanduiding "V5.5MLA0603". De datasheet beschrijft:
The MLA Series family of transient voltage surge suppression devices is based on the Littelfuse Multilayer fabrication technology. These components are designed to suppress a variety of transient events, including those specified in IEC 61000-4-2 or other standards used for Electromagnetic Compliance (EMC). The MLA Series is typically applied to protect integrated circuits and other components at the circuit board level.
ML1 en ML2 zijn dus eenvoudige varistors die gaan geleiden wanneer de spanning een bepaalde piekwaarde overschrijdt. De werking hiervan is vergelijkbaar met een Zener-diode, die begint te geleiden in de sperrichting wanneer de doorslagspanning wordt overschreden. Dit zorgt ervoor dat een plotselinge piek in spanning op de +5V of de GND van de USB-poort wordt afgelaten via dit component. Dit zorgt ervoor dat, zelfs met een statische schok (eenvoudig >15.000V) de spanning op GND en +5V nooit boven de 17.5V zal komen, waardoor de interne elektronica dus is beschermd.

Tevens zit er op de VBUS, oftewel de +5V voor USB, een PTC. Een PTC is een weerstand met een Positieve Thermische Coëfficient, wat wilt zeggen dat, naarmate de temperatuur toeneemt, de weerstand toeneemt (en dus de hoeveelheid stroom wordt beperkt). De gebruikte PTC zal bij normaal gebruik (tot 500mA) gewoon werken en geen toename van de weerstand veroorzaken. Pas wanneer deze boven de grenswaarde uitkomt (Atrip), zal de weerstand snel toenemen en de stroom worden beperkt.

Tot slot zit er een beveiliging op de datalijnen van de USB-poort, ook dit is een ESD-suppressor om piekspanning door statische schokken af te wenden naar het chassis van het apparaat, maar dan specifiek met een lage capaciteit omdat een element met een hoge capaciteit de snelle wisselingen van de spanning in de datastromen die je met USB hebt kan verstoren (rise/fall time van het signaal). De datalijnen zijn beide zeer hoog impedant (hoge ingangsweerstand, weinig stroom) en zullen daarom sowieso niet snel te maken hebben met een enorme piekstroom omdat de ingangsweerstand hoog is (15KOhm +/- 5%)


Dit wetende deed mij vermoeden dat de USB-controller geen mogelijkheid heeft om direct een stroom te deduceren, maar wel dat de spanning die de USB-host aan het via de bus van energie voorziene apparaat kan meten. En dat klopt: een (goede!) USB-host-controller heeft een ingang genaamd "VBUS", welke de spanning van VBUS (de +5V draad) meet (zit aangesloten op een analog-digital converter (ADC)). Zodra VBUS zakt onder de grenswaarde (4,4V voor low-voltage toepassingen, 4,75V voor de rest), moet VBUSEN op LOW worden gezet, waardoor de VBUS niet langer wordt gevoed. De overcurrent protection werkt dus op zo'n manier dat de VBUS wordt gemeten met een ADC, en zodra deze te lang (en dan hebben we het over micro- tot milliseconden) onder de grenswaarde blijft, zal deze VBUSEN op laag zetten (vaak zit hier een delay in; daarom dat je een melding in BIOS krijgt dat de computer na x seconden wordt uitgeschakeld), waardoor een piekstroom wordt beperkt. In de tussentijd zal de PTC opwarmen en de stroom ook gaan beperken om schade te voorkomen.
*ik schreef 'goede!' tussen haakjes omdat dit met goedkope troep uit china helaas vaak genoeg voorkomt (blijkbaar, heb ik ook alleen maar gelezen) dat dit niet het geval is, en dat VBUS een eenvoudige digitale ingangspoort is die aan gaat wanneer deze een logische 'HIGH' ontvangt. Maar een logische 'HIGH' begint vaak al op een lagere spanning en is wisselend per microcontroller. Een chip die met TTL werkt vindt alles boven een 2,7V al 'HIGH' en dat mag daarna zelfs tot 2,0V zakken. Maar realiseer je wel dat als je nog maar 2,0V meet op je VBUS bij je apparaat dat er dus zo'n 3,0V, dus 3/5e deel van het totale vermogen, verloren gaat in de route naar VBUS, waardoor een verbruiker van 750mA gewoon prima mogelijk wordt en dat is dus best gevaarlijk.

Om dus terug te komen op de vraag, kan je zonder meer stroom meten aan een USB-poort? Nee, helaas. Er zit geen shunt-weerstand ingebouwd welke verbonden is aan een ADC waardoor je de hoeveelheid stroom die loopt kunt deduceren aan de hand van de gemeten spanning, daarvoor zal je dus echt een los apparaatje moeten hebben welke dat wel doet. Er is zelfs in de USB-standaard niets opgenomen dat een eventuele inschakeling van overcurrent protection moet worden gecommuniceerd naar het BIOS. In principe kan en wordt het volledig afgehandeld door de USB-host-controller zelf. Dat je dus uberhaupt die melding krijgt is common courtesy van de fabrikant van jouw apparaat.

Heeft dit mij veel te veel tijd gekost vandaag? Absoluut, 100%, zeker weten. Ik had echt bijzonder veel nuttigere dingen kunnen doen dan anderhalf uur lang datasheets afstruinen om het antwoord te vinden op een arbitraire vraag terwijl die niet eens gesteld was maar uitsluitend door mijn nieuwsgierigheid werd gevoed.

[ Voor 7% gewijzigd door naarden 4ever op 10-10-2019 14:44 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • Flake
  • Registratie: Februari 2001
  • Laatst online: 01-11-2024
ieder1 schreef op maandag 7 oktober 2019 @ 11:10:
Natuurlijk kan ik een usb-meter kopen maar de kwaliteit hiervan is niet altijd best en waarom zou ik iets kopen voor een taak die mijn eigen laptop waarschijnlijk net zo goed, en gebruiksvriendelijker, uit kan voeren.
Omdat ie dat niet kan. Dan zou je laptop een current sense weerstand moeten hebben op de power rail, met een ADC om de spanning daarover te meten. Dat heeft 'ie niet.

Acties:
  • 0 Henk 'm!

  • AlphaRomeo
  • Registratie: Maart 2007
  • Laatst online: 22:14

AlphaRomeo

FP PowerMod
Flake schreef op maandag 7 oktober 2019 @ 11:21:
[...]

Omdat ie dat niet kan. Dan zou je laptop een current sense weerstand moeten hebben op de power rail, met een ADC om de spanning daarover te meten. Dat heeft 'ie niet.
Zou toch maar zo wel kunnen, want je laptop, in ieder geval een deel, kan ook een over current meten en daar zelfs netjes een melding van geven in Windows. Dit heb ik in het verleden wel eens gehad met kapotte USB devices. Zo'n elektronische zekering is natuurlijk niet per definitie een nauwkeurige meter, maar voor het zelfde geld kunnen ze in bepaalde laptops tot een paar mA nauwkeurig current weergeven.

Dus ging ik even Googlen, en waarachtig:
https://www.makeuseof.com/tag/check-power-output-usb-port/

Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 00:31

memphis

48k was toen meer dan genoeg.

Grappig, en ik maar zo'n USB meter in een stickvorm gekocht. Werkt ook wel handig want die kan je resetten en dan een totale capaciteit van een lading meten.

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • Flake
  • Registratie: Februari 2001
  • Laatst online: 01-11-2024
AlphaRomeo schreef op maandag 7 oktober 2019 @ 11:35:
[...]


Zou toch maar zo wel kunnen, want je laptop, in ieder geval een deel, kan ook een over current meten en daar zelfs netjes een melding van geven in Windows. Dit heb ik in het verleden wel eens gehad met kapotte USB devices. Zo'n elektronische zekering is natuurlijk niet per definitie een nauwkeurige meter, maar voor het zelfde geld kunnen ze in bepaalde laptops tot een paar mA nauwkeurig current weergeven.

Dus ging ik even Googlen, en waarachtig:
https://www.makeuseof.com/tag/check-power-output-usb-port/
Fair point. Roept wel kanttekeningen bij me op of die meting wel een beetje accuraat is en of iedere pc/laptop dit kan. Die overcurrent meldingen ken ik maar zag ik meer als een stroom threshold die werd overschreden en je hebt daar geen ADC voor nodig, dat kun je ook op andere manieren doen.

Zo'n USB power analyzer heb ik ook. Of die cijfers een beetje accuraat zijn, geen idee. Waarschijnlijk niet, maar het is wel een mooi tooltje om storingen mee te vinden en daarvoor is het geen pre dat die cijfers exact zijn, ik heb er een hoop issues mee kunnen debuggen dus nuttig zijn ze zeker.

Acties:
  • 0 Henk 'm!

  • ieder1
  • Registratie: Oktober 2003
  • Laatst online: 07-11-2024
@AlphaRomeo Bedankt hiervoor! Waarschijnlijk heb ik zelf dan niet helemaal de juiste keywords gebruikt in Google.
En de rest natuurlijk ook, voor het meedenken! :)

the trick is to keep breathing


Acties:
  • 0 Henk 'm!

  • Glenn023
  • Registratie: November 2013
  • Laatst online: 06-05 23:40
AlphaRomeo schreef op maandag 7 oktober 2019 @ 11:35:
[...]


Zou toch maar zo wel kunnen, want je laptop, in ieder geval een deel, kan ook een over current meten en daar zelfs netjes een melding van geven in Windows. Dit heb ik in het verleden wel eens gehad met kapotte USB devices. Zo'n elektronische zekering is natuurlijk niet per definitie een nauwkeurige meter, maar voor het zelfde geld kunnen ze in bepaalde laptops tot een paar mA nauwkeurig current weergeven.

Dus ging ik even Googlen, en waarachtig:
https://www.makeuseof.com/tag/check-power-output-usb-port/
Leuk programma maar doet niet wat OP wilt. Wat dit programma laat zien is de USB Config Descriptor. Dit is een waarde die de fabrikant van het desbetreffende USB apparaat instelt en zou theoretisch overeen moeten komen met de hoeveelheid stroom die het apparaat trekt maar is vaak niet het geval.

Acties:
  • 0 Henk 'm!

  • ieder1
  • Registratie: Oktober 2003
  • Laatst online: 07-11-2024
Ja, ik kom inderdaad niet veel verder dan dat..
Toch lijkt het me wel logisch dat Windows de power consumptie van een poort wel meet (of ergens op een lager niveau in een computer). Maar misschien is dat ingewikkelder om boven water te krijgen dan ik denk?

the trick is to keep breathing


Acties:
  • 0 Henk 'm!

  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

ieder1 schreef op maandag 7 oktober 2019 @ 17:21:
...
Toch lijkt het me wel logisch dat Windows de power consumptie van een poort wel meet (of ergens op een lager niveau in een computer). Maar misschien is dat ingewikkelder om boven water te krijgen dan ik denk?
Het lijkt jouw misschien logisch, maar windows doet dat niet. Linux ook niet trouwens of MacOS.
Het zit gewoon niet in de usb-standaard dus de fabrikanten hebben de benodigde hardware er niet ingebakken

QnJhaGlld2FoaWV3YQ==


Acties:
  • 0 Henk 'm!

  • ieder1
  • Registratie: Oktober 2003
  • Laatst online: 07-11-2024
@Brahiewahiewa In de situatie dat we allemaal nog een vaste pc hadden was de energieconsumptie van een usb-poort niet zo interessant, maar in de huidige situatie van laptops die de hele dag op een acculading mee moeten kunnen en liefst ook nog een smartphone van extra juice moet kunnen voorzien, denk ik dat fabrikanten er echt wel mee bezig zijn en dat dit wellicht op uefi-niveau wel gemeten wordt.
Maar dat is gewoon wat ik logisch vind, niet dat ik inhoudelijk ervan op de hoogte ben.

Edit 19:17, typo.

the trick is to keep breathing


Acties:
  • 0 Henk 'm!

  • Flake
  • Registratie: Februari 2001
  • Laatst online: 01-11-2024
ieder1 schreef op maandag 7 oktober 2019 @ 19:05:
...denk ik dat fabrikanten er echt wel mee bezig zijn en dat dit wellicht op uefi-niveau wel gemeten wordt.
Nou dat denk ik niet. Het stukje power management voor USB op een moederbord is vrij basic voor zover ik met het blote oog kan zien. Current sensing, converteren en realtime beschikbaar maken voor software ligt niet voor de hand als het niet opgenomen is in de standaard.

Met een usb metertje moet je je doelstelling wel kunnen behalen. Misschien dat de getallen niet helemaal spot on zijn, maar een afname moet duidelijk waarneembaar zijn.

Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 00:31

memphis

48k was toen meer dan genoeg.

Ik heb deze:
https://www.grandado.com/...0hbw4ZEAQYAiABEgLWVvD_BwE

Niet slecht en laat precies zien hoe goed de accu van mijn telefoon is.

Overigens voor Android apparaten is dit een aanbeveling:
https://play.google.com/s...om.gombosdev.ampere&hl=nl

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • ieder1
  • Registratie: Oktober 2003
  • Laatst online: 07-11-2024
Tnx @memphis, geeft de jouwe ook het totale stroomverbruik aan?

Helaas heb ik geen Android, maar het laat wel zien dat ook al is het niet opgenomen in de standaard, het wel wordt geïmplementeerd op devices ( de meeste smartphones laden op via micro-USB en USB-C).
Natuurlijk is een smartphone nog mobieler dan een laptop en is die van de usb-poort afhankelijk voor opladen dus het is wel een andere situatie, maar toch..

the trick is to keep breathing


Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 00:31

memphis

48k was toen meer dan genoeg.

De meter laat in alle hoeken een waarde zien en je kunt de weergave nog iets veranderen.

Voltage, amperage, mAh/Wh en tijd

[ Voor 3% gewijzigd door memphis op 08-10-2019 12:34 ]

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • ieder1
  • Registratie: Oktober 2003
  • Laatst online: 07-11-2024
Ok, tnx. En dan kun je dus met mAh en tijd het opgenomen vermogen uitrekenen.

the trick is to keep breathing


Acties:
  • Beste antwoord
  • +6 Henk 'm!

  • naarden 4ever
  • Registratie: Juni 2010
  • Laatst online: 09-05 14:14
Ik weet dat ik wat laat ben en dat er al een oplossing is, maar dit topic vonkte wat nieuwsgierigheid bij mij. Want er waren mij een paar dingen opgevallen waar ik benieuwd naar werd hoe dat nou werkt.

Het is inderdaad waar dat moederborden (met de USB 2.0 standaard of hoger gecertificeerd) allemaal zowel een overvoltage als een overcurrent protection ingebouwd hebben om te voorkomen dat een piekspanning (door bijvoorbeeld statische elektriciteit) of een piekstroom (door bijvoorbeeld kortsluiting) schade aanricht aan de interne componenten van een computer. Ik ben even in de standaard gedoken en het moet zelfs zo zijn dat die bescherming vaker dan eens te gebruiken is (self-resetting), omdat de kans dat een statische schok over wordt gebracht best aanzienlijk is en het toch jammer zou zijn als dat elke keer voor het einde van je USB-poort of zelfs controller zou zorgen.

Ook lijkt het mij duidelijk dat dit een behoorlijk low-level beveiliging is, want de melding van een overcurrent komt vanuit de BIOS. Bovendien wil je dat ook, want vertraging bij een dergelijke beveiliging is funest.

Dus dat is mooi! Maar hoe weet die BIOS nou precies of een USB-poort is kortgesloten of een piekspanning ontvangt? Wanneer geeft die BIOS nou precies een melding? En de belangrijkste vraag om toch bij het topic te blijven: betekent dit dat de stroom wordt gemeten?

Littelfuse is een bedrijf wat zich specialiseert in dergelijke beveiligingen en heeft een hele hoop literatuur en datasheets beschikbaar hierover. In dit document is het referentieontwerp van een dergelijke beveiliging te zien.

Hier is te zien dat VBUS, de +5V van je USB-poort, en de GND, de 0V van je USB-poort, beiden aan 'chassis ground' (metalen frame van je laptop/desktop/andersoorts apparaat) hangen via elementen ML1 resp. ML2. Dit zijn componenten met typeaanduiding "V5.5MLA0603". De datasheet beschrijft:
The MLA Series family of transient voltage surge suppression devices is based on the Littelfuse Multilayer fabrication technology. These components are designed to suppress a variety of transient events, including those specified in IEC 61000-4-2 or other standards used for Electromagnetic Compliance (EMC). The MLA Series is typically applied to protect integrated circuits and other components at the circuit board level.
ML1 en ML2 zijn dus eenvoudige varistors die gaan geleiden wanneer de spanning een bepaalde piekwaarde overschrijdt. De werking hiervan is vergelijkbaar met een Zener-diode, die begint te geleiden in de sperrichting wanneer de doorslagspanning wordt overschreden. Dit zorgt ervoor dat een plotselinge piek in spanning op de +5V of de GND van de USB-poort wordt afgelaten via dit component. Dit zorgt ervoor dat, zelfs met een statische schok (eenvoudig >15.000V) de spanning op GND en +5V nooit boven de 17.5V zal komen, waardoor de interne elektronica dus is beschermd.

Tevens zit er op de VBUS, oftewel de +5V voor USB, een PTC. Een PTC is een weerstand met een Positieve Thermische Coëfficient, wat wilt zeggen dat, naarmate de temperatuur toeneemt, de weerstand toeneemt (en dus de hoeveelheid stroom wordt beperkt). De gebruikte PTC zal bij normaal gebruik (tot 500mA) gewoon werken en geen toename van de weerstand veroorzaken. Pas wanneer deze boven de grenswaarde uitkomt (Atrip), zal de weerstand snel toenemen en de stroom worden beperkt.

Tot slot zit er een beveiliging op de datalijnen van de USB-poort, ook dit is een ESD-suppressor om piekspanning door statische schokken af te wenden naar het chassis van het apparaat, maar dan specifiek met een lage capaciteit omdat een element met een hoge capaciteit de snelle wisselingen van de spanning in de datastromen die je met USB hebt kan verstoren (rise/fall time van het signaal). De datalijnen zijn beide zeer hoog impedant (hoge ingangsweerstand, weinig stroom) en zullen daarom sowieso niet snel te maken hebben met een enorme piekstroom omdat de ingangsweerstand hoog is (15KOhm +/- 5%)


Dit wetende deed mij vermoeden dat de USB-controller geen mogelijkheid heeft om direct een stroom te deduceren, maar wel dat de spanning die de USB-host aan het via de bus van energie voorziene apparaat kan meten. En dat klopt: een (goede!) USB-host-controller heeft een ingang genaamd "VBUS", welke de spanning van VBUS (de +5V draad) meet (zit aangesloten op een analog-digital converter (ADC)). Zodra VBUS zakt onder de grenswaarde (4,4V voor low-voltage toepassingen, 4,75V voor de rest), moet VBUSEN op LOW worden gezet, waardoor de VBUS niet langer wordt gevoed. De overcurrent protection werkt dus op zo'n manier dat de VBUS wordt gemeten met een ADC, en zodra deze te lang (en dan hebben we het over micro- tot milliseconden) onder de grenswaarde blijft, zal deze VBUSEN op laag zetten (vaak zit hier een delay in; daarom dat je een melding in BIOS krijgt dat de computer na x seconden wordt uitgeschakeld), waardoor een piekstroom wordt beperkt. In de tussentijd zal de PTC opwarmen en de stroom ook gaan beperken om schade te voorkomen.
*ik schreef 'goede!' tussen haakjes omdat dit met goedkope troep uit china helaas vaak genoeg voorkomt (blijkbaar, heb ik ook alleen maar gelezen) dat dit niet het geval is, en dat VBUS een eenvoudige digitale ingangspoort is die aan gaat wanneer deze een logische 'HIGH' ontvangt. Maar een logische 'HIGH' begint vaak al op een lagere spanning en is wisselend per microcontroller. Een chip die met TTL werkt vindt alles boven een 2,7V al 'HIGH' en dat mag daarna zelfs tot 2,0V zakken. Maar realiseer je wel dat als je nog maar 2,0V meet op je VBUS bij je apparaat dat er dus zo'n 3,0V, dus 3/5e deel van het totale vermogen, verloren gaat in de route naar VBUS, waardoor een verbruiker van 750mA gewoon prima mogelijk wordt en dat is dus best gevaarlijk.

Om dus terug te komen op de vraag, kan je zonder meer stroom meten aan een USB-poort? Nee, helaas. Er zit geen shunt-weerstand ingebouwd welke verbonden is aan een ADC waardoor je de hoeveelheid stroom die loopt kunt deduceren aan de hand van de gemeten spanning, daarvoor zal je dus echt een los apparaatje moeten hebben welke dat wel doet. Er is zelfs in de USB-standaard niets opgenomen dat een eventuele inschakeling van overcurrent protection moet worden gecommuniceerd naar het BIOS. In principe kan en wordt het volledig afgehandeld door de USB-host-controller zelf. Dat je dus uberhaupt die melding krijgt is common courtesy van de fabrikant van jouw apparaat.

Heeft dit mij veel te veel tijd gekost vandaag? Absoluut, 100%, zeker weten. Ik had echt bijzonder veel nuttigere dingen kunnen doen dan anderhalf uur lang datasheets afstruinen om het antwoord te vinden op een arbitraire vraag terwijl die niet eens gesteld was maar uitsluitend door mijn nieuwsgierigheid werd gevoed.

[ Voor 7% gewijzigd door naarden 4ever op 10-10-2019 14:44 ]


Acties:
  • +1 Henk 'm!

  • burrfoot
  • Registratie: September 2014
  • Laatst online: 09-11-2024
naarden 4ever schreef op donderdag 10 oktober 2019 @ 14:29:

Heeft dit mij veel te veel tijd gekost vandaag? Absoluut, 100%, zeker weten. Ik had echt bijzonder veel nuttigere dingen kunnen doen dan anderhalf uur lang datasheets afstruinen om het antwoord te vinden op een arbitraire vraag terwijl die niet eens gesteld was maar uitsluitend door mijn nieuwsgierigheid werd gevoed.
En voor dat heb je mijn eeuwige dankbaarheid verdiend want op basis van aannames antwoorden de wereld inslingeren of vanuit onkunde een hoop poep op een forum slingeren kan iedereen..

Naarden 4 ever for president (of zo)

_/-\o_ ;)

"if you can't fix it with a hammer, try a bigger hammer"


Acties:
  • 0 Henk 'm!

  • Flake
  • Registratie: Februari 2001
  • Laatst online: 01-11-2024
burrfoot schreef op donderdag 10 oktober 2019 @ 15:25:
[...]


En voor dat heb je mijn eeuwige dankbaarheid verdiend want op basis van aannames antwoorden de wereld inslingeren of vanuit onkunde een hoop poep op een forum slingeren kan iedereen..

Naarden 4 ever for president (of zo)

_/-\o_ ;)
Wie heb jij in dit draadje foute info zien geven? Dat gebeurt regelmatig op dit forum en de stamgasten hier weten wel dat ik daar de vloer mee aanveeg als ik dat tegenkom, maar daar is in dit draadje geen sprake van ;)

Acties:
  • 0 Henk 'm!

  • SuperKris
  • Registratie: Juni 2010
  • Laatst online: 07-05 12:44
naarden 4ever schreef op donderdag 10 oktober 2019 @ 14:29:
Ik weet dat ik wat laat ben en dat er al een oplossing is, maar dit topic vonkte wat nieuwsgierigheid bij mij. Want er waren mij een paar dingen opgevallen waar ik benieuwd naar werd hoe dat nou werkt.

Het is inderdaad waar dat moederborden (met de USB 2.0 standaard of hoger gecertificeerd) allemaal zowel een overvoltage als een overcurrent protection ingebouwd hebben om te voorkomen dat een piekspanning (door bijvoorbeeld statische elektriciteit) of een piekstroom (door bijvoorbeeld kortsluiting) schade aanricht aan de interne componenten van een computer. Ik ben even in de standaard gedoken en het moet zelfs zo zijn dat die bescherming vaker dan eens te gebruiken is (self-resetting), omdat de kans dat een statische schok over wordt gebracht best aanzienlijk is en het toch jammer zou zijn als dat elke keer voor het einde van je USB-poort of zelfs controller zou zorgen.

Ook lijkt het mij duidelijk dat dit een behoorlijk low-level beveiliging is, want de melding van een overcurrent komt vanuit de BIOS. Bovendien wil je dat ook, want vertraging bij een dergelijke beveiliging is funest.

Dus dat is mooi! Maar hoe weet die BIOS nou precies of een USB-poort is kortgesloten of een piekspanning ontvangt? Wanneer geeft die BIOS nou precies een melding? En de belangrijkste vraag om toch bij het topic te blijven: betekent dit dat de stroom wordt gemeten?

Littelfuse is een bedrijf wat zich specialiseert in dergelijke beveiligingen en heeft een hele hoop literatuur en datasheets beschikbaar hierover. In dit document is het referentieontwerp van een dergelijke beveiliging te zien.

Hier is te zien dat VBUS, de +5V van je USB-poort, en de GND, de 0V van je USB-poort, beiden aan 'chassis ground' (metalen frame van je laptop/desktop/andersoorts apparaat) hangen via elementen ML1 resp. ML2. Dit zijn componenten met typeaanduiding "V5.5MLA0603". De datasheet beschrijft:


[...]


ML1 en ML2 zijn dus eenvoudige varistors die gaan geleiden wanneer de spanning een bepaalde piekwaarde overschrijdt. De werking hiervan is vergelijkbaar met een Zener-diode, die begint te geleiden in de sperrichting wanneer de doorslagspanning wordt overschreden. Dit zorgt ervoor dat een plotselinge piek in spanning op de +5V of de GND van de USB-poort wordt afgelaten via dit component. Dit zorgt ervoor dat, zelfs met een statische schok (eenvoudig >15.000V) de spanning op GND en +5V nooit boven de 17.5V zal komen, waardoor de interne elektronica dus is beschermd.

Tevens zit er op de VBUS, oftewel de +5V voor USB, een PTC. Een PTC is een weerstand met een Positieve Thermische Coëfficient, wat wilt zeggen dat, naarmate de temperatuur toeneemt, de weerstand toeneemt (en dus de hoeveelheid stroom wordt beperkt). De gebruikte PTC zal bij normaal gebruik (tot 500mA) gewoon werken en geen toename van de weerstand veroorzaken. Pas wanneer deze boven de grenswaarde uitkomt (Atrip), zal de weerstand snel toenemen en de stroom worden beperkt.

Tot slot zit er een beveiliging op de datalijnen van de USB-poort, ook dit is een ESD-suppressor om piekspanning door statische schokken af te wenden naar het chassis van het apparaat, maar dan specifiek met een lage capaciteit omdat een element met een hoge capaciteit de snelle wisselingen van de spanning in de datastromen die je met USB hebt kan verstoren (rise/fall time van het signaal). De datalijnen zijn beide zeer hoog impedant (hoge ingangsweerstand, weinig stroom) en zullen daarom sowieso niet snel te maken hebben met een enorme piekstroom omdat de ingangsweerstand hoog is (15KOhm +/- 5%)


Dit wetende deed mij vermoeden dat de USB-controller geen mogelijkheid heeft om direct een stroom te deduceren, maar wel dat de spanning die de USB-host aan het via de bus van energie voorziene apparaat kan meten. En dat klopt: een (goede!) USB-host-controller heeft een ingang genaamd "VBUS", welke de spanning van VBUS (de +5V draad) meet (zit aangesloten op een analog-digital converter (ADC)). Zodra VBUS zakt onder de grenswaarde (4,4V voor low-voltage toepassingen, 4,75V voor de rest), moet VBUSEN op LOW worden gezet, waardoor de VBUS niet langer wordt gevoed. De overcurrent protection werkt dus op zo'n manier dat de VBUS wordt gemeten met een ADC, en zodra deze te lang (en dan hebben we het over micro- tot milliseconden) onder de grenswaarde blijft, zal deze VBUSEN op laag zetten (vaak zit hier een delay in; daarom dat je een melding in BIOS krijgt dat de computer na x seconden wordt uitgeschakeld), waardoor een piekstroom wordt beperkt. In de tussentijd zal de PTC opwarmen en de stroom ook gaan beperken om schade te voorkomen.
*ik schreef 'goede!' tussen haakjes omdat dit met goedkope troep uit china helaas vaak genoeg voorkomt (blijkbaar, heb ik ook alleen maar gelezen) dat dit niet het geval is, en dat VBUS een eenvoudige digitale ingangspoort is die aan gaat wanneer deze een logische 'HIGH' ontvangt. Maar een logische 'HIGH' begint vaak al op een lagere spanning en is wisselend per microcontroller. Een chip die met TTL werkt vindt alles boven een 2,7V al 'HIGH' en dat mag daarna zelfs tot 2,0V zakken. Maar realiseer je wel dat als je nog maar 2,0V meet op je VBUS bij je apparaat dat er dus zo'n 3,0V, dus 3/5e deel van het totale vermogen, verloren gaat in de route naar VBUS, waardoor een verbruiker van 750mA gewoon prima mogelijk wordt en dat is dus best gevaarlijk.

Om dus terug te komen op de vraag, kan je zonder meer stroom meten aan een USB-poort? Nee, helaas. Er zit geen shunt-weerstand ingebouwd welke verbonden is aan een ADC waardoor je de hoeveelheid stroom die loopt kunt deduceren aan de hand van de gemeten spanning, daarvoor zal je dus echt een los apparaatje moeten hebben welke dat wel doet. Er is zelfs in de USB-standaard niets opgenomen dat een eventuele inschakeling van overcurrent protection moet worden gecommuniceerd naar het BIOS. In principe kan en wordt het volledig afgehandeld door de USB-host-controller zelf. Dat je dus uberhaupt die melding krijgt is common courtesy van de fabrikant van jouw apparaat.

Heeft dit mij veel te veel tijd gekost vandaag? Absoluut, 100%, zeker weten. Ik had echt bijzonder veel nuttigere dingen kunnen doen dan anderhalf uur lang datasheets afstruinen om het antwoord te vinden op een arbitraire vraag terwijl die niet eens gesteld was maar uitsluitend door mijn nieuwsgierigheid werd gevoed.
Hulde! Mooie samenvatting! _/-\o_

Acties:
  • 0 Henk 'm!

  • burrfoot
  • Registratie: September 2014
  • Laatst online: 09-11-2024
Flake schreef op vrijdag 11 oktober 2019 @ 09:30:
[...]

Wie heb jij in dit draadje foute info zien geven? Dat gebeurt regelmatig op dit forum en de stamgasten hier weten wel dat ik daar de vloer mee aanveeg als ik dat tegenkom, maar daar is in dit draadje geen sprake van ;)
Het is meer een algemene constatering 8) als een op dit topic gespitst antwoord.

Hulde aan Naarden 4 ever evenwel voor het uitermate goed onderbouwde antwoord nog steeds O-)

"if you can't fix it with a hammer, try a bigger hammer"


Acties:
  • +1 Henk 'm!

  • ieder1
  • Registratie: Oktober 2003
  • Laatst online: 07-11-2024
Ik ben zeer onder de indruk en helemaal overtuigd. Dank! d:)b

the trick is to keep breathing


Acties:
  • +1 Henk 'm!

  • naarden 4ever
  • Registratie: Juni 2010
  • Laatst online: 09-05 14:14
Enorm graag gedaan! Was helemaal niet vervelend om weer even diep de materie in te duiken. Is ook alweer een ruime 2,5 jaar geleden sinds ik datacommunicatie heb gehad op de opleiding. :)
Pagina: 1