¿Se puede lograr este escenario activo-alto sin una resistencia de bajada externa?

0

Si entiendo bien, pocos microcontroladores ofrecen resistencias de extracción internas en sus pines de entrada, pero casi todos permiten la configuración de resistencias de activación interna.

¿Por qué exactamente es eso?

Entiendo que para un escenario de botón de comando, podemos implementar la lógica para interpetar

  • 0V = ON (botón presionado)
  • 5V o desconectado = APAGADO (botón no presionado, activación interna activada)

Pero, ¿qué pasa si la entrada proviene de un sistema externo que no puede controlar donde se necesita implementar la siguiente lógica?

  • el sistema externo está no conectado (flotando) en la entrada: debería traducirse a APAGADO
  • el sistema externo proporciona 0V en la entrada: debería traducirse a APAGADO
  • el sistema externo proporciona 5V en la entrada: debería traducirse a ENCENDIDO

En este caso, necesitas algún tipo de configuración activa-alta, pero para eso, la recuperación interna se interpone (como un valor flotante no debería considerarse ALTO).

¿No sería útil en tal caso tener una resistencia interna desplegable en la entrada?

Podría implementar esto deshabilitando el pull up interno y usar una resistencia de pull down externa conectando la entrada a GND a través del menú desplegable.

Pero, ¿se puede lograr esto de alguna manera sin usar un menú desplegable externo?

    
pregunta ddewaele

3 respuestas

3

Los siguientes controladores tienen resistencias desplegables (no se trata de una lista completa y no se observaron todas las variantes, por lo que puede haber excepciones):

  • familia STM32
  • MSP430
  • ATxmega
  • PIC24 tiene pines de notificación de cambio con menús desplegables
  • PIC32
  • NXP LPC800 (los más pequeños, así que yo diría que los más grandes también lo tienen)
  • ...

Por lo tanto, diría que hay muchas opciones para obtener un controlador con resistencias desplegables integradas. Solo el extremo más bajo parece no integrar resistencias desplegables, lo que tiene sentido ya que son muy sensibles a los costos. Por extraño que parezca, AVR decidió no integrarlos en su serie UC3.

Si no tiene absolutamente ninguna opción de cambiar a una MCU con resistencias de bajada, entonces puede conectarla a un pin de entrada analógica y leer el voltaje con el ADC. Un pasador flotante debería proporcionarle valores variables, si está conectado a tierra o es elevado, la varianza debería disminuir drásticamente y, en teoría, el valor debería leer un mínimo sólido o un máximo sólido del ADC. No lo he intentado en la práctica, pero supongo que debes tomar varias lecturas y puede que no sea 100% confiable.

Si su controlador no tiene ADC, entonces estoy fuera de control, estaba pensando en algo así como establecer el pin en salida baja, luego cambiar a entrada y leer el valor. Pero si el interruptor proporciona 5 V, tendrá un corto, así que es una mala idea. Tal vez podría funcionar cuando el interruptor no es una conexión de baja resistencia a 5V. Mi idea detrás de esto fue utilizar la capacitancia parásita de la traza para almacenar el bajo voltaje por un corto tiempo antes de que comience a flotar en algún nivel de nuevo y disparar la entrada a alto. Si el interruptor está conectado, leerá un alto. Pero ese también es un enfoque bastante especulativo y debe ser probado.

Aún dejar un pin de entrada flotante es una mala idea en sí misma, por lo que diría que simplemente vaya por esa resistencia o cambie a una de las MCU disponibles con resistencias desplegables.

    
respondido por el Arsenal
0

Estoy seguro de que habrá una manera más complicada de lograr esto sin una resistencia de extracción externa, pero una resistencia simple sería suficiente en la mayoría de los casos. Los diseñadores de los chips deben tomar decisiones sobre los beneficios en comparación con la complejidad adicional de agregar resistencias de subida / bajada y su circuito de control. Los pull ups cubrirán la mayoría de los casos y, en los casos en que no, puede agregar su propio menú desplegable.

    
respondido por el HandyHowie
0

Si está preguntando cómo detectar un pin de circuito abierto real, hay una manera de hacerlo, pero aún necesita agregar una resistencia adicional.

En el pin que podría tener un circuito abierto, coloque una resistencia de alto valor desde ese pin a otro pin de salida. Alterne el pin de salida alto luego bajo y lea el valor del pin de entrada cada vez. Si el pin de entrada sigue la señal alta baja, lo más probable es que la línea de entrada esté abierta. (Tenga en cuenta que la resistencia utilizada aquí debe ser significativamente mayor que la impedancia esperada de la posible señal de entrada).

    
respondido por el Nedd

Lea otras preguntas en las etiquetas