Alimentación de periféricos desde un microcontrolador (ATmega328P)

Me pregunto si es posible o incluso seguro alimentar periféricos como sensores o módulos bluetooth desde el ATmega328P configurando los pines del microcontrolador (uC) en alto dado que los periféricos están dentro de las capacidades de suministro actuales y los límites de voltaje de los pines.

Pregunto esto porque parece más conveniente ingresar al modo de apagado en el uC y controlar el alto/bajo de los interruptores en el software antes y después de este modo para encender o apagar los periféricos. Probablemente me estoy perdiendo algo y me gustaría alguna aclaración sobre lo anterior.

Respuestas (5)

Si obtiene mucha corriente del uC, es probable que su voltaje de salida caiga por debajo de lo aceptable para su periférico. Los cambios en el consumo de corriente también pueden causar ondas en los pines de salida debido a la resistencia de salida del uC.

Es probable que su periférico tenga desacoplamiento de energía y condensadores de filtro. Cargarlos en el primer momento provocará una corriente de entrada que puede estar fuera de los límites de corriente aceptables para su uC. Puede hacer que los condensadores tarden mucho tiempo en cargarse en cada encendido o dañar su uC.

De todos modos, es mejor tener una tecla de encendido adecuada (un MOSFET externo, por ejemplo) que alimentar cualquier cosa desde la salida uC, excepto en el caso en que la salida uC específica esté diseñada para usarse como fuente de alimentación.

La forma mosfet es la mejor opción con seguridad.

El microcontrolador no debería tener problemas cuando drena la corriente de sus pines por debajo de los límites.

Pero debe tener en cuenta la caída de voltaje en el controlador de salida de MCU. Puede causar que el voltaje sea más bajo de lo esperado (vea la Fig. 35-23,24, tenga en cuenta también que dan valores típicos , no mínimo-máximo). Vea si su periférico acepta un rango de voltaje lo suficientemente amplio mientras está en funcionamiento. Si necesita regulación de voltaje para periféricos, es mejor obtener un regulador con un pin de habilitación dedicado, en lugar de alimentarlo desde MCU.

Además, la resistencia interna del controlador puede causar interferencias a través de la línea de alimentación. Es posible que necesite un condensador de filtrado. Luego, debe verificar si las salidas de MCU son tolerantes a cargas capacitivas o de cortocircuito (una mirada rápida en la hoja de datos no me da nada).

P.ej. es común para alimentar LED, pero muy poco común para alimentar circuitos integrados de cualquier tipo.

Puede estar bien, pero hay un par de trampas. Primero, desea asegurarse de que no haya una caída de voltaje excesiva en la corriente pico máxima que consume el dispositivo (y la temperatura ambiente máxima y el voltaje de suministro mínimo). Algunas cosas, como el ejemplo de su módulo Bluetooth, pueden consumir corriente en ráfagas que superan con creces la corriente promedio, y el voltaje no debe caer excesivamente durante esos picos. Para Bluetooth, es probable que excedan fácilmente la capacidad de un pin de puerto.

En segundo lugar, generalmente es una muy mala idea ejecutar un pin de puerto sin protección fuera de un gabinete debido a la falta de protección ESD sustancial, protección contra cortocircuitos, protección contra la aplicación de voltajes externos, etc. Entonces, eso tendería a descartar sensores externos a menos que agregue algunos circuitos para proteger el micro contra daños y molestias.

Si desea ejecutar (digamos) un sensor de temperatura o humedad que extrae unos cientos de uA de un pin de puerto y puede verificar que la caída de voltaje del pin no sea excesiva (y que la falta de un condensador de derivación no es un problema ), entonces puede ser una buena manera de medir la temperatura o la humedad de la PCB local y permitir el apagado del sensor sin energía cuando no se está utilizando.

De lo contrario, es bastante fácil agregar una considerable conmutación de lado alto usando un pequeño MOSFET de canal p de varios amperios que puede controlar la potencia, y agregar un TVS para transitorios y un polifusible u otra protección contra cortocircuitos. Para aplicaciones de alta confiabilidad, puede ser mejor derivar el suministro externo de un regulador separado para que no le brinde al mundo exterior ningún tipo de ventana hacia lo que alimenta el microcontrolador.

Está perfectamente bien hacer esto siempre que el periférico consuma menos que la corriente nominal del pin de salida. Por lo general, evitaría cualquier consumo de más de 20 mA para el atmega328p.

Si bien habrá una caída de voltaje, el diseño CMOS del atmega328p usa mosfets internamente para la E/S, y la caída de voltaje será mínima siempre que no consuma demasiada corriente.

Si necesita más corriente, use un mosfet externo.

Mientras esté por debajo de los límites individuales (por E/S) del chip, los límites totales (todas las E/S sumadas) del chip y dentro de los parámetros operativos del periférico que está alimentando, estará bien.

Creo que es posible que haya subestimado los riesgos de ejecutar directamente una E/S a la que se han topado las otras respuestas.

Si tiene dudas, use un MOSFET. Si no desea comprar en línea, radio$hack generalmente tiene uno o dos de ellos. Son realmente geniales; Los he usado para conducir servos. Y son bastante económicos. Básicamente, son transistores especiales donde el arduino puede actuar como puerta y permitir que una fuente de corriente/voltaje más grande suministre energía. El arduino simplemente puede cortarlo, como abrir un circuito o cerrarlo.