Segger emUSB-C PD

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:

  1. Modulo Base: Fornisce l’API e gestisce il rilevamento statico dei pin CC.
  2. 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

FunzioneCodice (Flash)RAM
USB-C OTG (On-The-Go)1400 bytes220 bytes
USB-C PD (Power Delivery)5100 bytes450 bytes
USB-C PD (Solo Sink)3800 bytes450 bytes
USB-C PD (Solo Source)3300 bytes450 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.