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:
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).