Tolerancia de 5V en la entrada de detección VBUS

8

Estoy diseñando un dispositivo alrededor del STM32L476. Mi dispositivo funciona principalmente con baterías, pero tiene un puerto USB que, cuando está enchufado, quiero usarlo como fuente de alimentación alternativa (a través de un regulador de 3.3V) para limitar el consumo de batería. También es posible que el usuario conecte el puerto USB mientras no haya baterías.

Quiero poder detectar cuando el puerto USB está conectado, así que estoy usando PA9 como OTF_FS_VBUS.

La buena noticia : la hoja de datos dice que el pin PA9 es tolerante a 5V.

La mala noticia : los pines tolerantes a 5V parecen ser tolerantes a 5V solo cuando se aplica energía. Hoja de datos §6.2 tabla 18 dice:

Voltaje de entrada máximo en pines FT_xxx: min (VDD, VDDA, VDDIO2, VDDUSB, VLCD) + 4.0V

En mi caso, si no hay baterías y el usuario conecta el puerto USB, hay un tiempo, antes de que se inicie el regulador, durante el cual el voltaje en PA9 será de 5V mientras no se aplica energía en los pines de alimentación de la CPU.

Aún más malas noticias : la inyección actual no está permitida: la hoja de datos §6.2, tabla 19, dice:

Corriente inyectada en FT_xxx: -5 / + 0 (ver nota 4)

Nota 4: VIN> VDDIOx induce una inyección positiva, mientras que VIN <VSS induce una inyección negativa. IINJ (PIN) nunca debe ser excedido.

Por lo tanto, parece que no puedo usar una resistencia simple para limitar el exceso de corriente en PA9 durante el tiempo en que se inicia el regulador. Aparentemente, está prohibida cualquier cantidad de corriente que fluya de VBUS a PA9 antes de que aumente el VDD.

¿Qué hicieron los otros?

Eché un vistazo a numerosos diseños alrededor de chips STM32, mirando sus conexiones VBUS, y parece que no les importa. Conectan VBUS directamente a PA9, o eventualmente a través de una resistencia, pero nunca vi algo más complicado. Pero en su mayoría son tableros de desarrollo, así que supongo que la robustez (¿es una palabra?) No es muy importante. Y generalmente no se alimentan a través del puerto USB, y ciertamente asumen que el usuario no conectará el puerto USB antes de encender la placa.

Cual es mi plan

Poniendo esto entre VBUS en el puerto USB y el pin PA9 de la MCU:

Protección VBUS

Realmente intenté mantenerlo simple. Básicamente, asegura que VUSB_CPU (que es el pin PA9) nunca puede estar por encima de VCPU + 4V (Vz + Vbe), sin consumir energía si está bien.

Mis preguntas principales son : ¿Estoy en lo cierto en mi análisis? ¿Es este circuito una buena solución? ¿Me preocupan las cosas que son irrelevantes? ¿Por qué a nadie más parece importarle este problema potencial?

Pregunta adicional : planeo usar USB OTG. ¿Es eso un problema si hay una resistencia de 4.7k entre el conector y el pin PA9? Supongo que sería si tuviera que usar el pulso VBUS durante SRP, pero este método aparentemente está en desuso. Entonces, ¿soy bueno, sea cual sea el rol (dispositivo / host) de mi dispositivo?

Una última : ¿Cuál es la corriente máxima consumida por el pin de suministro VDDUSB? La hoja de datos especifica, para el periférico USB: 16.4 µA / MHz para el dominio de reloj AHB + 23.2 µA / MHz para el dominio de reloj independiente, pero no sabemos de dónde se extrae (VDD o VDDUSB).

oscuro
fuente
Otra opción de protección PA9 sería colocar un interruptor mos entre los USB + 5v y PA9, y luego conducir la puerta del interruptor con la salida del regulador.
Mark
¿Por qué no usar un divisor de resistencia? 430k y 630k le darán 3.3v en el pin.
b degnan
Pero un divisor de resistencia no resolverá el problema de la inyección. El divisor inyectará 3,3 voltios en el pin antes de que la parte se haya encendido.
Marcar el
Entiendo por la hoja de datos que el pin puede soportar 4v, incluso cuando está apagado (¿es esto correcto?). Por lo tanto, un divisor de resistencia sería una buena solución, pero consumiría energía permanentemente. Olvidé mencionar que tengo una fuerte restricción al respecto.
dim

Respuestas:

4

Vaya con el divisor de resistencia (430k / 620k) en Vbus: esto mantendrá el microcontrolador en especificaciones, y el consumo de corriente parásita no será un problema, ya que se obtendrá exclusivamente de Vbus, no de la batería (que es lo que Asumo que deseas conservar).

ThreePhaseEel
fuente
Estúpido ... Estaba descartando el divisor de resistencia debido al consumo de corriente, pero mi razonamiento era obviamente incompleto. De hecho, no es un problema extraer energía de vbus. Ahora, ¿por qué nadie hace eso en sus juntas? ST en sí (placa de descubrimiento), olimex, ...? Todavía no entiendo ese punto.
tenue
0

Probablemente el método más simple, use una resistencia de alto valor (10-100k) alimentando un condensador más grande (un par de uF o más) para que el voltaje demore en aumentar, no me preocuparía la fracción de un voltio que se acumula a través del condensador mientras el regulador se está iniciando, si el micro tiene protección ESD, entonces las entradas pueden manejar 5-10V por unas pocas decenas de uS

Sam
fuente
Esto suena genial ... pero solo hasta que pienses en lo que sucede cuando se corta la energía. El condensador puede empeorar las cosas, en lugar de tener una resistencia de gran valor: la resistencia no puede proporcionar mucha corriente, pero el condensador cargado sí.
Chris Stratton el
¿podrías conducirlo a través de un pequeño zener? Esa sección de la hoja de datos decía VDD + 4V ¿verdad? Si tuvieras un Zener bajando el riel a menos de VDD + 4V, ¿estaría bien?
Sam
No visualizo bien tu sugerencia de Zener sin un esquema. Pero si la solución tiene la misma complejidad que la mía (3 componentes discretos baratos), no ganaré mucho.
dim
Básicamente: Entrada-> zener-> PA9, zener en serie con la entrada en lugar de una resistencia en serie, zener cae un voltio o dos, por lo que el voltaje en PA9 siempre es un poco más bajo. Si los paneles de desarrollo solo los vinculan, entonces probablemente esté bien, creo que las advertencias podrían aplicarse después de que se encienda el MCU, vea si hay una sección sobre secuenciación de potencia o comportamiento de arranque.
Sam
1
@ Tom ese es mi principal problema en realidad. Lo comprobé, no hacen nada. PA9 está conectado directamente a VBUS en el puerto USB (ni siquiera a través de una resistencia), en su placa de demostración Discovery. Entonces, a menos que me haya perdido algo, esto está en completa contradicción con la hoja de datos. Mi problema no es realmente el circuito de protección en sí mismo. Creo que mi solución, incluso si se puede mejorar, puede hacer el trabajo. Para ser sincero, mi principal problema es simplemente: ¿es todo eso realmente necesario?
tenue