Newsgroup: it.hobby.elettronica.digitale
Titolo: Notifica periferica USB

Un saluto a tutto il gruppo, vi leggo spesso anche se non scrivo mai...
Siccome il Natale si avvicina, e con esso anche le ferie, approfitto di 
questi periodi per realizzare le idee stravaganti che mi vagano per la mente 
durante la "stagione".. hehehe...
Nella fattispecie, ora sto realizzando una periferica USB "sganciabile".
La mia domanda è la seguente:
Elettricamente parlando, qual'è il segnale che notifica all'interfaccia USB 
(la scheda sul pc) la connessione e/o la disconnessione di una periferica?
In pratica sto realizzando una periferica USB interna al pc, la quale è 
sempre connessa e collegata fisicamente alla porta usb che si trova sulla 
scheda madre.
Ho bisogno però di avere la possibilità di "disconnettere" la periferica.
Ma non a livello software, con l'icona affianco l'orologio... no...
In pratica, devo simulare la disconnessione fisica del connettore, quella 
che provoca il classico suono "bling blong" di Windows XP.
Ma non potendo accedere al connettore ed al cavo (tutti interni al pc) 
volevo utilizzare un interruttore elettrico a chiave che è già presente sul 
frontale esterno.
QUAL' E' il pin che devo interrompere??????
Il segnale USB viaggia sostanzialmente su un cavo schermato a 4 pin: un 
positivo, un tx, un rx, ed un ground.
A rigor di logica, secondo me, devo interrompere il positivo...
Ma non ne sono certo e non trovo le specifiche da nessuna parte.
Io credo che la scheda di interfaccia rilevi una continuità tra positivo e 
negativo, ossia la presenza di un carico resistivo, ed in presenza di questo 
notifichi al S.O. l'arrivo di una nuova periferica USB.
Stessa cosa dovrebbe succedere alla disconnessione, nessun passaggio di 
corrente tra + e - quindi nessuna periferica presente, e conseguente 
notifica al S.O. di disconnessione.
Sbaglio??
Questa è soltanto una mia supposizione, magari completamente sbagliata, 
forse invece è proprio il flusso dati che notifica l'arrivo o l'uscita di 
una periferica...
NON LO SO...
Insomma... quale filo devo interrompere per disconnettere in modo hardware 
una periferica USB?
Tenete presente che ho a disposizione un interruttore ad un polo, quindi mi 
è impossibile interromperne più di uno... :-(
Grazie a tutti per la pazienza di aver letto sin qui, spero tanto che 
qualcuno possa aiutarmi... e con l'occasione vi invio un sincero augurio di 
buon Natale a 360°.
Saluti
B 

Non so cosa di preciso hai connesso al PC, ma se stacchi il positivo, la 
periferica si disconnette di sicuro. Il PC se ne accorge perchè la 
periferica chiaramente non è più in grado di rispondere.
Questo però è un modo molto brusco per fare la cosa. Se per esempio la 
periferica fosse una chiavetta USB, potresti perdere dei dati.

 wrote in message 
news:dodu4n$qoe$1...@nnrp.ngi.it...

Ho molti dischi IDE estraibili su slitta, di cui almeno 3 ne uso 
frequentemente.
Sul pc ho una slitta IDE, e di volta in volta inserisco il disco che mi 
occorre.
Ovviamente, essendo IDE, devo spegnere la macchina, cambiare il disco, e 
riaccendere il computer... :-(
Siccome mi sono rotto le balle di fare tutta sta menata, e non ho intenzione 
di buttare le slitte e gli alloggiamenti che posseggo, ho pensato di 
trasformare il tutto in USB2.
Ho ideato un sistema di modifica della parte fissa della slitta, quella sul 
pc, che funziona perfettamente, e i miei  dischi esterni adesso sono 
diventati tutti USB2. :-)
Lo swap a caldo adesso funziona perfettamente, disattivando la periferica 
USB via software ("disattiva periferica usb") posso estrarre il disco senza 
nessun problema, e reinserendolo in un secondo tempo mi basta riattivare la 
usb che il disco torna disponibile.
Il problema nasce quando cambio disco con uno di diversa dimensione, quindi 
ho una geometria diversa di testine/cilindri/tracce.
La disconnessione software, in questo caso, non funziona bene... il nuovo 
disco non viene configurato e la periferica va in errore! :(
Allora ho provato a cabinet aperto:
stacco lo spinotto usb interno della slitta... sfilo il disco IDE su 
slitta... metto un'altro disco diverso... reinserisco lo spinotto usb...
OPLA'!  In tre secondi il disco è on-line, perfettamente funzionante! :-)
Perdipiù con una velocità stratosferica, perché ha un usb2 tutto per lui... 
ci trasferisco sopra un file da 100MB in tre secondi netti! :-)))
Ergo: per far funzionare bene il tutto devo effettuare una disconnessione 
usb "hardware", perché quella software evidentemente non esegue l'handshake 
usb completo alla successiva richiesta di riattivazione.
Piace l'idea? :-)

 disco non viene configurato e la periferica va in errore! :(
Se è come penso, e l'adattatore ide/usb rimane sempre alimentato, è 
normale che faccia così. Gli adattatori sono fatti per far diventare un 
disco ide come unità esterne, ma sono pensati per lavorare con un solo 
disco alla volta (o almeno windows li gestisce così...). Presumo infatti 
tu abbia aquistato uno di questi box per far diventare i dischi ide 
unità esterne che poi hai cannibalizzato per realizzare la tua slitta.
Se vuoi cambiare il disco al volo si può fare, ma la procedura corretta è:
1) disattivazione software dell'interfaccia per finalizzare le scritture 
eventualmente rimaste in cache
2) disattivazione hardware (va bene interrompere l'alimentazione)
3) estrai il disco
4) inserisci un altro disco
5) riattivi l'alimentazione
E tutto dovrebbe andare

