¿Por qué exactamente 470 o 1k Ω? (para evitar daños en el pin de salida)


12

Cita del tutorial de Arduino, sección Pines digitales :

Los cortocircuitos en los pines Arduino, o intentar ejecutar dispositivos de alta corriente desde ellos, pueden dañar o destruir los transistores de salida en el pin, o dañar todo el chip Atmega. A menudo, esto resultará en un pin "muerto" en el microcontrolador, pero el chip restante seguirá funcionando adecuadamente. Por esta razón, es una buena idea conectar los pines de SALIDA a otros dispositivos con resistencias de 470Ω o 1k, a menos que se requiera un consumo máximo de corriente de los pines para una aplicación en particular.

Estos números son vudú para mí: ¿por qué "470" o "1k"? ¿Por qué no se da exactamente un número, como "al menos 470Ω si de lo contrario habría un cortocircuito"?

Estoy interesado porque considero usar el Arduino como un controlador de teclado y, en este caso de uso, las líneas se cortocircuitan básicamente si se presiona un botón. Por supuesto, las líneas tienen cierta resistencia, pero aún no tuve la oportunidad de medirlo.


2
Si está utilizando los pines para detectar botones, creo que los pines se configurarían como entradas, en cuyo caso el cortocircuito del pin a tierra estaría bien.
Gorloth

55
470 y 1000 son valores comunes que los manipuladores pueden tener por ahí. Entonces esto es como "¡Use alrededor de 500 a 1000 ohmios!", Pero luego se normaliza a valores de resistencia comunes.
Kaz

Respuestas:


18

Primero un poco sobre los cortocircuitos: el cortocircuito es un circuito que no tiene elementos limitadores de corriente intencionales en el camino de la corriente. El resultado de eso es que los elementos del circuito que normalmente consideramos que tienen resistencia cero comienzan a actuar como resistencias y el modelo matemático habitual para las interrupciones de las fuentes de alimentación a menudo resulta en un voltaje más bajo de lo esperado y sobrecalentamiento destructivo.

Debido a las especificaciones de corriente máxima del microcontrolador, necesita un elemento resistivo en la ruta de la corriente que va desde un pin. Puede esperar que el pin muera al generar 40 mA y, si recuerdo correctamente, 200 mA de todos los pines en el mismo momento. El voltaje nominal para este sistema es de 5 V, así que veamos qué sucede si calculamos la corriente con 470 : . Esto resulta ser un valor agradable y sensato para la corriente que no dañará el microcontrolador. Si en su lugar usa 1Ω5V470Ω10mAkΩresistencia, obtendrá 5 mA, que es aún más seguro y el consumidor aún menos energía. Además, esos dos valores de resistencias son relativamente populares y al mismo tiempo proporcionan corrientes pequeñas pero no tan pequeñas que es necesario tener en cuenta la capacidad de las trazas cuando se trabaja con ellas.

¡En el caso de que realmente se corten las líneas, debe esperar que las líneas tengan una resistencia insignificante! Esto daría como resultado un cortocircuito directo de los pines, que, como está escrito en la cita, daría lugar a pines muertos. También las líneas en corto a menudo resultan en botones rotos, ya que una corriente grande tiene efectos negativos en la vida útil del contacto del botón debido al sobrecalentamiento y chispas. En lugar de utilizar cortocircuitos para conectar líneas, la mejor manera es colocar una resistencia cerca del suelo de la línea. Esto limitará la corriente cuando la línea esté encendida. Al colocar la resistencia cerca de la conexión a tierra de la línea, nos aseguramos de que la mayor caída de voltaje en la línea esté al final, por lo que si la cortocircuitamos con otra línea de detección con un botón, la línea de detección ve el voltaje completo.

También los pines configurados como entrada están en el modo denominado "alta impedancia", lo que significa que se comportan como si fueran una resistencia con una resistencia muy grande conectada a tierra. Si está 100% seguro de que el pin solo será un pin de detección, entonces no necesita colocar otra resistencia frente a él. Incluso en ese caso, es una buena idea poner una resistencia porque accidentalmente puede establecer un pin como algo diferente a la entrada y potencialmente causar un cortocircuito. Si coloca la resistencia, tenga en cuenta que habrá muy poca corriente a través de la línea de detección, lo que significa que la caída de voltaje en la resistencia será muy baja, lo que hará que el pin vea voltaje completo.

