Time Delay in AVR Microcontroller - GeeksforGeeks

21 Dec, 2020
In this article, we will see how to create delays for the AVR. Also, we will discuss the instruction pipeline.
Delay Calculation for AVR :In Assembly Language instructions, to create a time delay one must consider two important factors.
The crystal frequency –The frequency of the crystal oscillator connected to XTAL1 and XTAL2 is one factor for calculating the time delay. The duration of the clock period for the instruction cycle is a function of this crystal frequency.The AVR design –AVR microprocessors are able to execute an instruction in one cycle. There are three ways of doing this.Use Harvard architecture to get the maximum amount of code and data into the CPU.Use RISC architecture features such as fixed-size instructions.Use pipelining to overlap fetching and execution of instructions.
The crystal frequency –The frequency of the crystal oscillator connected to XTAL1 and XTAL2 is one factor for calculating the time delay. The duration of the clock period for the instruction cycle is a function of this crystal frequency.
The AVR design –AVR microprocessors are able to execute an instruction in one cycle. There are three ways of doing this.Use Harvard architecture to get the maximum amount of code and data into the CPU.Use RISC architecture features such as fixed-size instructions.Use pipelining to overlap fetching and execution of instructions.
Use Harvard architecture to get the maximum amount of code and data into the CPU.Use RISC architecture features such as fixed-size instructions.Use pipelining to overlap fetching and execution of instructions.
Use Harvard architecture to get the maximum amount of code and data into the CPU.
Use RISC architecture features such as fixed-size instructions.
Use pipelining to overlap fetching and execution of instructions.
Pipelining :In the early microprocessors, the CPU could either fetch or execute at a given time. In other words, the CPU had to fetch an instruction from the memory, then execute it then again fetch the next instruction, execute it, and so on. Pipelining allows the CPU to fetch and execute the given instruction at the same time.
We can use the pipeline to speed up execution of instructions. In pipelines, the process of execution is split up into smaller steps that are all executed in parallel. In the execution of instructions, we must make sure that the sequence of instructions is kept intact and that there is no different execution.
Instruction cycle time for the AVR :It takes a certain amount of time for the CPU to execute an instruction. This time is referred to as machine cycles. All the instructions in the AVR are either 2-byte or 4-byte and hence most of the instructions take no more than 2 machine cycles to execute (some instructions may take up 3 to 4 machine cycles to execute). In the AVR family, the duration of the machine cycle depends upon the frequency of the oscillator connected to the AVR system. In the AVR, one machine cycle consists of one oscillator period, which means that with each oscillator clock, one machine cycle passes. Therefore, to calculate the machine cycle for the AVR, we take the inverse of the crystal frequency.
Example-1 :For the given crystal frequencies, calculate the period of the instruction cycles.
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
Instruction cycles required by different instructions (considering 1 MHz as the crystal frequency) :
Example-2 :Find the delay in us of the code snippet below if the crystal frequency is 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

Computer Organization and Architecture
Computer Organization & Architecture
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Direct Access Media (DMA) Controller in Computer Architecture
Computer Organization and Architecture | Pipelining | Set 2 (Dependencies and Data Hazard)
Architecture of 8085 microprocessor
Pin diagram of 8086 microprocessor
I2C Communication Protocol
Memory mapped I/O and Isolated I/O
Difference between Hardwired and Micro-programmed Control Unit | Set 2
Introduction of Assembler
Computer Architecture | Flynn's taxonomy
Computer Organization | Different Instruction Cycles