¿Se está hundiendo 80 mA con un microcontrolador sin ningún circuito controlador?

6

Me preguntaba, ya que un microcontrolador puede hundir 20 mA en cada pin, si puedo hacer que el software tenga 4 puertos pin bajos, y simplemente conectar el lado positivo de la carga a Vcc, ¿es esta una metodología confiable para manejar cargas más grandes? ? ¿Lo único de lo que preocuparse y orar es que el ciclo de la máquina sea lo suficientemente rápido para manejar las fluctuaciones de la configuración de todos los pasadores al mismo tiempo? ¿Estoy en el camino correcto?

    
pregunta Flood Gravemind

6 respuestas

9

Si su problema no es comprar un "módulo", considere gastar 6 centavos (o menos) en un transistor que felizmente se hundirá 200 o 500 mA y solo ocupará un pin para su entrada de control base. Creo que 6 centavos es lo que pagué por el último lote de 2N3904 / 6 y 2N4401 / 2 en lotes de 100. No tiene mucho sentido comprar menos, pero si te gusta pagar 4X por uno a la vez, sé mi huésped.

Estas están muy lejos de las partes de vanguardia, pero hacen un buen trabajo en particular y son de bajo costo.

    
respondido por el Ecnerwal
4

Debería funcionar bien, pero debes tener en cuenta algunas cosas.

  1. Corriente máxima de VCC o Max GND. Existe una corriente máxima que el microcontrolador puede admitir a través de su pin VCC o GND.
  2. Corriente máxima del puerto. Un puerto individual también tiene una corriente máxima.
  3. Pin ESR. Una salida GPIO tendrá una caída de voltaje (o aumento) en función de la cantidad de corriente que la atraviesa. Normalmente, la corriente máxima recomendada a través del pin es para un voltaje de salida determinado en comparación con VCC o GND.


Ej .: La salida de voltaje bajo de la familia MSP430G2xxx aumentará 1 voltio desde Gnd, a ~ 30 mA.

Si su carga está dentro de estas especificaciones, como debería ser su ejemplo de carga de 80mA para microcontroladores ATMega, entonces la otra preocupación es evitar cortocircuitos.

Debe asegurarse de cambiar todo el Puerto a la vez , en lugar de un pin a la vez. Si cambia solo un pin a la vez, de bajo a alto o de alto a bajo, puede crear un punto muerto entre los pasadores, soplando uno o más de ellos. Dependiendo del estado predeterminado de los pasadores cuando puesta en marcha, antes de que su código pueda configurarlos, esto puede no ser evitable sin partes adicionales. También intente mantenerlo aislado en un solo puerto, ya que será difícil cambiar varios puertos al mismo tiempo, y las diferencias de voltaje entre los puertos pueden afectar.

Por lo general, tener resistencias en serie en los pines ayudará. Estas resistencias también terminarán en paralelo con cada pin, lo que ayuda a regular la corriente entre ellas.

Suponiendo que desea que la carga de 80 mA sea igual en 4 pines, entonces son 4 partes adicionales, como protección. En ese momento, también puede ir con un solo par de transistores + resistencias.

Con una codificación cuidadosa, no deberías necesitarlos, y gpio paralelo funcionará bien como sumideros actuales.

Las salidas de Open Collector, que solo se pueden bajar, no tienen problemas con los cortocircuitos, pero deben cambiarse al mismo tiempo. No cambiarlos al mismo tiempo puede llevar a la corriente aunque solo sea una salida, lo que causará problemas si no hay un limitador de corriente. Un microcontrolador GPIO típico no es Open Collector, pero puede mimic cambiando solo entre el modo de entrada de salida de baja y alta impedancia.

    
respondido por el Passerby
1

Nunca conecte un puerto digital a tierra si es push-pull o Vcc o a tierra si está abierto. Verifique la hoja de datos, creo que el rasp pi no tiene una hoja de datos pero la información está ahí fuera. El hundimiento es diferente al abastecimiento. Si tiene una salida de drenaje abierta, a veces puede hundir más corriente que un empuje. Es posible que pueda salirse con un poco más con una configuración de drenaje abierto en paralelo, ya que no está disipando una gran cantidad de energía en el chip, pero aún está limitado por el ancho del cable. Si va más allá, se calentará. y quemar.

Por lo general, es una mala idea que con la función push-pull se pueda conectar en paralelo a su procesador para obtener más corriente, pero no recibe más corriente a través del Vcc Io o del pin de alimentación de tensión de E / S. En algunos casos, los dispositivos digitales le darán una calificación actual en el Vccio y el pin en sí. No exceda estas calificaciones.

    
respondido por el laptop2d
1

