Jak udělat elektronickou signalizaci průtoku dat přes USB?

Ahoj,
před lety jsem pro jedno zařízení s RS232 připojením (počítačový port COM) udělal vizuální signalizaci, kdy přes RS232 tečou nebo netečou data. Signalizace byla velice primitivní, prostě jsem na Rx a Tx přes odpor 1k5 připojil LEDku 2mA, kterou jsem následně připojil na VSS (aspoň myslím). Ledky jsem pak zkoušel otáčet (případně připojit na VDD) a tak dlouho jsem to zkoušel, až při průchodu dat začali blikat. Činnost (komunikace) RS232 to nijak neomezilo a já přesně věděl, kdy do zařízení proudí data a kdy se nic neděje.

Stejnou věc jsem se rozhodl vyzkoušet na USB. Na DATA+ a DATA- jsem přes 1k5 připojoval ledku. Vyzkoušel jsem všechny možnosti - otáčel jsem polaritu LED a připojoval jsem jí na +5V i GND a zkusil jsem jí i připojit mezi DATA+ a DATA- (tedy ne pouze na DATA a na jeden z potenciálů). Nic z toho nefunguje, buď ledka nebliká nebo mi PC hlásí Zařízení USB nebylo rozpoznáno.

Prosím, neví někdo jak na tu signalizaci? Napadlo mě připojit ledku přes unipolární tranzistor (např. MOSFET BS170) ve funkci spínače - Gate připojím na DATA+ nebo DATA-, Source na GND a Drain na katodu LED a její anodu na +5V. Myslíte, že to bude fungovat? Nebo existuje jiný jednoduchý způsob? Hraji si právě s USB a taková to signalizace by se mi moc líbila.

Děkuji vám všem,
Pavel Sopoušek

Z USB to udělat takhle jednoduše nepude, problém je vtom, že přes USB tečou data skoro pořád, takže stejně nepoznáš jestli se něco děje nebo ne, ale jestli by jsem tam chtěl dát tu ledku, tak ji připoj na +5V a zběrnici snímej přes nějakej vysoko impedanční vstup (CMOS logické hradlo) ale jak říkám, bude buď svítit nebo pravidelně blikat a nic s toho nebude poznat.

Aha, takže tam zkusím dát třeba CMOS 4012 (4x NAND). NANDům propojím vstupy a udělám z nich NOT - invertory (které mohu připojit za sebe a ponechat stejnou logickou úroveň) a invertor zkusím připojit na DATA vodič a jeho výstup připojím na LED, kterou připojím anodou přes 1k5 na +5V.

Je mi jasné, že v USB tečou data i v případě, kdy se nic neděje. Říkám si ale, že kdybych takto připojin např. flash disk, tak to občas problikne, ale když začnu kopírovat soubor, tak se to blikání nezastaví. Zkusím to a uvidím, děkuji.

Vzhledem k tomu, že USB je diferenciální sběrnice, tak to nebude zdaleka tak jednoduché, jak si myslíš. Doporučil bych ti, ať to necháš být. To, co možná prošlo u RS232, u USB prostě neprojde.

Raději to nemám zkoušet ve smyslu, že bych mohl oddělat USB? Nebo ve smyslu že to nezprovozním? Zkouším to na starém PC a tam mi riziko oddělení USB nevadí :wink:.

Měl jsem na mysli opravdu riziko poškození portu, případně připojeného zařízení. Jde o to, že problém nemusí mít charakter typu svítí/nesvítí, ale může se projevovat nespolehlivou komunikací. A ta může mít běžně za následek třeba ztrátu dat. Mám s tím docela dost zkušeností.

Poškození USB bych se nebál. USB na rozdíl od COM a LPT něco vydrží. Bylo taky tak dělané. Když Intel, IBM, Microsoft a ostatní zúčastnění vymýšleli univerzální sériovou sběrnici (USB), která měla nahradit spoustu různých sériových a paralelních portů, tak jedna z podmínek byla odolnost. Do COM nebo LPT portu stačilo vložit poškozený kabel a konektor byl rázem nepoužitelný. To se u USB nikdy nestane.

Spíše bych si dělal starosti se zmíněnou spolehlivostí komunikace.

No, teď už je to trochu lepší, ale USB porty běžně padaly jak hrušky. Ale zničit se dají pořád a mnohdy i vadným kabelem

Jj, sám mám v dílně jeden ze čtyř USB zničenej, a to se mi “jen” spojily v kontaktním poli +D a -D (od tý doby si dávám pozor, a v návrhu už je i “header”). Ale napadlo mě, jestli by nešlo donutit nějakej procesor s USB, aby jen “poslouchal” a filtroval, a na základě toho indikoval… Ale nevím přesně, jak USB funguje, třeba to je už z principu nesmysl, zapojit 3 zařízení na USB, co já vím… tak mě prosím vás kdyžtak nemlaťte :smiley: