¿Resistencia desplegable en la salida de la MCU?

0

Estoy usando una MCU para controlar un conjunto de SSR, y cada vez que reinicio la MCU, las salidas que he adjuntado a las SSR son altas temporalmente. Sé que una resistencia pullup / pulldown puede evitar que una entrada CMOS "flote", pero ¿puedo hacer lo mismo para una salida? Intenté colocar una resistencia de 47k entre la salida y el suelo, pero eso no cambió el comportamiento que estoy viendo. ¿Qué más puedo probar?

Le pregunté al vendedor, y él sugiere un lanzamiento de 1k en lugar del de 47k, como shorted.neuron sugiere. Sin embargo, parece que hay mucha corriente, dado que voy a tener al menos 16 de estos productos. Puede ser cierto que algo en el medio también funcione, pero debe ser posible una solución más elegante.

    
pregunta Mark

5 respuestas

1

ya que su MCU elevará sus salidas durante el reinicio, puede hacer que eso esté bien si conecta la salida a un pequeño transistor PNP y levanta su base. Luego, cuando desea activar el SSR, el PNP baja. Lo mismo se puede hacer con FET de canal p, por supuesto.

No sé mucho acerca de los SSR, pero en mi opinión parece que los SCR son un poco tercos a veces. Pruebe ~ 4.7k hacia arriba o hacia abajo. Si estás en Port0, donde el desplegable está bien, es posible que solo necesites bajar un poco más.

    
respondido por el shorted.neuron
6

Al reiniciarse, un microcontrolador siempre establece la entrada / salida de todas sus entradas y salidas, por lo que se trata de una alta impedancia. La razón es que de esta manera puede forzar un nivel conocido subiendo o bajando, incluso antes de que el microcontrolador haya inicializado la E / S, de modo que no pueda activar involuntariamente algún dispositivo externo, como su SSR.

Al parecer, no funciona como se esperaba en tu situación. Llamo error de software en la rutina de inicialización. Asegúrese de establecer la salida baja antes de configurar el pin de E / S para la salida.

    
respondido por el stevenvh
4

No dijiste qué procesador estás usando, pero lo más probable es que se encienda con pines en el modo de alta impedancia. El despegue debería haber cuidado de esto. Incluso sin un desplegable, es prácticamente imposible que una falla de energía acoplada capacitativamente conduzca la línea lo suficientemente alta con suficiente corriente para encender el LED en el relé de estado sólido.

Eso significa que el firmware está causando que la salida sea alta durante la inicialización. Asegúrese de que la rutina de inicialización establezca el estado de salida bajo antes configurándolo en baja impedancia (modo de salida). Hay otras formas de arruinar esto también. Quizás pueda detectar el error al pasar por el código de inicialización.

    
respondido por el Olin Lathrop
1

Es un error de software. Está describiendo que el reinicio en la MCU con alimentación provoca un cambio inesperado en las salidas, incluso cuando utiliza resistencias desplegables.

Vuelva a leer la hoja de datos y venga con la secuencia de inicialización adecuada para los resultados.

  • Revalidar desde la hoja de datos, si el estado inicial es el 3er estado
  • Valide primero el estado del pin + valor + dirección esperados
  • Si falla, entra en pánico
  • Asignar valor de salida
  • Asignar dirección de pin
  • Asignar estado de salida habilitado
  • Pase el tiempo fijo pequeño para permitir que el valor físico se asiente en el valor asignado
  • Compruebe si el valor ha llegado en la entrada de lectura de pin, que es una salida al mismo tiempo
  • Si falla, entra en pánico
  • Continuar el resto de la inicialización
respondido por el user924
0

Cuando el mcu se reinicia, quiere que los pines estén en un estado seguro. Esto significa "no conducir nada" (como configurarlo para que sea una salida), y "estabilizar la línea" (no dejar la línea flotando). La Convención dice que use un pull up (en lugar de un pull down) y hágalo lo suficientemente fuerte para estabilizar la línea, pero no tan fuerte que sea difícil de anular con una fuente diferente. Debido a esto, la industria generalmente se resuelve con un valor de recuperación débil de 10kOhms.

Si desea "ganar", 1) tendrá que ir en la dirección opuesta (agregando un menú desplegable) y 2) seleccionará un valor que pondrá al dispositivo externo en el estado correcto.

Un extremo es optar por acortar la salida directamente a tierra. Eso garantizará que cuando su mcu se inicie, la salida sea de 0 V. Eso no es muy práctico porque entonces no puede anular el cortocircuito directo con el mcu porque no tiene amperios de corriente disponibles.

Si elige un menú desplegable de 10kOhm, por ejemplo, y su salida es de 3.3 V, entonces el dispositivo que está conduciendo con el mismo encendido verá 3.3 ÷ 2 = 1.65V. Tenga en cuenta que su transistor requerirá una pequeña cantidad de corriente, por lo que el voltaje en este punto puede variar un poco.

Entonces, ¿cuánto de un tirón hacia abajo necesitas? Como se indicó anteriormente, 1k es mucho más pequeño que 10k, por lo que probablemente ganará la competencia y terminaría con 3.3 (1k / (1k + 10k)) = 0.3V. El inconveniente es que cuando el mcu conduce 3.3V directamente al nodo, también tendrá que bajar ese control, lo que resultará en 3.3 / 1k = 3.3mA de corriente esencialmente desperdiciada. Por supuesto, si su MCU está enchufada a la pared, entonces esto es un poco preocupado; sin embargo, si es alimentado por una pila de botón, entonces 3.3mA de corriente podría ser una gran pérdida de energía.

Entonces, en la búsqueda del valor óptimo de la resistencia desplegable que le permitirá ganar la competencia en el reinicio, lo más importante a considerar es lo que está manejando. Deberá averiguar cuál es el voltaje de entrada mínimo que le permitirá estar en el estado correcto y luego, utilizando la ecuación del divisor de voltaje, averiguar cuál es el valor óptimo de la resistencia desplegable (y luego hacerlo más pequeño) para garantizar el funcionamiento sobre las variables de parámetros de su entorno, como la temperatura.

    
respondido por el Dav

Lea otras preguntas en las etiquetas