Si desea más "lectura avanzada", puede consultar la hoja de datos de ATmega328, que es uno de los microcontroladores utilizados en algunos Arduinos. En la sección 29. Características eléctricas, verá que bajo las calificaciones máximas absolutas, la corriente por pin de E / S es de 40 mA y para el dispositivo total es de 200 mA.

ACTUALIZACIÓN: ¡No confunda las clasificaciones máximas absolutas con las clasificaciones operativas! Aviso de la hoja de datos para ATmega32U4:

NOTICE: Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent dam- age to the device. This is a stress rating only and functional operation of the device at these or other conditions beyond those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability.

Aquí hay notas al pie de la página 379 de la misma hoja de datos:

Although each I/O port can sink more than the test conditions (20mA at VCC = 5V, 10mA at VCC = 3V) under steady state conditions (non-transient), the following must be observed: ATmega16U4/ATmega32U4: 1.)The sum of all IOL, for ports A0-A7, G2, C4-C7 should not exceed 100 mA. 2.)The sum of all IOL, for ports C0-C3, G0-G1, D0-D7 should not exceed 100 mA. 3.)The sum of all IOL, for ports G3-G5, B0-B7, E0-E7 should not exceed 100 mA. 4.)The sum of all IOL, for ports F0-F7 should not exceed 100 mA. If IOL exceeds the test condition, VOL may exceed the related specification. Pins are not guaranteed to sink current greater than the listed test condition. 4. Although each I/O port can source more than the test conditions (20mA at VCC = 5V, 10mA at VCC = 3V) under steady state conditions (non-transient), the following must be observed: ATmega16U4/ATmega32U4: 1)The sum of all IOH, for ports A0-A7, G2, C4-C7 should not exceed 100 mA. 2)The sum of all IOH, for ports C0-C3, G0-G1, D0-D7 should not exceed 100 mA. 3)The sum of all IOH, for ports G3-G5, B0-B7, E0-E7 should not exceed 100 mA. 4)The sum of all IOH, for ports F0-F7 should not exceed 100 mA. 5. All DC Characteristics contained in this datasheet are based on simulation and characterization of other AVR microcon- trollers manufactured in the same process technology. These values are preliminary values representing design targets, and will be updated after characterization of actual silicon


Esto es genial, gracias por escribirnos con tanto detalle.
Patrick Hughes

Gracias por la idea! En el título, ahora corregí el pin de entrada al pin de salida . Tengo la intención de utilizar un Leonardo, por cierto, que se basa en el ATmega32u4 . Sus 5 pines VI / O están especificados para hasta 40 mA.
feklee

@feklee ¡Ten mucho cuidado aquí! ¡Esos pines están especificados para morir a 40 mA! Eche un vistazo a la hoja de datos completa y preste especial atención a las notas al pie de la página 379 y al aviso en la página 378.
AndrejaKo

1
De hecho, esas notas al pie son tan importantes que las citaré aquí en la respuesta.
AndrejaKo

13

La respuesta corta es que Arduino está dirigido a aficionados con poco conocimiento de ingeniería eléctrica, y sus instrucciones están lo suficientemente simplificadas como para transmitir el mensaje. Esos dos valores son seguros y le dan al usuario una opción en lugar de una demanda fija.

Ambas son resistencias de tamaño estándar. 470Ω y 1kΩ, cuando se usan con el voltaje Arduino 5V VCC, proporcionan un consumo de corriente seguro (5v / 470Ω ~ 0.011A (11mA), 5/1000 = 0.005A (5mA)). Y el sorteo actual es utilizable para transistores o leds o partes similares.

Francamente, cualquier resistencia de valor que dará un consumo de corriente dentro del máximo de la corriente pin del microprocesador (40 mA) funcionará. Eso significa cualquier resistencia por encima de 125Ω.


¡Gracias, también por explicar por qué estas resistencias son populares!
feklee

1
@feklee No puedo ver una explicación completa de esto, pero puede interesarle: en.wikipedia.org/wiki/E24_series#E_series
TNW
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.