Skip to content
This repository has been archived by the owner on Jul 16, 2022. It is now read-only.

USB AVR chips

Osamu Aoki edited this page Jan 30, 2020 · 9 revisions

USB AVR chips

Here are memos on AVRs with focus on newer hardware USB chips.

USB enabled AVR chips and board:

  • ATmega8u2 Flash 8KiB
    • Board: Arduino UNO R2 serial
  • ATmega16u2 Flash 16KiB
    • Board: Arduino UNO R3 serial
  • ATmega32u4 Flash 32KiB
    • Board: Teensy1.0, Teensy2.0, Arduino Leonardo, pro micro, Arduino micro, many badusb usb virtual keyboard (16MHz)
  • AT90USB1286 Flash 128KiB
    • Board: Teensy2.0++ (16MHz)
  • AT90USB1287 Flash 128KiB -- USB OTG support
    • Board: AT90USBKEY2 (8MHz)

Programming USB enabled AVR chips

Hardware USB enabled AVR chips can be programmed in 3 ways:

On Windows system, you need to install device driver file for all but HID Class USB AVR Bootloader.

FYI: ATmega328p on Arduino Uno R3 comes with optimized 512B optiboot serial line bootloader whitch uses the same protocol as CDC Class USB AVR Bootloader.

FYI: "Let’s shorten the bootloader time of the Leonardo/Micro/Esplora": http://www.leonardomiliani.com/en/2013/accorciamo-i-tempi-del-bootloader-della-leonardomicroesplora/

LUFA

LUFA is a free AVR USB stack library and bootloader program licensed under the MIT license.

LUFA seems to be preferred library over:

  • Atmel USB AVR Stack (Atmel Inc.)
  • PJRC Teensy Stack (Paul Stoffregen)
  • V-USB (Objective Development) -- USB on serual AVR

hid_bootloader_cli

hid_bootloader_cli in LUFA is modified Teensy CLI. This should be good drop in replacement (except for ARM based teensy 3 support etc.)

I have made updated bootloader cli based on the newer teensy_loader_cli to support LUFA HID bootloader with hid_bootloader_cli as https://github.com/osamuaoki/teensy_loader_cli

EEPROM (Fuse)

Fuse calculator:

See more on AVR fuses