maurog66 Inserito: 20 ottobre 2021 Segnala Inserito: 20 ottobre 2021 Buongiorno a tutti. Ho progettato e realizzato un hub usb che da una porta upstream (da connettore al PC) si ricavano 4 port downstream per altrettanti device. La funzione dell'hub viene realizzata tramite il Microchip USB2504A. Ciascuna porta downstream ha poi la possibilità di essere attivata o disattivata da un segnale digitale 0-24v fornito da un PLC; quest'ultima attivazione/disattivazione viene realizzata tagliando le linee date tramite uno switch Microchip USB3740B. In generale funziona tutto correttamente con tutti i dispositivi salvo una eccezione: quando ad una porta downstream collego una tastiera industriale che include anche un mouse. In questo caso, alla connessione tastiera e mouse funzionano regolarmente, tuttavia quando disattivo e riattivo il corrispondente port downstream, il sistema operativo Windows 10 non riconosce più le periferiche. Sconnettendo e riconnettendo il cavo USB oppure disalimentando o rialimentando la scheda hub, la periferica torna a funzionare correttamente (viene riconosciuta la tastiera HID e mouse compatibile HID). La cosa strana è che il problema si manifesta solo con PC con so Windows; viceversa, con PC linux non ho alcun problema. Ritengo dunque che dal punto di vista hardware non vi siano problemi. I driver della periferica risultano correttamente aggiornati. Qualcuno avrebbe qualche idea? Grazie.
Livio Orsini Inserita: 20 ottobre 2021 Segnala Inserita: 20 ottobre 2021 4 minuti fa, maurog66 ha scritto: Sconnettendo e riconnettendo il cavo USB oppure disalimentando o rialimentando la scheda hub, la periferica torna a funzionare correttamente (viene riconosciuta la tastiera HID e mouse compatibile HID). E abbastanza ovvio, con queste operazioni si reinizializza il driver che, quasi certamente, si è "impallato" quando è stato disconnesso il dispositivo esterno. 6 minuti fa, maurog66 ha scritto: con PC linux non ho alcun problema. La filosofia di base di Linux è più sicura di quella di Win specie nella gestione della memoria. La causa probabile è proprio una corruzione della memoria dedicata al drive, quando disconnetti il solo dispositivo tastiera+mouse; disconnettendo il cavo dal connettore del PC provochi una reinizializzazione del drive e della memoria dedicata allo stesso.
patatino59 Inserita: 20 ottobre 2021 Segnala Inserita: 20 ottobre 2021 Devi interrompere l'alimentazione, non la linea dati.
Dumah Brazorf Inserita: 20 ottobre 2021 Segnala Inserita: 20 ottobre 2021 (modificato) Perchè non usi i pin PRTPWR (da 1 a 4) dell'USB2504A per spegnere e riaccendere le porte dell'hub? http://ww1.microchip.com/downloads/en/DeviceDoc/00002250A.pdf Modificato: 20 ottobre 2021 da Dumah Brazorf
maurog66 Inserita: 21 ottobre 2021 Autore Segnala Inserita: 21 ottobre 2021 @patatino59: probabilmente dovrei interrompere sia la linea dati che l'alimentazione. Se taglio solo l'alimentazione, alcuni dispositivi (come i touch screen) continuano a funzionare.
maurog66 Inserita: 21 ottobre 2021 Autore Segnala Inserita: 21 ottobre 2021 17 ore fa, Dumah Brazorf ha scritto: Perchè non usi i pin PRTPWR (da 1 a 4) dell'USB2504A per spegnere e riaccendere le porte dell'hub? http://ww1.microchip.com/downloads/en/DeviceDoc/00002250A.pdf In realtà utilizzo i pin PRTPWR connessi ai chip MIC2026. Il fatto è che questa linea è sempre attiva indipendentemente dal fatto che la corrispondente port sia occupata o meno; si disabilita solo in caso di sovraccarico.
maurog66 Inserita: 21 ottobre 2021 Autore Segnala Inserita: 21 ottobre 2021 19 ore fa, Livio Orsini ha scritto: E abbastanza ovvio, con queste operazioni si reinizializza il driver che, quasi certamente, si è "impallato" quando è stato disconnesso il dispositivo esterno. La filosofia di base di Linux è più sicura di quella di Win specie nella gestione della memoria. La causa probabile è proprio una corruzione della memoria dedicata al drive, quando disconnetti il solo dispositivo tastiera+mouse; disconnettendo il cavo dal connettore del PC provochi una reinizializzazione del drive e della memoria dedicata allo stesso. Grazie sig. Livio per la risposta. Avevo pure io ipotizzato una simile conclusione, tuttavia ne ho scoperto una nuova: se ad una delle porte lascio sempre inserito un dispositivo sempre attivo (ad esempio una pen drive), anche la tastiera+trackball funziona regolarmente ad ogni attivazione/disattivazione del ciclo corrispondente. Ripeto, questo purchè la porta cui è connessa la pen drive rimane sempre attiva. Viceversa se anche la la port della pen drive è disattivata quando tento di riattivare la porta della tastiera, quest'ultima non funziona.
Dumah Brazorf Inserita: 21 ottobre 2021 Segnala Inserita: 21 ottobre 2021 (modificato) Hai ragione, sono pin di output non di input. Prova ad aggiungere dei transistor per sezionare anche i 5v in uscita. Modificato: 21 ottobre 2021 da Dumah Brazorf
maurog66 Inserita: 21 ottobre 2021 Autore Segnala Inserita: 21 ottobre 2021 29 minuti fa, Dumah Brazorf ha scritto: Hai ragione, sono pin di output non di input. Prova ad aggiungere dei transistor per sezionare anche i 5v in uscita. Sì già fatto, sezionando i 5v il tutto funziona. Una alternativa sarebbe quella di mettere in "AND" il segnale PRTPWR con il segnale esterno prima di inviarlo al MIC2026 Tuttavia, io sto cercando una soluzione che mi eviti di mettere mano al progetto per evitare le spese aggiuntive dell'attrezzatura per la realizzazione del nuovo PCB. Sono già fuori badget con questo progetto...
Dumah Brazorf Inserita: 21 ottobre 2021 Segnala Inserita: 21 ottobre 2021 Oppure ad ogni attivazione di una porta triggerare il pin di RESET?
maurog66 Inserita: 21 ottobre 2021 Autore Segnala Inserita: 21 ottobre 2021 55 minuti fa, Dumah Brazorf ha scritto: Oppure ad ogni attivazione di una porta triggerare il pin di RESET? Questo comporterebbe una disattivazione temporanea di alcune secondi di tutte le periferiche connesse ai port; anche di quelle che non intendo disattivare. Non è elegante: prova a pensare se durante la scrittura di un file in una pen drive, si manifestasse il reset solo perchè devo disattivare un mouse...
Livio Orsini Inserita: 21 ottobre 2021 Segnala Inserita: 21 ottobre 2021 4 ore fa, maurog66 ha scritto: Ripeto, questo purchè la porta cui è connessa la pen drive rimane sempre attiva. Anche questo rientra nella normalità perchè la porta usb del PC ha sempre un dispositivo connesso e funzionante, quindi c'è colloquio. E quando la porta rimane connessa solo al multiplex che s'impalla perchè non riceve risposte.
Dumah Brazorf Inserita: 21 ottobre 2021 Segnala Inserita: 21 ottobre 2021 Allora potresti sparargli un reset sulla fiducia quando scolleghi l'ultima periferica collegata, o quando ricolleghi la prima.
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora