Category: Microcontroller

  • AVRHexFlashGUI: an AVRdude Hex Flasher GUI Application with Quick Flash Floating Button

    Introduction To program the AVR microcontroller you use “avrdude” to flash the hex files in the microcontroller. avrdude is a command line tool. Every time you have to flash the microcontroller with a new file you have to write the command. This AVRHexFlashGUI uses the avrdude software to flash the microcontroller but it provides a…

  • How to use UART and Interrupts of PIC16F877A

    The PIC16F877A has a single ISR function which is called every time some things generate an interrupt. Inside the ISR you have to check for individual flag bits to know which peripheral has generated that interrupt.

  • Interface LCD 16×2 Character in 4-Bit Mode with PIC16F877A

    To save the number of pins of the microcontroller we interface the character LCD in 4-bit mode. If we take a look at the PINS of the character LCD [ VSS | VDD | V0 | R/S | R/W | E | D0 | D1 | D2 | D3 | D4 | D5 | D6…

  • How to Control the GPIO of PIC16F877A using MPLAB X IDE

    The PIC16F877A microcontroller is a popular choice for embedded systems development due to its versatility and ease of use. One of the essential aspects of working with microcontrollers is controlling General Purpose Input/Output (GPIO) pins. In this blog post, we will explore how to control the GPIO pins of the PIC16F877A using MPLAB X IDE,…

  • ATmega328PB 16-bit Timer TC3 – Fast PWM Mode

    I have used this FAST PWM mode to trigger two interrupt service routines. The timer compares register A sets the frequency. I have not enabled the output compare pins. since it was used by some other peripheral. So by doing this, I generate a PWM signal by issuing a command in the ISR.

  • ATmega328PB 16-bit Timer TC1 – CTC Mode

    Timers are essential components in microcontrollers that allow precise timing and synchronization for various applications. The ATmega328PB microcontroller offers several timer/counters, including Timer/Counter 1 (TC1), which is a 16-bit timer with advanced features. In this blog post, I will explore how to utilize Timer 1 in CTC (Clear Timer on Compare Match) mode on the…

  • ATmega328PB 8-Bit Timer TC0 – Normal Mode

    The simplest mode of operation is the Normal mode (WGM0[2:0] = 0x0). In this mode, the counting direction is always up (incrementing), and no counter clear is performed. The counter simply overruns when it passes its maximum 8-bit value (TOP=0xFF) and then restarts from the bottom (0x00). In Normal mode operation, the Timer/Counter Overflow flag…

  • How to use S109AFTG Microstep Driver with ATmega328PB Programmed using Microchip Studio

    When I opened the case. I found a PCB which is screwed to a big heatsink. I unscrewed the bolts and saw that there is S109AFTG. The IC is sandwiched between the PCB and the heatsink. A small aluminum block is also used for heat transfer between the IC and the heatsink. It has a…

  • What are AVR microcontrollers?

    AVR microcontrollers, developed by Atmel Corporation (now Microchip Technology), are designed for embedded applications that require low power consumption, high performance, and a small footprint. The AVR family includes a range of microcontrollers, each with varying processing power, memory capacity, and peripheral features. Overall, AVR microcontrollers are versatile and widely used in a variety of…

  • AVR Input Output Port Programming

    In AVR microcontroller programming, input/output ports are used to interface with external devices such as sensors, switches, LEDs, motors, and other peripherals. Here’s an example of how to program AVR input/output ports using C language: In this example, we set PORTB as an output port by setting all of its pins to output mode. We…