Estoy usando una MCU Atmel ATmega1284P (DIP de 40 pines) para un proyecto y noté algunos picos de baja frecuencia en el pin ADC0 (pin 40). Después de algunos problemas, descubrí que los picos estaban perfectamente sincronizados con la comunicación SPI en los pines 6 y amp; 8.
Pude replicar el problema utilizando el siguiente circuito mínimo:
Y el código mínimo:
#include <SPI.h>
void setup()
{
SPI.begin();
}
void loop()
{
SPI.transfer(B00000000);
delay(61);
}
Pines de supervisión 8 & 40 usando un osciloscopio puedo ver que el SCK está saltando correctamente a 5V cada 61 ms, pero lo extraño es que veo un pico de aproximadamente 400 mV en la línea ADC0. Aquí hay una captura de pantalla de mi alcance, la sonda ADC0 está en amarillo y el SCK en azul:
Parareferencia,aquíestáelpinoutparaelDIP1284:
Realmente no estoy seguro de lo que está pasando aquí, pero parece ser una especie de problema de conexión a tierra. He intentado agregar tapas de desacoplamiento entre los pines 10 y amp; 11, así como los pines 30 y amp; 31, pero no hizo ninguna diferencia. ¿Alguna idea sobre cómo eliminar este pico en los otros pines MCU?
Toma de la traza de Vcc con tapas de desacoplamiento electrolítico de 22uF cerca de Vcc y amp; AVcc: