¿Cuál es la fuente de este ruido en mi oscilador Arduino?

He estado experimentando con técnicas para encender y apagar rápidamente los pines de salida digital en un Arduino. Este es el código que uso:

#define PIN3_ON PORTD |= 0x8
#define PIN3_OFF PORTD &= ~0x8
#define NOP __asm__ __volatile__ ("nop\n\tnop\n\tnop\n\tnop\n\tnop\n\t")

void setup() {
    pinMode(3, OUTPUT);
}

void loop()
{
    cli();
    while (1) {
        PIN3_ON;
        NOP;
        NOP;
        PIN3_OFF;
        NOP;
        NOP;
    }
}

Cuando observo la salida bajo un osciloscopio, veo una especie de oscilación que decae rápidamente después de que se apaga el pin:

ingrese la descripción de la imagen aquí

He observado esto en un Arduino Uno y Nano328. ¿A qué se debe esta oscilación?

Es interesante que solo esté sucediendo en la dirección negativa. A esas velocidades, podría ser un artefacto de cómo está conectado su alcance, y no algo real en absoluto, pero el hecho de que solo ocurra en el borde descendente lo hace menos probable. Intente enganchar su cable de tierra en el pin de tierra que está físicamente más cerca del pin que está mirando. Si eso no cambia nada, y si puede, elimine cualquier holgura en el cable de tierra de su alcance envolviéndolo alrededor de la sonda.
Ahhh, sí, ¡conectar el cable de tierra fue el truco! Escriba una respuesta a este efecto y la aceptaré. Gracias por tu perspicacia.
20pF y 2uH resonarán a 25MHz, o un período de 40 nanosegundos. Por lo tanto, una ruta de tierra larga [2 metros o alrededor de 2 uH] para la ruta de retorno de la sonda de alcance puede ser, como era de esperar, la causa.

Respuestas (1)

Intente enganchar su cable de tierra en el pin de tierra que está físicamente más cerca del pin que está mirando. Si eso no cambia nada, y si puede, elimine cualquier holgura en el cable de tierra de su alcance envolviéndolo alrededor de la sonda.

No puedo encontrar un buen artículo desde el principio (estoy seguro de que todos los fabricantes de visores tienen uno). Estos son algunos consejos que conozco:

  • Siempre conecte a tierra la sonda. Si la señal es mínimamente rápida o importante, conecte a tierra cada sonda cerca de la señal.
  • Puedes hacer el truco de envolver el suelo para mejorar un poco las cosas.
  • Si es una señal realmente aguda y necesita estar seguro, conecte a tierra la sonda justo en la punta. Si tira del gancho de resorte del extremo de una sonda O-scope típica, verá una funda de metal alrededor de la punta. Esa es la sonda de tierra. Puede enrollar un cable alrededor de eso y ponerlo a tierra lo más cerca posible de la señal que está sondeando (o puede buscar en el material que viene con la sonda y ver si hay una pequeña cosa que parece una ramita allí, eso es lo que es para).
  • Asegúrese de que sus sondas estén compensadas y calibradas si la precisión es importante.

(Si alguien que lea esto conoce un buen artículo o una presentación de YouTube, publique un enlace; esta es una de esas cosas de las que he recopilado fragmentos a lo largo de los años, pero que nunca he tenido que articular claramente).