Features of the megaAVR

The ATmega4808 microcontrollers are part of the megaAVR 0-series, which uses the AVR processor with hardware multiplier running at up to 20 MHz from the internal calibrated oscillator. The series uses the latest technologies from Microchip with a flexible and low-power architecture, including Event System and SleepWalking, accurate analog features, and advanced peripherals. The following microcontrollers can be used with this development board:

ATmega8088 KB1 KB256 B
ATmega160816 KB2 KB256 B
ATmega320832 KB4 KB256 B
ATmega480848 KB6 KB256 B

All microcontrollers have the following features:

  • 27 General purpose I/O
  • One 16-bit Timer/Counter type A (TCA) with a dedicated period register and three compare channels
  • Three 16-bit Timer/Counters type B (TCB) with input capture
  • One 16-bit Real-Time Counter (RTC) running from an external crystal or an internal RC oscillator
  • Three USARTs with fractional baud rate generator, auto-baud, and start-of-frame detection
  • Master/slave Serial Peripheral Interface (SPI)
  • Master/slave TWI (I²C) with dual address match,
    • can operate simultaneously as master and slave
    • Standard mode (Sm, 100 kHz)
    • Fast mode (Fm, 400 kHz)
    • Fast mode plus (Fm+, 1 MHz)
  • Event System for core independent and predictable inter-peripheral signaling
  • Configurable Custom Logic (CCL) with up to four programmable Look-up Tables (LUT)
  • One Analog Comparator (AC) with a scalable reference input
  • One 10-bit 150 ksps Analog-to-Digital Converter (ADC) with 12 channels
  • Five selectable internal voltage references: 0.55V, 1.1V, 1.5V, 2.5V, and 4.3V
  • Watchdog Timer (WDT) with Window mode, with a separate on-chip oscillator
  • External interrupt on all general purpose pins


Preparing Arduino IDE and Installing Bootloader

  • Install MegaCoreX
  • Open the Arduino IDE
  • Go to "Tools" -> "Board" -> "MegaCoreX" -> "ATmega4808"
  • Go to "Tools" and set the following board options:
    • Clock: "Internal 20 MHz"
    • Pinout: "32 pin standard"
    • Reset pin: "Reset"
    • Bootloader: "Optiboot (UART0 default pins)"
    • Programmer: "jtag2updi(megaTinyCore)"
  • Connect the UPDI programmer to the UPDI header on the development board. You can find such programmers in my projects or you can use an Arduino Uno as a UPDI programmer
  • Go to "Tools" -> "Burn Bootloader"
  • Disconnect the UPDI programmer and connect the development board via USB to your computer
  • Open one of the attached example sketches and click the "Upload" button

Using the AVR DA/DB Family of Microcontrollers

The even more powerful AVR DA/DB family of microcontrollers (TQFP-32 package) can also be used with this board. Some of their features (depending on the model):

  • Up to 128 KB of flash and 16 KB of SRAM
  • Running at up to 24 MHz with internal oscillator (or even more with overclocking)
  • 12-bit Differential Analog-to-Digital Converter (ADC) with 14 channels
  • 10-bit Digital-to-Analog Converter (DAC)
  • 3 Analog Comparators (AC)
  • 2 independent OpAmps with integrated feedback resistor network
  • Zero-Cross Detector (ZCD)
  • Peripheral Touch Controller (PTC) with 22 self-capacitance and 121 mutual capacitance touch channels
  • 4 Multi-Voltage I/O channels capable of bi-directional communication with external devices running at a higher or lower voltage than the MCU itself
  • 3 UART, 2 SPI, 2 I2C
  • 4 16-bit timers
  • Configurable Custom Logic (CCL)
  • Event System (EVSYS)
  • Watchdog Timer (WDT) with Window Mode

In order to be able to use the AVR DA/DB microcontrollers with the Arduino IDE, DxCore must be installed.