FAVORITAR
FecharPlease login

Usando carregadores USB-PD na sua aplicação

Introdução

As aplicações em sistemas embarcados estão cada vez mais complexas e imprevisíveis. Porém, uma constante é a alimentação de energia. Dentre o mar de possibilidades de fontes e carregadores com diversos padrões de conector (como os plugues coaxiais) e demandas de níveis de potência variáveis, o USB-PD se mostra como uma alternativa de padrão versátil (atende várias aplicações) e confiável (suportado oficialmente pela USB Implementers Forum ou USB-IF).

A tecnologia Power Delivery (PD) permite que a fonte de alimentação forneça tensões discretas em vários níveis (e.g. 5V, 9V, 12V, 15V e 20V) para fornecer uma potência de até 100W por uma conexão USB-C e, em iterações mais recentes do protocolo, permite ajustar níveis de tensão com uma granularidade tão pequena quanto 20mV (tecnologia Programmable Power Supply introduzida pelo USB-PD 3.0). Esse padrão é amplamente implementado em carregadores de smartphones, laptops, tablets, power banks, etc. Isso torna os carregadores USB-PD reutilizáveis: um carregador celular sobressalente é uma fonte de alimentação à mais para a sua aplicação, além de que o padrão de conector será o mesmo (USB-C).

Desafios do USB-PD

O USB-C introduziu uma pinagem bem mais complexa do que o padrão tradicional do USB, como pode ser observado na Figura 1. Apesar de parecer uma quantidade assustadora de pinos, a maioria são duplicados para permitir que o conector funcione igualmente de ambos os lados.

Figura 1 – Pinagem de um conector USB-C. Fonte: Wikipedia.

Em relação ao USB-PD a linha de maior interessante seria a CC (Configuration Channel ou canal de configuração) que possui os pinos CC1 e CC2 duplicados e espelhados para garantir a reversibilidade do conector. Essa linha é responsável por fazer a negociação de potência pelo protocolo PD entre aparelho e carregador, permitindo ajustar o nível de tensão de saída do carregador de acordo com sua disponibilidade e a necessidade do aparelho.

O problema é que o protocolo de negociação não é algo simples de se implementar em um microcontrolador qualquer. Pelo menos não valeria a pena, pois ele possui uma camada física e de protocolo complexas. Em termos de camada física o USB-PD é half-duplex, possui codificação (codificação Biphase Mark Coding), formato típico de pacote (cabeçalho, CRC e tudo mais), etc. Do ponto de vista da camada de protocolo há toda uma biblioteca de comandos para garantir a identificação, requisição, emissão de alertas, etc., durante a negociação de potência. Se tudo isso não for intimidante o suficiente, vale lembrar que a especificação oficial do USB-PD tem mais de 800 páginas. Porém, sempre há um meio de contornar esse tipo de problema.

Soluções comerciais para USB-PD

Circuito integrado para controle do USB-PD

Para se valer dos benefícios do PD não há a necessidade de implementar toda a sua camada física e de protocolo, porque alguém já fez isso para você. Os circuitos integrados de interfaceamento com o USB-PD são extremamente úteis para aproveitar toda a versatilidade do protocolo sem ter que lidar com sua complexidade. Além do mais garantem que a aplicação que os usa fique mais profissional, pois trata-se de circuitos implementados por empresas reconhecidas no mercado. 

Esses chips se mostram uma boa escolha quando precisam integrar um sistema compacto que necessita do PD, mas que não podem alocar recursos computacionais para lidar com a negociação direta ou alocar tempo para implementar a interface. Porém, não existe almoço grátis. Apesar de ser serem compactos, esses chips devem ser configurados e controlados para que funcionem da forma desejada. Antes de tudo é necessário o mínimo conhecimento sobre o funcionamento desses chips.

Vários fabricantes produzem suas soluções integradas para o USB-PD, como: Texas Instruments, ST, Diodes, etc. Também existem várias marcas asiáticas, com produtos como IP2721 da INJOINIC, LDR6328 da Legendary, CH224K da WCH, etc. 

Tomemos o circuito integrado CH224K (datasheet) como exemplo para explicar os modos de configuração. Além dos pinos que se esperam do carregador USB-PD, como CC1, CC2, D+, D- e pinos de alimentação, o CH224K possui três pinos de configuração, chamados CFG1, CFG2 e CFG3. Esse chip suporta os modos de configuração por resistência e por nível lógico. A versão mais simples desse chip é o CH221K (apenas um pino de configuração, CFG) e suporta apenas o modo de configuração por nível de tensão.

