Tolerância de 5V na entrada de detecção VBUS


8

Estou projetando um dispositivo em torno do STM32L476. Meu dispositivo é alimentado principalmente por bateria, mas possui uma porta USB que, quando conectada, quero usar como fonte de energia alternativa (por meio de um regulador de 3,3V) para limitar o consumo de bateria. Também é possível que o usuário conecte a porta USB enquanto não houver baterias.

Quero sentir quando a porta USB está conectada, por isso estou usando o PA9 como OTF_FS_VBUS.

A boa notícia : a folha de dados diz que o pino PA9 é 5V tolerante.

A má notícia : pinos tolerantes a 5V parecem realmente tolerantes a 5V somente quando a energia é aplicada. A ficha de dados §6.2 da tabela 18 diz:

Tensão máxima de entrada nos pinos FT_xxx: min (VDD, VDDA, VDDIO2, VDDUSB, VLCD) + 4,0V

No meu caso, se não houver baterias e o usuário conectar a porta USB, haverá um tempo antes do regulador iniciar, durante o qual a tensão no PA9 será de 5V enquanto nenhuma energia for aplicada nos pinos de alimentação da CPU.

As notícias ainda mais ruins : a injeção atual não é permitida: datasheet §6.2, tabela 19, diz:

Corrente injetada em FT_xxx: -5 / + 0 (consulte a nota 4)

Nota 4: Uma injeção positiva é induzida por VIN> VDDIOx enquanto uma injeção negativa é induzida por VIN <VSS. IINJ (PIN) nunca deve ser excedido.

Parece que não posso usar um resistor simples para limitar o excesso de corrente no PA9 durante o tempo em que o regulador é iniciado. Qualquer quantidade de corrente que fluiria do VBUS para o PA9 antes do VDD aumentar é aparentemente proibida.

O que os outros fizeram?

Dei uma olhada em vários designs em torno dos chips STM32, observando suas conexões VBUS, e eles não parecem se importar. Eles conectam o VBUS diretamente ao PA9 ou, eventualmente, através de um resistor, mas nunca vi nada mais complicado. Mas na maioria são placas de desenvolvimento, então acho que a robustez (isso é uma palavra?) Não é muito importante. E eles geralmente não são alimentados pela porta USB e certamente assumem que o usuário não conectará a porta USB antes de ligar a placa.

Qual é o meu plano?

Colocando isso entre o VBUS na porta USB e o pino PA9 do MCU:

Proteção VBUS

Eu realmente tentei manter as coisas simples. Basicamente, garante que o VUSB_CPU (que é o pino PA9) nunca possa estar acima de VCPU + 4V (Vz + Vbe), sem consumir energia se estiver OK.

Minhas principais perguntas são : Estou certo em minha análise? Este circuito é uma boa solução? Estou me preocupando com coisas que são irrelevantes? Por que mais ninguém parece se importar com esse problema em potencial?

Pergunta adicional : pretendo usar o USB OTG. Isso é um problema se houver um resistor de 4,7k entre o conector e o pino PA9? Eu acho que seria se eu tivesse que usar o VBUS pulsando durante o SRP, mas esse método está aparentemente obsoleto. Então, eu sou bom, qualquer que seja o papel (dispositivo / host) do meu dispositivo?

Uma última : qual é a corrente máxima consumida pelo pino de alimentação do VDDUSB? A folha de dados especifica, para o periférico USB: 16,4µA / MHz para o domínio do relógio AHB + 23,2µA / MHz para o domínio do relógio independente, mas não sabemos de onde ele é desenhado (VDD ou VDDUSB).


Outra opção de proteção do PA9 seria colocar um comutador mos entre os USB + 5v e o PA9 e, em seguida, acionar a porta do comutador com a saída do regulador.
Mark

por que não usar um divisor de resistor? 430k e 630k fornecerão 3,3v no pino.
precisa saber é

Mas um divisor de resistor não resolverá o problema da injeção. O divisor injeta 3,3 volts no pino antes que a peça seja ligada.
Mark

Entendo a partir da folha de dados que o pino pode suportar 4v, mesmo quando desligado (isso está correto?). Portanto, um divisor de resistor seria uma boa solução, mas consumiria energia permanentemente. Eu esqueci de mencionar que tenho uma restrição apertada sobre isso.
dim

Respostas:


4

Vá com o divisor de resistor (430k / 620k) no Vbus - isso manterá o microcontrolador em especificações e o consumo de corrente parasita não será um problema, pois será originado exclusivamente do Vbus, não da bateria (que é o que Eu suponho que você deseja conservar).


Me estúpido ... Eu estava descartando o divisor do resistor por causa do consumo atual, mas meu raciocínio estava obviamente incompleto. De fato, não é um problema extrair energia do vbus. Agora, por que ninguém faz isso em seus quadros? ST em si (placa de descoberta), olimex, ...? Eu ainda não entendo esse ponto.
dim

0

Provavelmente, o método mais simples, use um resistor de alto valor (10-100k) alimentando um capacitor largish (par de uF ou mais), para que leve tempo para a tensão aumentar, não me preocuparia com a fração de volt que se acumula no capacitor enquanto o regulador está inicializando, se o micro tiver proteção ESD, as entradas podem suportar 5-10V por algumas dezenas de uS


Isso parece ótimo ... mas apenas até você pensar no que acontece quando a energia é removida. O capacitor pode realmente piorar as coisas, do que apenas ter um resistor de grande valor - o resistor não pode fornecer muita corrente, mas o capacitor carregado pode.
Chris Stratton

você poderia dirigi-lo através de um pequeno zener? Essa seção da folha de dados dizia VDD + 4V, certo? Se você tivesse um zener baixando o trilho para menos de VDD + 4V, tudo bem?
Sam

Não visualizo bem sua sugestão zener sem esquemático. Mas se a solução tiver a mesma complexidade que a minha (3 componentes discretos baratos), não vou ganhar muito.
dim

Basicamente: Entrada-> zener-> PA9, zener em série com a entrada em oposição a um resistor em série, o zener cai um volt ou dois, portanto a tensão no PA9 é sempre um pouco menor. Se as placas de desenvolvimento as amarrarem, provavelmente está tudo bem, acho que os avisos podem ser aplicados depois que o MCU for ligado, veja se há uma seção sobre seqüenciamento de energia ou comportamento de inicialização.
Sam

11
@ Tom esse é o meu principal problema, na verdade. Eu verifiquei, eles não fazem nada. O PA9 é conectado diretamente ao VBUS na porta USB (nem mesmo através de um resistor), na placa de demonstração Discovery. Portanto, a menos que eu tenha perdido alguma coisa, isso está em completa contradição com a folha de dados. Meu problema não é realmente o circuito de proteção em si. Penso que a minha solução, mesmo que certamente possa ser melhorada, pode fazer o trabalho. Para ser sincero, meu principal problema é apenas: tudo isso é realmente necessário?
dim
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.