Implementazione USB su un PIC 18F2550 utilizzando un'interfaccia HID generica . Ho configurato la configurazione del profilo HID per avere un singolo messaggio a 64 byte per ingressi e uscite.Domanda protocollo HID USB
Ora è fondamentalmente di lavoro. Il dispositivo registra OK con Windows. Posso trovarlo nel mio programma sul PC e posso inviare e ricevere dati ad esso. Il problema è tuttavia: i messaggi dal PC al PIC vengono troncati alla dimensione del buffer degli endpoint EP0.
Prima di eseguire il debug troppo oltre, voglio provare a chiarire la mia comprensione dei protocolli USB qui e controllare che ho capito bene.
supponga che il buffer di ingresso EP0 è di 8 byte. Mi risulta che il PC alla fine invierà un pacchetto di controllo che è 8 byte. In c'è la lunghezza in byte dei dati da seguire. E poi invierà una sequenza di pacchetti di dati da 8 byte e la fine del PIC dovrà riconoscerli ciascuno.
È a mia conoscenza che la fine del PC sappia quanto grande possa essere ciascun pacchetto guardando nel campo della dimensione massima del pacchetto nel descrittore del dispositivo e dividerà il messaggio di conseguenza in più pacchetti di dati.
Prima di andare a cercare più ore al codice, qualcuno può confermare che questo è sostanzialmente corretto? Che se la dimensione del buffer EP0 è di 8 byte, il PC dovrebbe saperlo a causa del campo di configurazione che ho menzionato sopra e inviare più pacchetti di dati?
Se faccio il mio buffer di ricezione sui byte PIC 64, ottengo 64 byte del messaggio che è sufficiente per le mie esigenze, ma non mi piace non capire perché non funziona con buffer piccoli e uno giorno probabilmente avrò bisogno di loro comunque.
consigli o informazioni sarebbe il benvenuto.