Ringrazio tutti per l'interessamento, ho risolto il dilemma!!! :-)))
Il riconoscimento della periferica avviene tramite l'applicazione di un 
carico resistivo di 1.5 Kohm da applicare ad uno dei due pin del flusso 
dati.
Se il carico viene applicato al pin D+, indica la presenza di una periferica 
usb2.
Se invece è applicato al pin D-, si tratta di una periferica usb1.
Sfilando il cavo usb, la resistenza applicata ad entrambi i pin è 15 Kohm, 
ed è cablata direttamente sull'interfaccia usb.
E' tutto spiegato qui:
http://www.adele.unisa.it/didattica/15/BUS%20SERIALI.pdf
(pagine da 57 a 60)
Quindi, trattandosi di una periferica usb2, mi basterà semplicemente 
"interrompere" il pin dati D+, riportando così il carico al default di 15 
Kohm, per far sì che il S.O. abbia la notifica che periferica è disattivata 
in modalità "hardware"! :-))
Stasera provo, ma sono già sicuro che funzionerà! Sono felice..... :-)))))
Mi basta poco, eh? ;)
B 

 E tutto dovrebbe andare
non va! ho già provato.
va bene soltanto se rimetto lo stesso disco...
comunque ho appena trovato la soluzione, l'ho postata poco fa, stasera la 
provo e poi (se ti interessa) ti farò sapere.
l'unica modifica hardware che dovrò fare è "sfilare" un filo dal 
convertitore usb-ide e portarlo sul frontale della slitta, per interromperlo 
con un interruttore a chiave prima di eseguire l'hot-swap!
ciao, e grazie mille per l'interessamento al mio quesito...
B 

 in modalità "hardware"! :-))
Beh, credo di aver capito cosa vuoi fare, ma mettere le mani sulle linee 
dove viaggiano i dati non mi sembra una grande idea... rischi di non 
riuscire più a sfruttare la velocità dell'usb2.
Io proverei ad aprire un adattatore e vedere se l'asic (il circuito 
integrato che fa tutto il lavoro, progettato ad hoc) prevede un pin di 
reset (direi sicuramente). Poi farei in modo che girando la chiavetta 
per estrarre l'hdd venisse attivato quel segnale di reset. Immagino che 
in questa situazione il pc non riceva alcuna risposta dall'adattatore e 
quindi consideri la periferica scollegata, una volta ripristinata la 
linea di reset tutto verrebbe riconfigurato per il nuovo hdd.
Purtroppo non conosco molto bene l'usb e non sono sicuro del fatto che 
il pc consideri scollegata la periferica (forse non è neanche 
necessario)... come tante cose si fa prima a provare :)
...:::Zmaster:::...

