USB Type-C por dentro: CC pins, Power Delivery e debugging no terminal
24 pinos, 18 fios, 1 conector para governar todos. Mas nem todos os cabos USB-C são iguais. O USB Type-C é o conector mais versátil que alguma vez standardizámos. Transmite dados a 40 Gbps, vídeo 8K, áudio digital, e energia até 240W — tudo pe
24 pinos, 18 fios, 1 conector para governar todos. Mas nem todos os cabos USB-C são iguais.
O USB Type-C é o conector mais versátil que alguma vez standardizámos. Transmite dados a 40 Gbps, vídeo 8K, áudio digital, e energia até 240W — tudo pelo mesmo jack reversível de 8,34 mm × 2,56 mm. Substituiu USB-A, USB-B, Mini e Micro USB e, graças aos modos alternados, serve também de porta para DisplayPort, Thunderbolt e, nalguns telemóveis, áudio digital em vez do jack de 3,5 mm.
Mas esta versatilidade tem um custo: complexidade. Para um developer ou engenheiro que precisa de perceber porque é que um cabo não carrega o portátil, ou porque é que a transferência está lenta, o USB-C é uma caixa preta de protocolos negociais, marcadores eletrónicos e modos alternados.
⬆ Pinout do conector USB Type-C receptacle (vista frontal). 24 pinos dispostos simetricamente.
Os 24 pinos
O conector USB-C tem 24 pinos organizados em duas filas de 12 (A e B), simétricas. Isto permite que o plug seja inserido ao contrário — os pinos são multiplexados internamente.
| Pino | Nome | Função |
|---|---|---|
| A1, B1, A12, B12 | GND | Ground (4 pinos para alta corrente) |
| A4, A9, B4, B9 | VBUS | Alimentação (4 pinos, até 5A) |
| A5 | CC1 | Configuration Channel |
| B5 | CC2 / VCONN | Configuração ou alimentação de cabo ativo |
| A6, A7 | D+, D− | USB 2.0 differential pair |
| A2, A3 | SSTXp1, SSTXn1 | SuperSpeed TX #1 |
| B10, B11 | SSRXn1, SSRXp1 | SuperSpeed RX #1 |
| B2, B3 | SSTXp2, SSTXn2 | SuperSpeed TX #2 |
| A10, A11 | SSRXn2, SSRXp2 | SuperSpeed RX #2 |
| A8 | SBU1 | Sideband Use (Alt Modes) |
| B8 | SBU2 | Sideband Use (Alt Modes) |
Os CC Pins: o cérebro do USB-C
Os dois pinos de Configuration Channel (CC1 e CC2) são o que torna o USB-C inteligente. Eles têm três funções críticas:
- Deteção de orientação — só um dos CC está ativo (ligado ao pull-down do sink). O sistema sabe assim se o plug está ao direito ou ao contrário.
- Role discovery — resistências de pull-up (Rp) vs. pull-down (Rd) determinam quem é DFP (Downstream Facing Port — o host/charger) e quem é UFP (Upstream Facing Port — o device).
- Comunicação USB PD — o protocolo Power Delivery usa o CC como canal de comunicação série (BMC coding) para negociar voltagens, correntes e modos alternados.
Debug Rápido: Se o teu dispositivo não carrega ou não liga, verifica as resistências no CC. Um valor de pull-up (Rp, para 5 V) de 56 kΩ indica default USB (500 mA/900 mA), 22 kΩ indica 1,5 A e 10 kΩ indica 3 A. Cabos danificados muitas vezes quebram a ligação do CC, impedindo qualquer negociação.
USB Power Delivery (USB PD)
O USB PD é um protocolo que permite negociação bidirecional de energia entre source e sink. Substitui a abordagem fixa de 5V do USB clássico por um leque de voltagens e correntes.
Versões atuais do USB PD:
- USB PD 3.0 — até 100 W (20 V × 5 A); a PD 3.1 acrescenta o Extended Power Range (EPR), até 240 W (48 V × 5 A)
- Programmable Power Supply (PPS) — ajuste fino de voltagem em incrementos de 20 mV, essencial para carregamento rápido de baterias
| Perfil | Voltagem | Corrente | Potência |
|---|---|---|---|
| Default USB | 5 V | 0.5-3 A | 2.5-15 W |
| PD Standard Range | 5, 9, 15, 20 V | Até 5 A | Até 100 W |
| PD Extended Range | 28, 36, 48 V | Até 5 A | Até 240 W |
E-Markers: por que cabos não são iguais
Todos os cabos USB-C exceto os mais básicos (USB 2.0 + 3A) contêm um chip E-Marker (Electronically Marked Cable). Este chip comunica as capacidades do cabo ao host via USB PD:
- Comprimento do cabo
- Velocidade máxima suportada (USB 2.0, 5Gbps, 10Gbps, 40Gbps, 80Gbps)
- Corrente máxima (3A ou 5A)
- Se é passivo ou ativo
- Suporte para Alternate Modes (Thunderbolt, DisplayPort)
É por isso que um cabo USB-C de 2€ não carrega o teu portátil a 100W: ou não tem E-Marker, ou o chip declara apenas 3A. O host respeita essa declaração por segurança.
Debugging USB-C no terminal
No macOS e Linux, podes depurar dispositivos USB-C com ferramentas de terminal:
macOS — system_profiler + ioreg
Linux — lsusb + typec
Ferramentas de terceiros
- USB-C Tester — dispositivos hardware com ecrã que mostram voltagem, corrente, protocolo negociado (PPS/PD) e E-Marker data
- Analisadores de protocolo USB PD dedicados, para debugging avançado
- sigrok + fx2lafw — para fazer sniffing lógico do CC com hardware de 20€
Problemas comuns e soluções
| Problema | Causa provável | Solução |
|---|---|---|
| Dispositivo não carrega | Cabo sem E-Marker ou danificado no CC | Trocar para cabo certificado de 5A |
| Carrega devagar | Negociação PD limitada (pull-up de 10kΩ vs 22kΩ) | Usar carregador e cabo compatíveis com o perfil do dispositivo |
| Vídeo não funciona | Cabo não suporta Alternate Mode (DisplayPort/Thunderbolt) | Usar cabo "Full-Featured" certificado |
| Cabo aquece | Corrente acima da especificação do cabo (3A num cabo de 60W) | Não usar — risco de incêndio. Substituir por cabo adequado |
Conclusão
O USB-C é um conector fantástico, mas a sua complexidade exige que developers e engenheiros compreendam os fundamentos: CC pins, E-Markers, USB PD. A maior parte dos problemas do dia-a-dia resolve-se com um bom cabo certificado e um carregador que fale a mesma versão de PD.
Da próxima vez que um cabo USB-C não funcionar como esperas, lembra-te: há um chip E-Marker a dizer ao carregador o que ele pode fazer. E se o cabo não tiver um, a resposta é "nada sem negociar primeiro".
Recursos adicionais
Partilhar
Comentários 0
Ainda sem comentários — sê o primeiro.