Para mí, a pesar de la idea de que podría funcionar si todo sale bien, es una idea realmente mala porque sería muy fácil fumar cosas si se equivocó en una línea de código, o algo malo sucedió al descargar el código. Solo mala práctica

    
respondido por el Scott Seidman
1

No adivine, no ore, no haga pruebas, simplemente siga la hoja de datos y trátela como su Dios.

Aunque estoy de acuerdo en que puede ser un poco esotérico, cada pin o categoría de pines tendrá una corriente máxima recomendada (ya sea fuente y / o hundimiento). También es probable que haya máximos para todo el puerto de 8/16/32 pines, y / o una fuente / sumidero máximo para los pines de E / S de todo el chip. Lea la hoja de datos, haga los cálculos, obtenga la respuesta. Para complicar aún más las cosas, algunas MCU le permiten programar la cantidad máxima de sumidero / corriente de fuente a la que operarán (por ejemplo, la entrada / salida en la MCU de TI de BeagleBone). Todas las plataformas / MCU que mencionas son diferentes.

Existe el peligro de simplemente conectar varios pines de E / S juntos y usar su capacidad de fuente o de sumidero de corriente combinada, y no son los máximos por puerto o por chip que menciono anteriormente. Las MCU no están destinadas a ser dispositivos de derivación de energía, por eso se llaman microcontroladores. Es:

(a) ¿Qué sucede con las entradas y salidas cuando el chip está en RESET? La mayoría irá a una entrada de alta impedancia, que probablemente esté bien, pero a veces un pin tendrá algún propósito especial que puede entrar en juego durante o inmediatamente después de un reinicio, en cuyo caso, ¿qué va a hacer su circuito en ese momento, & ¿Cuánta corriente a través de ese pin?

(b) la técnica mediante la cual configura / borra esos pines de E / S: ¿usó solo los pines de 1 puerto, en cuyo caso puede escribir un byte / palabra en el registro de E / S y configurar / borrar? todos ellos a la vez, por lo que todos comenzarán a conducir todos a la vez - genial. Pero si distribuye la carga a través de los pines de varios puertos de E / S (es decir, el Puerto A y el Puerto B), entonces eso requiere múltiples escrituras de registro, lo que sucede de manera secuencial, lo que significa que los primeros pines / puertos que se escriben conducen primero corriente total, entonces no será hasta que se escriba el siguiente / último puerto que la corriente se comparta de manera más o menos equitativa en todos los pines a los que se haya conectado. Si está haciendo esto, escribo un solo pin a la vez (por ejemplo, "didtalWrite (Pin, State) de Arduino", entonces el primer pin conducirá la corriente COMPLETA hasta que se escriban los pines 2 y posteriores; esto es todo. MALO y probable que mate a la MCU, si no inmediatamente, bien dentro del tiempo de vida esperado.

La solución es simple. Obtenga un transistor NPN o N-ch MOSFET de las especificaciones adecuadas, conecte su base / compuerta al pin i / o de la MCU (y calcule una resistencia en serie adecuada entre las dos), conecte su colector / drenaje a lo que sea que desee cambiar on / off, y conecte su Emisor / Fuente a Tierra. 1 pin de E / S, 1 transistor, bueno para cualquier cosa desde decenas de mA y amp; más allá. Habrá otras preguntas en SE sobre cómo hacer esto en detalle.

    
respondido por el Techydude
1

Vienen a la mente varias preocupaciones.

  1. ¿Qué sucede si comete un error en el código y maneja un pin alto mientras otro está bajo? Ahora tienes un poder para desconectar a través de un par de pines IO que no es bueno.
  2. ¿Existen restricciones en la corriente máxima total para los pines IO? Si es así, ¿estás dentro de esos límites?
  3. ¿Qué tan bien equilibrados están los transistores de accionamiento? ES DECIR. Inicialmente, ¿qué tan cerca se compartirán con la corriente?
  4. ¿Cuál es el coeficiente de temperatura de los transistores de salida? Como la corriente desequilibrada causa un calentamiento desigual de los transistores de salida, el equilibrio de la corriente mejorará o empeorará.

La preocupación 1 es principalmente un caso de cuánta condidencia tiene en su propio código. La preocupación 2 es algo que las hojas de datos pueden responder, pero no creo que haya visto una hoja de datos que responda a las preocupaciones 3 y 4.

Como tal, no recomendaría esta configuración. Use un transistor externo para cambiar la carga.

    
respondido por el Peter Green

Lea otras preguntas en las etiquetas