Mitigando un error desconocido en el análisis de potencia del microcontrolador ATMega328P

0

Configuración:

Arduino Uno (microcontrolador ATMega328P) ejecuta instrucciones de ensamblaje en línea usando sentencias asm. Interrupciones globales deshabilitadas. Pin 13 (PORTB5), DDRB5 designado como salida utilizada para el evento de disparo para el osciloscopio. El osciloscopio está midiendo la caída de voltaje de la resistencia soldada a VCC en el microcontrolador y utilizando la palanca del pin 13 como evento de disparo. El reloj del microcontrolador es 16MHZ y el osciloscopio está muestreando a 1.25GHZ.

Problema:

Las trazas adquiridas de la configuración anterior son relativamente uniformes. Sin embargo, dan algún comportamiento extraño causando algunos errores en mi análisis. Cada 8 o 16 ciclos de reloj, la forma de onda alcanzará su punto máximo en el borde posterior. La lectura de la documentación del microcontrolador sobre el ciclo de búsqueda-carga-ejecución no lleva a ninguna conclusión agradable. ¿Alguien más ha encontrado este problema?

    
pregunta Mir

1 respuesta

0

Mi sospecha sería que no tiene nada que ver con las instrucciones. Algo más en el microcontrolador se está activando cada 8 y / o 16 ciclos de reloj.

Un par de posibilidades que vienen a la mente son:

  • Un periférico temporizador / contador tiene su preescalador de reloj configurado en 8.

  • Uno de los periféricos del temporizador / contador está pasando cada 8 o 16 ciclos de reloj.

  • El periférico SPI tiene su preescalador de reloj configurado en 16.

  • El periférico TWI (aka. I 2 C) tiene su reloj preescalador configurado en 16.

  • El fusible CKDIV8 está programado.

respondido por el duskwuff

Lea otras preguntas en las etiquetas