Sida 1 av 1

USB-porten som programmerad strömbrytare

Postat: 9 februari 2008, 20:28:56
av DragonsDen
Jag skulle vilja använda PC:ns USB-port som strömkälla till något anslutet tillbehör, och kunna slå av/på programmatiskt.

USB ska ju ge 100 mA utan vidare, så nån handskakning och kommunikation ska väl inte behövas för det. Däremot krävs det ju för att få ut upp till 500 mA, även om man i praktiken lär kunna 'fuska' och dra ut det med utan vidare.

Eftersom 100 mA alltid finns tillgängligt på strömpinnen (VCC), medan jag vill kunna slå det på och av med min kod, så undrar jag hur man kan bör gå till väga. Några alternativa ideer:

1) Slå på/av hela USB-porten, och därmed VCC (om detta överhuvudtaget är möjligt).

2) Skicka signal på datapinnen som via transistor stryper och släpper på VCC. Men frågan är hur utdataströmmen ser ut elektroniskt och om man överhuvudtaget kan låta den vara stabil hög respektive låg på kommando.

3) Använda nån färdig IC som är gjord för att omvandla USB-kommunikation för att switcha på/av strömmen på sin VCC ut.

Postat: 9 februari 2008, 20:41:37
av thepirateboy
Ett sätt borde vara att använda FT232R. Istället för att använda PWREN# borde du kunna använda "CBUS bit bang mode option". "Allows up to 4 of the CBUS pins to be used as general purpose I/O."


Databladet sid 11 och sid 21
http://www.ftdichip.com/Documents/DataS ... FT232R.pdf

Men det kanske finns nåt enklare sätt...

Postat: 10 februari 2008, 19:48:37
av PHermansson
"Som vanligt" svarar jag UBW. Lite overkill kanske, men den kan enkelt styra ett gäng mosfetar som kan slå av/på ström till andra förbrukare.

Postat: 24 februari 2008, 23:46:11
av DragonsDen
Ursäkta att det har dröjt för mig att återkomma. Tackar för rekommendationerna, de verkar mycket intressanta. Jag tror att UBW är overkill för mina behov. FT232R, och liknande kretsar, är utmärkt.
thepirateboy skrev:Ett sätt borde vara att använda FT232R. Istället för att använda PWREN# borde du kunna använda "CBUS bit bang mode option". "Allows up to 4 of the CBUS pins to be used as general purpose I/O."
Din länkade dokumentation är förträfflig!

Benet #PWREN på FT232R fungerar som strömbrytare beroende på tillståndet är suspend eller remote i USB-porten. Så då är det bara frågan om att kontrollera USB-portens suspend/remote.

Efter att ha skummat "USB in a nutshell" och annat jag googlat mig till, så verkar USB-porten själv gå ned i USB suspend om det inte sänds någon data. Å andra sidan verkar det finnas en "keep alive" som förhindrar just detta. Å tredje sidan så kanske allt det där handlade om specifikationer av hur ett USB-device måste fungera för att följa USB-standarden...

Jag är alltså inte helt på det klara över hur man programmatiskt kan förändra USB-portens tillstånd mellan suspend och resume. Är det någon som känner till något om det?

Det är alltså inte någon millisekundprecision jag är i behov av, utan vill bara ha en programmatiskt styrd strömbrytare för användning i "mänsklig tidsupplösning". Därför är väl bit banging inte intressant, utan konfigurationen som den beskrivs på sidan 21 i FT232R-dokumentationen borde vara fullt tillräcklig.