O modo de configuração por resistência do CH224K prevê 4 diferentes resistências entre o pino CFG1 e o terra para negociar diferentes níveis de tensão na saída. Vide detalhes na Tabela 1.

Resistência entre CFG1 e GNDTensão negociada
6.8 kOhm9V
24 kOhm12V
56 kOhm15V
Sem conexão20V
Tabela 1 – Modo de configuração por resistência do CH224K.

O modo de configuração por nível de tensão do CH221K é semelhante ao de resistência, com a diferença de que prevê resistores conectados entre o pino de configuração (CFG) e a alimentação do chip (VDD). Vide detalhes na Tabela 2.

Resistência entre CFG e VDDTensão negociada
10 kOhm5V
20 kOhm9V
47 kOhm12V
100 kOhm15V
200 kOhm20V
Tabela 2 – Modo de configuração por nível de tensão do CH221K.

Esses modos são ideais para aplicações em que o nível de tensão de alimentação deve ser estático, pois uma vez os resistores soldados no lugar, não é possível alterar o nível de tensão negociada. A não ser que utilize chaves para alternar entre os resistores, mas isso é nada prático. Contudo, esses modos não são ideais para quando é necessário alterar os níveis de tensão.

Uma solução para isso é o modo de configuração por nível lógico, pois permite que a tensão negociada seja modificada de acordo com o nível lógico dos pinos de configuração. No caso do CH224K, a tabela verdade da Tabela 3 mostra como cada nível de tensão negociada pode ser obtida.

CFG1CFG2CFG3Tensão negociada
1XX5V
0009V
00112V
01115V
01020V
Tabela 3 – Modo de configuração por nível lógico do CH224K.

Isso facilita a integração desse tipo de chip na aplicação, pois um microcontrolador qualquer pode comandar esses níveis lógicos como desejado de forma dinâmica. 

Veja que para negociar 5V na saída não importa o nível lógico dos pinos CFG2 e CFG3, isso significa dizer que uma simplificação lógica nessa tabela verdade pode ser feita para que CFG1 e CFG2 estejam conectados entre si, necessitando que o microcontrolador lide com apenas 2 pinos (CFG1=CFG2 e CFG3), ao invés de 3.

Vale destacar que a depender do chip, ele pode fazer interface com vários outros protocolos de carregamento além do PD, tornando a aplicação compatível com os vários tipos de carregadores do mercado. Alguns protocolos são: Quick Charge (QC) da Qualcomm, Adaptive Fast Charging (AFC) da Samsung, Fast Charging Protocol (FCP) da Huawei, etc. 

USB PD trigger board

Outra solução aos desafios impostos pelo PD são as trigger boards, que são compostas pelos chips de controle do protocolo discutidos anteriormente, mas a maior parte da configuração deles já está estabelecida por chips microcontroladores associados à placa, sendo necessário apenas que a pessoa que esteja operando selecione os níveis de tensão manualmente.

Essa solução não é tão integrada quanto lidar apenas com o chip do USB-PD, pois trata-se de uma placa separada, enquanto o chip dá para incorporar no layout da PCB da aplicação. Também, o funcionamento da placa vai diferenciar de fabricante para fabricante, com alguns optando para configurar os níveis de tensão com botões, outros apenas com ligação e soldagem de fios ou ambos. Isso torna essa solução semelhante ao uso das fontes universais com chaves para alterar a tensão de saída, mas ainda vale destacar o quesito de compatibilidade, pois ainda são usados conectores do tipo USB-C.

No geral são uma opção aceitável para aplicações mais simples que não conseguiriam lidar com o controle direto do chip USB-PD; que não há preocupação com o espaço ocupado; que aceita uma tensão previamente fixada; ou para experimentação e prototipagem com fontes de tensão DC de vários níveis.

Em relação à trigger board, toma-se como exemplo uma placa genérica comumente encontrada em lojas online, como mostra a imagem da Figura 2. Na imagem estão destacados alguns dos componentes principais que constituem uma placa deste tipo (entender a composição da placa contribui para o conhecimento em desenvolver soluções desse tipo), assim temos:

  • Entrada USB-C que, de acordo com o fornecedor, suporta até 5A, que na configuração de tensão máxima de 20V, significa dizer que a placa pode lidar com até 100W;
  • Botão de ajuste da tensão de saída;
  • LEDs que indicam o nível de tensão na saída;
  • Chip que implementa a interface PD com o carregador (neste caso é o CH224K);
  • Chip de controle que lida com a lógica do botão e dos LEDs e com a configuração do chip PD (não é possível identificar o modelo e fabricante, mas a intenção é este seja um controlador simples e barato);
  • Regulador de tensão para converter a tensão de saída de 5~20V para 3.3V para uso nos componentes internos (nessa placa é utilizado um regulador de entrada até 40V);
  • Conexão de saída, que neste caso é um conector do tipo bloco, mas essa mesma placa também é distribuída com conexão USB-A fêmea (seria útil para conectar um cabo USB-A x USB-C adicional para alimentar uma Raspberry Pi, por exemplo);
