Other articles


  1. ATmega32 Bare Metal JTAG - Part 1: External Interrupt Handling and TCK

    This example expands on the code from previous examples running code on the ATmega32. Note that this code is building towards interrogating other devices using JTAG, not demonstrating the internal JTAG features of the ATmega32 specifically.

    I started by cleaning up the driver for the status LED on PORTB0. This …

    read more
  2. ATmega32 Bare Metal Boot

    Bare metal boot in AVR assembly without avr-libc. Demonstrates interrupt vectors, enabling the stack, the watchdog timer, and blinking an LED connected to PORTB, pin 0.

    On boot, the LED will cycle three times quickly, then begin blinking. After approximately 2.2 seconds, it will be reset by the Watchdog …

    read more

Sections