
Il sottosistema USB è costituito da diversi blocchi che, insieme, offrono una piena e flessibile funzionalità USB. Il sottosistema USB include un controller conforme USB On-The-Go (il controller specifico dipende dal dispositivo). Le opzioni sono rappresentate da un controller USB a bassa velocità o LS (low speed) e da un controller USB a velocità piena o FS (full speed).
Le famiglie di microcontrollori Kinetis K20 e K60 sono dotate di un controller capace di raggiungere l'alta velocità o HS (high speed). L'opzione HS è supportata utilizzando una interfaccia fisica esterna ULPI. Anche un regolatore USB e un USB DCD (device charger detect, individuazione di un dispositivo di ricarica) fanno parte del sottosistema USB.
Sottosistema USB: controller FS/LS
Il controller USB FS/LS offre comunicazione al dispositivo e l' host USB insieme al supporto per le operazioni On-The-Go. Il controller FS/LS è conforme allo standard USB 2.0 e supporta velocità di trasferimento dei dati sia in full-speed (12 Mbps) che in bassa velocità (1.5 Mbps). Il controller FS/LS va sempre utilizzato con il blocco della ricetrasmittente on-chip FS/LS. La ricetrasmittente on-chip include dei resistori pull down interni sulle linee D+ e D- e un resistore pullup interno sulla linea D+. Questo aiuta a ridurre il numero di componenti esterne necessarie per una connettività USB.
Sottosistema USB: controller ad alta velocità
Il controller USB con capacità di alta velocità (HS) offre comunicazione al dispositivo e all' host USB insieme al supporto per le operazioni On-The-Go. Il controller HS è conforme allo standard USB 2.0 e supporta dispositivi ad alta velocità (480 Mb/s), a piena velocità (12 Mb/s) e operazioni OTG .
Regolatore USB
Il regolatore USB genera una carica energetica da 3,3 V dal VBUS USB o da una batteria ricaricabile. Il regolatore USB è un modulo LDO a tensione lineare che fornisce 3,3 V da una fonte energetica di input che varia da 2,7 V a 5,5 V. L'output di 3,3 volte viene utilizzato per alimentare la ricetrasmittente USB on-chip. Il pin di output (VOUT33), in grado di emettere fino a 120 mA, può essere utilizzato per alimentare i componenti esterni e/o per la fonte principale di energia di un microcontrollore. Questo elimina i costi per LDO esterno.
Individuazione del caricatore per il dispositivo USB
Il modulo USBDCD (USB Device Charger Detect) funziona con la ricetrasmittente USB terra individuare se il dispositivo USB è attaccato ad una porta per la ricarica (sia una porta per la ricarica dedicata che un host di ricarica). Identificando il tipo di porta, il microcontrollore può quindi controllare la quantità necessaria di energia, rendendo così il dispositivo un prodotto di ricarica intelligente. Di solito, un sottosistema USB senza hardware USBDCD riceverebbe solo la corrente minima per la ricarica dal VBUS USB . Il vantaggio è che vengono ottimizzati sia il tempo che la corrente necessari per il caricamento.
Le caratteristiche includono quindi:
-
- uniformità con gli ultimi standard industriali per le specifiche delle batterie USB (specifica per la ricarica, Revisione 1.1.
- Parametri di timing programmabili.
- Compatibilità con sistemi alimentati da: batteria ricaricabile, batteria non ricaricabile, regolatore LDO da 3.3 V alimentato da USB.

Articolo interessante come il microcontrollore di cui è oggetto!! La connettività USB OTG nei microcontrollori della famiglia Kinetis andrebbe confrontata con quella implementata nei pic32 della Microchip…chi la spunterà?? Ancora non ho le competenze tecniche per decretare la migliore implementazione e flessibilità! Di certo, per quanto mi è dato da capire dall’articolo, la Freescale ha sempre cercato di dare il meglio per i propri processori e anche questa volta continua a non smentirsi. Ho tirato in ballo i microcontrollori della Microchip perchè è con quelli che ho maggiore familiarità, ma credo che Kinetis sia un bel pò di passi avanti rispetto alla famiglia PIC32.
Il supporto USB nativo è ormai una caratteristica fornita da molti microcontrollori… la tecnologia va avanti…
La porta seriale configurabile OTG credo sia uguale sia per i Microchip PIC32 che per i Freescale Kinetis, trattandosi di una periferica che segue degli standards, o comunque ci sarà poca differenza.
Il confronto semmai è sul core e sui dispositivi. Freescale ha promesso, con Kinetis di superare i 200 dispositivi! Quindi tutta la flessibilità possibile.
Certo Microchip è diventata famosa per la sua flessibilità e sicuramente sarà una sfida aperta, anche se ho molto da dire riguardo al core.
Mi sono permesso di criticare la scelta Microchip PIC32 di utilizzare un core MIPs quando tutto il mondo sta andando in ARM (Kinetis è un ARM cortex M4).
Questa critica l’ho fatta direttamente al responsabile South Europe di Microchip 🙂 utilizzando le 3domande.
Aspetto con molta curiosità la sua risposta!
Sinceramente anche io non concepisco tantissimo la strategia di Microchip di utilizzare l’architetura MIPS per i microcontrollori a 32bit (possiamo definirla quasi proprietaria dato che come tu stesso hai evidenziato, il mondo intero dei microcontrollori si fonda su architetture Arm) e sono altrettanto curioso di sentire come risponderanno i responsabili di Microchip riguardo a tale scelta progettuale. In attesa di una loro risposta, ti ringrazio per aver condiviso il tuo punto di vista! 😉