maurog66 Inserito: 20 ottobre 2021 Segnala Share 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. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 20 ottobre 2021 Segnala Share 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. Link al commento Condividi su altri siti More sharing options...
maurog66 Inserita: 20 ottobre 2021 Autore Segnala Share Inserita: 20 ottobre 2021 Grazie per la risposta. Link al commento Condividi su altri siti More sharing options...
patatino59 Inserita: 20 ottobre 2021 Segnala Share Inserita: 20 ottobre 2021 Devi interrompere l'alimentazione, non la linea dati. Link al commento Condividi su altri siti More sharing options...
Dumah Brazorf Inserita: 20 ottobre 2021 Segnala Share 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 Link al commento Condividi su altri siti More sharing options...
maurog66 Inserita: 21 ottobre 2021 Autore Segnala Share 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. Link al commento Condividi su altri siti More sharing options...
maurog66 Inserita: 21 ottobre 2021 Autore Segnala Share 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. Link al commento Condividi su altri siti More sharing options...
maurog66 Inserita: 21 ottobre 2021 Autore Segnala Share 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. Link al commento Condividi su altri siti More sharing options...
Dumah Brazorf Inserita: 21 ottobre 2021 Segnala Share 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 Link al commento Condividi su altri siti More sharing options...
maurog66 Inserita: 21 ottobre 2021 Autore Segnala Share 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... Link al commento Condividi su altri siti More sharing options...
Dumah Brazorf Inserita: 21 ottobre 2021 Segnala Share Inserita: 21 ottobre 2021 Oppure ad ogni attivazione di una porta triggerare il pin di RESET? Link al commento Condividi su altri siti More sharing options...
maurog66 Inserita: 21 ottobre 2021 Autore Segnala Share 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... Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 21 ottobre 2021 Segnala Share 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. Link al commento Condividi su altri siti More sharing options...
Dumah Brazorf Inserita: 21 ottobre 2021 Segnala Share Inserita: 21 ottobre 2021 Allora potresti sparargli un reset sulla fiducia quando scolleghi l'ultima periferica collegata, o quando ricolleghi la prima. Link al commento Condividi su altri siti More sharing options...
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