Retardo de tiempo en el microcontrolador AVR

En este artículo, veremos cómo crear retrasos para el AVR. Además, discutiremos la canalización de instrucciones.

Cálculo de retardo para AVR:
en las instrucciones en lenguaje ensamblador, para crear un retardo de tiempo se deben considerar dos factores importantes.

  1. La frecuencia
    del cristal: la frecuencia del oscilador de cristal conectado a XTAL1 y XTAL2 es un factor para calcular el retardo de tiempo. La duración del período de reloj para el ciclo de instrucción es una función de esta frecuencia de cristal.
  2. El diseño
    AVR: los microprocesadores AVR pueden ejecutar una instrucción en un ciclo. Hay tres maneras de hacer esto.
    1. Utilice la arquitectura Harvard para obtener la máxima cantidad de código y datos en la CPU.
    2. Utilice las características de la arquitectura RISC, como las instrucciones de tamaño fijo.
    3. Utilice la canalización para superponer la obtención y la ejecución de instrucciones.

Canalización:
en los primeros microprocesadores, la CPU podía buscar o ejecutar en un momento dado. En otras palabras, la CPU tenía que obtener una instrucción de la memoria, luego ejecutarla y luego nuevamente obtener la siguiente instrucción, ejecutarla, y así sucesivamente. La canalización permite que la CPU busque y ejecute la instrucción dada al mismo tiempo.

Podemos usar la canalización para acelerar la ejecución de instrucciones. En las canalizaciones, el proceso de ejecución se divide en pasos más pequeños que se ejecutan en paralelo. En la ejecución de instrucciones, debemos asegurarnos de que la secuencia de instrucciones se mantenga intacta y que no haya una ejecución diferente.

Tiempo de ciclo de instrucción para el AVR:
la CPU tarda una cierta cantidad de tiempo en ejecutar una instrucción. Este tiempo se denomina ciclos de máquina. Todas las instrucciones en el AVR son de 2 o 4 bytes y, por lo tanto, la mayoría de las instrucciones no requieren más de 2 ciclos de máquina para ejecutarse (algunas instrucciones pueden demorar de 3 a 4 ciclos de máquina para ejecutarse). En la familia AVR, la duración del ciclo de la máquina depende de la frecuencia del oscilador conectado al sistema AVR. En el AVR, un ciclo de máquina consta de un período de oscilador, lo que significa que con cada reloj de oscilador, pasa un ciclo de máquina. Por lo tanto, para calcular el ciclo de máquina del AVR, tomamos el inverso de la frecuencia del cristal.

Ejemplo-1:
Para las frecuencias de cristal dadas, calcule el período de los ciclos de instrucción.

a) 8 MHz    b) 16 MHz

Solution : a) instruction cycle = 1/ 8 MHz = 0.125 us (microsecond)   
           b) instruction cycle = 1/ 16 MHz = 0.0625 us

Ciclos de instrucción requeridos por diferentes instrucciones (considerando 1 MHz como la frecuencia del cristal):

Instrucción Ciclos de instrucción hora de ejecutar
LDI 1 1 nosotros
DIC 1 1 nosotros
AFUERA 1 1 nosotros
AGREGAR 1 1 nosotros
NOP 1 1 nosotros
JMP 3 3 nosotros
LLAMAR 4 4 nosotros
BRNE 2/1 2 us si se toma, 1 us si falla

Ejemplo-2:
encuentre el retraso en nosotros del fragmento de código a continuación si la frecuencia del cristal es de 10 MHz.

                                          Instruction Cycles
DELAY :   LDI        COUNT, 0XFF                  0
Again :   NOP                                     1          
          NOP                                     1
          NOP                                     1
          DEC        COUNT                        1
          BRNE       AGAIN                       2/1
          RET                                     4
          
Solution :  Time Delay = [1 +(( 1+ 1+ 1+ 1 + 2 ) x 255) + 4 ] x 0.1 us = 153.5 us

Publicación traducida automáticamente

Artículo escrito por kunalsg18elec y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *