Pic Micro, Arduino, Atmel, Microchip, Freescale, Texas Instrument, ecc. Strumenti di sviluppo, firmware e progetti.
Avatar utente
da Gio55
#2732
Salve.

Sto realizzando un host embeded con un Pic 32MX230F064B (prima di passare verso la sperimentazione di altre soulzioni). Con un po' di fatica sono riuscito a impostare le librerie e far girare un esempio per riuscire a gestire un client usb HID. er questo ho importato dalle librerie MLA i seguenti file:
-usb.h
-usb_ch9.h
-usb_common.h
-usb_hal.h
-usb_hal_local.h
-usb_hal_pic32.h
-usb_host.h
-usb_host_hid.h
-usb_host_hid_parser.h
-usb_host_local.h
-usb_pic32.h

Come indiato nell'esempio ho poi importato i file usb_config.h/.c in cui ho inserito un TPL per una "tastiera" e definito le due funzioni che richiamano: UsbHostInit e UsbHostTask (del file usb_host.h).

Provando a collegare qualcosa sulla usb, vedo (in debug) un avanzamento nelle fasi dalla " Main State Machine " (un lungo case of inserito nel file usb_host.h) che fissa in successione tutte le fasi di enumerazione.

Fino a questo punto il processo mi si blocca sul tentativo di leggere l'end point 0 per la configurazione del client usb. Da quel che vedo non riesco a completare la fase " SUBSUBSTATE_WAIT_FOR_GET_DEVICE_DESCRIPTOR_SIZE" appena inviato il comando read per leggere 'end point....

La trasmissione dell'host viene effettuata (con oscilloscopio riesco a vedere qualcosa su D+D-). La risposta del client da, quello che vedo con il debug ("status.bfTransferComplete"), ma non ottengo il successo della trasmissione ("status.bfTransferSuccessful").

p.s. Da come hanno implementato la libreria, per inviare il comando si usa la funzione "_USB_InitControlRead" che richiede l'inirizzo dell' end point 0, l'array con il comando read e l'array in cui memorizzare la risposta.
L'array per il comando e risposta, usato, è lo stesso. Nella fase che non riesco a portare a termine non vedo variare l'array.

Per completezza riporto anche lo schema di connessione che ho realizzato.
Schema.PNG


Come si nota VbusOn e Vbus non sono (per ora) collegati... ma questa sarà un'altra questione....

Ciao e grazie in anticipo!
Vendo

OWON HDS2202S nuovo imballo originale 190.00 eur[…]

Sono comuni interruttori a levetta DPDT. Se le due[…]

Visita il nostro canale telegram