características transitorias del puerto AVR

0

Mientras escribo software para controladores de motores paso a paso y retoques con temporizadores AVR, he notado algo interesante (al menos para mí).

Habilitar y deshabilitar la salida de pin en el puerto AVR tiene extrañas características transitorias. Esperé ver señales de encendido / apagado nítidas entre 0 y 5V (Vcc), pero lo que vi fueron voltajes de pico a punto superior a 7V:

NosoyunexpertoynopuedoencontrarningunainformaciónsobrelascaracterísticastransitoriasdelospuertosAVR.Porlotanto,nopuedoentenderlasrazonesdetrásdeestaobservación(¿esnormalono?),Asícomolasposiblesconsecuenciasdeloscomponentes"en la línea" (¿debo protegerlos de los voltajes negativos?).

Alguna información adicional:

Estoy usando el microcontrolador atmega 328p en la placa Arduino. El problema solo se manifiesta cuando estoy usando sondas en modo 10x (Rigol DS1052E) con el límite de ancho de banda desactivado.

El código fuente: enlace

    
pregunta Denis Bazhenov

2 respuestas

1

Te mostraré cómo ver esto por ti mismo:

simular este circuito : esquema creado usando CircuitLab

Eso es un diagrama de comportamiento simplificado del pin de salida. En realidad es más complicado. Pero para estos propósitos ilustrativos, está bien.

El pin de salida puede estar vinculado "HI" al activar \ $ M_1 \ $ ENCENDIDO y al desactivar \ $ M_2 \ $ ENCENDIDO . El pin de salida puede estar vinculado "LO" al activar \ $ M_1 \ $ OFF y al activar \ $ M_2 \ $ ENCENDIDO .

Si coloca esto en LTspice (y reemplaza esa cosa de "onda cuadrada" con una fuente de voltaje real usando los tiempos de subida y caída cerca de \ $ 1 \: \ text {ns} \ $ o \ $ 2 \: \ text {ns } \ $, verás tus picos. Bonito y bonito.

Su MCU está intentando impulsar la salida con bastante rapidez entre dos valores opuestos. Pero hay una cierta capacitancia entre el pin de salida y las puertas presentes dentro del circuito del controlador. Esto es ineludible. Es una propiedad fundamental de un MOSFET. He agregado algo de capacitancia aquí para exagerar los detalles y hacerlos visibles. Pero está ahí si los agrego o no al circuito, explícitamente.

Cuando la MCU intenta cambiar la salida, lo hace cambiando muy rápidamente los voltajes de la unidad a estas puertas. Pero los condensadores tienen un voltaje que no se desvanece de inmediato. Se tarda un momento en descargar. Entonces, en un momento muy rápido, su voltaje "empuja" el pin más de lo esperado (por encima del riel superior o por debajo del riel inferior). Una vez que esto sucede, también debe pasar un poco de tiempo ya que estos condensadores restablecen un nuevo valor estable. Esto se hace a través de alguna resistencia presente. Por lo tanto, verá un borde afilado (cuya velocidad de cambio le dice mucho acerca de qué tan rápido puede "moverse" el circuito de impulsión interno), seguido por una relajación ligeramente más gradual a medida que los condensadores recuperan un nuevo equilibrio. Las imágenes capturadas muestran este comportamiento bastante bien.

    
respondido por el jonk
0

Considere cuántos cables están realmente conectados a su puerto, tanto externa como internamente (placa de circuito y el propio chip). Si la alimentación del puerto se corta o incluso se cambia, el campo magnético creado por su inductancia colapsa y le da un pequeño pico. Para asegurarse de conectar la inductancia adicional y debe aumentar la espiga. No demasiado, ya que podría destruir algo. Puedes crear pequeñas inductancias enrollando un poco de cable en bobinas.

    
respondido por el Jerzy Muszynski

Lea otras preguntas en las etiquetas