Stasera provo, ma sono già sicuro che funzionerà! Sono felice..... :-)))))
Dovrebbe funzionare, ma tieni presente che il filo che interrompi è percorso da
segnali a frequenza molto alta, centinaia di Mhz, e i disadattamenti di
impedenza che ne deriveranno potrebbero dare problemi di fase ai segnali.
Io proverei almeno a far si che i due fili rimangano della stessa lunghezza, e
ad attorcigliarli assieme il più possibile per ridurre effetti capacitivi.
--
ciao
  Stefano

 impedenza che ne deriveranno potrebbero dare problemi di fase ai segnali.
Questo č verissimo, infatti dovrņ utilizzare un cavo schermato identico, che 
cannibalizzerņ da una prolunga usb della chiavetta.
 

 estrarre l'hdd venisse attivato quel segnale di reset.
Ti ringrazio, mi hai fatto venire un'altra idea!! :-)
Se lo schema dell'università è giusto, dovrei trovare sul circuito stampato 
una resistenza da 1.5 Kohm tra il D+ ed il ground. Mi basterà interrompere 
quella, dal lato del ground, e prolungarla fino al frontale con 
l'interruttore.
La prolunga in questo caso non è interessata al trasferimento dati e non 
dovrebbe generare interferenze, in quanto corrisponde al lato ground (massa) 
della resistenza.
Giusto? 

 Giusto? 
Diciamo che nella comunicazione sarebbe decisamente meno influente.
Non sono ancora convinto che sia la soluzione sia più efficace... se 
l'interruttore facesse contatto male disturberebbe la comunicazione lo 
stesso, magari l'asic non resetta i parametri letti dall'hdd se non gli 
stacchi l'alimentazione... ancora una volta: prova :)
...:::Zmaster:::...

 ...:::Zmaster:::...
Giusto... l'asic.. finché è alimentato mantiene i parametri... :-(
Ho paura ad andare a toccare l'eventuale piedino del reset (ammesso che 
scoprissi qual'è). Non ho né l'attrezzatura adatta per questo tipo di 
interventi, né la preparazione e la sicurezza per farlo.
Finché si tratta di componenti, resistenze, condensatori... ok... ma le 
microsaldature del chip non le tocco!!
Ci rifletterò ancora un po'... comunque sono sicuro che troverò una 
soluzione più indolore, magari facendo delle prove. L'alimentazione, il 
carico resistivo sul D+, tutti i test del caso...
Proverò la prossima settimana, adesso sono troppo impegnato per (indovina 
cosa?)... la ricerca dei regali per natale!!!   :-(((  Me ne mancano ancora 
due o tre...
Comunque ti farò sapere.
Sicuramente non ci sentiremo prima di natale, quindi AUGURI di nuovo.
Ciao
B 

Per chi avesse seguito il thread, dove mi stavo accingendo a trasformare in 
USB2 una slitta interna IDE per harddisk da 3.5", vi comunico che la 
modifica ha funzionato perfettamente!!
Questi sono stati i miei migliori 4,5$ spesi nel 2005!!  :
http://cgi.ebay.it/USB-to-IDE-ATA-Harddisk-CDROM-Adapter-Converter-Cable_W0QQitemZ5844415534QQcategoryZ41994QQcmdZViewItem
Ho semplicemente dissaldato il positivo della usb dal circuito stampato, 
l'ho portato sul frontale della slitta (dove è presente un interruttore a 
chiave), e da lì di nuovo sullo stampato al posto originale. Una modifica 
banale ed idiota!
E da quel momento tutti i miei dischi esterni IDE sono diventati 
istantaneamente USB2 ed *hot-swap* :-))
Adesso per cambiare un disco IDE mi basta girare la chiave, estrarre la 
slitta, inserire l'altra, e rigirare la chiave!
E, non ultimo, la velocità non ne risente:
Anche con dischi veloci (ho un  300GB Maxtor su slitta) la differenza tra 
IDE ed USB2 è inavvertibile.
Grazie a tutti per i preziosi consigli, e buone feste di nuovo.
B.