Figura 2 – USB-PD trigger board (vista superior). Adaptado de: AliExpress.

Mais informações sobre a construção de uma placa desse tipo podem ser encontradas no repositório aberto ATtiny814-USB-PD-Adapter do Github que aborda todo o processo de desenvolvimento, desde a montagem do hardware até o código do firmware do microcontrolador.

O funcionamento da placa da Figura 2 é simples, pois basta pressionar o botão para que seja alterado o nível de tensão negociada. Caso a negociação seja sucedida, o LED daquele nível de tensão permanecerá ligado; se não, o LED ficará piscando, indicando que a tensão desejada não está sendo fornecida na saída. Se a negociação falhou ou a placa foi desconectada da fonte de alimentação e reconectada, a última tensão negociada com sucesso vai permanecer na saída.

Um cuidado a ser tomado ao desenvolver a lógica para esse tipo de placa é a tensão fornecida na saída após uma reconexão. No caso da placa tomada como exemplo ela mantém o último nível de tensão negociado, porém se a pessoa que estiver operando não souber disso ou não lembrar, pode causar pane no sistema por fornecer um nível de tensão maior que o esperado.

Na parte inferior da placa, como pode ser observado na Figura 3, existem alguns pads para serem soldados alguns curtos no intuito de obter configurações mais específicas, essas são:

  • Curto para permitir que apenas a comunicação PD seja feita, portanto, dispensando outros protocolos, como QC;
  • Curto para forçar um nível de tensão específico (e.g. 5V, 9V, 12V, 15V ou 20V);
  • Curto em S1 faz com que o nível de tensão fique bloqueado em um valor e não possa ser modificado pelo botão; 
  • Curto em F1 faz com que a placa inicie com a maior tensão possível, mas reduza e mantenha-se em 5V;
  • Curto em F2 faz com que a placa inicie em 5V, mas aumente e se mantenha na maior tensão possível (contrário de F1);
  • Curto em F1 e F2 causa a tensão a mudar em um ciclo infinito, alternando entre todos os valores suportados;
  • As instruções sobre os curtos entre D+ e D- (DP e DM) não são claras e não são recomendadas, portanto, o teste com essa conexão não foi feito;
Figura 3 – USB-PD trigger board (vista inferior). Adaptado de: Banggood.

Essas configurações são específicas dessa placa e podem variar entre fabricantes. Porém, servem como base para ideias de funcionalidades a serem implementadas em projetos de desenvolvimento desse tipo de placa.

Conclusões

Essa apresentação sobre o USB-PD não foi uma tentativa de eliminar por completo o uso de fontes não USB, pois ainda são extremamente úteis. O objetivo foi apenas mostrar algumas formas de se aproveitar das fontes com o protocolo PD que estão cada vez mais sendo usadas nos aparelhos eletrônicos. Essas fontes não são a solução para tudo, pois ainda possuem vantagens e desvantagens que devem ser levadas em conta antes de serem usadas:

Vantagens:

  • Possibilidade de escolha de vários níveis de tensão automaticamente (chip PD) ou manualmente (PD trigger board) de um carregador USB-PD;
  • Carregadores USB-PD são reutilizáveis em diversos dispositivos eletrônicos (uma fonte USB-PD vai servir para vários propósitos);
  • O protocolo PD pode ser integrado à aplicação com um chip dedicado ao protocolo, eliminando a necessidade de conhecer os detalhes do protocolo (com a diversidade de chips, cabe a pessoa desenvolvedora a julgar qual é o melhor para sua aplicação, se atende os protocolos de carregamento esperados, se pode ser configurado dinamicamente por um microcontrolador, etc.);

Desvantagens:

  • Carregadores USB-PD são mais caros que os normais (quanto maior a potência, diversidade de protocolos e níveis de tensão, maior o preço);
  • Cabos USB-C para USB-C devem ser utilizados para realizar a negociação de potência, pois implementam a linha CC (no geral são mais caros que os cabos normais USB-A x USB-C);
  • Carregadores USB-PD seriam mais úteis em aplicações que requerem mais de 5V, pois na necessidade de apenas 5V um carregador USB não PD já serviria (desde que atenda os critérios de potência);

Referências

Para mais informações, visite os links:

Imagem de capa retirada de Unsplash.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Home » Hardware » Usando carregadores USB-PD na sua aplicação

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS