¿Qué valores de resistencia y condensador usar para el aislamiento del pin de restablecimiento AVR?


15

Antecedentes...

Soy un novato en las aplicaciones AVR. Recientemente construí dos circuitos basados ​​en ATTINY13 (luces intermitentes LED glorificadas) que funcionaban correctamente (independientemente) en la placa de pruebas. Cuando los combiné en un panel de soldadura con una fuente de alimentación compartida, las cosas se volvieron locas. Después de mucha investigación, parecía que se reiniciaban constantemente.

Había dejado el pin 1 (reinicio) de cada micro desconectado. Investigué formas adecuadas de manejar el pin de reinicio y desde esto implementé lo siguiente:

  1. Se agregó un condensador electrolítico de 100uF en paralelo con la fuente de alimentación para ayudar con cualquier consumo de corriente potencial que la fuente de alimentación sería demasiado "lenta" para manejar.

  2. Se agregó una resistencia de 4.7K de VCCaRESET

  3. Se agregó un condensador de cerámica de 0.1uF de GNDaRESET

Estos pasos resolvieron el problema por completo.

La pregunta:

La página que he vinculado anteriormente proporciona consejos al hacer ISP (programación en el sistema) que no estoy haciendo (todavía). (Estoy programando los micros por separado sin otros componentes conectados a ellos).

He visto varios valores diferentes de condensador (10nF, 0.1uF, etc.) y resistencia (4.7K, 10K, etc.) y no estoy seguro de qué factores alteran estos valores. ¿Alguien puede arrojar algo de luz sobre cómo funciona el aislamiento del pin de reinicio y cómo calcular los valores de los componentes a utilizar? ¿Puede explicar qué valores usar si no hay un encabezado de programación en el sistema?

Esquema de aislamiento de pin de restablecimiento AVR

Respuestas:


15

Atmel AVR042: Las consideraciones de diseño de hardware AVR nos dicen que el condensador en el pin de reinicio no es necesario. Personalmente creo que es exagerado. No hay ninguna razón para que continúe haciendo docenas de circuitos AVR, todos y cada uno con ese condensador redundante.

En cuanto a la resistencia pullup de reinicio:

La línea de reinicio tiene una resistencia pull-up interna, pero si el entorno es ruidoso, puede ser insuficiente y, por lo tanto, el reinicio puede ocurrir esporádicamente. Consulte la hoja de datos para conocer el valor de la resistencia pull-up en dispositivos específicos. La conexión del RESET para que sea posible ingresar tanto a la programación de alto voltaje como al restablecimiento normal de bajo nivel se puede lograr aplicando una resistencia pull-up a la línea RESET. Esta resistencia pull-up se asegura de que el reinicio no sea bajo sin querer. La resistencia de pull-up puede ser, en teoría, de cualquier tamaño, pero si el Atmel®AVR® debe programarse, por ejemplo, desde STK500 / AVRISP, el pull-up no debe ser tan fuerte que el programador no pueda activar RESET dibujando la línea RESET baja. La resistencia pull-up recomendada es 4.7kΩo mayor cuando se usa STK500 para la programación. Para que debugWIRE funcione correctamente, el pull-up no debe ser menor a 10kΩ.

Si echa un vistazo a los productos profesionales que incorporan los micros AVR, como el Arduino, sus numerosos clones, docenas de kits de desarrollo, encontrará que la mayoría usa una resistencia de 4.7kΩ o 10kΩ.

Y en particular para su ATtiny13, su hoja de datos especifica que el pullup idealmente debería oscilar [20kΩ, 80kΩ].


1
¿20k a 80k, o 20k dividido por 80k? :)
JYelton

Gracias por el enlace de Consideración de diseño de hardware. ¡No estaba al tanto de este documento!
JYelton

Jaja, usé ese signo porque todos están usando el signo menos. La resistencia negativa tampoco tendría sentido :)
Jonny B Good

Por lo general, veo que la tilde (~) solía significar "a través" pero también "aproximada". Supongo que depende del contexto. Gracias por señalar que la hoja de datos enumera la resistencia pullup de reinicio, no me había dado cuenta de que incluiría esa información. La hoja de datos que tengo muestra que la resistencia pull-up para el pin de reinicio está entre 30k y 80k. Al menos sé dónde mirar ahora. ¡Gracias!
JYelton

44
20kΩ...80kΩ

7

Siempre uso una resistencia pullup de 10k para Vcc en el pin / Reset y nunca he tenido ningún problema. También es generalmente una buena idea incluir un condensador de 100nF cerca del pin Vcc entre Vcc y GND para un funcionamiento estable del chip. En mi opinión, el condensador en el pin de reinicio no es necesario, es decir, nunca he incluido uno en ningún circuito AVR que he desarrollado (y he desarrollado muchos) y nunca me ha causado dolor.


¿Puede explicar (o señalar un buen tutorial para novatos) cómo estos pequeños condensadores ayudan además de o en lugar de un electrolítico más grande que es paralelo a la fuente de alimentación?
JYelton

1
se trata de "frecuencias de onda" y puede ser un tema más complicado de lo que parece, pero como mínimo 100nF es una práctica estándar aceptada como regla general para los condensadores de derivación. Aquí hay uno (de muchos) artículos de referencia que pueden ser de interés: seattlerobotics.org/encoder/jun97/basics.html . También puede encontrar publicaciones relacionadas en este sitio buscando 'bypass' o 'desacoplamiento'
vicatcu

Los condensadores electrolíticos grandes manejan las bajas frecuencias, pero son ineficaces a altas frecuencias. Los condensadores cerámicos pequeños (0.1uF) manejan las frecuencias altas, pero son ineficaces a bajas frecuencias.
Tecnófilo el

Así que use ambos, el suministro debe tener uno grande de todos modos, y tener el pequeño localmente. La inducción y la IC pueden ser un problema, pero en extremo. Es interesante que las consideraciones HSVP no tengan un diodo en serie con esa resistencia de pin de reinicio también.
mckenzm
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.