è necessario implementare stack di periferica come dispositivo CDC ACM (noto anche come porta COM virtuale o VCP). La maggior parte dei fornitori di microcontrollori con supporto USB hanno codice di esempio o note app.
Dato che, il dispositivo sarà simile a una porta COM per quanto riguarda Windows. Alla fine del dispositivo, otterrete blocchi grezzi di dati trasferiti. È possibile implementare un livello di astrazione appropriato per entrambe le interfacce UART e USB per fornire quindi la stessa interfaccia, se necessario.
Un trucco è che i dispositivi USB richiedono un ID fornitore assegnato dal forum dell'implementatore USB, a $5000 fee (corretto 23 luglio 2016). Se hai intenzione di rilasciare il tuo dispositivo in natura, ne avrai davvero bisogno se il tuo dispositivo deve essere riconosciuto e comportarsi correttamente con altri dispositivi. Alcuni fornitori di microcontrollori ti permetteranno di utilizzare l'ID del fornitore per un sottoinsieme di ID prodotto gratuitamente o una tariffa più piccola, ma potrebbero farlo solo se acquistassi quantità significative di dispositivi da essi. Un altro problema è che mentre su OSX o Linux viene riconosciuto un CDC/ACM senza driver aggiuntivi, Windows è più esigente e richiede un file INF per associare lo specifico fornitore USB e l'ID prodotto al driver usbser.sys. Torna all'inizio | Poi si entra nel mondo intero della firma dei driver, che è essenziale se si utilizza Windows Vista 64 o qualsiasi versione di Windows 7. Una firma di firma del codice ti costerà anche dei soldi. Se il fornitore ha fornito un codice VCP di esempio, probabilmente fornirà anche un driver firmato. L'esempio STM32 VCP di STMicroelectronios è anche certificato WHQL, quindi può essere acquisito automaticamente tramite Windows Update.
Quindi il risultato è che per la sperimentazione è possibile farlo se il fornitore fornisce già il codice e un driver firmato (o non si utilizza Windows), ma per implementare un prodotto sono necessari un ID fornitore e una firma del codice certificato. È un po 'un campo minato ad essere onesti.
Un approccio più semplice consiste nell'utilizzare un chip seriale 01DIFTDI USB. Ciò è particolarmente utile per un microcontrollore senza un proprio controller USB, ma la velocità di trasferimento dei dati sarà limitata dai micro e/o dall'interfaccia UART dell'FTDI piuttosto che dalla velocità USB. È possibile utilizzare un chip FTDI in quanto utilizza il VID/PID di FTDI oppure è possibile personalizzarlo con il proprio VID/PID.La personalizzazione ti riporta a dover acquisire un VID e un certificato di firma, ma consente di identificare il tuo dispositivo in modo univoco anziché come una porta seriale generica.
Definitivamente l'utilizzo di un FTDI è il modo migliore per andare. – TJD
FTDI? Spiega per favore. Il mio manager richiede di configurare la periferica USB integrata per operare come UART. Per quanto posso dire, questo non è possibile, ma lui insiste che lo è. –
I chip FTDI convertono UART in USB. Quindi internamente useresti solo la normale periferica UART, ma esternamente ti connetti con USB. Sul lato PC, si ottiene una porta COM virtuale in modo da poter interagire con essa come una normale porta seriale. Questo è molto pulito e facile e il modo in cui tutti lo fanno. Non riesco a immaginare il motivo per cui avresti davvero bisogno di usare la periferica USB del tuo chip. – TJD