Panoramica
emUSB-C PD trasforma il cavo in una connessione intelligente, consentendo il rilevamento del tipo di dispositivo collegato, delle capacità di alimentazione, del software USB Host/Device e molto altro. Con la libreria emUSB-C PD di SEGGER, le applicazioni embedded possono gestire facilmente una porta USB-C su qualsiasi dispositivo dotato di un controller USB PD.
emUSB-C PD è in grado di rilevare se un dispositivo collegato è una sorgente (source) o un utilizzatore (sink) di energia, e persino di identificare i ruoli dei dati USB (host/device). Per i dispositivi che utilizzano l’USB-C puramente come fonte di alimentazione o per la ricarica della batteria, supporta funzioni come il “dead battery signaling”, garantendo una gestione affidabile dell’energia anche in condizioni critiche.
La libreria è altamente efficiente, scritta in codice sorgente ISO/ANSI C e dotata di un’API estremamente semplice per un’integrazione immediata. Gli sviluppatori possono configurarla per un footprint di memoria minimo, rendendola ideale per sistemi con risorse limitate. Inoltre, emUSB-C PD supporta l’uso di caricabatterie con tensione di alimentazione variabile, aumentando la flessibilità.
emUSB-C PD può essere utilizzata in combinazione con emUSB-Host e/o emUSB-Device, oppure come soluzione stand-alone per dispositivi che sfruttano l’USB-C solo per l’alimentazione o la ricarica.
Caratteristiche principali
- Role Swap (Scambio di ruolo): Di default, l’host USB è sempre la sorgente di energia e il device è l’utilizzatore. Grazie al role swap, un host può diventare utilizzatore (sink) e un dispositivo USB collegato può diventare la sorgente (source).
- Rilevamento connessione su connettori USB Type-C: La libreria rileva e identifica i dispositivi collegati alle porte USB-C, garantendo compatibilità e funzionalità ottimali.
- Negoziazione dinamica dell’alimentazione fino a 20V 3A: emUSB-C PD consente alle applicazioni di negoziare dinamicamente l’erogazione di potenza, assicurando che i dispositivi ricevano la tensione e la corrente ideali per le proprie esigenze.
Casi d’uso
L’USB-C dispone di linee aggiuntive e può trasmettere molta più potenza rispetto alle precedenti connessioni USB. Questo aiuta gli sviluppatori a soddisfare i requisiti del mandato UE (Direttiva 2014/53/UE), che impone l’uso del cavo USB-C per tutte le apparecchiature elettroniche dotate di ricarica cablata.
- Evitare perdite improvvise di alimentazione: Un dispositivo alimentato a batteria può chiedere al dispositivo collegato di fornire energia quando le proprie batterie iniziano a scaricarsi, evitando interruzioni improvvise della connessione.
- Ricarica più rapida: Con l’USB tradizionale, la potenza è limitata a 5V e 500mA (1.5A nel migliore dei casi). Con l’USB-C PD, il protocollo interroga le capacità del cavo e richiede tensioni e correnti più elevate per ricariche rapide e affidabili.
Come funziona emUSB-C PD
La libreria si compone di due livelli: lo stack di protocollo indipendente dal dispositivo e un driver per gestire l’hardware specifico del target. Entrambi i livelli sono divisi in due moduli:
- Modulo Base: Fornisce l’API e gestisce il rilevamento statico dei pin CC.
- Modulo PD: Responsabile della comunicazione dei pacchetti Power Delivery.
Funzioni dei Pin
Il connettore USB-C ha 24 pin. emUSB-C PD viene utilizzato principalmente per controllare i pin aggiuntivi CC1 e CC2 (Channel Configuration), usati per determinare l’orientamento del cavo, la distribuzione dei ruoli e il controllo della porta.
Utilizzo tipico delle risorse
| Funzione | Codice (Flash) | RAM |
| USB-C OTG (On-The-Go) | 1400 bytes | 220 bytes |
| USB-C PD (Power Delivery) | 5100 bytes | 450 bytes |
| USB-C PD (Solo Sink) | 3800 bytes | 450 bytes |
| USB-C PD (Solo Source) | 3300 bytes | 450 bytes |
Licenze
emUSB-C PD è disponibile sotto vari modelli di licenza per software embedded e viene fornito come pacchetto di codice sorgente. Tutte le licenze prevedono un pagamento una tantum, sono royalty-free e non basate su abbonamento.