¿De dónde viene la chispa? (un circuito de sistema embebido)

0

Estamos desarrollando un producto de sistema integrado. Como ingeniero sin experiencia, realmente me estoy rascando la cabeza para que nuestro producto sea confiable: temperatura, ESD y etc.

El siguiente diagrama muestra mi circuito:

AyerconectéunpindeMCUcon3.3V(elpuertodeSELECCIÓN,queesunencabezadodedospinesde2.54mm)usandounpuente,cuandoMCUestáencendido,yaparecenchispasenlaconexión.Despuésdeeso,nuestroMCUdejódefuncionarnormalmente.

¿De dónde son las chispas?

  • ¿La conexión de 3.3 V con el pin que tira hacia el suelo puede provocar chispas?

  • Escuché que las chispas solo se pueden generar en ESD de alto voltaje, por ejemplo, sobre 8kV.

  • Tiendo a pensar que las chispas no son causadas por ESD, ya que la misma operación se realizó varias veces durante la misma hora antes de que aparezcan las chispas.

Para la parte del código

Biblioteca: STM32F4xx_StdPeriph_Driver

GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_12; // we are going to use PB6 and PB7
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN;           // set pins to alternate function
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;      // set GPIO speed
GPIO_InitStruct.GPIO_OType = GPIO_OType_OD;         // set output to open drain --> the line has to be only pulled low, not driven high
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;           // enable pull up resistors
GPIO_Init(GPIOC, &GPIO_InitStruct);     //Init PC10, PC12

GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2;
GPIO_Init(GPIOD, &GPIO_InitStruct);     //Init PD2
    
pregunta richieqianle

1 respuesta

6

Las chispas pueden ser creadas por cualquier cantidad de cosas. Ciertamente por alto voltaje; Esto se puede ver cuando toca un pomo de la puerta después de cruzar la alfombra en un día seco :)

Sin embargo, en su caso, no creo que la chispa haya sido causada por este mecanismo. En cambio, si su pin de entrada se configuró como un menú desplegable, creó un cortocircuito entre su suministro de 3.3 V y el suelo. Este cortocircuito causó que una gran cantidad de corriente fluyera, lo que literalmente derritió / vaporizó una parte del circuito. Este material vaporizado es lo que viste como una "chispa".

Al usar el circuito en su diagrama, el pin de entrada siempre debe estar configurado como de alta impedancia ("Hi-Z"). Esto evita que cualquier corriente significativa fluya hacia (o salga) del pin.

Tenga en claro la terminología de "tirar a tierra". Esa frase se usa a veces como la usaste, es decir, cuando el pin está en un nivel bajo (o está siendo "tirado" o "bajo" bajo). Sin embargo, también se usa cuando se hace referencia a resistencias pull-up o pull-down. Con resistencias de pull-up (o pull-down), el pin se tira alto (o bajo) a través de una gran resistencia . Esta resistencia limita la corriente, evitando daños en el circuito.

Las resistencias pull-up (o pull-down) son necesarias para el circuito que se muestra. Lo has hecho correctamente con R314. Estos pueden ser componentes discretos reales (como los usaste), o la mayoría de las salidas de los microcontroladores pueden configurarse para usar pull-ups internos (o pull-down).

Por cierto, cada vez que realice o rompa una conexión eléctrica, existe la posibilidad de una pequeña chispa. Imagina dos conductores en el aire separados por 1 cm. Tomaría aproximadamente 31 kV causar una chispa. Si estuvieran separados solo 0,5 cm, se necesitarían unos 17 kV. Como puede ver, el voltaje de ruptura depende de la distancia.

Cuando conectas dos conductores juntos, estás disminuyendo la distancia de separación hasta que realmente entran en contacto. Eventualmente ocurrirá una chispa, aunque a menudo es demasiado pequeña para detectarla. No es un problema a menos que la chispa sea bastante alta energía.

Curiosamente, la mayoría de los daños por ESD se hacen sin chispas perceptibles. Quizás esto se deba a que las personas no se dan cuenta de que está sucediendo y, por lo tanto, no lo corrigen hasta que es demasiado tarde ...

Editar :

Gracias por publicar tu código. Parece correcto , aunque hay algunas cosas que causan preocupación. Por ejemplo, sus comentarios no coinciden con lo que realmente está sucediendo. ¿Piensas usar PC10 y PC12 (según el código) o PB6 y PB7 (según los comentarios)?

Otro problema es que estás configurando la configuración de salida en Open Drain. Esto no debería importar, ya que la configuración de salida se ignora cuando el pin se establece en una entrada. Pero, si estuvieras experimentando y configurándolo en Salida, entonces causaría este tipo de falla.

Para su información, ha establecido correctamente el pin como una entrada digital (lo que implica una alta impedancia) con este comando: GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN;

Una vez que el pin se ha establecido como entrada, ciertos parámetros se ignoran y generalmente se omiten de su código. En este caso, puede optar por eliminar estas líneas:

GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_OType = GPIO_OType_OD;

Espero que esto ayude!

    
respondido por el bitsmack

Lea otras preguntas en las etiquetas